@verisoft/ui-primeng 18.5.0 → 18.6.0

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 (388) hide show
  1. package/esm2022/index.mjs +30 -0
  2. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +31 -0
  3. package/esm2022/lib/components/breadcrumb/breadcrumb.pipe.mjs +17 -0
  4. package/esm2022/lib/components/breadcrumb/index.mjs +2 -0
  5. package/esm2022/lib/components/button/button.component.mjs +61 -0
  6. package/esm2022/lib/components/button/index.mjs +2 -0
  7. package/esm2022/lib/components/calendar/calendar.component.mjs +73 -0
  8. package/esm2022/lib/components/calendar/index.mjs +2 -0
  9. package/esm2022/lib/components/checkbox/checkbox.component.mjs +47 -0
  10. package/esm2022/lib/components/checkbox/index.mjs +2 -0
  11. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +65 -0
  12. package/esm2022/lib/components/confirm-dialog/index.mjs +2 -0
  13. package/esm2022/lib/components/dropdown/dropdown.component.mjs +139 -0
  14. package/esm2022/lib/components/dropdown/index.mjs +2 -0
  15. package/esm2022/lib/components/errors/error.component.mjs +41 -0
  16. package/esm2022/lib/components/errors/index.mjs +2 -0
  17. package/esm2022/lib/components/form-field/form-field.component.mjs +41 -0
  18. package/esm2022/lib/components/form-field/index.mjs +2 -0
  19. package/esm2022/lib/components/header/header.component.mjs +58 -0
  20. package/esm2022/lib/components/header/index.mjs +3 -0
  21. package/esm2022/lib/components/header/services/header-provider.service.mjs +24 -0
  22. package/esm2022/lib/components/input-group/index.mjs +2 -0
  23. package/esm2022/lib/components/input-group/input-group.component.mjs +57 -0
  24. package/esm2022/lib/components/loader/index.mjs +2 -0
  25. package/esm2022/lib/components/loader/loader.component.mjs +19 -0
  26. package/esm2022/lib/components/multiselect/index.mjs +2 -0
  27. package/esm2022/lib/components/multiselect/multiselect.component.mjs +124 -0
  28. package/esm2022/lib/components/number-input/index.mjs +2 -0
  29. package/esm2022/lib/components/number-input/number-input.component.mjs +64 -0
  30. package/esm2022/lib/components/page-header/index.mjs +2 -0
  31. package/esm2022/lib/components/page-header/page-header.component.mjs +28 -0
  32. package/esm2022/lib/components/password/index.mjs +2 -0
  33. package/esm2022/lib/components/password/password.component.mjs +59 -0
  34. package/esm2022/lib/components/radiobutton/index.mjs +2 -0
  35. package/esm2022/lib/components/radiobutton/radiobutton.component.mjs +57 -0
  36. package/esm2022/lib/components/section/index.mjs +2 -0
  37. package/esm2022/lib/components/section/section.component.mjs +35 -0
  38. package/esm2022/lib/components/shared-components/action-button-group/action-button-group.component.mjs +92 -0
  39. package/esm2022/lib/components/shared-components/action-button-group/components/action-button/action-button.component.mjs +60 -0
  40. package/esm2022/lib/components/shared-components/action-button-group/index.mjs +3 -0
  41. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.mjs +90 -0
  42. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component.component.mjs +41 -0
  43. package/esm2022/lib/components/shared-components/dynamic-component/index.mjs +3 -0
  44. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-column.directive.mjs +46 -0
  45. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.mjs +16 -0
  46. package/esm2022/lib/components/shared-components/feature-list/feature-list-filter.pipe.mjs +24 -0
  47. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.component.mjs +42 -0
  48. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.model.mjs +16 -0
  49. package/esm2022/lib/components/shared-components/feature-list/feature-list.component.mjs +275 -0
  50. package/esm2022/lib/components/shared-components/feature-list/index.mjs +6 -0
  51. package/esm2022/lib/components/shared-components/filter/directives/filter-field.directive.mjs +44 -0
  52. package/esm2022/lib/components/shared-components/filter/filter.component.mjs +190 -0
  53. package/esm2022/lib/components/shared-components/filter/filter.model.mjs +16 -0
  54. package/esm2022/lib/components/shared-components/filter/index.mjs +3 -0
  55. package/esm2022/lib/components/shared-components/generic-field/generic-field.component.mjs +93 -0
  56. package/esm2022/lib/components/shared-components/generic-field/index.mjs +2 -0
  57. package/esm2022/lib/components/shared-components/generic-form/generic-form.component.mjs +40 -0
  58. package/esm2022/lib/components/shared-components/generic-form/generic-form.model.mjs +50 -0
  59. package/esm2022/lib/components/shared-components/generic-form/index.mjs +3 -0
  60. package/esm2022/lib/components/shared-components/index.mjs +7 -0
  61. package/esm2022/lib/components/side-menu/index.mjs +3 -0
  62. package/esm2022/lib/components/side-menu/side-menu.component.mjs +92 -0
  63. package/esm2022/lib/components/side-menu/side-menu.module.mjs +74 -0
  64. package/esm2022/lib/components/slider/index.mjs +2 -0
  65. package/esm2022/lib/components/slider/slider.component.mjs +62 -0
  66. package/esm2022/lib/components/snackbar/index.mjs +3 -0
  67. package/esm2022/lib/components/snackbar/services/snackbar.service.mjs +50 -0
  68. package/esm2022/lib/components/snackbar/snackbar.component.mjs +33 -0
  69. package/esm2022/lib/components/stepper/index.mjs +2 -0
  70. package/esm2022/lib/components/stepper/stepper.component.mjs +48 -0
  71. package/esm2022/lib/components/switch/index.mjs +2 -0
  72. package/esm2022/lib/components/switch/switch.component.mjs +54 -0
  73. package/esm2022/lib/components/tab-view/index.mjs +4 -0
  74. package/esm2022/lib/components/tab-view/tab-menu.pipe.mjs +25 -0
  75. package/esm2022/lib/components/tab-view/tab-view-item.component.mjs +31 -0
  76. package/esm2022/lib/components/tab-view/tab-view.component.mjs +50 -0
  77. package/esm2022/lib/components/tab-view/tab-view.module.mjs +29 -0
  78. package/esm2022/lib/components/table/index.mjs +2 -0
  79. package/esm2022/lib/components/table/table-filter.pipe.mjs +49 -0
  80. package/esm2022/lib/components/table/table.component.mjs +220 -0
  81. package/esm2022/lib/components/table/table.models.mjs +17 -0
  82. package/esm2022/lib/components/textarea/index.mjs +2 -0
  83. package/esm2022/lib/components/textarea/textarea.component.mjs +65 -0
  84. package/esm2022/lib/components/textfield/index.mjs +2 -0
  85. package/esm2022/lib/components/textfield/textfield.component.mjs +65 -0
  86. package/esm2022/lib/components/tristatecheckbox/index.mjs +2 -0
  87. package/esm2022/lib/components/tristatecheckbox/tristatecheckbox.component.mjs +53 -0
  88. package/esm2022/lib/icons.mjs +35 -0
  89. package/esm2022/lib/interceptors/http-error-message.interceptor.mjs +31 -0
  90. package/esm2022/verisoft-ui-primeng.mjs +5 -0
  91. package/fesm2022/verisoft-ui-primeng.mjs +2909 -0
  92. package/fesm2022/verisoft-ui-primeng.mjs.map +1 -0
  93. package/{src/index.ts → index.d.ts} +29 -29
  94. package/lib/components/breadcrumb/breadcrumb.component.d.ts +6 -0
  95. package/lib/components/breadcrumb/breadcrumb.pipe.d.ts +9 -0
  96. package/{src/lib/components/breadcrumb/index.ts → lib/components/breadcrumb/index.d.ts} +1 -1
  97. package/lib/components/button/button.component.d.ts +20 -0
  98. package/{src/lib/components/button/index.ts → lib/components/button/index.d.ts} +1 -1
  99. package/lib/components/calendar/calendar.component.d.ts +17 -0
  100. package/{src/lib/components/calendar/index.ts → lib/components/calendar/index.d.ts} +1 -1
  101. package/lib/components/checkbox/checkbox.component.d.ts +9 -0
  102. package/{src/lib/components/checkbox/index.ts → lib/components/checkbox/index.d.ts} +1 -1
  103. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +15 -0
  104. package/{src/lib/components/confirm-dialog/index.ts → lib/components/confirm-dialog/index.d.ts} +1 -1
  105. package/lib/components/dropdown/dropdown.component.d.ts +38 -0
  106. package/{src/lib/components/dropdown/index.ts → lib/components/dropdown/index.d.ts} +1 -1
  107. package/lib/components/errors/error.component.d.ts +16 -0
  108. package/lib/components/errors/index.d.ts +1 -0
  109. package/lib/components/form-field/form-field.component.d.ts +12 -0
  110. package/{src/lib/components/form-field/index.ts → lib/components/form-field/index.d.ts} +1 -1
  111. package/lib/components/header/header.component.d.ts +23 -0
  112. package/{src/lib/components/header/index.ts → lib/components/header/index.d.ts} +2 -2
  113. package/lib/components/header/services/header-provider.service.d.ts +10 -0
  114. package/{src/lib/components/input-group/index.ts → lib/components/input-group/index.d.ts} +1 -1
  115. package/lib/components/input-group/input-group.component.d.ts +9 -0
  116. package/{src/lib/components/loader/index.ts → lib/components/loader/index.d.ts} +1 -1
  117. package/lib/components/loader/loader.component.d.ts +6 -0
  118. package/{src/lib/components/multiselect/index.ts → lib/components/multiselect/index.d.ts} +1 -1
  119. package/lib/components/multiselect/multiselect.component.d.ts +34 -0
  120. package/{src/lib/components/number-input/index.ts → lib/components/number-input/index.d.ts} +1 -1
  121. package/lib/components/number-input/number-input.component.d.ts +14 -0
  122. package/{src/lib/components/page-header/index.ts → lib/components/page-header/index.d.ts} +1 -1
  123. package/lib/components/page-header/page-header.component.d.ts +10 -0
  124. package/{src/lib/components/password/index.ts → lib/components/password/index.d.ts} +1 -1
  125. package/lib/components/password/password.component.d.ts +11 -0
  126. package/{src/lib/components/radiobutton/index.ts → lib/components/radiobutton/index.d.ts} +1 -1
  127. package/lib/components/radiobutton/radiobutton.component.d.ts +10 -0
  128. package/{src/lib/components/section/index.ts → lib/components/section/index.d.ts} +1 -1
  129. package/lib/components/section/section.component.d.ts +12 -0
  130. package/lib/components/shared-components/action-button-group/action-button-group.component.d.ts +29 -0
  131. package/lib/components/shared-components/action-button-group/components/action-button/action-button.component.d.ts +24 -0
  132. package/{src/lib/components/shared-components/action-button-group/index.ts → lib/components/shared-components/action-button-group/index.d.ts} +2 -2
  133. package/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.d.ts +17 -0
  134. package/lib/components/shared-components/dynamic-component/dynamic-component.component.d.ts +16 -0
  135. package/{src/lib/components/shared-components/dynamic-component/index.ts → lib/components/shared-components/dynamic-component/index.d.ts} +2 -2
  136. package/lib/components/shared-components/feature-list/directives/feature-list-column.directive.d.ts +10 -0
  137. package/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.d.ts +6 -0
  138. package/lib/components/shared-components/feature-list/feature-list-filter.pipe.d.ts +9 -0
  139. package/lib/components/shared-components/feature-list/feature-list-page.component.d.ts +9 -0
  140. package/lib/components/shared-components/feature-list/feature-list-page.model.d.ts +23 -0
  141. package/lib/components/shared-components/feature-list/feature-list.component.d.ts +62 -0
  142. package/{src/lib/components/shared-components/feature-list/index.ts → lib/components/shared-components/feature-list/index.d.ts} +5 -5
  143. package/lib/components/shared-components/filter/directives/filter-field.directive.d.ts +20 -0
  144. package/lib/components/shared-components/filter/filter.component.d.ts +53 -0
  145. package/lib/components/shared-components/filter/filter.model.d.ts +2 -0
  146. package/{src/lib/components/shared-components/filter/index.ts → lib/components/shared-components/filter/index.d.ts} +2 -2
  147. package/lib/components/shared-components/generic-field/generic-field.component.d.ts +28 -0
  148. package/{src/lib/components/shared-components/generic-field/index.ts → lib/components/shared-components/generic-field/index.d.ts} +1 -1
  149. package/lib/components/shared-components/generic-form/generic-form.component.d.ts +15 -0
  150. package/lib/components/shared-components/generic-form/generic-form.model.d.ts +4 -0
  151. package/{src/lib/components/shared-components/generic-form/index.ts → lib/components/shared-components/generic-form/index.d.ts} +2 -2
  152. package/{src/lib/components/shared-components/index.ts → lib/components/shared-components/index.d.ts} +6 -6
  153. package/{src/lib/components/side-menu/index.ts → lib/components/side-menu/index.d.ts} +2 -2
  154. package/lib/components/side-menu/side-menu.component.d.ts +27 -0
  155. package/lib/components/side-menu/side-menu.module.d.ts +13 -0
  156. package/{src/lib/components/slider/index.ts → lib/components/slider/index.d.ts} +1 -1
  157. package/lib/components/slider/slider.component.d.ts +12 -0
  158. package/{src/lib/components/snackbar/index.ts → lib/components/snackbar/index.d.ts} +2 -2
  159. package/lib/components/snackbar/services/snackbar.service.d.ts +12 -0
  160. package/lib/components/snackbar/snackbar.component.d.ts +9 -0
  161. package/{src/lib/components/stepper/index.ts → lib/components/stepper/index.d.ts} +1 -1
  162. package/lib/components/stepper/stepper.component.d.ts +17 -0
  163. package/{src/lib/components/switch/index.ts → lib/components/switch/index.d.ts} +1 -1
  164. package/lib/components/switch/switch.component.d.ts +9 -0
  165. package/{src/lib/components/tab-view/index.ts → lib/components/tab-view/index.d.ts} +3 -3
  166. package/lib/components/tab-view/tab-menu.pipe.d.ts +9 -0
  167. package/lib/components/tab-view/tab-view-item.component.d.ts +12 -0
  168. package/lib/components/tab-view/tab-view.component.d.ts +17 -0
  169. package/lib/components/tab-view/tab-view.module.d.ts +13 -0
  170. package/{src/lib/components/table/index.ts → lib/components/table/index.d.ts} +1 -1
  171. package/lib/components/table/table-filter.pipe.d.ts +13 -0
  172. package/lib/components/table/table.component.d.ts +67 -0
  173. package/lib/components/table/table.models.d.ts +4 -0
  174. package/{src/lib/components/textarea/index.ts → lib/components/textarea/index.d.ts} +1 -1
  175. package/lib/components/textarea/textarea.component.d.ts +12 -0
  176. package/{src/lib/components/textfield/index.ts → lib/components/textfield/index.d.ts} +1 -1
  177. package/lib/components/textfield/textfield.component.d.ts +12 -0
  178. package/{src/lib/components/tristatecheckbox/index.ts → lib/components/tristatecheckbox/index.d.ts} +1 -1
  179. package/lib/components/tristatecheckbox/tristatecheckbox.component.d.ts +9 -0
  180. package/lib/icons.d.ts +2 -0
  181. package/lib/interceptors/http-error-message.interceptor.d.ts +11 -0
  182. package/package.json +37 -22
  183. package/.eslintrc.json +0 -43
  184. package/assets/.gitkeep +0 -0
  185. package/assets/fonts/orbitron-black.ttf +0 -0
  186. package/assets/fonts/orbitron-bold.otf +0 -0
  187. package/assets/icons/complex/v-logo.svg +0 -4
  188. package/assets/images/_global/elon.jpg +0 -0
  189. package/assets/images/_global/jara.png +0 -0
  190. package/assets/images/_global/logos/v-logo.webp +0 -0
  191. package/assets/sass/base/_scrollbar.scss +0 -18
  192. package/assets/sass/base/_typography.scss +0 -25
  193. package/assets/sass/layout/_app.scss +0 -27
  194. package/assets/sass/layout/_button.scss +0 -57
  195. package/assets/sass/layout/_checkbox.scss +0 -33
  196. package/assets/sass/layout/_dialog.scss +0 -13
  197. package/assets/sass/layout/_dropdown.scss +0 -9
  198. package/assets/sass/layout/_formField.scss +0 -5
  199. package/assets/sass/layout/_header.scss +0 -63
  200. package/assets/sass/layout/_icons.scss +0 -13
  201. package/assets/sass/layout/_inputSwitch.scss +0 -13
  202. package/assets/sass/layout/_layout.scss +0 -6
  203. package/assets/sass/layout/_loader.scss +0 -9
  204. package/assets/sass/layout/_radiobutton.scss +0 -21
  205. package/assets/sass/layout/_sidemenu.scss +0 -173
  206. package/assets/sass/layout/_snackbar.scss +0 -8
  207. package/assets/sass/layout/_tables.scss +0 -5
  208. package/assets/sass/layout/_tree.scss +0 -12
  209. package/assets/sass/layout/_tristatecheckbox.scss +0 -15
  210. package/assets/sass/main.scss +0 -28
  211. package/assets/sass/themes/_verisoft_theme.scss +0 -46
  212. package/assets/sass/utils/_mixins.scss +0 -0
  213. package/assets/sass/utils/_utils.scss +0 -39
  214. package/assets/sass/utils/_variables.scss +0 -12
  215. package/assets/sass/vendors/_bootstrap.scss +0 -2
  216. package/assets/sass/vendors/_primeng.scss +0 -2
  217. package/jest.config.ts +0 -22
  218. package/ng-package.json +0 -7
  219. package/project.json +0 -43
  220. package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -12
  221. package/src/lib/components/breadcrumb/breadcrumb.component.scss +0 -18
  222. package/src/lib/components/breadcrumb/breadcrumb.component.spec.ts +0 -21
  223. package/src/lib/components/breadcrumb/breadcrumb.component.stories.ts +0 -36
  224. package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -29
  225. package/src/lib/components/breadcrumb/breadcrumb.pipe.ts +0 -13
  226. package/src/lib/components/button/button.component.html +0 -20
  227. package/src/lib/components/button/button.component.scss +0 -0
  228. package/src/lib/components/button/button.component.spec.ts +0 -21
  229. package/src/lib/components/button/button.component.ts +0 -49
  230. package/src/lib/components/calendar/calendar.component.html +0 -53
  231. package/src/lib/components/calendar/calendar.component.scss +0 -0
  232. package/src/lib/components/calendar/calendar.component.spec.ts +0 -21
  233. package/src/lib/components/calendar/calendar.component.ts +0 -72
  234. package/src/lib/components/checkbox/checkbox.component.html +0 -19
  235. package/src/lib/components/checkbox/checkbox.component.scss +0 -15
  236. package/src/lib/components/checkbox/checkbox.component.spec.ts +0 -21
  237. package/src/lib/components/checkbox/checkbox.component.stories.ts +0 -72
  238. package/src/lib/components/checkbox/checkbox.component.ts +0 -45
  239. package/src/lib/components/confirm-dialog/confirm-dialog.component.html +0 -48
  240. package/src/lib/components/confirm-dialog/confirm-dialog.component.scss +0 -3
  241. package/src/lib/components/confirm-dialog/confirm-dialog.component.spec.ts +0 -21
  242. package/src/lib/components/confirm-dialog/confirm-dialog.component.stories.ts +0 -74
  243. package/src/lib/components/confirm-dialog/confirm-dialog.component.ts +0 -74
  244. package/src/lib/components/dropdown/dropdown.component.html +0 -96
  245. package/src/lib/components/dropdown/dropdown.component.scss +0 -16
  246. package/src/lib/components/dropdown/dropdown.component.spec.ts +0 -21
  247. package/src/lib/components/dropdown/dropdown.component.stories.ts +0 -90
  248. package/src/lib/components/dropdown/dropdown.component.ts +0 -144
  249. package/src/lib/components/errors/error.component.html +0 -6
  250. package/src/lib/components/errors/error.component.scss +0 -3
  251. package/src/lib/components/errors/error.component.ts +0 -35
  252. package/src/lib/components/errors/index.ts +0 -1
  253. package/src/lib/components/form-field/form-field.component.html +0 -36
  254. package/src/lib/components/form-field/form-field.component.scss +0 -0
  255. package/src/lib/components/form-field/form-field.component.spec.ts +0 -21
  256. package/src/lib/components/form-field/form-field.component.stories.ts +0 -69
  257. package/src/lib/components/form-field/form-field.component.ts +0 -38
  258. package/src/lib/components/header/header.component.html +0 -84
  259. package/src/lib/components/header/header.component.scss +0 -0
  260. package/src/lib/components/header/header.component.spec.ts +0 -21
  261. package/src/lib/components/header/header.component.stories.ts +0 -24
  262. package/src/lib/components/header/header.component.ts +0 -66
  263. package/src/lib/components/header/services/header-provider.service.ts +0 -15
  264. package/src/lib/components/input-group/input-group.component.html +0 -30
  265. package/src/lib/components/input-group/input-group.component.spec.ts +0 -21
  266. package/src/lib/components/input-group/input-group.component.ts +0 -60
  267. package/src/lib/components/loader/loader.component.html +0 -5
  268. package/src/lib/components/loader/loader.component.scss +0 -0
  269. package/src/lib/components/loader/loader.component.spec.ts +0 -21
  270. package/src/lib/components/loader/loader.component.ts +0 -17
  271. package/src/lib/components/multiselect/multiselect.component.html +0 -70
  272. package/src/lib/components/multiselect/multiselect.component.scss +0 -0
  273. package/src/lib/components/multiselect/multiselect.component.spec.ts +0 -21
  274. package/src/lib/components/multiselect/multiselect.component.ts +0 -122
  275. package/src/lib/components/number-input/number-input.component.html +0 -22
  276. package/src/lib/components/number-input/number-input.component.spec.ts +0 -21
  277. package/src/lib/components/number-input/number-input.component.ts +0 -57
  278. package/src/lib/components/page-header/page-header.component.html +0 -31
  279. package/src/lib/components/page-header/page-header.component.scss +0 -0
  280. package/src/lib/components/page-header/page-header.component.spec.ts +0 -21
  281. package/src/lib/components/page-header/page-header.component.ts +0 -32
  282. package/src/lib/components/password/password.component.html +0 -24
  283. package/src/lib/components/password/password.component.scss +0 -0
  284. package/src/lib/components/password/password.component.spec.ts +0 -21
  285. package/src/lib/components/password/password.component.ts +0 -58
  286. package/src/lib/components/radiobutton/radiobutton.component.html +0 -32
  287. package/src/lib/components/radiobutton/radiobutton.component.scss +0 -6
  288. package/src/lib/components/radiobutton/radiobutton.component.spec.ts +0 -21
  289. package/src/lib/components/radiobutton/radiobutton.component.stories.ts +0 -71
  290. package/src/lib/components/radiobutton/radiobutton.component.ts +0 -62
  291. package/src/lib/components/section/section.component.html +0 -23
  292. package/src/lib/components/section/section.component.scss +0 -0
  293. package/src/lib/components/section/section.component.spec.ts +0 -21
  294. package/src/lib/components/section/section.component.ts +0 -32
  295. package/src/lib/components/shared-components/action-button-group/action-button-group.component.html +0 -27
  296. package/src/lib/components/shared-components/action-button-group/action-button-group.component.scss +0 -0
  297. package/src/lib/components/shared-components/action-button-group/action-button-group.component.spec.ts +0 -21
  298. package/src/lib/components/shared-components/action-button-group/action-button-group.component.ts +0 -114
  299. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.html +0 -11
  300. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.scss +0 -0
  301. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.spec.ts +0 -21
  302. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.ts +0 -71
  303. package/src/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.ts +0 -142
  304. package/src/lib/components/shared-components/dynamic-component/dynamic-component.component.ts +0 -56
  305. package/src/lib/components/shared-components/feature-list/directives/feature-list-column.directive.ts +0 -32
  306. package/src/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.ts +0 -8
  307. package/src/lib/components/shared-components/feature-list/feature-list-filter.pipe.ts +0 -21
  308. package/src/lib/components/shared-components/feature-list/feature-list-page.component.ts +0 -31
  309. package/src/lib/components/shared-components/feature-list/feature-list-page.model.ts +0 -42
  310. package/src/lib/components/shared-components/feature-list/feature-list.component.html +0 -59
  311. package/src/lib/components/shared-components/feature-list/feature-list.component.scss +0 -10
  312. package/src/lib/components/shared-components/feature-list/feature-list.component.ts +0 -342
  313. package/src/lib/components/shared-components/filter/directives/filter-field.directive.ts +0 -35
  314. package/src/lib/components/shared-components/filter/filter.component.html +0 -68
  315. package/src/lib/components/shared-components/filter/filter.component.scss +0 -0
  316. package/src/lib/components/shared-components/filter/filter.component.spec.ts +0 -21
  317. package/src/lib/components/shared-components/filter/filter.component.stories.ts +0 -23
  318. package/src/lib/components/shared-components/filter/filter.component.ts +0 -284
  319. package/src/lib/components/shared-components/filter/filter.model.ts +0 -18
  320. package/src/lib/components/shared-components/generic-field/generic-field.component.html +0 -97
  321. package/src/lib/components/shared-components/generic-field/generic-field.component.spec.ts +0 -21
  322. package/src/lib/components/shared-components/generic-field/generic-field.component.ts +0 -94
  323. package/src/lib/components/shared-components/generic-form/generic-form.component.html +0 -46
  324. package/src/lib/components/shared-components/generic-form/generic-form.component.spec.ts +0 -21
  325. package/src/lib/components/shared-components/generic-form/generic-form.component.ts +0 -57
  326. package/src/lib/components/shared-components/generic-form/generic-form.model.spec.ts +0 -82
  327. package/src/lib/components/shared-components/generic-form/generic-form.model.ts +0 -68
  328. package/src/lib/components/side-menu/side-menu.component.html +0 -52
  329. package/src/lib/components/side-menu/side-menu.component.scss +0 -0
  330. package/src/lib/components/side-menu/side-menu.component.spec.ts +0 -21
  331. package/src/lib/components/side-menu/side-menu.component.ts +0 -98
  332. package/src/lib/components/side-menu/side-menu.module.ts +0 -66
  333. package/src/lib/components/slider/slider.component.html +0 -19
  334. package/src/lib/components/slider/slider.component.spec.ts +0 -21
  335. package/src/lib/components/slider/slider.component.ts +0 -58
  336. package/src/lib/components/snackbar/services/snackbar.service.ts +0 -45
  337. package/src/lib/components/snackbar/snackbar.component.html +0 -3
  338. package/src/lib/components/snackbar/snackbar.component.scss +0 -0
  339. package/src/lib/components/snackbar/snackbar.component.spec.ts +0 -21
  340. package/src/lib/components/snackbar/snackbar.component.stories.ts +0 -70
  341. package/src/lib/components/snackbar/snackbar.component.ts +0 -26
  342. package/src/lib/components/stepper/stepper.component.html +0 -43
  343. package/src/lib/components/stepper/stepper.component.spec.ts +0 -21
  344. package/src/lib/components/stepper/stepper.component.ts +0 -40
  345. package/src/lib/components/switch/switch.component.html +0 -18
  346. package/src/lib/components/switch/switch.component.scss +0 -0
  347. package/src/lib/components/switch/switch.component.spec.ts +0 -21
  348. package/src/lib/components/switch/switch.component.stories.ts +0 -65
  349. package/src/lib/components/switch/switch.component.ts +0 -54
  350. package/src/lib/components/tab-view/tab-menu.pipe.ts +0 -22
  351. package/src/lib/components/tab-view/tab-view-item.component.ts +0 -22
  352. package/src/lib/components/tab-view/tab-view.component.html +0 -23
  353. package/src/lib/components/tab-view/tab-view.component.ts +0 -50
  354. package/src/lib/components/tab-view/tab-view.module.ts +0 -19
  355. package/src/lib/components/table/table-filter.pipe.ts +0 -59
  356. package/src/lib/components/table/table.component.html +0 -123
  357. package/src/lib/components/table/table.component.scss +0 -11
  358. package/src/lib/components/table/table.component.spec.ts +0 -21
  359. package/src/lib/components/table/table.component.stories.ts +0 -55
  360. package/src/lib/components/table/table.component.ts +0 -289
  361. package/src/lib/components/table/table.models.ts +0 -26
  362. package/src/lib/components/textarea/textarea.component.html +0 -40
  363. package/src/lib/components/textarea/textarea.component.scss +0 -5
  364. package/src/lib/components/textarea/textarea.component.spec.ts +0 -21
  365. package/src/lib/components/textarea/textarea.component.stories.ts +0 -98
  366. package/src/lib/components/textarea/textarea.component.ts +0 -64
  367. package/src/lib/components/textfield/textfield.component.html +0 -83
  368. package/src/lib/components/textfield/textfield.component.scss +0 -23
  369. package/src/lib/components/textfield/textfield.component.spec.ts +0 -21
  370. package/src/lib/components/textfield/textfield.component.stories.ts +0 -85
  371. package/src/lib/components/textfield/textfield.component.ts +0 -69
  372. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.html +0 -23
  373. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.scss +0 -0
  374. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.spec.ts +0 -21
  375. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.stories.ts +0 -22
  376. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.ts +0 -50
  377. package/src/lib/icons.ts +0 -36
  378. package/src/lib/interceptors/http-error-message.interceptor.ts +0 -35
  379. package/src/lib/pages/not-found-page/not-found-page.component.html +0 -26
  380. package/src/lib/pages/not-found-page/not-found-page.component.scss +0 -0
  381. package/src/lib/pages/not-found-page/not-found-page.component.spec.ts +0 -21
  382. package/src/lib/pages/not-found-page/not-found-page.component.ts +0 -17
  383. package/src/tab-view.ts +0 -1
  384. package/src/test-setup.ts +0 -8
  385. package/tsconfig.json +0 -31
  386. package/tsconfig.lib.json +0 -18
  387. package/tsconfig.lib.prod.json +0 -10
  388. package/tsconfig.spec.json +0 -16
