keevo-components 1.5.191 → 1.5.193

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +24 -24
  2. package/esm2020/keevo-components.mjs +5 -0
  3. package/esm2020/lib/api/base-components/base-component-button.mjs +36 -0
  4. package/esm2020/lib/api/base-components/base-component-chart.mjs +92 -0
  5. package/esm2020/lib/api/base-components/base-component-crud-form.mjs +270 -0
  6. package/esm2020/lib/api/base-components/base-component-crud-list.mjs +68 -0
  7. package/esm2020/lib/api/base-components/base-component-crud.mjs +65 -0
  8. package/esm2020/lib/api/base-components/base-component-dropdown-new.mjs +211 -0
  9. package/esm2020/lib/api/base-components/base-component-dropdown.mjs +161 -0
  10. package/esm2020/lib/api/base-components/base-component-input.mjs +94 -0
  11. package/esm2020/lib/api/base-components/base-component-multi-select.mjs +128 -0
  12. package/esm2020/lib/api/base-components/base-component.mjs +49 -0
  13. package/esm2020/lib/api/components/chart/chart.config.mjs +2 -0
  14. package/esm2020/lib/api/components/chart/chart.model.mjs +2 -0
  15. package/esm2020/lib/api/components/chart/orchart.config.mjs +2 -0
  16. package/esm2020/lib/api/components/chart/orchart.item.mjs +2 -0
  17. package/esm2020/lib/api/components/dropdown/filtro.combo.mjs +2 -0
  18. package/esm2020/lib/api/components/error/error.component.mjs +26 -0
  19. package/esm2020/lib/api/components/error/kverror.module.mjs +35 -0
  20. package/esm2020/lib/api/components/table/action-item.mjs +2 -0
  21. package/esm2020/lib/api/components/table/kv-menuitem.mjs +3 -0
  22. package/esm2020/lib/api/components/table/table.config.column.mjs +2 -0
  23. package/esm2020/lib/api/components/table/table.config.mjs +2 -0
  24. package/esm2020/lib/api/components/table/table.paginate.mjs +9 -0
  25. package/esm2020/lib/api/helpers/component-providers.mjs +16 -0
  26. package/esm2020/lib/api/helpers/keevo-validators.mjs +64 -0
  27. package/esm2020/lib/api/helpers/translate-primeng.mjs +23 -0
  28. package/esm2020/lib/api/models/menu/menu.model.mjs +2 -0
  29. package/esm2020/lib/api/models/menu/menucompleto.model.mjs +2 -0
  30. package/esm2020/lib/api/models/menu/sistemamenu.model.mjs +2 -0
  31. package/esm2020/lib/api/modules/primeng.module.mjs +247 -0
  32. package/esm2020/lib/api/services/base.api.service.mjs +74 -0
  33. package/esm2020/lib/api/services/component.service.mjs +27 -0
  34. package/esm2020/lib/api/services/form.service.mjs +84 -0
  35. package/esm2020/lib/api/services/imagens.service.mjs +22 -0
  36. package/esm2020/lib/api/services/notification.service.mjs +67 -0
  37. package/esm2020/lib/api/services/object.service.mjs +26 -0
  38. package/esm2020/lib/buttons/button-personalize/button-personalize.component.mjs +17 -0
  39. package/esm2020/lib/buttons/button-popup/button-popup.component.mjs +31 -0
  40. package/esm2020/lib/buttons/button-secondary/button-secondary.component.mjs +17 -0
  41. package/esm2020/lib/buttons/button-success/button-success.component.mjs +17 -0
  42. package/esm2020/lib/buttons/kvbutton.module.mjs +39 -0
  43. package/esm2020/lib/chart/chart.component.mjs +145 -0
  44. package/esm2020/lib/chart/kvchart.module.mjs +32 -0
  45. package/esm2020/lib/directives/template.directive.mjs +24 -0
  46. package/esm2020/lib/inputs/check/check.component.mjs +26 -0
  47. package/esm2020/lib/inputs/dropdown/dropdown.component.mjs +37 -0
  48. package/esm2020/lib/inputs/editor/editor.component.mjs +70 -0
  49. package/esm2020/lib/inputs/input-calendar/input-calendar.component.mjs +89 -0
  50. package/esm2020/lib/inputs/input-mask/input-mask.component.mjs +23 -0
  51. package/esm2020/lib/inputs/input-number/input-number.component.mjs +59 -0
  52. package/esm2020/lib/inputs/input-password/input-password.component.mjs +33 -0
  53. package/esm2020/lib/inputs/input-text/input-text.component.mjs +21 -0
  54. package/esm2020/lib/inputs/input-text-checkbox/input-text-checkbox.component.mjs +38 -0
  55. package/esm2020/lib/inputs/input-textarea/input-textarea.component.mjs +43 -0
  56. package/esm2020/lib/inputs/input-time/input-time.component.mjs +24 -0
  57. package/esm2020/lib/inputs/kvinputs.module.mjs +108 -0
  58. package/esm2020/lib/inputs/multi-select/multi-select.component.mjs +38 -0
  59. package/esm2020/lib/inputs/radio-group/radio-group.component.mjs +53 -0
  60. package/esm2020/lib/inputs/switch/switch.component.mjs +32 -0
  61. package/esm2020/lib/keevo-components.module.mjs +105 -0
  62. package/esm2020/lib/label/label.component.mjs +15 -0
  63. package/esm2020/lib/label/label.module.mjs +24 -0
  64. package/esm2020/lib/loader/kvloader.module.mjs +28 -0
  65. package/esm2020/lib/loader/loader.component.mjs +17 -0
  66. package/esm2020/lib/loader/loader.service.mjs +29 -0
  67. package/esm2020/lib/login/kvlogin.module.mjs +47 -0
  68. package/esm2020/lib/login/login.component.mjs +52 -0
  69. package/esm2020/lib/menu/kvmenu.module.mjs +43 -0
  70. package/esm2020/lib/menu/menu.component.mjs +237 -0
  71. package/esm2020/lib/orgchart/orgchart.component.mjs +100 -0
  72. package/esm2020/lib/orgchart/orgchart.module.mjs +24 -0
  73. package/esm2020/lib/page-form/kv-page-form.module.mjs +38 -0
  74. package/esm2020/lib/page-form/page-form.component.mjs +144 -0
  75. package/esm2020/lib/picklist/kvpicklist.module.mjs +32 -0
  76. package/esm2020/lib/picklist/picklist.component.mjs +48 -0
  77. package/esm2020/lib/pipes/codigofile.pipe.mjs +19 -0
  78. package/esm2020/lib/pipes/cpfcnpj.pipe.mjs +25 -0
  79. package/esm2020/lib/pipes/pipes.module.mjs +34 -0
  80. package/esm2020/lib/pipes/telefone.pipe.mjs +45 -0
  81. package/esm2020/lib/table/kvtable.module.mjs +32 -0
  82. package/esm2020/lib/table/table.component.mjs +500 -0
  83. package/esm2020/lib/tree-table/kv-treetable.component.mjs +371 -0
  84. package/esm2020/lib/tree-table/kv-treetable.module.mjs +32 -0
  85. package/esm2020/lib/tree-view/kvtree-view.module.mjs +28 -0
  86. package/esm2020/lib/tree-view/tree-view.component.mjs +29 -0
  87. package/esm2020/lib/workspace/kvworkspace.module.mjs +47 -0
  88. package/esm2020/lib/workspace/workspace.component.mjs +77 -0
  89. package/esm2020/public-api.mjs +138 -0
  90. package/fesm2015/keevo-components.mjs +4706 -0
  91. package/fesm2015/keevo-components.mjs.map +1 -0
  92. package/fesm2020/keevo-components.mjs +4697 -0
  93. package/fesm2020/keevo-components.mjs.map +1 -0
  94. package/index.d.ts +5 -0
  95. package/lib/api/base-components/base-component-button.d.ts +14 -0
  96. package/lib/api/base-components/base-component-chart.d.ts +40 -0
  97. package/lib/api/base-components/base-component-crud-form.d.ts +137 -0
  98. package/lib/api/base-components/base-component-crud-list.d.ts +63 -0
  99. package/lib/api/base-components/base-component-crud.d.ts +36 -0
  100. package/lib/api/base-components/base-component-dropdown-new.d.ts +14 -0
  101. package/lib/api/base-components/base-component-dropdown.d.ts +42 -0
  102. package/lib/api/base-components/base-component-input.d.ts +31 -0
  103. package/lib/api/base-components/base-component-multi-select.d.ts +35 -0
  104. package/lib/api/base-components/base-component.d.ts +21 -0
  105. package/lib/api/components/chart/chart.config.d.ts +11 -0
  106. package/lib/api/components/chart/chart.model.d.ts +9 -0
  107. package/lib/api/components/chart/orchart.config.d.ts +35 -0
  108. package/lib/api/components/chart/orchart.item.d.ts +26 -0
  109. package/lib/api/components/dropdown/filtro.combo.d.ts +4 -0
  110. package/lib/api/components/error/error.component.d.ts +12 -0
  111. package/lib/api/components/error/kverror.module.d.ts +10 -0
  112. package/lib/api/components/table/action-item.d.ts +5 -0
  113. package/lib/api/components/table/kv-menuitem.d.ts +9 -0
  114. package/lib/api/components/table/table.config.column.d.ts +21 -0
  115. package/lib/api/components/table/table.config.d.ts +17 -0
  116. package/lib/api/components/table/table.paginate.d.ts +6 -0
  117. package/lib/api/helpers/component-providers.d.ts +2 -0
  118. package/lib/api/helpers/keevo-validators.d.ts +10 -0
  119. package/lib/api/helpers/translate-primeng.d.ts +4 -0
  120. package/lib/api/models/menu/menu.model.d.ts +10 -0
  121. package/{src/lib/api/models/menu/menucompleto.model.ts → lib/api/models/menu/menucompleto.model.d.ts} +6 -7
  122. package/lib/api/models/menu/sistemamenu.model.d.ts +8 -0
  123. package/lib/api/modules/primeng.module.d.ts +60 -0
  124. package/lib/api/services/base.api.service.d.ts +25 -0
  125. package/lib/api/services/component.service.d.ts +11 -0
  126. package/lib/api/services/form.service.d.ts +27 -0
  127. package/lib/api/services/imagens.service.d.ts +8 -0
  128. package/lib/api/services/notification.service.d.ts +25 -0
  129. package/lib/api/services/object.service.d.ts +8 -0
  130. package/lib/buttons/button-personalize/button-personalize.component.d.ts +7 -0
  131. package/lib/buttons/button-popup/button-popup.component.d.ts +13 -0
  132. package/lib/buttons/button-secondary/button-secondary.component.d.ts +7 -0
  133. package/lib/buttons/button-success/button-success.component.d.ts +7 -0
  134. package/lib/buttons/kvbutton.module.d.ts +11 -0
  135. package/lib/chart/chart.component.d.ts +56 -0
  136. package/lib/chart/kvchart.module.d.ts +10 -0
  137. package/lib/directives/template.directive.d.ts +11 -0
  138. package/lib/inputs/check/check.component.d.ts +11 -0
  139. package/lib/inputs/dropdown/dropdown.component.d.ts +14 -0
  140. package/lib/inputs/editor/editor.component.d.ts +39 -0
  141. package/lib/inputs/input-calendar/input-calendar.component.d.ts +27 -0
  142. package/lib/inputs/input-mask/input-mask.component.d.ts +10 -0
  143. package/lib/inputs/input-number/input-number.component.d.ts +19 -0
  144. package/lib/inputs/input-password/input-password.component.d.ts +13 -0
  145. package/lib/inputs/input-text/input-text.component.d.ts +9 -0
  146. package/lib/inputs/input-text-checkbox/input-text-checkbox.component.d.ts +15 -0
  147. package/lib/inputs/input-textarea/input-textarea.component.d.ts +16 -0
  148. package/lib/inputs/input-time/input-time.component.d.ts +10 -0
  149. package/lib/inputs/kvinputs.module.d.ts +25 -0
  150. package/lib/inputs/multi-select/multi-select.component.d.ts +12 -0
  151. package/lib/inputs/radio-group/radio-group.component.d.ts +18 -0
  152. package/lib/inputs/switch/switch.component.d.ts +13 -0
  153. package/lib/keevo-components.module.d.ts +19 -0
  154. package/lib/label/label.component.d.ts +7 -0
  155. package/lib/label/label.module.d.ts +8 -0
  156. package/lib/loader/kvloader.module.d.ts +9 -0
  157. package/lib/loader/loader.component.d.ts +8 -0
  158. package/lib/loader/loader.service.d.ts +10 -0
  159. package/lib/login/kvlogin.module.d.ts +13 -0
  160. package/lib/login/login.component.d.ts +30 -0
  161. package/lib/menu/kvmenu.module.d.ts +12 -0
  162. package/lib/menu/menu.component.d.ts +74 -0
  163. package/lib/orgchart/orgchart.component.d.ts +27 -0
  164. package/lib/orgchart/orgchart.module.d.ts +9 -0
  165. package/lib/page-form/kv-page-form.module.d.ts +11 -0
  166. package/lib/page-form/page-form.component.d.ts +69 -0
  167. package/lib/picklist/kvpicklist.module.d.ts +10 -0
  168. package/lib/picklist/picklist.component.d.ts +20 -0
  169. package/lib/pipes/codigofile.pipe.d.ts +7 -0
  170. package/lib/pipes/cpfcnpj.pipe.d.ts +7 -0
  171. package/lib/pipes/pipes.module.d.ts +10 -0
  172. package/lib/pipes/telefone.pipe.d.ts +7 -0
  173. package/lib/table/kvtable.module.d.ts +10 -0
  174. package/lib/table/table.component.d.ts +105 -0
  175. package/lib/tree-table/kv-treetable.component.d.ts +84 -0
  176. package/lib/tree-table/kv-treetable.module.d.ts +11 -0
  177. package/lib/tree-view/kvtree-view.module.d.ts +9 -0
  178. package/lib/tree-view/tree-view.component.d.ts +14 -0
  179. package/lib/workspace/kvworkspace.module.d.ts +13 -0
  180. package/lib/workspace/workspace.component.d.ts +28 -0
  181. package/package.json +22 -3
  182. package/{src/public-api.ts → public-api.d.ts} +134 -156
  183. package/ng-package.json +0 -7
  184. package/src/assets/.gitkeep +0 -0
  185. package/src/assets/images/LogoEvo.png +0 -0
  186. package/src/assets/images/LogoPequenaEvo.png +0 -0
  187. package/src/assets/images/background.png +0 -0
  188. package/src/assets/images/keepass-logo.png +0 -0
  189. package/src/assets/images/keepass-logo.svg +0 -74
  190. package/src/assets/images/keevo-logo.png +0 -0
  191. package/src/assets/images/logokeevo_2.png +0 -0
  192. package/src/index.ts +0 -1
  193. package/src/lib/api/base-components/base-component-button.ts +0 -27
  194. package/src/lib/api/base-components/base-component-chart.ts +0 -105
  195. package/src/lib/api/base-components/base-component-crud-form.ts +0 -328
  196. package/src/lib/api/base-components/base-component-crud-list.ts +0 -111
  197. package/src/lib/api/base-components/base-component-crud.ts +0 -70
  198. package/src/lib/api/base-components/base-component-dropdown-new.ts +0 -112
  199. package/src/lib/api/base-components/base-component-dropdown.ts +0 -164
  200. package/src/lib/api/base-components/base-component-input.ts +0 -107
  201. package/src/lib/api/base-components/base-component-multi-select.ts +0 -136
  202. package/src/lib/api/base-components/base-component.ts +0 -46
  203. package/src/lib/api/components/chart/chart.config.ts +0 -12
  204. package/src/lib/api/components/chart/chart.model.ts +0 -9
  205. package/src/lib/api/components/chart/orchart.config.ts +0 -41
  206. package/src/lib/api/components/chart/orchart.item.ts +0 -33
  207. package/src/lib/api/components/dropdown/filtro.combo.ts +0 -4
  208. package/src/lib/api/components/error/error.component.html +0 -3
  209. package/src/lib/api/components/error/error.component.scss +0 -5
  210. package/src/lib/api/components/error/error.component.ts +0 -22
  211. package/src/lib/api/components/error/kverror.module.ts +0 -23
  212. package/src/lib/api/components/table/action-item.ts +0 -5
  213. package/src/lib/api/components/table/kv-menuitem.ts +0 -10
  214. package/src/lib/api/components/table/table.config.column.ts +0 -21
  215. package/src/lib/api/components/table/table.config.ts +0 -20
  216. package/src/lib/api/components/table/table.paginate.ts +0 -6
  217. package/src/lib/api/helpers/component-providers.ts +0 -16
  218. package/src/lib/api/helpers/keevo-validators.ts +0 -77
  219. package/src/lib/api/helpers/translate-primeng.ts +0 -25
  220. package/src/lib/api/models/menu/menu.model.ts +0 -10
  221. package/src/lib/api/models/menu/sistemamenu.model.ts +0 -8
  222. package/src/lib/api/modules/primeng.module.ts +0 -125
  223. package/src/lib/api/services/base.api.service.ts +0 -115
  224. package/src/lib/api/services/component.service.ts +0 -22
  225. package/src/lib/api/services/form.service.ts +0 -105
  226. package/src/lib/api/services/imagens.service.ts +0 -20
  227. package/src/lib/api/services/notification.service.ts +0 -82
  228. package/src/lib/api/services/object.service.ts +0 -20
  229. package/src/lib/buttons/button-personalize/button-personalize.component.html +0 -11
  230. package/src/lib/buttons/button-personalize/button-personalize.component.scss +0 -3
  231. package/src/lib/buttons/button-personalize/button-personalize.component.ts +0 -13
  232. package/src/lib/buttons/button-popup/button-popup.component.html +0 -12
  233. package/src/lib/buttons/button-popup/button-popup.component.scss +0 -13
  234. package/src/lib/buttons/button-popup/button-popup.component.ts +0 -30
  235. package/src/lib/buttons/button-secondary/button-secondary.component.html +0 -12
  236. package/src/lib/buttons/button-secondary/button-secondary.component.scss +0 -14
  237. package/src/lib/buttons/button-secondary/button-secondary.component.ts +0 -13
  238. package/src/lib/buttons/button-success/button-success.component.html +0 -11
  239. package/src/lib/buttons/button-success/button-success.component.scss +0 -13
  240. package/src/lib/buttons/button-success/button-success.component.ts +0 -13
  241. package/src/lib/buttons/kvbutton.module.ts +0 -25
  242. package/src/lib/chart/chart.component.html +0 -38
  243. package/src/lib/chart/chart.component.scss +0 -0
  244. package/src/lib/chart/chart.component.spec.ts +0 -28
  245. package/src/lib/chart/chart.component.ts +0 -141
  246. package/src/lib/chart/kvchart.module.ts +0 -20
  247. package/src/lib/directives/template.directive.ts +0 -15
  248. package/src/lib/inputs/check/check.component.html +0 -11
  249. package/src/lib/inputs/check/check.component.scss +0 -13
  250. package/src/lib/inputs/check/check.component.ts +0 -24
  251. package/src/lib/inputs/dropdown/dropdown.component.html +0 -91
  252. package/src/lib/inputs/dropdown/dropdown.component.scss +0 -0
  253. package/src/lib/inputs/dropdown/dropdown.component.ts +0 -28
  254. package/src/lib/inputs/editor/editor.component.html +0 -90
  255. package/src/lib/inputs/editor/editor.component.scss +0 -4
  256. package/src/lib/inputs/editor/editor.component.ts +0 -80
  257. package/src/lib/inputs/input-calendar/input-calendar.component.html +0 -30
  258. package/src/lib/inputs/input-calendar/input-calendar.component.scss +0 -0
  259. package/src/lib/inputs/input-calendar/input-calendar.component.ts +0 -81
  260. package/src/lib/inputs/input-mask/input-mask.component.html +0 -20
  261. package/src/lib/inputs/input-mask/input-mask.component.scss +0 -0
  262. package/src/lib/inputs/input-mask/input-mask.component.ts +0 -20
  263. package/src/lib/inputs/input-number/input-number.component.html +0 -22
  264. package/src/lib/inputs/input-number/input-number.component.scss +0 -0
  265. package/src/lib/inputs/input-number/input-number.component.ts +0 -52
  266. package/src/lib/inputs/input-password/input-password.component.html +0 -23
  267. package/src/lib/inputs/input-password/input-password.component.scss +0 -0
  268. package/src/lib/inputs/input-password/input-password.component.ts +0 -23
  269. package/src/lib/inputs/input-text/input-text.component.html +0 -20
  270. package/src/lib/inputs/input-text/input-text.component.scss +0 -18
  271. package/src/lib/inputs/input-text/input-text.component.ts +0 -17
  272. package/src/lib/inputs/input-text-checkbox/input-text-checkbox.component.html +0 -32
  273. package/src/lib/inputs/input-text-checkbox/input-text-checkbox.component.scss +0 -0
  274. package/src/lib/inputs/input-text-checkbox/input-text-checkbox.component.spec.ts +0 -23
  275. package/src/lib/inputs/input-text-checkbox/input-text-checkbox.component.ts +0 -36
  276. package/src/lib/inputs/input-textarea/input-textarea.component.html +0 -22
  277. package/src/lib/inputs/input-textarea/input-textarea.component.scss +0 -0
  278. package/src/lib/inputs/input-textarea/input-textarea.component.ts +0 -33
  279. package/src/lib/inputs/input-time/input-time.component.html +0 -23
  280. package/src/lib/inputs/input-time/input-time.component.scss +0 -0
  281. package/src/lib/inputs/input-time/input-time.component.ts +0 -20
  282. package/src/lib/inputs/kvinputs.module.ts +0 -64
  283. package/src/lib/inputs/multi-select/multi-select.component.html +0 -28
  284. package/src/lib/inputs/multi-select/multi-select.component.scss +0 -8
  285. package/src/lib/inputs/multi-select/multi-select.component.ts +0 -31
  286. package/src/lib/inputs/radio-group/radio-group.component.html +0 -19
  287. package/src/lib/inputs/radio-group/radio-group.component.scss +0 -15
  288. package/src/lib/inputs/radio-group/radio-group.component.ts +0 -50
  289. package/src/lib/inputs/switch/switch.component.html +0 -12
  290. package/src/lib/inputs/switch/switch.component.scss +0 -3
  291. package/src/lib/inputs/switch/switch.component.ts +0 -30
  292. package/src/lib/keevo-components.module.ts +0 -50
  293. package/src/lib/label/label.component.html +0 -6
  294. package/src/lib/label/label.component.scss +0 -9
  295. package/src/lib/label/label.component.spec.ts +0 -23
  296. package/src/lib/label/label.component.ts +0 -13
  297. package/src/lib/label/label.module.ts +0 -18
  298. package/src/lib/loader/kvloader.module.ts +0 -17
  299. package/src/lib/loader/loader.component.html +0 -1
  300. package/src/lib/loader/loader.component.ts +0 -14
  301. package/src/lib/loader/loader.service.ts +0 -26
  302. package/src/lib/login/kvlogin.module.ts +0 -28
  303. package/src/lib/login/login.component.html +0 -108
  304. package/src/lib/login/login.component.scss +0 -48
  305. package/src/lib/login/login.component.spec.ts +0 -23
  306. package/src/lib/login/login.component.ts +0 -65
  307. package/src/lib/menu/kvmenu.module.ts +0 -27
  308. package/src/lib/menu/menu.component.html +0 -342
  309. package/src/lib/menu/menu.component.scss +0 -210
  310. package/src/lib/menu/menu.component.spec.ts +0 -23
  311. package/src/lib/menu/menu.component.ts +0 -246
  312. package/src/lib/orgchart/orgchart.component.html +0 -58
  313. package/src/lib/orgchart/orgchart.component.scss +0 -21
  314. package/src/lib/orgchart/orgchart.component.ts +0 -118
  315. package/src/lib/orgchart/orgchart.module.ts +0 -14
  316. package/src/lib/page-form/kv-page-form.module.ts +0 -22
  317. package/src/lib/page-form/page-form.component.html +0 -57
  318. package/src/lib/page-form/page-form.component.scss +0 -72
  319. package/src/lib/page-form/page-form.component.spec.ts +0 -28
  320. package/src/lib/page-form/page-form.component.ts +0 -121
  321. package/src/lib/picklist/kvpicklist.module.ts +0 -20
  322. package/src/lib/picklist/picklist.component.html +0 -17
  323. package/src/lib/picklist/picklist.component.scss +0 -0
  324. package/src/lib/picklist/picklist.component.spec.ts +0 -26
  325. package/src/lib/picklist/picklist.component.ts +0 -27
  326. package/src/lib/pipes/codigofile.pipe.ts +0 -15
  327. package/src/lib/pipes/cpfcnpj.pipe.ts +0 -21
  328. package/src/lib/pipes/pipes.module.ts +0 -22
  329. package/src/lib/pipes/telefone.pipe.ts +0 -38
  330. package/src/lib/styles-components.scss +0 -11
  331. package/src/lib/table/kvtable.module.ts +0 -22
  332. package/src/lib/table/table.component.html +0 -473
  333. package/src/lib/table/table.component.scss +0 -240
  334. package/src/lib/table/table.component.spec.ts +0 -28
  335. package/src/lib/table/table.component.ts +0 -546
  336. package/src/lib/tree-table/kv-treetable.component.html +0 -649
  337. package/src/lib/tree-table/kv-treetable.component.scss +0 -315
  338. package/src/lib/tree-table/kv-treetable.component.ts +0 -390
  339. package/src/lib/tree-table/kv-treetable.module.ts +0 -18
  340. package/src/lib/tree-view/kvtree-view.module.ts +0 -19
  341. package/src/lib/tree-view/tree-view.component.html +0 -9
  342. package/src/lib/tree-view/tree-view.component.scss +0 -0
  343. package/src/lib/tree-view/tree-view.component.spec.ts +0 -23
  344. package/src/lib/tree-view/tree-view.component.ts +0 -29
  345. package/src/lib/workspace/kvworkspace.module.ts +0 -29
  346. package/src/lib/workspace/workspace.component.html +0 -108
  347. package/src/lib/workspace/workspace.component.scss +0 -83
  348. package/src/lib/workspace/workspace.component.ts +0 -75
  349. package/tsconfig.lib.json +0 -14
  350. package/tsconfig.lib.prod.json +0 -10
  351. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,65 @@
