keevo-components 1.8.36 → 1.8.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) hide show
  1. package/esm2022/lib/api/base-components/base-component-chart.mjs +4 -4
  2. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +2 -2
  3. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +2 -2
  4. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +4 -4
  5. package/esm2022/lib/api/base-components/base-component-input.mjs +5 -5
  6. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +1 -1
  7. package/esm2022/lib/{directives → api/directives}/template/template.directive.mjs +1 -1
  8. package/esm2022/lib/api/pipes/codigofile.pipe.mjs +19 -0
  9. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -0
  10. package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -0
  11. package/esm2022/lib/api/pipes/pipes.module.mjs +39 -0
  12. package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -0
  13. package/esm2022/lib/components/keevo-components.module.mjs +144 -0
  14. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +78 -0
  15. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +32 -0
  16. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +17 -0
  17. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +31 -0
  18. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -0
  19. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -0
  20. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -0
  21. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +92 -0
  22. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -0
  23. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +145 -0
  24. package/esm2022/lib/components/kv-chart/kvchart.module.mjs +32 -0
  25. package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -0
  26. package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -0
  27. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +26 -0
  28. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +37 -0
  29. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +88 -0
  30. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +89 -0
  31. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +29 -0
  32. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -0
  33. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -0
  34. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +21 -0
  35. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +42 -0
  36. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -0
  37. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -0
  38. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +108 -0
  39. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +44 -0
  40. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +53 -0
  41. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +34 -0
  42. package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -0
  43. package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -0
  44. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +17 -0
  45. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -0
  46. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -0
  47. package/esm2022/lib/components/kv-login/kv-login.component.mjs +52 -0
  48. package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -0
  49. package/esm2022/lib/components/kv-menu/kv-menu.component.mjs +188 -0
  50. package/esm2022/lib/components/kv-menu/kv-menu.module.mjs +47 -0
  51. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +67 -0
  52. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +31 -0
  53. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +100 -0
  54. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +24 -0
  55. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +147 -0
  56. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +38 -0
  57. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +48 -0
  58. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +32 -0
  59. package/esm2022/lib/{progress-bar/progress-bar.component.mjs → components/kv-progress-bar/kv-progress-bar.component.mjs} +1 -1
  60. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -0
  61. package/esm2022/lib/components/kv-table/kv-table.component.mjs +554 -0
  62. package/esm2022/lib/components/kv-table/kv-table.module.mjs +36 -0
  63. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +567 -0
  64. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +34 -0
  65. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +215 -0
  66. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +28 -0
  67. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +30 -0
  68. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -0
  69. package/esm2022/lib/components/kv-treetable/kv-treetable.component.mjs +371 -0
  70. package/esm2022/lib/components/kv-treetable/kv-treetable.module.mjs +32 -0
  71. package/esm2022/lib/components/kv-workspace/kv-workspace.component.mjs +178 -0
  72. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +51 -0
  73. package/esm2022/public-api.mjs +75 -71
  74. package/fesm2022/keevo-components.mjs +2771 -2735
  75. package/fesm2022/keevo-components.mjs.map +1 -1
  76. package/lib/api/base-components/base-component-chart.d.ts +2 -2
  77. package/lib/api/base-components/base-component-dropdown-external.d.ts +2 -2
  78. package/lib/api/base-components/base-component-input.d.ts +3 -3
  79. package/lib/api/components/table/tableedit.config.column.d.ts +1 -0
  80. package/lib/{pipes → api/pipes}/codigofile.pipe.d.ts +1 -1
  81. package/lib/api/pipes/mask.pipe.d.ts +7 -0
  82. package/lib/api/pipes/pipes.module.d.ts +11 -0
  83. package/lib/components/keevo-components.module.d.ts +25 -0
  84. package/lib/components/kv-avatar/kv-avatar.component.d.ts +22 -0
  85. package/lib/{avatar → components/kv-avatar}/kv-avatar.module.d.ts +2 -2
  86. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +7 -0
  87. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +13 -0
  88. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +7 -0
  89. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +7 -0
  90. package/lib/components/kv-buttons/kv-button.module.d.ts +11 -0
  91. package/lib/components/kv-carousel/kv-carousel.component.d.ts +16 -0
  92. package/lib/{carousel → components/kv-carousel}/kv-carousel.module.d.ts +3 -3
  93. package/lib/{chart/chart.component.d.ts → components/kv-chart/kv-chart.component.d.ts} +4 -4
  94. package/lib/{chart → components/kv-chart}/kvchart.module.d.ts +3 -3
  95. package/lib/components/kv-error/kv-error.component.d.ts +12 -0
  96. package/lib/{api/components/error/kverror.module.d.ts → components/kv-error/kv-error.module.d.ts} +3 -3
  97. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +11 -0
  98. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +14 -0
  99. package/lib/{inputs/editor/editor.component.d.ts → components/kv-inputs/kv-editor/kv-editor.component.d.ts} +5 -5
  100. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +27 -0
  101. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +12 -0
  102. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +19 -0
  103. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +13 -0
  104. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +9 -0
  105. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +16 -0
  106. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +16 -0
  107. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +10 -0
  108. package/lib/components/kv-inputs/kv-inputs.module.d.ts +25 -0
  109. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +15 -0
  110. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +18 -0
  111. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +14 -0
  112. package/lib/components/kv-label/kv-label.component.d.ts +7 -0
  113. package/lib/components/kv-label/kv-label.module.d.ts +8 -0
  114. package/lib/components/kv-loader/kv-loader.component.d.ts +8 -0
  115. package/lib/{loader/kvloader.module.d.ts → components/kv-loader/kv-loader.module.d.ts} +2 -2
  116. package/lib/{loader/loader.service.d.ts → components/kv-loader/kv-loader.service.d.ts} +3 -3
  117. package/lib/{login/login.component.d.ts → components/kv-login/kv-login.component.d.ts} +7 -7
  118. package/lib/components/kv-login/kv-login.module.d.ts +13 -0
  119. package/lib/{menu/menu.component.d.ts → components/kv-menu/kv-menu.component.d.ts} +7 -7
  120. package/lib/components/kv-menu/kv-menu.module.d.ts +13 -0
  121. package/lib/{modal/modal.component.d.ts → components/kv-modal/kv-modal.component.d.ts} +4 -4
  122. package/lib/{modal → components/kv-modal}/kv-modal.module.d.ts +4 -4
  123. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +27 -0
  124. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +9 -0
  125. package/lib/components/kv-page-form/kv-page-form.component.d.ts +70 -0
  126. package/lib/components/kv-page-form/kv-page-form.module.d.ts +11 -0
  127. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +20 -0
  128. package/lib/{picklist/kvpicklist.module.d.ts → components/kv-pick-list/kv-pick-list.module.d.ts} +3 -3
  129. package/lib/{progress-bar → components/kv-progress-bar}/kv-progress-bar.module.d.ts +2 -2
  130. package/lib/{table/table.component.d.ts → components/kv-table/kv-table.component.d.ts} +10 -10
  131. package/lib/{table/kvtable.module.d.ts → components/kv-table/kv-table.module.d.ts} +4 -4
  132. package/lib/{table-edit/table-edit.component.d.ts → components/kv-table-edit/kv-table-edit.component.d.ts} +10 -10
  133. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +12 -0
  134. package/lib/{treetable/treetable.component.d.ts → components/kv-tree-table/kv-tree-table.component.d.ts} +5 -5
  135. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +9 -0
  136. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +14 -0
  137. package/lib/{tree-view/kvtree-view.module.d.ts → components/kv-tree-view/kv-tree-view.module.d.ts} +3 -3
  138. package/lib/{tree-table → components/kv-treetable}/kv-treetable.component.d.ts +5 -5
  139. package/lib/{tree-table → components/kv-treetable}/kv-treetable.module.d.ts +3 -3
  140. package/lib/{workspace/workspace.component.d.ts → components/kv-workspace/kv-workspace.component.d.ts} +1 -1
  141. package/lib/{workspace/kvworkspace.module.d.ts → components/kv-workspace/kv-workspace.module.d.ts} +4 -4
  142. package/package.json +2 -2
  143. package/public-api.d.ts +74 -70
  144. package/esm2022/lib/api/components/error/error.component.mjs +0 -26
  145. package/esm2022/lib/api/components/error/kverror.module.mjs +0 -35
  146. package/esm2022/lib/avatar/avatar.component.mjs +0 -78
  147. package/esm2022/lib/avatar/kv-avatar.module.mjs +0 -32
  148. package/esm2022/lib/buttons/button-personalize/button-personalize.component.mjs +0 -17
  149. package/esm2022/lib/buttons/button-popup/button-popup.component.mjs +0 -31
  150. package/esm2022/lib/buttons/button-secondary/button-secondary.component.mjs +0 -17
  151. package/esm2022/lib/buttons/button-success/button-success.component.mjs +0 -17
  152. package/esm2022/lib/buttons/kvbutton.module.mjs +0 -39
  153. package/esm2022/lib/carousel/carousel.component.mjs +0 -92
  154. package/esm2022/lib/carousel/kv-carousel.module.mjs +0 -28
  155. package/esm2022/lib/chart/chart.component.mjs +0 -145
  156. package/esm2022/lib/chart/kvchart.module.mjs +0 -32
  157. package/esm2022/lib/inputs/check/check.component.mjs +0 -26
  158. package/esm2022/lib/inputs/dropdown/dropdown.component.mjs +0 -37
  159. package/esm2022/lib/inputs/editor/editor.component.mjs +0 -88
  160. package/esm2022/lib/inputs/input-calendar/input-calendar.component.mjs +0 -89
  161. package/esm2022/lib/inputs/input-mask/input-mask.component.mjs +0 -29
  162. package/esm2022/lib/inputs/input-number/input-number.component.mjs +0 -59
  163. package/esm2022/lib/inputs/input-password/input-password.component.mjs +0 -33
  164. package/esm2022/lib/inputs/input-text/input-text.component.mjs +0 -21
  165. package/esm2022/lib/inputs/input-text-checkbox/input-text-checkbox.component.mjs +0 -42
  166. package/esm2022/lib/inputs/input-textarea/input-textarea.component.mjs +0 -43
  167. package/esm2022/lib/inputs/input-time/input-time.component.mjs +0 -24
  168. package/esm2022/lib/inputs/kvinputs.module.mjs +0 -108
  169. package/esm2022/lib/inputs/multi-select/multi-select.component.mjs +0 -44
  170. package/esm2022/lib/inputs/radio-group/radio-group.component.mjs +0 -53
  171. package/esm2022/lib/inputs/switch/switch.component.mjs +0 -34
  172. package/esm2022/lib/keevo-components.module.mjs +0 -144
  173. package/esm2022/lib/label/label.component.mjs +0 -15
  174. package/esm2022/lib/label/label.module.mjs +0 -24
  175. package/esm2022/lib/loader/kvloader.module.mjs +0 -28
  176. package/esm2022/lib/loader/loader.component.mjs +0 -17
  177. package/esm2022/lib/loader/loader.service.mjs +0 -29
  178. package/esm2022/lib/login/kvlogin.module.mjs +0 -47
  179. package/esm2022/lib/login/login.component.mjs +0 -52
  180. package/esm2022/lib/menu/kvmenu.module.mjs +0 -47
  181. package/esm2022/lib/menu/menu.component.mjs +0 -188
  182. package/esm2022/lib/modal/kv-modal.module.mjs +0 -31
  183. package/esm2022/lib/modal/modal.component.mjs +0 -67
  184. package/esm2022/lib/orgchart/orgchart.component.mjs +0 -100
  185. package/esm2022/lib/orgchart/orgchart.module.mjs +0 -24
  186. package/esm2022/lib/page-form/kv-page-form.module.mjs +0 -38
  187. package/esm2022/lib/page-form/page-form.component.mjs +0 -147
  188. package/esm2022/lib/picklist/kvpicklist.module.mjs +0 -32
  189. package/esm2022/lib/picklist/picklist.component.mjs +0 -48
  190. package/esm2022/lib/pipes/codigofile.pipe.mjs +0 -19
  191. package/esm2022/lib/pipes/cpfcnpj.pipe.mjs +0 -25
  192. package/esm2022/lib/pipes/pipes.module.mjs +0 -34
  193. package/esm2022/lib/pipes/telefone.pipe.mjs +0 -45
  194. package/esm2022/lib/progress-bar/kv-progress-bar.module.mjs +0 -28
  195. package/esm2022/lib/table/kvtable.module.mjs +0 -36
  196. package/esm2022/lib/table/table.component.mjs +0 -554
  197. package/esm2022/lib/table-edit/table-edit.component.mjs +0 -564
  198. package/esm2022/lib/table-edit/table-edit.module.mjs +0 -31
  199. package/esm2022/lib/tree-table/kv-treetable.component.mjs +0 -371
  200. package/esm2022/lib/tree-table/kv-treetable.module.mjs +0 -32
  201. package/esm2022/lib/tree-view/kvtree-view.module.mjs +0 -28
  202. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -30
  203. package/esm2022/lib/treetable/treetable.component.mjs +0 -215
  204. package/esm2022/lib/treetable/treetable.module.mjs +0 -28
  205. package/esm2022/lib/workspace/kvworkspace.module.mjs +0 -51
  206. package/esm2022/lib/workspace/workspace.component.mjs +0 -178
  207. package/lib/api/components/error/error.component.d.ts +0 -12
  208. package/lib/avatar/avatar.component.d.ts +0 -22
  209. package/lib/buttons/button-personalize/button-personalize.component.d.ts +0 -7
  210. package/lib/buttons/button-popup/button-popup.component.d.ts +0 -13
  211. package/lib/buttons/button-secondary/button-secondary.component.d.ts +0 -7
  212. package/lib/buttons/button-success/button-success.component.d.ts +0 -7
  213. package/lib/buttons/kvbutton.module.d.ts +0 -11
  214. package/lib/carousel/carousel.component.d.ts +0 -16
  215. package/lib/inputs/check/check.component.d.ts +0 -11
  216. package/lib/inputs/dropdown/dropdown.component.d.ts +0 -14
  217. package/lib/inputs/input-calendar/input-calendar.component.d.ts +0 -27
  218. package/lib/inputs/input-mask/input-mask.component.d.ts +0 -12
  219. package/lib/inputs/input-number/input-number.component.d.ts +0 -19
  220. package/lib/inputs/input-password/input-password.component.d.ts +0 -13
  221. package/lib/inputs/input-text/input-text.component.d.ts +0 -9
  222. package/lib/inputs/input-text-checkbox/input-text-checkbox.component.d.ts +0 -16
  223. package/lib/inputs/input-textarea/input-textarea.component.d.ts +0 -16
  224. package/lib/inputs/input-time/input-time.component.d.ts +0 -10
  225. package/lib/inputs/kvinputs.module.d.ts +0 -25
  226. package/lib/inputs/multi-select/multi-select.component.d.ts +0 -15
  227. package/lib/inputs/radio-group/radio-group.component.d.ts +0 -18
  228. package/lib/inputs/switch/switch.component.d.ts +0 -14
  229. package/lib/keevo-components.module.d.ts +0 -25
  230. package/lib/label/label.component.d.ts +0 -7
  231. package/lib/label/label.module.d.ts +0 -8
  232. package/lib/loader/loader.component.d.ts +0 -8
  233. package/lib/login/kvlogin.module.d.ts +0 -13
  234. package/lib/menu/kvmenu.module.d.ts +0 -13
  235. package/lib/orgchart/orgchart.component.d.ts +0 -27
  236. package/lib/orgchart/orgchart.module.d.ts +0 -9
  237. package/lib/page-form/kv-page-form.module.d.ts +0 -11
  238. package/lib/page-form/page-form.component.d.ts +0 -70
  239. package/lib/picklist/picklist.component.d.ts +0 -20
  240. package/lib/pipes/pipes.module.d.ts +0 -10
  241. package/lib/table-edit/table-edit.module.d.ts +0 -11
  242. package/lib/tree-view/tree-view.component.d.ts +0 -14
  243. package/lib/treetable/treetable.module.d.ts +0 -9
  244. /package/lib/{directives → api/directives}/template/template.directive.d.ts +0 -0
  245. /package/lib/{pipes → api/pipes}/cpfcnpj.pipe.d.ts +0 -0
  246. /package/lib/{pipes → api/pipes}/telefone.pipe.d.ts +0 -0
  247. /package/lib/{progress-bar/progress-bar.component.d.ts → components/kv-progress-bar/kv-progress-bar.component.d.ts} +0 -0
