keevo-components 1.8.496 → 1.8.498

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 (620) hide show
  1. package/esm2022/keevo-components.mjs +5 -0
  2. package/esm2022/lib/api/base-components/base-component-button.mjs +39 -0
  3. package/esm2022/lib/api/base-components/base-component-chart.mjs +92 -0
  4. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +302 -0
  5. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +91 -0
  6. package/esm2022/lib/api/base-components/base-component-crud.mjs +80 -0
  7. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -0
  8. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +238 -0
  9. package/esm2022/lib/api/base-components/base-component-input.mjs +101 -0
  10. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +174 -0
  11. package/esm2022/lib/api/base-components/base-component-table.mjs +354 -0
  12. package/esm2022/lib/api/base-components/base-component.mjs +51 -0
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +2 -0
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +2 -0
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -0
  16. package/esm2022/lib/api/components/chart/orchartnode.mjs +2 -0
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -0
  18. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +2 -0
  19. package/esm2022/lib/api/components/table/action-item.mjs +2 -0
  20. package/esm2022/lib/api/components/table/kv-menuitem.mjs +46 -0
  21. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -0
  22. package/esm2022/lib/api/components/table/table.config.column.mjs +2 -0
  23. package/esm2022/lib/api/components/table/table.config.mjs +2 -0
  24. package/esm2022/lib/api/components/table/table.paginate.mjs +10 -0
  25. package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -0
  26. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -0
  27. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +2 -0
  28. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +3 -0
  29. package/esm2022/lib/api/directives/directives.module.mjs +30 -0
  30. package/esm2022/lib/api/directives/drag/drag.directive.mjs +52 -0
  31. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +31 -0
  32. package/esm2022/lib/api/directives/template/template.directive.mjs +24 -0
  33. package/esm2022/lib/api/helpers/component-providers.mjs +16 -0
  34. package/esm2022/lib/api/helpers/keevo-validators.mjs +131 -0
  35. package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -0
  36. package/esm2022/lib/api/modules/primeng.module.mjs +275 -0
  37. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +47 -0
  38. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -0
  39. package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -0
  40. package/esm2022/lib/api/pipes/pipes.module.mjs +39 -0
  41. package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -0
  42. package/esm2022/lib/api/services/base.api.service.mjs +74 -0
  43. package/esm2022/lib/api/services/breadcrumbs.service.mjs +62 -0
  44. package/esm2022/lib/api/services/chat.service.mjs +37 -0
  45. package/esm2022/lib/api/services/component.service.mjs +37 -0
  46. package/esm2022/lib/api/services/docs.service.mjs +129 -0
  47. package/esm2022/lib/api/services/form.service.mjs +95 -0
  48. package/esm2022/lib/api/services/image.cutter.service.mjs +191 -0
  49. package/esm2022/lib/api/services/imagens.service.mjs +28 -0
  50. package/esm2022/lib/api/services/notification.service.mjs +69 -0
  51. package/esm2022/lib/api/services/object.service.mjs +39 -0
  52. package/esm2022/lib/api/services/orgchart.service.mjs +64 -0
  53. package/esm2022/lib/api/types/breadcrumb.model.mjs +2 -0
  54. package/esm2022/lib/components/keevo-components.module.mjs +214 -0
  55. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +133 -0
  56. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +55 -0
  57. package/esm2022/lib/components/kv-button/kv-button.component.mjs +23 -0
  58. package/esm2022/lib/components/kv-button/kv-button.module.mjs +28 -0
  59. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +25 -0
  60. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +35 -0
  61. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -0
  62. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -0
  63. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -0
  64. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +60 -0
  65. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +31 -0
  66. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +34 -0
  67. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -0
  68. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +148 -0
  69. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +32 -0
  70. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +143 -0
  71. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +36 -0
  72. package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -0
  73. package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -0
  74. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +148 -0
  75. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +18 -0
  76. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +46 -0
  77. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +20 -0
  78. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +68 -0
  79. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +24 -0
  80. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +29 -0
  81. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +34 -0
  82. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +26 -0
  83. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +28 -0
  84. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +11 -0
  85. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +19 -0
  86. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +27 -0
  87. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +32 -0
  88. package/esm2022/lib/components/kv-icon/kv-icon.component.mjs +23 -0
  89. package/esm2022/lib/components/kv-icon/kv-icon.module.mjs +24 -0
  90. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +136 -0
  91. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +18 -0
  92. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +29 -0
  93. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +102 -0
  94. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +148 -0
  95. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +168 -0
  96. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +30 -0
  97. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -0
  98. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -0
  99. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +38 -0
  100. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +47 -0
  101. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -0
  102. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -0
  103. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +131 -0
  104. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +48 -0
  105. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +60 -0
  106. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +46 -0
  107. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +36 -0
  108. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +42 -0
  109. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +58 -0
  110. package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -0
  111. package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -0
  112. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +29 -0
  113. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +68 -0
  114. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +335 -0
  115. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +18 -0
  116. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +16 -0
  117. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -0
  118. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -0
  119. package/esm2022/lib/components/kv-login/kv-login.component.mjs +62 -0
  120. package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -0
  121. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +97 -0
  122. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +20 -0
  123. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +225 -0
  124. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +59 -0
  125. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +217 -0
  126. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +41 -0
  127. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +207 -0
  128. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +47 -0
  129. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +132 -0
  130. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +39 -0
  131. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +58 -0
  132. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -0
  133. package/esm2022/lib/components/kv-report/kv-report.component.mjs +44 -0
  134. package/esm2022/lib/components/kv-report/kv-report.module.mjs +24 -0
  135. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +76 -0
  136. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +40 -0
  137. package/esm2022/lib/components/kv-table/kv-table.component.mjs +673 -0
  138. package/esm2022/lib/components/kv-table/kv-table.module.mjs +40 -0
  139. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +323 -0
  140. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +45 -0
  141. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +516 -0
  142. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +40 -0
  143. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +331 -0
  144. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +39 -0
  145. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +70 -0
  146. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -0
  147. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +72 -0
  148. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +64 -0
  149. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +22 -0
  150. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +63 -0
  151. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +74 -0
  152. package/esm2022/public-api.mjs +261 -0
  153. package/fesm2022/keevo-components.mjs +9834 -0
  154. package/fesm2022/keevo-components.mjs.map +1 -0
  155. package/index.d.ts +5 -0
  156. package/lib/api/base-components/base-component-button.d.ts +15 -0
  157. package/lib/api/base-components/base-component-chart.d.ts +40 -0
  158. package/lib/api/base-components/base-component-crud-form.d.ts +149 -0
  159. package/lib/api/base-components/base-component-crud-list.d.ts +70 -0
  160. package/lib/api/base-components/base-component-crud.d.ts +36 -0
  161. package/lib/api/base-components/base-component-dropdown-external.d.ts +15 -0
  162. package/lib/api/base-components/base-component-dropdown.d.ts +57 -0
  163. package/lib/api/base-components/base-component-input.d.ts +33 -0
  164. package/lib/api/base-components/base-component-multi-select.d.ts +40 -0
  165. package/lib/api/base-components/base-component-table.d.ts +88 -0
  166. package/lib/api/base-components/base-component.d.ts +22 -0
  167. package/lib/api/components/chart/chart.config.d.ts +11 -0
  168. package/lib/api/components/chart/chart.model.d.ts +9 -0
  169. package/lib/api/components/chart/orchart.config.d.ts +41 -0
  170. package/lib/api/components/chart/orchartnode.d.ts +34 -0
  171. package/lib/api/components/dropdown/filtro.combo.d.ts +4 -0
  172. package/lib/api/components/stepper/kv-stepperpanel.d.ts +9 -0
  173. package/lib/api/components/table/action-item.d.ts +13 -0
  174. package/lib/api/components/table/kv-menuitem.d.ts +152 -0
  175. package/lib/api/components/table/table-dropdown-control.d.ts +6 -0
  176. package/lib/api/components/table/table.config.column.d.ts +38 -0
  177. package/lib/api/components/table/table.config.d.ts +33 -0
  178. package/lib/api/components/table/table.paginate.d.ts +10 -0
  179. package/{src/lib/api/components/table/tabledit.config.ts → lib/api/components/table/tabledit.config.d.ts} +8 -9
  180. package/lib/api/components/table/tableedit.config.column.d.ts +10 -0
  181. package/lib/api/components/tree-table/tree-table-keys.d.ts +12 -0
  182. package/lib/api/components/tree-table/tree-table.config.d.ts +31 -0
  183. package/lib/api/directives/directives.module.d.ts +9 -0
  184. package/lib/api/directives/drag/drag.directive.d.ts +11 -0
  185. package/lib/api/directives/stepper/dynamicinput.directive.d.ts +15 -0
  186. package/lib/api/directives/template/template.directive.d.ts +11 -0
  187. package/lib/api/helpers/component-providers.d.ts +2 -0
  188. package/lib/api/helpers/keevo-validators.d.ts +17 -0
  189. package/lib/api/helpers/translate-primeng.d.ts +4 -0
  190. package/lib/api/modules/primeng.module.d.ts +67 -0
  191. package/lib/api/pipes/capitalize.pipe.d.ts +10 -0
  192. package/lib/api/pipes/cpfcnpj.pipe.d.ts +7 -0
  193. package/lib/api/pipes/mask.pipe.d.ts +7 -0
  194. package/lib/api/pipes/pipes.module.d.ts +11 -0
  195. package/lib/api/pipes/telefone.pipe.d.ts +7 -0
  196. package/lib/api/services/base.api.service.d.ts +25 -0
  197. package/lib/api/services/breadcrumbs.service.d.ts +16 -0
  198. package/lib/api/services/chat.service.d.ts +17 -0
  199. package/lib/api/services/component.service.d.ts +11 -0
  200. package/lib/api/services/docs.service.d.ts +12 -0
  201. package/lib/api/services/form.service.d.ts +31 -0
  202. package/lib/api/services/image.cutter.service.d.ts +15 -0
  203. package/lib/api/services/imagens.service.d.ts +10 -0
  204. package/lib/api/services/notification.service.d.ts +26 -0
  205. package/lib/api/services/object.service.d.ts +9 -0
  206. package/lib/api/services/orgchart.service.d.ts +20 -0
  207. package/lib/api/types/breadcrumb.model.d.ts +5 -0
  208. package/lib/components/keevo-components.module.d.ts +35 -0
  209. package/lib/components/kv-avatar/kv-avatar.component.d.ts +35 -0
  210. package/lib/components/kv-avatar/kv-avatar.module.d.ts +15 -0
  211. package/lib/components/kv-button/kv-button.component.d.ts +14 -0
  212. package/lib/components/kv-button/kv-button.module.d.ts +9 -0
  213. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +11 -0
  214. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +15 -0
  215. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +7 -0
  216. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +7 -0
  217. package/lib/components/kv-buttons/kv-button.module.d.ts +11 -0
  218. package/lib/components/kv-card-selection/kv-card-selection.component.d.ts +25 -0
  219. package/lib/components/kv-card-selection/kv-card-selection.module.d.ts +10 -0
  220. package/lib/components/kv-carousel/kv-carousel.component.d.ts +17 -0
  221. package/lib/components/kv-carousel/kv-carousel.module.d.ts +9 -0
  222. package/lib/components/kv-chart/kv-chart.component.d.ts +57 -0
  223. package/lib/components/kv-chart/kv-chart.module.d.ts +10 -0
  224. package/lib/components/kv-content-viewer/kv-content-viewer.component.d.ts +44 -0
  225. package/lib/components/kv-content-viewer/kv-content-viewer.module.d.ts +12 -0
  226. package/lib/components/kv-error/kv-error.component.d.ts +12 -0
  227. package/lib/components/kv-error/kv-error.module.d.ts +10 -0
  228. package/lib/components/kv-file-upload/kv-file-upload.component.d.ts +32 -0
  229. package/lib/components/kv-file-upload/kv-file-upload.module.d.ts +8 -0
  230. package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +21 -0
  231. package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +8 -0
  232. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.d.ts +24 -0
  233. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.d.ts +9 -0
  234. package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +13 -0
  235. package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +10 -0
  236. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.d.ts +10 -0
  237. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.d.ts +9 -0
  238. package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +5 -0
  239. package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +9 -0
  240. package/lib/components/kv-home-card/kv-home-card.component.d.ts +24 -0
  241. package/lib/components/kv-home-card/kv-home-card.module.d.ts +11 -0
  242. package/lib/components/kv-icon/kv-icon.component.d.ts +12 -0
  243. package/lib/components/kv-icon/kv-icon.module.d.ts +8 -0
  244. package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +33 -0
  245. package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +8 -0
  246. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +12 -0
  247. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +33 -0
  248. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +30 -0
  249. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +34 -0
  250. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +12 -0
  251. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +19 -0
  252. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +13 -0
  253. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +11 -0
  254. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +17 -0
  255. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +16 -0
  256. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +10 -0
  257. package/lib/components/kv-inputs/kv-inputs.module.d.ts +30 -0
  258. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +16 -0
  259. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +20 -0
  260. package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +19 -0
  261. package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +24 -0
  262. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +16 -0
  263. package/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.d.ts +25 -0
  264. package/lib/components/kv-label/kv-label.component.d.ts +7 -0
  265. package/lib/components/kv-label/kv-label.module.d.ts +8 -0
  266. package/lib/components/kv-layout/dropdown-master/dropdown-master.component.d.ts +12 -0
  267. package/lib/components/kv-layout/kv-layout.module.d.ts +17 -0
  268. package/lib/components/kv-layout/layout/kv-layout.component.d.ts +123 -0
  269. package/lib/components/kv-layout/top-icons/top-icons.component.d.ts +13 -0
  270. package/lib/components/kv-loader/kv-loader.component.d.ts +7 -0
  271. package/lib/components/kv-loader/kv-loader.module.d.ts +9 -0
  272. package/lib/components/kv-loader/kv-loader.service.d.ts +10 -0
  273. package/lib/components/kv-login/kv-login.component.d.ts +32 -0
  274. package/lib/components/kv-login/kv-login.module.d.ts +13 -0
  275. package/lib/components/kv-modal/kv-modal.component.d.ts +27 -0
  276. package/lib/components/kv-modal/kv-modal.module.d.ts +10 -0
  277. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +45 -0
  278. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +17 -0
  279. package/lib/components/kv-page-form/kv-page-form.component.d.ts +104 -0
  280. package/lib/components/kv-page-form/kv-page-form.module.d.ts +12 -0
  281. package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +84 -0
  282. package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +13 -0
  283. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +46 -0
  284. package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +11 -0
  285. package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +67 -0
  286. package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +9 -0
  287. package/lib/components/kv-report/kv-report.component.d.ts +18 -0
  288. package/lib/components/kv-report/kv-report.module.d.ts +8 -0
  289. package/lib/components/kv-stepper/kv-stepper.component.d.ts +32 -0
  290. package/lib/components/kv-stepper/kv-stepper.module.d.ts +12 -0
  291. package/lib/components/kv-table/kv-table.component.d.ts +154 -0
  292. package/lib/components/kv-table/kv-table.module.d.ts +12 -0
  293. package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +61 -0
  294. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +15 -0
  295. package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +119 -0
  296. package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +13 -0
  297. package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +86 -0
  298. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +11 -0
  299. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +21 -0
  300. package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +9 -0
  301. package/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.d.ts +20 -0
  302. package/lib/components/kv-workspace/kv-workspace.module.d.ts +18 -0
  303. package/lib/components/kv-workspace/logo/kv-workspace-logo.component.d.ts +11 -0
  304. package/lib/components/kv-workspace/master/kv-workspace-master.component.d.ts +18 -0
  305. package/lib/components/kv-workspace/workspace/kv-workspace.component.d.ts +29 -0
  306. package/package.json +40 -27
  307. package/{src/public-api.ts → public-api.d.ts} +256 -298
  308. package/src/lib/components/keevo-components-styles.scss +44 -0
  309. package/ng-package.json +0 -12
  310. package/src/assets/.gitkeep +0 -0
  311. package/src/assets/images/LogoEvo.png +0 -0
  312. package/src/assets/images/LogoPequenaEvo.png +0 -0
  313. package/src/assets/images/background.png +0 -0
  314. package/src/assets/images/keepass-logo.png +0 -0
  315. package/src/assets/images/keepass-logo.svg +0 -74
  316. package/src/assets/images/keevo-logo.png +0 -0
  317. package/src/assets/images/logokeevo_2.png +0 -0
  318. package/src/index.ts +0 -1
  319. package/src/lib/api/base-components/base-component-button.ts +0 -29
  320. package/src/lib/api/base-components/base-component-chart.ts +0 -105
  321. package/src/lib/api/base-components/base-component-crud-form.ts +0 -367
  322. package/src/lib/api/base-components/base-component-crud-list.ts +0 -129
  323. package/src/lib/api/base-components/base-component-crud.ts +0 -92
  324. package/src/lib/api/base-components/base-component-dropdown-external.ts +0 -29
  325. package/src/lib/api/base-components/base-component-dropdown-new.ts +0 -112
  326. package/src/lib/api/base-components/base-component-dropdown.ts +0 -257
  327. package/src/lib/api/base-components/base-component-input.ts +0 -121
  328. package/src/lib/api/base-components/base-component-multi-select.ts +0 -187
  329. package/src/lib/api/base-components/base-component-table.ts +0 -366
  330. package/src/lib/api/base-components/base-component.ts +0 -47
  331. package/src/lib/api/components/chart/chart.config.ts +0 -12
  332. package/src/lib/api/components/chart/chart.model.ts +0 -9
  333. package/src/lib/api/components/chart/orchart.config.ts +0 -51
  334. package/src/lib/api/components/chart/orchartnode.ts +0 -44
  335. package/src/lib/api/components/dropdown/filtro.combo.ts +0 -4
  336. package/src/lib/api/components/stepper/kv-stepperpanel.ts +0 -10
  337. package/src/lib/api/components/table/action-item.ts +0 -13
  338. package/src/lib/api/components/table/kv-menuitem.ts +0 -198
  339. package/src/lib/api/components/table/table-dropdown-control.ts +0 -6
  340. package/src/lib/api/components/table/table.config.column.ts +0 -38
  341. package/src/lib/api/components/table/table.config.ts +0 -36
  342. package/src/lib/api/components/table/table.paginate.ts +0 -7
  343. package/src/lib/api/components/table/tableedit.config.column.ts +0 -11
  344. package/src/lib/api/components/tree-table/tree-table-keys.ts +0 -12
  345. package/src/lib/api/components/tree-table/tree-table.config.ts +0 -34
  346. package/src/lib/api/directives/directives.module.ts +0 -19
  347. package/src/lib/api/directives/drag/drag.directive.ts +0 -40
  348. package/src/lib/api/directives/stepper/dynamicinput.directive.ts +0 -23
  349. package/src/lib/api/directives/template/template.directive.ts +0 -15
  350. package/src/lib/api/helpers/component-providers.ts +0 -16
  351. package/src/lib/api/helpers/keevo-validators.ts +0 -157
  352. package/src/lib/api/helpers/severity-color.ts +0 -77
  353. package/src/lib/api/helpers/translate-primeng.ts +0 -25
  354. package/src/lib/api/modules/primeng.module.ts +0 -139
  355. package/src/lib/api/pipes/capitalize.pipe.ts +0 -47
  356. package/src/lib/api/pipes/cpfcnpj.pipe.ts +0 -21
  357. package/src/lib/api/pipes/mask.pipe.ts +0 -24
  358. package/src/lib/api/pipes/pipes.module.ts +0 -26
  359. package/src/lib/api/pipes/telefone.pipe.ts +0 -38
  360. package/src/lib/api/services/base.api.service.ts +0 -115
  361. package/src/lib/api/services/breadcrumbs.service.ts +0 -71
  362. package/src/lib/api/services/chat.service.ts +0 -39
  363. package/src/lib/api/services/component.service.ts +0 -44
  364. package/src/lib/api/services/docs.service.ts +0 -129
  365. package/src/lib/api/services/form.service.ts +0 -139
  366. package/src/lib/api/services/image.cutter.service.ts +0 -290
  367. package/src/lib/api/services/imagens.service.ts +0 -28
  368. package/src/lib/api/services/notification.service.ts +0 -88
  369. package/src/lib/api/services/object.service.ts +0 -33
  370. package/src/lib/api/services/orgchart.service.ts +0 -77
  371. package/src/lib/api/types/breadcrumb.model.ts +0 -5
  372. package/src/lib/api/types/severity.ts +0 -3
  373. package/src/lib/api/types/stimulsoft.reports.d.ts +0 -67463
  374. package/src/lib/components/keevo-components.module.ts +0 -94
  375. package/src/lib/components/kv-avatar/kv-avatar.component.html +0 -34
  376. package/src/lib/components/kv-avatar/kv-avatar.component.scss +0 -114
  377. package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +0 -23
  378. package/src/lib/components/kv-avatar/kv-avatar.component.ts +0 -154
  379. package/src/lib/components/kv-avatar/kv-avatar.module.ts +0 -32
  380. package/src/lib/components/kv-button/kv-button.component.html +0 -19
  381. package/src/lib/components/kv-button/kv-button.component.spec.ts +0 -23
  382. package/src/lib/components/kv-button/kv-button.component.ts +0 -21
  383. package/src/lib/components/kv-button/kv-button.module.ts +0 -20
  384. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +0 -14
  385. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +0 -6
  386. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +0 -25
  387. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +0 -12
  388. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +0 -28
  389. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +0 -38
  390. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +0 -12
  391. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +0 -18
  392. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +0 -14
  393. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +0 -11
  394. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +0 -17
  395. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +0 -14
  396. package/src/lib/components/kv-buttons/kv-button.module.ts +0 -26
  397. package/src/lib/components/kv-card-selection/kv-card-selection.component.html +0 -72
  398. package/src/lib/components/kv-card-selection/kv-card-selection.component.scss +0 -54
  399. package/src/lib/components/kv-card-selection/kv-card-selection.component.spec.ts +0 -23
  400. package/src/lib/components/kv-card-selection/kv-card-selection.component.ts +0 -73
  401. package/src/lib/components/kv-card-selection/kv-card-selection.module.ts +0 -19
  402. package/src/lib/components/kv-carousel/kv-carousel.component.html +0 -26
  403. package/src/lib/components/kv-carousel/kv-carousel.component.scss +0 -32
  404. package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +0 -23
  405. package/src/lib/components/kv-carousel/kv-carousel.component.ts +0 -40
  406. package/src/lib/components/kv-carousel/kv-carousel.module.ts +0 -19
  407. package/src/lib/components/kv-chart/kv-chart.component.html +0 -38
  408. package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
  409. package/src/lib/components/kv-chart/kv-chart.component.spec.ts +0 -28
  410. package/src/lib/components/kv-chart/kv-chart.component.ts +0 -156
  411. package/src/lib/components/kv-chart/kv-chart.module.ts +0 -21
  412. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.html +0 -151
  413. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.scss +0 -159
  414. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.spec.ts +0 -23
  415. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.ts +0 -133
  416. package/src/lib/components/kv-content-viewer/kv-content-viewer.module.ts +0 -21
  417. package/src/lib/components/kv-error/kv-error.component.html +0 -3
  418. package/src/lib/components/kv-error/kv-error.component.scss +0 -5
  419. package/src/lib/components/kv-error/kv-error.component.ts +0 -27
  420. package/src/lib/components/kv-error/kv-error.module.ts +0 -26
  421. package/src/lib/components/kv-file-upload/kv-file-upload.component.html +0 -56
  422. package/src/lib/components/kv-file-upload/kv-file-upload.component.scss +0 -9
  423. package/src/lib/components/kv-file-upload/kv-file-upload.component.spec.ts +0 -23
  424. package/src/lib/components/kv-file-upload/kv-file-upload.component.ts +0 -152
  425. package/src/lib/components/kv-file-upload/kv-file-upload.module.ts +0 -10
  426. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +0 -16
  427. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +0 -18
  428. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +0 -42
  429. package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +0 -14
  430. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.html +0 -34
  431. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.scss +0 -17
  432. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.ts +0 -80
  433. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.ts +0 -15
  434. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.html +0 -103
  435. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.scss +0 -153
  436. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.spec.ts +0 -23
  437. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.ts +0 -73
  438. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.module.ts +0 -18
  439. package/src/lib/components/kv-filter-card/kv-filter-card.component.html +0 -18
  440. package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +0 -74
  441. package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +0 -23
  442. package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +0 -18
  443. package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +0 -23
  444. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.html +0 -25
  445. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.scss +0 -22
  446. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.spec.ts +0 -23
  447. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.ts +0 -20
  448. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.ts +0 -20
  449. package/src/lib/components/kv-g-icon/kv-g-icon.component.html +0 -1
  450. package/src/lib/components/kv-g-icon/kv-g-icon.component.scss +0 -0
  451. package/src/lib/components/kv-g-icon/kv-g-icon.component.spec.ts +0 -23
  452. package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +0 -10
  453. package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +0 -11
  454. package/src/lib/components/kv-home-card/kv-home-card.component.html +0 -35
  455. package/src/lib/components/kv-home-card/kv-home-card.component.scss +0 -5
  456. package/src/lib/components/kv-home-card/kv-home-card.component.spec.ts +0 -23
  457. package/src/lib/components/kv-home-card/kv-home-card.component.ts +0 -33
  458. package/src/lib/components/kv-home-card/kv-home-card.module.ts +0 -18
  459. package/src/lib/components/kv-image-upload/kv-image-upload.component.html +0 -64
  460. package/src/lib/components/kv-image-upload/kv-image-upload.component.scss +0 -0
  461. package/src/lib/components/kv-image-upload/kv-image-upload.component.ts +0 -154
  462. package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +0 -10
  463. package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +0 -12
  464. package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +0 -38
  465. package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +0 -32
  466. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +0 -87
  467. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.scss +0 -56
  468. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +0 -119
  469. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +0 -102
  470. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +0 -45
  471. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +0 -176
  472. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +0 -37
  473. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +0 -23
  474. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +0 -197
  475. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +0 -24
  476. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.scss +0 -0
  477. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.ts +0 -35
  478. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +0 -23
  479. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.scss +0 -0
  480. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.ts +0 -61
  481. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +0 -24
  482. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.scss +0 -0
  483. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.ts +0 -26
  484. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +0 -23
  485. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +0 -18
  486. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +0 -40
  487. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +0 -53
  488. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.scss +0 -41
  489. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.spec.ts +0 -23
  490. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +0 -46
  491. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +0 -23
  492. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.scss +0 -0
  493. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.ts +0 -40
  494. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +0 -24
  495. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.scss +0 -0
  496. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.ts +0 -27
  497. package/src/lib/components/kv-inputs/kv-inputs.module.ts +0 -83
  498. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +0 -45
  499. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +0 -44
  500. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +0 -49
  501. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +0 -19
  502. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +0 -22
  503. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +0 -63
  504. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +0 -26
  505. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +0 -5
  506. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +0 -21
  507. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +0 -30
  508. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +0 -26
  509. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +0 -41
  510. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +0 -23
  511. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +0 -41
  512. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +0 -23
  513. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +0 -35
  514. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +0 -54
  515. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.html +0 -68
  516. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.scss +0 -86
  517. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.ts +0 -59
  518. package/src/lib/components/kv-label/kv-label.component.html +0 -6
  519. package/src/lib/components/kv-label/kv-label.component.scss +0 -9
  520. package/src/lib/components/kv-label/kv-label.component.spec.ts +0 -23
  521. package/src/lib/components/kv-label/kv-label.component.ts +0 -14
  522. package/src/lib/components/kv-label/kv-label.module.ts +0 -17
  523. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.html +0 -15
  524. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.scss +0 -0
  525. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.spec.ts +0 -28
  526. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.ts +0 -34
  527. package/src/lib/components/kv-layout/kv-layout.module.ts +0 -35
  528. package/src/lib/components/kv-layout/layout/kv-layout.component.html +0 -507
  529. package/src/lib/components/kv-layout/layout/kv-layout.component.scss +0 -290
  530. package/src/lib/components/kv-layout/layout/kv-layout.component.spec.ts +0 -23
  531. package/src/lib/components/kv-layout/layout/kv-layout.component.ts +0 -344
  532. package/src/lib/components/kv-loader/kv-loader.component.html +0 -1
  533. package/src/lib/components/kv-loader/kv-loader.component.ts +0 -11
  534. package/src/lib/components/kv-loader/kv-loader.module.ts +0 -17
  535. package/src/lib/components/kv-loader/kv-loader.service.ts +0 -29
  536. package/src/lib/components/kv-login/kv-login.component.html +0 -101
  537. package/src/lib/components/kv-login/kv-login.component.scss +0 -99
  538. package/src/lib/components/kv-login/kv-login.component.spec.ts +0 -23
  539. package/src/lib/components/kv-login/kv-login.component.ts +0 -97
  540. package/src/lib/components/kv-login/kv-login.module.ts +0 -33
  541. package/src/lib/components/kv-modal/kv-modal.component.html +0 -20
  542. package/src/lib/components/kv-modal/kv-modal.component.scss +0 -37
  543. package/src/lib/components/kv-modal/kv-modal.component.spec.ts +0 -21
  544. package/src/lib/components/kv-modal/kv-modal.component.ts +0 -111
  545. package/src/lib/components/kv-modal/kv-modal.module.ts +0 -12
  546. package/src/lib/components/kv-orgchart/kv-orgchart.component.html +0 -125
  547. package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +0 -73
  548. package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +0 -283
  549. package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +0 -31
  550. package/src/lib/components/kv-page-form/kv-page-form.component.html +0 -116
  551. package/src/lib/components/kv-page-form/kv-page-form.component.scss +0 -74
  552. package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +0 -28
  553. package/src/lib/components/kv-page-form/kv-page-form.component.ts +0 -206
  554. package/src/lib/components/kv-page-form/kv-page-form.module.ts +0 -33
  555. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +0 -251
  556. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +0 -129
  557. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +0 -23
  558. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +0 -223
  559. package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +0 -34
  560. package/src/lib/components/kv-pick-list/kv-pick-list.component.html +0 -31
  561. package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +0 -19
  562. package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +0 -26
  563. package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +0 -130
  564. package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +0 -24
  565. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +0 -38
  566. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +0 -128
  567. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +0 -21
  568. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +0 -75
  569. package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +0 -19
  570. package/src/lib/components/kv-report/kv-report.component.html +0 -3
  571. package/src/lib/components/kv-report/kv-report.component.scss +0 -14
  572. package/src/lib/components/kv-report/kv-report.component.spec.ts +0 -28
  573. package/src/lib/components/kv-report/kv-report.component.ts +0 -44
  574. package/src/lib/components/kv-report/kv-report.module.ts +0 -18
  575. package/src/lib/components/kv-stepper/kv-stepper.component.html +0 -63
  576. package/src/lib/components/kv-stepper/kv-stepper.component.scss +0 -41
  577. package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +0 -23
  578. package/src/lib/components/kv-stepper/kv-stepper.component.ts +0 -73
  579. package/src/lib/components/kv-stepper/kv-stepper.module.ts +0 -24
  580. package/src/lib/components/kv-table/kv-table.component.html +0 -637
  581. package/src/lib/components/kv-table/kv-table.component.spec.ts +0 -28
  582. package/src/lib/components/kv-table/kv-table.component.ts +0 -792
  583. package/src/lib/components/kv-table/kv-table.module.ts +0 -25
  584. package/src/lib/components/kv-table-edit/kv-table-edit.component.html +0 -775
  585. package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +0 -727
  586. package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +0 -388
  587. package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +0 -31
  588. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +0 -634
  589. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +0 -387
  590. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +0 -546
  591. package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +0 -22
  592. package/src/lib/components/kv-tree-table/kv-tree-table.component.html +0 -492
  593. package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +0 -187
  594. package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +0 -21
  595. package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +0 -355
  596. package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +0 -23
  597. package/src/lib/components/kv-tree-view/kv-tree-view.component.html +0 -16
  598. package/src/lib/components/kv-tree-view/kv-tree-view.component.scss +0 -19
  599. package/src/lib/components/kv-tree-view/kv-tree-view.component.spec.ts +0 -23
  600. package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +0 -73
  601. package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +0 -19
  602. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.html +0 -14
  603. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.scss +0 -0
  604. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.spec.ts +0 -28
  605. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.ts +0 -77
  606. package/src/lib/components/kv-workspace/kv-workspace.module.ts +0 -43
  607. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.html +0 -20
  608. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.scss +0 -0
  609. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.spec.ts +0 -28
  610. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.ts +0 -18
  611. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.html +0 -12
  612. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.scss +0 -0
  613. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.spec.ts +0 -28
  614. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.ts +0 -72
  615. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.html +0 -50
  616. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.scss +0 -17
  617. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.ts +0 -60
  618. package/tsconfig.lib.json +0 -14
  619. package/tsconfig.lib.prod.json +0 -10
  620. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,335 @@
