@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
@@ -0,0 +1,53 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FormDataService {
3
+ private formDataMap;
4
+ /**
5
+ * Kiểm tra xem đã tồn tại form data với form id truyền vào.
6
+ * @param formId Id của form.
7
+ * @returns true nếu có và ngược lại
8
+ */
9
+ has(formId: string): boolean;
10
+ /**
11
+ * Cập nhật giá trị của một hoặc nhiều field vào form data theo form id.
12
+ * @param formId Id của form.
13
+ * @param data Đối tượng các field theo dạng key:value.
14
+ */
15
+ patch(formId: string, data: Record<string, unknown>): void;
16
+ /**
17
+ * Gán form data theo form id.
18
+ * @param formId Id của form.
19
+ * @param data Đối tượng các field theo dạng key:value.
20
+ */
21
+ set(formId: string, data: Record<string, unknown>): void;
22
+ /**
23
+ * Lấy giá trị của form data theo form id có track signal.
24
+ * @param formId Id của form.
25
+ * @returns Record<string, unknown> nếu có giá trị. Ngược lại undefined.
26
+ */
27
+ get(formId: string): Record<string, unknown> | undefined;
28
+ /**
29
+ * Lấy giá trị của form data theo form id không track signal.
30
+ * @param formId Id của form.
31
+ * @returns Record<string, unknown> nếu có giá trị. Ngược lại undefined.
32
+ */
33
+ getSnapshot(formId: string): Record<string, unknown> | undefined;
34
+ /**
35
+ * Clear giá trị form data theo form id. Clear chứ không xóa khỏi formDataMap hoàn toàn.
36
+ * @param formId Id của form.
37
+ */
38
+ clear(formId: string): void;
39
+ /**
40
+ * Delete form data theo form id khỏi formDataMap.
41
+ * @param formId Id của form.
42
+ */
43
+ delete(formId: string): void;
44
+ /**
45
+ *
46
+ * @param formId Id của form.
47
+ * @param key mã trường trong object form data.
48
+ * @returns unknown.
49
+ */
50
+ getFieldValue(formId: string, key: string): unknown;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormDataService, never>;
52
+ static ɵprov: i0.ɵɵInjectableDeclaration<FormDataService>;
53
+ }
@@ -0,0 +1,5 @@
1
+ export declare class FormUtils {
2
+ static makeFileNameEncode(str: string): string;
3
+ static randomFileName(name: string): string;
4
+ static convertViewDate(date: unknown, ft?: string): string;
5
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SuffixService {
3
+ private suffixClick$;
4
+ suffixClick: import("rxjs").Observable<{
5
+ key: string;
6
+ formId: string;
7
+ }>;
8
+ onSuffixClick(key: string, formId: string): void;
9
+ constructor();
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SuffixService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<SuffixService>;
12
+ }
@@ -0,0 +1,10 @@
1
+ import { AbstractControl } from '@angular/forms';
2
+ import { BaseField } from '../models/fields/field.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ValidationService {
5
+ constructor();
6
+ getFirstError(control: AbstractControl, field: BaseField<any>, fields: BaseField<any>[]): string;
7
+ private getErrorMessage;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ValidationService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<ValidationService>;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseField } from '../../models/fields/field.model';
2
+ export declare const isValidJSON: (str: string) => boolean;
3
+ export declare const uuidGenerator: () => string;
4
+ export declare const lowerCaseFirstChar: (str: string) => string;
5
+ export declare const upperCaseFirstChar: (str: string) => string;
6
+ export declare const deepCopyArray: (array: BaseField<any>[]) => BaseField<any>[];
7
+ export declare const deepCopyObject: (obj: BaseField<any>) => BaseField<any>;
@@ -1 +1 @@
1
- export * from './common.utils';
1
+ export * from './common.utils';
@@ -0,0 +1,6 @@
1
+ export declare const formatDateToDDMMYYYY: (date: Date, separator?: "-" | "/") => string;
2
+ export declare const formatDateToYYYYMMDD: (date: Date, separator?: "-" | "/") => string;
3
+ export declare const normalizeToDate: (input: string | Date | undefined) => Date | null;
4
+ export declare const normalizeToDate1: (input: string | Date | undefined) => Date | null;
5
+ export declare const generateYearsDesc: (from: number) => number[];
6
+ export declare const generateYearsAsc: (from: number) => number[];
@@ -1 +1 @@
1
- export * from './date.utils';
1
+ export * from './date.utils';
@@ -0,0 +1,11 @@
1
+ import { FormGroup } from "@angular/forms";
2
+ import { BaseField } from "../../models/fields/field.model";
3
+ import { FormMode } from "../../models/form";
4
+ import { SelectBaseField } from "../../models/fields/select/select-base-field.model";
5
+ export declare const buildForm: (fields: BaseField<any>[], mode: FormMode, model?: Record<string, any>) => FormGroup;
6
+ export declare const createInputPlaceholder: (field: BaseField<any>) => string;
7
+ export declare const createSingleSelectPlaceholder: (field: BaseField<any>) => string;
8
+ export declare const createMultiSelectPlaceholder: (field: BaseField<any>) => string;
9
+ export declare const createDatePickerPlaceholder: (field: BaseField<any>) => string;
10
+ export declare const createPlaceholder: (field: BaseField<any>) => string;
11
+ export declare const createSelectPlaceholder: <K>(field: SelectBaseField<K>) => string;
@@ -0,0 +1,20 @@
1
+ import { DatePickerField } from '../../models/fields/date/date-picker-field.model';
2
+ import { DateRangeField } from '../../models/fields/date/date-range-field.model';
3
+ import { FieldGroup, GroupedFields } from '../../models/fields/field-group.model';
4
+ import { BaseField } from '../../models/fields/field.model';
5
+ import { InputPasswordField, InputTextField } from '../../models/fields/input';
6
+ import { MultiSelectField } from '../../models/fields/select/multi-select-field.model';
7
+ import { SingleSelectField } from '../../models/fields/select/single-select-field.model';
8
+ import { AvatarUploadField } from '../../models/fields/upload/avatar-upload-field.model';
9
+ import { MultiFileUploadField } from '../../models/fields/upload/multi-file-upload-field.model';
10
+ import { SingleFileUploadField } from '../../models/fields/upload/single-file-upload-field.model';
11
+ export declare const isInputTextField: (field: BaseField<any>) => field is InputTextField;
12
+ export declare const isInputPasswordField: (field: BaseField<any>) => field is InputPasswordField;
13
+ export declare const isSingleSelectField: (field: BaseField<any>) => field is SingleSelectField;
14
+ export declare const isMultiSelectField: (field: BaseField<any>) => field is MultiSelectField;
15
+ export declare const isDatePickerField: (field: BaseField<any>) => field is DatePickerField;
16
+ export declare const isDateRangeField: (field: BaseField<any>) => field is DateRangeField;
17
+ export declare const isSingleFileUploadField: (field: BaseField<any>) => field is SingleFileUploadField;
18
+ export declare const isMultiFileUploadField: (field: BaseField<any>) => field is MultiFileUploadField;
19
+ export declare const isAvatarUploadField: (field: BaseField<any>) => field is AvatarUploadField;
20
+ export declare const buildGroupedFields: (fields: BaseField<any>[], groups?: FieldGroup[]) => GroupedFields;
@@ -1 +1 @@
1
- export * from './fields';
1
+ export * from './fields';
@@ -0,0 +1,4 @@
1
+ import { FileSizeTypeEnum } from '../../enums/common/file-size-type.enum';
2
+ export declare const formatFileSize: (size: number, type: FileSizeTypeEnum) => number;
3
+ export declare const getExtensions: (acptMimeTypes: string[]) => string[];
4
+ export declare const createFakeFile: (name: string, type: string, size: number) => File;
@@ -1 +1 @@
1
- export * from './file.utils';
1
+ export * from './file.utils';
@@ -0,0 +1,11 @@
1
+ import { AsyncValidatorFn, ValidatorFn } from "@angular/forms";
2
+ export declare const noLeadingSpaceValidator: () => ValidatorFn;
3
+ export declare const noWhitespaceValidator: () => ValidatorFn;
4
+ export declare const startsWithValidator: (prefix: string) => ValidatorFn;
5
+ export declare const minMaxFieldValidator: (minKey: string, maxKey: string) => ValidatorFn;
6
+ export declare const matchFieldsValidator: (fieldToMatch: string) => ValidatorFn;
7
+ export declare const asyncUsernameValidator: (takenUsernames: string[]) => AsyncValidatorFn;
8
+ export declare const noSpecialCharValidator: () => ValidatorFn;
9
+ export declare const usernameBlacklistValidator: (blacklist: string[]) => ValidatorFn;
10
+ export declare const acceptedMimeTypesValidator: (acceptedMimeTypes: string[]) => ValidatorFn;
11
+ export declare const maxFileSizeInMBValidator: (maxSizeInMB: number) => ValidatorFn;
@@ -0,0 +1,6 @@
1
+ export declare const getDefaultPatternErrorMessage: (label: string, pattern: string | RegExp) => string;
2
+ export declare const getDefaultMinLengthErrorMessage: (label: string, errorValue: any) => string;
3
+ export declare const getDefaultMaxLengthErrorMessage: (label: string, errorValue: any) => string;
4
+ export declare const getDefaultAcptMimeTypesErrorMessage: (typeString: string) => string;
5
+ export declare const getDefaultMaxSizeInMBErrorMessage: (maxSizeInMB: number) => string;
6
+ export declare const getLeadingSpaceErrorMessage: (label: string) => string;
@@ -1,3 +1,3 @@
1
- export * from './custom-validators';
2
- export * from './pattern';
3
- export * from './default-error-message';
1
+ export * from './custom-validators';
2
+ export * from './pattern';
3
+ export * from './default-error-message';
@@ -0,0 +1,4 @@
1
+ export declare const resolvePattern: (pattern: string | RegExp | undefined) => {
2
+ type: "regexKey" | "regexString" | "regexObject" | "unknown";
3
+ value: string | RegExp;
4
+ };
package/package.json CHANGED
@@ -1,20 +1,31 @@
1
- {
2
- "name": "@ldquocc/dynamic-form",
3
- "version": "0.0.9",
4
- "peerDependencies": {
5
- "@angular/common": "^19.2.0",
6
- "@angular/core": "^19.2.0",
7
- "@angular/forms": "^19.2.0",
8
- "@angular/router": "^19.2.0",
9
- "ng-zorro-antd": "^19.2.1",
10
- "ngx-currency": "^19.0.0",
11
- "rxjs": "~7.8.0"
12
- },
13
- "dependencies": {
14
- "tslib": "^2.3.0",
15
- "date-fns": "^2.30.0",
16
- "lodash-es": "^4.17.21",
17
- "@zeedhi/autonumeric": "^4.6.5"
18
- },
19
- "sideEffects": false
20
- }
1
+ {
2
+ "name": "@ldquocc/dynamic-form",
3
+ "version": "0.0.10",
4
+ "peerDependencies": {
5
+ "@angular/common": "^19.2.0",
6
+ "@angular/core": "^19.2.0",
7
+ "@angular/forms": "^19.2.0",
8
+ "@angular/router": "^19.2.0",
9
+ "ng-zorro-antd": "^19.2.1",
10
+ "ngx-currency": "^19.0.0",
11
+ "rxjs": "~7.8.0"
12
+ },
13
+ "dependencies": {
14
+ "tslib": "^2.3.0",
15
+ "date-fns": "^2.30.0",
16
+ "lodash-es": "^4.17.21",
17
+ "@zeedhi/autonumeric": "^4.6.5"
18
+ },
19
+ "sideEffects": false,
20
+ "module": "fesm2022/ldquocc-dynamic-form.mjs",
21
+ "typings": "index.d.ts",
22
+ "exports": {
23
+ "./package.json": {
24
+ "default": "./package.json"
25
+ },
26
+ ".": {
27
+ "types": "./index.d.ts",
28
+ "default": "./fesm2022/ldquocc-dynamic-form.mjs"
29
+ }
30
+ }
31
+ }
@@ -1,68 +1,29 @@
1
- /*
2
- * Public API Surface of dynamic-form
3
- */
4
-
5
- // ==========================================
6
- // 0. BASE FIELD MODELS (export truoc de tranh loi circular dependency)
7
- // ==========================================
8
- export * from "./lib/shared/models/fields/field.model";
9
- export * from "./lib/shared/models/fields/field-grid.model";
10
- export * from "./lib/shared/models/fields/field-group.model";
11
- export * from "./lib/shared/models/fields/index";
12
-
13
- // ==========================================
14
- // 1. MODULE & COMPONENT & SERVICE CHINH
15
- // ==========================================
16
- export * from "./lib/dynamic-form.component";
17
-
18
- // ==========================================
19
- // 2. CONFIGURATION & DI TOKENS
20
- // ==========================================
21
- export * from "./lib/shared/config/dynamic-form.config";
22
- export * from "./lib/shared/services/form-config.service";
23
- export * from "./lib/shared/services/dynamic-form.service";
24
- export * from "./lib/shared/services/form-data.service";
25
- export * from "./lib/shared/services/suffix.service";
26
- export * from "./lib/shared/services/file.service";
27
- export * from "./lib/shared/consts/common/file.const";
28
-
29
- // ==========================================
30
- // 3. ENUMS
31
- // ==========================================
32
- export * from "./lib/shared/enums/controls/index";
33
- export * from "./lib/shared/enums/fields/index";
34
- export * from "./lib/shared/enums/validators/index";
35
- export * from "./lib/shared/enums/common/index";
36
- export * from "./lib/shared/enums/form/index";
37
-
38
- // ==========================================
39
- // 4. COMMON MODELS
40
- // ==========================================
41
- export * from "./lib/shared/models/common/index";
42
- export * from "./lib/shared/models/common/table-models";
43
-
44
- // ==========================================
45
- // 5. CAC CLASS CAU HINH CU THE CHO TUNG LOAI DIEU KHIEN
46
- // ==========================================
47
-
48
- // Input Fields
49
- export * from "./lib/shared/models/fields/input/index";
50
- export * from "./lib/shared/models/fields/input/input-formatted-field.model";
51
-
52
- // Textarea Fields
53
- export * from "./lib/shared/models/fields/textarea/textarea-field.model";
54
-
55
- // Date Fields
56
- export * from "./lib/shared/models/fields/date/index";
57
-
58
- // Select Fields
59
- export * from "./lib/shared/models/fields/select/select-base-field.model";
60
- export * from "./lib/shared/models/fields/select/single-select-field.model";
61
- export * from "./lib/shared/models/fields/select/multi-select-field.model";
62
- // export * from "./lib/shared/models/fields/select/tree-select-field.model";
63
-
64
- // Upload Fields
65
- export * from "./lib/shared/models/fields/upload/index";
66
-
67
- // Radio & Checkbox
68
- export * from "./lib/shared/models/fields/radio/radio-base-field.model";
1
+ export * from "./lib/shared/models/fields/field.model";
2
+ export * from "./lib/shared/models/fields/field-grid.model";
3
+ export * from "./lib/shared/models/fields/field-group.model";
4
+ export * from "./lib/shared/models/fields/index";
5
+ export * from "./lib/dynamic-form.component";
6
+ export * from "./lib/shared/config/dynamic-form.config";
7
+ export * from "./lib/shared/services/form-config.service";
8
+ export * from "./lib/shared/services/dynamic-form.service";
9
+ export * from "./lib/shared/services/form-data.service";
10
+ export * from "./lib/shared/services/suffix.service";
11
+ export * from "./lib/shared/services/file.service";
12
+ export * from "./lib/shared/consts/common/file.const";
13
+ export * from "./lib/shared/enums/controls/index";
14
+ export * from "./lib/shared/enums/fields/index";
15
+ export * from "./lib/shared/enums/validators/index";
16
+ export * from "./lib/shared/enums/common/index";
17
+ export * from "./lib/shared/enums/form/index";
18
+ export * from "./lib/shared/enums/form/dynamic-form.enum";
19
+ export * from "./lib/shared/models/common/index";
20
+ export * from "./lib/shared/models/common/table-models";
21
+ export * from "./lib/shared/models/fields/input/index";
22
+ export * from "./lib/shared/models/fields/input/input-formatted-field.model";
23
+ export * from "./lib/shared/models/fields/textarea/textarea-field.model";
24
+ export * from "./lib/shared/models/fields/date/index";
25
+ export * from "./lib/shared/models/fields/select/select-base-field.model";
26
+ export * from "./lib/shared/models/fields/select/single-select-field.model";
27
+ export * from "./lib/shared/models/fields/select/multi-select-field.model";
28
+ export * from "./lib/shared/models/fields/upload/index";
29
+ export * from "./lib/shared/models/fields/radio/radio-base-field.model";
package/ng-package.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/dynamic-form",
4
- "lib": {
5
- "entryFile": "src/public-api.ts"
6
- },
7
- "assets": [
8
- {
9
- "glob": "**/*.scss",
10
- "input": "src/lib/shared/styles",
11
- "output": "/styles"
12
- }
13
- ],
14
- "allowedNonPeerDependencies": ["lodash-es", "date-fns", "@zeedhi/autonumeric"]
15
- }
@@ -1,121 +0,0 @@
1
- @if (formGroup) {
2
- <form [formGroup]="formGroup">
3
- @if (oldFields().length > 0) {
4
- <!-- 1. Nếu không có groups thì render từ fields -->
5
- @if (!fieldGroups() || fieldGroups().length === 0) {
6
- <div nz-row [nzGutter]="[12, 0]">
7
- @for (field of oldFields(); track field?.id) {
8
- @if (!isHiddenField(field)) {
9
- <div
10
- nz-col
11
- [nzXXl]="field?.grid?.xxl ?? null"
12
- [nzXl]="field?.grid?.xl ?? null"
13
- [nzLg]="field?.grid?.lg ?? null"
14
- [nzMd]="field?.grid?.md ?? null"
15
- [nzSm]="field?.grid?.sm ?? null"
16
- [nzXs]="field?.grid?.xs ?? null"
17
- [nzFlex]="
18
- !field?.grid?.xs &&
19
- !field?.grid?.sm &&
20
- !field?.grid?.md &&
21
- !field?.grid?.lg &&
22
- !field?.grid?.xl &&
23
- !field?.grid?.xxl
24
- ? '1 0 0'
25
- : null
26
- "
27
- class="field"
28
- >
29
- <app-dynamic-field
30
- [field]="field"
31
- [fields]="oldFields()"
32
- [mode]="mode()"
33
- [control]="formGroup.get(field.key)!"
34
- [formGroup]="formGroup"
35
- [formId]="formId"
36
- />
37
- </div>
38
- }
39
- }
40
- </div>
41
- }
42
-
43
- <!-- 2. Nếu có groups thì render từ groupedFields -->
44
- @if (fieldGroups() && fieldGroups().length > 0) {
45
- <!-- Các field noGroup -->
46
- @if (groupedFields().noGroup.length > 0 && displayNonGroupedFields()) {
47
- <div nz-row [nzGutter]="24">
48
- @for (field of groupedFields().noGroup; track field?.id) {
49
- @if (!isHiddenField(field)) {
50
- <div
51
- nz-col
52
- [nzXXl]="field?.grid?.xxl ?? null"
53
- [nzXl]="field?.grid?.xl ?? null"
54
- [nzLg]="field?.grid?.lg ?? null"
55
- [nzMd]="field?.grid?.md ?? null"
56
- [nzSm]="field?.grid?.sm ?? null"
57
- [nzXs]="field?.grid?.xs ?? null"
58
- class="field"
59
- >
60
- <app-dynamic-field
61
- [field]="field"
62
- [fields]="oldFields()"
63
- [mode]="mode()"
64
- [control]="formGroup.get(field.key)!"
65
- [formGroup]="formGroup"
66
- [formId]="formId"
67
- />
68
- </div>
69
- }
70
- }
71
- </div>
72
- }
73
-
74
- <!-- Group các field -->
75
- @if (groupedFields().grouped.length > 0) {
76
- <nz-collapse [nzBordered]="false">
77
- @for (
78
- groupField of groupedFields().grouped;
79
- track groupField.group.code
80
- ) {
81
- <nz-collapse-panel
82
- [nzHeader]="groupField.group.template ?? groupField.group.label"
83
- [nzActive]="groupField.group.isActive"
84
- [nzShowArrow]="groupField.group.showArrow"
85
- [nzDisabled]="groupField.group.disabled"
86
- [style]="collapseCustomStyle"
87
- class="mt-sm"
88
- >
89
- <div nz-row [nzGutter]="24">
90
- @for (field of groupField.fields; track field?.id) {
91
- @if (!isHiddenField(field)) {
92
- <div
93
- nz-col
94
- [nzXXl]="field?.grid?.xxl ?? null"
95
- [nzXl]="field?.grid?.xl ?? null"
96
- [nzLg]="field?.grid?.lg ?? null"
97
- [nzMd]="field?.grid?.md ?? null"
98
- [nzSm]="field?.grid?.sm ?? null"
99
- [nzXs]="field?.grid?.xs ?? null"
100
- class="field"
101
- >
102
- <app-dynamic-field
103
- [field]="field"
104
- [fields]="oldFields()"
105
- [mode]="mode()"
106
- [control]="formGroup.get(field.key)!"
107
- [formGroup]="formGroup"
108
- [formId]="formId"
109
- />
110
- </div>
111
- }
112
- }
113
- </div>
114
- </nz-collapse-panel>
115
- }
116
- </nz-collapse>
117
- }
118
- }
119
- }
120
- </form>
121
- }
@@ -1,7 +0,0 @@
1
- :host ::ng-deep {
2
- .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header,
3
- .ant-collapse .ant-collapse-item-disabled > .ant-collapse-header > .arrow {
4
- color: #575757;
5
- cursor: not-allowed;
6
- }
7
- }
@@ -1,21 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { DynamicFormComponent } from './dynamic-form.component';
4
-
5
- describe('DynamicFormComponent', () => {
6
- let component: DynamicFormComponent;
7
- let fixture: ComponentFixture<DynamicFormComponent>;
8
-
9
- beforeEach(() => {
10
- TestBed.configureTestingModule({
11
- imports: [DynamicFormComponent],
12
- });
13
- fixture = TestBed.createComponent(DynamicFormComponent);
14
- component = fixture.componentInstance;
15
- fixture.detectChanges();
16
- });
17
-
18
- it('should create', () => {
19
- expect(component).toBeTruthy();
20
- });
21
- });