@axdspub/axiom-ui-forms 0.3.3 → 0.3.5
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.
- package/library/axiom-ui-forms.d.ts +56 -26
- package/library/esm/_virtual/index10.js +2 -2
- package/library/esm/_virtual/index3.js +2 -2
- package/library/esm/_virtual/index4.js +2 -2
- package/library/esm/_virtual/index9.js +2 -2
- package/library/esm/node_modules/@axdspub/axiom-maps/library/index.js +1 -1
- package/library/esm/node_modules/@axdspub/axiom-maps/library/openlayers/index.esm.js +1 -1
- package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js +15219 -0
- package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -0
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +122 -90
- package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
- package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
- package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
- package/library/esm/node_modules/lodash-es/_SetCache.js +28 -0
- package/library/esm/node_modules/lodash-es/_SetCache.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js +8 -1
- package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -1
- package/library/esm/node_modules/lodash-es/_arraySome.js +24 -0
- package/library/esm/node_modules/lodash-es/_arraySome.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqual.js +29 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js +84 -0
- package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseKeys.js +31 -0
- package/library/esm/node_modules/lodash-es/_baseKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_baseTrim.js +20 -0
- package/library/esm/node_modules/lodash-es/_baseTrim.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_cacheHas.js +14 -0
- package/library/esm/node_modules/lodash-es/_cacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalArrays.js +85 -0
- package/library/esm/node_modules/lodash-es/_equalArrays.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalByTag.js +113 -0
- package/library/esm/node_modules/lodash-es/_equalByTag.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_equalObjects.js +91 -0
- package/library/esm/node_modules/lodash-es/_equalObjects.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_getAllKeys.js +17 -0
- package/library/esm/node_modules/lodash-es/_getAllKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_mapToArray.js +19 -0
- package/library/esm/node_modules/lodash-es/_mapToArray.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_nativeKeys.js +7 -0
- package/library/esm/node_modules/lodash-es/_nativeKeys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setCacheAdd.js +20 -0
- package/library/esm/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setCacheHas.js +15 -0
- package/library/esm/node_modules/lodash-es/_setCacheHas.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_setToArray.js +19 -0
- package/library/esm/node_modules/lodash-es/_setToArray.js.map +1 -0
- package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js +20 -0
- package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js.map +1 -0
- package/library/esm/node_modules/lodash-es/debounce.js +192 -0
- package/library/esm/node_modules/lodash-es/debounce.js.map +1 -0
- package/library/esm/node_modules/lodash-es/isEqual.js +36 -0
- package/library/esm/node_modules/lodash-es/isEqual.js.map +1 -0
- package/library/esm/node_modules/lodash-es/keys.js +38 -0
- package/library/esm/node_modules/lodash-es/keys.js.map +1 -0
- package/library/esm/node_modules/lodash-es/keysIn.js +1 -1
- package/library/esm/node_modules/lodash-es/keysIn.js.map +1 -1
- package/library/esm/node_modules/lodash-es/now.js +24 -0
- package/library/esm/node_modules/lodash-es/now.js.map +1 -0
- package/library/esm/node_modules/lodash-es/toNumber.js +65 -0
- package/library/esm/node_modules/lodash-es/toNumber.js.map +1 -0
- package/library/esm/src/Form/Components/FieldCreator.js +86 -31
- package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
- package/library/esm/src/Form/Components/FieldLabel.js +90 -19
- package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
- package/library/esm/src/Form/Components/InlineMarkdown.js +4 -0
- package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Boolean.js +8 -6
- package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Constant.js +2 -2
- package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Date.js +3 -4
- package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/DateTime.js +3 -4
- package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/GeoJSON.js +5 -4
- package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Geometry.js +20 -11
- package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/JSON.js +6 -5
- package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/LongString.js +5 -5
- package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Number.js +49 -35
- package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Object.js +46 -11
- package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/RadioGroup.js +2 -3
- package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -3
- package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/String.js +5 -11
- package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
- package/library/esm/src/Form/Components/Inputs/Time.js +2 -3
- package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
- package/library/esm/src/Form/Creator/FormCreator.js +6 -6
- package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
- package/library/esm/src/Form/Creator/FormFields.js +1 -1
- package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
- package/library/esm/src/Form/Creator/FormHeader.js +2 -1
- package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
- package/library/esm/src/Form/Creator/FormSection.js +1 -1
- package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
- package/library/esm/src/Form/Creator/Page.js +7 -2
- package/library/esm/src/Form/Creator/Page.js.map +1 -1
- package/library/esm/src/Form/Creator/Wizard.js +6 -6
- package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
- package/library/esm/src/utils/getters.js +36 -6
- package/library/esm/src/utils/getters.js.map +1 -1
- package/library/esm/src/utils/helpers.js +11 -0
- package/library/esm/src/utils/helpers.js.map +1 -0
- package/library/esm/src/utils/manipulators.js +30 -11
- package/library/esm/src/utils/manipulators.js.map +1 -1
- package/library/esm/src/utils/schemaToFormHelpers.js +2 -2
- package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
- package/library/esm/src/utils/validators.js +94 -15
- package/library/esm/src/utils/validators.js.map +1 -1
- package/package.json +5 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Number.js","sources":["../../../../../../src/Form/Components/Inputs/Number.tsx"],"sourcesContent":["import FieldLabel, { FieldDescriptionTooltip, FieldLabelText } from '@/Form/Components/FieldLabel'\r\nimport { type INumberField, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Checkbox, Input, Slider } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, Cross2Icon, Pencil1Icon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\nconst isValidNumber = (value: string): boolean => {\r\n if (value === undefined || value === null || value === '') {\r\n return false\r\n }\r\n const num = Number(value)\r\n return !isNaN(num) && isFinite(num)\r\n}\r\n\r\nconst SliderInput = ({ field, value, onChange, min, max, step }: IFieldInputProps & { max: number, min?: number, step?: number }): ReactElement => {\r\n const updateTemp = (value: string | number | undefined): void => {\r\n if (value !== undefined && isValidNumber(String(value))) {\r\n setTempValue(+value)\r\n setTempTextValue(String(value))\r\n } else {\r\n setTempTextValue(value !== undefined ? String(value) : undefined)\r\n }\r\n }\r\n const [tempValue, setTempValue] = useState<number>(value !== undefined && value !== null ? +value : 0)\r\n const [tempTextValue, setTempTextValue] = useState<string | undefined>(value !== undefined ? String(value) : undefined)\r\n const [mode, setMode] = useState<'slider' | 'text'>('slider')\r\n\r\n return (<div>\r\n <FieldLabel {...field} />\r\n <div className='flex flex-row gap-4'>\r\n <Slider\r\n className='flex-grow max-w-[400px] mt-1'\r\n size='sm'\r\n value={tempValue}\r\n min={min ?? 0}\r\n max={max}\r\n onChange={(v: number): void => {\r\n updateTemp(v)\r\n } }\r\n onChangeComplete={(v: number): void => {\r\n updateTemp(v)\r\n onChange(v)\r\n } }\r\n id={field.id}\r\n testId={field.id}\r\n step={step ?? ((max - (min ?? 0)) / 100)} />\r\n <div className='w-[100px] flex flex-row text-right'>\r\n {\r\n mode === 'slider'\r\n ? <>\r\n <strong className='w-[60px]'>{tempValue}</strong>\r\n <Pencil1Icon className='inline m-1 w-5 h-5 cursor-pointer' onClick={() => {\r\n setMode('text')\r\n }} />\r\n </>\r\n : <>\r\n <Input\r\n id={`slider-text-${field.id}`}\r\n testId={`slider-text-${field.id}`}\r\n value={tempTextValue !== undefined && tempTextValue !== null ? String(tempTextValue) : ''}\r\n className='w-[50px] text-xs text-right'\r\n size='xs'\r\n label={undefined}\r\n onChange={(e) => {\r\n updateTemp(e)\r\n }} />\r\n <Cross2Icon className='flex-none inline w-5 h-5 m-1 cursor-pointer' color='red' onClick={() => {\r\n setMode('slider')\r\n }} />\r\n <CheckIcon className={`flex-none inline w-5 h-5 m-1 ${isValidNumber(String(tempTextValue)) ? 'cursor-pointer' : 'opacity-50'}`} color='green' onClick={() => {\r\n if (isValidNumber(String(tempTextValue))) {\r\n setMode('slider')\r\n updateTemp(tempTextValue)\r\n onChange(tempTextValue)\r\n }\r\n }} />\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>)\r\n}\r\n\r\nconst TextInput = ({ field, onChange, value, className }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | undefined>(undefined)\r\n\r\n return (\r\n <>\r\n <Input\r\n id={field.id}\r\n testId={field.id}\r\n error={error}\r\n className={className}\r\n value={value !== undefined && value !== null ? String(value) : ''}\r\n label={<FieldLabel {...field} />} onChange={(e) => {\r\n if (e !== undefined && !isNaN(+e) && e !== '') {\r\n onChange(+e)\r\n setError(undefined)\r\n } else {\r\n if (String(e).length > 0) {\r\n setError('Please enter a valid number')\r\n } else {\r\n setError(undefined)\r\n }\r\n onChange(undefined)\r\n }\r\n }} />\r\n {error !== undefined && <p className='text-red-500 text-xs py-2'>{error}</p>}\r\n </>\r\n )\r\n}\r\n\r\nconst NumberInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n const numberField = field as INumberField\r\n const isNull = initialValue === undefined || initialValue === null || initialValue === ''\r\n const [userSelectedNotNull, setUserSelectedNotNull] = useState<boolean>(!isNull)\r\n const canBeNull = numberField.settings?.canBeNull === true\r\n\r\n const max = numberField?.constraints?.max\r\n const fieldForInput = canBeNull\r\n ? {\r\n ...field,\r\n label: undefined,\r\n description: undefined\r\n }\r\n : field\r\n const el = (\r\n <>{\r\n max !== undefined\r\n ? <SliderInput\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={onChange}\r\n min={numberField?.constraints?.min}\r\n max={max}\r\n step={numberField?.settings?.step} />\r\n : <TextInput\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={onChange}\r\n className='max-w-[300px]'\r\n\r\n />\r\n }</>\r\n )\r\n\r\n if (canBeNull) {\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <Checkbox\r\n id={`${field.id}-null`}\r\n testId={`${field.id}-null`}\r\n label={<><FieldLabelText {...field}\r\n /> <FieldDescriptionTooltip {...field} /></>}\r\n value={userSelectedNotNull}\r\n onChange={(e) => {\r\n setUserSelectedNotNull(!userSelectedNotNull)\r\n if (!e) {\r\n onChange(undefined)\r\n } else {\r\n onChange(numberField?.settings?.nonNullDefaultValue ?? numberField?.defaultValue ?? value ?? 0)\r\n }\r\n }} />\r\n {userSelectedNotNull ? el : <></>}\r\n </div>\r\n )\r\n } else {\r\n return el\r\n }\r\n}\r\n\r\nexport default NumberInput\r\n"],"names":["React","Slider"],"mappings":";;;;;;AAMA,IAAM,aAAa,GAAG,UAAC,KAAa,EAAA;AAClC,IAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACzD,QAAA,OAAO,KAAK;;AAEd,IAAA,IAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,IAAM,WAAW,GAAG,UAAC,EAA2G,EAAA;AAAzG,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,GAAG,SAAA,EAAE,GAAG,GAAA,EAAA,CAAA,GAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA;IAC3D,IAAM,UAAU,GAAG,UAAC,KAAkC,EAAA;AACpD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AACvD,YAAA,YAAY,CAAC,CAAC,KAAK,CAAC;AACpB,YAAA,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;aAC1B;AACL,YAAA,gBAAgB,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;;AAErE,KAAC;IACK,IAAA,EAAA,GAA4B,QAAQ,CAAS,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAA/F,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAwE;IAChG,IAAA,EAAA,GAAoC,QAAQ,CAAqB,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAhH,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAiF;IACjH,IAAA,EAAA,GAAkB,QAAQ,CAAoB,QAAQ,CAAC,EAAtD,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAyC;AAE7D,IAAA,QAAQA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;QACNA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA;QACzBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,qBAAqB,EAAA;AAClC,YAAAA,cAAA,CAAA,aAAA,CAACC,YAAM,EAAA,EACL,SAAS,EAAC,8BAA8B,EACxC,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,MAAA,GAAA,GAAG,GAAI,CAAC,EACb,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,UAAC,CAAS,EAAA;oBAClB,UAAU,CAAC,CAAC,CAAC;AACf,iBAAC,EACD,gBAAgB,EAAE,UAAC,CAAS,EAAA;oBAC1B,UAAU,CAAC,CAAC,CAAC;oBACb,QAAQ,CAAC,CAAC,CAAC;AACb,iBAAC,EACD,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,IAAI,EAAE,IAAI,aAAJ,IAAI,KAAA,MAAA,GAAJ,IAAI,IAAK,CAAC,GAAG,IAAI,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,MAAA,GAAA,GAAG,GAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAI,CAAA;AAC5C,YAAAD,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oCAAoC,EAEjD,EAAA,IAAI,KAAK;AACP,kBAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AACA,oBAAAA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,UAAU,EAAA,EAAE,SAAS,CAAU;AAC/C,oBAAAA,cAAA,CAAA,aAAA,CAAC,WAAW,EAAC,EAAA,SAAS,EAAC,oCAAoC,EAAC,OAAO,EAAE,YAAA;4BACnE,OAAO,CAAC,MAAM,CAAC;AACjB,yBAAC,GAAI;AAET,kBAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;oBACAA,cAAC,CAAA,aAAA,CAAA,KAAK,EACN,EAAA,EAAE,EAAE,cAAA,CAAA,MAAA,CAAe,KAAK,CAAC,EAAE,CAAE,EAC7B,MAAM,EAAE,sBAAe,KAAK,CAAC,EAAE,CAAE,EACjC,KAAK,EAAE,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,EACzF,SAAS,EAAC,6BAA6B,EACvC,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,UAAC,CAAC,EAAA;4BACV,UAAU,CAAC,CAAC,CAAC;AACf,yBAAC,EAAI,CAAA;oBACLA,cAAC,CAAA,aAAA,CAAA,UAAU,EAAC,EAAA,SAAS,EAAC,6CAA6C,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAE,YAAA;4BACvF,OAAO,CAAC,QAAQ,CAAC;AACnB,yBAAC,EAAI,CAAA;oBACLA,cAAC,CAAA,aAAA,CAAA,SAAS,EAAC,EAAA,SAAS,EAAE,+BAAA,CAAA,MAAA,CAAgC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,gBAAgB,GAAG,YAAY,CAAE,EAAE,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,YAAA;4BACrJ,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE;gCACxC,OAAO,CAAC,QAAQ,CAAC;gCACjB,UAAU,CAAC,aAAa,CAAC;gCACzB,QAAQ,CAAC,aAAa,CAAC;;AAE3B,yBAAC,GAAI,CACF,CAEH,CACJ,CACF;AACR,CAAC;AAED,IAAM,SAAS,GAAG,UAAC,EAAuD,EAAA;QAArD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA;IAC9C,IAAA,EAAA,GAAoB,QAAQ,CAAqB,SAAS,CAAC,EAA1D,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAA2C;AAEjE,IAAA,QACEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;QACAA,cAAC,CAAA,aAAA,CAAA,KAAK,EACF,EAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EACjE,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAA;AAC5C,gBAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AAC7C,oBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACZ,QAAQ,CAAC,SAAS,CAAC;;qBACd;oBACL,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBACxB,QAAQ,CAAC,6BAA6B,CAAC;;yBAClC;wBACL,QAAQ,CAAC,SAAS,CAAC;;oBAErB,QAAQ,CAAC,SAAS,CAAC;;AAEvB,aAAC,EAAI,CAAA;AACR,QAAA,KAAK,KAAK,SAAS,IAAIA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,2BAA2B,EAAA,EAAE,KAAK,CAAK,CACzE;AAEP,CAAC;AAEK,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,IAAM,WAAW,GAAG,KAAqB;AACzC,IAAA,IAAM,MAAM,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,EAAE;AACnF,IAAA,IAAA,EAAgD,GAAA,QAAQ,CAAU,CAAC,MAAM,CAAC,EAAzE,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,sBAAsB,GAAA,EAAA,CAAA,CAAA,CAA8B;IAChF,IAAM,SAAS,GAAG,CAAA,CAAA,EAAA,GAAA,WAAW,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,SAAS,MAAK,IAAI;AAE1D,IAAA,IAAM,GAAG,GAAG,CAAA,EAAA,GAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG;IACzC,IAAM,aAAa,GAAG;AACpB,UACO,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,KAAK,CACR,EAAA,EAAA,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,EAAA,CAAA,GAExB,KAAK;AACT,IAAA,IAAM,EAAE,IACNA,cACA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,GAAG,KAAK;UACJA,6BAAC,WAAW,EAAA,EACZ,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,CAAA,EAAA,GAAA,WAAW,KAAX,IAAA,IAAA,WAAW,uBAAX,WAAW,CAAE,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,GAAG,EAClC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAI,EAAI;UACrCA,6BAAC,SAAS,EAAA,EACV,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,eAAe,EAAA,CAEvB,CACA,CACP;IAED,IAAI,SAAS,EAAE;AACb,QAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA;AAClC,YAAAA,cAAA,CAAA,aAAA,CAAC,QAAQ,EACP,EAAA,EAAE,EAAE,EAAG,CAAA,MAAA,CAAA,KAAK,CAAC,EAAE,EAAA,OAAA,CAAO,EACtB,MAAM,EAAE,UAAG,KAAK,CAAC,EAAE,EAAO,OAAA,CAAA,EAC1B,KAAK,EAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;oBAAEA,cAAC,CAAA,aAAA,CAAA,cAAc,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAChC,CAAA;;AAAC,oBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAAG,EAC5C,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,UAAC,CAAC,EAAA;;AACV,oBAAA,sBAAsB,CAAC,CAAC,mBAAmB,CAAC;oBAC5C,IAAI,CAAC,CAAC,EAAE;wBACN,QAAQ,CAAC,SAAS,CAAC;;yBACd;wBACL,QAAQ,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,mBAAmB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,CAAC;;AAEnG,iBAAC,EAAI,CAAA;YACN,mBAAmB,GAAG,EAAE,GAAGA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAK,CAC7B;;SAEH;AACL,QAAA,OAAO,EAAE;;AAEb;;;;"}
|
1
|
+
{"version":3,"file":"Number.js","sources":["../../../../../../src/Form/Components/Inputs/Number.tsx"],"sourcesContent":["import FieldLabel, { FieldDescriptionTooltip, FieldLabelText } from '@/Form/Components/FieldLabel'\r\nimport { type INumberField, type IFieldInputProps, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Checkbox, Input, Slider } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, Cross2Icon, Pencil1Icon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\n\r\nconst isValidNumber = (value: string): boolean => {\r\n if (value === undefined || value === null || value === '') {\r\n return false\r\n }\r\n const num = Number(value)\r\n return !isNaN(num) && isFinite(num)\r\n}\r\n\r\nconst SliderInput = ({\r\n field,\r\n value,\r\n onChange,\r\n min,\r\n max,\r\n step,\r\n disabled\r\n}: IFieldInputProps & { max: number, min?: number, step?: number }): ReactElement => {\r\n const [tempValue, setTempValue] = useState<number | undefined>(value !== undefined && value !== null ? +value : undefined)\r\n const [tempTextValue, setTempTextValue] = useState<string | undefined>(value !== undefined ? String(value) : undefined)\r\n const [mode, setMode] = useState<'slider' | 'text'>('slider')\r\n const updateTemp = (value: string | number | undefined): void => {\r\n if (value !== undefined && isValidNumber(String(value))) {\r\n setTempValue(+value)\r\n setTempTextValue(String(value))\r\n } else {\r\n setTempTextValue(value !== undefined ? String(value) : undefined)\r\n }\r\n }\r\n useEffect(() => {\r\n if (value !== tempValue) {\r\n updateTemp(value !== undefined && value !== null ? +value : undefined)\r\n }\r\n }, [value])\r\n\r\n return (<div>\r\n <FieldLabel\r\n field={field}\r\n disabled={disabled}\r\n value={value}\r\n onChange={onChange}\r\n />\r\n <div className='flex flex-row gap-4'>\r\n <Slider\r\n wrapperClassName='flex-grow max-w-[400px] mt-1'\r\n size='sm'\r\n disabled={disabled}\r\n retainUndefinedOnLoad={true}\r\n value={tempValue}\r\n min={min ?? 0}\r\n max={max}\r\n onChange={(v: number): void => {\r\n updateTemp(v)\r\n } }\r\n onChangeComplete={(v: number): void => {\r\n updateTemp(v)\r\n onChange(v)\r\n } }\r\n id={field.id}\r\n testId={field.id}\r\n step={step ?? ((max - (min ?? 0)) / 100)} />\r\n <div className='w-[100px] flex flex-row text-right'>\r\n {\r\n mode === 'slider'\r\n ? <>\r\n <strong className={`w-[60px]${disabled ? ' text-slate-400 cursor-not-allowed' : ''}`}>{tempValue}</strong>\r\n <Pencil1Icon className={`inline m-1 w-5 h-5 ${disabled ? ' opacity-50 cursor-not-allowed' : 'cursor-pointer'}`} onClick={() => {\r\n if (disabled) return\r\n setMode('text')\r\n }} />\r\n </>\r\n : <>\r\n {\r\n (\r\n (tempTextValue !== undefined && tempTextValue !== null) ||\r\n mode === 'text'\r\n )\r\n\r\n ? <><Input\r\n id={`slider-text-${field.id}`}\r\n disabled={disabled}\r\n testId={`slider-text-${field.id}`}\r\n value={tempTextValue !== undefined && tempTextValue !== null ? String(tempTextValue) : ''}\r\n className='w-[50px] text-xs text-right'\r\n size='xs'\r\n label={undefined}\r\n onChange={(e) => {\r\n updateTemp(e)\r\n }} />\r\n <Cross2Icon className={`flex-none inline m-1 w-5 h-5 ${disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}`} color='red' onClick={() => {\r\n if (!disabled) {\r\n setMode('slider')\r\n }\r\n }} />\r\n <CheckIcon className={`flex-none inline m-1 w-5 h-5 ${(disabled ?? !isValidNumber(String(tempTextValue))) ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}`} color='green' onClick={() => {\r\n if (!disabled && isValidNumber(String(tempTextValue))) {\r\n setMode('slider')\r\n updateTemp(tempTextValue)\r\n onChange(tempTextValue)\r\n }\r\n }} />\r\n </>\r\n : ''\r\n }\r\n </>\r\n }\r\n </div>\r\n </div>\r\n </div>)\r\n}\r\n\r\nconst TextInput = ({ field, onChange, value, className, disabled }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | undefined>(undefined)\r\n\r\n return (\r\n <>\r\n <Input\r\n id={field.id}\r\n testId={field.id}\r\n error={error}\r\n className={className}\r\n value={value !== undefined && value !== null ? String(value) : ''}\r\n label={<FieldLabel\r\n field={field}\r\n disabled={disabled}\r\n value={value}\r\n onChange={onChange}\r\n />} onChange={(e) => {\r\n if (e !== undefined && !isNaN(+e) && e !== '') {\r\n onChange(+e)\r\n setError(undefined)\r\n } else {\r\n if (String(e).length > 0) {\r\n setError('Please enter a valid number')\r\n } else {\r\n setError(undefined)\r\n }\r\n onChange(undefined)\r\n }\r\n }}\r\n after={error !== undefined && <p className='text-red-500 text-xs py-2'>{error}</p>}\r\n\r\n />\r\n </>\r\n )\r\n}\r\n\r\nconst NumberInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : undefined\r\n const numberField = field as INumberField\r\n const isNull = initialValue === undefined || initialValue === null || initialValue === ''\r\n const [userSelectedNotNull, setUserSelectedNotNull] = useState<boolean>(!isNull)\r\n const canBeNull = numberField.settings?.canBeNull === true\r\n\r\n const myOnChange = (v: IValueType | IValueType[] | undefined): void => {\r\n onChange(v)\r\n }\r\n\r\n const max = numberField?.constraints?.max\r\n const fieldForInput = canBeNull\r\n ? {\r\n ...field,\r\n label: undefined,\r\n description: undefined\r\n }\r\n : field\r\n const el = (\r\n <>{\r\n max !== undefined\r\n ? <SliderInput\r\n disabled={disabled}\r\n\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={myOnChange}\r\n min={numberField?.constraints?.min}\r\n max={max}\r\n step={numberField?.settings?.step} />\r\n : <TextInput\r\n disabled={disabled}\r\n field={fieldForInput}\r\n value={initialValue}\r\n onChange={onChange}\r\n className='max-w-[300px]'\r\n\r\n />\r\n }</>\r\n )\r\n\r\n if (canBeNull) {\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <Checkbox\r\n disabled={disabled}\r\n id={`${field.id}-null`}\r\n testId={`${field.id}-null`}\r\n label={<><FieldLabelText\r\n field={field}\r\n disabled={disabled}\r\n onChange={onChange}\r\n /> <FieldDescriptionTooltip field={field} disabled={disabled} /></>}\r\n value={userSelectedNotNull}\r\n onChange={(e) => {\r\n setUserSelectedNotNull(!userSelectedNotNull)\r\n if (!e) {\r\n onChange(undefined)\r\n } else {\r\n onChange(numberField?.settings?.nonNullDefaultValue ?? numberField?.defaultValue ?? value ?? undefined)\r\n }\r\n }} />\r\n {userSelectedNotNull ? el : <></>}\r\n </div>\r\n )\r\n } else {\r\n return el\r\n }\r\n}\r\n\r\nexport default NumberInput\r\n"],"names":["React","Slider"],"mappings":"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"}
|
@@ -1,34 +1,69 @@
|
|
1
|
-
import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import FieldCreator from '../FieldCreator.js';
|
3
2
|
import FieldLabel from '../FieldLabel.js';
|
3
|
+
import { checkCondition } from '../../../utils/validators.js';
|
4
4
|
import { utils as index$1 } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
|
5
5
|
import React__default from 'react';
|
6
6
|
|
7
7
|
var ObjectInput = function (_a) {
|
8
|
-
var field = _a.field, onChange = _a.onChange, value = _a.value;
|
8
|
+
var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
|
9
9
|
var initialValue = (typeof value === 'object' ? value !== null && value !== void 0 ? value : {} : {});
|
10
10
|
if (field.type === 'object' && field.fields !== undefined) {
|
11
|
-
var cl = "".concat(field.layout === 'horizontal'
|
12
|
-
|
11
|
+
var cl = "".concat(field.layout === 'horizontal'
|
12
|
+
? 'flex md:flex-row sm:flex-col gap-4 sm:gap-2'
|
13
|
+
: field.layout === 'grid4'
|
14
|
+
? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4'
|
15
|
+
: field.layout === 'grid3'
|
16
|
+
? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4'
|
17
|
+
: field.layout === 'grid2'
|
18
|
+
? 'grid grid-cols-1 md:grid-cols-2 gap-4'
|
19
|
+
: 'flex flex-col gap-4');
|
20
|
+
var fc_1 = field.layout === 'horizontal'
|
21
|
+
? 'flex-1'
|
22
|
+
: '';
|
13
23
|
return (React__default.createElement("div", null,
|
14
24
|
field.label !== undefined
|
15
|
-
? React__default.createElement(FieldLabel,
|
25
|
+
? React__default.createElement(FieldLabel, { field: field, disabled: disabled, value: value, onChange: onChange })
|
16
26
|
: null,
|
17
|
-
React__default.createElement("div", { className: "
|
27
|
+
React__default.createElement("div", { className: "".concat(cl).concat(disabled ? ' opacity-70 cursor-not-allowed' : '') }, field.fields.map(function (childField) {
|
18
28
|
var _a, _b;
|
19
29
|
var key = ((_a = field.path) !== null && _a !== void 0 ? _a : [field.id]).concat(childField.id).join('.');
|
20
|
-
|
30
|
+
var conditionResult = field.multiple
|
31
|
+
? checkCondition(childField, initialValue)
|
32
|
+
: undefined;
|
33
|
+
return (React__default.createElement(FieldCreator, { disabled: disabled, conditionResult: conditionResult, onChange: function (e) {
|
21
34
|
if (childField.type === 'object' && childField.skip_path === true) {
|
22
35
|
onChange(e);
|
23
36
|
}
|
24
37
|
else {
|
25
|
-
|
26
|
-
|
38
|
+
// onst path = getPathFromField(field)
|
39
|
+
// console.log('field path is ', path)
|
40
|
+
// const childPath = getPathFromField(childField)
|
41
|
+
// console.log('child field path is ', childPath)
|
42
|
+
// only use local path since we're only appending to the local object value rather than the full form value
|
43
|
+
/* const localForm = copyAndAddPathToFields(field as IFormSection) // { ...childField, path: childField?.path?.slice(childField?.path?.length - 1) ?? undefined }
|
44
|
+
const localField = { ...childField, path: childField?.path?.slice(childField?.path?.length - 1) ?? undefined }
|
45
|
+
const cleanedValues = cleanAndUpdateFormValuesWithFieldValue({
|
46
|
+
form: localForm,
|
47
|
+
field: localField,
|
48
|
+
value: e,
|
49
|
+
formValues: structuredClone(initialValue)
|
50
|
+
}) */
|
51
|
+
/* const cleanedValues = cleanAndUpdateFormValuesWithFieldValue({
|
52
|
+
form: field as IFormSection,
|
53
|
+
field: childField,
|
54
|
+
value: e,
|
55
|
+
formValues: structuredClone(initialValue)
|
56
|
+
}) */
|
57
|
+
var newValue = structuredClone(initialValue);
|
58
|
+
newValue[childField.id] = e;
|
59
|
+
onChange(newValue);
|
27
60
|
}
|
28
|
-
},
|
29
|
-
|
61
|
+
},
|
62
|
+
// conditionResult={conditionResult}
|
63
|
+
className: index$1.makeClassName({
|
30
64
|
className: fc_1
|
31
65
|
}),
|
66
|
+
// conditionResult={conditionResult}
|
32
67
|
// default to null here so that FormCreator doesn't go out and look for the value again
|
33
68
|
// todo: update this so that it's clearer. difference between undefined and null too small
|
34
69
|
value: (_b = (childField.type === 'object' && childField.skip_path === true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Object.js","sources":["../../../../../../src/Form/Components/Inputs/Object.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type ICompositeValueType, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst ObjectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = (typeof value === 'object' ? value ?? {} : {}) as ICompositeValueType\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n const cl = `${field.layout === 'horizontal'
|
1
|
+
{"version":3,"file":"Object.js","sources":["../../../../../../src/Form/Components/Inputs/Object.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type ICompositeValueType, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst ObjectInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = (typeof value === 'object' ? value ?? {} : {}) as ICompositeValueType\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n const cl = `${field.layout === 'horizontal'\r\n ? 'flex md:flex-row sm:flex-col gap-4 sm:gap-2'\r\n : field.layout === 'grid4'\r\n ? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4'\r\n : field.layout === 'grid3'\r\n ? 'grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4'\r\n : field.layout === 'grid2'\r\n ? 'grid grid-cols-1 md:grid-cols-2 gap-4'\r\n : 'flex flex-col gap-4'\r\n }`\r\n const fc = field.layout === 'horizontal'\r\n ? 'flex-1'\r\n : ''\r\n return (\r\n <div>\r\n {\r\n field.label !== undefined\r\n ? <FieldLabel field={field} disabled={disabled} value={value} onChange={onChange} />\r\n : null\r\n }\r\n <div className={`${cl}${disabled ? ' opacity-70 cursor-not-allowed' : ''}`}>\r\n {\r\n field.fields.map((childField) => {\r\n const key = (field.path ?? [field.id]).concat(childField.id).join('.')\r\n const conditionResult = field.multiple\r\n ? checkCondition(childField, initialValue)\r\n : undefined\r\n\r\n return (\r\n <FieldCreator\r\n disabled={disabled}\r\n conditionResult={conditionResult}\r\n onChange={(e) => {\r\n if (childField.type === 'object' && childField.skip_path === true) {\r\n onChange(e)\r\n } else {\r\n // onst path = getPathFromField(field)\r\n // console.log('field path is ', path)\r\n // const childPath = getPathFromField(childField)\r\n // console.log('child field path is ', childPath)\r\n\r\n // only use local path since we're only appending to the local object value rather than the full form value\r\n /* const localForm = copyAndAddPathToFields(field as IFormSection) // { ...childField, path: childField?.path?.slice(childField?.path?.length - 1) ?? undefined }\r\n const localField = { ...childField, path: childField?.path?.slice(childField?.path?.length - 1) ?? undefined }\r\n const cleanedValues = cleanAndUpdateFormValuesWithFieldValue({\r\n form: localForm,\r\n field: localField,\r\n value: e,\r\n formValues: structuredClone(initialValue)\r\n }) */\r\n /* const cleanedValues = cleanAndUpdateFormValuesWithFieldValue({\r\n form: field as IFormSection,\r\n field: childField,\r\n value: e,\r\n formValues: structuredClone(initialValue)\r\n }) */\r\n const newValue = structuredClone(initialValue)\r\n newValue[childField.id] = e\r\n onChange(newValue)\r\n }\r\n }}\r\n // conditionResult={conditionResult}\r\n className={utils.makeClassName({\r\n className: fc\r\n })}\r\n // conditionResult={conditionResult}\r\n // default to null here so that FormCreator doesn't go out and look for the value again\r\n // todo: update this so that it's clearer. difference between undefined and null too small\r\n value={(\r\n childField.type === 'object' && childField.skip_path === true\r\n ? initialValue\r\n : initialValue[childField.id]\r\n ) ?? null\r\n }\r\n field={childField}\r\n key={key}\r\n />\r\n )\r\n })\r\n }\r\n </div>\r\n </div>\r\n )\r\n }\r\n return <p>Field config for {field.id} is missing 'fields'</p>\r\n}\r\n\r\nexport default ObjectInput\r\n"],"names":["React","utils"],"mappings":"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"}
|
@@ -1,13 +1,12 @@
|
|
1
|
-
import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import FieldLabel from '../FieldLabel.js';
|
3
2
|
import { RadioGroup as RadixRadioGroup } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
|
4
3
|
import React__default from 'react';
|
5
4
|
|
6
5
|
var RadioInput = function (_a) {
|
7
|
-
var field = _a.field, onChange = _a.onChange, value = _a.value;
|
6
|
+
var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
|
8
7
|
var initialValue = value !== undefined ? value : '';
|
9
8
|
if (field.type === 'radio' && field.options !== undefined) {
|
10
|
-
return React__default.createElement(RadixRadioGroup, { id: field.id, label: React__default.createElement(FieldLabel,
|
9
|
+
return React__default.createElement(RadixRadioGroup, { id: field.id, label: React__default.createElement(FieldLabel, { field: field, disabled: disabled, value: value, onChange: onChange }), testId: field.id, options: field.options, value: initialValue !== undefined && initialValue !== null ? String(initialValue) : '', onChange: function (e) {
|
11
10
|
onChange(e === null || e === void 0 ? void 0 : e.value);
|
12
11
|
} });
|
13
12
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/Form/Components/Inputs/RadioGroup.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { RadioGroup } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst RadioInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'radio' && field.options !== undefined) {\r\n return <RadioGroup\r\n id={field.id}\r\n label={<FieldLabel
|
1
|
+
{"version":3,"file":"RadioGroup.js","sources":["../../../../../../src/Form/Components/Inputs/RadioGroup.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { RadioGroup } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst RadioInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'radio' && field.options !== undefined) {\r\n return <RadioGroup\r\n id={field.id}\r\n label={<FieldLabel\r\n field={field}\r\n disabled={disabled}\r\n value={value}\r\n onChange={onChange}\r\n />}\r\n testId={field.id}\r\n options={field.options}\r\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\r\n onChange={(e) => {\r\n onChange(e?.value)\r\n }}\r\n />\r\n }\r\n return <p>Field config for {field.id} is missing 'options'</p>\r\n}\r\n\r\nexport default RadioInput\r\n"],"names":["React","RadioGroup"],"mappings":";;;;AAKM,IAAA,UAAU,GAAG,UAAC,EAAsD,EAAA;QAApD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;AACpD,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AACzD,QAAA,OAAOA,cAAC,CAAA,aAAA,CAAAC,eAAU,EACd,EAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAA,CAAA,aAAA,CAAC,UAAU,EAChB,EAAA,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAAA,CAClB,EACF,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
|
@@ -1,14 +1,13 @@
|
|
1
|
-
import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import FieldLabel from '../FieldLabel.js';
|
3
2
|
import { SelectInput as Select } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
|
4
3
|
import React__default from 'react';
|
5
4
|
|
6
5
|
var SingleSelectInput = function (_a) {
|
7
6
|
var _b;
|
8
|
-
var field = _a.field, onChange = _a.onChange, value = _a.value;
|
7
|
+
var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
|
9
8
|
var initialValue = value !== undefined ? value : '';
|
10
9
|
if (field.type === 'select' && field.options !== undefined) {
|
11
|
-
return React__default.createElement(Select, { id: field.id, label: React__default.createElement(FieldLabel,
|
10
|
+
return React__default.createElement(Select, { id: field.id, label: React__default.createElement(FieldLabel, { field: field, disabled: disabled, value: value, onChange: onChange }), testId: field.id, options: field.options, includePrompt: ((_b = field === null || field === void 0 ? void 0 : field.settings) === null || _b === void 0 ? void 0 : _b.allowNull) !== false, value: initialValue !== undefined && initialValue !== null ? String(initialValue) : '', onChange: function (e) {
|
12
11
|
onChange(e === null || e === void 0 ? void 0 : e.value);
|
13
12
|
} });
|
14
13
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SingleSelect.js","sources":["../../../../../../src/Form/Components/Inputs/SingleSelect.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { SelectInput } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst SingleSelectInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'select' && field.options !== undefined) {\r\n return <SelectInput\r\n id={field.id}\r\n label={<FieldLabel
|
1
|
+
{"version":3,"file":"SingleSelect.js","sources":["../../../../../../src/Form/Components/Inputs/SingleSelect.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { SelectInput } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst SingleSelectInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = value !== undefined ? value : ''\r\n\r\n if (field.type === 'select' && field.options !== undefined) {\r\n return <SelectInput\r\n id={field.id}\r\n label={<FieldLabel\r\n field={field}\r\n disabled={disabled}\r\n value={value}\r\n onChange={onChange}\r\n />}\r\n testId={field.id}\r\n options={field.options}\r\n includePrompt = {field?.settings?.allowNull !== false}\r\n value={initialValue !== undefined && initialValue !== null ? String(initialValue) : ''}\r\n onChange={(e) => {\r\n onChange(e?.value)\r\n }}\r\n />\r\n }\r\n return <p>Field config for {field.id} is missing 'options'</p>\r\n}\r\n\r\nexport default SingleSelectInput\r\n"],"names":["React","SelectInput"],"mappings":";;;;AAKM,IAAA,iBAAiB,GAAG,UAAC,EAAsD,EAAA;;QAApD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;AAC3D,IAAA,IAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,EAAE;AAErD,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE;AAC1D,QAAA,OAAOA,6BAACC,MAAW,EAAA,EACf,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAED,cAAC,CAAA,aAAA,CAAA,UAAU,IAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAAA,CAChB,EACJ,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAI,CAAA,MAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,QAAQ,0CAAE,SAAS,MAAK,KAAK,EACrD,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EACtF,QAAQ,EAAE,UAAC,CAAC,EAAA;gBACV,QAAQ,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;AACpB,aAAC,GACD;;IAEN,OAAOA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAqB,QAAA,KAAK,CAAC,EAAE;gCAAoC;AAC1E;;;;"}
|
@@ -1,21 +1,15 @@
|
|
1
|
-
import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import FieldLabel from '../FieldLabel.js';
|
2
|
+
import { createTextFieldDebounce } from '../../../utils/helpers.js';
|
3
3
|
import { Input } from '../../../../node_modules/@axdspub/axiom-ui-utilities/library/index.js';
|
4
4
|
import React__default from 'react';
|
5
5
|
|
6
6
|
var StringInput = function (_a) {
|
7
|
-
var field = _a.field, onChange = _a.onChange, value = _a.value;
|
7
|
+
var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
|
8
8
|
var initialValue = (value !== undefined && value !== null) ? String(value) : '';
|
9
|
-
|
10
|
-
|
11
|
-
const newVal = useDeferredValue(val)
|
12
|
-
useEffect(() => {
|
13
|
-
onChange(newVal === '' ? undefined : newVal)
|
14
|
-
}, [newVal]) */
|
9
|
+
var textField = field;
|
10
|
+
var debounced = createTextFieldDebounce(onChange, 200);
|
15
11
|
return React__default.createElement("div", null,
|
16
|
-
React__default.createElement(Input, { id: field.id, testId: field.id, value: initialValue, label: React__default.createElement(FieldLabel,
|
17
|
-
onChange((e === '' || e === null) ? undefined : e);
|
18
|
-
} }));
|
12
|
+
React__default.createElement(Input, { id: field.id, disabled: disabled, testId: field.id, value: initialValue, placeholder: textField.placeholder, label: React__default.createElement(FieldLabel, { field: field, disabled: disabled, value: value, onChange: onChange }), onChange: debounced }));
|
19
13
|
};
|
20
14
|
|
21
15
|
export { StringInput as default };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Input } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst StringInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const initialValue = (value !== undefined && value !== null) ? String(value) : ''\r\n
|
1
|
+
{"version":3,"file":"String.js","sources":["../../../../../../src/Form/Components/Inputs/String.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps, type ITextField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { createTextFieldDebounce } from '@/utils/helpers'\r\nimport { Input } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst StringInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const initialValue = (value !== undefined && value !== null) ? String(value) : ''\r\n const textField = field as ITextField\r\n const debounced = createTextFieldDebounce(onChange, 200)\r\n return <div>\r\n <Input\r\n id={field.id}\r\n disabled={disabled}\r\n testId={field.id}\r\n value={initialValue}\r\n placeholder={textField.placeholder}\r\n label={<FieldLabel\r\n field={field}\r\n disabled={disabled}\r\n value={value}\r\n onChange={onChange}\r\n />\r\n } onChange={debounced} /></div>\r\n}\r\n\r\nexport default StringInput\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAAsD,EAAA;QAApD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA;IACrD,IAAM,YAAY,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;IACjF,IAAM,SAAS,GAAG,KAAmB;IACrC,IAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACxD,OAAOA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;QACHA,cAAC,CAAA,aAAA,CAAA,KAAK,EACJ,EAAA,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,KAAK,CAAC,EAAE,EAChB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,SAAS,CAAC,WAAW,EAClC,KAAK,EAAEA,cAAC,CAAA,aAAA,CAAA,UAAU,EACd,EAAA,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAAA,CAClB,EACF,QAAQ,EAAE,SAAS,EAAI,CAAA,CAAM;AACvC;;;;"}
|
@@ -1,10 +1,9 @@
|
|
1
|
-
import { __assign } from '../../../../node_modules/tslib/tslib.es6.js';
|
2
1
|
import FieldLabel from '../FieldLabel.js';
|
3
2
|
import React__default, { useState } from 'react';
|
4
3
|
|
5
4
|
var TimeInput = function (_a) {
|
6
5
|
var _b;
|
7
|
-
var field = _a.field, onChange = _a.onChange, value = _a.value;
|
6
|
+
var field = _a.field, onChange = _a.onChange, value = _a.value, disabled = _a.disabled;
|
8
7
|
var _c = useState(null), error = _c[0], setError = _c[1];
|
9
8
|
if (field.type !== 'time') {
|
10
9
|
return React__default.createElement("p", null,
|
@@ -80,7 +79,7 @@ var TimeInput = function (_a) {
|
|
80
79
|
return (React__default.createElement("div", null,
|
81
80
|
React__default.createElement("div", { className: "flex flex-wrap items-baseline gap-2" },
|
82
81
|
React__default.createElement("label", { htmlFor: field.id, className: "flex-1 min-w-[200px]" },
|
83
|
-
React__default.createElement(FieldLabel,
|
82
|
+
React__default.createElement(FieldLabel, { field: field, disabled: disabled })),
|
84
83
|
constraintMessage && (React__default.createElement("span", { className: "text-sm text-slate-500 italic" }, constraintMessage))),
|
85
84
|
React__default.createElement("input", { id: field.id, className: "border ".concat(error ? 'border-red-500' : 'border-slate-300', " p-2 w-full"), "data-testid": field.id, type: "time", value: formatValue(value), onChange: handleChange, min: minTime, max: maxTime }),
|
86
85
|
error && React__default.createElement("p", { className: "text-red-500 text-sm mt-1" }, error)));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Time.js","sources":["../../../../../../src/Form/Components/Inputs/Time.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement, useState } from 'react'\r\n\r\nconst TimeInput = ({ field, onChange, value }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | null>(null)\r\n\r\n if (field.type !== 'time') {\r\n return <p>Field config for {field.id} is missing 'options'</p>\r\n }\r\n const { minTime, maxTime } = field.constraints ?? {}\r\n\r\n // Convert the value to the format expected by time input (hh:mm)\r\n const formatValue = (val: string | undefined | null): string => {\r\n if (!val) return ''\r\n try {\r\n // Ensure the value is in the correct format\r\n const date = new Date(val)\r\n if (isNaN(date.getTime())) return ''\r\n\r\n // Format to hh:mm\r\n const hours = String(date.getHours()).padStart(2, '0')\r\n const minutes = String(date.getMinutes()).padStart(2, '0')\r\n\r\n return `${hours}:${minutes}`\r\n } catch {\r\n return ''\r\n }\r\n }\r\n\r\n const validateTime = (timeStr: string): string | null => {\r\n if (!minTime && !maxTime) return null\r\n\r\n // Create reference dates for comparison using the same date\r\n const referenceDate = '1970-01-01'\r\n const inputDate = new Date(`${referenceDate}T${timeStr}`)\r\n const minDate = minTime ? new Date(`${referenceDate}T${minTime}`) : null\r\n const maxDate = maxTime ? new Date(`${referenceDate}T${maxTime}`) : null\r\n\r\n if (minDate && inputDate < minDate) {\r\n return `Time must be after ${minTime}`\r\n }\r\n if (maxDate && inputDate > maxDate) {\r\n return `Time must be before ${maxTime}`\r\n }\r\n return null\r\n }\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n const inputValue = e.target.value\r\n\r\n // If we have a partial time (e.g., just started typing hours), don't update\r\n if (inputValue && inputValue.length < 5) { // 5 is the length of a complete time value (HH:MM)\r\n return\r\n }\r\n\r\n if (inputValue) {\r\n const newValue = new Date(`1970-01-01T${inputValue}`).toISOString()\r\n const validationError = validateTime(inputValue)\r\n setError(validationError)\r\n if (!validationError) {\r\n onChange(newValue)\r\n }\r\n } else {\r\n setError(null)\r\n onChange(undefined)\r\n }\r\n }\r\n\r\n const getConstraintMessage = (): string | null => {\r\n if (!minTime && !maxTime) return null\r\n const parts = []\r\n if (minTime) parts.push(`after ${minTime}`)\r\n if (maxTime) parts.push(`before ${maxTime}`)\r\n return `Must be ${parts.join(' and ')}`\r\n }\r\n\r\n const constraintMessage = getConstraintMessage()\r\n\r\n return (\r\n <div>\r\n <div className=\"flex flex-wrap items-baseline gap-2\">\r\n <label htmlFor={field.id} className=\"flex-1 min-w-[200px]\">\r\n <FieldLabel {
|
1
|
+
{"version":3,"file":"Time.js","sources":["../../../../../../src/Form/Components/Inputs/Time.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport { type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement, useState } from 'react'\r\n\r\nconst TimeInput = ({ field, onChange, value, disabled }: IFieldInputProps): ReactElement => {\r\n const [error, setError] = useState<string | null>(null)\r\n\r\n if (field.type !== 'time') {\r\n return <p>Field config for {field.id} is missing 'options'</p>\r\n }\r\n const { minTime, maxTime } = field.constraints ?? {}\r\n\r\n // Convert the value to the format expected by time input (hh:mm)\r\n const formatValue = (val: string | undefined | null): string => {\r\n if (!val) return ''\r\n try {\r\n // Ensure the value is in the correct format\r\n const date = new Date(val)\r\n if (isNaN(date.getTime())) return ''\r\n\r\n // Format to hh:mm\r\n const hours = String(date.getHours()).padStart(2, '0')\r\n const minutes = String(date.getMinutes()).padStart(2, '0')\r\n\r\n return `${hours}:${minutes}`\r\n } catch {\r\n return ''\r\n }\r\n }\r\n\r\n const validateTime = (timeStr: string): string | null => {\r\n if (!minTime && !maxTime) return null\r\n\r\n // Create reference dates for comparison using the same date\r\n const referenceDate = '1970-01-01'\r\n const inputDate = new Date(`${referenceDate}T${timeStr}`)\r\n const minDate = minTime ? new Date(`${referenceDate}T${minTime}`) : null\r\n const maxDate = maxTime ? new Date(`${referenceDate}T${maxTime}`) : null\r\n\r\n if (minDate && inputDate < minDate) {\r\n return `Time must be after ${minTime}`\r\n }\r\n if (maxDate && inputDate > maxDate) {\r\n return `Time must be before ${maxTime}`\r\n }\r\n return null\r\n }\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n const inputValue = e.target.value\r\n\r\n // If we have a partial time (e.g., just started typing hours), don't update\r\n if (inputValue && inputValue.length < 5) { // 5 is the length of a complete time value (HH:MM)\r\n return\r\n }\r\n\r\n if (inputValue) {\r\n const newValue = new Date(`1970-01-01T${inputValue}`).toISOString()\r\n const validationError = validateTime(inputValue)\r\n setError(validationError)\r\n if (!validationError) {\r\n onChange(newValue)\r\n }\r\n } else {\r\n setError(null)\r\n onChange(undefined)\r\n }\r\n }\r\n\r\n const getConstraintMessage = (): string | null => {\r\n if (!minTime && !maxTime) return null\r\n const parts = []\r\n if (minTime) parts.push(`after ${minTime}`)\r\n if (maxTime) parts.push(`before ${maxTime}`)\r\n return `Must be ${parts.join(' and ')}`\r\n }\r\n\r\n const constraintMessage = getConstraintMessage()\r\n\r\n return (\r\n <div>\r\n <div className=\"flex flex-wrap items-baseline gap-2\">\r\n <label htmlFor={field.id} className=\"flex-1 min-w-[200px]\">\r\n <FieldLabel field={field} disabled={disabled} />\r\n </label>\r\n {constraintMessage && (\r\n <span className=\"text-sm text-slate-500 italic\">\r\n {constraintMessage}\r\n </span>\r\n )}\r\n </div>\r\n <input\r\n id={field.id}\r\n className={`border ${error ? 'border-red-500' : 'border-slate-300'} p-2 w-full`}\r\n data-testid={field.id}\r\n type=\"time\"\r\n value={formatValue(value as string)}\r\n onChange={handleChange}\r\n min={minTime}\r\n max={maxTime}\r\n />\r\n {error && <p className=\"text-red-500 text-sm mt-1\">{error}</p>}\r\n </div>\r\n )\r\n}\r\n\r\nexport default TimeInput\r\n"],"names":["React"],"mappings":"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"}
|
@@ -12,15 +12,15 @@ import React__default, { useState, useContext } from 'react';
|
|
12
12
|
|
13
13
|
var FormStatus = function () {
|
14
14
|
var _a, _b, _c, _d;
|
15
|
-
var _e = useContext(FormContext), form = _e.form, formValues = _e.formValues
|
16
|
-
var status = calculateSectionStatus([form],
|
17
|
-
return (React__default.createElement(
|
18
|
-
React__default.createElement("p",
|
15
|
+
var _e = useContext(FormContext), form = _e.form, formValues = _e.formValues;
|
16
|
+
var status = calculateSectionStatus([form], formValues);
|
17
|
+
return (React__default.createElement("div", { className: 'flex flex-col gap-2 text-xs' },
|
18
|
+
React__default.createElement("p", null, (_a = status[form.id]) === null || _a === void 0 ? void 0 :
|
19
19
|
_a.completed,
|
20
20
|
" of ", (_b = status[form.id]) === null || _b === void 0 ? void 0 :
|
21
21
|
_b.total,
|
22
22
|
" total"),
|
23
|
-
React__default.createElement("p",
|
23
|
+
React__default.createElement("p", null, (_c = status[form.id]) === null || _c === void 0 ? void 0 :
|
24
24
|
_c.requiredCompleted,
|
25
25
|
" of ", (_d = status[form.id]) === null || _d === void 0 ? void 0 :
|
26
26
|
_d.requiredTotal,
|
@@ -37,7 +37,7 @@ var seedFormValuesWithDefaults = function (form) {
|
|
37
37
|
};
|
38
38
|
var FormCreator = function (_a) {
|
39
39
|
var _b, _c;
|
40
|
-
var form = _a.form, formValueState = _a.formValueState, note = _a.note, error = _a.error, onChange = _a.onChange, className = _a.className, _d = _a.defaultClassName, defaultClassName = _d === void 0 ? 'flex flex-col gap-
|
40
|
+
var form = _a.form, formValueState = _a.formValueState, note = _a.note, error = _a.error, onChange = _a.onChange, className = _a.className, _d = _a.defaultClassName, defaultClassName = _d === void 0 ? 'flex flex-col gap-8 flex-grow' : _d, _e = _a.urlNavigable, urlNavigable = _e === void 0 ? true : _e, inputOverrides = _a.inputOverrides, schema = _a.schema, footer = _a.footer, header = _a.header;
|
41
41
|
var activeForm = copyAndAddPathToFields(form);
|
42
42
|
var activeFormValues = structuredClone((_b = formValueState === null || formValueState === void 0 ? void 0 : formValueState[0]) !== null && _b !== void 0 ? _b : {});
|
43
43
|
getFieldsFromFormSection(activeForm).forEach(function (field) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormHeader from '@/Form/Creator/FormHeader'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport { getFieldsFromFormSection, getFieldValue } from '@/utils/getters'\r\nimport { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '@/utils/manipulators'\r\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/utils/schemaToFormHelpers'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { type JSONSchema6 } from 'json-schema'\r\nimport React, { type ReactNode, useContext, type ReactElement, useState } from 'react'\r\n\r\nexport interface IFormCreatorProps {\r\n form: IForm\r\n schema?: JSONSchema6\r\n formValueState?: [IFormValues, (v: IFormValues) => void]\r\n note?: string\r\n error?: string\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n urlNavigable?: boolean\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n header?: ReactNode\r\n footer?: ReactNode\r\n}\r\n\r\nconst FormStatus = (): ReactElement => {\r\n const { form, formValues
|
1
|
+
{"version":3,"file":"FormCreator.js","sources":["../../../../../src/Form/Creator/FormCreator.tsx"],"sourcesContent":["import { FormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFormValues, type IForm, type IValueChangeFn, type IFieldInputProps, type IFormOverride, type IFormFieldOverride } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormHeader from '@/Form/Creator/FormHeader'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport { getFieldsFromFormSection, getFieldValue } from '@/utils/getters'\r\nimport { copyAndAddPathToFields, updateFormValuesWithFieldValueInPlace } from '@/utils/manipulators'\r\nimport { overridesAndSchemaToFormObject, schemaToFormObject } from '@/utils/schemaToFormHelpers'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Loader, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { type JSONSchema6 } from 'json-schema'\r\nimport React, { type ReactNode, useContext, type ReactElement, useState } from 'react'\r\n\r\nexport interface IFormCreatorProps {\r\n form: IForm\r\n schema?: JSONSchema6\r\n formValueState?: [IFormValues, (v: IFormValues) => void]\r\n note?: string\r\n error?: string\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n urlNavigable?: boolean\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n header?: ReactNode\r\n footer?: ReactNode\r\n}\r\n\r\nconst FormStatus = (): ReactElement => {\r\n const { form, formValues } = useContext(FormContext)\r\n const status = calculateSectionStatus([form], formValues)\r\n\r\n return (\r\n <div className='flex flex-col gap-2 text-xs'>\r\n <p>{status[form.id]?.completed} of {status[form.id]?.total} total</p>\r\n <p>{status[form.id]?.requiredCompleted} of {status[form.id]?.requiredTotal} required</p>\r\n </div>\r\n )\r\n}\r\n\r\nexport const SchemaFormCreator = ({\r\n label,\r\n id,\r\n schema,\r\n formOverrides,\r\n formFieldOverrides,\r\n ...props\r\n}: Omit<IFormCreatorProps, 'form'> & {\r\n id?: string\r\n label?: string\r\n schema: JSONSchema6\r\n formOverrides?: IFormOverride[]\r\n formFieldOverrides?: IFormFieldOverride[][]\r\n}): ReactElement => {\r\n const form = formOverrides === undefined && formFieldOverrides === undefined\r\n ? schemaToFormObject(schema)\r\n : overridesAndSchemaToFormObject({\r\n formOverrides,\r\n formFieldOverrides,\r\n schema\r\n }) // Convert the JSON schema to a form object\r\n if (id !== undefined) {\r\n form.id = id\r\n }\r\n if (label !== undefined) {\r\n form.label = label\r\n }\r\n\r\n return (\r\n <>{\r\n form !== undefined\r\n ? <FormCreator form={form} {...props} />\r\n : <div className='p-5 bg-slate-200 text-xs'><Loader className='pt-20' /></div>\r\n }</>\r\n\r\n )\r\n}\r\n\r\nconst seedFormValuesWithDefaults = (form: IForm): IFormValues => {\r\n const formValues: IFormValues = {}\r\n getFieldsFromFormSection(form).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, formValues) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValues)\r\n }\r\n })\r\n return formValues\r\n}\r\n\r\nconst FormCreator = ({\r\n form,\r\n formValueState,\r\n note,\r\n error,\r\n onChange,\r\n className,\r\n defaultClassName = 'flex flex-col gap-8 flex-grow',\r\n urlNavigable = true,\r\n inputOverrides,\r\n schema,\r\n footer,\r\n header\r\n}: IFormCreatorProps): ReactElement => {\r\n const activeForm = copyAndAddPathToFields(form)\r\n const activeFormValues = structuredClone(formValueState?.[0] ?? {})\r\n getFieldsFromFormSection(activeForm).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, activeFormValues) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, activeFormValues)\r\n }\r\n })\r\n const [formValues, setFormValues] = formValueState ?? useState<IFormValues>(seedFormValuesWithDefaults(activeForm))\r\n\r\n activeForm.settings = {\r\n url_navigable: urlNavigable,\r\n ...activeForm.settings\r\n }\r\n\r\n return (\r\n <FormContext.Provider value={{\r\n form: activeForm,\r\n formValues,\r\n setFormValues,\r\n inputOverrides,\r\n schema,\r\n urlNavigable: activeForm.settings.url_navigable\r\n }}>\r\n {header ?? ''}\r\n <div className={utils.makeClassName({\r\n className: activeForm?.settings?.class_name,\r\n defaultClassName,\r\n extras: [className]\r\n })}>\r\n <FormHeader form={activeForm} note={note} error={error} />\r\n {\r\n activeForm?.fields !== undefined && activeForm.fields.length > 0 && activeForm.pages === undefined && activeForm.wizard_steps === undefined\r\n ? <FormStatus />\r\n : ''\r\n }\r\n <FormSection\r\n formSection={activeForm}\r\n onChange={onChange}\r\n />\r\n </div>\r\n {footer ?? ''}\r\n </FormContext.Provider>\r\n )\r\n}\r\n\r\nexport type IFormSectionStatus = Record<string, {\r\n completed: number\r\n total: number\r\n requiredTotal: number\r\n requiredCompleted: number\r\n valid: boolean\r\n}>\r\n\r\nexport default FormCreator\r\n"],"names":["React","utils"],"mappings":"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"}
|
@@ -2,7 +2,7 @@ import FieldCreator from '../Components/FieldCreator.js';
|
|
2
2
|
import React__default from 'react';
|
3
3
|
|
4
4
|
var FormFields = function (_a) {
|
5
|
-
var fields = _a.fields, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-
|
5
|
+
var fields = _a.fields, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-4 flex-grow h-full' : _b;
|
6
6
|
return (React__default.createElement(React__default.Fragment, null, fields === undefined || fields.length < 1
|
7
7
|
? ''
|
8
8
|
: React__default.createElement("div", { className: className }, fields === null || fields === void 0 ? void 0 : fields.map(function (field) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormFields = ({\r\n fields,\r\n onChange,\r\n className = 'flex flex-col gap-
|
1
|
+
{"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormFields = ({\r\n fields,\r\n onChange,\r\n className = 'flex flex-col gap-4 flex-grow h-full'\r\n}: {\r\n fields?: IFormField[]\r\n onChange?: IValueChangeFn\r\n className?: string\r\n}): ReactElement => {\r\n return (\r\n <>\r\n {\r\n fields === undefined || fields.length < 1\r\n ? ''\r\n : <div className={className}>\r\n {\r\n fields?.map((field) => {\r\n return (\r\n <FieldCreator onChange={onChange} field={field} key={field.id} />\r\n )\r\n })\r\n }\r\n </div>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormFields\r\n"],"names":["React"],"mappings":";;;AAIM,IAAA,UAAU,GAAG,UAAC,EAQnB,EAAA;QAPC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,iBAAkD,EAAlD,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,sCAAsC,GAAA,EAAA;IAMlD,QACIA,cAEE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG;AACtC,UAAE;AACF,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAEvB,EAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,EAAA;AAChB,YAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAA,CAAI;AAErE,SAAC,CAAC,CAEF,CAEL;AAET;;;;"}
|
@@ -6,7 +6,8 @@ import { Markdown } from '../../../node_modules/react-markdown/lib/index.js';
|
|
6
6
|
var FormHeader = function (_a) {
|
7
7
|
var form = _a.form, note = _a.note, error = _a.error;
|
8
8
|
return (React__default.createElement("div", { className: 'flex flex-col gap-4' },
|
9
|
-
React__default.createElement("h2", { className: 'text-2xl font-bold' },
|
9
|
+
React__default.createElement("h2", { className: 'text-2xl font-bold' },
|
10
|
+
React__default.createElement(InlineMarkdown, null, form.label)),
|
10
11
|
note !== undefined
|
11
12
|
? React__default.createElement(Markdown, null, note)
|
12
13
|
: null,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormHeader.js","sources":["../../../../../src/Form/Creator/FormHeader.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport type { IForm } from '@/library'\r\nimport { ExclamationTriangleIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport Markdown from 'react-markdown'\r\n\r\nconst FormHeader = ({\r\n form, note, error\r\n\r\n}: {\r\n form: IForm\r\n note?: string\r\n error?: string\r\n}): ReactElement => {\r\n return (\r\n <div className='flex flex-col gap-4'>\r\n <h2 className='text-2xl font-bold'>{form.label}</h2>\r\n {note !== undefined\r\n ? <Markdown>{note}</Markdown>\r\n : null}\r\n {error !== undefined\r\n ? <p className='pb-4 text-rose-800'><ExclamationTriangleIcon className='inline mr-2' /> <InlineMarkdown>{error}</InlineMarkdown></p>\r\n : null}\r\n {form.description !== undefined\r\n ? <Markdown>{form.description}</Markdown>\r\n : null}\r\n </div>\r\n )\r\n}\r\n\r\nexport default FormHeader\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,UAAU,GAAG,UAAC,EAOnB,EAAA;AANC,IAAA,IAAA,IAAI,UAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAOjB,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA;
|
1
|
+
{"version":3,"file":"FormHeader.js","sources":["../../../../../src/Form/Creator/FormHeader.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport type { IForm } from '@/library'\r\nimport { ExclamationTriangleIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport Markdown from 'react-markdown'\r\n\r\nconst FormHeader = ({\r\n form, note, error\r\n\r\n}: {\r\n form: IForm\r\n note?: string\r\n error?: string\r\n}): ReactElement => {\r\n return (\r\n <div className='flex flex-col gap-4'>\r\n <h2 className='text-2xl font-bold'><InlineMarkdown>{form.label}</InlineMarkdown></h2>\r\n {note !== undefined\r\n ? <Markdown>{note}</Markdown>\r\n : null}\r\n {error !== undefined\r\n ? <p className='pb-4 text-rose-800'><ExclamationTriangleIcon className='inline mr-2' /> <InlineMarkdown>{error}</InlineMarkdown></p>\r\n : null}\r\n {form.description !== undefined\r\n ? <Markdown>{form.description}</Markdown>\r\n : null}\r\n </div>\r\n )\r\n}\r\n\r\nexport default FormHeader\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,UAAU,GAAG,UAAC,EAOnB,EAAA;AANC,IAAA,IAAA,IAAI,UAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA;AAOjB,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA;QAClCA,cAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,oBAAoB,EAAA;AAAC,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAE,IAAA,EAAA,IAAI,CAAC,KAAK,CAAkB,CAAK;AACpF,QAAA,IAAI,KAAK;AACR,cAAEA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,IAAA,EAAE,IAAI;AACjB,cAAE,IAAI;AACP,QAAA,KAAK,KAAK;AACT,cAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,oBAAoB,EAAA;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,uBAAuB,EAAA,EAAC,SAAS,EAAC,aAAa,EAAG,CAAA;;AAAC,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAkB;AAChI,cAAE,IAAI;QACP,IAAI,CAAC,WAAW,KAAK;AACpB,cAAEA,cAAC,CAAA,aAAA,CAAA,QAAQ,QAAE,IAAI,CAAC,WAAW;AAC7B,cAAE,IAAI,CACJ;AAEV;;;;"}
|
@@ -35,7 +35,7 @@ var FormSection = function (_a) {
|
|
35
35
|
? React__default.createElement(WizardLayout, { sections: wizardSteps, onChange: onChange, level: level })
|
36
36
|
: hasPages
|
37
37
|
? React__default.createElement(PageLayout, { sections: pages, onChange: onChange, level: level })
|
38
|
-
: React__default.createElement(FormFields, { fields: fields, onChange: onChange })));
|
38
|
+
: React__default.createElement(FormFields, { fields: fields, onChange: onChange, className: level === 0 ? 'flex flex-col gap-8' : undefined })));
|
39
39
|
};
|
40
40
|
|
41
41
|
export { FormSection as default };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FormSection.js","sources":["../../../../../src/Form/Creator/FormSection.tsx"],"sourcesContent":["import { type IFieldInputProps, type IFormSection, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormFields from '@/Form/Creator/FormFields'\r\nimport PageLayout from '@/Form/Creator/Page'\r\nimport WizardLayout from '@/Form/Creator/Wizard'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormSection = ({\r\n formSection,\r\n onChange,\r\n level = 0,\r\n inputOverrides\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n level?: number\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n\r\n}): ReactElement => {\r\n if (formSection === undefined) {\r\n return <></>\r\n }\r\n const pages = (formSection?.pages ?? []).slice()\r\n const fields = (formSection?.fields ?? []).slice()\r\n const wizardSteps = (formSection?.wizard_steps ?? []).slice()\r\n const hasPages = pages.length > 0\r\n const hasFields = fields.length > 0\r\n const hasWizardSteps = wizardSteps.length > 0\r\n if (hasPages && hasFields) {\r\n pages.unshift({\r\n id: 'default',\r\n label: 'Default',\r\n fields\r\n })\r\n }\r\n if ((hasPages || hasFields) && hasWizardSteps) {\r\n wizardSteps.unshift({\r\n id: 'default',\r\n order: -10,\r\n label: 'Default',\r\n pages,\r\n fields\r\n })\r\n }\r\n return (\r\n <>\r\n {\r\n hasWizardSteps\r\n ? <WizardLayout sections={wizardSteps} onChange={onChange} level={level} />\r\n\r\n : hasPages\r\n ? <PageLayout sections={pages} onChange={onChange} level={level} />\r\n : <FormFields
|
1
|
+
{"version":3,"file":"FormSection.js","sources":["../../../../../src/Form/Creator/FormSection.tsx"],"sourcesContent":["import { type IFieldInputProps, type IFormSection, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormFields from '@/Form/Creator/FormFields'\r\nimport PageLayout from '@/Form/Creator/Page'\r\nimport WizardLayout from '@/Form/Creator/Wizard'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormSection = ({\r\n formSection,\r\n onChange,\r\n level = 0,\r\n inputOverrides\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n level?: number\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n\r\n}): ReactElement => {\r\n if (formSection === undefined) {\r\n return <></>\r\n }\r\n const pages = (formSection?.pages ?? []).slice()\r\n const fields = (formSection?.fields ?? []).slice()\r\n const wizardSteps = (formSection?.wizard_steps ?? []).slice()\r\n const hasPages = pages.length > 0\r\n const hasFields = fields.length > 0\r\n const hasWizardSteps = wizardSteps.length > 0\r\n if (hasPages && hasFields) {\r\n pages.unshift({\r\n id: 'default',\r\n label: 'Default',\r\n fields\r\n })\r\n }\r\n if ((hasPages || hasFields) && hasWizardSteps) {\r\n wizardSteps.unshift({\r\n id: 'default',\r\n order: -10,\r\n label: 'Default',\r\n pages,\r\n fields\r\n })\r\n }\r\n return (\r\n <>\r\n {\r\n hasWizardSteps\r\n ? <WizardLayout sections={wizardSteps} onChange={onChange} level={level} />\r\n\r\n : hasPages\r\n ? <PageLayout sections={pages} onChange={onChange} level={level} />\r\n : <FormFields\r\n fields={fields} onChange={onChange}\r\n className={level === 0 ? 'flex flex-col gap-8' : undefined}\r\n\r\n />\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormSection\r\n"],"names":["React"],"mappings":";;;;;AAMM,IAAA,WAAW,GAAG,UAAC,EAWpB,EAAA;;AAVC,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA,CACX,QAAQ,GAAA,EAAA,CAAA,QAAA,CACR,CAAA,EAAA,GAAA,EAAA,CAAA,KAAS,CAAT,CAAA,KAAK,GAAG,EAAA,KAAA,MAAA,GAAA,CAAC,GAAA,EAAA,CAAA,CACK,EAAA,CAAA;AAQd,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,QAAA,OAAOA,2DAAK;;AAEd,IAAA,IAAM,KAAK,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAChD,IAAA,IAAM,MAAM,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAClD,IAAA,IAAM,WAAW,GAAG,CAAC,CAAA,EAAA,GAAA,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE,EAAE,KAAK,EAAE;AAC7D,IAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AACjC,IAAA,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACnC,IAAA,IAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAC7C,IAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;QACzB,KAAK,CAAC,OAAO,CAAC;AACZ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,IAAI,CAAC,QAAQ,IAAI,SAAS,KAAK,cAAc,EAAE;QAC7C,WAAW,CAAC,OAAO,CAAC;AAClB,YAAA,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,GAAG;AACV,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,KAAK,EAAA,KAAA;AACL,YAAA,MAAM,EAAA;AACP,SAAA,CAAC;;IAEJ,QACMA,4DAEI;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AAE3E,UAAE;AACA,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAI;AACnE,cAAEA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACX,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAClC,SAAS,EAAE,KAAK,KAAK,CAAC,GAAG,qBAAqB,GAAG,SAAS,EAAA,CAExD,CAET;AAEX;;;;"}
|
@@ -70,11 +70,16 @@ var PageLayout = function (props) {
|
|
70
70
|
return React__default.createElement(React__default.Fragment, null);
|
71
71
|
}
|
72
72
|
var urlNavigable = useFormContext().urlNavigable;
|
73
|
+
var url = new URL(window.location.href);
|
74
|
+
var parts = url.pathname.split('/');
|
75
|
+
var formParts = parts.slice(parts.length - props.level, parts.length);
|
73
76
|
var params = ((_a = useParams()['*']) !== null && _a !== void 0 ? _a : '').split('/');
|
74
77
|
var path = params.slice(0, props.level).join('/');
|
75
78
|
var id = urlNavigable
|
76
79
|
? (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)
|
77
80
|
: (_e = (_d = props.sections[0]) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : null;
|
81
|
+
console.log(props);
|
82
|
+
console.log('Form parts:', formParts, 'Level:', props.level, 'Params:', params.join(','));
|
78
83
|
return (React__default.createElement(FormSectionContextProvider, { path: path, id: id },
|
79
84
|
React__default.createElement(PageLayoutContent, __assign({}, props))));
|
80
85
|
};
|
@@ -84,8 +89,8 @@ var PageLayoutContent = function (_a) {
|
|
84
89
|
if (sections === undefined) {
|
85
90
|
return React__default.createElement(React__default.Fragment, null);
|
86
91
|
}
|
87
|
-
var
|
88
|
-
var sectionStatus = calculateSectionStatus(sections,
|
92
|
+
var formValues = useFormContext().formValues;
|
93
|
+
var sectionStatus = calculateSectionStatus(sections, formValues);
|
89
94
|
var activeId = useFormSectionContext().activeId;
|
90
95
|
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];
|
91
96
|
return (React__default.createElement("div", { className: className },
|