@verisoft/ui-primeng 18.7.0 → 18.8.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 (383) hide show
  1. package/README.md +7 -57
  2. package/assets/icons/complex/v-logo.svg +4 -4
  3. package/assets/sass/base/_scrollbar.scss +18 -18
  4. package/assets/sass/base/_typography.scss +24 -24
  5. package/assets/sass/layout/_app.scss +26 -26
  6. package/assets/sass/layout/_button.scss +57 -57
  7. package/assets/sass/layout/_checkbox.scss +32 -32
  8. package/assets/sass/layout/_dialog.scss +12 -12
  9. package/assets/sass/layout/_dropdown.scss +8 -8
  10. package/assets/sass/layout/_formField.scss +4 -4
  11. package/assets/sass/layout/_header.scss +62 -62
  12. package/assets/sass/layout/_icons.scss +12 -12
  13. package/assets/sass/layout/_inputSwitch.scss +12 -12
  14. package/assets/sass/layout/_layout.scss +5 -5
  15. package/assets/sass/layout/_loader.scss +8 -8
  16. package/assets/sass/layout/_radiobutton.scss +21 -21
  17. package/assets/sass/layout/_sidemenu.scss +172 -172
  18. package/assets/sass/layout/_snackbar.scss +7 -7
  19. package/assets/sass/layout/_tables.scss +4 -4
  20. package/assets/sass/layout/_tree.scss +11 -11
  21. package/assets/sass/layout/_tristatecheckbox.scss +14 -14
  22. package/assets/sass/main.scss +28 -28
  23. package/assets/sass/themes/_verisoft_theme.scss +46 -46
  24. package/assets/sass/utils/_utils.scss +39 -39
  25. package/assets/sass/utils/_variables.scss +12 -12
  26. package/assets/sass/vendors/_bootstrap.scss +2 -2
  27. package/assets/sass/vendors/_primeng.scss +2 -2
  28. package/esm2022/index.mjs +30 -0
  29. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +31 -0
  30. package/esm2022/lib/components/breadcrumb/breadcrumb.pipe.mjs +17 -0
  31. package/esm2022/lib/components/breadcrumb/index.mjs +2 -0
  32. package/esm2022/lib/components/button/button.component.mjs +61 -0
  33. package/esm2022/lib/components/button/index.mjs +2 -0
  34. package/esm2022/lib/components/calendar/calendar.component.mjs +73 -0
  35. package/esm2022/lib/components/calendar/index.mjs +2 -0
  36. package/esm2022/lib/components/checkbox/checkbox.component.mjs +47 -0
  37. package/esm2022/lib/components/checkbox/index.mjs +2 -0
  38. package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +65 -0
  39. package/esm2022/lib/components/confirm-dialog/index.mjs +2 -0
  40. package/esm2022/lib/components/dropdown/dropdown.component.mjs +139 -0
  41. package/esm2022/lib/components/dropdown/index.mjs +2 -0
  42. package/esm2022/lib/components/errors/error.component.mjs +41 -0
  43. package/esm2022/lib/components/errors/index.mjs +2 -0
  44. package/esm2022/lib/components/form-field/form-field.component.mjs +41 -0
  45. package/esm2022/lib/components/form-field/index.mjs +2 -0
  46. package/esm2022/lib/components/header/header.component.mjs +58 -0
  47. package/esm2022/lib/components/header/index.mjs +3 -0
  48. package/esm2022/lib/components/header/services/header-provider.service.mjs +24 -0
  49. package/esm2022/lib/components/input-group/index.mjs +2 -0
  50. package/esm2022/lib/components/input-group/input-group.component.mjs +57 -0
  51. package/esm2022/lib/components/loader/index.mjs +2 -0
  52. package/esm2022/lib/components/loader/loader.component.mjs +19 -0
  53. package/esm2022/lib/components/multiselect/index.mjs +2 -0
  54. package/esm2022/lib/components/multiselect/multiselect.component.mjs +124 -0
  55. package/esm2022/lib/components/number-input/index.mjs +2 -0
  56. package/esm2022/lib/components/number-input/number-input.component.mjs +64 -0
  57. package/esm2022/lib/components/page-header/index.mjs +2 -0
  58. package/esm2022/lib/components/page-header/page-header.component.mjs +28 -0
  59. package/esm2022/lib/components/password/index.mjs +2 -0
  60. package/esm2022/lib/components/password/password.component.mjs +59 -0
  61. package/esm2022/lib/components/radiobutton/index.mjs +2 -0
  62. package/esm2022/lib/components/radiobutton/radiobutton.component.mjs +57 -0
  63. package/esm2022/lib/components/section/index.mjs +2 -0
  64. package/esm2022/lib/components/section/section.component.mjs +35 -0
  65. package/esm2022/lib/components/shared-components/action-button-group/action-button-group.component.mjs +92 -0
  66. package/esm2022/lib/components/shared-components/action-button-group/components/action-button/action-button.component.mjs +60 -0
  67. package/esm2022/lib/components/shared-components/action-button-group/index.mjs +3 -0
  68. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.mjs +90 -0
  69. package/esm2022/lib/components/shared-components/dynamic-component/dynamic-component.component.mjs +41 -0
  70. package/esm2022/lib/components/shared-components/dynamic-component/index.mjs +3 -0
  71. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-column.directive.mjs +46 -0
  72. package/esm2022/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.mjs +16 -0
  73. package/esm2022/lib/components/shared-components/feature-list/feature-list-filter.pipe.mjs +24 -0
  74. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.component.mjs +42 -0
  75. package/esm2022/lib/components/shared-components/feature-list/feature-list-page.model.mjs +16 -0
  76. package/esm2022/lib/components/shared-components/feature-list/feature-list.component.mjs +275 -0
  77. package/esm2022/lib/components/shared-components/feature-list/index.mjs +6 -0
  78. package/esm2022/lib/components/shared-components/filter/directives/filter-field.directive.mjs +44 -0
  79. package/esm2022/lib/components/shared-components/filter/filter.component.mjs +190 -0
  80. package/esm2022/lib/components/shared-components/filter/filter.model.mjs +16 -0
  81. package/esm2022/lib/components/shared-components/filter/index.mjs +3 -0
  82. package/esm2022/lib/components/shared-components/generic-field/generic-field.component.mjs +93 -0
  83. package/esm2022/lib/components/shared-components/generic-field/index.mjs +2 -0
  84. package/esm2022/lib/components/shared-components/generic-form/generic-form.component.mjs +40 -0
  85. package/esm2022/lib/components/shared-components/generic-form/generic-form.model.mjs +50 -0
  86. package/esm2022/lib/components/shared-components/generic-form/index.mjs +3 -0
  87. package/esm2022/lib/components/shared-components/index.mjs +7 -0
  88. package/esm2022/lib/components/side-menu/index.mjs +3 -0
  89. package/esm2022/lib/components/side-menu/side-menu.component.mjs +92 -0
  90. package/esm2022/lib/components/side-menu/side-menu.module.mjs +74 -0
  91. package/esm2022/lib/components/slider/index.mjs +2 -0
  92. package/esm2022/lib/components/slider/slider.component.mjs +62 -0
  93. package/esm2022/lib/components/snackbar/index.mjs +3 -0
  94. package/esm2022/lib/components/snackbar/services/snackbar.service.mjs +50 -0
  95. package/esm2022/lib/components/snackbar/snackbar.component.mjs +33 -0
  96. package/esm2022/lib/components/stepper/index.mjs +2 -0
  97. package/esm2022/lib/components/stepper/stepper.component.mjs +48 -0
  98. package/esm2022/lib/components/switch/index.mjs +2 -0
  99. package/esm2022/lib/components/switch/switch.component.mjs +54 -0
  100. package/esm2022/lib/components/tab-view/index.mjs +4 -0
  101. package/esm2022/lib/components/tab-view/tab-menu.pipe.mjs +25 -0
  102. package/esm2022/lib/components/tab-view/tab-view-item.component.mjs +31 -0
  103. package/esm2022/lib/components/tab-view/tab-view.component.mjs +50 -0
  104. package/esm2022/lib/components/tab-view/tab-view.module.mjs +29 -0
  105. package/esm2022/lib/components/table/index.mjs +2 -0
  106. package/esm2022/lib/components/table/table-filter.pipe.mjs +49 -0
  107. package/esm2022/lib/components/table/table.component.mjs +220 -0
  108. package/esm2022/lib/components/table/table.models.mjs +17 -0
  109. package/esm2022/lib/components/textarea/index.mjs +2 -0
  110. package/esm2022/lib/components/textarea/textarea.component.mjs +65 -0
  111. package/esm2022/lib/components/textfield/index.mjs +2 -0
  112. package/esm2022/lib/components/textfield/textfield.component.mjs +65 -0
  113. package/esm2022/lib/components/tristatecheckbox/index.mjs +2 -0
  114. package/esm2022/lib/components/tristatecheckbox/tristatecheckbox.component.mjs +53 -0
  115. package/esm2022/lib/icons.mjs +35 -0
  116. package/esm2022/lib/interceptors/http-error-message.interceptor.mjs +31 -0
  117. package/esm2022/verisoft-ui-primeng.mjs +5 -0
  118. package/fesm2022/verisoft-ui-primeng.mjs +2909 -0
  119. package/fesm2022/verisoft-ui-primeng.mjs.map +1 -0
  120. package/{src/index.ts → index.d.ts} +29 -29
  121. package/lib/components/breadcrumb/breadcrumb.component.d.ts +6 -0
  122. package/lib/components/breadcrumb/breadcrumb.pipe.d.ts +9 -0
  123. package/{src/lib/components/breadcrumb/index.ts → lib/components/breadcrumb/index.d.ts} +1 -1
  124. package/lib/components/button/button.component.d.ts +20 -0
  125. package/{src/lib/components/button/index.ts → lib/components/button/index.d.ts} +1 -1
  126. package/lib/components/calendar/calendar.component.d.ts +17 -0
  127. package/{src/lib/components/calendar/index.ts → lib/components/calendar/index.d.ts} +1 -1
  128. package/lib/components/checkbox/checkbox.component.d.ts +9 -0
  129. package/{src/lib/components/checkbox/index.ts → lib/components/checkbox/index.d.ts} +1 -1
  130. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +15 -0
  131. package/{src/lib/components/confirm-dialog/index.ts → lib/components/confirm-dialog/index.d.ts} +1 -1
  132. package/lib/components/dropdown/dropdown.component.d.ts +38 -0
  133. package/{src/lib/components/dropdown/index.ts → lib/components/dropdown/index.d.ts} +1 -1
  134. package/lib/components/errors/error.component.d.ts +16 -0
  135. package/lib/components/errors/index.d.ts +1 -0
  136. package/lib/components/form-field/form-field.component.d.ts +12 -0
  137. package/{src/lib/components/form-field/index.ts → lib/components/form-field/index.d.ts} +1 -1
  138. package/lib/components/header/header.component.d.ts +23 -0
  139. package/{src/lib/components/header/index.ts → lib/components/header/index.d.ts} +2 -2
  140. package/lib/components/header/services/header-provider.service.d.ts +10 -0
  141. package/{src/lib/components/input-group/index.ts → lib/components/input-group/index.d.ts} +1 -1
  142. package/lib/components/input-group/input-group.component.d.ts +9 -0
  143. package/{src/lib/components/loader/index.ts → lib/components/loader/index.d.ts} +1 -1
  144. package/lib/components/loader/loader.component.d.ts +6 -0
  145. package/{src/lib/components/multiselect/index.ts → lib/components/multiselect/index.d.ts} +1 -1
  146. package/lib/components/multiselect/multiselect.component.d.ts +34 -0
  147. package/{src/lib/components/number-input/index.ts → lib/components/number-input/index.d.ts} +1 -1
  148. package/lib/components/number-input/number-input.component.d.ts +14 -0
  149. package/{src/lib/components/page-header/index.ts → lib/components/page-header/index.d.ts} +1 -1
  150. package/lib/components/page-header/page-header.component.d.ts +10 -0
  151. package/{src/lib/components/password/index.ts → lib/components/password/index.d.ts} +1 -1
  152. package/lib/components/password/password.component.d.ts +11 -0
  153. package/{src/lib/components/radiobutton/index.ts → lib/components/radiobutton/index.d.ts} +1 -1
  154. package/lib/components/radiobutton/radiobutton.component.d.ts +10 -0
  155. package/{src/lib/components/section/index.ts → lib/components/section/index.d.ts} +1 -1
  156. package/lib/components/section/section.component.d.ts +12 -0
  157. package/lib/components/shared-components/action-button-group/action-button-group.component.d.ts +29 -0
  158. package/lib/components/shared-components/action-button-group/components/action-button/action-button.component.d.ts +24 -0
  159. package/{src/lib/components/shared-components/action-button-group/index.ts → lib/components/shared-components/action-button-group/index.d.ts} +2 -2
  160. package/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.d.ts +17 -0
  161. package/lib/components/shared-components/dynamic-component/dynamic-component.component.d.ts +16 -0
  162. package/{src/lib/components/shared-components/dynamic-component/index.ts → lib/components/shared-components/dynamic-component/index.d.ts} +2 -2
  163. package/lib/components/shared-components/feature-list/directives/feature-list-column.directive.d.ts +10 -0
  164. package/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.d.ts +6 -0
  165. package/lib/components/shared-components/feature-list/feature-list-filter.pipe.d.ts +9 -0
  166. package/lib/components/shared-components/feature-list/feature-list-page.component.d.ts +9 -0
  167. package/lib/components/shared-components/feature-list/feature-list-page.model.d.ts +23 -0
  168. package/lib/components/shared-components/feature-list/feature-list.component.d.ts +62 -0
  169. package/{src/lib/components/shared-components/feature-list/index.ts → lib/components/shared-components/feature-list/index.d.ts} +5 -5
  170. package/lib/components/shared-components/filter/directives/filter-field.directive.d.ts +20 -0
  171. package/lib/components/shared-components/filter/filter.component.d.ts +53 -0
  172. package/lib/components/shared-components/filter/filter.model.d.ts +2 -0
  173. package/{src/lib/components/shared-components/filter/index.ts → lib/components/shared-components/filter/index.d.ts} +2 -2
  174. package/lib/components/shared-components/generic-field/generic-field.component.d.ts +28 -0
  175. package/{src/lib/components/shared-components/generic-field/index.ts → lib/components/shared-components/generic-field/index.d.ts} +1 -1
  176. package/lib/components/shared-components/generic-form/generic-form.component.d.ts +15 -0
  177. package/lib/components/shared-components/generic-form/generic-form.model.d.ts +4 -0
  178. package/{src/lib/components/shared-components/generic-form/index.ts → lib/components/shared-components/generic-form/index.d.ts} +2 -2
  179. package/{src/lib/components/shared-components/index.ts → lib/components/shared-components/index.d.ts} +6 -6
  180. package/{src/lib/components/side-menu/index.ts → lib/components/side-menu/index.d.ts} +2 -2
  181. package/lib/components/side-menu/side-menu.component.d.ts +27 -0
  182. package/lib/components/side-menu/side-menu.module.d.ts +13 -0
  183. package/{src/lib/components/slider/index.ts → lib/components/slider/index.d.ts} +1 -1
  184. package/lib/components/slider/slider.component.d.ts +12 -0
  185. package/{src/lib/components/snackbar/index.ts → lib/components/snackbar/index.d.ts} +2 -2
  186. package/lib/components/snackbar/services/snackbar.service.d.ts +12 -0
  187. package/lib/components/snackbar/snackbar.component.d.ts +9 -0
  188. package/{src/lib/components/stepper/index.ts → lib/components/stepper/index.d.ts} +1 -1
  189. package/lib/components/stepper/stepper.component.d.ts +17 -0
  190. package/{src/lib/components/switch/index.ts → lib/components/switch/index.d.ts} +1 -1
  191. package/lib/components/switch/switch.component.d.ts +9 -0
  192. package/{src/lib/components/tab-view/index.ts → lib/components/tab-view/index.d.ts} +3 -3
  193. package/lib/components/tab-view/tab-menu.pipe.d.ts +9 -0
  194. package/lib/components/tab-view/tab-view-item.component.d.ts +12 -0
  195. package/lib/components/tab-view/tab-view.component.d.ts +17 -0
  196. package/lib/components/tab-view/tab-view.module.d.ts +13 -0
  197. package/{src/lib/components/table/index.ts → lib/components/table/index.d.ts} +1 -1
  198. package/lib/components/table/table-filter.pipe.d.ts +13 -0
  199. package/lib/components/table/table.component.d.ts +67 -0
  200. package/lib/components/table/table.models.d.ts +4 -0
  201. package/{src/lib/components/textarea/index.ts → lib/components/textarea/index.d.ts} +1 -1
  202. package/lib/components/textarea/textarea.component.d.ts +12 -0
  203. package/{src/lib/components/textfield/index.ts → lib/components/textfield/index.d.ts} +1 -1
  204. package/lib/components/textfield/textfield.component.d.ts +12 -0
  205. package/{src/lib/components/tristatecheckbox/index.ts → lib/components/tristatecheckbox/index.d.ts} +1 -1
  206. package/lib/components/tristatecheckbox/tristatecheckbox.component.d.ts +9 -0
  207. package/lib/icons.d.ts +2 -0
  208. package/lib/interceptors/http-error-message.interceptor.d.ts +11 -0
  209. package/package.json +37 -22
  210. package/.eslintrc.json +0 -43
  211. package/assets/.gitkeep +0 -0
  212. package/jest.config.ts +0 -22
  213. package/ng-package.json +0 -15
  214. package/project.json +0 -36
  215. package/src/lib/components/breadcrumb/breadcrumb.component.html +0 -12
  216. package/src/lib/components/breadcrumb/breadcrumb.component.scss +0 -18
  217. package/src/lib/components/breadcrumb/breadcrumb.component.spec.ts +0 -21
  218. package/src/lib/components/breadcrumb/breadcrumb.component.stories.ts +0 -36
  219. package/src/lib/components/breadcrumb/breadcrumb.component.ts +0 -29
  220. package/src/lib/components/breadcrumb/breadcrumb.pipe.ts +0 -13
  221. package/src/lib/components/button/button.component.html +0 -20
  222. package/src/lib/components/button/button.component.scss +0 -0
  223. package/src/lib/components/button/button.component.spec.ts +0 -21
  224. package/src/lib/components/button/button.component.ts +0 -49
  225. package/src/lib/components/calendar/calendar.component.html +0 -53
  226. package/src/lib/components/calendar/calendar.component.scss +0 -0
  227. package/src/lib/components/calendar/calendar.component.spec.ts +0 -21
  228. package/src/lib/components/calendar/calendar.component.ts +0 -72
  229. package/src/lib/components/checkbox/checkbox.component.html +0 -19
  230. package/src/lib/components/checkbox/checkbox.component.scss +0 -15
  231. package/src/lib/components/checkbox/checkbox.component.spec.ts +0 -21
  232. package/src/lib/components/checkbox/checkbox.component.stories.ts +0 -72
  233. package/src/lib/components/checkbox/checkbox.component.ts +0 -45
  234. package/src/lib/components/confirm-dialog/confirm-dialog.component.html +0 -48
  235. package/src/lib/components/confirm-dialog/confirm-dialog.component.scss +0 -3
  236. package/src/lib/components/confirm-dialog/confirm-dialog.component.spec.ts +0 -21
  237. package/src/lib/components/confirm-dialog/confirm-dialog.component.stories.ts +0 -74
  238. package/src/lib/components/confirm-dialog/confirm-dialog.component.ts +0 -74
  239. package/src/lib/components/dropdown/dropdown.component.html +0 -96
  240. package/src/lib/components/dropdown/dropdown.component.scss +0 -16
  241. package/src/lib/components/dropdown/dropdown.component.spec.ts +0 -21
  242. package/src/lib/components/dropdown/dropdown.component.stories.ts +0 -90
  243. package/src/lib/components/dropdown/dropdown.component.ts +0 -144
  244. package/src/lib/components/errors/error.component.html +0 -6
  245. package/src/lib/components/errors/error.component.scss +0 -3
  246. package/src/lib/components/errors/error.component.ts +0 -35
  247. package/src/lib/components/errors/index.ts +0 -1
  248. package/src/lib/components/form-field/form-field.component.html +0 -36
  249. package/src/lib/components/form-field/form-field.component.scss +0 -0
  250. package/src/lib/components/form-field/form-field.component.spec.ts +0 -21
  251. package/src/lib/components/form-field/form-field.component.stories.ts +0 -69
  252. package/src/lib/components/form-field/form-field.component.ts +0 -38
  253. package/src/lib/components/header/header.component.html +0 -84
  254. package/src/lib/components/header/header.component.scss +0 -0
  255. package/src/lib/components/header/header.component.spec.ts +0 -21
  256. package/src/lib/components/header/header.component.stories.ts +0 -24
  257. package/src/lib/components/header/header.component.ts +0 -66
  258. package/src/lib/components/header/services/header-provider.service.ts +0 -15
  259. package/src/lib/components/input-group/input-group.component.html +0 -30
  260. package/src/lib/components/input-group/input-group.component.spec.ts +0 -21
  261. package/src/lib/components/input-group/input-group.component.ts +0 -60
  262. package/src/lib/components/loader/loader.component.html +0 -5
  263. package/src/lib/components/loader/loader.component.scss +0 -0
  264. package/src/lib/components/loader/loader.component.spec.ts +0 -21
  265. package/src/lib/components/loader/loader.component.ts +0 -17
  266. package/src/lib/components/multiselect/multiselect.component.html +0 -70
  267. package/src/lib/components/multiselect/multiselect.component.scss +0 -0
  268. package/src/lib/components/multiselect/multiselect.component.spec.ts +0 -21
  269. package/src/lib/components/multiselect/multiselect.component.ts +0 -122
  270. package/src/lib/components/number-input/number-input.component.html +0 -22
  271. package/src/lib/components/number-input/number-input.component.spec.ts +0 -21
  272. package/src/lib/components/number-input/number-input.component.ts +0 -57
  273. package/src/lib/components/page-header/page-header.component.html +0 -31
  274. package/src/lib/components/page-header/page-header.component.scss +0 -0
  275. package/src/lib/components/page-header/page-header.component.spec.ts +0 -21
  276. package/src/lib/components/page-header/page-header.component.ts +0 -32
  277. package/src/lib/components/password/password.component.html +0 -24
  278. package/src/lib/components/password/password.component.scss +0 -0
  279. package/src/lib/components/password/password.component.spec.ts +0 -21
  280. package/src/lib/components/password/password.component.ts +0 -58
  281. package/src/lib/components/radiobutton/radiobutton.component.html +0 -32
  282. package/src/lib/components/radiobutton/radiobutton.component.scss +0 -6
  283. package/src/lib/components/radiobutton/radiobutton.component.spec.ts +0 -21
  284. package/src/lib/components/radiobutton/radiobutton.component.stories.ts +0 -71
  285. package/src/lib/components/radiobutton/radiobutton.component.ts +0 -62
  286. package/src/lib/components/section/section.component.html +0 -23
  287. package/src/lib/components/section/section.component.scss +0 -0
  288. package/src/lib/components/section/section.component.spec.ts +0 -21
  289. package/src/lib/components/section/section.component.ts +0 -32
  290. package/src/lib/components/shared-components/action-button-group/action-button-group.component.html +0 -27
  291. package/src/lib/components/shared-components/action-button-group/action-button-group.component.scss +0 -0
  292. package/src/lib/components/shared-components/action-button-group/action-button-group.component.spec.ts +0 -21
  293. package/src/lib/components/shared-components/action-button-group/action-button-group.component.ts +0 -114
  294. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.html +0 -11
  295. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.scss +0 -0
  296. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.spec.ts +0 -21
  297. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.ts +0 -71
  298. package/src/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.ts +0 -142
  299. package/src/lib/components/shared-components/dynamic-component/dynamic-component.component.ts +0 -56
  300. package/src/lib/components/shared-components/feature-list/directives/feature-list-column.directive.ts +0 -32
  301. package/src/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.ts +0 -8
  302. package/src/lib/components/shared-components/feature-list/feature-list-filter.pipe.ts +0 -21
  303. package/src/lib/components/shared-components/feature-list/feature-list-page.component.ts +0 -31
  304. package/src/lib/components/shared-components/feature-list/feature-list-page.model.ts +0 -42
  305. package/src/lib/components/shared-components/feature-list/feature-list.component.html +0 -59
  306. package/src/lib/components/shared-components/feature-list/feature-list.component.scss +0 -10
  307. package/src/lib/components/shared-components/feature-list/feature-list.component.ts +0 -342
  308. package/src/lib/components/shared-components/filter/directives/filter-field.directive.ts +0 -35
  309. package/src/lib/components/shared-components/filter/filter.component.html +0 -68
  310. package/src/lib/components/shared-components/filter/filter.component.scss +0 -0
  311. package/src/lib/components/shared-components/filter/filter.component.spec.ts +0 -21
  312. package/src/lib/components/shared-components/filter/filter.component.stories.ts +0 -23
  313. package/src/lib/components/shared-components/filter/filter.component.ts +0 -284
  314. package/src/lib/components/shared-components/filter/filter.model.ts +0 -18
  315. package/src/lib/components/shared-components/generic-field/generic-field.component.html +0 -97
  316. package/src/lib/components/shared-components/generic-field/generic-field.component.spec.ts +0 -21
  317. package/src/lib/components/shared-components/generic-field/generic-field.component.ts +0 -94
  318. package/src/lib/components/shared-components/generic-form/generic-form.component.html +0 -46
  319. package/src/lib/components/shared-components/generic-form/generic-form.component.spec.ts +0 -21
  320. package/src/lib/components/shared-components/generic-form/generic-form.component.ts +0 -57
  321. package/src/lib/components/shared-components/generic-form/generic-form.model.spec.ts +0 -82
  322. package/src/lib/components/shared-components/generic-form/generic-form.model.ts +0 -68
  323. package/src/lib/components/side-menu/side-menu.component.html +0 -52
  324. package/src/lib/components/side-menu/side-menu.component.scss +0 -0
  325. package/src/lib/components/side-menu/side-menu.component.spec.ts +0 -21
  326. package/src/lib/components/side-menu/side-menu.component.ts +0 -98
  327. package/src/lib/components/side-menu/side-menu.module.ts +0 -66
  328. package/src/lib/components/slider/slider.component.html +0 -19
  329. package/src/lib/components/slider/slider.component.spec.ts +0 -21
  330. package/src/lib/components/slider/slider.component.ts +0 -58
  331. package/src/lib/components/snackbar/services/snackbar.service.ts +0 -45
  332. package/src/lib/components/snackbar/snackbar.component.html +0 -3
  333. package/src/lib/components/snackbar/snackbar.component.scss +0 -0
  334. package/src/lib/components/snackbar/snackbar.component.spec.ts +0 -21
  335. package/src/lib/components/snackbar/snackbar.component.stories.ts +0 -70
  336. package/src/lib/components/snackbar/snackbar.component.ts +0 -26
  337. package/src/lib/components/stepper/stepper.component.html +0 -43
  338. package/src/lib/components/stepper/stepper.component.spec.ts +0 -21
  339. package/src/lib/components/stepper/stepper.component.ts +0 -40
  340. package/src/lib/components/switch/switch.component.html +0 -18
  341. package/src/lib/components/switch/switch.component.scss +0 -0
  342. package/src/lib/components/switch/switch.component.spec.ts +0 -21
  343. package/src/lib/components/switch/switch.component.stories.ts +0 -65
  344. package/src/lib/components/switch/switch.component.ts +0 -54
  345. package/src/lib/components/tab-view/tab-menu.pipe.ts +0 -23
  346. package/src/lib/components/tab-view/tab-view-item.component.ts +0 -22
  347. package/src/lib/components/tab-view/tab-view.component.html +0 -23
  348. package/src/lib/components/tab-view/tab-view.component.ts +0 -55
  349. package/src/lib/components/tab-view/tab-view.module.ts +0 -19
  350. package/src/lib/components/table/table-filter.pipe.ts +0 -59
  351. package/src/lib/components/table/table.component.html +0 -123
  352. package/src/lib/components/table/table.component.scss +0 -11
  353. package/src/lib/components/table/table.component.spec.ts +0 -21
  354. package/src/lib/components/table/table.component.stories.ts +0 -55
  355. package/src/lib/components/table/table.component.ts +0 -289
  356. package/src/lib/components/table/table.models.ts +0 -26
  357. package/src/lib/components/textarea/textarea.component.html +0 -40
  358. package/src/lib/components/textarea/textarea.component.scss +0 -5
  359. package/src/lib/components/textarea/textarea.component.spec.ts +0 -21
  360. package/src/lib/components/textarea/textarea.component.stories.ts +0 -98
  361. package/src/lib/components/textarea/textarea.component.ts +0 -64
  362. package/src/lib/components/textfield/textfield.component.html +0 -83
  363. package/src/lib/components/textfield/textfield.component.scss +0 -23
  364. package/src/lib/components/textfield/textfield.component.spec.ts +0 -21
  365. package/src/lib/components/textfield/textfield.component.stories.ts +0 -85
  366. package/src/lib/components/textfield/textfield.component.ts +0 -69
  367. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.html +0 -23
  368. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.scss +0 -0
  369. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.spec.ts +0 -21
  370. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.stories.ts +0 -22
  371. package/src/lib/components/tristatecheckbox/tristatecheckbox.component.ts +0 -50
  372. package/src/lib/icons.ts +0 -36
  373. package/src/lib/interceptors/http-error-message.interceptor.ts +0 -35
  374. package/src/lib/pages/not-found-page/not-found-page.component.html +0 -26
  375. package/src/lib/pages/not-found-page/not-found-page.component.scss +0 -0
  376. package/src/lib/pages/not-found-page/not-found-page.component.spec.ts +0 -21
  377. package/src/lib/pages/not-found-page/not-found-page.component.ts +0 -17
  378. package/src/tab-view.ts +0 -1
  379. package/src/test-setup.ts +0 -8
  380. package/tsconfig.json +0 -29
  381. package/tsconfig.lib.json +0 -18
  382. package/tsconfig.lib.prod.json +0 -9
  383. package/tsconfig.spec.json +0 -16
