@ldquocc/dynamic-form 0.0.9 → 0.0.11

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 (298) hide show
  1. package/fesm2022/ldquocc-dynamic-form.mjs +4928 -0
  2. package/fesm2022/ldquocc-dynamic-form.mjs.map +1 -0
  3. package/index.d.ts +5 -0
  4. package/lib/dynamic-form.component.d.ts +67 -0
  5. package/lib/shared/base/base-select.component.d.ts +19 -0
  6. package/lib/shared/base/base-value-accessor.d.ts +69 -0
  7. package/{src/lib/shared/components/component.ts → lib/shared/components/component.d.ts} +14 -34
  8. package/lib/shared/components/dynamic-field/dynamic-field.component.d.ts +23 -0
  9. package/lib/shared/components/field-user-config/field-user-config.component.d.ts +10 -0
  10. package/lib/shared/components/fields/components/suffix/suffix.component.d.ts +12 -0
  11. package/lib/shared/components/fields/date/date-picker/date-picker.component.d.ts +17 -0
  12. package/lib/shared/components/fields/date/date-range/date-range.component.d.ts +17 -0
  13. package/lib/shared/components/fields/input/input-formatted/input-formatted.component.d.ts +20 -0
  14. package/lib/shared/components/fields/input/input-password/input-password.component.d.ts +12 -0
  15. package/lib/shared/components/fields/input/input-text/input-text.component.d.ts +14 -0
  16. package/lib/shared/components/fields/select/multi-select/multi-select.component.d.ts +21 -0
  17. package/lib/shared/components/fields/select/single-select/single-select.component.d.ts +22 -0
  18. package/lib/shared/components/fields/select/tree-select/tree-select.component.d.ts +28 -0
  19. package/lib/shared/components/fields/textarea/textarea.component.d.ts +14 -0
  20. package/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.d.ts +25 -0
  21. package/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.d.ts +76 -0
  22. package/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.d.ts +27 -0
  23. package/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.d.ts +29 -0
  24. package/lib/shared/config/dynamic-form.config.d.ts +9 -0
  25. package/lib/shared/consts/common/common.const.d.ts +5 -0
  26. package/lib/shared/consts/common/field-dependency.const.d.ts +1 -0
  27. package/lib/shared/consts/common/file.const.d.ts +148 -0
  28. package/{src/lib/shared/consts/common/index.ts → lib/shared/consts/common/index.d.ts} +4 -4
  29. package/lib/shared/consts/common/standalone-import.const.d.ts +7 -0
  30. package/lib/shared/consts/controls/control.const.d.ts +1 -0
  31. package/{src/lib/shared/consts/controls/index.ts → lib/shared/consts/controls/index.d.ts} +1 -1
  32. package/lib/shared/consts/fields/date-field.const.d.ts +7 -0
  33. package/lib/shared/consts/fields/field.const.d.ts +4 -0
  34. package/{src/lib/shared/consts/fields/index.ts → lib/shared/consts/fields/index.d.ts} +5 -5
  35. package/lib/shared/consts/fields/input-field.const.d.ts +4 -0
  36. package/lib/shared/consts/fields/input-formatted-field.const.d.ts +4 -0
  37. package/lib/shared/consts/fields/radio-field.const.d.ts +10 -0
  38. package/lib/shared/consts/fields/select-field.const.d.ts +6 -0
  39. package/lib/shared/consts/fields/upload-field.const.d.ts +1 -0
  40. package/lib/shared/consts/validators/pattern.const.d.ts +2 -0
  41. package/lib/shared/enums/common/field-dependency.enum.d.ts +9 -0
  42. package/lib/shared/enums/common/file-size-type.enum.d.ts +6 -0
  43. package/{src/lib/shared/enums/common/index.ts → lib/shared/enums/common/index.d.ts} +4 -4
  44. package/lib/shared/enums/common/output-value-type.enum.d.ts +19 -0
  45. package/lib/shared/enums/common/view-mode.enum.d.ts +4 -0
  46. package/lib/shared/enums/controls/control.enum.d.ts +11 -0
  47. package/{src/lib/shared/enums/controls/index.ts → lib/shared/enums/controls/index.d.ts} +1 -1
  48. package/lib/shared/enums/fields/date-field.enum.d.ts +4 -0
  49. package/lib/shared/enums/fields/field.enum.d.ts +20 -0
  50. package/{src/lib/shared/enums/fields/index.ts → lib/shared/enums/fields/index.d.ts} +6 -6
  51. package/lib/shared/enums/fields/input-field.enum.d.ts +6 -0
  52. package/lib/shared/enums/fields/input-formatted-field.enum.d.ts +6 -0
  53. package/lib/shared/enums/fields/select-field.enum.d.ts +4 -0
  54. package/lib/shared/enums/fields/upload-field.enum.d.ts +5 -0
  55. package/lib/shared/enums/form/dynamic-form.enum.d.ts +6 -0
  56. package/{src/lib/shared/enums/form/index.ts → lib/shared/enums/form/index.d.ts} +1 -1
  57. package/{src/lib/shared/enums/validators/index.ts → lib/shared/enums/validators/index.d.ts} +2 -2
  58. package/lib/shared/enums/validators/regex.enum.d.ts +38 -0
  59. package/lib/shared/enums/validators/validators.enum.d.ts +14 -0
  60. package/lib/shared/factories/auto-numeric-options.factory.d.ts +5 -0
  61. package/lib/shared/models/common/api-config.model.d.ts +4 -0
  62. package/lib/shared/models/common/api-response.model.d.ts +19 -0
  63. package/lib/shared/models/common/common.model.d.ts +29 -0
  64. package/lib/shared/models/common/field-dependency.model.d.ts +16 -0
  65. package/lib/shared/models/common/file-config.model.d.ts +11 -0
  66. package/{src/lib/shared/models/common/index.ts → lib/shared/models/common/index.d.ts} +7 -7
  67. package/lib/shared/models/common/obj-field.model.d.ts +59 -0
  68. package/lib/shared/models/common/object-storage.model.d.ts +15 -0
  69. package/{src/lib/shared/models/common/output-value-type.model.ts → lib/shared/models/common/output-value-type.model.d.ts} +4 -4
  70. package/lib/shared/models/common/table-models.d.ts +15 -0
  71. package/{src/lib/shared/models/common/view-mode.model.ts → lib/shared/models/common/view-mode.model.d.ts} +1 -1
  72. package/{src/lib/shared/models/controls/control.model.ts → lib/shared/models/controls/control.model.d.ts} +2 -3
  73. package/{src/lib/shared/models/controls/index.ts → lib/shared/models/controls/index.d.ts} +1 -1
  74. package/lib/shared/models/fields/date/base-date-field.model.d.ts +19 -0
  75. package/lib/shared/models/fields/date/date-picker-field.model.d.ts +12 -0
  76. package/lib/shared/models/fields/date/date-range-field.model.d.ts +12 -0
  77. package/{src/lib/shared/models/fields/date/index.ts → lib/shared/models/fields/date/index.d.ts} +3 -3
  78. package/lib/shared/models/fields/field-grid.model.d.ts +9 -0
  79. package/lib/shared/models/fields/field-group.model.d.ts +21 -0
  80. package/lib/shared/models/fields/field-user-config.model.d.ts +3 -0
  81. package/lib/shared/models/fields/field.model.d.ts +57 -0
  82. package/{src/lib/shared/models/fields/index.ts → lib/shared/models/fields/index.d.ts} +2 -2
  83. package/{src/lib/shared/models/fields/input/index.ts → lib/shared/models/fields/input/index.d.ts} +4 -4
  84. package/lib/shared/models/fields/input/input-field.model.d.ts +31 -0
  85. package/lib/shared/models/fields/input/input-formatted-field.model.d.ts +13 -0
  86. package/lib/shared/models/fields/input/input-password-field.model.d.ts +11 -0
  87. package/lib/shared/models/fields/input/input-text-field.model.d.ts +9 -0
  88. package/lib/shared/models/fields/radio/radio-base-field.model.d.ts +26 -0
  89. package/lib/shared/models/fields/select/multi-select-field.model.d.ts +11 -0
  90. package/lib/shared/models/fields/select/select-base-field.model.d.ts +40 -0
  91. package/lib/shared/models/fields/select/single-select-field.model.d.ts +9 -0
  92. package/lib/shared/models/fields/select/tree-select-field.model.d.ts +10 -0
  93. package/lib/shared/models/fields/textarea/textarea-field.model.d.ts +20 -0
  94. package/lib/shared/models/fields/upload/avatar-upload-field.model.d.ts +9 -0
  95. package/lib/shared/models/fields/upload/base-upload-field.model.d.ts +25 -0
  96. package/{src/lib/shared/models/fields/upload/index.ts → lib/shared/models/fields/upload/index.d.ts} +5 -5
  97. package/lib/shared/models/fields/upload/multi-file-upload-field.model.d.ts +10 -0
  98. package/lib/shared/models/fields/upload/multi-image-upload-field.model.d.ts +12 -0
  99. package/lib/shared/models/fields/upload/single-file-upload-field.model.d.ts +11 -0
  100. package/{src/lib/shared/models/form/dynamic-form.model.ts → lib/shared/models/form/dynamic-form.model.d.ts} +1 -1
  101. package/{src/lib/shared/models/form/index.ts → lib/shared/models/form/index.d.ts} +1 -1
  102. package/lib/shared/services/dynamic-form.service.d.ts +48 -0
  103. package/lib/shared/services/field.service.d.ts +41 -0
  104. package/lib/shared/services/file.service.d.ts +20 -0
  105. package/lib/shared/services/form-config.service.d.ts +10 -0
  106. package/lib/shared/services/form-data.service.d.ts +53 -0
  107. package/lib/shared/services/form-utils.d.ts +5 -0
  108. package/lib/shared/services/suffix.service.d.ts +12 -0
  109. package/lib/shared/services/validation.service.d.ts +10 -0
  110. package/lib/shared/utils/common/common.utils.d.ts +7 -0
  111. package/{src/lib/shared/utils/common/index.ts → lib/shared/utils/common/index.d.ts} +1 -1
  112. package/lib/shared/utils/date/date.utils.d.ts +6 -0
  113. package/{src/lib/shared/utils/date/index.ts → lib/shared/utils/date/index.d.ts} +1 -1
  114. package/lib/shared/utils/dynamic-form/dynamic-form.d.ts +11 -0
  115. package/lib/shared/utils/fields/fields.d.ts +20 -0
  116. package/{src/lib/shared/utils/fields/index.ts → lib/shared/utils/fields/index.d.ts} +1 -1
  117. package/lib/shared/utils/file/file.utils.d.ts +4 -0
  118. package/{src/lib/shared/utils/file/index.ts → lib/shared/utils/file/index.d.ts} +1 -1
  119. package/lib/shared/utils/validators/custom-validators.d.ts +11 -0
  120. package/lib/shared/utils/validators/default-error-message.d.ts +6 -0
  121. package/{src/lib/shared/utils/validators/index.ts → lib/shared/utils/validators/index.d.ts} +3 -3
  122. package/lib/shared/utils/validators/pattern.d.ts +4 -0
  123. package/package.json +31 -20
  124. package/{src/public-api.ts → public-api.d.ts} +29 -68
  125. package/ng-package.json +0 -15
  126. package/src/lib/dynamic-form.component.html +0 -121
  127. package/src/lib/dynamic-form.component.scss +0 -7
  128. package/src/lib/dynamic-form.component.spec.ts +0 -21
  129. package/src/lib/dynamic-form.component.ts +0 -237
  130. package/src/lib/dynamic-form.service.spec.ts +0 -16
  131. package/src/lib/dynamic-form.service.ts +0 -9
  132. package/src/lib/shared/base/base-select.component.ts +0 -183
  133. package/src/lib/shared/base/base-value-accessor.ts +0 -192
  134. package/src/lib/shared/components/d-form-testing/d-form-testing.component.html +0 -197
  135. package/src/lib/shared/components/d-form-testing/d-form-testing.component.less +0 -12
  136. package/src/lib/shared/components/d-form-testing/d-form-testing.component.spec.ts +0 -22
  137. package/src/lib/shared/components/d-form-testing/d-form-testing.component.ts +0 -197
  138. package/src/lib/shared/components/dynamic-field/dynamic-field.component.html +0 -218
  139. package/src/lib/shared/components/dynamic-field/dynamic-field.component.scss +0 -28
  140. package/src/lib/shared/components/dynamic-field/dynamic-field.component.spec.ts +0 -21
  141. package/src/lib/shared/components/dynamic-field/dynamic-field.component.ts +0 -67
  142. package/src/lib/shared/components/field-user-config/field-user-config.component.html +0 -38
  143. package/src/lib/shared/components/field-user-config/field-user-config.component.scss +0 -29
  144. package/src/lib/shared/components/field-user-config/field-user-config.component.ts +0 -33
  145. package/src/lib/shared/components/fields/components/suffix/suffix.component.html +0 -42
  146. package/src/lib/shared/components/fields/components/suffix/suffix.component.scss +0 -3
  147. package/src/lib/shared/components/fields/components/suffix/suffix.component.spec.ts +0 -22
  148. package/src/lib/shared/components/fields/components/suffix/suffix.component.ts +0 -32
  149. package/src/lib/shared/components/fields/date/date-picker/date-picker.component.html +0 -20
  150. package/src/lib/shared/components/fields/date/date-picker/date-picker.component.scss +0 -5
  151. package/src/lib/shared/components/fields/date/date-picker/date-picker.component.spec.ts +0 -21
  152. package/src/lib/shared/components/fields/date/date-picker/date-picker.component.ts +0 -148
  153. package/src/lib/shared/components/fields/date/date-range/date-range.component.html +0 -33
  154. package/src/lib/shared/components/fields/date/date-range/date-range.component.scss +0 -22
  155. package/src/lib/shared/components/fields/date/date-range/date-range.component.spec.ts +0 -21
  156. package/src/lib/shared/components/fields/date/date-range/date-range.component.ts +0 -133
  157. package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.html +0 -31
  158. package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.scss +0 -3
  159. package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.spec.ts +0 -21
  160. package/src/lib/shared/components/fields/input/input-formatted/input-formatted.component.ts +0 -148
  161. package/src/lib/shared/components/fields/input/input-password/input-password.component.html +0 -18
  162. package/src/lib/shared/components/fields/input/input-password/input-password.component.scss +0 -0
  163. package/src/lib/shared/components/fields/input/input-password/input-password.component.spec.ts +0 -21
  164. package/src/lib/shared/components/fields/input/input-password/input-password.component.ts +0 -56
  165. package/src/lib/shared/components/fields/input/input-text/input-text.component.html +0 -73
  166. package/src/lib/shared/components/fields/input/input-text/input-text.component.scss +0 -0
  167. package/src/lib/shared/components/fields/input/input-text/input-text.component.spec.ts +0 -21
  168. package/src/lib/shared/components/fields/input/input-text/input-text.component.ts +0 -98
  169. package/src/lib/shared/components/fields/select/multi-select/multi-select.component.html +0 -73
  170. package/src/lib/shared/components/fields/select/multi-select/multi-select.component.scss +0 -21
  171. package/src/lib/shared/components/fields/select/multi-select/multi-select.component.spec.ts +0 -21
  172. package/src/lib/shared/components/fields/select/multi-select/multi-select.component.ts +0 -212
  173. package/src/lib/shared/components/fields/select/single-select/single-select.component.html +0 -55
  174. package/src/lib/shared/components/fields/select/single-select/single-select.component.scss +0 -1
  175. package/src/lib/shared/components/fields/select/single-select/single-select.component.spec.ts +0 -21
  176. package/src/lib/shared/components/fields/select/single-select/single-select.component.ts +0 -217
  177. package/src/lib/shared/components/fields/select/single-select/sl.component.old.txt +0 -337
  178. package/src/lib/shared/components/fields/select/single-select/sl.component.old2.txt +0 -340
  179. package/src/lib/shared/components/fields/select/tree-select/tree-select.component.html +0 -38
  180. package/src/lib/shared/components/fields/select/tree-select/tree-select.component.scss +0 -1
  181. package/src/lib/shared/components/fields/select/tree-select/tree-select.component.spec.ts +0 -21
  182. package/src/lib/shared/components/fields/select/tree-select/tree-select.component.ts +0 -401
  183. package/src/lib/shared/components/fields/textarea/textarea.component.html +0 -29
  184. package/src/lib/shared/components/fields/textarea/textarea.component.scss +0 -17
  185. package/src/lib/shared/components/fields/textarea/textarea.component.spec.ts +0 -21
  186. package/src/lib/shared/components/fields/textarea/textarea.component.ts +0 -76
  187. package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.html +0 -30
  188. package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.scss +0 -22
  189. package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.spec.ts +0 -22
  190. package/src/lib/shared/components/fields/upload/avatar-upload/avatar-upload.component.ts +0 -217
  191. package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.html +0 -101
  192. package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.scss +0 -117
  193. package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.spec.ts +0 -22
  194. package/src/lib/shared/components/fields/upload/multi-file-upload/multi-file-upload.component.ts +0 -480
  195. package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.html +0 -82
  196. package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.less +0 -80
  197. package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.spec.ts +0 -22
  198. package/src/lib/shared/components/fields/upload/multi-image-upload/multi-image-upload.component.ts +0 -288
  199. package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.html +0 -104
  200. package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.scss +0 -37
  201. package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.spec.ts +0 -21
  202. package/src/lib/shared/components/fields/upload/single-file-upload/single-file-upload.component.ts +0 -317
  203. package/src/lib/shared/config/dynamic-form.config.ts +0 -11
  204. package/src/lib/shared/consts/common/common.const.ts +0 -5
  205. package/src/lib/shared/consts/common/field-dependency.const.ts +0 -1
  206. package/src/lib/shared/consts/common/file.const.ts +0 -130
  207. package/src/lib/shared/consts/common/sample-test.const.ts +0 -1648
  208. package/src/lib/shared/consts/common/standalone-import.const.ts +0 -51
  209. package/src/lib/shared/consts/controls/control.const.ts +0 -11
  210. package/src/lib/shared/consts/fields/date-field.const.ts +0 -12
  211. package/src/lib/shared/consts/fields/field.const.ts +0 -23
  212. package/src/lib/shared/consts/fields/input-field.const.ts +0 -4
  213. package/src/lib/shared/consts/fields/input-formatted-field.const.ts +0 -35
  214. package/src/lib/shared/consts/fields/radio-field.const.ts +0 -31
  215. package/src/lib/shared/consts/fields/select-field.const.ts +0 -7
  216. package/src/lib/shared/consts/fields/upload-field.const.ts +0 -1
  217. package/src/lib/shared/consts/validators/index.ts +0 -0
  218. package/src/lib/shared/consts/validators/pattern.const.ts +0 -117
  219. package/src/lib/shared/enums/common/component-ui.enum.ts +0 -8
  220. package/src/lib/shared/enums/common/field-dependency.enum.ts +0 -10
  221. package/src/lib/shared/enums/common/file-size-type.enum.ts +0 -6
  222. package/src/lib/shared/enums/common/output-value-type.enum.ts +0 -22
  223. package/src/lib/shared/enums/common/view-mode.enum.ts +0 -4
  224. package/src/lib/shared/enums/controls/control.enum.ts +0 -12
  225. package/src/lib/shared/enums/fields/date-field.enum.ts +0 -4
  226. package/src/lib/shared/enums/fields/field.enum.ts +0 -21
  227. package/src/lib/shared/enums/fields/input-field.enum.ts +0 -6
  228. package/src/lib/shared/enums/fields/input-formatted-field.enum.ts +0 -6
  229. package/src/lib/shared/enums/fields/select-field.enum.ts +0 -4
  230. package/src/lib/shared/enums/fields/upload-field.enum.ts +0 -5
  231. package/src/lib/shared/enums/form/dynamic-form.enum.ts +0 -6
  232. package/src/lib/shared/enums/validators/regex.enum.ts +0 -47
  233. package/src/lib/shared/enums/validators/validators.enum.ts +0 -17
  234. package/src/lib/shared/factories/auto-numeric-options.factory.ts +0 -14
  235. package/src/lib/shared/models/common/api-config.model.ts +0 -7
  236. package/src/lib/shared/models/common/api-response.model.ts +0 -20
  237. package/src/lib/shared/models/common/common.model.ts +0 -39
  238. package/src/lib/shared/models/common/field-dependency.model.ts +0 -27
  239. package/src/lib/shared/models/common/file-config.model.ts +0 -22
  240. package/src/lib/shared/models/common/obj-field.model.ts +0 -68
  241. package/src/lib/shared/models/common/object-storage.model.ts +0 -15
  242. package/src/lib/shared/models/common/table-models.ts +0 -16
  243. package/src/lib/shared/models/fields/date/base-date-field.model.ts +0 -52
  244. package/src/lib/shared/models/fields/date/date-picker-field.model.ts +0 -43
  245. package/src/lib/shared/models/fields/date/date-range-field.model.ts +0 -52
  246. package/src/lib/shared/models/fields/field-grid.model.ts +0 -10
  247. package/src/lib/shared/models/fields/field-group.model.ts +0 -50
  248. package/src/lib/shared/models/fields/field-user-config.model.ts +0 -8
  249. package/src/lib/shared/models/fields/field.model.ts +0 -184
  250. package/src/lib/shared/models/fields/input/input-field.model.ts +0 -111
  251. package/src/lib/shared/models/fields/input/input-formatted-field.model.ts +0 -38
  252. package/src/lib/shared/models/fields/input/input-password-field.model.ts +0 -38
  253. package/src/lib/shared/models/fields/input/input-text-field.model.ts +0 -26
  254. package/src/lib/shared/models/fields/radio/index.ts +0 -0
  255. package/src/lib/shared/models/fields/radio/radio-base-field.model.ts +0 -84
  256. package/src/lib/shared/models/fields/select/index.ts +0 -0
  257. package/src/lib/shared/models/fields/select/multi-select-field.model.ts +0 -46
  258. package/src/lib/shared/models/fields/select/select-base-field.model.ts +0 -125
  259. package/src/lib/shared/models/fields/select/single-select-field.model.ts +0 -43
  260. package/src/lib/shared/models/fields/select/tree-select-field.model.ts +0 -44
  261. package/src/lib/shared/models/fields/textarea/index.ts +0 -0
  262. package/src/lib/shared/models/fields/textarea/textarea-field.model.ts +0 -97
  263. package/src/lib/shared/models/fields/upload/avatar-upload-field.model.ts +0 -33
  264. package/src/lib/shared/models/fields/upload/base-upload-field.model.ts +0 -105
  265. package/src/lib/shared/models/fields/upload/multi-file-upload-field.model.ts +0 -34
  266. package/src/lib/shared/models/fields/upload/multi-image-upload-field.model.ts +0 -42
  267. package/src/lib/shared/models/fields/upload/single-file-upload-field.model.ts +0 -33
  268. package/src/lib/shared/models/validations/index.ts +0 -1
  269. package/src/lib/shared/models/validations/validations.model.ts +0 -14
  270. package/src/lib/shared/services/dynamic-form.service.spec.ts +0 -16
  271. package/src/lib/shared/services/dynamic-form.service.ts +0 -251
  272. package/src/lib/shared/services/field.service.spec.ts +0 -16
  273. package/src/lib/shared/services/field.service.ts +0 -152
  274. package/src/lib/shared/services/file.service.spec.ts +0 -16
  275. package/src/lib/shared/services/file.service.ts +0 -53
  276. package/src/lib/shared/services/form-config.service.ts +0 -53
  277. package/src/lib/shared/services/form-data.service.spec.ts +0 -16
  278. package/src/lib/shared/services/form-data.service.ts +0 -114
  279. package/src/lib/shared/services/form-utils.ts +0 -52
  280. package/src/lib/shared/services/suffix.service.spec.ts +0 -16
  281. package/src/lib/shared/services/suffix.service.ts +0 -16
  282. package/src/lib/shared/services/validation.service.spec.ts +0 -16
  283. package/src/lib/shared/services/validation.service.ts +0 -38
  284. package/src/lib/shared/utils/common/common.utils.ts +0 -52
  285. package/src/lib/shared/utils/date/date.utils.ts +0 -129
  286. package/src/lib/shared/utils/dynamic-field/dynamic-field.ts +0 -0
  287. package/src/lib/shared/utils/dynamic-field/index.ts +0 -0
  288. package/src/lib/shared/utils/dynamic-form/dynamic-form.ts +0 -114
  289. package/src/lib/shared/utils/dynamic-form/index.ts +0 -0
  290. package/src/lib/shared/utils/fields/fields.ts +0 -78
  291. package/src/lib/shared/utils/file/file.utils.ts +0 -37
  292. package/src/lib/shared/utils/validators/custom-validators.ts +0 -158
  293. package/src/lib/shared/utils/validators/default-error-message.ts +0 -42
  294. package/src/lib/shared/utils/validators/pattern.ts +0 -26
  295. package/tsconfig.lib.json +0 -15
  296. package/tsconfig.lib.prod.json +0 -11
  297. package/tsconfig.spec.json +0 -15
  298. /package/{src/lib/shared/styles → styles}/_common-form.scss +0 -0
