@axdspub/axiom-ui-forms 0.2.9 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/library/axiom-ui-forms.d.ts +113 -51
  2. package/library/esm/_virtual/_commonjsHelpers.js +26 -1
  3. package/library/esm/_virtual/_commonjsHelpers.js.map +1 -1
  4. package/library/esm/_virtual/_freeGlobal.js +7 -0
  5. package/library/esm/_virtual/_freeGlobal.js.map +1 -0
  6. package/library/esm/_virtual/get.js +8 -0
  7. package/library/esm/_virtual/get.js.map +1 -0
  8. package/library/esm/_virtual/index10.js +2 -2
  9. package/library/esm/_virtual/index11.js +2 -2
  10. package/library/esm/_virtual/index14.js +2 -2
  11. package/library/esm/_virtual/index15.js +2 -2
  12. package/library/esm/_virtual/index3.js +2 -2
  13. package/library/esm/_virtual/index4.js +2 -2
  14. package/library/esm/_virtual/index5.js +2 -2
  15. package/library/esm/_virtual/index6.js +2 -2
  16. package/library/esm/_virtual/index6.js.map +1 -1
  17. package/library/esm/_virtual/index7.js +2 -2
  18. package/library/esm/_virtual/index7.js.map +1 -1
  19. package/library/esm/_virtual/set.js +8 -0
  20. package/library/esm/_virtual/set.js.map +1 -0
  21. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  22. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  23. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  24. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  25. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  26. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  27. package/library/esm/node_modules/fast-uri/index.js +1 -1
  28. package/library/esm/node_modules/json-schema-traverse/index.js +1 -1
  29. package/library/esm/node_modules/lodash/_Hash.js +49 -0
  30. package/library/esm/node_modules/lodash/_Hash.js.map +1 -0
  31. package/library/esm/node_modules/lodash/_ListCache.js +49 -0
  32. package/library/esm/node_modules/lodash/_ListCache.js.map +1 -0
  33. package/library/esm/node_modules/lodash/_Map.js +21 -0
  34. package/library/esm/node_modules/lodash/_Map.js.map +1 -0
  35. package/library/esm/node_modules/lodash/_MapCache.js +49 -0
  36. package/library/esm/node_modules/lodash/_MapCache.js.map +1 -0
  37. package/library/esm/node_modules/lodash/_Symbol.js +19 -0
  38. package/library/esm/node_modules/lodash/_Symbol.js.map +1 -0
  39. package/library/esm/node_modules/lodash/_arrayMap.js +33 -0
  40. package/library/esm/node_modules/lodash/_arrayMap.js.map +1 -0
  41. package/library/esm/node_modules/lodash/_assignValue.js +42 -0
  42. package/library/esm/node_modules/lodash/_assignValue.js.map +1 -0
  43. package/library/esm/node_modules/lodash/_assocIndexOf.js +34 -0
  44. package/library/esm/node_modules/lodash/_assocIndexOf.js.map +1 -0
  45. package/library/esm/node_modules/lodash/_baseAssignValue.js +38 -0
  46. package/library/esm/node_modules/lodash/_baseAssignValue.js.map +1 -0
  47. package/library/esm/node_modules/lodash/_baseGet.js +38 -0
  48. package/library/esm/node_modules/lodash/_baseGet.js.map +1 -0
  49. package/library/esm/node_modules/lodash/_baseGetTag.js +43 -0
  50. package/library/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  51. package/library/esm/node_modules/lodash/_baseIsNative.js +63 -0
  52. package/library/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
  53. package/library/esm/node_modules/lodash/_baseSet.js +68 -0
  54. package/library/esm/node_modules/lodash/_baseSet.js.map +1 -0
  55. package/library/esm/node_modules/lodash/_baseToString.js +50 -0
  56. package/library/esm/node_modules/lodash/_baseToString.js.map +1 -0
  57. package/library/esm/node_modules/lodash/_castPath.js +37 -0
  58. package/library/esm/node_modules/lodash/_castPath.js.map +1 -0
  59. package/library/esm/node_modules/lodash/_coreJsData.js +19 -0
  60. package/library/esm/node_modules/lodash/_coreJsData.js.map +1 -0
  61. package/library/esm/node_modules/lodash/_defineProperty.js +24 -0
  62. package/library/esm/node_modules/lodash/_defineProperty.js.map +1 -0
  63. package/library/esm/node_modules/lodash/_freeGlobal.js +7 -0
  64. package/library/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  65. package/library/esm/node_modules/lodash/_getMapData.js +31 -0
  66. package/library/esm/node_modules/lodash/_getMapData.js.map +1 -0
  67. package/library/esm/node_modules/lodash/_getNative.js +31 -0
  68. package/library/esm/node_modules/lodash/_getNative.js.map +1 -0
  69. package/library/esm/node_modules/lodash/_getRawTag.js +59 -0
  70. package/library/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  71. package/library/esm/node_modules/lodash/_getValue.js +25 -0
  72. package/library/esm/node_modules/lodash/_getValue.js.map +1 -0
  73. package/library/esm/node_modules/lodash/_hashClear.js +28 -0
  74. package/library/esm/node_modules/lodash/_hashClear.js.map +1 -0
  75. package/library/esm/node_modules/lodash/_hashDelete.js +29 -0
  76. package/library/esm/node_modules/lodash/_hashDelete.js.map +1 -0
  77. package/library/esm/node_modules/lodash/_hashGet.js +43 -0
  78. package/library/esm/node_modules/lodash/_hashGet.js.map +1 -0
  79. package/library/esm/node_modules/lodash/_hashHas.js +36 -0
  80. package/library/esm/node_modules/lodash/_hashHas.js.map +1 -0
  81. package/library/esm/node_modules/lodash/_hashSet.js +36 -0
  82. package/library/esm/node_modules/lodash/_hashSet.js.map +1 -0
  83. package/library/esm/node_modules/lodash/_isIndex.js +37 -0
  84. package/library/esm/node_modules/lodash/_isIndex.js.map +1 -0
  85. package/library/esm/node_modules/lodash/_isKey.js +43 -0
  86. package/library/esm/node_modules/lodash/_isKey.js.map +1 -0
  87. package/library/esm/node_modules/lodash/_isKeyable.js +27 -0
  88. package/library/esm/node_modules/lodash/_isKeyable.js.map +1 -0
  89. package/library/esm/node_modules/lodash/_isMasked.js +33 -0
  90. package/library/esm/node_modules/lodash/_isMasked.js.map +1 -0
  91. package/library/esm/node_modules/lodash/_listCacheClear.js +25 -0
  92. package/library/esm/node_modules/lodash/_listCacheClear.js.map +1 -0
  93. package/library/esm/node_modules/lodash/_listCacheDelete.js +48 -0
  94. package/library/esm/node_modules/lodash/_listCacheDelete.js.map +1 -0
  95. package/library/esm/node_modules/lodash/_listCacheGet.js +32 -0
  96. package/library/esm/node_modules/lodash/_listCacheGet.js.map +1 -0
  97. package/library/esm/node_modules/lodash/_listCacheHas.js +29 -0
  98. package/library/esm/node_modules/lodash/_listCacheHas.js.map +1 -0
  99. package/library/esm/node_modules/lodash/_listCacheSet.js +39 -0
  100. package/library/esm/node_modules/lodash/_listCacheSet.js.map +1 -0
  101. package/library/esm/node_modules/lodash/_mapCacheClear.js +36 -0
  102. package/library/esm/node_modules/lodash/_mapCacheClear.js.map +1 -0
  103. package/library/esm/node_modules/lodash/_mapCacheDelete.js +31 -0
  104. package/library/esm/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  105. package/library/esm/node_modules/lodash/_mapCacheGet.js +29 -0
  106. package/library/esm/node_modules/lodash/_mapCacheGet.js.map +1 -0
  107. package/library/esm/node_modules/lodash/_mapCacheHas.js +29 -0
  108. package/library/esm/node_modules/lodash/_mapCacheHas.js.map +1 -0
  109. package/library/esm/node_modules/lodash/_mapCacheSet.js +35 -0
  110. package/library/esm/node_modules/lodash/_mapCacheSet.js.map +1 -0
  111. package/library/esm/node_modules/lodash/_memoizeCapped.js +39 -0
  112. package/library/esm/node_modules/lodash/_memoizeCapped.js.map +1 -0
  113. package/library/esm/node_modules/lodash/_nativeCreate.js +19 -0
  114. package/library/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
  115. package/library/esm/node_modules/lodash/_objectToString.js +34 -0
  116. package/library/esm/node_modules/lodash/_objectToString.js.map +1 -0
  117. package/library/esm/node_modules/lodash/_root.js +22 -0
  118. package/library/esm/node_modules/lodash/_root.js.map +1 -0
  119. package/library/esm/node_modules/lodash/_stringToPath.js +40 -0
  120. package/library/esm/node_modules/lodash/_stringToPath.js.map +1 -0
  121. package/library/esm/node_modules/lodash/_toKey.js +31 -0
  122. package/library/esm/node_modules/lodash/_toKey.js.map +1 -0
  123. package/library/esm/node_modules/lodash/_toSource.js +38 -0
  124. package/library/esm/node_modules/lodash/_toSource.js.map +1 -0
  125. package/library/esm/node_modules/lodash/eq.js +49 -0
  126. package/library/esm/node_modules/lodash/eq.js.map +1 -0
  127. package/library/esm/node_modules/lodash/get.js +46 -0
  128. package/library/esm/node_modules/lodash/get.js.map +1 -0
  129. package/library/esm/node_modules/lodash/isArray.js +38 -0
  130. package/library/esm/node_modules/lodash/isArray.js.map +1 -0
  131. package/library/esm/node_modules/lodash/isFunction.js +51 -0
  132. package/library/esm/node_modules/lodash/isFunction.js.map +1 -0
  133. package/library/esm/node_modules/lodash/isObject.js +43 -0
  134. package/library/esm/node_modules/lodash/isObject.js.map +1 -0
  135. package/library/esm/node_modules/lodash/isObjectLike.js +41 -0
  136. package/library/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  137. package/library/esm/node_modules/lodash/isSymbol.js +43 -0
  138. package/library/esm/node_modules/lodash/isSymbol.js.map +1 -0
  139. package/library/esm/node_modules/lodash/memoize.js +86 -0
  140. package/library/esm/node_modules/lodash/memoize.js.map +1 -0
  141. package/library/esm/node_modules/lodash/set.js +48 -0
  142. package/library/esm/node_modules/lodash/set.js.map +1 -0
  143. package/library/esm/node_modules/lodash/toString.js +41 -0
  144. package/library/esm/node_modules/lodash/toString.js.map +1 -0
  145. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  146. package/library/esm/src/Form/Components/FieldCreator.js +7 -5
  147. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  148. package/library/esm/src/Form/Components/Inputs/Geometry.js +37 -31
  149. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  150. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js +4 -1
  151. package/library/esm/src/Form/Components/Inputs/GeometryInputLoader.js.map +1 -1
  152. package/library/esm/src/Form/Components/Inputs/JSON.js +20 -10
  153. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  154. package/library/esm/src/Form/Components/Inputs/Object.js +7 -2
  155. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  156. package/library/esm/src/Form/Components/Inputs/String.js +2 -2
  157. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  158. package/library/esm/src/Form/Creator/FormCreator.js +3 -1
  159. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  160. package/library/esm/src/Form/Creator/Page.js +1 -1
  161. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  162. package/library/esm/src/Form/Creator/Wizard.js +1 -1
  163. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  164. package/library/esm/src/library.js +6 -3
  165. package/library/esm/src/library.js.map +1 -1
  166. package/library/esm/src/utils/getters.js +105 -0
  167. package/library/esm/src/utils/getters.js.map +1 -0
  168. package/library/esm/src/utils/manipulators.js +94 -0
  169. package/library/esm/src/utils/manipulators.js.map +1 -0
  170. package/library/esm/src/{Form → utils}/schemaToFormHelpers.js +7 -6
  171. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -0
  172. package/library/esm/src/utils/validators.js +36 -0
  173. package/library/esm/src/utils/validators.js.map +1 -0
  174. package/package.json +8 -3
  175. package/library/esm/src/Form/helpers.js +0 -162
  176. package/library/esm/src/Form/helpers.js.map +0 -1
  177. package/library/esm/src/Form/schemaToFormHelpers.js.map +0 -1
