@axdspub/axiom-ui-forms 0.2.9 → 0.3.0

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 (229) hide show
  1. package/README.md +272 -272
  2. package/library/axiom-ui-forms.d.ts +213 -77
  3. package/library/esm/_virtual/_commonjsHelpers.js +26 -1
  4. package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
  5. package/library/esm/_virtual/_freeGlobal.js +7 -0
  6. package/library/esm/_virtual/_freeGlobal.js.map +1 -0
  7. package/library/esm/_virtual/get.js +8 -0
  8. package/library/esm/_virtual/get.js.map +1 -0
  9. package/library/esm/_virtual/index10.js +2 -2
  10. package/library/esm/_virtual/index11.js +2 -2
  11. package/library/esm/_virtual/index12.js +2 -6
  12. package/library/esm/_virtual/index12.js.map +1 -1
  13. package/library/esm/_virtual/index13.js +2 -6
  14. package/library/esm/_virtual/index13.js.map +1 -1
  15. package/library/esm/_virtual/index3.js +2 -2
  16. package/library/esm/_virtual/index3.js.map +1 -1
  17. package/library/esm/_virtual/index5.js +2 -2
  18. package/library/esm/_virtual/index6.js +2 -2
  19. package/library/esm/_virtual/index6.js.map +1 -1
  20. package/library/esm/_virtual/index7.js +6 -2
  21. package/library/esm/_virtual/index7.js.map +1 -1
  22. package/library/esm/_virtual/index8.js +6 -2
  23. package/library/esm/_virtual/index8.js.map +1 -1
  24. package/library/esm/_virtual/index9.js +2 -2
  25. package/library/esm/_virtual/set.js +8 -0
  26. package/library/esm/_virtual/set.js.map +1 -0
  27. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +1 -1
  28. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  29. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  30. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  31. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  32. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  33. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  34. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  35. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  36. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  37. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  38. package/library/esm/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  39. package/library/esm/node_modules/jotai/esm/react.js +135 -0
  40. package/library/esm/node_modules/jotai/esm/react.js.map +1 -0
  41. package/library/esm/node_modules/jotai/esm/vanilla/internals.js +551 -0
  42. package/library/esm/node_modules/jotai/esm/vanilla/internals.js.map +1 -0
  43. package/library/esm/node_modules/jotai/esm/vanilla.js +111 -0
  44. package/library/esm/node_modules/jotai/esm/vanilla.js.map +1 -0
  45. package/library/esm/node_modules/lodash/_Hash.js +49 -0
  46. package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
  47. package/library/esm/node_modules/lodash/_ListCache.js +49 -0
  48. package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
  49. package/library/esm/node_modules/lodash/_Map.js +21 -0
  50. package/library/esm/node_modules/lodash/_Map.js.map +1 -0
  51. package/library/esm/node_modules/lodash/_MapCache.js +49 -0
  52. package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
  53. package/library/esm/node_modules/lodash/_Symbol.js +19 -0
  54. package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
  55. package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
  56. package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
  57. package/library/esm/node_modules/lodash/_assignValue.js +42 -0
  58. package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
  59. package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
  60. package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
  61. package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
  62. package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
  63. package/library/esm/node_modules/lodash/_baseGet.js +38 -0
  64. package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
  65. package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
  66. package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  67. package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
  68. package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  69. package/library/esm/node_modules/lodash/_baseSet.js +68 -0
  70. package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
  71. package/library/esm/node_modules/lodash/_baseToString.js +50 -0
  72. package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
  73. package/library/esm/node_modules/lodash/_castPath.js +37 -0
  74. package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
  75. package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
  76. package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  77. package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
  78. package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  79. package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
  80. package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  81. package/library/esm/node_modules/lodash/_getMapData.js +31 -0
  82. package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
  83. package/library/esm/node_modules/lodash/_getNative.js +31 -0
  84. package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
  85. package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
  86. package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  87. package/library/esm/node_modules/lodash/_getValue.js +25 -0
  88. package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
  89. package/library/esm/node_modules/lodash/_hashClear.js +28 -0
  90. package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
  91. package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
  92. package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
  93. package/library/esm/node_modules/lodash/_hashGet.js +43 -0
  94. package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
  95. package/library/esm/node_modules/lodash/_hashHas.js +36 -0
  96. package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
  97. package/library/esm/node_modules/lodash/_hashSet.js +36 -0
  98. package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
  99. package/library/esm/node_modules/lodash/_isIndex.js +37 -0
  100. package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
  101. package/library/esm/node_modules/lodash/_isKey.js +43 -0
  102. package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
  103. package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
  104. package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
  105. package/library/esm/node_modules/lodash/_isMasked.js +33 -0
  106. package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
  107. package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
  108. package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
  109. package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
  110. package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
  111. package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
  112. package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
  113. package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
  114. package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
  115. package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
  116. package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
  117. package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
  118. package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
  119. package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
  120. package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  121. package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
  122. package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
  123. package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
  124. package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
  125. package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
  126. package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
  127. package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
  128. package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
  129. package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
  130. package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  131. package/library/esm/node_modules/lodash/_objectToString.js +34 -0
  132. package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
  133. package/library/esm/node_modules/lodash/_root.js +22 -0
  134. package/library/esm/node_modules/lodash/_root.js.map +1 -0
  135. package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
  136. package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
  137. package/library/esm/node_modules/lodash/_toKey.js +31 -0
  138. package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
  139. package/library/esm/node_modules/lodash/_toSource.js +38 -0
  140. package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
  141. package/library/esm/node_modules/lodash/eq.js +49 -0
  142. package/library/esm/node_modules/lodash/eq.js.map +1 -0
  143. package/library/esm/node_modules/lodash/get.js +46 -0
  144. package/library/esm/node_modules/lodash/get.js.map +1 -0
  145. package/library/esm/node_modules/lodash/isArray.js +38 -0
  146. package/library/esm/node_modules/lodash/isArray.js.map +1 -0
  147. package/library/esm/node_modules/lodash/isFunction.js +51 -0
  148. package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
  149. package/library/esm/node_modules/lodash/isObject.js +43 -0
  150. package/library/esm/node_modules/lodash/isObject.js.map +1 -0
  151. package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
  152. package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  153. package/library/esm/node_modules/lodash/isSymbol.js +43 -0
  154. package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
  155. package/library/esm/node_modules/lodash/memoize.js +86 -0
  156. package/library/esm/node_modules/lodash/memoize.js.map +1 -0
  157. package/library/esm/node_modules/lodash/set.js +48 -0
  158. package/library/esm/node_modules/lodash/set.js.map +1 -0
  159. package/library/esm/node_modules/lodash/toString.js +41 -0
  160. package/library/esm/node_modules/lodash/toString.js.map +1 -0
  161. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  162. package/library/esm/node_modules/unified/lib/index.js +1 -1
  163. package/library/esm/src/Form/Components/FieldCreator.js +24 -7
  164. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  165. package/library/esm/src/Form/Components/FieldLabel.js +1 -1
  166. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  167. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  168. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  169. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  170. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  171. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  172. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  173. package/library/esm/src/Form/Components/Inputs/GeoJSONInputLoader.js.map +1 -1
  174. package/library/esm/src/Form/Components/Inputs/Geometry.js +38 -32
  175. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  176. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
  177. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  178. package/library/esm/src/Form/Components/Inputs/JSON.js +83 -42
  179. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  180. package/library/esm/src/Form/Components/Inputs/JSONInputLoader.js.map +1 -1
  181. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  182. package/library/esm/src/Form/Components/Inputs/Number.js +34 -9
  183. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  184. package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
  185. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  186. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -1
  187. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  188. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -1
  189. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  190. package/library/esm/src/Form/Components/Inputs/String.js +2 -2
  191. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  192. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  193. package/library/esm/src/Form/Components/Inputs/index.js +11 -0
  194. package/library/esm/src/Form/Components/Inputs/index.js.map +1 -0
  195. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  196. package/library/esm/src/Form/Creator/FormContextProvider.js.map +1 -1
  197. package/library/esm/src/Form/Creator/FormCreator.js +20 -9
  198. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  199. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  200. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  201. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  202. package/library/esm/src/Form/Creator/FormSectionContextProvider.js.map +1 -1
  203. package/library/esm/src/Form/Creator/NavElement.js.map +1 -1
  204. package/library/esm/src/Form/Creator/Page.js +40 -7
  205. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  206. package/library/esm/src/Form/Creator/Wizard.js +79 -22
  207. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  208. package/library/esm/src/Form/Manage/CopyableJSONOutput.js +3 -3
  209. package/library/esm/src/Form/Manage/CopyableJSONOutput.js.map +1 -1
  210. package/library/esm/src/library.js +11 -13
  211. package/library/esm/src/library.js.map +1 -1
  212. package/library/esm/src/utils/getters.js +135 -0
  213. package/library/esm/src/utils/getters.js.map +1 -0
  214. package/library/esm/src/utils/manipulators.js +171 -0
  215. package/library/esm/src/utils/manipulators.js.map +1 -0
  216. package/library/esm/src/utils/resolveRefs.js +44 -0
  217. package/library/esm/src/utils/resolveRefs.js.map +1 -0
  218. package/library/esm/src/utils/responsive/layoutState.js +18 -0
  219. package/library/esm/src/utils/responsive/layoutState.js.map +1 -0
  220. package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +157 -38
  221. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
  222. package/library/esm/src/utils/validators.js +38 -0
  223. package/library/esm/src/utils/validators.js.map +1 -0
  224. package/package.json +131 -124
  225. package/library/esm/src/Form/helpers.js +0 -162
  226. package/library/esm/src/Form/helpers.js.map +0 -1
  227. package/library/esm/src/Form/resolveRefs.js +0 -26
  228. package/library/esm/src/Form/resolveRefs.js.map +0 -1
  229. package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