@@ -1,51 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
- import { RouterModule } from '@angular/router';
4
-
5
- // NG-ZORRO
6
- import { NzAlertModule } from 'ng-zorro-antd/alert';
7
- import { NzAvatarModule } from 'ng-zorro-antd/avatar';
8
- import { NzBadgeModule } from 'ng-zorro-antd/badge';
9
- import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
10
- import { NzButtonModule } from 'ng-zorro-antd/button';
11
- import { NzCardModule } from 'ng-zorro-antd/card';
12
- import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
13
- import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
14
- import { NzDividerModule } from 'ng-zorro-antd/divider';
15
- import { NzDrawerModule } from 'ng-zorro-antd/drawer';
16
- import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
17
- import { NzFormModule } from 'ng-zorro-antd/form';
18
- import { NzGridModule } from 'ng-zorro-antd/grid';
19
- import { NzIconModule } from 'ng-zorro-antd/icon';
20
- import { NzInputModule } from 'ng-zorro-antd/input';
21
- import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
22
- import { NzListModule } from 'ng-zorro-antd/list';
23
- import { NzModalModule } from 'ng-zorro-antd/modal';
24
- import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
25
- import { NzPopoverModule } from 'ng-zorro-antd/popover';
26
- import { NzProgressModule } from 'ng-zorro-antd/progress';
27
- import { NzRadioModule } from 'ng-zorro-antd/radio';
28
- import { NzSelectModule } from 'ng-zorro-antd/select';
29
- import { NzSpinModule } from 'ng-zorro-antd/spin';
30
- import { NzSwitchModule } from 'ng-zorro-antd/switch';
31
- import { NzTableModule } from 'ng-zorro-antd/table';
32
- import { NzTabsModule } from 'ng-zorro-antd/tabs';
33
- import { NzTagModule } from 'ng-zorro-antd/tag';
34
- import { NzTimePickerModule } from 'ng-zorro-antd/time-picker';
35
- import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
36
- import { NzCollapseModule } from 'ng-zorro-antd/collapse';
37
- import { NzUploadModule } from 'ng-zorro-antd/upload';
38
- import { NzImageModule } from 'ng-zorro-antd/image';
39
- import { NzCascaderModule } from 'ng-zorro-antd/cascader';
40
-
41
- // Core Angular modules (cần thiết ở hầu hết các component).
42
- export const CORE_MODULES = [CommonModule];
43
-
44
- // Form handling (thường dùng với Reactive)
45
- export const FORM_MODULES = [FormsModule, ReactiveFormsModule];
46
-
47
- // Routing (thường dùng khi component dùng `<router-outlet>` hoặc cần navigate)
48
- export const ROUTING_MODULES = [RouterModule];
49
-
50
- // 🧩 All common shared modules (nếu bạn muốn gộp nhanh)
51
- export const SHARED_MODULES = [...CORE_MODULES, ...FORM_MODULES, ...ROUTING_MODULES];
@@ -1,11 +0,0 @@
1
- export const CONTROL_TYPES = [
2
- 'input',
3
- 'textarea',
4
- 'select',
5
- 'checkbox',
6
- 'radio',
7
- 'date',
8
- 'upload',
9
- 'switch',
10
- 'autocomplete',
11
- ] as const;
@@ -1,12 +0,0 @@
1
- // Loại date field.
2
- export const DATE_FIELD_TYPES = ['picker', 'range'] as const;
3
-
4
- // Các pattern dùng để check định dạng date.
5
- export const FORMAT_DATE_PATTERNS = {
6
- YYYY_MM_DD: /^(\d{4})([-\/])(0[1-9]|1[0-2])\2(0[1-9]|[12]\d|3[01])$/,
7
- DD_MM_YYYY: /^(0[1-9]|[12]\d|3[01])([-\/])(0[1-9]|1[0-2])\2(\d{4})$/,
8
- MM_DD_YYYY: /^(0[1-9]|1[0-2])([-\/])(0[1-9]|[12]\d|3[01])\2(\d{4})$/,
9
-
10
- MM_DD_YYYY_HMS:
11
- /^(0[1-9]|1[0-2])([-\/])(0[1-9]|[12]\d|3[01])\2(\d{4})\s([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/,
12
- };
@@ -1,23 +0,0 @@
1
- /**
2
- * FIELD_TYPES là readonly ['input', 'select', 'checkbox',...]
3
- */
4
- export const FIELD_TYPES = [
5
- "input-text",
6
- "input-password",
7
- "input-formatted",
8
- "textarea",
9
- "date-picker",
10
- "date-range",
11
- "single-select",
12
- "tree-select",
13
- "multi-select",
14
- "single-file-upload",
15
- "multi-file-upload",
16
- "multi-image-upload",
17
- "avatar-upload",
18
- "checkbox",
19
- "radio",
20
- "reminder-type-radio",
21
- "switch",
22
- "autocomplete",
23
- ] as const;
@@ -1,4 +0,0 @@
1
- /**
2
- * FIELD_TYPES là readonly ['input', 'select', 'checkbox',...]
3
- */
4
- export const INPUT_FIELD_TYPES = ['text', 'email', 'password', 'number'] as const;
@@ -1,35 +0,0 @@
1
- import { Options } from "@zeedhi/autonumeric";
2
- import { NumericPreset } from "../../enums/fields/input-formatted-field.enum";
3
-
4
- export const BASE_OPTIONS: Partial<Options> = {
5
- modifyValueOnWheel: false,
6
- selectOnFocus: false,
7
- };
8
-
9
- export const NUMERIC_PRESETS: Record<
10
- Exclude<NumericPreset, NumericPreset.Manual>,
11
- Partial<Options>
12
- > = {
13
- [NumericPreset.Integer]: {
14
- digitGroupSeparator: ".",
15
- decimalCharacter: ",",
16
- decimalPlaces: 0,
17
- minimumValue: "0",
18
- },
19
-
20
- [NumericPreset.Decimal]: {
21
- digitGroupSeparator: ".",
22
- decimalCharacter: ",",
23
- decimalPlaces: 2,
24
- minimumValue: "0",
25
- },
26
-
27
- [NumericPreset.Currency]: {
28
- digitGroupSeparator: ".",
29
- decimalCharacter: ",",
30
- decimalPlaces: 0,
31
- currencySymbol: " ₫",
32
- currencySymbolPlacement: "s",
33
- minimumValue: "0",
34
- },
35
- };
@@ -1,31 +0,0 @@
1
- /**
2
- * FIELD_TYPES là readonly ['normal', 'reminderType',...]
3
- */
4
- export const RADIO_FIELD_TYPES = ['normal', 'reminderType'] as const;
5
-
6
- export const DEFAULT_BIND_LABEL = 'name';
7
- export const DEFAULT_BIND_VALUE = 'code';
8
-
9
- // Cứng cho ReminderTypeRadioFied.
10
- export const TIME_SELECT_OPTIONS = [
11
- {
12
- name: 'Trước hạn 01 ngày làm việc',
13
- code: '1',
14
- },
15
- {
16
- name: 'Trước hạn 02 ngày làm việc',
17
- code: '2',
18
- },
19
- {
20
- name: 'Trước hạn 03 ngày làm việc',
21
- code: '3',
22
- },
23
- {
24
- name: 'Trước hạn 07 ngày làm việc',
25
- code: '7',
26
- },
27
- {
28
- name: 'Trước hạn 10 ngày làm việc',
29
- code: '10',
30
- },
31
- ];
@@ -1,7 +0,0 @@
1
- /**
2
- * FIELD_TYPES là readonly ['single', 'multi', 'tree',...]
3
- */
4
- export const SELECT_FIELD_TYPES = ['single', 'multi', 'tree'] as const;
5
-
6
- export const DEFAULT_BIND_LABEL = 'name';
7
- export const DEFAULT_BIND_VALUE = 'code';
@@ -1 +0,0 @@
1
- export const UPLOAD_FIELD_TYPES = ['single-file', 'multi-file', 'avatar'] as const;
File without changes
@@ -1,117 +0,0 @@
1
- // Các patterns regex thường dùng trong ứng dụng
2
- export const PATTERN_PRESETS: Record<string, string | RegExp> = {
3
- alpha: '^[a-zA-Z]+$',
4
- alphaNumeric: '^[a-zA-Z0-9]+$',
5
- name: "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\()]+$",
6
- username: '^[a-z0-9_.s]+$',
7
- regexPostCode: '^[a-zA-Z0-9-s]+$',
8
- alphaDash: '^[a-zA-Z0-9_-s.]+$',
9
- alphaVN:
10
- '^[a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\,s]+$',
11
- alphaNumericVN:
12
- '^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\s]+$',
13
- alphaDashVN:
14
- "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\()]+$",
15
- unitName:
16
- '^[a-zA-Z0-9 ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹs_-]+$',
17
- date: '([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))',
18
- time: '(?=[01]\\d|2[0123])=(?=[012345]\\d)=(?=[012345]\\d)',
19
- dateTime:
20
- '[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9])=[0-5][0-9]=[0-5][0-9]',
21
- // dateV: "^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4}$",
22
- // dateV: /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-](19|20)\d\d/,
23
- // dateV: "^([0-2][0-9]|(3)[0-1])(\-)(((0)[0-9])|((1)[0-2]))(\-)\d{4}$",
24
- dateVN: '^(?=0[1-9]|[12]d|3[01])([/.-])(?=0[1-9]|1[012])\\1(?=19|20)dd$',
25
- dateTimeVN:
26
- '^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4} (\\d{2})=(\\d{2})=(\\d{2})$',
27
- dateShortTimeVN: '^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4} (\\d{2})=(\\d{2})$',
28
- integer: '^\\-?[0-9]+$',
29
- decimal: '^\\-?[0-9]*\\.?[0-9]+$',
30
- ipAddress:
31
- '^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$',
32
- base64: '[^a-zA-Z0-9\\/\\+=]',
33
- citizenId: '^\\d{12}$',
34
- passport: '^[A-Z0-9]{6,12}$', // Hộ chiếu - 6-12 ký tự (chữ IN HOA và số)
35
- // dnkhcn: "/^DNKHCN-[A-Z]{2}-d{4}$/",
36
- // msdn: "/^d{10}$/",
37
- intergerNotZero: '^[0-9]*[1-9][0-9]*$',
38
- //link: "(https?=//(?=www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|https?=//(?=www.|(?!www))[a-zA-Z0-9]+.[^s]{2,}|www.[a-zA-Z0-9]+.[^s]{2,})",
39
- // code: "^['A-Z''0-9''._\\-']*$",
40
- code: "^['A-Z''0-9''./_\\-\\/\\Đ']*$",
41
- codeHsda: "^['A-Z''0-9''./_\\-']*$",
42
- link_location: '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})([/\\w .-]*)?(\\?[\\w=&,.%-]*)?',
43
- link: '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?',
44
- //password: "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&]).{8,}/",
45
- accountName: '^[a-zA-Z0-9_.]{2,20}$',
46
- name_or_fullName:
47
- '^[a-zA-Z0-9_ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂưăạảấầẩẫậắằẳẵặẹẻẽềềểỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễếệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹ ]{1,20}$',
48
- packageName: '^(?:[a-zA-Z]+(?:d*[a-zA-Z_]*)*)(?:.[a-zA-Z]+(?:d*[a-zA-Z_]*)*)+$',
49
- email: '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$',
50
- passwordRegex:
51
- '^(?!.*\\s)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~`!@#$%^&*()--+={}\\[\\]|\\\\:;"\'<>,.?/_₹]).{8,}$',
52
- // phoneNumber: "^(\\+84|0)([235789])([0-9]{8,9})\\b",
53
- phoneNumber: '^(\\+84|0)([235789])([0-9]{8,9})$',
54
- seqNum: '^(100|[0-9]{1,2})$',
55
- link_basemap:
56
- '(https://www.|http://www.|https://|http://)?[a-zA-Z]{2,}(.[a-zA-Z]{2,})(.[a-zA-Z]{2,})?/[a-zA-Z0-9]{2,}|((https://www.|http://www.|https://|http://)?[a-zA-Z]{2,}(.[a-zA-Z]{2,})(.[a-zA-Z]{2,})?)|(https://www.|http://www.|https://|http://)?[a-zA-Z0-9]{2,}.[a-zA-Z0-9]{2,}.[a-zA-Z0-9]{2,}(.[a-zA-Z0-9]{2,})?',
57
- alphaDashBreakLineVN:
58
- "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\(\\)\n]+$",
59
- fax: '^(\\+?\\d{1,4}[\\s-]?)?(\\(?\\d{2,4}\\)?[\\s-]?)?[\\d\\s-]{5,15}$',
60
- alphaDashNameVN:
61
- "^[a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\.s.\/\-\_'\\(\\)]{2,}$",
62
- businessCode: '^\\d{10}(-\\d{3})?$',
63
- };
64
-
65
- // Các error message cho các pattern regex.
66
- export const PATTERN_ERROR_MESSAGES: Record<string, string> = {
67
- required: '%s không được để trống!',
68
- number: '%s phải là số!',
69
- email: '%s không đúng định dạng địa chỉ Email!',
70
- minlength: '%s có kích thước tối thiểu %s ký tự!',
71
- maxlength: '%s có kích thước tối đa %s ký tự!',
72
- min: '%s phải lớn hơn hoặc bằng %s!',
73
- max: '%s phải nhỏ hơn hoặc bằng %s!',
74
- alpha: '%s chỉ chứa ký tự thường và ký tự in hoa không dấu!',
75
- alphaNumeric: '%s chỉ chứa ký tự thường, ký tự in hoa không dấu và số!',
76
- name: '%s chỉ chứa ký tự thường, ký tự in hoa có dấu, số, dấu chấm, dấu phẩy, gạch dưới _ hoặc gạch ngang -, dấu ngoặc ()!',
77
- username: '%s chỉ chứa ký tự thường, số, dấu chấm và dấu gạch dưới _',
78
- regexPostCode: '%s chỉ chứa ký tự thường, ký tự in hoa không dấu, số, gạch ngang -',
79
- alphaDash:
80
- '%s chỉ chứa ký tự thường, ký tự in hoa không dấu, số, gạch dưới _ hoặc gạch ngang -, dấu ngoặc ()!',
81
- alphaVN: '%s chỉ chứa ký tự thường và ký tự in hoa có dấu!',
82
- alphaNumericVN: '%s chỉ chứa ký tự thường, ký tự in hoa có dấu và số!',
83
- alphaDashVN:
84
- '%s chỉ chứa ký tự thường, ký tự in hoa có dấu, số, dấu chấm, dấu phẩy, gạch dưới _ hoặc gạch ngang -, dấu ngoặc ()!',
85
- alphaDashNameVN: '%s chỉ chứa ký tự thường, ký tự in hoa có dấu và ít nhất 2 ký tự!',
86
- unitName: '%s chỉ chứa ký tự thường, ký tự in hoa có dấu, số, gạch dưới _ hoặc gạch ngang -',
87
- date: '%s không đúng định dạng năm tháng ngày (YYYY-MM-DD)!',
88
- time: '%s không đúng định dạng giờ phút giây (HH:MM:SS)!',
89
- dateTime: '%s không đúng định dạng năm tháng ngày giờ phút giây (YYYY-MM-DD HH:MM:SS)!',
90
- dateVN: '%s không đúng định dạng ngày tháng năm (DD/MM/YYYY)!',
91
- dateTimeVN: '%s không đúng định dạng ngày tháng năm giờ phút giây (DD/MM/YYYY HH:MI:SS)!',
92
- dateShortTimeVN: '%s không đúng định dạng ngày tháng năm giờ phút (DD/MM/YYYY HH:MI)!',
93
- integer: '%s phải là số nguyên!',
94
- decimal: '%s phải là số thập phân!',
95
- ipAddress: '%s không đúng định dạng địa chỉ IP!',
96
- base64: '%s không đúng định dạng Base64!',
97
- intergerNotZero: '%s phải là số nguyên dương khác 0!',
98
- link_location: '%s không đúng định dạng!',
99
- link: '%s không đúng định dạng!',
100
- codeHsda: "%s chỉ chứa các chữ cái in hoa không dấu, số và dấu '.', '_', '-'",
101
- code: "%s chỉ chứa các chữ cái in hoa không dấu, số và dấu '.', '_', '-', '/'",
102
- // code: "%s chỉ chứa các chữ cái in hoa,chữ cái thường không dấu, số và dấu '.', '_', '-'",
103
- accountName: '%s chỉ bao gồm các kí tự từ A-Z, các số từ 0-9 và ít nhất 2 ký tự',
104
- name_or_fullName: '',
105
- // pwdErrorTip:
106
- // "%s phải có ít nhất 8 ký tự. Ít nhất 1 ký tự hoa, số, ký tự thường và ký tự đặc biệt",
107
- phoneNumber:
108
- 'Số điện thoại không hợp lệ (Gợi ý: Số điện thoại phải bắt đầu bằng đầu số 02, 03, 05, 07, 08, 09 hoặc +84 và có độ dài 10-11 ký tự)',
109
- seqNum: '(Gợi ý: Thứ tự hiển thị phải là dạng số và có giá trị từ 1-100)',
110
- link_basemap: '%s không đúng định dạng!',
111
- passwordRegex:
112
- '%s phải có ít nhất 8 ký tự. Ít nhất 1 ký tự hoa, ký tự thường, số và ký tự đặc biệt',
113
- alphaDashBreakLineVN:
114
- '%s chỉ chứa ký tự thường, ký tự in hoa có dấu, số, dấu chấm, dấu phẩy, gạch dưới _ hoặc gạch ngang -, dấu ngoặc ()!',
115
- citizenId: '%s phải đúng định dạng 12 số!',
116
- businessCode: '',
117
- };
@@ -1,8 +0,0 @@
1
- export enum ComponentUiEnum {
2
- InputText = 'inputtext',
3
- Password = 'password',
4
- ComboboxSingleChoice = 'combobox(singlechoice)',
5
- ComboboxMultiChoice = 'combobox(multichoice)',
6
- CalendarDate = 'calendar(date)',
7
- CalendarDateRange = 'calendar(daterange)',
8
- }
@@ -1,10 +0,0 @@
1
- export enum CombineDependTypeEnum {
2
- Valid = 'valid',
3
- Skip = 'skip',
4
- Null = 'null',
5
- }
6
-
7
- export enum DependTypeEnum {
8
- All = 'any',
9
- Any = 'all',
10
- }
@@ -1,6 +0,0 @@
1
- export enum FileSizeTypeEnum {
2
- MB = 'MB',
3
- KB = 'KB',
4
- GB = 'GB',
5
- TB = 'TB',
6
- }
@@ -1,22 +0,0 @@
1
- export enum SelectOutputValueTypeEnum {
2
- Single = 'single', // Giá trị đơn theo bindValue.
3
- Object = 'object', // Giá trị object chỉ kèm theo 1 prop theo bindValue.
4
- SourceObject = 'sourceObject', // Giá trị object bao gồm cả instance từ list option.
5
- }
6
-
7
- export enum DatePickerOutputValueTypeEnum {
8
- String = 'string',
9
- Date = 'date',
10
- }
11
-
12
- export enum DateRangeOutputValueTypeEnum {
13
- String = 'string',
14
- StringArray = 'string-array',
15
- DateArray = 'date-array',
16
- }
17
-
18
- export enum UploadOutputValueTypeEnum {
19
- File = 'file',
20
- ObjectStorage = 'object-storage',
21
- Object = 'object',
22
- }
@@ -1,4 +0,0 @@
1
- export enum ViewModeEnum {
2
- form = 'form',
3
- text = 'text',
4
- }
@@ -1,12 +0,0 @@
1
- // Dạng control.
2
- export enum ControlTypeEnum {
3
- Input = 'input',
4
- Textarea = 'textarea',
5
- Select = 'select',
6
- Checkbox = 'checkbox',
7
- Radio = 'radio',
8
- Date = 'date',
9
- Upload = 'upload',
10
- Switch = 'switch',
11
- Autocomplete = 'autocomplete',
12
- }
@@ -1,4 +0,0 @@
1
- export enum DateFieldTypeEnum {
2
- Picker = 'picker',
3
- Range = 'range',
4
- }
@@ -1,21 +0,0 @@
1
- // Dạng field cụ thể.
2
- export enum FieldTypeEnum {
3
- InputText = "input-text",
4
- InputPassword = "input-password",
5
- InputFormatted = "input-formatted",
6
- Textarea = "textarea",
7
- DatePicker = "date-picker",
8
- DateRange = "date-range",
9
- SingleSelect = "single-select",
10
- TreeSelect = "tree-select",
11
- MultiSelect = "multi-select",
12
- SingleFileUpload = "single-file-upload",
13
- MultiFileUpload = "multi-file-upload",
14
- MultiImageUpload = "multi-image-upload",
15
- AvatarUpload = "avatar-upload",
16
- Checkbox = "checkbox",
17
- Radio = "radio",
18
- ReminderTypeRadio = "reminder-type-radio",
19
- Switch = "switch",
20
- Autocomplete = "autocomplete",
21
- }
@@ -1,6 +0,0 @@
1
- export enum InputFieldTypeEnum {
2
- Text = 'text',
3
- Email = 'email',
4
- Password = 'password',
5
- Number = 'number',
6
- }
@@ -1,6 +0,0 @@
1
- export enum NumericPreset {
2
- Integer = "integer",
3
- Decimal = "decimal",
4
- Currency = "currency",
5
- Manual = "manual",
6
- }
@@ -1,4 +0,0 @@
1
- export enum SelectFieldTypeEnum {
2
- Single = 'single',
3
- Multi = 'multi',
4
- }
@@ -1,5 +0,0 @@
1
- export enum UploadFieldTypeEnum {
2
- SingleFile = 'single-file',
3
- MultiFile = 'multi-file',
4
- Avatar = 'avatar',
5
- }
@@ -1,6 +0,0 @@
1
- export enum FormModeEnum {
2
- Add = 'add',
3
- Edit = 'edit',
4
- View = 'view',
5
- Design = 'design',
6
- }
@@ -1,47 +0,0 @@
1
- export enum RegexTypeEnum {
2
- Alpha = '^[a-zA-Z]+$',
3
- AlphaNumeric = '^[a-zA-Z0-9]+$',
4
- Name = "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\()]+$",
5
- Username = '^[a-z0-9_.s]+$',
6
- RegexPostCode = '^[a-zA-Z0-9-s]+$',
7
- AlphaDash = '^[a-zA-Z0-9_-s.]+$',
8
- AlphaVN = '^[a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\,s]+$',
9
- AlphaNumericVN = '^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\s]+$',
10
- AlphaDashVN = "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\()]+$",
11
- UnitName = '^[a-zA-Z0-9 ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹs_-]+$',
12
- Date = '([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))',
13
- Time = '(?=[01]\\d|2[0123])=(?=[012345]\\d)=(?=[012345]\\d)',
14
- DateTime = '[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9])=[0-5][0-9]=[0-5][0-9]',
15
- // dateVN= "^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4}$",
16
- // dateVN= /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-](19|20)\d\d/,
17
- // dateVN= "^([0-2][0-9]|(3)[0-1])(\-)(((0)[0-9])|((1)[0-2]))(\-)\d{4}$",
18
- DateVN = '^(?=0[1-9]|[12]d|3[01])([/.-])(?=0[1-9]|1[012])\\1(?=19|20)dd$',
19
- DateTimeVN = '^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4} (\\d{2})=(\\d{2})=(\\d{2})$',
20
- DateShortTimeVN = '^(0?[1-9]|[12][0-9]|3[01])[\\/](0?[1-9]|1[012])[\\/]\\d{4} (\\d{2})=(\\d{2})$',
21
- Integer = '^\\-?[0-9]+$',
22
- Decimal = '^\\-?[0-9]*\\.?[0-9]+$',
23
- IpAddress = '^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$',
24
- Base64 = '[^a-zA-Z0-9\\/\\+=]',
25
- Indentityid = '^\\d{12}$',
26
- // dnkhcn = "/^DNKHCN-[A-Z]{2}-d{4}$/",
27
- // msdn = "/^d{10}$/",
28
- IntergerNotZero = '^[0-9]*[1-9][0-9]*$',
29
- //link = "(https?=//(?=www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9].[^s]{2,}|https?=//(?=www.|(?!www))[a-zA-Z0-9]+.[^s]{2,}|www.[a-zA-Z0-9]+.[^s]{2,})",
30
- // code = "^['A-Z''0-9''._\\-']*$",
31
- Code = "^['A-Z''0-9''./_\\-\\/\\Đ']*$",
32
- CodeHsda = "^['A-Z''0-9''./_\\-']*$",
33
- LinkLocation = '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})([/\\w .-]*)?(\\?[\\w=&,.%-]*)?',
34
- Link = '(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?',
35
- //password = "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&]).{8,}/",
36
- AccountName = '^[a-zA-Z0-9_.]{2,20}$',
37
- NameOrFullName = '^[a-zA-Z0-9_ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂưăạảấầẩẫậắằẳẵặẹẻẽềềểỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễếệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵỷỹ ]{1,20}$',
38
- PackageName = '^(?:[a-zA-Z]+(?:d*[a-zA-Z_]*)*)(?:.[a-zA-Z]+(?:d*[a-zA-Z_]*)*)+$',
39
- Email = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$',
40
- PasswordRegex = '^(?!.*\\s)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~`!@#$%^&*()--+={}\\[\\]|\\\\:;"\'<>,.?/_₹]).{8,}$',
41
- // phoneNumber = "^(\\+84|0)([235789])([0-9]{8,9})\\b",
42
- PhoneNumber = '^(\\+84|0)([235789])([0-9]{8,9})$',
43
- SeqNum = '^(100|[0-9]{1,2})$',
44
- LinkBasemap = '(https://www.|http://www.|https://|http://)?[a-zA-Z]{2,}(.[a-zA-Z]{2,})(.[a-zA-Z]{2,})?/[a-zA-Z0-9]{2,}|((https://www.|http://www.|https://|http://)?[a-zA-Z]{2,}(.[a-zA-Z]{2,})(.[a-zA-Z]{2,})?)|(https://www.|http://www.|https://|http://)?[a-zA-Z0-9]{2,}.[a-zA-Z0-9]{2,}.[a-zA-Z0-9]{2,}(.[a-zA-Z0-9]{2,})?',
45
- AlphaDashBreakLineVN = "^[0-9a-zA-Z_ ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚĂĐĨŨƠàáâãèéêìíòóôõùúăđĩũơƯĂẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼỀỀỂẾưăạảấầẩẫậắằẳẵặẹẻẽềềểếỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪễệỉịọỏốồổỗộớờởỡợụủứừỬỮỰỲỴÝỶỸửữựỳỵýỷỹ\\.+,:%&=;s.\\/\\-_'\\(\\)\n]+$",
46
- Fax = '^(\\+?\\d{1,4}[\\s-]?)?(\\(?\\d{2,4}\\)?[\\s-]?)?[\\d\\s-]{5,15}$',
47
- }
@@ -1,17 +0,0 @@
1
- // Enum cho các validator chung được angular reactive form hỗ trợ.
2
- export enum CommonValidaterEnum {
3
- Required = 'required',
4
- MinLength = 'minlength',
5
- MaxLength = 'maxlength',
6
- Min = 'min',
7
- Max = 'max',
8
- Pattern = 'pattern',
9
- }
10
-
11
- // Enum cho các validator tùy chỉnh.
12
- export enum CustomValidaterEnum {
13
- MatchField = 'matchField',
14
- AcceptedMimiTypes = 'acceptedMimeTypes',
15
- MaxSizeInMB = 'maxSizeInMB',
16
- LeadingSpace = 'leadingSpace',
17
- }
@@ -1,14 +0,0 @@
1
- import { NUMERIC_PRESETS } from "../consts/fields/input-formatted-field.const";
2
- import { NumericPreset } from "../enums/fields/input-formatted-field.enum";
3
- import { InputFormattedField } from "../models/fields/input/input-formatted-field.model";
4
- import { Options } from "@zeedhi/autonumeric";
5
-
6
- export class AutoNumericOptionsFactory {
7
- static create(field: InputFormattedField): Options {
8
- if (field.format === NumericPreset.Manual) {
9
- return field.autoNumericOptions ?? NUMERIC_PRESETS.integer;
10
- }
11
-
12
- return NUMERIC_PRESETS[field.format];
13
- }
14
- }
@@ -1,7 +0,0 @@
1
- export interface ApiConfig {
2
- // Base url để get api.
3
- baseUrl: string;
4
-
5
- // Query params đi kèm api.
6
- params?: Record<string, unknown>;
7
- }
@@ -1,20 +0,0 @@
1
- export interface ApiResponse<T> {
2
- code: number;
3
- data: T;
4
- message: string;
5
- metadata?: any;
6
- }
7
-
8
- export interface ApiPagingResponse<T> {
9
- code: number;
10
- data: {
11
- content: T[];
12
- numOfElement?: number;
13
- numOfElements?: number;
14
- pageIndex: number;
15
- pageSize: number;
16
- totalElements: number;
17
- totalPages: number;
18
- };
19
- message: string;
20
- }
@@ -1,39 +0,0 @@
1
- import { NzUploadFile } from 'ng-zorro-antd/upload';
2
- import { ObjectStorage } from './object-storage.model';
3
- import { FormMode } from '../form';
4
-
5
- export interface ExtendUploadFile {
6
- fromServer?: boolean;
7
- markedForDelete?: boolean;
8
- objStorage: ObjectStorage;
9
- }
10
-
11
- export interface MyUploadFile extends NzUploadFile {
12
- fromServer?: boolean;
13
- markedForDelete?: boolean;
14
- objStorage: ObjectStorage;
15
- isTemp: boolean;
16
- previewUrl: string;
17
- // Trạng thái upload tùy chỉnh: loading → success | error.
18
- // Dùng tên khác để tránh xung đột với NzUploadFile.status (UploadFileStatus).
19
- uploadStatus?: 'loading' | 'success' | 'error';
20
- }
21
-
22
- export class Suffix {
23
- key!: string;
24
- label?: string;
25
- class?: string;
26
- description: string;
27
- icon?: {
28
- type: 'mdi' | 'zorro';
29
- value: string;
30
- class?: string;
31
- };
32
- visibleOn?: FormMode[]; // nếu undefined => hiển thị tất cả mode
33
-
34
- constructor(init: Partial<Suffix>) {
35
- this.visibleOn = ['add', 'edit'];
36
- this.description = '';
37
- Object.assign(this, init);
38
- }
39
- }
@@ -1,27 +0,0 @@
1
- import { COMBINE_DEPEND_TYPES } from '../../consts/common';
2
-
3
- export interface FieldDependency {
4
- // Key của field sẽ phụ thuộc.
5
- fieldKey: string;
6
-
7
- // Tên pararms sẽ dùng gọi api sau dấu ? theo giá trị của field đang phụ thuộc (có thể hiểu là parent).
8
- paramKey: string;
9
-
10
- // Label của field sẽ phụ thuộc.
11
- fieldLabel?: string;
12
-
13
- // Xử lý biến đổi giá trị nếu cần.
14
- mapFn?: (value: any) => any;
15
- }
16
-
17
- /**
18
- * FieldDependencyType:
19
- * - 'all' → cần tất cả field cha có giá trị mới gọi API
20
- * - 'any' → chỉ cần 1 field cha có giá trị cũng gọi API theo từng cha
21
- */
22
- export type FieldDependencyType = 'all' | 'any';
23
-
24
- export interface LastChangedParent {
25
- key: string;
26
- value: unknown;
27
- }