@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
@@ -7,7 +7,8 @@ import metaSchemaV5 from '../../node_modules/ajv/lib/refs/json-schema-2020-12/sc
7
7
  import metaSchemaV4 from '../../node_modules/ajv/lib/refs/json-schema-2019-09/schema.json.js';
8
8
  import { resolveRefs } from './resolveRefs.js';
9
9
  import { omit } from 'lodash';
10
- import { copyAndAddPathToFields, getFieldsFromFormSection, getPathFromField } from './helpers.js';
10
+ import { getFieldsFromFormSection, getPathFromField, makeJsonPath } from './getters.js';
11
+ import { copyAndAddPathToFields } from './manipulators.js';
11
12
 
12
13
  var getValidator = function (schema) {
13
14
  var ajv = new Ajv({
@@ -75,7 +76,7 @@ var makeLabel = function (options) {
75
76
  return undefined;
76
77
  }
77
78
  return String(validOptions[0])
78
- .replace(/_/g, ' ')
79
+ .replace(/_|-/g, ' ')
79
80
  .split(' ')
80
81
  .map(function (s, i) {
81
82
  return i === 0 ? "".concat(s.charAt(0).toUpperCase()).concat(s.slice(1)) : s;
@@ -134,6 +135,18 @@ var getValueFromSchema = function (schema) {
134
135
  if (schema.const !== undefined) {
135
136
  return String(schema.const);
136
137
  }
138
+ if (schema.title !== undefined && schema.title !== null) {
139
+ return getValueFromSchema(schema.title);
140
+ }
141
+ if (schema.$id !== undefined && schema.$id !== null) {
142
+ if (typeof schema.$id === 'string' || typeof schema.$id === 'number') {
143
+ return makeLabel([String(schema.$id)]);
144
+ }
145
+ return getValueFromSchema(schema.$id);
146
+ }
147
+ if (Array.isArray(schema) && schema.length === 2) {
148
+ return typeof schema[0] === 'object' && schema[0] !== null ? getValueFromSchema(schema[0]) : schema[0];
149
+ }
137
150
  return undefined;
138
151
  };
139
152
  var getLabelFromSchema = function (schema) {
@@ -155,11 +168,14 @@ var getLabelFromSchema = function (schema) {
155
168
  if (schema.title !== undefined && schema.title !== null) {
156
169
  return getLabelFromSchema(schema.title);
157
170
  }
171
+ if (Array.isArray(schema) && schema.length === 2) {
172
+ return typeof schema[1] === 'object' && schema[1] !== null ? getLabelFromSchema(schema[1]) : schema[1];
173
+ }
158
174
  return String(getValueFromSchema(schema));
159
175
  };
160
176
  var schemaToFormField = function (_a) {
161
- var _b, _c, _d, _e, _f, _g, _h, _j, _k;
162
- var schema = _a.schema, property = _a.property, schemaField = _a.schemaField, multiple = _a.multiple, _l = _a.path, path = _l === void 0 ? [] : _l;
177
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
178
+ var schema = _a.schema, property = _a.property, schemaField = _a.schemaField, multiple = _a.multiple, _m = _a.path, path = _m === void 0 ? [] : _m;
163
179
  path.push(property);
164
180
  if (schemaField === undefined) {
165
181
  return {
@@ -212,13 +228,25 @@ var schemaToFormField = function (_a) {
212
228
  label: label,
213
229
  description: schemaField.description,
214
230
  multiple: multiple,
231
+ defaultValue: schemaField.default !== undefined ? schemaField.default : undefined,
215
232
  required: (_d = schemaRequired.includes(property)) !== null && _d !== void 0 ? _d : false
216
233
  };
217
234
  if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {
235
+ if (type === 'number' && (schemaField.minimum !== undefined || schemaField.maximum !== undefined)) {
236
+ var numberOb = ob;
237
+ numberOb.constraints = (_e = numberOb.constraints) !== null && _e !== void 0 ? _e : {};
238
+ if (schemaField.minimum !== undefined) {
239
+ numberOb.constraints.min = schemaField.minimum;
240
+ }
241
+ if (schemaField.maximum !== undefined) {
242
+ numberOb.constraints.max = schemaField.maximum;
243
+ }
244
+ return __assign(__assign({}, numberOb), { type: type });
245
+ }
218
246
  return __assign(__assign({}, ob), { type: type });
219
247
  }
220
248
  if (type === 'select' || type === 'checkbox') {
221
- var schemaOptions = (_g = (_f = (_e = schemaField.enum) !== null && _e !== void 0 ? _e : schemaField.oneOf) !== null && _f !== void 0 ? _f : schemaField.anyOf) !== null && _g !== void 0 ? _g : [];
249
+ var schemaOptions = (_h = (_g = (_f = schemaField.enum) !== null && _f !== void 0 ? _f : schemaField.oneOf) !== null && _g !== void 0 ? _g : schemaField.anyOf) !== null && _h !== void 0 ? _h : [];
222
250
  var options = schemaOptions.map(function (e) {
223
251
  var value = getValueFromSchema(e);
224
252
  var label = getLabelFromSchema(e);
@@ -233,7 +261,7 @@ var schemaToFormField = function (_a) {
233
261
  }
234
262
  if (type === 'object') {
235
263
  // const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0
236
- var properties = (_h = schemaField.properties) !== null && _h !== void 0 ? _h : {};
264
+ var properties = (_j = schemaField.properties) !== null && _j !== void 0 ? _j : {};
237
265
  var fields_1 = [];
238
266
  for (var key in properties) {
239
267
  if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {
@@ -289,7 +317,7 @@ var schemaToFormField = function (_a) {
289
317
  fields_1.push(f);
290
318
  });
291
319
  }
292
- var ofArr = ((_j = schemaField.anyOf) !== null && _j !== void 0 ? _j : []).concat((_k = schemaField.allOf) !== null && _k !== void 0 ? _k : []);
320
+ var ofArr = ((_k = schemaField.anyOf) !== null && _k !== void 0 ? _k : []).concat((_l = schemaField.allOf) !== null && _l !== void 0 ? _l : []);
293
321
  ofArr.forEach(function (anyOf) {
294
322
  var _a;
295
323
  var anyOfId = schemaField.$id;
@@ -320,19 +348,64 @@ function mergeObjects(objects) {
320
348
  var initialValue = {};
321
349
  return objects.reduce(function (acc, obj) { return (__assign(__assign({}, acc), obj)); }, initialValue);
322
350
  }
351
+ var mergeFormField = function (_a) {
352
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
353
+ var field = _a.field, fieldOverride = _a.fieldOverride, formFieldsOverrideMap = _a.formFieldsOverrideMap, schemaFieldMap = _a.schemaFieldMap;
354
+ var path = (_b = fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.prop) !== null && _b !== void 0 ? _b : makeJsonPath(field);
355
+ var formFieldOverrides = mergeObjects(formFieldsOverrideMap.map(function (overrides) { return overrides[path !== null && path !== void 0 ? path : '']; }).filter(function (d) { return d !== undefined; }));
356
+ var mergedField = __assign({}, mergeObjects([
357
+ __assign(__assign({}, field), { destPath: path }),
358
+ formFieldOverrides,
359
+ (fieldOverride !== null && fieldOverride !== void 0 ? fieldOverride : {})
360
+ ]));
361
+ var labelProp = (_c = mergedField.id) !== null && _c !== void 0 ? _c : (path !== undefined
362
+ ? path.split('.').pop()
363
+ : (_d = fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.prop) !== null && _d !== void 0 ? _d : field.id);
364
+ var id = (_e = mergedField.id) !== null && _e !== void 0 ? _e : makeFormFieldId([mergedField.id]);
365
+ if (mergedField.type === 'object') {
366
+ // attached to the schema field. defaults not overrides
367
+ var fieldFields = (field === null || field === void 0 ? void 0 : field.type) === 'object' ? field.fields : [];
368
+ var fieldFieldsMap_1 = Object.fromEntries(fieldFields.map(function (f) { return [getPathFromField(f), f]; }));
369
+ // attached to the field override. overrides
370
+ var overrideFields = (fieldOverride === null || fieldOverride === void 0 ? void 0 : fieldOverride.type) === 'object' ? ((_f = fieldOverride.fields) !== null && _f !== void 0 ? _f : []) : [];
371
+ var overrideFieldsMap_1 = Object.fromEntries(overrideFields
372
+ .filter(function (f) { return 'prop' in f; })
373
+ .map(function (f) { return [f.prop, f]; }));
374
+ // attached to the form override. overrides
375
+ var formOverrideFields = formFieldOverrides.type === 'object' ? (_g = formFieldOverrides.fields) !== null && _g !== void 0 ? _g : [] : [];
376
+ var formOverrideFieldsMap_1 = Object.fromEntries(formOverrideFields
377
+ .filter(function (f) { return 'prop' in f; })
378
+ .map(function (f) { return [f.prop, f]; }));
379
+ var allKeys = Object.keys(__assign(__assign(__assign({}, fieldFieldsMap_1), overrideFieldsMap_1), formOverrideFieldsMap_1));
380
+ mergedField.fields = allKeys.map(function (key) {
381
+ var _a;
382
+ // const fieldOverride = overrideFieldsMap[key] ?? { prop: key }
383
+ var fieldOverride = mergeObjects([
384
+ overrideFieldsMap_1[key],
385
+ formOverrideFieldsMap_1[key],
386
+ mergeObjects(formFieldsOverrideMap.map(function (overrides) { return overrides[key]; }).filter(function (d) { return d !== undefined; }))
387
+ ]);
388
+ return mergeFormField({
389
+ field: (_a = fieldFieldsMap_1[key]) !== null && _a !== void 0 ? _a : schemaFieldMap[key],
390
+ fieldOverride: fieldOverride,
391
+ formFieldsOverrideMap: formFieldsOverrideMap,
392
+ schemaFieldMap: schemaFieldMap
393
+ });
394
+ });
395
+ }
396
+ return __assign({ type: (_h = mergedField.type) !== null && _h !== void 0 ? _h : 'text', id: id, label: (_k = (_j = mergedField.label) !== null && _j !== void 0 ? _j : makeLabel([labelProp])) !== null && _k !== void 0 ? _k : 'Default' }, mergedField);
397
+ };
323
398
  var mergeFormFields = function (_a) {
324
399
  var fieldOverrides = _a.fieldOverrides, schemaForm = _a.schemaForm, formFieldsOverrideMap = _a.formFieldsOverrideMap;
325
- var schemaFormObject = buildFormObject(schemaForm);
326
- return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (field) {
327
- var _a, _b, _c, _d;
328
- var schemaField = schemaFormObject[field.prop];
329
- var pageField = __assign({}, mergeObjects([
330
- schemaField,
331
- mergeObjects(formFieldsOverrideMap.map(function (overrides) { var _a; return (_a = overrides[field.prop]) !== null && _a !== void 0 ? _a : {}; })),
332
- field
333
- ]));
334
- var id = (_a = pageField.id) !== null && _a !== void 0 ? _a : makeFormFieldId([pageField.id]);
335
- return __assign({ type: (_b = pageField.type) !== null && _b !== void 0 ? _b : 'text', id: id, label: (_d = (_c = pageField.label) !== null && _c !== void 0 ? _c : makeLabel([id])) !== null && _d !== void 0 ? _d : 'Default' }, pageField);
400
+ var schemaFieldMap = buildFieldMapFromForm(schemaForm);
401
+ return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (fieldOverride) {
402
+ var schemaField = schemaFieldMap[fieldOverride.prop];
403
+ return mergeFormField({
404
+ field: schemaField,
405
+ fieldOverride: fieldOverride,
406
+ formFieldsOverrideMap: formFieldsOverrideMap,
407
+ schemaFieldMap: schemaFieldMap
408
+ });
336
409
  });
337
410
  };
338
411
  var mergeFormSections = function (_a) {
@@ -364,58 +437,69 @@ var mergeFormSections = function (_a) {
364
437
  return sections;
365
438
  };
366
439
  var overridesAndSchemaToFormObject = function (_a) {
367
- var _b;
440
+ var _b, _c;
368
441
  var formOverrides = _a.formOverrides, formFieldOverrides = _a.formFieldOverrides, schema = _a.schema;
369
442
  var schemaForm = schemaToFormObject(schema);
443
+ var formFieldOverridesByProp = (_b = formFieldOverrides === null || formFieldOverrides === void 0 ? void 0 : formFieldOverrides.map(function (overrides) { return Object.fromEntries(overrides.map(function (override) { return [override.prop, override]; })); })) !== null && _b !== void 0 ? _b : [];
444
+ if (formOverrides === undefined && formFieldOverrides !== undefined) {
445
+ var schemaFieldMap_1 = buildFieldMapFromForm(schemaForm);
446
+ var fields = Object.values(schemaFieldMap_1).map(function (field) {
447
+ return mergeFormField({
448
+ field: field,
449
+ formFieldsOverrideMap: formFieldOverridesByProp,
450
+ schemaFieldMap: schemaFieldMap_1
451
+ });
452
+ });
453
+ return __assign(__assign({}, schemaForm), { fields: fields });
454
+ }
455
+ var mergedFormOverrides = mergeObjects(formOverrides !== null && formOverrides !== void 0 ? formOverrides : []);
370
456
  var form = {
371
457
  id: schemaForm.id,
372
- label: schemaForm.label
458
+ label: (_c = mergedFormOverrides === null || mergedFormOverrides === void 0 ? void 0 : mergedFormOverrides.label) !== null && _c !== void 0 ? _c : schemaForm.label,
459
+ settings: mergedFormOverrides === null || mergedFormOverrides === void 0 ? void 0 : mergedFormOverrides.settings
373
460
  };
374
- var mergedFormOverrides = mergeObjects(formOverrides !== null && formOverrides !== void 0 ? formOverrides : []);
375
- var formFieldsByProp = (_b = formFieldOverrides === null || formFieldOverrides === void 0 ? void 0 : formFieldOverrides.map(function (overrides) { return Object.fromEntries(overrides.map(function (override) { return [override.prop, override]; })); })) !== null && _b !== void 0 ? _b : [];
376
461
  form.pages = mergedFormOverrides.pages !== undefined
377
462
  ? mergeFormSections({
378
463
  sectionOverrides: mergedFormOverrides.pages,
379
464
  schemaForm: schemaForm,
380
- formFieldsOverrideMap: formFieldsByProp
465
+ formFieldsOverrideMap: formFieldOverridesByProp
381
466
  })
382
467
  : undefined;
383
468
  form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined
384
469
  ? mergeFormSections({
385
470
  sectionOverrides: mergedFormOverrides.wizard_steps,
386
471
  schemaForm: schemaForm,
387
- formFieldsOverrideMap: formFieldsByProp
388
- })
389
- : undefined;
390
- form.fields = mergedFormOverrides.fields !== undefined
391
- ? mergeFormFields({
392
- fieldOverrides: mergedFormOverrides.fields,
393
- schemaForm: schemaForm,
394
- formFieldsOverrideMap: formFieldsByProp
472
+ formFieldsOverrideMap: formFieldOverridesByProp
395
473
  })
396
474
  : undefined;
475
+ form.fields = mergeFormFields({
476
+ fieldOverrides: mergedFormOverrides.fields,
477
+ schemaForm: schemaForm,
478
+ formFieldsOverrideMap: formFieldOverridesByProp
479
+ });
397
480
  return form;
398
481
  };
399
482
  var schemaToFormObject = function (schema) {
400
483
  var _a, _b;
484
+ var resolvedSchema = resolveRefs(schema);
401
485
  var formFields = [];
402
- for (var key in schema.properties) {
403
- if (schema.properties[key] !== undefined && typeof schema.properties[key] !== 'boolean') {
486
+ for (var key in resolvedSchema.properties) {
487
+ if (resolvedSchema.properties[key] !== undefined && typeof resolvedSchema.properties[key] !== 'boolean') {
404
488
  formFields.push(schemaToFormField({
405
- schema: schema,
489
+ schema: resolvedSchema,
406
490
  property: key,
407
- schemaField: schema.properties[key],
491
+ schemaField: resolvedSchema.properties[key],
408
492
  path: []
409
493
  }));
410
494
  }
411
495
  }
412
496
  return {
413
- id: makeFormFieldId([schema.$id, (_a = schema.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(' ', '-')]),
497
+ id: makeFormFieldId([resolvedSchema.$id, (_a = resolvedSchema.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().replace(' ', '-')]),
414
498
  label: (_b = schema.title) !== null && _b !== void 0 ? _b : 'Untitled',
415
499
  fields: formFields
416
500
  };
417
501
  };
418
- var buildFormObject = function (form) {
502
+ var buildFieldMapFromForm = function (form) {
419
503
  var formCopy = copyAndAddPathToFields(form);
420
504
  var fields = getFieldsFromFormSection(formCopy);
421
505
  return Object.fromEntries(fields.map(function (field) { return [getPathFromField(field), field]; }));
@@ -446,6 +530,41 @@ var getSchemaPaths = function (schema, prefix) {
446
530
  }
447
531
  return paths;
448
532
  };
533
+ var getSchemaPathDescriptors = function (schema, prefix) {
534
+ var _a;
535
+ if (prefix === void 0) { prefix = ''; }
536
+ var pathDescriptors = [];
537
+ if (schema.type === 'object' && schema.properties) {
538
+ for (var _i = 0, _b = Object.keys(schema.properties); _i < _b.length; _i++) {
539
+ var key = _b[_i];
540
+ var newPrefix = prefix ? "".concat(prefix, ".").concat(key) : key;
541
+ pathDescriptors.push({
542
+ path: newPrefix,
543
+ type: (_a = schema.properties[key].type) !== null && _a !== void 0 ? _a : 'object',
544
+ required: schema.required ? schema.required.includes(key) : false
545
+ });
546
+ pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.properties[key], newPrefix));
547
+ }
548
+ }
549
+ else if (schema.type === 'array' && schema.items) {
550
+ var arrayPrefix = "".concat(prefix, "[]");
551
+ pathDescriptors.push({
552
+ path: arrayPrefix,
553
+ type: schema.type,
554
+ required: schema.required ? schema.required.includes(prefix) : false
555
+ });
556
+ pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.items, arrayPrefix));
557
+ }
558
+ else if (schema.oneOf || schema.anyOf || schema.allOf) {
559
+ for (var _c = 0, _d = schema.oneOf || schema.anyOf || schema.allOf; _c < _d.length; _c++) {
560
+ var subSchema = _d[_c];
561
+ if (subSchema.properties) {
562
+ pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(subSchema, prefix));
563
+ }
564
+ }
565
+ }
566
+ return pathDescriptors;
567
+ };
449
568
 
450
- export { buildFormObject, getLabelFromSchema, getSchemaPaths, getValueFromSchema, mergeObjects, overridesAndSchemaToFormObject, schemaToFormObject, validateAgainstSchema, validateSchema };
569
+ export { buildFieldMapFromForm, getLabelFromSchema, getSchemaPathDescriptors, getSchemaPaths, getValueFromSchema, mergeObjects, overridesAndSchemaToFormObject, schemaToFormObject, validateAgainstSchema, validateSchema };
451
570
  //# sourceMappingURL=schemaToFormHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaToFormHelpers.js","sources":["../../../../src/utils/schemaToFormHelpers.ts"],"sourcesContent":["import { type IFormOverride, type IForm, type IFormField, type IFormFieldType, type IFormValues, type IFormFieldOverride, type IFormSectionOverride, type IPage, type IFormSection, type IWizardStep, type IValueType, type INumberField } from '@/Form/Creator/FormCreatorTypes'\r\nimport Ajv, { type ValidateFunction } from 'ajv'\r\nimport addFormats from 'ajv-formats'\r\n\r\nimport { type JSONSchema6Type, type JSONSchema6Definition, type JSONSchema6 } from 'json-schema'\r\n\r\nimport metaSchemaDraftV7 from 'ajv/lib/refs/json-schema-draft-07.json'\r\nimport metaSchemaDraftV6 from 'ajv/lib/refs/json-schema-draft-06.json'\r\nimport metaSchemaV5 from 'ajv/lib/refs/json-schema-2020-12/schema.json'\r\nimport metaSchemaV4 from 'ajv/lib/refs/json-schema-2019-09/schema.json'\r\n\r\nimport { resolveRefs } from '@/utils/resolveRefs'\r\nimport { omit } from 'lodash'\r\nimport { type ISelectOptionProps } from '@axdspub/axiom-ui-utilities'\r\nimport { getFieldsFromFormSection, getPathFromField, makeJsonPath } from '@/utils/getters'\r\nimport { copyAndAddPathToFields } from '@/utils/manipulators'\r\n\r\nconst getValidator = (schema: number): ValidateFunction => {\r\n const ajv = new Ajv({\r\n strict: false\r\n })\r\n addFormats(ajv)\r\n switch (schema) {\r\n case 4:\r\n return ajv.compile(metaSchemaV4)\r\n case 5:\r\n return ajv.compile(metaSchemaV5)\r\n case 6:\r\n return ajv.compile(metaSchemaDraftV6)\r\n case 7:\r\n return ajv.compile(metaSchemaDraftV7)\r\n default:\r\n return ajv.compile(metaSchemaV5)\r\n }\r\n}\r\n\r\nexport const validateSchema = (schemaOb: unknown, version: number = 6): { schema?: JSONSchema6, error?: string, unrefed?: JSONSchema6 } => {\r\n const ajv = new Ajv({ strict: false })\r\n addFormats(ajv)\r\n const validator = getValidator(version)\r\n const valid = validator(schemaOb)\r\n if (!valid) {\r\n return { error: ajv.errorsText(validator.errors) }\r\n }\r\n // const v = ajv.compile<JSONSchema6>(schemaOb as JSONSchema6)\r\n /* registerSchema(schemaOb as SchemaObject, 'https://axds.co/test')\r\n const bundledSchema = await bundle('https://axds.co/test')\r\n return { schema: bundledSchema as JSONSchema6 } */\r\n\r\n const resolved = resolveRefs(structuredClone(schemaOb) as JSONSchema6)\r\n return { schema: resolved, unrefed: schemaOb as JSONSchema6 }\r\n}\r\n\r\nexport const validateAgainstSchema = (schema: JSONSchema6, formValues: IFormValues): string[] | undefined => {\r\n const validSchema = validateSchema(schema)\r\n if (validSchema.error !== undefined) {\r\n return [validSchema.error]\r\n }\r\n const ajv = new Ajv({ strict: false, allErrors: true })\r\n addFormats(ajv)\r\n const validator = ajv.compile(schema)\r\n const valid = validator(formValues)\r\n if (validator.errors !== null && validator.errors !== undefined && !valid) {\r\n return validator.errors.map(e => {\r\n return `${e.instancePath} ${e.message}`\r\n })\r\n }\r\n return undefined\r\n}\r\n\r\nconst makeRandom = (): string => {\r\n return crypto !== undefined ? crypto.randomUUID() : Math.random().toString(36).substring(2)\r\n}\r\n\r\nconst makeFormFieldId = (options: Array<string | number | undefined | null>): string => {\r\n const validOptions = options.filter((o) => o !== undefined && o !== null)\r\n if (validOptions.length === 0) {\r\n return makeRandom()\r\n }\r\n return String(validOptions[0])\r\n}\r\n\r\nconst makeLabel = (options: Array<string | number | undefined | null>): string | undefined => {\r\n const validOptions = options.filter((o) => o !== undefined && o !== null)\r\n if (validOptions.length === 0) {\r\n return undefined\r\n }\r\n return String(validOptions[0])\r\n .replace(/_|-/g, ' ')\r\n .split(' ')\r\n .map((s, i) => {\r\n return i === 0 ? `${s.charAt(0).toUpperCase()}${s.slice(1)}` : s\r\n }).join(' ')\r\n}\r\n\r\nconst getFieldType = (schema: JSONSchema6): IFormFieldType => {\r\n const schemaType = schema.type\r\n if (schemaType === 'string' || schemaType === 'number' || schemaType === 'integer') {\r\n if (schema.enum !== undefined || schema.oneOf !== undefined) {\r\n return 'select'\r\n } else if (schema.anyOf !== undefined) {\r\n return 'checkbox'\r\n } else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength <= 100)) {\r\n return 'text'\r\n } else if (schemaType === 'number' || schemaType === 'integer') {\r\n return 'number'\r\n } else if (schema.format === 'date-time') {\r\n return 'datetime'\r\n } else if (schema.format === 'date') {\r\n return 'date'\r\n } else if (schema.format === 'time') {\r\n return 'time'\r\n }\r\n return 'long_text'\r\n } else if (schemaType === 'boolean') {\r\n return 'boolean'\r\n } else if (schemaType === 'object' || (schemaType === undefined && (schema.oneOf !== undefined || schema.anyOf !== undefined || schema.allOf !== undefined))) {\r\n return 'object'\r\n }\r\n if (!schemaType && (schema.anyOf !== undefined || schema.enum !== undefined)) {\r\n return 'object'\r\n }\r\n\r\n return 'text'\r\n}\r\n\r\nexport const getValueFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | number | boolean | undefined => {\r\n if (schema === undefined || schema === null) {\r\n return undefined\r\n }\r\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\r\n return schema\r\n }\r\n if (Array.isArray(schema)) {\r\n if (schema.length > 0) {\r\n return getValueFromSchema(schema[0])\r\n }\r\n return undefined\r\n }\r\n if (schema.const !== undefined) {\r\n return String(schema.const)\r\n }\r\n if (schema.title !== undefined && schema.title !== null) {\r\n return getValueFromSchema(schema.title)\r\n }\r\n if (schema.$id !== undefined && schema.$id !== null) {\r\n if (typeof schema.$id === 'string' || typeof schema.$id === 'number') {\r\n return makeLabel([String(schema.$id)])\r\n }\r\n return getValueFromSchema(schema.$id)\r\n }\r\n if (Array.isArray(schema) && schema.length === 2) {\r\n return typeof schema[0] === 'object' && schema[0] !== null ? getValueFromSchema(schema[0]) : schema[0]\r\n }\r\n return undefined\r\n}\r\n\r\nexport const getLabelFromSchema = (schema: JSONSchema6Type | JSONSchema6Definition | undefined): string | undefined => {\r\n if (schema === undefined || schema === null) {\r\n return undefined\r\n }\r\n if (typeof schema === 'boolean') {\r\n return schema ? 'true' : 'false'\r\n }\r\n if (typeof schema === 'string' || typeof schema === 'number' || typeof schema === 'boolean') {\r\n return String(schema)\r\n }\r\n if (Array.isArray(schema)) {\r\n if (schema.length > 0) {\r\n return getLabelFromSchema(schema[0])\r\n }\r\n return undefined\r\n }\r\n if (schema.title !== undefined && schema.title !== null) {\r\n return getLabelFromSchema(schema.title)\r\n }\r\n if (Array.isArray(schema) && schema.length === 2) {\r\n return typeof schema[1] === 'object' && schema[1] !== null ? getLabelFromSchema(schema[1]) : schema[1]\r\n }\r\n return String(getValueFromSchema(schema))\r\n}\r\n\r\ninterface ISchemaToFormFieldProps {\r\n schema: JSONSchema6\r\n property: string\r\n schemaField: JSONSchema6\r\n multiple?: boolean\r\n path?: string[]\r\n}\r\n\r\nconst schemaToFormField = ({\r\n schema,\r\n property,\r\n schemaField,\r\n multiple,\r\n path = []\r\n}: ISchemaToFormFieldProps): IFormField => {\r\n path.push(property)\r\n if (schemaField === undefined) {\r\n return {\r\n id: makeFormFieldId([schema.$id, property]),\r\n label: property,\r\n type: 'text',\r\n multiple\r\n }\r\n }\r\n if (typeof schemaField === 'boolean') {\r\n return {\r\n id: makeFormFieldId([schema.$id, property]),\r\n label: property,\r\n type: 'boolean',\r\n multiple\r\n }\r\n }\r\n if (schemaField.type === 'array' && schemaField.items !== undefined) {\r\n return schemaToFormField({\r\n schema: schemaField,\r\n property,\r\n schemaField: schemaField.items as JSONSchema6,\r\n multiple: true,\r\n path: path.slice()\r\n })\r\n }\r\n if (schemaField.anyOf !== undefined && schemaField.anyOf.length === 2 && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type === 'null').length === 1) {\r\n const notNull = schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null')[0]\r\n return schemaToFormField({\r\n schema: schemaField,\r\n property,\r\n schemaField: { ...omit(schemaField, 'anyOf'), ...(typeof notNull !== 'boolean' ? notNull : {}) },\r\n multiple,\r\n path: path.slice()\r\n })\r\n }\r\n const type = getFieldType(schemaField)\r\n const id = makeFormFieldId([\r\n schemaField.$id,\r\n property,\r\n schemaField.title?.toLowerCase().replace(' ', '-')\r\n ])\r\n const label = makeLabel([\r\n schemaField.title,\r\n property\r\n ])\r\n const schemaRequired = schema.required ?? []\r\n const ob: Pick<IFormField, 'id' | 'label' | 'description' | 'multiple' | 'required' | 'defaultValue'> = {\r\n id,\r\n label,\r\n description: schemaField.description,\r\n multiple,\r\n defaultValue: schemaField.default !== undefined ? schemaField.default as IValueType : undefined,\r\n required: schemaRequired.includes(property) ?? false\r\n }\r\n if (type === 'text' || type === 'number' || type === 'long_text' || type === 'boolean' || type === 'datetime' || type === 'date' || type === 'time') {\r\n if (type === 'number' && (schemaField.minimum !== undefined || schemaField.maximum !== undefined)) {\r\n const numberOb = ob as INumberField\r\n numberOb.constraints = numberOb.constraints ?? {}\r\n if (schemaField.minimum !== undefined) {\r\n numberOb.constraints.min = schemaField.minimum\r\n }\r\n if (schemaField.maximum !== undefined) {\r\n numberOb.constraints.max = schemaField.maximum\r\n }\r\n return {\r\n ...numberOb,\r\n type\r\n }\r\n }\r\n return {\r\n ...ob,\r\n type\r\n }\r\n }\r\n\r\n if (type === 'select' || type === 'checkbox') {\r\n const schemaOptions = schemaField.enum ?? schemaField.oneOf ?? schemaField.anyOf ?? []\r\n const options = schemaOptions.map(e => {\r\n const value = getValueFromSchema(e)\r\n const label = getLabelFromSchema(e)\r\n return value !== undefined\r\n ? {\r\n value: String(value),\r\n label: label ?? String(value)\r\n }\r\n : null\r\n }).filter(d => d !== null)\r\n return {\r\n ...ob,\r\n type,\r\n options\r\n }\r\n }\r\n if (type === 'object') {\r\n // const anyOfAsProps = schemaField.anyOf !== undefined && schemaField.anyOf.filter(d => typeof d !== 'boolean' && d.type !== 'null').length > 0\r\n const properties = schemaField.properties ?? {}\r\n const fields: IFormField[] = []\r\n for (const key in properties) {\r\n if (properties[key] !== undefined && typeof properties[key] !== 'boolean') {\r\n fields.push(schemaToFormField({\r\n schema: schemaField,\r\n property: key,\r\n schemaField: properties[key],\r\n path: path.slice()\r\n }))\r\n }\r\n }\r\n\r\n if (schemaField.oneOf !== undefined) {\r\n const oneOfFields: IFormField[] = []\r\n const options: ISelectOptionProps[] = []\r\n const selectorField = `select_${property}`\r\n schemaField.oneOf.forEach((f, i) => {\r\n if (typeof f !== 'boolean') {\r\n let value = f.$id ?? f.title\r\n if ((schemaField as any).discriminator?.propertyName !== undefined) {\r\n const v = getValueFromSchema(f?.properties?.[(schemaField as any).discriminator?.propertyName])\r\n if (v !== null && v !== undefined && typeof v !== 'boolean') {\r\n value = String(v)\r\n }\r\n }\r\n if (value === undefined || value === null) {\r\n value = `${property}_${i}`\r\n }\r\n options.push({\r\n label: f.title ?? f.$id ?? `${property} option ${String(i + 1)}`,\r\n value\r\n })\r\n const oneOfield = schemaToFormField({\r\n schema: schemaField,\r\n property: value,\r\n schemaField: f,\r\n path: path.slice()\r\n })\r\n oneOfield.conditions = {\r\n dependsOn: `${path.join('.')}.${selectorField}`,\r\n value\r\n }\r\n oneOfFields.push(oneOfield)\r\n }\r\n })\r\n fields.push({\r\n id: selectorField,\r\n type: 'select',\r\n label: schemaField.title,\r\n options\r\n })\r\n oneOfFields.forEach(f => {\r\n fields.push(f)\r\n })\r\n }\r\n\r\n const ofArr = (schemaField.anyOf ?? []).concat(schemaField.allOf ?? [])\r\n ofArr.forEach((anyOf) => {\r\n const anyOfId = schemaField.$id\r\n if (typeof anyOf !== 'boolean' && anyOf.type !== 'null') {\r\n const field = schemaToFormField({\r\n schema: schemaField,\r\n property: anyOfId ?? makeRandom(),\r\n schemaField: typeof anyOf === 'boolean'\r\n ? anyOf\r\n : {\r\n title: anyOf.title ?? '',\r\n ...anyOf\r\n },\r\n path: path.slice()\r\n })\r\n if (anyOfId === undefined && field.type === 'object') {\r\n field.skip_path = true\r\n }\r\n fields.push(field)\r\n }\r\n })\r\n\r\n return {\r\n ...ob,\r\n type,\r\n fields,\r\n multiple\r\n }\r\n }\r\n\r\n return {\r\n id,\r\n type: 'text',\r\n multiple\r\n }\r\n}\r\n\r\nexport function mergeObjects<T extends Record<string, any>> (objects: T[]): T {\r\n const initialValue: T = {} as unknown as T\r\n return objects.reduce<T>((acc, obj) => ({ ...acc, ...obj }), initialValue)\r\n}\r\n\r\nconst mergeFormField = ({\r\n field,\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n}: {\r\n field: IFormField\r\n fieldOverride?: IFormFieldOverride\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n schemaFieldMap: Record<string, IFormField>\r\n}): IFormField => {\r\n const path = fieldOverride?.prop ?? makeJsonPath(field)\r\n const formFieldOverrides = mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[path ?? '']).filter(d => d !== undefined))\r\n const mergedField = {\r\n ...mergeObjects<IFormFieldOverride | IFormField>([\r\n {\r\n ...field,\r\n destPath: path\r\n },\r\n formFieldOverrides,\r\n (fieldOverride ?? {}) as IFormFieldOverride\r\n ])\r\n }\r\n const labelProp = mergedField.id ?? (\r\n path !== undefined\r\n ? path.split('.').pop()\r\n : fieldOverride?.prop ?? field.id\r\n )\r\n const id = mergedField.id ?? makeFormFieldId([mergedField.id])\r\n if (mergedField.type === 'object') {\r\n // attached to the schema field. defaults not overrides\r\n const fieldFields = field?.type === 'object' ? field.fields : []\r\n const fieldFieldsMap = Object.fromEntries(fieldFields.map(f => [getPathFromField(f), f]))\r\n\r\n // attached to the field override. overrides\r\n const overrideFields = fieldOverride?.type === 'object' ? (fieldOverride.fields ?? []) : []\r\n const overrideFieldsMap = Object.fromEntries(\r\n overrideFields\r\n .filter((f): f is IFormFieldOverride => 'prop' in f)\r\n .map(f => [f.prop, f])\r\n )\r\n\r\n // attached to the form override. overrides\r\n const formOverrideFields = formFieldOverrides.type === 'object' ? formFieldOverrides.fields ?? [] : []\r\n const formOverrideFieldsMap = Object.fromEntries(\r\n formOverrideFields\r\n .filter((f): f is IFormFieldOverride => 'prop' in f)\r\n .map(f => [f.prop, f])\r\n )\r\n\r\n const allKeys = Object.keys({\r\n ...fieldFieldsMap,\r\n ...overrideFieldsMap,\r\n ...formOverrideFieldsMap\r\n })\r\n\r\n mergedField.fields = allKeys.map(key => {\r\n // const fieldOverride = overrideFieldsMap[key] ?? { prop: key }\r\n const fieldOverride = mergeObjects<IFormFieldOverride>([\r\n overrideFieldsMap[key],\r\n formOverrideFieldsMap[key],\r\n mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[key]).filter(d => d !== undefined))\r\n ])\r\n return mergeFormField({\r\n field: fieldFieldsMap[key] ?? schemaFieldMap[key],\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n })\r\n })\r\n }\r\n return {\r\n type: mergedField.type ?? 'text',\r\n id,\r\n label: mergedField.label ?? makeLabel([labelProp]) ?? 'Default',\r\n ...mergedField\r\n } as unknown as IFormField\r\n}\r\n\r\nconst mergeFormFields = ({\r\n fieldOverrides,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n}: {\r\n fieldOverrides?: IFormFieldOverride[]\r\n schemaForm: IForm\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n}): IFormField[] => {\r\n const schemaFieldMap = buildFieldMapFromForm(schemaForm)\r\n\r\n return (fieldOverrides ?? []).map(fieldOverride => {\r\n const schemaField = schemaFieldMap[fieldOverride.prop]\r\n return mergeFormField({\r\n field: schemaField,\r\n fieldOverride,\r\n formFieldsOverrideMap,\r\n schemaFieldMap\r\n })\r\n })\r\n}\r\n\r\nconst mergeFormSections = ({\r\n sectionOverrides,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n\r\n}: {\r\n sectionOverrides?: IFormSectionOverride[]\r\n schemaForm: IForm\r\n formFieldsOverrideMap: Array<Record<string, IFormFieldOverride>>\r\n\r\n}): IFormSection[] => {\r\n const sections = (sectionOverrides ?? []).map((sectionToMerge, index) => {\r\n const sectionFields = mergeFormFields({\r\n fieldOverrides: sectionToMerge.fields,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n const sectionId = sectionToMerge.id ?? makeFormFieldId([sectionToMerge.id, index])\r\n return {\r\n id: sectionId ?? makeFormFieldId([sectionId, index]),\r\n label: sectionToMerge.label ?? makeLabel([sectionId]),\r\n ...sectionToMerge,\r\n fields: sectionToMerge.fields !== undefined\r\n ? sectionFields\r\n : undefined,\r\n wizard_steps: sectionToMerge.wizard_steps !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: sectionToMerge.wizard_steps,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n : undefined,\r\n pages: sectionToMerge.pages !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: sectionToMerge.pages,\r\n schemaForm,\r\n formFieldsOverrideMap\r\n })\r\n : undefined\r\n }\r\n })\r\n return sections as IFormSection[]\r\n}\r\n\r\nexport const overridesAndSchemaToFormObject = ({\r\n formOverrides,\r\n formFieldOverrides,\r\n schema\r\n}: {\r\n formOverrides?: IFormOverride[]\r\n formFieldOverrides?: IFormFieldOverride[][]\r\n schema: JSONSchema6\r\n}): IForm => {\r\n const schemaForm = schemaToFormObject(schema)\r\n const formFieldOverridesByProp = formFieldOverrides?.map(overrides => Object.fromEntries(overrides.map(override => [override.prop, override]))) ?? []\r\n if (formOverrides === undefined && formFieldOverrides !== undefined) {\r\n const schemaFieldMap = buildFieldMapFromForm(schemaForm)\r\n const fields = Object.values(schemaFieldMap).map(field => {\r\n return mergeFormField({\r\n field,\r\n formFieldsOverrideMap: formFieldOverridesByProp,\r\n schemaFieldMap\r\n })\r\n })\r\n return {\r\n ...schemaForm,\r\n fields\r\n }\r\n }\r\n const mergedFormOverrides = mergeObjects<IFormOverride>(formOverrides ?? [])\r\n const form: IForm = {\r\n id: schemaForm.id,\r\n label: mergedFormOverrides?.label ?? schemaForm.label,\r\n settings: mergedFormOverrides?.settings\r\n }\r\n\r\n form.pages = mergedFormOverrides.pages !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: mergedFormOverrides.pages,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n }) as IPage[]\r\n : undefined\r\n form.wizard_steps = mergedFormOverrides.wizard_steps !== undefined\r\n ? mergeFormSections({\r\n sectionOverrides: mergedFormOverrides.wizard_steps,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n }) as IWizardStep[]\r\n : undefined\r\n\r\n form.fields = mergeFormFields({\r\n fieldOverrides: mergedFormOverrides.fields,\r\n schemaForm,\r\n formFieldsOverrideMap: formFieldOverridesByProp\r\n })\r\n\r\n return form\r\n}\r\n\r\nexport const schemaToFormObject = (schema: JSONSchema6): IForm => {\r\n const resolvedSchema = resolveRefs(schema)\r\n const formFields: IFormField[] = []\r\n for (const key in resolvedSchema.properties) {\r\n if (resolvedSchema.properties[key] !== undefined && typeof resolvedSchema.properties[key] !== 'boolean') {\r\n formFields.push(schemaToFormField({\r\n schema: resolvedSchema,\r\n property: key,\r\n schemaField: resolvedSchema.properties[key],\r\n path: []\r\n }))\r\n }\r\n }\r\n return {\r\n id: makeFormFieldId([resolvedSchema.$id, resolvedSchema.title?.toLowerCase().replace(' ', '-')]),\r\n label: schema.title ?? 'Untitled',\r\n fields: formFields\r\n }\r\n}\r\n\r\nexport const buildFieldMapFromForm = (form: IForm): Record<string, IFormField> => {\r\n const formCopy = copyAndAddPathToFields(form)\r\n const fields = getFieldsFromFormSection(formCopy)\r\n return Object.fromEntries(fields.map(field => [getPathFromField(field), field]))\r\n}\r\n\r\nexport const getSchemaPaths = (schema: any, prefix = ''): string[] => {\r\n let paths: string[] = []\r\n\r\n if (schema.type === 'object' && schema.properties) {\r\n for (const key of Object.keys(schema.properties)) {\r\n const newPrefix = prefix ? `${prefix}.${key}` : key\r\n paths.push(newPrefix)\r\n paths = paths.concat(getSchemaPaths(schema.properties[key], newPrefix))\r\n }\r\n } else if (schema.type === 'array' && schema.items) {\r\n const arrayPrefix = `${prefix}[]`\r\n paths.push(arrayPrefix)\r\n paths = paths.concat(getSchemaPaths(schema.items, arrayPrefix))\r\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\r\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\r\n if (subSchema.properties) {\r\n paths = paths.concat(getSchemaPaths(subSchema, prefix))\r\n }\r\n }\r\n }\r\n\r\n return paths\r\n}\r\n\r\nexport const getSchemaPathDescriptors = (schema: any, prefix = ''): Array<{ path: string, type: string, required: boolean }> => {\r\n let pathDescriptors: Array<{ path: string, type: string, required: boolean }> = []\r\n\r\n if (schema.type === 'object' && schema.properties) {\r\n for (const key of Object.keys(schema.properties)) {\r\n const newPrefix = prefix ? `${prefix}.${key}` : key\r\n pathDescriptors.push({\r\n path: newPrefix,\r\n type: schema.properties[key].type ?? 'object',\r\n required: schema.required ? schema.required.includes(key) : false\r\n })\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.properties[key], newPrefix))\r\n }\r\n } else if (schema.type === 'array' && schema.items) {\r\n const arrayPrefix = `${prefix}[]`\r\n pathDescriptors.push({\r\n path: arrayPrefix,\r\n type: schema.type,\r\n required: schema.required ? schema.required.includes(prefix) : false\r\n })\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(schema.items, arrayPrefix))\r\n } else if (schema.oneOf || schema.anyOf || schema.allOf) {\r\n for (const subSchema of schema.oneOf || schema.anyOf || schema.allOf) {\r\n if (subSchema.properties) {\r\n pathDescriptors = pathDescriptors.concat(getSchemaPathDescriptors(subSchema, prefix))\r\n }\r\n }\r\n }\r\n\r\n return pathDescriptors\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { getValueFromPath, getFieldsFromFormSection, getFieldValue } from './getters.js';
2
+
3
+ var checkCondition = function (field, formValues) {
4
+ if (field.conditions !== undefined) {
5
+ var dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn];
6
+ var val_1 = field.conditions.value;
7
+ var check = dependsOn.every(function (d) {
8
+ var fieldValue = getValueFromPath(d, formValues);
9
+ return val_1 !== undefined
10
+ ? val_1 === false
11
+ ? (fieldValue === null || fieldValue === undefined || fieldValue === false || fieldValue === '')
12
+ : fieldValue === val_1
13
+ : (fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '');
14
+ });
15
+ return check;
16
+ }
17
+ return true;
18
+ };
19
+ var testField = function (field, formValues) {
20
+ var val = getFieldValue(field, formValues);
21
+ return val !== undefined && val !== null && val !== '';
22
+ };
23
+ var calculateSectionStatus = function (sections, formValueState) {
24
+ var formValues = formValueState[0];
25
+ return Object.fromEntries(sections.map(function (s) {
26
+ var fields = getFieldsFromFormSection(s).filter(function (f) { return f.type !== 'object'; });
27
+ var total = fields.length;
28
+ var completed = fields.filter(function (f) { return testField(f, formValues); }).length;
29
+ var required = fields.filter(function (f) { return f.required; });
30
+ var requiredTotal = required.length;
31
+ var requiredCompleted = required.filter(function (f) { return testField(f, formValues); }).length;
32
+ var valid = requiredTotal === requiredCompleted;
33
+ return [s.id, { completed: completed, total: total, requiredTotal: requiredTotal, requiredCompleted: requiredCompleted, valid: valid }];
34
+ }));
35
+ };
36
+
37
+ export { calculateSectionStatus, checkCondition };
38
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sources":["../../../../src/utils/validators.ts"],"sourcesContent":["import { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormValues, type IFormField, type IFormSection, type IFormValueState } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldsFromFormSection, getFieldValue, getValueFromPath } from '@/utils/getters'\r\n\r\nexport const checkCondition = (field: IFormField, formValues: IFormValues): boolean => {\r\n if (field.conditions !== undefined) {\r\n const dependsOn = Array.isArray(field.conditions.dependsOn) ? field.conditions.dependsOn : [field.conditions.dependsOn]\r\n\r\n const val = field.conditions.value\r\n const check = dependsOn.every(d => {\r\n const fieldValue = getValueFromPath(d, formValues)\r\n return val !== undefined\r\n ? val === false\r\n ? (fieldValue === null || fieldValue === undefined || fieldValue === false || fieldValue === '')\r\n : fieldValue === val\r\n : (fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '')\r\n })\r\n return check\r\n }\r\n return true\r\n}\r\n\r\nconst testField = (field: IFormField, formValues: IFormValues): boolean => {\r\n const val = getFieldValue(field, formValues)\r\n return val !== undefined && val !== null && val !== ''\r\n}\r\n\r\nexport const calculateSectionStatus = (sections: IFormSection[], formValueState: IFormValueState): IFormSectionStatus => {\r\n const [formValues] = formValueState\r\n return Object.fromEntries(sections.map(s => {\r\n const fields = getFieldsFromFormSection(s).filter(f => f.type !== 'object')\r\n const total = fields.length\r\n const completed = fields.filter(f => testField(f, formValues)).length\r\n const required = fields.filter(f => f.required)\r\n const requiredTotal = required.length\r\n const requiredCompleted = required.filter(f => testField(f, formValues)).length\r\n const valid = requiredTotal === requiredCompleted\r\n return [s.id, { completed, total, requiredTotal, requiredCompleted, valid }]\r\n }))\r\n}\r\n"],"names":[],"mappings":";;AAIa,IAAA,cAAc,GAAG,UAAC,KAAiB,EAAE,UAAuB,EAAA;AACvE,IAAA,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;AAClC,QAAA,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;AAEvH,QAAA,IAAM,KAAG,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK;AAClC,QAAA,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;YAC7B,IAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC;YAClD,OAAO,KAAG,KAAK;kBACX,KAAG,KAAK;AACR,uBAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE;sBAC7F,UAAU,KAAK;AACnB,mBAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,EAAE,CAAC;AACpG,SAAC,CAAC;AACF,QAAA,OAAO,KAAK;;AAEd,IAAA,OAAO,IAAI;AACb;AAEA,IAAM,SAAS,GAAG,UAAC,KAAiB,EAAE,UAAuB,EAAA;IAC3D,IAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5C,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;AACxD,CAAC;AAEY,IAAA,sBAAsB,GAAG,UAAC,QAAwB,EAAE,cAA+B,EAAA;AACvF,IAAA,IAAA,UAAU,GAAI,cAAc,CAAA,CAAA,CAAlB;IACjB,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;QACtC,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAA,EAAA,CAAC;AAC3E,QAAA,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM;QAC3B,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,GAAA,CAAC,CAAC,MAAM;AACrE,QAAA,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,QAAQ,CAAV,EAAU,CAAC;AAC/C,QAAA,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;QACrC,IAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,GAAA,CAAC,CAAC,MAAM;AAC/E,QAAA,IAAM,KAAK,GAAG,aAAa,KAAK,iBAAiB;QACjD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAA,SAAA,EAAE,KAAK,EAAA,KAAA,EAAE,aAAa,EAAA,aAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC;KAC7E,CAAC,CAAC;AACL;;;;"}