@@ -0,0 +1,188 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "primeng/api";
6
+ import * as i4 from "primeng/button";
7
+ import * as i5 from "primeng/card";
8
+ import * as i6 from "primeng/tooltip";
9
+ import * as i7 from "primeng/divider";
10
+ import * as i8 from "primeng/overlaypanel";
11
+ import * as i9 from "primeng/ripple";
12
+ import * as i10 from "primeng/sidebar";
13
+ import * as i11 from "primeng/styleclass";
14
+ import * as i12 from "primeng/breadcrumb";
15
+ import * as i13 from "../../api/pipes/cpfcnpj.pipe";
16
+ export class KvMenuComponent {
17
+ constructor(cdr, router, route) {
18
+ this.cdr = cdr;
19
+ this.router = router;
20
+ this.route = route;
21
+ this.breadCrumbItems = [];
22
+ this.licencas = [];
23
+ this.menuCompleto = [];
24
+ this.expandMenuEmit = new EventEmitter();
25
+ this.gerenciarKeePassEvent = new EventEmitter();
26
+ this.licencaChange = new EventEmitter();
27
+ this.sairEvent = new EventEmitter();
28
+ this.trocarLicencaEmit = new EventEmitter();
29
+ this.menusFiltrados = [];
30
+ this.menus = [];
31
+ this.expandMenu = true;
32
+ this.visibleDialogLicenca = false;
33
+ }
34
+ ajustarHeigthCard() {
35
+ if (this.widthCard > 400) {
36
+ if (this.breadCrumbItems.length > 0)
37
+ return 105;
38
+ else
39
+ return 85;
40
+ }
41
+ else
42
+ return 83;
43
+ }
44
+ callRoute(e, expand) {
45
+ if (!expand)
46
+ !this.expandMenu ? this.expandMenu = !this.expandMenu : '';
47
+ this.router.navigateByUrl(e);
48
+ }
49
+ closeCallback(e) {
50
+ this.sidebarRef.close(e);
51
+ }
52
+ configurarLicencas() {
53
+ setTimeout(() => {
54
+ this.definirMenusPorSistema(this.menuCompleto[0]?.sistema.idsistema);
55
+ }, 1);
56
+ }
57
+ definirMenusPorSistema(idsistema) {
58
+ this.menus = this.menuCompleto.find((x) => x.sistema.idsistema == idsistema)?.menus || [];
59
+ if (this.router.url === '/') {
60
+ this.navigateToFirstMenu();
61
+ }
62
+ else {
63
+ const menuSelecionado = this.menus.find((menu) => menu.link.includes(this.router.url.slice(1)));
64
+ if (menuSelecionado) {
65
+ this.navigateToMenu(menuSelecionado);
66
+ }
67
+ }
68
+ this.sistemasPanel.hide();
69
+ }
70
+ expandMenuEvent() {
71
+ this.expandMenuEmit.emit(this.expandMenu);
72
+ }
73
+ gerenciarKeePass(event) {
74
+ this.sistemasPanel.hide();
75
+ this.gerenciarKeePassEvent.emit(event);
76
+ }
77
+ mascaraNomeLicenca(nomeLicenca) {
78
+ if (nomeLicenca) {
79
+ if (nomeLicenca.length > 23)
80
+ return nomeLicenca.substring(0, 23) + '...';
81
+ else
82
+ return nomeLicenca;
83
+ }
84
+ else
85
+ return '';
86
+ }
87
+ navigateToFirstMenu() {
88
+ const firstMenu = this.menus[0];
89
+ if (firstMenu.menupai) {
90
+ const filhos = this.retornarMenuFilhos(firstMenu.idsistema, firstMenu.idmenu);
91
+ if (filhos) {
92
+ this.callRoute(filhos[0].link, true);
93
+ }
94
+ }
95
+ else {
96
+ this.callRoute(firstMenu.link, true);
97
+ }
98
+ }
99
+ navigateToMenu(menu) {
100
+ if (menu.menupai) {
101
+ const filhos = this.retornarMenuFilhos(menu.idsistema, menu.idmenu);
102
+ if (filhos) {
103
+ this.callRoute(filhos[0].link, true);
104
+ }
105
+ }
106
+ else {
107
+ this.callRoute(menu.link, true);
108
+ }
109
+ }
110
+ ngOnInit() {
111
+ this.configurarLicencas();
112
+ this.heigthCard = Number(document.getElementById('page-content')?.offsetHeight);
113
+ this.widthCard = Number(window.innerWidth) - (this.expandMenu ? 333 : 93);
114
+ }
115
+ onMouseEnter(index) {
116
+ this.mouseOverIndex = index;
117
+ }
118
+ onMouseFilhoEnter(index) {
119
+ this.mouseOverFilhoIndex = index;
120
+ }
121
+ onMouseLeave() {
122
+ this.mouseOverIndex = null;
123
+ this.mouseOverFilhoIndex = null;
124
+ }
125
+ onWindowResize() {
126
+ this.heigthCard = Number(document.getElementById('page-content')?.offsetHeight);
127
+ this.widthCard = Number(window.innerWidth) - (this.expandMenu ? 333 : 93);
128
+ this.cdr.detectChanges();
129
+ }
130
+ retornarMenuFilhos(idsistema, idmenu) {
131
+ return this.menuCompleto.find((x) => x.sistema.idsistema == idsistema)?.menus.filter((x) => x.idmenupai == idmenu);
132
+ }
133
+ sair(event) {
134
+ this.sistemasPanel.hide();
135
+ this.sairEvent.emit(event);
136
+ }
137
+ toggleMenu() {
138
+ this.expandMenu = !this.expandMenu;
139
+ this.expandMenuEvent();
140
+ }
141
+ trocarLicenca() {
142
+ this.trocarLicencaEmit.emit();
143
+ }
144
+ verificarPaginaSelecionada(link) {
145
+ return this.router.url.includes(link);
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvMenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: KvMenuComponent, selector: "kv-menu", inputs: { breadCrumbItems: "breadCrumbItems", licencas: "licencas", licencaSelecionada: "licencaSelecionada", logoImage: "logoImage", menuCompleto: "menuCompleto", nomeUsuario: "nomeUsuario" }, outputs: { expandMenuEmit: "expandMenuEmit", gerenciarKeePassEvent: "gerenciarKeePassEvent", licencaChange: "licencaChange", sairEvent: "sairEvent", trocarLicencaEmit: "trocarLicencaEmit" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, 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 }], ngImport: i0, template: "<div class=\"flex flex-row overflow-y-hidden w- full-container\">\n\n <div [style]=\"{minWidth: expandMenu ? '300px' : '60px'}\"></div>\n\n <p-sidebar\n #sidebarRef\n [visible]=\"true\"\n [showCloseIcon]=\"false\"\n [modal]=\"false\"\n [style]=\"{width: expandMenu ? '300px' : '60px'}\">\n <ng-template pTemplate=\"headless\">\n <div class=\"flex flex-column mx-1\">\n <div\n class=\"flex flex-column gap-2 justify-content-between flex-shrink-0 mx-2\">\n <div\n class=\"flex flex-row align-items-center {{expandMenu ? 'justify-content-between' : 'justify-content-center'}} py-3\">\n <img\n *ngIf=\"expandMenu\"\n alt=\"Card\"\n [src]=\"logoImage\"\n width=\"150\" />\n\n <button\n pButton\n class=\"p-button-rounded p-button-text padding-style h-2rem w-2rem hover:bg-green-600 hover:text-white icon-menu\"\n (click)=\"toggleMenu()\"\n [pTooltip]=\"expandMenu ? 'Ocutar Menu' : 'Expandir Menu'\"\n [tooltipPosition]=\"'right'\">\n <i class=\"material-symbols-outlined\">\n menu\n </i>\n </button>\n </div>\n\n <div\n class=\"flex flex-row align-items-center {{expandMenu ? 'justify-content-between' : 'justify-content-center'}}\">\n <div\n class=\"flex flex-column cursor-pointer\"\n *ngIf=\"expandMenu\"\n (click)=\"trocarLicenca()\">\n <span\n class=\"text-sm font-semibold mr-2\"\n [pTooltip]=\"this.licencaSelecionada.nome\"\n [tooltipPosition]=\"'right'\">\n {{mascaraNomeLicenca(this.licencaSelecionada.nome)}}\n </span>\n <span class=\"text-sm mt-1\">{{this.licencaSelecionada.cpfcnpj |\n cpfCnpj }}</span>\n </div>\n\n <button\n pButton\n class=\"p-button-rounded p-button-text padding-style h-2rem w-2rem hover:bg-green-600 hover:text-white icon-menu\"\n (click)=\"trocarLicenca()\"\n [pTooltip]=\"'Alterar workspace'\"\n [tooltipPosition]=\"'right'\">\n <i class=\"material-symbols-outlined\">\n sync_alt\n </i>\n </button>\n\n </div>\n <p-divider type=\"solid\"></p-divider>\n </div>\n\n <div\n class=\"list-none m-0 card-container {{expandMenu ? 'mx-1' : ''}}\"\n [style.max-height]=\"(heigthCard - 220) + 'px'\"\n style=\"overflow-y: auto;\">\n <!-- menus -->\n <li *ngFor=\"let menu of menus; let i = index\">\n <!-- menu que n\u00E3o tem filho -->\n <a\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"\n (click)=\"callRoute(menu.link)\"\n *ngIf=\"!menu.menupai && menu.idmenupai == 0\"\n pRipple\n [pTooltip]=\"!expandMenu ? menu.descricaomenu : ''\"\n [tooltipPosition]=\"'right'\"\n class=\"{{verificarPaginaSelecionada(menu.link) ? 'bg-green-600' : ''}} menu-option flex align-items-center no-underline {{!expandMenu ? 'justify-content-center' : ''}} cursor-pointer border-round text-700 hover:bg-green-600 hover:text-white transition-duration-150 transition-colors p-ripple\">\n\n <i\n class=\"material-symbols-outlined icon-menu {{expandMenu ? 'ml-1 mr-2' : ''}} icon-hover-color {{verificarPaginaSelecionada(menu.link) ? 'text-white' : ''}}\"\n *ngIf=\"menu.icone && menu.icone !== ''\">\n {{ menu.icone }}\n </i>\n <span\n class=\"text-base text-blue-900 font-medium {{verificarPaginaSelecionada(menu.link) ? 'text-white' : ''}}\"\n *ngIf=\"expandMenu\">{{ menu.descricaomenu }}</span>\n </a>\n <!-- menu com filho -->\n <div *ngIf=\"menu.menupai\">\n <a\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"\n pRipple\n pStyleClass=\"@next\"\n enterClass=\"hidden\"\n enterActiveClass=\"slidedown\"\n leaveToClass=\"hidden\"\n leaveActiveClass=\"slideup\"\n class=\"menu-option flex align-items-center {{!expandMenu ? 'justify-content-center' : 'justify-content-between'}} cursor-pointer border-round text-700 hover:bg-green-600 hover:text-white transition-duration-150 transition-colors p-ripple\"\n [tooltipPosition]=\"'right'\"\n [pTooltip]=\"!expandMenu ? menu.descricaomenu : ''\"\n (click)=\"!expandMenu ? expandMenu = !expandMenu : ''\">\n <div class=\"flex flex-row align-items-center\">\n\n <i\n class=\"material-symbols-outlined icon-menu {{expandMenu ? 'ml-1 mr-2' : ''}} icon-hover-color\"\n *ngIf=\"menu.icone && menu.icone !== ''\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\">\n {{ menu.icone }}\n </i>\n <span\n class=\"text-base text-blue-900 font-medium\"\n *ngIf=\"expandMenu\">{{ menu.descricaomenu }}</span>\n </div>\n <i\n class=\"pi pi-chevron-down text-blue-900 mr-1 icon-hover-color\"\n *ngIf=\"expandMenu\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"></i>\n </a>\n\n <!-- filhos -->\n <div\n class=\"list-none py-0 pl-3 pr-0 m-0 hidden overflow-y-hidden transition-all transition-duration-400 transition-ease-in-out\">\n <li *ngFor=\"\n let filho of retornarMenuFilhos(menu.idsistema, menu.idmenu); let iFilho = index\n \">\n <a\n (mouseenter)=\"onMouseFilhoEnter(filho.idmenu)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverFilhoIndex === filho.idmenu}\"\n *ngIf=\"expandMenu\"\n (click)=\"callRoute(filho.link)\"\n pRipple\n class=\"{{verificarPaginaSelecionada(filho.link) ? 'bg-green-600' : ''}} menu-option flex align-items-center no-underline cursor-pointer border-round text-700 hover:bg-green-600 transition-duration-150 transition-colors p-ripple p-2\">\n <i\n class=\"pi pi-chart-line mr-2 ml-1 adjust-icon-menu\"\n *ngIf=\"filho.icone && filho.icone !== ''\"></i>\n <span\n class=\"text-base text-blue-900 ml-4 {{verificarPaginaSelecionada(filho.link) ? 'text-white' : ''}}\"\n *ngIf=\"expandMenu\">{{ filho.descricaomenu }}</span>\n </a>\n </li>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </p-sidebar>\n\n <div\n class=\"w-auto h-screen page-content overflow-y-hidden\"\n id=\"page-content\">\n\n <div class=\"flex flex-row align-items-center justify-content-between m-3\">\n <div>\n <p class=\"text-xl font-semibold text-blue-900 breadcrumb-title\">{{breadCrumbItems[breadCrumbItems.length - 1]?.label}}</p>\n <p-breadcrumb\n *ngIf=\"widthCard > 400\"\n styleClass=\"border-none p-0 flex align-items-center h-2rem !important;\"\n [model]=\"breadCrumbItems\"\n [style]=\"{backgroundColor: '#d4d3d3'}\"\n (onItemClick)=\"callRoute($event.item.routerLink, true)\"></p-breadcrumb>\n </div>\n\n <div class=\"w-auto flex flex-row align-items-center gap-2\">\n\n <p-button\n styleClass=\"w-2rem h-2rem text-blue-900 hover:bg-green-600 hover:text-white\"\n icon=\"pi pi-th-large\"\n [rounded]=\"true\"\n [text]=\"true\"\n (click)=\"sistemasPanel.toggle($event)\"\n [pTooltip]=\"'Sistemas'\"\n [tooltipPosition]=\"'left'\"></p-button>\n\n <p-button\n styleClass=\"w-2rem h-2rem text-blue-900 hover:bg-green-600 hover:text-white\"\n icon=\"pi pi-user\"\n [rounded]=\"true\"\n [text]=\"true\"\n [pTooltip]=\"'Menu do Usu\u00E1rio'\"\n [tooltipPosition]=\"'left'\"\n (click)=\"meusDadosPanel.toggle($event)\"></p-button>\n\n </div>\n </div>\n\n <p-card\n class=\"card-container\"\n styleClass=\"m-3 border-noround overflow-y-auto card-container\"\n [style]=\"{height: heigthCard - ajustarHeigthCard() + 'px'}\">\n <div class=\"card-container w-full\">\n <ng-content></ng-content>\n </div>\n </p-card>\n\n </div>\n\n <p-overlayPanel\n #sistemasPanel\n [showTransitionOptions]=\"'350ms ease-out'\"\n [hideTransitionOptions]=\"'250ms ease-in'\">\n <ng-template pTemplate=\"container\">\n <p class=\"title-style mt-3\">Sistemas</p>\n <div\n class=\"flex flex-row flex-wrap gap-2 align-items-center justify-content-center mt-5 mb-3\"\n style=\"width: 250px; height: 100%;\">\n <button\n *ngFor=\"let menu of menuCompleto\"\n pButton\n pRipple\n class=\"btn-sistema-2 btn-sistema hover-btn-cor-padrao remove-focus h-4rem w-4rem\"\n (click)=\"definirMenusPorSistema(menu.sistema.idsistema)\"\n [pTooltip]=\"menu.sistema.descricaosistema\"\n [tooltipPosition]=\"'left'\">\n {{ menu.sistema.nomesistema.charAt(0).toUpperCase() }}\n </button>\n\n </div>\n </ng-template>\n </p-overlayPanel>\n\n <p-overlayPanel\n #meusDadosPanel\n [showTransitionOptions]=\"'350ms ease-out'\"\n [hideTransitionOptions]=\"'250ms ease-in'\">\n\n <ng-template pTemplate=\"container\">\n\n <p class=\"title-style mt-3\">Ol\u00E1, {{nomeUsuario ?\n nomeUsuario.split(' ')[0] : 'Usu\u00E1rio'}} !</p>\n <div class=\"mt-5 mb-3\">\n\n </div>\n\n <p-button\n icon=\"pi pi-lock\"\n label=\"Ger\u00EAnciar KeevoPass\"\n (onClick)=\"gerenciarKeePass($event)\"\n styleClass=\"border-noround w-full text-blue-900\"\n [text]=\"true\"\n [disabled]=\"true\"></p-button>\n <p-button\n icon=\"pi pi-sign-out\"\n label=\"Sair\"\n (onClick)=\"sair($event)\"\n styleClass=\"border-noround w-full text-blue-900\"\n [text]=\"true\"></p-button>\n </ng-template>\n\n </p-overlayPanel>", styles: [".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}::ng-deep .p-button:focus{box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none}::ng-deep .p-overlaypanel .p-overlaypanel-content{padding:0}::ng-deep .hover-btn-cor-padrao.p-button:enabled:hover{background:#0c3e66;border-color:#002542}.p-button.p-button-icon-only.p-button-rounded{background:#0c3e66;border-color:#002542}::ng-deep .remove-focus:focus{border:none}::ng-deep .p-sidebar .p-sidebar-content{padding:0}::ng-deep .sidebar-header-sistema.p-sidebar .p-sidebar-header{padding-top:.5rem;padding-right:0;padding-bottom:0;padding-left:0;display:block}.btn-sistema{display:flex;align-items:center;justify-content:center;background-color:#0c3e66;font-size:20px}::ng-deep .p-sidebar .p-sidebar-header{padding:0rem!important}::ng-deep body{margin:0!important}::ng-deep .p-breadcrumb ul li.p-breadcrumb-chevron{position:relative;top:3px;color:#0c3e66!important}.page-content{background:linear-gradient(to bottom,#d4d3d3 16%,#fff 19%)}*{margin:0}p .item-menu{color:#0c3e66;font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important}span{font-size:.9rem!important}.breadcrumb-title{font-size:1rem!important;font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important}::ng-deep .card-container{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}.title-style{position:relative;top:10px;margin-left:20px;font-size:25px;color:#002542;border-bottom:2px solid green;font-weight:600;display:inline}::ng-deep p-sidebar .p-sidebar-content{overflow-y:hidden}::ng-deep p-dialog .p-dialog-content{overflow-y:unset}.icon-menu{color:#002542;display:flex;justify-content:center;align-items:center}::ng-deep .padding-style{padding:15px!important}::ng-deep .menu-option{padding:15px 5px!important}::ng-deep .p-breadcrumb .p-breadcrumb-list .p-menuitem-text{color:#183462!important;opacity:.95;font-weight:500;font-size:.8rem!important}::ng-deep .p-breadcrumb .p-breadcrumb-list .p-menuitem-text:hover{opacity:.7}.pl-3{padding-left:0rem!important}::ng-deep svg.p-icon{width:.7rem;height:1rem}.hover-color .text-base,.hover-color .icon-hover-color{color:#fff!important}::ng-deep .p-card .p-card-content{padding:0rem!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "size", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i5.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "directive", type: i6.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: i7.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "component", type: i8.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i9.Ripple, selector: "[pRipple]" }, { kind: "component", type: i10.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: i11.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }, { kind: "component", type: i12.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "pipe", type: i13.CpfCnpjPipe, name: "cpfCnpj" }] }); }
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvMenuComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'kv-menu', template: "<div class=\"flex flex-row overflow-y-hidden w- full-container\">\n\n <div [style]=\"{minWidth: expandMenu ? '300px' : '60px'}\"></div>\n\n <p-sidebar\n #sidebarRef\n [visible]=\"true\"\n [showCloseIcon]=\"false\"\n [modal]=\"false\"\n [style]=\"{width: expandMenu ? '300px' : '60px'}\">\n <ng-template pTemplate=\"headless\">\n <div class=\"flex flex-column mx-1\">\n <div\n class=\"flex flex-column gap-2 justify-content-between flex-shrink-0 mx-2\">\n <div\n class=\"flex flex-row align-items-center {{expandMenu ? 'justify-content-between' : 'justify-content-center'}} py-3\">\n <img\n *ngIf=\"expandMenu\"\n alt=\"Card\"\n [src]=\"logoImage\"\n width=\"150\" />\n\n <button\n pButton\n class=\"p-button-rounded p-button-text padding-style h-2rem w-2rem hover:bg-green-600 hover:text-white icon-menu\"\n (click)=\"toggleMenu()\"\n [pTooltip]=\"expandMenu ? 'Ocutar Menu' : 'Expandir Menu'\"\n [tooltipPosition]=\"'right'\">\n <i class=\"material-symbols-outlined\">\n menu\n </i>\n </button>\n </div>\n\n <div\n class=\"flex flex-row align-items-center {{expandMenu ? 'justify-content-between' : 'justify-content-center'}}\">\n <div\n class=\"flex flex-column cursor-pointer\"\n *ngIf=\"expandMenu\"\n (click)=\"trocarLicenca()\">\n <span\n class=\"text-sm font-semibold mr-2\"\n [pTooltip]=\"this.licencaSelecionada.nome\"\n [tooltipPosition]=\"'right'\">\n {{mascaraNomeLicenca(this.licencaSelecionada.nome)}}\n </span>\n <span class=\"text-sm mt-1\">{{this.licencaSelecionada.cpfcnpj |\n cpfCnpj }}</span>\n </div>\n\n <button\n pButton\n class=\"p-button-rounded p-button-text padding-style h-2rem w-2rem hover:bg-green-600 hover:text-white icon-menu\"\n (click)=\"trocarLicenca()\"\n [pTooltip]=\"'Alterar workspace'\"\n [tooltipPosition]=\"'right'\">\n <i class=\"material-symbols-outlined\">\n sync_alt\n </i>\n </button>\n\n </div>\n <p-divider type=\"solid\"></p-divider>\n </div>\n\n <div\n class=\"list-none m-0 card-container {{expandMenu ? 'mx-1' : ''}}\"\n [style.max-height]=\"(heigthCard - 220) + 'px'\"\n style=\"overflow-y: auto;\">\n <!-- menus -->\n <li *ngFor=\"let menu of menus; let i = index\">\n <!-- menu que n\u00E3o tem filho -->\n <a\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"\n (click)=\"callRoute(menu.link)\"\n *ngIf=\"!menu.menupai && menu.idmenupai == 0\"\n pRipple\n [pTooltip]=\"!expandMenu ? menu.descricaomenu : ''\"\n [tooltipPosition]=\"'right'\"\n class=\"{{verificarPaginaSelecionada(menu.link) ? 'bg-green-600' : ''}} menu-option flex align-items-center no-underline {{!expandMenu ? 'justify-content-center' : ''}} cursor-pointer border-round text-700 hover:bg-green-600 hover:text-white transition-duration-150 transition-colors p-ripple\">\n\n <i\n class=\"material-symbols-outlined icon-menu {{expandMenu ? 'ml-1 mr-2' : ''}} icon-hover-color {{verificarPaginaSelecionada(menu.link) ? 'text-white' : ''}}\"\n *ngIf=\"menu.icone && menu.icone !== ''\">\n {{ menu.icone }}\n </i>\n <span\n class=\"text-base text-blue-900 font-medium {{verificarPaginaSelecionada(menu.link) ? 'text-white' : ''}}\"\n *ngIf=\"expandMenu\">{{ menu.descricaomenu }}</span>\n </a>\n <!-- menu com filho -->\n <div *ngIf=\"menu.menupai\">\n <a\n (mouseenter)=\"onMouseEnter(i)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"\n pRipple\n pStyleClass=\"@next\"\n enterClass=\"hidden\"\n enterActiveClass=\"slidedown\"\n leaveToClass=\"hidden\"\n leaveActiveClass=\"slideup\"\n class=\"menu-option flex align-items-center {{!expandMenu ? 'justify-content-center' : 'justify-content-between'}} cursor-pointer border-round text-700 hover:bg-green-600 hover:text-white transition-duration-150 transition-colors p-ripple\"\n [tooltipPosition]=\"'right'\"\n [pTooltip]=\"!expandMenu ? menu.descricaomenu : ''\"\n (click)=\"!expandMenu ? expandMenu = !expandMenu : ''\">\n <div class=\"flex flex-row align-items-center\">\n\n <i\n class=\"material-symbols-outlined icon-menu {{expandMenu ? 'ml-1 mr-2' : ''}} icon-hover-color\"\n *ngIf=\"menu.icone && menu.icone !== ''\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\">\n {{ menu.icone }}\n </i>\n <span\n class=\"text-base text-blue-900 font-medium\"\n *ngIf=\"expandMenu\">{{ menu.descricaomenu }}</span>\n </div>\n <i\n class=\"pi pi-chevron-down text-blue-900 mr-1 icon-hover-color\"\n *ngIf=\"expandMenu\"\n [ngClass]=\"{'hover-color': mouseOverIndex === i}\"></i>\n </a>\n\n <!-- filhos -->\n <div\n class=\"list-none py-0 pl-3 pr-0 m-0 hidden overflow-y-hidden transition-all transition-duration-400 transition-ease-in-out\">\n <li *ngFor=\"\n let filho of retornarMenuFilhos(menu.idsistema, menu.idmenu); let iFilho = index\n \">\n <a\n (mouseenter)=\"onMouseFilhoEnter(filho.idmenu)\"\n (mouseleave)=\"onMouseLeave()\"\n [ngClass]=\"{'hover-color': mouseOverFilhoIndex === filho.idmenu}\"\n *ngIf=\"expandMenu\"\n (click)=\"callRoute(filho.link)\"\n pRipple\n class=\"{{verificarPaginaSelecionada(filho.link) ? 'bg-green-600' : ''}} menu-option flex align-items-center no-underline cursor-pointer border-round text-700 hover:bg-green-600 transition-duration-150 transition-colors p-ripple p-2\">\n <i\n class=\"pi pi-chart-line mr-2 ml-1 adjust-icon-menu\"\n *ngIf=\"filho.icone && filho.icone !== ''\"></i>\n <span\n class=\"text-base text-blue-900 ml-4 {{verificarPaginaSelecionada(filho.link) ? 'text-white' : ''}}\"\n *ngIf=\"expandMenu\">{{ filho.descricaomenu }}</span>\n </a>\n </li>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </p-sidebar>\n\n <div\n class=\"w-auto h-screen page-content overflow-y-hidden\"\n id=\"page-content\">\n\n <div class=\"flex flex-row align-items-center justify-content-between m-3\">\n <div>\n <p class=\"text-xl font-semibold text-blue-900 breadcrumb-title\">{{breadCrumbItems[breadCrumbItems.length - 1]?.label}}</p>\n <p-breadcrumb\n *ngIf=\"widthCard > 400\"\n styleClass=\"border-none p-0 flex align-items-center h-2rem !important;\"\n [model]=\"breadCrumbItems\"\n [style]=\"{backgroundColor: '#d4d3d3'}\"\n (onItemClick)=\"callRoute($event.item.routerLink, true)\"></p-breadcrumb>\n </div>\n\n <div class=\"w-auto flex flex-row align-items-center gap-2\">\n\n <p-button\n styleClass=\"w-2rem h-2rem text-blue-900 hover:bg-green-600 hover:text-white\"\n icon=\"pi pi-th-large\"\n [rounded]=\"true\"\n [text]=\"true\"\n (click)=\"sistemasPanel.toggle($event)\"\n [pTooltip]=\"'Sistemas'\"\n [tooltipPosition]=\"'left'\"></p-button>\n\n <p-button\n styleClass=\"w-2rem h-2rem text-blue-900 hover:bg-green-600 hover:text-white\"\n icon=\"pi pi-user\"\n [rounded]=\"true\"\n [text]=\"true\"\n [pTooltip]=\"'Menu do Usu\u00E1rio'\"\n [tooltipPosition]=\"'left'\"\n (click)=\"meusDadosPanel.toggle($event)\"></p-button>\n\n </div>\n </div>\n\n <p-card\n class=\"card-container\"\n styleClass=\"m-3 border-noround overflow-y-auto card-container\"\n [style]=\"{height: heigthCard - ajustarHeigthCard() + 'px'}\">\n <div class=\"card-container w-full\">\n <ng-content></ng-content>\n </div>\n </p-card>\n\n </div>\n\n <p-overlayPanel\n #sistemasPanel\n [showTransitionOptions]=\"'350ms ease-out'\"\n [hideTransitionOptions]=\"'250ms ease-in'\">\n <ng-template pTemplate=\"container\">\n <p class=\"title-style mt-3\">Sistemas</p>\n <div\n class=\"flex flex-row flex-wrap gap-2 align-items-center justify-content-center mt-5 mb-3\"\n style=\"width: 250px; height: 100%;\">\n <button\n *ngFor=\"let menu of menuCompleto\"\n pButton\n pRipple\n class=\"btn-sistema-2 btn-sistema hover-btn-cor-padrao remove-focus h-4rem w-4rem\"\n (click)=\"definirMenusPorSistema(menu.sistema.idsistema)\"\n [pTooltip]=\"menu.sistema.descricaosistema\"\n [tooltipPosition]=\"'left'\">\n {{ menu.sistema.nomesistema.charAt(0).toUpperCase() }}\n </button>\n\n </div>\n </ng-template>\n </p-overlayPanel>\n\n <p-overlayPanel\n #meusDadosPanel\n [showTransitionOptions]=\"'350ms ease-out'\"\n [hideTransitionOptions]=\"'250ms ease-in'\">\n\n <ng-template pTemplate=\"container\">\n\n <p class=\"title-style mt-3\">Ol\u00E1, {{nomeUsuario ?\n nomeUsuario.split(' ')[0] : 'Usu\u00E1rio'}} !</p>\n <div class=\"mt-5 mb-3\">\n\n </div>\n\n <p-button\n icon=\"pi pi-lock\"\n label=\"Ger\u00EAnciar KeevoPass\"\n (onClick)=\"gerenciarKeePass($event)\"\n styleClass=\"border-noround w-full text-blue-900\"\n [text]=\"true\"\n [disabled]=\"true\"></p-button>\n <p-button\n icon=\"pi pi-sign-out\"\n label=\"Sair\"\n (onClick)=\"sair($event)\"\n styleClass=\"border-noround w-full text-blue-900\"\n [text]=\"true\"></p-button>\n </ng-template>\n\n </p-overlayPanel>", styles: [".material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1em;display:inline-block;width:1em;height:1em;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}::ng-deep .p-button:focus{box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none}::ng-deep .p-overlaypanel .p-overlaypanel-content{padding:0}::ng-deep .hover-btn-cor-padrao.p-button:enabled:hover{background:#0c3e66;border-color:#002542}.p-button.p-button-icon-only.p-button-rounded{background:#0c3e66;border-color:#002542}::ng-deep .remove-focus:focus{border:none}::ng-deep .p-sidebar .p-sidebar-content{padding:0}::ng-deep .sidebar-header-sistema.p-sidebar .p-sidebar-header{padding-top:.5rem;padding-right:0;padding-bottom:0;padding-left:0;display:block}.btn-sistema{display:flex;align-items:center;justify-content:center;background-color:#0c3e66;font-size:20px}::ng-deep .p-sidebar .p-sidebar-header{padding:0rem!important}::ng-deep body{margin:0!important}::ng-deep .p-breadcrumb ul li.p-breadcrumb-chevron{position:relative;top:3px;color:#0c3e66!important}.page-content{background:linear-gradient(to bottom,#d4d3d3 16%,#fff 19%)}*{margin:0}p .item-menu{color:#0c3e66;font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important}span{font-size:.9rem!important}.breadcrumb-title{font-size:1rem!important;font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important}::ng-deep .card-container{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}.title-style{position:relative;top:10px;margin-left:20px;font-size:25px;color:#002542;border-bottom:2px solid green;font-weight:600;display:inline}::ng-deep p-sidebar .p-sidebar-content{overflow-y:hidden}::ng-deep p-dialog .p-dialog-content{overflow-y:unset}.icon-menu{color:#002542;display:flex;justify-content:center;align-items:center}::ng-deep .padding-style{padding:15px!important}::ng-deep .menu-option{padding:15px 5px!important}::ng-deep .p-breadcrumb .p-breadcrumb-list .p-menuitem-text{color:#183462!important;opacity:.95;font-weight:500;font-size:.8rem!important}::ng-deep .p-breadcrumb .p-breadcrumb-list .p-menuitem-text:hover{opacity:.7}.pl-3{padding-left:0rem!important}::ng-deep svg.p-icon{width:.7rem;height:1rem}.hover-color .text-base,.hover-color .icon-hover-color{color:#fff!important}::ng-deep .p-card .p-card-content{padding:0rem!important}\n"] }]
153
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i1.ActivatedRoute }]; }, propDecorators: { breadCrumbItems: [{
154
+ type: Input
155
+ }], licencas: [{
156
+ type: Input
157
+ }], licencaSelecionada: [{
158
+ type: Input
159
+ }], logoImage: [{
160
+ type: Input
161
+ }], menuCompleto: [{
162
+ type: Input
163
+ }], nomeUsuario: [{
164
+ type: Input
165
+ }], expandMenuEmit: [{
166
+ type: Output
167
+ }], gerenciarKeePassEvent: [{
168
+ type: Output
169
+ }], licencaChange: [{
170
+ type: Output
171
+ }], sairEvent: [{
172
+ type: Output
173
+ }], trocarLicencaEmit: [{
174
+ type: Output
175
+ }], meusDadosPanel: [{
176
+ type: ViewChild,
177
+ args: ['meusDadosPanel']
178
+ }], sidebarRef: [{
179
+ type: ViewChild,
180
+ args: ['sidebarRef']
181
+ }], sistemasPanel: [{
182
+ type: ViewChild,
183
+ args: ['sistemasPanel']
184
+ }], onWindowResize: [{
185
+ type: HostListener,
186
+ args: ['window:resize', ['$event']]
187
+ }] } });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1tZW51L2t2LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbWVudS9rdi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBY3ZCLE1BQU0sT0FBTyxlQUFlO0lBNkIxQixZQUFvQixHQUFzQixFQUFZLE1BQWMsRUFBVSxLQUFxQjtRQUEvRSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFZLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQTNCMUYsb0JBQWUsR0FBNEMsRUFBRSxDQUFDO1FBQzlELGFBQVEsR0FBdUIsRUFBRSxDQUFBO1FBR2pDLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUd0QyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXhFLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUN6QyxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUV4QixlQUFVLEdBQVksSUFBSSxDQUFDO1FBSTNCLHlCQUFvQixHQUFZ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LElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBUztRQUNsQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQTdKVSxlQUFlO21HQUFmLGVBQWUsa3lCQzdCNUIsKzRWQWdRcUI7OzRGRG5PUixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVM7MEpBTVYsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0ssYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQWtIMUIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGUsXG4gIFJvdXRlclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hc3RlckNvbWJvTW9kZWwgfSBmcm9tICdrZWV2by1hcGktc2VydmljZXMta2Vldm9jZW50ZXInO1xuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XG5cbmltcG9ydCB7IG1lbnVDb21wbGV0b01vZGVsIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVscy9tZW51L21lbnVjb21wbGV0by5tb2RlbCc7XG5pbXBvcnQgeyBtZW51TW9kZWwgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzL21lbnUvbWVudS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2t2LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4va3YtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2t2LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgS3ZNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBicmVhZENydW1iSXRlbXM6IHsgbGFiZWw6IHN0cmluZywgcm91dGVyTGluazogc3RyaW5nIH1bXSA9IFtdO1xuICBASW5wdXQoKSBsaWNlbmNhczogTWFzdGVyQ29tYm9Nb2RlbFtdID0gW11cbiAgQElucHV0KCkgbGljZW5jYVNlbGVjaW9uYWRhITogTWFzdGVyQ29tYm9Nb2RlbDtcbiAgQElucHV0KCkgbG9nb0ltYWdlITogYW55O1xuICBASW5wdXQoKSBtZW51Q29tcGxldG86IG1lbnVDb21wbGV0b01vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgbm9tZVVzdWFyaW8hOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGV4cGFuZE1lbnVFbWl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBnZXJlbmNpYXJLZWVQYXNzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbGljZW5jYUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYWlyRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgdHJvY2FyTGljZW5jYUVtaXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdtZXVzRGFkb3NQYW5lbCcpIG1ldXNEYWRvc1BhbmVsITogT3ZlcmxheVBhbmVsO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyUmVmJykgc2lkZWJhclJlZiE6IFNpZGViYXI7XG4gIEBWaWV3Q2hpbGQoJ3Npc3RlbWFzUGFuZWwnKSBzaXN0ZW1hc1BhbmVsITogT3ZlcmxheVBhbmVsO1xuXG4gIG1lbnVzRmlsdHJhZG9zOiBtZW51Q29tcGxldG9Nb2RlbFtdID0gW107XG4gIG1lbnVzOiBtZW51TW9kZWxbXSA9IFtdO1xuXG4gIGV4cGFuZE1lbnU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlndGhDYXJkITogbnVtYmVyO1xuICBtb3VzZU92ZXJGaWxob0luZGV4OiBhbnk7XG4gIG1vdXNlT3ZlckluZGV4OiBhbnk7XG4gIHZpc2libGVEaWFsb2dMaWNlbmNhOiBib29sZWFuID0gZmFsc2U7XG4gIHdpZHRoQ2FyZCE6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHsgfVxuXG4gIGFqdXN0YXJIZWlndGhDYXJkKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMud2lkdGhDYXJkID4gNDAwKSB7XG4gICAgICBpZiAodGhpcy5icmVhZENydW1iSXRlbXMubGVuZ3RoID4gMCkgcmV0dXJuIDEwNVxuICAgICAgZWxzZSByZXR1cm4gODVcbiAgICB9IGVsc2UgcmV0dXJuIDgzXG4gIH1cblxuICBjYWxsUm91dGUoZTogYW55LCBleHBhbmQ/OiBib29sZWFuKSB7XG4gICAgaWYgKCFleHBhbmQpXG4gICAgICAhdGhpcy5leHBhbmRNZW51ID8gdGhpcy5leHBhbmRNZW51ID0gIXRoaXMuZXhwYW5kTWVudSA6ICcnO1xuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChlKVxuICB9XG5cbiAgY2xvc2VDYWxsYmFjayhlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2lkZWJhclJlZi5jbG9zZShlKTtcbiAgfVxuXG4gIGNvbmZpZ3VyYXJMaWNlbmNhcygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGVmaW5pck1lbnVzUG9yU2lzdGVtYSh0aGlzLm1lbnVDb21wbGV0b1swXT8uc2lzdGVtYS5pZHNpc3RlbWEpXG4gICAgfSwgMSk7XG4gIH1cblxuICBkZWZpbmlyTWVudXNQb3JTaXN0ZW1hKGlkc2lzdGVtYTogbnVtYmVyKSB7XG4gICAgdGhpcy5tZW51cyA9IHRoaXMubWVudUNvbXBsZXRvLmZpbmQoKHgpID0+IHguc2lzdGVtYS5pZHNpc3RlbWEgPT0gaWRzaXN0ZW1hKT8ubWVudXMgfHwgW107XG5cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsID09PSAnLycpIHtcbiAgICAgIHRoaXMubmF2aWdhdGVUb0ZpcnN0TWVudSgpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgbWVudVNlbGVjaW9uYWRvID0gdGhpcy5tZW51cy5maW5kKChtZW51OiBhbnkpID0+IG1lbnUubGluay5pbmNsdWRlcyh0aGlzLnJvdXRlci51cmwuc2xpY2UoMSkpKTtcbiAgICAgIGlmIChtZW51U2VsZWNpb25hZG8pIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvTWVudShtZW51U2VsZWNpb25hZG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2lzdGVtYXNQYW5lbC5oaWRlKCk7XG4gIH1cblxuICBleHBhbmRNZW51RXZlbnQoKSB7XG4gICAgdGhpcy5leHBhbmRNZW51RW1pdC5lbWl0KHRoaXMuZXhwYW5kTWVudSk7XG4gIH1cblxuICBnZXJlbmNpYXJLZWVQYXNzKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xuICAgIHRoaXMuZ2VyZW5jaWFyS2VlUGFzc0V2ZW50LmVtaXQoZXZlbnQpXG4gIH1cblxuICBtYXNjYXJhTm9tZUxpY2VuY2Eobm9tZUxpY2VuY2E6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKG5vbWVMaWNlbmNhKSB7XG4gICAgICBpZiAobm9tZUxpY2VuY2EubGVuZ3RoID4gMjMpXG4gICAgICAgIHJldHVybiBub21lTGljZW5jYS5zdWJzdHJpbmcoMCwgMjMpICsgJy4uLic7XG4gICAgICBlbHNlIHJldHVybiBub21lTGljZW5jYTtcbiAgICB9IGVsc2UgcmV0dXJuICcnO1xuICB9XG5cbiAgbmF2aWdhdGVUb0ZpcnN0TWVudSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdE1lbnUgPSB0aGlzLm1lbnVzWzBdO1xuICAgIGlmIChmaXJzdE1lbnUubWVudXBhaSkge1xuICAgICAgY29uc3QgZmlsaG9zID0gdGhpcy5yZXRvcm5hck1lbnVGaWxob3MoZmlyc3RNZW51Lmlkc2lzdGVtYSwgZmlyc3RNZW51LmlkbWVudSk7XG4gICAgICBpZiAoZmlsaG9zKSB7XG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWxsUm91dGUoZmlyc3RNZW51LmxpbmssIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG5hdmlnYXRlVG9NZW51KG1lbnU6IGFueSk6IHZvaWQge1xuICAgIGlmIChtZW51Lm1lbnVwYWkpIHtcbiAgICAgIGNvbnN0IGZpbGhvcyA9IHRoaXMucmV0b3JuYXJNZW51RmlsaG9zKG1lbnUuaWRzaXN0ZW1hLCBtZW51LmlkbWVudSk7XG4gICAgICBpZiAoZmlsaG9zKSB7XG4gICAgICAgIHRoaXMuY2FsbFJvdXRlKGZpbGhvc1swXS5saW5rLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWxsUm91dGUobWVudS5saW5rLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXJMaWNlbmNhcygpO1xuICAgIHRoaXMuaGVpZ3RoQ2FyZCA9IE51bWJlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1jb250ZW50Jyk/Lm9mZnNldEhlaWdodCk7XG4gICAgdGhpcy53aWR0aENhcmQgPSBOdW1iZXIod2luZG93LmlubmVyV2lkdGgpIC0gKHRoaXMuZXhwYW5kTWVudSA/IDMzMyA6IDkzKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tb3VzZU92ZXJJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgb25Nb3VzZUZpbGhvRW50ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubW91c2VPdmVyRmlsaG9JbmRleCA9IGluZGV4O1xuICB9XG5cbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIHRoaXMubW91c2VPdmVySW5kZXggPSBudWxsO1xuICAgIHRoaXMubW91c2VPdmVyRmlsaG9JbmRleCA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy5oZWlndGhDYXJkID0gTnVtYmVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWNvbnRlbnQnKT8ub2Zmc2V0SGVpZ2h0KTtcbiAgICB0aGlzLndpZHRoQ2FyZCA9IE51bWJlcih3aW5kb3cuaW5uZXJXaWR0aCkgLSAodGhpcy5leHBhbmRNZW51ID8gMzMzIDogOTMpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJldG9ybmFyTWVudUZpbGhvcyhpZHNpc3RlbWE6IG51bWJlciwgaWRtZW51OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29tcGxldG8uZmluZCgoeCkgPT4geC5zaXN0ZW1hLmlkc2lzdGVtYSA9PSBpZHNpc3RlbWEpPy5tZW51cy5maWx0ZXIoKHgpID0+IHguaWRtZW51cGFpID09IGlkbWVudSk7XG4gIH1cblxuICBzYWlyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNpc3RlbWFzUGFuZWwuaGlkZSgpO1xuICAgIHRoaXMuc2FpckV2ZW50LmVtaXQoZXZlbnQpXG4gIH1cblxuICB0b2dnbGVNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kTWVudSA9ICF0aGlzLmV4cGFuZE1lbnU7XG4gICAgdGhpcy5leHBhbmRNZW51RXZlbnQoKVxuICB9XG5cbiAgdHJvY2FyTGljZW5jYSgpIHtcbiAgICB0aGlzLnRyb2NhckxpY2VuY2FFbWl0LmVtaXQoKTtcbiAgfVxuXG4gIHZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKGxpbms6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMobGluayk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG92ZXJmbG93LXktaGlkZGVuIHctIGZ1bGwtY29udGFpbmVyXCI+XG5cbiAgPGRpdiBbc3R5bGVdPVwie21pbldpZHRoOiBleHBhbmRNZW51ID8gJzMwMHB4JyA6ICc2MHB4J31cIj48L2Rpdj5cblxuICA8cC1zaWRlYmFyXG4gICAgI3NpZGViYXJSZWZcbiAgICBbdmlzaWJsZV09XCJ0cnVlXCJcbiAgICBbc2hvd0Nsb3NlSWNvbl09XCJmYWxzZVwiXG4gICAgW21vZGFsXT1cImZhbHNlXCJcbiAgICBbc3R5bGVdPVwie3dpZHRoOiBleHBhbmRNZW51ID8gJzMwMHB4JyA6ICc2MHB4J31cIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGxlc3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIG14LTFcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LXNocmluay0wIG14LTJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHt7ZXhwYW5kTWVudSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcid9fSBweS0zXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiXG4gICAgICAgICAgICAgIGFsdD1cIkNhcmRcIlxuICAgICAgICAgICAgICBbc3JjXT1cImxvZ29JbWFnZVwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTUwXCIgLz5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHBhZGRpbmctc3R5bGUgaC0ycmVtIHctMnJlbSBob3ZlcjpiZy1ncmVlbi02MDAgaG92ZXI6dGV4dC13aGl0ZSBpY29uLW1lbnVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCJcbiAgICAgICAgICAgICAgW3BUb29sdGlwXT1cImV4cGFuZE1lbnUgPyAnT2N1dGFyIE1lbnUnIDogJ0V4cGFuZGlyIE1lbnUnXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgIG1lbnVcbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIHt7ZXhwYW5kTWVudSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWNlbnRlcid9fVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidHJvY2FyTGljZW5jYSgpXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgbXItMlwiXG4gICAgICAgICAgICAgICAgW3BUb29sdGlwXT1cInRoaXMubGljZW5jYVNlbGVjaW9uYWRhLm5vbWVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiPlxuICAgICAgICAgICAgICAgIHt7bWFzY2FyYU5vbWVMaWNlbmNhKHRoaXMubGljZW5jYVNlbGVjaW9uYWRhLm5vbWUpfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gbXQtMVwiPnt7dGhpcy5saWNlbmNhU2VsZWNpb25hZGEuY3BmY25waiB8XG4gICAgICAgICAgICAgICAgY3BmQ25waiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcGFkZGluZy1zdHlsZSBoLTJyZW0gdy0ycmVtIGhvdmVyOmJnLWdyZWVuLTYwMCBob3Zlcjp0ZXh0LXdoaXRlIGljb24tbWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0cm9jYXJMaWNlbmNhKClcIlxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ0FsdGVyYXIgd29ya3NwYWNlJ1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICBzeW5jX2FsdFxuICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwLWRpdmlkZXIgdHlwZT1cInNvbGlkXCI+PC9wLWRpdmlkZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxpc3Qtbm9uZSBtLTAgIGNhcmQtY29udGFpbmVyIHt7ZXhwYW5kTWVudSA/ICdteC0xJyA6ICcnfX1cIlxuICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIihoZWlndGhDYXJkIC0gMjIwKSArICdweCdcIlxuICAgICAgICAgIHN0eWxlPVwib3ZlcmZsb3cteTogYXV0bztcIj5cbiAgICAgICAgICA8IS0tIG1lbnVzIC0tPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVudSBvZiBtZW51czsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPCEtLSBtZW51IHF1ZSBuw6NvIHRlbSBmaWxobyAtLT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcihpKVwiXG4gICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydob3Zlci1jb2xvcic6IG1vdXNlT3ZlckluZGV4ID09PSBpfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYWxsUm91dGUobWVudS5saW5rKVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW1lbnUubWVudXBhaSAmJiBtZW51LmlkbWVudXBhaSA9PSAwXCJcbiAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUgPyBtZW51LmRlc2NyaWNhb21lbnUgOiAnJ1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwie3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShtZW51LmxpbmspID8gJ2JnLWdyZWVuLTYwMCcgOiAnJ319IG1lbnUtb3B0aW9uIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vLXVuZGVybGluZSB7eyFleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInIDogJyd9fSBjdXJzb3ItcG9pbnRlciBib3JkZXItcm91bmQgdGV4dC03MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1kdXJhdGlvbi0xNTAgdHJhbnNpdGlvbi1jb2xvcnMgcC1yaXBwbGVcIj5cblxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBpY29uLW1lbnUge3tleHBhbmRNZW51ID8gJ21sLTEgbXItMicgOiAnJ319ICBpY29uLWhvdmVyLWNvbG9yIHt7dmVyaWZpY2FyUGFnaW5hU2VsZWNpb25hZGEobWVudS5saW5rKSA/ICd0ZXh0LXdoaXRlJyA6ICcnfX1cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudS5pY29uZSAmJiBtZW51Lmljb25lICE9PSAnJ1wiPlxuICAgICAgICAgICAgICAgIHt7IG1lbnUuaWNvbmUgfX1cbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtYmx1ZS05MDAgZm9udC1tZWRpdW0ge3t2ZXJpZmljYXJQYWdpbmFTZWxlY2lvbmFkYShtZW51LmxpbmspID8gJ3RleHQtd2hpdGUnIDogJyd9fVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCI+e3sgbWVudS5kZXNjcmljYW9tZW51IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPCEtLSBtZW51IGNvbSBmaWxobyAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZW51Lm1lbnVwYWlcIj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoaSlcIlxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2hvdmVyLWNvbG9yJzogbW91c2VPdmVySW5kZXggPT09IGl9XCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgcFN0eWxlQ2xhc3M9XCJAbmV4dFwiXG4gICAgICAgICAgICAgICAgZW50ZXJDbGFzcz1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInNsaWRlZG93blwiXG4gICAgICAgICAgICAgICAgbGVhdmVUb0NsYXNzPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwic2xpZGV1cFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LW9wdGlvbiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB7eyFleHBhbmRNZW51ID8gJ2p1c3RpZnktY29udGVudC1jZW50ZXInIDogJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJ319IGN1cnNvci1wb2ludGVyIGJvcmRlci1yb3VuZCB0ZXh0LTcwMCBob3ZlcjpiZy1ncmVlbi02MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWR1cmF0aW9uLTE1MCB0cmFuc2l0aW9uLWNvbG9ycyBwLXJpcHBsZVwiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiIWV4cGFuZE1lbnUgPyBtZW51LmRlc2NyaWNhb21lbnUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFleHBhbmRNZW51ID8gZXhwYW5kTWVudSA9ICFleHBhbmRNZW51IDogJydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tbWVudSB7e2V4cGFuZE1lbnUgPyAnbWwtMSBtci0yJyA6ICcnfX0gaWNvbi1ob3Zlci1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudS5pY29uZSAmJiBtZW51Lmljb25lICE9PSAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJJbmRleCA9PT0gaX1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWVudS5pY29uZSB9fVxuICAgICAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBmb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZXhwYW5kTWVudVwiPnt7IG1lbnUuZGVzY3JpY2FvbWVudSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaSBwaS1jaGV2cm9uLWRvd24gdGV4dC1ibHVlLTkwMCBtci0xIGljb24taG92ZXItY29sb3JcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJJbmRleCA9PT0gaX1cIj48L2k+XG4gICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICA8IS0tIGZpbGhvcyAtLT5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ub25lIHB5LTAgcGwtMyBwci0wIG0tMCBoaWRkZW4gb3ZlcmZsb3cteS1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgdHJhbnNpdGlvbi1kdXJhdGlvbi00MDAgdHJhbnNpdGlvbi1lYXNlLWluLW91dFwiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IGZpbGhvIG9mIHJldG9ybmFyTWVudUZpbGhvcyhtZW51Lmlkc2lzdGVtYSwgbWVudS5pZG1lbnUpOyAgbGV0IGlGaWxobyA9IGluZGV4XG4gICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VGaWxob0VudGVyKGZpbGhvLmlkbWVudSlcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaG92ZXItY29sb3InOiBtb3VzZU92ZXJGaWxob0luZGV4ID09PSBmaWxoby5pZG1lbnV9XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxSb3V0ZShmaWxoby5saW5rKVwiXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e3ZlcmlmaWNhclBhZ2luYVNlbGVjaW9uYWRhKGZpbGhvLmxpbmspID8gJ2JnLWdyZWVuLTYwMCcgOiAnJ319IG1lbnUtb3B0aW9uIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vLXVuZGVybGluZSBjdXJzb3ItcG9pbnRlciBib3JkZXItcm91bmQgdGV4dC03MDAgaG92ZXI6YmctZ3JlZW4tNjAwIHRyYW5zaXRpb24tZHVyYXRpb24tMTUwIHRyYW5zaXRpb24tY29sb3JzIHAtcmlwcGxlIHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGkgcGktY2hhcnQtbGluZSBtci0yIG1sLTEgYWRqdXN0LWljb24tbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWxoby5pY29uZSAmJiBmaWxoby5pY29uZSAhPT0gJydcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ibHVlLTkwMCBtbC00IHt7dmVyaWZpY2FyUGFnaW5hU2VsZWNpb25hZGEoZmlsaG8ubGluaykgPyAndGV4dC13aGl0ZScgOiAnJ319XCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImV4cGFuZE1lbnVcIj57eyBmaWxoby5kZXNjcmljYW9tZW51IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3Atc2lkZWJhcj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidy1hdXRvIGgtc2NyZWVuIHBhZ2UtY29udGVudCBvdmVyZmxvdy15LWhpZGRlblwiXG4gICAgICBpZD1cInBhZ2UtY29udGVudFwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTkwMCBicmVhZGNydW1iLXRpdGxlXCI+e3ticmVhZENydW1iSXRlbXNbYnJlYWRDcnVtYkl0ZW1zLmxlbmd0aCAtIDFdPy5sYWJlbH19PC9wPlxuICAgICAgICAgIDxwLWJyZWFkY3J1bWJcbiAgICAgICAgICAgICpuZ0lmPVwid2lkdGhDYXJkID4gNDAwXCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9uZSBwLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaC0ycmVtICFpbXBvcnRhbnQ7XCJcbiAgICAgICAgICAgIFttb2RlbF09XCJicmVhZENydW1iSXRlbXNcIlxuICAgICAgICAgICAgW3N0eWxlXT1cIntiYWNrZ3JvdW5kQ29sb3I6ICcjZDRkM2QzJ31cIlxuICAgICAgICAgICAgKG9uSXRlbUNsaWNrKT1cImNhbGxSb3V0ZSgkZXZlbnQuaXRlbS5yb3V0ZXJMaW5rLCB0cnVlKVwiPjwvcC1icmVhZGNydW1iPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1hdXRvIGZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG5cbiAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LTJyZW0gaC0ycmVtIHRleHQtYmx1ZS05MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXRoLWxhcmdlXCJcbiAgICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2lzdGVtYXNQYW5lbC50b2dnbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1Npc3RlbWFzJ1wiXG4gICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiPjwvcC1idXR0b24+XG5cbiAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJ3LTJyZW0gaC0ycmVtIHRleHQtYmx1ZS05MDAgaG92ZXI6YmctZ3JlZW4tNjAwIGhvdmVyOnRleHQtd2hpdGVcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXVzZXJcIlxuICAgICAgICAgICAgW3JvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCInTWVudSBkbyBVc3XDoXJpbydcIlxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInbGVmdCdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1ldXNEYWRvc1BhbmVsLnRvZ2dsZSgkZXZlbnQpXCI+PC9wLWJ1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8cC1jYXJkXG4gICAgICAgIGNsYXNzPVwiY2FyZC1jb250YWluZXJcIlxuICAgICAgICBzdHlsZUNsYXNzPVwibS0zIGJvcmRlci1ub3JvdW5kIG92ZXJmbG93LXktYXV0byBjYXJkLWNvbnRhaW5lclwiXG4gICAgICAgIFtzdHlsZV09XCJ7aGVpZ2h0OiBoZWlndGhDYXJkIC0gYWp1c3RhckhlaWd0aENhcmQoKSArICdweCd9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRhaW5lciB3LWZ1bGxcIj5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wLWNhcmQ+XG5cbiAgICA8L2Rpdj5cblxuICAgIDxwLW92ZXJsYXlQYW5lbFxuICAgICAgI3Npc3RlbWFzUGFuZWxcbiAgICAgIFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwiJzM1MG1zIGVhc2Utb3V0J1wiXG4gICAgICBbaGlkZVRyYW5zaXRpb25PcHRpb25zXT1cIicyNTBtcyBlYXNlLWluJ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxuICAgICAgICA8cCBjbGFzcz1cInRpdGxlLXN0eWxlIG10LTNcIj5TaXN0ZW1hczwvcD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtNSBtYi0zXCJcbiAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNTBweDsgaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVDb21wbGV0b1wiXG4gICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1zaXN0ZW1hLTIgYnRuLXNpc3RlbWEgaG92ZXItYnRuLWNvci1wYWRyYW8gcmVtb3ZlLWZvY3VzIGgtNHJlbSB3LTRyZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRlZmluaXJNZW51c1BvclNpc3RlbWEobWVudS5zaXN0ZW1hLmlkc2lzdGVtYSlcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIm1lbnUuc2lzdGVtYS5kZXNjcmljYW9zaXN0ZW1hXCJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCI+XG4gICAgICAgICAgICB7eyBtZW51LnNpc3RlbWEubm9tZXNpc3RlbWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLW92ZXJsYXlQYW5lbD5cblxuICAgIDxwLW92ZXJsYXlQYW5lbFxuICAgICAgI21ldXNEYWRvc1BhbmVsXG4gICAgICBbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cIiczNTBtcyBlYXNlLW91dCdcIlxuICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCInMjUwbXMgZWFzZS1pbidcIj5cblxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRhaW5lclwiPlxuXG4gICAgICAgIDxwIGNsYXNzPVwidGl0bGUtc3R5bGUgbXQtM1wiPk9sw6EsIHt7bm9tZVVzdWFyaW8gP1xuICAgICAgICAgIG5vbWVVc3VhcmlvLnNwbGl0KCcgJylbMF0gOiAnVXN1w6FyaW8nfX0gITwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgbWItM1wiPlxuXG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgIGljb249XCJwaSBwaS1sb2NrXCJcbiAgICAgICAgICBsYWJlbD1cIkdlcsOqbmNpYXIgS2Vldm9QYXNzXCJcbiAgICAgICAgICAob25DbGljayk9XCJnZXJlbmNpYXJLZWVQYXNzKCRldmVudClcIlxuICAgICAgICAgIHN0eWxlQ2xhc3M9XCJib3JkZXItbm9yb3VuZCB3LWZ1bGwgdGV4dC1ibHVlLTkwMFwiXG4gICAgICAgICAgW3RleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj48L3AtYnV0dG9uPlxuICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICBpY29uPVwicGkgcGktc2lnbi1vdXRcIlxuICAgICAgICAgIGxhYmVsPVwiU2FpclwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwic2FpcigkZXZlbnQpXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwiYm9yZGVyLW5vcm91bmQgdy1mdWxsIHRleHQtYmx1ZS05MDBcIlxuICAgICAgICAgIFt0ZXh0XT1cInRydWVcIj48L3AtYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvcC1vdmVybGF5UGFuZWw+Il19
@@ -0,0 +1,47 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { NgModule } from '@angular/core';
4
+ import { KvButtonsModule } from '../kv-buttons/kv-button.module';
5
+ import { KvInputsModule } from '../kv-inputs/kv-inputs.module';
6
+ import { KvMenuComponent } from './kv-menu.component';
7
+ import { PipesModule } from "../../api/pipes/pipes.module";
8
+ import { PrimeNgModule } from '../../api/modules/primeng.module';
9
+ import * as i0 from "@angular/core";
10
+ export class KvMenuModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: KvMenuModule, declarations: [KvMenuComponent], imports: [CommonModule,
13
+ FormsModule,
14
+ KvButtonsModule,
15
+ KvInputsModule,
16
+ PipesModule,
17
+ PrimeNgModule,
18
+ ReactiveFormsModule], exports: [KvMenuComponent] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvMenuModule, imports: [CommonModule,
20
+ FormsModule,
21
+ KvButtonsModule,
22
+ KvInputsModule,
23
+ PipesModule,
24
+ PrimeNgModule,
25
+ ReactiveFormsModule] }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvMenuModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [
31
+ KvMenuComponent
32
+ ],
33
+ exports: [
34
+ KvMenuComponent
35
+ ],
36
+ imports: [
37
+ CommonModule,
38
+ FormsModule,
39
+ KvButtonsModule,
40
+ KvInputsModule,
41
+ PipesModule,
42
+ PrimeNgModule,
43
+ ReactiveFormsModule,
44
+ ]
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1tZW51L2t2LW1lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQ0gsV0FBVyxFQUNYLG1CQUFtQixFQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFtQmpFLE1BQU0sT0FBTyxZQUFZOytHQUFaLFlBQVk7Z0hBQVosWUFBWSxpQkFmakIsZUFBZSxhQU1mLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLGNBQWM7WUFDZCxXQUFXO1lBQ1gsYUFBYTtZQUNiLG1CQUFtQixhQVRuQixlQUFlO2dIQVlWLFlBQVksWUFUakIsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLFdBQVc7WUFDWCxhQUFhO1lBQ2IsbUJBQW1COzs0RkFHZCxZQUFZO2tCQWpCeEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3RCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgS3ZCdXR0b25zTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9ucy9rdi1idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEt2SW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4va3YtaW5wdXRzL2t2LWlucHV0cy5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9rdi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gXCIuLi8uLi9hcGkvcGlwZXMvcGlwZXMubW9kdWxlXCI7XG5pbXBvcnQgeyBQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vYXBpL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBLdk1lbnVDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgS3ZNZW51Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEt2QnV0dG9uc01vZHVsZSxcbiAgICAgICAgS3ZJbnB1dHNNb2R1bGUsXG4gICAgICAgIFBpcGVzTW9kdWxlLFxuICAgICAgICBQcmltZU5nTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS3ZNZW51TW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,67 @@
1
+ import { Component, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "primeng/dynamicdialog";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../kv-buttons/kv-button-personalize/kv-button-personalize.component";
6
+ export class KvModalComponent {
7
+ constructor(dynamicDialogRef) {
8
+ this.dynamicDialogRef = dynamicDialogRef;
9
+ /**
10
+ * Ações do Dialog
11
+ */
12
+ this.actions = [];
13
+ this.actionsPosition = 'right';
14
+ this.justify_content = 'justify-content-start';
15
+ }
16
+ ngOnInit() {
17
+ this.setMarginBottom();
18
+ this.defPositionButtons();
19
+ }
20
+ onWindowResize() {
21
+ this.setMarginBottom();
22
+ }
23
+ defPositionButtons() {
24
+ if (this.actionsPosition === 'right') {
25
+ this.justify_content = 'justify-content-end';
26
+ }
27
+ if (this.actionsPosition === 'center') {
28
+ this.justify_content = 'justify-content-center';
29
+ }
30
+ if (this.actionsPosition === 'left') {
31
+ this.justify_content = 'justify-content-start';
32
+ }
33
+ }
34
+ setMarginBottom() {
35
+ let actionsFieldHeight = document.getElementById('actions-field')?.offsetHeight;
36
+ let divBox = document.getElementById('content-modal');
37
+ if (divBox) {
38
+ if (actionsFieldHeight) {
39
+ divBox.style.marginBottom = `${actionsFieldHeight}px`;
40
+ }
41
+ else {
42
+ divBox.style.marginBottom = `50px`;
43
+ }
44
+ }
45
+ }
46
+ clickExecute(action) {
47
+ if (action.command) {
48
+ action.command();
49
+ if (action.closeAfterClick != false)
50
+ this.dynamicDialogRef.close();
51
+ }
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvModalComponent, deps: [{ token: i1.DynamicDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: KvModalComponent, selector: "kv-modal", inputs: { actions: "actions", actionsPosition: "actionsPosition" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, ngImport: i0, template: "<!-- RENDERIZA\u00C7\u00C3O DO MODAL -->\n<div class=\"col-12\" id=\"content-modal\">\n <ng-content></ng-content>\n</div>\n\n<!-- RENDERIZA\u00C7\u00C3O DOS BOT\u00D5ES -->\n<div class=\"flex flex-row flex-wrap gap-2 m-2 modal-barra-acoes {{justify_content}}\" *ngIf=\"actions\" id=\"actions-field\">\n <kv-button-personalize\n *ngFor=\" let action of actions\"\n [ngClass]=\"action.visible==false?'hidden':''\"\n color=\"{{action.color}}\"\n icon=\"{{action.icon}}\"\n label=\"{{action.label}}\"\n [disabled]=\"action.disabled || false\"\n (onClick)=\"clickExecute(action)\"\n />\n</div>", styles: ["::ng-deep .p-dialog .p-dialog-header{background:#002542!important;color:#fff!important}.modal-barra-acoes{position:fixed;bottom:0;left:0;right:0;z-index:999}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KvButtonPersonalizeComponent, selector: "kv-button-personalize" }] }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvModalComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'kv-modal', template: "<!-- RENDERIZA\u00C7\u00C3O DO MODAL -->\n<div class=\"col-12\" id=\"content-modal\">\n <ng-content></ng-content>\n</div>\n\n<!-- RENDERIZA\u00C7\u00C3O DOS BOT\u00D5ES -->\n<div class=\"flex flex-row flex-wrap gap-2 m-2 modal-barra-acoes {{justify_content}}\" *ngIf=\"actions\" id=\"actions-field\">\n <kv-button-personalize\n *ngFor=\" let action of actions\"\n [ngClass]=\"action.visible==false?'hidden':''\"\n color=\"{{action.color}}\"\n icon=\"{{action.icon}}\"\n label=\"{{action.label}}\"\n [disabled]=\"action.disabled || false\"\n (onClick)=\"clickExecute(action)\"\n />\n</div>", styles: ["::ng-deep .p-dialog .p-dialog-header{background:#002542!important;color:#fff!important}.modal-barra-acoes{position:fixed;bottom:0;left:0;right:0;z-index:999}\n"] }]
59
+ }], ctorParameters: function () { return [{ type: i1.DynamicDialogRef }]; }, propDecorators: { onWindowResize: [{
60
+ type: HostListener,
61
+ args: ['window:resize', ['$event']]
62
+ }], actions: [{
63
+ type: Input
64
+ }], actionsPosition: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDOzs7OztBQVd2QixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQXNCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBWXhEOztXQUVHO1FBQ00sWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0Isb0JBQWUsR0FBVyxPQUFPLENBQUM7UUFFM0Msb0JBQWUsR0FBVyx1QkFBdUIsQ0FBQztJQWxCVSxDQUFDO0lBRTdELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQVVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssT0FBTyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUE7U0FDN0M7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsd0JBQXdCLENBQUE7U0FDaEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssTUFBTSxFQUFFO1lBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUE7U0FDL0M7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRSxZQUFZLENBQUM7UUFFaEYsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksa0JBQWtCLEVBQUU7Z0JBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsa0JBQWtCLElBQUksQ0FBQzthQUN2RDtpQkFDSTtnQkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7YUFDcEM7U0FDRjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBa0I7UUFDN0IsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBRWxCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVqQixJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUksS0FBSztnQkFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEU7SUFDSCxDQUFDOytHQXhEVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix3TENmN0IsNHFCQWdCTTs7NEZERE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVU7dUdBY3BCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUWhDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcblxuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrdi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2t2LW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgS3ZNb2RhbENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGR5bmFtaWNEaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TWFyZ2luQm90dG9tKCk7XG4gICAgdGhpcy5kZWZQb3NpdGlvbkJ1dHRvbnMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcbiAgICB0aGlzLnNldE1hcmdpbkJvdHRvbSgpXG4gIH1cblxuICAvKipcbiAgICogQcOnw7VlcyBkbyBEaWFsb2dcbiAgICovXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBhY3Rpb25zUG9zaXRpb246IHN0cmluZyA9ICdyaWdodCc7XG5cbiAganVzdGlmeV9jb250ZW50OiBzdHJpbmcgPSAnanVzdGlmeS1jb250ZW50LXN0YXJ0JztcblxuICBkZWZQb3NpdGlvbkJ1dHRvbnMoKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uc1Bvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICB0aGlzLmp1c3RpZnlfY29udGVudCA9ICdqdXN0aWZ5LWNvbnRlbnQtZW5kJ1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3Rpb25zUG9zaXRpb24gPT09ICdjZW50ZXInKSB7XG4gICAgICB0aGlzLmp1c3RpZnlfY29udGVudCA9ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJ1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3Rpb25zUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgdGhpcy5qdXN0aWZ5X2NvbnRlbnQgPSAnanVzdGlmeS1jb250ZW50LXN0YXJ0J1xuICAgIH1cbiAgfVxuXG4gIHNldE1hcmdpbkJvdHRvbSgpIHtcbiAgICBsZXQgYWN0aW9uc0ZpZWxkSGVpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbnMtZmllbGQnKT8ub2Zmc2V0SGVpZ2h0O1xuXG4gICAgbGV0IGRpdkJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW50LW1vZGFsJyk7XG5cbiAgICBpZiAoZGl2Qm94KSB7XG4gICAgICBpZiAoYWN0aW9uc0ZpZWxkSGVpZ2h0KSB7XG4gICAgICAgIGRpdkJveC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBgJHthY3Rpb25zRmllbGRIZWlnaHR9cHhgO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRpdkJveC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBgNTBweGA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2xpY2tFeGVjdXRlKGFjdGlvbjogQWN0aW9uSXRlbSkge1xuICAgIGlmIChhY3Rpb24uY29tbWFuZCkge1xuXG4gICAgICBhY3Rpb24uY29tbWFuZCgpO1xuXG4gICAgICBpZiAoYWN0aW9uLmNsb3NlQWZ0ZXJDbGljayAhPSBmYWxzZSkgdGhpcy5keW5hbWljRGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG59IiwiPCEtLSBSRU5ERVJJWkHDh8ODTyBETyBNT0RBTCAtLT5cbjxkaXYgY2xhc3M9XCJjb2wtMTJcIiBpZD1cImNvbnRlbnQtbW9kYWxcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPCEtLSBSRU5ERVJJWkHDh8ODTyBET1MgQk9Uw5VFUyAtLT5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBnYXAtMiBtLTIgbW9kYWwtYmFycmEtYWNvZXMge3tqdXN0aWZ5X2NvbnRlbnR9fVwiICpuZ0lmPVwiYWN0aW9uc1wiIGlkPVwiYWN0aW9ucy1maWVsZFwiPlxuICAgICAgICA8a3YtYnV0dG9uLXBlcnNvbmFsaXplXG4gICAgICAgICAgICAqbmdGb3I9XCIgbGV0IGFjdGlvbiBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFjdGlvbi52aXNpYmxlPT1mYWxzZT8naGlkZGVuJzonJ1wiXG4gICAgICAgICAgICBjb2xvcj1cInt7YWN0aW9uLmNvbG9yfX1cIlxuICAgICAgICAgICAgaWNvbj1cInt7YWN0aW9uLmljb259fVwiXG4gICAgICAgICAgICBsYWJlbD1cInt7YWN0aW9uLmxhYmVsfX1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0V4ZWN1dGUoYWN0aW9uKVwiXG4gICAgICAgIC8+XG48L2Rpdj4iXX0=
@@ -0,0 +1,31 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { KvModalComponent } from './kv-modal.component';
4
+ import { KvButtonsModule, PrimeNgModule } from '../../../public-api';
5
+ import * as i0 from "@angular/core";
6
+ export class KvModalModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: KvModalModule, declarations: [KvModalComponent], imports: [CommonModule,
9
+ PrimeNgModule,
10
+ KvButtonsModule], exports: [KvModalComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvModalModule, imports: [CommonModule,
12
+ PrimeNgModule,
13
+ KvButtonsModule] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: KvModalModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [
19
+ KvModalComponent
20
+ ],
21
+ imports: [
22
+ CommonModule,
23
+ PrimeNgModule,
24
+ KvButtonsModule,
25
+ ],
26
+ exports: [
27
+ KvModalComponent
28
+ ]
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBaUJyRSxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsaUJBWHRCLGdCQUFnQixhQUdoQixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWUsYUFHZixnQkFBZ0I7Z0hBR1AsYUFBYSxZQVJ0QixZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7OzRGQU1OLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgS3ZNb2RhbENvbXBvbmVudCB9IGZyb20gJy4va3YtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEt2QnV0dG9uc01vZHVsZSwgUHJpbWVOZ01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgS3ZNb2RhbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFByaW1lTmdNb2R1bGUsXG4gICAgS3ZCdXR0b25zTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgS3ZNb2RhbENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEt2TW9kYWxNb2R1bGUgeyB9XG4iXX0=