@axdspub/axiom-ui-forms 0.2.6 → 0.2.8

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 (64) hide show
  1. package/library/axiom-ui-forms.d.ts +21 -4
  2. package/library/esm/_virtual/formats.js +4 -0
  3. package/library/esm/_virtual/formats.js.map +1 -0
  4. package/library/esm/_virtual/index.js +6 -2
  5. package/library/esm/_virtual/index.js.map +1 -1
  6. package/library/esm/_virtual/index10.js +2 -2
  7. package/library/esm/_virtual/index11.js +2 -2
  8. package/library/esm/_virtual/index12.js +2 -2
  9. package/library/esm/_virtual/index13.js +4 -0
  10. package/library/esm/_virtual/index13.js.map +1 -0
  11. package/library/esm/_virtual/index14.js +4 -0
  12. package/library/esm/_virtual/index14.js.map +1 -0
  13. package/library/esm/_virtual/index2.js +2 -2
  14. package/library/esm/_virtual/index3.js +2 -2
  15. package/library/esm/_virtual/index4.js +2 -2
  16. package/library/esm/_virtual/index5.js +2 -2
  17. package/library/esm/_virtual/index5.js.map +1 -1
  18. package/library/esm/_virtual/index6.js +2 -2
  19. package/library/esm/_virtual/index7.js +2 -2
  20. package/library/esm/_virtual/index7.js.map +1 -1
  21. package/library/esm/_virtual/index8.js +2 -2
  22. package/library/esm/_virtual/index9.js +2 -2
  23. package/library/esm/_virtual/limit.js +4 -0
  24. package/library/esm/_virtual/limit.js.map +1 -0
  25. package/library/esm/node_modules/ajv/dist/compile/codegen/index.js +1 -1
  26. package/library/esm/node_modules/ajv/dist/compile/index.js +1 -1
  27. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  28. package/library/esm/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  29. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  30. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  31. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  32. package/library/esm/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  33. package/library/esm/node_modules/ajv-formats/dist/formats.js +221 -0
  34. package/library/esm/node_modules/ajv-formats/dist/formats.js.map +1 -0
  35. package/library/esm/node_modules/ajv-formats/dist/index.js +53 -0
  36. package/library/esm/node_modules/ajv-formats/dist/index.js.map +1 -0
  37. package/library/esm/node_modules/ajv-formats/dist/limit.js +84 -0
  38. package/library/esm/node_modules/ajv-formats/dist/limit.js.map +1 -0
  39. package/library/esm/node_modules/fast-uri/index.js +1 -1
  40. package/library/esm/node_modules/json-schema-traverse/index.js +1 -1
  41. package/library/esm/node_modules/react-router/dist/development/chunk-HA7DTUK3.js +1 -1
  42. package/library/esm/node_modules/react-router/node_modules/cookie/dist/index.js +1 -1
  43. package/library/esm/src/Form/Components/FieldCreator.js +0 -1
  44. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  45. package/library/esm/src/Form/Components/Inputs/Constant.js +18 -0
  46. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -0
  47. package/library/esm/src/Form/Components/Inputs/OneOfInput.js +9 -0
  48. package/library/esm/src/Form/Components/Inputs/OneOfInput.js.map +1 -0
  49. package/library/esm/src/Form/Components/Inputs/String.js +9 -3
  50. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  51. package/library/esm/src/Form/Components/Inputs/inputMap.js +5 -1
  52. package/library/esm/src/Form/Components/Inputs/inputMap.js.map +1 -1
  53. package/library/esm/src/Form/Creator/FormCreator.js +37 -48
  54. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  55. package/library/esm/src/Form/Creator/Page.js +24 -14
  56. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  57. package/library/esm/src/Form/Creator/Wizard.js +25 -14
  58. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  59. package/library/esm/src/Form/helpers.js +11 -1
  60. package/library/esm/src/Form/helpers.js.map +1 -1
  61. package/library/esm/src/Form/schemaToFormHelpers.js +123 -18
  62. package/library/esm/src/Form/schemaToFormHelpers.js.map +1 -1
  63. package/library/esm/src/library.js +1 -1
  64. package/package.json +2 -1
