@verisoft/ui-primeng 19.0.1-1 → 20.1.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 (280) hide show
  1. package/.eslintrc.json +43 -0
  2. package/README.md +377 -3
  3. package/assets/.gitkeep +0 -0
  4. package/assets/sass/main.scss +9 -26
  5. package/assets/sass/themes/_verisoft_theme.scss +2 -0
  6. package/assets/sass/vendors/_bootstrap.scss +2 -2
  7. package/assets/sass/vendors/_primeng.scss +1 -2
  8. package/jest.config.ts +22 -0
  9. package/ng-package.json +14 -0
  10. package/package.json +14 -27
  11. package/project.json +36 -0
  12. package/{index.d.ts → src/index.ts} +4 -0
  13. package/src/lib/components/breadcrumb/breadcrumb.component.html +11 -0
  14. package/src/lib/components/breadcrumb/breadcrumb.component.scss +18 -0
  15. package/src/lib/components/breadcrumb/breadcrumb.component.spec.ts +21 -0
  16. package/src/lib/components/breadcrumb/breadcrumb.component.stories.ts +36 -0
  17. package/src/lib/components/breadcrumb/breadcrumb.component.ts +27 -0
  18. package/src/lib/components/breadcrumb/breadcrumb.pipe.ts +13 -0
  19. package/src/lib/components/button/button-severity.pipe.ts +20 -0
  20. package/src/lib/components/button/button.component.html +20 -0
  21. package/src/lib/components/button/button.component.scss +0 -0
  22. package/src/lib/components/button/button.component.spec.ts +21 -0
  23. package/src/lib/components/button/button.component.ts +49 -0
  24. package/src/lib/components/calendar/calendar.component.html +53 -0
  25. package/src/lib/components/calendar/calendar.component.scss +0 -0
  26. package/src/lib/components/calendar/calendar.component.spec.ts +21 -0
  27. package/src/lib/components/calendar/calendar.component.ts +70 -0
  28. package/src/lib/components/checkbox/checkbox.component.html +20 -0
  29. package/src/lib/components/checkbox/checkbox.component.scss +15 -0
  30. package/src/lib/components/checkbox/checkbox.component.spec.ts +21 -0
  31. package/src/lib/components/checkbox/checkbox.component.stories.ts +72 -0
  32. package/src/lib/components/checkbox/checkbox.component.ts +46 -0
  33. package/src/lib/components/confirm-dialog/confirm-dialog.component.html +51 -0
  34. package/src/lib/components/confirm-dialog/confirm-dialog.component.scss +3 -0
  35. package/src/lib/components/confirm-dialog/confirm-dialog.component.spec.ts +21 -0
  36. package/src/lib/components/confirm-dialog/confirm-dialog.component.stories.ts +74 -0
  37. package/src/lib/components/confirm-dialog/confirm-dialog.component.ts +73 -0
  38. package/src/lib/components/dropdown/dropdown.component.html +93 -0
  39. package/src/lib/components/dropdown/dropdown.component.scss +16 -0
  40. package/src/lib/components/dropdown/dropdown.component.spec.ts +21 -0
  41. package/src/lib/components/dropdown/dropdown.component.ts +139 -0
  42. package/src/lib/components/dropdown-button/dropdown-button.component.html +1 -0
  43. package/src/lib/components/dropdown-button/dropdown-button.component.ts +20 -0
  44. package/src/lib/components/dropdown-button/index.ts +1 -0
  45. package/src/lib/components/errors/error.component.html +7 -0
  46. package/src/lib/components/errors/error.component.scss +3 -0
  47. package/src/lib/components/errors/error.component.ts +34 -0
  48. package/src/lib/components/errors/index.ts +1 -0
  49. package/src/lib/components/feature-list/directives/feature-list-column.directive.ts +32 -0
  50. package/src/lib/components/feature-list/directives/feature-list-filter-field.directive.ts +8 -0
  51. package/src/lib/components/feature-list/feature-list-filter.pipe.ts +21 -0
  52. package/src/lib/components/feature-list/feature-list-page.component.ts +32 -0
  53. package/src/lib/components/feature-list/feature-list-page.model.ts +42 -0
  54. package/src/lib/components/feature-list/feature-list.component.html +59 -0
  55. package/src/lib/components/feature-list/feature-list.component.scss +10 -0
  56. package/src/lib/components/feature-list/feature-list.component.ts +341 -0
  57. package/src/lib/components/filter/directives/filter-field.directive.ts +34 -0
  58. package/src/lib/components/filter/filter.component.html +68 -0
  59. package/src/lib/components/filter/filter.component.scss +0 -0
  60. package/src/lib/components/filter/filter.component.spec.ts +21 -0
  61. package/src/lib/components/filter/filter.component.stories.ts +23 -0
  62. package/src/lib/components/filter/filter.component.ts +281 -0
  63. package/src/lib/components/filter/filter.model.ts +18 -0
  64. package/src/lib/components/form-field/form-field.component.html +42 -0
  65. package/src/lib/components/form-field/form-field.component.scss +0 -0
  66. package/src/lib/components/form-field/form-field.component.spec.ts +21 -0
  67. package/src/lib/components/form-field/form-field.component.stories.ts +69 -0
  68. package/src/lib/components/form-field/form-field.component.ts +37 -0
  69. package/src/lib/components/header/header.component.html +84 -0
  70. package/src/lib/components/header/header.component.scss +0 -0
  71. package/src/lib/components/header/header.component.spec.ts +21 -0
  72. package/src/lib/components/header/header.component.stories.ts +24 -0
  73. package/src/lib/components/header/header.component.ts +65 -0
  74. package/src/lib/components/header/services/header-provider.service.ts +15 -0
  75. package/src/lib/components/icon/icon.component.html +2 -0
  76. package/src/lib/components/icon/icon.component.scss +51 -0
  77. package/src/lib/components/icon/icon.component.ts +86 -0
  78. package/src/lib/components/icon/index.ts +2 -0
  79. package/src/lib/components/input-group/input-group.component.html +34 -0
  80. package/src/lib/components/input-group/input-group.component.spec.ts +21 -0
  81. package/src/lib/components/input-group/input-group.component.ts +58 -0
  82. package/src/lib/components/loader/loader.component.html +5 -0
  83. package/src/lib/components/loader/loader.component.scss +0 -0
  84. package/src/lib/components/loader/loader.component.spec.ts +21 -0
  85. package/src/lib/components/loader/loader.component.ts +16 -0
  86. package/src/lib/components/multiselect/multiselect.component.html +67 -0
  87. package/src/lib/components/multiselect/multiselect.component.scss +0 -0
  88. package/src/lib/components/multiselect/multiselect.component.spec.ts +21 -0
  89. package/src/lib/components/multiselect/multiselect.component.ts +120 -0
  90. package/src/lib/components/number-input/number-input.component.html +22 -0
  91. package/src/lib/components/number-input/number-input.component.spec.ts +21 -0
  92. package/src/lib/components/number-input/number-input.component.ts +55 -0
  93. package/src/lib/components/page-header/page-header.component.html +35 -0
  94. package/src/lib/components/page-header/page-header.component.scss +0 -0
  95. package/src/lib/components/page-header/page-header.component.spec.ts +21 -0
  96. package/src/lib/components/page-header/page-header.component.ts +31 -0
  97. package/src/lib/components/password/password.component.html +24 -0
  98. package/src/lib/components/password/password.component.scss +0 -0
  99. package/src/lib/components/password/password.component.spec.ts +21 -0
  100. package/src/lib/components/password/password.component.ts +56 -0
  101. package/src/lib/components/radiobutton/radiobutton.component.html +34 -0
  102. package/src/lib/components/radiobutton/radiobutton.component.scss +6 -0
  103. package/src/lib/components/radiobutton/radiobutton.component.spec.ts +21 -0
  104. package/src/lib/components/radiobutton/radiobutton.component.stories.ts +71 -0
  105. package/src/lib/components/radiobutton/radiobutton.component.ts +61 -0
  106. package/src/lib/components/section/section.component.html +25 -0
  107. package/src/lib/components/section/section.component.scss +0 -0
  108. package/src/lib/components/section/section.component.spec.ts +21 -0
  109. package/src/lib/components/section/section.component.ts +31 -0
  110. package/src/lib/components/shared-components/.eslintrc.json +42 -0
  111. package/src/lib/components/shared-components/action-button-group/action-button-group.component.html +25 -0
  112. package/src/lib/components/shared-components/action-button-group/action-button-group.component.scss +0 -0
  113. package/src/lib/components/shared-components/action-button-group/action-button-group.component.spec.ts +21 -0
  114. package/src/lib/components/shared-components/action-button-group/action-button-group.component.ts +111 -0
  115. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.html +10 -0
  116. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.scss +0 -0
  117. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.spec.ts +21 -0
  118. package/src/lib/components/shared-components/action-button-group/components/action-button/action-button.component.ts +69 -0
  119. package/src/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.ts +142 -0
  120. package/src/lib/components/shared-components/dynamic-component/dynamic-component.component.ts +56 -0
  121. package/{lib/components/shared-components/dynamic-component/index.d.ts → src/lib/components/shared-components/dynamic-component/index.ts} +2 -2
  122. package/src/lib/components/shared-components/generic-field/generic-field.component.html +98 -0
  123. package/src/lib/components/shared-components/generic-field/generic-field.component.spec.ts +21 -0
  124. package/src/lib/components/shared-components/generic-field/generic-field.component.ts +90 -0
  125. package/{lib/components/shared-components/generic-field/index.d.ts → src/lib/components/shared-components/generic-field/index.ts} +1 -1
  126. package/src/lib/components/shared-components/generic-form/generic-form.component.html +46 -0
  127. package/src/lib/components/shared-components/generic-form/generic-form.component.spec.ts +21 -0
  128. package/src/lib/components/shared-components/generic-form/generic-form.component.ts +56 -0
  129. package/src/lib/components/shared-components/generic-form/generic-form.model.spec.ts +82 -0
  130. package/src/lib/components/shared-components/generic-form/generic-form.model.ts +68 -0
  131. package/{lib/components/shared-components/generic-form/index.d.ts → src/lib/components/shared-components/generic-form/index.ts} +2 -2
  132. package/{lib/components/shared-components/index.d.ts → src/lib/components/shared-components/index.ts} +4 -6
  133. package/src/lib/components/side-menu/side-menu.component.html +53 -0
  134. package/src/lib/components/side-menu/side-menu.component.scss +0 -0
  135. package/src/lib/components/side-menu/side-menu.component.spec.ts +21 -0
  136. package/src/lib/components/side-menu/side-menu.component.ts +96 -0
  137. package/src/lib/components/side-menu/side-menu.module.ts +66 -0
  138. package/src/lib/components/slider/slider.component.html +19 -0
  139. package/src/lib/components/slider/slider.component.spec.ts +21 -0
  140. package/src/lib/components/slider/slider.component.ts +56 -0
  141. package/src/lib/components/snackbar/services/snackbar.service.ts +45 -0
  142. package/src/lib/components/snackbar/snackbar.component.html +3 -0
  143. package/src/lib/components/snackbar/snackbar.component.scss +0 -0
  144. package/src/lib/components/snackbar/snackbar.component.spec.ts +21 -0
  145. package/src/lib/components/snackbar/snackbar.component.stories.ts +70 -0
  146. package/src/lib/components/snackbar/snackbar.component.ts +25 -0
  147. package/src/lib/components/stepper/stepper.component.html +35 -0
  148. package/src/lib/components/stepper/stepper.component.spec.ts +21 -0
  149. package/src/lib/components/stepper/stepper.component.ts +39 -0
  150. package/src/lib/components/switch/switch.component.html +18 -0
  151. package/src/lib/components/switch/switch.component.scss +0 -0
  152. package/src/lib/components/switch/switch.component.spec.ts +21 -0
  153. package/src/lib/components/switch/switch.component.stories.ts +65 -0
  154. package/src/lib/components/switch/switch.component.ts +52 -0
  155. package/src/lib/components/tab-view/tab-view-item.component.ts +22 -0
  156. package/src/lib/components/tab-view/tab-view.component.html +41 -0
  157. package/src/lib/components/tab-view/tab-view.component.ts +55 -0
  158. package/src/lib/components/table/table-filter.pipe.ts +59 -0
  159. package/src/lib/components/table/table.component.html +127 -0
  160. package/src/lib/components/table/table.component.scss +11 -0
  161. package/src/lib/components/table/table.component.spec.ts +21 -0
  162. package/src/lib/components/table/table.component.stories.ts +55 -0
  163. package/src/lib/components/table/table.component.ts +288 -0
  164. package/src/lib/components/table/table.models.ts +26 -0
  165. package/src/lib/components/tag/index.ts +2 -0
  166. package/src/lib/components/tag/tag.component.html +12 -0
  167. package/src/lib/components/tag/tag.component.scss +33 -0
  168. package/src/lib/components/tag/tag.component.ts +83 -0
  169. package/src/lib/components/textarea/textarea.component.html +40 -0
  170. package/src/lib/components/textarea/textarea.component.scss +5 -0
  171. package/src/lib/components/textarea/textarea.component.spec.ts +21 -0
  172. package/src/lib/components/textarea/textarea.component.stories.ts +98 -0
  173. package/src/lib/components/textarea/textarea.component.ts +62 -0
  174. package/src/lib/components/textfield/textfield.component.html +82 -0
  175. package/src/lib/components/textfield/textfield.component.scss +23 -0
  176. package/src/lib/components/textfield/textfield.component.spec.ts +21 -0
  177. package/src/lib/components/textfield/textfield.component.stories.ts +85 -0
  178. package/src/lib/components/textfield/textfield.component.ts +68 -0
  179. package/src/lib/components/tooltip/index.ts +1 -0
  180. package/src/lib/components/tooltip/tooltip.component.html +3 -0
  181. package/src/lib/components/tooltip/tooltip.component.ts +17 -0
  182. package/src/lib/icons.ts +36 -0
  183. package/src/lib/interceptors/http-error-message.interceptor.ts +35 -0
  184. package/src/lib/pages/not-found-page/not-found-page.component.html +26 -0
  185. package/src/lib/pages/not-found-page/not-found-page.component.scss +0 -0
  186. package/src/lib/pages/not-found-page/not-found-page.component.spec.ts +21 -0
  187. package/src/lib/pages/not-found-page/not-found-page.component.ts +16 -0
  188. package/src/tab-view.ts +1 -0
  189. package/src/test-setup.ts +8 -0
  190. package/tsconfig.json +29 -0
  191. package/tsconfig.lib.json +18 -0
  192. package/tsconfig.lib.prod.json +9 -0
  193. package/tsconfig.spec.json +16 -0
  194. package/fesm2022/verisoft-ui-primeng.mjs +0 -2880
  195. package/fesm2022/verisoft-ui-primeng.mjs.map +0 -1
  196. package/lib/components/breadcrumb/breadcrumb.component.d.ts +0 -6
  197. package/lib/components/breadcrumb/breadcrumb.pipe.d.ts +0 -9
  198. package/lib/components/button/button-severity.pipe.d.ts +0 -9
  199. package/lib/components/button/button.component.d.ts +0 -20
  200. package/lib/components/calendar/calendar.component.d.ts +0 -17
  201. package/lib/components/checkbox/checkbox.component.d.ts +0 -10
  202. package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +0 -15
  203. package/lib/components/dropdown/dropdown.component.d.ts +0 -38
  204. package/lib/components/dropdown-button/dropdown-button.component.d.ts +0 -14
  205. package/lib/components/dropdown-button/index.d.ts +0 -1
  206. package/lib/components/errors/error.component.d.ts +0 -16
  207. package/lib/components/errors/index.d.ts +0 -1
  208. package/lib/components/form-field/form-field.component.d.ts +0 -12
  209. package/lib/components/header/header.component.d.ts +0 -23
  210. package/lib/components/header/services/header-provider.service.d.ts +0 -10
  211. package/lib/components/input-group/input-group.component.d.ts +0 -9
  212. package/lib/components/loader/loader.component.d.ts +0 -6
  213. package/lib/components/multiselect/multiselect.component.d.ts +0 -34
  214. package/lib/components/number-input/number-input.component.d.ts +0 -14
  215. package/lib/components/page-header/page-header.component.d.ts +0 -10
  216. package/lib/components/password/password.component.d.ts +0 -11
  217. package/lib/components/radiobutton/radiobutton.component.d.ts +0 -10
  218. package/lib/components/section/section.component.d.ts +0 -12
  219. package/lib/components/shared-components/action-button-group/action-button-group.component.d.ts +0 -28
  220. package/lib/components/shared-components/action-button-group/components/action-button/action-button.component.d.ts +0 -24
  221. package/lib/components/shared-components/dynamic-component/dynamic-component-factory.service.d.ts +0 -17
  222. package/lib/components/shared-components/dynamic-component/dynamic-component.component.d.ts +0 -16
  223. package/lib/components/shared-components/feature-list/directives/feature-list-column.directive.d.ts +0 -10
  224. package/lib/components/shared-components/feature-list/directives/feature-list-filter-field.directive.d.ts +0 -6
  225. package/lib/components/shared-components/feature-list/feature-list-filter.pipe.d.ts +0 -9
  226. package/lib/components/shared-components/feature-list/feature-list-page.component.d.ts +0 -9
  227. package/lib/components/shared-components/feature-list/feature-list-page.model.d.ts +0 -23
  228. package/lib/components/shared-components/feature-list/feature-list.component.d.ts +0 -62
  229. package/lib/components/shared-components/filter/directives/filter-field.directive.d.ts +0 -20
  230. package/lib/components/shared-components/filter/filter.component.d.ts +0 -53
  231. package/lib/components/shared-components/filter/filter.model.d.ts +0 -2
  232. package/lib/components/shared-components/generic-field/generic-field.component.d.ts +0 -28
  233. package/lib/components/shared-components/generic-form/generic-form.component.d.ts +0 -15
  234. package/lib/components/shared-components/generic-form/generic-form.model.d.ts +0 -4
  235. package/lib/components/side-menu/side-menu.component.d.ts +0 -27
  236. package/lib/components/side-menu/side-menu.module.d.ts +0 -13
  237. package/lib/components/slider/slider.component.d.ts +0 -12
  238. package/lib/components/snackbar/services/snackbar.service.d.ts +0 -12
  239. package/lib/components/snackbar/snackbar.component.d.ts +0 -9
  240. package/lib/components/stepper/stepper.component.d.ts +0 -17
  241. package/lib/components/switch/switch.component.d.ts +0 -9
  242. package/lib/components/tab-view/tab-view-item.component.d.ts +0 -12
  243. package/lib/components/tab-view/tab-view.component.d.ts +0 -17
  244. package/lib/components/table/table-filter.pipe.d.ts +0 -13
  245. package/lib/components/table/table.component.d.ts +0 -67
  246. package/lib/components/table/table.models.d.ts +0 -4
  247. package/lib/components/textarea/textarea.component.d.ts +0 -12
  248. package/lib/components/textfield/textfield.component.d.ts +0 -12
  249. package/lib/components/tooltip/index.d.ts +0 -1
  250. package/lib/components/tooltip/tooltip.component.d.ts +0 -10
  251. package/lib/icons.d.ts +0 -2
  252. package/lib/interceptors/http-error-message.interceptor.d.ts +0 -11
  253. /package/{lib/components/breadcrumb/index.d.ts → src/lib/components/breadcrumb/index.ts} +0 -0
  254. /package/{lib/components/button/index.d.ts → src/lib/components/button/index.ts} +0 -0
  255. /package/{lib/components/calendar/index.d.ts → src/lib/components/calendar/index.ts} +0 -0
  256. /package/{lib/components/checkbox/index.d.ts → src/lib/components/checkbox/index.ts} +0 -0
  257. /package/{lib/components/confirm-dialog/index.d.ts → src/lib/components/confirm-dialog/index.ts} +0 -0
  258. /package/{lib/components/dropdown/index.d.ts → src/lib/components/dropdown/index.ts} +0 -0
  259. /package/{lib/components/shared-components/feature-list/index.d.ts → src/lib/components/feature-list/index.ts} +0 -0
  260. /package/{lib/components/shared-components/filter/index.d.ts → src/lib/components/filter/index.ts} +0 -0
  261. /package/{lib/components/form-field/index.d.ts → src/lib/components/form-field/index.ts} +0 -0
  262. /package/{lib/components/header/index.d.ts → src/lib/components/header/index.ts} +0 -0
  263. /package/{lib/components/input-group/index.d.ts → src/lib/components/input-group/index.ts} +0 -0
  264. /package/{lib/components/loader/index.d.ts → src/lib/components/loader/index.ts} +0 -0
  265. /package/{lib/components/multiselect/index.d.ts → src/lib/components/multiselect/index.ts} +0 -0
  266. /package/{lib/components/number-input/index.d.ts → src/lib/components/number-input/index.ts} +0 -0
  267. /package/{lib/components/page-header/index.d.ts → src/lib/components/page-header/index.ts} +0 -0
  268. /package/{lib/components/password/index.d.ts → src/lib/components/password/index.ts} +0 -0
  269. /package/{lib/components/radiobutton/index.d.ts → src/lib/components/radiobutton/index.ts} +0 -0
  270. /package/{lib/components/section/index.d.ts → src/lib/components/section/index.ts} +0 -0
  271. /package/{lib/components/shared-components/action-button-group/index.d.ts → src/lib/components/shared-components/action-button-group/index.ts} +0 -0
  272. /package/{lib/components/side-menu/index.d.ts → src/lib/components/side-menu/index.ts} +0 -0
  273. /package/{lib/components/slider/index.d.ts → src/lib/components/slider/index.ts} +0 -0
  274. /package/{lib/components/snackbar/index.d.ts → src/lib/components/snackbar/index.ts} +0 -0
  275. /package/{lib/components/stepper/index.d.ts → src/lib/components/stepper/index.ts} +0 -0
  276. /package/{lib/components/switch/index.d.ts → src/lib/components/switch/index.ts} +0 -0
  277. /package/{lib/components/tab-view/index.d.ts → src/lib/components/tab-view/index.ts} +0 -0
  278. /package/{lib/components/table/index.d.ts → src/lib/components/table/index.ts} +0 -0
  279. /package/{lib/components/textarea/index.d.ts → src/lib/components/textarea/index.ts} +0 -0
  280. /package/{lib/components/textfield/index.d.ts → src/lib/components/textfield/index.ts} +0 -0
