@tsed/schema-formio 8.11.1 → 8.11.2-rc.1

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 (277) hide show
  1. package/lib/esm/components/anyToComponent.js +0 -1
  2. package/lib/esm/components/arrayToComponent.js +0 -1
  3. package/lib/esm/components/booleanToComponent.js +0 -1
  4. package/lib/esm/components/dateToComponent.js +0 -1
  5. package/lib/esm/components/defaultToComponent.js +0 -1
  6. package/lib/esm/components/enumToComponent.js +0 -1
  7. package/lib/esm/components/mapToComponent.js +0 -1
  8. package/lib/esm/components/nestedToComponent.js +0 -1
  9. package/lib/esm/components/numberToComponent.js +0 -1
  10. package/lib/esm/components/objectToEditGrid.js +0 -1
  11. package/lib/esm/components/panelToComponent.js +0 -1
  12. package/lib/esm/components/propertiesToComponents.js +0 -1
  13. package/lib/esm/components/stringToComponent.js +0 -1
  14. package/lib/esm/decorators/component.js +0 -1
  15. package/lib/esm/decorators/conditional.js +0 -1
  16. package/lib/esm/decorators/currency.js +0 -1
  17. package/lib/esm/decorators/customClass.js +0 -1
  18. package/lib/esm/decorators/customConditional.js +0 -1
  19. package/lib/esm/decorators/dataSourceJson.js +0 -1
  20. package/lib/esm/decorators/dataSourceUrl.js +0 -1
  21. package/lib/esm/decorators/errorLabel.js +0 -1
  22. package/lib/esm/decorators/errorMessage.js +0 -1
  23. package/lib/esm/decorators/form.js +0 -1
  24. package/lib/esm/decorators/hidden.js +0 -1
  25. package/lib/esm/decorators/inputTags.js +0 -1
  26. package/lib/esm/decorators/label.js +0 -1
  27. package/lib/esm/decorators/mask.js +0 -1
  28. package/lib/esm/decorators/maxWords.js +0 -1
  29. package/lib/esm/decorators/minWords.js +0 -1
  30. package/lib/esm/decorators/modalEdit.js +0 -1
  31. package/lib/esm/decorators/multiple.js +0 -1
  32. package/lib/esm/decorators/openWhenEmpty.js +0 -1
  33. package/lib/esm/decorators/password.js +0 -1
  34. package/lib/esm/decorators/placeholder.js +0 -1
  35. package/lib/esm/decorators/prefix.js +0 -1
  36. package/lib/esm/decorators/select.js +0 -1
  37. package/lib/esm/decorators/suffix.js +0 -1
  38. package/lib/esm/decorators/tableView.js +0 -1
  39. package/lib/esm/decorators/tabs.js +0 -1
  40. package/lib/esm/decorators/textCase.js +0 -1
  41. package/lib/esm/decorators/textarea.js +0 -1
  42. package/lib/esm/decorators/tooltip.js +0 -1
  43. package/lib/esm/decorators/validate.js +0 -1
  44. package/lib/esm/index.js +0 -1
  45. package/lib/esm/interfaces/FormioDataResolver.js +0 -1
  46. package/lib/esm/registries/FormioMappersContainer.js +0 -1
  47. package/lib/esm/registries/FormsContainer.js +0 -1
  48. package/lib/esm/utils/getFormioProps.js +0 -1
  49. package/lib/esm/utils/getFormioSchema.js +0 -1
  50. package/lib/esm/utils/getRef.js +0 -1
  51. package/package.json +14 -12
  52. package/lib/browser/components/anyToComponent.js +0 -23
  53. package/lib/browser/components/anyToComponent.js.map +0 -1
  54. package/lib/browser/components/arrayToComponent.js +0 -36
  55. package/lib/browser/components/arrayToComponent.js.map +0 -1
  56. package/lib/browser/components/booleanToComponent.js +0 -12
  57. package/lib/browser/components/booleanToComponent.js.map +0 -1
  58. package/lib/browser/components/dateToComponent.js +0 -57
  59. package/lib/browser/components/dateToComponent.js.map +0 -1
  60. package/lib/browser/components/defaultToComponent.js +0 -17
  61. package/lib/browser/components/defaultToComponent.js.map +0 -1
  62. package/lib/browser/components/enumToComponent.js +0 -27
  63. package/lib/browser/components/enumToComponent.js.map +0 -1
  64. package/lib/browser/components/mapToComponent.js +0 -19
  65. package/lib/browser/components/mapToComponent.js.map +0 -1
  66. package/lib/browser/components/nestedToComponent.js +0 -24
  67. package/lib/browser/components/nestedToComponent.js.map +0 -1
  68. package/lib/browser/components/numberToComponent.js +0 -20
  69. package/lib/browser/components/numberToComponent.js.map +0 -1
  70. package/lib/browser/components/objectToEditGrid.js +0 -15
  71. package/lib/browser/components/objectToEditGrid.js.map +0 -1
  72. package/lib/browser/components/panelToComponent.js +0 -15
  73. package/lib/browser/components/panelToComponent.js.map +0 -1
  74. package/lib/browser/components/propertiesToComponents.js +0 -66
  75. package/lib/browser/components/propertiesToComponents.js.map +0 -1
  76. package/lib/browser/components/stringToComponent.js +0 -42
  77. package/lib/browser/components/stringToComponent.js.map +0 -1
  78. package/lib/browser/decorators/component.js +0 -18
  79. package/lib/browser/decorators/component.js.map +0 -1
  80. package/lib/browser/decorators/conditional.js +0 -26
  81. package/lib/browser/decorators/conditional.js.map +0 -1
  82. package/lib/browser/decorators/currency.js +0 -16
  83. package/lib/browser/decorators/currency.js.map +0 -1
  84. package/lib/browser/decorators/customClass.js +0 -10
  85. package/lib/browser/decorators/customClass.js.map +0 -1
  86. package/lib/browser/decorators/customConditional.js +0 -16
  87. package/lib/browser/decorators/customConditional.js.map +0 -1
  88. package/lib/browser/decorators/dataSourceJson.js +0 -20
  89. package/lib/browser/decorators/dataSourceJson.js.map +0 -1
  90. package/lib/browser/decorators/dataSourceUrl.js +0 -15
  91. package/lib/browser/decorators/dataSourceUrl.js.map +0 -1
  92. package/lib/browser/decorators/errorLabel.js +0 -10
  93. package/lib/browser/decorators/errorLabel.js.map +0 -1
  94. package/lib/browser/decorators/errorMessage.js +0 -8
  95. package/lib/browser/decorators/errorMessage.js.map +0 -1
  96. package/lib/browser/decorators/form.js +0 -20
  97. package/lib/browser/decorators/form.js.map +0 -1
  98. package/lib/browser/decorators/hidden.js +0 -10
  99. package/lib/browser/decorators/hidden.js.map +0 -1
  100. package/lib/browser/decorators/inputTags.js +0 -18
  101. package/lib/browser/decorators/inputTags.js.map +0 -1
  102. package/lib/browser/decorators/label.js +0 -11
  103. package/lib/browser/decorators/label.js.map +0 -1
  104. package/lib/browser/decorators/mask.js +0 -17
  105. package/lib/browser/decorators/mask.js.map +0 -1
  106. package/lib/browser/decorators/maxWords.js +0 -8
  107. package/lib/browser/decorators/maxWords.js.map +0 -1
  108. package/lib/browser/decorators/minWords.js +0 -8
  109. package/lib/browser/decorators/minWords.js.map +0 -1
  110. package/lib/browser/decorators/modalEdit.js +0 -10
  111. package/lib/browser/decorators/modalEdit.js.map +0 -1
  112. package/lib/browser/decorators/multiple.js +0 -10
  113. package/lib/browser/decorators/multiple.js.map +0 -1
  114. package/lib/browser/decorators/openWhenEmpty.js +0 -10
  115. package/lib/browser/decorators/openWhenEmpty.js.map +0 -1
  116. package/lib/browser/decorators/password.js +0 -12
  117. package/lib/browser/decorators/password.js.map +0 -1
  118. package/lib/browser/decorators/placeholder.js +0 -10
  119. package/lib/browser/decorators/placeholder.js.map +0 -1
  120. package/lib/browser/decorators/prefix.js +0 -10
  121. package/lib/browser/decorators/prefix.js.map +0 -1
  122. package/lib/browser/decorators/select.js +0 -14
  123. package/lib/browser/decorators/select.js.map +0 -1
  124. package/lib/browser/decorators/suffix.js +0 -10
  125. package/lib/browser/decorators/suffix.js.map +0 -1
  126. package/lib/browser/decorators/tableView.js +0 -10
  127. package/lib/browser/decorators/tableView.js.map +0 -1
  128. package/lib/browser/decorators/tabs.js +0 -14
  129. package/lib/browser/decorators/tabs.js.map +0 -1
  130. package/lib/browser/decorators/textCase.js +0 -10
  131. package/lib/browser/decorators/textCase.js.map +0 -1
  132. package/lib/browser/decorators/textarea.js +0 -12
  133. package/lib/browser/decorators/textarea.js.map +0 -1
  134. package/lib/browser/decorators/tooltip.js +0 -10
  135. package/lib/browser/decorators/tooltip.js.map +0 -1
  136. package/lib/browser/decorators/validate.js +0 -12
  137. package/lib/browser/decorators/validate.js.map +0 -1
  138. package/lib/browser/index.js +0 -102
  139. package/lib/browser/index.js.map +0 -1
  140. package/lib/browser/registries/FormioMappersContainer.js +0 -18
  141. package/lib/browser/registries/FormioMappersContainer.js.map +0 -1
  142. package/lib/browser/registries/FormsContainer.js +0 -5
  143. package/lib/browser/registries/FormsContainer.js.map +0 -1
  144. package/lib/browser/utils/getFormioProps.js +0 -10
  145. package/lib/browser/utils/getFormioProps.js.map +0 -1
  146. package/lib/browser/utils/getFormioSchema.js +0 -45
  147. package/lib/browser/utils/getFormioSchema.js.map +0 -1
  148. package/lib/browser/utils/getRef.js +0 -8
  149. package/lib/browser/utils/getRef.js.map +0 -1
  150. package/lib/esm/components/anyToComponent.js.map +0 -1
  151. package/lib/esm/components/arrayToComponent.js.map +0 -1
  152. package/lib/esm/components/booleanToComponent.js.map +0 -1
  153. package/lib/esm/components/dateToComponent.js.map +0 -1
  154. package/lib/esm/components/defaultToComponent.js.map +0 -1
  155. package/lib/esm/components/enumToComponent.js.map +0 -1
  156. package/lib/esm/components/mapToComponent.js.map +0 -1
  157. package/lib/esm/components/nestedToComponent.js.map +0 -1
  158. package/lib/esm/components/numberToComponent.js.map +0 -1
  159. package/lib/esm/components/objectToEditGrid.js.map +0 -1
  160. package/lib/esm/components/panelToComponent.js.map +0 -1
  161. package/lib/esm/components/propertiesToComponents.js.map +0 -1
  162. package/lib/esm/components/stringToComponent.js.map +0 -1
  163. package/lib/esm/decorators/component.js.map +0 -1
  164. package/lib/esm/decorators/conditional.js.map +0 -1
  165. package/lib/esm/decorators/currency.js.map +0 -1
  166. package/lib/esm/decorators/customClass.js.map +0 -1
  167. package/lib/esm/decorators/customConditional.js.map +0 -1
  168. package/lib/esm/decorators/dataSourceJson.js.map +0 -1
  169. package/lib/esm/decorators/dataSourceUrl.js.map +0 -1
  170. package/lib/esm/decorators/errorLabel.js.map +0 -1
  171. package/lib/esm/decorators/errorMessage.js.map +0 -1
  172. package/lib/esm/decorators/form.js.map +0 -1
  173. package/lib/esm/decorators/hidden.js.map +0 -1
  174. package/lib/esm/decorators/inputTags.js.map +0 -1
  175. package/lib/esm/decorators/label.js.map +0 -1
  176. package/lib/esm/decorators/mask.js.map +0 -1
  177. package/lib/esm/decorators/maxWords.js.map +0 -1
  178. package/lib/esm/decorators/minWords.js.map +0 -1
  179. package/lib/esm/decorators/modalEdit.js.map +0 -1
  180. package/lib/esm/decorators/multiple.js.map +0 -1
  181. package/lib/esm/decorators/openWhenEmpty.js.map +0 -1
  182. package/lib/esm/decorators/password.js.map +0 -1
  183. package/lib/esm/decorators/placeholder.js.map +0 -1
  184. package/lib/esm/decorators/prefix.js.map +0 -1
  185. package/lib/esm/decorators/select.js.map +0 -1
  186. package/lib/esm/decorators/suffix.js.map +0 -1
  187. package/lib/esm/decorators/tableView.js.map +0 -1
  188. package/lib/esm/decorators/tabs.js.map +0 -1
  189. package/lib/esm/decorators/textCase.js.map +0 -1
  190. package/lib/esm/decorators/textarea.js.map +0 -1
  191. package/lib/esm/decorators/tooltip.js.map +0 -1
  192. package/lib/esm/decorators/validate.js.map +0 -1
  193. package/lib/esm/index.js.map +0 -1
  194. package/lib/esm/interfaces/FormioDataResolver.js.map +0 -1
  195. package/lib/esm/registries/FormioMappersContainer.js.map +0 -1
  196. package/lib/esm/registries/FormsContainer.js.map +0 -1
  197. package/lib/esm/utils/getFormioProps.js.map +0 -1
  198. package/lib/esm/utils/getFormioSchema.js.map +0 -1
  199. package/lib/esm/utils/getRef.js.map +0 -1
  200. package/src/components/anyToComponent.ts +0 -28
  201. package/src/components/arrayToComponent.ts +0 -43
  202. package/src/components/booleanToComponent.ts +0 -15
  203. package/src/components/dateToComponent.ts +0 -66
  204. package/src/components/defaultToComponent.ts +0 -17
  205. package/src/components/enumToComponent.ts +0 -33
  206. package/src/components/mapToComponent.ts +0 -17
  207. package/src/components/nestedToComponent.ts +0 -23
  208. package/src/components/numberToComponent.ts +0 -20
  209. package/src/components/objectToEditGrid.ts +0 -13
  210. package/src/components/panelToComponent.ts +0 -13
  211. package/src/components/propertiesToComponents.ts +0 -106
  212. package/src/components/stringToComponent.ts +0 -44
  213. package/src/decorators/component.ts +0 -34
  214. package/src/decorators/conditional.spec.ts +0 -73
  215. package/src/decorators/conditional.ts +0 -49
  216. package/src/decorators/currency.spec.ts +0 -40
  217. package/src/decorators/currency.ts +0 -19
  218. package/src/decorators/customClass.spec.ts +0 -35
  219. package/src/decorators/customClass.ts +0 -14
  220. package/src/decorators/customConditional.spec.ts +0 -95
  221. package/src/decorators/customConditional.ts +0 -85
  222. package/src/decorators/dataSourceJson.spec.ts +0 -88
  223. package/src/decorators/dataSourceJson.ts +0 -26
  224. package/src/decorators/dataSourceUrl.spec.ts +0 -111
  225. package/src/decorators/dataSourceUrl.ts +0 -19
  226. package/src/decorators/errorLabel.spec.ts +0 -35
  227. package/src/decorators/errorLabel.ts +0 -14
  228. package/src/decorators/errorMessage.spec.ts +0 -35
  229. package/src/decorators/errorMessage.ts +0 -13
  230. package/src/decorators/form.ts +0 -25
  231. package/src/decorators/hidden.spec.ts +0 -35
  232. package/src/decorators/hidden.ts +0 -18
  233. package/src/decorators/inputTags.spec.ts +0 -36
  234. package/src/decorators/inputTags.ts +0 -22
  235. package/src/decorators/label.spec.ts +0 -34
  236. package/src/decorators/label.ts +0 -21
  237. package/src/decorators/mask.spec.ts +0 -105
  238. package/src/decorators/mask.ts +0 -46
  239. package/src/decorators/maxWords.spec.ts +0 -35
  240. package/src/decorators/maxWords.ts +0 -13
  241. package/src/decorators/minWords.spec.ts +0 -35
  242. package/src/decorators/minWords.ts +0 -13
  243. package/src/decorators/modalEdit.spec.ts +0 -35
  244. package/src/decorators/modalEdit.ts +0 -14
  245. package/src/decorators/multiple.spec.ts +0 -35
  246. package/src/decorators/multiple.ts +0 -14
  247. package/src/decorators/openWhenEmpty.ts +0 -14
  248. package/src/decorators/password.spec.ts +0 -35
  249. package/src/decorators/password.ts +0 -20
  250. package/src/decorators/placeholder.spec.ts +0 -35
  251. package/src/decorators/placeholder.ts +0 -15
  252. package/src/decorators/prefix.spec.ts +0 -35
  253. package/src/decorators/prefix.ts +0 -14
  254. package/src/decorators/select.spec.ts +0 -82
  255. package/src/decorators/select.ts +0 -25
  256. package/src/decorators/suffix.spec.ts +0 -35
  257. package/src/decorators/suffix.ts +0 -14
  258. package/src/decorators/tableView.spec.ts +0 -35
  259. package/src/decorators/tableView.ts +0 -15
  260. package/src/decorators/tabs.ts +0 -18
  261. package/src/decorators/textCase.spec.ts +0 -35
  262. package/src/decorators/textCase.ts +0 -15
  263. package/src/decorators/textarea.spec.ts +0 -35
  264. package/src/decorators/textarea.ts +0 -21
  265. package/src/decorators/tooltip.spec.ts +0 -35
  266. package/src/decorators/tooltip.ts +0 -15
  267. package/src/decorators/validate.ts +0 -18
  268. package/src/index.ts +0 -52
  269. package/src/interfaces/FormioDataResolver.ts +0 -5
  270. package/src/registries/FormioMappersContainer.ts +0 -21
  271. package/src/registries/FormsContainer.ts +0 -4
  272. package/src/utils/getFormioProps.ts +0 -12
  273. package/src/utils/getFormioSchema.spec.ts +0 -84
  274. package/src/utils/getFormioSchema.ts +0 -62
  275. package/src/utils/getRef.ts +0 -8
  276. package/vite.config.mts +0 -45
  277. package/vitest.config.mts +0 -21