@@ -0,0 +1,190 @@
1
+ import { AsyncPipe } from '@angular/common';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, forwardRef, inject, Input, QueryList, } from '@angular/core';
3
+ import { FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
4
+ import { ButtonShortCutDirective, DEFAULT_DEBOUNCE_TIME, DialogService, FieldSize, FILTER_COMPONENT_TOKEN, isFilterEmpty, ScreenSizeService, UnsubscribeComponent, } from '@verisoft/ui-core';
5
+ import { BadgeModule } from 'primeng/badge';
6
+ import { BehaviorSubject, combineLatestWith, debounceTime, distinctUntilChanged, map, startWith, takeUntil, } from 'rxjs';
7
+ import { Icons } from '../../../icons';
8
+ import { ButtonComponent } from '../../button';
9
+ import { TextfieldComponent } from '../../textfield';
10
+ import { generateFormGroup, GenericFormComponent } from '../generic-form';
11
+ import { FilterFieldDirective } from './directives/filter-field.directive';
12
+ import { getFilledControlCount } from './filter.model';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/forms";
15
+ export class FilterComponent extends UnsubscribeComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.fields = [];
19
+ this.filters = [];
20
+ this.fulltextFieldName = 'searchField';
21
+ this.showFulltext = true;
22
+ this.showFilters = true;
23
+ this.autoBind = true;
24
+ this.debounceTime = DEFAULT_DEBOUNCE_TIME;
25
+ this.icons = Icons;
26
+ this.searchField = {
27
+ name: this.fulltextFieldName,
28
+ };
29
+ this.inputFields$ = new BehaviorSubject([...this.fields ?? [], ...this.filters ?? []]);
30
+ this.FieldSize = FieldSize;
31
+ this.screenSizeService = inject(ScreenSizeService);
32
+ this.changeDetectorRef = inject(ChangeDetectorRef);
33
+ this.dialogService = inject(DialogService);
34
+ this.formGroup = new FormGroup({});
35
+ this.filledFiltersCount$ = this.formGroup.valueChanges.pipe(startWith(this.formGroup), map(() => getFilledControlCount(this.formGroup).toString()));
36
+ this.lastFormFields = [];
37
+ }
38
+ ngOnInit() {
39
+ this.formGroup.valueChanges
40
+ .pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime ?? DEFAULT_DEBOUNCE_TIME), map((x) => this.convertFilter(x)), distinctUntilChanged())
41
+ .subscribe((value) => this.onChange?.(value));
42
+ }
43
+ ngOnChanges(changes) {
44
+ if (changes['fields'] || changes['filters']) {
45
+ this.inputFields$.next([...this.fields ?? [], ...this.filters ?? []]);
46
+ }
47
+ }
48
+ ngAfterContentInit() {
49
+ const fieldDeclaratios$ = this.fieldDeclarations.changes.pipe(startWith({}), map(() => this.fieldDeclarations.toArray()));
50
+ this.fieldDefinitios$ = this.inputFields$.pipe(combineLatestWith(fieldDeclaratios$), map(([inputs, views]) => {
51
+ this.searchField.name = this.fulltextFieldName;
52
+ this.lastFormFields = [this.searchField, ...(inputs ?? []), ...views];
53
+ return this.lastFormFields;
54
+ }));
55
+ this.simpleFormFieldDefinitions$ = this.fieldDefinitios$.pipe(map((fields) => {
56
+ return fields
57
+ .filter((x) => x.name !== this.fulltextFieldName)
58
+ .map((x) => ({ ...x, floatLabel: true, size: FieldSize.large }));
59
+ }));
60
+ this.formGroup$ = this.fieldDefinitios$.pipe(map((fields) => generateFormGroup(fields, this.formGroup, undefined, false)));
61
+ this.changeDetectorRef.detectChanges();
62
+ }
63
+ openFilter() {
64
+ const fields = this.lastFormFields.map((x) => ({
65
+ ...x,
66
+ label: x.name === this.fulltextFieldName ? 'Fulltext' : x.label ?? x.name,
67
+ }));
68
+ const formGroup = generateFormGroup(this.lastFormFields, undefined, undefined, false);
69
+ formGroup.patchValue(this.formGroup.value);
70
+ this.dialogService.showDialog({
71
+ title: 'Set filters',
72
+ headerIcon: this.icons.filter,
73
+ severity: 'primary',
74
+ componentType: GenericFormComponent,
75
+ data: {
76
+ formGroup,
77
+ fields: fields,
78
+ columns: 1,
79
+ },
80
+ confirmButtonFn: () => this.setFilterValues(formGroup),
81
+ confirmButtonText: 'Apply',
82
+ cancelButtonFn: () => this.clear(),
83
+ cancelButtonText: 'Clear all',
84
+ showCancelButton: true,
85
+ closable: false,
86
+ });
87
+ }
88
+ openSearch() {
89
+ this.dialogService.showDialog({
90
+ headerIcon: 'pi pi-search',
91
+ severity: 'primary',
92
+ innerHTML: '<p>Search</p>',
93
+ confirmButtonFn: () => this.submitValue(),
94
+ confirmButtonText: 'Apply',
95
+ cancelButtonFn: () => this.clear(),
96
+ cancelButtonText: 'Clear all',
97
+ showCancelButton: true,
98
+ closable: false,
99
+ });
100
+ }
101
+ writeValue(data) {
102
+ this.formGroup.patchValue(data);
103
+ }
104
+ registerOnChange(fn) {
105
+ this.onChange = fn;
106
+ }
107
+ registerOnTouched(fn) {
108
+ this.onTouch = fn;
109
+ }
110
+ setDisabledState(isDisabled) {
111
+ isDisabled ? this.formGroup.disable() : this.formGroup.enable();
112
+ }
113
+ submitValue() {
114
+ if (!this.autoBind) {
115
+ this.onChange?.(this.formGroup.value);
116
+ }
117
+ }
118
+ setFilterValues(dialogFormGroup) {
119
+ this.formGroup.setValue(dialogFormGroup.value);
120
+ this.submitValue();
121
+ }
122
+ clear() {
123
+ this.formGroup.reset();
124
+ this.submitValue();
125
+ }
126
+ convertFilter(value) {
127
+ if (value == undefined) {
128
+ return undefined;
129
+ }
130
+ const isEmpty = isFilterEmpty(value);
131
+ if (isEmpty) {
132
+ return undefined;
133
+ }
134
+ return value;
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: FilterComponent, isStandalone: true, selector: "v-filter", inputs: { fields: "fields", filters: "filters", title: "title", fulltextFieldName: "fulltextFieldName", showFulltext: "showFulltext", showFilters: "showFilters", autoBind: "autoBind", debounceTime: "debounceTime" }, providers: [
138
+ {
139
+ provide: NG_VALUE_ACCESSOR,
140
+ useExisting: forwardRef(() => FilterComponent),
141
+ multi: true,
142
+ },
143
+ {
144
+ provide: FILTER_COMPONENT_TOKEN,
145
+ useExisting: FilterComponent,
146
+ },
147
+ ], queries: [{ propertyName: "fieldDeclarations", predicate: FilterFieldDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"v-filter w-100 p-3 bg-primary\">\r\n @if (formGroup$ | async; as formGroup){\r\n <form [formGroup]=\"formGroup\" class=\"d-flex align-items-center\">\r\n @if (title) {\r\n <div class=\"v-filter_title pe-4\">\r\n <h2 class=\"text-white m-0\">{{ title }}</h2>\r\n </div>\r\n }\r\n <div class=\"v-filter__fulltext flex-grow-1 pe-4\">\r\n @if (showFulltext){\r\n <v-textfield\r\n class=\"d-none d-lg-block\"\r\n placeholder=\"Search\"\r\n size=\"large\"\r\n formControlName=\"searchField\"\r\n type=\"search\"\r\n [clearable]=\"true\"\r\n >\r\n </v-textfield>\r\n }\r\n </div>\r\n @if (simpleFormFieldDefinitions$ | async; as declaration){\r\n @if (showFilters)\r\n {\r\n <div class=\"v-filter_filters d-none d-sm-block me-2\">\r\n <v-generic-form\r\n [fields]=\"declaration\"\r\n [formGroup]=\"formGroup\"\r\n ></v-generic-form>\r\n <v-button label=\"X\" class=\"mt-3\" (click)=\"clear()\" />\r\n </div>\r\n }\r\n <div class=\"v-filter_action-buttons d-flex\">\r\n @if (declaration.length && !showFilters) {\r\n <v-button \r\n class=\"me-4\"\r\n [icon]=\"icons.filter\"\r\n [label]=\"$any(filledFiltersCount$ | async)\"\r\n (click)=\"openFilter()\"\r\n />\r\n } @if (!autoBind) {\r\n <v-button\r\n useShortCut\r\n [shortCutFn]=\"submitValue.bind(this)\"\r\n shortCutKey=\"Enter\"\r\n class=\"text-white mx-2\"\r\n [outlined]=\"true\"\r\n size=\"small\"\r\n label=\"Apply\"\r\n (click)=\"submitValue()\"\r\n ></v-button>\r\n <v-button\r\n useShortCut\r\n [shortCutFn]=\"clear.bind(this)\"\r\n shortCutKey=\"Escape\"\r\n class=\"text-white\"\r\n [outlined]=\"true\"\r\n size=\"small\"\r\n label=\"Clear\"\r\n (click)=\"clear()\"\r\n ></v-button>\r\n } \r\n </div>\r\n }\r\n <ng-content select=\"v-action-button-group\"></ng-content>\r\n </form>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: TextfieldComponent, selector: "v-textfield", inputs: ["size", "type", "floatLabel"] }, { kind: "component", type: GenericFormComponent, selector: "v-generic-form", inputs: ["formGroup", "fields", "columns", "showAsRow"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "directive", type: ButtonShortCutDirective, selector: "v-button[useShortCut]", inputs: ["shortCutFn", "shortCutKey"], exportAs: ["useShortCut"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'v-filter', standalone: true, imports: [
152
+ AsyncPipe,
153
+ ReactiveFormsModule,
154
+ BadgeModule,
155
+ TextfieldComponent,
156
+ GenericFormComponent,
157
+ ButtonComponent,
158
+ ButtonShortCutDirective,
159
+ ], providers: [
160
+ {
161
+ provide: NG_VALUE_ACCESSOR,
162
+ useExisting: forwardRef(() => FilterComponent),
163
+ multi: true,
164
+ },
165
+ {
166
+ provide: FILTER_COMPONENT_TOKEN,
167
+ useExisting: FilterComponent,
168
+ },
169
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"v-filter w-100 p-3 bg-primary\">\r\n @if (formGroup$ | async; as formGroup){\r\n <form [formGroup]=\"formGroup\" class=\"d-flex align-items-center\">\r\n @if (title) {\r\n <div class=\"v-filter_title pe-4\">\r\n <h2 class=\"text-white m-0\">{{ title }}</h2>\r\n </div>\r\n }\r\n <div class=\"v-filter__fulltext flex-grow-1 pe-4\">\r\n @if (showFulltext){\r\n <v-textfield\r\n class=\"d-none d-lg-block\"\r\n placeholder=\"Search\"\r\n size=\"large\"\r\n formControlName=\"searchField\"\r\n type=\"search\"\r\n [clearable]=\"true\"\r\n >\r\n </v-textfield>\r\n }\r\n </div>\r\n @if (simpleFormFieldDefinitions$ | async; as declaration){\r\n @if (showFilters)\r\n {\r\n <div class=\"v-filter_filters d-none d-sm-block me-2\">\r\n <v-generic-form\r\n [fields]=\"declaration\"\r\n [formGroup]=\"formGroup\"\r\n ></v-generic-form>\r\n <v-button label=\"X\" class=\"mt-3\" (click)=\"clear()\" />\r\n </div>\r\n }\r\n <div class=\"v-filter_action-buttons d-flex\">\r\n @if (declaration.length && !showFilters) {\r\n <v-button \r\n class=\"me-4\"\r\n [icon]=\"icons.filter\"\r\n [label]=\"$any(filledFiltersCount$ | async)\"\r\n (click)=\"openFilter()\"\r\n />\r\n } @if (!autoBind) {\r\n <v-button\r\n useShortCut\r\n [shortCutFn]=\"submitValue.bind(this)\"\r\n shortCutKey=\"Enter\"\r\n class=\"text-white mx-2\"\r\n [outlined]=\"true\"\r\n size=\"small\"\r\n label=\"Apply\"\r\n (click)=\"submitValue()\"\r\n ></v-button>\r\n <v-button\r\n useShortCut\r\n [shortCutFn]=\"clear.bind(this)\"\r\n shortCutKey=\"Escape\"\r\n class=\"text-white\"\r\n [outlined]=\"true\"\r\n size=\"small\"\r\n label=\"Clear\"\r\n (click)=\"clear()\"\r\n ></v-button>\r\n } \r\n </div>\r\n }\r\n <ng-content select=\"v-action-button-group\"></ng-content>\r\n </form>\r\n }\r\n</div>\r\n" }]
170
+ }], propDecorators: { fieldDeclarations: [{
171
+ type: ContentChildren,
172
+ args: [FilterFieldDirective]
173
+ }], fields: [{
174
+ type: Input
175
+ }], filters: [{
176
+ type: Input
177
+ }], title: [{
178
+ type: Input
179
+ }], fulltextFieldName: [{
180
+ type: Input
181
+ }], showFulltext: [{
182
+ type: Input
183
+ }], showFilters: [{
184
+ type: Input
185
+ }], autoBind: [{
186
+ type: Input
187
+ }], debounceTime: [{
188
+ type: Input
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLXByaW1lbmcvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFNBQVMsRUFDVCxzQkFBc0IsRUFHdEIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixvQkFBb0IsR0FDckIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUVILFNBQVMsRUFDVCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNB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eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVyxpQkFBaUI7eUJBQzdCO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU8vQyxpQkFBaUI7c0JBRGhCLGVBQWU7dUJBQUMsb0JBQW9CO2dCQUc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyb3VwLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlSHR0cFNlcnZpY2UgfSBmcm9tICdAdmVyaXNvZnQvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uU2hvcnRDdXREaXJlY3RpdmUsXHJcbiAgREVGQVVMVF9ERUJPVU5DRV9USU1FLFxyXG4gIERpYWxvZ1NlcnZpY2UsXHJcbiAgRmllbGRTaXplLFxyXG4gIEZJTFRFUl9DT01QT05FTlRfVE9LRU4sXHJcbiAgRmlsdGVyQ29yZSxcclxuICBHZW5lcmljRmllbGREZWZpbml0aW9uLFxyXG4gIGlzRmlsdGVyRW1wdHksXHJcbiAgU2NyZWVuU2l6ZVNlcnZpY2UsXHJcbiAgVW5zdWJzY3JpYmVDb21wb25lbnQsXHJcbn0gZnJvbSAnQHZlcmlzb2Z0L3VpLWNvcmUnO1xyXG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYmFkZ2UnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBjb21iaW5lTGF0ZXN0V2l0aCxcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgbWFwLFxyXG4gIE9ic2VydmFibGUsXHJcbiAgc3RhcnRXaXRoLFxyXG4gIHRha2VVbnRpbCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi8uLi9pY29ucyc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbic7XHJcbmltcG9ydCB7IFRleHRmaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RleHRmaWVsZCc7XHJcbmltcG9ydCB7IGdlbmVyYXRlRm9ybUdyb3VwLCBHZW5lcmljRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2dlbmVyaWMtZm9ybSc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZpbHRlci1maWVsZC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBnZXRGaWxsZWRDb250cm9sQ291bnQgfSBmcm9tICcuL2ZpbHRlci5tb2RlbCc7XHJcblxyXG50eXBlIEZpbHRlclZhbHVlVHlwZSA9IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2LWZpbHRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQmFkZ2VNb2R1bGUsXHJcbiAgICBUZXh0ZmllbGRDb21wb25lbnQsXHJcbiAgICBHZW5lcmljRm9ybUNvbXBvbmVudCxcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEJ1dHRvblNob3J0Q3V0RGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWx0ZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEZJTFRFUl9DT01QT05FTlRfVE9LRU4sXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD5cclxuICBleHRlbmRzIFVuc3Vic2NyaWJlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgRmlsdGVyQ29yZVxyXG57XHJcbiAgQENvbnRlbnRDaGlsZHJlbihGaWx0ZXJGaWVsZERpcmVjdGl2ZSlcclxuICBmaWVsZERlY2xhcmF0aW9ucyE6IFF1ZXJ5TGlzdDxGaWx0ZXJGaWVsZERpcmVjdGl2ZT47XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkczogR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlcnM6IEdlbmVyaWNGaWVsZERlZmluaXRpb25bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZnVsbHRleHRGaWVsZE5hbWUgPSAnc2VhcmNoRmllbGQnO1xyXG5cclxuICBASW5wdXQoKSBzaG93RnVsbHRleHQgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBzaG93RmlsdGVycyA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGF1dG9CaW5kID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lPzogbnVtYmVyID0gREVGQVVMVF9ERUJPVU5DRV9USU1FO1xyXG5cclxuICBpY29ucyA9IEljb25zO1xyXG5cclxuICBmaWVsZERlZmluaXRpb3MkPzogT2JzZXJ2YWJsZTxHZW5lcmljRmllbGREZWZpbml0aW9uW10+O1xyXG5cclxuICBmb3JtR3JvdXAkPzogT2JzZXJ2YWJsZTxGb3JtR3JvdXA+O1xyXG5cclxuICBzaW1wbGVGb3JtRmllbGREZWZpbml0aW9ucyQ/OiBPYnNlcnZhYmxlPEdlbmVyaWNGaWVsZERlZmluaXRpb25bXT47XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoRmllbGQ6IEdlbmVyaWNGaWVsZERlZmluaXRpb24gPSB7XHJcbiAgICBuYW1lOiB0aGlzLmZ1bGx0ZXh0RmllbGROYW1lLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaD86ICgpID0+IHZvaWQ7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U/OiAodmFsdWU6IEZpbHRlclZhbHVlVHlwZSB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcclxuXHJcbiAgcHJpdmF0ZSBpbnB1dEZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxyXG4gICAgR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbltdIHwgdW5kZWZpbmVkXHJcbiAgPihbLi4udGhpcy5maWVsZHMgPz8gW10sIC4uLnRoaXMuZmlsdGVycyA/PyBbXV0pO1xyXG5cclxuICBGaWVsZFNpemUgPSBGaWVsZFNpemU7XHJcblxyXG4gIHByb3RlY3RlZCBzY3JlZW5TaXplU2VydmljZSA9IGluamVjdChTY3JlZW5TaXplU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZSA9IGluamVjdChEaWFsb2dTZXJ2aWNlKTtcclxuXHJcbiAgc2VydmljZSE6IEJhc2VIdHRwU2VydmljZTxUPjtcclxuXHJcbiAgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gIGZpbGxlZEZpbHRlcnNDb3VudCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwKSxcclxuICAgIG1hcCgoKSA9PiBnZXRGaWxsZWRDb250cm9sQ291bnQodGhpcy5mb3JtR3JvdXApLnRvU3RyaW5nKCkpXHJcbiAgKTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Rm9ybUZpZWxkczogR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSA/PyBERUZBVUxUX0RFQk9VTkNFX1RJTUUpLFxyXG4gICAgICAgIG1hcCgoeCkgPT4gdGhpcy5jb252ZXJ0RmlsdGVyKHgpKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMub25DaGFuZ2U/Lih2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpZWxkcyddIHx8IGNoYW5nZXNbJ2ZpbHRlcnMnXSkge1xyXG4gICAgICB0aGlzLmlucHV0RmllbGRzJC5uZXh0KFsuLi50aGlzLmZpZWxkcyA/PyBbXSwgLi4udGhpcy5maWx0ZXJzID8/IFtdXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWVsZERlY2xhcmF0aW9zJDogT2JzZXJ2YWJsZTxHZW5lcmljRmllbGREZWZpbml0aW9uW10+ID1cclxuICAgICAgdGhpcy5maWVsZERlY2xhcmF0aW9ucy5jaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgc3RhcnRXaXRoKHt9KSxcclxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5maWVsZERlY2xhcmF0aW9ucy50b0FycmF5KCkpXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5maWVsZERlZmluaXRpb3MkID0gdGhpcy5pbnB1dEZpZWxkcyQucGlwZShcclxuICAgICAgY29tYmluZUxhdGVzdFdpdGgoZmllbGREZWNsYXJhdGlvcyQpLFxyXG4gICAgICBtYXAoKFtpbnB1dHMsIHZpZXdzXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoRmllbGQubmFtZSA9IHRoaXMuZnVsbHRleHRGaWVsZE5hbWU7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9ybUZpZWxkcyA9IFt0aGlzLnNlYXJjaEZpZWxkLCAuLi4oaW5wdXRzID8/IFtdKSwgLi4udmlld3NdO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhc3RGb3JtRmllbGRzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnNpbXBsZUZvcm1GaWVsZERlZmluaXRpb25zJCA9IHRoaXMuZmllbGREZWZpbml0aW9zJC5waXBlKFxyXG4gICAgICBtYXAoKGZpZWxkcykgPT4ge1xyXG4gICAgICAgIHJldHVybiBmaWVsZHNcclxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHgubmFtZSAhPT0gdGhpcy5mdWxsdGV4dEZpZWxkTmFtZSlcclxuICAgICAgICAgIC5tYXAoKHgpID0+ICh7IC4uLngsIGZsb2F0TGFiZWw6IHRydWUsIHNpemU6IEZpZWxkU2l6ZS5sYXJnZSB9KSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwJCA9IHRoaXMuZmllbGREZWZpbml0aW9zJC5waXBlKFxyXG4gICAgICBtYXAoKGZpZWxkcykgPT5cclxuICAgICAgICBnZW5lcmF0ZUZvcm1Hcm91cChmaWVsZHMsIHRoaXMuZm9ybUdyb3VwLCB1bmRlZmluZWQsIGZhbHNlKVxyXG4gICAgICApXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9wZW5GaWx0ZXIoKSB7XHJcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmxhc3RGb3JtRmllbGRzLm1hcCgoeCkgPT4gKHtcclxuICAgICAgLi4ueCxcclxuICAgICAgbGFiZWw6XHJcbiAgICAgICAgeC5uYW1lID09PSB0aGlzLmZ1bGx0ZXh0RmllbGROYW1lID8gJ0Z1bGx0ZXh0JyA6IHgubGFiZWwgPz8geC5uYW1lLFxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IGdlbmVyYXRlRm9ybUdyb3VwKFxyXG4gICAgICB0aGlzLmxhc3RGb3JtRmllbGRzLFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgICBmb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RpYWxvZyh7XHJcbiAgICAgIHRpdGxlOiAnU2V0IGZpbHRlcnMnLFxyXG4gICAgICBoZWFkZXJJY29uOiB0aGlzLmljb25zLmZpbHRlcixcclxuICAgICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcclxuICAgICAgY29tcG9uZW50VHlwZTogR2VuZXJpY0Zvcm1Db21wb25lbnQsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBmb3JtR3JvdXAsXHJcbiAgICAgICAgZmllbGRzOiBmaWVsZHMsXHJcbiAgICAgICAgY29sdW1uczogMSxcclxuICAgICAgfSxcclxuICAgICAgY29uZmlybUJ1dHRvbkZuOiAoKSA9PiB0aGlzLnNldEZpbHRlclZhbHVlcyhmb3JtR3JvdXApLFxyXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogJ0FwcGx5JyxcclxuICAgICAgY2FuY2VsQnV0dG9uRm46ICgpID0+IHRoaXMuY2xlYXIoKSxcclxuICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ0NsZWFyIGFsbCcsXHJcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXHJcbiAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9wZW5TZWFyY2goKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RpYWxvZyh7XHJcbiAgICAgIGhlYWRlckljb246ICdwaSBwaS1zZWFyY2gnLFxyXG4gICAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgICBpbm5lckhUTUw6ICc8cD5TZWFyY2g8L3A+JyxcclxuICAgICAgY29uZmlybUJ1dHRvbkZuOiAoKSA9PiB0aGlzLnN1Ym1pdFZhbHVlKCksXHJcbiAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAnQXBwbHknLFxyXG4gICAgICBjYW5jZWxCdXR0b25GbjogKCkgPT4gdGhpcy5jbGVhcigpLFxyXG4gICAgICBjYW5jZWxCdXR0b25UZXh0OiAnQ2xlYXIgYWxsJyxcclxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKGRhdGE6IEZpbHRlclZhbHVlVHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogRmlsdGVyVmFsdWVUeXBlIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpIDogdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRWYWx1ZSgpIHtcclxuICAgIGlmICghdGhpcy5hdXRvQmluZCkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlPy4odGhpcy5mb3JtR3JvdXAudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyVmFsdWVzKGRpYWxvZ0Zvcm1Hcm91cDogRm9ybUdyb3VwKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5zZXRWYWx1ZShkaWFsb2dGb3JtR3JvdXAudmFsdWUpO1xyXG4gICAgdGhpcy5zdWJtaXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xyXG4gICAgdGhpcy5zdWJtaXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0RmlsdGVyKFxyXG4gICAgdmFsdWU6IEZpbHRlclZhbHVlVHlwZSB8IHVuZGVmaW5lZFxyXG4gICk6IEZpbHRlclZhbHVlVHlwZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNFbXB0eSA9IGlzRmlsdGVyRW1wdHkodmFsdWUpO1xyXG4gICAgaWYgKGlzRW1wdHkpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ2LWZpbHRlciB3LTEwMCBwLTMgYmctcHJpbWFyeVwiPlxyXG4gIEBpZiAoZm9ybUdyb3VwJCB8IGFzeW5jOyBhcyBmb3JtR3JvdXApe1xyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICBAaWYgKHRpdGxlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidi1maWx0ZXJfdGl0bGUgcGUtNFwiPlxyXG4gICAgICA8aDIgY2xhc3M9XCJ0ZXh0LXdoaXRlIG0tMFwiPnt7IHRpdGxlIH19PC9oMj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cInYtZmlsdGVyX19mdWxsdGV4dCBmbGV4LWdyb3ctMSBwZS00XCI+XHJcbiAgICAgIEBpZiAoc2hvd0Z1bGx0ZXh0KXtcclxuICAgICAgPHYtdGV4dGZpZWxkXHJcbiAgICAgICAgY2xhc3M9XCJkLW5vbmUgZC1sZy1ibG9ja1wiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxyXG4gICAgICAgIHNpemU9XCJsYXJnZVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoRmllbGRcIlxyXG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgPC92LXRleHRmaWVsZD5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKHNpbXBsZUZvcm1GaWVsZERlZmluaXRpb25zJCB8IGFzeW5jOyBhcyBkZWNsYXJhdGlvbil7XHJcbiAgICAgICBAaWYgKHNob3dGaWx0ZXJzKVxyXG4gICAge1xyXG4gICAgPGRpdiBjbGFzcz1cInYtZmlsdGVyX2ZpbHRlcnMgZC1ub25lIGQtc20tYmxvY2sgbWUtMlwiPlxyXG4gICAgICA8di1nZW5lcmljLWZvcm1cclxuICAgICAgICBbZmllbGRzXT1cImRlY2xhcmF0aW9uXCJcclxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgICAgID48L3YtZ2VuZXJpYy1mb3JtPlxyXG4gICAgICA8di1idXR0b24gbGFiZWw9XCJYXCIgY2xhc3M9XCJtdC0zXCIgKGNsaWNrKT1cImNsZWFyKClcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gICAgPGRpdiBjbGFzcz1cInYtZmlsdGVyX2FjdGlvbi1idXR0b25zIGQtZmxleFwiPlxyXG4gICAgICBAaWYgKGRlY2xhcmF0aW9uLmxlbmd0aCAmJiAhc2hvd0ZpbHRlcnMpIHtcclxuICAgICAgPHYtYnV0dG9uIFxyXG4gICAgICAgIGNsYXNzPVwibWUtNFwiXHJcbiAgICAgICAgW2ljb25dPVwiaWNvbnMuZmlsdGVyXCJcclxuICAgICAgICBbbGFiZWxdPVwiJGFueShmaWxsZWRGaWx0ZXJzQ291bnQkIHwgYXN5bmMpXCJcclxuICAgICAgICAoY2xpY2spPVwib3BlbkZpbHRlcigpXCJcclxuICAgICAgLz5cclxuICAgICAgfSBAaWYgKCFhdXRvQmluZCkge1xyXG4gICAgICA8di1idXR0b25cclxuICAgICAgICB1c2VTaG9ydEN1dFxyXG4gICAgICAgIFtzaG9ydEN1dEZuXT1cInN1Ym1pdFZhbHVlLmJpbmQodGhpcylcIlxyXG4gICAgICAgIHNob3J0Q3V0S2V5PVwiRW50ZXJcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSBteC0yXCJcclxuICAgICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBsYWJlbD1cIkFwcGx5XCJcclxuICAgICAgICAoY2xpY2spPVwic3VibWl0VmFsdWUoKVwiXHJcbiAgICAgID48L3YtYnV0dG9uPlxyXG4gICAgICA8di1idXR0b25cclxuICAgICAgICB1c2VTaG9ydEN1dFxyXG4gICAgICAgIFtzaG9ydEN1dEZuXT1cImNsZWFyLmJpbmQodGhpcylcIlxyXG4gICAgICAgIHNob3J0Q3V0S2V5PVwiRXNjYXBlXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtd2hpdGVcIlxyXG4gICAgICAgIFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIGxhYmVsPVwiQ2xlYXJcIlxyXG4gICAgICAgIChjbGljayk9XCJjbGVhcigpXCJcclxuICAgICAgPjwvdi1idXR0b24+XHJcbiAgICAgIH0gXHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInYtYWN0aW9uLWJ1dHRvbi1ncm91cFwiPjwvbmctY29udGVudD5cclxuICA8L2Zvcm0+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,16 @@
1
+ export function getFilledControlCount(formGroup) {
2
+ let count = 0;
3
+ Object.keys(formGroup.controls).forEach((key) => {
4
+ const control = formGroup.get(key);
5
+ if (control?.value) {
6
+ if (typeof control.value === 'boolean') {
7
+ count++;
8
+ }
9
+ if (typeof control.value === 'string' && control.value.trim() !== '') {
10
+ count++;
11
+ }
12
+ }
13
+ });
14
+ return count;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsU0FBb0I7SUFDeEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1lBQ0QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3JFLEtBQUssRUFBRSxDQUFDO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxsZWRDb250cm9sQ291bnQoZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBudW1iZXIge1xyXG4gIGxldCBjb3VudCA9IDA7XHJcbiAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGtleSk7XHJcbiAgICBpZiAoY29udHJvbD8udmFsdWUpIHtcclxuICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICBjb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlb2YgY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycgJiYgY29udHJvbC52YWx1ZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gY291bnQ7XHJcbn1cclxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './filter.component';
2
+ export * from './directives/filter-field.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9maWx0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2ZpbHRlci1maWVsZC5kaXJlY3RpdmUnO1xyXG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { BaseFormInputComponent, DatasourceDirective, FieldSize, GENERIC_FIELD_COMPONENT_TOKEN, GenericFieldType, } from '@verisoft/ui-core';
5
+ import { Icons } from '../../../icons';
6
+ import { CalendarComponent } from '../../calendar';
7
+ import { CheckboxComponent } from '../../checkbox';
8
+ import { DropdownComponent } from '../../dropdown';
9
+ import { MultiselectComponent } from '../../multiselect';
10
+ import { TextfieldComponent } from '../../textfield';
11
+ import { TristatecheckboxComponent } from '../../tristatecheckbox';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/forms";
14
+ export class GenericFieldComponent extends BaseFormInputComponent {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.type = GenericFieldType.text;
18
+ this.size = FieldSize.medium;
19
+ this.loading = false;
20
+ this.lazy = false;
21
+ this.filter = true;
22
+ this.changed = new EventEmitter();
23
+ this.showed = new EventEmitter();
24
+ this.cleared = new EventEmitter();
25
+ this.lazyLoad = new EventEmitter();
26
+ this.filtered = new EventEmitter();
27
+ this.fieldTypes = GenericFieldType;
28
+ this.icons = Icons;
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GenericFieldComponent, isStandalone: true, selector: "v-generic-field", inputs: { type: "type", floatLabel: "floatLabel", optionLabel: "optionLabel", optionValue: "optionValue", options: "options", size: "size", loading: "loading", lazy: "lazy", filter: "filter", datasource: "datasource", filterField: "filterField", showFilter: "showFilter", localSearch: "localSearch" }, outputs: { changed: "changed", showed: "showed", cleared: "cleared", lazyLoad: "lazyLoad", filtered: "filtered" }, providers: [
32
+ {
33
+ provide: GENERIC_FIELD_COMPONENT_TOKEN,
34
+ useExisting: GenericFieldComponent,
35
+ },
36
+ ], usesInheritance: true, ngImport: i0, template: "@if (!type || type === fieldTypes.text) {\r\n<v-textfield\r\n [label]=\"label\"\r\n [floatLabel]=\"floatLabel === true\"\r\n [size]=\"size\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.dropdown && !datasource) {\r\n<v-dropdown\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [loading]=\"loading\"\r\n [forceMinWidth]=\"true\"\r\n [formControl]=\"formControl\"\r\n [showFilter]=\"showFilter ?? false\"\r\n [localSearch]=\"localSearch ?? false\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/> \r\n} @else if (type === fieldTypes.dropdown && datasource) {\r\n <v-dropdown\r\n useDatasource\r\n [forceMinWidth]=\"true\"\r\n [datasource]=\"datasource\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n [showFilter]=\"showFilter ?? false\"\r\n [filterField]=\"filterField ?? 'fulltext'\"\r\n [localSearch]=\"localSearch ?? false\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n />\r\n} @else if (type === fieldTypes.multiselect && !datasource) {\r\n<v-multiselect\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/>\r\n} @else if (type === fieldTypes.multiselect && datasource) {\r\n<v-multiselect\r\n useDatasource\r\n [datasource]=\"datasource\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/>\r\n} @else if (type === fieldTypes.checkbox) {\r\n<v-tristatecheckbox\r\n [label]=\"label\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.simplecheckbox) {\r\n<v-checkbox\r\n [label]=\"label\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.calendar) {\r\n<v-calendar\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n [icon]=\"icons.calendar\"\r\n/>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DropdownComponent, selector: "v-dropdown", inputs: ["options", "optionLabel", "optionValue", "dropdownIcon", "floatLabel", "editable", "loading", "lazy", "filter", "forceMinWidth", "showFilter", "localSearch"], outputs: ["showed", "cleared", "lazyLoad", "filtered"] }, { kind: "component", type: CalendarComponent, selector: "v-calendar", inputs: ["maxDate", "icon", "minDate", "header", "footer", "floatLabel", "selectionMode"] }, { kind: "component", type: TristatecheckboxComponent, selector: "v-tristatecheckbox" }, { kind: "component", type: MultiselectComponent, selector: "v-multiselect", inputs: ["options", "optionLabel", "optionValue", "dropdownIcon", "floatLabel", "editable", "loading", "lazy", "filter", "size"], outputs: ["changed", "showed", "cleared", "lazyLoad", "filtered"] }, { kind: "component", type: TextfieldComponent, selector: "v-textfield", inputs: ["size", "type", "floatLabel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: CheckboxComponent, selector: "v-checkbox" }, { kind: "directive", type: DatasourceDirective, selector: "v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]", inputs: ["datasource", "autoBind", "loadingText", "filterField", "transformFn", "extraFilter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFieldComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'v-generic-field', standalone: true, imports: [
41
+ CommonModule,
42
+ DropdownComponent,
43
+ CalendarComponent,
44
+ TristatecheckboxComponent,
45
+ MultiselectComponent,
46
+ TextfieldComponent,
47
+ ReactiveFormsModule,
48
+ CheckboxComponent,
49
+ DatasourceDirective,
50
+ ], providers: [
51
+ {
52
+ provide: GENERIC_FIELD_COMPONENT_TOKEN,
53
+ useExisting: GenericFieldComponent,
54
+ },
55
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!type || type === fieldTypes.text) {\r\n<v-textfield\r\n [label]=\"label\"\r\n [floatLabel]=\"floatLabel === true\"\r\n [size]=\"size\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.dropdown && !datasource) {\r\n<v-dropdown\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [loading]=\"loading\"\r\n [forceMinWidth]=\"true\"\r\n [formControl]=\"formControl\"\r\n [showFilter]=\"showFilter ?? false\"\r\n [localSearch]=\"localSearch ?? false\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/> \r\n} @else if (type === fieldTypes.dropdown && datasource) {\r\n <v-dropdown\r\n useDatasource\r\n [forceMinWidth]=\"true\"\r\n [datasource]=\"datasource\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n [showFilter]=\"showFilter ?? false\"\r\n [filterField]=\"filterField ?? 'fulltext'\"\r\n [localSearch]=\"localSearch ?? false\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n />\r\n} @else if (type === fieldTypes.multiselect && !datasource) {\r\n<v-multiselect\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/>\r\n} @else if (type === fieldTypes.multiselect && datasource) {\r\n<v-multiselect\r\n useDatasource\r\n [datasource]=\"datasource\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue ?? optionLabel\"\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [loading]=\"loading\"\r\n [formControl]=\"formControl\"\r\n (changeEvent)=\"changed.emit($event)\"\r\n (clearEvent)=\"cleared.emit($event)\"\r\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\r\n (showEvent)=\"showed.emit($event)\"\r\n/>\r\n} @else if (type === fieldTypes.checkbox) {\r\n<v-tristatecheckbox\r\n [label]=\"label\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.simplecheckbox) {\r\n<v-checkbox\r\n [label]=\"label\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n/>\r\n} @else if (type === fieldTypes.calendar) {\r\n<v-calendar\r\n [label]=\"!floatLabel ? label : ''\"\r\n [floatLabel]=\"floatLabel ? label : ''\"\r\n [testId]=\"testId\"\r\n [formControl]=\"formControl\"\r\n [icon]=\"icons.calendar\"\r\n/>\r\n}\r\n" }]
56
+ }], propDecorators: { type: [{
57
+ type: Input
58
+ }], floatLabel: [{
59
+ type: Input
60
+ }], optionLabel: [{
61
+ type: Input
62
+ }], optionValue: [{
63
+ type: Input
64
+ }], options: [{
65
+ type: Input
66
+ }], size: [{
67
+ type: Input
68
+ }], loading: [{
69
+ type: Input
70
+ }], lazy: [{
71
+ type: Input
72
+ }], filter: [{
73
+ type: Input
74
+ }], datasource: [{
75
+ type: Input
76
+ }], filterField: [{
77
+ type: Input
78
+ }], showFilter: [{
79
+ type: Input
80
+ }], localSearch: [{
81
+ type: Input
82
+ }], changed: [{
83
+ type: Output
84
+ }], showed: [{
85
+ type: Output
86
+ }], cleared: [{
87
+ type: Output
88
+ }], lazyLoad: [{
89
+ type: Output
90
+ }], filtered: [{
91
+ type: Output
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9nZW5lcmljLWZpZWxkL2dlbmVyaWMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZ2VuZXJpYy1maWVsZC9nZW5lcmljLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1yRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixTQUFTLEVBRVQsNkJBQTZCLEVBRTdCLGdCQUFnQixHQUVqQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBeUJuRSxNQUFNLE9BQU8scUJBQ1gsU0FBUSxzQkFBc0I7SUF4QmhDOztRQTJCVyxTQUFJLEdBQTBCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQVVwRCxTQUFJLEdBQW1CLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFeEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWIsV0FBTSxHQUFHLElBQUksQ0FBQztRQVViLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2xDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUM3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUVyRCxlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsVUFBSyxHQUFHLEtBQUssQ0FBQztLQUNmOzhHQXRDWSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrZEFUckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxXQUFXLEVBQUUscUJBQXFCO2FBQ25DO1NBQ0YsaURDbkRILDh3R0FpR0EsMkNEN0RJLFlBQVksK0JBQ1osaUJBQWlCLHVSQUNqQixpQkFBaUIsa0pBQ2pCLHlCQUF5QiwrREFDekIsb0JBQW9CLCtQQUNwQixrQkFBa0IsK0ZBQ2xCLG1CQUFtQiwwVEFDbkIsaUJBQWlCLHVEQUNqQixtQkFBbUI7OzJGQVdWLHFCQUFxQjtrQkF2QmpDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3RCLGFBQ1k7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGLG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzhCQU10QyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBEYXRhc291cmNlVHlwZSxcclxuICBGaWx0ZXJFdmVudCxcclxuICBMYXp5TG9hZEV2ZW50LFxyXG59IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcclxuaW1wb3J0IHtcclxuICBCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxyXG4gIERhdGFzb3VyY2VEaXJlY3RpdmUsXHJcbiAgRmllbGRTaXplLFxyXG4gIEZpZWxkU2l6ZVR5cGUsXHJcbiAgR0VORVJJQ19GSUVMRF9DT01QT05FTlRfVE9LRU4sXHJcbiAgR2VuZXJpY0ZpZWxkQ29yZSxcclxuICBHZW5lcmljRmllbGRUeXBlLFxyXG4gIEdlbmVyaWNGaWVsZFR5cGVUeXBlLFxyXG59IGZyb20gJ0B2ZXJpc29mdC91aS1jb3JlJztcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi8uLi9pY29ucyc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bic7XHJcbmltcG9ydCB7IE11bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbXVsdGlzZWxlY3QnO1xyXG5pbXBvcnQgeyBUZXh0ZmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi90ZXh0ZmllbGQnO1xyXG5pbXBvcnQgeyBUcmlzdGF0ZWNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdHJpc3RhdGVjaGVja2JveCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3YtZ2VuZXJpYy1maWVsZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgVHJpc3RhdGVjaGVja2JveENvbXBvbmVudCxcclxuICAgIE11bHRpc2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVGV4dGZpZWxkQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgRGF0YXNvdXJjZURpcmVjdGl2ZSxcclxuXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogR0VORVJJQ19GSUVMRF9DT01QT05FTlRfVE9LRU4sXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBHZW5lcmljRmllbGRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0ZpZWxkQ29tcG9uZW50PFQ+XHJcbiAgZXh0ZW5kcyBCYXNlRm9ybUlucHV0Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBHZW5lcmljRmllbGRDb3JlPFQ+XHJcbntcclxuICBASW5wdXQoKSB0eXBlPzogR2VuZXJpY0ZpZWxkVHlwZVR5cGUgPSBHZW5lcmljRmllbGRUeXBlLnRleHQ7XHJcblxyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw/OiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBvcHRpb25MYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBvcHRpb25WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBvcHRpb25zOiBUW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHNpemU/OiBGaWVsZFNpemVUeXBlID0gRmllbGRTaXplLm1lZGl1bTtcclxuXHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYXp5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGZpbHRlciA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGFzb3VyY2U/OiBEYXRhc291cmNlVHlwZTxUPlxyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJGaWVsZD86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgc2hvd0ZpbHRlcj86IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpIGxvY2FsU2VhcmNoPzogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2hvd2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbGF6eUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPExhenlMb2FkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJFdmVudD4oKTtcclxuXHJcbiAgZmllbGRUeXBlcyA9IEdlbmVyaWNGaWVsZFR5cGU7XHJcbiAgaWNvbnMgPSBJY29ucztcclxufVxyXG4iLCJAaWYgKCF0eXBlIHx8IHR5cGUgPT09IGZpZWxkVHlwZXMudGV4dCkge1xyXG48di10ZXh0ZmllbGRcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgPT09IHRydWVcIlxyXG4gIFtzaXplXT1cInNpemVcIlxyXG4gIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbi8+XHJcbn0gQGVsc2UgaWYgKHR5cGUgPT09IGZpZWxkVHlwZXMuZHJvcGRvd24gJiYgIWRhdGFzb3VyY2UpIHtcclxuPHYtZHJvcGRvd25cclxuICBbbGFiZWxdPVwiIWZsb2F0TGFiZWwgPyBsYWJlbCA6ICcnXCJcclxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsID8gbGFiZWwgOiAnJ1wiXHJcbiAgW3Rlc3RJZF09XCJ0ZXN0SWRcIlxyXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gIFtvcHRpb25MYWJlbF09XCJvcHRpb25MYWJlbFwiXHJcbiAgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlID8/IG9wdGlvbkxhYmVsXCJcclxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICBbZm9yY2VNaW5XaWR0aF09XCJ0cnVlXCJcclxuICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gIFtzaG93RmlsdGVyXT1cInNob3dGaWx0ZXIgPz8gZmFsc2VcIlxyXG4gIFtsb2NhbFNlYXJjaF09XCJsb2NhbFNlYXJjaCA/PyBmYWxzZVwiXHJcbiAgKGNoYW5nZUV2ZW50KT1cImNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcclxuICAoY2xlYXJFdmVudCk9XCJjbGVhcmVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGxhenlMb2FkRXZlbnQpPVwibGF6eUxvYWQuZW1pdCgkYW55KCRldmVudCkpXCJcclxuICAoc2hvd0V2ZW50KT1cInNob3dlZC5lbWl0KCRldmVudClcIlxyXG4vPiBcclxufSBAZWxzZSBpZiAodHlwZSA9PT0gZmllbGRUeXBlcy5kcm9wZG93biAmJiBkYXRhc291cmNlKSB7XHJcbiAgPHYtZHJvcGRvd25cclxuICAgIHVzZURhdGFzb3VyY2VcclxuICAgIFtmb3JjZU1pbldpZHRoXT1cInRydWVcIlxyXG4gICAgW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiXHJcbiAgICBbb3B0aW9uTGFiZWxdPVwib3B0aW9uTGFiZWxcIlxyXG4gICAgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlID8/IG9wdGlvbkxhYmVsXCJcclxuICAgIFtsYWJlbF09XCIhZmxvYXRMYWJlbCA/IGxhYmVsIDogJydcIlxyXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCA/IGxhYmVsIDogJydcIlxyXG4gICAgW3Rlc3RJZF09XCJ0ZXN0SWRcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgW3Nob3dGaWx0ZXJdPVwic2hvd0ZpbHRlciA/PyBmYWxzZVwiXHJcbiAgICBbZmlsdGVyRmllbGRdPVwiZmlsdGVyRmllbGQgPz8gJ2Z1bGx0ZXh0J1wiXHJcbiAgICBbbG9jYWxTZWFyY2hdPVwibG9jYWxTZWFyY2ggPz8gZmFsc2VcIlxyXG4gICAgKGNoYW5nZUV2ZW50KT1cImNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgIChjbGVhckV2ZW50KT1cImNsZWFyZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgIChsYXp5TG9hZEV2ZW50KT1cImxhenlMb2FkLmVtaXQoJGFueSgkZXZlbnQpKVwiXHJcbiAgICAoc2hvd0V2ZW50KT1cInNob3dlZC5lbWl0KCRldmVudClcIlxyXG4gIC8+XHJcbn0gQGVsc2UgaWYgKHR5cGUgPT09IGZpZWxkVHlwZXMubXVsdGlzZWxlY3QgJiYgIWRhdGFzb3VyY2UpIHtcclxuPHYtbXVsdGlzZWxlY3RcclxuICBbbGFiZWxdPVwiIWZsb2F0TGFiZWwgPyBsYWJlbCA6ICcnXCJcclxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsID8gbGFiZWwgOiAnJ1wiXHJcbiAgW3Rlc3RJZF09XCJ0ZXN0SWRcIlxyXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gIFtvcHRpb25MYWJlbF09XCJvcHRpb25MYWJlbFwiXHJcbiAgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlID8/IG9wdGlvbkxhYmVsXCJcclxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gIChjaGFuZ2VFdmVudCk9XCJjaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGNsZWFyRXZlbnQpPVwiY2xlYXJlZC5lbWl0KCRldmVudClcIlxyXG4gIChsYXp5TG9hZEV2ZW50KT1cImxhenlMb2FkLmVtaXQoJGFueSgkZXZlbnQpKVwiXHJcbiAgKHNob3dFdmVudCk9XCJzaG93ZWQuZW1pdCgkZXZlbnQpXCJcclxuLz5cclxufSBAZWxzZSBpZiAodHlwZSA9PT0gZmllbGRUeXBlcy5tdWx0aXNlbGVjdCAmJiBkYXRhc291cmNlKSB7XHJcbjx2LW11bHRpc2VsZWN0XHJcbiAgdXNlRGF0YXNvdXJjZVxyXG4gIFtkYXRhc291cmNlXT1cImRhdGFzb3VyY2VcIlxyXG4gIFtvcHRpb25MYWJlbF09XCJvcHRpb25MYWJlbFwiXHJcbiAgW29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlID8/IG9wdGlvbkxhYmVsXCJcclxuICBbbGFiZWxdPVwiIWZsb2F0TGFiZWwgPyBsYWJlbCA6ICcnXCJcclxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsID8gbGFiZWwgOiAnJ1wiXHJcbiAgW3Rlc3RJZF09XCJ0ZXN0SWRcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgKGNoYW5nZUV2ZW50KT1cImNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcclxuICAoY2xlYXJFdmVudCk9XCJjbGVhcmVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGxhenlMb2FkRXZlbnQpPVwibGF6eUxvYWQuZW1pdCgkYW55KCRldmVudCkpXCJcclxuICAoc2hvd0V2ZW50KT1cInNob3dlZC5lbWl0KCRldmVudClcIlxyXG4vPlxyXG59IEBlbHNlIGlmICh0eXBlID09PSBmaWVsZFR5cGVzLmNoZWNrYm94KSB7XHJcbjx2LXRyaXN0YXRlY2hlY2tib3hcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFt0ZXN0SWRdPVwidGVzdElkXCJcclxuICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4vPlxyXG59IEBlbHNlIGlmICh0eXBlID09PSBmaWVsZFR5cGVzLnNpbXBsZWNoZWNrYm94KSB7XHJcbjx2LWNoZWNrYm94XHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbdGVzdElkXT1cInRlc3RJZFwiXHJcbiAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuLz5cclxufSBAZWxzZSBpZiAodHlwZSA9PT0gZmllbGRUeXBlcy5jYWxlbmRhcikge1xyXG48di1jYWxlbmRhclxyXG4gIFtsYWJlbF09XCIhZmxvYXRMYWJlbCA/IGxhYmVsIDogJydcIlxyXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgPyBsYWJlbCA6ICcnXCJcclxuICBbdGVzdElkXT1cInRlc3RJZFwiXHJcbiAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICBbaWNvbl09XCJpY29ucy5jYWxlbmRhclwiXHJcbi8+XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './generic-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9nZW5lcmljLWZpZWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyaWMtZmllbGQuY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,40 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
3
+ import { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { GenericFieldComponent } from '../generic-field';
6
+ import { generateFormGroup, getColumnClass, } from './generic-form.model';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@ngx-translate/core";
11
+ export class GenericFormComponent {
12
+ ngOnChanges(changes) {
13
+ if (changes['fields'] || changes['formGroup']) {
14
+ this.formGroupComputed = generateFormGroup(this.fields, this.formGroupComputed, this.formGroup, !!changes['formGroup']);
15
+ }
16
+ if (changes['columns']) {
17
+ this.columnClass = getColumnClass(this.columns);
18
+ }
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: GenericFormComponent, isStandalone: true, selector: "v-generic-form", inputs: { formGroup: "formGroup", fields: "fields", columns: "columns", showAsRow: "showAsRow" }, usesOnChanges: true, ngImport: i0, template: "@if (formGroupComputed) {\r\n <div\r\n class=\"v-generic-form\"\r\n [ngClass]=\"showAsRow ? 'd-flex flex-row' : 'row'\"\r\n [formGroup]=\"formGroupComputed\"\r\n >\r\n @for(field of fields; track field) { @if (columnClass) {\r\n <div class=\"v-generic-form__column {{ columnClass }}\">\r\n <v-generic-field\r\n [type]=\"field.type\"\r\n [label]=\"field.label ?? 'NOT SET' | translate\"\r\n [floatLabel]=\"field.floatLabel\"\r\n [testId]=\"field.testId\"\r\n [options]=\"field.options\"\r\n [optionLabel]=\"field.optionLabel\"\r\n [optionValue]=\"field.optionValue ?? field.optionLabel\"\r\n [options]=\"field.options\"\r\n [size]=\"field.size\"\r\n [formControlName]=\"field.name\"\r\n [datasource]=\"field.datasource\"\r\n [showFilter]=\"field.showFilter\"\r\n [filterField]=\"field.filterField\"\r\n [localSearch]=\"field.localSearch\"\r\n ></v-generic-field>\r\n </div>\r\n } @else {\r\n <v-generic-field\r\n class=\"me-4\"\r\n [type]=\"field.type\"\r\n [label]=\"field.label ?? 'NOT SET' | translate\"\r\n [floatLabel]=\"field.floatLabel\"\r\n [testId]=\"field.testId\"\r\n [options]=\"field.options\"\r\n [optionLabel]=\"field.optionLabel\"\r\n [optionValue]=\"field.optionValue ?? field.optionLabel\"\r\n [options]=\"field.options\"\r\n [size]=\"field.size\"\r\n [formControlName]=\"field.name\"\r\n [datasource]=\"field.datasource\"\r\n [showFilter]=\"field.showFilter\"\r\n [filterField]=\"field.filterField\"\r\n [localSearch]=\"field.localSearch\"\r\n ></v-generic-field>\r\n } }\r\n </div>\r\n }\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: GenericFieldComponent, selector: "v-generic-field", inputs: ["type", "floatLabel", "optionLabel", "optionValue", "options", "size", "loading", "lazy", "filter", "datasource", "filterField", "showFilter", "localSearch"], outputs: ["changed", "showed", "cleared", "lazyLoad", "filtered"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFormComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'v-generic-form', standalone: true, imports: [
26
+ CommonModule,
27
+ GenericFieldComponent,
28
+ ReactiveFormsModule,
29
+ TranslateModule,
30
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (formGroupComputed) {\r\n <div\r\n class=\"v-generic-form\"\r\n [ngClass]=\"showAsRow ? 'd-flex flex-row' : 'row'\"\r\n [formGroup]=\"formGroupComputed\"\r\n >\r\n @for(field of fields; track field) { @if (columnClass) {\r\n <div class=\"v-generic-form__column {{ columnClass }}\">\r\n <v-generic-field\r\n [type]=\"field.type\"\r\n [label]=\"field.label ?? 'NOT SET' | translate\"\r\n [floatLabel]=\"field.floatLabel\"\r\n [testId]=\"field.testId\"\r\n [options]=\"field.options\"\r\n [optionLabel]=\"field.optionLabel\"\r\n [optionValue]=\"field.optionValue ?? field.optionLabel\"\r\n [options]=\"field.options\"\r\n [size]=\"field.size\"\r\n [formControlName]=\"field.name\"\r\n [datasource]=\"field.datasource\"\r\n [showFilter]=\"field.showFilter\"\r\n [filterField]=\"field.filterField\"\r\n [localSearch]=\"field.localSearch\"\r\n ></v-generic-field>\r\n </div>\r\n } @else {\r\n <v-generic-field\r\n class=\"me-4\"\r\n [type]=\"field.type\"\r\n [label]=\"field.label ?? 'NOT SET' | translate\"\r\n [floatLabel]=\"field.floatLabel\"\r\n [testId]=\"field.testId\"\r\n [options]=\"field.options\"\r\n [optionLabel]=\"field.optionLabel\"\r\n [optionValue]=\"field.optionValue ?? field.optionLabel\"\r\n [options]=\"field.options\"\r\n [size]=\"field.size\"\r\n [formControlName]=\"field.name\"\r\n [datasource]=\"field.datasource\"\r\n [showFilter]=\"field.showFilter\"\r\n [filterField]=\"field.filterField\"\r\n [localSearch]=\"field.localSearch\"\r\n ></v-generic-field>\r\n } }\r\n </div>\r\n }\r\n" }]
31
+ }], propDecorators: { formGroup: [{
32
+ type: Input
33
+ }], fields: [{
34
+ type: Input
35
+ }], columns: [{
36
+ type: Input
37
+ }], showAsRow: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLXByaW1lbmcvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2dlbmVyaWMtZm9ybS9nZW5lcmljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZ2VuZXJpYy1mb3JtL2dlbmVyaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDOzs7OztBQWM5QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQ3hDLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsU0FBUyxFQUNkLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7OEdBMUJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGlNQzdCakMsaXNEQThDQSwyQ0R6QkksWUFBWSw2SEFDWixxQkFBcUIsc1NBQ3JCLG1CQUFtQixtbEJBQ25CLGVBQWU7OzJGQUtOLG9CQUFvQjtrQkFaaEMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDaEIsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBHZW5lcmljRmllbGREZWZpbml0aW9uIH0gZnJvbSAnQHZlcmlzb2Z0L3VpLWNvcmUnO1xyXG5pbXBvcnQgeyBHZW5lcmljRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmljLWZpZWxkJztcclxuaW1wb3J0IHtcclxuICBnZW5lcmF0ZUZvcm1Hcm91cCxcclxuICBnZXRDb2x1bW5DbGFzcyxcclxufSBmcm9tICcuL2dlbmVyaWMtZm9ybS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3YtZ2VuZXJpYy1mb3JtJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEdlbmVyaWNGaWVsZENvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBmb3JtR3JvdXA/OiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBASW5wdXQoKSBmaWVsZHM/OiBHZW5lcmljRmllbGREZWZpbml0aW9uW107XHJcblxyXG4gIEBJbnB1dCgpIGNvbHVtbnM/OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dBc1JvdyE6IGJvb2xlYW47XHJcblxyXG4gIGZvcm1Hcm91cENvbXB1dGVkITogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgY29sdW1uQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWVsZHMnXSB8fCBjaGFuZ2VzWydmb3JtR3JvdXAnXSkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cENvbXB1dGVkID0gZ2VuZXJhdGVGb3JtR3JvdXAoXHJcbiAgICAgICAgdGhpcy5maWVsZHMsXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDb21wdXRlZCxcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCxcclxuICAgICAgICAhIWNoYW5nZXNbJ2Zvcm1Hcm91cCddXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ2NvbHVtbnMnXSkge1xyXG4gICAgICB0aGlzLmNvbHVtbkNsYXNzID0gZ2V0Q29sdW1uQ2xhc3ModGhpcy5jb2x1bW5zKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChmb3JtR3JvdXBDb21wdXRlZCkge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwidi1nZW5lcmljLWZvcm1cIlxyXG4gICAgW25nQ2xhc3NdPVwic2hvd0FzUm93ID8gJ2QtZmxleCBmbGV4LXJvdycgOiAncm93J1wiXHJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cENvbXB1dGVkXCJcclxuICA+XHJcbiAgICBAZm9yKGZpZWxkIG9mIGZpZWxkczsgdHJhY2sgZmllbGQpIHsgQGlmIChjb2x1bW5DbGFzcykge1xyXG4gICAgPGRpdiBjbGFzcz1cInYtZ2VuZXJpYy1mb3JtX19jb2x1bW4ge3sgY29sdW1uQ2xhc3MgfX1cIj5cclxuICAgICAgPHYtZ2VuZXJpYy1maWVsZFxyXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIlxyXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5sYWJlbCA/PyAnTk9UIFNFVCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtmbG9hdExhYmVsXT1cImZpZWxkLmZsb2F0TGFiZWxcIlxyXG4gICAgICAgIFt0ZXN0SWRdPVwiZmllbGQudGVzdElkXCJcclxuICAgICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcclxuICAgICAgICBbb3B0aW9uTGFiZWxdPVwiZmllbGQub3B0aW9uTGFiZWxcIlxyXG4gICAgICAgIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyBmaWVsZC5vcHRpb25MYWJlbFwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXHJcbiAgICAgICAgW3NpemVdPVwiZmllbGQuc2l6ZVwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbZGF0YXNvdXJjZV09XCJmaWVsZC5kYXRhc291cmNlXCJcclxuICAgICAgICBbc2hvd0ZpbHRlcl09XCJmaWVsZC5zaG93RmlsdGVyXCJcclxuICAgICAgICBbZmlsdGVyRmllbGRdPVwiZmllbGQuZmlsdGVyRmllbGRcIlxyXG4gICAgICAgIFtsb2NhbFNlYXJjaF09XCJmaWVsZC5sb2NhbFNlYXJjaFwiXHJcbiAgICAgID48L3YtZ2VuZXJpYy1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8di1nZW5lcmljLWZpZWxkXHJcbiAgICAgIGNsYXNzPVwibWUtNFwiXHJcbiAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIlxyXG4gICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWwgPz8gJ05PVCBTRVQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgW2Zsb2F0TGFiZWxdPVwiZmllbGQuZmxvYXRMYWJlbFwiXHJcbiAgICAgIFt0ZXN0SWRdPVwiZmllbGQudGVzdElkXCJcclxuICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiXHJcbiAgICAgIFtvcHRpb25MYWJlbF09XCJmaWVsZC5vcHRpb25MYWJlbFwiXHJcbiAgICAgIFtvcHRpb25WYWx1ZV09XCJmaWVsZC5vcHRpb25WYWx1ZSA/PyBmaWVsZC5vcHRpb25MYWJlbFwiXHJcbiAgICAgIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIlxyXG4gICAgICBbc2l6ZV09XCJmaWVsZC5zaXplXCJcclxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgW2RhdGFzb3VyY2VdPVwiZmllbGQuZGF0YXNvdXJjZVwiXHJcbiAgICAgIFtzaG93RmlsdGVyXT1cImZpZWxkLnNob3dGaWx0ZXJcIlxyXG4gICAgICBbZmlsdGVyRmllbGRdPVwiZmllbGQuZmlsdGVyRmllbGRcIlxyXG4gICAgICBbbG9jYWxTZWFyY2hdPVwiZmllbGQubG9jYWxTZWFyY2hcIlxyXG4gICAgPjwvdi1nZW5lcmljLWZpZWxkPlxyXG4gICAgfSB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { UntypedFormControl, UntypedFormGroup, } from '@angular/forms';
2
+ export function generateFormGroup(fields, lastGroupValue, inputGroup, inputGroupChanged = false) {
3
+ const formGroup = (inputGroupChanged
4
+ ? inputGroup ?? lastGroupValue
5
+ : lastGroupValue ?? inputGroup) ?? new UntypedFormGroup({});
6
+ fields?.forEach((field) => {
7
+ const control = formGroup.get(field.name);
8
+ if (!control) {
9
+ formGroup.addControl(field.name, new UntypedFormControl(field.value, field.validator));
10
+ }
11
+ else if (control && control.value !== field.value) {
12
+ control.setValue(field.value);
13
+ control.setValidators(field.validator ?? null);
14
+ }
15
+ else {
16
+ control.setValidators(field.validator ?? null);
17
+ }
18
+ if (field.readonly && (control || formGroup.get(field.name))) {
19
+ formGroup.get(field.name)?.disable();
20
+ }
21
+ });
22
+ if (!inputGroupChanged) {
23
+ for (const field in formGroup.controls) {
24
+ const control = fields?.find((x) => x.name == field);
25
+ if (!control) {
26
+ formGroup.removeControl(field);
27
+ }
28
+ }
29
+ }
30
+ return formGroup;
31
+ }
32
+ export function getColumnClass(value) {
33
+ if (!value) {
34
+ return undefined;
35
+ }
36
+ switch (value) {
37
+ case 1:
38
+ return 'col-12';
39
+ case 2:
40
+ return 'col-12 col-md-6';
41
+ case 3:
42
+ return 'col-12 col-md-4';
43
+ case 4:
44
+ return 'col-12 col-md-3';
45
+ case 6:
46
+ return 'col-12 col-md-2';
47
+ }
48
+ return 'col-12 col-md-1';
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mb3JtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktcHJpbWVuZy9zcmMvbGliL2NvbXBvbmVudHMvc2hhcmVkLWNvbXBvbmVudHMvZ2VuZXJpYy1mb3JtL2dlbmVyaWMtZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsTUFBNEMsRUFDNUMsY0FBNEMsRUFDNUMsVUFBd0MsRUFDeEMsaUJBQWlCLEdBQUcsS0FBSztJQUV6QixNQUFNLFNBQVMsR0FDYixDQUFDLGlCQUFpQjtRQUNoQixDQUFDLENBQUMsVUFBVSxJQUFJLGNBQWM7UUFDOUIsQ0FBQyxDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN4QixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixTQUFTLENBQUMsVUFBVSxDQUNsQixLQUFLLENBQUMsSUFBSSxFQUNWLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQ3JELENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdELFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBYztJQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUSxLQUFLLEVBQUUsQ0FBQztRQUNkLEtBQUssQ0FBQztZQUNKLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssQ0FBQztZQUNKLE9BQU8saUJBQWlCLENBQUM7UUFDM0IsS0FBSyxDQUFDO1lBQ0osT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixLQUFLLENBQUM7WUFDSixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLEtBQUssQ0FBQztZQUNKLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHZW5lcmljRmllbGREZWZpbml0aW9uIH0gZnJvbSAnQHZlcmlzb2Z0L3VpLWNvcmUnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlRm9ybUdyb3VwKFxyXG4gIGZpZWxkczogR2VuZXJpY0ZpZWxkRGVmaW5pdGlvbltdIHwgdW5kZWZpbmVkLFxyXG4gIGxhc3RHcm91cFZhbHVlOiBVbnR5cGVkRm9ybUdyb3VwIHwgdW5kZWZpbmVkLFxyXG4gIGlucHV0R3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgfCB1bmRlZmluZWQsXHJcbiAgaW5wdXRHcm91cENoYW5nZWQgPSBmYWxzZVxyXG4pOiBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICBjb25zdCBmb3JtR3JvdXAgPVxyXG4gICAgKGlucHV0R3JvdXBDaGFuZ2VkXHJcbiAgICAgID8gaW5wdXRHcm91cCA/PyBsYXN0R3JvdXBWYWx1ZVxyXG4gICAgICA6IGxhc3RHcm91cFZhbHVlID8/IGlucHV0R3JvdXApID8/IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSk7XHJcbiAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgZm9ybUdyb3VwLmFkZENvbnRyb2woXHJcbiAgICAgICAgZmllbGQubmFtZSxcclxuICAgICAgICBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZpZWxkLnZhbHVlLCBmaWVsZC52YWxpZGF0b3IpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAhPT0gZmllbGQudmFsdWUpIHtcclxuICAgICAgY29udHJvbC5zZXRWYWx1ZShmaWVsZC52YWx1ZSk7XHJcbiAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhmaWVsZC52YWxpZGF0b3IgPz8gbnVsbCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKGZpZWxkLnZhbGlkYXRvciA/PyBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmllbGQucmVhZG9ubHkgJiYgKGNvbnRyb2wgfHwgZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKSkpIHtcclxuICAgICAgZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKT8uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICghaW5wdXRHcm91cENoYW5nZWQpIHtcclxuICAgIGZvciAoY29uc3QgZmllbGQgaW4gZm9ybUdyb3VwLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmaWVsZHM/LmZpbmQoKHgpID0+IHgubmFtZSA9PSBmaWVsZCk7XHJcbiAgICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICAgIGZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZvcm1Hcm91cDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtbkNsYXNzKHZhbHVlPzogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoIXZhbHVlKSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgY2FzZSAxOlxyXG4gICAgICByZXR1cm4gJ2NvbC0xMic7XHJcbiAgICBjYXNlIDI6XHJcbiAgICAgIHJldHVybiAnY29sLTEyIGNvbC1tZC02JztcclxuICAgIGNhc2UgMzpcclxuICAgICAgcmV0dXJuICdjb2wtMTIgY29sLW1kLTQnO1xyXG4gICAgY2FzZSA0OlxyXG4gICAgICByZXR1cm4gJ2NvbC0xMiBjb2wtbWQtMyc7XHJcbiAgICBjYXNlIDY6XHJcbiAgICAgIHJldHVybiAnY29sLTEyIGNvbC1tZC0yJztcclxuICB9XHJcblxyXG4gIHJldHVybiAnY29sLTEyIGNvbC1tZC0xJztcclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './generic-form.component';
2
+ export * from './generic-form.model';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9nZW5lcmljLWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZvcm0ubW9kZWwnO1xyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ export * from './action-button-group';
2
+ export * from './filter';
3
+ export * from './feature-list';
4
+ export * from './generic-field';
5
+ export * from './generic-form';
6
+ export * from './dynamic-component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaGFyZWQtY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi1idXR0b24tZ3JvdXAnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1saXN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZpZWxkJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZvcm0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './side-menu.module';
2
+ export * from './side-menu.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1wcmltZW5nL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW1lbnUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaWRlLW1lbnUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zaWRlLW1lbnUuY29tcG9uZW50JztcclxuIl19