@tsed/schema-formio 7.0.0-alpha.2 → 7.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/jest.config.js +14 -0
  2. package/lib/cjs/components/anyToComponent.js +28 -0
  3. package/lib/cjs/components/anyToComponent.js.map +1 -0
  4. package/lib/cjs/components/arrayToComponent.js +40 -0
  5. package/lib/cjs/components/arrayToComponent.js.map +1 -0
  6. package/lib/cjs/components/booleanToComponent.js +14 -0
  7. package/lib/cjs/components/booleanToComponent.js.map +1 -0
  8. package/lib/cjs/components/dateToComponent.js +57 -0
  9. package/lib/cjs/components/dateToComponent.js.map +1 -0
  10. package/lib/cjs/components/defaultToComponent.js +18 -0
  11. package/lib/cjs/components/defaultToComponent.js.map +1 -0
  12. package/lib/cjs/components/enumToComponent.js +33 -0
  13. package/lib/cjs/components/enumToComponent.js.map +1 -0
  14. package/lib/cjs/components/mapToComponent.js +20 -0
  15. package/lib/cjs/components/mapToComponent.js.map +1 -0
  16. package/lib/cjs/components/nestedToComponent.js +25 -0
  17. package/lib/cjs/components/nestedToComponent.js.map +1 -0
  18. package/lib/cjs/components/numberToComponent.js +21 -0
  19. package/lib/cjs/components/numberToComponent.js.map +1 -0
  20. package/lib/cjs/components/objectToEditGrid.js +16 -0
  21. package/lib/cjs/components/objectToEditGrid.js.map +1 -0
  22. package/lib/cjs/components/panelToComponent.js +16 -0
  23. package/lib/cjs/components/panelToComponent.js.map +1 -0
  24. package/lib/cjs/components/propertiesToComponents.js +88 -0
  25. package/lib/cjs/components/propertiesToComponents.js.map +1 -0
  26. package/lib/cjs/components/stringToComponent.js +43 -0
  27. package/lib/cjs/components/stringToComponent.js.map +1 -0
  28. package/lib/cjs/decorators/component.js +35 -0
  29. package/lib/cjs/decorators/component.js.map +1 -0
  30. package/lib/cjs/decorators/conditional.js +53 -0
  31. package/lib/cjs/decorators/conditional.js.map +1 -0
  32. package/lib/cjs/decorators/currency.js +24 -0
  33. package/lib/cjs/decorators/currency.js.map +1 -0
  34. package/lib/cjs/decorators/customClass.js +18 -0
  35. package/lib/cjs/decorators/customClass.js.map +1 -0
  36. package/lib/cjs/decorators/customConditional.js +33 -0
  37. package/lib/cjs/decorators/customConditional.js.map +1 -0
  38. package/lib/cjs/decorators/dataSourceJson.js +27 -0
  39. package/lib/cjs/decorators/dataSourceJson.js.map +1 -0
  40. package/lib/cjs/decorators/dataSourceUrl.js +22 -0
  41. package/lib/cjs/decorators/dataSourceUrl.js.map +1 -0
  42. package/lib/cjs/decorators/errorLabel.js +18 -0
  43. package/lib/cjs/decorators/errorLabel.js.map +1 -0
  44. package/lib/cjs/decorators/errorMessage.js +17 -0
  45. package/lib/cjs/decorators/errorMessage.js.map +1 -0
  46. package/lib/cjs/decorators/form.js +21 -0
  47. package/lib/cjs/decorators/form.js.map +1 -0
  48. package/lib/cjs/decorators/hidden.js +22 -0
  49. package/lib/cjs/decorators/hidden.js.map +1 -0
  50. package/lib/cjs/decorators/inputTags.js +23 -0
  51. package/lib/cjs/decorators/inputTags.js.map +1 -0
  52. package/lib/cjs/decorators/label.js +19 -0
  53. package/lib/cjs/decorators/label.js.map +1 -0
  54. package/lib/cjs/decorators/mask.js +50 -0
  55. package/lib/cjs/decorators/mask.js.map +1 -0
  56. package/lib/cjs/decorators/maxWords.js +17 -0
  57. package/lib/cjs/decorators/maxWords.js.map +1 -0
  58. package/lib/cjs/decorators/minWords.js +17 -0
  59. package/lib/cjs/decorators/minWords.js.map +1 -0
  60. package/lib/cjs/decorators/modalEdit.js +18 -0
  61. package/lib/cjs/decorators/modalEdit.js.map +1 -0
  62. package/lib/cjs/decorators/multiple.js +18 -0
  63. package/lib/cjs/decorators/multiple.js.map +1 -0
  64. package/lib/cjs/decorators/openWhenEmpty.js +18 -0
  65. package/lib/cjs/decorators/openWhenEmpty.js.map +1 -0
  66. package/lib/cjs/decorators/password.js +20 -0
  67. package/lib/cjs/decorators/password.js.map +1 -0
  68. package/lib/cjs/decorators/placeholder.js +19 -0
  69. package/lib/cjs/decorators/placeholder.js.map +1 -0
  70. package/lib/cjs/decorators/prefix.js +18 -0
  71. package/lib/cjs/decorators/prefix.js.map +1 -0
  72. package/lib/cjs/decorators/select.js +22 -0
  73. package/lib/cjs/decorators/select.js.map +1 -0
  74. package/lib/cjs/decorators/suffix.js +18 -0
  75. package/lib/cjs/decorators/suffix.js.map +1 -0
  76. package/lib/cjs/decorators/tableView.js +19 -0
  77. package/lib/cjs/decorators/tableView.js.map +1 -0
  78. package/lib/cjs/decorators/tabs.js +22 -0
  79. package/lib/cjs/decorators/tabs.js.map +1 -0
  80. package/lib/cjs/decorators/textCase.js +19 -0
  81. package/lib/cjs/decorators/textCase.js.map +1 -0
  82. package/lib/cjs/decorators/textarea.js +20 -0
  83. package/lib/cjs/decorators/textarea.js.map +1 -0
  84. package/lib/cjs/decorators/tooltip.js +19 -0
  85. package/lib/cjs/decorators/tooltip.js.map +1 -0
  86. package/lib/cjs/decorators/validate.js +22 -0
  87. package/lib/cjs/decorators/validate.js.map +1 -0
  88. package/lib/cjs/domain/FormioDataResolver.js +3 -0
  89. package/lib/cjs/domain/FormioDataResolver.js.map +1 -0
  90. package/lib/cjs/index.js +56 -0
  91. package/lib/cjs/index.js.map +1 -0
  92. package/lib/cjs/package.json +3 -0
  93. package/lib/cjs/registries/FormioMappersContainer.js +21 -0
  94. package/lib/cjs/registries/FormioMappersContainer.js.map +1 -0
  95. package/lib/cjs/registries/FormsContainer.js +6 -0
  96. package/lib/cjs/registries/FormsContainer.js.map +1 -0
  97. package/lib/cjs/utils/getFormioProps.js +17 -0
  98. package/lib/cjs/utils/getFormioProps.js.map +1 -0
  99. package/lib/cjs/utils/getFormioSchema.js +54 -0
  100. package/lib/cjs/utils/getFormioSchema.js.map +1 -0
  101. package/lib/cjs/utils/getRef.js +12 -0
  102. package/lib/cjs/utils/getRef.js.map +1 -0
  103. package/lib/esm/components/anyToComponent.js +24 -0
  104. package/lib/esm/components/anyToComponent.js.map +1 -0
  105. package/lib/esm/components/arrayToComponent.js +36 -0
  106. package/lib/esm/components/arrayToComponent.js.map +1 -0
  107. package/lib/esm/components/booleanToComponent.js +12 -0
  108. package/lib/esm/components/booleanToComponent.js.map +1 -0
  109. package/lib/esm/components/dateToComponent.js +55 -0
  110. package/lib/esm/components/dateToComponent.js.map +1 -0
  111. package/lib/esm/components/defaultToComponent.js +14 -0
  112. package/lib/esm/components/defaultToComponent.js.map +1 -0
  113. package/lib/esm/components/enumToComponent.js +29 -0
  114. package/lib/esm/components/enumToComponent.js.map +1 -0
  115. package/lib/esm/components/mapToComponent.js +16 -0
  116. package/lib/esm/components/mapToComponent.js.map +1 -0
  117. package/lib/esm/components/nestedToComponent.js +21 -0
  118. package/lib/esm/components/nestedToComponent.js.map +1 -0
  119. package/lib/esm/components/numberToComponent.js +17 -0
  120. package/lib/esm/components/numberToComponent.js.map +1 -0
  121. package/lib/esm/components/objectToEditGrid.js +12 -0
  122. package/lib/esm/components/objectToEditGrid.js.map +1 -0
  123. package/lib/esm/components/panelToComponent.js +12 -0
  124. package/lib/esm/components/panelToComponent.js.map +1 -0
  125. package/lib/esm/components/propertiesToComponents.js +84 -0
  126. package/lib/esm/components/propertiesToComponents.js.map +1 -0
  127. package/lib/esm/components/stringToComponent.js +39 -0
  128. package/lib/esm/components/stringToComponent.js.map +1 -0
  129. package/lib/esm/decorators/component.js +31 -0
  130. package/lib/esm/decorators/component.js.map +1 -0
  131. package/lib/esm/decorators/conditional.js +47 -0
  132. package/lib/esm/decorators/conditional.js.map +1 -0
  133. package/lib/esm/decorators/currency.js +20 -0
  134. package/lib/esm/decorators/currency.js.map +1 -0
  135. package/lib/esm/decorators/customClass.js +14 -0
  136. package/lib/esm/decorators/customClass.js.map +1 -0
  137. package/lib/esm/decorators/customConditional.js +29 -0
  138. package/lib/esm/decorators/customConditional.js.map +1 -0
  139. package/lib/esm/decorators/dataSourceJson.js +23 -0
  140. package/lib/esm/decorators/dataSourceJson.js.map +1 -0
  141. package/lib/esm/decorators/dataSourceUrl.js +18 -0
  142. package/lib/esm/decorators/dataSourceUrl.js.map +1 -0
  143. package/lib/esm/decorators/errorLabel.js +14 -0
  144. package/lib/esm/decorators/errorLabel.js.map +1 -0
  145. package/lib/esm/decorators/errorMessage.js +13 -0
  146. package/lib/esm/decorators/errorMessage.js.map +1 -0
  147. package/lib/esm/decorators/form.js +17 -0
  148. package/lib/esm/decorators/form.js.map +1 -0
  149. package/lib/esm/decorators/hidden.js +18 -0
  150. package/lib/esm/decorators/hidden.js.map +1 -0
  151. package/lib/esm/decorators/inputTags.js +19 -0
  152. package/lib/esm/decorators/inputTags.js.map +1 -0
  153. package/lib/esm/decorators/label.js +15 -0
  154. package/lib/esm/decorators/label.js.map +1 -0
  155. package/lib/esm/decorators/mask.js +45 -0
  156. package/lib/esm/decorators/mask.js.map +1 -0
  157. package/lib/esm/decorators/maxWords.js +13 -0
  158. package/lib/esm/decorators/maxWords.js.map +1 -0
  159. package/lib/esm/decorators/minWords.js +13 -0
  160. package/lib/esm/decorators/minWords.js.map +1 -0
  161. package/lib/esm/decorators/modalEdit.js +14 -0
  162. package/lib/esm/decorators/modalEdit.js.map +1 -0
  163. package/lib/esm/decorators/multiple.js +14 -0
  164. package/lib/esm/decorators/multiple.js.map +1 -0
  165. package/lib/esm/decorators/openWhenEmpty.js +14 -0
  166. package/lib/esm/decorators/openWhenEmpty.js.map +1 -0
  167. package/lib/esm/decorators/password.js +16 -0
  168. package/lib/esm/decorators/password.js.map +1 -0
  169. package/lib/esm/decorators/placeholder.js +15 -0
  170. package/lib/esm/decorators/placeholder.js.map +1 -0
  171. package/lib/esm/decorators/prefix.js +14 -0
  172. package/lib/esm/decorators/prefix.js.map +1 -0
  173. package/lib/esm/decorators/select.js +18 -0
  174. package/lib/esm/decorators/select.js.map +1 -0
  175. package/lib/esm/decorators/suffix.js +14 -0
  176. package/lib/esm/decorators/suffix.js.map +1 -0
  177. package/lib/esm/decorators/tableView.js +15 -0
  178. package/lib/esm/decorators/tableView.js.map +1 -0
  179. package/lib/esm/decorators/tabs.js +18 -0
  180. package/lib/esm/decorators/tabs.js.map +1 -0
  181. package/lib/esm/decorators/textCase.js +15 -0
  182. package/lib/esm/decorators/textCase.js.map +1 -0
  183. package/lib/esm/decorators/textarea.js +16 -0
  184. package/lib/esm/decorators/textarea.js.map +1 -0
  185. package/lib/esm/decorators/tooltip.js +15 -0
  186. package/lib/esm/decorators/tooltip.js.map +1 -0
  187. package/lib/esm/decorators/validate.js +18 -0
  188. package/lib/esm/decorators/validate.js.map +1 -0
  189. package/lib/esm/domain/FormioDataResolver.js +2 -0
  190. package/lib/esm/domain/FormioDataResolver.js.map +1 -0
  191. package/lib/esm/index.js +53 -0
  192. package/lib/esm/index.js.map +1 -0
  193. package/lib/esm/package.json +3 -0
  194. package/lib/esm/registries/FormioMappersContainer.js +15 -0
  195. package/lib/esm/registries/FormioMappersContainer.js.map +1 -0
  196. package/lib/esm/registries/FormsContainer.js +3 -0
  197. package/lib/esm/registries/FormsContainer.js.map +1 -0
  198. package/lib/esm/utils/getFormioProps.js +13 -0
  199. package/lib/esm/utils/getFormioProps.js.map +1 -0
  200. package/lib/esm/utils/getFormioSchema.js +50 -0
  201. package/lib/esm/utils/getFormioSchema.js.map +1 -0
  202. package/lib/esm/utils/getRef.js +8 -0
  203. package/lib/esm/utils/getRef.js.map +1 -0
  204. package/lib/{components → types/components}/anyToComponent.d.ts +0 -0
  205. package/lib/{components → types/components}/arrayToComponent.d.ts +0 -0
  206. package/lib/{components → types/components}/booleanToComponent.d.ts +0 -0
  207. package/lib/{components → types/components}/dateToComponent.d.ts +0 -0
  208. package/lib/{components → types/components}/defaultToComponent.d.ts +0 -0
  209. package/lib/{components → types/components}/enumToComponent.d.ts +0 -0
  210. package/lib/{components → types/components}/mapToComponent.d.ts +0 -0
  211. package/lib/{components → types/components}/nestedToComponent.d.ts +0 -0
  212. package/lib/{components → types/components}/numberToComponent.d.ts +0 -0
  213. package/lib/{components → types/components}/objectToEditGrid.d.ts +0 -0
  214. package/lib/{components → types/components}/panelToComponent.d.ts +0 -0
  215. package/lib/{components → types/components}/propertiesToComponents.d.ts +0 -0
  216. package/lib/{components → types/components}/stringToComponent.d.ts +0 -0
  217. package/lib/{decorators → types/decorators}/component.d.ts +0 -0
  218. package/lib/types/decorators/conditional.d.ts +33 -0
  219. package/lib/{decorators → types/decorators}/currency.d.ts +0 -0
  220. package/lib/types/decorators/customClass.d.ts +8 -0
  221. package/lib/types/decorators/customConditional.d.ts +59 -0
  222. package/lib/types/decorators/dataSourceJson.d.ts +8 -0
  223. package/lib/types/decorators/dataSourceUrl.d.ts +8 -0
  224. package/lib/types/decorators/errorLabel.d.ts +8 -0
  225. package/lib/types/decorators/errorMessage.d.ts +9 -0
  226. package/lib/types/decorators/form.d.ts +6 -0
  227. package/lib/{decorators → types/decorators}/hidden.d.ts +3 -0
  228. package/lib/{decorators → types/decorators}/inputTags.d.ts +0 -0
  229. package/lib/types/decorators/label.d.ts +9 -0
  230. package/lib/types/decorators/mask.d.ts +37 -0
  231. package/lib/types/decorators/maxWords.d.ts +9 -0
  232. package/lib/types/decorators/minWords.d.ts +9 -0
  233. package/lib/types/decorators/modalEdit.d.ts +8 -0
  234. package/lib/{decorators → types/decorators}/multiple.d.ts +0 -0
  235. package/lib/types/decorators/openWhenEmpty.d.ts +8 -0
  236. package/lib/types/decorators/password.d.ts +12 -0
  237. package/lib/types/decorators/placeholder.d.ts +9 -0
  238. package/lib/types/decorators/prefix.d.ts +8 -0
  239. package/lib/types/decorators/select.d.ts +14 -0
  240. package/lib/types/decorators/suffix.d.ts +8 -0
  241. package/lib/{decorators → types/decorators}/tableView.d.ts +0 -0
  242. package/lib/{decorators → types/decorators}/tabs.d.ts +0 -0
  243. package/lib/types/decorators/textCase.d.ts +9 -0
  244. package/lib/types/decorators/textarea.d.ts +12 -0
  245. package/lib/types/decorators/tooltip.d.ts +9 -0
  246. package/lib/types/decorators/validate.d.ts +10 -0
  247. package/lib/types/domain/FormioDataResolver.d.ts +7 -0
  248. package/lib/types/index.d.ts +52 -0
  249. package/lib/{registries → types/registries}/FormioMappersContainer.d.ts +0 -0
  250. package/lib/types/registries/FormsContainer.d.ts +2 -0
  251. package/lib/{utils → types/utils}/getFormioProps.d.ts +0 -0
  252. package/lib/types/utils/getFormioSchema.d.ts +16 -0
  253. package/lib/{utils → types/utils}/getRef.d.ts +0 -0
  254. package/package.json +48 -21
  255. package/readme.md +10 -6
  256. package/tsconfig.compile.esm.json +12 -0
  257. package/.mocharc.js +0 -5
  258. package/.nycrc +0 -26
  259. package/lib/components/index.d.ts +0 -13
  260. package/lib/decorators/dataSourceJson.d.ts +0 -7
  261. package/lib/decorators/dataSourceUrl.d.ts +0 -7
  262. package/lib/decorators/index.d.ts +0 -11
  263. package/lib/decorators/password.d.ts +0 -8
  264. package/lib/decorators/select.d.ts +0 -8
  265. package/lib/decorators/textarea.d.ts +0 -8
  266. package/lib/index.d.ts +0 -4
  267. package/lib/index.js +0 -585
  268. package/lib/index.js.map +0 -1
  269. package/lib/index.modern.js +0 -562
  270. package/lib/index.modern.js.map +0 -1
  271. package/lib/utils/getFormioSchema.d.ts +0 -11