@@ -1,40 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {Currency} from "./currency.js";
3
-
4
- describe("Currency", () => {
5
- it("should declare currency", async () => {
6
- class Model {
7
- @Currency()
8
- test: number;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- components: [
13
- {
14
- currency: "USD",
15
- delimiter: true,
16
- disabled: false,
17
- input: true,
18
- inputFormat: "plain",
19
- label: "Test",
20
- key: "test",
21
- mask: false,
22
- requireDecimal: false,
23
- spellcheck: true,
24
- type: "number",
25
- validate: {
26
- required: false
27
- }
28
- }
29
- ],
30
- display: "form",
31
- machineName: "model",
32
- name: "model",
33
- title: "Model",
34
- type: "form",
35
- submissionAccess: [],
36
- access: [],
37
- tags: []
38
- });
39
- });
40
- });
@@ -1,19 +0,0 @@
1
- import {Component} from "./component.js";
2
- /**
3
- * Configure the property as Currency component.
4
- * @decorator
5
- * @formio
6
- * @property
7
- * @schema
8
- */
9
- export function Currency(props: Record<string, any> = {}): PropertyDecorator {
10
- return Component({
11
- currency: "USD",
12
- inputFormat: "plain",
13
- mask: false,
14
- spellcheck: true,
15
- delimiter: true,
16
- ...props,
17
- type: "currency"
18
- });
19
- }
@@ -1,35 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {CustomClass} from "./customClass.js";
3
-
4
- describe("@CustomClass", () => {
5
- it("should add a custom css class on field", async () => {
6
- class Model {
7
- @CustomClass("css-class")
8
- test: string;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- access: [],
13
- components: [
14
- {
15
- disabled: false,
16
- input: true,
17
- key: "test",
18
- label: "Test",
19
- customClass: "css-class",
20
- type: "textfield",
21
- validate: {
22
- required: false
23
- }
24
- }
25
- ],
26
- display: "form",
27
- machineName: "model",
28
- name: "model",
29
- submissionAccess: [],
30
- tags: [],
31
- title: "Model",
32
- type: "form"
33
- });
34
- });
35
- });
@@ -1,14 +0,0 @@
1
- import {Component} from "./component.js";
2
-
3
- /**
4
- * Add a custom css class.
5
- * @decorator
6
- * @formio
7
- * @property
8
- * @schema
9
- */
10
- export function CustomClass(customClass: string) {
11
- return Component({
12
- customClass
13
- });
14
- }
@@ -1,95 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {CustomConditional} from "./customConditional.js";
3
-
4
- describe("@CustomConditional", () => {
5
- it("should add a custom conditional rule on field (1)", async () => {
6
- class Model {
7
- @CustomConditional(({value}) => value === 1)
8
- test: string;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- access: [],
13
- components: [
14
- {
15
- disabled: false,
16
- input: true,
17
- key: "test",
18
- label: "Test",
19
- type: "textfield",
20
- customConditional: "show = value === 1",
21
- validate: {
22
- required: false
23
- }
24
- }
25
- ],
26
- display: "form",
27
- machineName: "model",
28
- name: "model",
29
- submissionAccess: [],
30
- tags: [],
31
- title: "Model",
32
- type: "form"
33
- });
34
- });
35
- it("should add a custom conditional rule on field (2)", async () => {
36
- class Model {
37
- @CustomConditional((ctx) => ctx.value === 1)
38
- test: string;
39
- }
40
-
41
- expect(await getFormioSchema(Model)).toEqual({
42
- access: [],
43
- components: [
44
- {
45
- disabled: false,
46
- input: true,
47
- key: "test",
48
- label: "Test",
49
- type: "textfield",
50
- customConditional: "show = value === 1",
51
- validate: {
52
- required: false
53
- }
54
- }
55
- ],
56
- display: "form",
57
- machineName: "model",
58
- name: "model",
59
- submissionAccess: [],
60
- tags: [],
61
- title: "Model",
62
- type: "form"
63
- });
64
- });
65
- it("should add a custom conditional rule on field (3)", async () => {
66
- class Model {
67
- @CustomConditional("show = value === 1")
68
- test: string;
69
- }
70
-
71
- expect(await getFormioSchema(Model)).toEqual({
72
- access: [],
73
- components: [
74
- {
75
- disabled: false,
76
- input: true,
77
- key: "test",
78
- label: "Test",
79
- type: "textfield",
80
- customConditional: "show = value === 1",
81
- validate: {
82
- required: false
83
- }
84
- }
85
- ],
86
- display: "form",
87
- machineName: "model",
88
- name: "model",
89
- submissionAccess: [],
90
- tags: [],
91
- title: "Model",
92
- type: "form"
93
- });
94
- });
95
- });
@@ -1,85 +0,0 @@
1
- import {isArrowFn} from "@tsed/core";
2
- import {FormioComponent, FormioForm, FormioSubmission} from "@tsed/formio-types";
3
- import type {Utils} from "formiojs";
4
- import type {LoDashStatic} from "lodash";
5
- import type {Moment} from "moment";
6
-
7
- import {Component} from "./component.js";
8
-
9
- export interface CustomConditionalCtx<Value = any, Data = any, Row = any> {
10
- /**
11
- * The complete submission object.
12
- */
13
- form: FormioForm;
14
- /**
15
- * The complete submission object.
16
- */
17
- submission: FormioSubmission<Data>;
18
- /**
19
- * The complete submission data object.
20
- */
21
- data: Data;
22
- /**
23
- * Contextual "row" data, used within DataGrid, EditGrid, and Container components
24
- */
25
- row: Row;
26
- /**
27
- * The current component JSON
28
- */
29
- component: FormioComponent;
30
- /**
31
- * The current component instance.
32
- */
33
- instance: any;
34
- /**
35
- * The current value of the component.
36
- */
37
- value: Value;
38
- /**
39
- * The moment.js library for date manipulation.
40
- */
41
- moment: Moment;
42
- /**
43
- * An instance of Lodash.
44
- */
45
- _: LoDashStatic;
46
- /**
47
- * An instance of the FormioUtils object.
48
- */
49
- utils: typeof Utils;
50
- /**
51
- * An alias for "utils".
52
- */
53
- util: typeof Utils;
54
- }
55
-
56
- function sanitize(customConditional: Function) {
57
- const str = customConditional.toString();
58
-
59
- const [signature, ...fn] = str.split("=>");
60
- let content = fn.join("=>");
61
-
62
- if (!signature.includes("{")) {
63
- content = content.replace(new RegExp(`${signature.trim()}.`, "gi"), "");
64
- }
65
-
66
- return `show = ${content.trim()}`;
67
- }
68
-
69
- /**
70
- * Adds custom conditional rule to display or not the input form.
71
- * @decorator
72
- * @formio
73
- * @property
74
- * @schema
75
- * @param customConditional
76
- */
77
- export function CustomConditional(customConditional: string | ((ctx: CustomConditionalCtx) => any)) {
78
- if (isArrowFn(customConditional)) {
79
- customConditional = sanitize(customConditional);
80
- }
81
-
82
- return Component({
83
- customConditional
84
- });
85
- }
@@ -1,88 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {DataSourceJson} from "./dataSourceJson.js";
3
- import {Select} from "./select.js";
4
-
5
- describe("DataSourceJson", () => {
6
- it("should declare datasource", async () => {
7
- class Model {
8
- @Select()
9
- @DataSourceJson([
10
- {
11
- id: "id",
12
- value: "value"
13
- }
14
- ])
15
- test: string;
16
- }
17
-
18
- expect(await getFormioSchema(Model)).toEqual({
19
- components: [
20
- {
21
- data: {
22
- json: '[{"id":"id","value":"value"}]'
23
- },
24
- dataSrc: "json",
25
- disabled: false,
26
- input: true,
27
- label: "Test",
28
- key: "test",
29
- selectThreshold: 0.3,
30
- type: "select",
31
- validate: {
32
- required: false
33
- },
34
- widget: "choicesjs"
35
- }
36
- ],
37
- display: "form",
38
- machineName: "model",
39
- name: "model",
40
- title: "Model",
41
- type: "form",
42
- submissionAccess: [],
43
- access: [],
44
- tags: []
45
- });
46
- });
47
- it("should declare datasource from resolver", async () => {
48
- class Model {
49
- @Select()
50
- @DataSourceJson(() => [
51
- {
52
- id: "id",
53
- value: "value"
54
- }
55
- ])
56
- test: string;
57
- }
58
-
59
- expect(await getFormioSchema(Model)).toEqual({
60
- components: [
61
- {
62
- data: {
63
- json: '[{"id":"id","value":"value"}]'
64
- },
65
- dataSrc: "json",
66
- disabled: false,
67
- input: true,
68
- label: "Test",
69
- key: "test",
70
- selectThreshold: 0.3,
71
- type: "select",
72
- validate: {
73
- required: false
74
- },
75
- widget: "choicesjs"
76
- }
77
- ],
78
- display: "form",
79
- machineName: "model",
80
- name: "model",
81
- title: "Model",
82
- type: "form",
83
- submissionAccess: [],
84
- access: [],
85
- tags: []
86
- });
87
- });
88
- });
@@ -1,26 +0,0 @@
1
- import {isFunction} from "@tsed/core";
2
-
3
- import {FormioDataResolver, FormioDataResolverCtx} from "../interfaces/FormioDataResolver.js";
4
- import {Component} from "./component.js";
5
-
6
- const wrap = (resolver: FormioDataResolver) => async (opts: FormioDataResolverCtx) => {
7
- const result = await resolver(opts);
8
- return JSON.stringify(result);
9
- };
10
-
11
- /**
12
- * Set custom json data source
13
- * @param data
14
- * @param props
15
- * @constructor
16
- */
17
- export function DataSourceJson(data: any | FormioDataResolver, props: Record<string, any> = {}) {
18
- return Component({
19
- ...props,
20
- dataSrc: "json",
21
- data: {
22
- ...props.data,
23
- json: isFunction(data) ? wrap(data) : JSON.stringify(data)
24
- }
25
- });
26
- }
@@ -1,111 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {DataSourceUrl} from "./dataSourceUrl.js";
3
- import {Select} from "./select.js";
4
-
5
- describe("@DataSourceUrl", () => {
6
- it("should declare datasource url", async () => {
7
- class Model {
8
- @Select()
9
- @DataSourceUrl("https://domain.com/api/datasource")
10
- test: string;
11
- }
12
-
13
- expect(await getFormioSchema(Model)).toEqual({
14
- components: [
15
- {
16
- data: {
17
- url: "https://domain.com/api/datasource"
18
- },
19
- dataSrc: "url",
20
- disabled: false,
21
- input: true,
22
- label: "Test",
23
- key: "test",
24
- selectThreshold: 0.3,
25
- type: "select",
26
- validate: {
27
- required: false
28
- },
29
- widget: "choicesjs"
30
- }
31
- ],
32
- display: "form",
33
- machineName: "model",
34
- name: "model",
35
- title: "Model",
36
- type: "form",
37
- submissionAccess: [],
38
- access: [],
39
- tags: []
40
- });
41
- });
42
- it("should declare datasource url with a resolver", async () => {
43
- class Model {
44
- @Select()
45
- @DataSourceUrl(({env}) => `/datasource?env=${env}`)
46
- test: string;
47
- }
48
-
49
- const schema1 = await getFormioSchema(Model, {env: "integ"});
50
-
51
- expect(schema1).toEqual({
52
- components: [
53
- {
54
- data: {
55
- url: "/datasource?env=integ"
56
- },
57
- dataSrc: "url",
58
- disabled: false,
59
- input: true,
60
- label: "Test",
61
- key: "test",
62
- selectThreshold: 0.3,
63
- type: "select",
64
- validate: {
65
- required: false
66
- },
67
- widget: "choicesjs"
68
- }
69
- ],
70
- display: "form",
71
- machineName: "model",
72
- name: "model",
73
- title: "Model",
74
- type: "form",
75
- submissionAccess: [],
76
- access: [],
77
- tags: []
78
- });
79
-
80
- const schema2 = await getFormioSchema(Model, {env: "staging"});
81
-
82
- expect(schema2).toEqual({
83
- components: [
84
- {
85
- data: {
86
- url: "/datasource?env=staging"
87
- },
88
- dataSrc: "url",
89
- disabled: false,
90
- input: true,
91
- label: "Test",
92
- key: "test",
93
- selectThreshold: 0.3,
94
- type: "select",
95
- validate: {
96
- required: false
97
- },
98
- widget: "choicesjs"
99
- }
100
- ],
101
- display: "form",
102
- machineName: "model",
103
- name: "model",
104
- title: "Model",
105
- type: "form",
106
- submissionAccess: [],
107
- access: [],
108
- tags: []
109
- });
110
- });
111
- });
@@ -1,19 +0,0 @@
1
- import {FormioDataResolver} from "../interfaces/FormioDataResolver.js";
2
- import {Component} from "./component.js";
3
-
4
- /**
5
- * Set URL data on the current component.
6
- * @param url
7
- * @param props
8
- * @constructor
9
- */
10
- export function DataSourceUrl(url: string | FormioDataResolver, props: Record<string, any> = {}) {
11
- return Component({
12
- ...props,
13
- dataSrc: "url",
14
- data: {
15
- ...props.data,
16
- url
17
- }
18
- });
19
- }
@@ -1,35 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {ErrorLabel} from "./errorLabel.js";
3
-
4
- describe("@ErrorLabel", () => {
5
- it("should set the error label", async () => {
6
- class Model {
7
- @ErrorLabel("Error label")
8
- test: string;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- components: [
13
- {
14
- disabled: false,
15
- errorLabel: "Error label",
16
- input: true,
17
- key: "test",
18
- label: "Test",
19
- type: "textfield",
20
- validate: {
21
- required: false
22
- }
23
- }
24
- ],
25
- display: "form",
26
- machineName: "model",
27
- name: "model",
28
- title: "Model",
29
- type: "form",
30
- submissionAccess: [],
31
- access: [],
32
- tags: []
33
- });
34
- });
35
- });
@@ -1,14 +0,0 @@
1
- import {Component} from "./component.js";
2
-
3
- /**
4
- * Set the error label when an error occur.
5
- * @decorator
6
- * @formio
7
- * @property
8
- * @schema
9
- */
10
- export function ErrorLabel(message: string) {
11
- return Component({
12
- errorLabel: message
13
- });
14
- }
@@ -1,35 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {ErrorMessage} from "./errorMessage.js";
3
-
4
- describe("@ErrorMessage", () => {
5
- it("should set a custom error message", async () => {
6
- class Model {
7
- @ErrorMessage("My message")
8
- test: string;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- components: [
13
- {
14
- disabled: false,
15
- input: true,
16
- key: "test",
17
- label: "Test",
18
- type: "textfield",
19
- validate: {
20
- required: false,
21
- customMessage: "My message"
22
- }
23
- }
24
- ],
25
- display: "form",
26
- machineName: "model",
27
- name: "model",
28
- title: "Model",
29
- type: "form",
30
- submissionAccess: [],
31
- access: [],
32
- tags: []
33
- });
34
- });
35
- });
@@ -1,13 +0,0 @@
1
- import {Validate} from "./validate.js";
2
-
3
- /**
4
- * Add error message when an error occur.
5
- * @decorator
6
- * @formio
7
- * @property
8
- * @schema
9
- * @param message
10
- */
11
- export function ErrorMessage(message: string) {
12
- return Validate("customMessage", message);
13
- }
@@ -1,25 +0,0 @@
1
- import {nameOf, StoreSet, useDecorators} from "@tsed/core";
2
- import {FormioForm} from "@tsed/formio-types";
3
- import {Name} from "@tsed/schema";
4
- import {kebabCase} from "change-case";
5
-
6
- import {FormsContainer} from "../registries/FormsContainer.js";
7
- import {Label} from "./label.js";
8
-
9
- /**
10
- * Expose the model as Formio Form.
11
- * @param form
12
- */
13
- export function Form(form: Partial<Omit<FormioForm, "components" | "_id">> = {}): ClassDecorator {
14
- return useDecorators(
15
- (target: any) => {
16
- const name = form.name || nameOf(target);
17
- const machineName = kebabCase(name);
18
- FormsContainer.set(name, target as any);
19
- FormsContainer.set(machineName, target as any);
20
- },
21
- form.name && Name(form.name),
22
- form.label && Label(form.label),
23
- form && StoreSet("formio:form", form)
24
- );
25
- }
@@ -1,35 +0,0 @@
1
- import {getFormioSchema} from "../utils/getFormioSchema.js";
2
- import {Hidden} from "./hidden.js";
3
-
4
- describe("Hidden", () => {
5
- it("should declare a model with Hidden field", async () => {
6
- class Model {
7
- @Hidden()
8
- test: string;
9
- }
10
-
11
- expect(await getFormioSchema(Model)).toEqual({
12
- components: [
13
- {
14
- disabled: false,
15
- hidden: true,
16
- input: true,
17
- key: "test",
18
- label: "Test",
19
- type: "textfield",
20
- validate: {
21
- required: false
22
- }
23
- }
24
- ],
25
- display: "form",
26
- machineName: "model",
27
- name: "model",
28
- title: "Model",
29
- type: "form",
30
- submissionAccess: [],
31
- access: [],
32
- tags: []
33
- });
34
- });
35
- });