@@ -2,10 +2,12 @@ import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
2
  import { FormContext } from './FormContextProvider.js';
3
3
  import FormHeader from './FormHeader.js';
4
4
  import FormSection from './FormSection.js';
5
- import { copyAndAddPathToFields, getFieldsFromFormSection, getFieldValue, updateFormValuesWithFieldValueInPlace, calculateSectionStatus } from '../helpers.js';
5
+ import { getFieldsFromFormSection, getFieldValue } from '../../utils/getters.js';
6
+ import { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '../../utils/manipulators.js';
6
7
  import '../../../_virtual/ajv.js';
7
8
  import '../../../_virtual/index.js';
8
9
  import 'lodash';
10
+ import { calculateSectionStatus } from '../../utils/validators.js';
9
11
  import { utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
10
12
  import React__default, { useContext } from 'react';
11
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\nimport FormHeader from '@/Form/Creator/FormHeader'\nimport FormSection from '@/Form/Creator/FormSection'\nimport { calculateSectionStatus, copyAndAddPathToFields, getFieldsFromFormSection, getFieldValue, updateFormValuesWithFieldValueInPlace } from '@/Form/helpers'\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/Form/schemaToFormHelpers'\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { useContext, useEffect, useState, type ReactElement } from 'react'\n\nexport interface IFormCreatorProps {\n form: IForm\n schema?: JSONSchema6\n formValueState: [IFormValues, (v: IFormValues) => void]\n note?: string\n error?: string\n onChange?: IValueChangeFn\n className?: string\n defaultClassName?: string\n urlNavigable?: boolean\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nconst FormStatus = (): ReactElement => {\n const { form, formValues, setFormValues } = useContext(FormContext)\n const status = calculateSectionStatus([form], [formValues, setFormValues])\n\n return (\n <>\n <p className='text-xs mt-4'>{status[form.id]?.completed} of {status[form.id]?.total} total</p>\n <p className='text-xs mt-2'>{status[form.id]?.requiredCompleted} of {status[form.id]?.requiredTotal} required</p>\n </>\n )\n}\n\nexport const SchemaFormCreator = ({\n label,\n id,\n schema,\n formOverrides,\n formFieldOverrides,\n ...props\n}: Omit<IFormCreatorProps, 'form'> & {\n id?: string\n label?: string\n schema: JSONSchema6\n formOverrides?: IFormOverride[]\n formFieldOverrides?: IFormFieldOverride[][]\n}): ReactElement => {\n const [form, setForm] = useState<IForm | undefined>(undefined)\n useEffect(() => {\n const newForm = formOverrides === undefined\n ? schemaToFormObject(schema)\n : overridesAndSchemaToFormObject({\n formOverrides,\n formFieldOverrides,\n schema\n }) // Convert the JSON schema to a form object\n if (id !== undefined) {\n newForm.id = id\n }\n if (label !== undefined) {\n newForm.label = label\n }\n setForm(newForm)\n }, [schema, formOverrides, formFieldOverrides, id, label])\n\n return (\n <>{\n form !== undefined\n ? <FormCreator form={form} {...props} />\n : <div className='p-5 bg-slate-200 text-xs'><Loader className='pt-20' /></div>\n }</>\n\n )\n}\n\nconst FormCreator = ({\n form,\n formValueState,\n note,\n error,\n onChange,\n className,\n defaultClassName = 'flex flex-col gap-2 flex-grow',\n urlNavigable = true,\n inputOverrides,\n schema\n}: IFormCreatorProps): ReactElement => {\n const activeForm = copyAndAddPathToFields(form)\n const activeFormValues = structuredClone(formValueState[0])\n getFieldsFromFormSection(activeForm).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues)\n }\n })\n\n activeForm.settings = {\n url_navigable: urlNavigable,\n ...activeForm.settings\n }\n\n const [formValues, setFormValues] = formValueState\n\n return (\n <FormContext.Provider value={{\n form: activeForm,\n formValues,\n setFormValues,\n inputOverrides,\n schema,\n urlNavigable: activeForm.settings.url_navigable\n }}>\n <div className={utils.makeClassName({\n className: activeForm?.settings?.class_name,\n defaultClassName,\n extras: [className]\n })}>\n <FormHeader form={activeForm} note={note} error={error} />\n {\n activeForm?.fields !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined\n ? <FormStatus />\n : ''\n }\n <FormSection\n formSection={activeForm}\n onChange={onChange}\n />\n </div>\n </FormContext.Provider>\n )\n}\n\nexport type IFormSectionStatus = Record<string, {\n completed: number\n total: number\n requiredTotal: number\n requiredCompleted: number\n valid: boolean\n}>\n\nexport default FormCreator\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\nimport FormHeader from '@/Form/Creator/FormHeader'\nimport FormSection from '@/Form/Creator/FormSection'\nimport { getFieldsFromFormSection, getFieldValue } from '@/utils/getters'\nimport { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '@/utils/manipulators'\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/utils/schemaToFormHelpers'\nimport { calculateSectionStatus } from '@/utils/validators'\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { useContext, useEffect, useState, type ReactElement } from 'react'\n\nexport interface IFormCreatorProps {\n form: IForm\n schema?: JSONSchema6\n formValueState: [IFormValues, (v: IFormValues) => void]\n note?: string\n error?: string\n onChange?: IValueChangeFn\n className?: string\n defaultClassName?: string\n urlNavigable?: boolean\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nconst FormStatus = (): ReactElement => {\n const { form, formValues, setFormValues } = useContext(FormContext)\n const status = calculateSectionStatus([form], [formValues, setFormValues])\n\n return (\n <>\n <p className='text-xs mt-4'>{status[form.id]?.completed} of {status[form.id]?.total} total</p>\n <p className='text-xs mt-2'>{status[form.id]?.requiredCompleted} of {status[form.id]?.requiredTotal} required</p>\n </>\n )\n}\n\nexport const SchemaFormCreator = ({\n label,\n id,\n schema,\n formOverrides,\n formFieldOverrides,\n ...props\n}: Omit<IFormCreatorProps, 'form'> & {\n id?: string\n label?: string\n schema: JSONSchema6\n formOverrides?: IFormOverride[]\n formFieldOverrides?: IFormFieldOverride[][]\n}): ReactElement => {\n const [form, setForm] = useState<IForm | undefined>(undefined)\n useEffect(() => {\n const newForm = formOverrides === undefined\n ? schemaToFormObject(schema)\n : overridesAndSchemaToFormObject({\n formOverrides,\n formFieldOverrides,\n schema\n }) // Convert the JSON schema to a form object\n if (id !== undefined) {\n newForm.id = id\n }\n if (label !== undefined) {\n newForm.label = label\n }\n setForm(newForm)\n }, [schema, formOverrides, formFieldOverrides, id, label])\n\n return (\n <>{\n form !== undefined\n ? <FormCreator form={form} {...props} />\n : <div className='p-5 bg-slate-200 text-xs'><Loader className='pt-20' /></div>\n }</>\n\n )\n}\n\nconst FormCreator = ({\n form,\n formValueState,\n note,\n error,\n onChange,\n className,\n defaultClassName = 'flex flex-col gap-2 flex-grow',\n urlNavigable = true,\n inputOverrides,\n schema\n}: IFormCreatorProps): ReactElement => {\n const activeForm = copyAndAddPathToFields(form)\n const activeFormValues = structuredClone(formValueState[0])\n getFieldsFromFormSection(activeForm).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues)\n }\n })\n\n activeForm.settings = {\n url_navigable: urlNavigable,\n ...activeForm.settings\n }\n\n const [formValues, setFormValues] = formValueState\n\n return (\n <FormContext.Provider value={{\n form: activeForm,\n formValues,\n setFormValues,\n inputOverrides,\n schema,\n urlNavigable: activeForm.settings.url_navigable\n }}>\n <div className={utils.makeClassName({\n className: activeForm?.settings?.class_name,\n defaultClassName,\n extras: [className]\n })}>\n <FormHeader form={activeForm} note={note} error={error} />\n {\n activeForm?.fields !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined\n ? <FormStatus />\n : ''\n }\n <FormSection\n formSection={activeForm}\n onChange={onChange}\n />\n </div>\n </FormContext.Provider>\n )\n}\n\nexport type IFormSectionStatus = Record<string, {\n completed: number\n total: number\n requiredTotal: number\n requiredCompleted: number\n valid: boolean\n}>\n\nexport default FormCreator\n"],"names":["React","utils"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
2
  import { FormSectionContextProvider, useFormSectionContext } from './FormSectionContextProvider.js';
3
3
  import FormSection from './FormSection.js';
4
4
  import NavElement from './NavElement.js';
5
- import { calculateSectionStatus } from '../helpers.js';
5
+ import { calculateSectionStatus } from '../../utils/validators.js';
6
6
  import { InfoCircledIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
7
7
  import React__default from 'react';
8
8
  import { useFormContext } from './FormContextProvider.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport FormSection from '@/Form/Creator/FormSection'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { calculateSectionStatus } from '@/Form/helpers'\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\n\nconst PageNav = ({\n sections,\n level\n}: {\n sections?: IFormSection[]\n level: number\n}): ReactElement => {\n const { urlNavigable } = useFormContext()\n const { activeId, setActiveId, path } = useFormSectionContext()\n return (\n <div className='flex flex-col w-[200px] border-slate-200'>{\n sections?.map(p => {\n return (\n <NavElement\n key={p.id}\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(p.id) }}\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\n >{p.label}</NavElement>\n )\n })\n }</div>\n )\n}\n\nexport interface IPageLayoutProps {\n sections?: IFormSection[]\n onChange?: IValueChangeFn\n level: number\n ContentComponent?: React.FC<{\n level: number\n formSection?: IFormSection\n onChange?: IValueChangeFn\n sectionStatus: IFormSectionStatus\n }>\n NavComponent?: React.FC<{\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n }>\n className?: string\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nexport const ActivePage = ({\n formSection,\n onChange,\n className = 'flex flex-col gap-2 flex-grow',\n level\n}: {\n formSection?: IFormSection\n onChange?: IValueChangeFn\n className?: string\n level: number\n}): ReactElement => {\n return (\n <div className={className}>\n {\n formSection?.description !== undefined\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\n : ''\n }\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\n </div>\n )\n}\n\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <PageLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst PageLayoutContent = ({\n\n sections,\n onChange,\n inputOverrides,\n ContentComponent = ActivePage,\n NavComponent = PageNav,\n className = 'flex flex-row gap-8',\n level\n}: IPageLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n\n const { setFormValues, formValues } = useFormContext()\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n onChange={onChange}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default PageLayout\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport FormSection from '@/Form/Creator/FormSection'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { calculateSectionStatus } from '@/utils/validators'\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\n\nconst PageNav = ({\n sections,\n level\n}: {\n sections?: IFormSection[]\n level: number\n}): ReactElement => {\n const { urlNavigable } = useFormContext()\n const { activeId, setActiveId, path } = useFormSectionContext()\n return (\n <div className='flex flex-col w-[200px] border-slate-200'>{\n sections?.map(p => {\n return (\n <NavElement\n key={p.id}\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(p.id) }}\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\n >{p.label}</NavElement>\n )\n })\n }</div>\n )\n}\n\nexport interface IPageLayoutProps {\n sections?: IFormSection[]\n onChange?: IValueChangeFn\n level: number\n ContentComponent?: React.FC<{\n level: number\n formSection?: IFormSection\n onChange?: IValueChangeFn\n sectionStatus: IFormSectionStatus\n }>\n NavComponent?: React.FC<{\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n }>\n className?: string\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nexport const ActivePage = ({\n formSection,\n onChange,\n className = 'flex flex-col gap-2 flex-grow',\n level\n}: {\n formSection?: IFormSection\n onChange?: IValueChangeFn\n className?: string\n level: number\n}): ReactElement => {\n return (\n <div className={className}>\n {\n formSection?.description !== undefined\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\n : ''\n }\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\n </div>\n )\n}\n\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <PageLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst PageLayoutContent = ({\n\n sections,\n onChange,\n inputOverrides,\n ContentComponent = ActivePage,\n NavComponent = PageNav,\n className = 'flex flex-row gap-8',\n level\n}: IPageLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n\n const { setFormValues, formValues } = useFormContext()\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n onChange={onChange}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default PageLayout\n"],"names":["React"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
2
- import { calculateSectionStatus } from '../helpers.js';
2
+ import { calculateSectionStatus } from '../../utils/validators.js';
3
3
  import { ActivePage } from './Page.js';
4
4
  import { utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
5
5
  import { CaretRightIcon, CaretLeftIcon } from '../../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/Form/helpers'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\nimport { type IPageLayoutProps, ActivePage } from '@/Form/Creator/Page'\nimport { utils } from '@axdspub/axiom-ui-utilities'\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\n\nexport const WizardNav = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n\n return (\n <div className='relative'>\n <div className='h-[2px] top-5 bg-slate-300 absolute left-0 right-0 z-0' />\n <div className='flex flex-row gap-1'>\n {\n steps.map((p, i) => {\n return (\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\n <NavElement\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n className={`px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\n onClick={() => { setActiveId(p.id) }}\n >\n {p.label}\n </NavElement>\n {\n i < steps.length - 1 && steps.length > 1\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\n : ''\n }\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\n </div>\n )\n })\n }</div>\n </div>\n )\n}\n\nexport const WizardNavSmall = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\n const currentIndex = steps.indexOf(currentStep)\n const nextIndex = currentIndex + 1\n const prevIndex = currentIndex - 1\n // const params = (useParams()['*'] ?? '').split('/')\n // const path = params.slice(0, level).join('/')\n return (\n <div className='flex flex-row gap-4 justify-end'>{\n prevIndex >= 0\n ? <NavElement\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n path={path}\n id={steps[prevIndex].id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(steps[prevIndex].id) }}\n >\n <CaretLeftIcon className='inline' /> Previous\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Previous</span>\n }\n {\n nextIndex < steps.length\n ? <NavElement\n path={path}\n id={steps[nextIndex].id}\n navigable={urlNavigable ?? true}\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n onClick={() => { setActiveId(steps[nextIndex].id) }}\n >\n Next <CaretRightIcon className='inline' />\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Next</span>\n }\n </div>\n )\n}\n\nexport interface IWizardLayoutProps extends IPageLayoutProps {\n SmallNavComponent?: React.FC<{\n level: number\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n className?: string\n }>\n}\n\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <WizardLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst WizardLayoutContent = ({\n sections,\n onChange,\n ContentComponent = ActivePage,\n NavComponent = WizardNav,\n SmallNavComponent = WizardNavSmall,\n className = 'flex flex-col gap-16 pt-8',\n level\n}: IWizardLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n const { formValues, setFormValues } = useFormContext()\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n sectionStatus={sectionStatus}\n onChange={onChange}\n level={level}\n />\n <SmallNavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default WizardLayout\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\nimport { type IPageLayoutProps, ActivePage } from '@/Form/Creator/Page'\nimport { utils } from '@axdspub/axiom-ui-utilities'\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\nimport React, { type ReactElement } from 'react'\nimport { useParams } from 'react-router-dom'\nimport NavElement from '@/Form/Creator/NavElement'\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\n\nexport const WizardNav = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n\n return (\n <div className='relative'>\n <div className='h-[2px] top-5 bg-slate-300 absolute left-0 right-0 z-0' />\n <div className='flex flex-row gap-1'>\n {\n steps.map((p, i) => {\n return (\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\n <NavElement\n path={path}\n id={p.id}\n navigable={urlNavigable ?? true}\n className={`px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\n onClick={() => { setActiveId(p.id) }}\n >\n {p.label}\n </NavElement>\n {\n i < steps.length - 1 && steps.length > 1\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\n : ''\n }\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\n </div>\n )\n })\n }</div>\n </div>\n )\n}\n\nexport const WizardNavSmall = ({\n sections,\n sectionStatus,\n level\n}: {\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n level: number\n}): ReactElement => {\n const { activeId, setActiveId, path } = useFormSectionContext()\n const { urlNavigable } = useFormContext()\n const steps = ((sections ?? []) as IWizardStep[]).sort((a, b) => a.order - b.order)\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\n const currentIndex = steps.indexOf(currentStep)\n const nextIndex = currentIndex + 1\n const prevIndex = currentIndex - 1\n // const params = (useParams()['*'] ?? '').split('/')\n // const path = params.slice(0, level).join('/')\n return (\n <div className='flex flex-row gap-4 justify-end'>{\n prevIndex >= 0\n ? <NavElement\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n path={path}\n id={steps[prevIndex].id}\n navigable={urlNavigable ?? true}\n onClick={() => { setActiveId(steps[prevIndex].id) }}\n >\n <CaretLeftIcon className='inline' /> Previous\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Previous</span>\n }\n {\n nextIndex < steps.length\n ? <NavElement\n path={path}\n id={steps[nextIndex].id}\n navigable={urlNavigable ?? true}\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\n onClick={() => { setActiveId(steps[nextIndex].id) }}\n >\n Next <CaretRightIcon className='inline' />\n </NavElement>\n : <span className={utils.createButtonClass({\n className: 'px-4 bg-white border-none text-sm text-slate-400'\n })}>Next</span>\n }\n </div>\n )\n}\n\nexport interface IWizardLayoutProps extends IPageLayoutProps {\n SmallNavComponent?: React.FC<{\n level: number\n sections?: IFormSection[]\n sectionStatus: IFormSectionStatus\n className?: string\n }>\n}\n\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\n if (props.sections === undefined) {\n return <></>\n }\n const { urlNavigable } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, props.level).join('/')\n const id = urlNavigable\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\n : props.sections[0]?.id ?? null\n\n return (\n <FormSectionContextProvider path={path} id={id}>\n <WizardLayoutContent {...props} />\n </FormSectionContextProvider>\n )\n}\n\nconst WizardLayoutContent = ({\n sections,\n onChange,\n ContentComponent = ActivePage,\n NavComponent = WizardNav,\n SmallNavComponent = WizardNavSmall,\n className = 'flex flex-col gap-16 pt-8',\n level\n}: IWizardLayoutProps): ReactElement => {\n if (sections === undefined) {\n return <></>\n }\n const { formValues, setFormValues } = useFormContext()\n const { activeId } = useFormSectionContext()\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n\n return (\n\n <div className={className}>\n <NavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n <ContentComponent\n formSection={formSection}\n sectionStatus={sectionStatus}\n onChange={onChange}\n level={level}\n />\n <SmallNavComponent\n sections={sections}\n sectionStatus={sectionStatus}\n level={level}\n />\n </div>\n )\n}\n\nexport default WizardLayout\n"],"names":["React","utils"],"mappings":"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"}
@@ -1,4 +1,9 @@
1
- export { addFieldPath, assignDefaultValuesToFormValues, calculateSectionStatus, checkCondition, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getUniqueFormFields, makeJsonPath, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace } from './Form/helpers.js';
1
+ export { getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getValueFromPath, makeJsonPath } from './utils/getters.js';
2
+ export { addFieldPath, assignDefaultValuesToFormValues, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace } from './utils/manipulators.js';
3
+ export { calculateSectionStatus, checkCondition } from './utils/validators.js';
4
+ import * as schemaToFormHelpers from './utils/schemaToFormHelpers.js';
5
+ export { schemaToFormHelpers as schemToFormHelpers };
6
+ export { buildFormObject, getLabelFromSchema, getSchemaPaths, getValueFromSchema, mergeObjects, overridesAndSchemaToFormObject, schemaToFormObject, validateAgainstSchema, validateSchema } from './utils/schemaToFormHelpers.js';
2
7
  export { default as FormCreator } from './Form/Creator/FormCreator.js';
3
8
  export { default as FieldCreator } from './Form/Components/FieldCreator.js';
4
9
  export { default as BooleanInput } from './Form/Components/Inputs/Boolean.js';
@@ -11,6 +16,4 @@ export { default as GeoJSONInput } from './Form/Components/Inputs/GeoJSONInputLo
11
16
  export { default as DateTimeInput } from './Form/Components/Inputs/DateTime.js';
12
17
  export { default as DateInput } from './Form/Components/Inputs/Date.js';
13
18
  export { default as TimeInput } from './Form/Components/Inputs/Time.js';
14
- import * as schemaToFormHelpers from './Form/schemaToFormHelpers.js';
15
- export { schemaToFormHelpers as schemToFormHelpers };
16
19
  //# sourceMappingURL=library.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"library.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,105 @@
1
+ import get from '../../_virtual/get.js';
2
+
3
+ /**
4
+ * Returns the JSON path for a given field
5
+ *
6
+ * @param field - The field to get the JSON path for
7
+ * @param index - The index of the field in the array (optional)
8
+ * @returns The JSON path for the given field
9
+ */
10
+ var makeJsonPath = function (field, index) {
11
+ if (field.destPath !== undefined) {
12
+ return "".concat(field.destPath).concat(field.multiple && (field.index !== undefined || index !== undefined) ? "[".concat(index !== null && index !== void 0 ? index : field.index, "]") : '');
13
+ }
14
+ else if (field.path === undefined) {
15
+ return field.id;
16
+ }
17
+ else {
18
+ var path = field.path;
19
+ var pathLen_1 = path.length;
20
+ return field.path.map(function (f, i) { var _a; return (f.multiple && (i < (pathLen_1 - 1) || index !== undefined || f.index !== undefined)) ? "".concat(f.id).concat("[".concat((_a = index !== null && index !== void 0 ? index : f.index) !== null && _a !== void 0 ? _a : 0, "]")) : f.id; }).join('.');
21
+ }
22
+ };
23
+ /**
24
+ * Returns the child fields of a given field
25
+ *
26
+ * @param field - The field to get the child fields from
27
+ * @returns The child fields of the given field
28
+ */
29
+ var getChildFields = function (field) {
30
+ var _a;
31
+ return (_a = field === null || field === void 0 ? void 0 : field.fields) !== null && _a !== void 0 ? _a : [];
32
+ };
33
+ /**
34
+ * Recursively gets all fields from a given array of fields
35
+ *
36
+ * @param fields - The array of fields to get the fields from
37
+ * @returns An array of all fields
38
+ */
39
+ var getFields = function (fields) {
40
+ if (fields === undefined) {
41
+ return [];
42
+ }
43
+ var all = fields.map(function (field) {
44
+ var fields = [field];
45
+ var children = getChildFields(field);
46
+ children.forEach(function (c) {
47
+ fields = fields.concat(getFields([c]));
48
+ });
49
+ return fields;
50
+ }).flat(Infinity);
51
+ return all;
52
+ };
53
+ /**
54
+ * Wrapper for lodash `get` function to get the value from a given path in the form values
55
+ *
56
+ * @param path - The path to get the value from
57
+ * @param formValues - The form values to get the value from
58
+ * @returns The value from the given path in the form values or undefined
59
+ */
60
+ function getValueFromPath(path, formValues) {
61
+ return get(formValues, path);
62
+ }
63
+ /**
64
+ * Returns the value of a given field from the form values
65
+ *
66
+ * @param field - The field to get the value from
67
+ * @param formValues - The form values to get the value from
68
+ * @param index - The index of the field in the array (optional). If undefined, the last value will be returned as an array if it is one
69
+ * @returns The value of the given field from the form values or undefined
70
+ */
71
+ function getFieldValue(field, formValues, index) {
72
+ var path = makeJsonPath(field, index);
73
+ var val = getValueFromPath(path, formValues); // formValues[field.id]
74
+ return val;
75
+ }
76
+ /**
77
+ * Returns the path of a given field. Used for writing to form values
78
+ *
79
+ * @param field - The field to get the path from
80
+ * @returns The path of the given field or the id of the field if no path is defined
81
+ */
82
+ function getPathFromField(field) {
83
+ // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)
84
+ if (field.destPath) {
85
+ return field.destPath;
86
+ }
87
+ 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;
88
+ // return makeJsonPath(field)
89
+ }
90
+ /**
91
+ * Returns all fields and child from a given form section. A form can be a form section or a wizard step or a page. This will recursively find child fields in pages, wizard steps and object fields
92
+ *
93
+ * @param formSection - The form section to get the fields from
94
+ * @returns An array of fields from the given form section
95
+ */
96
+ function getFieldsFromFormSection(formSection) {
97
+ var _a, _b, _c;
98
+ 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);
99
+ 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);
100
+ 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 : []);
101
+ return fields;
102
+ }
103
+
104
+ export { getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getValueFromPath, makeJsonPath };
105
+ //# sourceMappingURL=getters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getters.js","sources":["../../../../src/utils/getters.ts"],"sourcesContent":["import { type IFormSection, type IFormValues, type IValueType, type IFormField } from '@/Form/Creator/FormCreatorTypes'\nimport get from 'lodash/get'\n\n/**\n * Returns the JSON path for a given field\n *\n * @param field - The field to get the JSON path for\n * @param index - The index of the field in the array (optional)\n * @returns The JSON path for the given field\n */\nexport const makeJsonPath = (field: IFormField, index?: number): string => {\n if (field.destPath !== undefined) {\n return `${field.destPath}${field.multiple && (field.index !== undefined || index !== undefined) ? `[${index ?? field.index}]` : ''}`\n } else if (field.path === undefined) {\n return field.id\n } else {\n const path = field.path\n const pathLen = path.length\n return field.path.map((f, i) => (f.multiple && (i < (pathLen - 1) || index !== undefined || f.index !== undefined)) ? `${f.id}${`[${index ?? f.index ?? 0}]`}` : f.id).join('.')\n }\n}\n\n/**\n * Returns the child fields of a given field\n *\n * @param field - The field to get the child fields from\n * @returns The child fields of the given field\n */\nexport const getChildFields = (field: { id: string, fields?: IFormField[] }): IFormField[] => {\n return field?.fields ?? []\n}\n\n/**\n * Recursively gets all fields from a given array of fields\n *\n * @param fields - The array of fields to get the fields from\n * @returns An array of all fields\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\n/**\n * Wrapper for lodash `get` function to get the value from a given path in the form values\n *\n * @param path - The path to get the value from\n * @param formValues - The form values to get the value from\n * @returns The value from the given path in the form values or undefined\n */\n\nexport function getValueFromPath (path: string, formValues: IFormValues): IValueType | IValueType[] | undefined {\n return get(formValues, path)\n}\n\n/**\n * Returns the value of a given field from the form values\n *\n * @param field - The field to get the value from\n * @param formValues - The form values to get the value from\n * @param index - The index of the field in the array (optional). If undefined, the last value will be returned as an array if it is one\n * @returns The value of the given field from the form values or undefined\n */\n\nexport function getFieldValue (field: IFormField, formValues: IFormValues, index?: number): IValueType | IValueType[] | undefined {\n const path = makeJsonPath(field, index)\n const val = getValueFromPath(path, formValues) // formValues[field.id]\n return val\n}\n\n/**\n * Returns the path of a given field. Used for writing to form values\n *\n * @param field - The field to get the path from\n * @returns The path of the given field or the id of the field if no path is defined\n */\nexport function getPathFromField (field: IFormField): string {\n // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)\n if (field.destPath) {\n return field.destPath\n }\n return field.path !== undefined ? field.path.filter(f => !(f.type === 'object' && f.skip_path === true)).map(f => f.id).join('.') : field.id\n // return makeJsonPath(field)\n}\n\n/**\n * Returns all fields and child from a given form section. A form can be a form section or a wizard step or a page. This will recursively find child fields in pages, wizard steps and object fields\n *\n * @param formSection - The form section to get the fields from\n * @returns An array of fields from the given form section\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"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import { getFieldsFromFormSection, getPathFromField, getFieldValue } from './getters.js';
2
+ import { checkCondition } from './validators.js';
3
+ import set from '../../_virtual/set.js';
4
+
5
+ var addFieldPath = function (field, parentPath) {
6
+ if (field.type === 'object' && field.skip_path === true) {
7
+ field.path = parentPath !== undefined ? parentPath.slice() : [];
8
+ field.level = parentPath !== undefined ? parentPath.length : 0;
9
+ }
10
+ else {
11
+ var newSegment = field; // `${field.id}${field.multiple === true ? '[]' : ''}`
12
+ field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment];
13
+ field.level = parentPath !== undefined ? parentPath.length + 1 : 1;
14
+ }
15
+ if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {
16
+ field.fields = field.fields.map(function (childField) {
17
+ var _a;
18
+ return addFieldPath(childField, (_a = field.path) === null || _a === void 0 ? void 0 : _a.slice());
19
+ });
20
+ }
21
+ return field;
22
+ };
23
+ function addPathsToFormSections(section) {
24
+ if (section.pages !== undefined) {
25
+ section.pages = section.pages.map(function (page) {
26
+ return addPathsToFormSections(page);
27
+ });
28
+ }
29
+ if (section.wizard_steps !== undefined) {
30
+ section.wizard_steps = section.wizard_steps.map(function (wizardStep) {
31
+ return addPathsToFormSections(wizardStep);
32
+ });
33
+ }
34
+ if (section.fields !== undefined) {
35
+ section.fields = section.fields.map(function (field) {
36
+ return addFieldPath(field);
37
+ });
38
+ }
39
+ return section;
40
+ }
41
+ function copyAndAddPathToFields(formOrContainer) {
42
+ var form = addPathsToFormSections(structuredClone(formOrContainer));
43
+ return form;
44
+ }
45
+ function cleanFormValuesLevel(formValues, fields, formValuesPath) {
46
+ if (formValuesPath === void 0) { formValuesPath = ''; }
47
+ var formValuesCopy = structuredClone(formValues);
48
+ Object.keys(formValues).forEach(function (key) {
49
+ var path = formValuesPath !== '' ? "".concat(formValuesPath, ".").concat(key) : key;
50
+ var field = fields === null || fields === void 0 ? void 0 : fields.find(function (f) { return getPathFromField(f) === path; });
51
+ if (field !== undefined && !checkCondition(field, formValues)) {
52
+ formValuesCopy[key] = undefined;
53
+ // this ensures that objects that are the result of mapping get checked
54
+ // but fields that are not explicitly defined as objects but may contain objects
55
+ // are not checked (geom, json, etc)
56
+ }
57
+ else if (typeof formValuesCopy[key] === 'object' && ((field === null || field === void 0 ? void 0 : field.type) === 'object' || field === undefined)) {
58
+ formValuesCopy[key] = cleanFormValuesLevel(formValuesCopy[key], fields, path);
59
+ }
60
+ else if (field === undefined) {
61
+ formValuesCopy[key] = undefined;
62
+ }
63
+ });
64
+ // const fieldIds = fields.map(f => getPathFromField(f))
65
+ // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))
66
+ return formValuesCopy;
67
+ }
68
+ function cleanUnusedDependenciesFromFormValues(form, formValues) {
69
+ var fields = getFieldsFromFormSection(form);
70
+ var newFormValues = cleanFormValuesLevel(formValues, fields);
71
+ return newFormValues;
72
+ }
73
+ function updateFormValuesWithFieldValueInPlace(field, newValue, formValues) {
74
+ var fieldPath = getPathFromField(field);
75
+ set(formValues, fieldPath, newValue);
76
+ }
77
+ function updateFormValuesWithFieldValue(field, newValue, formValues) {
78
+ var formValuesCopy = structuredClone(formValues);
79
+ updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy);
80
+ return formValuesCopy;
81
+ }
82
+ var assignDefaultValuesToFormValues = function (form, formValues) {
83
+ var formValuesCopy = structuredClone(formValues);
84
+ var formWithPaths = copyAndAddPathToFields(form);
85
+ getFieldsFromFormSection(formWithPaths).forEach(function (field) {
86
+ if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {
87
+ updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy);
88
+ }
89
+ });
90
+ return formValuesCopy;
91
+ };
92
+
93
+ export { addFieldPath, assignDefaultValuesToFormValues, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace };
94
+ //# sourceMappingURL=manipulators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manipulators.js","sources":["../../../../src/utils/manipulators.ts"],"sourcesContent":["import { type IFormSection, type IPage, type IWizardStep, type IFormField, type IForm, type IValueType, type IFormValues } from '@/Form/Creator/FormCreatorTypes'\nimport { getFieldsFromFormSection, getFieldValue, getPathFromField } from '@/utils/getters'\nimport { checkCondition } from '@/utils/validators'\nimport set from 'lodash/set'\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\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 cleanFormValuesLevel (formValues: IFormValues, fields: IFormField[], formValuesPath: string = ''): IFormValues {\n const formValuesCopy = structuredClone(formValues)\n Object.keys(formValues).forEach(key => {\n const path = formValuesPath !== '' ? `${formValuesPath}.${key}` : key\n const field = fields?.find(f => getPathFromField(f) === path)\n if (field !== undefined && !checkCondition(field, formValues)) {\n formValuesCopy[key] = undefined\n // this ensures that objects that are the result of mapping get checked\n // but fields that are not explicitly defined as objects but may contain objects\n // are not checked (geom, json, etc)\n } else if (typeof formValuesCopy[key] === 'object' && (\n field?.type === 'object' || field === undefined\n )) {\n formValuesCopy[key] = cleanFormValuesLevel(formValuesCopy[key] as IFormValues, fields, path)\n } else if (field === undefined) {\n formValuesCopy[key] = undefined\n }\n })\n // const fieldIds = fields.map(f => getPathFromField(f))\n // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))\n return formValuesCopy\n}\n\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\n const fields = getFieldsFromFormSection(form)\n const newFormValues = cleanFormValuesLevel(formValues, fields)\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 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":";;;;AAKa,IAAA,YAAY,GAAG,UAAC,KAAiB,EAAE,UAAyB,EAAA;AACvE,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE;AACvD,QAAA,KAAK,CAAC,IAAI,GAAG,UAAU,KAAK,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE;AAC/D,QAAA,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;;SACzD;AACL,QAAA,IAAM,UAAU,GAAG,KAAK,CAAA;QACxB,KAAK,CAAC,IAAI,GAAG,UAAU,KAAK,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5F,QAAA,KAAK,CAAC,KAAK,GAAG,UAAU,KAAK,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;;IAEpE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,KAAK,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;QACvF,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,UAAU,EAAA;;AACxC,YAAA,OAAO,YAAY,CAAC,UAAU,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;AACtD,SAAC,CAAC;;AAEJ,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,sBAAsB,CAAE,OAAqB,EAAA;AACpD,IAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC/B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA;AACpC,YAAA,OAAO,sBAAsB,CAAC,IAAI,CAAC;AACrC,SAAC,CAAY;;AAEf,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QACtC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,UAAU,EAAA;AACxD,YAAA,OAAO,sBAAsB,CAAC,UAAU,CAAC;AAC3C,SAAC,CAAkB;;AAErB,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA;AACvC,YAAA,OAAO,YAAY,CAAC,KAAK,CAAC;AAC5B,SAAC,CAAC;;AAEJ,IAAA,OAAO,OAAO;AAChB;AAEM,SAAU,sBAAsB,CAAE,eAAsB,EAAA;IAC5D,IAAM,IAAI,GAAG,sBAAsB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAU;AAC9E,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,oBAAoB,CAAE,UAAuB,EAAE,MAAoB,EAAE,cAA2B,EAAA;AAA3B,IAAA,IAAA,cAAA,KAAA,MAAA,EAAA,EAAA,cAA2B,GAAA,EAAA,CAAA;AACvG,IAAA,IAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,EAAA;AACjC,QAAA,IAAM,IAAI,GAAG,cAAc,KAAK,EAAE,GAAG,EAAG,CAAA,MAAA,CAAA,cAAc,cAAI,GAAG,CAAE,GAAG,GAAG;QACrE,IAAM,KAAK,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA,EAAA,CAAC;AAC7D,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AAC7D,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;;;;;aAI1B,IAAI,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,QAAQ,KAChD,CAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,IAAI,MAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAChD,EAAE;AACD,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAgB,EAAE,MAAM,EAAE,IAAI,CAAC;;AACvF,aAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;;AAEnC,KAAC,CAAC;;;AAGF,IAAA,OAAO,cAAc;AACvB;AAEgB,SAAA,qCAAqC,CAAE,IAAW,EAAE,UAAuB,EAAA;AACzF,IAAA,IAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC;IAC7C,IAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC;AAC9D,IAAA,OAAO,aAAa;AACtB;SAEgB,qCAAqC,CAAE,KAAiB,EAAE,QAAmC,EAAE,UAAuB,EAAA;AACpI,IAAA,IAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;AACzC,IAAA,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;AACtC;SAEgB,8BAA8B,CAAE,KAAiB,EAAE,QAAmC,EAAE,UAAuB,EAAA;AAC7H,IAAA,IAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC;AAClD,IAAA,qCAAqC,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC;AACtE,IAAA,OAAO,cAAc;AACvB;AAEa,IAAA,+BAA+B,GAAG,UAAC,IAAW,EAAE,UAAuB,EAAA;AAClF,IAAA,IAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC;AAClD,IAAA,IAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC;AAClD,IAAA,wBAAwB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;AACnD,QAAA,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,SAAS,EAAE;YAC1F,qCAAqC,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC;;AAEpF,KAAC,CAAC;AACF,IAAA,OAAO,cAAc;AACvB;;;;"}
@@ -5,9 +5,10 @@ import metaSchemaDraftV7 from '../../node_modules/ajv/lib/refs/json-schema-draft
5
5
  import metaSchemaDraftV6 from '../../node_modules/ajv/lib/refs/json-schema-draft-06.json.js';
6
6
  import metaSchemaV5 from '../../node_modules/ajv/lib/refs/json-schema-2020-12/schema.json.js';
7
7
  import metaSchemaV4 from '../../node_modules/ajv/lib/refs/json-schema-2019-09/schema.json.js';
8
- import { resolveRefs } from './resolveRefs.js';
8
+ import { resolveRefs } from '../Form/resolveRefs.js';
9
9
  import { omit } from 'lodash';
10
- import { copyAndAddPathToFields, getFieldsFromFormSection, getPathFromField } from './helpers.js';
10
+ import { getFieldsFromFormSection, getPathFromField } from './getters.js';
11
+ import { copyAndAddPathToFields } from './manipulators.js';
11
12
 
12
13
  var getValidator = function (schema) {
13
14
  var ajv = new Ajv({
@@ -326,13 +327,13 @@ var mergeFormFields = function (_a) {
326
327
  return (fieldOverrides !== null && fieldOverrides !== void 0 ? fieldOverrides : []).map(function (field) {
327
328
  var _a, _b, _c, _d;
328
329
  var schemaField = schemaFormObject[field.prop];
329
- var pageField = __assign({}, mergeObjects([
330
- schemaField,
330
+ var sectionField = __assign({}, mergeObjects([
331
+ __assign(__assign({}, schemaField), { destPath: field.prop }),
331
332
  mergeObjects(formFieldsOverrideMap.map(function (overrides) { var _a; return (_a = overrides[field.prop]) !== null && _a !== void 0 ? _a : {}; })),
332
333
  field
333
334
  ]));
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);
335
+ var id = (_a = sectionField.id) !== null && _a !== void 0 ? _a : makeFormFieldId([sectionField.id]);
336
+ return __assign({ type: (_b = sectionField.type) !== null && _b !== void 0 ? _b : 'text', id: id, label: (_d = (_c = sectionField.label) !== null && _c !== void 0 ? _c : makeLabel([id])) !== null && _d !== void 0 ? _d : 'Default' }, sectionField);
336
337
  });
337
338
  };
338
339
  var mergeFormSections = function (_a) {
@@ -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 } 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 { getFieldsFromFormSection, getPathFromField } from '@/utils/getters'\nimport { copyAndAddPathToFields } from '@/utils/manipulators'\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 sectionField = {\n ...mergeObjects<IFormFieldOverride | IFormField>([\n {\n ...schemaField,\n destPath: field.prop\n },\n mergeObjects<IFormFieldOverride>(formFieldsOverrideMap.map(overrides => overrides[field.prop] ?? {})),\n field\n ])\n }\n const id = sectionField.id ?? makeFormFieldId([sectionField.id])\n return {\n type: sectionField.type ?? 'text',\n id,\n label: sectionField.label ?? makeLabel([id]) ?? 'Default',\n ...sectionField\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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"}
@@ -0,0 +1,36 @@
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
+ ? fieldValue === val_1
11
+ : fieldValue !== null && fieldValue !== undefined && fieldValue !== false && fieldValue !== '';
12
+ });
13
+ return check;
14
+ }
15
+ return true;
16
+ };
17
+ var testField = function (field, formValues) {
18
+ var val = getFieldValue(field, formValues);
19
+ return val !== undefined && val !== null && val !== '';
20
+ };
21
+ var calculateSectionStatus = function (sections, formValueState) {
22
+ var formValues = formValueState[0];
23
+ return Object.fromEntries(sections.map(function (s) {
24
+ var fields = getFieldsFromFormSection(s).filter(function (f) { return f.type !== 'object'; });
25
+ var total = fields.length;
26
+ var completed = fields.filter(function (f) { return testField(f, formValues); }).length;
27
+ var required = fields.filter(function (f) { return f.required; });
28
+ var requiredTotal = required.length;
29
+ var requiredCompleted = required.filter(function (f) { return testField(f, formValues); }).length;
30
+ var valid = requiredTotal === requiredCompleted;
31
+ return [s.id, { completed: completed, total: total, requiredTotal: requiredTotal, requiredCompleted: requiredCompleted, valid: valid }];
32
+ }));
33
+ };
34
+
35
+ export { calculateSectionStatus, checkCondition };
36
+ //# sourceMappingURL=validators.js.map