@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.
Files changed (122) hide show
  1. package/library/axiom-ui-forms.d.ts +56 -26
  2. package/library/esm/_virtual/index10.js +2 -2
  3. package/library/esm/_virtual/index3.js +2 -2
  4. package/library/esm/_virtual/index4.js +2 -2
  5. package/library/esm/_virtual/index9.js +2 -2
  6. package/library/esm/node_modules/@axdspub/axiom-maps/library/index.js +1 -1
  7. package/library/esm/node_modules/@axdspub/axiom-maps/library/openlayers/index.esm.js +1 -1
  8. package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js +15219 -0
  9. package/library/esm/node_modules/@axdspub/axiom-maps/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -0
  10. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js +122 -90
  11. package/library/esm/node_modules/@axdspub/axiom-ui-utilities/library/index.js.map +1 -1
  12. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +23 -1
  13. package/library/esm/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  14. package/library/esm/node_modules/ajv/dist/compile/validate/index.js +1 -1
  15. package/library/esm/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  16. package/library/esm/node_modules/ajv/dist/vocabularies/discriminator/index.js +1 -1
  17. package/library/esm/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  18. package/library/esm/node_modules/lodash-es/_SetCache.js +28 -0
  19. package/library/esm/node_modules/lodash-es/_SetCache.js.map +1 -0
  20. package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js +8 -1
  21. package/library/esm/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -1
  22. package/library/esm/node_modules/lodash-es/_arraySome.js +24 -0
  23. package/library/esm/node_modules/lodash-es/_arraySome.js.map +1 -0
  24. package/library/esm/node_modules/lodash-es/_baseIsEqual.js +29 -0
  25. package/library/esm/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
  26. package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js +84 -0
  27. package/library/esm/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
  28. package/library/esm/node_modules/lodash-es/_baseKeys.js +31 -0
  29. package/library/esm/node_modules/lodash-es/_baseKeys.js.map +1 -0
  30. package/library/esm/node_modules/lodash-es/_baseTrim.js +20 -0
  31. package/library/esm/node_modules/lodash-es/_baseTrim.js.map +1 -0
  32. package/library/esm/node_modules/lodash-es/_cacheHas.js +14 -0
  33. package/library/esm/node_modules/lodash-es/_cacheHas.js.map +1 -0
  34. package/library/esm/node_modules/lodash-es/_equalArrays.js +85 -0
  35. package/library/esm/node_modules/lodash-es/_equalArrays.js.map +1 -0
  36. package/library/esm/node_modules/lodash-es/_equalByTag.js +113 -0
  37. package/library/esm/node_modules/lodash-es/_equalByTag.js.map +1 -0
  38. package/library/esm/node_modules/lodash-es/_equalObjects.js +91 -0
  39. package/library/esm/node_modules/lodash-es/_equalObjects.js.map +1 -0
  40. package/library/esm/node_modules/lodash-es/_getAllKeys.js +17 -0
  41. package/library/esm/node_modules/lodash-es/_getAllKeys.js.map +1 -0
  42. package/library/esm/node_modules/lodash-es/_mapToArray.js +19 -0
  43. package/library/esm/node_modules/lodash-es/_mapToArray.js.map +1 -0
  44. package/library/esm/node_modules/lodash-es/_nativeKeys.js +7 -0
  45. package/library/esm/node_modules/lodash-es/_nativeKeys.js.map +1 -0
  46. package/library/esm/node_modules/lodash-es/_setCacheAdd.js +20 -0
  47. package/library/esm/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
  48. package/library/esm/node_modules/lodash-es/_setCacheHas.js +15 -0
  49. package/library/esm/node_modules/lodash-es/_setCacheHas.js.map +1 -0
  50. package/library/esm/node_modules/lodash-es/_setToArray.js +19 -0
  51. package/library/esm/node_modules/lodash-es/_setToArray.js.map +1 -0
  52. package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js +20 -0
  53. package/library/esm/node_modules/lodash-es/_trimmedEndIndex.js.map +1 -0
  54. package/library/esm/node_modules/lodash-es/debounce.js +192 -0
  55. package/library/esm/node_modules/lodash-es/debounce.js.map +1 -0
  56. package/library/esm/node_modules/lodash-es/isEqual.js +36 -0
  57. package/library/esm/node_modules/lodash-es/isEqual.js.map +1 -0
  58. package/library/esm/node_modules/lodash-es/keys.js +38 -0
  59. package/library/esm/node_modules/lodash-es/keys.js.map +1 -0
  60. package/library/esm/node_modules/lodash-es/keysIn.js +1 -1
  61. package/library/esm/node_modules/lodash-es/keysIn.js.map +1 -1
  62. package/library/esm/node_modules/lodash-es/now.js +24 -0
  63. package/library/esm/node_modules/lodash-es/now.js.map +1 -0
  64. package/library/esm/node_modules/lodash-es/toNumber.js +65 -0
  65. package/library/esm/node_modules/lodash-es/toNumber.js.map +1 -0
  66. package/library/esm/src/Form/Components/FieldCreator.js +86 -31
  67. package/library/esm/src/Form/Components/FieldCreator.js.map +1 -1
  68. package/library/esm/src/Form/Components/FieldLabel.js +90 -19
  69. package/library/esm/src/Form/Components/FieldLabel.js.map +1 -1
  70. package/library/esm/src/Form/Components/InlineMarkdown.js +4 -0
  71. package/library/esm/src/Form/Components/InlineMarkdown.js.map +1 -1
  72. package/library/esm/src/Form/Components/Inputs/Boolean.js +8 -6
  73. package/library/esm/src/Form/Components/Inputs/Boolean.js.map +1 -1
  74. package/library/esm/src/Form/Components/Inputs/Constant.js +2 -2
  75. package/library/esm/src/Form/Components/Inputs/Constant.js.map +1 -1
  76. package/library/esm/src/Form/Components/Inputs/Date.js +3 -4
  77. package/library/esm/src/Form/Components/Inputs/Date.js.map +1 -1
  78. package/library/esm/src/Form/Components/Inputs/DateTime.js +3 -4
  79. package/library/esm/src/Form/Components/Inputs/DateTime.js.map +1 -1
  80. package/library/esm/src/Form/Components/Inputs/GeoJSON.js +5 -4
  81. package/library/esm/src/Form/Components/Inputs/GeoJSON.js.map +1 -1
  82. package/library/esm/src/Form/Components/Inputs/Geometry.js +20 -11
  83. package/library/esm/src/Form/Components/Inputs/Geometry.js.map +1 -1
  84. package/library/esm/src/Form/Components/Inputs/JSON.js +6 -5
  85. package/library/esm/src/Form/Components/Inputs/JSON.js.map +1 -1
  86. package/library/esm/src/Form/Components/Inputs/LongString.js +5 -5
  87. package/library/esm/src/Form/Components/Inputs/LongString.js.map +1 -1
  88. package/library/esm/src/Form/Components/Inputs/Number.js +49 -35
  89. package/library/esm/src/Form/Components/Inputs/Number.js.map +1 -1
  90. package/library/esm/src/Form/Components/Inputs/Object.js +46 -11
  91. package/library/esm/src/Form/Components/Inputs/Object.js.map +1 -1
  92. package/library/esm/src/Form/Components/Inputs/RadioGroup.js +2 -3
  93. package/library/esm/src/Form/Components/Inputs/RadioGroup.js.map +1 -1
  94. package/library/esm/src/Form/Components/Inputs/SingleSelect.js +2 -3
  95. package/library/esm/src/Form/Components/Inputs/SingleSelect.js.map +1 -1
  96. package/library/esm/src/Form/Components/Inputs/String.js +5 -11
  97. package/library/esm/src/Form/Components/Inputs/String.js.map +1 -1
  98. package/library/esm/src/Form/Components/Inputs/Time.js +2 -3
  99. package/library/esm/src/Form/Components/Inputs/Time.js.map +1 -1
  100. package/library/esm/src/Form/Creator/FormCreator.js +6 -6
  101. package/library/esm/src/Form/Creator/FormCreator.js.map +1 -1
  102. package/library/esm/src/Form/Creator/FormFields.js +1 -1
  103. package/library/esm/src/Form/Creator/FormFields.js.map +1 -1
  104. package/library/esm/src/Form/Creator/FormHeader.js +2 -1
  105. package/library/esm/src/Form/Creator/FormHeader.js.map +1 -1
  106. package/library/esm/src/Form/Creator/FormSection.js +1 -1
  107. package/library/esm/src/Form/Creator/FormSection.js.map +1 -1
  108. package/library/esm/src/Form/Creator/Page.js +7 -2
  109. package/library/esm/src/Form/Creator/Page.js.map +1 -1
  110. package/library/esm/src/Form/Creator/Wizard.js +6 -6
  111. package/library/esm/src/Form/Creator/Wizard.js.map +1 -1
  112. package/library/esm/src/utils/getters.js +36 -6
  113. package/library/esm/src/utils/getters.js.map +1 -1
  114. package/library/esm/src/utils/helpers.js +11 -0
  115. package/library/esm/src/utils/helpers.js.map +1 -0
  116. package/library/esm/src/utils/manipulators.js +30 -11
  117. package/library/esm/src/utils/manipulators.js.map +1 -1
  118. package/library/esm/src/utils/schemaToFormHelpers.js +2 -2
  119. package/library/esm/src/utils/schemaToFormHelpers.js.map +1 -1
  120. package/library/esm/src/utils/validators.js +94 -15
  121. package/library/esm/src/utils/validators.js.map +1 -1
  122. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Cross2Icon, DropdownMenuIcon, InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { useAtom } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\n\r\nconst PageNav = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [layout] = useAtom(layoutAtom)\r\n const { urlNavigable } = useFormContext()\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n return (\r\n layout.size === 'sm' || layout.size === 'md'\r\n ? <PageNavMobile sections={sections} level={level} />\r\n : <div className='flex flex-col w-[200px] border-slate-200'>{\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\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'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }</div>\r\n\r\n )\r\n}\r\n\r\nconst PageNavMobile = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [active, setActive] = useState(false)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n useEffect(() => {\r\n setActive(false)\r\n }, [activeId])\r\n\r\n return <div className='relative'><Button\r\n type='default'\r\n size='sm'\r\n className='bg-none border-none p-2'\r\n onClick={() => {\r\n setActive(!active)\r\n }}\r\n >\r\n <div className='-mr-6 -ml-2'>{\r\n active\r\n ? <Cross2Icon className='inline' />\r\n : <DropdownMenuIcon className='inline w-8 h-8 rotate-180' />\r\n }\r\n </div>\r\n </Button>\r\n\r\n {\r\n active\r\n ? <><div className='bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40' onClick={() => { setActive(false) }}></div>\r\n <div className='fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[60%] gap-2 p-4 shadow-lg animate-slide-in'>\r\n <div>\r\n <DropdownMenuIcon className='float-left cursor-pointer w-8 h-8' onClick={() => { setActive(false) }} />\r\n <Cross2Icon className='cursor-pointer w-6 h-6 float-right' onClick={() => { setActive(false) }} />\r\n </div>\r\n\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\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'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n : <div className='flex flex-col gap-2 mt-4'>\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={'p-2 text-center border-none'}\r\n ><span className={`block w-4 h-4 rounded-full ${activeId === p.id ? 'bg-black' : 'bg-white border-2 border-slate-400'}`}>&nbsp;</span></NavElement>\r\n )\r\n })\r\n }\r\n\r\n </div>\r\n }\r\n </div>\r\n}\r\n\r\nexport interface INavProps {\r\n sections: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}\r\n\r\nexport interface IPageLayoutProps {\r\n sections?: IFormSection[]\r\n onChange?: IValueChangeFn\r\n level: number\r\n ContentComponent?: React.FC<{\r\n level: number\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n sectionStatus: IFormSectionStatus\r\n }>\r\n NavComponent?: React.FC<INavProps>\r\n className?: string\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n}\r\n\r\nexport const ActivePage = ({\r\n formSection,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow h-full',\r\n level\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n className?: string\r\n level: number\r\n}): ReactElement => {\r\n return (\r\n <div className={className}>\r\n {\r\n formSection?.description !== undefined\r\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\r\n : ''\r\n }\r\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\r\n </div>\r\n )\r\n}\r\n\r\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <PageLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst PageLayoutContent = ({\r\n\r\n sections,\r\n onChange,\r\n inputOverrides,\r\n ContentComponent = ActivePage,\r\n NavComponent = PageNav,\r\n className = 'flex flex-row gap-8 flex-grow',\r\n level\r\n}: IPageLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n\r\n const { setFormValues, formValues } = useFormContext()\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n onChange={onChange}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageLayout\r\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'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Cross2Icon, DropdownMenuIcon, InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { useAtom } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\n\r\nconst PageNav = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [layout] = useAtom(layoutAtom)\r\n const { urlNavigable } = useFormContext()\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n return (\r\n layout.size === 'sm' || layout.size === 'md'\r\n ? <PageNavMobile sections={sections} level={level} />\r\n : <div className='flex flex-col w-[200px] border-slate-200'>{\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\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'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }</div>\r\n\r\n )\r\n}\r\n\r\nconst PageNavMobile = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [active, setActive] = useState(false)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n useEffect(() => {\r\n setActive(false)\r\n }, [activeId])\r\n\r\n return <div className='relative'><Button\r\n type='default'\r\n size='sm'\r\n className='bg-none border-none p-2'\r\n onClick={() => {\r\n setActive(!active)\r\n }}\r\n >\r\n <div className='-mr-6 -ml-2'>{\r\n active\r\n ? <Cross2Icon className='inline' />\r\n : <DropdownMenuIcon className='inline w-8 h-8 rotate-180' />\r\n }\r\n </div>\r\n </Button>\r\n\r\n {\r\n active\r\n ? <><div className='bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40' onClick={() => { setActive(false) }}></div>\r\n <div className='fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[60%] gap-2 p-4 shadow-lg animate-slide-in'>\r\n <div>\r\n <DropdownMenuIcon className='float-left cursor-pointer w-8 h-8' onClick={() => { setActive(false) }} />\r\n <Cross2Icon className='cursor-pointer w-6 h-6 float-right' onClick={() => { setActive(false) }} />\r\n </div>\r\n\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\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'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n : <div className='flex flex-col gap-2 mt-4'>\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={'p-2 text-center border-none'}\r\n ><span className={`block w-4 h-4 rounded-full ${activeId === p.id ? 'bg-black' : 'bg-white border-2 border-slate-400'}`}>&nbsp;</span></NavElement>\r\n )\r\n })\r\n }\r\n\r\n </div>\r\n }\r\n </div>\r\n}\r\n\r\nexport interface INavProps {\r\n sections: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}\r\n\r\nexport interface IPageLayoutProps {\r\n sections?: IFormSection[]\r\n onChange?: IValueChangeFn\r\n level: number\r\n ContentComponent?: React.FC<{\r\n level: number\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n sectionStatus: IFormSectionStatus\r\n }>\r\n NavComponent?: React.FC<INavProps>\r\n className?: string\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n}\r\n\r\nexport const ActivePage = ({\r\n formSection,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow h-full',\r\n level\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n className?: string\r\n level: number\r\n}): ReactElement => {\r\n return (\r\n <div className={className}>\r\n {\r\n formSection?.description !== undefined\r\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\r\n : ''\r\n }\r\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\r\n </div>\r\n )\r\n}\r\n\r\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n\r\n const url = new URL(window.location.href)\r\n const parts = url.pathname.split('/')\r\n const formParts = parts.slice(parts.length - props.level, parts.length)\r\n\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n console.log(props)\r\n console.log('Form parts:', formParts, 'Level:', props.level, 'Params:', params.join(','))\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <PageLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst PageLayoutContent = ({\r\n\r\n sections,\r\n onChange,\r\n inputOverrides,\r\n ContentComponent = ActivePage,\r\n NavComponent = PageNav,\r\n className = 'flex flex-row gap-8 flex-grow',\r\n level\r\n}: IPageLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n\r\n const { formValues } = useFormContext()\r\n const sectionStatus = calculateSectionStatus(sections, formValues)\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n onChange={onChange}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageLayout\r\n"],"names":["React"],"mappings":"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"}
@@ -68,7 +68,7 @@ var WizardNavLargeScreen = function (_a) {
68
68
  var steps = (sections !== null && sections !== void 0 ? sections : []).sort(sortByOrder);
69
69
  var _b = useFormSectionContext(), activeId = _b.activeId, setActiveId = _b.setActiveId, path = _b.path;
70
70
  var urlNavigable = useFormContext().urlNavigable;
71
- return (React__default.createElement("div", { className: 'relative' },
71
+ return (React__default.createElement("div", { className: 'relative z-0' },
72
72
  React__default.createElement("div", { className: 'h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' }),
73
73
  React__default.createElement("div", { className: 'flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible' }, steps.map(function (p, i) {
74
74
  var _a, _b, _c, _d, _e;
@@ -79,13 +79,13 @@ var WizardNavLargeScreen = function (_a) {
79
79
  React__default.createElement(CaretRightIcon, { className: 'w-4 h-6 fill-slate-300 stroke-slate-300' }))
80
80
  : '',
81
81
  ((_a = form === null || form === void 0 ? void 0 : form.settings) === null || _a === void 0 ? void 0 : _a.show_progress)
82
- ? React__default.createElement(React__default.Fragment, null,
83
- React__default.createElement("p", { className: 'text-xs mt-4' }, (_b = sectionStatus[p.id]) === null || _b === void 0 ? void 0 :
82
+ ? React__default.createElement("div", { className: 'flex flex-col gap-2 text-xs' },
83
+ React__default.createElement("p", null, (_b = sectionStatus[p.id]) === null || _b === void 0 ? void 0 :
84
84
  _b.completed,
85
85
  " of ", (_c = sectionStatus[p.id]) === null || _c === void 0 ? void 0 :
86
86
  _c.total,
87
87
  " total"),
88
- React__default.createElement("p", { className: 'text-xs mt-2' }, (_d = sectionStatus[p.id]) === null || _d === void 0 ? void 0 :
88
+ React__default.createElement("p", null, (_d = sectionStatus[p.id]) === null || _d === void 0 ? void 0 :
89
89
  _d.requiredCompleted,
90
90
  " of ", (_e = sectionStatus[p.id]) === null || _e === void 0 ? void 0 :
91
91
  _e.requiredTotal,
@@ -142,10 +142,10 @@ var WizardLayoutContent = function (_a) {
142
142
  if (sections === undefined) {
143
143
  return React__default.createElement(React__default.Fragment, null);
144
144
  }
145
- var _g = useFormContext(), formValues = _g.formValues, setFormValues = _g.setFormValues;
145
+ var formValues = useFormContext().formValues;
146
146
  var activeId = useFormSectionContext().activeId;
147
147
  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];
148
- var sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues]);
148
+ var sectionStatus = calculateSectionStatus(sections, formValues);
149
149
  return (React__default.createElement("div", { className: className },
150
150
  React__default.createElement(NavComponent, { sections: sections, sectionStatus: sectionStatus, level: level }),
151
151
  React__default.createElement(ContentComponent, { formSection: formSection, sectionStatus: sectionStatus, onChange: onChange, level: level }),
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type IPageLayoutProps, ActivePage, type INavProps } from '@/Form/Creator/Page'\r\nimport { SelectInput, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { useAtomValue } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\n\r\nconst sortByOrder = (a: IWizardStep, b: IWizardStep): number => {\r\n const aOrder = a.order ?? Infinity\r\n const bOrder = b.order ?? Infinity\r\n return aOrder - bOrder\r\n}\r\n\r\nexport const WizardNavMobile = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-center items-center'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='p-2 bg-none border-none text-sm hover:bg-slate-none'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400 '\r\n })}><CaretLeftIcon className='inline w-8 h-8' /></span>\r\n }\r\n <div className='flex-grow'>\r\n <SelectInput\r\n includePrompt={false}\r\n id='wizard-step-select'\r\n testId='wizard-step-select'\r\n className='shadow-lg'\r\n value={activeId ?? ''}\r\n onChange={(e) => {\r\n setActiveId(e?.value)\r\n }}\r\n options={steps.map(p => ({\r\n value: p.id,\r\n label: p.label ?? p.id\r\n }))}\r\n />\r\n </div>\r\n\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='p-2 bg-none border-none text-sm hover:bg-none'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n <CaretRightIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400'\r\n })}><CaretRightIcon className='inline w-8 h-8' /></span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNav = (props: INavProps): ReactElement => {\r\n const layout = useAtomValue(layoutAtom)\r\n return layout.size === 'sm'\r\n ? <WizardNavMobile {...props} />\r\n : <WizardNavLargeScreen {...props} />\r\n}\r\n\r\nexport const WizardNavLargeScreen = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { form } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n return (\r\n <div className='relative'>\r\n <div className='h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' />\r\n <div className='flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible'>\r\n {\r\n steps.map((p, i) => {\r\n return (\r\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\r\n <NavElement\r\n\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n className={`whitespace-nowrap px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\r\n onClick={() => { setActiveId(p.id) }}\r\n >\r\n {p.label}\r\n </NavElement>\r\n {\r\n i < steps.length - 1 && steps.length > 1\r\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\r\n : ''\r\n }\r\n {\r\n form?.settings?.show_progress\r\n ? <>\r\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\r\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\r\n </>\r\n : ''\r\n }\r\n\r\n </div>\r\n )\r\n })\r\n }</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNavSmall = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-end'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline' /> Previous\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Previous</span>\r\n }\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n Next <CaretRightIcon className='inline' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Next</span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport interface IWizardLayoutProps extends IPageLayoutProps {\r\n SmallNavComponent?: React.FC<{\r\n level: number\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n className?: string\r\n }>\r\n}\r\n\r\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <WizardLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst WizardLayoutContent = ({\r\n sections,\r\n onChange,\r\n ContentComponent = ActivePage,\r\n NavComponent = WizardNav,\r\n SmallNavComponent = WizardNavSmall,\r\n className = 'flex flex-col gap-4 pt-8 flex-grow h-full',\r\n level\r\n}: IWizardLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n const { formValues, setFormValues } = useFormContext()\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n sectionStatus={sectionStatus}\r\n onChange={onChange}\r\n level={level}\r\n />\r\n <SmallNavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default WizardLayout\r\n"],"names":["React","utils","SelectInput"],"mappings":"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"}
1
+ {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type IPageLayoutProps, ActivePage, type INavProps } from '@/Form/Creator/Page'\r\nimport { SelectInput, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { useAtomValue } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\n\r\nconst sortByOrder = (a: IWizardStep, b: IWizardStep): number => {\r\n const aOrder = a.order ?? Infinity\r\n const bOrder = b.order ?? Infinity\r\n return aOrder - bOrder\r\n}\r\n\r\nexport const WizardNavMobile = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-center items-center'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='p-2 bg-none border-none text-sm hover:bg-slate-none'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400 '\r\n })}><CaretLeftIcon className='inline w-8 h-8' /></span>\r\n }\r\n <div className='flex-grow'>\r\n <SelectInput\r\n includePrompt={false}\r\n id='wizard-step-select'\r\n testId='wizard-step-select'\r\n className='shadow-lg'\r\n value={activeId ?? ''}\r\n onChange={(e) => {\r\n setActiveId(e?.value)\r\n }}\r\n options={steps.map(p => ({\r\n value: p.id,\r\n label: p.label ?? p.id\r\n }))}\r\n />\r\n </div>\r\n\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='p-2 bg-none border-none text-sm hover:bg-none'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n <CaretRightIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400'\r\n })}><CaretRightIcon className='inline w-8 h-8' /></span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNav = (props: INavProps): ReactElement => {\r\n const layout = useAtomValue(layoutAtom)\r\n return layout.size === 'sm'\r\n ? <WizardNavMobile {...props} />\r\n : <WizardNavLargeScreen {...props} />\r\n}\r\n\r\nexport const WizardNavLargeScreen = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { form } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n return (\r\n <div className='relative z-0'>\r\n <div className='h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' />\r\n <div className='flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible'>\r\n {\r\n steps.map((p, i) => {\r\n return (\r\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\r\n <NavElement\r\n\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n className={`whitespace-nowrap px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\r\n onClick={() => { setActiveId(p.id) }}\r\n >\r\n {p.label}\r\n </NavElement>\r\n {\r\n i < steps.length - 1 && steps.length > 1\r\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\r\n : ''\r\n }\r\n {\r\n form?.settings?.show_progress\r\n ? <div className='flex flex-col gap-2 text-xs'>\r\n <p>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\r\n <p>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\r\n </div>\r\n : ''\r\n }\r\n\r\n </div>\r\n )\r\n })\r\n }</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNavSmall = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-end'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline' /> Previous\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Previous</span>\r\n }\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n Next <CaretRightIcon className='inline' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Next</span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport interface IWizardLayoutProps extends IPageLayoutProps {\r\n SmallNavComponent?: React.FC<{\r\n level: number\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n className?: string\r\n }>\r\n}\r\n\r\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <WizardLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst WizardLayoutContent = ({\r\n sections,\r\n onChange,\r\n ContentComponent = ActivePage,\r\n NavComponent = WizardNav,\r\n SmallNavComponent = WizardNavSmall,\r\n className = 'flex flex-col gap-4 pt-8 flex-grow h-full',\r\n level\r\n}: IWizardLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n const { formValues } = useFormContext()\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n const sectionStatus = calculateSectionStatus(sections, formValues)\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n sectionStatus={sectionStatus}\r\n onChange={onChange}\r\n level={level}\r\n />\r\n <SmallNavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default WizardLayout\r\n"],"names":["React","utils","SelectInput"],"mappings":"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"}
@@ -1,5 +1,11 @@
1
+ import { __assign } from '../../node_modules/tslib/tslib.es6.js';
1
2
  import get from '../../node_modules/lodash-es/get.js';
2
3
 
4
+ var getFieldExtra = function (field, index) {
5
+ return field.multiple && (field.index !== undefined || index !== undefined)
6
+ ? "[".concat(index !== null && index !== void 0 ? index : field.index, "]")
7
+ : '';
8
+ };
3
9
  /**
4
10
  * Returns the JSON path for a given field
5
11
  *
@@ -11,20 +17,22 @@ var makeJsonPath = function (field, index) {
11
17
  if (field.type === 'object' && field.skip_path === true) {
12
18
  return undefined;
13
19
  }
14
- var fieldExtra = "".concat(field.multiple && (field.index !== undefined || index !== undefined) ? "[".concat(index !== null && index !== void 0 ? index : field.index, "]") : '');
15
20
  if (field.destPath !== undefined) {
16
- return "".concat(field.destPath).concat(fieldExtra);
21
+ return "".concat(field.destPath).concat(getFieldExtra(field, index));
17
22
  }
18
23
  else if (field.path === undefined) {
19
- return "".concat(field.id).concat(fieldExtra);
24
+ return "".concat(field.id).concat(getFieldExtra(field, index));
20
25
  }
21
26
  else {
22
27
  var path = field.path;
23
28
  var pathLen_1 = path.length;
24
- return field.path.map(function (f, i) { var _a; return (f.multiple && (i < (pathLen_1 - 1) || index !== undefined || f.index !== undefined)) ? "".concat(f.id).concat("[".concat((_a = index !== null && index !== void 0 ? index : f.index) !== null && _a !== void 0 ? _a : 0, "]")) : f.id; }).join('.');
29
+ return field.path.map(function (f, i) {
30
+ var defaultMultipleIndex = f.multiple && f.index === undefined && i < (pathLen_1 - 1) ? 0 : undefined;
31
+ return "".concat(f.id).concat("".concat(getFieldExtra(f, i >= pathLen_1 - 1 ? index : defaultMultipleIndex)));
32
+ }).join('.');
25
33
  }
26
34
  };
27
- /**
35
+ /** `
28
36
  * Returns the child fields of a given field
29
37
  *
30
38
  * @param field - The field to get the child fields from
@@ -79,6 +87,28 @@ function getObjectFieldValue(field, formValues, index) {
79
87
  }).flat(Infinity).filter(function (d) { return d !== undefined; });
80
88
  return Object.fromEntries(vals.map(function (v) { return [v.key, v.val]; }));
81
89
  }
90
+ function getValueFromRelativePath(field, path, formValues) {
91
+ var _a, _b, _c, _d, _e;
92
+ var backPath = (_c = (_b = (_a = path.match(/^\.+/)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
93
+ var fieldPathFields = (_d = field.path) !== null && _d !== void 0 ? _d : [];
94
+ var offset = field.type === 'object' && field.skip_path ? 0 : 1;
95
+ if (backPath > 0 && (fieldPathFields.length - offset) >= backPath) {
96
+ var targetField = fieldPathFields[fieldPathFields.length - backPath - offset];
97
+ var valueAtRoot = getFieldValue(__assign(__assign({}, targetField), { path: (_e = targetField.path) !== null && _e !== void 0 ? _e : fieldPathFields.slice(0, fieldPathFields.length - backPath - offset + 1) }), formValues, targetField.multiple ? targetField.index : undefined);
98
+ if (valueAtRoot === undefined || valueAtRoot === null) {
99
+ return undefined;
100
+ }
101
+ var pathToEval = path.replace(/^\.+/, '');
102
+ if (pathToEval === '') {
103
+ return valueAtRoot;
104
+ }
105
+ return get(valueAtRoot, pathToEval);
106
+ }
107
+ else {
108
+ // absolute path, get the field value from the field
109
+ return getValueFromPath(path, formValues);
110
+ }
111
+ }
82
112
  /**
83
113
  * Returns the value of a given field from the form values
84
114
  *
@@ -131,5 +161,5 @@ function getFieldsFromFormSection(formSection) {
131
161
  return fields;
132
162
  }
133
163
 
134
- export { getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getValueFromPath, makeJsonPath };
164
+ export { getChildFields, getFieldValue, getFields, getFieldsFromFormSection, getPathFromField, getValueFromPath, getValueFromRelativePath, makeJsonPath };
135
165
  //# sourceMappingURL=getters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getters.js","sources":["../../../../src/utils/getters.ts"],"sourcesContent":["import { type IFormSection, type IFormValues, type IValueType, type IFormField, type IObjectField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { get } from 'lodash-es'\r\n\r\n/**\r\n * Returns the JSON path for a given field\r\n *\r\n * @param field - The field to get the JSON path for\r\n * @param index - The index of the field in the array (optional)\r\n * @returns The JSON path for the given field\r\n */\r\nexport const makeJsonPath = (field: IFormField, index?: number): string | undefined => {\r\n if (field.type === 'object' && field.skip_path === true) {\r\n return undefined\r\n }\r\n const fieldExtra = `${field.multiple && (field.index !== undefined || index !== undefined) ? `[${index ?? field.index}]` : ''}`\r\n if (field.destPath !== undefined) {\r\n return `${field.destPath}${fieldExtra}`\r\n } else if (field.path === undefined) {\r\n return `${field.id}${fieldExtra}`\r\n } else {\r\n const path = field.path\r\n const pathLen = path.length\r\n return field.path.map((f, i) => (f.multiple && (i < (pathLen - 1) || index !== undefined || f.index !== undefined)) ? `${f.id}${`[${index ?? f.index ?? 0}]`}` : f.id).join('.')\r\n }\r\n}\r\n\r\n/**\r\n * Returns the child fields of a given field\r\n *\r\n * @param field - The field to get the child fields from\r\n * @returns The child fields of the given field\r\n */\r\nexport const getChildFields = (field: { id: string, fields?: IFormField[] }): IFormField[] => {\r\n return field?.fields ?? []\r\n}\r\n\r\n/**\r\n * Recursively gets all fields from a given array of fields\r\n *\r\n * @param fields - The array of fields to get the fields from\r\n * @returns An array of all fields\r\n */\r\n\r\nexport const getFields = (fields?: Array<{ id: string, fields?: IFormField[] }>): IFormField[] => {\r\n if (fields === undefined) {\r\n return []\r\n }\r\n const all = fields.map(field => {\r\n let fields = [field]\r\n const children = getChildFields(field)\r\n children.forEach(c => {\r\n fields = fields.concat(getFields([c]))\r\n })\r\n return fields\r\n }).flat(Infinity) as IFormField[]\r\n return all\r\n}\r\n\r\n/**\r\n * Wrapper for lodash `get` function to get the value from a given path in the form values\r\n *\r\n * @param path - The path to get the value from\r\n * @param formValues - The form values to get the value from\r\n * @returns The value from the given path in the form values or undefined\r\n */\r\n\r\nexport function getValueFromPath (path: string, formValues: IFormValues): IValueType | IValueType[] | undefined {\r\n return get(formValues, path)\r\n}\r\n\r\nfunction getObjectFieldValue (field: IObjectField, formValues: IFormValues, index?: number): IValueType | IValueType[] | undefined {\r\n const vals = field.fields.map(f => {\r\n const p = makeJsonPath(f, index)\r\n const val = getFieldValue(f, formValues, index)\r\n return p !== undefined\r\n ? { key: p, val }\r\n : typeof val === 'object' && val !== null\r\n ? Object.entries(val).map(([k, v]) => ({ key: k, val: v }))\r\n : undefined\r\n }).flat(Infinity).filter(d => d !== undefined) as Array<{ key: string, val: IValueType | IValueType[] | undefined }>\r\n return Object.fromEntries(vals.map(v => [v.key, v.val]))\r\n}\r\n\r\n/**\r\n * Returns the value of a given field from the form values\r\n *\r\n * @param field - The field to get the value from\r\n * @param formValues - The form values to get the value from\r\n * @param index - The index of the field in the array (optional). If undefined, the last value will be returned as an array if it is one\r\n * @returns The value of the given field from the form values or undefined\r\n */\r\n\r\nexport function getFieldValue (field: IFormField, formValues: IFormValues, index?: number): IValueType | IValueType[] | undefined {\r\n const path = makeJsonPath(field, index)\r\n if (field.type === 'object' && field.fields !== undefined && path === undefined) {\r\n return getObjectFieldValue(field, formValues, index)\r\n } else if (path === undefined) {\r\n return undefined\r\n }\r\n const val = getValueFromPath(path, formValues) // formValues[field.id]\r\n return val\r\n}\r\n\r\n/**\r\n * Returns the path of a given field. Used for writing to form values\r\n *\r\n * @param field - The field to get the path from\r\n * @returns The path of the given field or the id of the field if no path is defined\r\n */\r\nexport function getPathFromField (field: IFormField): string | undefined {\r\n // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)\r\n if (field.type === 'object' && field.skip_path === true) {\r\n return undefined\r\n }\r\n if (field.destPath) {\r\n return field.destPath\r\n }\r\n return field.path !== undefined\r\n ? field.path.filter(f => !(f.type === 'object' && f.skip_path === true)).map(f => f.id).join('.')\r\n : field.id\r\n // return makeJsonPath(field)\r\n}\r\n\r\n/**\r\n * Returns all fields and child from a given form section. A form can be a form section or a wizard step or a page. This will recursively find child fields in pages, wizard steps and object fields\r\n *\r\n * @param formSection - The form section to get the fields from\r\n * @returns An array of fields from the given form section\r\n */\r\nexport function getFieldsFromFormSection (formSection: IFormSection): IFormField[] {\r\n const pageFields = formSection?.pages?.map(p => getFieldsFromFormSection(p)).flat(1)\r\n const wizardFields = formSection?.wizard_steps?.map(p => getFieldsFromFormSection(p)).flat(1)\r\n const fields = getFields((formSection?.fields ?? [])).concat(pageFields ?? []).concat(wizardFields ?? [])\r\n return fields\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getters.js","sources":["../../../../src/utils/getters.ts"],"sourcesContent":["import { type IFormSection, type IFormValues, type IValueType, type IFormField, type IObjectField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { get } from 'lodash-es'\r\n\r\nconst getFieldExtra = (field: IFormField, index?: number): string => {\r\n return field.multiple && (field.index !== undefined || index !== undefined)\r\n ? `[${index ?? field.index}]`\r\n : ''\r\n}\r\n\r\n/**\r\n * Returns the JSON path for a given field\r\n *\r\n * @param field - The field to get the JSON path for\r\n * @param index - The index of the field in the array (optional)\r\n * @returns The JSON path for the given field\r\n */\r\nexport const makeJsonPath = (field: IFormField, index?: number): string | undefined => {\r\n if (field.type === 'object' && field.skip_path === true) {\r\n return undefined\r\n }\r\n if (field.destPath !== undefined) {\r\n return `${field.destPath}${getFieldExtra(field, index)}`\r\n } else if (field.path === undefined) {\r\n return `${field.id}${getFieldExtra(field, index)}`\r\n } else {\r\n const path = field.path\r\n const pathLen = path.length\r\n return field.path.map((f, i) => {\r\n const defaultMultipleIndex = f.multiple && f.index === undefined && i < (pathLen - 1) ? 0 : undefined\r\n return `${f.id}${`${getFieldExtra(f, i >= pathLen - 1 ? index : defaultMultipleIndex)}`}`\r\n }).join('.')\r\n }\r\n}\r\n\r\n/** `\r\n * Returns the child fields of a given field\r\n *\r\n * @param field - The field to get the child fields from\r\n * @returns The child fields of the given field\r\n */\r\nexport const getChildFields = (field: { id: string, fields?: IFormField[] }): IFormField[] => {\r\n return field?.fields ?? []\r\n}\r\n\r\n/**\r\n * Recursively gets all fields from a given array of fields\r\n *\r\n * @param fields - The array of fields to get the fields from\r\n * @returns An array of all fields\r\n */\r\n\r\nexport const getFields = (fields?: Array<{ id: string, fields?: IFormField[] }>): IFormField[] => {\r\n if (fields === undefined) {\r\n return []\r\n }\r\n const all = fields.map(field => {\r\n let fields = [field]\r\n const children = getChildFields(field)\r\n children.forEach(c => {\r\n fields = fields.concat(getFields([c]))\r\n })\r\n return fields\r\n }).flat(Infinity) as IFormField[]\r\n return all\r\n}\r\n\r\n/**\r\n * Wrapper for lodash `get` function to get the value from a given path in the form values\r\n *\r\n * @param path - The path to get the value from\r\n * @param formValues - The form values to get the value from\r\n * @returns The value from the given path in the form values or undefined\r\n */\r\n\r\nexport function getValueFromPath (path: string, formValues: IFormValues): IValueType | IValueType[] | undefined {\r\n return get(formValues, path)\r\n}\r\n\r\nfunction getObjectFieldValue (field: IObjectField, formValues: IFormValues, index?: number): IValueType | IValueType[] | undefined {\r\n const vals = field.fields.map(f => {\r\n const p = makeJsonPath(f, index)\r\n const val = getFieldValue(f, formValues, index)\r\n return p !== undefined\r\n ? { key: p, val }\r\n : typeof val === 'object' && val !== null\r\n ? Object.entries(val).map(([k, v]) => ({ key: k, val: v }))\r\n : undefined\r\n }).flat(Infinity).filter(d => d !== undefined) as Array<{ key: string, val: IValueType | IValueType[] | undefined }>\r\n return Object.fromEntries(vals.map(v => [v.key, v.val]))\r\n}\r\n\r\nexport function getValueFromRelativePath (field: IFormField, path: string, formValues: IFormValues): IValueType | IValueType[] | undefined {\r\n const backPath = path.match(/^\\.+/)?.[0]?.length ?? 0\r\n const fieldPathFields = field.path ?? []\r\n const offset = field.type === 'object' && field.skip_path ? 0 : 1\r\n if (backPath > 0 && (fieldPathFields.length - offset) >= backPath) {\r\n const targetField = fieldPathFields[fieldPathFields.length - backPath - offset]\r\n const valueAtRoot = getFieldValue(\r\n {\r\n ...targetField,\r\n path: targetField.path ?? fieldPathFields.slice(0, fieldPathFields.length - backPath - offset + 1)\r\n },\r\n formValues,\r\n targetField.multiple ? targetField.index : undefined\r\n )\r\n\r\n if (valueAtRoot === undefined || valueAtRoot === null) {\r\n return undefined\r\n }\r\n const pathToEval = path.replace(/^\\.+/, '')\r\n if (pathToEval === '') {\r\n return valueAtRoot\r\n }\r\n return get(valueAtRoot, pathToEval)\r\n } else {\r\n // absolute path, get the field value from the field\r\n return getValueFromPath(path, formValues)\r\n }\r\n}\r\n\r\n/**\r\n * Returns the value of a given field from the form values\r\n *\r\n * @param field - The field to get the value from\r\n * @param formValues - The form values to get the value from\r\n * @param index - The index of the field in the array (optional). If undefined, the last value will be returned as an array if it is one\r\n * @returns The value of the given field from the form values or undefined\r\n */\r\n\r\nexport function getFieldValue (field: IFormField, formValues: IFormValues, index?: number): IValueType | IValueType[] | undefined {\r\n const path = makeJsonPath(field, index)\r\n if (field.type === 'object' && field.fields !== undefined && path === undefined) {\r\n return getObjectFieldValue(field, formValues, index)\r\n } else if (path === undefined) {\r\n return undefined\r\n }\r\n const val = getValueFromPath(path, formValues) // formValues[field.id]\r\n return val\r\n}\r\n\r\n/**\r\n * Returns the path of a given field. Used for writing to form values\r\n *\r\n * @param field - The field to get the path from\r\n * @returns The path of the given field or the id of the field if no path is defined\r\n */\r\nexport function getPathFromField (field: IFormField): string | undefined {\r\n // console.log(`${field.path !== undefined ? field.path.join('.') : 'nopath'} = ${field.id}`)\r\n if (field.type === 'object' && field.skip_path === true) {\r\n return undefined\r\n }\r\n if (field.destPath) {\r\n return field.destPath\r\n }\r\n return field.path !== undefined\r\n ? field.path.filter(f => !(f.type === 'object' && f.skip_path === true)).map(f => f.id).join('.')\r\n : field.id\r\n // return makeJsonPath(field)\r\n}\r\n\r\n/**\r\n * Returns all fields and child from a given form section. A form can be a form section or a wizard step or a page. This will recursively find child fields in pages, wizard steps and object fields\r\n *\r\n * @param formSection - The form section to get the fields from\r\n * @returns An array of fields from the given form section\r\n */\r\nexport function getFieldsFromFormSection (formSection: IFormSection): IFormField[] {\r\n const pageFields = formSection?.pages?.map(p => getFieldsFromFormSection(p)).flat(1)\r\n const wizardFields = formSection?.wizard_steps?.map(p => getFieldsFromFormSection(p)).flat(1)\r\n const fields = getFields((formSection?.fields ?? [])).concat(pageFields ?? []).concat(wizardFields ?? [])\r\n return fields\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import debounce from '../../node_modules/lodash-es/debounce.js';
2
+ import 'react';
3
+
4
+ var createTextFieldDebounce = function (onChange, delay) {
5
+ return debounce(function (newValue) {
6
+ onChange((newValue === '' || newValue === null) ? undefined : newValue);
7
+ }, delay);
8
+ };
9
+
10
+ export { createTextFieldDebounce };
11
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../src/utils/helpers.ts"],"sourcesContent":["import { type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport debounce from 'lodash-es/debounce'\r\nimport { useEffect, useRef } from 'react'\r\n\r\nexport const createTextFieldDebounce = (onChange: IValueChangeFn, delay = 200): IValueChangeFn => {\r\n return debounce((newValue: IValueType | IValueType[] | undefined) => {\r\n onChange((newValue === '' || newValue === null) ? undefined : newValue)\r\n }, delay)\r\n}\r\n\r\nexport const useRenderCount = (): number => {\r\n const rendersNo = useRef(0)\r\n\r\n useEffect(() => {\r\n rendersNo.current++\r\n })\r\n\r\n return rendersNo.current\r\n}\r\n"],"names":[],"mappings":";;;AAIa,IAAA,uBAAuB,GAAG,UAAC,QAAwB,EAAE,KAAW,EAAA;IAC3E,OAAO,QAAQ,CAAC,UAAC,QAA+C,EAAA;AAC9D,QAAA,QAAQ,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,IAAI,IAAI,SAAS,GAAG,QAAQ,CAAC;KACxE,EAAE,KAAK,CAAC;AACX;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { __assign } from '../../node_modules/tslib/tslib.es6.js';
2
- import { getFieldsFromFormSection, getPathFromField, getFieldValue } from './getters.js';
2
+ import { getPathFromField, getFieldsFromFormSection, getFieldValue } from './getters.js';
3
3
  import { checkCondition } from './validators.js';
4
4
  import merge from '../../node_modules/lodash-es/merge.js';
5
5
  import set from '../../node_modules/lodash-es/set.js';
@@ -20,7 +20,9 @@ var addFieldPath = function (field, parentPath) {
20
20
  return addFieldPath(childField, (_a = field.path) === null || _a === void 0 ? void 0 : _a.slice());
21
21
  });
22
22
  }
23
- return field;
23
+ // return field
24
+ return field.multiple ? structuredClone(field) : field;
25
+ // return structuredClone(field)
24
26
  };
25
27
  function addPathsToFormSections(section) {
26
28
  if (section.pages !== undefined) {
@@ -83,7 +85,19 @@ function cleanFormValuesLevel(formValues, fields, formValuesPath) {
83
85
  var _a;
84
86
  var path = formValuesPath !== '' ? "".concat(formValuesPath, ".").concat(key) : key;
85
87
  var field = fields === null || fields === void 0 ? void 0 : fields.find(function (f) { return getPathFromField(f) === path; });
86
- if (field !== undefined && !checkCondition(field, formValues)) {
88
+ if ((field === null || field === void 0 ? void 0 : field.type) === 'object' && (field === null || field === void 0 ? void 0 : field.multiple) === true && Array.isArray(formValuesCopy[key])) {
89
+ return formValuesCopy[key].map(function (value, index) {
90
+ var checkedOneOfMultiple = checkCondition(field, value);
91
+ if (!checkedOneOfMultiple.pass && checkedOneOfMultiple.result === 'include') {
92
+ return undefined;
93
+ }
94
+ return value;
95
+ });
96
+ }
97
+ var checkedCondition = field !== undefined
98
+ ? checkCondition(field, formValues)
99
+ : { pass: true, result: 'include' };
100
+ if (field !== undefined && ((!checkedCondition.pass && checkedCondition.result === 'include') || (checkedCondition.pass && checkedCondition.result === 'exclude'))) {
87
101
  formValuesCopy[key] = undefined;
88
102
  // this ensures that objects that are the result of mapping get checked
89
103
  // but fields that are not explicitly defined as objects but may contain objects
@@ -139,15 +153,20 @@ var assignDefaultValuesToFormValues = function (form, formValues) {
139
153
  return formValuesCopy;
140
154
  };
141
155
  var assignIndexToField = function (field, index) {
142
- return __assign(__assign({}, field), { index: index });
156
+ return __assign(__assign({}, field), { path: undefined, index: index });
143
157
  };
144
- var assignIndexToFields = function (parentField, index) {
158
+ var assignIndexToFields = function (parentField, indexField, index, level) {
145
159
  return parentField.fields.map(function (f) {
146
- if (f.path !== undefined && parentField.level !== undefined && f.path[parentField.level - 1] !== undefined) {
160
+ if (f.path !== undefined && level !== undefined && f.path[level] !== undefined) {
147
161
  var newPath = f.path.slice();
148
- newPath[parentField.level - 1] = __assign(__assign({}, parentField), { index: index });
162
+ newPath[level] = assignIndexToField(indexField, index);
149
163
  f.path = newPath;
150
164
  }
165
+ if (f.type === 'object' && f.fields !== undefined) {
166
+ f.fields = assignIndexToFields(f, indexField, index, level);
167
+ return f.multiple ? structuredClone(f) : f;
168
+ // return structuredClone(f)
169
+ }
151
170
  return __assign({}, f);
152
171
  });
153
172
  };
@@ -157,15 +176,15 @@ var createOneOfMultipleField = function (field, index) {
157
176
  var last = assignIndexToField(path[path.length - 1], index);
158
177
  path[path.length - 1] = last;
159
178
  if (last.type === 'object' && last.fields !== undefined) {
160
- last.fields = assignIndexToFields(last, index);
179
+ last.fields = assignIndexToFields(last, last, index, last.level !== undefined ? (last.level - 1) : undefined);
161
180
  }
162
181
  }
163
- var out = __assign(__assign({}, field), { path: path, index: index, required: false, label: index > 0 ? null : field.label, id: "".concat(field.id, "-").concat(index) });
182
+ var out = __assign(__assign({}, field), { path: path, index: index, required: false, label: index > 0 ? null : field.label, description: index > 0 ? null : field.description, long_description: index > 0 ? null : field.long_description, id: "".concat(field.id, "-").concat(index) });
164
183
  if (field.type === 'object' && field.fields !== undefined && out.type === 'object') {
165
- out.fields = assignIndexToFields(field, index);
184
+ out.fields = assignIndexToFields(field, field, index);
166
185
  }
167
186
  return out;
168
187
  };
169
188
 
170
- export { addFieldPath, assignDefaultValuesToFormValues, cleanAndUpdateFormValuesWithFieldValue, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, copyAndRemovePathFromFields, createOneOfMultipleField, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace };
189
+ export { addFieldPath, assignDefaultValuesToFormValues, cleanAndUpdateFormValuesWithFieldValue, cleanFormValuesLevel, cleanUnusedDependenciesFromFormValues, copyAndAddPathToFields, copyAndRemovePathFromFields, createOneOfMultipleField, updateFormValuesWithFieldValue, updateFormValuesWithFieldValueInPlace };
171
190
  //# sourceMappingURL=manipulators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manipulators.js","sources":["../../../../src/utils/manipulators.ts"],"sourcesContent":["import { type IFormSection, type IPage, type IWizardStep, type IFormField, type IForm, type IValueType, type IFormValues, type IObjectField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldsFromFormSection, getFieldValue, getPathFromField } from '@/utils/getters'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { merge, set } from 'lodash-es'\r\n\r\nexport const addFieldPath = (field: IFormField, parentPath?: IFormField[]): IFormField => {\r\n if (field.type === 'object' && field.skip_path === true) {\r\n field.path = parentPath !== undefined ? parentPath.slice() : []\r\n field.level = parentPath !== undefined ? parentPath.length : 0\r\n } else {\r\n const newSegment = field // `${field.id}${field.multiple === true ? '[]' : ''}`\r\n field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment]\r\n field.level = parentPath !== undefined ? parentPath.length + 1 : 1\r\n }\r\n if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return addFieldPath(childField, field.path?.slice())\r\n })\r\n }\r\n return field\r\n}\r\n\r\nfunction addPathsToFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return addPathsToFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return addPathsToFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return addFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndAddPathToFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = addPathsToFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nfunction removeFieldPath (field: IFormField): IFormField {\r\n field.path = undefined\r\n field.level = undefined\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return removeFieldPath(childField)\r\n })\r\n }\r\n\r\n return field\r\n}\r\n\r\nfunction removePathsFromFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return removePathsFromFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return removePathsFromFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return removeFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndRemovePathFromFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = removePathsFromFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nfunction cleanFormValuesLevel (formValues: IFormValues, fields: IFormField[], formValuesPath: string = ''): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n Object.keys(formValues).forEach(key => {\r\n const path = formValuesPath !== '' ? `${formValuesPath}.${key}` : key\r\n const field = fields?.find(f => getPathFromField(f) === path)\r\n if (field !== undefined && !checkCondition(field, formValues)) {\r\n formValuesCopy[key] = undefined\r\n // this ensures that objects that are the result of mapping get checked\r\n // but fields that are not explicitly defined as objects but may contain objects\r\n // are not checked (geom, json, etc)\r\n } else if (typeof formValuesCopy[key] === 'object' && (\r\n field?.type === 'object' || field === undefined\r\n )) {\r\n formValuesCopy[key] = cleanFormValuesLevel((formValuesCopy[key] ?? {}) as IFormValues, fields, path)\r\n } else if (field === undefined) {\r\n formValuesCopy[key] = undefined\r\n }\r\n })\r\n // const fieldIds = fields.map(f => getPathFromField(f))\r\n // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\r\n const fields = getFieldsFromFormSection(form)\r\n const newFormValues = cleanFormValuesLevel(formValues, fields)\r\n return newFormValues\r\n}\r\n\r\nexport function updateFormValuesWithFieldValueInPlace (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): void {\r\n const fieldPath = getPathFromField(field)\r\n if (fieldPath === undefined) {\r\n merge(formValues, newValue)\r\n } else {\r\n set(formValues, fieldPath ?? '', newValue)\r\n }\r\n}\r\n\r\nexport function updateFormValuesWithFieldValue (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy)\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanAndUpdateFormValuesWithFieldValue ({\r\n field,\r\n form,\r\n value,\r\n formValues\r\n}: {\r\n field: IFormField\r\n form: IForm\r\n value: IValueType | IValueType[]\r\n formValues: IFormValues\r\n}): IFormValues {\r\n const updatedFormValuesCopyPreClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n formValues\r\n )\r\n const cleanedFormValues = cleanUnusedDependenciesFromFormValues(form, updatedFormValuesCopyPreClean)\r\n // re-assigning the form values lets it be cleaned above, and re-assigned below if the value is uses the same path as a removed value\r\n // initial use case: multiple geometry fields with each shape type as pre-set draw type and a second field that determines the draw type\r\n const formValuesCopyClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n cleanedFormValues\r\n )\r\n return formValuesCopyClean\r\n}\r\n\r\nexport const assignDefaultValuesToFormValues = (form: IForm, formValues: IFormValues): IFormValues => {\r\n const formValuesCopy = structuredClone(formValues)\r\n const formWithPaths = copyAndAddPathToFields(form)\r\n getFieldsFromFormSection(formWithPaths).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\r\n }\r\n })\r\n return formValuesCopy\r\n}\r\n\r\nconst assignIndexToField = (field: IFormField, index: number): IFormField => {\r\n return {\r\n ...field,\r\n index\r\n }\r\n}\r\n\r\nconst assignIndexToFields = (parentField: IObjectField, index: number): IFormField[] => {\r\n return parentField.fields.map(f => {\r\n if (f.path !== undefined && parentField.level !== undefined && f.path[parentField.level - 1] !== undefined) {\r\n const newPath = f.path.slice()\r\n newPath[parentField.level - 1] = {\r\n ...parentField,\r\n index\r\n }\r\n f.path = newPath\r\n }\r\n return {\r\n ...f\r\n }\r\n })\r\n}\r\n\r\nexport const createOneOfMultipleField = (field: IFormField, index: number): IFormField => {\r\n const path = field.path ? field.path.slice() : undefined\r\n if (path !== undefined) {\r\n const last = assignIndexToField(path[path.length - 1], index)\r\n path[path.length - 1] = last\r\n if (last.type === 'object' && last.fields !== undefined) {\r\n last.fields = assignIndexToFields(last, index)\r\n }\r\n }\r\n\r\n const out = {\r\n ...field,\r\n path,\r\n index,\r\n required: false,\r\n label: index > 0 ? null : field.label,\r\n id: `${field.id}-${index}`\r\n }\r\n\r\n if (field.type === 'object' && field.fields !== undefined && out.type === 'object') {\r\n out.fields = assignIndexToFields(field, index)\r\n }\r\n return out\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manipulators.js","sources":["../../../../src/utils/manipulators.ts"],"sourcesContent":["import { type IFormSection, type IPage, type IWizardStep, type IFormField, type IForm, type IValueType, type IFormValues, type IObjectField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldsFromFormSection, getFieldValue, getPathFromField } from '@/utils/getters'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { merge, set } from 'lodash-es'\r\n\r\nexport const addFieldPath = (field: IFormField, parentPath?: IFormField[]): IFormField => {\r\n if (field.type === 'object' && field.skip_path === true) {\r\n field.path = parentPath !== undefined ? parentPath.slice() : []\r\n field.level = parentPath !== undefined ? parentPath.length : 0\r\n } else {\r\n const newSegment = field // `${field.id}${field.multiple === true ? '[]' : ''}`\r\n field.path = parentPath !== undefined ? parentPath.slice().concat(newSegment) : [newSegment]\r\n field.level = parentPath !== undefined ? parentPath.length + 1 : 1\r\n }\r\n if ((field.type === 'object' || field.type === 'section') && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return addFieldPath(childField, field.path?.slice())\r\n })\r\n }\r\n // return field\r\n return field.multiple ? structuredClone(field) : field\r\n // return structuredClone(field)\r\n}\r\n\r\nfunction addPathsToFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return addPathsToFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return addPathsToFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return addFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndAddPathToFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = addPathsToFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nfunction removeFieldPath (field: IFormField): IFormField {\r\n field.path = undefined\r\n field.level = undefined\r\n if (field.type === 'object' && field.fields !== undefined) {\r\n field.fields = field.fields.map(childField => {\r\n return removeFieldPath(childField)\r\n })\r\n }\r\n\r\n return field\r\n}\r\n\r\nfunction removePathsFromFormSections (section: IFormSection): IFormSection {\r\n if (section.pages !== undefined) {\r\n section.pages = section.pages.map(page => {\r\n return removePathsFromFormSections(page)\r\n }) as IPage[]\r\n }\r\n if (section.wizard_steps !== undefined) {\r\n section.wizard_steps = section.wizard_steps.map(wizardStep => {\r\n return removePathsFromFormSections(wizardStep)\r\n }) as IWizardStep[]\r\n }\r\n if (section.fields !== undefined) {\r\n section.fields = section.fields.map(field => {\r\n return removeFieldPath(field)\r\n })\r\n }\r\n return section\r\n}\r\n\r\nexport function copyAndRemovePathFromFields (formOrContainer: IFormSection | IForm): IForm {\r\n const form = removePathsFromFormSections(structuredClone(formOrContainer)) as IForm\r\n return form\r\n}\r\n\r\nexport function cleanFormValuesLevel (formValues: IFormValues, fields: IFormField[], formValuesPath: string = ''): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n Object.keys(formValues).forEach(key => {\r\n const path = formValuesPath !== '' ? `${formValuesPath}.${key}` : key\r\n const field = fields?.find(f => getPathFromField(f) === path)\r\n if (field?.type === 'object' && field?.multiple === true && Array.isArray(formValuesCopy[key])) {\r\n return formValuesCopy[key].map((value, index) => {\r\n const checkedOneOfMultiple = checkCondition(field, value as IFormValues)\r\n if (!checkedOneOfMultiple.pass && checkedOneOfMultiple.result === 'include') {\r\n return undefined\r\n }\r\n return value\r\n })\r\n }\r\n const checkedCondition = field !== undefined\r\n ? checkCondition(field, formValues)\r\n : { pass: true, result: 'include' }\r\n if (field !== undefined && (\r\n (\r\n !checkedCondition.pass && checkedCondition.result === 'include'\r\n ) || (\r\n checkedCondition.pass && checkedCondition.result === 'exclude'\r\n )\r\n )) {\r\n formValuesCopy[key] = undefined\r\n // this ensures that objects that are the result of mapping get checked\r\n // but fields that are not explicitly defined as objects but may contain objects\r\n // are not checked (geom, json, etc)\r\n } else if (typeof formValuesCopy[key] === 'object' && (\r\n field?.type === 'object' || field === undefined\r\n )) {\r\n formValuesCopy[key] = cleanFormValuesLevel((formValuesCopy[key] ?? {}) as IFormValues, fields, path)\r\n } else if (field === undefined) {\r\n formValuesCopy[key] = undefined\r\n }\r\n })\r\n // const fieldIds = fields.map(f => getPathFromField(f))\r\n // return Object.fromEntries(Object.entries(formValuesCopy).filter(([key]) => fieldIds.includes(formValuesPath !== '' ? `${formValuesPath}.${key}` : key)))\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanUnusedDependenciesFromFormValues (form: IForm, formValues: IFormValues): IFormValues {\r\n const fields = getFieldsFromFormSection(form)\r\n const newFormValues = cleanFormValuesLevel(formValues, fields)\r\n return newFormValues\r\n}\r\n\r\nexport function updateFormValuesWithFieldValueInPlace (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): void {\r\n const fieldPath = getPathFromField(field)\r\n if (fieldPath === undefined) {\r\n merge(formValues, newValue)\r\n } else {\r\n set(formValues, fieldPath ?? '', newValue)\r\n }\r\n}\r\n\r\nexport function updateFormValuesWithFieldValue (field: IFormField, newValue: IValueType | IValueType[], formValues: IFormValues): IFormValues {\r\n const formValuesCopy = structuredClone(formValues)\r\n updateFormValuesWithFieldValueInPlace(field, newValue, formValuesCopy)\r\n return formValuesCopy\r\n}\r\n\r\nexport function cleanAndUpdateFormValuesWithFieldValue ({\r\n field,\r\n form,\r\n value,\r\n formValues\r\n}: {\r\n field: IFormField\r\n form: IForm\r\n value: IValueType | IValueType[]\r\n formValues: IFormValues\r\n}): IFormValues {\r\n const updatedFormValuesCopyPreClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n formValues\r\n )\r\n const cleanedFormValues = cleanUnusedDependenciesFromFormValues(form, updatedFormValuesCopyPreClean)\r\n // re-assigning the form values lets it be cleaned above, and re-assigned below if the value is uses the same path as a removed value\r\n // initial use case: multiple geometry fields with each shape type as pre-set draw type and a second field that determines the draw type\r\n const formValuesCopyClean = updateFormValuesWithFieldValue(\r\n field,\r\n value,\r\n cleanedFormValues\r\n )\r\n return formValuesCopyClean\r\n}\r\n\r\nexport const assignDefaultValuesToFormValues = (form: IForm, formValues: IFormValues): IFormValues => {\r\n const formValuesCopy = structuredClone(formValues)\r\n const formWithPaths = copyAndAddPathToFields(form)\r\n getFieldsFromFormSection(formWithPaths).forEach(field => {\r\n if (field.defaultValue !== undefined && getFieldValue(field, formValuesCopy) === undefined) {\r\n updateFormValuesWithFieldValueInPlace(field, field.defaultValue, formValuesCopy)\r\n }\r\n })\r\n return formValuesCopy\r\n}\r\n\r\nconst assignIndexToField = (field: IFormField, index: number): IFormField => {\r\n return {\r\n ...field,\r\n path: undefined,\r\n index\r\n }\r\n}\r\n\r\nconst assignIndexToFields = (parentField: IObjectField, indexField: IObjectField, index: number, level?: number): IFormField[] => {\r\n return parentField.fields.map(f => {\r\n if (f.path !== undefined && level !== undefined && f.path[level] !== undefined) {\r\n const newPath = f.path.slice()\r\n newPath[level] = assignIndexToField(indexField, index)\r\n f.path = newPath\r\n }\r\n if (f.type === 'object' && f.fields !== undefined) {\r\n f.fields = assignIndexToFields(f, indexField, index, level)\r\n return f.multiple ? structuredClone(f) : f\r\n // return structuredClone(f)\r\n }\r\n return {\r\n ...f\r\n }\r\n })\r\n}\r\n\r\nexport const createOneOfMultipleField = (field: IFormField, index: number): IFormField => {\r\n const path = field.path ? field.path.slice() : undefined\r\n if (path !== undefined) {\r\n const last = assignIndexToField(path[path.length - 1], index)\r\n path[path.length - 1] = last\r\n if (last.type === 'object' && last.fields !== undefined) {\r\n last.fields = assignIndexToFields(last, last, index, last.level !== undefined ? (last.level - 1) : undefined)\r\n }\r\n }\r\n\r\n const out = {\r\n ...field,\r\n path,\r\n index,\r\n required: false,\r\n label: index > 0 ? null : field.label,\r\n description: index > 0 ? null : field.description,\r\n long_description: index > 0 ? null : field.long_description,\r\n id: `${field.id}-${index}`\r\n }\r\n\r\n if (field.type === 'object' && field.fields !== undefined && out.type === 'object') {\r\n out.fields = assignIndexToFields(field, field, index)\r\n }\r\n return out\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -91,7 +91,7 @@ var getFieldType = function (schema) {
91
91
  else if (schema.anyOf !== undefined) {
92
92
  return 'checkbox';
93
93
  }
94
- else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength <= 100)) {
94
+ else if (schemaType === 'string' && (schema.maxLength !== undefined && schema.maxLength > 150)) {
95
95
  return 'text';
96
96
  }
97
97
  else if (schemaType === 'number' || schemaType === 'integer') {
@@ -106,7 +106,7 @@ var getFieldType = function (schema) {
106
106
  else if (schema.format === 'time') {
107
107
  return 'time';
108
108
  }
109
- return 'long_text';
109
+ return 'text';
110
110
  }
111
111
  else if (schemaType === 'boolean') {
112
112
  return 'boolean';