package/.eslintrc.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "extends": ["../../../.eslintrc.base.json"],
3
+ "ignorePatterns": ["!**/*"],
4
+ "overrides": [
5
+ {
6
+ "files": ["*.ts"],
7
+ "extends": [
8
+ "plugin:@nx/angular",
9
+ "plugin:@angular-eslint/template/process-inline-templates"
10
+ ],
11
+ "rules": {
12
+ "@angular-eslint/directive-selector": [
13
+ "error",
14
+ {
15
+ "type": "attribute",
16
+ "prefix": "v",
17
+ "style": "camelCase"
18
+ }
19
+ ],
20
+ "@angular-eslint/component-selector": [
21
+ "error",
22
+ {
23
+ "type": "element",
24
+ "prefix": "v",
25
+ "style": "kebab-case"
26
+ }
27
+ ]
28
+ }
29
+ },
30
+ {
31
+ "files": ["*.html"],
32
+ "extends": ["plugin:@nx/angular-template"],
33
+ "rules": {}
34
+ },
35
+ {
36
+ "files": ["*.json"],
37
+ "parser": "jsonc-eslint-parser",
38
+ "rules": {
39
+ "@nx/dependency-checks": "error"
40
+ }
41
+ }
42
+ ]
43
+ }
package/README.md CHANGED
@@ -1,7 +1,381 @@
1
- # ui-primeng
1
+ # @verisoft/ui-primeng
2
2
 
