@ldquocc/dynamic-form 0.0.9 → 0.0.10

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 +4909 -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 +21 -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,1648 +0,0 @@
1
- import { CommonValidaterEnum, CustomValidaterEnum } from '../../enums/validators';
2
- import { Suffix } from '../../models/common/common.model';
3
- import { Extra, ObjField } from '../../models/common/obj-field.model';
4
- import { DatePickerField, DateRangeField } from '../../models/fields/date';
5
- import { BaseField } from '../../models/fields/field.model';
6
- import { InputPasswordField, InputTextField } from '../../models/fields/input';
7
- import { MultiSelectField } from '../../models/fields/select/multi-select-field.model';
8
- import { SingleSelectField } from '../../models/fields/select/single-select-field.model';
9
- import { TextareaField } from '../../models/fields/textarea/textarea-field.model';
10
- import { AvatarUploadField } from '../../models/fields/upload/avatar-upload-field.model';
11
- import { MultiFileUploadField } from '../../models/fields/upload/multi-file-upload-field.model';
12
- import { MultiImageUploadField } from '../../models/fields/upload/multi-image-upload-field.model';
13
- import { SingleFileUploadField } from '../../models/fields/upload/single-file-upload-field.model';
14
- import { APPLICATION_TYPES, IMAGE_TYPES } from './file.const';
15
- import { DependTypeEnum } from '../../enums/common';
16
- // Sample extra.
17
- // InputText
18
- const inputTextExtra: Extra = {
19
- form: {
20
- formTypes: ['add'],
21
- configs: {
22
- add: {
23
- key: 'name',
24
- label: 'Tên nhiệm vụ đề xuất',
25
- type: 'input-text',
26
- controlType: 'input',
27
- placeholder: 'Nhập tên nhiệm vụ đề xuất nào',
28
- required: false,
29
- grid: { xs: 12 },
30
- labelGrid: { xs: 8 },
31
- controlGrid: { xs: 16 },
32
- isHidden: false,
33
- isParent: false,
34
- allowSetValue: ['add'],
35
- } as BaseField<any>,
36
- },
37
- },
38
- };
39
- // Input Password
40
- // SingleSelect Province
41
- // SingleSelect District
42
- // DatePicker
43
- // DateRange
44
- // SingleFileUpload
45
- // MultiFileUpload
46
-
47
- // Sample test ObjFields lấy từ API.
48
- export const sampleObjFields = [
49
- // Input Text
50
- {
51
- code: 'Name',
52
- name: 'Tên nhiệm vụ',
53
- nameEn: 'Name',
54
- dataType: 'string',
55
- allowShare: 1,
56
- objClassCode: 'SciTaskProposal',
57
- componentUI: 'InputText',
58
- codeOnDb: 'tenNhiemVu',
59
- seqNum: 3,
60
- required: 3,
61
- allowStatistic: 0,
62
- preventEdit: 0,
63
- validateRegex: 'ALPHA_DASH_VN',
64
- extra: JSON.stringify(inputTextExtra),
65
- id: '7902fd41-f7c7-47e3-86f4-29b59a97dae3',
66
- },
67
- // Input Password
68
- // SingleSelect Province
69
- // SingleSelect District
70
- // DatePicker
71
- // DateRange
72
- // SingleFileUpload
73
- // MultiFileUpload
74
- // Field rác test k có cấu hình 1
75
- // Field rác test k có cấu hình 2
76
- // {
77
- // code: 'Code',
78
- // name: 'Mã đề xuất',
79
- // nameEn: 'Code',
80
- // dataType: 'string',
81
- // allowShare: 1,
82
- // objClassCode: 'SciTaskProposal',
83
- // componentUI: 'InputText',
84
- // codeOnDb: 'maDeXuat',
85
- // seqNum: 1,
86
- // required: 2,
87
- // allowStatistic: 0,
88
- // preventEdit: 0,
89
- // viewType: 'Basic',
90
- // id: '39d81def-6a34-4594-ab59-978233bea797',
91
- // },
92
- // {
93
- // code: 'Id',
94
- // name: 'Id',
95
- // nameEn: 'Id',
96
- // dataType: 'Guid',
97
- // allowShare: 1,
98
- // objClassCode: 'SciTaskProposal',
99
- // componentUI: 'TextView',
100
- // codeOnDb: 'id',
101
- // seqNum: 1,
102
- // required: 2,
103
- // allowStatistic: 0,
104
- // preventEdit: 1,
105
- // validateRegex: 'UUID',
106
- // viewType: 'Detail',
107
- // id: '0e460f53-76b0-4718-be0a-7e87c4a252a1',
108
- // },
109
- // {
110
- // code: 'ProposalName',
111
- // name: 'Tên đề xuất',
112
- // nameEn: 'ProposalName',
113
- // dataType: 'string',
114
- // allowShare: 1,
115
- // objClassCode: 'SciTaskProposal',
116
- // componentUI: 'InputText',
117
- // codeOnDb: 'tenDeXuat',
118
- // seqNum: 2,
119
- // required: 1,
120
- // allowStatistic: 0,
121
- // preventEdit: 0,
122
- // viewType: 'Detail',
123
- // id: '425739aa-0ab5-4524-8eec-1ccfaaf53ccc',
124
- // },
125
- // {
126
- // code: 'Name',
127
- // name: 'Tên nhiệm vụ',
128
- // nameEn: 'Name',
129
- // dataType: 'string',
130
- // allowShare: 1,
131
- // objClassCode: 'SciTaskProposal',
132
- // componentUI: 'InputText',
133
- // codeOnDb: 'tenNhiemVu',
134
- // seqNum: 3,
135
- // required: 3,
136
- // allowStatistic: 0,
137
- // preventEdit: 0,
138
- // validateRegex: 'ALPHA_DASH_VN',
139
- // extra:
140
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":1,"viewType":"taskInfo"},"editting":{"seqNumber":1,"viewType":"taskInfo"},"viewing":{"seqNumber":1,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}}}}',
141
- // viewType: 'Basic',
142
- // id: '7902fd41-f7c7-47e3-86f4-29b59a97dae3',
143
- // },
144
- // {
145
- // code: 'Level',
146
- // name: 'Cấp nhiệm vụ đề xuất',
147
- // nameEn: 'Level',
148
- // dataType: 'ObjType',
149
- // allowShare: 1,
150
- // objClassCode: 'SciTaskProposal',
151
- // apiURL: '{MainApiURL}/CommonCats/ObjType/byTypeGroupCode/{ObjTypeGroupCode}',
152
- // componentUI: 'Combobox(SingleChoice)',
153
- // codeOnDb: 'cap',
154
- // seqNum: 4,
155
- // required: 3,
156
- // allowStatistic: 0,
157
- // preventEdit: 0,
158
- // extra:
159
- // '{"formField":{"displayMode":["add","edit"],"adding":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":2,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}}}}',
160
- // viewType: 'Detail',
161
- // objTypeGroupCode: 'RECOMMEND_TASK',
162
- // id: '03230f20-2c88-4c05-a990-8290d435ce31',
163
- // },
164
- // {
165
- // code: 'Program',
166
- // name: 'Chương trình mà nhiệm vụ trực thuộc',
167
- // nameEn: 'Program',
168
- // dataType: 'string',
169
- // allowShare: 1,
170
- // objClassCode: 'SciTaskProposal',
171
- // componentUI: 'InputText',
172
- // codeOnDb: 'chuongTrinh',
173
- // seqNum: 5,
174
- // required: 1,
175
- // allowStatistic: 0,
176
- // preventEdit: 0,
177
- // validateRegex: 'ALPHA_DASH_VN',
178
- // extra:
179
- // '{"formField":{"displayMode":["add","edit"],"adding":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":2,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}}}}',
180
- // viewType: 'Detail',
181
- // id: 'c03a9d28-ca43-44ca-a59c-fc54494f3c73',
182
- // },
183
- // {
184
- // code: 'ResearchField',
185
- // name: 'Lĩnh vực',
186
- // nameEn: 'ResearchField',
187
- // dataType: 'ObjType',
188
- // allowShare: 1,
189
- // objClassCode: 'SciTaskProposal',
190
- // apiURL: '{MainApiURL}/CommonCats/ObjType/byTypeGroupCode/{ObjTypeGroupCode}',
191
- // componentUI: 'Combobox(SingleChoice)',
192
- // codeOnDb: 'linhVucNghienCuu',
193
- // seqNum: 6,
194
- // required: 3,
195
- // allowStatistic: 0,
196
- // preventEdit: 0,
197
- // extra:
198
- // '{"formField":{"displayMode":["add","edit","view","filter"],"adding":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"seqNumber":2,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":2,"section":"left","isShowBgInput":true,"inputBgColor":"#2E7D32","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}},"filtering":{"codeField":"researchFieldCode","seqNumber":3,"required":false,"dataTypeCombobox":"single"}}}',
199
- // viewType: 'Detail',
200
- // objTypeGroupCode: 'RESEARCH_FIELD',
201
- // id: 'b5248535-fb73-486e-a980-24e8ada1993b',
202
- // },
203
- // {
204
- // code: 'Type',
205
- // name: 'Loại hình nhiệm vụ',
206
- // nameEn: 'Type',
207
- // dataType: 'ObjType',
208
- // allowShare: 1,
209
- // objClassCode: 'SciTaskProposal',
210
- // apiURL: '{MainApiURL}/CommonCats/ObjType/byTypeGroupCode/{ObjTypeGroupCode}',
211
- // componentUI: 'Combobox(SingleChoice)',
212
- // codeOnDb: 'loaiHinhNhiemVu',
213
- // seqNum: 7,
214
- // required: 3,
215
- // allowStatistic: 0,
216
- // preventEdit: 0,
217
- // extra:
218
- // '{"formField":{"displayMode":["add","edit","view","filter"],"adding":{"seqNumber":3,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"seqNumber":3,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":3,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}},"filtering":{"codeField":"typeCode","seqNumber":1,"required":false,"dataTypeCombobox": "single"}}}',
219
- // viewType: 'Detail',
220
- // objTypeGroupCode: 'TYPE_TASK',
221
- // id: 'f6793a1e-f451-4050-b751-aa3a5f86d862',
222
- // },
223
- // {
224
- // code: 'PlanningProposalYear',
225
- // name: 'Năm kế hoạch đề xuất',
226
- // nameEn: 'PlanningProposalYear',
227
- // dataType: 'int',
228
- // allowShare: 1,
229
- // objClassCode: 'SciTaskProposal',
230
- // componentUI: 'InputText',
231
- // codeOnDb: 'namKeHoachDeXuat',
232
- // seqNum: 8,
233
- // required: 1,
234
- // allowStatistic: 0,
235
- // preventEdit: 0,
236
- // viewType: 'Detail',
237
- // id: '90f48f9f-5d3d-43d0-bbac-1dd072a4ffd1',
238
- // },
239
- // {
240
- // code: 'ResearchObjective',
241
- // name: 'Mục tiêu của nhiệm vụ ',
242
- // nameEn: 'ResearchObjective',
243
- // dataType: 'string',
244
- // allowShare: 1,
245
- // objClassCode: 'SciTaskProposal',
246
- // componentUI: 'TextArea',
247
- // codeOnDb: 'mucTieu',
248
- // seqNum: 9,
249
- // required: 3,
250
- // allowStatistic: 0,
251
- // preventEdit: 0,
252
- // extra:
253
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":3,"viewType":"taskInfo"},"editting":{"seqNumber":3,"viewType":"taskInfo"},"viewing":{"seqNumber":1,"section":"bottom"}}}',
254
- // viewType: 'Detail',
255
- // id: 'ecc54ec4-ee0e-4b97-9c5b-2e06d25d6bf0',
256
- // },
257
- // {
258
- // code: 'ExpectedContent',
259
- // name: 'Dự kiến các nội dung cần thực hiện',
260
- // nameEn: 'ExpectedContent',
261
- // dataType: 'string',
262
- // allowShare: 1,
263
- // objClassCode: 'SciTaskProposal',
264
- // componentUI: 'InputText',
265
- // codeOnDb: 'duKienNoiDung',
266
- // seqNum: 10,
267
- // required: 1,
268
- // allowStatistic: 0,
269
- // preventEdit: 0,
270
- // viewType: 'Detail',
271
- // id: '180c8300-11da-41f4-8685-97d2e8885200',
272
- // },
273
- // {
274
- // code: 'ExpectedResultsAndIndicators',
275
- // name: 'Dự kiến kết quả chính và các chỉ tiêu cần đạt',
276
- // nameEn: 'ExpectedResultsAndIndicators',
277
- // dataType: 'string',
278
- // allowShare: 1,
279
- // objClassCode: 'SciTaskProposal',
280
- // componentUI: 'TextArea',
281
- // codeOnDb: 'duKienKetQuaVaChiTieu',
282
- // seqNum: 11,
283
- // required: 3,
284
- // allowStatistic: 0,
285
- // preventEdit: 0,
286
- // extra:
287
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":5,"viewType":"taskInfo"},"editting":{"seqNumber":5,"viewType":"taskInfo"},"viewing":{"seqNumber":2,"section":"bottom"}}}',
288
- // viewType: 'Detail',
289
- // id: '617af2b0-d4d8-4e41-b0cb-388c4fbd917a',
290
- // },
291
- // {
292
- // code: 'ExpectedApplicationPlan',
293
- // name: 'Dự kiến phương án ứng dụng hoặc sử dụng kết quả tạo ra',
294
- // nameEn: 'ExpectedApplicationPlan',
295
- // dataType: 'string',
296
- // allowShare: 1,
297
- // objClassCode: 'SciTaskProposal',
298
- // componentUI: 'TextArea',
299
- // codeOnDb: 'duKienPhuongAnUngDung',
300
- // seqNum: 12,
301
- // required: 3,
302
- // allowStatistic: 0,
303
- // preventEdit: 0,
304
- // extra:
305
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":6,"viewType":"taskInfo"},"editting":{"seqNumber":6,"viewType":"taskInfo"},"viewing":{"seqNumber":3,"section":"bottom"}}}',
306
- // viewType: 'Detail',
307
- // id: 'c89bb6c9-3dcf-4380-94f5-630baadb9b31',
308
- // },
309
- // {
310
- // code: 'EstimatedBudget',
311
- // name: 'Dự kiến kinh phí (đồng)',
312
- // nameEn: 'EstimatedBudget',
313
- // dataType: 'long',
314
- // allowShare: 1,
315
- // objClassCode: 'SciTaskProposal',
316
- // componentUI: 'InputText',
317
- // codeOnDb: 'duKienKinhPhi',
318
- // seqNum: 13,
319
- // required: 3,
320
- // allowStatistic: 0,
321
- // preventEdit: 0,
322
- // validateRegex: 'INTEGER',
323
- // extra:
324
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":7,"span":{"sm":24,"md":"12"},"viewType":"taskInfo","isCurrency":true},"editting":{"seqNumber":7,"span":{"sm":24,"md":"12"},"viewType":"taskInfo","isCurrency":true},"viewing":{"seqNumber":4,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}},"isCurrency":true}}}',
325
- // viewType: 'Detail',
326
- // id: 'a8072db6-0bd1-4352-8e30-326446989eef',
327
- // },
328
- // {
329
- // code: 'EstimatedDuration',
330
- // name: 'Dự kiến thời gian thực hiện (tháng)',
331
- // nameEn: 'EstimatedDuration',
332
- // dataType: 'int',
333
- // allowShare: 1,
334
- // objClassCode: 'SciTaskProposal',
335
- // componentUI: 'InputText',
336
- // codeOnDb: 'duKienThoiGianThucHien',
337
- // seqNum: 14,
338
- // required: 3,
339
- // allowStatistic: 0,
340
- // preventEdit: 0,
341
- // validateRegex: 'INTEGER',
342
- // extra:
343
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":8,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"seqNumber":8,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":5,"section":"left","executionTime":"month","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}}}}',
344
- // viewType: 'Detail',
345
- // id: 'f69bdf14-c555-4cf5-b793-1eba85a25701',
346
- // },
347
- // {
348
- // code: 'ProposalAttachment',
349
- // name: 'Văn bản đề xuất đính kèm (pdf)',
350
- // nameEn: 'ProposalAttachment',
351
- // dataType: 'string',
352
- // allowShare: 1,
353
- // objClassCode: 'SciTaskProposal',
354
- // componentUI: 'File',
355
- // codeOnDb: 'vanBanDeXuat',
356
- // seqNum: 15,
357
- // required: 3,
358
- // allowStatistic: 0,
359
- // preventEdit: 0,
360
- // extra:
361
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"title":"Văn bản đề xuất đính kèm (hỗ trợ tập tin dạng .pdf)","seqNumber":9,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"editting":{"title":"Văn bản đề xuất đính kèm (hỗ trợ tập tin dạng .pdf)","seqNumber":9,"span":{"sm":24,"md":"12"},"viewType":"taskInfo"},"viewing":{"seqNumber":7,"section":"left","viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}}}}',
362
- // viewType: 'Detail',
363
- // id: '75596544-c7b1-40dd-ad24-deee21e8b8d1',
364
- // },
365
- // {
366
- // code: 'ProposalOrganizationName',
367
- // name: 'Tên đơn vị/cá nhân đề xuất',
368
- // nameEn: 'ProposalOrganizationName',
369
- // dataType: 'string',
370
- // allowShare: 1,
371
- // objClassCode: 'SciTaskProposal',
372
- // componentUI: 'InputText',
373
- // codeOnDb: 'tenToChucDeXuat',
374
- // seqNum: 16,
375
- // required: 3,
376
- // allowStatistic: 0,
377
- // preventEdit: 0,
378
- // validateRegex: 'ALPHA_DASH_VN',
379
- // extra:
380
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":2,"viewType":"taskOrgzIndivInfo"},"editting":{"seqNumber":2,"viewType":"taskOrgzIndivInfo"},"viewing":{"seqNumber":1,"section":"right"}}}',
381
- // viewType: 'Detail',
382
- // id: '9ba7ea0a-e1d3-4006-9a10-bba7b54f17e4',
383
- // },
384
- // {
385
- // code: 'ProposerName',
386
- // name: 'Tên cá nhân đề xuất',
387
- // nameEn: 'ProposerName',
388
- // dataType: 'string',
389
- // allowShare: 1,
390
- // objClassCode: 'SciTaskProposal',
391
- // componentUI: 'InputText',
392
- // codeOnDb: 'tenCaNhanDeXuat',
393
- // seqNum: 17,
394
- // required: 3,
395
- // allowStatistic: 0,
396
- // preventEdit: 0,
397
- // extra: '',
398
- // viewType: 'Detail',
399
- // id: 'cb2e752c-ed93-46f1-8cd8-75aeb399952b',
400
- // },
401
- // {
402
- // code: 'PhoneNumber',
403
- // name: 'Số điện thoại',
404
- // nameEn: 'PhoneNumber',
405
- // dataType: 'string',
406
- // allowShare: 1,
407
- // objClassCode: 'SciTaskProposal',
408
- // componentUI: 'InputText',
409
- // codeOnDb: 'soDienThoai',
410
- // seqNum: 18,
411
- // required: 1,
412
- // allowStatistic: 0,
413
- // preventEdit: 0,
414
- // validateRegex: 'PHONE_NUMBER',
415
- // extra:
416
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":4,"viewType":"taskOrgzIndivInfo","span":{"sm":24,"md":12}},"editting":{"seqNumber":4,"viewType":"taskOrgzIndivInfo","span":{"sm":24,"md":12}},"viewing":{"seqNumber":3,"section":"right"}}}',
417
- // viewType: 'Detail',
418
- // id: '06137a76-2793-42db-a0d1-2039e087b2ce',
419
- // },
420
- // {
421
- // code: 'Email',
422
- // name: 'Thư điện tử',
423
- // nameEn: 'Email',
424
- // dataType: 'string',
425
- // allowShare: 1,
426
- // objClassCode: 'SciTaskProposal',
427
- // componentUI: 'InputText',
428
- // codeOnDb: 'thuDienTu',
429
- // seqNum: 19,
430
- // required: 3,
431
- // allowStatistic: 0,
432
- // preventEdit: 0,
433
- // validateRegex: 'EMAIL',
434
- // extra:
435
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":3,"viewType":"taskOrgzIndivInfo","span":{"sm":24,"md":12}},"editting":{"seqNumber":3,"viewType":"taskOrgzIndivInfo","span":{"sm":24,"md":12}},"viewing":{"seqNumber":2,"section":"right"}}}',
436
- // viewType: 'Detail',
437
- // id: 'acef6046-1f41-48f2-b53a-c0ecebb42939',
438
- // },
439
- // {
440
- // code: 'Address',
441
- // name: 'Địa chỉ liên hệ',
442
- // nameEn: 'Address',
443
- // dataType: 'string',
444
- // allowShare: 1,
445
- // objClassCode: 'SciTaskProposal',
446
- // componentUI: 'TextArea',
447
- // codeOnDb: 'diaChi',
448
- // seqNum: 20,
449
- // required: 1,
450
- // allowStatistic: 0,
451
- // preventEdit: 0,
452
- // extra:
453
- // '{"formField":{"displayMode":["add","edit","view"],"adding":{"seqNumber":4,"viewType":"taskOrgzIndivInfo"},"editting":{"seqNumber":4,"viewType":"taskOrgzIndivInfo"},"viewing":{"type":"InputText","seqNumber":3,"section":"right"}}}',
454
- // viewType: 'Detail',
455
- // id: 'faef0e51-f288-424e-9e72-50ed155313a5',
456
- // },
457
- // {
458
- // code: 'ProposalSource',
459
- // name: 'Nguồn đề xuất',
460
- // nameEn: 'ProposalSource',
461
- // dataType: 'ObjType',
462
- // allowShare: 1,
463
- // objClassCode: 'SciTaskProposal',
464
- // apiURL: '{MainApiURL}/CommonCats/ObjType/byTypeGroupCode/{ObjTypeGroupCode}',
465
- // componentUI: 'Radiobox',
466
- // codeOnDb: 'nguonDeXuat',
467
- // seqNum: 21,
468
- // required: 3,
469
- // allowStatistic: 0,
470
- // preventEdit: 0,
471
- // extra:
472
- // '{"formField":{"displayMode":["add","edit","filter"],"adding":{"seqNumber":1,"viewType":"taskOrgzIndivInfo"},"editting":{"seqNumber":1,"viewType":"taskOrgzIndivInfo"},"filtering":{"codeField":"proposalSourceCode","seqNumber":2,"type":"Dropdown","required":false,"dataTypeCombobox": "single"}}}',
473
- // viewType: 'Detail',
474
- // objTypeGroupCode: 'PROPOSAL_SOURCE',
475
- // id: '6dea381c-368f-4423-83fb-957df68b176d',
476
- // },
477
- // {
478
- // code: 'ProposalStatus',
479
- // name: 'Trạng thái',
480
- // nameEn: 'ProposalStatus',
481
- // dataType: 'ObjType',
482
- // allowShare: 1,
483
- // objClassCode: 'SciTaskProposal',
484
- // apiURL: '{MainApiURL}/CommonCats/ObjType/byTypeGroupCode/{ObjTypeGroupCode}',
485
- // componentUI: 'Combobox(SingleChoice)',
486
- // codeOnDb: 'trangThaiDeXuat',
487
- // seqNum: 22,
488
- // required: 2,
489
- // allowStatistic: 0,
490
- // preventEdit: 0,
491
- // extra:
492
- // '{"formField":{"displayMode":["view","filter"],"viewing":{"seqNumber":6,"section":"left","isShowBgInput":true,"viewConfig":{"labelSpan":{"sm":24,"md":10},"formControlSpan":{"sm":24,"md":14}}},"filtering":{"codeField":"proposalStatusCode","seqNumber":4,"dataTypeCombobox":"single"}}}',
493
- // viewType: 'Detail',
494
- // objTypeGroupCode: 'PROPOSAL_STATUS',
495
- // id: 'b77dcf37-880b-48f9-acfb-09b983df4a0d',
496
- // },
497
- // {
498
- // code: 'ApplicationStartDate',
499
- // name: 'Ngày bắt đầu mở ứng tuyển cho đề xuất ',
500
- // nameEn: 'ApplicationStartDate',
501
- // dataType: 'Date',
502
- // allowShare: 1,
503
- // objClassCode: 'SciTaskProposal',
504
- // componentUI: 'Calendar(Date)',
505
- // codeOnDb: 'ngayBatDauUngTuyen',
506
- // seqNum: 23,
507
- // required: 3,
508
- // allowStatistic: 0,
509
- // preventEdit: 0,
510
- // extra:
511
- // '{"formField":{"displayMode":["edit","view"],"editting":{"title":"Thời gian bắt đầu","allowFutureDates":true,"seqNumber":1,"span":{"sm":24,"md":12},"section":"approval"},"viewing":{"title":"Thời gian bắt đầu","seqNumber":1,"section":"application"}}}',
512
- // viewType: 'Detail',
513
- // id: '790d2aee-4fb2-456f-8fd0-8cd5e0296a57',
514
- // },
515
- // {
516
- // code: 'ApplicationEndDate',
517
- // name: 'Ngày kết thúc ứng tuyển cho đề xuất ',
518
- // nameEn: 'ApplicationEndDate',
519
- // dataType: 'Date',
520
- // allowShare: 1,
521
- // objClassCode: 'SciTaskProposal',
522
- // componentUI: 'Calendar(Date)',
523
- // codeOnDb: 'ngayKetThucUngTuyen',
524
- // seqNum: 24,
525
- // required: 3,
526
- // allowStatistic: 0,
527
- // preventEdit: 0,
528
- // extra:
529
- // '{"formField":{"displayMode":["edit","view"],"editting":{"title":"Thời gian kết thúc","allowFutureDates":true,"seqNumber":1,"span":{"sm":24,"md":12},"section":"approval"},"viewing":{"title":"Thời gian kết thúc","seqNumber":2,"section":"application"}}}',
530
- // viewType: 'Detail',
531
- // id: '95822a49-2883-4ddb-a6ff-a3c8fc84f3bf',
532
- // },
533
- // {
534
- // code: 'ApprovalAttachment',
535
- // name: 'Văn bản giao nhiệm vụ - ứng tuyển được duyệt làm ',
536
- // nameEn: 'ApprovalAttachment',
537
- // dataType: 'string',
538
- // allowShare: 1,
539
- // objClassCode: 'SciTaskProposal',
540
- // componentUI: 'InputText',
541
- // codeOnDb: 'vanBanGiaoNhiemVu',
542
- // seqNum: 25,
543
- // required: 3,
544
- // allowStatistic: 0,
545
- // preventEdit: 0,
546
- // viewType: 'Detail',
547
- // id: 'fa00b65d-ebfb-49f9-8da2-09cd44138b79',
548
- // },
549
- // {
550
- // code: 'ApprovalDuration',
551
- // name: 'thời gian thức hiện duyệt',
552
- // nameEn: 'ApprovalDuration',
553
- // dataType: 'int',
554
- // allowShare: 1,
555
- // objClassCode: 'SciTaskProposal',
556
- // codeOnDb: 'thoiGianThucHienDuyet',
557
- // seqNum: 26,
558
- // required: 0,
559
- // allowStatistic: 0,
560
- // preventEdit: 0,
561
- // viewType: 'Detail',
562
- // id: '54477413-ec20-43d8-8f9e-6e73205b86ad',
563
- // },
564
- // {
565
- // code: 'ApprovalTotalBudget',
566
- // name: 'Tổng kinh phí cần thiết được duyệt với văn bản giao nhiệm vụ ',
567
- // nameEn: 'ApprovalTotalBudget',
568
- // dataType: 'long',
569
- // allowShare: 1,
570
- // objClassCode: 'SciTaskProposal',
571
- // codeOnDb: 'tongKinhPhiCanThietDuyet',
572
- // seqNum: 27,
573
- // required: 0,
574
- // allowStatistic: 0,
575
- // preventEdit: 0,
576
- // viewType: 'Detail',
577
- // id: 'f9a6c1a6-780e-4e9c-87ac-41a7dfbf37df',
578
- // },
579
- // {
580
- // code: 'ApprovalGovermentBudget',
581
- // name: 'Kinh phí từ Ngân sách nhà nước được duyệt với văn bản giao nhiệm vụ ',
582
- // nameEn: 'ApprovalGovermentBudget',
583
- // dataType: 'long',
584
- // allowShare: 1,
585
- // objClassCode: 'SciTaskProposal',
586
- // codeOnDb: 'kinhPhiTuNSNNDuyet',
587
- // seqNum: 28,
588
- // required: 0,
589
- // allowStatistic: 0,
590
- // preventEdit: 0,
591
- // viewType: 'Detail',
592
- // id: '37690b42-c4f7-40bf-ae4a-c42f10735409',
593
- // },
594
- // {
595
- // code: 'ApprovalNonGovermentBudget',
596
- // name: 'Kinh phí từ các nguồn ngoài ngân sách nhà nước được duyệt với văn bản giao nhiệm vụ ',
597
- // nameEn: 'ApprovalNonGovermentBudget',
598
- // dataType: 'long',
599
- // allowShare: 1,
600
- // objClassCode: 'SciTaskProposal',
601
- // codeOnDb: 'kinhPhiTuNgoaiNSNNDuyet',
602
- // seqNum: 29,
603
- // required: 0,
604
- // allowStatistic: 0,
605
- // preventEdit: 0,
606
- // viewType: 'Detail',
607
- // id: 'f9cf4aa3-6593-4b2d-88ca-1513069ce57f',
608
- // },
609
- // {
610
- // code: 'ApprovalContractStateBudget',
611
- // name: 'Kinh phí Ngân sách nhà nước khoán được duyệt với văn bản giao nhiệm vụ ',
612
- // nameEn: 'ApprovalContractStateBudget',
613
- // dataType: 'long',
614
- // allowShare: 1,
615
- // objClassCode: 'SciTaskProposal',
616
- // codeOnDb: 'kinhPhiNSNNKhoanDuyet',
617
- // seqNum: 30,
618
- // required: 0,
619
- // allowStatistic: 0,
620
- // preventEdit: 0,
621
- // viewType: 'Detail',
622
- // id: '9c0aeb4b-b6db-460e-8c01-7bc728535e7a',
623
- // },
624
- // {
625
- // code: 'ApprovalNonContractStateBudget',
626
- // name: 'Kinh phí Ngân sách nhà nước không khoán được duyệt với văn bản giao nhiệm vụ ',
627
- // nameEn: 'ApprovalNonContractStateBudget',
628
- // dataType: 'long',
629
- // allowShare: 1,
630
- // objClassCode: 'SciTaskProposal',
631
- // codeOnDb: 'kinhPhiNSNNKhongKhoanDuyet',
632
- // seqNum: 31,
633
- // required: 0,
634
- // allowStatistic: 0,
635
- // preventEdit: 0,
636
- // viewType: 'Detail',
637
- // id: 'c5cf6569-306a-4ede-ace6-5b9212003a0c',
638
- // },
639
- // {
640
- // code: 'ApprovalImplementationMethod',
641
- // name: 'Phương thức thực hiện',
642
- // nameEn: 'ApprovalImplementationMethod',
643
- // dataType: 'ObjType',
644
- // allowShare: 1,
645
- // objClassCode: 'SciTaskProposal',
646
- // codeOnDb: 'phuongThucThucHienDuyet',
647
- // seqNum: 32,
648
- // required: 1,
649
- // allowStatistic: 0,
650
- // preventEdit: 0,
651
- // viewType: 'Detail',
652
- // id: 'cf73d6e1-581d-4228-b016-6557466ed61a',
653
- // },
654
- // {
655
- // code: 'UpdatedById',
656
- // name: 'Mã người cập nhật trang thái hiện tại của nhiệm vụ',
657
- // nameEn: 'UpdatedById',
658
- // dataType: 'Guid',
659
- // allowShare: 1,
660
- // objClassCode: 'SciTaskProposal',
661
- // apiURL: '1',
662
- // codeOnDb: 'maNguoiCapNhat',
663
- // seqNum: 33,
664
- // required: 2,
665
- // allowStatistic: 0,
666
- // preventEdit: 0,
667
- // viewType: 'Detail',
668
- // id: '8c8de675-f6fa-4dd7-b706-39ea7408a12d',
669
- // },
670
- // {
671
- // code: 'UpdatedBy',
672
- // name: 'Người cập nhật trang thái hiện tại của nhiệm vụ',
673
- // nameEn: 'UpdatedBy',
674
- // dataType: 'string',
675
- // allowShare: 1,
676
- // objClassCode: 'SciTaskProposal',
677
- // apiURL: '1',
678
- // codeOnDb: 'nguoiCapNhat',
679
- // seqNum: 34,
680
- // required: 2,
681
- // allowStatistic: 0,
682
- // preventEdit: 0,
683
- // viewType: 'Detail',
684
- // id: 'f09197be-09c3-43e2-b2a0-b535be2643f0',
685
- // },
686
- // {
687
- // code: 'CreatedAt',
688
- // name: 'Thời gian tạo',
689
- // nameEn: 'CreatedAt',
690
- // dataType: 'DateTime',
691
- // allowShare: 1,
692
- // objClassCode: 'SciTaskProposal',
693
- // componentUI: 'Calendar(Date)',
694
- // codeOnDb: 'createdAt',
695
- // seqNum: 35,
696
- // required: 2,
697
- // allowStatistic: 0,
698
- // preventEdit: 0,
699
- // extra:
700
- // '{"formField":{"displayMode":["filter"],"filtering":{"seqNumber":5,"type":"DateRange"}}}',
701
- // viewType: 'Detail',
702
- // id: '8b425192-574b-4df3-8b9a-c28bcd47bdc7',
703
- // },
704
- // {
705
- // code: 'UpdatedAt',
706
- // name: 'Thời gian cập nhật',
707
- // nameEn: 'UpdatedAt',
708
- // dataType: 'DateTime',
709
- // allowShare: 1,
710
- // objClassCode: 'SciTaskProposal',
711
- // componentUI: 'TextView',
712
- // codeOnDb: 'updatedAt',
713
- // seqNum: 36,
714
- // required: 0,
715
- // allowStatistic: 0,
716
- // preventEdit: 0,
717
- // viewType: 'Detail',
718
- // id: '004a60a1-0b66-4d0b-acb0-eb76d57f49f1',
719
- // },
720
- // {
721
- // code: 'ApprovalNumber',
722
- // name: 'Số quyết định giao nhiệm vụ',
723
- // nameEn: 'ApprovalNumber',
724
- // dataType: 'string',
725
- // allowShare: 1,
726
- // objClassCode: 'SciTaskProposal',
727
- // componentUI: 'InputText',
728
- // codeOnDb: 'soQuyetDinhGiaoNhiemVu',
729
- // seqNum: 37,
730
- // required: 1,
731
- // allowStatistic: 0,
732
- // preventEdit: 0,
733
- // viewType: 'Detail',
734
- // id: '4000def5-2820-4d20-a624-9fc91834487e',
735
- // },
736
- ] as ObjField[];
737
-
738
- // Sample test mảng fields json đầu vào cho tham số @Input() fields.
739
- export const sampleFields = [
740
- // new MultiImageUploadField({
741
- // key: 'images',
742
- // label: 'Hình ảnh kèm theo',
743
- // required: true,
744
- // maxSizeInMB: 62,
745
- // imageCardWidth: '208px'
746
- // }),
747
- // new SingleSelectField({
748
- // key: 'role',
749
- // label: 'Vai trò',
750
- // bindLabel: 'name',
751
- // bindValue: 'code',
752
- // required: true,
753
- // // outputAs: 'single',
754
- // suffixes: [
755
- // new Suffix({
756
- // key: 'test',
757
- // visibleOn: ['add', 'edit', 'view']
758
- // }),
759
- // new Suffix({
760
- // key: 'edit',
761
- // }),
762
- // ],
763
- // transformLabel: (option: Record<string, unknown>) => {
764
- // const { name, code } = option;
765
- // if (name && code) return `${name} - ${code}`;
766
- // return '';
767
- // },
768
- // apiConfig: {
769
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/system/Role',
770
- // },
771
- // options: [
772
- // { name: 'Quản trị viên', code: 'admin' },
773
- // { name: 'Người vận hành', code: 'operator' },
774
- // { name: 'Người dân', code: 'anonymous' },
775
- // ],
776
- // errorMessages: {
777
- // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
778
- // },
779
- // }),
780
- // new SingleSelectField({
781
- // key: 'province',
782
- // label: 'Tỉnh/Thành phố',
783
- // required: true,
784
- // outputAs: 'single',
785
- // transformLabel: (option: Record<string, unknown>) => {
786
- // const { name, code } = option;
787
- // if (name && code) return `${name} - ${code}`;
788
- // return '';
789
- // },
790
- // apiConfig: {
791
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/main/CommonCats/Province',
792
- // },
793
- // isParent: true,
794
- // }),
795
- // new SingleSelectField({
796
- // key: 'district',
797
- // label: 'Quận/Huyện',
798
- // required: false,
799
- // transformLabel: (option: Record<string, unknown>) => {
800
- // const { name, code } = option;
801
- // if (name && code) return `${name} - ${code}`;
802
- // return '';
803
- // },
804
- // apiConfig: {
805
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/main/CommonCats/District',
806
- // },
807
- // isParent: true,
808
- // dependsOn: [
809
- // {
810
- // fieldKey: 'province',
811
- // paramKey: 'provinceCode',
812
- // },
813
- // ],
814
- // }),
815
-
816
- // new SingleSelectField({
817
- // key: 'ward',
818
- // label: 'Phường/Xã',
819
- // required: false,
820
- // transformLabel: (option: Record<string, unknown>) => {
821
- // const { name, code } = option;
822
- // if (name && code) return `${name} - ${code}`;
823
- // return '';
824
- // },
825
- // apiConfig: {
826
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/main/CommonCats/Ward',
827
- // },
828
- // dependsOn: [
829
- // {
830
- // fieldKey: 'district',
831
- // paramKey: 'districtCode',
832
- // },
833
- // ],
834
- // }),
835
- // new MultiSelectField({
836
- // key: 'multiRole',
837
- // label: 'Nhiều vai trò',
838
- // bindLabel: 'name',
839
- // bindValue: 'code',
840
- // outputAs: 'single',
841
- // required: true,
842
- // isDisabled: false,
843
- // transformLabel: (option: Record<string, unknown>) => {
844
- // const { name, code } = option;
845
- // if (name && code) return `${name} - ${code}`;
846
- // return '';
847
- // },
848
- // apiConfig: {
849
- // baseUrl: `${environment.GDCI_SYSTEM_URL}CommonCats/Position`,
850
- // },
851
- // errorMessages: {
852
- // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
853
- // },
854
- // suffixes: [
855
- // new Suffix({
856
- // key: 'test',
857
- // visibleOn: ['add', 'edit'],
858
- // }),
859
- // new Suffix({
860
- // key: 'edit',
861
- // }),
862
- // ],
863
- // }),
864
- // new InputTextField({
865
- // key: 'username',
866
- // label: 'Tên tài khoản',
867
- // value: '',
868
- // required: true,
869
- // minLength: 1,
870
- // isDisabled: false,
871
- // suffixes: [
872
- // new Suffix({
873
- // key: 'view',
874
- // visibleOn: ['view']
875
- // }),
876
- // new Suffix({
877
- // key: 'edit',
878
- // }),
879
- // ],
880
- // errorMessages: {
881
- // // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
882
- // // [CommonValidaterEnum.MinLength]: 'Tối thiểu nè hẹ hẹ',
883
- // },
884
- // pattern: 'alphaDashVN',
885
- // // grid: { xs: 12 },
886
- // // labelGrid: { xs: 8 },
887
- // // controlGrid: { xs: 16 }
888
- // }),
889
- // new InputPasswordField({
890
- // key: 'password',
891
- // label: 'Mật khẩu',
892
- // value: '',
893
- // required: false,
894
- // matchField: 'confirmPassword',
895
- // errorMessages: {
896
- // // [CustomValidaterEnum.MatchField]: 'Mật khẩu không khớp',
897
- // },
898
- // // grid: { xs: 12 },
899
- // // labelGrid: { xs: 8 },
900
- // // controlGrid: { xs: 16 }
901
- // }),
902
- // new InputPasswordField({
903
- // key: 'confirmPassword',
904
- // label: 'Xác nhận mật khẩu',
905
- // value: '',
906
- // required: false,
907
- // matchField: 'password',
908
- // errorMessages: {
909
- // // [CustomValidaterEnum.MatchField]: 'Mật khẩu không khớp',
910
- // },
911
- // // labelGrid: { xs: 16 },
912
- // // controlGrid: { xs: 8 }
913
- // }),
914
- // new TextareaField({
915
- // key: 'note',
916
- // label: 'Ghi chú',
917
- // value: '',
918
- // required: false,
919
- // minLength: 3,
920
- // maxLength: 128,
921
- // errorMessages: {
922
- // // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
923
- // // [CommonValidaterEnum.MinLength]: 'Tối thiểu nè hẹ hẹ',
924
- // },
925
- // // grid: { xs: 12 },
926
- // // labelGrid: { xs: 8 },
927
- // // controlGrid: { xs: 16 }
928
- // }),
929
- // new DatePickerField({
930
- // key: 'date',
931
- // label: 'Ngày',
932
- // required: true,
933
- // allowPastDates: false,
934
- // allowFutureDates: true,
935
- // isDisabled: true
936
- // }),
937
- // new DateRangeField({
938
- // key: 'expectedTime',
939
- // label: 'Thời gian dự kiến',
940
- // required: true,
941
- // outputAs: 'date',
942
- // allowPastDates: false,
943
- // allowFutureDates: true,
944
- // isDisabled: true
945
- // }),
946
-
947
- // new SingleFileUploadField({
948
- // key: 'attachment',
949
- // label: 'Văn bản đính kèm',
950
- // // required: true,
951
- // acceptedMimeTypes: [APPLICATION_TYPES.pdf, IMAGE_TYPES.tif, IMAGE_TYPES.tiff],
952
- // maxSizeInMB: 100000,
953
- // required: true,
954
- // apiFileConfig: {
955
- // uploadUrl: DEFAULT_UPLOAD_TIFF_URL,
956
- // deleteUrl: DEFAULT_DELETE_URL,
957
- // perMimeTypeConfig: {
958
- // 'image/tiff': {
959
- // uploadUrl: DEFAULT_UPLOAD_TIFF_URL,
960
- // buildFormData: (file, extraParams) => {
961
- // const fd = new FormData();
962
- // fd.append('File', file);
963
- // fd.append('SaveFile', String(true));
964
- // fd.append('BucketName', 'documents');
965
-
966
- // return fd;
967
- // },
968
- // },
969
- // },
970
- // },
971
- // }),
972
- new MultiFileUploadField({
973
- key: 'pictures',
974
- label: 'Những hình ảnh kèm theo',
975
- // required: true,
976
- // acceptedMimeTypes: [APPLICATION_TYPES.pdf],
977
- maxSizeInMB: 2,
978
- required: true,
979
- }),
980
- // new AvatarUploadField({
981
- // key: 'avatar',
982
- // label: 'Ảnh đại diện',
983
- // acceptedMimeTypes: [IMAGE_TYPES.jpeg, IMAGE_TYPES.jpg, IMAGE_TYPES.png],
984
- // required: false,
985
- // labelGrid: { xs: 4 },
986
- // controlGrid: { xs: 20 },
987
- // }),
988
- ];
989
-
990
- export const sampleFields2 = [
991
- new SingleSelectField({
992
- key: 'role',
993
- label: 'Vai trò',
994
- bindLabel: 'name',
995
- bindValue: 'code',
996
- required: false,
997
- outputAs: 'single',
998
- transformLabel: (option: Record<string, unknown>) => {
999
- const { name, code } = option;
1000
- if (name && code) return `${name} - ${code}`;
1001
- return '';
1002
- },
1003
- apiConfig: {
1004
- baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/system/Role',
1005
- },
1006
- options: [
1007
- { name: 'Quản trị viên', code: 'admin' },
1008
- { name: 'Người vận hành', code: 'operator' },
1009
- { name: 'Người dân', code: 'anonymous' },
1010
- ],
1011
- errorMessages: {
1012
- [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
1013
- },
1014
- }),
1015
- new SingleSelectField({
1016
- key: 'province',
1017
- label: 'Tỉnh/Thành phố',
1018
- required: true,
1019
- transformLabel: (option: Record<string, unknown>) => {
1020
- const { name, code } = option;
1021
- if (name && code) return `${name} - ${code}`;
1022
- return '';
1023
- },
1024
- apiConfig: {
1025
- baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/main/CommonCats/Province',
1026
- },
1027
- isParent: true,
1028
- }),
1029
- new SingleSelectField({
1030
- key: 'district',
1031
- label: 'Quận/Huyện',
1032
- required: false,
1033
- transformLabel: (option: Record<string, unknown>) => {
1034
- const { name, code } = option;
1035
- if (name && code) return `${name} - ${code}`;
1036
- return '';
1037
- },
1038
- apiConfig: {
1039
- baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/main/CommonCats/District',
1040
- },
1041
- isParent: true,
1042
- dependsOn: [
1043
- {
1044
- fieldKey: 'province',
1045
- paramKey: 'provinceCode',
1046
- },
1047
- ],
1048
- }),
1049
- new MultiSelectField({
1050
- key: 'multiRole',
1051
- label: 'Nhiều vai trò',
1052
- bindLabel: 'name',
1053
- bindValue: 'code',
1054
- outputAs: 'single',
1055
- required: true,
1056
- transformLabel: (option: Record<string, unknown>) => {
1057
- const { name, code } = option;
1058
- if (name && code) return `${name} - ${code}`;
1059
- return '';
1060
- },
1061
- apiConfig: {
1062
- baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/system/Role',
1063
- },
1064
- errorMessages: {
1065
- [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
1066
- },
1067
- }),
1068
- new InputTextField({
1069
- key: 'username',
1070
- label: 'Tên tài khoản',
1071
- value: '',
1072
- required: true,
1073
- minLength: 1,
1074
- errorMessages: {
1075
- // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
1076
- // [CommonValidaterEnum.MinLength]: 'Tối thiểu nè hẹ hẹ',
1077
- },
1078
- pattern: 'alphaDashVN',
1079
- // grid: { xs: 12 },
1080
- // labelGrid: { xs: 8 },
1081
- // controlGrid: { xs: 16 }
1082
- }),
1083
- new TextareaField({
1084
- key: 'note',
1085
- label: 'Ghi chú',
1086
- value: '',
1087
- required: false,
1088
- minLength: 3,
1089
- maxLength: 128,
1090
- errorMessages: {
1091
- // [CommonValidaterEnum.Required]: 'Bắt buộc nè hẹ hẹ',
1092
- // [CommonValidaterEnum.MinLength]: 'Tối thiểu nè hẹ hẹ',
1093
- },
1094
- // grid: { xs: 12 },
1095
- // labelGrid: { xs: 8 },
1096
- // controlGrid: { xs: 16 }
1097
- }),
1098
- new DatePickerField({
1099
- key: 'date',
1100
- label: 'Ngày',
1101
- required: true,
1102
- allowPastDates: false,
1103
- allowFutureDates: true,
1104
- }),
1105
- new DateRangeField({
1106
- key: 'expectedTime',
1107
- label: 'Thời gian dự kiến',
1108
- required: true,
1109
- outputAs: 'string',
1110
- allowPastDates: false,
1111
- allowFutureDates: true,
1112
- }),
1113
-
1114
- new SingleFileUploadField({
1115
- key: 'attachment',
1116
- label: 'Văn bản đính kèm',
1117
- // required: true,
1118
- acceptedMimeTypes: [APPLICATION_TYPES.pdf],
1119
- maxSizeInMB: 2,
1120
- required: true,
1121
- }),
1122
- new MultiFileUploadField({
1123
- key: 'documents',
1124
- label: 'Những hồ sơ đính kèm',
1125
- // required: true,
1126
- acceptedMimeTypes: [APPLICATION_TYPES.pdf],
1127
- maxSizeInMB: 2,
1128
- required: false,
1129
- }),
1130
- ];
1131
-
1132
- // Sample test model data 1.
1133
- export const sampleModel = {
1134
- province: { code: 35, name: 'Hà Name' },
1135
- username: 'ldquocccccccccc',
1136
- role: {
1137
- name: 'Quản trị viên',
1138
- code: 'ADMIN',
1139
- },
1140
- // role: 'ADMIN',
1141
- multiRole: [
1142
- {
1143
- name: 'Quản trị',
1144
- code: 'ADMIN',
1145
- },
1146
- {
1147
- name: 'Vận hành',
1148
- code: 'OPERATOR',
1149
- },
1150
- ],
1151
- note: 'Hãy nhớ những điều này:\n-Tôi là tôi.\n-Ai là tôi?\n-Sẽ ra sao nếu tôi tiến lên.\n-Hẹ hẹ.',
1152
- // note: 'hè hè\nhihihi\nfefefef',
1153
- // date: '08-01-2025',
1154
- // date: '30-08-2025',
1155
- // date: '2025-08-28',
1156
- date: new Date('2025-08-28'),
1157
- expectedTime: ['2025-08-28', new Date('2025-08-30')],
1158
- // attachment: [{
1159
- // id: 'd3f549e0-a036-4b16-aa67-30444d23d795',
1160
- // name: 'dummy.pdf',
1161
- // path: '/dummy.pdf',
1162
- // type: APPLICATION_TYPES.pdf,
1163
- // size: 1800
1164
- // }],
1165
- // attachment:
1166
- // '[{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238804458\",\"name\":\"Ho_Cubic_30L_Tong_Hop.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_30L_Tong_Hop.pdf\",\"isPublic\":true}]',
1167
-
1168
- attachment:
1169
- '[{"id":"8fe5f9b1-18aa-415d-a33e-b4a843b7cab1","name":"image.png","contentType":"image/png","size":77239,"bucket":"public","isDir":false,"createdAt":"2025-09-04","updatedAt":"2025-09-04","path":"/image.png","isPublic":true},{"id":"b8963fb1-e842-42ac-9fc4-1733a3b65dc5","name":"image (1).png","contentType":"image/png","size":79610,"bucket":"public","isDir":false,"createdAt":"2025-09-04","updatedAt":"2025-09-04","path":"/image (1).png","isPublic":true}]',
1170
- pictures:
1171
- '[{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238803338\",\"name\":\"Ho_Cubic_30L_Tong_Hop.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_30L_Tong_Hop.pdf\",\"isPublic\":true},{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238804458\",\"name\":\"Ho_Cubic_35L_Tong_Hop.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_35L_Tong_Hop.pdf\",\"isPublic\":true}]',
1172
- // pictures: '[{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800}]'
1173
- };
1174
-
1175
- // Sample test model data 2.
1176
- export const sampleModel2 = {
1177
- images:
1178
- '[{"id":"56062785-a619-41f7-8b64-ed648e57f934","name":"vrg_file_5141201818_104814_39-11_anh_bai_chinh_ml41ozadgy_ug51tjdtjb.jpg","contentType":"image/jpeg","size":176638,"bucket":"public","isDir":false,"createdAt":"2025-09-08","updatedAt":"2025-09-08","path":"/vrg_file_5141201818_104814_39-11_anh_bai_chinh_ml41ozadgy_ug51tjdtjb.jpg","isPublic":true},{"id":"79c62863-8241-4785-ac52-162a1d5347a6","name":"vrg_file_5409423468_coral-reef-fish-reef-fish-aquarium-wallpaper-preview.jpg","contentType":"image/jpeg","size":128651,"bucket":"public","isDir":false,"createdAt":"2025-09-08","updatedAt":"2025-09-08","path":"/vrg_file_5409423468_coral-reef-fish-reef-fish-aquarium-wallpaper-preview.jpg","isPublic":true},{"id":"973d2861-fe87-481f-9dc7-aeb7991516de","name":"vrg_file_8710772406_nemo_fi.jpg","contentType":"image/jpeg","size":19134,"bucket":"public","isDir":false,"createdAt":"2025-09-08","updatedAt":"2025-09-08","path":"/vrg_file_8710772406_nemo_fi.jpg","isPublic":true}]',
1179
- avatar:
1180
- '[{"id":"55283e86-6d16-4f12-9d9b-fce1b928eae5","name":"104814_39-11_anh_bai_chinh_ml41ozadgy_ug51tjdtjb.jpg","contentType":"image/jpeg","size":176638,"bucket":"public","isDir":false,"createdAt":"2025-08-19","updatedAt":"2025-08-19","path":"/104814_39-11_anh_bai_chinh_ml41ozadgy_ug51tjdtjb.jpg","isPublic":true}]',
1181
- province: { code: 35, name: 'Hà Name' },
1182
- district: { code: 349, name: 'Duy tiên' },
1183
- username: 'dddddddddddddddddddddddd',
1184
- role: {
1185
- name: 'Vận hành',
1186
- code: 'OPERATOR',
1187
- },
1188
- // role: 'ADMIN',
1189
- multiRole: [
1190
- {
1191
- name: 'Quản trị',
1192
- code: 'ADMIN',
1193
- },
1194
- {
1195
- name: 'Vận hành',
1196
- code: 'OPERATOR',
1197
- },
1198
- {
1199
- name: 'Người dân',
1200
- code: 'ANONYMOUS',
1201
- },
1202
- ],
1203
- note: 'CCCCC',
1204
- // note: 'hè hè\nhihihi\nfefefef',
1205
- // date: '08-01-2025',
1206
- // date: '30-08-2025',
1207
- // date: '2025-08-28',
1208
- date: new Date('2025-08-30'),
1209
- expectedTime: ['2025-08-01', new Date('2025-08-02')],
1210
- // attachment: [{
1211
- // id: 'd3f549e0-a036-4b16-aa67-30444d23d795',
1212
- // name: 'dummy.pdf',
1213
- // path: '/dummy.pdf',
1214
- // type: APPLICATION_TYPES.pdf,
1215
- // size: 1800
1216
- // }],
1217
- attachment:
1218
- '[{"id":"8fe5f9b1-18aa-415d-a33e-b4a843b7cab1","name":"image.png","contentType":"image/png","size":77239,"bucket":"public","isDir":false,"createdAt":"2025-09-04","updatedAt":"2025-09-04","path":"/image.png","isPublic":true},{"id":"b8963fb1-e842-42ac-9fc4-1733a3b65dc5","name":"image (1).png","contentType":"image/png","size":79610,"bucket":"public","isDir":false,"createdAt":"2025-09-04","updatedAt":"2025-09-04","path":"/image (1).png","isPublic":true}]',
1219
- // attachment:
1220
- // '[{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238804458\",\"name\":\"dumpleeeee.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_30L_Tong_Hop.pdf\",\"isPublic\":true}]',
1221
- pictures:
1222
- '[{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238803338\",\"name\":\"Ho_Cubic_45L_Tong_Hop.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_30L_Tong_Hop.pdf\",\"isPublic\":true},{\"id\":\"1952e9ea-61c3-4b8d-abe2-4df238804458\",\"name\":\"Ho_Cubic_60L_Tong_Hop.pdf\",\"contentType\":\"application/pdf\",\"size\":28407,\"bucket\":\"caosuvn\",\"isDir\":false,\"createdAt\":\"2025-08-08\",\"updatedAt\":\"2025-08-08\",\"path\":\"/Ho_Cubic_35L_Tong_Hop.pdf\",\"isPublic\":true}]',
1223
- // pictures: '[{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800},{"id":"d3f549e0-a036-4b16-aa67-30444d23d795","name":"dummy.pdf","path":"/dummy.pdf","contentType":"application/pdf","size":1800}]'
1224
- };
1225
-
1226
- //#region Multi Form
1227
-
1228
- export const sampleMultiFormFieldsA = [
1229
- // ======== Input Text ========
1230
- new InputTextField({
1231
- key: 'usernameA',
1232
- label: 'Tên tài khoản A',
1233
- value: '',
1234
- required: true,
1235
- minLength: 2,
1236
- isDisabled: false,
1237
- errorMessages: {
1238
- [CommonValidaterEnum.Required]: 'Bắt buộc nha hẹ hẹ',
1239
- [CommonValidaterEnum.MinLength]: 'Tối thiểu là 2 nha hẹ hẹ',
1240
- },
1241
- pattern: 'alphaDashVN',
1242
- // grid: { xs: 12 },
1243
- // labelGrid: { xs: 8 },
1244
- // controlGrid: { xs: 16 },
1245
- // suffixes: [
1246
- // new Suffix({
1247
- // key: 'view',
1248
- // visibleOn: ['view'],
1249
- // }),
1250
- // new Suffix({
1251
- // key: 'edit',
1252
- // }),
1253
- // ],
1254
- }),
1255
- // ======== Input Text ========
1256
-
1257
- // ======== Input Password ========
1258
- // new InputPasswordField({
1259
- // key: 'passwordA',
1260
- // label: 'Mật khẩu',
1261
- // // value: '',
1262
- // required: false,
1263
- // matchField: 'confirmPasswordA',
1264
- // errorMessages: {
1265
- // [CustomValidaterEnum.MatchField]: 'Mật khẩu không khớp',
1266
- // },
1267
- // // grid: { xs: 12 },
1268
- // // labelGrid: { xs: 8 },
1269
- // // controlGrid: { xs: 16 }
1270
- // }),
1271
- // new InputPasswordField({
1272
- // key: 'confirmPasswordA',
1273
- // label: 'Xác nhận mật khẩu',
1274
- // // value: '',
1275
- // required: false,
1276
- // matchField: 'passwordA',
1277
- // errorMessages: {
1278
- // [CustomValidaterEnum.MatchField]: 'Xác nhận mật khẩu không khớp',
1279
- // },
1280
- // // labelGrid: { xs: 16 },
1281
- // // controlGrid: { xs: 8 }
1282
- // }),
1283
- // ======== Input Password ========
1284
-
1285
- // ======== Textarea ========
1286
- // new TextareaField({
1287
- // key: 'noteA',
1288
- // label: 'Ghi chú A',
1289
- // value: '',
1290
- // required: false,
1291
- // minLength: 3,
1292
- // maxLength: 128,
1293
- // // grid: { xs: 12 },
1294
- // // labelGrid: { xs: 8 },
1295
- // // controlGrid: { xs: 16 }
1296
- // }),
1297
- // ======== Textarea ========
1298
-
1299
- // ======== DATE PICKER ========
1300
- // new DatePickerField({
1301
- // key: 'dateA',
1302
- // label: 'Ngày A',
1303
- // required: true,
1304
- // allowPastDates: false,
1305
- // allowFutureDates: true,
1306
- // isDisabled: false,
1307
- // }),
1308
- // ======== DATE PICKER ========
1309
-
1310
- // ======== DATE RANGE ========
1311
- // new DateRangeField({
1312
- // key: 'expectedTimeA',
1313
- // label: 'Thời gian dự kiến A',
1314
- // required: true,
1315
- // outputAs: 'date-array',
1316
- // allowPastDates: false,
1317
- // allowFutureDates: true,
1318
- // isDisabled: false,
1319
- // }),
1320
- // ======== DATE RANGE ========
1321
-
1322
- // ======== SINGLE SELECT ========
1323
- // new SingleSelectField({
1324
- // key: 'roleA',
1325
- // label: 'Vai trò A',
1326
- // bindLabel: 'name',
1327
- // bindValue: 'code',
1328
- // required: true,
1329
- // // outputAs: 'single',
1330
- // transformLabel: (option: Record<string, unknown>) => {
1331
- // const { name, code } = option;
1332
- // if (name && code) return `${name} - ${code}`;
1333
- // return '';
1334
- // },
1335
- // apiConfig: {
1336
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/system/Role',
1337
- // },
1338
- // options: [
1339
- // { name: 'Quản trị viên', code: 'admin' },
1340
- // { name: 'Người vận hành', code: 'operator' },
1341
- // { name: 'Người dân', code: 'anonymous' },
1342
- // ],
1343
- // }),
1344
- // ======== SINGLE SELECT ========
1345
-
1346
- // ======== MULTI SELECT ========
1347
- // new MultiSelectField({
1348
- // key: 'multiRoleA',
1349
- // label: 'Nhiều vai trò A',
1350
- // bindLabel: 'name',
1351
- // bindValue: 'code',
1352
- // outputAs: 'single',
1353
- // required: true,
1354
- // isDisabled: false,
1355
- // transformLabel: (option: Record<string, unknown>) => {
1356
- // const { name, code } = option;
1357
- // if (name && code) return `${name} - ${code}`;
1358
- // return '';
1359
- // },
1360
- // apiConfig: {
1361
- // baseUrl: `${environment.GDCI_SYSTEM_URL}CommonCats/Position`,
1362
- // },
1363
- // }),
1364
- // ======== MULTI SELECT ========
1365
-
1366
- // ======== SINGLE FILE UPLOAD ========
1367
- new SingleFileUploadField({
1368
- key: 'attachmentA',
1369
- label: 'Văn bản đính kèm A',
1370
- // required: true,
1371
- acceptedMimeTypes: [APPLICATION_TYPES.pdf, IMAGE_TYPES.tif, IMAGE_TYPES.tiff],
1372
- maxSizeInMB: 100000,
1373
- required: true,
1374
- }),
1375
- // ======== SINGLE FILE UPLOAD ========
1376
-
1377
- // ======== MULTI FILE UPLOAD ========
1378
- new MultiFileUploadField({
1379
- key: 'picturesA',
1380
- label: 'Những hình ảnh kèm theo A',
1381
- acceptedMimeTypes: [APPLICATION_TYPES.pdf],
1382
- maxSizeInMB: 2,
1383
- required: false,
1384
- }),
1385
- // ======== MULTI FILE UPLOAD ========
1386
-
1387
- // ======== MULTI IMAGE UPLOAD ========
1388
- new MultiImageUploadField({
1389
- key: 'imagesA',
1390
- label: 'Hình ảnh kèm theo A',
1391
- required: true,
1392
- maxSizeInMB: 62,
1393
- imageCardWidth: '208px',
1394
- }),
1395
- // ======== MULTI IMAGE UPLOAD ========
1396
-
1397
- // ======== AVATAR UPLOAD ========
1398
- new AvatarUploadField({
1399
- key: 'avatarA',
1400
- label: 'Ảnh đại diện A',
1401
- acceptedMimeTypes: [IMAGE_TYPES.jpeg, IMAGE_TYPES.jpg, IMAGE_TYPES.png],
1402
- required: false,
1403
- labelGrid: { xs: 4 },
1404
- controlGrid: { xs: 20 },
1405
- }),
1406
- // ======== AVATAR UPLOAD ========
1407
- ];
1408
-
1409
- export const sampleMultiFormFieldsB = [
1410
- // ======== Input Text ========
1411
- new InputTextField({
1412
- key: 'usernameB',
1413
- label: 'Tên tài khoản B',
1414
- value: '',
1415
- required: true,
1416
- minLength: 2,
1417
- isDisabled: false,
1418
- errorMessages: {
1419
- [CommonValidaterEnum.Required]: 'Bắt buộc nha hẹ hẹ',
1420
- [CommonValidaterEnum.MinLength]: 'Tối thiểu là 2 nha hẹ hẹ',
1421
- },
1422
- pattern: 'alphaDashVN',
1423
- // grid: { xs: 12 },
1424
- // labelGrid: { xs: 8 },
1425
- // controlGrid: { xs: 16 },
1426
- // suffixes: [
1427
- // new Suffix({
1428
- // key: 'view',
1429
- // visibleOn: ['view'],
1430
- // }),
1431
- // new Suffix({
1432
- // key: 'edit',
1433
- // }),
1434
- // ],
1435
- }),
1436
- // ======== Input Text ========
1437
-
1438
- // ======== Input Password ========
1439
- // new InputPasswordField({
1440
- // key: 'passwordB',
1441
- // label: 'Mật khẩu',
1442
- // // value: '',
1443
- // required: false,
1444
- // matchField: 'confirmPasswordB',
1445
- // errorMessages: {
1446
- // [CustomValidaterEnum.MatchField]: 'Mật khẩu không khớp',
1447
- // },
1448
- // // grid: { xs: 12 },
1449
- // // labelGrid: { xs: 8 },
1450
- // // controlGrid: { xs: 16 }
1451
- // }),
1452
- // new InputPasswordField({
1453
- // key: 'confirmPasswordB',
1454
- // label: 'Xác nhận mật khẩu',
1455
- // // value: '',
1456
- // required: false,
1457
- // matchField: 'passwordB',
1458
- // errorMessages: {
1459
- // [CustomValidaterEnum.MatchField]: 'Xác nhận mật khẩu không khớp',
1460
- // },
1461
- // // labelGrid: { xs: 16 },
1462
- // // controlGrid: { xs: 8 }
1463
- // }),
1464
- // ======== Input Password ========
1465
-
1466
- // ======== Textarea ========
1467
- // new TextareaField({
1468
- // key: 'noteB',
1469
- // label: 'Ghi chú B',
1470
- // value: '',
1471
- // required: false,
1472
- // minLength: 3,
1473
- // maxLength: 128,
1474
- // // grid: { xs: 12 },
1475
- // // labelGrid: { xs: 8 },
1476
- // // controlGrid: { xs: 16 }
1477
- // }),
1478
- // ======== Textarea ========
1479
-
1480
- // ======== DATE PICKER ========
1481
- // new DatePickerField({
1482
- // key: 'dateB',
1483
- // label: 'Ngày B',
1484
- // required: true,
1485
- // allowPastDates: false,
1486
- // allowFutureDates: true,
1487
- // isDisabled: false,
1488
- // }),
1489
- // ======== DATE PICKER ========
1490
-
1491
- // ======== DATE RANGE ========
1492
- // new DateRangeField({
1493
- // key: 'expectedTimeB',
1494
- // label: 'Thời gian dự kiến B',
1495
- // required: true,
1496
- // outputAs: 'date-array',
1497
- // allowPastDates: false,
1498
- // allowFutureDates: true,
1499
- // isDisabled: false,
1500
- // }),
1501
- // ======== DATE RANGE ========
1502
-
1503
- // ======== SINGLE SELECT ========
1504
- // new SingleSelectField({
1505
- // key: 'roleB',
1506
- // label: 'Vai trò B',
1507
- // bindLabel: 'name',
1508
- // bindValue: 'code',
1509
- // required: true,
1510
- // // outputAs: 'single',
1511
- // transformLabel: (option: Record<string, unknown>) => {
1512
- // const { name, code } = option;
1513
- // if (name && code) return `${name} - ${code}`;
1514
- // return '';
1515
- // },
1516
- // apiConfig: {
1517
- // baseUrl: 'https://quyhoachxaydung.hanam.gov.vn/gdci/system/Role',
1518
- // },
1519
- // options: [
1520
- // { name: 'Quản trị viên', code: 'admin' },
1521
- // { name: 'Người vận hành', code: 'operator' },
1522
- // { name: 'Người dân', code: 'anonymous' },
1523
- // ],
1524
- // }),
1525
- // ======== SINGLE SELECT ========
1526
-
1527
- // ======== MULTI SELECT ========
1528
- // new MultiSelectField({
1529
- // key: 'multiRoleB',
1530
- // label: 'Nhiều vai trò B',
1531
- // bindLabel: 'name',
1532
- // bindValue: 'code',
1533
- // outputAs: 'single',
1534
- // required: true,
1535
- // isDisabled: false,
1536
- // transformLabel: (option: Record<string, unknown>) => {
1537
- // const { name, code } = option;
1538
- // if (name && code) return `${name} - ${code}`;
1539
- // return '';
1540
- // },
1541
- // apiConfig: {
1542
- // baseUrl: `${environment.GDCI_SYSTEM_URL}CommonCats/Position`,
1543
- // },
1544
- // }),
1545
- // ======== MULTI SELECT ========
1546
-
1547
- // ======== SINGLE FILE UPLOAD ========
1548
- new SingleFileUploadField({
1549
- key: 'attachmentB',
1550
- label: 'Văn bản đính kèm B',
1551
- // required: true,
1552
- acceptedMimeTypes: [APPLICATION_TYPES.pdf, IMAGE_TYPES.tif, IMAGE_TYPES.tiff],
1553
- maxSizeInMB: 100000,
1554
- required: true,
1555
- }),
1556
- // ======== SINGLE FILE UPLOAD ========
1557
-
1558
- // ======== MULTI FILE UPLOAD ========
1559
- new MultiFileUploadField({
1560
- key: 'picturesB',
1561
- label: 'Những hình ảnh kèm theo B',
1562
- acceptedMimeTypes: [APPLICATION_TYPES.pdf],
1563
- maxSizeInMB: 2,
1564
- required: false,
1565
- }),
1566
- // ======== MULTI FILE UPLOAD ========
1567
-
1568
- // ======== MULTI IMAGE UPLOAD ========
1569
- new MultiImageUploadField({
1570
- key: 'imagesB',
1571
- label: 'Hình ảnh kèm theo B',
1572
- required: true,
1573
- maxSizeInMB: 62,
1574
- imageCardWidth: '208px',
1575
- }),
1576
- // ======== MULTI IMAGE UPLOAD ========
1577
-
1578
- // ======== AVATAR UPLOAD ========
1579
- new AvatarUploadField({
1580
- key: 'avatarB',
1581
- label: 'Ảnh đại diện B',
1582
- acceptedMimeTypes: [IMAGE_TYPES.jpeg, IMAGE_TYPES.jpg, IMAGE_TYPES.png],
1583
- required: false,
1584
- labelGrid: { xs: 4 },
1585
- controlGrid: { xs: 20 },
1586
- }),
1587
- // ======== AVATAR UPLOAD ========
1588
- ];
1589
-
1590
- export const sampleMultiFormModelA = {
1591
- usernameA: 'Lương Văn Lào',
1592
- };
1593
-
1594
- export const sampleMultiFormModelB = {
1595
- usernameB: 'Đào Mai Tôn',
1596
- };
1597
-
1598
- //#endregion Multi Form
1599
-
1600
- //#region MultiSelect depend on field has isParent
1601
- export const sampleMultiSelectDependOnParent = [
1602
- new MultiFileUploadField({
1603
- key: 'picturesB',
1604
- label: 'Những hình ảnh kèm theo B',
1605
- acceptedMimeTypes: [APPLICATION_TYPES.pdf, IMAGE_TYPES.png, IMAGE_TYPES.jpg],
1606
- maxSizeInMB: 1,
1607
- required: true,
1608
- }),
1609
-
1610
- new SingleSelectField({
1611
- key: 'province',
1612
- label: 'Tỉnh/Thành phố',
1613
- required: true,
1614
- outputAs: 'single',
1615
- transformLabel: (option: Record<string, unknown>) => {
1616
- const { name, code } = option;
1617
- if (name && code) return `${name} - ${code}`;
1618
- return '';
1619
- },
1620
- apiConfig: {
1621
- baseUrl: `http://mock-api.com/CommonCats/Province`,
1622
- },
1623
- isParent: true,
1624
- }),
1625
-
1626
- new MultiSelectField({
1627
- key: 'ward',
1628
- label: 'Phường/Xã',
1629
- required: false,
1630
- transformLabel: (option: Record<string, unknown>) => {
1631
- const { name, code } = option;
1632
- if (name && code) return `${name} - ${code}`;
1633
- return '';
1634
- },
1635
- apiConfig: {
1636
- baseUrl: `http://mock-api.com/CommonCats/Ward`,
1637
- },
1638
- dependsOn: [
1639
- {
1640
- fieldKey: 'province',
1641
- paramKey: 'provinceCode',
1642
- },
1643
- ],
1644
- // dependType: DependTypeEnum.All
1645
- }),
1646
- ];
1647
-
1648
- //#endregion MultiSelect depend on field has isParent