1
+ import { Component } from "@angular/core";
2
+ import { FormService } from "../services/form.service";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/dynamicdialog";
5
+ import * as i2 from "../services/notification.service";
6
+ export class BaseComponentCrud {
7
+ constructor(dialogService, notificationService) {
8
+ this.dialogService = dialogService;
9
+ this.notificationService = notificationService;
10
+ this.isReport = false;
11
+ this.itemsReport = [];
12
+ }
13
+ /**
14
+ * Fecha um relatório
15
+ */
16
+ closeReport() {
17
+ this.isReport = false;
18
+ }
19
+ /**
20
+ * Abre um form dialog
21
+ * @param componentType - Componente que será renderizado
22
+ * @param callBackFunction - Função de callback que deverá ser chamada após o fechamento do dialog
23
+ * @param paramsDialog - Parâmetros do dialog
24
+ */
25
+ openDialog(componentType, callBackFunction, paramsDialog) {
26
+ FormService.openDialog(this.dialogService, componentType, callBackFunction, paramsDialog);
27
+ }
28
+ /**
29
+ * Imprime um relatório na tela
30
+ * @param obs - Observable com o carregamento do relatório
31
+ */
32
+ printReportFilter(obs) {
33
+ obs
34
+ //.pipe(loading())
35
+ .subscribe({
36
+ next: (res) => {
37
+ this.itemsReport = res;
38
+ this.isReport = true;
39
+ },
40
+ error: (e) => {
41
+ this.toastError(e);
42
+ },
43
+ });
44
+ }
45
+ /**
46
+ * Exibe um toast com um erro
47
+ * @param err - Erro
48
+ */
49
+ toastError(err) {
50
+ if (err) {
51
+ if (err.message) {
52
+ this.notificationService.toastError(err.message);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ BaseComponentCrud.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentCrud, deps: [{ token: i1.DialogService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
58
+ BaseComponentCrud.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BaseComponentCrud, selector: "ng-component", ngImport: i0, template: '', isInline: true });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentCrud, decorators: [{
60
+ type: Component,
61
+ args: [{
62
+ template: ''
63
+ }]
64
+ }], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.NotificationService }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtY3J1ZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWNydWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7O0FBT3JFLE1BQU0sT0FBZ0IsaUJBQWlCO0lBS3JDLFlBQ1MsYUFBNEIsRUFDNUIsbUJBQXdDO1FBRHhDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFMMUMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQUs3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLFVBQVUsQ0FBQyxhQUF3QixFQUFFLGdCQUEwQixFQUFFLFlBQTJCO1FBQ3BHLFdBQVcsQ0FBQyxVQUFVLENBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsWUFBWSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGlCQUFpQixDQUFDLEdBQW9CO1FBQzlDLEdBQUc7WUFDRCxrQkFBa0I7YUFDakIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUN2QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVUsQ0FBQyxHQUFRO1FBQzNCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xEO1NBQ0Y7SUFDSCxDQUFDOzs4R0EzRG1CLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9EQUYzQixFQUFFOzJGQUVRLGlCQUFpQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSwgcGFyYW1zRGlhbG9nIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21wb25lbnRDcnVkIHtcclxuXHJcbiAgcHVibGljIGlzUmVwb3J0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGl0ZW1zUmVwb3J0OiBhbnkgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHB1YmxpYyBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZWNoYSB1bSByZWxhdMOzcmlvXHJcbiAgICovXHJcbiAgcHVibGljIGNsb3NlUmVwb3J0KCkge1xyXG4gICAgdGhpcy5pc1JlcG9ydCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWJyZSB1bSBmb3JtIGRpYWxvZ1xyXG4gICAqIEBwYXJhbSBjb21wb25lbnRUeXBlIC0gQ29tcG9uZW50ZSBxdWUgc2Vyw6EgcmVuZGVyaXphZG9cclxuICAgKiBAcGFyYW0gY2FsbEJhY2tGdW5jdGlvbiAtIEZ1bsOnw6NvIGRlIGNhbGxiYWNrIHF1ZSBkZXZlcsOhIHNlciBjaGFtYWRhIGFww7NzIG8gZmVjaGFtZW50byBkbyBkaWFsb2dcclxuICAgKiBAcGFyYW0gcGFyYW1zRGlhbG9nIC0gUGFyw6JtZXRyb3MgZG8gZGlhbG9nXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG9wZW5EaWFsb2coY29tcG9uZW50VHlwZTogVHlwZTxhbnk+LCBjYWxsQmFja0Z1bmN0aW9uOiBGdW5jdGlvbiwgcGFyYW1zRGlhbG9nPzogcGFyYW1zRGlhbG9nKSB7XHJcbiAgICBGb3JtU2VydmljZS5vcGVuRGlhbG9nKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UsXHJcbiAgICAgIGNvbXBvbmVudFR5cGUsXHJcbiAgICAgIGNhbGxCYWNrRnVuY3Rpb24sXHJcbiAgICAgIHBhcmFtc0RpYWxvZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbXByaW1lIHVtIHJlbGF0w7NyaW8gbmEgdGVsYVxyXG4gICAqIEBwYXJhbSBvYnMgLSBPYnNlcnZhYmxlIGNvbSBvIGNhcnJlZ2FtZW50byBkbyByZWxhdMOzcmlvXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW50UmVwb3J0RmlsdGVyKG9iczogT2JzZXJ2YWJsZTxhbnk+KSB7XHJcbiAgICBvYnNcclxuICAgICAgLy8ucGlwZShsb2FkaW5nKCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pdGVtc1JlcG9ydCA9IHJlcztcclxuICAgICAgICAgIHRoaXMuaXNSZXBvcnQgPSB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0RXJyb3IoZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGliZSB1bSB0b2FzdCBjb20gdW0gZXJyb1xyXG4gICAqIEBwYXJhbSBlcnIgLSBFcnJvXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHRvYXN0RXJyb3IoZXJyOiBhbnkpIHtcclxuICAgIGlmIChlcnIpIHtcclxuICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,211 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { BaseComponentDropDown } from "./base-component-dropdown";
3
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
4
+ import { KeevoComponentsModule } from "../../keevo-components.module";
5
+ import { PrimeNgModule } from "../modules/primeng.module";
6
+ import { LabelModule } from "../../label/label.module";
7
+ import { kvErrorModule } from "../components/error/kverror.module";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "primeng/api";
11
+ import * as i3 from "primeng/button";
12
+ import * as i4 from "@angular/common";
13
+ import * as i5 from "primeng/tooltip";
14
+ import * as i6 from "primeng/divider";
15
+ import * as i7 from "primeng/dropdown";
16
+ import * as i8 from "../../label/label.component";
17
+ import * as i9 from "../components/error/error.component";
18
+ export class BaseComponentDropdownNew extends BaseComponentDropDown {
19
+ ngOnInit() {
20
+ if (this.dropDowValue)
21
+ this.value = this.dropDowValue;
22
+ }
23
+ }
24
+ BaseComponentDropdownNew.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentDropdownNew, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ BaseComponentDropdownNew.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BaseComponentDropdownNew, isStandalone: true, selector: "app-base-dropdown", inputs: { formGroup: "formGroup", formControlName: "formControlName", dropDowValue: "dropDowValue", itemTemplate: "itemTemplate", selectedItemTemplate: "selectedItemTemplate" }, usesInheritance: true, ngImport: i0, template: `
26
+ <span>
27
+ <kv-label
28
+ [componentId]="componentId"
29
+ [label]="label"
30
+ />
31
+ <p-dropdown
32
+ appendTo="body"
33
+ [class]="baseInputClass"
34
+ [disabled]="disabled"
35
+ [filter]="filter"
36
+ [inputId]="componentId"
37
+ [(ngModel)]="value"
38
+ [options]="filteredOptions"
39
+ [optionLabel]="optionLabel"
40
+ [optionValue]="optionValue"
41
+ [optionDisabled]="optionDisabled"
42
+ [group]="group"
43
+ [optionGroupLabel]="optionGroupLabel"
44
+ [optionGroupChildren]="optionGroupChildren"
45
+ [showClear]="showClear"
46
+ [lazy]="lazy"
47
+ scrollHeight="250px"
48
+ (onBlur)="onInputBlur($event)"
49
+ (onClick)="onInputClick($event)"
50
+ (onChange)="onInputChange($event)"
51
+ (onFilter)="onInputFilter($event)"
52
+ [style]="{'width':widthField}"
53
+ [panelStyle]="{ width: widthField, overflow: 'auto' }"
54
+ styleClass="inputs"
55
+ >
56
+
57
+ <ng-template
58
+ *ngIf="showAddButton"
59
+ pTemplate="footer"
60
+ >
61
+ <p-divider></p-divider>
62
+ <div class="flex flex-wrap card-container p-1">
63
+ <div class="flex justify-content-center">
64
+ <button
65
+ pButton
66
+ label="Incluir"
67
+ pTooltip="Clique aqui para incluir um novo registro"
68
+ tooltipPosition="bottom"
69
+ icon="pi pi-plus"
70
+ class="p-button-rounded p-button-success mr-2"
71
+ (click)="addClick($event)"
72
+ ></button>
73
+ </div>
74
+ </div>
75
+ </ng-template>
76
+
77
+ <ng-template
78
+ let-selectedItem
79
+ pTemplate="item"
80
+ *ngIf="itemTemplate"
81
+ >
82
+ <ng-container
83
+ [ngTemplateOutlet]="itemTemplate"
84
+ [ngTemplateOutletContext]="{ $implicit: selectedItem }"
85
+ >
86
+ </ng-container>
87
+ </ng-template>
88
+
89
+
90
+ <ng-template
91
+ let-item
92
+ pTemplate="selectedItem"
93
+ *ngIf="selectedItemTemplate"
94
+ >
95
+ <ng-container
96
+ [ngTemplateOutlet]="selectedItemTemplate"
97
+ [ngTemplateOutletContext]="{ $implicit: item }"
98
+ >
99
+
100
+ </ng-container>
101
+ </ng-template>
102
+
103
+ </p-dropdown>
104
+
105
+ <kv-error [hasError]="hasControlError()">{{ erroMessage() }}</kv-error>
106
+ </span>
107
+ <ng-content></ng-content>
108
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: KeevoComponentsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: PrimeNgModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Divider, selector: "p-divider", inputs: ["styleClass", "style", "layout", "type", "align"] }, { kind: "component", type: i7.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: LabelModule }, { kind: "component", type: i8.LabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }, { kind: "ngmodule", type: kvErrorModule }, { kind: "component", type: i9.ErrorComponent, selector: "kv-error", inputs: ["formControl", "hasError"] }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentDropdownNew, decorators: [{
110
+ type: Component,
111
+ args: [{
112
+ selector: 'app-base-dropdown',
113
+ template: `
114
+ <span>
115
+ <kv-label
116
+ [componentId]="componentId"
117
+ [label]="label"
118
+ />
119
+ <p-dropdown
120
+ appendTo="body"
121
+ [class]="baseInputClass"
122
+ [disabled]="disabled"
123
+ [filter]="filter"
124
+ [inputId]="componentId"
125
+ [(ngModel)]="value"
126
+ [options]="filteredOptions"
127
+ [optionLabel]="optionLabel"
128
+ [optionValue]="optionValue"
129
+ [optionDisabled]="optionDisabled"
130
+ [group]="group"
131
+ [optionGroupLabel]="optionGroupLabel"
132
+ [optionGroupChildren]="optionGroupChildren"
133
+ [showClear]="showClear"
134
+ [lazy]="lazy"
135
+ scrollHeight="250px"
136
+ (onBlur)="onInputBlur($event)"
137
+ (onClick)="onInputClick($event)"
138
+ (onChange)="onInputChange($event)"
139
+ (onFilter)="onInputFilter($event)"
140
+ [style]="{'width':widthField}"
141
+ [panelStyle]="{ width: widthField, overflow: 'auto' }"
142
+ styleClass="inputs"
143
+ >
144
+
145
+ <ng-template
146
+ *ngIf="showAddButton"
147
+ pTemplate="footer"
148
+ >
149
+ <p-divider></p-divider>
150
+ <div class="flex flex-wrap card-container p-1">
151
+ <div class="flex justify-content-center">
152
+ <button
153
+ pButton
154
+ label="Incluir"
155
+ pTooltip="Clique aqui para incluir um novo registro"
156
+ tooltipPosition="bottom"
157
+ icon="pi pi-plus"
158
+ class="p-button-rounded p-button-success mr-2"
159
+ (click)="addClick($event)"
160
+ ></button>
161
+ </div>
162
+ </div>
163
+ </ng-template>
164
+
165
+ <ng-template
166
+ let-selectedItem
167
+ pTemplate="item"
168
+ *ngIf="itemTemplate"
169
+ >
170
+ <ng-container
171
+ [ngTemplateOutlet]="itemTemplate"
172
+ [ngTemplateOutletContext]="{ $implicit: selectedItem }"
173
+ >
174
+ </ng-container>
175
+ </ng-template>
176
+
177
+
178
+ <ng-template
179
+ let-item
180
+ pTemplate="selectedItem"
181
+ *ngIf="selectedItemTemplate"
182
+ >
183
+ <ng-container
184
+ [ngTemplateOutlet]="selectedItemTemplate"
185
+ [ngTemplateOutletContext]="{ $implicit: item }"
186
+ >
187
+
188
+ </ng-container>
189
+ </ng-template>
190
+
191
+ </p-dropdown>
192
+
193
+ <kv-error [hasError]="hasControlError()">{{ erroMessage() }}</kv-error>
194
+ </span>
195
+ <ng-content></ng-content>
196
+ `,
197
+ standalone: true,
198
+ imports: [KeevoComponentsModule, ReactiveFormsModule, FormsModule, PrimeNgModule, LabelModule, kvErrorModule]
199
+ }]
200
+ }], propDecorators: { formGroup: [{
201
+ type: Input
202
+ }], formControlName: [{
203
+ type: Input
204
+ }], dropDowValue: [{
205
+ type: Input
206
+ }], itemTemplate: [{
207
+ type: Input
208
+ }], selectedItemTemplate: [{
209
+ type: Input
210
+ }] } });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtZHJvcGRvd24tbmV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtZHJvcGRvd24tbmV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBYSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7QUEyRm5FLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxxQkFBcUI7SUFTdEQsUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3ZDLENBQUM7O3FIQVpRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHNSQXZGdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUZULDJEQUVTLHFCQUFxQiw4QkFBRSxtQkFBbUIsc0lBQUUsV0FBVyxzUEFBRSxhQUFhLDRoRUFBRSxXQUFXLHNJQUFFLGFBQWE7MkZBRW5HLHdCQUF3QjtrQkF6RnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW1GVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDO2lCQUNoSDs4QkFHWSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudERyb3BEb3duIH0gZnJvbSBcIi4vYmFzZS1jb21wb25lbnQtZHJvcGRvd25cIlxyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEtlZXZvQ29tcG9uZW50c01vZHVsZSB9IGZyb20gXCIuLi8uLi9rZWV2by1jb21wb25lbnRzLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBQcmltZU5nTW9kdWxlIH0gZnJvbSBcIi4uL21vZHVsZXMvcHJpbWVuZy5tb2R1bGVcIjtcclxuaW1wb3J0IHsgTGFiZWxNb2R1bGUgfSBmcm9tIFwiLi4vLi4vbGFiZWwvbGFiZWwubW9kdWxlXCI7XHJcbmltcG9ydCB7IGt2RXJyb3JNb2R1bGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9lcnJvci9rdmVycm9yLm1vZHVsZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1iYXNlLWRyb3Bkb3duJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8c3Bhbj5cclxuICAgICAgPGt2LWxhYmVsXHJcbiAgICAgICAgW2NvbXBvbmVudElkXT1cImNvbXBvbmVudElkXCJcclxuICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICAvPlxyXG4gICAgICA8cC1kcm9wZG93blxyXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgW2NsYXNzXT1cImJhc2VJbnB1dENsYXNzXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgICAgICBbaW5wdXRJZF09XCJjb21wb25lbnRJZFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwiZmlsdGVyZWRPcHRpb25zXCJcclxuICAgICAgICBbb3B0aW9uTGFiZWxdPVwib3B0aW9uTGFiZWxcIlxyXG4gICAgICAgIFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZVwiXHJcbiAgICAgICAgW29wdGlvbkRpc2FibGVkXT1cIm9wdGlvbkRpc2FibGVkXCJcclxuICAgICAgICBbZ3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgICAgIFtvcHRpb25Hcm91cExhYmVsXT1cIm9wdGlvbkdyb3VwTGFiZWxcIlxyXG4gICAgICAgIFtvcHRpb25Hcm91cENoaWxkcmVuXT1cIm9wdGlvbkdyb3VwQ2hpbGRyZW5cIlxyXG4gICAgICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyXCJcclxuICAgICAgICBbbGF6eV09XCJsYXp5XCJcclxuICAgICAgICBzY3JvbGxIZWlnaHQ9XCIyNTBweFwiXHJcbiAgICAgICAgKG9uQmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcclxuICAgICAgICAob25DbGljayk9XCJvbklucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uRmlsdGVyKT1cIm9uSW5wdXRGaWx0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgW3N0eWxlXT1cInsnd2lkdGgnOndpZHRoRmllbGR9XCJcclxuICAgICAgICBbcGFuZWxTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aEZpZWxkLCBvdmVyZmxvdzogJ2F1dG8nIH1cIlxyXG4gICAgICAgIHN0eWxlQ2xhc3M9XCJpbnB1dHNcIlxyXG4gICAgICA+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QWRkQnV0dG9uXCJcclxuICAgICAgICAgIHBUZW1wbGF0ZT1cImZvb3RlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBjYXJkLWNvbnRhaW5lciBwLTFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiSW5jbHVpclwiXHJcbiAgICAgICAgICAgICAgICBwVG9vbHRpcD1cIkNsaXF1ZSBhcXVpIHBhcmEgaW5jbHVpciB1bSBub3ZvIHJlZ2lzdHJvXCJcclxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktcGx1c1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBtci0yXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBsZXQtc2VsZWN0ZWRJdGVtXHJcbiAgICAgICAgICBwVGVtcGxhdGU9XCJpdGVtXCJcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2VsZWN0ZWRJdGVtIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgbGV0LWl0ZW1cclxuICAgICAgICAgIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiXHJcbiAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXRlbVRlbXBsYXRlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdGVkSXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgPlxyXG5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8L3AtZHJvcGRvd24+XHJcblxyXG4gICAgICA8a3YtZXJyb3IgW2hhc0Vycm9yXT1cImhhc0NvbnRyb2xFcnJvcigpXCI+e3sgZXJyb01lc3NhZ2UoKSB9fTwva3YtZXJyb3I+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICBgLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtLZWV2b0NvbXBvbmVudHNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBQcmltZU5nTW9kdWxlLCBMYWJlbE1vZHVsZSwga3ZFcnJvck1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnREcm9wZG93bk5ldyBleHRlbmRzIEJhc2VDb21wb25lbnREcm9wRG93biB7XHJcblxyXG4gICAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lITogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIGRyb3BEb3dWYWx1ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHJvcERvd1ZhbHVlKVxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kcm9wRG93VmFsdWU7XHJcbiAgICB9XHJcblxyXG59Il19
@@ -0,0 +1,161 @@
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { BaseComponentInput } from './base-component-input';
4
+ import { ObjectService } from '../services/object.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/component.service";
7
+ import * as i2 from "primeng/dynamicdialog";
8
+ export class BaseComponentDropDown extends BaseComponentInput {
9
+ constructor(componentService, dialogService) {
10
+ super(componentService);
11
+ this.dialogService = dialogService;
12
+ this.filter = true;
13
+ this.lazy = false;
14
+ this.showAddButton = false;
15
+ this.showClear = true;
16
+ this.onAddClick = new EventEmitter();
17
+ this.onClick = new EventEmitter();
18
+ this.onSelectionChange = new EventEmitter();
19
+ this.onSelectionValue = new EventEmitter();
20
+ this.requestComplete = new EventEmitter();
21
+ this.registerOnTouched(() => { });
22
+ }
23
+ ngOnInit() {
24
+ super.ngOnInit();
25
+ this.setPlaceHolder('Selecione um valor');
26
+ if (!this.lazy)
27
+ this.carregarCombo();
28
+ }
29
+ addClick(event) {
30
+ this.onAddClick.emit(event);
31
+ }
32
+ carregarCombo(filtro) {
33
+ if (filtro) {
34
+ this.carregarComboObs(this.listarCombo(filtro));
35
+ }
36
+ else {
37
+ this.carregarComboObs(this.listar());
38
+ }
39
+ }
40
+ carregarComboObs(obs) {
41
+ if (obs) {
42
+ obs
43
+ .subscribe({
44
+ next: (data) => {
45
+ this.options = data;
46
+ this.filteredOptions = data;
47
+ this.requestComplete.emit(true);
48
+ },
49
+ error: (error) => {
50
+ console.log(error);
51
+ },
52
+ });
53
+ }
54
+ }
55
+ filterOptions(field, value) {
56
+ if (this.options) {
57
+ let lista = ObjectService.filterObject(this.options, field, value);
58
+ if (lista?.length > 0) {
59
+ of(lista).subscribe((opts) => {
60
+ this.filteredOptions = opts;
61
+ });
62
+ }
63
+ else
64
+ this.filteredOptions = [];
65
+ }
66
+ }
67
+ listar() { }
68
+ listarCombo(value) { }
69
+ openDialog(componentType, width, height) {
70
+ const ref = this.dialogService.open(componentType, {
71
+ width: width || '70%',
72
+ height: height,
73
+ closable: false,
74
+ maximizable: true,
75
+ data: { popup: true },
76
+ });
77
+ ref.onClose.subscribe((id) => {
78
+ if (id) {
79
+ this.listar().subscribe((data) => {
80
+ this.options = data;
81
+ this.filteredOptions = data;
82
+ if (id)
83
+ this.formControl?.setValue(id);
84
+ });
85
+ }
86
+ });
87
+ }
88
+ onInputChange(event) {
89
+ this.onSelectionValue.emit(event);
90
+ if (this.formControl) {
91
+ const controlName = this.getName(this.formControl);
92
+ if (controlName) {
93
+ let currentItem = ObjectService.findObject(this.options, controlName, event.value);
94
+ this.onSelectionChange.emit(currentItem);
95
+ }
96
+ }
97
+ }
98
+ onInputClick(event) {
99
+ this.onClick.emit(event);
100
+ }
101
+ onInputFilter(event) {
102
+ if (event) {
103
+ if (event.filter) {
104
+ if (event.filter.length > 2) {
105
+ this.carregarCombo({ termoPesquisa: event.filter });
106
+ }
107
+ }
108
+ }
109
+ }
110
+ writeValue(value) {
111
+ if (this.lazy && value) {
112
+ this.carregarCombo({ id: value });
113
+ }
114
+ this.value = value;
115
+ }
116
+ }
117
+ BaseComponentDropDown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentDropDown, deps: [{ token: i1.ComponentService }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component });
118
+ BaseComponentDropDown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BaseComponentDropDown, selector: "ng-component", inputs: { filteredOptions: "filteredOptions", options: "options", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", group: "group", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", filter: "filter", lazy: "lazy", showAddButton: "showAddButton", showClear: "showClear", widthField: "widthField" }, outputs: { onAddClick: "onAddClick", onClick: "onClick", onSelectionChange: "onSelectionChange", onSelectionValue: "onSelectionValue", requestComplete: "requestComplete" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentDropDown, decorators: [{
120
+ type: Component,
121
+ args: [{
122
+ template: '',
123
+ }]
124
+ }], ctorParameters: function () { return [{ type: i1.ComponentService }, { type: i2.DialogService }]; }, propDecorators: { filteredOptions: [{
125
+ type: Input
126
+ }], options: [{
127
+ type: Input
128
+ }], optionLabel: [{
129
+ type: Input
130
+ }], optionValue: [{
131
+ type: Input
132
+ }], optionDisabled: [{
133
+ type: Input
134
+ }], group: [{
135
+ type: Input
136
+ }], optionGroupLabel: [{
137
+ type: Input
138
+ }], optionGroupChildren: [{
139
+ type: Input
140
+ }], filter: [{
141
+ type: Input
142
+ }], lazy: [{
143
+ type: Input
144
+ }], showAddButton: [{
145
+ type: Input
146
+ }], showClear: [{
147
+ type: Input
148
+ }], widthField: [{
149
+ type: Input
150
+ }], onAddClick: [{
151
+ type: Output
152
+ }], onClick: [{
153
+ type: Output
154
+ }], onSelectionChange: [{
155
+ type: Output
156
+ }], onSelectionValue: [{
157
+ type: Output
158
+ }], requestComplete: [{
159
+ type: Output
160
+ }] } });
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1kcm9wZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBTTNELE1BQU0sT0FBZ0IscUJBQXNCLFNBQVEsa0JBQXVCO0lBeUJ6RSxZQUNFLGdCQUFrQyxFQUMxQixhQUE0QjtRQUVwQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWY3QixXQUFNLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFdEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQUd6QixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pELG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFPaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUSxR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LFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7bUlBR1UsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVHlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudElucHV0IH0gZnJvbSAnLi9iYXNlLWNvbXBvbmVudC1pbnB1dCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE9iamVjdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbHRyb0NvbWJvIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kcm9wZG93bi9maWx0cm8uY29tYm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudERyb3BEb3duIGV4dGVuZHMgQmFzZUNvbXBvbmVudElucHV0PGFueT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJlZE9wdGlvbnMhOiBhbnlbXTtcclxuICBASW5wdXQoKSBvcHRpb25zITogYW55W107XHJcbiAgQElucHV0KCkgb3B0aW9uTGFiZWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgb3B0aW9uRGlzYWJsZWQhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGdyb3VwITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvcHRpb25Hcm91cExhYmVsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbkdyb3VwQ2hpbGRyZW4hOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0NsZWFyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB3aWR0aEZpZWxkPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgb25BZGRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZXF1ZXN0Q29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbXBvbmVudFNlcnZpY2U6IENvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gICAgdGhpcy5yZWdpc3Rlck9uVG91Y2hlZCgoKSA9PiB7IH0pO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5zZXRQbGFjZUhvbGRlcignU2VsZWNpb25lIHVtIHZhbG9yJyk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmxhenkpIHRoaXMuY2FycmVnYXJDb21ibygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZENsaWNrKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkFkZENsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhcnJlZ2FyQ29tYm8oZmlsdHJvPzogZmlsdHJvQ29tYm8pOiB2b2lkIHtcclxuICAgIGlmIChmaWx0cm8pIHtcclxuICAgICAgdGhpcy5jYXJyZWdhckNvbWJvT2JzKHRoaXMubGlzdGFyQ29tYm8oZmlsdHJvKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJyZWdhckNvbWJvT2JzKHRoaXMubGlzdGFyKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYXJyZWdhckNvbWJvT2JzKG9iczogT2JzZXJ2YWJsZTxhbnk+KSB7XHJcbiAgICBpZiAob2JzKSB7XHJcbiAgICAgIG9ic1xyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMucmVxdWVzdENvbXBsZXRlLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsdGVyT3B0aW9ucyhmaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIGxldCBsaXN0YSA9IE9iamVjdFNlcnZpY2UuZmlsdGVyT2JqZWN0KHRoaXMub3B0aW9ucywgZmllbGQsIHZhbHVlKTtcclxuICAgICAgaWYgKGxpc3RhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgb2YobGlzdGEpLnN1YnNjcmliZSgob3B0czogYW55W10pID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gb3B0cztcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbGlzdGFyKCk6IGFueSB7IH1cclxuICBwcm90ZWN0ZWQgbGlzdGFyQ29tYm8odmFsdWU6IGFueSk6IGFueSB7IH1cclxuXHJcbiAgcHJvdGVjdGVkIG9wZW5EaWFsb2coXHJcbiAgICBjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sXHJcbiAgICB3aWR0aD86IHN0cmluZyxcclxuICAgIGhlaWdodD86IHN0cmluZ1xyXG4gICkge1xyXG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oY29tcG9uZW50VHlwZSwge1xyXG4gICAgICB3aWR0aDogd2lkdGggfHwgJzcwJScsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIG1heGltaXphYmxlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7IHBvcHVwOiB0cnVlIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGlkOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgdGhpcy5saXN0YXIoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gZGF0YTtcclxuICAgICAgICAgIGlmIChpZCkgdGhpcy5mb3JtQ29udHJvbD8uc2V0VmFsdWUoaWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25TZWxlY3Rpb25WYWx1ZS5lbWl0KGV2ZW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xyXG4gICAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZ2V0TmFtZSh0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sKTtcclxuICAgICAgaWYgKGNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRJdGVtID0gT2JqZWN0U2VydmljZS5maW5kT2JqZWN0KFxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLFxyXG4gICAgICAgICAgY29udHJvbE5hbWUsXHJcbiAgICAgICAgICBldmVudC52YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KGN1cnJlbnRJdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dENsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgIGlmIChldmVudC5maWx0ZXIpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZmlsdGVyLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgIHRoaXMuY2FycmVnYXJDb21ibyh7IHRlcm1vUGVzcXVpc2E6IGV2ZW50LmZpbHRlciB9IGFzIGZpbHRyb0NvbWJvKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGF6eSAmJiB2YWx1ZSkge1xyXG4gICAgICB0aGlzLmNhcnJlZ2FyQ29tYm8oeyBpZDogdmFsdWUgfSBhcyBmaWx0cm9Db21ibyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,94 @@
1
+ import { Component, ContentChildren, EventEmitter, Input, Output, ViewChildren } from "@angular/core";
2
+ import { BaseComponent } from './base-component';
3
+ import { ErrorComponent } from '../components/error/error.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services/component.service";
6
+ export class BaseComponentInput extends BaseComponent {
7
+ constructor(componentService) {
8
+ super();
9
+ this.componentService = componentService;
10
+ this.hasError = false;
11
+ this.placeholder = '';
12
+ this.onBlur = new EventEmitter();
13
+ this.onInput = new EventEmitter();
14
+ this.onClose = new EventEmitter();
15
+ }
16
+ get baseInputClass() {
17
+ return `${this.hasError ? 'ng-invalid ng-dirty' : ''} !important`;
18
+ }
19
+ erroMessage() {
20
+ if (!this.formControl?.errors)
21
+ return;
22
+ let message = '';
23
+ if (this.formControl.errors) {
24
+ const objErrors = this.formControl.errors;
25
+ if (objErrors.erroMessage)
26
+ message = objErrors.erroMessage;
27
+ }
28
+ return message;
29
+ }
30
+ getName(control) {
31
+ return Object.entries(control.parent?.controls ?? []).find(([_, value]) => value === control)?.[0] ?? null;
32
+ }
33
+ hasControlError() {
34
+ if (!this.formControl)
35
+ return false;
36
+ return (this.formControl.dirty || this.formControl.touched) && this.formControl.errors !== null;
37
+ }
38
+ ngAfterViewInit() {
39
+ this.viewErrors.forEach(c => {
40
+ c.emitError.subscribe(res => {
41
+ this.hasError = res;
42
+ this.componentService.changeDetectorRef.detectChanges();
43
+ });
44
+ });
45
+ }
46
+ ngAfterContentInit() {
47
+ this.contentErrors.forEach(c => {
48
+ c.emitError.subscribe(res => {
49
+ this.hasError = res;
50
+ });
51
+ });
52
+ }
53
+ ngOnInit() {
54
+ this.formControl = this.componentService.getFormControl();
55
+ }
56
+ onInputBlur(event) {
57
+ if (this.onTouched)
58
+ this.onTouched();
59
+ this.onBlur.emit(event);
60
+ }
61
+ onInputClose(event) {
62
+ this.onClose.emit(event);
63
+ }
64
+ onInputInput(event) {
65
+ this.onInput.emit(event);
66
+ }
67
+ setPlaceHolder(p) {
68
+ if (!this.placeholder)
69
+ this.placeholder = p;
70
+ }
71
+ }
72
+ BaseComponentInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentInput, deps: [{ token: i1.ComponentService }], target: i0.ɵɵFactoryTarget.Component });
73
+ BaseComponentInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BaseComponentInput, selector: "ng-component", inputs: { placeholder: "placeholder" }, outputs: { onBlur: "onBlur", onInput: "onInput", onClose: "onClose" }, queries: [{ propertyName: "contentErrors", predicate: ErrorComponent }], viewQueries: [{ propertyName: "viewErrors", predicate: ErrorComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BaseComponentInput, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ template: '',
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.ComponentService }]; }, propDecorators: { placeholder: [{
80
+ type: Input
81
+ }], onBlur: [{
82
+ type: Output
83
+ }], onInput: [{
84
+ type: Output
85
+ }], onClose: [{
86
+ type: Output
87
+ }], viewErrors: [{
88
+ type: ViewChildren,
89
+ args: [ErrorComponent]
90
+ }], contentErrors: [{
91
+ type: ContentChildren,
92
+ args: [ErrorComponent]
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL2Jhc2UtY29tcG9uZW50cy9iYXNlLWNvbXBvbmVudC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBS3JFLE1BQU0sT0FBZ0Isa0JBQXNCLFNBQVEsYUFBZ0I7SUFjbEUsWUFBK0IsZ0JBQWtDO1FBQy9ELEtBQUssRUFBRSxDQUFDO1FBRHFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYdkQsYUFBUSxHQUF3QixLQUFLLENBQUM7UUFFdkMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFeEIsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFPMUQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTTtZQUFFLE9BQU87UUFFdEMsSUFBSSxPQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFD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ImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudElucHV0PFQ+IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIHByb3RlY3RlZCBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XHJcbiAgcHJvdGVjdGVkIGhhc0Vycm9yOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uSW5wdXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihFcnJvckNvbXBvbmVudCkgdmlld0Vycm9ycyE6IFF1ZXJ5TGlzdDxFcnJvckNvbXBvbmVudD47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihFcnJvckNvbXBvbmVudCkgY29udGVudEVycm9ycyE6IFF1ZXJ5TGlzdDxFcnJvckNvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBiYXNlSW5wdXRDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuaGFzRXJyb3IgPyAnbmctaW52YWxpZCBuZy1kaXJ0eScgOiAnJ30gIWltcG9ydGFudGA7XHJcbiAgfVxyXG5cclxuICBlcnJvTWVzc2FnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0aGlzLmZvcm1Db250cm9sPy5lcnJvcnMpIHJldHVybjtcclxuXHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGNvbnN0IG9iakVycm9ycyA9IHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzIGFzIGFueTtcclxuICAgICAgaWYgKG9iakVycm9ycy5lcnJvTWVzc2FnZSkgbWVzc2FnZSA9IG9iakVycm9ycy5lcnJvTWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGdldE5hbWUoY29udHJvbDogRm9ybUNvbnRyb2wpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjb250cm9sLnBhcmVudD8uY29udHJvbHMgPz8gW10pLmZpbmQoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSBjb250cm9sKT8uWzBdID8/IG51bGw7XHJcbiAgfVxyXG5cclxuICBoYXNDb250cm9sRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiAodGhpcy5mb3JtQ29udHJvbC5kaXJ0eSB8fCB0aGlzLmZvcm1Db250cm9sLnRvdWNoZWQpICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3RXJyb3JzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMuZW1pdEVycm9yLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMuY29udGVudEVycm9ycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLmVtaXRFcnJvci5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gcmVzO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdldEZvcm1Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0Qmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZClcclxuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuXHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRDbG9zZShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRJbnB1dChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25JbnB1dC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRQbGFjZUhvbGRlcihwOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikgdGhpcy5wbGFjZWhvbGRlciA9IHA7XHJcbiAgfVxyXG59XHJcbiJdfQ==