3
- This library was generated with [Nx](https://nx.dev).
3
+ A comprehensive Angular UI component library built on top of PrimeNG that provides enterprise-grade components with modern design and extensive functionality. This library combines the power of PrimeNG with Verisoft's design patterns to deliver consistent, feature-rich user interfaces for business applications.
4
4
 
5
- ## Running unit tests
5
+ ## Overview
6
+
7
+ The `@verisoft/ui-primeng` library extends `@verisoft/ui-core` and leverages PrimeNG components to provide a complete set of UI components suitable for enterprise applications. It offers advanced data components, rich form controls, and sophisticated layout elements with built-in theming and internationalization support.
8
+
9
+ ## Features
10
+
11
+ ### Components
12
+ - **Form Controls**: Advanced text fields, dropdowns, checkboxes, radio buttons, calendars, sliders
13
+ - **Data Components**: Feature-rich tables with pagination, sorting, filtering, and export
14
+ - **Navigation**: Breadcrumbs, side menus, tabs, stepper components with progress tracking
15
+ - **Input Groups**: Complex input combinations with buttons, icons, and validation
16
+ - **Feedback**: Toast notifications, confirm dialogs, loading indicators, tooltips
17
+ - **Layout**: Headers, page headers, sections with collapsible content
18
+ - **Advanced**: Multi-select with search, number inputs with formatting, password strength
19
+
20
+ ### Key Features
21
+ - ✅ **PrimeNG Integration**: Built on top of the mature PrimeNG component library
22
+ - ✅ **Enterprise Ready**: Components designed for complex business applications
23
+ - ✅ **Rich Data Handling**: Advanced table features with virtual scrolling and lazy loading
24
+ - ✅ **Theming Support**: Multiple built-in themes with customization options
25
+ - ✅ **Internationalization**: Full i18n support with @ngx-translate integration
26
+ - ✅ **Accessibility**: WCAG 2.1 compliant with keyboard navigation support
27
+ - ✅ **Form Integration**: Deep Angular Reactive Forms integration with validation
28
+ - ✅ **Performance**: Optimized for large datasets and complex UIs
29
+
30
+ ## Installation
31
+
32
+ ```bash
33
+ npm install @verisoft/ui-primeng
34
+ ```
35
+
36
+ ### Peer Dependencies
37
+
38
+ Make sure you have the following peer dependencies installed:
39
+
40
+ ```bash
41
+ npm install @verisoft/core @verisoft/ui-core primeng @angular/core @angular/common @angular/forms @angular/platform-browser @angular/router rxjs @ngx-translate/core uuid
42
+ ```
43
+
44
+ ### Styling Setup
45
+
46
+ Add PrimeNG CSS theme to your `angular.json` or import in your global styles:
47
+
48
+ ```json
49
+ // angular.json
50
+ "styles": [
51
+ "node_modules/primeng/resources/themes/saga-blue/theme.css",
52
+ "node_modules/primeng/resources/primeng.min.css",
53
+ "node_modules/primeicons/primeicons.css"
54
+ ]
55
+ ```
56
+
57
+ Or in your global `styles.scss`:
58
+
59
+ ```scss
60
+ @import 'primeng/resources/themes/saga-blue/theme.css';
61
+ @import 'primeng/resources/primeng.min.css';
62
+ @import 'primeicons/primeicons.css';
63
+ ```
64
+
65
+ ## Quick Start
66
+
67
+ 1. **Import individual components** in your Angular application:
68
+
69
+ ```typescript
70
+ import {
71
+ ButtonComponent,
72
+ TextfieldComponent,
73
+ FormFieldComponent
74
+ } from '@verisoft/ui-primeng';
75
+
76
+ @Component({
77
+ imports: [ButtonComponent, TextfieldComponent, FormFieldComponent],
78
+ // ...
79
+ })
80
+ export class MyComponent { }
81
+ ```
82
+
83
+ 2. **Use components** in your templates:
84
+
85
+ ```html
86
+ <v-button [primary]="true" icon="pi pi-check">Save Changes</v-button>
87
+ <v-form-field label="Business Email">
88
+ <v-textfield formControlName="email" placeholder="Enter email address"></v-textfield>
89
+ </v-form-field>
90
+ ```
91
+
92
+ ## Usage Examples
93
+
94
+ ### Advanced Form with Validation
95
+ ```typescript
96
+ // Component
97
+ import { FormBuilder, Validators } from '@angular/forms';
98
+ import {
99
+ ButtonComponent,
100
+ TextfieldComponent,
101
+ DropdownComponent,
102
+ NumberInputComponent,
103
+ CalendarComponent,
104
+ MultiselectComponent,
105
+ TextareaComponent,
106
+ FormFieldComponent
107
+ } from '@verisoft/ui-primeng';
108
+
109
+ @Component({
110
+ imports: [
111
+ ButtonComponent,
112
+ TextfieldComponent,
113
+ DropdownComponent,
114
+ NumberInputComponent,
115
+ CalendarComponent,
116
+ MultiselectComponent,
117
+ TextareaComponent,
118
+ FormFieldComponent
119
+ ],
120
+ // ...
121
+ })
122
+ export class BusinessFormComponent {
123
+ form = this.fb.group({
124
+ companyName: ['', [Validators.required, Validators.minLength(3)]],
125
+ industry: ['', Validators.required],
126
+ employees: [null, [Validators.required, Validators.min(1)]],
127
+ foundedDate: [null, Validators.required],
128
+ features: [[]],
129
+ description: ['', Validators.maxLength(500)]
130
+ });
131
+
132
+ industries = [
133
+ { label: 'Technology', value: 'tech' },
134
+ { label: 'Healthcare', value: 'health' },
135
+ { label: 'Finance', value: 'finance' }
136
+ ];
137
+
138
+ features = [
139
+ { label: 'Online Payments', value: 'payments' },
140
+ { label: 'Customer Support', value: 'support' },
141
+ { label: 'Analytics', value: 'analytics' }
142
+ ];
143
+
144
+ constructor(private fb: FormBuilder) {}
145
+ }
146
+ ```
147
+
148
+ ```html
149
+ <!-- Template -->
150
+ <form [formGroup]="form">
151
+ <v-form-field label="Company Name" [required]="true">
152
+ <v-textfield formControlName="companyName" placeholder="Enter company name"></v-textfield>
153
+ </v-form-field>
154
+
155
+ <v-form-field label="Industry" [required]="true">
156
+ <v-dropdown formControlName="industry" [options]="industries" placeholder="Select industry"></v-dropdown>
157
+ </v-form-field>
158
+
159
+ <v-form-field label="Number of Employees" [required]="true">
160
+ <v-number-input formControlName="employees" [min]="1" [max]="10000"></v-number-input>
161
+ </v-form-field>
162
+
163
+ <v-form-field label="Founded Date" [required]="true">
164
+ <v-calendar formControlName="foundedDate" [showIcon]="true"></v-calendar>
165
+ </v-form-field>
166
+
167
+ <v-form-field label="Required Features">
168
+ <v-multiselect formControlName="features" [options]="features" [filter]="true"></v-multiselect>
169
+ </v-form-field>
170
+
171
+ <v-form-field label="Description">
172
+ <v-textarea formControlName="description" [rows]="4" [maxLength]="500"></v-textarea>
173
+ </v-form-field>
174
+
175
+ <v-button [primary]="true" type="submit" [disabled]="form.invalid">Submit Application</v-button>
176
+ </form>
177
+ ```
178
+
179
+ ### Advanced Data Table
180
+ ```typescript
181
+ // Component
182
+ import { TableComponent, PageHeaderComponent, ButtonComponent } from '@verisoft/ui-primeng';
183
+
184
+ @Component({
185
+ imports: [TableComponent, PageHeaderComponent, ButtonComponent],
186
+ // ...
187
+ })
188
+ export class DataManagementComponent {
189
+ employees = [
190
+ { id: 1, name: 'John Doe', department: 'IT', salary: 75000, hireDate: new Date('2020-01-15') },
191
+ { id: 2, name: 'Jane Smith', department: 'HR', salary: 68000, hireDate: new Date('2019-03-20') }
192
+ ];
193
+
194
+ columns = [
195
+ { field: 'name', header: 'Employee Name', sortable: true, filter: true },
196
+ { field: 'department', header: 'Department', sortable: true, filter: true },
197
+ { field: 'salary', header: 'Salary', sortable: true, filter: true, type: 'currency' },
198
+ { field: 'hireDate', header: 'Hire Date', sortable: true, filter: true, type: 'date' }
199
+ ];
200
+
201
+ exportColumns = this.columns.map(col => ({ title: col.header, dataKey: col.field }));
202
+
203
+ exportPdf() {
204
+ // Export functionality
205
+ }
206
+
207
+ exportExcel() {
208
+ // Export functionality
209
+ }
210
+ }
211
+ ```
212
+
213
+ ```html
214
+ <!-- Template -->
215
+ <v-page-header title="Employee Management">
216
+ <v-button icon="pi pi-download" label="Export PDF" (click)="exportPdf()"></v-button>
217
+ <v-button icon="pi pi-file-excel" label="Export Excel" (click)="exportExcel()"></v-button>
218
+ </v-page-header>
219
+
220
+ <v-table
221
+ [data]="employees"
222
+ [columns]="columns"
223
+ [sortable]="true"
224
+ [filterable]="true"
225
+ [pagination]="true"
226
+ [rows]="10"
227
+ [exportFilename]="'employees'"
228
+ [globalFilterFields]="['name', 'department']">
229
+
230
+ <ng-template pTemplate="caption">
231
+ <div class="table-header">
232
+ <span>Employee Directory</span>
233
+ <span class="p-input-icon-left">
234
+ <i class="pi pi-search"></i>
235
+ <input pInputText type="text" (input)="table.filterGlobal($event.target.value, 'contains')" placeholder="Global Search" />
236
+ </span>
237
+ </div>
238
+ </ng-template>
239
+ </v-table>
240
+ ```
241
+
242
+ ### Stepper Component for Multi-Step Process
243
+ ```typescript
244
+ // Component
245
+ import { StepperComponent, ButtonComponent } from '@verisoft/ui-primeng';
246
+
247
+ @Component({
248
+ imports: [StepperComponent, ButtonComponent],
249
+ // ...
250
+ })
251
+ export class OnboardingComponent {
252
+ activeIndex = 0;
253
+
254
+ steps = [
255
+ { label: 'Personal Info' },
256
+ { label: 'Company Details' },
257
+ { label: 'Preferences' },
258
+ { label: 'Confirmation' }
259
+ ];
260
+
261
+ nextStep() {
262
+ if (this.activeIndex < this.steps.length - 1) {
263
+ this.activeIndex++;
264
+ }
265
+ }
266
+
267
+ prevStep() {
268
+ if (this.activeIndex > 0) {
269
+ this.activeIndex--;
270
+ }
271
+ }
272
+ }
273
+ ```
274
+
275
+ ```html
276
+ <!-- Template -->
277
+ <v-stepper [(activeIndex)]="activeIndex" [steps]="steps">
278
+ <v-step>
279
+ <!-- Personal Info Form -->
280
+ <h3>Personal Information</h3>
281
+ <!-- Form fields -->
282
+ </v-step>
283
+
284
+ <v-step>
285
+ <!-- Company Details Form -->
286
+ <h3>Company Details</h3>
287
+ <!-- Form fields -->
288
+ </v-step>
289
+
290
+ <v-step>
291
+ <!-- Preferences Form -->
292
+ <h3>Preferences</h3>
293
+ <!-- Form fields -->
294
+ </v-step>
295
+
296
+ <v-step>
297
+ <!-- Confirmation -->
298
+ <h3>Review & Confirm</h3>
299
+ <!-- Summary -->
300
+ </v-step>
301
+ </v-stepper>
302
+
303
+ <div class="step-actions">
304
+ <v-button label="Back" (click)="prevStep()" [disabled]="activeIndex === 0"></v-button>
305
+ <v-button label="Next" (click)="nextStep()" [disabled]="activeIndex === steps.length - 1" [primary]="true"></v-button>
306
+ </div>
307
+ ```
308
+
309
+ ## Theming
310
+
311
+ The library supports multiple PrimeNG themes. You can switch themes by changing the CSS import:
312
+
313
+ ```scss
314
+ // Light themes
315
+ @import 'primeng/resources/themes/saga-blue/theme.css'; // Default
316
+ @import 'primeng/resources/themes/saga-green/theme.css';
317
+ @import 'primeng/resources/themes/saga-orange/theme.css';
318
+
319
+ // Dark themes
320
+ @import 'primeng/resources/themes/vela-blue/theme.css';
321
+ @import 'primeng/resources/themes/vela-green/theme.css';
322
+ @import 'primeng/resources/themes/arya-blue/theme.css';
323
+ ```
324
+
325
+ ## Internationalization
326
+
327
+ The library includes built-in support for internationalization:
328
+
329
+ ```typescript
330
+ // app.module.ts
331
+ import { TranslateModule } from '@ngx-translate/core';
332
+
333
+ @NgModule({
334
+ imports: [
335
+ TranslateModule.forRoot({
336
+ loader: {
337
+ provide: TranslateLoader,
338
+ useFactory: HttpLoaderFactory,
339
+ deps: [HttpClient]
340
+ }
341
+ })
342
+ ]
343
+ })
344
+ export class AppModule { }
345
+ ```
346
+
347
+ ## API Documentation
348
+
349
+ For detailed component APIs, properties, and methods, please refer to:
350
+ - Component documentation with IntelliSense
351
+ - [PrimeNG Documentation](https://primeng.org/) for underlying component features
352
+ - Verisoft component extensions and customizations
353
+
354
+ ## Development
355
+
356
+ ### Running unit tests
6
357
 
7
358
  Run `nx test ui-primeng` to execute the unit tests.
359
+
360
+ ### Building the library
361
+
362
+ Run `nx build ui-primeng` to build the library.
363
+
364
+ ### Linting
365
+
366
+ Run `nx lint ui-primeng` to run ESLint on the library.
367
+
368
+ ## Performance Tips
369
+
370
+ - Use virtual scrolling for large datasets in tables
371
+ - Implement lazy loading for dropdowns with many options
372
+ - Use OnPush change detection strategy for better performance
373
+ - Consider pagination for tables with extensive data
374
+
375
+ ## Contributing
376
+
377
+ This library is part of the Verisoft framework. Please follow the established coding standards and ensure compatibility with PrimeNG updates.
378
+
379
+ ## License
380
+
381
+ Copyright © Verisoft. All rights reserved.
File without changes
@@ -1,27 +1,10 @@
1
- @import "primeng/resources/primeng.min.css";
2
- @import "primeicons/primeicons.css";
3
- // Téma je nyní konfigurováno v app.config.ts pomocí providePrimeNG s Aura theme
4
1
 
5
- @import './base/typography';
6
- @import './utils/variables';
7
- @import './vendors/bootstrap';
8
- @import './utils/mixins';
9
- @import './utils/utils';
10
- @import './themes/verisoft_theme';
11
- @import './base/scrollbar';
12
- @import './layout/layout';
13
- @import './layout/tables';
14
- @import './layout/formField';
15
- @import './layout/radiobutton';
16
- @import './layout/snackbar';
17
- @import './layout/icons';
18
- @import './layout/inputSwitch';
19
- @import './layout/tree';
20
- @import './layout/button';
21
- @import './layout/dialog';
22
- @import './layout/checkbox';
23
- @import './layout/header';
24
- @import './layout/sidemenu';
25
- @import './layout/loader';
26
- @import './layout/dropdown';
27
- @import './layout/app';
2
+ @use "primeicons/primeicons.css";
3
+
4
+ @use './base/_typography';
5
+ @use './utils/_variables';
6
+ @use './vendors/_bootstrap';
7
+ @use './utils/_mixins';
8
+ @use './utils/_utils';
9
+ @use './themes/_verisoft_theme';
10
+
@@ -21,6 +21,8 @@ $theme: (
21
21
  );
22
22
 
23
23
  :root {
24
+ --p-primary-color: $primary-color;
25
+
24
26
  @each $key, $value in $theme {
25
27
  .bg-#{$key} {
26
28
  background: $value !important;
@@ -1,2 +1,2 @@
1
- @import 'node_modules/bootstrap/scss/bootstrap-grid.scss';
2
- @import 'node_modules/bootstrap/scss/bootstrap-utilities.scss';
1
+ @use 'bootstrap/scss/bootstrap-grid.scss';
2
+ @use 'bootstrap/scss/bootstrap-utilities.scss';
@@ -1,2 +1 @@
1
- @import 'primeicons/primeicons.css';
2
- // Téma je nyní konfigurováno v app.config.ts pomocí providePrimeNG s Aura theme
1
+ @use 'primeicons/primeicons.css';
package/jest.config.ts ADDED
@@ -0,0 +1,22 @@
1
+ /* eslint-disable */
2
+ export default {
3
+ displayName: 'ui-primeng',
4
+ preset: '../../../jest.preset.js',
5
+ setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
6
+ coverageDirectory: '../../../coverage/src/libs/ui-primeng',
7
+ transform: {
8
+ '^.+\\.(ts|mjs|js|html)$': [
9
+ 'jest-preset-angular',
10
+ {
11
+ tsconfig: '<rootDir>/tsconfig.spec.json',
12
+ stringifyContentPathRegex: '\\.(html|svg)$',
13
+ },
14
+ ],
15
+ },
16
+ transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
17
+ snapshotSerializers: [
18
+ 'jest-preset-angular/build/serializers/no-ng-attributes',
19
+ 'jest-preset-angular/build/serializers/ng-snapshot',
20
+ 'jest-preset-angular/build/serializers/html-comment',
21
+ ],
22
+ };
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../../dist/src/libs/ui-primeng",
4
+ "lib": {
5
+ "entryFile": "src/index.ts"
6
+ },
7
+ "assets": [
8
+ "./assets/",
9
+ "README.md"
10
+ ],
11
+ "allowedNonPeerDependencies": [
12
+ "uuid"
13
+ ]
14
+ }
package/package.json CHANGED
@@ -1,33 +1,20 @@
1
1
  {
2
2
  "name": "@verisoft/ui-primeng",
3
- "version": "19.0.1-1",
3
+ "version": "20.1.0",
4
4
  "peerDependencies": {
5
- "@verisoft/core": "19.0.1-1",
6
- "@verisoft/ui-core": "19.0.1-1",
7
- "@angular/core": "19.2.9",
8
- "@angular/common": "19.2.9",
9
- "@angular/forms": "19.2.9",
10
- "@angular/platform-browser": "19.2.9",
11
- "@angular/router": "19.2.9",
12
- "primeng": "19.1.3",
13
- "rxjs": "~7.8.0",
14
- "@ngx-translate/core": "16.0.4",
15
- "uuid": "^10.0.0",
16
- "@faker-js/faker": "9.8.0"
5
+ "@verisoft/core": "~20.1.0",
6
+ "@verisoft/ui-core": "~20.1.0",
7
+ "@angular/core": "~20.2.0",
8
+ "@angular/common": "~20.2.0",
9
+ "@angular/forms": "~20.2.0",
10
+ "@angular/platform-browser": "~20.2.0",
11
+ "@angular/router": "~20.2.0",
12
+ "@ngx-translate/core": "^17.0.0",
13
+ "primeng": "~20.0.1",
14
+ "rxjs": "~7.8.0"
17
15
  },
18
16
  "dependencies": {
19
- "tslib": "^2.3.0"
17
+ "uuid": "^11.0.0"
20
18
  },
21
- "sideEffects": false,
22
- "module": "fesm2022/verisoft-ui-primeng.mjs",
23
- "typings": "index.d.ts",
24
- "exports": {
25
- "./package.json": {
26
- "default": "./package.json"
27
- },
28
- ".": {
29
- "types": "./index.d.ts",
30
- "default": "./fesm2022/verisoft-ui-primeng.mjs"
31
- }
32
- }
33
- }
19
+ "sideEffects": false
20
+ }
package/project.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "ui-primeng",
3
+ "$schema": "../../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "src/libs/ui-primeng/src",
5
+ "prefix": "verisoft",
6
+ "projectType": "library",
7
+ "tags": [],
8
+ "targets": {
9
+ "build": {
10
+ "executor": "@nx/angular:package",
11
+ "outputs": ["{workspaceRoot}/dist/{projectRoot}"],
12
+ "options": {
13
+ "project": "src/libs/ui-primeng/ng-package.json"
14
+ },
15
+ "configurations": {
16
+ "production": {
17
+ "tsConfig": "src/libs/ui-primeng/tsconfig.lib.prod.json"
18
+ },
19
+ "development": {
20
+ "tsConfig": "src/libs/ui-primeng/tsconfig.lib.json"
21
+ }
22
+ },
23
+ "defaultConfiguration": "production"
24
+ },
25
+ "test": {
26
+ "executor": "@nx/jest:jest",
27
+ "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
28
+ "options": {
29
+ "jestConfig": "src/libs/ui-primeng/jest.config.ts"
30
+ }
31
+ },
32
+ "lint": {
33
+ "executor": "@nx/eslint:lint"
34
+ }
35
+ }
36
+ }
@@ -26,5 +26,9 @@ export * from './lib/components/switch';
26
26
  export * from './lib/interceptors/http-error-message.interceptor';
27
27
  export * from './lib/components/tab-view';
28
28
  export * from './lib/components/shared-components';
29
+ export * from './lib/components/filter';
30
+ export * from './lib/components/feature-list';
29
31
  export * from './lib/components/tooltip';
32
+ export * from './lib/components/tag';
33
+ export * from './lib/components/icon';
30
34
  export * from './lib/icons';
@@ -0,0 +1,11 @@
1
+ <div class="v-breadcrumb card flex justify-content-center">
2
+ @if (useHomeRoute) {
3
+ <p-breadcrumb
4
+ class="max-w-full"
5
+ [model]="items | menuItem"
6
+ [home]="home"
7
+ ></p-breadcrumb>
8
+ } @else {
9
+ <p-breadcrumb class="max-w-full" [model]="items | menuItem"></p-breadcrumb>
10
+ }
11
+ </div>
@@ -0,0 +1,18 @@
1
+ p-breadcrumb > nav {
2
+ border: none;
3
+ > ol {
4
+ align-items: stretch;
5
+ font-weight: 600;
6
+ font-size: 1rem;
7
+ }
8
+ a[aria-current='page'] > span {
9
+ color: var(--primary-color) !important;
10
+ }
11
+ }
12
+ .p-menuitem-link {
13
+ gap: 0.5rem;
14
+ text-align: center;
15
+ }
16
+ .p-menuitem-text {
17
+ align-self: baseline;
18
+ }
@@ -0,0 +1,21 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { BreadcrumbComponent } from './breadcrumb.component';
3
+
4
+ describe('BreadcrumbComponent', () => {
5
+ let component: BreadcrumbComponent;
6
+ let fixture: ComponentFixture<BreadcrumbComponent>;
7
+
8
+ beforeEach(async () => {
9
+ await TestBed.configureTestingModule({
10
+ imports: [BreadcrumbComponent],
11
+ }).compileComponents();
12
+
13
+ fixture = TestBed.createComponent(BreadcrumbComponent);
14
+ component = fixture.componentInstance;
15
+ fixture.detectChanges();
16
+ });
17
+
18
+ it('should create', () => {
19
+ expect(component).toBeTruthy();
20
+ });
21
+ });