@@ -0,0 +1,84 @@
1
+ import { __exports as limit } from '../../../_virtual/limit.js';
2
+ import { __require as requireAjv } from '../../ajv/dist/ajv.js';
3
+ import { __require as requireCodegen } from '../../ajv/dist/compile/codegen/index.js';
4
+
5
+ var hasRequiredLimit;
6
+
7
+ function requireLimit () {
8
+ if (hasRequiredLimit) return limit;
9
+ hasRequiredLimit = 1;
10
+ (function (exports) {
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.formatLimitDefinition = void 0;
13
+ const ajv_1 = requireAjv();
14
+ const codegen_1 = requireCodegen();
15
+ const ops = codegen_1.operators;
16
+ const KWDs = {
17
+ formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
18
+ formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
19
+ formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
20
+ formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE },
21
+ };
22
+ const error = {
23
+ message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,
24
+ params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,
25
+ };
26
+ exports.formatLimitDefinition = {
27
+ keyword: Object.keys(KWDs),
28
+ type: "string",
29
+ schemaType: "string",
30
+ $data: true,
31
+ error,
32
+ code(cxt) {
33
+ const { gen, data, schemaCode, keyword, it } = cxt;
34
+ const { opts, self } = it;
35
+ if (!opts.validateFormats)
36
+ return;
37
+ const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format");
38
+ if (fCxt.$data)
39
+ validate$DataFormat();
40
+ else
41
+ validateFormat();
42
+ function validate$DataFormat() {
43
+ const fmts = gen.scopeValue("formats", {
44
+ ref: self.formats,
45
+ code: opts.code.formats,
46
+ });
47
+ const fmt = gen.const("fmt", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);
48
+ cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != "object"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != "function"`, compareCode(fmt)));
49
+ }
50
+ function validateFormat() {
51
+ const format = fCxt.schema;
52
+ const fmtDef = self.formats[format];
53
+ if (!fmtDef || fmtDef === true)
54
+ return;
55
+ if (typeof fmtDef != "object" ||
56
+ fmtDef instanceof RegExp ||
57
+ typeof fmtDef.compare != "function") {
58
+ throw new Error(`"${keyword}": format "${format}" does not define "compare" function`);
59
+ }
60
+ const fmt = gen.scopeValue("formats", {
61
+ key: format,
62
+ ref: fmtDef,
63
+ code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,
64
+ });
65
+ cxt.fail$data(compareCode(fmt));
66
+ }
67
+ function compareCode(fmt) {
68
+ return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
69
+ }
70
+ },
71
+ dependencies: ["format"],
72
+ };
73
+ const formatLimitPlugin = (ajv) => {
74
+ ajv.addKeyword(exports.formatLimitDefinition);
75
+ return ajv;
76
+ };
77
+ exports.default = formatLimitPlugin;
78
+
79
+ } (limit));
80
+ return limit;
81
+ }
82
+
83
+ export { requireLimit as __require };
84
+ //# sourceMappingURL=limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.js","sources":["../../../../../node_modules/ajv-formats/dist/limit.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != \"object\"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map"],"names":["require$$0","require$$1"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import { __module as fastUri } from '../../_virtual/index11.js';
1
+ import { __module as fastUri } from '../../_virtual/index13.js';
2
2
  import { __require as requireUtils } from './lib/utils.js';
3
3
  import { __require as requireSchemes } from './lib/schemes.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __module as jsonSchemaTraverse } from '../../_virtual/index10.js';
1
+ import { __module as jsonSchemaTraverse } from '../../_virtual/index12.js';
2
2
 
3
3
  var hasRequiredJsonSchemaTraverse;
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import '../../../../_virtual/index5.js';
2
+ import '../../../../_virtual/index7.js';
3
3
 
4
4
  /**
5
5
  * react-router v7.2.0
@@ -1,4 +1,4 @@
1
- import { __exports as dist } from '../../../../../_virtual/index12.js';
1
+ import { __exports as dist } from '../../../../../_virtual/index14.js';
2
2
 
3
3
  var hasRequiredDist;
4
4
 
@@ -88,7 +88,6 @@ var FieldCreator = function (_a) {
88
88
  };
89
89
  var onChangeFn = onChange !== null && onChange !== void 0 ? onChange : defaultOnChange;
90
90
  var initialValue = value !== undefined ? value : getFieldValue(field, formValues);
91
- console.log("initialValue: ".concat(field.id), initialValue);
92
91
  return InputComponent !== undefined
93
92
  ? React__default.createElement("div", { className: index$1.makeClassName({
94
93
  className: className,
@@ -1 +1 @@
1
- {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import inputMap from '@/Form/Components/Inputs/inputMap'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\nimport { type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\nimport { checkCondition, cleanUnusedDependenciesFromFormValues, getFieldValue, updateFormValuesWithFieldValue } from '@/Form/helpers'\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\nimport React, { useState, type ReactElement } from 'react'\n\ninterface IFieldCreator {\n field: IFormField\n onChange?: IValueChangeFn\n className?: string\n defaultClassName?: string\n value?: IValueType | IValueType[]\n}\n\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\n\nconst DeleteMultiple = ({\n doDelete\n}: {\n doDelete: () => void\n}): ReactElement => {\n const [confirm, setConfirm] = useState(false)\n\n return (\n <>\n {\n confirm\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\n <Button size='xs' type='submit'\n onClick={() => {\n doDelete()\n setConfirm(false)\n }}>Yes <CheckIcon className='inline ml-2' />\n </Button>\n <Button size='xs' type='alert'\n onClick={() => {\n setConfirm(false)\n }}>Cancel <Cross1Icon className='inline ml-2' />\n </Button>\n </p>\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\n Delete <TrashIcon className='inline ml-2 fill-white' />\n </Button>\n }\n </>\n )\n}\n\nconst OneOfMultiple = ({\n InputComponent,\n field,\n value,\n index,\n onChange,\n values\n\n}: {\n InputComponent: React.FC<IFieldInputProps>\n field: IFormField\n value: IValueType\n index: number\n onChange: (v: IValueType[] | undefined) => void\n values: IValueType[]\n}): ReactElement => {\n const addValue = (v: IValueType | null): void => {\n const newValues = [...values]\n newValues.splice(index + 1, 0, v)\n onChange(newValues)\n }\n\n return (\n <div className='flex flex-col gap-2'>\n <InputComponent\n field={{\n ...field,\n required: false,\n label: index > 0 ? null : field.label,\n id: `${field.id}-${index}`\n }}\n value={value}\n onChange={(v) => {\n const newValues = [...values]\n newValues[index] = v as IValueType\n onChange(newValues)\n }}\n />\n\n <div className='flex flex-row justify-between w-full p-2'>\n {index > 0 && (\n <DeleteMultiple doDelete={() => {\n const newValues = [...values]\n newValues.splice(index, 1)\n onChange(newValues)\n }} />\n )}\n <div className='ml-auto flex gap-2'>\n <Button\n size='xs'\n className={toolButtonClass}\n onClick={() => {\n addValue(null)\n }}>Add <PlusIcon className='inline ml-2' /></Button>\n <Button\n size='xs'\n className={toolButtonClass}\n onClick={() => {\n addValue(structuredClone(value))\n }}>Duplicate <CopyIcon className='inline ml-2' />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nconst MultipleFieldCreator = ({\n field,\n onChange,\n value\n}: IFieldCreator): ReactElement => {\n const { formValues, setFormValues, inputOverrides } = useFormContext()\n const defaultOnChange = (v: IValueType[] | undefined): void => {\n const formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues)\n setFormValues(formValuesCopy)\n }\n\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\n const initialValues = (initialVal !== undefined ? (Array.isArray(initialVal) ? initialVal : [initialVal]) : [null])\n\n const InputComponent = {\n ...inputMap,\n ...(inputOverrides ?? {})\n }[field.type]\n\n return <div>\n {\n initialValues?.map((value, index) => {\n return <OneOfMultiple\n key={`${field.id}-${index}`}\n InputComponent={InputComponent}\n field={field}\n value={value}\n index={index}\n onChange={onChange ?? defaultOnChange}\n values={initialValues}\n />\n })\n }\n </div>\n}\n\nconst FieldCreator = ({\n field,\n value,\n onChange,\n className,\n defaultClassName = 'py-2 flex flex-col gap-8'\n}: IFieldCreator): ReactElement | null => {\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\n const InputComponent = {\n ...inputMap,\n ...(inputOverrides ?? {})\n }[field.type]\n\n if (!checkCondition(field, formValues)) {\n return null\n }\n\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\n const formValuesCopy = updateFormValuesWithFieldValue(field, v as IValueType, formValues)\n setFormValues(cleanUnusedDependenciesFromFormValues(form, formValuesCopy))\n }\n const onChangeFn = onChange ?? defaultOnChange\n\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\n console.log(`initialValue: ${field.id}`, initialValue)\n return InputComponent !== undefined\n ? <div className={utils.makeClassName({\n className,\n defaultClassName\n })}>{\n field.multiple === true\n ? <MultipleFieldCreator\n field={field}\n onChange={onChange}\n value={initialValue}\n />\n : <InputComponent\n field={field}\n onChange={onChangeFn}\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\n />\n\n }</div>\n : <div>\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\n </div>\n}\n\nexport default FieldCreator\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import inputMap from '@/Form/Components/Inputs/inputMap'\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\nimport { type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\nimport { checkCondition, cleanUnusedDependenciesFromFormValues, getFieldValue, updateFormValuesWithFieldValue } from '@/Form/helpers'\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\nimport React, { useState, type ReactElement } from 'react'\n\ninterface IFieldCreator {\n field: IFormField\n onChange?: IValueChangeFn\n className?: string\n defaultClassName?: string\n value?: IValueType | IValueType[]\n}\n\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\n\nconst DeleteMultiple = ({\n doDelete\n}: {\n doDelete: () => void\n}): ReactElement => {\n const [confirm, setConfirm] = useState(false)\n\n return (\n <>\n {\n confirm\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\n <Button size='xs' type='submit'\n onClick={() => {\n doDelete()\n setConfirm(false)\n }}>Yes <CheckIcon className='inline ml-2' />\n </Button>\n <Button size='xs' type='alert'\n onClick={() => {\n setConfirm(false)\n }}>Cancel <Cross1Icon className='inline ml-2' />\n </Button>\n </p>\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\n Delete <TrashIcon className='inline ml-2 fill-white' />\n </Button>\n }\n </>\n )\n}\n\nconst OneOfMultiple = ({\n InputComponent,\n field,\n value,\n index,\n onChange,\n values\n\n}: {\n InputComponent: React.FC<IFieldInputProps>\n field: IFormField\n value: IValueType\n index: number\n onChange: (v: IValueType[] | undefined) => void\n values: IValueType[]\n}): ReactElement => {\n const addValue = (v: IValueType | null): void => {\n const newValues = [...values]\n newValues.splice(index + 1, 0, v)\n onChange(newValues)\n }\n\n return (\n <div className='flex flex-col gap-2'>\n <InputComponent\n field={{\n ...field,\n required: false,\n label: index > 0 ? null : field.label,\n id: `${field.id}-${index}`\n }}\n value={value}\n onChange={(v) => {\n const newValues = [...values]\n newValues[index] = v as IValueType\n onChange(newValues)\n }}\n />\n\n <div className='flex flex-row justify-between w-full p-2'>\n {index > 0 && (\n <DeleteMultiple doDelete={() => {\n const newValues = [...values]\n newValues.splice(index, 1)\n onChange(newValues)\n }} />\n )}\n <div className='ml-auto flex gap-2'>\n <Button\n size='xs'\n className={toolButtonClass}\n onClick={() => {\n addValue(null)\n }}>Add <PlusIcon className='inline ml-2' /></Button>\n <Button\n size='xs'\n className={toolButtonClass}\n onClick={() => {\n addValue(structuredClone(value))\n }}>Duplicate <CopyIcon className='inline ml-2' />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nconst MultipleFieldCreator = ({\n field,\n onChange,\n value\n}: IFieldCreator): ReactElement => {\n const { formValues, setFormValues, inputOverrides } = useFormContext()\n const defaultOnChange = (v: IValueType[] | undefined): void => {\n const formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues)\n setFormValues(formValuesCopy)\n }\n\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\n const initialValues = (initialVal !== undefined ? (Array.isArray(initialVal) ? initialVal : [initialVal]) : [null])\n\n const InputComponent = {\n ...inputMap,\n ...(inputOverrides ?? {})\n }[field.type]\n\n return <div>\n {\n initialValues?.map((value, index) => {\n return <OneOfMultiple\n key={`${field.id}-${index}`}\n InputComponent={InputComponent}\n field={field}\n value={value}\n index={index}\n onChange={onChange ?? defaultOnChange}\n values={initialValues}\n />\n })\n }\n </div>\n}\n\nconst FieldCreator = ({\n field,\n value,\n onChange,\n className,\n defaultClassName = 'py-2 flex flex-col gap-8'\n}: IFieldCreator): ReactElement | null => {\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\n const InputComponent = {\n ...inputMap,\n ...(inputOverrides ?? {})\n }[field.type]\n\n if (!checkCondition(field, formValues)) {\n return null\n }\n\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\n const formValuesCopy = updateFormValuesWithFieldValue(field, v as IValueType, formValues)\n setFormValues(cleanUnusedDependenciesFromFormValues(form, formValuesCopy))\n }\n const onChangeFn = onChange ?? defaultOnChange\n\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\n\n return InputComponent !== undefined\n ? <div className={utils.makeClassName({\n className,\n defaultClassName\n })}>{\n field.multiple === true\n ? <MultipleFieldCreator\n field={field}\n onChange={onChange}\n value={initialValue}\n />\n : <InputComponent\n field={field}\n onChange={onChangeFn}\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\n />\n\n }</div>\n : <div>\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\n </div>\n}\n\nexport default FieldCreator\n"],"names":["React","utils"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { memoize } from 'lodash';
2
+ import React__default from 'react';
3
+
4
+ var notify = memoize(function (k, v, onChange) {
5
+ setTimeout(function () {
6
+ onChange(v);
7
+ }, 50);
8
+ });
9
+ var ConstantInput = function (_a) {
10
+ _a.value; var field = _a.field, onChange = _a.onChange;
11
+ var constantField = field;
12
+ var val = constantField.defaultValue;
13
+ notify("".concat(field.path ? field.path.map(function (f) { return f.id; }).join('.') : field.id, ".").concat(JSON.stringify(val)), val, onChange);
14
+ return (React__default.createElement(React__default.Fragment, null));
15
+ };
16
+
17
+ export { ConstantInput as default };
18
+ //# sourceMappingURL=Constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constant.js","sources":["../../../../../../src/Form/Components/Inputs/Constant.tsx"],"sourcesContent":["import { type IConstantField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { memoize } from 'lodash'\nimport React, { type ReactElement } from 'react'\n\nconst notify = memoize((k, v, onChange) => {\n setTimeout(() => {\n onChange(v)\n }, 50)\n})\n\nconst ConstantInput = ({ value, field, onChange }: IFieldInputProps): ReactElement => {\n const constantField = field as IConstantField\n const val = constantField.defaultValue\n notify(`${field.path ? field.path.map(f => f.id).join('.') : field.id}.${JSON.stringify(val)}`, val, onChange)\n return (\n <></>\n )\n}\n\nexport default ConstantInput\n"],"names":["React"],"mappings":";;;AAIA,IAAM,MAAM,GAAG,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAA;AACpC,IAAA,UAAU,CAAC,YAAA;QACT,QAAQ,CAAC,CAAC,CAAC;KACZ,EAAE,EAAE,CAAC;AACR,CAAC,CAAC;AAEI,IAAA,aAAa,GAAG,UAAC,EAA4C,EAAA;AAA1C,YAAK,CAAE,KAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA,CAAE,QAAQ,GAAA,EAAA,CAAA;IAC7C,IAAM,aAAa,GAAG,KAAuB;AAC7C,IAAA,IAAM,GAAG,GAAG,aAAa,CAAC,YAAY;IACtC,MAAM,CAAC,UAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC9G,QACEA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAET;;;;"}
@@ -0,0 +1,9 @@
1
+ import React__default from 'react';
2
+
3
+ var OneOfInput = function (_a) {
4
+ _a.field; _a.value; _a.onChange;
5
+ return (React__default.createElement(React__default.Fragment, null, "OneOfField not implemented yet"));
6
+ };
7
+
8
+ export { OneOfInput as default };
9
+ //# sourceMappingURL=OneOfInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneOfInput.js","sources":["../../../../../../src/Form/Components/Inputs/OneOfInput.tsx"],"sourcesContent":["import { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport React, { type ReactElement } from 'react'\n\nconst OneOfInput = ({ field, value, onChange }: IFieldInputProps): ReactElement => {\n return (\n <>OneOfField not implemented yet</>\n )\n}\n\nexport default OneOfInput\n"],"names":["React"],"mappings":";;AAGM,IAAA,UAAU,GAAG,UAAC,EAA4C,EAAA;AAA1C,YAAK,CAAE,CAAK,EAAA,CAAA,KAAA,CAAA,CAAU,EAAA,CAAA;IAC1C,QACEA,cAAmC,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,gCAAA,CAAA;AAEvC;;;;"}
@@ -5,10 +5,16 @@ import React__default from 'react';
5
5
 
6
6
  var StringInput = function (_a) {
7
7
  var field = _a.field, onChange = _a.onChange, value = _a.value;
8
- var initialValue = value !== undefined ? value : '';
8
+ var initialValue = value !== undefined ? String(value) : '';
9
+ /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')
10
+ useDeferredValue(val)
11
+ const newVal = useDeferredValue(val)
12
+ useEffect(() => {
13
+ onChange(newVal === '' ? undefined : newVal)
14
+ }, [newVal]) */
9
15
  return React__default.createElement("div", null,
10
- React__default.createElement(Input, { id: field.id, testId: field.id, value: initialValue !== undefined && initialValue !== null ? String(initialValue) : '', label: React__default.createElement(FieldLabel, __assign({}, field)), onChange: function (e) {
11
- onChange(e);
16
+ React__default.createElement(Input, { id: field.id, testId: field.id, value: initialValue, label: React__default.createElement(FieldLabel, __assign({}, field)), onChange: function (e) {
17
+ onChange(e === '' ? undefined : e);
12
18
  } }));
13
19
  };
14
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Input } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? value : ''\n return <div>\n <Input\n id={field.id}\n testId={field.id}\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\n label={<FieldLabel {...field} />} onChange={(e) => {\n onChange(e)\n }} /></div>\n}\n\nexport default StringInput\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC3C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;IACrD,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;QACHA,cAAC,CAAA,aAAA,CAAA,KAAK,IACJ,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;gBAC5C,QAAQ,CAAC,CAAC,CAAC;aACZ,EAAA,CAAI,CAAM;AACnB;;;;"}
1
+ {"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport { Input } from '@axdspub/axiom-ui-utilities'\nimport React, { type ReactElement } from 'react'\n\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\n const initialValue = value !== undefined ? String(value) : ''\n /* const [val, setVal] = useState<string | undefined>(initialValue !== undefined && initialValue !== null ? String(initialValue) : '')\n useDeferredValue(val)\n const newVal = useDeferredValue(val)\n useEffect(() => {\n onChange(newVal === '' ? undefined : newVal)\n }, [newVal]) */\n return <div>\n <Input\n id={field.id}\n testId={field.id}\n value={initialValue}\n label={<FieldLabel {...field} />} onChange={(e) => {\n onChange(e === '' ? undefined : e)\n }} /></div>\n}\n\nexport default StringInput\n"],"names":["React"],"mappings":";;;;;AAKM,IAAA,WAAW,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,KAAK,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAC3C,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAC7D;;;;;AAKe;IACf,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACH,QAAAA,cAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAEA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;AAC5C,gBAAA,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC;aACnC,EAAA,CAAI,CAAM;AACnB;;;;"}
@@ -11,6 +11,8 @@ import GeoJSONInputLoader from './GeometryInputLoader.js';
11
11
  import DateTimeInput from './DateTime.js';
12
12
  import DateInput from './Date.js';
13
13
  import TimeInput from './Time.js';
14
+ import ConstantInput from './Constant.js';
15
+ import OneOfInput from './OneOfInput.js';
14
16
 
15
17
  var inputMap = {
16
18
  text: StringInput,
@@ -21,11 +23,13 @@ var inputMap = {
21
23
  select: SingleSelectInput,
22
24
  radio: RadioInput,
23
25
  object: ObjectInput,
26
+ oneOf: OneOfInput,
24
27
  geojson: GeoJSONInputLoader$1,
25
28
  geometry: GeoJSONInputLoader,
26
29
  datetime: DateTimeInput,
27
30
  date: DateInput,
28
- time: TimeInput
31
+ time: TimeInput,
32
+ constant: ConstantInput
29
33
  };
30
34
 
31
35
  export { inputMap as default };
@@ -1 +1 @@
1
- {"version":3,"file":"inputMap.js","sources":["../../../../../../src/Form/Components/Inputs/inputMap.ts"],"sourcesContent":["import BooleanInput from '@/Form/Components/Inputs/Boolean'\nimport LongString from '@/Form/Components/Inputs/LongString'\nimport StringInput from '@/Form/Components/Inputs/String'\nimport ObjectInput from '@/Form/Components/Inputs/Object'\nimport Radio from '@/Form/Components/Inputs/RadioGroup'\nimport SingleSelect from '@/Form/Components/Inputs/SingleSelect'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport JSONStringInput from '@/Form/Components/Inputs/JSONString'\nimport NumberInput from '@/Form/Components/Inputs/Number'\nimport GeoJSONInput from '@/Form/Components/Inputs/GeoJSONInputLoader'\nimport GeometryInput from '@/Form/Components/Inputs/GeometryInputLoader'\nimport DateTimeInput from '@/Form/Components/Inputs/DateTime'\nimport DateInput from '@/Form/Components/Inputs/Date'\nimport TimeInput from '@/Form/Components/Inputs/Time'\n\nconst inputMap: Record<string, React.FC<IFieldInputProps>> = {\n text: StringInput,\n long_text: LongString,\n number: NumberInput,\n json: JSONStringInput,\n boolean: BooleanInput,\n select: SingleSelect,\n radio: Radio,\n object: ObjectInput,\n geojson: GeoJSONInput,\n geometry: GeometryInput,\n datetime: DateTimeInput,\n date: DateInput,\n time: TimeInput\n}\n\nexport default inputMap\n"],"names":["LongString","SingleSelect","Radio","GeoJSONInput","GeometryInput"],"mappings":";;;;;;;;;;;;;;AAeA,IAAM,QAAQ,GAA+C;AAC3D,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAEA,eAAU;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAEC,iBAAY;AACpB,IAAA,KAAK,EAAEC,UAAK;AACZ,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAEC,oBAAY;AACrB,IAAA,QAAQ,EAAEC,kBAAa;AACvB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE;;;;;"}
1
+ {"version":3,"file":"inputMap.js","sources":["../../../../../../src/Form/Components/Inputs/inputMap.ts"],"sourcesContent":["import BooleanInput from '@/Form/Components/Inputs/Boolean'\nimport LongString from '@/Form/Components/Inputs/LongString'\nimport StringInput from '@/Form/Components/Inputs/String'\nimport ObjectInput from '@/Form/Components/Inputs/Object'\nimport Radio from '@/Form/Components/Inputs/RadioGroup'\nimport SingleSelect from '@/Form/Components/Inputs/SingleSelect'\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\nimport JSONStringInput from '@/Form/Components/Inputs/JSONString'\nimport NumberInput from '@/Form/Components/Inputs/Number'\nimport GeoJSONInput from '@/Form/Components/Inputs/GeoJSONInputLoader'\nimport GeometryInput from '@/Form/Components/Inputs/GeometryInputLoader'\nimport DateTimeInput from '@/Form/Components/Inputs/DateTime'\nimport DateInput from '@/Form/Components/Inputs/Date'\nimport TimeInput from '@/Form/Components/Inputs/Time'\nimport ConstantInput from '@/Form/Components/Inputs/Constant'\nimport OneOfInput from '@/Form/Components/Inputs/OneOfInput'\n\nconst inputMap: Record<string, React.FC<IFieldInputProps>> = {\n text: StringInput,\n long_text: LongString,\n number: NumberInput,\n json: JSONStringInput,\n boolean: BooleanInput,\n select: SingleSelect,\n radio: Radio,\n object: ObjectInput,\n oneOf: OneOfInput,\n geojson: GeoJSONInput,\n geometry: GeometryInput,\n datetime: DateTimeInput,\n date: DateInput,\n time: TimeInput,\n constant: ConstantInput\n}\n\nexport default inputMap\n"],"names":["LongString","SingleSelect","Radio","GeoJSONInput","GeometryInput"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,QAAQ,GAA+C;AAC3D,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,SAAS,EAAEA,eAAU;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAEC,iBAAY;AACpB,IAAA,KAAK,EAAEC,UAAK;AACZ,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE,UAAU;AACjB,IAAA,OAAO,EAAEC,oBAAY;AACrB,IAAA,QAAQ,EAAEC,kBAAa;AACvB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,QAAQ,EAAE;;;;;"}
@@ -3,65 +3,54 @@ import { FormContext } from './FormContextProvider.js';
3
3
  import FormHeader from './FormHeader.js';
4
4
  import FormSection from './FormSection.js';
5
5
  import { copyAndAddPathToFields, getFieldsFromFormSection, getFieldValue, updateFormValuesWithFieldValueInPlace, calculateSectionStatus } from '../helpers.js';
6
- import { Loader, utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
7
- import React__default, { useState, useEffect } from 'react';
6
+ import { utils as index$1 } from '../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
7
+ import React__default, { useContext } from 'react';
8
8
 
9
- var FormStatus = function (_a) {
10
- var _b, _c, _d, _e;
11
- var form = _a.form, formValueState = _a.formValueState;
12
- var status = calculateSectionStatus([form], formValueState);
9
+ var FormStatus = function () {
10
+ var _a, _b, _c, _d;
11
+ var _e = useContext(FormContext), form = _e.form, formValues = _e.formValues, setFormValues = _e.setFormValues;
12
+ var status = calculateSectionStatus([form], [formValues, setFormValues]);
13
13
  return (React__default.createElement(React__default.Fragment, null,
14
- React__default.createElement("p", { className: 'text-xs mt-4' }, (_b = status[form.id]) === null || _b === void 0 ? void 0 :
15
- _b.completed,
16
- " of ", (_c = status[form.id]) === null || _c === void 0 ? void 0 :
17
- _c.total,
14
+ React__default.createElement("p", { className: 'text-xs mt-4' }, (_a = status[form.id]) === null || _a === void 0 ? void 0 :
15
+ _a.completed,
16
+ " of ", (_b = status[form.id]) === null || _b === void 0 ? void 0 :
17
+ _b.total,
18
18
  " total"),
19
- React__default.createElement("p", { className: 'text-xs mt-2' }, (_d = status[form.id]) === null || _d === void 0 ? void 0 :
20
- _d.requiredCompleted,
21
- " of ", (_e = status[form.id]) === null || _e === void 0 ? void 0 :
22
- _e.requiredTotal,
19
+ React__default.createElement("p", { className: 'text-xs mt-2' }, (_c = status[form.id]) === null || _c === void 0 ? void 0 :
20
+ _c.requiredCompleted,
21
+ " of ", (_d = status[form.id]) === null || _d === void 0 ? void 0 :
22
+ _d.requiredTotal,
23
23
  " required")));
24
24
  };
25
25
  var FormCreator = function (_a) {
26
26
  var _b;
27
27
  var form = _a.form, formValueState = _a.formValueState, note = _a.note, error = _a.error, onChange = _a.onChange, className = _a.className, _c = _a.urlNavigable, urlNavigable = _c === void 0 ? true : _c, inputOverrides = _a.inputOverrides, schema = _a.schema;
28
28
  var activeForm = copyAndAddPathToFields(form);
29
+ var activeFormValues = structuredClone(formValueState[0]);
30
+ getFieldsFromFormSection(activeForm).forEach(function (field) {
31
+ if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {
32
+ updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues);
33
+ }
34
+ });
29
35
  activeForm.settings = __assign({ url_navigable: urlNavigable }, activeForm.settings);
30
36
  var formValues = formValueState[0], setFormValues = formValueState[1];
31
- var _d = useState(false), isReady = _d[0], setIsReady = _d[1];
32
- useEffect(function () {
33
- var formValuesCopy = structuredClone(formValues);
34
- getFieldsFromFormSection(activeForm).forEach(function (field) {
35
- if (field.defaultValue !== undefined && getFieldValue(field, formValues) === undefined) {
36
- updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy);
37
- }
38
- });
39
- setFormValues(formValuesCopy);
40
- setIsReady(true);
41
- }, [form]);
42
- console.log('isReady', isReady);
43
- if (isReady) {
44
- console.log('formValues', formValues);
45
- }
46
- return (React__default.createElement(React__default.Fragment, null, !isReady
47
- ? React__default.createElement(Loader, { className: 'pt-20' })
48
- : React__default.createElement(FormContext.Provider, { value: {
49
- form: activeForm,
50
- formValues: formValues,
51
- setFormValues: setFormValues,
52
- inputOverrides: inputOverrides,
53
- schema: schema,
54
- urlNavigable: activeForm.settings.url_navigable
55
- } },
56
- React__default.createElement("div", { className: index$1.makeClassName({
57
- className: (_b = activeForm === null || activeForm === void 0 ? void 0 : activeForm.settings) === null || _b === void 0 ? void 0 : _b.class_name,
58
- defaultClassName: className
59
- }) },
60
- React__default.createElement(FormHeader, { form: activeForm, note: note, error: error }),
61
- (activeForm === null || activeForm === void 0 ? void 0 : activeForm.fields) !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined
62
- ? React__default.createElement(FormStatus, { form: activeForm, formValueState: formValueState })
63
- : '',
64
- React__default.createElement(FormSection, { formSection: activeForm, onChange: onChange })))));
37
+ return (React__default.createElement(FormContext.Provider, { value: {
38
+ form: activeForm,
39
+ formValues: formValues,
40
+ setFormValues: setFormValues,
41
+ inputOverrides: inputOverrides,
42
+ schema: schema,
43
+ urlNavigable: activeForm.settings.url_navigable
44
+ } },
45
+ React__default.createElement("div", { className: index$1.makeClassName({
46
+ className: (_b = activeForm === null || activeForm === void 0 ? void 0 : activeForm.settings) === null || _b === void 0 ? void 0 : _b.class_name,
47
+ defaultClassName: className
48
+ }) },
49
+ React__default.createElement(FormHeader, { form: activeForm, note: note, error: error }),
50
+ (activeForm === null || activeForm === void 0 ? void 0 : activeForm.fields) !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined
51
+ ? React__default.createElement(FormStatus, null)
52
+ : '',
53
+ React__default.createElement(FormSection, { formSection: activeForm, onChange: onChange }))));
65
54
  };
66
55
 
67
56
  export { FormCreator as default };
@@ -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 IFormValueState } 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 { Loader, utils } from '@axdspub/axiom-ui-utilities'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { 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 urlNavigable?: boolean\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\n}\n\nconst FormStatus = ({ form, formValueState }: { form: IForm, formValueState: IFormValueState }): ReactElement => {\n const status = calculateSectionStatus([form], formValueState)\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\nconst FormCreator = ({\n form,\n formValueState,\n note,\n error,\n onChange,\n className,\n urlNavigable = true,\n inputOverrides,\n schema\n}: IFormCreatorProps): ReactElement => {\n const activeForm = copyAndAddPathToFields(form)\n\n activeForm.settings = {\n url_navigable: urlNavigable,\n ...activeForm.settings\n }\n\n const [formValues, setFormValues] = formValueState\n const [isReady, setIsReady] = useState(false)\n useEffect(() => {\n const formValuesCopy = structuredClone(formValues)\n getFieldsFromFormSection(activeForm).forEach(field => {\n if (field.defaultValue !== undefined && getFieldValue(field, formValues) === undefined) {\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\n }\n })\n setFormValues(formValuesCopy)\n setIsReady(true)\n }, [form])\n\n console.log('isReady', isReady)\n if (isReady) {\n console.log('formValues', formValues)\n }\n\n return (\n <>\n {\n !isReady\n ? <Loader className='pt-20' />\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: 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 form={activeForm} formValueState={formValueState} />\n : ''\n }\n <FormSection\n formSection={activeForm}\n onChange={onChange}\n />\n </div>\n </FormContext.Provider>\n }\n </>\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 } 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 { utils } from '@axdspub/axiom-ui-utilities'\nimport { type JSONSchema6 } from 'json-schema'\nimport React, { useContext, 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 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\nconst FormCreator = ({\n form,\n formValueState,\n note,\n error,\n onChange,\n className,\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: 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,3 +1,4 @@
1
+ import { __assign } from '../../../node_modules/tslib/tslib.es6.js';
1
2
  import { FormSectionContextProvider, useFormSectionContext } from './FormSectionContextProvider.js';
2
3
  import FormSection from './FormSection.js';
3
4
  import NavElement from './NavElement.js';
@@ -26,24 +27,33 @@ var ActivePage = function (_a) {
26
27
  : '',
27
28
  React__default.createElement(FormSection, { formSection: formSection, onChange: onChange, level: level + 1 })));
28
29
  };
29
- var PageLayout = function (_a) {
30
- var _b, _c, _d, _e, _f, _g;
31
- var sections = _a.sections, onChange = _a.onChange; _a.inputOverrides; var _h = _a.ContentComponent, ContentComponent = _h === void 0 ? ActivePage : _h, _j = _a.NavComponent, NavComponent = _j === void 0 ? PageNav : _j, _k = _a.className, className = _k === void 0 ? 'flex flex-row gap-8' : _k, level = _a.level;
32
- if (sections === undefined) {
30
+ var PageLayout = function (props) {
31
+ var _a, _b, _c, _d, _e;
32
+ if (props.sections === undefined) {
33
33
  return React__default.createElement(React__default.Fragment, null);
34
34
  }
35
- var _l = useFormContext(), urlNavigable = _l.urlNavigable, setFormValues = _l.setFormValues, formValues = _l.formValues;
36
- var params = ((_b = useParams()['*']) !== null && _b !== void 0 ? _b : '').split('/');
37
- var path = params.slice(0, level).join('/');
35
+ var urlNavigable = useFormContext().urlNavigable;
36
+ var params = ((_a = useParams()['*']) !== null && _a !== void 0 ? _a : '').split('/');
37
+ var path = params.slice(0, props.level).join('/');
38
38
  var id = urlNavigable
39
- ? (params[level] && params[level] !== '') ? params[level] : ((_d = (_c = sections[0]) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : null)
40
- : (_f = (_e = sections[0]) === null || _e === void 0 ? void 0 : _e.id) !== null && _f !== void 0 ? _f : null;
41
- var sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues]);
42
- var formSection = (_g = sections === null || sections === void 0 ? void 0 : sections.find(function (s) { return s.id === id; })) !== null && _g !== void 0 ? _g : sections === null || sections === void 0 ? void 0 : sections[0];
39
+ ? (params[props.level] && params[props.level] !== '') ? params[props.level] : ((_c = (_b = props.sections[0]) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : null)
40
+ : (_e = (_d = props.sections[0]) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : null;
43
41
  return (React__default.createElement(FormSectionContextProvider, { path: path, id: id },
44
- React__default.createElement("div", { className: className },
45
- React__default.createElement(NavComponent, { sections: sections, sectionStatus: sectionStatus, level: level }),
46
- React__default.createElement(ContentComponent, { formSection: formSection, onChange: onChange, sectionStatus: sectionStatus, level: level }))));
42
+ React__default.createElement(PageLayoutContent, __assign({}, props))));
43
+ };
44
+ var PageLayoutContent = function (_a) {
45
+ var _b;
46
+ var sections = _a.sections, onChange = _a.onChange; _a.inputOverrides; var _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? PageNav : _d, _e = _a.className, className = _e === void 0 ? 'flex flex-row gap-8' : _e, level = _a.level;
47
+ if (sections === undefined) {
48
+ return React__default.createElement(React__default.Fragment, null);
49
+ }
50
+ var _f = useFormContext(), setFormValues = _f.setFormValues, formValues = _f.formValues;
51
+ var sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues]);
52
+ var activeId = useFormSectionContext().activeId;
53
+ var formSection = (_b = sections === null || sections === void 0 ? void 0 : sections.find(function (s) { return s.id === activeId; })) !== null && _b !== void 0 ? _b : sections === null || sections === void 0 ? void 0 : sections[0];
54
+ return (React__default.createElement("div", { className: className },
55
+ React__default.createElement(NavComponent, { sections: sections, sectionStatus: sectionStatus, level: level }),
56
+ React__default.createElement(ContentComponent, { formSection: formSection, onChange: onChange, sectionStatus: sectionStatus, level: level })));
47
57
  };
48
58
 
49
59
  export { ActivePage, PageLayout as default };
@@ -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'\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='pb-4 border-b border-slate-200 text-sm'><InfoCircledIcon className='inline-block' /> {formSection.description}</p>\n : ''\n }\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\n </div>\n )\n}\n\nconst PageLayout = ({\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 { urlNavigable, setFormValues, formValues } = useFormContext()\n const params = (useParams()['*'] ?? '').split('/')\n const path = params.slice(0, level).join('/')\n const id = urlNavigable\n ? (params[level] && params[level] !== '') ? params[level] : (sections[0]?.id ?? null)\n : sections[0]?.id ?? null\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\n const formSection = sections?.find(s => s.id === id) ?? sections?.[0]\n\n return (\n <FormSectionContextProvider path={path} id={id}>\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 </FormSectionContextProvider>\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 '@/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'\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='pb-4 border-b border-slate-200 text-sm'><InfoCircledIcon className='inline-block' /> {formSection.description}</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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"}