1
+ import { Component, computed, contentChildren, EventEmitter, HostListener, input, Input, model, Output, signal, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "../../kv-icon/kv-icon.component";
7
+ import * as i5 from "primeng/api";
8
+ import * as i6 from "primeng/breadcrumb";
9
+ import * as i7 from "primeng/tooltip";
10
+ import * as i8 from "primeng/card";
11
+ import * as i9 from "primeng/divider";
12
+ import * as i10 from "primeng/menu";
13
+ import * as i11 from "primeng/overlaypanel";
14
+ import * as i12 from "primeng/sidebar";
15
+ import * as i13 from "../top-icons/top-icons.component";
16
+ import * as i14 from "../dropdown-master/dropdown-master.component";
17
+ import * as i15 from "../../../api/pipes/cpfcnpj.pipe";
18
+ export class KvLayoutComponent {
19
+ ver(x) {
20
+ console.log(x);
21
+ }
22
+ constructor(cdr, fb, router, activatedRoute) {
23
+ this.cdr = cdr;
24
+ this.fb = fb;
25
+ this.router = router;
26
+ this.activatedRoute = activatedRoute;
27
+ this.apps = [];
28
+ this.actions = [];
29
+ this.topActions = input([
30
+ {
31
+ icon: 'list-check',
32
+ tooltip: 'Tarefas',
33
+ numNotifications: 2,
34
+ action: () => { },
35
+ },
36
+ {
37
+ icon: 'bell',
38
+ tooltip: 'Notificações',
39
+ numNotifications: 0,
40
+ action: () => { },
41
+ },
42
+ {
43
+ icon: 'sparkles',
44
+ tooltip: 'Kiara',
45
+ numNotifications: 0,
46
+ action: () => { },
47
+ },
48
+ {
49
+ icon: 'message',
50
+ tooltip: 'Comunicador',
51
+ numNotifications: 3,
52
+ action: () => { },
53
+ },
54
+ {
55
+ icon: 'person',
56
+ tooltip: 'Meus Dados',
57
+ numNotifications: 0,
58
+ img: 'https://cdn.comunhao.com.br/wp-content/uploads/2022/09/27085403/alexandremoraes.jpg',
59
+ action: () => {
60
+ this.meusDadosPanel.show(event);
61
+ },
62
+ }
63
+ ]);
64
+ this.breadCrumbItems = [];
65
+ this.masters = [];
66
+ this.menus = model([]);
67
+ this.menuPModels = computed(() => {
68
+ const convertToMenuItem = (menu) => ({
69
+ label: menu.descricaomenu,
70
+ id: menu.idmenu.toString(),
71
+ items: this.returnMenuChild(menu.idmenu).map(convertToMenuItem),
72
+ url: menu.link ?? undefined,
73
+ });
74
+ return this.menus().map(convertToMenuItem);
75
+ });
76
+ this.returnMenuChilds = computed(() => (idmenu) => {
77
+ return this.menuPModels().filter((x) => Number(x.id) === idmenu);
78
+ });
79
+ this.expandMenu = model(true);
80
+ this.showButtonApps = true;
81
+ this.showButtonUser = true;
82
+ this.showExpandMenu = true;
83
+ this.showDropdownLicenca = true;
84
+ this.showMenu = true;
85
+ this.showTrocaEmpresa = false;
86
+ this.showBreadcrumb = true;
87
+ this.userName = 'Usuário';
88
+ this.accessKeePassEmit = new EventEmitter();
89
+ this.changeEmpresaEmit = new EventEmitter();
90
+ this.changeLicenseEmit = new EventEmitter();
91
+ this.expandMenuEmit = new EventEmitter();
92
+ this.logoutEmit = new EventEmitter();
93
+ this.selectAppEmit = new EventEmitter();
94
+ this.navigateToDefaultRouteEmit = new EventEmitter();
95
+ this.topMenuActions = contentChildren('topMenuAction');
96
+ this.widthPage = signal(0);
97
+ this.menuSelecionado = signal(null);
98
+ }
99
+ accessKeePass(event) {
100
+ this.accessKeePassEmit.emit(event);
101
+ }
102
+ adjustHeightCard() {
103
+ if (this.widthCard > 400) {
104
+ if (this.widthPage() < 992 && this.showLicencas())
105
+ return 145;
106
+ if (this.breadCrumbItems.length > 0)
107
+ return 95;
108
+ else
109
+ return 85;
110
+ }
111
+ return 125;
112
+ }
113
+ adjustWidthCard() {
114
+ this.widthPage.set(window.innerWidth);
115
+ this.heightCard = Number(document.getElementById('page-content')?.offsetHeight);
116
+ if (this.showMenu)
117
+ this.widthCard =
118
+ Number(window.innerWidth) - (this.expandMenu() ? 333 : 93);
119
+ else
120
+ this.widthCard = Number(window.innerWidth);
121
+ }
122
+ callRoute(e, expand) {
123
+ console.log(e, expand);
124
+ if (!expand && !this.expandMenu() && this.showExpandMenu)
125
+ this.expandMenu.update((currentValue) => !currentValue);
126
+ if (this.widthPage() != 0 && this.widthPage() < 800 && this.expandMenu() && this.showExpandMenu)
127
+ this.expandMenu.set(false);
128
+ this.router.navigateByUrl(e);
129
+ }
130
+ changeEmpresa(event) {
131
+ this.changeEmpresaEmit.emit(event);
132
+ }
133
+ changeLicense(event) {
134
+ this.changeLicenseEmit.emit(event);
135
+ }
136
+ verifyMenuBehavior() {
137
+ if (this.widthPage() < 800)
138
+ this.expandMenu.set(false);
139
+ }
140
+ expandMenuEvent() {
141
+ this.expandMenuEmit.emit(this.expandMenu());
142
+ }
143
+ logout(event) {
144
+ this.logoutEmit.emit(event);
145
+ }
146
+ menusPerApp() {
147
+ if (this.router.url && this.menus && this.menus.length > 0) {
148
+ if (this.router.url === '/') {
149
+ // this.navigateToFirstMenu();
150
+ }
151
+ else {
152
+ const menuSelecionado = this.menus().find((menu) => menu.link && menu.link.includes(this.router.url.slice(1)));
153
+ if (menuSelecionado) {
154
+ this.navigateToMenu(menuSelecionado);
155
+ }
156
+ }
157
+ }
158
+ if (this.sistemasPanel) {
159
+ this.sistemasPanel.hide();
160
+ }
161
+ }
162
+ nameEmpresa(nomeLicenca) {
163
+ if (nomeLicenca) {
164
+ if (nomeLicenca.length > 23)
165
+ return nomeLicenca.substring(0, 23) + '...';
166
+ else
167
+ return nomeLicenca;
168
+ }
169
+ else
170
+ return '';
171
+ }
172
+ navigateToFirstMenu() {
173
+ const firstMenu = this.menus()[0];
174
+ if (firstMenu.indmenupai) {
175
+ const filhos = this.returnMenuChild(firstMenu.idmenu);
176
+ if (filhos) {
177
+ this.callRoute(filhos[0].link, true);
178
+ }
179
+ }
180
+ else {
181
+ this.callRoute(firstMenu.link, true);
182
+ }
183
+ }
184
+ navigateToMenu(menu) {
185
+ if (menu.menupai) {
186
+ const filhos = this.returnMenuChild(menu.idmenu);
187
+ if (filhos) {
188
+ this.callRoute(filhos[0].link, true);
189
+ }
190
+ }
191
+ else {
192
+ this.callRoute(menu.link, true);
193
+ }
194
+ }
195
+ ngOnChanges(changes) {
196
+ const latestRequest = changes['menus'];
197
+ if (latestRequest?.currentValue) {
198
+ this.menusPerApp();
199
+ }
200
+ this.selecionarMenu();
201
+ }
202
+ ngOnInit() {
203
+ this.formGroup = this.fb.group({
204
+ idmaster: [this.selectedMaster, []],
205
+ });
206
+ this.adjustWidthCard();
207
+ this.verifyMenuBehavior();
208
+ this.expandMenuEvent();
209
+ }
210
+ onWindowResize() {
211
+ this.adjustWidthCard();
212
+ this.verifyMenuBehavior();
213
+ this.cdr.detectChanges();
214
+ }
215
+ isSelectedMenuPai(menu) {
216
+ if (!this.expandMenu() && menu.indmenupai)
217
+ return menu.idmenu === this.menuSelecionado()?.idmenupai;
218
+ return false;
219
+ }
220
+ selecionarMenu() {
221
+ const url = new URL(this.router.url, window.origin);
222
+ const currentPath = url.pathname;
223
+ const purePath = currentPath.match(/^[^;]*/i);
224
+ const paths = purePath[0];
225
+ this.menus.set(this.menus().map((menu) => {
226
+ if (menu.link) {
227
+ return {
228
+ ...menu,
229
+ bgColor: paths.includes(menu.link) ? 'rgb(41, 185, 45)' : '',
230
+ textColor: paths.includes(menu.link) ? 'text-white' : '',
231
+ };
232
+ }
233
+ return menu;
234
+ }));
235
+ const menu = this.menus().find((menu) => {
236
+ return menu.link && paths.includes(menu.link);
237
+ });
238
+ this.menuSelecionado.set(menu);
239
+ }
240
+ returnMenuChild(idmenu) {
241
+ return this.menus().filter((x) => x.idmenupai == idmenu);
242
+ }
243
+ selectApp(idaplicativo) {
244
+ this.selectAppEmit.emit(idaplicativo);
245
+ }
246
+ showLicencas() {
247
+ return this.showDropdownLicenca && (this.masters || []).length > 1;
248
+ }
249
+ toggleMenu() {
250
+ this.expandMenu.update((currentValue) => !currentValue);
251
+ this.expandMenuEvent();
252
+ }
253
+ navigateToDefaultRoute() {
254
+ if (this.widthPage() < 800 && this.expandMenu())
255
+ this.expandMenu.set(false);
256
+ this.navigateToDefaultRouteEmit.emit();
257
+ }
258
+ // getSidebarState() {
259
+ // return this.expandMenu() ? 'expanded' : 'collapsed';
260
+ // }
261
+ get exibirNomes() {
262
+ return !this.showLicencas() && (this.masterName || this.empresaName);
263
+ }
264
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvLayoutComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormBuilder }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
265
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvLayoutComponent, selector: "kv-layout", inputs: { apps: { classPropertyName: "apps", publicName: "apps", isSignal: false, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: false, isRequired: false, transformFunction: null }, topActions: { classPropertyName: "topActions", publicName: "topActions", isSignal: true, isRequired: false, transformFunction: null }, breadCrumbItems: { classPropertyName: "breadCrumbItems", publicName: "breadCrumbItems", isSignal: false, isRequired: false, transformFunction: null }, masters: { classPropertyName: "masters", publicName: "masters", isSignal: false, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, expandMenu: { classPropertyName: "expandMenu", publicName: "expandMenu", isSignal: true, isRequired: false, transformFunction: null }, logoMenuExpand: { classPropertyName: "logoMenuExpand", publicName: "logoMenuExpand", isSignal: false, isRequired: false, transformFunction: null }, logoMenuHide: { classPropertyName: "logoMenuHide", publicName: "logoMenuHide", isSignal: false, isRequired: false, transformFunction: null }, selectedApp: { classPropertyName: "selectedApp", publicName: "selectedApp", isSignal: false, isRequired: false, transformFunction: null }, selectedEmpresa: { classPropertyName: "selectedEmpresa", publicName: "selectedEmpresa", isSignal: false, isRequired: false, transformFunction: null }, selectedMaster: { classPropertyName: "selectedMaster", publicName: "selectedMaster", isSignal: false, isRequired: false, transformFunction: null }, showButtonApps: { classPropertyName: "showButtonApps", publicName: "showButtonApps", isSignal: false, isRequired: false, transformFunction: null }, showButtonUser: { classPropertyName: "showButtonUser", publicName: "showButtonUser", isSignal: false, isRequired: false, transformFunction: null }, showExpandMenu: { classPropertyName: "showExpandMenu", publicName: "showExpandMenu", isSignal: false, isRequired: false, transformFunction: null }, showDropdownLicenca: { classPropertyName: "showDropdownLicenca", publicName: "showDropdownLicenca", isSignal: false, isRequired: false, transformFunction: null }, showMenu: { classPropertyName: "showMenu", publicName: "showMenu", isSignal: false, isRequired: false, transformFunction: null }, showTrocaEmpresa: { classPropertyName: "showTrocaEmpresa", publicName: "showTrocaEmpresa", isSignal: false, isRequired: false, transformFunction: null }, showBreadcrumb: { classPropertyName: "showBreadcrumb", publicName: "showBreadcrumb", isSignal: false, isRequired: false, transformFunction: null }, userName: { classPropertyName: "userName", publicName: "userName", isSignal: false, isRequired: false, transformFunction: null }, masterName: { classPropertyName: "masterName", publicName: "masterName", isSignal: false, isRequired: false, transformFunction: null }, empresaName: { classPropertyName: "empresaName", publicName: "empresaName", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { menus: "menusChange", expandMenu: "expandMenuChange", accessKeePassEmit: "accessKeePassEmit", changeEmpresaEmit: "changeEmpresaEmit", changeLicenseEmit: "changeLicenseEmit", expandMenuEmit: "expandMenuEmit", logoutEmit: "logoutEmit", selectAppEmit: "selectAppEmit", navigateToDefaultRouteEmit: "navigateToDefaultRouteEmit" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, queries: [{ propertyName: "topMenuActions", predicate: ["topMenuAction"], isSignal: true }], viewQueries: [{ propertyName: "meusDadosPanel", first: true, predicate: ["meusDadosPanel"], descendants: true }, { propertyName: "sidebarRef", first: true, predicate: ["sidebarRef"], descendants: true }, { propertyName: "sistemasPanel", first: true, predicate: ["sistemasPanel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row full-container\">\r\n @if(showMenu) {\r\n <p-sidebar\r\n #sidebarRef\r\n [visible]=\"true\"\r\n [showCloseIcon]=\"false\"\r\n [modal]=\"false\"\r\n [style]=\"{ width: expandMenu() ? '17rem' : '3.65rem' }\"\r\n styleClass=\"transition-all\"\r\n >\r\n <ng-template pTemplate=\"headless\">\r\n <div class=\"h-full flex flex-column overflow-hidden p-2\">\r\n \r\n <!-- LOGO -->\r\n <div class=\"flex-none flex flex-column gap-1 justify-content-between flex-shrink-0 overflow-hidden\">\r\n <div\r\n class=\"flex {{\r\n expandMenu() ? 'flex-row' : 'flex-column'\r\n }} align-items-center {{\r\n expandMenu()\r\n ? 'justify-content-between'\r\n : 'justify-content-center'\r\n }} py-1\"\r\n >\r\n <!-- Logo para o menu expandido -->\r\n @if(expandMenu() && logoMenuExpand){\r\n <img\r\n alt=\"Card\"\r\n [src]=\"logoMenuExpand\"\r\n [style.height]=\"'2.8rem'\"\r\n width=\"auto\"\r\n class=\"cursor-pointer p-0\"\r\n (click)=\"navigateToDefaultRoute()\"\r\n />\r\n }\r\n\r\n <!-- Logo para o menu minimizado-->\r\n @if(!expandMenu() && logoMenuHide){\r\n <img\r\n alt=\"Card\"\r\n [src]=\"logoMenuHide\"\r\n [style.height]=\"'2.8rem'\"\r\n width=\"auto\"\r\n class=\"\"\r\n (click)=\"navigateToDefaultRoute()\"\r\n />\r\n }\r\n\r\n <!-- Toggle menu -->\r\n @if(showExpandMenu){\r\n <kv-icon\r\n icon=\"menu-2\"\r\n [clickable]=\"true\"\r\n [pTooltip]=\"expandMenu() ? 'Ocultar Menu' : 'Expandir Menu'\"\r\n [tooltipPosition]=\"'right'\"\r\n (onClick)=\"toggleMenu()\"\r\n />\r\n }\r\n </div>\r\n\r\n @if(showTrocaEmpresa){\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu()? 'between px-2': 'center'}}\"\r\n (click)=\"changeEmpresa($event)\"\r\n >\r\n @if(expandMenu() && selectedEmpresa){\r\n <div\r\n class=\"flex flex-column \"\r\n (click)=\"changeEmpresa($event)\"\r\n >\r\n @if(this.selectedEmpresa.razaosocial){\r\n <span\r\n class=\"text-sm font-semibold mr-2\"\r\n [pTooltip]=\"this.selectedEmpresa.razaosocial\"\r\n [tooltipPosition]=\"'right'\"\r\n >\r\n {{ nameEmpresa(this.selectedEmpresa.razaosocial) }}\r\n </span>\r\n }\r\n @if(this.selectedEmpresa.cpfcnpj){\r\n <span class=\"text-sm mt-1\">{{\r\n this.selectedEmpresa.cpfcnpj | cpfCnpj\r\n }}</span>\r\n }\r\n </div>\r\n \r\n }\r\n <kv-icon\r\n icon=\"transfer\"\r\n [clickable]=\"true\"\r\n [pTooltip]=\"'Trocar de empresa'\"\r\n [tooltipPosition]=\"'right'\"\r\n (onClick)=\"changeEmpresa($event)\"\r\n class=\" side-menu-item py-1\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n\r\n <p-divider type=\"solid\"></p-divider>\r\n\r\n <!-- MENUS -->\r\n <div class=\"flex-1 list-none m-0 overflow-y-auto max-h-full\">\r\n <!-- menus -->\r\n @for (menu of menus(); track $index) {\r\n <li>\r\n <!-- menu que n\u00E3o tem filho -->\r\n @if( !menu.indmenupai && (!menu.idmenupai || menu.idmenupai == 0)){\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? menu.descricaomenu : ''\"\r\n (click)=\"callRoute(menu.link)\"\r\n >\r\n <kv-icon\r\n [icon]=\"menu.icone|| 'circle-dotted'\"\r\n />\r\n @if(expandMenu()){\r\n <label>{{menu.descricaomenu}}</label>\r\n }\r\n </div>\r\n }\r\n <!-- menu com filho -->\r\n @if(menu.indmenupai){\r\n <div>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? menu.descricaomenu : ''\"\r\n >\r\n <kv-icon\r\n [icon]=\"menu.icone|| 'circle-dotted'\"\r\n (click)=\"expandMenu()?'':filho.toggle($event)\"\r\n />\r\n @if(expandMenu()){\r\n <label>{{menu.descricaomenu}}</label>\r\n <kv-icon\r\n #chevronIcon\r\n icon=\"chevron-right\"\r\n (click)=\"filho.toggle($event)\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n </div>\r\n <div #appendMenuDiv class=\"appendMenuDiv\"></div>\r\n \r\n <p-menu #filho [popup]=\"true\" [model]=\"returnMenuChilds()(menu.idmenu)\" [appendTo]=\"appendMenuDiv\">\r\n <ng-template pTemplate=\"submenuheader\" let-item let-i=\"index\">\r\n <label class=\"font-medium pl-3 text-xs\">\r\n {{item.label}}\r\n </label>\r\n <div [style.height.rem]=\"0.5\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div \r\n class=\" side-menu-item py-2 pl-3 pr-1 text-sm\"\r\n (click)=\"callRoute(item.url)\"\r\n >\r\n {{item.label}}\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n\r\n </div>\r\n }\r\n </li>\r\n }\r\n </div>\r\n\r\n <p-divider type=\"solid\"></p-divider>\r\n \r\n <!-- APPS E SAIR -->\r\n <div class=\"flex-none list-none m-0 overflow-y-auto max-h-full\">\r\n <li>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? 'Sistemas' : ''\"\r\n (click)=\"!expandMenu() && menusistemas.toggle($event)\"\r\n >\r\n <kv-icon\r\n [icon]=\"'apps'\"\r\n />\r\n @if(expandMenu()){\r\n <label>Sistemas</label>\r\n <kv-icon\r\n #chevronIcon\r\n icon=\"chevron-right\"\r\n (click)=\"expandMenu() && menusistemas.toggle($event)\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n </div>\r\n <div #sistemasmenughost class=\"appendMenuDiv\"></div>\r\n <p-menu #menusistemas [popup]=\"true\" [model]=\"apps\" [appendTo]=\"sistemasmenughost\">\r\n <ng-template pTemplate=\"submenuheader\">\r\n <label class=\"font-medium pl-3 text-xs\">\r\n Sistemas\r\n </label>\r\n <div [style.height.rem]=\"0.5\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 pl-3 pr-1\"\r\n (click)=\"callRoute(item.rotapadrao)\"\r\n >\r\n <img\r\n [src]=\"item.urlicone\"\r\n class=\"h-2 w-2 border-round-lg\"\r\n />\r\n <div class=\"text-sm\">\r\n {{item.nomeaplicativo}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n </li>\r\n <li>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? 'Sair' : ''\"\r\n [style.color]=\"'red'\"\r\n [style.opacity]=\"0.5\"\r\n (click)=\"logout($event)\"\r\n >\r\n <kv-icon\r\n [icon]=\"'logout'\"\r\n \r\n />\r\n @if(expandMenu()){\r\n <label>Sair</label>\r\n }\r\n </div>\r\n </li>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-sidebar>\r\n }\r\n\r\n <!-- SE\u00C7\u00C3O CONTE\u00DADO -->\r\n <div\r\n class=\"w-auto h-screen page-content overflow-y-hidden flex flex-column\"\r\n id=\"page-content\"\r\n style=\"width: 100vw !important\"\r\n >\r\n <!-- TOPO -->\r\n <div\r\n class=\"flex flex-row flex-wrap align-items-center justify-content-between my-2 mx-2 lg:mx-3 mb-0 gap-1\"\r\n >\r\n @if(!showMenu) {\r\n <!-- Logo home -->\r\n <div>\r\n <img [src]=\"logoMenuExpand\" width=\"150\" />\r\n </div>\r\n } @else {\r\n <!-- Breadcrumbs -->\r\n @if(showBreadcrumb) {\r\n <div>\r\n <p class=\"text-xl font-semibold system-color breadcrumb-title\">\r\n {{\r\n breadCrumbItems[breadCrumbItems.length - 1] &&\r\n breadCrumbItems[breadCrumbItems.length - 1].label\r\n ? breadCrumbItems[breadCrumbItems.length - 1].label\r\n : \"\"\r\n }}\r\n </p>\r\n <p-breadcrumb\r\n *ngIf=\"widthCard > 400\"\r\n styleClass=\"border-none p-0 flex align-items-center h-1rem bg-transparent\"\r\n [model]=\"breadCrumbItems\"\r\n [style]=\"{ backgroundColor: '#eaeaea' }\"\r\n (onItemClick)=\"callRoute($event.item.routerLink, true)\"\r\n ></p-breadcrumb>\r\n </div>\r\n }\r\n @else {\r\n <!-- GHOST DIV PARA OCPUAR ESPA\u00C7O NO SPACE BETWEEN -->\r\n <div></div>\r\n }\r\n } \r\n @if (exibirNomes) { \r\n @if(widthCard >= 517) {\r\n <div\r\n class=\"w-auto flex flex-column justify-content-center align-items-center gap-2\"\r\n >\r\n @if (masterName) { <span class=\"font-semibold system-color\">{{ masterName }}</span> }\r\n @if (empresaName) {<span class=\"empresa-name\"\r\n >Organiza\u00E7\u00E3o: {{ empresaName }}</span\r\n >\r\n }\r\n </div>\r\n\r\n <div\r\n class=\"w-auto flex flex-row justify-content-center align-items-center gap-2\"\r\n >\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n } \r\n @else {\r\n <div\r\n class=\"w-auto flex flex-row justify-content-center align-items-center gap-2\"\r\n >\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n\r\n <div\r\n class=\"w-auto flex flex-column justify-content-center align-items-center gap-2\"\r\n >\r\n @if (masterName) { <span class=\"master-name\">{{ masterName }}</span> }\r\n @if (empresaName) {<span class=\"empresa-name\">{{ empresaName }}</span> }\r\n </div>\r\n } \r\n } \r\n @else { \r\n @if(widthPage() > 992){\r\n <!-- dropdown para sele\u00E7\u00E3o de empresa/licenca -->\r\n <dropdown-master\r\n *ngIf=\"showLicencas()\"\r\n class=\"max-w-25rem\"\r\n style=\"min-width: 20rem;\"\r\n formControlName=\"idmaster\"\r\n [formGroup]=\"formGroup\"\r\n [masters]=\"masters\"\r\n (onSelectionChange)=\"changeLicense($event)\"\r\n (onSelectionValue)=\"changeLicense($event)\"\r\n >\r\n </dropdown-master>\r\n }\r\n\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n <div class=\"w-auto flex flex-row align-items-center gap-2\">\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n\r\n @if(widthPage() <= 992){\r\n <!-- dropdown para sele\u00E7\u00E3o de empresa/licenca -->\r\n <dropdown-master\r\n *ngIf=\"showLicencas()\"\r\n class=\"w-full\"\r\n formControlName=\"idmaster\"\r\n [formGroup]=\"formGroup\"\r\n [masters]=\"masters\"\r\n (onSelectionChange)=\"changeLicense($event)\"\r\n (onSelectionValue)=\"changeLicense($event)\"\r\n >\r\n </dropdown-master>\r\n } \r\n }\r\n </div>\r\n\r\n <!-- Container -->\r\n <div class=\"overflow-hidden flex-1 py-2 px-2 lg:px-3\">\r\n <p-card\r\n styleClass=\"overflow-y-auto h-full max-h-full {{\r\n !showMenu && 'sm:overflow-y-hidden'\r\n }} card-container\"\r\n >\r\n <ng-content></ng-content>\r\n </p-card>\r\n </div>\r\n </div>\r\n\r\n <!-- Painel de aplicativos -->\r\n <p-overlayPanel\r\n #sistemasPanel\r\n [showTransitionOptions]=\"'350ms ease-out'\"\r\n [hideTransitionOptions]=\"'250ms ease-in'\"\r\n >\r\n <ng-template pTemplate=\"container\">\r\n <p class=\"title-style mt-3\">Sistemas</p>\r\n\r\n <div\r\n class=\"flex flex-row flex-wrap gap-3 align-items-center justify-content-center mt-5 mb-3\"\r\n style=\"width: 270px; height: 100%\"\r\n >\r\n @for (aplicativo of apps; track $index) { @if(aplicativo.urlicone ==\r\n \"https://work-assets.keevo.com.br/img/icone-keevocenter.png\") {\r\n <div\r\n class=\"btn-sistema text-xl md:text-3xl flex align-items-center justify-content-center\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n >\r\n {{ aplicativo.descricaoaplicativo.charAt(0).toLocaleUpperCase() }}\r\n </div>\r\n } @else {\r\n <img\r\n [src]=\"aplicativo.urlicone\"\r\n class=\"btn-sistema flex align-items-center justify-content-center\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n />\r\n } }\r\n\r\n <!-- <button\r\n *ngFor=\"let aplicativo of apps\"\r\n pButton\r\n pRipple\r\n class=\"btn-sistema-2 btn-sistema hover-btn-cor-padrao remove-focus h-4rem w-4rem\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n >\r\n {{ aplicativo.nomeaplicativo.charAt(0).toUpperCase() }}\r\n </button> -->\r\n </div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n\r\n <!-- Painel do usu\u00E1rio -->\r\n <p-overlayPanel\r\n #meusDadosPanel\r\n [showTransitionOptions]=\"'350ms ease-out'\"\r\n [hideTransitionOptions]=\"'250ms ease-in'\"\r\n >\r\n <ng-template pTemplate=\"container\">\r\n <p class=\"system-color font-medium text-lg px-2 py-3 m-0\">\r\n Ol\u00E1, {{ userName ? userName.split(\" \")[0] : \"Usu\u00E1rio\" }}!\r\n </p>\r\n <!-- <div class=\"mt-5 mb-3\"></div> -->\r\n \r\n <!-- Cont\u00EAiner com dire\u00E7\u00E3o em coluna para empilhar os bot\u00F5es -->\r\n <div class=\"flex flex-column\">\r\n <!-- Bot\u00F5es adicionais din\u00E2micos -->\r\n @for (action of actions; track $index) {\r\n <ng-container>\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 px-2\"\r\n (click)=\"action.action()\"\r\n >\r\n <kv-icon\r\n [icon]=\"action.icon\"\r\n />\r\n <span>{{action.label}}</span>\r\n </div>\r\n </ng-container>\r\n }\r\n\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 px-2\"\r\n (click)=\"accessKeePass($event)\"\r\n >\r\n <kv-icon\r\n icon=\"lock\"\r\n />\r\n <span>Acessar KeePass</span>\r\n </div>\r\n \r\n </div>\r\n </ng-template>\r\n \r\n </p-overlayPanel>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep body{margin:0!important}.full-container{background:rgb(var(--kv-kc-background-system),1);width:100vw;height:100vh;overflow-x:hidden;overflow-y:hidden}::ng-deep p-sidebar .p-sidebar{position:relative!important;background:rgb(var(--kv-background-card),1);box-shadow:0 0 .8rem #0000001a;border:1px solid rgb(var(--kv-color-system),.1);margin-left:.5rem;margin-top:.5rem;border-radius:.5rem;height:calc(100vh - 1rem)}.page-content{background:none;margin-left:.5rem;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px)}::ng-deep .card-container{background:rgb(var(--kv-kc-background-system),1);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);border:none;box-shadow:none;overflow-x:hidden}::ng-deep .card-container::-webkit-scrollbar{width:6px}::ng-deep .card-container::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .card-container::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .card-container:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .card-container::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}.side-menu-item{transition:all .2s ease-in-out;cursor:pointer;border-radius:.5rem;padding-left:.5rem;padding-right:.5rem}.side-menu-item:hover{background:rgb(var(--kv-color-system),.1);color:rgb(var(--kv-color-system),1)}.side-menu-item label{width:100%;cursor:pointer}::ng-deep .p-menu{background:rgb(var(--kv-background-card),1);border:1px solid rgb(var(--kv-color-system),.1);border-radius:.5rem}::ng-deep .p-menu .p-submenu-header{color:rgb(var(--kv-color-system),1);padding:0;margin:0}::ng-deep .p-menu .p-submenu-header label{opacity:.7}::ng-deep .p-menu .p-divider{margin:0;padding:0;margin-top:.2rem}.appendMenuDiv{position:absolute;top:-2.2rem;left:1.6rem}::ng-deep .p-divider{margin:0;padding:0;margin-top:.5rem;margin-bottom:.5rem}::ng-deep .p-overlaypanel-content{padding:0}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.KvIconComponent, selector: "kv-icon", inputs: ["icon", "numNotifications", "img", "clickable"], outputs: ["onClick"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i8.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: i9.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "component", type: i10.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i11.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i12.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i13.TopIconsComponent, selector: "kv-top-icons", inputs: ["topActions"] }, { kind: "component", type: i14.DropdownMasterComponent, selector: "dropdown-master", inputs: ["formControlName", "masters"] }, { kind: "pipe", type: i15.CpfCnpjPipe, name: "cpfCnpj" }] }); }
266
+ }
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvLayoutComponent, decorators: [{
268
+ type: Component,
269
+ args: [{ selector: 'kv-layout', template: "<div class=\"flex flex-row full-container\">\r\n @if(showMenu) {\r\n <p-sidebar\r\n #sidebarRef\r\n [visible]=\"true\"\r\n [showCloseIcon]=\"false\"\r\n [modal]=\"false\"\r\n [style]=\"{ width: expandMenu() ? '17rem' : '3.65rem' }\"\r\n styleClass=\"transition-all\"\r\n >\r\n <ng-template pTemplate=\"headless\">\r\n <div class=\"h-full flex flex-column overflow-hidden p-2\">\r\n \r\n <!-- LOGO -->\r\n <div class=\"flex-none flex flex-column gap-1 justify-content-between flex-shrink-0 overflow-hidden\">\r\n <div\r\n class=\"flex {{\r\n expandMenu() ? 'flex-row' : 'flex-column'\r\n }} align-items-center {{\r\n expandMenu()\r\n ? 'justify-content-between'\r\n : 'justify-content-center'\r\n }} py-1\"\r\n >\r\n <!-- Logo para o menu expandido -->\r\n @if(expandMenu() && logoMenuExpand){\r\n <img\r\n alt=\"Card\"\r\n [src]=\"logoMenuExpand\"\r\n [style.height]=\"'2.8rem'\"\r\n width=\"auto\"\r\n class=\"cursor-pointer p-0\"\r\n (click)=\"navigateToDefaultRoute()\"\r\n />\r\n }\r\n\r\n <!-- Logo para o menu minimizado-->\r\n @if(!expandMenu() && logoMenuHide){\r\n <img\r\n alt=\"Card\"\r\n [src]=\"logoMenuHide\"\r\n [style.height]=\"'2.8rem'\"\r\n width=\"auto\"\r\n class=\"\"\r\n (click)=\"navigateToDefaultRoute()\"\r\n />\r\n }\r\n\r\n <!-- Toggle menu -->\r\n @if(showExpandMenu){\r\n <kv-icon\r\n icon=\"menu-2\"\r\n [clickable]=\"true\"\r\n [pTooltip]=\"expandMenu() ? 'Ocultar Menu' : 'Expandir Menu'\"\r\n [tooltipPosition]=\"'right'\"\r\n (onClick)=\"toggleMenu()\"\r\n />\r\n }\r\n </div>\r\n\r\n @if(showTrocaEmpresa){\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu()? 'between px-2': 'center'}}\"\r\n (click)=\"changeEmpresa($event)\"\r\n >\r\n @if(expandMenu() && selectedEmpresa){\r\n <div\r\n class=\"flex flex-column \"\r\n (click)=\"changeEmpresa($event)\"\r\n >\r\n @if(this.selectedEmpresa.razaosocial){\r\n <span\r\n class=\"text-sm font-semibold mr-2\"\r\n [pTooltip]=\"this.selectedEmpresa.razaosocial\"\r\n [tooltipPosition]=\"'right'\"\r\n >\r\n {{ nameEmpresa(this.selectedEmpresa.razaosocial) }}\r\n </span>\r\n }\r\n @if(this.selectedEmpresa.cpfcnpj){\r\n <span class=\"text-sm mt-1\">{{\r\n this.selectedEmpresa.cpfcnpj | cpfCnpj\r\n }}</span>\r\n }\r\n </div>\r\n \r\n }\r\n <kv-icon\r\n icon=\"transfer\"\r\n [clickable]=\"true\"\r\n [pTooltip]=\"'Trocar de empresa'\"\r\n [tooltipPosition]=\"'right'\"\r\n (onClick)=\"changeEmpresa($event)\"\r\n class=\" side-menu-item py-1\"\r\n />\r\n </div>\r\n }\r\n </div>\r\n\r\n <p-divider type=\"solid\"></p-divider>\r\n\r\n <!-- MENUS -->\r\n <div class=\"flex-1 list-none m-0 overflow-y-auto max-h-full\">\r\n <!-- menus -->\r\n @for (menu of menus(); track $index) {\r\n <li>\r\n <!-- menu que n\u00E3o tem filho -->\r\n @if( !menu.indmenupai && (!menu.idmenupai || menu.idmenupai == 0)){\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? menu.descricaomenu : ''\"\r\n (click)=\"callRoute(menu.link)\"\r\n >\r\n <kv-icon\r\n [icon]=\"menu.icone|| 'circle-dotted'\"\r\n />\r\n @if(expandMenu()){\r\n <label>{{menu.descricaomenu}}</label>\r\n }\r\n </div>\r\n }\r\n <!-- menu com filho -->\r\n @if(menu.indmenupai){\r\n <div>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? menu.descricaomenu : ''\"\r\n >\r\n <kv-icon\r\n [icon]=\"menu.icone|| 'circle-dotted'\"\r\n (click)=\"expandMenu()?'':filho.toggle($event)\"\r\n />\r\n @if(expandMenu()){\r\n <label>{{menu.descricaomenu}}</label>\r\n <kv-icon\r\n #chevronIcon\r\n icon=\"chevron-right\"\r\n (click)=\"filho.toggle($event)\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n </div>\r\n <div #appendMenuDiv class=\"appendMenuDiv\"></div>\r\n \r\n <p-menu #filho [popup]=\"true\" [model]=\"returnMenuChilds()(menu.idmenu)\" [appendTo]=\"appendMenuDiv\">\r\n <ng-template pTemplate=\"submenuheader\" let-item let-i=\"index\">\r\n <label class=\"font-medium pl-3 text-xs\">\r\n {{item.label}}\r\n </label>\r\n <div [style.height.rem]=\"0.5\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div \r\n class=\" side-menu-item py-2 pl-3 pr-1 text-sm\"\r\n (click)=\"callRoute(item.url)\"\r\n >\r\n {{item.label}}\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n\r\n </div>\r\n }\r\n </li>\r\n }\r\n </div>\r\n\r\n <p-divider type=\"solid\"></p-divider>\r\n \r\n <!-- APPS E SAIR -->\r\n <div class=\"flex-none list-none m-0 overflow-y-auto max-h-full\">\r\n <li>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? 'Sistemas' : ''\"\r\n (click)=\"!expandMenu() && menusistemas.toggle($event)\"\r\n >\r\n <kv-icon\r\n [icon]=\"'apps'\"\r\n />\r\n @if(expandMenu()){\r\n <label>Sistemas</label>\r\n <kv-icon\r\n #chevronIcon\r\n icon=\"chevron-right\"\r\n (click)=\"expandMenu() && menusistemas.toggle($event)\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n </div>\r\n <div #sistemasmenughost class=\"appendMenuDiv\"></div>\r\n <p-menu #menusistemas [popup]=\"true\" [model]=\"apps\" [appendTo]=\"sistemasmenughost\">\r\n <ng-template pTemplate=\"submenuheader\">\r\n <label class=\"font-medium pl-3 text-xs\">\r\n Sistemas\r\n </label>\r\n <div [style.height.rem]=\"0.5\"></div>\r\n </ng-template>\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 pl-3 pr-1\"\r\n (click)=\"callRoute(item.rotapadrao)\"\r\n >\r\n <img\r\n [src]=\"item.urlicone\"\r\n class=\"h-2 w-2 border-round-lg\"\r\n />\r\n <div class=\"text-sm\">\r\n {{item.nomeaplicativo}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n </li>\r\n <li>\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-{{expandMenu() ?'between':'center'}} gap-2 side-menu-item py-2\"\r\n [pTooltip]=\"!expandMenu() ? 'Sair' : ''\"\r\n [style.color]=\"'red'\"\r\n [style.opacity]=\"0.5\"\r\n (click)=\"logout($event)\"\r\n >\r\n <kv-icon\r\n [icon]=\"'logout'\"\r\n \r\n />\r\n @if(expandMenu()){\r\n <label>Sair</label>\r\n }\r\n </div>\r\n </li>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-sidebar>\r\n }\r\n\r\n <!-- SE\u00C7\u00C3O CONTE\u00DADO -->\r\n <div\r\n class=\"w-auto h-screen page-content overflow-y-hidden flex flex-column\"\r\n id=\"page-content\"\r\n style=\"width: 100vw !important\"\r\n >\r\n <!-- TOPO -->\r\n <div\r\n class=\"flex flex-row flex-wrap align-items-center justify-content-between my-2 mx-2 lg:mx-3 mb-0 gap-1\"\r\n >\r\n @if(!showMenu) {\r\n <!-- Logo home -->\r\n <div>\r\n <img [src]=\"logoMenuExpand\" width=\"150\" />\r\n </div>\r\n } @else {\r\n <!-- Breadcrumbs -->\r\n @if(showBreadcrumb) {\r\n <div>\r\n <p class=\"text-xl font-semibold system-color breadcrumb-title\">\r\n {{\r\n breadCrumbItems[breadCrumbItems.length - 1] &&\r\n breadCrumbItems[breadCrumbItems.length - 1].label\r\n ? breadCrumbItems[breadCrumbItems.length - 1].label\r\n : \"\"\r\n }}\r\n </p>\r\n <p-breadcrumb\r\n *ngIf=\"widthCard > 400\"\r\n styleClass=\"border-none p-0 flex align-items-center h-1rem bg-transparent\"\r\n [model]=\"breadCrumbItems\"\r\n [style]=\"{ backgroundColor: '#eaeaea' }\"\r\n (onItemClick)=\"callRoute($event.item.routerLink, true)\"\r\n ></p-breadcrumb>\r\n </div>\r\n }\r\n @else {\r\n <!-- GHOST DIV PARA OCPUAR ESPA\u00C7O NO SPACE BETWEEN -->\r\n <div></div>\r\n }\r\n } \r\n @if (exibirNomes) { \r\n @if(widthCard >= 517) {\r\n <div\r\n class=\"w-auto flex flex-column justify-content-center align-items-center gap-2\"\r\n >\r\n @if (masterName) { <span class=\"font-semibold system-color\">{{ masterName }}</span> }\r\n @if (empresaName) {<span class=\"empresa-name\"\r\n >Organiza\u00E7\u00E3o: {{ empresaName }}</span\r\n >\r\n }\r\n </div>\r\n\r\n <div\r\n class=\"w-auto flex flex-row justify-content-center align-items-center gap-2\"\r\n >\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n } \r\n @else {\r\n <div\r\n class=\"w-auto flex flex-row justify-content-center align-items-center gap-2\"\r\n >\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n\r\n <div\r\n class=\"w-auto flex flex-column justify-content-center align-items-center gap-2\"\r\n >\r\n @if (masterName) { <span class=\"master-name\">{{ masterName }}</span> }\r\n @if (empresaName) {<span class=\"empresa-name\">{{ empresaName }}</span> }\r\n </div>\r\n } \r\n } \r\n @else { \r\n @if(widthPage() > 992){\r\n <!-- dropdown para sele\u00E7\u00E3o de empresa/licenca -->\r\n <dropdown-master\r\n *ngIf=\"showLicencas()\"\r\n class=\"max-w-25rem\"\r\n style=\"min-width: 20rem;\"\r\n formControlName=\"idmaster\"\r\n [formGroup]=\"formGroup\"\r\n [masters]=\"masters\"\r\n (onSelectionChange)=\"changeLicense($event)\"\r\n (onSelectionValue)=\"changeLicense($event)\"\r\n >\r\n </dropdown-master>\r\n }\r\n\r\n <!-- Navega\u00E7\u00E3o de sistemas e usu\u00E1rios -->\r\n <div class=\"w-auto flex flex-row align-items-center gap-2\">\r\n @for (topAction of topMenuActions(); track $index) {\r\n <ng-container *ngTemplateOutlet=\"topAction\" />\r\n }\r\n <kv-top-icons\r\n [topActions]=\"topActions()\"\r\n />\r\n\r\n </div>\r\n\r\n @if(widthPage() <= 992){\r\n <!-- dropdown para sele\u00E7\u00E3o de empresa/licenca -->\r\n <dropdown-master\r\n *ngIf=\"showLicencas()\"\r\n class=\"w-full\"\r\n formControlName=\"idmaster\"\r\n [formGroup]=\"formGroup\"\r\n [masters]=\"masters\"\r\n (onSelectionChange)=\"changeLicense($event)\"\r\n (onSelectionValue)=\"changeLicense($event)\"\r\n >\r\n </dropdown-master>\r\n } \r\n }\r\n </div>\r\n\r\n <!-- Container -->\r\n <div class=\"overflow-hidden flex-1 py-2 px-2 lg:px-3\">\r\n <p-card\r\n styleClass=\"overflow-y-auto h-full max-h-full {{\r\n !showMenu && 'sm:overflow-y-hidden'\r\n }} card-container\"\r\n >\r\n <ng-content></ng-content>\r\n </p-card>\r\n </div>\r\n </div>\r\n\r\n <!-- Painel de aplicativos -->\r\n <p-overlayPanel\r\n #sistemasPanel\r\n [showTransitionOptions]=\"'350ms ease-out'\"\r\n [hideTransitionOptions]=\"'250ms ease-in'\"\r\n >\r\n <ng-template pTemplate=\"container\">\r\n <p class=\"title-style mt-3\">Sistemas</p>\r\n\r\n <div\r\n class=\"flex flex-row flex-wrap gap-3 align-items-center justify-content-center mt-5 mb-3\"\r\n style=\"width: 270px; height: 100%\"\r\n >\r\n @for (aplicativo of apps; track $index) { @if(aplicativo.urlicone ==\r\n \"https://work-assets.keevo.com.br/img/icone-keevocenter.png\") {\r\n <div\r\n class=\"btn-sistema text-xl md:text-3xl flex align-items-center justify-content-center\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n >\r\n {{ aplicativo.descricaoaplicativo.charAt(0).toLocaleUpperCase() }}\r\n </div>\r\n } @else {\r\n <img\r\n [src]=\"aplicativo.urlicone\"\r\n class=\"btn-sistema flex align-items-center justify-content-center\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n />\r\n } }\r\n\r\n <!-- <button\r\n *ngFor=\"let aplicativo of apps\"\r\n pButton\r\n pRipple\r\n class=\"btn-sistema-2 btn-sistema hover-btn-cor-padrao remove-focus h-4rem w-4rem\"\r\n [pTooltip]=\"aplicativo?.descricaoaplicativo\"\r\n [tooltipPosition]=\"'left'\"\r\n (click)=\"selectApp(aplicativo.idaplicativo)\"\r\n >\r\n {{ aplicativo.nomeaplicativo.charAt(0).toUpperCase() }}\r\n </button> -->\r\n </div>\r\n </ng-template>\r\n </p-overlayPanel>\r\n\r\n <!-- Painel do usu\u00E1rio -->\r\n <p-overlayPanel\r\n #meusDadosPanel\r\n [showTransitionOptions]=\"'350ms ease-out'\"\r\n [hideTransitionOptions]=\"'250ms ease-in'\"\r\n >\r\n <ng-template pTemplate=\"container\">\r\n <p class=\"system-color font-medium text-lg px-2 py-3 m-0\">\r\n Ol\u00E1, {{ userName ? userName.split(\" \")[0] : \"Usu\u00E1rio\" }}!\r\n </p>\r\n <!-- <div class=\"mt-5 mb-3\"></div> -->\r\n \r\n <!-- Cont\u00EAiner com dire\u00E7\u00E3o em coluna para empilhar os bot\u00F5es -->\r\n <div class=\"flex flex-column\">\r\n <!-- Bot\u00F5es adicionais din\u00E2micos -->\r\n @for (action of actions; track $index) {\r\n <ng-container>\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 px-2\"\r\n (click)=\"action.action()\"\r\n >\r\n <kv-icon\r\n [icon]=\"action.icon\"\r\n />\r\n <span>{{action.label}}</span>\r\n </div>\r\n </ng-container>\r\n }\r\n\r\n <div class=\"flex flex-row align-items-center gap-2 side-menu-item py-2 px-2\"\r\n (click)=\"accessKeePass($event)\"\r\n >\r\n <kv-icon\r\n icon=\"lock\"\r\n />\r\n <span>Acessar KeePass</span>\r\n </div>\r\n \r\n </div>\r\n </ng-template>\r\n \r\n </p-overlayPanel>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/dist/tabler-icons.min.css\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep body{margin:0!important}.full-container{background:rgb(var(--kv-kc-background-system),1);width:100vw;height:100vh;overflow-x:hidden;overflow-y:hidden}::ng-deep p-sidebar .p-sidebar{position:relative!important;background:rgb(var(--kv-background-card),1);box-shadow:0 0 .8rem #0000001a;border:1px solid rgb(var(--kv-color-system),.1);margin-left:.5rem;margin-top:.5rem;border-radius:.5rem;height:calc(100vh - 1rem)}.page-content{background:none;margin-left:.5rem;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px)}::ng-deep .card-container{background:rgb(var(--kv-kc-background-system),1);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);border:none;box-shadow:none;overflow-x:hidden}::ng-deep .card-container::-webkit-scrollbar{width:6px}::ng-deep .card-container::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .card-container::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .card-container:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .card-container::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}.side-menu-item{transition:all .2s ease-in-out;cursor:pointer;border-radius:.5rem;padding-left:.5rem;padding-right:.5rem}.side-menu-item:hover{background:rgb(var(--kv-color-system),.1);color:rgb(var(--kv-color-system),1)}.side-menu-item label{width:100%;cursor:pointer}::ng-deep .p-menu{background:rgb(var(--kv-background-card),1);border:1px solid rgb(var(--kv-color-system),.1);border-radius:.5rem}::ng-deep .p-menu .p-submenu-header{color:rgb(var(--kv-color-system),1);padding:0;margin:0}::ng-deep .p-menu .p-submenu-header label{opacity:.7}::ng-deep .p-menu .p-divider{margin:0;padding:0;margin-top:.2rem}.appendMenuDiv{position:absolute;top:-2.2rem;left:1.6rem}::ng-deep .p-divider{margin:0;padding:0;margin-top:.5rem;margin-bottom:.5rem}::ng-deep .p-overlaypanel-content{padding:0}\n"] }]
270
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FormBuilder }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { apps: [{
271
+ type: Input
272
+ }], actions: [{
273
+ type: Input
274
+ }], breadCrumbItems: [{
275
+ type: Input
276
+ }], masters: [{
277
+ type: Input
278
+ }], logoMenuExpand: [{
279
+ type: Input
280
+ }], logoMenuHide: [{
281
+ type: Input
282
+ }], selectedApp: [{
283
+ type: Input
284
+ }], selectedEmpresa: [{
285
+ type: Input
286
+ }], selectedMaster: [{
287
+ type: Input
288
+ }], showButtonApps: [{
289
+ type: Input
290
+ }], showButtonUser: [{
291
+ type: Input
292
+ }], showExpandMenu: [{
293
+ type: Input
294
+ }], showDropdownLicenca: [{
295
+ type: Input
296
+ }], showMenu: [{
297
+ type: Input
298
+ }], showTrocaEmpresa: [{
299
+ type: Input
300
+ }], showBreadcrumb: [{
301
+ type: Input
302
+ }], userName: [{
303
+ type: Input
304
+ }], masterName: [{
305
+ type: Input
306
+ }], empresaName: [{
307
+ type: Input
308
+ }], accessKeePassEmit: [{
309
+ type: Output
310
+ }], changeEmpresaEmit: [{
311
+ type: Output
312
+ }], changeLicenseEmit: [{
313
+ type: Output
314
+ }], expandMenuEmit: [{
315
+ type: Output
316
+ }], logoutEmit: [{
317
+ type: Output
318
+ }], selectAppEmit: [{
319
+ type: Output
320
+ }], navigateToDefaultRouteEmit: [{
321
+ type: Output
322
+ }], meusDadosPanel: [{
323
+ type: ViewChild,
324
+ args: ['meusDadosPanel']
325
+ }], sidebarRef: [{
326
+ type: ViewChild,
327
+ args: ['sidebarRef']
328
+ }], sistemasPanel: [{
329
+ type: ViewChild,
330
+ args: ['sistemasPanel']
331
+ }], onWindowResize: [{
332
+ type: HostListener,
333
+ args: ['window:resize', ['$event']]
334
+ }] } });
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC9sYXlvdXQva3YtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEVBR04sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9EdkIsTUFBTSxPQUFPLGlCQUFpQjtJQThFNUIsR0FBRyxDQUFDLENBQUs7UUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFnREQsWUFDVSxHQUFzQixFQUN0QixFQUFlLEVBQ2IsTUFBYyxFQUNkLGNBQThCO1FBSGhDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbklqQyxTQUFJLEdBVVAsRUFBRSxDQUFDO1FBRUEsWUFBTyxHQUEwRCxFQUFFLENBQUM7UUFFN0UsZUFBVSxHQUFHLEtBQUssQ0FBb0I7WUFDcEM7Z0JBQ0UsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsR0FBRyxFQUFF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QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXVKbkIsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBlZmZlY3QsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBzaWduYWwsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgV3JpdGFibGVTaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb3BBY3Rpb25zTW9kZWwgfSBmcm9tICcuLi90b3AtaWNvbnMvdG9wLWljb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGxpbmsgfSBmcm9tICdkMyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNZW51SXRlbSB7XHJcbiAgaWRtZW51OiBudW1iZXI7XHJcbiAgaWRtZW51cGFpOiBudW1iZXIgfCBudWxsO1xyXG4gIGlkYXBsaWNhdGl2bzogbnVtYmVyO1xyXG4gIGRlc2NyaWNhb21lbnU6IHN0cmluZztcclxuICBsaW5rOiBzdHJpbmcgfCBudWxsO1xyXG4gIGljb25lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGluZHB1YmxpY2FkbzogYm9vbGVhbjtcclxuICBpbmRtZW51cGFpOiBib29sZWFuO1xyXG4gIGxpc3RhaWR2aXNhb21lbnU6IG51bWJlcltdO1xyXG4gIGJnQ29sb3I/OiBzdHJpbmc7XHJcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG59IFxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQTWVudUl0ZW17XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBcclxuICBpdGVtczogUE1lbnVJdGVtW107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICAvLyBhbmltYXRpb25zOiBbXHJcbiAgLy8gICB0cmlnZ2VyKCdzaWRlYmFyV2lkdGhUcmlnZ2VyJywgW1xyXG4gIC8vICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe1xyXG4gIC8vICAgICAgIHdpZHRoOiAnNjBweCdcclxuICAvLyAgICAgfSkpLFxyXG4gIC8vICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7XHJcbiAgLy8gICAgICAgd2lkdGg6ICczNTlweCdcclxuICAvLyAgICAgfSkpLFxyXG4gIC8vICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1vdXQnKSlcclxuICAvLyAgIF0pXHJcbiAgLy8gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgYXBwczoge1xyXG4gICAgaWRhcGxpY2F0aXZvOiBudW1iZXI7XHJcbiAgICBpZHNpc3RlbWE6IG51bWJlcjtcclxuICAgIG5vbWVhcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICBkZXNjcmljYW9hcGxpY2F0aXZvOiBzdHJpbmc7XHJcbiAgICByb3RhcGFkcmFvOiBzdHJpbmc7XHJcbiAgICBpbmRwdWJsaWNhZG86IGJvb2xlYW47XHJcbiAgICBpbmRwdWJsaWNhY2FvZ3JhZGF0aXZhOiBib29sZWFuO1xyXG4gICAgaW5kZXhpZ2VlbXByZXNhZW50cmFkYTogYm9vbGVhbjtcclxuICAgIHVybGljb25lPzogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiB7IGljb246IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgYWN0aW9uOiAoKSA9PiB2b2lkIH1bXSA9IFtdO1xyXG5cclxuICB0b3BBY3Rpb25zID0gaW5wdXQ8VG9wQWN0aW9uc01vZGVsW10+KFtcclxuICAgIHtcclxuICAgICAgaWNvbjogJ2xpc3QtY2hlY2snLFxyXG4gICAgICB0b29sdGlwOiAnVGFyZWZhcycsXHJcbiAgICAgIG51bU5vdGlmaWNhdGlvbnM6IDIsXHJcbiAgICAgIGFjdGlvbjogKCkgPT4ge30sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiAnYmVsbCcsXHJcbiAgICAgIHRvb2x0aXA6ICdOb3RpZmljYcOnw7VlcycsXHJcbiAgICAgIG51bU5vdGlmaWNhdGlvbnM6IDAsXHJcbiAgICAgIGFjdGlvbjogKCkgPT4ge30sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiAnc3BhcmtsZXMnLFxyXG4gICAgICB0b29sdGlwOiAnS2lhcmEnLFxyXG4gICAgICBudW1Ob3RpZmljYXRpb25zOiAwLFxyXG4gICAgICBhY3Rpb246ICgpID0+IHt9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogJ21lc3NhZ2UnLFxyXG4gICAgICB0b29sdGlwOiAnQ29tdW5pY2Fkb3InLFxyXG4gICAgICBudW1Ob3RpZmljYXRpb25zOiAzLFxyXG4gICAgICBhY3Rpb246ICgpID0+IHt9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogJ3BlcnNvbicsXHJcbiAgICAgIHRvb2x0aXA6ICdNZXVzIERhZG9zJyxcclxuICAgICAgbnVtTm90aWZpY2F0aW9uczogMCxcclxuICAgICAgaW1nOiAnaHR0cHM6Ly9jZG4uY29tdW5oYW8uY29tLmJyL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIyLzA5LzI3MDg1NDAzL2FsZXhhbmRyZW1vcmFlcy5qcGcnLFxyXG4gICAgICBhY3Rpb246ICgpID0+IHtcclxuICAgICAgICB0aGlzLm1ldXNEYWRvc1BhbmVsLnNob3coZXZlbnQpO1xyXG4gICAgICB9LFxyXG4gICAgfVxyXG4gIF0pO1xyXG5cclxuXHJcbiAgQElucHV0KCkgYnJlYWRDcnVtYkl0ZW1zOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgcm91dGVyTGluazogc3RyaW5nO1xyXG4gIH1bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBtYXN0ZXJzOiB7XHJcbiAgICBpZG1hc3RlcjogbnVtYmVyO1xyXG4gICAgY3BmY25wajogc3RyaW5nO1xyXG4gICAgbm9tZTogc3RyaW5nO1xyXG4gICAgaWRtYXN0ZXJub21lOiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIG1lbnVzID0gbW9kZWw8TGF5b3V0TWVudUl0ZW1bXT4oW10pO1xyXG5cclxuXHJcbiAgbWVudVBNb2RlbHMgPSBjb21wdXRlZDxNZW51SXRlbVtdPigoKSA9PiB7XHJcbiAgICBjb25zdCBjb252ZXJ0VG9NZW51SXRlbSA9IChtZW51OiBMYXlvdXRNZW51SXRlbSk6IE1lbnVJdGVtID0+ICh7XHJcbiAgICAgIGxhYmVsOiBtZW51LmRlc2NyaWNhb21lbnUsXHJcbiAgICAgIGlkOiBtZW51LmlkbWVudS50b1N0cmluZygpLFxyXG4gICAgICBpdGVtczogdGhpcy5yZXR1cm5NZW51Q2hpbGQobWVudS5pZG1lbnUpLm1hcChjb252ZXJ0VG9NZW51SXRlbSksXHJcbiAgICAgIHVybDogbWVudS5saW5rID8/IHVuZGVmaW5lZCxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLm1lbnVzKCkubWFwKGNvbnZlcnRUb01lbnVJdGVtKTtcclxuICB9KTtcclxuXHJcbiAgdmVyKHg6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKHgpXHJcbiAgfVxyXG5cclxuICByZXR1cm5NZW51Q2hpbGRzID0gY29tcHV0ZWQoKCkgPT4gKGlkbWVudTogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5tZW51UE1vZGVscygpLmZpbHRlcigoeDogTWVudUl0ZW0pID0+IE51bWJlcih4LmlkKSA9PT0gaWRtZW51KTtcclxuICB9KTtcclxuXHJcbiAgZXhwYW5kTWVudSA9IG1vZGVsPGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBASW5wdXQoKSBsb2dvTWVudUV4cGFuZCE6IGFueTtcclxuICBASW5wdXQoKSBsb2dvTWVudUhpZGUhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQXBwITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRW1wcmVzYSE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZE1hc3RlciE6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2hvd0J1dHRvbkFwcHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b25Vc2VyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RXhwYW5kTWVudTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0Ryb3Bkb3duTGljZW5jYTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd01lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dUcm9jYUVtcHJlc2E6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93QnJlYWRjcnVtYjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlck5hbWU6IHN0cmluZyA9ICdVc3XDoXJpbyc7XHJcbiAgQElucHV0KCkgbWFzdGVyTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbXByZXNhTmFtZSE6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGFjY2Vzc0tlZVBhc3NFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlRW1wcmVzYUVtaXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlTGljZW5zZUVtaXQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBleHBhbmRNZW51RW1pdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2dvdXRFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0QXBwRW1pdDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWV1c0RhZG9zUGFuZWwnKSBtZXVzRGFkb3NQYW5lbCE6IE92ZXJsYXlQYW5lbDtcclxuICBAVmlld0NoaWxkKCdzaWRlYmFyUmVmJykgc2lkZWJhclJlZiE6IFNpZGViYXI7XHJcbiAgQFZpZXdDaGlsZCgnc2lzdGVtYXNQYW5lbCcpIHNpc3RlbWFzUGFuZWwhOiBPdmVybGF5UGFuZWw7XHJcblxyXG4gIHRvcE1lbnVBY3Rpb25zID0gY29udGVudENoaWxkcmVuPFRlbXBsYXRlUmVmPGFueT4+KCd0b3BNZW51QWN0aW9uJyk7XHJcblxyXG4gIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICBoZWlnaHRDYXJkITogbnVtYmVyO1xyXG4gIG1vdXNlT3ZlckZpbGhvSW5kZXg6IGFueTtcclxuICBtb3VzZU92ZXJJbmRleDogYW55O1xyXG4gIHdpZHRoQ2FyZCE6IG51bWJlcjtcclxuXHJcbiAgd2lkdGhQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWNjZXNzS2VlUGFzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFjY2Vzc0tlZVBhc3NFbWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkanVzdEhlaWdodENhcmQoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLndpZHRoQ2FyZCA+IDQwMCkge1xyXG4gICAgICBpZiAodGhpcy53aWR0aFBhZ2UoKSA8IDk5MiAmJiB0aGlzLnNob3dMaWNlbmNhcygpKSByZXR1cm4gMTQ1O1xyXG5cclxuICAgICAgaWYgKHRoaXMuYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCA+IDApIHJldHVybiA5NTtcclxuICAgICAgZWxzZSByZXR1cm4gODU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDEyNTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRqdXN0V2lkdGhDYXJkKCkge1xyXG4gICAgdGhpcy53aWR0aFBhZ2Uuc2V0KHdpbmRvdy5pbm5lcldpZHRoKTtcclxuXHJcbiAgICB0aGlzLmhlaWdodENhcmQgPSBOdW1iZXIoXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWNvbnRlbnQnKT8ub2Zmc2V0SGVpZ2h0XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc2hvd01lbnUpXHJcbiAgICAgIHRoaXMud2lkdGhDYXJkID1cclxuICAgICAgICBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpIC0gKHRoaXMuZXhwYW5kTWVudSgpID8gMzMzIDogOTMpO1xyXG4gICAgZWxzZSB0aGlzLndpZHRoQ2FyZCA9IE51bWJlcih3aW5kb3cuaW5uZXJXaWR0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsbFJvdXRlKGU6IGFueSwgZXhwYW5kPzogYm9vbGVhbikge1xyXG4gICAgY29uc29sZS5sb2coZSwgZXhwYW5kKVxyXG4gICAgaWYgKCFleHBhbmQgJiYgIXRoaXMuZXhwYW5kTWVudSgpICYmIHRoaXMuc2hvd0V4cGFuZE1lbnUpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgIT0gMCAmJiB0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpICYmIHRoaXMuc2hvd0V4cGFuZE1lbnUpXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS5zZXQoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlRW1wcmVzYShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNoYW5nZUVtcHJlc2FFbWl0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUxpY2Vuc2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jaGFuZ2VMaWNlbnNlRW1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmVyaWZ5TWVudUJlaGF2aW9yKCkge1xyXG4gICAgaWYgKHRoaXMud2lkdGhQYWdlKCkgPCA4MDApXHJcbiAgICAgIHRoaXMuZXhwYW5kTWVudS5zZXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHBhbmRNZW51RXZlbnQoKSB7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFbWl0LmVtaXQodGhpcy5leHBhbmRNZW51KCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmxvZ291dEVtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lbnVzUGVyQXBwKCkge1xyXG4gICAgaWYgKHRoaXMucm91dGVyLnVybCAmJiB0aGlzLm1lbnVzICYmIHRoaXMubWVudXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnLycpIHtcclxuICAgICAgICAvLyB0aGlzLm5hdmlnYXRlVG9GaXJzdE1lbnUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBtZW51U2VsZWNpb25hZG8gPSB0aGlzLm1lbnVzKCkuZmluZChcclxuICAgICAgICAgIChtZW51OiBhbnkpID0+XHJcbiAgICAgICAgICAgIG1lbnUubGluayAmJiBtZW51LmxpbmsuaW5jbHVkZXModGhpcy5yb3V0ZXIudXJsLnNsaWNlKDEpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKG1lbnVTZWxlY2lvbmFkbykge1xyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTWVudShtZW51U2VsZWNpb25hZG8pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNpc3RlbWFzUGFuZWwpIHtcclxuICAgICAgdGhpcy5zaXN0ZW1hc1BhbmVsLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYW1lRW1wcmVzYShub21lTGljZW5jYTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChub21lTGljZW5jYSkge1xyXG4gICAgICBpZiAobm9tZUxpY2VuY2EubGVuZ3RoID4gMjMpIHJldHVybiBub21lTGljZW5jYS5zdWJzdHJpbmcoMCwgMjMpICsgJy4uLic7XHJcbiAgICAgIGVsc2UgcmV0dXJuIG5vbWVMaWNlbmNhO1xyXG4gICAgfSBlbHNlIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpcnN0TWVudSA9IHRoaXMubWVudXMoKVswXTtcclxuICAgIGlmIChmaXJzdE1lbnUuaW5kbWVudXBhaSkge1xyXG4gICAgICBjb25zdCBmaWxob3MgPSB0aGlzLnJldHVybk1lbnVDaGlsZChmaXJzdE1lbnUuaWRtZW51KTtcclxuICAgICAgaWYgKGZpbGhvcykge1xyXG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYWxsUm91dGUoZmlyc3RNZW51LmxpbmssIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvTWVudShtZW51OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChtZW51Lm1lbnVwYWkpIHtcclxuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXR1cm5NZW51Q2hpbGQobWVudS5pZG1lbnUpO1xyXG4gICAgICBpZiAoZmlsaG9zKSB7XHJcbiAgICAgICAgdGhpcy5jYWxsUm91dGUoZmlsaG9zWzBdLmxpbmssIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhbGxSb3V0ZShtZW51LmxpbmssIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWVudVNlbGVjaW9uYWRvID0gc2lnbmFsPGFueT4obnVsbCk7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxhdGVzdFJlcXVlc3QgPSBjaGFuZ2VzWydtZW51cyddO1xyXG4gICAgaWYgKGxhdGVzdFJlcXVlc3Q/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLm1lbnVzUGVyQXBwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY2lvbmFyTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgaWRtYXN0ZXI6IFt0aGlzLnNlbGVjdGVkTWFzdGVyLCBbXV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuZXhwYW5kTWVudUV2ZW50KCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLmFkanVzdFdpZHRoQ2FyZCgpO1xyXG4gICAgdGhpcy52ZXJpZnlNZW51QmVoYXZpb3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWRNZW51UGFpKG1lbnU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmV4cGFuZE1lbnUoKSAmJiBtZW51LmluZG1lbnVwYWkpXHJcbiAgICAgIHJldHVybiBtZW51LmlkbWVudSA9PT0gdGhpcy5tZW51U2VsZWNpb25hZG8oKT8uaWRtZW51cGFpO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjaW9uYXJNZW51KCkge1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLnJvdXRlci51cmwsIHdpbmRvdy5vcmlnaW4pO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdXJsLnBhdGhuYW1lO1xyXG4gICAgY29uc3QgcHVyZVBhdGggPSBjdXJyZW50UGF0aC5tYXRjaCgvXlteO10qL2kpO1xyXG5cclxuICAgIGNvbnN0IHBhdGhzID0gcHVyZVBhdGghWzBdO1xyXG5cclxuICAgIHRoaXMubWVudXMuc2V0KFxyXG4gICAgICB0aGlzLm1lbnVzKCkubWFwKChtZW51KSA9PiB7XHJcbiAgICAgICAgaWYgKG1lbnUubGluaykge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ubWVudSxcclxuICAgICAgICAgICAgYmdDb2xvcjogcGF0aHMuaW5jbHVkZXMobWVudS5saW5rISkgPyAncmdiKDQxLCAxODUsIDQ1KScgOiAnJyxcclxuICAgICAgICAgICAgdGV4dENvbG9yOiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKSA/ICd0ZXh0LXdoaXRlJyA6ICcnLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudXMoKS5maW5kKChtZW51OiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIG1lbnUubGluayAmJiBwYXRocy5pbmNsdWRlcyhtZW51LmxpbmshKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWVudVNlbGVjaW9uYWRvLnNldChtZW51KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXR1cm5NZW51Q2hpbGQoaWRtZW51OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLm1lbnVzKCkuZmlsdGVyKCh4OiBhbnkpID0+IHguaWRtZW51cGFpID09IGlkbWVudSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHNlbGVjdEFwcChpZGFwbGljYXRpdm86IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RBcHBFbWl0LmVtaXQoaWRhcGxpY2F0aXZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93TGljZW5jYXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RHJvcGRvd25MaWNlbmNhICYmICh0aGlzLm1hc3RlcnMgfHwgW10pLmxlbmd0aCA+IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMuZXhwYW5kTWVudS51cGRhdGUoKGN1cnJlbnRWYWx1ZTogYm9vbGVhbikgPT4gIWN1cnJlbnRWYWx1ZSk7XHJcbiAgICB0aGlzLmV4cGFuZE1lbnVFdmVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpIHtcclxuICAgIGlmICh0aGlzLndpZHRoUGFnZSgpIDwgODAwICYmIHRoaXMuZXhwYW5kTWVudSgpKVxyXG4gICAgICB0aGlzLmV4cGFuZE1lbnUuc2V0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRlVG9EZWZhdWx0Um91dGVFbWl0LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vIGdldFNpZGViYXJTdGF0ZSgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmV4cGFuZE1lbnUoKSA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcclxuICAvLyB9XHJcblxyXG4gIGdldCBleGliaXJOb21lcygpIHtcclxuICAgIHJldHVybiAhdGhpcy5zaG93TGljZW5jYXMoKSAmJiAodGhpcy5tYXN0ZXJOYW1lIHx8IHRoaXMuZW1wcmVzYU5hbWUpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZ1bGwtY29udGFpbmVyXCI+XHJcbiAgQGlmKHNob3dNZW51KSB7XHJcbiAgICA8cC1zaWRlYmFyXHJcbiAgICAgICNzaWRlYmFyUmVmXHJcbiAgICAgIFt2aXNpYmxlXT1cInRydWVcIlxyXG4gICAgICBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiXHJcbiAgICAgIFttb2RhbF09XCJmYWxzZVwiXHJcbiAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiBleHBhbmRNZW51KCkgPyAnMTdyZW0nIDogJzMuNjVyZW0nIH1cIlxyXG4gICAgICBzdHlsZUNsYXNzPVwidHJhbnNpdGlvbi1hbGxcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGxlc3NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2x1bW4gb3ZlcmZsb3ctaGlkZGVuIHAtMlwiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8IS0tIExPR08gLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggZmxleC1jb2x1bW4gZ2FwLTEganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC1zaHJpbmstMCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCB7e1xyXG4gICAgICAgICAgICAgICAgZXhwYW5kTWVudSgpID8gJ2ZsZXgtcm93JyA6ICdmbGV4LWNvbHVtbidcclxuICAgICAgICAgICAgICB9fSBhbGlnbi1pdGVtcy1jZW50ZXIge3tcclxuICAgICAgICAgICAgICAgIGV4cGFuZE1lbnUoKVxyXG4gICAgICAgICAgICAgICAgICA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcclxuICAgICAgICAgICAgICAgICAgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcidcclxuICAgICAgICAgICAgICB9fSBweS0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwhLS0gTG9nbyBwYXJhIG8gbWVudSBleHBhbmRpZG8gLS0+XHJcbiAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSAmJiBsb2dvTWVudUV4cGFuZCl7XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIkNhcmRcIlxyXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29NZW51RXhwYW5kXCJcclxuICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCInMi44cmVtJ1wiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgcC0wXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9EZWZhdWx0Um91dGUoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBMb2dvIHBhcmEgbyBtZW51IG1pbmltaXphZG8tLT5cclxuICAgICAgICAgICAgICBAaWYoIWV4cGFuZE1lbnUoKSAmJiBsb2dvTWVudUhpZGUpe1xyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJDYXJkXCJcclxuICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvTWVudUhpZGVcIlxyXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIicyLjhyZW0nXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCJhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0RlZmF1bHRSb3V0ZSgpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICA8IS0tIFRvZ2dsZSBtZW51IC0tPlxyXG4gICAgICAgICAgICAgIEBpZihzaG93RXhwYW5kTWVudSl7XHJcbiAgICAgICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwibWVudS0yXCJcclxuICAgICAgICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImV4cGFuZE1lbnUoKSA/ICdPY3VsdGFyIE1lbnUnIDogJ0V4cGFuZGlyIE1lbnUnXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlTWVudSgpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIEBpZihzaG93VHJvY2FFbXByZXNhKXtcclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC17e2V4cGFuZE1lbnUoKT8gJ2JldHdlZW4gcHgtMic6ICdjZW50ZXInfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUVtcHJlc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSAmJiBzZWxlY3RlZEVtcHJlc2Epe1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUVtcHJlc2EoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBAaWYodGhpcy5zZWxlY3RlZEVtcHJlc2EucmF6YW9zb2NpYWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbXItMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJ0aGlzLnNlbGVjdGVkRW1wcmVzYS5yYXphb3NvY2lhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hbWVFbXByZXNhKHRoaXMuc2VsZWN0ZWRFbXByZXNhLnJhemFvc29jaWFsKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBAaWYodGhpcy5zZWxlY3RlZEVtcHJlc2EuY3BmY25wail7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gbXQtMVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbXByZXNhLmNwZmNucGogfCBjcGZDbnBqXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgIGljb249XCJ0cmFuc2ZlclwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInVHJvY2FyIGRlIGVtcHJlc2EnXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2hhbmdlRW1wcmVzYSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCIgc2lkZS1tZW51LWl0ZW0gcHktMVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8cC1kaXZpZGVyIHR5cGU9XCJzb2xpZFwiPjwvcC1kaXZpZGVyPlxyXG5cclxuICAgICAgICAgIDwhLS0gTUVOVVMgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGxpc3Qtbm9uZSBtLTAgb3ZlcmZsb3cteS1hdXRvIG1heC1oLWZ1bGxcIj5cclxuICAgICAgICAgICAgPCEtLSBtZW51cyAtLT5cclxuICAgICAgICAgICAgQGZvciAobWVudSBvZiBtZW51cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICA8IS0tIG1lbnUgcXVlIG7Do28gdGVtIGZpbGhvIC0tPlxyXG4gICAgICAgICAgICAgICAgICBAaWYoICFtZW51LmluZG1lbnVwYWkgJiYgKCFtZW51LmlkbWVudXBhaSB8fCBtZW51LmlkbWVudXBhaSA9PSAwKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC17e2V4cGFuZE1lbnUoKSA/J2JldHdlZW4nOidjZW50ZXInfX0gZ2FwLTIgc2lkZS1tZW51LWl0ZW0gcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSgpID8gbWVudS5kZXNjcmljYW9tZW51IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FsbFJvdXRlKG1lbnUubGluaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cIm1lbnUuaWNvbmV8fCAnY2lyY2xlLWRvdHRlZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3ttZW51LmRlc2NyaWNhb21lbnV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPCEtLSBtZW51IGNvbSBmaWxobyAtLT5cclxuICAgICAgICAgICAgICAgICAgQGlmKG1lbnUuaW5kbWVudXBhaSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQte3tleHBhbmRNZW51KCkgPydiZXR3ZWVuJzonY2VudGVyJ319IGdhcC0yIHNpZGUtbWVudS1pdGVtIHB5LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUoKSA/IG1lbnUuZGVzY3JpY2FvbWVudSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJtZW51Lmljb25lfHwgJ2NpcmNsZS1kb3R0ZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kTWVudSgpPycnOmZpbGhvLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGV4cGFuZE1lbnUoKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7bWVudS5kZXNjcmljYW9tZW51fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxrdi1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hldnJvbkljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWxoby50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2thYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAjYXBwZW5kTWVudURpdiBjbGFzcz1cImFwcGVuZE1lbnVEaXZcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHAtbWVudSAjZmlsaG8gW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwicmV0dXJuTWVudUNoaWxkcygpKG1lbnUuaWRtZW51KVwiIFthcHBlbmRUb109XCJhcHBlbmRNZW51RGl2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAgcFRlbXBsYXRlPVwic3VibWVudWhlYWRlclwiIGxldC1pdGVtIGxldC1pPVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LW1lZGl1bSBwbC0zIHRleHQteHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5sYWJlbH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW3N0eWxlLmhlaWdodC5yZW1dPVwiMC41XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIHNpZGUtbWVudS1pdGVtIHB5LTIgcGwtMyBwci0xIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShpdGVtLnVybClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmxhYmVsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvcC1tZW51PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxwLWRpdmlkZXIgdHlwZT1cInNvbGlkXCI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIDwhLS0gQVBQUyBFIFNBSVIgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGxpc3Qtbm9uZSBtLTAgb3ZlcmZsb3cteS1hdXRvIG1heC1oLWZ1bGxcIj5cclxuICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXt7ZXhwYW5kTWVudSgpID8nYmV0d2Vlbic6J2NlbnRlcid9fSBnYXAtMiBzaWRlLW1lbnUtaXRlbSBweS0yXCJcclxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCIhZXhwYW5kTWVudSgpID8gJ1Npc3RlbWFzJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhZXhwYW5kTWVudSgpICYmIG1lbnVzaXN0ZW1hcy50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ2FwcHMnXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpKXtcclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPlNpc3RlbWFzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgICAjY2hldnJvbkljb25cclxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZE1lbnUoKSAmJiBtZW51c2lzdGVtYXMudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAjc2lzdGVtYXNtZW51Z2hvc3QgY2xhc3M9XCJhcHBlbmRNZW51RGl2XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPHAtbWVudSAjbWVudXNpc3RlbWFzIFtwb3B1cF09XCJ0cnVlXCIgW21vZGVsXT1cImFwcHNcIiBbYXBwZW5kVG9dPVwic2lzdGVtYXNtZW51Z2hvc3RcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAgcFRlbXBsYXRlPVwic3VibWVudWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LW1lZGl1bSBwbC0zIHRleHQteHNcIj5cclxuICAgICAgICAgICAgICAgICAgICBTaXN0ZW1hc1xyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS5oZWlnaHQucmVtXT1cIjAuNVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBzaWRlLW1lbnUtaXRlbSBweS0yIHBsLTMgcHItMVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUoaXRlbS5yb3RhcGFkcmFvKVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsaWNvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTIgdy0yIGJvcmRlci1yb3VuZC1sZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tpdGVtLm5vbWVhcGxpY2F0aXZvfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvcC1tZW51PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQte3tleHBhbmRNZW51KCkgPydiZXR3ZWVuJzonY2VudGVyJ319IGdhcC0yIHNpZGUtbWVudS1pdGVtIHB5LTJcIlxyXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIiFleHBhbmRNZW51KCkgPyAnU2FpcicgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiJ3JlZCdcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLm9wYWNpdHldPVwiMC41XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJsb2dvdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiJ2xvZ291dCdcIlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICBAaWYoZXhwYW5kTWVudSgpKXtcclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPlNhaXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Atc2lkZWJhcj5cclxuICB9XHJcblxyXG4gIDwhLS0gU0XDh8ODTyBDT05URcOaRE8gIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwidy1hdXRvIGgtc2NyZWVuIHBhZ2UtY29udGVudCBvdmVyZmxvdy15LWhpZGRlbiBmbGV4IGZsZXgtY29sdW1uXCJcclxuICAgIGlkPVwicGFnZS1jb250ZW50XCJcclxuICAgIHN0eWxlPVwid2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnRcIlxyXG4gID5cclxuICAgIDwhLS0gVE9QTyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXktMiBteC0yIGxnOm14LTMgbWItMCBnYXAtMVwiXHJcbiAgICA+XHJcbiAgICAgIEBpZighc2hvd01lbnUpIHtcclxuICAgICAgPCEtLSBMb2dvIGhvbWUgLS0+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImxvZ29NZW51RXhwYW5kXCIgd2lkdGg9XCIxNTBcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPCEtLSBCcmVhZGNydW1icyAtLT5cclxuICAgICAgICBAaWYoc2hvd0JyZWFkY3J1bWIpIHtcclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC14bCBmb250LXNlbWlib2xkIHN5c3RlbS1jb2xvciBicmVhZGNydW1iLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIGJyZWFkQ3J1bWJJdGVtc1ticmVhZENydW1iSXRlbXMubGVuZ3RoIC0gMV0gJiZcclxuICAgICAgICAgICAgICAgIGJyZWFkQ3J1bWJJdGVtc1ticmVhZENydW1iSXRlbXMubGVuZ3RoIC0gMV0ubGFiZWxcclxuICAgICAgICAgICAgICAgICAgPyBicmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDFdLmxhYmVsXHJcbiAgICAgICAgICAgICAgICAgIDogXCJcIlxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHAtYnJlYWRjcnVtYlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwid2lkdGhDYXJkID4gNDAwXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYm9yZGVyLW5vbmUgcC0wIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGgtMXJlbSBiZy10cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImJyZWFkQ3J1bWJJdGVtc1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgYmFja2dyb3VuZENvbG9yOiAnI2VhZWFlYScgfVwiXHJcbiAgICAgICAgICAgICAgKG9uSXRlbUNsaWNrKT1cImNhbGxSb3V0ZSgkZXZlbnQuaXRlbS5yb3V0ZXJMaW5rLCB0cnVlKVwiXHJcbiAgICAgICAgICAgID48L3AtYnJlYWRjcnVtYj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICA8IS0tIEdIT1NUIERJViBQQVJBIE9DUFVBUiBFU1BBw4dPIE5PIFNQQUNFIEJFVFdFRU4gLS0+XHJcbiAgICAgICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfSBcclxuICAgICAgQGlmIChleGliaXJOb21lcykgeyBcclxuICAgICAgICBAaWYod2lkdGhDYXJkID49IDUxNykge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQGlmIChtYXN0ZXJOYW1lKSB7IDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCBzeXN0ZW0tY29sb3JcIj57eyBtYXN0ZXJOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiXHJcbiAgICAgICAgICAgICAgPk9yZ2FuaXphw6fDo286IHt7IGVtcHJlc2FOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICAgICAgQGZvciAodG9wQWN0aW9uIG9mIHRvcE1lbnVBY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9wQWN0aW9uXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8a3YtdG9wLWljb25zXHJcbiAgICAgICAgICAgICAgW3RvcEFjdGlvbnNdPVwidG9wQWN0aW9ucygpXCJcclxuICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IFxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWF1dG8gZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwhLS0gTmF2ZWdhw6fDo28gZGUgc2lzdGVtYXMgZSB1c3XDoXJpb3MgLS0+XHJcbiAgICAgICAgICAgIEBmb3IgKHRvcEFjdGlvbiBvZiB0b3BNZW51QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEFjdGlvblwiIC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGt2LXRvcC1pY29uc1xyXG4gICAgICAgICAgICAgIFt0b3BBY3Rpb25zXT1cInRvcEFjdGlvbnMoKVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInctYXV0byBmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQGlmIChtYXN0ZXJOYW1lKSB7IDxzcGFuIGNsYXNzPVwibWFzdGVyLW5hbWVcIj57eyBtYXN0ZXJOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICAgIEBpZiAoZW1wcmVzYU5hbWUpIHs8c3BhbiBjbGFzcz1cImVtcHJlc2EtbmFtZVwiPnt7IGVtcHJlc2FOYW1lIH19PC9zcGFuPiB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IFxyXG4gICAgICB9IFxyXG4gICAgICBAZWxzZSB7IFxyXG4gICAgICAgIEBpZih3aWR0aFBhZ2UoKSA+IDk5Mil7XHJcbiAgICAgICAgICA8IS0tIGRyb3Bkb3duIHBhcmEgc2VsZcOnw6NvIGRlIGVtcHJlc2EvbGljZW5jYSAtLT5cclxuICAgICAgICAgIDxkcm9wZG93bi1tYXN0ZXJcclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TGljZW5jYXMoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWF4LXctMjVyZW1cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogMjByZW07XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRtYXN0ZXJcIlxyXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgIFttYXN0ZXJzXT1cIm1hc3RlcnNcIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uVmFsdWUpPVwiY2hhbmdlTGljZW5zZSgkZXZlbnQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvZHJvcGRvd24tbWFzdGVyPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPCEtLSBOYXZlZ2HDp8OjbyBkZSBzaXN0ZW1hcyBlIHVzdcOhcmlvcyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICBAZm9yICh0b3BBY3Rpb24gb2YgdG9wTWVudUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9wQWN0aW9uXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxrdi10b3AtaWNvbnNcclxuICAgICAgICAgICAgW3RvcEFjdGlvbnNdPVwidG9wQWN0aW9ucygpXCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAaWYod2lkdGhQYWdlKCkgPD0gOTkyKXtcclxuICAgICAgICAgIDwhLS0gZHJvcGRvd24gcGFyYSBzZWxlw6fDo28gZGUgZW1wcmVzYS9saWNlbmNhIC0tPlxyXG4gICAgICAgICAgPGRyb3Bkb3duLW1hc3RlclxyXG4gICAgICAgICAgICAqbmdJZj1cInNob3dMaWNlbmNhcygpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpZG1hc3RlclwiXHJcbiAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcclxuICAgICAgICAgICAgW21hc3RlcnNdPVwibWFzdGVyc1wiXHJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25WYWx1ZSk9XCJjaGFuZ2VMaWNlbnNlKCRldmVudClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kcm9wZG93bi1tYXN0ZXI+XHJcbiAgICAgICAgfSBcclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBDb250YWluZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIGZsZXgtMSBweS0yIHB4LTIgbGc6cHgtM1wiPlxyXG4gICAgICA8cC1jYXJkXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cIm92ZXJmbG93LXktYXV0byBoLWZ1bGwgbWF4LWgtZnVsbCB7e1xyXG4gICAgICAgICAgIXNob3dNZW51ICYmICdzbTpvdmVyZmxvdy15LWhpZGRlbidcclxuICAgICAgICB9fSBjYXJkLWNvbnRhaW5lclwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvcC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFpbmVsIGRlIGFwbGljYXRpdm9zIC0tPlxyXG4gIDxwLW92ZXJsYXlQYW5lbFxyXG4gICAgI3Npc3RlbWFzUGFuZWxcclxuICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXHJcbiAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicyNTBtcyBlYXNlLWluJ1wiXHJcbiAgPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxyXG4gICAgICA8cCBjbGFzcz1cInRpdGxlLXN0eWxlIG10LTNcIj5TaXN0ZW1hczwvcD5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTUgbWItM1wiXHJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjcwcHg7IGhlaWdodDogMTAwJVwiXHJcbiAgICAgID5cclxuICAgICAgICBAZm9yIChhcGxpY2F0aXZvIG9mIGFwcHM7IHRyYWNrICRpbmRleCkgeyBAaWYoYXBsaWNhdGl2by51cmxpY29uZSA9PVxyXG4gICAgICAgIFwiaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL2ljb25lLWtlZXZvY2VudGVyLnBuZ1wiKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4tc2lzdGVtYSB0ZXh0LXhsIG1kOnRleHQtM3hsIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGFwbGljYXRpdm8uZGVzY3JpY2FvYXBsaWNhdGl2by5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgIFtzcmNdPVwiYXBsaWNhdGl2by51cmxpY29uZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1zaXN0ZW1hIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgfSB9XHJcblxyXG4gICAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGFwbGljYXRpdm8gb2YgYXBwc1wiXHJcbiAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICBwUmlwcGxlXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1zaXN0ZW1hLTIgYnRuLXNpc3RlbWEgaG92ZXItYnRuLWNvci1wYWRyYW8gcmVtb3ZlLWZvY3VzIGgtNHJlbSB3LTRyZW1cIlxyXG4gICAgICAgICAgW3BUb29sdGlwXT1cImFwbGljYXRpdm8/LmRlc2NyaWNhb2FwbGljYXRpdm9cIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcChhcGxpY2F0aXZvLmlkYXBsaWNhdGl2bylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGFwbGljYXRpdm8ubm9tZWFwbGljYXRpdm8uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgfX1cclxuICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3Atb3ZlcmxheVBhbmVsPlxyXG5cclxuICA8IS0tIFBhaW5lbCBkbyB1c3XDoXJpbyAtLT5cclxuICA8cC1vdmVybGF5UGFuZWxcclxuICAgICNtZXVzRGFkb3NQYW5lbFxyXG4gICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCInMzUwbXMgZWFzZS1vdXQnXCJcclxuICAgIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiJzI1MG1zIGVhc2UtaW4nXCJcclxuICA+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxyXG4gICAgPHAgY2xhc3M9XCJzeXN0ZW0tY29sb3IgZm9udC1tZWRpdW0gdGV4dC1sZyBweC0yIHB5LTMgbS0wXCI+XHJcbiAgICAgIE9sw6EsIHt7IHVzZXJOYW1lID8gdXNlck5hbWUuc3BsaXQoXCIgXCIpWzBdIDogXCJVc3XDoXJpb1wiIH19IVxyXG4gICAgPC9wPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtNSBtYi0zXCI+PC9kaXY+IC0tPlxyXG4gIFxyXG4gICAgPCEtLSBDb250w6ppbmVyIGNvbSBkaXJlw6fDo28gZW0gY29sdW5hIHBhcmEgZW1waWxoYXIgb3MgYm90w7VlcyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgIDwhLS0gQm90w7VlcyBhZGljaW9uYWlzIGRpbsOibWljb3MgLS0+XHJcbiAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHNpZGUtbWVudS1pdGVtIHB5LTIgcHgtMlwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8a3YtaWNvblxyXG4gICAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3thY3Rpb24ubGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgc2lkZS1tZW51LWl0ZW0gcHktMiBweC0yXCJcclxuICAgICAgICAoY2xpY2spPVwiYWNjZXNzS2VlUGFzcygkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgaWNvbj1cImxvY2tcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIDxzcGFuPkFjZXNzYXIgS2VlUGFzczwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIFxyXG4gIDwvcC1vdmVybGF5UGFuZWw+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Component, input } from '@angular/core';
2
+ import { TooltipModule } from 'primeng/tooltip';
3
+ import { KvIconModule } from '../../kv-icon/kv-icon.module';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "primeng/tooltip";
6
+ import * as i2 from "../../kv-icon/kv-icon.component";
7
+ export class TopIconsComponent {
8
+ constructor() {
9
+ this.topActions = input([]);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: TopIconsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: TopIconsComponent, isStandalone: true, selector: "kv-top-icons", inputs: { topActions: { classPropertyName: "topActions", publicName: "topActions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"top-icons-container\">\r\n @for (item of topActions(); track $index) {\r\n\r\n <kv-icon\r\n [icon]=\"item.icon\"\r\n [numNotifications]=\"item.numNotifications||0\"\r\n [pTooltip]=\"item.tooltip\"\r\n [tooltipPosition]=\"'left'\"\r\n (onClick)=\"item.action()\"\r\n [img]=\"item.img\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n</div>", styles: [".top-icons-container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.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: KvIconModule }, { kind: "component", type: i2.KvIconComponent, selector: "kv-icon", inputs: ["icon", "numNotifications", "img", "clickable"], outputs: ["onClick"] }] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: TopIconsComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'kv-top-icons', standalone: true, imports: [TooltipModule, KvIconModule], template: "<div class=\"top-icons-container\">\r\n @for (item of topActions(); track $index) {\r\n\r\n <kv-icon\r\n [icon]=\"item.icon\"\r\n [numNotifications]=\"item.numNotifications||0\"\r\n [pTooltip]=\"item.tooltip\"\r\n [tooltipPosition]=\"'left'\"\r\n (onClick)=\"item.action()\"\r\n [img]=\"item.img\"\r\n [clickable]=\"true\"\r\n />\r\n }\r\n</div>", styles: [".top-icons-container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:.8rem}\n"] }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWljb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC90b3AtaWNvbnMvdG9wLWljb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWxheW91dC90b3AtaWNvbnMvdG9wLWljb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFpQjVELE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTRSxlQUFVLEdBQUcsS0FBSyxDQUFvQixFQUFFLENBQUMsQ0FBQztLQUUzQzs4R0FKWSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwyTkNwQjlCLGdlQWFNLHNLREdNLGFBQWEscVhBQUUsWUFBWTs7MkZBSTFCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS3ZJY29uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2t2LWljb24va3YtaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEt2SWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2t2LWljb24va3YtaWNvbi5tb2R1bGUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUb3BBY3Rpb25zTW9kZWwge1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICBudW1Ob3RpZmljYXRpb25zPzogbnVtYmVyO1xyXG4gIGltZz86IHN0cmluZztcclxuICBhY3Rpb246ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtdG9wLWljb25zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtUb29sdGlwTW9kdWxlLCBLdkljb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtaWNvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90b3AtaWNvbnMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb3BJY29uc0NvbXBvbmVudCB7XHJcblxyXG4gIHRvcEFjdGlvbnMgPSBpbnB1dDxUb3BBY3Rpb25zTW9kZWxbXT4oW10pO1xyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9wLWljb25zLWNvbnRhaW5lclwiPlxyXG4gICAgQGZvciAoaXRlbSBvZiB0b3BBY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xyXG5cclxuICAgICAgICAgICAgPGt2LWljb25cclxuICAgICAgICAgICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXHJcbiAgICAgICAgICAgICAgICBbbnVtTm90aWZpY2F0aW9uc109XCJpdGVtLm51bU5vdGlmaWNhdGlvbnN8fDBcIlxyXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cIml0ZW0udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJpdGVtLmFjdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIFtpbWddPVwiaXRlbS5pbWdcIlxyXG4gICAgICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgIH1cclxuPC9kaXY+Il19