package/package.json CHANGED
@@ -1,124 +1,131 @@
1
- {
2
- "name": "@axdspub/axiom-ui-forms",
3
- "version": "0.2.9",
4
- "private": false,
5
- "type": "module",
6
- "description": "Axiom UI Forms",
7
- "main": "./library/umd/library.js",
8
- "module": "./library/esm/src/library.js",
9
- "types": "./library/axiom-ui-forms.d.ts",
10
- "files": [
11
- "library/**"
12
- ],
13
- "peerDependencies": {
14
- "lodash": "^4.17.21",
15
- "react": "^18.0.0",
16
- "react-dom": "^18.0.0",
17
- "react-hook-form": "^7.0.0"
18
- },
19
- "dependencies": {
20
- "@axdspub/axiom-maps": "^0.4.9-alpha.28",
21
- "@axdspub/axiom-ui-utilities": "^0.1.6",
22
- "@codemirror/lang-json": "^6.0.1",
23
- "@codemirror/lang-yaml": "^6.1.2",
24
- "@radix-ui/react-icons": "^1.3.2",
25
- "@rollup/plugin-alias": "^5.1.1",
26
- "@rollup/plugin-babel": "^6.0.4",
27
- "@rollup/plugin-commonjs": "^28.0.2",
28
- "@rollup/plugin-dynamic-import-vars": "^2.1.5",
29
- "@rollup/plugin-json": "^6.1.0",
30
- "@rollup/plugin-node-resolve": "^16.0.0",
31
- "@rollup/plugin-typescript": "^12.1.2",
32
- "@tanstack/react-query": "^5.68.0",
33
- "@types/geojson": "^7946.0.16",
34
- "@types/json-schema": "^7.0.15",
35
- "@types/react": "^18.2.28",
36
- "@types/react-dom": "^18.2.13",
37
- "@uiw/react-codemirror": "^4.23.10",
38
- "ajv": "^8.17.1",
39
- "ajv-formats": "^3.0.1",
40
- "autoprefixer": "^10.4.21",
41
- "cbor-x": "^1.6.0",
42
- "generate-schema": "^2.6.0",
43
- "jotai": "^2.7.0",
44
- "jotai-tanstack-query": "^0.8.5",
45
- "js-yaml": "^4.1.0",
46
- "lodash.set": "^4.3.2",
47
- "postcss": "^8.5.3",
48
- "react": "^18.0.0",
49
- "react-dom": "^18.0.0",
50
- "react-markdown": "^10.1.0",
51
- "react-media": "^1.10.0",
52
- "react-router-dom": "^7.2.0",
53
- "rimraf": "^6.0.1",
54
- "rollup": "^4.34.8",
55
- "rollup-plugin-dts": "^6.1.1",
56
- "rollup-plugin-polyfill-node": "^0.13.0",
57
- "to-json-schema": "^0.2.5",
58
- "typescript": "^5.2.2"
59
- },
60
- "scripts": {
61
- "start": "set PORT=3080 && vite",
62
- "build": "vite build",
63
- "serve": "vite preview",
64
- "test": "react-scripts test",
65
- "clean": "rimraf library",
66
- "rollup": "rollup -c",
67
- "prepublishOnly": "npm run clean && rollup -c"
68
- },
69
- "eslintConfig": {
70
- "extends": [
71
- "react-app",
72
- "react-app/jest"
73
- ],
74
- "overrides": [
75
- {
76
- "files": [
77
- "**/*.stories.*"
78
- ],
79
- "rules": {
80
- "import/no-anonymous-default-export": "off"
81
- }
82
- }
83
- ]
84
- },
85
- "browserslist": {
86
- "production": [
87
- ">0.2%",
88
- "not dead",
89
- "not op_mini all",
90
- "not safari < 10",
91
- "not chrome < 51",
92
- "not android < 5",
93
- "not ie < 12"
94
- ],
95
- "development": [
96
- "last 1 chrome version",
97
- "last 1 firefox version",
98
- "last 1 safari version"
99
- ]
100
- },
101
- "devDependencies": {
102
- "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
103
- "@types/js-yaml": "^4.0.9",
104
- "@types/lodash": "^4.17.12",
105
- "@types/rison": "^0.1.0",
106
- "@types/to-json-schema": "^0.2.4",
107
- "@typescript-eslint/eslint-plugin": "^6.8.0",
108
- "@typescript-eslint/parser": "^6.8.0",
109
- "@vitejs/plugin-react": "^4.3.4",
110
- "babel-plugin-named-exports-order": "^0.0.2",
111
- "eslint": "^8.51.0",
112
- "eslint-config-standard-with-typescript": "^39.1.1",
113
- "eslint-plugin-import": "^2.28.1",
114
- "eslint-plugin-n": "^16.2.0",
115
- "eslint-plugin-promise": "^6.1.1",
116
- "eslint-plugin-react": "^7.33.2",
117
- "tailwindcss": "^3.3.3",
118
- "ts-node": "^10.9.1",
119
- "typedoc": "^0.27.7",
120
- "vite": "^6.2.2",
121
- "web-vitals": "^2.1.4",
122
- "webpack": "^5.88.2"
123
- }
124
- }
1
+ {
2
+ "name": "@axdspub/axiom-ui-forms",
3
+ "version": "0.3.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "Axiom UI Forms",
7
+ "main": "./library/umd/library.js",
8
+ "module": "./library/esm/src/library.js",
9
+ "types": "./library/axiom-ui-forms.d.ts",
10
+ "files": [
11
+ "library/**"
12
+ ],
13
+ "peerDependencies": {
14
+ "lodash": "^4.17.21",
15
+ "react": "^18.0.0",
16
+ "react-dom": "^18.0.0",
17
+ "react-hook-form": "^7.0.0"
18
+ },
19
+ "dependencies": {
20
+ "@axdspub/axiom-maps": "^0.4.9-alpha.28",
21
+ "@axdspub/axiom-ui-utilities": "^0.1.7",
22
+ "@codemirror/lang-json": "^6.0.1",
23
+ "@codemirror/lang-yaml": "^6.1.2",
24
+ "@radix-ui/react-icons": "^1.3.2",
25
+ "@rollup/plugin-alias": "^5.1.1",
26
+ "@rollup/plugin-babel": "^6.0.4",
27
+ "@rollup/plugin-commonjs": "^28.0.2",
28
+ "@rollup/plugin-dynamic-import-vars": "^2.1.5",
29
+ "@rollup/plugin-json": "^6.1.0",
30
+ "@rollup/plugin-node-resolve": "^16.0.0",
31
+ "@rollup/plugin-typescript": "^12.1.2",
32
+ "@tanstack/react-query": "^5.68.0",
33
+ "@types/geojson": "^7946.0.16",
34
+ "@types/json-schema": "^7.0.15",
35
+ "@types/react": "^18.2.28",
36
+ "@types/react-dom": "^18.2.13",
37
+ "@uiw/react-codemirror": "^4.23.10",
38
+ "ajv": "^8.17.1",
39
+ "ajv-formats": "^3.0.1",
40
+ "autoprefixer": "^10.4.21",
41
+ "cbor-x": "^1.6.0",
42
+ "generate-schema": "^2.6.0",
43
+ "jotai": "^2.7.0",
44
+ "jotai-tanstack-query": "^0.8.5",
45
+ "js-yaml": "^4.1.0",
46
+ "lodash.set": "^4.3.2",
47
+ "postcss": "^8.5.3",
48
+ "react": "^18.0.0",
49
+ "react-dom": "^18.0.0",
50
+ "react-error-boundary": "^5.0.0",
51
+ "react-markdown": "^10.1.0",
52
+ "react-media": "^1.10.0",
53
+ "react-router-dom": "^7.2.0",
54
+ "rimraf": "^6.0.1",
55
+ "rollup": "^4.34.8",
56
+ "rollup-plugin-dts": "^6.1.1",
57
+ "rollup-plugin-polyfill-node": "^0.13.0",
58
+ "to-json-schema": "^0.2.5",
59
+ "typescript": "^5.2.2"
60
+ },
61
+ "scripts": {
62
+ "start": "set PORT=3080 && vite",
63
+ "build": "vite build && npx typedoc src/library.ts --out dist/docs",
64
+ "serve": "vite preview",
65
+ "test": "vitest",
66
+ "clean": "rimraf library",
67
+ "rollup": "rollup -c",
68
+ "prepublishOnly": "npm run clean && rollup -c"
69
+ },
70
+ "eslintConfig": {
71
+ "extends": [
72
+ "react-app",
73
+ "react-app/jest"
74
+ ],
75
+ "overrides": [
76
+ {
77
+ "files": [
78
+ "**/*.stories.*"
79
+ ],
80
+ "rules": {
81
+ "import/no-anonymous-default-export": "off"
82
+ }
83
+ }
84
+ ]
85
+ },
86
+ "browserslist": {
87
+ "production": [
88
+ ">0.2%",
89
+ "not dead",
90
+ "not op_mini all",
91
+ "not safari < 10",
92
+ "not chrome < 51",
93
+ "not android < 5",
94
+ "not ie < 12"
95
+ ],
96
+ "development": [
97
+ "last 1 chrome version",
98
+ "last 1 firefox version",
99
+ "last 1 safari version"
100
+ ]
101
+ },
102
+ "devDependencies": {
103
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
104
+ "@testing-library/jest-dom": "^6.6.3",
105
+ "@testing-library/react": "^16.3.0",
106
+ "@types/js-yaml": "^4.0.9",
107
+ "@types/lodash": "^4.17.12",
108
+ "@types/rison": "^0.1.0",
109
+ "@types/to-json-schema": "^0.2.4",
110
+ "@typescript-eslint/eslint-plugin": "^6.8.0",
111
+ "@typescript-eslint/parser": "^6.8.0",
112
+ "@vitejs/plugin-react": "^4.3.4",
113
+ "@vitest/coverage-v8": "^3.1.1",
114
+ "babel-plugin-named-exports-order": "^0.0.2",
115
+ "eslint": "^8.51.0",
116
+ "eslint-config-standard-with-typescript": "^39.1.1",
117
+ "eslint-plugin-import": "^2.28.1",
118
+ "eslint-plugin-n": "^16.2.0",
119
+ "eslint-plugin-promise": "^6.1.1",
120
+ "eslint-plugin-react": "^7.33.2",
121
+ "eslint-plugin-react-hooks": "^5.2.0",
122
+ "jsdom": "^26.0.0",
123
+ "tailwindcss": "^3.3.3",
124
+ "ts-node": "^10.9.1",
125
+ "typedoc": "^0.27.7",
126
+ "vite": "^6.2.2",
127
+ "vitest": "^3.1.1",
128
+ "web-vitals": "^2.1.4",
129
+ "webpack": "^5.88.2"
130
+ }
131
+ }
@@ -1,162 +0,0 @@
1
- import { set, get } from 'lodash';
2
-
3
- var getChildFields = function (field) {
4
- var _a;
5
- return (_a = field === null || field === void 0 ? void 0 : field.fields) !== null && _a !== void 0 ? _a : [];
6
- };
7
- var addFieldPath = function (field, parentPath) {
8
- if (field.type === 'object' && field.skip_path === true) {
9
- field.path = parentPath !== undefined ? parentPath.slice() : [];
10
- field.level = parentPath !== undefined ? parentPath.length : 0;
11
- }
12
- else {
13
- var newSegment = field; // `${field.id}${field.multiple === true ? '[]' : ''}`
14
- field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment];
15
- field.level = parentPath !== undefined ? parentPath.length + 1 : 1;
16
- }
17
- if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {
18
- field.fields = field.fields.map(function (childField) {
19
- var _a;
20
- return addFieldPath(childField, (_a = field.path) === null || _a === void 0 ? void 0 : _a.slice());
21
- });
22
- }
23
- return field;
24
- };
25
- var getUniqueFormFields = function (form) {
26
- var _a;
27
- var fieldMap = Object.fromEntries(((_a = form === null || form === void 0 ? void 0 : form.fields) !== null && _a !== void 0 ? _a : []).map(function (f) { return [f.id, f]; }));
28
- return Object.values(fieldMap);
29
- };
30
- var getFields = function (fields) {
31
- if (fields === undefined) {
32
- return [];
33
- }
34
- var all = fields.map(function (field) {
35
- var fields = [field];
36
- var children = getChildFields(field);
37
- children.forEach(function (c) {
38
- fields = fields.concat(getFields([c]));
39
- });
40
- return fields;
41
- }).flat(Infinity);
42
- return all;
43
- };
44
- function addPathsToFormSections(section) {
45
- if (section.pages !== undefined) {
46
- section.pages = section.pages.map(function (page) {
47
- return addPathsToFormSections(page);
48
- });
49
- }
50
- if (section.wizard_steps !== undefined) {
51
- section.wizard_steps = section.wizard_steps.map(function (wizardStep) {
52
- return addPathsToFormSections(wizardStep);
53
- });
54
- }
55
- if (section.fields !== undefined) {
56
- section.fields = section.fields.map(function (field) {
57
- return addFieldPath(field);
58
- });
59
- }
60
- return section;
61
- }
62
- function copyAndAddPathToFields(formOrContainer) {
63
- var form = addPathsToFormSections(structuredClone(formOrContainer));
64
- return form;
65
- }
66
- function getValueFromPath(path, formValues) {
67
- return get(formValues, path);
68
- }
69
- function getFieldValue(field, formValues) {
70
- var path = makeJsonPath(field);
71
- var val = getValueFromPath(path, formValues); // formValues[field.id]
72
- return val;
73
- }
74
- function getPathFromField(field) {
75
- // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)
76
- return field.path !== undefined ? field.path.filter(function (f) { return !(f.type === 'object' && f.skip_path === true); }).map(function (f) { return f.id; }).join('.') : field.id;
77
- }
78
- // THIS DOESN'T HANDLE NESTED YET
79
- var checkCondition = function (field, formValues) {
80
- if (field.conditions !== undefined) {
81
- var dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn];
82
- var val_1 = field.conditions.value;
83
- var check = dependsOn.every(function (d) {
84
- var fieldValue = getValueFromPath(d, formValues);
85
- return val_1 !== undefined
86
- ? fieldValue === val_1
87
- : fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '';
88
- });
89
- return check;
90
- }
91
- return true;
92
- };
93
- function getFieldsFromFormSection(formSection) {
94
- var _a, _b, _c;
95
- var pageFields = (_a = formSection === null || formSection === void 0 ? void 0 : formSection.pages) === null || _a === void 0 ? void 0 : _a.map(function (p) { return getFieldsFromFormSection(p); }).flat(1);
96
- var wizardFields = (_b = formSection === null || formSection === void 0 ? void 0 : formSection.wizard_steps) === null || _b === void 0 ? void 0 : _b.map(function (p) { return getFieldsFromFormSection(p); }).flat(1);
97
- var fields = getFields(((_c = formSection === null || formSection === void 0 ? void 0 : formSection.fields) !== null && _c !== void 0 ? _c : [])).concat(pageFields !== null && pageFields !== void 0 ? pageFields : []).concat(wizardFields !== null && wizardFields !== void 0 ? wizardFields : []);
98
- return fields;
99
- }
100
- function cleanUnusedDependenciesFromFormValues(form, formValues) {
101
- var fields = getFieldsFromFormSection(form);
102
- Object.keys(formValues).forEach(function (key) {
103
- var field = fields === null || fields === void 0 ? void 0 : fields.find(function (f) { return f.id === key; });
104
- if (field !== undefined && !checkCondition(field, formValues)) {
105
- formValues[key] = undefined;
106
- }
107
- });
108
- var fieldIds = fields.map(function (f) { return f.id; });
109
- var newFormValues = Object.fromEntries(Object.entries(formValues).filter(function (_a) {
110
- var key = _a[0];
111
- return fieldIds.includes(key);
112
- }));
113
- return newFormValues;
114
- }
115
- function updateFormValuesWithFieldValueInPlace(field, newValue, formValues) {
116
- var fieldPath = getPathFromField(field);
117
- set(formValues, fieldPath, newValue);
118
- }
119
- function updateFormValuesWithFieldValue(field, newValue, formValues) {
120
- var formValuesCopy = structuredClone(formValues);
121
- updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy);
122
- return formValuesCopy;
123
- }
124
- var makeJsonPath = function (field, index) {
125
- if (index === void 0) { index = 0; }
126
- if (field.path === undefined) {
127
- return field.id;
128
- }
129
- else {
130
- return field.path.map(function (f) { return f.multiple ? "".concat(f.id, "[").concat(index, "]") : f.id; }).join('.');
131
- }
132
- };
133
- var testField = function (field, formValues) {
134
- var val = getFieldValue(field, formValues);
135
- return val !== undefined && val !== null && val !== '';
136
- };
137
- var calculateSectionStatus = function (sections, formValueState) {
138
- var formValues = formValueState[0];
139
- return Object.fromEntries(sections.map(function (s) {
140
- var fields = getFieldsFromFormSection(s).filter(function (f) { return f.type !== 'object'; });
141
- var total = fields.length;
142
- var completed = fields.filter(function (f) { return testField(f, formValues); }).length;
143
- var required = fields.filter(function (f) { return f.required; });
144
- var requiredTotal = required.length;
145
- var requiredCompleted = required.filter(function (f) { return testField(f, formValues); }).length;
146
- var valid = requiredTotal === requiredCompleted;
147
- return [s.id, { completed: completed, total: total, requiredTotal: requiredTotal, requiredCompleted: requiredCompleted, valid: valid }];
148
- }));
149
- };
150
- var assignDefaultValuesToFormValues = function (form, formValues) {
151
- var formValuesCopy = structuredClone(formValues);
152
- var formWithPaths = copyAndAddPathToFields(form);
153
- getFieldsFromFormSection(formWithPaths).forEach(function (field) {
154
- if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {
155
- updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy);
156
- }
157
- });
158
- return formValuesCopy;
159
- };
160
-
161
- export { addFieldPath, assignDefaultValuesToFormValues, calculateSectionStatus, checkCondition, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getUniqueFormFields, makeJsonPath, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace };
162
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../src/Form/helpers.ts"],"sourcesContent":["import { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IForm, type IFormField, type IValueType, type IFormValues, type IFormSection, type IFormValueState, type IPage, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\nimport { get, set } from 'lodash'\n\nexport const getChildFields = (field: { id: string, fields?: IFormField[] }): IFormField[] => {\n return field?.fields ?? []\n}\n\nexport const addFieldPath = (field: IFormField, parentPath?: IFormField[]): IFormField => {\n if (field.type === 'object' && field.skip_path === true) {\n field.path = parentPath !== undefined ? parentPath.slice() : []\n field.level = parentPath !== undefined ? parentPath.length : 0\n } else {\n const newSegment = field // `${field.id}${field.multiple === true ? '[]' : ''}`\n field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment]\n field.level = parentPath !== undefined ? parentPath.length + 1 : 1\n }\n if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {\n field.fields = field.fields.map(childField => {\n return addFieldPath(childField, field.path?.slice())\n })\n }\n return field\n}\n\nexport const getUniqueFormFields = (form: IForm): IFormField[] => {\n const fieldMap = Object.fromEntries((form?.fields ?? []).map(f => [f.id, f]))\n return Object.values(fieldMap)\n}\n\nexport const getFields = (fields?: Array<{ id: string, fields?: IFormField[] }>): IFormField[] => {\n if (fields === undefined) {\n return []\n }\n const all = fields.map(field => {\n let fields = [field]\n const children = getChildFields(field)\n children.forEach(c => {\n fields = fields.concat(getFields([c]))\n })\n return fields\n }).flat(Infinity) as IFormField[]\n return all\n}\n\nfunction addPathsToFormSections (section: IFormSection): IFormSection {\n if (section.pages !== undefined) {\n section.pages = section.pages.map(page => {\n return addPathsToFormSections(page)\n }) as IPage[]\n }\n if (section.wizard_steps !== undefined) {\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\n return addPathsToFormSections(wizardStep)\n }) as IWizardStep[]\n }\n if (section.fields !== undefined) {\n section.fields = section.fields.map(field => {\n return addFieldPath(field)\n })\n }\n return section\n}\n\nexport function copyAndAddPathToFields (formOrContainer: IForm): IForm {\n const form = addPathsToFormSections(structuredClone(formOrContainer)) as IForm\n return form\n}\n\nfunction getValueFromPath (path: string, formValues: IFormValues): IValueType | IValueType[] | undefined {\n return get(formValues, path)\n}\n\nexport function getFieldValue (field: IFormField, formValues: IFormValues): IValueType | IValueType[] | undefined {\n const path = makeJsonPath(field)\n const val = getValueFromPath(path, formValues) // formValues[field.id]\n return val\n}\n\nexport function getPathFromField (field: IFormField): string {\n // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)\n return field.path !== undefined ? field.path.filter(f => !(f.type === 'object' && f.skip_path === true)).map(f => f.id).join('.') : field.id\n}\n\n// THIS DOESN'T HANDLE NESTED YET\nexport const checkCondition = (field: IFormField, formValues: IFormValues): boolean => {\n if (field.conditions !== undefined) {\n const dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn]\n\n const val = field.conditions.value\n const check = dependsOn.every(d => {\n const fieldValue = getValueFromPath(d, formValues)\n return val !== undefined\n ? fieldValue === val\n : fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== ''\n })\n return check\n }\n return true\n}\n\nexport function getFieldsFromFormSection (formSection: IFormSection): IFormField[] {\n const pageFields = formSection?.pages?.map(p => getFieldsFromFormSection(p)).flat(1)\n const wizardFields = formSection?.wizard_steps?.map(p => getFieldsFromFormSection(p)).flat(1)\n const fields = getFields((formSection?.fields ?? [])).concat(pageFields ?? []).concat(wizardFields ?? [])\n return fields\n}\n\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\n const fields = getFieldsFromFormSection(form)\n Object.keys(formValues).forEach(key => {\n const field = fields?.find(f => f.id === key)\n if (field !== undefined && !checkCondition(field, formValues)) {\n formValues[key] = undefined\n }\n })\n const fieldIds = fields.map(f => f.id)\n const newFormValues = Object.fromEntries(Object.entries(formValues).filter(([key]) => fieldIds.includes(key)))\n return newFormValues\n}\n\nexport function updateFormValuesWithFieldValueInPlace (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): void {\n const fieldPath = getPathFromField(field)\n set(formValues, fieldPath, newValue)\n}\n\nexport function updateFormValuesWithFieldValue (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): IFormValues {\n const formValuesCopy = structuredClone(formValues)\n updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy)\n return formValuesCopy\n}\n\nexport const makeJsonPath = (field: IFormField, index: number = 0): string => {\n if (field.path === undefined) {\n return field.id\n } else {\n return field.path.map(f => f.multiple ? `${f.id}[${index}]` : f.id).join('.')\n }\n}\n\nconst testField = (field: IFormField, formValues: IFormValues): boolean => {\n const val = getFieldValue(field, formValues)\n return val !== undefined && val !== null && val !== ''\n}\n\nexport const calculateSectionStatus = (sections: IFormSection[], formValueState: IFormValueState): IFormSectionStatus => {\n const [formValues] = formValueState\n return Object.fromEntries(sections.map(s => {\n const fields = getFieldsFromFormSection(s).filter(f => f.type !== 'object')\n const total = fields.length\n const completed = fields.filter(f => testField(f, formValues)).length\n const required = fields.filter(f => f.required)\n const requiredTotal = required.length\n const requiredCompleted = required.filter(f => testField(f, formValues)).length\n const valid = requiredTotal === requiredCompleted\n return [s.id, { completed, total, requiredTotal, requiredCompleted, valid }]\n }))\n}\n\nexport const assignDefaultValuesToFormValues = (form: IForm, formValues: IFormValues): IFormValues => {\n const formValuesCopy = structuredClone(formValues)\n const formWithPaths = copyAndAddPathToFields(form)\n getFieldsFromFormSection(formWithPaths).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\n }\n })\n return formValuesCopy\n}\n"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- function resolveRefs(schema, root) {
2
- if (root === void 0) { root = schema; }
3
- if (typeof schema !== 'object' || schema === null)
4
- return schema;
5
- if (schema.$ref) {
6
- var refPath = schema.$ref.replace('#/', '').split('/');
7
- var refValue = root;
8
- for (var _i = 0, refPath_1 = refPath; _i < refPath_1.length; _i++) {
9
- var key = refPath_1[_i];
10
- refValue = refValue[key];
11
- if (!refValue)
12
- throw new Error("Invalid reference: ".concat(schema.$ref));
13
- }
14
- return resolveRefs(refValue, root); // Recursively resolve
15
- }
16
- if (Array.isArray(schema)) {
17
- return schema.map(function (item) { return resolveRefs(item, root); });
18
- }
19
- return Object.fromEntries(Object.entries(schema).map(function (_a) {
20
- var key = _a[0], value = _a[1];
21
- return [key, resolveRefs(value, root)];
22
- }));
23
- }
24
-
25
- export { resolveRefs };
26
- //# sourceMappingURL=resolveRefs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveRefs.js","sources":["../../../../src/Form/resolveRefs.ts"],"sourcesContent":["import { type JSONSchema6 } from 'json-schema'\n\nexport function resolveRefs<T extends JSONSchema6> (schema: T, root: JSONSchema6 = schema): T {\n if (typeof schema !== 'object' || schema === null) return schema\n\n if (schema.$ref) {\n const refPath = schema.$ref.replace('#/', '').split('/')\n let refValue: any = root\n\n for (const key of refPath) {\n refValue = refValue[key]\n if (!refValue) throw new Error(`Invalid reference: ${schema.$ref}`)\n }\n return resolveRefs(refValue, root) as T // Recursively resolve\n }\n\n if (Array.isArray(schema)) {\n return schema.map((item) => resolveRefs(item, root)) as unknown as T\n }\n\n return Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [key, resolveRefs(value, root)])\n ) as T\n}\n"],"names":[],"mappings":"AAEgB,SAAA,WAAW,CAAyB,MAAS,EAAE,IAA0B,EAAA;AAA1B,IAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAA0B,GAAA,MAAA,CAAA;AACvF,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;AAAE,QAAA,OAAO,MAAM;AAEhE,IAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACf,QAAA,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACxD,IAAI,QAAQ,GAAQ,IAAI;QAExB,KAAkB,IAAA,EAAA,GAAA,CAAO,EAAP,SAAO,GAAA,OAAA,EAAP,qBAAO,EAAP,EAAA,EAAO,EAAE;AAAtB,YAAA,IAAM,GAAG,GAAA,SAAA,CAAA,EAAA,CAAA;AACZ,YAAA,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAA,CAAA,MAAA,CAAsB,MAAM,CAAC,IAAI,CAAE,CAAC;;QAErE,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAM,CAAA;;AAGzC,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAvB,EAAuB,CAAiB;;AAGtE,IAAA,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,EAAY,EAAA;YAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA;QAAM,OAAA,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAAA,CAAC,CACzE;AACR;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaToFormHelpers.js","sources":["../../../../src/Form/schemaToFormHelpers.ts"],"sourcesContent":["import { type IFormOverride, type IForm, type IFormField, type IFormFieldType, type IFormValues, type IFormFieldOverride, type IFormSectionOverride, type IPage, type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\nimport Ajv, { type ValidateFunction } from 'ajv'\nimport addFormats from 'ajv-formats'\n\nimport { type JSONSchema6Type, type JSONSchema6Definition, type JSONSchema6 } from 'json-schema'\n\nimport metaSchemaDraftV7 from 'ajv/lib/refs/json-schema-draft-07.json'\nimport metaSchemaDraftV6 from 'ajv/lib/refs/json-schema-draft-06.json'\nimport metaSchemaV5 from 'ajv/lib/refs/json-schema-2020-12/schema.json'\nimport metaSchemaV4 from 'ajv/lib/refs/json-schema-2019-09/schema.json'\n\nimport { resolveRefs } from '@/Form/resolveRefs'\nimport { omit } from 'lodash'\nimport { type ISelectOptionProps } from '@axdspub/axiom-ui-utilities'\nimport { copyAndAddPathToFields, getFieldsFromFormSection, getPathFromField } from '@/Form/helpers'\n\nconst getValidator = (schema: number): ValidateFunction => {\n const ajv = new Ajv({\n strict: false\n })\n addFormats(ajv)\n switch (schema) {\n case 4:\n return ajv.compile(metaSchemaV4)\n case 5:\n return ajv.compile(metaSchemaV5)\n case 6:\n return ajv.compile(metaSchemaDraftV6)\n case 7:\n return ajv.compile(metaSchemaDraftV7)\n default:\n return ajv.compile(metaSchemaV5)\n }\n}\n\nexport const validateSchema = (schemaOb: unknown, version: number = 6): { schema?: JSONSchema6, error?: string, unrefed?: JSONSchema6 } => {\n const ajv = new Ajv({ strict: false })\n addFormats(ajv)\n const validator = getValidator(version)\n const valid = validator(schemaOb)\n if (!valid) {\n return { error: ajv.errorsText(validator.errors) }\n }\n // const v = ajv.compile<JSONSchema6>(schemaOb as JSONSchema6)\n /* registerSchema(schemaOb as SchemaObject, 'https://axds.co/test')\n const bundledSchema = await bundle('https://axds.co/test')\n return { schema: bundledSchema as JSONSchema6 } */\n\n const resolved = resolveRefs(structuredClone(schemaOb) as JSONSchema6)\n return { schema: resolved, unrefed: schemaOb as JSONSchema6 }\n}\n\nexport const validateAgainstSchema = (schema: JSONSchema6, formValues: IFormValues): string[] | undefined => {\n const validSchema = validateSchema(schema)\n if (validSchema.error !== undefined) {\n return [validSchema.error]\n }\n const ajv = new Ajv({ strict: false, allErrors: true })\n addFormats(ajv)\n const validator = ajv.compile(schema)\n const valid = validator(formValues)\n if (validator.errors !== null && validator.errors !== undefined && !valid) {\n return validator.errors.map(e => {\n return `${e.instancePath} ${e.message}`\n })\n }\n return undefined\n}\n\nconst makeRandom = (): string => {\n return crypto !== undefined ? crypto.randomUUID() : Math.random().toString(36).substring(2)\n}\n\nconst makeFormFieldId = (options: Array<string | number | undefined | null>): string => {\n const validOptions = options.filter((o) => o !== undefined && o !== null)\n if (validOptions.length === 0) {\n return makeRandom()\n }\n return String(validOptions[0])\n}\n\nconst makeLabel = (options: Array<string | number | undefined | null>): string | undefined => {\n const validOptions = options.filter((o) => o !== undefined && o !== null)\n if (validOptions.length === 0) {\n return undefined\n }\n return String(validOptions[0])\n .replace(/_/g, ' ')\n .split(' ')\n .map((s, i) => {\n return i === 0 ? `${s.charAt(0).toUpperCase()}${s.slice(1)}` : s\n }).join(' ')\n}\n\nconst getFieldType = (schema: JSONSchema6): IFormFieldType => {\n const schemaType = schema.type\n if (schemaType === 'string' || schemaType === 'number' || schemaType === 'integer') {\n if (schema.enum !== undefined || schema.oneOf !== undefined) {\n return 'select'\n } else if (schema.anyOf !== undefined) {\n return 'checkbox'\n } else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength <= 100)) {\n return 'text'\n } else if (schemaType === 'number' || schemaType === 'integer') {\n return 'number'\n } else if (schema.format === 'date-time') {\n return 'datetime'\n } else if (schema.format === 'date') {\n return 'date'\n } else if (schema.format === 'time') {\n return 'time'\n }\n return 'long_text'\n } else if (schemaType === 'boolean') {\n return 'boolean'\n } else if (schemaType === 'object' || (schemaType === undefined && (schema.oneOf !== undefined || schema.anyOf !== undefined || schema.allOf !== undefined))) {\n return 'object'\n }\n if (!schemaType && (schema.anyOf !== undefined || schema.enum !== undefined)) {\n return 'object'\n }\n\n return 'text'\n}\n\nexport const getValueFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | number | boolean | undefined => {\n if (schema === undefined || schema === null) {\n return undefined\n }\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\n return schema\n }\n if (Array.isArray(schema)) {\n if (schema.length > 0) {\n return getValueFromSchema(schema[0])\n }\n return undefined\n }\n if (schema.const !== undefined) {\n return String(schema.const)\n }\n return undefined\n}\n\nexport const getLabelFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | undefined => {\n if (schema === undefined || schema === null) {\n return undefined\n }\n if (typeof schema === 'boolean') {\n return schema ? 'true' : 'false'\n }\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\n return String(schema)\n }\n if (Array.isArray(schema)) {\n if (schema.length > 0) {\n return getLabelFromSchema(schema[0])\n }\n return undefined\n }\n if (schema.title !== undefined && schema.title !== null) {\n return getLabelFromSchema(schema.title)\n }\n return String(getValueFromSchema(schema))\n}\n\ninterface ISchemaToFormFieldProps {\n schema: JSONSchema6\n property: string\n schemaField: JSONSchema6\n multiple?: boolean\n path?: string[]\n}\n\nconst schemaToFormField = ({\n schema,\n property,\n schemaField,\n multiple,\n path = []\n}: ISchemaToFormFieldProps): IFormField => {\n path.push(property)\n if (schemaField === undefined) {\n return {\n id: makeFormFieldId([schema.$id, property]),\n label: property,\n type: 'text',\n multiple\n }\n }\n if (typeof schemaField === 'boolean') {\n return {\n id: makeFormFieldId([schema.$id, property]),\n label: property,\n type: 'boolean',\n multiple\n }\n }\n if (schemaField.type === 'array' && schemaField.items !== undefined) {\n return schemaToFormField({\n schema: schemaField,\n property,\n schemaField: schemaField.items as JSONSchema6,\n multiple: true,\n path: path.slice()\n })\n }\n if (schemaField.anyOf !== undefined && schemaField.anyOf.length === 2 && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type === 'null').length === 1) {\n const notNull = schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null')[0]\n return schemaToFormField({\n schema: schemaField,\n property,\n schemaField: { ...omit(schemaField, 'anyOf'), ...(typeof notNull !== 'boolean' ? notNull : {}) },\n multiple,\n path: path.slice()\n })\n }\n const type = getFieldType(schemaField)\n const id = makeFormFieldId([\n schemaField.$id,\n property,\n schemaField.title?.toLowerCase().replace(' ', '-')\n ])\n const label = makeLabel([\n schemaField.title,\n property\n ])\n const schemaRequired = schema.required ?? []\n const ob: Pick<IFormField, 'id' | 'label' | 'description' | 'multiple' | 'required'> = {\n id,\n label,\n description: schemaField.description,\n multiple,\n required: schemaRequired.includes(property) ?? false\n }\n if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {\n return {\n ...ob,\n type\n }\n }\n\n if (type === 'select' || type === 'checkbox') {\n const schemaOptions = schemaField.enum ?? schemaField.oneOf ?? schemaField.anyOf ?? []\n const options = schemaOptions.map(e => {\n const value = getValueFromSchema(e)\n const label = getLabelFromSchema(e)\n return value !== undefined\n ? {\n value: String(value),\n label: label ?? String(value)\n }\n : null\n }).filter(d => d !== null)\n return {\n ...ob,\n type,\n options\n }\n }\n if (type === 'object') {\n // const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0\n const properties = schemaField.properties ?? {}\n const fields: IFormField[] = []\n for (const key in properties) {\n if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {\n fields.push(schemaToFormField({\n schema: schemaField,\n property: key,\n schemaField: properties[key],\n path: path.slice()\n }))\n }\n }\n\n if (schemaField.oneOf !== undefined) {\n const oneOfFields: IFormField[] = []\n const options: ISelectOptionProps[] = []\n const selectorField = `select_${property}`\n schemaField.oneOf.forEach((f, i) => {\n if (typeof f !== 'boolean') {\n let value = f.$id ?? f.title\n if ((schemaField as any).discriminator?.propertyName !== undefined) {\n const v = getValueFromSchema(f?.properties?.[(schemaField as any).discriminator?.propertyName])\n if (v !== null && v !== undefined && typeof v !== 'boolean') {\n value = String(v)\n }\n }\n if (value === undefined || value === null) {\n value = `${property}_${i}`\n }\n options.push({\n label: f.title ?? f.$id ?? `${property} option ${String(i + 1)}`,\n value\n })\n const oneOfield = schemaToFormField({\n schema: schemaField,\n property: value,\n schemaField: f,\n path: path.slice()\n })\n oneOfield.conditions = {\n dependsOn: `${path.join('.')}.${selectorField}`,\n value\n }\n oneOfFields.push(oneOfield)\n }\n })\n fields.push({\n id: selectorField,\n type: 'select',\n label: schemaField.title,\n options\n })\n oneOfFields.forEach(f => {\n fields.push(f)\n })\n }\n\n const ofArr = (schemaField.anyOf ?? []).concat(schemaField.allOf ?? [])\n ofArr.forEach((anyOf) => {\n const anyOfId = schemaField.$id\n if (typeof anyOf !== 'boolean' && anyOf.type !== 'null') {\n const field = schemaToFormField({\n schema: schemaField,\n property: anyOfId ?? makeRandom(),\n schemaField: typeof anyOf === 'boolean'\n ? anyOf\n : {\n title: anyOf.title ?? '',\n ...anyOf\n },\n path: path.slice()\n })\n if (anyOfId === undefined && field.type === 'object') {\n field.skip_path = true\n }\n fields.push(field)\n }\n })\n\n return {\n ...ob,\n type,\n fields,\n multiple\n }\n }\n\n return {\n id,\n type: 'text',\n multiple\n }\n}\n\nexport function mergeObjects<T extends Record<string, any>> (objects: T[]): T {\n const initialValue: T = {} as unknown as T\n return objects.reduce<T>((acc, obj) => ({ ...acc, ...obj }), initialValue)\n}\n\nconst mergeFormFields = ({\n fieldOverrides,\n schemaForm,\n formFieldsOverrideMap\n}: {\n fieldOverrides?: IFormFieldOverride[]\n schemaForm: IForm\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\n}): IFormField[] => {\n const schemaFormObject = buildFormObject(schemaForm)\n return (fieldOverrides ?? []).map(field => {\n const schemaField = schemaFormObject[field.prop]\n const pageField = {\n ...mergeObjects<IFormFieldOverride | IFormField>([\n schemaField,\n mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[field.prop] ?? {})),\n field\n ])\n }\n const id = pageField.id ?? makeFormFieldId([pageField.id])\n return {\n type: pageField.type ?? 'text',\n id,\n label: pageField.label ?? makeLabel([id]) ?? 'Default',\n ...pageField\n }\n }) as IFormField[]\n}\n\nconst mergeFormSections = ({\n sectionOverrides,\n schemaForm,\n formFieldsOverrideMap\n\n}: {\n sectionOverrides?: IFormSectionOverride[]\n schemaForm: IForm\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\n\n}): IFormSection[] => {\n const sections = (sectionOverrides ?? []).map((sectionToMerge, index) => {\n const sectionFields = mergeFormFields({\n fieldOverrides: sectionToMerge.fields,\n schemaForm,\n formFieldsOverrideMap\n })\n const sectionId = sectionToMerge.id ?? makeFormFieldId([sectionToMerge.id, index])\n return {\n id: sectionId ?? makeFormFieldId([sectionId, index]),\n label: sectionToMerge.label ?? makeLabel([sectionId]),\n ...sectionToMerge,\n fields: sectionToMerge.fields !== undefined\n ? sectionFields\n : undefined,\n wizard_steps: sectionToMerge.wizard_steps !== undefined\n ? mergeFormSections({\n sectionOverrides: sectionToMerge.wizard_steps,\n schemaForm,\n formFieldsOverrideMap\n })\n : undefined,\n pages: sectionToMerge.pages !== undefined\n ? mergeFormSections({\n sectionOverrides: sectionToMerge.pages,\n schemaForm,\n formFieldsOverrideMap\n })\n : undefined\n }\n })\n return sections as IFormSection[]\n}\n\nexport const overridesAndSchemaToFormObject = ({\n formOverrides,\n formFieldOverrides,\n schema\n}: {\n formOverrides?: IFormOverride[]\n formFieldOverrides?: IFormFieldOverride[][]\n schema: JSONSchema6\n}): IForm => {\n const schemaForm = schemaToFormObject(schema)\n const form: IForm = {\n id: schemaForm.id,\n label: schemaForm.label\n }\n const mergedFormOverrides = mergeObjects<IFormOverride>(formOverrides ?? [])\n const formFieldsByProp = formFieldOverrides?.map(overrides => Object.fromEntries(overrides.map(override => [override.prop, override]))) ?? []\n\n form.pages = mergedFormOverrides.pages !== undefined\n ? mergeFormSections({\n sectionOverrides: mergedFormOverrides.pages,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n }) as IPage[]\n : undefined\n form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined\n ? mergeFormSections({\n sectionOverrides: mergedFormOverrides.wizard_steps,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n }) as IWizardStep[]\n : undefined\n\n form.fields = mergedFormOverrides.fields !== undefined\n ? mergeFormFields({\n fieldOverrides: mergedFormOverrides.fields,\n schemaForm,\n formFieldsOverrideMap: formFieldsByProp\n })\n : undefined\n\n return form\n}\n\nexport const schemaToFormObject = (schema: JSONSchema6): IForm => {\n const formFields: IFormField[] = []\n for (const key in schema.properties) {\n if (schema.properties[key] !== undefined && typeof schema.properties[key] !== 'boolean') {\n formFields.push(schemaToFormField({\n schema,\n property: key,\n schemaField: schema.properties[key],\n path: []\n }))\n }\n }\n return {\n id: makeFormFieldId([schema.$id, schema.title?.toLowerCase().replace(' ', '-')]),\n label: schema.title ?? 'Untitled',\n fields: formFields\n }\n}\n\nexport const buildFormObject = (form: IForm): Record<string, IFormField> => {\n const formCopy = copyAndAddPathToFields(form)\n const fields = getFieldsFromFormSection(formCopy)\n return Object.fromEntries(fields.map(field => [getPathFromField(field), field]))\n}\n\nexport const getSchemaPaths = (schema: any, prefix = ''): string[] => {\n let paths: string[] = []\n\n if (schema.type === 'object' && schema.properties) {\n for (const key of Object.keys(schema.properties)) {\n const newPrefix = prefix ? `${prefix}.${key}` : key\n paths.push(newPrefix)\n paths = paths.concat(getSchemaPaths(schema.properties[key], newPrefix))\n }\n } else if (schema.type === 'array' && schema.items) {\n const arrayPrefix = `${prefix}[]`\n paths.push(arrayPrefix)\n paths = paths.concat(getSchemaPaths(schema.items, arrayPrefix))\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\n if (subSchema.properties) {\n paths = paths.concat(getSchemaPaths(subSchema, prefix))\n }\n }\n }\n\n return paths\n}\n"],"names":[],"mappings":"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"}