@@ -0,0 +1,2909 @@
1
+ import * as i2 from '@angular/common';
2
+ import { CommonModule, NgClass, AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Component, Optional, Self, Input, forwardRef, ChangeDetectionStrategy, Pipe, ViewEncapsulation, Injectable, Inject, EventEmitter, Output, ViewChild, NgModule, ChangeDetectorRef, ContentChildren, ContentChild, Directive, InjectionToken, SimpleChange, Injector, ViewContainerRef } from '@angular/core';
5
+ import * as i1 from '@angular/forms';
6
+ import { ReactiveFormsModule, UntypedFormGroup, UntypedFormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import * as i1$3 from '@verisoft/ui-core';
8
+ import { BaseFormInputComponent, WarningPipe, BaseInputControls, INPUT_GROUP_COMPONENT_TOKEN, SlotPosition, FieldSize, FieldType, TEXTFIELD_COMPONENT_TOKEN, BreadcrumbCoreComponent, BREADCRUMB_COMPONENT_TOKEN, CHECKBOX_COMPONENT_TOKEN, TRISTATE_CHECKBOX_COMPONENT_TOKEN, CALENDAR_COMPONENT_TOKEN, PASSWORD_COMPONENT_TOKEN, IconPosition, BUTTON_COMPONENT_TOKEN, SECTION_COMPONENT_TOKEN, RADIOBUTTON_COMPONENT_TOKEN, NUMBER_INPUT_COMPONENT_TOKEN, SETTINGS_MENU, UnsubscribeComponent, HEADER_COMPONENT_TOKEN, TEXTAREA_COMPONENT_TOKEN, LOADER_COMPONENT_TOKEN, SNACKBAR_COMPONENT_TOKEN, SideMenuService, ScreenSizeService, MENU_TOKEN, SideMenuProviderService, SIDE_MENU_COMPONENT_TOKEN, SIDE_MENU_STATE_TOKEN, ColumnModel, RowModel, TABLE_COMPONENT_TOKEN, TABLE_COLUMN_PROVIDER, ACTION_BUTTON_GROUP_COMPONENT_TOKEN, queryListChanged, DROPDOWN_COMPONENT_TOKEN, MULTISELECT_COMPONENT_TOKEN, GenericFieldType, GENERIC_FIELD_COMPONENT_TOKEN, DatasourceDirective, DEFAULT_DEBOUNCE_TIME, DialogService, isFilterEmpty, FILTER_COMPONENT_TOKEN, ButtonShortCutDirective, MAX_COLUMN_CHAR_COUNT, TableSelectionMode, downloadFile, TableDatasourceDirective, TableFilterDirective, TableColumnDirective, PageHeaderCoreComponent, PAGE_HEADER_COMPONENT_TOKEN, LayoutType, STEPPER_COMPONENT_TOKEN, SLIDER_COMPONENT_TOKEN, CONFIRM_DIALOG_COMPONENT_TOKEN, SWITCH_COMPONENT_TOKEN, TAB_VIEW_COMPONENT_TOKEN } from '@verisoft/ui-core';
9
+ import * as i4 from 'primeng/inputgroup';
10
+ import { InputGroupModule } from 'primeng/inputgroup';
11
+ import * as i3$1 from 'primeng/inputgroupaddon';
12
+ import { InputGroupAddonModule } from 'primeng/inputgroupaddon';
13
+ import * as i5 from 'primeng/inputtext';
14
+ import { InputTextModule } from 'primeng/inputtext';
15
+ import { ERROR_PROVIDER_TOKEN, DEFAULT_SEARCH_LIMIT, SortDirection, BASE_URL_PATH, BaseHttpService, convertDatasource, DEFAULT_PAGE_SIZE } from '@verisoft/core';
16
+ import * as i2$1 from 'primeng/message';
17
+ import { MessageModule } from 'primeng/message';
18
+ import * as i3 from 'primeng/tooltip';
19
+ import { TooltipModule } from 'primeng/tooltip';
20
+ import * as i4$1 from 'primeng/floatlabel';
21
+ import { FloatLabelModule } from 'primeng/floatlabel';
22
+ import * as i2$2 from 'primeng/breadcrumb';
23
+ import { BreadcrumbModule } from 'primeng/breadcrumb';
24
+ import * as i3$2 from 'primeng/checkbox';
25
+ import { CheckboxModule } from 'primeng/checkbox';
26
+ import * as i3$3 from 'primeng/tristatecheckbox';
27
+ import { TriStateCheckboxModule } from 'primeng/tristatecheckbox';
28
+ import * as i3$4 from 'primeng/calendar';
29
+ import { CalendarModule } from 'primeng/calendar';
30
+ import * as i2$3 from 'primeng/password';
31
+ import { PasswordModule } from 'primeng/password';
32
+ import * as i1$2 from '@angular/router';
33
+ import { RouterModule, Router, ActivatedRoute, RouterOutlet } from '@angular/router';
34
+ import * as i1$1 from 'primeng/button';
35
+ import { ButtonModule } from 'primeng/button';
36
+ import * as i6 from 'primeng/ripple';
37
+ import { RippleModule } from 'primeng/ripple';
38
+ import * as i3$5 from 'primeng/radiobutton';
39
+ import { RadioButtonModule } from 'primeng/radiobutton';
40
+ import * as i2$4 from 'primeng/inputnumber';
41
+ import { InputNumberModule } from 'primeng/inputnumber';
42
+ import * as i4$2 from 'primeng/avatar';
43
+ import { AvatarModule } from 'primeng/avatar';
44
+ import * as i3$6 from 'primeng/inputtextarea';
45
+ import { InputTextareaModule } from 'primeng/inputtextarea';
46
+ import * as i1$4 from 'primeng/progressspinner';
47
+ import { ProgressSpinnerModule } from 'primeng/progressspinner';
48
+ import * as i1$5 from 'primeng/api';
49
+ import * as i2$5 from 'primeng/toast';
50
+ import { ToastModule } from 'primeng/toast';
51
+ import * as i3$8 from '@ngx-translate/core';
52
+ import { TranslateModule } from '@ngx-translate/core';
53
+ import * as i1$6 from 'primeng/tree';
54
+ import { TreeModule } from 'primeng/tree';
55
+ import * as i2$6 from 'primeng/table';
56
+ import { TableModule } from 'primeng/table';
57
+ import * as i2$7 from 'primeng/menu';
58
+ import { MenuModule } from 'primeng/menu';
59
+ import { Subject, takeUntil, combineLatestWith, BehaviorSubject, startWith, map, debounceTime, distinctUntilChanged, take, switchMap, forkJoin, of, catchError, throwError } from 'rxjs';
60
+ import { BadgeModule } from 'primeng/badge';
61
+ import * as i3$7 from 'primeng/dropdown';
62
+ import { DropdownModule } from 'primeng/dropdown';
63
+ import * as i4$3 from 'primeng/multiselect';
64
+ import { MultiSelectModule } from 'primeng/multiselect';
65
+ import { HttpClient } from '@angular/common/http';
66
+ import * as i2$8 from 'primeng/stepper';
67
+ import { StepperModule } from 'primeng/stepper';
68
+ import * as i2$9 from 'primeng/slider';
69
+ import { SliderModule } from 'primeng/slider';
70
+ import * as i3$9 from 'primeng/dialog';
71
+ import { DialogModule } from 'primeng/dialog';
72
+ import * as i2$a from 'primeng/inputswitch';
73
+ import { InputSwitchModule } from 'primeng/inputswitch';
74
+ import { v4 } from 'uuid';
75
+ import * as i2$b from 'primeng/tabmenu';
76
+ import { TabMenuModule } from 'primeng/tabmenu';
77
+ import * as i3$a from 'primeng/tabview';
78
+ import { TabViewModule as TabViewModule$1 } from 'primeng/tabview';
79
+
80
+ const Icons = {
81
+ add: 'pi pi-plus',
82
+ minus: 'pi pi-minus',
83
+ delete: 'pi pi-trash',
84
+ filter: 'pi pi-filter',
85
+ download: 'pi pi-download',
86
+ save: 'pi pi-save',
87
+ print: 'pi pi-print',
88
+ calendar: 'pi pi-calendar',
89
+ edit: 'pi pi-pencil',
90
+ settings: 'pi pi-cog',
91
+ house: 'pi pi-home',
92
+ chevronRight: 'pi pi-chevron-right',
93
+ chevronLeft: 'pi pi-chevron-left',
94
+ chevronDown: 'pi pi-chevron-down',
95
+ chevronUp: 'pi pi-chevron-up',
96
+ checkbox: 'pi pi-check',
97
+ warning: 'pi pi-exclamation-triangle',
98
+ search: 'pi pi-search',
99
+ action: 'pi pi-bars',
100
+ user: 'pi pi-user',
101
+ logout: 'pi pi-user',
102
+ crossCircle: 'pi pi-times-circle',
103
+ infoCircle: 'pi pi-info-circle',
104
+ cross: 'pi pi-times',
105
+ arrowLeft: 'pi pi-arrow-left',
106
+ arrowRight: 'pi pi-arrow-right',
107
+ questionCircle: 'pi pi-question-circle',
108
+ checkCircle: 'pi pi-check-circle',
109
+ sitemap: 'pi pi-sitemap',
110
+ check: 'pi pi-check',
111
+ envelope: 'pi pi-envelope',
112
+ loader: 'pi pi-loader',
113
+ };
114
+
115
+ class FormFieldComponent extends BaseFormInputComponent {
116
+ constructor(ngControl) {
117
+ super(ngControl);
118
+ this.display = 'block';
119
+ this.errorProvider = inject(ERROR_PROVIDER_TOKEN);
120
+ this.icons = Icons;
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormFieldComponent, isStandalone: true, selector: "v-form-field", inputs: { display: "display", variant: "variant" }, usesInheritance: true, ngImport: i0, template: "<div class=\"v-form-field mt-3\" [attr.data-testId]=\"testId\">\n <div [ngClass]=\"{ 'd-block d-md-flex': display === 'flex', 'd-lg-flex': display === 'block' }\">\n <div class=\"col-12 col-md-4 d-flex align-items-center\">\n <label\n class=\"v-formfield-label d-flex align-items-center\"\n [ngClass]=\"{\n 'pb-2': display === 'block',\n 'text-error': (errorProvider.mapError(ngControl?.errors ?? [])) && ngControl?.dirty, \n 'text-warning': (ngControl?.errors | warning) && ngControl?.dirty,\n 'text-default': !ngControl?.invalid && !ngControl?.dirty,\n 'text-secondary': !ngControl?.invalid && ngControl?.dirty\n }\"\n >{{ label }}<span *ngIf=\"label\">:</span>\n <span *ngIf=\"required\" class=\"text-error ps-1\">*</span>\n </label>\n <i *ngIf=\"tooltip\"\n [pTooltip]=\"tooltip\"\n class=\"ps-2 text-default v-tooltip {{ icons.infoCircle }}\"\n ></i>\n </div>\n <div \n class=\"col-sm-12 col-md-8 col-lg-8\"\n >\n <div \n class=\"v-form-field-content align-items-center w-100\"\n [ngClass]=\"{ 'd-flex': display === 'flex', 'd-block': display === 'block', 'input-warning': ngControl?.errors | warning }\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"align-content-center\">\n <ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: WarningPipe, name: "warning" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MessageModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormFieldComponent, decorators: [{
126
+ type: Component,
127
+ args: [{ selector: 'v-form-field', standalone: true, imports: [
128
+ CommonModule,
129
+ WarningPipe,
130
+ ReactiveFormsModule,
131
+ MessageModule,
132
+ TooltipModule,
133
+ ], template: "<div class=\"v-form-field mt-3\" [attr.data-testId]=\"testId\">\n <div [ngClass]=\"{ 'd-block d-md-flex': display === 'flex', 'd-lg-flex': display === 'block' }\">\n <div class=\"col-12 col-md-4 d-flex align-items-center\">\n <label\n class=\"v-formfield-label d-flex align-items-center\"\n [ngClass]=\"{\n 'pb-2': display === 'block',\n 'text-error': (errorProvider.mapError(ngControl?.errors ?? [])) && ngControl?.dirty, \n 'text-warning': (ngControl?.errors | warning) && ngControl?.dirty,\n 'text-default': !ngControl?.invalid && !ngControl?.dirty,\n 'text-secondary': !ngControl?.invalid && ngControl?.dirty\n }\"\n >{{ label }}<span *ngIf=\"label\">:</span>\n <span *ngIf=\"required\" class=\"text-error ps-1\">*</span>\n </label>\n <i *ngIf=\"tooltip\"\n [pTooltip]=\"tooltip\"\n class=\"ps-2 text-default v-tooltip {{ icons.infoCircle }}\"\n ></i>\n </div>\n <div \n class=\"col-sm-12 col-md-8 col-lg-8\"\n >\n <div \n class=\"v-form-field-content align-items-center w-100\"\n [ngClass]=\"{ 'd-flex': display === 'flex', 'd-block': display === 'block', 'input-warning': ngControl?.errors | warning }\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"align-content-center\">\n <ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
134
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
135
+ type: Optional
136
+ }, {
137
+ type: Self
138
+ }] }], propDecorators: { display: [{
139
+ type: Input
140
+ }], variant: [{
141
+ type: Input
142
+ }] } });
143
+
144
+ class InputGroupComponent extends BaseFormInputComponent {
145
+ constructor(ngControl) {
146
+ super(ngControl);
147
+ }
148
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputGroupComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
149
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputGroupComponent, isStandalone: true, selector: "v-input-group", inputs: { items: "items" }, providers: [
150
+ {
151
+ provide: BaseInputControls,
152
+ useExisting: forwardRef(() => InputGroupComponent),
153
+ },
154
+ {
155
+ provide: INPUT_GROUP_COMPONENT_TOKEN,
156
+ useExisting: InputGroupComponent,
157
+ },
158
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-input-group w-100\">\n <v-form-field\n [label]=\"label\"\n [required]=\"required\"\n [tooltip]=\"tooltip\" >\n <p-inputGroup>\n <ng-container *ngFor=\"let item of items\">\n <p-inputGroupAddon *ngIf=\"item.position === 'left'\">\n <ng-container *ngIf=\"item.icon\">\n <i [class]=\"item.icon\"></i>\n </ng-container>\n <ng-container *ngIf=\"item.text\">\n {{ item.text }}\n </ng-container>\n </p-inputGroupAddon>\n </ng-container>\n <input pInputText [formControl]=\"formControl\" class=\"w-100\" />\n <ng-container *ngFor=\"let item of items\">\n <p-inputGroupAddon *ngIf=\"item.position === 'right'\">\n <ng-container *ngIf=\"item.icon\">\n <i [class]=\"item.icon\"></i>\n </ng-container>\n <ng-container *ngIf=\"item.text\">\n {{ item.text }}\n </ng-container>\n </p-inputGroupAddon>\n </ng-container>\n </p-inputGroup>\n </v-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: i3$1.InputGroupAddon, selector: "p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i4.InputGroup, selector: "p-inputGroup", inputs: ["style", "styleClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputGroupComponent, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'v-input-group', standalone: true, imports: [
163
+ CommonModule,
164
+ InputGroupAddonModule,
165
+ InputGroupModule,
166
+ InputTextModule,
167
+ ReactiveFormsModule,
168
+ FormFieldComponent,
169
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
170
+ {
171
+ provide: BaseInputControls,
172
+ useExisting: forwardRef(() => InputGroupComponent),
173
+ },
174
+ {
175
+ provide: INPUT_GROUP_COMPONENT_TOKEN,
176
+ useExisting: InputGroupComponent,
177
+ },
178
+ ], template: "<div class=\"v-input-group w-100\">\n <v-form-field\n [label]=\"label\"\n [required]=\"required\"\n [tooltip]=\"tooltip\" >\n <p-inputGroup>\n <ng-container *ngFor=\"let item of items\">\n <p-inputGroupAddon *ngIf=\"item.position === 'left'\">\n <ng-container *ngIf=\"item.icon\">\n <i [class]=\"item.icon\"></i>\n </ng-container>\n <ng-container *ngIf=\"item.text\">\n {{ item.text }}\n </ng-container>\n </p-inputGroupAddon>\n </ng-container>\n <input pInputText [formControl]=\"formControl\" class=\"w-100\" />\n <ng-container *ngFor=\"let item of items\">\n <p-inputGroupAddon *ngIf=\"item.position === 'right'\">\n <ng-container *ngIf=\"item.icon\">\n <i [class]=\"item.icon\"></i>\n </ng-container>\n <ng-container *ngIf=\"item.text\">\n {{ item.text }}\n </ng-container>\n </p-inputGroupAddon>\n </ng-container>\n </p-inputGroup>\n </v-form-field>\n</div>\n" }]
179
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
180
+ type: Optional
181
+ }, {
182
+ type: Self
183
+ }] }], propDecorators: { items: [{
184
+ type: Input
185
+ }] } });
186
+
187
+ class ErrorComponent {
188
+ constructor() {
189
+ this.errorSlot = SlotPosition.bottom;
190
+ this.messageSlot = SlotPosition.bottom;
191
+ this.variant = 'simple';
192
+ this.severity = 'error';
193
+ this.errorService = inject(ERROR_PROVIDER_TOKEN);
194
+ this.icons = Icons;
195
+ }
196
+ getErrorMessage(errors) {
197
+ return this.errorService.mapError(errors);
198
+ }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
200
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ErrorComponent, isStandalone: true, selector: "v-validation-message", inputs: { ngControl: "ngControl", errorSlot: "errorSlot", messageSlot: "messageSlot", variant: "variant", severity: "severity" }, ngImport: i0, template: "\n<p-message\n *ngIf=\"ngControl && ngControl.errors\" \n [severity]=\"severity\"\n text=\"{{ getErrorMessage(ngControl.errors) | async }}\">\n</p-message>\n", styles: [".p-message-content{color:#e60017}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: i2$1.UIMessage, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass"] }] }); }
201
+ }
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ErrorComponent, decorators: [{
203
+ type: Component,
204
+ args: [{ selector: "v-validation-message", standalone: true, imports: [CommonModule, MessageModule], template: "\n<p-message\n *ngIf=\"ngControl && ngControl.errors\" \n [severity]=\"severity\"\n text=\"{{ getErrorMessage(ngControl.errors) | async }}\">\n</p-message>\n", styles: [".p-message-content{color:#e60017}\n"] }]
205
+ }], propDecorators: { ngControl: [{
206
+ type: Input,
207
+ args: [{ required: true }]
208
+ }], errorSlot: [{
209
+ type: Input
210
+ }], messageSlot: [{
211
+ type: Input
212
+ }], variant: [{
213
+ type: Input
214
+ }], severity: [{
215
+ type: Input
216
+ }] } });
217
+
218
+ class TextfieldComponent extends BaseFormInputComponent {
219
+ constructor(ngControl) {
220
+ super(ngControl);
221
+ this.icons = Icons;
222
+ this.size = FieldSize.medium;
223
+ this.type = FieldType.text;
224
+ this.floatLabel = false;
225
+ }
226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextfieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TextfieldComponent, isStandalone: true, selector: "v-textfield", inputs: { size: "size", type: "type", floatLabel: "floatLabel" }, providers: [
228
+ {
229
+ provide: BaseInputControls,
230
+ useExisting: forwardRef(() => TextfieldComponent),
231
+ },
232
+ {
233
+ provide: TEXTFIELD_COMPONENT_TOKEN,
234
+ useExisting: TextfieldComponent,
235
+ },
236
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-text-field\">\n <ng-container *ngIf=\"!floatLabel && label; else floatLabelInput\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <span\n class=\"w-100 flex-grow-1\"\n [ngClass]=\"{ 'p-input-icon-right': type === 'search' }\"\n >\n <input\n pInputText\n [id]=\"inputId\"\n [formControl]=\"formControl\"\n [type]=\"type === 'search' ? 'text' : type\"\n class=\"w-100 flex-grow-1 v-text-field\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [title]=\"label\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [ngClass]=\"{\n 'p-inputtext-sm': size === 'small',\n 'p-inputtext-lg': size === 'large'\n }\"\n />\n <ng-container *ngIf=\"type === 'search'\">\n <i\n class=\"pi ms-2 v-text-field__icon\"\n [ngStyle]=\"{\n cursor: ngControl && ngControl.value ? 'pointer' : 'default'\n }\"\n [ngClass]=\"{\n 'pi-search': ngControl && !ngControl.value,\n 'pi-times': ngControl && ngControl.value,\n }\"\n (click)=\"ngControl && ngControl.value ? ngControl.reset() : null\"\n ></i>\n </ng-container>\n </span>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-template #floatLabelInput>\n <span\n class=\"w-100 flex-grow-1\"\n [ngClass]=\"{ 'p-input-icon-right': type === 'search' }\"\n >\n <p-floatLabel>\n <input\n pInputText\n type=\"text\"\n [id]=\"inputId\"\n class=\"w-100 flex-grow-1\"\n [required]=\"isRequired()\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [ngClass]=\"{\n 'p-inputtext-sm': size === 'small',\n 'p-inputtext-lg': size === 'large'\n }\"\n />\n <label [for]=\"inputId\" class=\"v-text-field__label\">{{ label }}</label>\n </p-floatLabel>\n <ng-container *ngIf=\"type === 'search'\">\n <i\n class=\"pi ms-2 v-text-field__icon\"\n [ngStyle]=\"{\n cursor: ngControl && ngControl.value ? 'pointer' : 'default'\n }\"\n [ngClass]=\"{\n 'pi-search': ngControl && !ngControl.value,\n 'pi-times': ngControl && ngControl.value,\n }\"\n (click)=\"ngControl && ngControl.value ? ngControl.reset() : null\"\n ></i>\n </ng-container>\n </span>\n </ng-template>\n</div>\n", styles: [".p-inputtext:focus .ng-invalid.ng-dirty{border-color:var(--error-color)}.p-inputtext.ng-dirty.ng-invalid{border-color:var(--error-color)}.verisoft-text-field{justify-content:center;width:100%}.p-input-icon-right i.pi-times:hover{cursor:pointer}.p-inputtext.p-inputtext-lg{font-size:1rem;padding:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i4$1.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
237
+ }
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextfieldComponent, decorators: [{
239
+ type: Component,
240
+ args: [{ selector: 'v-textfield', standalone: true, imports: [
241
+ CommonModule,
242
+ InputTextModule,
243
+ ReactiveFormsModule,
244
+ FormFieldComponent,
245
+ FloatLabelModule,
246
+ ErrorComponent
247
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
248
+ {
249
+ provide: BaseInputControls,
250
+ useExisting: forwardRef(() => TextfieldComponent),
251
+ },
252
+ {
253
+ provide: TEXTFIELD_COMPONENT_TOKEN,
254
+ useExisting: TextfieldComponent,
255
+ },
256
+ ], template: "<div class=\"v-text-field\">\n <ng-container *ngIf=\"!floatLabel && label; else floatLabelInput\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <span\n class=\"w-100 flex-grow-1\"\n [ngClass]=\"{ 'p-input-icon-right': type === 'search' }\"\n >\n <input\n pInputText\n [id]=\"inputId\"\n [formControl]=\"formControl\"\n [type]=\"type === 'search' ? 'text' : type\"\n class=\"w-100 flex-grow-1 v-text-field\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [title]=\"label\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [ngClass]=\"{\n 'p-inputtext-sm': size === 'small',\n 'p-inputtext-lg': size === 'large'\n }\"\n />\n <ng-container *ngIf=\"type === 'search'\">\n <i\n class=\"pi ms-2 v-text-field__icon\"\n [ngStyle]=\"{\n cursor: ngControl && ngControl.value ? 'pointer' : 'default'\n }\"\n [ngClass]=\"{\n 'pi-search': ngControl && !ngControl.value,\n 'pi-times': ngControl && ngControl.value,\n }\"\n (click)=\"ngControl && ngControl.value ? ngControl.reset() : null\"\n ></i>\n </ng-container>\n </span>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-template #floatLabelInput>\n <span\n class=\"w-100 flex-grow-1\"\n [ngClass]=\"{ 'p-input-icon-right': type === 'search' }\"\n >\n <p-floatLabel>\n <input\n pInputText\n type=\"text\"\n [id]=\"inputId\"\n class=\"w-100 flex-grow-1\"\n [required]=\"isRequired()\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [ngClass]=\"{\n 'p-inputtext-sm': size === 'small',\n 'p-inputtext-lg': size === 'large'\n }\"\n />\n <label [for]=\"inputId\" class=\"v-text-field__label\">{{ label }}</label>\n </p-floatLabel>\n <ng-container *ngIf=\"type === 'search'\">\n <i\n class=\"pi ms-2 v-text-field__icon\"\n [ngStyle]=\"{\n cursor: ngControl && ngControl.value ? 'pointer' : 'default'\n }\"\n [ngClass]=\"{\n 'pi-search': ngControl && !ngControl.value,\n 'pi-times': ngControl && ngControl.value,\n }\"\n (click)=\"ngControl && ngControl.value ? ngControl.reset() : null\"\n ></i>\n </ng-container>\n </span>\n </ng-template>\n</div>\n", styles: [".p-inputtext:focus .ng-invalid.ng-dirty{border-color:var(--error-color)}.p-inputtext.ng-dirty.ng-invalid{border-color:var(--error-color)}.verisoft-text-field{justify-content:center;width:100%}.p-input-icon-right i.pi-times:hover{cursor:pointer}.p-inputtext.p-inputtext-lg{font-size:1rem;padding:.75rem}\n"] }]
257
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
258
+ type: Optional
259
+ }, {
260
+ type: Self
261
+ }] }], propDecorators: { size: [{
262
+ type: Input
263
+ }], type: [{
264
+ type: Input
265
+ }], floatLabel: [{
266
+ type: Input
267
+ }] } });
268
+
269
+ class ConvertMenuItemPipe {
270
+ transform(items) {
271
+ return items.map(i => i);
272
+ }
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConvertMenuItemPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
274
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: ConvertMenuItemPipe, isStandalone: true, name: "menuItem" }); }
275
+ }
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConvertMenuItemPipe, decorators: [{
277
+ type: Pipe,
278
+ args: [{
279
+ name: 'menuItem',
280
+ standalone: true,
281
+ }]
282
+ }] });
283
+
284
+ class BreadcrumbComponent extends BreadcrumbCoreComponent {
285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BreadcrumbComponent, isStandalone: true, selector: "v-breadcrumb", providers: [
287
+ {
288
+ provide: BREADCRUMB_COMPONENT_TOKEN,
289
+ useExisting: BreadcrumbComponent
290
+ },
291
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-breadcrumb card flex justify-content-center\">\n <ng-container *ngIf=\"useHomeRoute; else default\">\n <p-breadcrumb\n class=\"max-w-full\"\n [model]=\"items | menuItem\"\n [home]=\"home\"\n ></p-breadcrumb>\n </ng-container>\n <ng-template #default>\n <p-breadcrumb class=\"max-w-full\" [model]=\"items | menuItem\"></p-breadcrumb>\n </ng-template>\n</div>\n", styles: ["p-breadcrumb>nav{border:none}p-breadcrumb>nav>ol{align-items:stretch;font-weight:600;font-size:1rem}p-breadcrumb>nav a[aria-current=page]>span{color:var(--primary-color)!important}.p-menuitem-link{gap:.5rem;text-align:center}.p-menuitem-text{align-self:baseline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BreadcrumbModule }, { kind: "component", type: i2$2.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "pipe", type: ConvertMenuItemPipe, name: "menuItem" }] }); }
292
+ }
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BreadcrumbComponent, decorators: [{
294
+ type: Component,
295
+ args: [{ selector: 'v-breadcrumb', standalone: true, imports: [
296
+ CommonModule,
297
+ BreadcrumbModule,
298
+ ConvertMenuItemPipe,
299
+ ], providers: [
300
+ {
301
+ provide: BREADCRUMB_COMPONENT_TOKEN,
302
+ useExisting: BreadcrumbComponent
303
+ },
304
+ ], template: "<div class=\"v-breadcrumb card flex justify-content-center\">\n <ng-container *ngIf=\"useHomeRoute; else default\">\n <p-breadcrumb\n class=\"max-w-full\"\n [model]=\"items | menuItem\"\n [home]=\"home\"\n ></p-breadcrumb>\n </ng-container>\n <ng-template #default>\n <p-breadcrumb class=\"max-w-full\" [model]=\"items | menuItem\"></p-breadcrumb>\n </ng-template>\n</div>\n", styles: ["p-breadcrumb>nav{border:none}p-breadcrumb>nav>ol{align-items:stretch;font-weight:600;font-size:1rem}p-breadcrumb>nav a[aria-current=page]>span{color:var(--primary-color)!important}.p-menuitem-link{gap:.5rem;text-align:center}.p-menuitem-text{align-self:baseline}\n"] }]
305
+ }] });
306
+
307
+ class CheckboxComponent extends BaseFormInputComponent {
308
+ constructor(ngControl) {
309
+ super(ngControl);
310
+ this.icon = Icons;
311
+ }
312
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CheckboxComponent, isStandalone: true, selector: "v-checkbox", providers: [
314
+ {
315
+ provide: BaseInputControls,
316
+ useExisting: CheckboxComponent,
317
+ },
318
+ {
319
+ provide: CHECKBOX_COMPONENT_TOKEN,
320
+ useExisting: CheckboxComponent,
321
+ },
322
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-checkbox d-flex align-items-center mt-2\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-checkbox\n [ngClass]=\"{ 'checkbox-error': ngControl?.invalid && ngControl?.dirty && ngControl?.value === false }\"\n [formControl]=\"formControl\"\n [required]=\"required\"\n [binary]=\"true\"\n [readonly]=\"readonly\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", styles: ["p-echeckbox.ng-dirty.ng-invalid .p-checkbox>.p-checkbox-box{border-color:var(--error-color)}p-echeckbox.ng-dirty.ng-invalid .p-checkbox-label{color:var(--error-color)}.checkbox-error .p-checkbox-box.p-highlight{background:var(--error-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3$2.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
+ }
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckboxComponent, decorators: [{
325
+ type: Component,
326
+ args: [{ selector: 'v-checkbox', standalone: true, imports: [CommonModule, CheckboxModule, ReactiveFormsModule, FormFieldComponent, ErrorComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
327
+ {
328
+ provide: BaseInputControls,
329
+ useExisting: CheckboxComponent,
330
+ },
331
+ {
332
+ provide: CHECKBOX_COMPONENT_TOKEN,
333
+ useExisting: CheckboxComponent,
334
+ },
335
+ ], template: "<div class=\"v-checkbox d-flex align-items-center mt-2\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-checkbox\n [ngClass]=\"{ 'checkbox-error': ngControl?.invalid && ngControl?.dirty && ngControl?.value === false }\"\n [formControl]=\"formControl\"\n [required]=\"required\"\n [binary]=\"true\"\n [readonly]=\"readonly\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", styles: ["p-echeckbox.ng-dirty.ng-invalid .p-checkbox>.p-checkbox-box{border-color:var(--error-color)}p-echeckbox.ng-dirty.ng-invalid .p-checkbox-label{color:var(--error-color)}.checkbox-error .p-checkbox-box.p-highlight{background:var(--error-color)}\n"] }]
336
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
337
+ type: Optional
338
+ }, {
339
+ type: Self
340
+ }] }] });
341
+
342
+ class TristatecheckboxComponent extends BaseFormInputComponent {
343
+ constructor(ngControl) {
344
+ super(ngControl);
345
+ this.icons = Icons;
346
+ }
347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TristatecheckboxComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
348
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TristatecheckboxComponent, isStandalone: true, selector: "v-tristatecheckbox", providers: [
349
+ {
350
+ provide: BaseInputControls,
351
+ useExisting: TristatecheckboxComponent,
352
+ },
353
+ {
354
+ provide: TRISTATE_CHECKBOX_COMPONENT_TOKEN,
355
+ useExisting: TristatecheckboxComponent,
356
+ },
357
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-tristatecheckbox d-flex align-items-center mt-2\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-triStateCheckbox\n [ngClass]=\"{\n 'tristate-error':\n ngControl?.invalid && ngControl?.dirty && ngControl?.value === false\n }\"\n [formControl]=\"formControl\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [inputId]=\"testId\"\n [checkboxFalseIcon]=\"icons.minus\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TriStateCheckboxModule }, { kind: "component", type: i3$3.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabel", "ariaLabelledBy", "variant", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }] }); }
358
+ }
359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TristatecheckboxComponent, decorators: [{
360
+ type: Component,
361
+ args: [{ selector: 'v-tristatecheckbox', standalone: true, imports: [
362
+ CommonModule,
363
+ TriStateCheckboxModule,
364
+ ReactiveFormsModule,
365
+ FormFieldComponent,
366
+ ErrorComponent
367
+ ], providers: [
368
+ {
369
+ provide: BaseInputControls,
370
+ useExisting: TristatecheckboxComponent,
371
+ },
372
+ {
373
+ provide: TRISTATE_CHECKBOX_COMPONENT_TOKEN,
374
+ useExisting: TristatecheckboxComponent,
375
+ },
376
+ ], template: "<div class=\"v-tristatecheckbox d-flex align-items-center mt-2\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-triStateCheckbox\n [ngClass]=\"{\n 'tristate-error':\n ngControl?.invalid && ngControl?.dirty && ngControl?.value === false\n }\"\n [formControl]=\"formControl\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [inputId]=\"testId\"\n [checkboxFalseIcon]=\"icons.minus\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n" }]
377
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
378
+ type: Optional
379
+ }, {
380
+ type: Self
381
+ }] }] });
382
+
383
+ class CalendarComponent extends BaseFormInputComponent {
384
+ constructor(ngControl) {
385
+ super(ngControl);
386
+ this.icon = Icons.calendar;
387
+ this.selectionMode = 'single';
388
+ this.icons = Icons;
389
+ this.formDisplay = "block";
390
+ }
391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
392
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CalendarComponent, isStandalone: true, selector: "v-calendar", inputs: { maxDate: "maxDate", icon: "icon", minDate: "minDate", header: "header", footer: "footer", floatLabel: "floatLabel", selectionMode: "selectionMode" }, providers: [
393
+ {
394
+ provide: BaseInputControls,
395
+ useExisting: forwardRef(() => CalendarComponent),
396
+ },
397
+ {
398
+ provide: CALENDAR_COMPONENT_TOKEN,
399
+ useExisting: CalendarComponent,
400
+ },
401
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-calendar w-100\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [display]=\"formDisplay\"\n >\n <p-calendar\n appendTo=\"body\"\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [showClear]=\"clearable\"\n [dataType]=\"'string'\"\n [selectionMode]=\"selectionMode\"\n [icon]=\"icon\"\n [maxDate]=\"maxDate\"\n [id]=\"inputId\"\n [showButtonBar]=\"true\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [minDate]=\"minDate\"\n [showIcon]=\"formControl && !formControl.value\"\n iconDisplay=\"input\"\n />\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <p-calendar\n appendTo=\"body\"\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [showClear]=\"clearable\"\n [maxDate]=\"maxDate\"\n [id]=\"inputId\"\n [icon]=\"icon\"\n [selectionMode]=\"selectionMode\"\n [showButtonBar]=\"true\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [minDate]=\"minDate\"\n iconDisplay=\"input\"\n />\n <label [for]=\"inputId\" [innerHTML]=\"floatLabel\"></label>\n </p-floatLabel>\n </ng-container>\n</div>\n\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i3$4.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i4$1.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
402
+ }
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CalendarComponent, decorators: [{
404
+ type: Component,
405
+ args: [{ selector: 'v-calendar', standalone: true, imports: [
406
+ CommonModule,
407
+ ReactiveFormsModule,
408
+ CalendarModule,
409
+ FormFieldComponent,
410
+ FloatLabelModule,
411
+ ErrorComponent,
412
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
413
+ {
414
+ provide: BaseInputControls,
415
+ useExisting: forwardRef(() => CalendarComponent),
416
+ },
417
+ {
418
+ provide: CALENDAR_COMPONENT_TOKEN,
419
+ useExisting: CalendarComponent,
420
+ },
421
+ ], template: "<div class=\"v-calendar w-100\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [display]=\"formDisplay\"\n >\n <p-calendar\n appendTo=\"body\"\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [showClear]=\"clearable\"\n [dataType]=\"'string'\"\n [selectionMode]=\"selectionMode\"\n [icon]=\"icon\"\n [maxDate]=\"maxDate\"\n [id]=\"inputId\"\n [showButtonBar]=\"true\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [minDate]=\"minDate\"\n [showIcon]=\"formControl && !formControl.value\"\n iconDisplay=\"input\"\n />\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <p-calendar\n appendTo=\"body\"\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [showClear]=\"clearable\"\n [maxDate]=\"maxDate\"\n [id]=\"inputId\"\n [icon]=\"icon\"\n [selectionMode]=\"selectionMode\"\n [showButtonBar]=\"true\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [minDate]=\"minDate\"\n iconDisplay=\"input\"\n />\n <label [for]=\"inputId\" [innerHTML]=\"floatLabel\"></label>\n </p-floatLabel>\n </ng-container>\n</div>\n\n" }]
422
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
423
+ type: Optional
424
+ }, {
425
+ type: Self
426
+ }] }], propDecorators: { maxDate: [{
427
+ type: Input
428
+ }], icon: [{
429
+ type: Input
430
+ }], minDate: [{
431
+ type: Input
432
+ }], header: [{
433
+ type: Input
434
+ }], footer: [{
435
+ type: Input
436
+ }], floatLabel: [{
437
+ type: Input
438
+ }], selectionMode: [{
439
+ type: Input
440
+ }] } });
441
+
442
+ class PasswordComponent extends BaseFormInputComponent {
443
+ constructor(ngControl) {
444
+ super(ngControl);
445
+ this.toggleMask = true;
446
+ this.feedback = false;
447
+ this.formDisplay = "block";
448
+ }
449
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PasswordComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
450
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: PasswordComponent, isStandalone: true, selector: "v-password", inputs: { toggleMask: "toggleMask", feedback: "feedback" }, providers: [
451
+ {
452
+ provide: BaseInputControls,
453
+ useExisting: PasswordComponent,
454
+ },
455
+ {
456
+ provide: PASSWORD_COMPONENT_TOKEN,
457
+ useExisting: PasswordComponent,
458
+ },
459
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-password d-flex align-items-center\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-password\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [showClear]=\"clearable\"\n [feedback]=\"feedback\"\n [required]=\"isRequired()\"\n [label]=\"label\"\n [id]=\"inputId\"\n [toggleMask]=\"toggleMask\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PasswordModule }, { kind: "component", type: i2$3.Password, selector: "p-password", inputs: ["ariaLabel", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
460
+ }
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PasswordComponent, decorators: [{
462
+ type: Component,
463
+ args: [{ selector: 'v-password', standalone: true, imports: [
464
+ CommonModule,
465
+ ReactiveFormsModule,
466
+ PasswordModule,
467
+ FloatLabelModule,
468
+ FormFieldComponent,
469
+ ErrorComponent
470
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
471
+ {
472
+ provide: BaseInputControls,
473
+ useExisting: PasswordComponent,
474
+ },
475
+ {
476
+ provide: PASSWORD_COMPONENT_TOKEN,
477
+ useExisting: PasswordComponent,
478
+ },
479
+ ], template: "<div class=\"v-password d-flex align-items-center\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-password\n [style]=\"{'width':'100%'}\"\n [inputStyle]=\"{'width':'100%'}\" \n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [showClear]=\"clearable\"\n [feedback]=\"feedback\"\n [required]=\"isRequired()\"\n [label]=\"label\"\n [id]=\"inputId\"\n [toggleMask]=\"toggleMask\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n" }]
480
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
481
+ type: Optional
482
+ }, {
483
+ type: Self
484
+ }] }], propDecorators: { toggleMask: [{
485
+ type: Input
486
+ }], feedback: [{
487
+ type: Input
488
+ }] } });
489
+
490
+ class ButtonComponent {
491
+ constructor() {
492
+ this.iconPos = IconPosition.right;
493
+ }
494
+ fireClick(event) {
495
+ if (this.disabled) {
496
+ event.stopPropagation();
497
+ event.stopImmediatePropagation();
498
+ }
499
+ }
500
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
501
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ButtonComponent, isStandalone: true, selector: "v-button", inputs: { label: "label", icon: "icon", badge: "badge", iconPos: "iconPos", disabled: "disabled", rounded: "rounded", outlined: "outlined", raised: "raised", severity: "severity", routerLink: "routerLink", size: "size", queryParams: "queryParams" }, providers: [
502
+ {
503
+ provide: BUTTON_COMPONENT_TOKEN,
504
+ useExisting: ButtonComponent,
505
+ },
506
+ ], ngImport: i0, template: "<div class=\"v-button d-inline-block\" \n(click)=\"fireClick($event)\">\n <a\n [routerLink]=\"routerLink ? routerLink : undefined\"\n [queryParams]=\"queryParams ? queryParams : undefined\"\n >\n <p-button\n [disabled]=\"disabled\"\n [icon]=\"icon\"\n [badge]=\"badge\"\n [outlined]=\"outlined\"\n [rounded]=\"rounded\"\n [raised]=\"raised\"\n [label]=\"label\"\n [size]=\"$any(size)\"\n [severity]=\"severity\"\n [iconPos]=\"iconPos\"\n />\n </a>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RippleModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
507
+ }
508
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ButtonComponent, decorators: [{
509
+ type: Component,
510
+ args: [{ selector: 'v-button', standalone: true, imports: [CommonModule, ButtonModule, RippleModule, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
511
+ {
512
+ provide: BUTTON_COMPONENT_TOKEN,
513
+ useExisting: ButtonComponent,
514
+ },
515
+ ], template: "<div class=\"v-button d-inline-block\" \n(click)=\"fireClick($event)\">\n <a\n [routerLink]=\"routerLink ? routerLink : undefined\"\n [queryParams]=\"queryParams ? queryParams : undefined\"\n >\n <p-button\n [disabled]=\"disabled\"\n [icon]=\"icon\"\n [badge]=\"badge\"\n [outlined]=\"outlined\"\n [rounded]=\"rounded\"\n [raised]=\"raised\"\n [label]=\"label\"\n [size]=\"$any(size)\"\n [severity]=\"severity\"\n [iconPos]=\"iconPos\"\n />\n </a>\n</div>\n" }]
516
+ }], propDecorators: { label: [{
517
+ type: Input
518
+ }], icon: [{
519
+ type: Input
520
+ }], badge: [{
521
+ type: Input
522
+ }], iconPos: [{
523
+ type: Input
524
+ }], disabled: [{
525
+ type: Input
526
+ }], rounded: [{
527
+ type: Input
528
+ }], outlined: [{
529
+ type: Input
530
+ }], raised: [{
531
+ type: Input
532
+ }], severity: [{
533
+ type: Input
534
+ }], routerLink: [{
535
+ type: Input
536
+ }], size: [{
537
+ type: Input
538
+ }], queryParams: [{
539
+ type: Input
540
+ }] } });
541
+
542
+ class SectionComponent {
543
+ constructor() {
544
+ this.showContent = true;
545
+ this.icons = Icons;
546
+ this.icon = Icons.chevronDown;
547
+ }
548
+ toggle() {
549
+ this.showContent = !this.showContent;
550
+ this.icon = this.showContent ? Icons.chevronDown : Icons.chevronUp;
551
+ }
552
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
553
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SectionComponent, isStandalone: true, selector: "v-section", inputs: { title: "title", showContent: "showContent", backgroundColor: "backgroundColor" }, providers: [
554
+ { provide: SECTION_COMPONENT_TOKEN, useExisting: SectionComponent },
555
+ ], ngImport: i0, template: "<div class=\"v-section\">\n <div\n class=\"v-section-header text-align-center d-flex\"\n [ngStyle]=\"{ 'background-color': backgroundColor }\"\n >\n <p\n class=\"text-primary align-items-center text-nowrap d-none d-md-block ps-3 m-0 w-100\"\n >\n {{ title }}\n </p>\n <div class=\"d-flex\">\n <ng-content select=\"[actions]\"></ng-content>\n <v-button\n size=\"small\"\n [icon]=\"icon\"\n (click)=\"toggle()\"\n />\n </div>\n </div>\n <div class=\"v-section-content\" *ngIf=\"showContent\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
556
+ }
557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SectionComponent, decorators: [{
558
+ type: Component,
559
+ args: [{ selector: 'v-section', standalone: true, imports: [CommonModule, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
560
+ { provide: SECTION_COMPONENT_TOKEN, useExisting: SectionComponent },
561
+ ], template: "<div class=\"v-section\">\n <div\n class=\"v-section-header text-align-center d-flex\"\n [ngStyle]=\"{ 'background-color': backgroundColor }\"\n >\n <p\n class=\"text-primary align-items-center text-nowrap d-none d-md-block ps-3 m-0 w-100\"\n >\n {{ title }}\n </p>\n <div class=\"d-flex\">\n <ng-content select=\"[actions]\"></ng-content>\n <v-button\n size=\"small\"\n [icon]=\"icon\"\n (click)=\"toggle()\"\n />\n </div>\n </div>\n <div class=\"v-section-content\" *ngIf=\"showContent\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
562
+ }], propDecorators: { title: [{
563
+ type: Input
564
+ }], showContent: [{
565
+ type: Input
566
+ }], backgroundColor: [{
567
+ type: Input
568
+ }] } });
569
+
570
+ class RadioButtonComponent extends BaseFormInputComponent {
571
+ constructor(ngControl) {
572
+ super(ngControl);
573
+ this.radioGroupName = Math.random().toString();
574
+ this.items = [];
575
+ }
576
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RadioButtonComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RadioButtonComponent, isStandalone: true, selector: "v-radiobutton", inputs: { radioGroupName: "radioGroupName", items: "items" }, providers: [
578
+ {
579
+ provide: BaseInputControls,
580
+ useExisting: RadioButtonComponent,
581
+ },
582
+ {
583
+ provide: RADIOBUTTON_COMPONENT_TOKEN,
584
+ useExisting: RadioButtonComponent,
585
+ },
586
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-radiobutton\">\n <v-form-field\n [label]=\"label\"\n [required]=\"required\"\n [tooltip]=\"tooltip\"\n [testId]=\"testId\"\n >\n <div class=\"d-flex align-items-center gap-3\">\n <div *ngFor=\"let item of items\">\n <p-radioButton\n [inputId]=\"item.id\"\n [ngClass]=\"{\n 'radio-error': ngControl?.invalid && ngControl?.dirty,\n }\"\n [name]=\"radioGroupName\"\n [value]=\"item.value\"\n [formControl]=\"formControl\"\n />\n <label [for]=\"item.id\" class=\"ps-2\">\n <span\n [ngClass]=\"{\n 'text-error': ngControl?.invalid && ngControl?.dirty,\n 'text-primary': ngControl?.value === item.value\n }\"\n >{{ item.value }}</span\n >\n </label>\n </div>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </div>\n </v-form-field>\n</div>\n", styles: [".radio-error .p-radiobutton .p-radiobutton-box.p-highlight{border-color:var(--error-color);background:var(--error-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i3$5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { 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: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
587
+ }
588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RadioButtonComponent, decorators: [{
589
+ type: Component,
590
+ args: [{ selector: 'v-radiobutton', standalone: true, imports: [
591
+ CommonModule,
592
+ FormFieldComponent,
593
+ RadioButtonModule,
594
+ ReactiveFormsModule,
595
+ ErrorComponent
596
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
597
+ {
598
+ provide: BaseInputControls,
599
+ useExisting: RadioButtonComponent,
600
+ },
601
+ {
602
+ provide: RADIOBUTTON_COMPONENT_TOKEN,
603
+ useExisting: RadioButtonComponent,
604
+ },
605
+ ], template: "<div class=\"v-radiobutton\">\n <v-form-field\n [label]=\"label\"\n [required]=\"required\"\n [tooltip]=\"tooltip\"\n [testId]=\"testId\"\n >\n <div class=\"d-flex align-items-center gap-3\">\n <div *ngFor=\"let item of items\">\n <p-radioButton\n [inputId]=\"item.id\"\n [ngClass]=\"{\n 'radio-error': ngControl?.invalid && ngControl?.dirty,\n }\"\n [name]=\"radioGroupName\"\n [value]=\"item.value\"\n [formControl]=\"formControl\"\n />\n <label [for]=\"item.id\" class=\"ps-2\">\n <span\n [ngClass]=\"{\n 'text-error': ngControl?.invalid && ngControl?.dirty,\n 'text-primary': ngControl?.value === item.value\n }\"\n >{{ item.value }}</span\n >\n </label>\n </div>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </div>\n </v-form-field>\n</div>\n", styles: [".radio-error .p-radiobutton .p-radiobutton-box.p-highlight{border-color:var(--error-color);background:var(--error-color)}\n"] }]
606
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
607
+ type: Optional
608
+ }, {
609
+ type: Self
610
+ }] }], propDecorators: { radioGroupName: [{
611
+ type: Input
612
+ }], items: [{
613
+ type: Input
614
+ }] } });
615
+
616
+ class NumberInputComponent extends BaseFormInputComponent {
617
+ constructor(ngControl) {
618
+ super(ngControl);
619
+ this.step = 1;
620
+ this.errorMessage = 'test';
621
+ }
622
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NumberInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
623
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: NumberInputComponent, isStandalone: true, selector: "v-number-input", inputs: { mode: "mode", currency: "currency", min: "min", max: "max", step: "step", errorMessage: "errorMessage" }, providers: [
624
+ {
625
+ provide: BaseInputControls,
626
+ useExisting: forwardRef(() => NumberInputComponent),
627
+ },
628
+ {
629
+ provide: NUMBER_INPUT_COMPONENT_TOKEN,
630
+ useExisting: NumberInputComponent,
631
+ },
632
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-number-input\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n >\n <p-inputNumber\n class=\"w-100\"\n [formControl]=\"formControl\"\n [showButtons]=\"true\"\n [inputId]=\"inputId\"\n [mode]=\"mode\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [currency]=\"currency\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i2$4.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { 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: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
633
+ }
634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NumberInputComponent, decorators: [{
635
+ type: Component,
636
+ args: [{ selector: 'v-number-input', standalone: true, imports: [
637
+ CommonModule,
638
+ InputNumberModule,
639
+ ReactiveFormsModule,
640
+ FormFieldComponent,
641
+ ErrorComponent,
642
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
643
+ {
644
+ provide: BaseInputControls,
645
+ useExisting: forwardRef(() => NumberInputComponent),
646
+ },
647
+ {
648
+ provide: NUMBER_INPUT_COMPONENT_TOKEN,
649
+ useExisting: NumberInputComponent,
650
+ },
651
+ ], template: "<div class=\"v-number-input\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n >\n <p-inputNumber\n class=\"w-100\"\n [formControl]=\"formControl\"\n [showButtons]=\"true\"\n [inputId]=\"inputId\"\n [mode]=\"mode\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [currency]=\"currency\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n" }]
652
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
653
+ type: Optional
654
+ }, {
655
+ type: Self
656
+ }] }], propDecorators: { mode: [{
657
+ type: Input
658
+ }], currency: [{
659
+ type: Input
660
+ }], min: [{
661
+ type: Input
662
+ }], max: [{
663
+ type: Input
664
+ }], step: [{
665
+ type: Input
666
+ }], errorMessage: [{
667
+ type: Input
668
+ }] } });
669
+
670
+ class HeaderProviderService {
671
+ constructor(settingsMenu) {
672
+ this.settingsMenu = settingsMenu;
673
+ this.menu = [];
674
+ }
675
+ init() {
676
+ this.menu = this.settingsMenu;
677
+ }
678
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderProviderService, deps: [{ token: SETTINGS_MENU }], target: i0.ɵɵFactoryTarget.Injectable }); }
679
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderProviderService, providedIn: 'root' }); }
680
+ }
681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderProviderService, decorators: [{
682
+ type: Injectable,
683
+ args: [{
684
+ providedIn: 'root',
685
+ }]
686
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
687
+ type: Inject,
688
+ args: [SETTINGS_MENU]
689
+ }] }] });
690
+
691
+ class HeaderComponent extends UnsubscribeComponent {
692
+ constructor(providerService, screenSizeService, cdr) {
693
+ super();
694
+ this.providerService = providerService;
695
+ this.screenSizeService = screenSizeService;
696
+ this.cdr = cdr;
697
+ this.exampleHeader = false;
698
+ this.icons = Icons;
699
+ this.menuVisible = false;
700
+ }
701
+ ngOnInit() {
702
+ this.providerService.init();
703
+ }
704
+ toggleMenu() {
705
+ if (this.menuRef) {
706
+ this.menuVisible = !this.menuVisible;
707
+ this.menuRef.classList.toggle('menu-visible');
708
+ this.cdr.detectChanges();
709
+ }
710
+ }
711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, deps: [{ token: HeaderProviderService }, { token: i1$3.ScreenSizeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: HeaderComponent, isStandalone: true, selector: "v-header", inputs: { title: "title", logoUrl: "logoUrl", userName: "userName", userRole: "userRole", menuRef: "menuRef", exampleHeader: "exampleHeader" }, providers: [
713
+ { provide: HEADER_COMPONENT_TOKEN, useExisting: HeaderComponent },
714
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"v-header d-flex w-100 text-align-end\"\n [ngStyle]=\"{ position: exampleHeader ? 'relative' : 'fixed' }\"\n>\n <ng-container *ngIf=\"screenSizeService.isMobileBlock | async\">\n <div class=\"burger-menu\">\n <v-button\n [icon]=\"menuVisible ? icons.cross : icons.action\"\n (click)=\"toggleMenu()\"\n />\n <div class=\"logo mt-3\" [routerLink]=\"[logoRouterLink]\">\n <img [src]=\"logoUrl\" alt=\"\"/>\n </div>\n </div>\n </ng-container>\n <div class=\"v-header-title col-auto\">\n <p class=\"text-primary text-nowrap d-none d-md-block ps-3 m-0 w-100\">\n {{ title }}\n </p>\n <div class=\"col-8 col-md-auto ps-3 m-0 w-100\">\n <ng-content select=\"[module]\"></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"(screenSizeService.isMobileBlock | async) === false\">\n <div class=\"w-100 text-start justify-content-start align-content-center\">\n <ng-content select=\"[breadcrumbs]\"></ng-content>\n </div>\n <div class=\"col-auto d-flex align-items-center justify-content-end p-4\">\n <div class=\"d-flex aling-items-center\">\n <p-avatar\n image=\"assets/primeng/images/_global/jara.png\"\n styleClass=\"me-2\"\n size=\"large\"\n shape=\"circle\"\n />\n <div class=\"card align-content-center pe-3\">\n <p\n class=\"text-primary m-0 header-username\"\n [innerHTML]=\"userName\"\n ></p>\n <p\n class=\"text-default m-0 header-userrole\"\n [innerHTML]=\"userRole\"\n ></p>\n </div>\n </div>\n <div class=\"d-flex gap-4 align-items-center\">\n <ng-content select=\"[useractions]\"/>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"screenSizeService.isMobileBlock | async\">\n <div class=\"user-info-container d-flex align-items-center\">\n <div class=\"d-flex\">\n <div class=\"card pe-3 align-content-center\">\n <p-avatar\n image=\"assets/images/_global/jara.png\"\n styleClass=\"mr-2\"\n size=\"large\"\n shape=\"circle\"\n ></p-avatar>\n </div>\n <div class=\"card align-content-center pe-3 d-flex\">\n <div class=\"user-info\">\n <p\n class=\"text-default m-0 header-username\"\n [innerHTML]=\"userName\"\n ></p>\n <p\n class=\"text-default m-0 header-userrole\"\n [innerHTML]=\"userRole\"\n ></p>\n </div>\n <div class=\"user-actions\">\n <ng-content select=\"[useractions]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"d-flex gap-4 align-items-center justify-content-center\">\n <ng-content select=\"[dbcontext]\" />\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i4$2.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
715
+ }
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, decorators: [{
717
+ type: Component,
718
+ args: [{ selector: 'v-header', standalone: true, imports: [CommonModule, AvatarModule, ButtonComponent, RouterModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
719
+ { provide: HEADER_COMPONENT_TOKEN, useExisting: HeaderComponent },
720
+ ], template: "<div\n class=\"v-header d-flex w-100 text-align-end\"\n [ngStyle]=\"{ position: exampleHeader ? 'relative' : 'fixed' }\"\n>\n <ng-container *ngIf=\"screenSizeService.isMobileBlock | async\">\n <div class=\"burger-menu\">\n <v-button\n [icon]=\"menuVisible ? icons.cross : icons.action\"\n (click)=\"toggleMenu()\"\n />\n <div class=\"logo mt-3\" [routerLink]=\"[logoRouterLink]\">\n <img [src]=\"logoUrl\" alt=\"\"/>\n </div>\n </div>\n </ng-container>\n <div class=\"v-header-title col-auto\">\n <p class=\"text-primary text-nowrap d-none d-md-block ps-3 m-0 w-100\">\n {{ title }}\n </p>\n <div class=\"col-8 col-md-auto ps-3 m-0 w-100\">\n <ng-content select=\"[module]\"></ng-content>\n </div>\n </div>\n <ng-container *ngIf=\"(screenSizeService.isMobileBlock | async) === false\">\n <div class=\"w-100 text-start justify-content-start align-content-center\">\n <ng-content select=\"[breadcrumbs]\"></ng-content>\n </div>\n <div class=\"col-auto d-flex align-items-center justify-content-end p-4\">\n <div class=\"d-flex aling-items-center\">\n <p-avatar\n image=\"assets/primeng/images/_global/jara.png\"\n styleClass=\"me-2\"\n size=\"large\"\n shape=\"circle\"\n />\n <div class=\"card align-content-center pe-3\">\n <p\n class=\"text-primary m-0 header-username\"\n [innerHTML]=\"userName\"\n ></p>\n <p\n class=\"text-default m-0 header-userrole\"\n [innerHTML]=\"userRole\"\n ></p>\n </div>\n </div>\n <div class=\"d-flex gap-4 align-items-center\">\n <ng-content select=\"[useractions]\"/>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"screenSizeService.isMobileBlock | async\">\n <div class=\"user-info-container d-flex align-items-center\">\n <div class=\"d-flex\">\n <div class=\"card pe-3 align-content-center\">\n <p-avatar\n image=\"assets/images/_global/jara.png\"\n styleClass=\"mr-2\"\n size=\"large\"\n shape=\"circle\"\n ></p-avatar>\n </div>\n <div class=\"card align-content-center pe-3 d-flex\">\n <div class=\"user-info\">\n <p\n class=\"text-default m-0 header-username\"\n [innerHTML]=\"userName\"\n ></p>\n <p\n class=\"text-default m-0 header-userrole\"\n [innerHTML]=\"userRole\"\n ></p>\n </div>\n <div class=\"user-actions\">\n <ng-content select=\"[useractions]\"></ng-content>\n </div>\n </div>\n </div>\n <div class=\"d-flex gap-4 align-items-center justify-content-center\">\n <ng-content select=\"[dbcontext]\" />\n </div>\n </div>\n </ng-container>\n</div>\n" }]
721
+ }], ctorParameters: () => [{ type: HeaderProviderService }, { type: i1$3.ScreenSizeService }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
722
+ type: Input
723
+ }], logoUrl: [{
724
+ type: Input
725
+ }], userName: [{
726
+ type: Input
727
+ }], userRole: [{
728
+ type: Input
729
+ }], menuRef: [{
730
+ type: Input
731
+ }], exampleHeader: [{
732
+ type: Input
733
+ }] } });
734
+
735
+ class TextareaComponent extends BaseFormInputComponent {
736
+ constructor(ngControl) {
737
+ super(ngControl);
738
+ this.rows = 5;
739
+ this.cols = 30;
740
+ this.autoResize = false;
741
+ }
742
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
743
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "v-textarea", inputs: { rows: "rows", cols: "cols", autoResize: "autoResize", floatLabel: "floatLabel" }, providers: [
744
+ {
745
+ provide: BaseInputControls,
746
+ useExisting: TextareaComponent,
747
+ },
748
+ {
749
+ provide: TEXTAREA_COMPONENT_TOKEN,
750
+ useExisting: TextareaComponent,
751
+ },
752
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-textarea\">\n <ng-container *ngIf=\"!floatLabel\">\n <v-form-field\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [display]=\"formDisplay\"\n >\n <textarea\n class=\"flex-grow-1\"\n pInputTextarea\n [rows]=\"rows\"\n [cols]=\"cols\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [autoResize]=\"autoResize\"\n ></textarea>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <textarea\n class=\"flex-grow-1\"\n pInputTextarea\n [rows]=\"rows\"\n [cols]=\"cols\"\n [id]=\"inputId\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [autoResize]=\"autoResize\"\n ></textarea>\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>\n", styles: [".v-textarea textarea{line-height:1.75rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputTextareaModule }, { kind: "directive", type: i3$6.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i4$1.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
753
+ }
754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
755
+ type: Component,
756
+ args: [{ selector: 'v-textarea', standalone: true, imports: [
757
+ CommonModule,
758
+ InputTextareaModule,
759
+ ReactiveFormsModule,
760
+ FormFieldComponent,
761
+ FloatLabelModule,
762
+ ErrorComponent
763
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
764
+ {
765
+ provide: BaseInputControls,
766
+ useExisting: TextareaComponent,
767
+ },
768
+ {
769
+ provide: TEXTAREA_COMPONENT_TOKEN,
770
+ useExisting: TextareaComponent,
771
+ },
772
+ ], template: "<div class=\"v-textarea\">\n <ng-container *ngIf=\"!floatLabel\">\n <v-form-field\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [display]=\"formDisplay\"\n >\n <textarea\n class=\"flex-grow-1\"\n pInputTextarea\n [rows]=\"rows\"\n [cols]=\"cols\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [autoResize]=\"autoResize\"\n ></textarea>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <textarea\n class=\"flex-grow-1\"\n pInputTextarea\n [rows]=\"rows\"\n [cols]=\"cols\"\n [id]=\"inputId\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"isRequired()\"\n [readOnly]=\"readonly\"\n [autoResize]=\"autoResize\"\n ></textarea>\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>\n", styles: [".v-textarea textarea{line-height:1.75rem!important}\n"] }]
773
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
774
+ type: Optional
775
+ }, {
776
+ type: Self
777
+ }] }], propDecorators: { rows: [{
778
+ type: Input
779
+ }], cols: [{
780
+ type: Input
781
+ }], autoResize: [{
782
+ type: Input
783
+ }], floatLabel: [{
784
+ type: Input
785
+ }] } });
786
+
787
+ class LoaderComponent {
788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
789
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: LoaderComponent, isStandalone: true, selector: "v-loader", providers: [
790
+ { provide: LOADER_COMPONENT_TOKEN, useExisting: LoaderComponent },
791
+ ], ngImport: i0, template: "<div class=\"v-loader d-flex justify-content-center\">\n <div>\n <p-progressSpinner class=\"p-progress-spinner-circle\"></p-progressSpinner>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i1$4.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
792
+ }
793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LoaderComponent, decorators: [{
794
+ type: Component,
795
+ args: [{ selector: 'v-loader', standalone: true, imports: [CommonModule, ProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
796
+ { provide: LOADER_COMPONENT_TOKEN, useExisting: LoaderComponent },
797
+ ], template: "<div class=\"v-loader d-flex justify-content-center\">\n <div>\n <p-progressSpinner class=\"p-progress-spinner-circle\"></p-progressSpinner>\n </div>\n</div>\n" }]
798
+ }] });
799
+
800
+ class SnackbarService {
801
+ constructor(messageService) {
802
+ this.messageService = messageService;
803
+ }
804
+ showSuccess(message, icon) {
805
+ this.messageService.add({
806
+ severity: 'success',
807
+ summary: 'Success',
808
+ detail: message,
809
+ icon: icon,
810
+ });
811
+ }
812
+ showInfo(message, icon) {
813
+ this.messageService.add({
814
+ severity: 'info',
815
+ summary: 'Info',
816
+ detail: message,
817
+ icon: icon,
818
+ });
819
+ }
820
+ showWarn(message, icon) {
821
+ this.messageService.add({
822
+ severity: 'warn',
823
+ summary: 'Warn',
824
+ detail: message,
825
+ icon: icon,
826
+ });
827
+ }
828
+ showError(message, icon) {
829
+ this.messageService.add({
830
+ severity: 'error',
831
+ summary: 'Error',
832
+ detail: message,
833
+ icon: icon,
834
+ });
835
+ }
836
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SnackbarService, deps: [{ token: i1$5.MessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
837
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SnackbarService, providedIn: 'root' }); }
838
+ }
839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SnackbarService, decorators: [{
840
+ type: Injectable,
841
+ args: [{
842
+ providedIn: 'root',
843
+ }]
844
+ }], ctorParameters: () => [{ type: i1$5.MessageService }] });
845
+
846
+ class SnackbarComponent {
847
+ constructor(snackbarService) {
848
+ this.snackbarService = snackbarService;
849
+ }
850
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SnackbarComponent, deps: [{ token: SnackbarService }], target: i0.ɵɵFactoryTarget.Component }); }
851
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SnackbarComponent, isStandalone: true, selector: "v-snackbar", providers: [
852
+ SnackbarService,
853
+ {
854
+ provide: SNACKBAR_COMPONENT_TOKEN,
855
+ useExisting: SnackbarComponent,
856
+ },
857
+ ], ngImport: i0, template: "<div class=\"v-snackbar\">\n <p-toast />\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i2$5.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: RippleModule }] }); }
858
+ }
859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SnackbarComponent, decorators: [{
860
+ type: Component,
861
+ args: [{ selector: 'v-snackbar', standalone: true, imports: [CommonModule, ToastModule, RippleModule], providers: [
862
+ SnackbarService,
863
+ {
864
+ provide: SNACKBAR_COMPONENT_TOKEN,
865
+ useExisting: SnackbarComponent,
866
+ },
867
+ ], template: "<div class=\"v-snackbar\">\n <p-toast />\n</div>\n" }]
868
+ }], ctorParameters: () => [{ type: SnackbarService }] });
869
+
870
+ class SideMenuComponent extends UnsubscribeComponent {
871
+ constructor() {
872
+ super(...arguments);
873
+ this.items = [];
874
+ this.logoUrl = '';
875
+ this.minimalized = new EventEmitter();
876
+ this.itemSelected = new EventEmitter();
877
+ this.menuService = inject(SideMenuService);
878
+ this.router = inject(Router);
879
+ this.icons = Icons;
880
+ this.screenSizeService = inject(ScreenSizeService);
881
+ this.isMinimalized = false;
882
+ }
883
+ ngAfterContentInit() {
884
+ if (this.menuService.menuMinimalized) {
885
+ this.setMenuMinimalized(this.menu);
886
+ }
887
+ }
888
+ menuMinimalize(menu) {
889
+ const audit = document.getElementsByClassName('detail-audit');
890
+ if (audit.length > 0) {
891
+ audit.item(0)?.classList.toggle('menu-close__audit');
892
+ }
893
+ if (menu) {
894
+ menu.classList.toggle('menu-closed');
895
+ this.isMinimalized = menu.classList.contains('menu-closed');
896
+ this.menuService.saveMinimalizedState(this.isMinimalized);
897
+ this.minimalized.emit(this.isMinimalized);
898
+ }
899
+ }
900
+ onSelectionChange(event) {
901
+ const item = event.node;
902
+ if (item.label) {
903
+ this.menuService.saveExpandedState(item);
904
+ }
905
+ }
906
+ onNodeSelect(event) {
907
+ const item = event.node;
908
+ if (item.url) {
909
+ this.router.navigateByUrl(item.url);
910
+ }
911
+ }
912
+ setMenuMinimalized(menu) {
913
+ if (menu) {
914
+ menu.nativeElement.classList.add("menu-closed");
915
+ this.minimalized.emit(true);
916
+ }
917
+ }
918
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
919
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SideMenuComponent, isStandalone: true, selector: "v-side-menu", inputs: { items: "items", logoUrl: "logoUrl", userName: "userName", userRole: "userRole" }, outputs: { minimalized: "minimalized", itemSelected: "itemSelected" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["sidemenu"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"v-side-menu\" #sidemenu>\n <div\n [ngClass]=\"\n (screenSizeService.isMobileBlock | async)\n ? 'v-side-menu-container__mobile'\n : 'v-side-menu-container'\n \"\n >\n <ng-container *ngIf=\"(screenSizeService.isMobileBlock | async) === false\">\n <div class=\"v-side-menu-header pb-3 text-center\">\n <div class=\"logo\" [routerLink]=\"[logoRouterLink]\">\n <img [src]=\"logoUrl\" alt=\"\" />\n </div>\n <hr />\n </div>\n </ng-container>\n <div\n [ngClass]=\"{\n 'v-side-menu-body__mobile': screenSizeService.isMobileBlock | async,\n 'v-side-menu-body': (screenSizeService.isMobileBlock | async) === false\n }\"\n class=\"text-center\"\n >\n <p-tree\n selectionMode=\"single\"\n [value]=\"items\"\n (onNodeExpand)=\"onSelectionChange($event)\"\n (onNodeCollapse)=\"onSelectionChange($event)\"\n (onNodeSelect)=\"onNodeSelect($event)\"\n >\n </p-tree>\n </div>\n <div\n class=\"text-center py-3 d-flex justify-content-end flex-column support\"\n >\n <hr class=\"mx-4 divider\" />\n <v-button\n class=\"support-button\"\n [label]=\"isMinimalized ? undefined : 'Support'\"\n severity=\"primary\"\n [icon]=\"icons.questionCircle\"\n ></v-button>\n </div>\n </div>\n <div\n *ngIf=\"(screenSizeService.isMobileBlock | async) === false\"\n class=\"close-button\"\n (click)=\"menuMinimalize(sidemenu)\"\n >\n <i class=\"pi pi-chevron-left text-white close-icon\"></i>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1$6.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
920
+ }
921
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideMenuComponent, decorators: [{
922
+ type: Component,
923
+ args: [{ selector: 'v-side-menu', standalone: true, imports: [
924
+ NgClass,
925
+ AsyncPipe,
926
+ NgIf,
927
+ TreeModule,
928
+ ButtonComponent,
929
+ TranslateModule,
930
+ AvatarModule,
931
+ RouterModule,
932
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"v-side-menu\" #sidemenu>\n <div\n [ngClass]=\"\n (screenSizeService.isMobileBlock | async)\n ? 'v-side-menu-container__mobile'\n : 'v-side-menu-container'\n \"\n >\n <ng-container *ngIf=\"(screenSizeService.isMobileBlock | async) === false\">\n <div class=\"v-side-menu-header pb-3 text-center\">\n <div class=\"logo\" [routerLink]=\"[logoRouterLink]\">\n <img [src]=\"logoUrl\" alt=\"\" />\n </div>\n <hr />\n </div>\n </ng-container>\n <div\n [ngClass]=\"{\n 'v-side-menu-body__mobile': screenSizeService.isMobileBlock | async,\n 'v-side-menu-body': (screenSizeService.isMobileBlock | async) === false\n }\"\n class=\"text-center\"\n >\n <p-tree\n selectionMode=\"single\"\n [value]=\"items\"\n (onNodeExpand)=\"onSelectionChange($event)\"\n (onNodeCollapse)=\"onSelectionChange($event)\"\n (onNodeSelect)=\"onNodeSelect($event)\"\n >\n </p-tree>\n </div>\n <div\n class=\"text-center py-3 d-flex justify-content-end flex-column support\"\n >\n <hr class=\"mx-4 divider\" />\n <v-button\n class=\"support-button\"\n [label]=\"isMinimalized ? undefined : 'Support'\"\n severity=\"primary\"\n [icon]=\"icons.questionCircle\"\n ></v-button>\n </div>\n </div>\n <div\n *ngIf=\"(screenSizeService.isMobileBlock | async) === false\"\n class=\"close-button\"\n (click)=\"menuMinimalize(sidemenu)\"\n >\n <i class=\"pi pi-chevron-left text-white close-icon\"></i>\n </div>\n</div>\n" }]
933
+ }], propDecorators: { items: [{
934
+ type: Input
935
+ }], logoUrl: [{
936
+ type: Input
937
+ }], userName: [{
938
+ type: Input
939
+ }], userRole: [{
940
+ type: Input
941
+ }], minimalized: [{
942
+ type: Output
943
+ }], itemSelected: [{
944
+ type: Output
945
+ }], menu: [{
946
+ type: ViewChild,
947
+ args: ['sidemenu', { static: true }]
948
+ }] } });
949
+
950
+ class SideMenuModule extends UnsubscribeComponent {
951
+ constructor(service) {
952
+ super();
953
+ this.service = service;
954
+ }
955
+ static forRoot(config) {
956
+ const moduleWithProvider = {
957
+ ngModule: SideMenuModule,
958
+ };
959
+ if (config?.items) {
960
+ moduleWithProvider.providers = [
961
+ {
962
+ provide: MENU_TOKEN,
963
+ useValue: config.items,
964
+ },
965
+ ];
966
+ }
967
+ return moduleWithProvider;
968
+ }
969
+ static forChild(menu) {
970
+ return {
971
+ ngModule: SideMenuModule,
972
+ providers: [
973
+ {
974
+ provide: MENU_TOKEN,
975
+ useValue: menu,
976
+ },
977
+ ],
978
+ };
979
+ }
980
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideMenuModule, deps: [{ token: i1$3.SideMenuProviderService }], target: i0.ɵɵFactoryTarget.NgModule }); }
981
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SideMenuModule, imports: [SideMenuComponent], exports: [SideMenuComponent] }); }
982
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideMenuModule, providers: [
983
+ SideMenuProviderService,
984
+ {
985
+ provide: SIDE_MENU_COMPONENT_TOKEN,
986
+ useExisting: SideMenuComponent,
987
+ },
988
+ {
989
+ provide: SIDE_MENU_STATE_TOKEN,
990
+ useValue: localStorage.getItem('SideMenuStateToken') ?? {
991
+ expanded: [],
992
+ minimalized: false,
993
+ },
994
+ },
995
+ ], imports: [SideMenuComponent] }); }
996
+ }
997
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideMenuModule, decorators: [{
998
+ type: NgModule,
999
+ args: [{
1000
+ imports: [SideMenuComponent],
1001
+ exports: [SideMenuComponent],
1002
+ providers: [
1003
+ SideMenuProviderService,
1004
+ {
1005
+ provide: SIDE_MENU_COMPONENT_TOKEN,
1006
+ useExisting: SideMenuComponent,
1007
+ },
1008
+ {
1009
+ provide: SIDE_MENU_STATE_TOKEN,
1010
+ useValue: localStorage.getItem('SideMenuStateToken') ?? {
1011
+ expanded: [],
1012
+ minimalized: false,
1013
+ },
1014
+ },
1015
+ ],
1016
+ }]
1017
+ }], ctorParameters: () => [{ type: i1$3.SideMenuProviderService }] });
1018
+
1019
+ class TableFilterPipe {
1020
+ transform(value) {
1021
+ if (value == undefined) {
1022
+ return undefined;
1023
+ }
1024
+ return Object.entries(value)
1025
+ .filter((x) => x[0] != undefined)
1026
+ .reduce((currentFilter, [key, value]) => {
1027
+ const filterValue = this.convertToFilterMetadata(value);
1028
+ if (filterValue) {
1029
+ if (key === 'searchField') {
1030
+ key = 'global';
1031
+ }
1032
+ currentFilter[key] = filterValue;
1033
+ }
1034
+ return currentFilter;
1035
+ }, {});
1036
+ }
1037
+ convertToFilterMetadata(value) {
1038
+ if (value == undefined) {
1039
+ return undefined;
1040
+ }
1041
+ if (typeof value == 'string') {
1042
+ return {
1043
+ matchMode: 'contains',
1044
+ value: value,
1045
+ };
1046
+ }
1047
+ if (Array.isArray(value)) {
1048
+ return value.map((x) => this.convertToFilterMetadata(x));
1049
+ }
1050
+ return {
1051
+ matchMode: 'equals',
1052
+ value: value,
1053
+ };
1054
+ }
1055
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1056
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: TableFilterPipe, isStandalone: true, name: "primengFilter" }); }
1057
+ }
1058
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableFilterPipe, decorators: [{
1059
+ type: Pipe,
1060
+ args: [{
1061
+ name: 'primengFilter',
1062
+ standalone: true,
1063
+ }]
1064
+ }] });
1065
+
1066
+ function convertToFilter(value) {
1067
+ if (value == undefined) {
1068
+ return undefined;
1069
+ }
1070
+ const filter = {};
1071
+ Object.keys(value).map((key) => {
1072
+ const filterValue = value[key];
1073
+ if (filterValue != undefined && typeof filterValue === 'object') {
1074
+ filter[key] = filterValue.value;
1075
+ }
1076
+ else {
1077
+ filter[key] = filterValue;
1078
+ }
1079
+ });
1080
+ return filter;
1081
+ }
1082
+
1083
+ class TableComponent {
1084
+ constructor() {
1085
+ this.total = 0;
1086
+ this.scrollable = true;
1087
+ this.pageSize = DEFAULT_SEARCH_LIMIT;
1088
+ this.showPaginator = true;
1089
+ this.sortMultiple = false;
1090
+ this.lazy = false;
1091
+ this.showPageSizePicker = true;
1092
+ this.maximumColumnLength = 0;
1093
+ this.disableCustomClicks = false;
1094
+ this.selection = [];
1095
+ this.pageSizeChange = new EventEmitter();
1096
+ this.selectionChange = new EventEmitter();
1097
+ this.pageChange = new EventEmitter();
1098
+ this.sortChange = new EventEmitter();
1099
+ this.lazyLoad = new EventEmitter();
1100
+ this.cdRef = inject(ChangeDetectorRef);
1101
+ this.tableColumns = [];
1102
+ this.tableRows = [];
1103
+ this.expandedRows = {};
1104
+ this.router = inject(Router);
1105
+ this.route = inject(ActivatedRoute);
1106
+ this.icons = Icons;
1107
+ }
1108
+ set columns(value) {
1109
+ this._columns = value;
1110
+ this.tableColumns = (value ?? []).map((x) => new ColumnModel(x));
1111
+ }
1112
+ get columns() {
1113
+ return this._columns;
1114
+ }
1115
+ ngOnChanges(changes) {
1116
+ if (changes['data']) {
1117
+ this.updateRowModels();
1118
+ }
1119
+ if (changes['selection'] || changes['data']) {
1120
+ this.tableSelection = this.selection
1121
+ ? this.tableRows.filter((x) => this.selection.includes(x.row))
1122
+ : undefined;
1123
+ }
1124
+ if (changes['filter'] && !changes['filter'].isFirstChange()) {
1125
+ this.globalFilterFields = this.columns.filter(x => x.id).map(x => 'row.' + x.id);
1126
+ setTimeout(() => {
1127
+ this.table?._filter();
1128
+ }, 0);
1129
+ }
1130
+ }
1131
+ ngAfterViewInit() {
1132
+ if (this.viewColumns?.length) {
1133
+ const templateColumnModel = this.viewColumns
1134
+ .toArray()
1135
+ .map((provider) => new ColumnModel(provider.getDefinition()));
1136
+ this.tableColumns = [...this.tableColumns, ...templateColumnModel];
1137
+ }
1138
+ this.expansionTemplate = {
1139
+ template: this.rowDetailTemplate,
1140
+ };
1141
+ this.cdRef.detectChanges();
1142
+ }
1143
+ updateRowModels() {
1144
+ this.tableRows = (this.data ?? []).map((x) => new RowModel(x, false, false));
1145
+ }
1146
+ pageChanged(page) {
1147
+ this.pageChange.emit(page);
1148
+ }
1149
+ pageSizeChanged(pageSize) {
1150
+ this.pageSizeChange.emit(pageSize);
1151
+ this.pageSize = pageSize;
1152
+ }
1153
+ sortChanged(event) {
1154
+ let eventEmiterArg;
1155
+ if (event.field) {
1156
+ const singleEvent = event;
1157
+ eventEmiterArg = this.getSorts([singleEvent]);
1158
+ this.sortMeta = undefined;
1159
+ this.sortSignleColumn = singleEvent;
1160
+ }
1161
+ else {
1162
+ const multiEvent = event;
1163
+ eventEmiterArg = this.getSorts(multiEvent.multisortmeta);
1164
+ this.sortMeta = multiEvent.multisortmeta;
1165
+ this.sortSignleColumn = undefined;
1166
+ }
1167
+ this.sortChange.emit(eventEmiterArg);
1168
+ }
1169
+ selectionChanged(event) {
1170
+ this.tableSelection = event;
1171
+ if (this.selectionMode) {
1172
+ const eventArgArray = Array.isArray(event) ? event : [event];
1173
+ const selection = event ? eventArgArray.map((x) => x.row) : [];
1174
+ this.selectionChange.emit(selection);
1175
+ }
1176
+ }
1177
+ fireLazyLoad(event) {
1178
+ if (this.lazy) {
1179
+ const sort = this.sortSignleColumn
1180
+ ? this.getSorts([this.sortSignleColumn])
1181
+ : this.sortMeta
1182
+ ? this.getSorts(this.sortMeta)
1183
+ : undefined;
1184
+ const lazyLoadEvent = {
1185
+ sort,
1186
+ offset: event.first ?? 0,
1187
+ limit: event.rows ?? this.pageSize,
1188
+ filter: convertToFilter(event.filters),
1189
+ };
1190
+ this.lazyLoad.emit(lazyLoadEvent);
1191
+ }
1192
+ }
1193
+ removePrefix(input, prefix) {
1194
+ return input.startsWith(prefix) ? input.slice(prefix.length) : input;
1195
+ }
1196
+ convertToSortDirection(value) {
1197
+ return value === 1 ? SortDirection.asc : SortDirection.desc;
1198
+ }
1199
+ getSorts(value) {
1200
+ return value
1201
+ ? value.map((x) => ({
1202
+ field: this.removePrefix(x.field, 'row.'),
1203
+ direction: this.convertToSortDirection(x.order),
1204
+ }))
1205
+ : undefined;
1206
+ }
1207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "v-table", inputs: { data: "data", total: "total", filter: "filter", loading: "loading", scrollable: "scrollable", pageSize: "pageSize", currentPage: "currentPage", showPaginator: "showPaginator", sortMultiple: "sortMultiple", lazy: "lazy", selectionMode: "selectionMode", showPageSizePicker: "showPageSizePicker", entityKey: "entityKey", maximumColumnLength: "maximumColumnLength", disableCustomClicks: "disableCustomClicks", columns: "columns", selection: "selection" }, outputs: { pageSizeChange: "pageSizeChange", selectionChange: "selectionChange", pageChange: "pageChange", sortChange: "sortChange", lazyLoad: "lazyLoad" }, providers: [
1209
+ {
1210
+ provide: TABLE_COMPONENT_TOKEN,
1211
+ useExisting: TableComponent,
1212
+ },
1213
+ ], queries: [{ propertyName: "rowDetailTemplate", first: true, predicate: ["rowDetail"], descendants: true }, { propertyName: "viewColumns", predicate: TABLE_COLUMN_PROVIDER }], viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"v-table\">\n <p-table\n #table\n class=\"v-table\"\n [value]=\"tableRows\"\n [filters]=\"filter | primengFilter\"\n [paginator]=\"showPaginator\"\n [rows]=\"pageSize\"\n [totalRecords]=\"total\"\n [loading]=\"loading\"\n [lazy]=\"lazy\"\n dataKey=\"id\"\n [scrollable]=\"scrollable\"\n [sortMode]=\"sortMultiple ? 'multiple' : 'single'\"\n [scrollHeight]=\"'flex'\"\n [selectionMode]=\"selectionMode\"\n [selection]=\"tableSelection\"\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\n [expandedRowKeys]=\"expandedRows\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords} entries\"\n [customSort]=\"lazy\"\n [multiSortMeta]=\"sortMeta\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n [globalFilterFields]=\"globalFilterFields\"\n (onPage)=\"pageChanged($event)\"\n (onSort)=\"sortChanged($event)\"\n (selectionChange)=\"selectionChanged($event)\"\n (onLazyLoad)=\"fireLazyLoad($event)\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n @if (selectionMode === 'multiple') {\n <th>\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n } @for (column of tableColumns; track column; let index = $index) {\n <th\n *ngIf=\"column.sortable\"\n pResizableColumn\n [pSortableColumn]=\"'row.' + column.id\"\n [style.width]=\"column.width\"\n >\n {{ column.headerGetter(column.id, index) }}\n <p-sortIcon [field]=\"'row.' + column.id\"></p-sortIcon>\n </th>\n <th\n *ngIf=\"!column.sortable\"\n pResizableColumn\n [class.v-auto-cell]=\"column.template\"\n [style.width]=\"column.width\"\n >\n {{ column.headerGetter(column.id, index) }}\n </th>\n } @if (rowDetailTemplate){\n <th></th>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-row let-expanded=\"expanded\">\n <tr\n [pSelectableRow]=\"row\"\n [pSelectableRowDisabled]=\"selectionMode !== 'single'\"\n (dblclick)=\"\n router.navigate(['./' + row.row[entityKey ?? 'id']], {\n relativeTo: route\n })\n \"\n >\n @if (selectionMode === 'multiple'){\n <td>\n <p-tableCheckbox [value]=\"row\"></p-tableCheckbox>\n </td>\n }\n <td\n *ngFor=\"let cd of tableColumns; let index = index\"\n [class]=\"cd.columnClass!\"\n [class.v-auto-cell]=\"cd.template\"\n >\n <ng-container *ngIf=\"cd.template\">\n <ng-container\n *ngTemplateOutlet=\"cd.template; context: { $implicit: row.row }\"\n ></ng-container>\n </ng-container>\n <span\n *ngIf=\"!row.template\"\n [queryParams]=\"cd.queryParams ? cd.queryParams : undefined\"\n [routerLink]=\"cd.routerLink ? cd.routerLink(row.row) : undefined\"\n [innerHTML]=\"cd.valueGetter(row.row, index)\"\n ></span>\n </td>\n @if (rowDetailTemplate){\n <td>\n <p-button\n type=\"button\"\n pRipple\n severity=\"primary\"\n [pRowToggler]=\"row\"\n [text]=\"true\"\n [rounded]=\"true\"\n [plain]=\"true\"\n [icon]=\"expanded ? icons.chevronDown : icons.chevronRight\"\n />\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" let-row>\n <tr>\n <td [attr.colspan]=\"tableColumns.length + 1\">\n <ng-container\n class=\"w-100\"\n *ngTemplateOutlet=\"\n expansionTemplate.template;\n context: { $implicit: row.row }\n \"\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", styles: [".v-auto-cell{width:1%;white-space:nowrap}.v-table{display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i2$6.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1$5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2$6.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i2$6.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i2$6.RowToggler, selector: "[pRowToggler]", inputs: ["pRowToggler", "pRowTogglerDisabled"] }, { kind: "directive", type: i2$6.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i2$6.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2$6.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i2$6.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: TableFilterPipe, name: "primengFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1214
+ }
1215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, decorators: [{
1216
+ type: Component,
1217
+ args: [{ selector: 'v-table', standalone: true, imports: [
1218
+ CommonModule,
1219
+ TableModule,
1220
+ RouterModule,
1221
+ ButtonModule,
1222
+ RippleModule,
1223
+ TableFilterPipe,
1224
+ ], providers: [
1225
+ {
1226
+ provide: TABLE_COMPONENT_TOKEN,
1227
+ useExisting: TableComponent,
1228
+ },
1229
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"v-table\">\n <p-table\n #table\n class=\"v-table\"\n [value]=\"tableRows\"\n [filters]=\"filter | primengFilter\"\n [paginator]=\"showPaginator\"\n [rows]=\"pageSize\"\n [totalRecords]=\"total\"\n [loading]=\"loading\"\n [lazy]=\"lazy\"\n dataKey=\"id\"\n [scrollable]=\"scrollable\"\n [sortMode]=\"sortMultiple ? 'multiple' : 'single'\"\n [scrollHeight]=\"'flex'\"\n [selectionMode]=\"selectionMode\"\n [selection]=\"tableSelection\"\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\n [expandedRowKeys]=\"expandedRows\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords} entries\"\n [customSort]=\"lazy\"\n [multiSortMeta]=\"sortMeta\"\n [resizableColumns]=\"true\"\n columnResizeMode=\"expand\"\n [globalFilterFields]=\"globalFilterFields\"\n (onPage)=\"pageChanged($event)\"\n (onSort)=\"sortChanged($event)\"\n (selectionChange)=\"selectionChanged($event)\"\n (onLazyLoad)=\"fireLazyLoad($event)\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n @if (selectionMode === 'multiple') {\n <th>\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n } @for (column of tableColumns; track column; let index = $index) {\n <th\n *ngIf=\"column.sortable\"\n pResizableColumn\n [pSortableColumn]=\"'row.' + column.id\"\n [style.width]=\"column.width\"\n >\n {{ column.headerGetter(column.id, index) }}\n <p-sortIcon [field]=\"'row.' + column.id\"></p-sortIcon>\n </th>\n <th\n *ngIf=\"!column.sortable\"\n pResizableColumn\n [class.v-auto-cell]=\"column.template\"\n [style.width]=\"column.width\"\n >\n {{ column.headerGetter(column.id, index) }}\n </th>\n } @if (rowDetailTemplate){\n <th></th>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-row let-expanded=\"expanded\">\n <tr\n [pSelectableRow]=\"row\"\n [pSelectableRowDisabled]=\"selectionMode !== 'single'\"\n (dblclick)=\"\n router.navigate(['./' + row.row[entityKey ?? 'id']], {\n relativeTo: route\n })\n \"\n >\n @if (selectionMode === 'multiple'){\n <td>\n <p-tableCheckbox [value]=\"row\"></p-tableCheckbox>\n </td>\n }\n <td\n *ngFor=\"let cd of tableColumns; let index = index\"\n [class]=\"cd.columnClass!\"\n [class.v-auto-cell]=\"cd.template\"\n >\n <ng-container *ngIf=\"cd.template\">\n <ng-container\n *ngTemplateOutlet=\"cd.template; context: { $implicit: row.row }\"\n ></ng-container>\n </ng-container>\n <span\n *ngIf=\"!row.template\"\n [queryParams]=\"cd.queryParams ? cd.queryParams : undefined\"\n [routerLink]=\"cd.routerLink ? cd.routerLink(row.row) : undefined\"\n [innerHTML]=\"cd.valueGetter(row.row, index)\"\n ></span>\n </td>\n @if (rowDetailTemplate){\n <td>\n <p-button\n type=\"button\"\n pRipple\n severity=\"primary\"\n [pRowToggler]=\"row\"\n [text]=\"true\"\n [rounded]=\"true\"\n [plain]=\"true\"\n [icon]=\"expanded ? icons.chevronDown : icons.chevronRight\"\n />\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"rowexpansion\" let-row>\n <tr>\n <td [attr.colspan]=\"tableColumns.length + 1\">\n <ng-container\n class=\"w-100\"\n *ngTemplateOutlet=\"\n expansionTemplate.template;\n context: { $implicit: row.row }\n \"\n ></ng-container>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n", styles: [".v-auto-cell{width:1%;white-space:nowrap}.v-table{display:flex;flex-direction:column;height:100%}\n"] }]
1230
+ }], propDecorators: { viewColumns: [{
1231
+ type: ContentChildren,
1232
+ args: [TABLE_COLUMN_PROVIDER]
1233
+ }], table: [{
1234
+ type: ViewChild,
1235
+ args: ['table']
1236
+ }], rowDetailTemplate: [{
1237
+ type: ContentChild,
1238
+ args: ['rowDetail', { static: false }]
1239
+ }], data: [{
1240
+ type: Input
1241
+ }], total: [{
1242
+ type: Input
1243
+ }], filter: [{
1244
+ type: Input
1245
+ }], loading: [{
1246
+ type: Input
1247
+ }], scrollable: [{
1248
+ type: Input
1249
+ }], pageSize: [{
1250
+ type: Input
1251
+ }], currentPage: [{
1252
+ type: Input
1253
+ }], showPaginator: [{
1254
+ type: Input
1255
+ }], sortMultiple: [{
1256
+ type: Input
1257
+ }], lazy: [{
1258
+ type: Input
1259
+ }], selectionMode: [{
1260
+ type: Input
1261
+ }], showPageSizePicker: [{
1262
+ type: Input
1263
+ }], entityKey: [{
1264
+ type: Input
1265
+ }], maximumColumnLength: [{
1266
+ type: Input
1267
+ }], disableCustomClicks: [{
1268
+ type: Input
1269
+ }], columns: [{
1270
+ type: Input
1271
+ }], selection: [{
1272
+ type: Input
1273
+ }], pageSizeChange: [{
1274
+ type: Output
1275
+ }], selectionChange: [{
1276
+ type: Output
1277
+ }], pageChange: [{
1278
+ type: Output
1279
+ }], sortChange: [{
1280
+ type: Output
1281
+ }], lazyLoad: [{
1282
+ type: Output
1283
+ }] } });
1284
+
1285
+ class ActionButtonComponent {
1286
+ constructor() {
1287
+ this.disabled = false;
1288
+ this.outlined = false;
1289
+ this.raised = false;
1290
+ // eslint-disable-next-line @angular-eslint/no-output-native
1291
+ this.click = new EventEmitter();
1292
+ this.icons = Icons;
1293
+ this.propertyChangeSubject = new Subject();
1294
+ this.propertyChanged = this.propertyChangeSubject.asObservable();
1295
+ this.buttonGroup = inject(ACTION_BUTTON_GROUP_COMPONENT_TOKEN, {
1296
+ optional: true,
1297
+ });
1298
+ }
1299
+ ngOnChanges(changes) {
1300
+ const isValueChange = Object.keys(changes).some((x) => !changes[x].firstChange);
1301
+ if (isValueChange) {
1302
+ this.propertyChangeSubject.next(null);
1303
+ }
1304
+ }
1305
+ handleClick(event) {
1306
+ event.stopPropagation();
1307
+ this.click.emit(event);
1308
+ }
1309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1310
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ActionButtonComponent, isStandalone: true, selector: "v-action-button", inputs: { disabled: "disabled", toolTip: "toolTip", id: "id", icon: "icon", outlined: "outlined", raised: "raised", severity: "severity", label: "label", size: "size" }, outputs: { click: "click" }, usesOnChanges: true, ngImport: i0, template: "<v-button\n [label]=\"label\"\n [disabled]=\"disabled\"\n [icon]=\"icon\"\n [pTooltip]=\"toolTip\"\n [outlined]=\"outlined\"\n tooltipPosition=\"bottom\"\n [size]=\"size\"\n [severity]=\"severity\"\n (click)=\"handleClick($event)\"\n></v-button>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1311
+ }
1312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonComponent, decorators: [{
1313
+ type: Component,
1314
+ args: [{ selector: 'v-action-button', standalone: true, imports: [ButtonComponent, TooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<v-button\n [label]=\"label\"\n [disabled]=\"disabled\"\n [icon]=\"icon\"\n [pTooltip]=\"toolTip\"\n [outlined]=\"outlined\"\n tooltipPosition=\"bottom\"\n [size]=\"size\"\n [severity]=\"severity\"\n (click)=\"handleClick($event)\"\n></v-button>\n" }]
1315
+ }], propDecorators: { disabled: [{
1316
+ type: Input
1317
+ }], toolTip: [{
1318
+ type: Input
1319
+ }], id: [{
1320
+ type: Input
1321
+ }], icon: [{
1322
+ type: Input
1323
+ }], outlined: [{
1324
+ type: Input
1325
+ }], raised: [{
1326
+ type: Input
1327
+ }], severity: [{
1328
+ type: Input
1329
+ }], label: [{
1330
+ type: Input
1331
+ }], size: [{
1332
+ type: Input
1333
+ }], click: [{
1334
+ type: Output
1335
+ }] } });
1336
+
1337
+ class ActionButtonGroupComponent extends UnsubscribeComponent {
1338
+ constructor(changeDetectorRef, screenSizeService) {
1339
+ super();
1340
+ this.changeDetectorRef = changeDetectorRef;
1341
+ this.screenSizeService = screenSizeService;
1342
+ this.maxItems = 3;
1343
+ this.maxItemsMobile = 0;
1344
+ this.items = [];
1345
+ this.menuIconPos = 'right';
1346
+ this.menuIcon = Icons.action;
1347
+ this.icons = Icons;
1348
+ this.allItems = [];
1349
+ this.visibleActions = [];
1350
+ this.menuItems = [];
1351
+ }
1352
+ ngAfterContentInit() {
1353
+ this.subscribeItemChange();
1354
+ }
1355
+ fireClick(item, event) {
1356
+ event.stopPropagation();
1357
+ item.click.emit();
1358
+ }
1359
+ subscribeItemChange() {
1360
+ const screenResize$ = this.screenSizeService.isMobileBlock;
1361
+ const actions$ = queryListChanged(this.actions);
1362
+ screenResize$
1363
+ .pipe(takeUntil(this.destroyed$), combineLatestWith(actions$))
1364
+ .subscribe(([isMobile, actions]) => {
1365
+ this.computeItems(actions, isMobile);
1366
+ });
1367
+ }
1368
+ computeItems(actions, isMobile) {
1369
+ const allItems = [...(this.items ?? []), ...actions];
1370
+ const maxItems = isMobile ? this.maxItemsMobile : this.maxItems;
1371
+ this.visibleActions = allItems.slice(0, maxItems);
1372
+ this.menuItems = allItems.slice(maxItems).map(this.convertToMenuItem);
1373
+ this.changeDetectorRef.detectChanges();
1374
+ }
1375
+ convertToMenuItem(item) {
1376
+ return {
1377
+ label: item.label,
1378
+ icon: item.icon,
1379
+ command: () => {
1380
+ item.click.emit();
1381
+ },
1382
+ };
1383
+ }
1384
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$3.ScreenSizeService }], target: i0.ɵɵFactoryTarget.Component }); }
1385
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ActionButtonGroupComponent, isStandalone: true, selector: "v-action-button-group", inputs: { maxItems: "maxItems", maxItemsMobile: "maxItemsMobile", items: "items", menuIconPos: "menuIconPos", menuIcon: "menuIcon", label: "label", icon: "icon" }, providers: [
1386
+ {
1387
+ provide: ACTION_BUTTON_GROUP_COMPONENT_TOKEN,
1388
+ useExisting: ActionButtonGroupComponent,
1389
+ },
1390
+ ], queries: [{ propertyName: "actions", predicate: ActionButtonComponent }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"v-action-button-group align-items-center justify-content-center justify-content-md-end\"\n>\n <div class=\"v-action-button-group__actions d-flex gap-2\">\n @for (action of visibleActions; track action) {\n <v-action-button\n [disabled]=\"action.disabled\"\n [icon]=\"action.icon\"\n [id]=\"action.id\"\n [outlined]=\"action.outlined\"\n [raised]=\"action.raised\"\n [toolTip]=\"action.toolTip || action.label\"\n [severity]=\"action.severity\"\n [size]=\"action.size\"\n (click)=\"fireClick(action, $event)\"\n ></v-action-button>\n } @if (actions.length > visibleActions.length) {\n <v-button\n (click)=\"menu.toggle($event)\"\n [label]=\"label\"\n [iconPos]=\"menuIconPos\"\n [icon]=\"menuIcon\"\n />\n }\n </div>\n</div>\n<p-menu #menu [model]=\"menuItems\" [popup]=\"true\" appendTo=\"body\" />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MenuModule }, { kind: "component", type: i2$7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "component", type: ActionButtonComponent, selector: "v-action-button", inputs: ["disabled", "toolTip", "id", "icon", "outlined", "raised", "severity", "label", "size"], outputs: ["click"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1391
+ }
1392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActionButtonGroupComponent, decorators: [{
1393
+ type: Component,
1394
+ args: [{ selector: 'v-action-button-group', standalone: true, imports: [MenuModule, ButtonComponent, ActionButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1395
+ {
1396
+ provide: ACTION_BUTTON_GROUP_COMPONENT_TOKEN,
1397
+ useExisting: ActionButtonGroupComponent,
1398
+ },
1399
+ ], template: "<div\n class=\"v-action-button-group align-items-center justify-content-center justify-content-md-end\"\n>\n <div class=\"v-action-button-group__actions d-flex gap-2\">\n @for (action of visibleActions; track action) {\n <v-action-button\n [disabled]=\"action.disabled\"\n [icon]=\"action.icon\"\n [id]=\"action.id\"\n [outlined]=\"action.outlined\"\n [raised]=\"action.raised\"\n [toolTip]=\"action.toolTip || action.label\"\n [severity]=\"action.severity\"\n [size]=\"action.size\"\n (click)=\"fireClick(action, $event)\"\n ></v-action-button>\n } @if (actions.length > visibleActions.length) {\n <v-button\n (click)=\"menu.toggle($event)\"\n [label]=\"label\"\n [iconPos]=\"menuIconPos\"\n [icon]=\"menuIcon\"\n />\n }\n </div>\n</div>\n<p-menu #menu [model]=\"menuItems\" [popup]=\"true\" appendTo=\"body\" />\n" }]
1400
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$3.ScreenSizeService }], propDecorators: { actions: [{
1401
+ type: ContentChildren,
1402
+ args: [ActionButtonComponent]
1403
+ }], maxItems: [{
1404
+ type: Input
1405
+ }], maxItemsMobile: [{
1406
+ type: Input
1407
+ }], items: [{
1408
+ type: Input
1409
+ }], menuIconPos: [{
1410
+ type: Input
1411
+ }], menuIcon: [{
1412
+ type: Input
1413
+ }], label: [{
1414
+ type: Input
1415
+ }], icon: [{
1416
+ type: Input
1417
+ }] } });
1418
+
1419
+ class DropdownComponent extends BaseFormInputComponent {
1420
+ constructor(ngControl) {
1421
+ super(ngControl);
1422
+ this.options = [];
1423
+ this.editable = false;
1424
+ this.loading = false;
1425
+ this.lazy = false;
1426
+ this.filter = true;
1427
+ this.forceMinWidth = false;
1428
+ this.showFilter = false;
1429
+ this.localSearch = false;
1430
+ this.showed = new EventEmitter();
1431
+ this.cleared = new EventEmitter();
1432
+ this.lazyLoad = new EventEmitter();
1433
+ this.filtered = new EventEmitter();
1434
+ this.destroy$ = new Subject();
1435
+ this.virtualOptionSize = 37.5;
1436
+ }
1437
+ ngOnChanges(changes) {
1438
+ if (changes['lazy'] || changes['loading']) {
1439
+ this.virtualScrollOptions = this.lazy
1440
+ ? {
1441
+ showLoader: this.loading,
1442
+ lazy: true,
1443
+ onLazyLoad: this.onLazyLoad.bind(this),
1444
+ }
1445
+ : undefined;
1446
+ }
1447
+ }
1448
+ ngOnDestroy() {
1449
+ this.destroy$.next();
1450
+ this.destroy$.complete();
1451
+ }
1452
+ onLazyLoad(event) {
1453
+ this.lazyLoad.emit({
1454
+ offset: event.first,
1455
+ limit: event.last - event.first,
1456
+ });
1457
+ }
1458
+ filterChange(event) {
1459
+ this.filtered.emit({
1460
+ filter: event.filter,
1461
+ });
1462
+ }
1463
+ onDropdownShow() {
1464
+ this.showed.emit();
1465
+ }
1466
+ onDropdownClear() {
1467
+ this.cleared.emit();
1468
+ }
1469
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DropdownComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
1470
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DropdownComponent, isStandalone: true, selector: "v-dropdown", inputs: { options: "options", optionLabel: "optionLabel", optionValue: "optionValue", dropdownIcon: "dropdownIcon", floatLabel: "floatLabel", editable: "editable", loading: "loading", lazy: "lazy", filter: "filter", forceMinWidth: "forceMinWidth", showFilter: "showFilter", localSearch: "localSearch" }, outputs: { showed: "showed", cleared: "cleared", lazyLoad: "lazyLoad", filtered: "filtered" }, providers: [
1471
+ {
1472
+ provide: BaseInputControls,
1473
+ useExisting: forwardRef(() => DropdownComponent),
1474
+ multi: true,
1475
+ },
1476
+ {
1477
+ provide: DROPDOWN_COMPONENT_TOKEN,
1478
+ useExisting: DropdownComponent,
1479
+ },
1480
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"v-dropdown\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [filter]=\"filter\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ?? ''\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n >\n </p-dropdown>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"!label && !floatLabel\">\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [filter]=\"filter\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n >\n </p-dropdown>\n </ng-container>\n <ng-container *ngIf=\"floatLabel && !label\">\n <p-floatLabel>\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [filter]=\"filter\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n (lazyLoad)=\"onLazyLoad($any($event))\"\n >\n </p-dropdown>\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>", styles: [".v-dropdown{justify-content:center;width:100%}.p-dropdown-items-wrapper,.p-scroller-viewport,.p-scroller{min-width:8rem!important;overflow-x:hidden;overflow-y:auto}.p-dropdown{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3$7.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "ngmodule", type: MessageModule }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i4$1.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1481
+ }
1482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DropdownComponent, decorators: [{
1483
+ type: Component,
1484
+ args: [{ selector: 'v-dropdown', standalone: true, imports: [
1485
+ CommonModule,
1486
+ ReactiveFormsModule,
1487
+ DropdownModule,
1488
+ TooltipModule,
1489
+ FormFieldComponent,
1490
+ MessageModule,
1491
+ FloatLabelModule,
1492
+ ErrorComponent
1493
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
1494
+ {
1495
+ provide: BaseInputControls,
1496
+ useExisting: forwardRef(() => DropdownComponent),
1497
+ multi: true,
1498
+ },
1499
+ {
1500
+ provide: DROPDOWN_COMPONENT_TOKEN,
1501
+ useExisting: DropdownComponent,
1502
+ },
1503
+ ], template: "<div class=\"v-dropdown\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [filter]=\"filter\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ?? ''\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n >\n </p-dropdown>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"!label && !floatLabel\">\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [filter]=\"filter\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n >\n </p-dropdown>\n </ng-container>\n <ng-container *ngIf=\"floatLabel && !label\">\n <p-floatLabel>\n <p-dropdown\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [filter]=\"filter\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [editable]=\"editable\"\n [dataKey]=\"optionValue\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (onFilter)=\"filterChange($event)\"\n (lazyLoad)=\"onLazyLoad($any($event))\"\n >\n </p-dropdown>\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>", styles: [".v-dropdown{justify-content:center;width:100%}.p-dropdown-items-wrapper,.p-scroller-viewport,.p-scroller{min-width:8rem!important;overflow-x:hidden;overflow-y:auto}.p-dropdown{width:100%}\n"] }]
1504
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
1505
+ type: Optional
1506
+ }, {
1507
+ type: Self
1508
+ }] }], propDecorators: { options: [{
1509
+ type: Input
1510
+ }], optionLabel: [{
1511
+ type: Input
1512
+ }], optionValue: [{
1513
+ type: Input
1514
+ }], dropdownIcon: [{
1515
+ type: Input
1516
+ }], floatLabel: [{
1517
+ type: Input
1518
+ }], editable: [{
1519
+ type: Input
1520
+ }], loading: [{
1521
+ type: Input
1522
+ }], lazy: [{
1523
+ type: Input
1524
+ }], filter: [{
1525
+ type: Input
1526
+ }], forceMinWidth: [{
1527
+ type: Input
1528
+ }], showFilter: [{
1529
+ type: Input
1530
+ }], localSearch: [{
1531
+ type: Input
1532
+ }], showed: [{
1533
+ type: Output
1534
+ }], cleared: [{
1535
+ type: Output
1536
+ }], lazyLoad: [{
1537
+ type: Output
1538
+ }], filtered: [{
1539
+ type: Output
1540
+ }] } });
1541
+
1542
+ class MultiselectComponent extends BaseFormInputComponent {
1543
+ constructor(ngControl) {
1544
+ super(ngControl);
1545
+ this.options = [];
1546
+ this.editable = true;
1547
+ this.loading = false;
1548
+ this.lazy = false;
1549
+ this.filter = true;
1550
+ this.size = FieldSize.medium;
1551
+ this.changed = new EventEmitter();
1552
+ this.showed = new EventEmitter();
1553
+ this.cleared = new EventEmitter();
1554
+ this.lazyLoad = new EventEmitter();
1555
+ this.filtered = new EventEmitter();
1556
+ this.virtualOptionSize = 37.5;
1557
+ }
1558
+ ngOnChanges(changes) {
1559
+ if (changes['lazy'] || changes['loading']) {
1560
+ this.virtualScrollOptions = this.lazy
1561
+ ? {
1562
+ showLoader: this.loading,
1563
+ lazy: true,
1564
+ onLazyLoad: this.onLazyLoad.bind(this),
1565
+ }
1566
+ : undefined;
1567
+ }
1568
+ }
1569
+ onLazyLoad(event) {
1570
+ this.lazyLoad.emit({
1571
+ offset: event.first,
1572
+ limit: event.last - event.first,
1573
+ });
1574
+ }
1575
+ selectionChange(event) {
1576
+ this.cleared.emit(event);
1577
+ }
1578
+ onDropdownShow() {
1579
+ this.showed.emit();
1580
+ }
1581
+ onDropdownClear() {
1582
+ this.cleared.emit();
1583
+ }
1584
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MultiselectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
1585
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MultiselectComponent, isStandalone: true, selector: "v-multiselect", inputs: { options: "options", optionLabel: "optionLabel", optionValue: "optionValue", dropdownIcon: "dropdownIcon", floatLabel: "floatLabel", editable: "editable", loading: "loading", lazy: "lazy", filter: "filter", size: "size" }, outputs: { changed: "changed", showed: "showed", cleared: "cleared", lazyLoad: "lazyLoad", filtered: "filtered" }, providers: [
1586
+ {
1587
+ provide: BaseInputControls,
1588
+ useExisting: forwardRef(() => MultiselectComponent),
1589
+ multi: true,
1590
+ },
1591
+ {
1592
+ provide: MULTISELECT_COMPONENT_TOKEN,
1593
+ useExisting: MultiselectComponent,
1594
+ },
1595
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"v-multiple-select\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-multiSelect\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n display=\"chip\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [virtualScrollItemSize]=\"25\"\n [lazy]=\"true\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (changeEvent)=\"selectionChange($event)\"\n (lazyLoadEvent)=\"onLazyLoad($any($event))\"\n ></p-multiSelect>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <p-multiSelect\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [virtualScrollItemSize]=\"25\"\n [lazy]=\"true\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [inputId]=\"inputId\"\n [showClear]=\"formControl && clearable && !readonly\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (changeEvent)=\"selectionChange($event)\"\n (lazyLoadEvent)=\"onLazyLoad($any($event))\"\n ></p-multiSelect>\n\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i4$1.FloatLabel, selector: "p-floatLabel" }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$3.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1596
+ }
1597
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MultiselectComponent, decorators: [{
1598
+ type: Component,
1599
+ args: [{ selector: 'v-multiselect', standalone: true, imports: [
1600
+ CommonModule,
1601
+ ReactiveFormsModule,
1602
+ FloatLabelModule,
1603
+ MultiSelectModule,
1604
+ ErrorComponent,
1605
+ FormFieldComponent,
1606
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1607
+ {
1608
+ provide: BaseInputControls,
1609
+ useExisting: forwardRef(() => MultiselectComponent),
1610
+ multi: true,
1611
+ },
1612
+ {
1613
+ provide: MULTISELECT_COMPONENT_TOKEN,
1614
+ useExisting: MultiselectComponent,
1615
+ },
1616
+ ], template: "<div class=\"v-multiple-select\">\n <ng-container *ngIf=\"label && !floatLabel\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-multiSelect\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n display=\"chip\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [virtualScrollItemSize]=\"25\"\n [lazy]=\"true\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [showClear]=\"formControl && clearable && !readonly\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (changeEvent)=\"selectionChange($event)\"\n (lazyLoadEvent)=\"onLazyLoad($any($event))\"\n ></p-multiSelect>\n </v-form-field>\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </ng-container>\n <ng-container *ngIf=\"floatLabel\">\n <p-floatLabel>\n <p-multiSelect\n [baseZIndex]=\"9999\"\n class=\"w-100\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n [title]=\"label\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder ? placeholder : label\"\n [virtualScrollItemSize]=\"25\"\n [lazy]=\"true\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [inputId]=\"inputId\"\n [showClear]=\"formControl && clearable && !readonly\"\n [virtualScroll]=\"lazy\"\n [virtualScrollItemSize]=\"virtualOptionSize\"\n [virtualScrollOptions]=\"virtualScrollOptions\"\n (showEvent)=\"onDropdownShow()\"\n (clearEvent)=\"onDropdownClear()\"\n (changeEvent)=\"selectionChange($event)\"\n (lazyLoadEvent)=\"onLazyLoad($any($event))\"\n ></p-multiSelect>\n\n <label [for]=\"inputId\">{{ floatLabel }}</label>\n </p-floatLabel>\n </ng-container>\n</div>\n" }]
1617
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
1618
+ type: Optional
1619
+ }, {
1620
+ type: Self
1621
+ }] }], propDecorators: { options: [{
1622
+ type: Input
1623
+ }], optionLabel: [{
1624
+ type: Input
1625
+ }], optionValue: [{
1626
+ type: Input
1627
+ }], dropdownIcon: [{
1628
+ type: Input
1629
+ }], floatLabel: [{
1630
+ type: Input
1631
+ }], editable: [{
1632
+ type: Input
1633
+ }], loading: [{
1634
+ type: Input
1635
+ }], lazy: [{
1636
+ type: Input
1637
+ }], filter: [{
1638
+ type: Input
1639
+ }], size: [{
1640
+ type: Input
1641
+ }], changed: [{
1642
+ type: Output
1643
+ }], showed: [{
1644
+ type: Output
1645
+ }], cleared: [{
1646
+ type: Output
1647
+ }], lazyLoad: [{
1648
+ type: Output
1649
+ }], filtered: [{
1650
+ type: Output
1651
+ }] } });
1652
+
1653
+ class GenericFieldComponent extends BaseFormInputComponent {
1654
+ constructor() {
1655
+ super(...arguments);
1656
+ this.type = GenericFieldType.text;
1657
+ this.size = FieldSize.medium;
1658
+ this.loading = false;
1659
+ this.lazy = false;
1660
+ this.filter = true;
1661
+ this.changed = new EventEmitter();
1662
+ this.showed = new EventEmitter();
1663
+ this.cleared = new EventEmitter();
1664
+ this.lazyLoad = new EventEmitter();
1665
+ this.filtered = new EventEmitter();
1666
+ this.fieldTypes = GenericFieldType;
1667
+ this.icons = Icons;
1668
+ }
1669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1670
+ 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: [
1671
+ {
1672
+ provide: GENERIC_FIELD_COMPONENT_TOKEN,
1673
+ useExisting: GenericFieldComponent,
1674
+ },
1675
+ ], usesInheritance: true, ngImport: i0, template: "@if (!type || type === fieldTypes.text) {\n<v-textfield\n [label]=\"label\"\n [floatLabel]=\"floatLabel === true\"\n [size]=\"size\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.dropdown && !datasource) {\n<v-dropdown\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [loading]=\"loading\"\n [forceMinWidth]=\"true\"\n [formControl]=\"formControl\"\n [showFilter]=\"showFilter ?? false\"\n [localSearch]=\"localSearch ?? false\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/> \n} @else if (type === fieldTypes.dropdown && datasource) {\n <v-dropdown\n useDatasource\n [forceMinWidth]=\"true\"\n [datasource]=\"datasource\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n [showFilter]=\"showFilter ?? false\"\n [filterField]=\"filterField ?? 'fulltext'\"\n [localSearch]=\"localSearch ?? false\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n />\n} @else if (type === fieldTypes.multiselect && !datasource) {\n<v-multiselect\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/>\n} @else if (type === fieldTypes.multiselect && datasource) {\n<v-multiselect\n useDatasource\n [datasource]=\"datasource\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/>\n} @else if (type === fieldTypes.checkbox) {\n<v-tristatecheckbox\n [label]=\"label\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.simplecheckbox) {\n<v-checkbox\n [label]=\"label\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.calendar) {\n<v-calendar\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n [icon]=\"icons.calendar\"\n/>\n}\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 }); }
1676
+ }
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFieldComponent, decorators: [{
1678
+ type: Component,
1679
+ args: [{ selector: 'v-generic-field', standalone: true, imports: [
1680
+ CommonModule,
1681
+ DropdownComponent,
1682
+ CalendarComponent,
1683
+ TristatecheckboxComponent,
1684
+ MultiselectComponent,
1685
+ TextfieldComponent,
1686
+ ReactiveFormsModule,
1687
+ CheckboxComponent,
1688
+ DatasourceDirective,
1689
+ ], providers: [
1690
+ {
1691
+ provide: GENERIC_FIELD_COMPONENT_TOKEN,
1692
+ useExisting: GenericFieldComponent,
1693
+ },
1694
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!type || type === fieldTypes.text) {\n<v-textfield\n [label]=\"label\"\n [floatLabel]=\"floatLabel === true\"\n [size]=\"size\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.dropdown && !datasource) {\n<v-dropdown\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [loading]=\"loading\"\n [forceMinWidth]=\"true\"\n [formControl]=\"formControl\"\n [showFilter]=\"showFilter ?? false\"\n [localSearch]=\"localSearch ?? false\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/> \n} @else if (type === fieldTypes.dropdown && datasource) {\n <v-dropdown\n useDatasource\n [forceMinWidth]=\"true\"\n [datasource]=\"datasource\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n [showFilter]=\"showFilter ?? false\"\n [filterField]=\"filterField ?? 'fulltext'\"\n [localSearch]=\"localSearch ?? false\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n />\n} @else if (type === fieldTypes.multiselect && !datasource) {\n<v-multiselect\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [options]=\"options\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/>\n} @else if (type === fieldTypes.multiselect && datasource) {\n<v-multiselect\n useDatasource\n [datasource]=\"datasource\"\n [optionLabel]=\"optionLabel\"\n [optionValue]=\"optionValue ?? optionLabel\"\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [loading]=\"loading\"\n [formControl]=\"formControl\"\n (changeEvent)=\"changed.emit($event)\"\n (clearEvent)=\"cleared.emit($event)\"\n (lazyLoadEvent)=\"lazyLoad.emit($any($event))\"\n (showEvent)=\"showed.emit($event)\"\n/>\n} @else if (type === fieldTypes.checkbox) {\n<v-tristatecheckbox\n [label]=\"label\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.simplecheckbox) {\n<v-checkbox\n [label]=\"label\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n/>\n} @else if (type === fieldTypes.calendar) {\n<v-calendar\n [label]=\"!floatLabel ? label : ''\"\n [floatLabel]=\"floatLabel ? label : ''\"\n [testId]=\"testId\"\n [formControl]=\"formControl\"\n [icon]=\"icons.calendar\"\n/>\n}\n" }]
1695
+ }], propDecorators: { type: [{
1696
+ type: Input
1697
+ }], floatLabel: [{
1698
+ type: Input
1699
+ }], optionLabel: [{
1700
+ type: Input
1701
+ }], optionValue: [{
1702
+ type: Input
1703
+ }], options: [{
1704
+ type: Input
1705
+ }], size: [{
1706
+ type: Input
1707
+ }], loading: [{
1708
+ type: Input
1709
+ }], lazy: [{
1710
+ type: Input
1711
+ }], filter: [{
1712
+ type: Input
1713
+ }], datasource: [{
1714
+ type: Input
1715
+ }], filterField: [{
1716
+ type: Input
1717
+ }], showFilter: [{
1718
+ type: Input
1719
+ }], localSearch: [{
1720
+ type: Input
1721
+ }], changed: [{
1722
+ type: Output
1723
+ }], showed: [{
1724
+ type: Output
1725
+ }], cleared: [{
1726
+ type: Output
1727
+ }], lazyLoad: [{
1728
+ type: Output
1729
+ }], filtered: [{
1730
+ type: Output
1731
+ }] } });
1732
+
1733
+ function generateFormGroup(fields, lastGroupValue, inputGroup, inputGroupChanged = false) {
1734
+ const formGroup = (inputGroupChanged
1735
+ ? inputGroup ?? lastGroupValue
1736
+ : lastGroupValue ?? inputGroup) ?? new UntypedFormGroup({});
1737
+ fields?.forEach((field) => {
1738
+ const control = formGroup.get(field.name);
1739
+ if (!control) {
1740
+ formGroup.addControl(field.name, new UntypedFormControl(field.value, field.validator));
1741
+ }
1742
+ else if (control && control.value !== field.value) {
1743
+ control.setValue(field.value);
1744
+ control.setValidators(field.validator ?? null);
1745
+ }
1746
+ else {
1747
+ control.setValidators(field.validator ?? null);
1748
+ }
1749
+ if (field.readonly && (control || formGroup.get(field.name))) {
1750
+ formGroup.get(field.name)?.disable();
1751
+ }
1752
+ });
1753
+ if (!inputGroupChanged) {
1754
+ for (const field in formGroup.controls) {
1755
+ const control = fields?.find((x) => x.name == field);
1756
+ if (!control) {
1757
+ formGroup.removeControl(field);
1758
+ }
1759
+ }
1760
+ }
1761
+ return formGroup;
1762
+ }
1763
+ function getColumnClass(value) {
1764
+ if (!value) {
1765
+ return undefined;
1766
+ }
1767
+ switch (value) {
1768
+ case 1:
1769
+ return 'col-12';
1770
+ case 2:
1771
+ return 'col-12 col-md-6';
1772
+ case 3:
1773
+ return 'col-12 col-md-4';
1774
+ case 4:
1775
+ return 'col-12 col-md-3';
1776
+ case 6:
1777
+ return 'col-12 col-md-2';
1778
+ }
1779
+ return 'col-12 col-md-1';
1780
+ }
1781
+
1782
+ class GenericFormComponent {
1783
+ ngOnChanges(changes) {
1784
+ if (changes['fields'] || changes['formGroup']) {
1785
+ this.formGroupComputed = generateFormGroup(this.fields, this.formGroupComputed, this.formGroup, !!changes['formGroup']);
1786
+ }
1787
+ if (changes['columns']) {
1788
+ this.columnClass = getColumnClass(this.columns);
1789
+ }
1790
+ }
1791
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1792
+ 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: i2.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: 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: TranslateModule }, { kind: "pipe", type: i3$8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1793
+ }
1794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GenericFormComponent, decorators: [{
1795
+ type: Component,
1796
+ args: [{ selector: 'v-generic-form', standalone: true, imports: [
1797
+ CommonModule,
1798
+ GenericFieldComponent,
1799
+ ReactiveFormsModule,
1800
+ TranslateModule,
1801
+ ], 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" }]
1802
+ }], propDecorators: { formGroup: [{
1803
+ type: Input
1804
+ }], fields: [{
1805
+ type: Input
1806
+ }], columns: [{
1807
+ type: Input
1808
+ }], showAsRow: [{
1809
+ type: Input
1810
+ }] } });
1811
+
1812
+ class FilterFieldDirective {
1813
+ constructor() {
1814
+ this.type = GenericFieldType.text;
1815
+ }
1816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1817
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FilterFieldDirective, isStandalone: true, selector: "v-filter-field", inputs: { name: "name", type: "type", label: "label", optionLabel: "optionLabel", optionValue: "optionValue", options: "options", value: "value", validator: "validator", datasource: "datasource", filterField: "filterField", showFilter: "showFilter", localSearch: "localSearch" }, ngImport: i0 }); }
1818
+ }
1819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterFieldDirective, decorators: [{
1820
+ type: Directive,
1821
+ args: [{
1822
+ // eslint-disable-next-line @angular-eslint/directive-selector
1823
+ selector: 'v-filter-field',
1824
+ standalone: true,
1825
+ }]
1826
+ }], propDecorators: { name: [{
1827
+ type: Input,
1828
+ args: [{ required: true }]
1829
+ }], type: [{
1830
+ type: Input
1831
+ }], label: [{
1832
+ type: Input
1833
+ }], optionLabel: [{
1834
+ type: Input
1835
+ }], optionValue: [{
1836
+ type: Input
1837
+ }], options: [{
1838
+ type: Input
1839
+ }], value: [{
1840
+ type: Input
1841
+ }], validator: [{
1842
+ type: Input
1843
+ }], datasource: [{
1844
+ type: Input
1845
+ }], filterField: [{
1846
+ type: Input
1847
+ }], showFilter: [{
1848
+ type: Input
1849
+ }], localSearch: [{
1850
+ type: Input
1851
+ }] } });
1852
+
1853
+ function getFilledControlCount(formGroup) {
1854
+ let count = 0;
1855
+ Object.keys(formGroup.controls).forEach((key) => {
1856
+ const control = formGroup.get(key);
1857
+ if (control?.value) {
1858
+ if (typeof control.value === 'boolean') {
1859
+ count++;
1860
+ }
1861
+ if (typeof control.value === 'string' && control.value.trim() !== '') {
1862
+ count++;
1863
+ }
1864
+ }
1865
+ });
1866
+ return count;
1867
+ }
1868
+
1869
+ class FilterComponent extends UnsubscribeComponent {
1870
+ constructor() {
1871
+ super(...arguments);
1872
+ this.fields = [];
1873
+ this.filters = [];
1874
+ this.fulltextFieldName = 'searchField';
1875
+ this.showFulltext = true;
1876
+ this.showFilters = true;
1877
+ this.autoBind = true;
1878
+ this.debounceTime = DEFAULT_DEBOUNCE_TIME;
1879
+ this.icons = Icons;
1880
+ this.searchField = {
1881
+ name: this.fulltextFieldName,
1882
+ };
1883
+ this.inputFields$ = new BehaviorSubject([...this.fields ?? [], ...this.filters ?? []]);
1884
+ this.FieldSize = FieldSize;
1885
+ this.screenSizeService = inject(ScreenSizeService);
1886
+ this.changeDetectorRef = inject(ChangeDetectorRef);
1887
+ this.dialogService = inject(DialogService);
1888
+ this.formGroup = new FormGroup({});
1889
+ this.filledFiltersCount$ = this.formGroup.valueChanges.pipe(startWith(this.formGroup), map(() => getFilledControlCount(this.formGroup).toString()));
1890
+ this.lastFormFields = [];
1891
+ }
1892
+ ngOnInit() {
1893
+ this.formGroup.valueChanges
1894
+ .pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime ?? DEFAULT_DEBOUNCE_TIME), map((x) => this.convertFilter(x)), distinctUntilChanged())
1895
+ .subscribe((value) => this.onChange?.(value));
1896
+ }
1897
+ ngOnChanges(changes) {
1898
+ if (changes['fields'] || changes['filters']) {
1899
+ this.inputFields$.next([...this.fields ?? [], ...this.filters ?? []]);
1900
+ }
1901
+ }
1902
+ ngAfterContentInit() {
1903
+ const fieldDeclaratios$ = this.fieldDeclarations.changes.pipe(startWith({}), map(() => this.fieldDeclarations.toArray()));
1904
+ this.fieldDefinitios$ = this.inputFields$.pipe(combineLatestWith(fieldDeclaratios$), map(([inputs, views]) => {
1905
+ this.searchField.name = this.fulltextFieldName;
1906
+ this.lastFormFields = [this.searchField, ...(inputs ?? []), ...views];
1907
+ return this.lastFormFields;
1908
+ }));
1909
+ this.simpleFormFieldDefinitions$ = this.fieldDefinitios$.pipe(map((fields) => {
1910
+ return fields
1911
+ .filter((x) => x.name !== this.fulltextFieldName)
1912
+ .map((x) => ({ ...x, floatLabel: true, size: FieldSize.large }));
1913
+ }));
1914
+ this.formGroup$ = this.fieldDefinitios$.pipe(map((fields) => generateFormGroup(fields, this.formGroup, undefined, false)));
1915
+ this.changeDetectorRef.detectChanges();
1916
+ }
1917
+ openFilter() {
1918
+ const fields = this.lastFormFields.map((x) => ({
1919
+ ...x,
1920
+ label: x.name === this.fulltextFieldName ? 'Fulltext' : x.label ?? x.name,
1921
+ }));
1922
+ const formGroup = generateFormGroup(this.lastFormFields, undefined, undefined, false);
1923
+ formGroup.patchValue(this.formGroup.value);
1924
+ this.dialogService.showDialog({
1925
+ title: 'Set filters',
1926
+ headerIcon: this.icons.filter,
1927
+ severity: 'primary',
1928
+ componentType: GenericFormComponent,
1929
+ data: {
1930
+ formGroup,
1931
+ fields: fields,
1932
+ columns: 1,
1933
+ },
1934
+ confirmButtonFn: () => this.setFilterValues(formGroup),
1935
+ confirmButtonText: 'Apply',
1936
+ cancelButtonFn: () => this.clear(),
1937
+ cancelButtonText: 'Clear all',
1938
+ showCancelButton: true,
1939
+ closable: false,
1940
+ });
1941
+ }
1942
+ openSearch() {
1943
+ this.dialogService.showDialog({
1944
+ headerIcon: 'pi pi-search',
1945
+ severity: 'primary',
1946
+ innerHTML: '<p>Search</p>',
1947
+ confirmButtonFn: () => this.submitValue(),
1948
+ confirmButtonText: 'Apply',
1949
+ cancelButtonFn: () => this.clear(),
1950
+ cancelButtonText: 'Clear all',
1951
+ showCancelButton: true,
1952
+ closable: false,
1953
+ });
1954
+ }
1955
+ writeValue(data) {
1956
+ this.formGroup.patchValue(data);
1957
+ }
1958
+ registerOnChange(fn) {
1959
+ this.onChange = fn;
1960
+ }
1961
+ registerOnTouched(fn) {
1962
+ this.onTouch = fn;
1963
+ }
1964
+ setDisabledState(isDisabled) {
1965
+ isDisabled ? this.formGroup.disable() : this.formGroup.enable();
1966
+ }
1967
+ submitValue() {
1968
+ if (!this.autoBind) {
1969
+ this.onChange?.(this.formGroup.value);
1970
+ }
1971
+ }
1972
+ setFilterValues(dialogFormGroup) {
1973
+ this.formGroup.setValue(dialogFormGroup.value);
1974
+ this.submitValue();
1975
+ }
1976
+ clear() {
1977
+ this.formGroup.reset();
1978
+ this.submitValue();
1979
+ }
1980
+ convertFilter(value) {
1981
+ if (value == undefined) {
1982
+ return undefined;
1983
+ }
1984
+ const isEmpty = isFilterEmpty(value);
1985
+ if (isEmpty) {
1986
+ return undefined;
1987
+ }
1988
+ return value;
1989
+ }
1990
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1991
+ 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: [
1992
+ {
1993
+ provide: NG_VALUE_ACCESSOR,
1994
+ useExisting: forwardRef(() => FilterComponent),
1995
+ multi: true,
1996
+ },
1997
+ {
1998
+ provide: FILTER_COMPONENT_TOKEN,
1999
+ useExisting: FilterComponent,
2000
+ },
2001
+ ], queries: [{ propertyName: "fieldDeclarations", predicate: FilterFieldDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"v-filter w-100 p-3 bg-primary\">\n @if (formGroup$ | async; as formGroup){\n <form [formGroup]=\"formGroup\" class=\"d-flex align-items-center\">\n @if (title) {\n <div class=\"v-filter_title pe-4\">\n <h2 class=\"text-white m-0\">{{ title }}</h2>\n </div>\n }\n <div class=\"v-filter__fulltext flex-grow-1 pe-4\">\n @if (showFulltext){\n <v-textfield\n class=\"d-none d-lg-block\"\n placeholder=\"Search\"\n size=\"large\"\n formControlName=\"searchField\"\n type=\"search\"\n [clearable]=\"true\"\n >\n </v-textfield>\n }\n </div>\n @if (simpleFormFieldDefinitions$ | async; as declaration){\n @if (showFilters)\n {\n <div class=\"v-filter_filters d-none d-sm-block me-2\">\n <v-generic-form\n [fields]=\"declaration\"\n [formGroup]=\"formGroup\"\n ></v-generic-form>\n <v-button label=\"X\" class=\"mt-3\" (click)=\"clear()\" />\n </div>\n }\n <div class=\"v-filter_action-buttons d-flex\">\n @if (declaration.length && !showFilters) {\n <v-button \n class=\"me-4\"\n [icon]=\"icons.filter\"\n [label]=\"$any(filledFiltersCount$ | async)\"\n (click)=\"openFilter()\"\n />\n } @if (!autoBind) {\n <v-button\n useShortCut\n [shortCutFn]=\"submitValue.bind(this)\"\n shortCutKey=\"Enter\"\n class=\"text-white mx-2\"\n [outlined]=\"true\"\n size=\"small\"\n label=\"Apply\"\n (click)=\"submitValue()\"\n ></v-button>\n <v-button\n useShortCut\n [shortCutFn]=\"clear.bind(this)\"\n shortCutKey=\"Escape\"\n class=\"text-white\"\n [outlined]=\"true\"\n size=\"small\"\n label=\"Clear\"\n (click)=\"clear()\"\n ></v-button>\n } \n </div>\n }\n <ng-content select=\"v-action-button-group\"></ng-content>\n </form>\n }\n</div>\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 }); }
2002
+ }
2003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FilterComponent, decorators: [{
2004
+ type: Component,
2005
+ args: [{ selector: 'v-filter', standalone: true, imports: [
2006
+ AsyncPipe,
2007
+ ReactiveFormsModule,
2008
+ BadgeModule,
2009
+ TextfieldComponent,
2010
+ GenericFormComponent,
2011
+ ButtonComponent,
2012
+ ButtonShortCutDirective,
2013
+ ], providers: [
2014
+ {
2015
+ provide: NG_VALUE_ACCESSOR,
2016
+ useExisting: forwardRef(() => FilterComponent),
2017
+ multi: true,
2018
+ },
2019
+ {
2020
+ provide: FILTER_COMPONENT_TOKEN,
2021
+ useExisting: FilterComponent,
2022
+ },
2023
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"v-filter w-100 p-3 bg-primary\">\n @if (formGroup$ | async; as formGroup){\n <form [formGroup]=\"formGroup\" class=\"d-flex align-items-center\">\n @if (title) {\n <div class=\"v-filter_title pe-4\">\n <h2 class=\"text-white m-0\">{{ title }}</h2>\n </div>\n }\n <div class=\"v-filter__fulltext flex-grow-1 pe-4\">\n @if (showFulltext){\n <v-textfield\n class=\"d-none d-lg-block\"\n placeholder=\"Search\"\n size=\"large\"\n formControlName=\"searchField\"\n type=\"search\"\n [clearable]=\"true\"\n >\n </v-textfield>\n }\n </div>\n @if (simpleFormFieldDefinitions$ | async; as declaration){\n @if (showFilters)\n {\n <div class=\"v-filter_filters d-none d-sm-block me-2\">\n <v-generic-form\n [fields]=\"declaration\"\n [formGroup]=\"formGroup\"\n ></v-generic-form>\n <v-button label=\"X\" class=\"mt-3\" (click)=\"clear()\" />\n </div>\n }\n <div class=\"v-filter_action-buttons d-flex\">\n @if (declaration.length && !showFilters) {\n <v-button \n class=\"me-4\"\n [icon]=\"icons.filter\"\n [label]=\"$any(filledFiltersCount$ | async)\"\n (click)=\"openFilter()\"\n />\n } @if (!autoBind) {\n <v-button\n useShortCut\n [shortCutFn]=\"submitValue.bind(this)\"\n shortCutKey=\"Enter\"\n class=\"text-white mx-2\"\n [outlined]=\"true\"\n size=\"small\"\n label=\"Apply\"\n (click)=\"submitValue()\"\n ></v-button>\n <v-button\n useShortCut\n [shortCutFn]=\"clear.bind(this)\"\n shortCutKey=\"Escape\"\n class=\"text-white\"\n [outlined]=\"true\"\n size=\"small\"\n label=\"Clear\"\n (click)=\"clear()\"\n ></v-button>\n } \n </div>\n }\n <ng-content select=\"v-action-button-group\"></ng-content>\n </form>\n }\n</div>\n" }]
2024
+ }], propDecorators: { fieldDeclarations: [{
2025
+ type: ContentChildren,
2026
+ args: [FilterFieldDirective]
2027
+ }], fields: [{
2028
+ type: Input
2029
+ }], filters: [{
2030
+ type: Input
2031
+ }], title: [{
2032
+ type: Input
2033
+ }], fulltextFieldName: [{
2034
+ type: Input
2035
+ }], showFulltext: [{
2036
+ type: Input
2037
+ }], showFilters: [{
2038
+ type: Input
2039
+ }], autoBind: [{
2040
+ type: Input
2041
+ }], debounceTime: [{
2042
+ type: Input
2043
+ }] } });
2044
+
2045
+ class FeatureListFilterFieldDirective extends FilterFieldDirective {
2046
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListFilterFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2047
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FeatureListFilterFieldDirective, isStandalone: true, selector: "v-feature-list-filter-field", usesInheritance: true, ngImport: i0 }); }
2048
+ }
2049
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListFilterFieldDirective, decorators: [{
2050
+ type: Directive,
2051
+ args: [{
2052
+ // eslint-disable-next-line @angular-eslint/directive-selector
2053
+ selector: 'v-feature-list-filter-field',
2054
+ standalone: true,
2055
+ }]
2056
+ }] });
2057
+
2058
+ class FeatureListFilterPipe {
2059
+ transform(value) {
2060
+ if (!value) {
2061
+ return undefined;
2062
+ }
2063
+ return value.filter(x => x.filter).map((x, index) => ({
2064
+ name: x.id,
2065
+ label: typeof x.headerName === 'function' ? x.headerName(x.id, index) : x.headerName ?? '',
2066
+ type: x.type,
2067
+ }));
2068
+ }
2069
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2070
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: FeatureListFilterPipe, isStandalone: true, name: "featureListColumn" }); }
2071
+ }
2072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListFilterPipe, decorators: [{
2073
+ type: Pipe,
2074
+ args: [{
2075
+ name: 'featureListColumn',
2076
+ standalone: true,
2077
+ }]
2078
+ }] });
2079
+
2080
+ class FeatureListPageComponent {
2081
+ constructor(activatedRoute) {
2082
+ this.config =
2083
+ activatedRoute.snapshot.data[FEATURE_LIST_PAGE_CONFIG_PROPERTY];
2084
+ }
2085
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListPageComponent, deps: [{ token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2086
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeatureListPageComponent, isStandalone: true, selector: "v-feature-list-page", ngImport: i0, template: `
2087
+ <v-feature-list
2088
+ [title]="config.title"
2089
+ [tableName]="config.tableName"
2090
+ [showAdd]="config.showAdd ?? true"
2091
+ [showDownload]="config.showDownload ?? true"
2092
+ [showDelete]="config.showDelete ?? true"
2093
+ >
2094
+ </v-feature-list>
2095
+ `, isInline: true, dependencies: [{ kind: "component", type: FeatureListComponent, selector: "v-feature-list", inputs: ["autoBind", "title", "columns", "filters", "maxVisibleActions", "tableName", "ngrxFeatureKey", "maxVisibleMobileActions", "showExtendedFilter", "showDownload", "showDelete", "showAdd", "canDownload", "canDelete", "canAdd", "useRouterFilter", "fulltextFieldName", "showFulltext", "deleteConfirmMessage", "autoDeleteEnabled", "autoDownloadEnabled", "downloadFileName", "datasource", "extraFilter", "disableCustomClicks", "maximumColumnLength", "selectionMode"], outputs: ["addClick", "downloadClick", "deleteClick", "selectionChange"] }] }); }
2096
+ }
2097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListPageComponent, decorators: [{
2098
+ type: Component,
2099
+ args: [{
2100
+ selector: 'v-feature-list-page',
2101
+ standalone: true,
2102
+ imports: [FeatureListComponent],
2103
+ template: `
2104
+ <v-feature-list
2105
+ [title]="config.title"
2106
+ [tableName]="config.tableName"
2107
+ [showAdd]="config.showAdd ?? true"
2108
+ [showDownload]="config.showDownload ?? true"
2109
+ [showDelete]="config.showDelete ?? true"
2110
+ >
2111
+ </v-feature-list>
2112
+ `,
2113
+ }]
2114
+ }], ctorParameters: () => [{ type: i1$2.ActivatedRoute }] });
2115
+
2116
+ const FEATURE_LIST_PAGE_CONFIG_PROPERTY = 'feature_list_config';
2117
+ function addFeatureListPage(value) {
2118
+ const { config, ...route } = value;
2119
+ return {
2120
+ component: FeatureListPageComponent,
2121
+ ...route,
2122
+ data: {
2123
+ [FEATURE_LIST_PAGE_CONFIG_PROPERTY]: config,
2124
+ ...(route.data ?? {}),
2125
+ },
2126
+ };
2127
+ }
2128
+ const FEATURE_LIST_COLUMN_PROVIDER = new InjectionToken('FEATURE_LIST_COLUMN_PROVIDER');
2129
+
2130
+ class FeatureListComponent {
2131
+ constructor() {
2132
+ this.autoBind = true;
2133
+ this.maxVisibleActions = 2;
2134
+ this.maxVisibleMobileActions = 0;
2135
+ this.showExtendedFilter = false;
2136
+ this.showDownload = false;
2137
+ this.showDelete = false;
2138
+ this.showAdd = false;
2139
+ this.canDownload = true;
2140
+ this.canDelete = true;
2141
+ this.canAdd = true;
2142
+ this.useRouterFilter = true;
2143
+ this.fulltextFieldName = 'searchField';
2144
+ this.showFulltext = true;
2145
+ this.autoDeleteEnabled = true;
2146
+ this.autoDownloadEnabled = true;
2147
+ this.downloadFileName = 'export.csv';
2148
+ this.disableCustomClicks = false;
2149
+ this.maximumColumnLength = MAX_COLUMN_CHAR_COUNT;
2150
+ this.addClick = new EventEmitter();
2151
+ this.downloadClick = new EventEmitter();
2152
+ this.deleteClick = new EventEmitter();
2153
+ this.selectionChange = new EventEmitter();
2154
+ this.icons = Icons;
2155
+ this.httpClient = inject(HttpClient);
2156
+ this.baseUrl = inject(BASE_URL_PATH);
2157
+ this.cdRef = inject(ChangeDetectorRef);
2158
+ this.dialogService = inject(DialogService);
2159
+ this.selection = [];
2160
+ }
2161
+ set selectionMode(mode) {
2162
+ this._selectionMode = mode;
2163
+ }
2164
+ get selectionMode() {
2165
+ return this.canDelete
2166
+ ? TableSelectionMode.single
2167
+ : this._selectionMode;
2168
+ }
2169
+ ngAfterViewInit() {
2170
+ if (this.viewColumns?.length) {
2171
+ const vewColumns = this.viewColumns
2172
+ ?.toArray()
2173
+ .map((x) => x.getDefinition());
2174
+ this.columns = [...(this.columns ?? []), ...(vewColumns ?? [])];
2175
+ this.cdRef.detectChanges();
2176
+ }
2177
+ if (this.fieldDeclarations?.length) {
2178
+ this.filters = this.fieldDeclarations?.toArray();
2179
+ }
2180
+ this.cdRef.detectChanges();
2181
+ }
2182
+ selectItems(items) {
2183
+ this.selection = items ?? [];
2184
+ if (this.selectionMode !== undefined) {
2185
+ this.selectionChange.emit(this.selectionMode === 'multiple'
2186
+ ? this.selection
2187
+ : this.selection[0]);
2188
+ }
2189
+ }
2190
+ startDeleteItems() {
2191
+ if (!this.selection.length) {
2192
+ return;
2193
+ }
2194
+ if (this.deleteConfirmMessage) {
2195
+ const message = this.deleteConfirmMessage;
2196
+ this.dialogService.showDialog({
2197
+ innerHTML: message,
2198
+ confirmButtonFn: () => this.deleteItems(this.selection),
2199
+ });
2200
+ }
2201
+ else {
2202
+ this.deleteItems(this.selection);
2203
+ }
2204
+ }
2205
+ startDownload() {
2206
+ this.downloadClick.emit();
2207
+ if (!this.autoDownloadEnabled) {
2208
+ return;
2209
+ }
2210
+ const dowloadFn = this.createDownloadFn(this.datasource);
2211
+ if (dowloadFn) {
2212
+ this.tableDatasourceDirective.params$
2213
+ .pipe(take(1), switchMap((params) => dowloadFn(params)))
2214
+ .subscribe((blob) => {
2215
+ downloadFile(this.downloadFileName, blob);
2216
+ });
2217
+ }
2218
+ }
2219
+ deleteItems(items) {
2220
+ if (!this.autoDeleteEnabled) {
2221
+ this.deleteClick.emit(items);
2222
+ }
2223
+ else {
2224
+ this.forceDelete(items);
2225
+ }
2226
+ }
2227
+ forceDelete(items) {
2228
+ const deleteFn = this.createDeleteFn(this.datasource);
2229
+ if (deleteFn) {
2230
+ const deleteMethods = items.map((x) => deleteFn(x));
2231
+ forkJoin(deleteMethods)
2232
+ .pipe(take(1))
2233
+ .subscribe(() => this.finishDeletion(items));
2234
+ }
2235
+ else {
2236
+ this.finishDeletion(items);
2237
+ }
2238
+ }
2239
+ createDeleteFn(datasource) {
2240
+ if (!datasource) {
2241
+ return undefined;
2242
+ }
2243
+ if (typeof datasource === 'string') {
2244
+ const service = new BaseHttpService(this.httpClient, this.baseUrl, datasource);
2245
+ return (item) => service.delete(item.id);
2246
+ }
2247
+ if (datasource instanceof BaseHttpService) {
2248
+ return (item) => datasource.delete(item.id);
2249
+ }
2250
+ return undefined;
2251
+ }
2252
+ createDownloadFn(datasource) {
2253
+ if (!datasource) {
2254
+ return undefined;
2255
+ }
2256
+ if (typeof datasource === 'string') {
2257
+ const service = new BaseHttpService(this.httpClient, this.baseUrl, datasource);
2258
+ return (request) => service.export(request);
2259
+ }
2260
+ if (datasource instanceof BaseHttpService) {
2261
+ return (request) => datasource.export(request);
2262
+ }
2263
+ const fetchFunction = convertDatasource(datasource, this.baseUrl, this.httpClient);
2264
+ return (request) => {
2265
+ const allData = [];
2266
+ let offset = 0;
2267
+ const fetchAllData = () => {
2268
+ return fetchFunction({
2269
+ ...request,
2270
+ offset,
2271
+ limit: DEFAULT_PAGE_SIZE,
2272
+ }).pipe(take(1), switchMap((response) => {
2273
+ allData.push(...response.data);
2274
+ if (allData.length < response.total) {
2275
+ offset = offset + DEFAULT_PAGE_SIZE;
2276
+ return fetchAllData();
2277
+ }
2278
+ else {
2279
+ return of(this.convertToBlob(allData));
2280
+ }
2281
+ }));
2282
+ };
2283
+ return fetchAllData();
2284
+ };
2285
+ }
2286
+ finishDeletion(items) {
2287
+ if (this.datasource && Array.isArray(this.datasource)) {
2288
+ this.datasource = this.datasource.filter((x) => !items.includes(x));
2289
+ }
2290
+ else {
2291
+ this.tableDatasourceDirective.reload();
2292
+ }
2293
+ this.deleteClick.emit(items);
2294
+ }
2295
+ convertToBlob(data) {
2296
+ const columnModel = this.columns.map((x) => new ColumnModel(x));
2297
+ const headers = columnModel.map((x, index) => x.headerGetter(x.id, index));
2298
+ const dataValues = data.map((row, rowIndex) => columnModel.map((column) => column.valueGetter(row, rowIndex)));
2299
+ const csvData = [headers, ...dataValues]
2300
+ .map((row) => row.join(','))
2301
+ .join('\n');
2302
+ return new Blob([csvData], { type: 'text/csv' });
2303
+ }
2304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: FeatureListComponent, isStandalone: true, selector: "v-feature-list", inputs: { autoBind: "autoBind", title: "title", columns: "columns", filters: "filters", maxVisibleActions: "maxVisibleActions", tableName: "tableName", ngrxFeatureKey: "ngrxFeatureKey", maxVisibleMobileActions: "maxVisibleMobileActions", showExtendedFilter: "showExtendedFilter", showDownload: "showDownload", showDelete: "showDelete", showAdd: "showAdd", canDownload: "canDownload", canDelete: "canDelete", canAdd: "canAdd", useRouterFilter: "useRouterFilter", fulltextFieldName: "fulltextFieldName", showFulltext: "showFulltext", deleteConfirmMessage: "deleteConfirmMessage", autoDeleteEnabled: "autoDeleteEnabled", autoDownloadEnabled: "autoDownloadEnabled", downloadFileName: "downloadFileName", datasource: "datasource", extraFilter: "extraFilter", disableCustomClicks: "disableCustomClicks", maximumColumnLength: "maximumColumnLength", selectionMode: "selectionMode" }, outputs: { addClick: "addClick", downloadClick: "downloadClick", deleteClick: "deleteClick", selectionChange: "selectionChange" }, queries: [{ propertyName: "viewColumns", predicate: FEATURE_LIST_COLUMN_PROVIDER }, { propertyName: "fieldDeclarations", predicate: FeatureListFilterFieldDirective }], viewQueries: [{ propertyName: "tableDatasourceDirective", first: true, predicate: TableDatasourceDirective, descendants: true }], ngImport: i0, template: "<div class=\"feature-list__container full-height-container\">\n <v-filter\n #filter\n [title]=\"title\"\n [fields]=\"columns | featureListColumn\"\n [filters]=\"filters\"\n [fulltextFieldName]=\"fulltextFieldName\"\n [showFulltext]=\"showFulltext\"\n [showFilters]=\"showExtendedFilter\"\n >\n <v-action-button-group\n [maxItems]=\"maxVisibleActions\"\n [maxItemsMobile]=\"maxVisibleMobileActions\"\n >\n @if (showAdd) {\n <v-action-button\n [icon]=\"icons.add\"\n label=\"Add\"\n [disabled]=\"!canAdd\"\n (click)=\"addClick.emit()\"\n ></v-action-button>\n } @if (showDelete){\n <v-action-button\n [icon]=\"icons.delete\"\n label=\"Delete\"\n [disabled]=\"!canDelete || !selection.length\"\n (click)=\"startDeleteItems()\"\n ></v-action-button>\n } @if (showDownload){\n <v-action-button\n [icon]=\"icons.download\"\n label=\"Download\"\n [disabled]=\"!canDownload\"\n (click)=\"startDownload()\"\n ></v-action-button>\n }\n </v-action-button-group>\n </v-filter>\n <div class=\"feature-list__table-container full-height-container\">\n <div class=\"full-height-container\">\n <v-table\n useDatasource\n useFilter\n [filterComponent]=\"filter\"\n class=\"full-height-container\"\n [selectionMode]=\"selectionMode\"\n [tableName]=\"tableName\"\n [autoBind]=\"true\"\n [datasource]=\"datasource\"\n [columns]=\"columns\"\n [extraFilter]=\"extraFilter\"\n [maximumColumnLength]=\"maximumColumnLength\"\n [disableCustomClicks]=\"disableCustomClicks\"\n (selectionChange)=\"selectItems($event)\"\n >\n </v-table>\n </div>\n </div>\n</div>\n", styles: [".full-height-container,:host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"], dependencies: [{ kind: "component", type: TableComponent, selector: "v-table", inputs: ["data", "total", "filter", "loading", "scrollable", "pageSize", "currentPage", "showPaginator", "sortMultiple", "lazy", "selectionMode", "showPageSizePicker", "entityKey", "maximumColumnLength", "disableCustomClicks", "columns", "selection"], outputs: ["pageSizeChange", "selectionChange", "pageChange", "sortChange", "lazyLoad"] }, { kind: "directive", type: TableDatasourceDirective, selector: "v-table[useDatasource]", inputs: ["autoBind", "tableName", "debounceTime", "datasource", "extraFilter", "transformFn"], exportAs: ["useDatasource"] }, { kind: "component", type: FilterComponent, selector: "v-filter", inputs: ["fields", "filters", "title", "fulltextFieldName", "showFulltext", "showFilters", "autoBind", "debounceTime"] }, { kind: "directive", type: TableFilterDirective, selector: "v-table[useFilter]", inputs: ["filterComponent"], exportAs: ["tableFilterDirective"] }, { kind: "component", type: ActionButtonGroupComponent, selector: "v-action-button-group", inputs: ["maxItems", "maxItemsMobile", "items", "menuIconPos", "menuIcon", "label", "icon"] }, { kind: "component", type: ActionButtonComponent, selector: "v-action-button", inputs: ["disabled", "toolTip", "id", "icon", "outlined", "raised", "severity", "label", "size"], outputs: ["click"] }, { kind: "pipe", type: FeatureListFilterPipe, name: "featureListColumn" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2306
+ }
2307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListComponent, decorators: [{
2308
+ type: Component,
2309
+ args: [{ selector: 'v-feature-list', imports: [
2310
+ TableComponent,
2311
+ TableDatasourceDirective,
2312
+ FilterComponent,
2313
+ TableFilterDirective,
2314
+ ActionButtonGroupComponent,
2315
+ ActionButtonComponent,
2316
+ FeatureListFilterPipe,
2317
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"feature-list__container full-height-container\">\n <v-filter\n #filter\n [title]=\"title\"\n [fields]=\"columns | featureListColumn\"\n [filters]=\"filters\"\n [fulltextFieldName]=\"fulltextFieldName\"\n [showFulltext]=\"showFulltext\"\n [showFilters]=\"showExtendedFilter\"\n >\n <v-action-button-group\n [maxItems]=\"maxVisibleActions\"\n [maxItemsMobile]=\"maxVisibleMobileActions\"\n >\n @if (showAdd) {\n <v-action-button\n [icon]=\"icons.add\"\n label=\"Add\"\n [disabled]=\"!canAdd\"\n (click)=\"addClick.emit()\"\n ></v-action-button>\n } @if (showDelete){\n <v-action-button\n [icon]=\"icons.delete\"\n label=\"Delete\"\n [disabled]=\"!canDelete || !selection.length\"\n (click)=\"startDeleteItems()\"\n ></v-action-button>\n } @if (showDownload){\n <v-action-button\n [icon]=\"icons.download\"\n label=\"Download\"\n [disabled]=\"!canDownload\"\n (click)=\"startDownload()\"\n ></v-action-button>\n }\n </v-action-button-group>\n </v-filter>\n <div class=\"feature-list__table-container full-height-container\">\n <div class=\"full-height-container\">\n <v-table\n useDatasource\n useFilter\n [filterComponent]=\"filter\"\n class=\"full-height-container\"\n [selectionMode]=\"selectionMode\"\n [tableName]=\"tableName\"\n [autoBind]=\"true\"\n [datasource]=\"datasource\"\n [columns]=\"columns\"\n [extraFilter]=\"extraFilter\"\n [maximumColumnLength]=\"maximumColumnLength\"\n [disableCustomClicks]=\"disableCustomClicks\"\n (selectionChange)=\"selectItems($event)\"\n >\n </v-table>\n </div>\n </div>\n</div>\n", styles: [".full-height-container,:host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"] }]
2318
+ }], propDecorators: { viewColumns: [{
2319
+ type: ContentChildren,
2320
+ args: [FEATURE_LIST_COLUMN_PROVIDER]
2321
+ }], fieldDeclarations: [{
2322
+ type: ContentChildren,
2323
+ args: [FeatureListFilterFieldDirective]
2324
+ }], tableDatasourceDirective: [{
2325
+ type: ViewChild,
2326
+ args: [TableDatasourceDirective]
2327
+ }], autoBind: [{
2328
+ type: Input
2329
+ }], title: [{
2330
+ type: Input
2331
+ }], columns: [{
2332
+ type: Input
2333
+ }], filters: [{
2334
+ type: Input
2335
+ }], maxVisibleActions: [{
2336
+ type: Input
2337
+ }], tableName: [{
2338
+ type: Input,
2339
+ args: [{ required: true }]
2340
+ }], ngrxFeatureKey: [{
2341
+ type: Input
2342
+ }], maxVisibleMobileActions: [{
2343
+ type: Input
2344
+ }], showExtendedFilter: [{
2345
+ type: Input
2346
+ }], showDownload: [{
2347
+ type: Input
2348
+ }], showDelete: [{
2349
+ type: Input
2350
+ }], showAdd: [{
2351
+ type: Input
2352
+ }], canDownload: [{
2353
+ type: Input
2354
+ }], canDelete: [{
2355
+ type: Input
2356
+ }], canAdd: [{
2357
+ type: Input
2358
+ }], useRouterFilter: [{
2359
+ type: Input
2360
+ }], fulltextFieldName: [{
2361
+ type: Input
2362
+ }], showFulltext: [{
2363
+ type: Input
2364
+ }], deleteConfirmMessage: [{
2365
+ type: Input
2366
+ }], autoDeleteEnabled: [{
2367
+ type: Input
2368
+ }], autoDownloadEnabled: [{
2369
+ type: Input
2370
+ }], downloadFileName: [{
2371
+ type: Input
2372
+ }], datasource: [{
2373
+ type: Input
2374
+ }], extraFilter: [{
2375
+ type: Input
2376
+ }], disableCustomClicks: [{
2377
+ type: Input
2378
+ }], maximumColumnLength: [{
2379
+ type: Input
2380
+ }], addClick: [{
2381
+ type: Output
2382
+ }], downloadClick: [{
2383
+ type: Output
2384
+ }], deleteClick: [{
2385
+ type: Output
2386
+ }], selectionChange: [{
2387
+ type: Output
2388
+ }], selectionMode: [{
2389
+ type: Input
2390
+ }] } });
2391
+
2392
+ class FeatureListColumnDirective extends TableColumnDirective {
2393
+ constructor() {
2394
+ super(...arguments);
2395
+ this.filter = false;
2396
+ this.type = GenericFieldType.text;
2397
+ }
2398
+ getDefinition() {
2399
+ const definition = super.getDefinition();
2400
+ definition.filter = this.filter;
2401
+ definition.type = this.type;
2402
+ definition.format = this.format;
2403
+ return definition;
2404
+ }
2405
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListColumnDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2406
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: FeatureListColumnDirective, isStandalone: true, selector: "v-feature-list-column", inputs: { filter: "filter", type: "type" }, providers: [
2407
+ {
2408
+ provide: FEATURE_LIST_COLUMN_PROVIDER,
2409
+ useExisting: FeatureListColumnDirective,
2410
+ multi: true,
2411
+ },
2412
+ ], usesInheritance: true, ngImport: i0 }); }
2413
+ }
2414
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeatureListColumnDirective, decorators: [{
2415
+ type: Directive,
2416
+ args: [{
2417
+ // eslint-disable-next-line @angular-eslint/directive-selector
2418
+ selector: 'v-feature-list-column',
2419
+ standalone: true,
2420
+ providers: [
2421
+ {
2422
+ provide: FEATURE_LIST_COLUMN_PROVIDER,
2423
+ useExisting: FeatureListColumnDirective,
2424
+ multi: true,
2425
+ },
2426
+ ],
2427
+ }]
2428
+ }], propDecorators: { filter: [{
2429
+ type: Input
2430
+ }], type: [{
2431
+ type: Input
2432
+ }] } });
2433
+
2434
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2435
+ class DynamicComponentFactoryService {
2436
+ constructor(componentFactoryResolver) {
2437
+ this.componentFactoryResolver = componentFactoryResolver;
2438
+ }
2439
+ ngOnDestroy() {
2440
+ this.unsubscribeComponentEvents(this);
2441
+ }
2442
+ async createDynamicComponent(componentType, viewContainerRef, inputs, injector = undefined) {
2443
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);
2444
+ viewContainerRef.clear();
2445
+ const component = viewContainerRef.createComponent(componentFactory, undefined, injector);
2446
+ this.setComponentDataInt(componentFactory, component, inputs);
2447
+ this.fireComponentEvents(component.instance, inputs);
2448
+ return component;
2449
+ }
2450
+ setComponentData(component, inputs) {
2451
+ const factory = this.componentFactoryResolver.resolveComponentFactory(component.componentType);
2452
+ this.setComponentDataInt(factory, component, inputs);
2453
+ }
2454
+ unsubscribeComponentEvents(instance) {
2455
+ const subscriptionStoreKey = '__outputSubscriptions__';
2456
+ const subscriptions = instance[subscriptionStoreKey];
2457
+ if (subscriptions) {
2458
+ subscriptions.forEach((sub) => sub.unsubscribe());
2459
+ subscriptions.clear();
2460
+ }
2461
+ }
2462
+ fireComponentEvents(instance, inputs) {
2463
+ if (!instance || typeof instance !== 'object')
2464
+ return;
2465
+ this.fireInputComponentEvents(instance, inputs);
2466
+ this.fireOutputComponentEvents(instance, inputs);
2467
+ }
2468
+ setComponentDataInt(factory, component, inputs) {
2469
+ if (inputs) {
2470
+ const propertyNames = factory.inputs.map((x) => x.propName);
2471
+ const inputsHash = new Set(propertyNames);
2472
+ Object.keys(inputs)
2473
+ .filter((x) => inputsHash.has(x))
2474
+ .forEach((x) => {
2475
+ component.instance[x] = inputs[x];
2476
+ });
2477
+ }
2478
+ }
2479
+ fireInputComponentEvents(instance, inputs) {
2480
+ const onChangeComponent = instance;
2481
+ if (onChangeComponent.ngOnChanges && inputs) {
2482
+ const changeEventArgs = Object.keys(inputs).reduce((changes, key) => {
2483
+ const inputValue = inputs[key];
2484
+ changes[key] = new SimpleChange(undefined, inputValue, true);
2485
+ return changes;
2486
+ }, {});
2487
+ onChangeComponent.ngOnChanges(changeEventArgs);
2488
+ }
2489
+ }
2490
+ fireOutputComponentEvents(instance, inputs) {
2491
+ const outputs = Object.keys(inputs).filter((key) => {
2492
+ const emitter = instance[key];
2493
+ return emitter instanceof EventEmitter;
2494
+ });
2495
+ const subscriptionStoreKey = '__outputSubscriptions__';
2496
+ if (!(subscriptionStoreKey in instance)) {
2497
+ instance[subscriptionStoreKey] = new Map();
2498
+ }
2499
+ const subscriptions = instance[subscriptionStoreKey];
2500
+ for (const outputKey of outputs) {
2501
+ const eventEmitter = instance[outputKey];
2502
+ const callback = inputs[outputKey];
2503
+ if (eventEmitter && typeof callback === 'function') {
2504
+ if (subscriptions.has(outputKey)) {
2505
+ subscriptions.get(outputKey).unsubscribe();
2506
+ }
2507
+ const subscription = eventEmitter.subscribe((value) => callback(value));
2508
+ subscriptions.set(outputKey, subscription);
2509
+ }
2510
+ }
2511
+ }
2512
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DynamicComponentFactoryService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
2513
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DynamicComponentFactoryService, providedIn: 'root' }); }
2514
+ }
2515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DynamicComponentFactoryService, decorators: [{
2516
+ type: Injectable,
2517
+ args: [{
2518
+ providedIn: 'root',
2519
+ }]
2520
+ }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });
2521
+
2522
+ class DynamicComponent {
2523
+ constructor() {
2524
+ this.factoryServices = inject(DynamicComponentFactoryService);
2525
+ this.changeDetectorRef = inject(ChangeDetectorRef);
2526
+ this.injector = inject(Injector);
2527
+ }
2528
+ ngOnChanges() {
2529
+ this.createComponent();
2530
+ }
2531
+ ngAfterViewInit() {
2532
+ this.createComponent();
2533
+ this.changeDetectorRef.detectChanges();
2534
+ }
2535
+ createComponent() {
2536
+ if (this.container) {
2537
+ this.factoryServices.createDynamicComponent(this.componentType, this.container, this.data, this.injector);
2538
+ }
2539
+ }
2540
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DynamicComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2541
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DynamicComponent, isStandalone: true, selector: "v-dynamic-component", inputs: { componentType: "componentType", data: "data" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<ng-container #dynamicContainer></ng-container>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2542
+ }
2543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DynamicComponent, decorators: [{
2544
+ type: Component,
2545
+ args: [{
2546
+ selector: 'v-dynamic-component',
2547
+ standalone: true,
2548
+ changeDetection: ChangeDetectionStrategy.OnPush,
2549
+ template: `<ng-container #dynamicContainer></ng-container>`,
2550
+ }]
2551
+ }], propDecorators: { componentType: [{
2552
+ type: Input
2553
+ }], data: [{
2554
+ type: Input
2555
+ }], container: [{
2556
+ type: ViewChild,
2557
+ args: ['dynamicContainer', { read: ViewContainerRef, static: true }]
2558
+ }] } });
2559
+
2560
+ class PageHeaderComponent extends PageHeaderCoreComponent {
2561
+ constructor() {
2562
+ super(...arguments);
2563
+ this.icons = Icons;
2564
+ }
2565
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PageHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2566
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: PageHeaderComponent, isStandalone: true, selector: "v-page-header", providers: [
2567
+ { provide: PAGE_HEADER_COMPONENT_TOKEN, useExisting: PageHeaderComponent },
2568
+ ], queries: [{ propertyName: "buttonGroup", first: true, predicate: ActionButtonGroupComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"v-page-header d-block d-md-flex px-3 w-100 gap-0 gap-md-4 align-items-center text-center text-md-start\"\n>\n <v-button\n *ngIf=\"showBackButton\"\n size=\"small\"\n [icon]=\"icons.arrowLeft\"\n label=\"Back\"\n [outlined]=\"true\"\n (click)=\"locationBack()\"\n ></v-button>\n <div\n class=\"align-items-center justify-content-center justify-content-md-start gap-2 w-100 d-flex\"\n >\n <h1 class=\"text-primary m-0\" [innerText]=\"title\"></h1>\n <div\n *ngIf=\"subtitle\"\n class=\"d-flex gap-2 align-items-center text-center text-md-start\"\n >\n <h1 class=\"text-default m-0\" [innerText]=\"'-'\"></h1>\n <h1 class=\"text-default\" [innerText]=\"subtitle\"></h1>\n </div>\n </div>\n <div\n class=\"align-content-center page-header-action-buttons justify-content-center w-100\"\n >\n <div *ngIf=\"buttonGroup\">\n <ng-content [select]=\"buttonGroup\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2569
+ }
2570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PageHeaderComponent, decorators: [{
2571
+ type: Component,
2572
+ args: [{ selector: 'v-page-header', standalone: true, imports: [CommonModule, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
2573
+ { provide: PAGE_HEADER_COMPONENT_TOKEN, useExisting: PageHeaderComponent },
2574
+ ], template: "<div\n class=\"v-page-header d-block d-md-flex px-3 w-100 gap-0 gap-md-4 align-items-center text-center text-md-start\"\n>\n <v-button\n *ngIf=\"showBackButton\"\n size=\"small\"\n [icon]=\"icons.arrowLeft\"\n label=\"Back\"\n [outlined]=\"true\"\n (click)=\"locationBack()\"\n ></v-button>\n <div\n class=\"align-items-center justify-content-center justify-content-md-start gap-2 w-100 d-flex\"\n >\n <h1 class=\"text-primary m-0\" [innerText]=\"title\"></h1>\n <div\n *ngIf=\"subtitle\"\n class=\"d-flex gap-2 align-items-center text-center text-md-start\"\n >\n <h1 class=\"text-default m-0\" [innerText]=\"'-'\"></h1>\n <h1 class=\"text-default\" [innerText]=\"subtitle\"></h1>\n </div>\n </div>\n <div\n class=\"align-content-center page-header-action-buttons justify-content-center w-100\"\n >\n <div *ngIf=\"buttonGroup\">\n <ng-content [select]=\"buttonGroup\"></ng-content>\n </div>\n </div>\n</div>\n" }]
2575
+ }], propDecorators: { buttonGroup: [{
2576
+ type: ContentChild,
2577
+ args: [ActionButtonGroupComponent]
2578
+ }] } });
2579
+
2580
+ class StepperComponent {
2581
+ constructor() {
2582
+ this.icons = Icons;
2583
+ this.size = FieldSize.medium;
2584
+ this.layout = LayoutType.horizontal;
2585
+ this.activeIndex = 0;
2586
+ this.activeIndexChange = new EventEmitter();
2587
+ }
2588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2589
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: StepperComponent, isStandalone: true, selector: "v-stepper", inputs: { items: "items", prefix: "prefix", label: "label", size: "size", layout: "layout", icon: "icon", activeIndex: "activeIndex", annotation: "annotation" }, outputs: { activeIndexChange: "activeIndexChange" }, providers: [
2590
+ { provide: STEPPER_COMPONENT_TOKEN, useExisting: StepperComponent },
2591
+ ], ngImport: i0, template: "<div class=\"v-stepper\">\n <p-stepper>\n <p-stepperPanel\n *ngFor=\"let item of items; let index = index\"\n [header]=\"item.header\"\n >\n <ng-template\n pTemplate=\"content\"\n let-nextCallback=\"nextCallback\"\n let-prevCallback=\"prevCallback\"\n let-index=\"index\"\n >\n <ng-container *ngIf=\"item.template && item.template.elementRef\">\n <ng-template\n *ngTemplateOutlet=\"\n item.template;\n context: { item: item, index: index }\n \"\n />\n </ng-container>\n <div class=\"d-flex pt-4 justify-content-between\">\n <v-button\n *ngIf=\"index > 0\"\n label=\"Back\"\n [icon]=\"icons.arrowLeft\"\n size=\"small\"\n [outlined]=\"true\"\n (click)=\"prevCallback.emit()\"\n />\n\n <v-button\n *ngIf=\"index < items.length - 1\"\n label=\"Next\"\n size=\"small\"\n [icon]=\"icons.arrowRight\"\n iconPos=\"right\"\n (click)=\"nextCallback.emit()\"\n />\n </div>\n </ng-template>\n </p-stepperPanel>\n </p-stepper>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "ngmodule", type: StepperModule }, { kind: "component", type: i2$8.Stepper, selector: "p-stepper", inputs: ["activeStep", "orientation", "linear", "transitionOptions"], outputs: ["onClick", "activeStepChange"] }, { kind: "component", type: i2$8.StepperPanel, selector: "p-stepperPanel", inputs: ["header"] }, { kind: "directive", type: i1$5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2592
+ }
2593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StepperComponent, decorators: [{
2594
+ type: Component,
2595
+ args: [{ selector: 'v-stepper', standalone: true, imports: [CommonModule, ButtonComponent, StepperModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
2596
+ { provide: STEPPER_COMPONENT_TOKEN, useExisting: StepperComponent },
2597
+ ], template: "<div class=\"v-stepper\">\n <p-stepper>\n <p-stepperPanel\n *ngFor=\"let item of items; let index = index\"\n [header]=\"item.header\"\n >\n <ng-template\n pTemplate=\"content\"\n let-nextCallback=\"nextCallback\"\n let-prevCallback=\"prevCallback\"\n let-index=\"index\"\n >\n <ng-container *ngIf=\"item.template && item.template.elementRef\">\n <ng-template\n *ngTemplateOutlet=\"\n item.template;\n context: { item: item, index: index }\n \"\n />\n </ng-container>\n <div class=\"d-flex pt-4 justify-content-between\">\n <v-button\n *ngIf=\"index > 0\"\n label=\"Back\"\n [icon]=\"icons.arrowLeft\"\n size=\"small\"\n [outlined]=\"true\"\n (click)=\"prevCallback.emit()\"\n />\n\n <v-button\n *ngIf=\"index < items.length - 1\"\n label=\"Next\"\n size=\"small\"\n [icon]=\"icons.arrowRight\"\n iconPos=\"right\"\n (click)=\"nextCallback.emit()\"\n />\n </div>\n </ng-template>\n </p-stepperPanel>\n </p-stepper>\n</div>\n" }]
2598
+ }], propDecorators: { items: [{
2599
+ type: Input
2600
+ }], prefix: [{
2601
+ type: Input
2602
+ }], label: [{
2603
+ type: Input
2604
+ }], size: [{
2605
+ type: Input
2606
+ }], layout: [{
2607
+ type: Input
2608
+ }], icon: [{
2609
+ type: Input
2610
+ }], activeIndex: [{
2611
+ type: Input
2612
+ }], annotation: [{
2613
+ type: Input
2614
+ }], activeIndexChange: [{
2615
+ type: Output
2616
+ }] } });
2617
+
2618
+ class SliderComponent extends BaseFormInputComponent {
2619
+ constructor(ngControl) {
2620
+ super(ngControl);
2621
+ this.step = 1;
2622
+ this.min = 0;
2623
+ this.max = 100;
2624
+ this.range = false;
2625
+ }
2626
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SliderComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
2627
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SliderComponent, isStandalone: true, selector: "v-slider", inputs: { step: "step", min: "min", max: "max", range: "range" }, providers: [
2628
+ {
2629
+ provide: BaseInputControls,
2630
+ useExisting: forwardRef(() => SliderComponent),
2631
+ },
2632
+ {
2633
+ provide: SLIDER_COMPONENT_TOKEN,
2634
+ useExisting: SliderComponent,
2635
+ },
2636
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-slider\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n >\n <p-slider\n class=\"w-100\"\n [formControl]=\"formControl\"\n [step]=\"step\"\n [range]=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i2$9.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }, { 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: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2637
+ }
2638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SliderComponent, decorators: [{
2639
+ type: Component,
2640
+ args: [{ selector: 'v-slider', standalone: true, imports: [
2641
+ CommonModule,
2642
+ SliderModule,
2643
+ ReactiveFormsModule,
2644
+ FormFieldComponent,
2645
+ ErrorComponent
2646
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
2647
+ {
2648
+ provide: BaseInputControls,
2649
+ useExisting: forwardRef(() => SliderComponent),
2650
+ },
2651
+ {
2652
+ provide: SLIDER_COMPONENT_TOKEN,
2653
+ useExisting: SliderComponent,
2654
+ },
2655
+ ], template: "<div class=\"v-slider\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n >\n <p-slider\n class=\"w-100\"\n [formControl]=\"formControl\"\n [step]=\"step\"\n [range]=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n />\n <v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>" }]
2656
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
2657
+ type: Optional
2658
+ }, {
2659
+ type: Self
2660
+ }] }], propDecorators: { step: [{
2661
+ type: Input
2662
+ }], min: [{
2663
+ type: Input
2664
+ }], max: [{
2665
+ type: Input
2666
+ }], range: [{
2667
+ type: Input
2668
+ }] } });
2669
+
2670
+ class ConfirmDialogComponent extends UnsubscribeComponent {
2671
+ constructor(dialogService, cdr) {
2672
+ super();
2673
+ this.dialogService = dialogService;
2674
+ this.cdr = cdr;
2675
+ this.visible = false;
2676
+ this.closable = false;
2677
+ }
2678
+ ngOnInit() {
2679
+ this.dialogService.showEvent
2680
+ .pipe(takeUntil(this.destroyed$))
2681
+ .subscribe((x) => {
2682
+ this.data = x;
2683
+ this.visible = true;
2684
+ this.cdr.detectChanges();
2685
+ });
2686
+ }
2687
+ dialogClick(confirm) {
2688
+ const { confirmButtonFn, cancelButtonFn } = this.data;
2689
+ if (confirm && confirmButtonFn) {
2690
+ confirmButtonFn();
2691
+ }
2692
+ if (!confirm && cancelButtonFn) {
2693
+ cancelButtonFn();
2694
+ }
2695
+ this.visible = false;
2696
+ this.cdr.detectChanges();
2697
+ }
2698
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1$3.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2699
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ConfirmDialogComponent, isStandalone: true, selector: "v-confirm-dialog", providers: [
2700
+ {
2701
+ provide: CONFIRM_DIALOG_COMPONENT_TOKEN,
2702
+ useExisting: ConfirmDialogComponent,
2703
+ },
2704
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-dialog d-flex justify-content-center\" *ngIf=\"data\">\n <p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [closable]=\"closable\"\n [style]=\"{ width: '25rem' }\"\n >\n <ng-template pTemplate=\"header\">\n <div\n class=\"v-dialog-header w-100 align-items-center d-flex justify-content-center\"\n >\n <h1 class=\"text-center me-3\">{{ data.title }}</h1>\n <i class=\"{{ data.headerIcon }} text-{{ data.severity }}\"></i>\n </div>\n </ng-template>\n <div class=\"v-dialog-content w-100 align-items-center text-center\">\n @if (data.innerHTML) {\n <div [innerHTML]=\"data.innerHTML\"></div>\n } @else if (data.componentType) {\n <v-dynamic-component\n [componentType]=\"data.componentType\"\n [data]=\"$any(data.data)\"\n ></v-dynamic-component>\n }\n </div>\n <ng-template pTemplate=\"footer\">\n <div\n class=\"v-dialog-footer d-flex justify-content-center w-100 gap-3\"\n [ngClass]=\"{\n 'flex-row-reverse': data.buttonOrder === 'cancel-confirm'\n }\"\n >\n <v-button\n [label]=\"data.confirmButtonText ?? 'Yes'\"\n [severity]=\"data.severity\"\n (click)=\"data.confirmButtonFn ? dialogClick(true) : (visible = false)\"\n />\n <v-button\n *ngIf=\"data.showCancelButton && data.severity !== 'success'\"\n [label]=\"data.cancelButtonText ?? 'No'\"\n [outlined]=\"true\"\n [severity]=\"'secondary'\"\n (click)=\"data.cancelButtonFn ? dialogClick(false) : (visible = false)\"\n />\n </div>\n </ng-template>\n </p-dialog>\n</div>\n", styles: [".v-dialog-content *{line-height:1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3$9.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i1$5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: ButtonComponent, selector: "v-button", inputs: ["label", "icon", "badge", "iconPos", "disabled", "rounded", "outlined", "raised", "severity", "routerLink", "size", "queryParams"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: DynamicComponent, selector: "v-dynamic-component", inputs: ["componentType", "data"] }] }); }
2705
+ }
2706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
2707
+ type: Component,
2708
+ args: [{ selector: 'v-confirm-dialog', standalone: true, imports: [
2709
+ CommonModule,
2710
+ DialogModule,
2711
+ ButtonComponent,
2712
+ AvatarModule,
2713
+ DynamicComponent,
2714
+ ], providers: [
2715
+ {
2716
+ provide: CONFIRM_DIALOG_COMPONENT_TOKEN,
2717
+ useExisting: ConfirmDialogComponent,
2718
+ },
2719
+ ], template: "<div class=\"v-dialog d-flex justify-content-center\" *ngIf=\"data\">\n <p-dialog\n [(visible)]=\"visible\"\n [modal]=\"true\"\n [closable]=\"closable\"\n [style]=\"{ width: '25rem' }\"\n >\n <ng-template pTemplate=\"header\">\n <div\n class=\"v-dialog-header w-100 align-items-center d-flex justify-content-center\"\n >\n <h1 class=\"text-center me-3\">{{ data.title }}</h1>\n <i class=\"{{ data.headerIcon }} text-{{ data.severity }}\"></i>\n </div>\n </ng-template>\n <div class=\"v-dialog-content w-100 align-items-center text-center\">\n @if (data.innerHTML) {\n <div [innerHTML]=\"data.innerHTML\"></div>\n } @else if (data.componentType) {\n <v-dynamic-component\n [componentType]=\"data.componentType\"\n [data]=\"$any(data.data)\"\n ></v-dynamic-component>\n }\n </div>\n <ng-template pTemplate=\"footer\">\n <div\n class=\"v-dialog-footer d-flex justify-content-center w-100 gap-3\"\n [ngClass]=\"{\n 'flex-row-reverse': data.buttonOrder === 'cancel-confirm'\n }\"\n >\n <v-button\n [label]=\"data.confirmButtonText ?? 'Yes'\"\n [severity]=\"data.severity\"\n (click)=\"data.confirmButtonFn ? dialogClick(true) : (visible = false)\"\n />\n <v-button\n *ngIf=\"data.showCancelButton && data.severity !== 'success'\"\n [label]=\"data.cancelButtonText ?? 'No'\"\n [outlined]=\"true\"\n [severity]=\"'secondary'\"\n (click)=\"data.cancelButtonFn ? dialogClick(false) : (visible = false)\"\n />\n </div>\n </ng-template>\n </p-dialog>\n</div>\n", styles: [".v-dialog-content *{line-height:1.5rem}\n"] }]
2720
+ }], ctorParameters: () => [{ type: i1$3.DialogService }, { type: i0.ChangeDetectorRef }] });
2721
+
2722
+ class SwitchComponent extends BaseFormInputComponent {
2723
+ constructor(ngControl) {
2724
+ super(ngControl);
2725
+ this.id = v4();
2726
+ }
2727
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SwitchComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
2728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SwitchComponent, isStandalone: true, selector: "v-switch", providers: [
2729
+ {
2730
+ provide: BaseInputControls,
2731
+ useExisting: forwardRef(() => SwitchComponent),
2732
+ multi: true,
2733
+ },
2734
+ {
2735
+ provide: SWITCH_COMPONENT_TOKEN,
2736
+ useExisting: SwitchComponent,
2737
+ },
2738
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"v-switch d-flex align-items-center\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-inputSwitch\n [formControl]=\"formControl\"\n [required]=\"isRequired()\"\n [title]=\"label\"\n [readonly]=\"readonly\"\n [inputId]=\"id\"\n /><v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "component", type: i2$a.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "v-form-field", inputs: ["display", "variant"] }, { kind: "component", type: ErrorComponent, selector: "v-validation-message", inputs: ["ngControl", "errorSlot", "messageSlot", "variant", "severity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2739
+ }
2740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SwitchComponent, decorators: [{
2741
+ type: Component,
2742
+ args: [{ selector: 'v-switch', standalone: true, imports: [
2743
+ CommonModule,
2744
+ InputSwitchModule,
2745
+ ReactiveFormsModule,
2746
+ FormFieldComponent,
2747
+ ErrorComponent
2748
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
2749
+ {
2750
+ provide: BaseInputControls,
2751
+ useExisting: forwardRef(() => SwitchComponent),
2752
+ multi: true,
2753
+ },
2754
+ {
2755
+ provide: SWITCH_COMPONENT_TOKEN,
2756
+ useExisting: SwitchComponent,
2757
+ },
2758
+ ], template: "<div class=\"v-switch d-flex align-items-center\">\n <v-form-field\n class=\"w-100\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [required]=\"isRequired()\"\n [testId]=\"testId\"\n [display]=\"formDisplay\"\n >\n <p-inputSwitch\n [formControl]=\"formControl\"\n [required]=\"isRequired()\"\n [title]=\"label\"\n [readonly]=\"readonly\"\n [inputId]=\"id\"\n /><v-validation-message [ngControl]=\"ngControl\"></v-validation-message>\n </v-form-field>\n</div>\n" }]
2759
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
2760
+ type: Optional
2761
+ }, {
2762
+ type: Self
2763
+ }] }] });
2764
+
2765
+ class HttpErrorMessageInterceptor {
2766
+ constructor(snackbarService) {
2767
+ this.snackbarService = snackbarService;
2768
+ }
2769
+ intercept(req, next) {
2770
+ return next.handle(req).pipe(catchError((errorResponse) => {
2771
+ if (!errorResponse.ok) {
2772
+ if (errorResponse.status === 403) {
2773
+ this.snackbarService.showError('Unauthorized request');
2774
+ console.error('Unauthorized request');
2775
+ }
2776
+ else {
2777
+ this.snackbarService.showError(errorResponse.message);
2778
+ console.error(errorResponse);
2779
+ }
2780
+ }
2781
+ return throwError(() => errorResponse);
2782
+ }));
2783
+ }
2784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HttpErrorMessageInterceptor, deps: [{ token: SnackbarService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2785
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HttpErrorMessageInterceptor }); }
2786
+ }
2787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HttpErrorMessageInterceptor, decorators: [{
2788
+ type: Injectable
2789
+ }], ctorParameters: () => [{ type: SnackbarService }] });
2790
+
2791
+ class TabViewItemComponent {
2792
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2793
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TabViewItemComponent, selector: "v-tab-view-item", inputs: { title: "title", url: "url", icon: "icon", disabled: "disabled", content: "content" }, viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true, static: true }], ngImport: i0, template: `<ng-template #contentTemplate>
2794
+ <ng-content></ng-content>
2795
+ </ng-template>`, isInline: true }); }
2796
+ }
2797
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewItemComponent, decorators: [{
2798
+ type: Component,
2799
+ args: [{
2800
+ selector: 'v-tab-view-item',
2801
+ template: `<ng-template #contentTemplate>
2802
+ <ng-content></ng-content>
2803
+ </ng-template>`,
2804
+ }]
2805
+ }], propDecorators: { contentTemplate: [{
2806
+ type: ViewChild,
2807
+ args: ['contentTemplate', { static: true }]
2808
+ }], title: [{
2809
+ type: Input
2810
+ }], url: [{
2811
+ type: Input
2812
+ }], icon: [{
2813
+ type: Input
2814
+ }], disabled: [{
2815
+ type: Input
2816
+ }], content: [{
2817
+ type: Input
2818
+ }] } });
2819
+
2820
+ class TabMenuPipe {
2821
+ transform(value) {
2822
+ if (!value) {
2823
+ return undefined;
2824
+ }
2825
+ return value.map((x) => ({
2826
+ label: x.title,
2827
+ icon: x.icon,
2828
+ disabled: x.disabled,
2829
+ routerLink: x.url,
2830
+ }));
2831
+ }
2832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabMenuPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2833
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: TabMenuPipe, name: "tabMenu" }); }
2834
+ }
2835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabMenuPipe, decorators: [{
2836
+ type: Pipe,
2837
+ args: [{
2838
+ name: 'tabMenu',
2839
+ pure: true,
2840
+ }]
2841
+ }] });
2842
+
2843
+ class TabViewComponent {
2844
+ constructor() {
2845
+ this.items = [];
2846
+ this.useRouting = false;
2847
+ this.activeIndex = 0;
2848
+ this.activeIndexChange = new EventEmitter();
2849
+ this.mergedItems = [];
2850
+ }
2851
+ ngAfterContentInit() {
2852
+ this.mergedItems = [...this.items, ...this.children.toArray()];
2853
+ }
2854
+ activeItemChanged(item) {
2855
+ let index;
2856
+ if (typeof item === 'number') {
2857
+ index = item;
2858
+ }
2859
+ else {
2860
+ index = this.items.indexOf(item);
2861
+ }
2862
+ if (index != -1) {
2863
+ this.activeIndexChange.emit(index);
2864
+ }
2865
+ }
2866
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2867
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TabViewComponent, selector: "v-tab-view", inputs: { items: "items", useRouting: "useRouting", activeIndex: "activeIndex" }, outputs: { activeIndexChange: "activeIndexChange" }, queries: [{ propertyName: "children", predicate: TabViewItemComponent }], ngImport: i0, template: "<div class=\"v-tab-view\">\n @if (useRouting) {\n <p-tabMenu\n [model]=\"mergedItems | tabMenu\"\n [activeItem]=\"items[activeIndex]\"\n (activeItemChange)=\"activeItemChanged($event)\"\n >\n </p-tabMenu>\n <router-outlet></router-outlet>\n } @else {\n <p-tabView (activeIndexChange)=\"activeItemChanged($event)\">\n @for (item of mergedItems; track item; let index = $index) {\n <p-tabPanel [selected]=\"activeIndex === index\" [header]=\"item.title\" [disabled]=\"item.disabled === true\">\n @if (item.contentTemplate){\n <ng-container *ngTemplateOutlet=\"item.contentTemplate\"></ng-container>\n } @else if (item.content) {\n {{ item.content }}\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2$b.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["activeItemChange"] }, { kind: "component", type: i3$a.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i3$a.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TabMenuPipe, name: "tabMenu" }] }); }
2868
+ }
2869
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewComponent, decorators: [{
2870
+ type: Component,
2871
+ args: [{ selector: 'v-tab-view', template: "<div class=\"v-tab-view\">\n @if (useRouting) {\n <p-tabMenu\n [model]=\"mergedItems | tabMenu\"\n [activeItem]=\"items[activeIndex]\"\n (activeItemChange)=\"activeItemChanged($event)\"\n >\n </p-tabMenu>\n <router-outlet></router-outlet>\n } @else {\n <p-tabView (activeIndexChange)=\"activeItemChanged($event)\">\n @for (item of mergedItems; track item; let index = $index) {\n <p-tabPanel [selected]=\"activeIndex === index\" [header]=\"item.title\" [disabled]=\"item.disabled === true\">\n @if (item.contentTemplate){\n <ng-container *ngTemplateOutlet=\"item.contentTemplate\"></ng-container>\n } @else if (item.content) {\n {{ item.content }}\n }\n </p-tabPanel>\n }\n </p-tabView>\n }\n</div>\n" }]
2872
+ }], propDecorators: { children: [{
2873
+ type: ContentChildren,
2874
+ args: [TabViewItemComponent]
2875
+ }], items: [{
2876
+ type: Input
2877
+ }], useRouting: [{
2878
+ type: Input
2879
+ }], activeIndex: [{
2880
+ type: Input
2881
+ }], activeIndexChange: [{
2882
+ type: Output
2883
+ }] } });
2884
+
2885
+ class TabViewModule {
2886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2887
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: TabViewModule, declarations: [TabViewComponent, TabViewItemComponent, TabMenuPipe], imports: [RouterOutlet, TabMenuModule, TabViewModule$1, NgTemplateOutlet], exports: [TabViewComponent, TabViewItemComponent] }); }
2888
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewModule, providers: [
2889
+ { provide: TAB_VIEW_COMPONENT_TOKEN, useExisting: TabViewComponent },
2890
+ ], imports: [TabMenuModule, TabViewModule$1] }); }
2891
+ }
2892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabViewModule, decorators: [{
2893
+ type: NgModule,
2894
+ args: [{
2895
+ imports: [RouterOutlet, TabMenuModule, TabViewModule$1, NgTemplateOutlet],
2896
+ declarations: [TabViewComponent, TabViewItemComponent, TabMenuPipe],
2897
+ exports: [TabViewComponent, TabViewItemComponent],
2898
+ providers: [
2899
+ { provide: TAB_VIEW_COMPONENT_TOKEN, useExisting: TabViewComponent },
2900
+ ],
2901
+ }]
2902
+ }] });
2903
+
2904
+ /**
2905
+ * Generated bundle index. Do not edit.
2906
+ */
2907
+
2908
+ export { ActionButtonComponent, ActionButtonGroupComponent, BreadcrumbComponent, ButtonComponent, CalendarComponent, CheckboxComponent, ConfirmDialogComponent, DropdownComponent, DynamicComponent, DynamicComponentFactoryService, FEATURE_LIST_COLUMN_PROVIDER, FEATURE_LIST_PAGE_CONFIG_PROPERTY, FeatureListColumnDirective, FeatureListComponent, FeatureListFilterFieldDirective, FeatureListFilterPipe, FilterComponent, FilterFieldDirective, FormFieldComponent, GenericFieldComponent, GenericFormComponent, HeaderComponent, HeaderProviderService, HttpErrorMessageInterceptor, Icons, InputGroupComponent, LoaderComponent, MultiselectComponent, NumberInputComponent, PageHeaderComponent, PasswordComponent, RadioButtonComponent, SectionComponent, SideMenuComponent, SideMenuModule, SliderComponent, SnackbarComponent, SnackbarService, StepperComponent, SwitchComponent, TabViewComponent, TabViewItemComponent, TabViewModule, TableComponent, TextareaComponent, TextfieldComponent, TristatecheckboxComponent, addFeatureListPage, generateFormGroup, getColumnClass };
2909
+ //# sourceMappingURL=verisoft-ui-primeng.mjs.map