package/.nycrc DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "include": [
3
- "src/**/*.ts"
4
- ],
5
- "exclude": [
6
- "**/*.d.ts",
7
- "node_modules",
8
- "**/interfaces/**",
9
- "**/index.ts"
10
- ],
11
- "extension": [
12
- ".ts"
13
- ],
14
- "require": [],
15
- "reporter": [
16
- "text-summary",
17
- "html",
18
- "lcov",
19
- "json"
20
- ],
21
- "check-coverage": true,
22
- "statements": 100,
23
- "branches": 100,
24
- "functions": 100,
25
- "lines": 100
26
- }
@@ -1,13 +0,0 @@
1
- export * from "./anyToComponent";
2
- export * from "./arrayToComponent";
3
- export * from "./booleanToComponent";
4
- export * from "./dateToComponent";
5
- export * from "./defaultToComponent";
6
- export * from "./enumToComponent";
7
- export * from "./mapToComponent";
8
- export * from "./nestedToComponent";
9
- export * from "./numberToComponent";
10
- export * from "./objectToEditGrid";
11
- export * from "./panelToComponent";
12
- export * from "./propertiesToComponents";
13
- export * from "./stringToComponent";
@@ -1,7 +0,0 @@
1
- /**
2
- * Set custom json data source
3
- * @param data
4
- * @param props
5
- * @constructor
6
- */
7
- export declare function DataSourceJson(data: any, props?: Record<string, any>): PropertyDecorator;
@@ -1,7 +0,0 @@
1
- /**
2
- * Set URL data on the current component.
3
- * @param url
4
- * @param props
5
- * @constructor
6
- */
7
- export declare function DataSourceUrl(url: string, props?: Record<string, any>): PropertyDecorator;
@@ -1,11 +0,0 @@
1
- export * from "./component";
2
- export * from "./currency";
3
- export * from "./dataSourceJson";
4
- export * from "./dataSourceUrl";
5
- export * from "./hidden";
6
- export * from "./inputTags";
7
- export * from "./multiple";
8
- export * from "./password";
9
- export * from "./select";
10
- export * from "./tableView";
11
- export * from "./textarea";
@@ -1,8 +0,0 @@
1
- /**
2
- * Configure the property as Password component.
3
- * @decorator
4
- * @formio
5
- * @property
6
- * @schema
7
- */
8
- export declare function Password(props?: Record<string, any>): PropertyDecorator;
@@ -1,8 +0,0 @@
1
- /**
2
- * Configure the property as Select component.
3
- * @decorator
4
- * @formio
5
- * @property
6
- * @schema
7
- */
8
- export declare function Select(props?: Record<string, any>): PropertyDecorator;
@@ -1,8 +0,0 @@
1
- /**
2
- * Configure the property as Textarea component.
3
- * @decorator
4
- * @formio
5
- * @property
6
- * @schema
7
- */
8
- export declare function Textarea(props?: Record<string, any>): PropertyDecorator;
package/lib/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from "./components";
2
- export * from "./decorators";
3
- export * from "./registries/FormioMappersContainer";
4
- export * from "./utils/getFormioSchema";
package/lib/index.js DELETED
@@ -1,585 +0,0 @@
1
- var core = require('@tsed/core');
2
- var changeCase = require('change-case');
3
- var schema = require('@tsed/schema');
4
-
5
- const FormioMappersContainer = new Map();
6
- function registerFormioMapper(type, mapper) {
7
- return FormioMappersContainer.set(type, mapper);
8
- }
9
- function getFormioMapper(type) {
10
- // istanbul ignore next
11
- if (!FormioMappersContainer.has(type)) {
12
- throw new Error(`Formio ${type} mapper doesn't exists`);
13
- }
14
-
15
- return FormioMappersContainer.get(type);
16
- }
17
- function execMapper(type, schema, options) {
18
- return getFormioMapper(type)(schema, options);
19
- }
20
-
21
- function getRef(schema, options) {
22
- if (schema.$ref) {
23
- return core.getValue(options, schema.$ref.replace("#/", "").replace(/\//g, "."));
24
- }
25
-
26
- return schema;
27
- }
28
-
29
- function anyToComponent(schema, options) {
30
- schema = getRef(schema, options);
31
-
32
- switch (schema.type) {
33
- case "object":
34
- if (schema.additionalProperties) {
35
- return execMapper("map", schema, options);
36
- }
37
-
38
- return execMapper("nested", schema, options);
39
-
40
- case "array":
41
- return execMapper("array", schema, options);
42
-
43
- case "string":
44
- return execMapper("string", schema, options);
45
-
46
- case "boolean":
47
- return execMapper("boolean", schema, options);
48
-
49
- case "integer":
50
- case "number":
51
- return execMapper("number", schema, options);
52
- // default:
53
- // return execMapper("default", schema, options);
54
- }
55
- }
56
- registerFormioMapper("any", anyToComponent);
57
-
58
- function _extends() {
59
- _extends = Object.assign || function (target) {
60
- for (var i = 1; i < arguments.length; i++) {
61
- var source = arguments[i];
62
-
63
- for (var key in source) {
64
- if (Object.prototype.hasOwnProperty.call(source, key)) {
65
- target[key] = source[key];
66
- }
67
- }
68
- }
69
-
70
- return target;
71
- };
72
-
73
- return _extends.apply(this, arguments);
74
- }
75
-
76
- function arrayToComponent(schema, options) {
77
- schema = schema.items.$ref ? getRef(schema.items, options) : schema.items;
78
- const {
79
- type
80
- } = schema;
81
-
82
- switch (type) {
83
- case "object":
84
- // editgrid
85
- return execMapper("editgrid", schema, options);
86
-
87
- case "string":
88
- // tag or enum?
89
- if (schema.enum) {
90
- const component = execMapper("enum", schema, options);
91
- return _extends({}, component, {
92
- inline: false,
93
- type: "selectboxes"
94
- });
95
- }
96
-
97
- const component = execMapper(type, schema, options);
98
- return core.cleanObject(_extends({}, component, {
99
- multiple: component.type === "tags" ? undefined : true
100
- }));
101
-
102
- default:
103
- case "number":
104
- return _extends({}, execMapper(type, schema, options), {
105
- multiple: true
106
- });
107
- }
108
- }
109
- registerFormioMapper("array", arrayToComponent);
110
-
111
- function booleanToComponent(schema, options) {
112
- const component = execMapper("default", schema, options);
113
- return core.cleanObject(_extends({}, component, {
114
- input: true,
115
- type: component.type || "checkbox"
116
- }));
117
- }
118
-
119
- registerFormioMapper("boolean", booleanToComponent);
120
-
121
- function dateToComponent(schema, options) {
122
- const component = execMapper("default", schema, options);
123
-
124
- const base = _extends({}, component, {
125
- enableMinDateInput: false,
126
- datePicker: {
127
- disableWeekends: false,
128
- disableWeekdays: false
129
- },
130
- enableMaxDateInput: false,
131
- enableTime: false,
132
- type: "datetime",
133
- input: true,
134
- widget: {
135
- type: "calendar",
136
- displayInTimezone: "viewer",
137
- locale: "en",
138
- useLocaleSettings: false,
139
- allowInput: true,
140
- mode: "single",
141
- noCalendar: false,
142
- hourIncrement: 1,
143
- minuteIncrement: 1,
144
- minDate: null,
145
- disableWeekends: false,
146
- disableWeekdays: false,
147
- maxDate: null
148
- }
149
- });
150
-
151
- if (schema.format === "date") {
152
- return _extends({}, base, {
153
- format: "yyyy-MM-dd",
154
- enableTime: false,
155
- widget: _extends({}, base.widget, {
156
- enableTime: false,
157
- format: "yyyy-MM-dd"
158
- })
159
- });
160
- }
161
-
162
- return _extends({}, base, {
163
- timePicker: {
164
- showMeridian: false
165
- },
166
- widget: {
167
- enableTime: true,
168
- time_24hr: true
169
- }
170
- });
171
- }
172
-
173
- registerFormioMapper("date", dateToComponent);
174
-
175
- function getFormioProps(schema) {
176
- const formioProps = Object.entries(schema).reduce((props, [key, value]) => {
177
- if (key.startsWith("x-formio-")) {
178
- return _extends({}, props, {
179
- [key.replace("x-formio-", "")]: value
180
- });
181
- }
182
-
183
- return props;
184
- }, {});
185
- return formioProps;
186
- }
187
-
188
- function defaultToComponent(schema, options) {
189
- const formioProps = getFormioProps(schema);
190
- return core.cleanObject(_extends({}, formioProps, {
191
- disabled: !!schema.readOnly,
192
- label: schema.title,
193
- description: schema.description,
194
- defaultValue: schema.default
195
- }));
196
- }
197
- registerFormioMapper("default", defaultToComponent);
198
-
199
- function enumToComponent(schema, options) {
200
- const component = execMapper("default", schema, options);
201
- return core.cleanObject(_extends({}, component, {
202
- values: schema["x-values"] || schema.enum.map(value => {
203
- return {
204
- label: changeCase.sentenceCase(value),
205
- shortcut: "",
206
- value
207
- };
208
- })
209
- }));
210
- }
211
- registerFormioMapper("enum", enumToComponent);
212
-
213
- function mapToComponent(schema, options) {
214
- return _extends({}, execMapper("default", schema, options), {
215
- type: "datamap",
216
- tableView: false,
217
- input: true,
218
- valueComponent: _extends({}, execMapper("any", schema.additionalProperties, options), {
219
- hideLabel: true,
220
- tableView: true
221
- })
222
- });
223
- }
224
- registerFormioMapper("map", mapToComponent);
225
-
226
- function nestedToComponent(schema, options) {
227
- return _extends({}, execMapper("default", schema, options), {
228
- label: undefined,
229
- tableView: false,
230
- type: "form",
231
- display: "form",
232
- input: true,
233
- components: [_extends({
234
- key: "panel",
235
- label: options.parentKey && changeCase.sentenceCase(options.parentKey)
236
- }, execMapper("panel", schema, options))]
237
- });
238
- }
239
- registerFormioMapper("nested", nestedToComponent);
240
-
241
- function numberToComponent(schema, options) {
242
- const component = execMapper("default", schema, options);
243
- return core.cleanObject(_extends({}, component, {
244
- input: true,
245
- delimiter: core.getValue(component, "delimiter", false),
246
- inputFormat: core.getValue(component, "inputFormat", "plain"),
247
- mask: core.getValue(component, "mask", false),
248
- requireDecimal: false,
249
- type: "number"
250
- }));
251
- }
252
- registerFormioMapper("number", numberToComponent);
253
- registerFormioMapper("integer", numberToComponent);
254
-
255
- function objectToEditGrid(schema, options) {
256
- return _extends({}, execMapper("default", schema, options), {
257
- rowDrafts: false,
258
- type: "editgrid",
259
- input: true,
260
- components: execMapper("properties", schema, options)
261
- });
262
- }
263
- registerFormioMapper("editgrid", objectToEditGrid);
264
-
265
- function panelToComponent(schema, options) {
266
- return _extends({}, execMapper("default", schema, options), {
267
- collapsible: false,
268
- input: false,
269
- tableView: false,
270
- components: execMapper("properties", schema, options)
271
- });
272
- }
273
- registerFormioMapper("panel", panelToComponent);
274
-
275
- function propertiesToComponents(schema, options) {
276
- const tabs = {
277
- label: "Tabs",
278
- key: "tabs",
279
- type: "tabs",
280
- input: false,
281
- tableView: false,
282
- components: new Map(),
283
- pushed: false
284
- };
285
- const components = [];
286
- Object.entries(schema.properties).forEach(([key, propSchema]) => {
287
- const tabsOptions = propSchema["x-formiotabs"];
288
- const component = core.cleanObject(_extends({
289
- key,
290
- label: changeCase.sentenceCase(key)
291
- }, execMapper("any", propSchema, _extends({
292
- parentKey: key
293
- }, options)), {
294
- validate: {
295
- required: (schema.required || []).includes(key)
296
- }
297
- }));
298
-
299
- if (tabsOptions) {
300
- if (!tabs.pushed) {
301
- components.push(tabs);
302
- tabs.pushed = true;
303
- }
304
-
305
- if (!tabs.components.has(tabsOptions.key)) {
306
- tabs.components.set(tabsOptions.key, _extends({}, tabsOptions, {
307
- components: []
308
- }));
309
- }
310
-
311
- tabs.components.get(tabsOptions.key).components.push(component);
312
- } else {
313
- components.push(component);
314
- }
315
- });
316
-
317
- if (tabs.components.size) {
318
- tabs.components = [...tabs.components.values()];
319
- }
320
-
321
- return components;
322
- }
323
- registerFormioMapper("properties", propertiesToComponents);
324
-
325
- function stringToComponent(schema, options) {
326
- if (schema.format) {
327
- const component = execMapper("default", schema, options);
328
-
329
- switch (schema.format) {
330
- case "date":
331
- case "date-time":
332
- return execMapper("date", schema, options);
333
-
334
- case "uri":
335
- return core.cleanObject(_extends({
336
- input: true
337
- }, component, {
338
- type: component.type || "url"
339
- }));
340
-
341
- default:
342
- return core.cleanObject(_extends({
343
- input: true
344
- }, component, {
345
- type: component.type || schema.format
346
- }));
347
- }
348
- }
349
-
350
- if (schema.enum) {
351
- const component = execMapper("enum", schema, options);
352
- return _extends({}, component, {
353
- type: component.type || "radio"
354
- });
355
- }
356
-
357
- const component = execMapper("default", schema, options);
358
- return core.cleanObject(_extends({
359
- input: true,
360
- type: component.type || "textfield"
361
- }, component));
362
- }
363
- registerFormioMapper("string", stringToComponent);
364
-
365
- /**
366
- * Declare a formio Component schema on the decorated propertyKey.
367
- * @decorator
368
- * @formio
369
- * @property
370
- * @schema
371
- */
372
-
373
- function Component(component) {
374
- component = Object.entries(component).reduce((component, [key, value]) => {
375
- return _extends({}, component, {
376
- [`x-formio-${key}`]: value
377
- });
378
- }, {});
379
- return schema.CustomKeys(component);
380
- }
381
-
382
- /**
383
- * Configure the property as Currency component.
384
- * @decorator
385
- * @formio
386
- * @property
387
- * @schema
388
- */
389
-
390
- function Currency(props = {}) {
391
- return Component(_extends({
392
- currency: "USD",
393
- inputFormat: "plain",
394
- mask: false,
395
- spellcheck: true,
396
- delimiter: true
397
- }, props, {
398
- type: "currency"
399
- }));
400
- }
401
-
402
- /**
403
- * Set custom json data source
404
- * @param data
405
- * @param props
406
- * @constructor
407
- */
408
-
409
- function DataSourceJson(data, props = {}) {
410
- return Component(_extends({}, props, {
411
- dataSrc: "json",
412
- data: _extends({}, props.data, {
413
- json: JSON.stringify(data)
414
- })
415
- }));
416
- }
417
-
418
- /**
419
- * Set URL data on the current component.
420
- * @param url
421
- * @param props
422
- * @constructor
423
- */
424
-
425
- function DataSourceUrl(url, props = {}) {
426
- return Component(_extends({}, props, {
427
- dataSrc: "url",
428
- data: _extends({}, props.data, {
429
- url
430
- })
431
- }));
432
- }
433
-
434
- /**
435
- * Set hidden field.
436
- * @param bool
437
- * @decorator
438
- * @formio
439
- * @property
440
- * @schema
441
- */
442
-
443
- function Hidden(bool = true) {
444
- return Component({
445
- hidden: bool
446
- });
447
- }
448
-
449
- /**
450
- * Configure the property as Tags component.
451
- * @decorator
452
- * @formio
453
- * @property
454
- * @schema
455
- */
456
-
457
- function InputTags(props = {}) {
458
- return core.useDecorators(schema.CollectionOf(String), Component(_extends({}, props, {
459
- tableView: false,
460
- storeas: "array",
461
- type: "tags"
462
- })));
463
- }
464
-
465
- /**
466
- * Change the multiple value on the decorated property.
467
- * @decorator
468
- * @formio
469
- * @property
470
- * @schema
471
- */
472
-
473
- function Multiple(multiple = false) {
474
- return Component({
475
- multiple
476
- });
477
- }
478
-
479
- /**
480
- * Configure the property as Password component.
481
- * @decorator
482
- * @formio
483
- * @property
484
- * @schema
485
- */
486
-
487
- function Password(props = {}) {
488
- return Component(_extends({}, props, {
489
- type: "password",
490
- protected: true
491
- }));
492
- }
493
-
494
- /**
495
- * Configure the property as Select component.
496
- * @decorator
497
- * @formio
498
- * @property
499
- * @schema
500
- */
501
-
502
- function Select(props = {}) {
503
- return Component(_extends({
504
- selectThreshold: 0.3,
505
- input: true,
506
- widget: "choicesjs"
507
- }, props, {
508
- type: "select"
509
- }));
510
- }
511
-
512
- /**
513
- * Change the visibility of the current property on a table.
514
- * @param bool
515
- * @decorator
516
- * @formio
517
- * @property
518
- * @schema
519
- */
520
-
521
- function TableView(bool) {
522
- return Component({
523
- tableView: bool
524
- });
525
- }
526
-
527
- /**
528
- * Configure the property as Textarea component.
529
- * @decorator
530
- * @formio
531
- * @property
532
- * @schema
533
- */
534
-
535
- function Textarea(props = {}) {
536
- return Component(_extends({
537
- autoExpand: false
538
- }, props, {
539
- type: "textarea"
540
- }));
541
- }
542
-
543
- function getFormioSchema(model, options = {}) {
544
- const schema$1 = schema.getJsonSchema(model, _extends({}, options, {
545
- customKeys: true
546
- }));
547
- return {
548
- machineName: core.nameOf(model).toLowerCase(),
549
- name: core.nameOf(model).toLowerCase(),
550
- title: core.nameOf(model),
551
- type: "form",
552
- display: "form",
553
- components: execMapper("properties", schema$1, _extends({}, options, {
554
- definitions: schema$1.definitions
555
- }))
556
- };
557
- }
558
-
559
- exports.Component = Component;
560
- exports.Currency = Currency;
561
- exports.DataSourceJson = DataSourceJson;
562
- exports.DataSourceUrl = DataSourceUrl;
563
- exports.Hidden = Hidden;
564
- exports.InputTags = InputTags;
565
- exports.Multiple = Multiple;
566
- exports.Password = Password;
567
- exports.Select = Select;
568
- exports.TableView = TableView;
569
- exports.Textarea = Textarea;
570
- exports.anyToComponent = anyToComponent;
571
- exports.arrayToComponent = arrayToComponent;
572
- exports.defaultToComponent = defaultToComponent;
573
- exports.enumToComponent = enumToComponent;
574
- exports.execMapper = execMapper;
575
- exports.getFormioMapper = getFormioMapper;
576
- exports.getFormioSchema = getFormioSchema;
577
- exports.mapToComponent = mapToComponent;
578
- exports.nestedToComponent = nestedToComponent;
579
- exports.numberToComponent = numberToComponent;
580
- exports.objectToEditGrid = objectToEditGrid;
581
- exports.panelToComponent = panelToComponent;
582
- exports.propertiesToComponents = propertiesToComponents;
583
- exports.registerFormioMapper = registerFormioMapper;
584
- exports.stringToComponent = stringToComponent;
585
- //# sourceMappingURL=index.js.map