@dnb/eufemia 10.63.1 → 10.63.3
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/CHANGELOG.md +24 -0
- package/cjs/components/avatar/Avatar.d.ts +1 -1
- package/cjs/components/avatar/Avatar.js.map +1 -1
- package/cjs/components/avatar/AvatarGroup.d.ts +1 -1
- package/cjs/components/avatar/AvatarGroup.js.map +1 -1
- package/cjs/components/badge/Badge.d.ts +1 -1
- package/cjs/components/badge/Badge.js.map +1 -1
- package/cjs/components/lib.d.ts +2 -2
- package/cjs/components/modal/Modal.d.ts +2 -1
- package/cjs/components/modal/Modal.js +10 -4
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/ModalContent.d.ts +10 -8
- package/cjs/components/modal/ModalContent.js +48 -23
- package/cjs/components/modal/ModalContent.js.map +1 -1
- package/cjs/components/modal/ModalRoot.d.ts +2 -0
- package/cjs/components/modal/ModalRoot.js.map +1 -1
- package/cjs/components/modal/types.d.ts +11 -3
- package/cjs/components/modal/types.js.map +1 -1
- package/cjs/components/section/Section.js +1 -1
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/tag/Tag.d.ts +2 -2
- package/cjs/components/tag/Tag.js.map +1 -1
- package/cjs/components/tag/TagGroup.d.ts +1 -1
- package/cjs/components/tag/TagGroup.js.map +1 -1
- package/cjs/elements/code/style/code-mixins.scss +4 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +14 -10
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/hooks/useExternalValue.js +2 -2
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +23 -16
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/error-helper.d.ts +0 -6
- package/cjs/shared/error-helper.js +6 -3
- package/cjs/shared/error-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +3 -0
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/avatar/Avatar.d.ts +1 -1
- package/components/avatar/Avatar.js.map +1 -1
- package/components/avatar/AvatarGroup.d.ts +1 -1
- package/components/avatar/AvatarGroup.js.map +1 -1
- package/components/badge/Badge.d.ts +1 -1
- package/components/badge/Badge.js.map +1 -1
- package/components/lib.d.ts +2 -2
- package/components/modal/Modal.d.ts +2 -1
- package/components/modal/Modal.js +10 -4
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/ModalContent.d.ts +10 -8
- package/components/modal/ModalContent.js +48 -23
- package/components/modal/ModalContent.js.map +1 -1
- package/components/modal/ModalRoot.d.ts +2 -0
- package/components/modal/ModalRoot.js.map +1 -1
- package/components/modal/types.d.ts +11 -3
- package/components/modal/types.js.map +1 -1
- package/components/section/Section.js +1 -1
- package/components/section/Section.js.map +1 -1
- package/components/tag/Tag.d.ts +2 -2
- package/components/tag/Tag.js.map +1 -1
- package/components/tag/TagGroup.d.ts +1 -1
- package/components/tag/TagGroup.js.map +1 -1
- package/elements/code/style/code-mixins.scss +4 -0
- package/es/components/avatar/Avatar.d.ts +1 -1
- package/es/components/avatar/Avatar.js.map +1 -1
- package/es/components/avatar/AvatarGroup.d.ts +1 -1
- package/es/components/avatar/AvatarGroup.js.map +1 -1
- package/es/components/badge/Badge.d.ts +1 -1
- package/es/components/badge/Badge.js.map +1 -1
- package/es/components/lib.d.ts +2 -2
- package/es/components/modal/Modal.d.ts +2 -1
- package/es/components/modal/Modal.js +10 -4
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/ModalContent.d.ts +10 -8
- package/es/components/modal/ModalContent.js +44 -20
- package/es/components/modal/ModalContent.js.map +1 -1
- package/es/components/modal/ModalRoot.d.ts +2 -0
- package/es/components/modal/ModalRoot.js.map +1 -1
- package/es/components/modal/types.d.ts +11 -3
- package/es/components/modal/types.js.map +1 -1
- package/es/components/section/Section.js +1 -1
- package/es/components/section/Section.js.map +1 -1
- package/es/components/tag/Tag.d.ts +2 -2
- package/es/components/tag/Tag.js.map +1 -1
- package/es/components/tag/TagGroup.d.ts +1 -1
- package/es/components/tag/TagGroup.js.map +1 -1
- package/es/elements/code/style/code-mixins.scss +4 -0
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +14 -10
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/hooks/useExternalValue.js +2 -2
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +23 -16
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/error-helper.d.ts +0 -6
- package/es/shared/error-helper.js +6 -3
- package/es/shared/error-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +3 -0
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +14 -10
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/hooks/useExternalValue.js +2 -2
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +23 -16
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/error-helper.d.ts +0 -6
- package/shared/error-helper.js +6 -3
- package/shared/error-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +3 -0
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","withinIterate","makeLocalPath","path","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","itemPath","item","isMounted","result","continuousValidation","validateContinuously","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const { withinIterate } = props || {}\n const makeLocalPath = useCallback(\n (path: Path) => {\n if (withinIterate) {\n return makeIteratePath(path)\n }\n\n return makePath(path)\n },\n [makeIteratePath, makePath, withinIterate]\n )\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current[path]\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation ||\n visibleWhen.validateContinuously\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n }\n\n
|
|
1
|
+
{"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","withinIterate","makeLocalPath","path","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","arguments","length","undefined","itemPath","item","isMounted","result","continuousValidation","validateContinuously","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const { withinIterate } = props || {}\n const makeLocalPath = useCallback(\n (path: Path) => {\n if (withinIterate) {\n return makeIteratePath(path)\n }\n\n return makePath(path)\n },\n [makeIteratePath, makePath, withinIterate]\n )\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current[path]\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation ||\n visibleWhen.validateContinuously\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathDefined) {\n return getValue(makeLocalPath(pathDefined)) !== undefined\n }\n if (pathUndefined) {\n return getValue(makeLocalPath(pathUndefined)) === undefined\n }\n\n if (pathTrue && getValue(makeLocalPath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makeLocalPath(pathFalse)) !== false) {\n return false\n }\n\n if (\n pathTruthy &&\n Boolean(getValue(makeLocalPath(pathTruthy))) === false\n ) {\n return false\n }\n if (\n pathFalsy &&\n Boolean(getValue(makeLocalPath(pathFalsy))) === true\n ) {\n return false\n }\n\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makeLocalPath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [\n filterDataHandler,\n originalData,\n makeLocalPath,\n makeIteratePath,\n makePath,\n mountedFieldsRef,\n hasFieldError,\n ]\n )\n\n return { check }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AACvD,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,OAAO,MAAM,qBAAqB;AAMzC,eAAe,SAASC,aAAaA,CAACC,KAAsB,EAAE;EAC5D,MAAM;IACJC,aAAa;IACbC,iBAAiB;IACjBC,gBAAgB;IAChBC,IAAI,EAAEC;EACR,CAAC,GAAGX,UAAU,CAACG,WAAW,CAAC;EAE3B,MAAM;IAAES,QAAQ;IAAEC;EAAgB,CAAC,GAAGT,OAAO,CAAC,CAAC;EAG/C,MAAMU,QAAQ,GAAGb,MAAM,CAACK,KAAK,CAAC;EAC9BQ,QAAQ,CAACC,OAAO,GAAGT,KAAK;EAExB,MAAM;IAAEU;EAAc,CAAC,GAAGV,KAAK,IAAI,CAAC,CAAC;EACrC,MAAMW,aAAa,GAAGlB,WAAW,CAC9BmB,IAAU,IAAK;IACd,IAAIF,aAAa,EAAE;MACjB,OAAOH,eAAe,CAACK,IAAI,CAAC;IAC9B;IAEA,OAAON,QAAQ,CAACM,IAAI,CAAC;EACvB,CAAC,EACD,CAACL,eAAe,EAAED,QAAQ,EAAEI,aAAa,CAC3C,CAAC;EAED,MAAMG,KAAK,GAAGpB,WAAW,CACvB,YAgBK;IAAA,IAfH;MACEqB,OAAO;MACPC,WAAW;MACXC,cAAc;MACdC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IACc,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGnB,QAAQ,CAACC,OAAO;IAEpC,IAAI,OAAOK,OAAO,KAAK,SAAS,EAAE;MAChC,OAAOA,OAAO;IAChB;IAEA,MAAMV,IAAI,GACPsB,UAAU,KAAIxB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGG,YAAY,EAAEqB,UAAU,CAAC,KAC5DrB,YAAY;IAEd,IAAIU,WAAW,IAAIC,cAAc,EAAE;MACjC,IAAIA,cAAc,EAAE;QAClBD,WAAW,GAAGC,cAAc;MAC9B;MAEA,MAAMJ,IAAI,GACR,UAAU,IAAIG,WAAW,GACrBR,eAAe,CAACQ,WAAW,CAACe,QAAQ,CAAC,GACrCxB,QAAQ,CAACS,WAAW,CAACH,IAAI,CAAC;MAEhC,IAAI,SAAS,IAAIG,WAAW,EAAE;QAC5B,MAAMgB,IAAI,GAAG5B,gBAAgB,CAACM,OAAO,CAACG,IAAI,CAAC;QAC3C,IAAI,CAACmB,IAAI,IAAIA,IAAI,CAACC,SAAS,KAAK,IAAI,EAAE;UACpC,OAAOhB,cAAc,GAAG,IAAI,GAAG,KAAK;QACtC;QACA,MAAMiB,MAAM,GACV,CAAClB,WAAW,CAACmB,oBAAoB,IACjCnB,WAAW,CAACoB,oBAAoB,GAC5B,IAAI,GACJJ,IAAI,CAACK,SAAS,KAAK,IAAI,KAAKnC,aAAa,CAACW,IAAI,CAAC,KAAK,KAAK;QAC/D,OAAOI,cAAc,GAAG,CAACiB,MAAM,GAAGA,MAAM;MAC1C;MAEA,IAAI,UAAU,IAAIlB,WAAW,IAAI,WAAW,IAAIA,WAAW,EAAE;QAC3D,MAAMsB,OAAO,GAAGzC,OAAO,CAAC0C,GAAG,CAAClC,IAAI,EAAEQ,IAAI,CAAC;QAEvC,IAAIyB,OAAO,EAAE;UAAA,IAAAE,YAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,aAAA;UACX,MAAMC,KAAK,GAAG/C,OAAO,CAACgD,GAAG,CAACxC,IAAI,EAAEQ,IAAI,CAAC;UAErC,KAAA2B,YAAA,GAAIxB,WAAW,cAAAwB,YAAA,eAAXA,YAAA,CAAc,WAAW,CAAC,EAAE;YAC9BM,OAAO,CAACC,IAAI,CACV,gEACF,CAAC;UACH;UAEA,MAAMC,QAAQ,IAAAP,qBAAA,IAAAC,aAAA,GACZ1B,WAAW,cAAA0B,aAAA,uBAAXA,aAAA,CAAc,UAAU,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,IAAAE,aAAA,GAAI3B,WAAW,cAAA2B,aAAA,uBAAXA,aAAA,CAAc,WAAW,CAAC;UACzD,MAAMT,MAAM,GACV,OAAOc,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,CAACJ,KAAK,CAAC,KAAK,KAAK,GACzBI,QAAQ,KAAKJ,KAAK;UAExB,IAAI3B,cAAc,EAAE;YAClB,IAAI,CAACiB,MAAM,EAAE;cACX,OAAO,KAAK;YACd;UACF,CAAC,MAAM,IAAIA,MAAM,EAAE;YACjB,OAAO,KAAK;UACd;QACF,CAAC,MAAM;UACL,OAAO,KAAK;QACd;MACF;IACF;IAEA,MAAMe,QAAQ,GAAIpC,IAAU,IAAK;MAC/B,IAAIhB,OAAO,CAAC0C,GAAG,CAAClC,IAAI,EAAEQ,IAAI,CAAC,EAAE;QAC3B,OAAOhB,OAAO,CAACgD,GAAG,CAACxC,IAAI,EAAEQ,IAAI,CAAC;MAChC;IACF,CAAC;IAED,IAAIK,WAAW,EAAE;MACf,OAAO+B,QAAQ,CAACrC,aAAa,CAACM,WAAW,CAAC,CAAC,KAAKY,SAAS;IAC3D;IACA,IAAIX,aAAa,EAAE;MACjB,OAAO8B,QAAQ,CAACrC,aAAa,CAACO,aAAa,CAAC,CAAC,KAAKW,SAAS;IAC7D;IAEA,IAAIR,QAAQ,IAAI2B,QAAQ,CAACrC,aAAa,CAACU,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE;MAC1D,OAAO,KAAK;IACd;IACA,IAAIC,SAAS,IAAI0B,QAAQ,CAACrC,aAAa,CAACW,SAAS,CAAC,CAAC,KAAK,KAAK,EAAE;MAC7D,OAAO,KAAK;IACd;IAEA,IACEH,UAAU,IACV8B,OAAO,CAACD,QAAQ,CAACrC,aAAa,CAACQ,UAAU,CAAC,CAAC,CAAC,KAAK,KAAK,EACtD;MACA,OAAO,KAAK;IACd;IACA,IACEC,SAAS,IACT6B,OAAO,CAACD,QAAQ,CAACrC,aAAa,CAACS,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD;MACA,OAAO,KAAK;IACd;IAEA,IAAIK,SAAS,IAAI,CAACA,SAAS,CAACrB,IAAI,CAAC,EAAE;MACjC,OAAO,KAAK;IACd;IAGA,IAAImB,SAAS,IAAIyB,QAAQ,CAACrC,aAAa,CAACY,SAAS,CAAC,CAAC,KAAKC,SAAS,EAAE;MACjE,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC,EACD,CACEtB,iBAAiB,EACjBG,YAAY,EACZM,aAAa,EACbJ,eAAe,EACfD,QAAQ,EACRH,gBAAgB,EAChBF,aAAa,CAEjB,CAAC;EAED,OAAO;IAAEY;EAAM,CAAC;AAClB"}
|
|
@@ -26,6 +26,10 @@ export default function useData() {
|
|
|
26
26
|
}
|
|
27
27
|
const updateDataValue = dataContext === null || dataContext === void 0 ? void 0 : dataContext.updateDataValue;
|
|
28
28
|
const setData = dataContext === null || dataContext === void 0 ? void 0 : dataContext.setData;
|
|
29
|
+
const getExistingData = useCallback(() => {
|
|
30
|
+
var _sharedAttachmentsRef, _sharedAttachmentsRef2, _sharedAttachmentsRef3;
|
|
31
|
+
return structuredClone(((_sharedAttachmentsRef = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef === void 0 ? void 0 : (_sharedAttachmentsRef2 = _sharedAttachmentsRef.data) === null || _sharedAttachmentsRef2 === void 0 ? void 0 : (_sharedAttachmentsRef3 = _sharedAttachmentsRef2.internalDataRef) === null || _sharedAttachmentsRef3 === void 0 ? void 0 : _sharedAttachmentsRef3.current) || sharedDataRef.current.data || {});
|
|
32
|
+
}, []);
|
|
29
33
|
const set = useCallback(newData => {
|
|
30
34
|
if (id) {
|
|
31
35
|
sharedDataRef.current.update(newData);
|
|
@@ -35,7 +39,7 @@ export default function useData() {
|
|
|
35
39
|
}, [id, setData]);
|
|
36
40
|
const update = useCallback(function (path) {
|
|
37
41
|
let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
38
|
-
const existingData =
|
|
42
|
+
const existingData = getExistingData();
|
|
39
43
|
const existingValue = pointer.has(existingData, path) ? pointer.get(existingData, path) : undefined;
|
|
40
44
|
const newValue = typeof value === 'function' ? value(existingValue) : value;
|
|
41
45
|
if (newValue !== existingValue) {
|
|
@@ -43,27 +47,27 @@ export default function useData() {
|
|
|
43
47
|
if (id) {
|
|
44
48
|
sharedDataRef.current.extend(existingData);
|
|
45
49
|
} else {
|
|
46
|
-
updateDataValue(path, newValue);
|
|
50
|
+
updateDataValue === null || updateDataValue === void 0 ? void 0 : updateDataValue(path, newValue);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
}, [id, updateDataValue]);
|
|
53
|
+
}, [getExistingData, id, updateDataValue]);
|
|
50
54
|
const remove = useCallback(path => {
|
|
51
|
-
const existingData =
|
|
55
|
+
const existingData = getExistingData();
|
|
52
56
|
if (pointer.has(existingData, path)) {
|
|
53
57
|
pointer.remove(existingData, path);
|
|
54
58
|
if (id) {
|
|
55
59
|
sharedDataRef.current.set(existingData);
|
|
56
60
|
} else {
|
|
57
|
-
|
|
61
|
+
setData === null || setData === void 0 ? void 0 : setData(existingData);
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
|
-
}, [id,
|
|
64
|
+
}, [getExistingData, id, setData]);
|
|
61
65
|
const reduceToVisibleFields = useCallback(function (data) {
|
|
62
66
|
var _dataContext$visibleD;
|
|
63
67
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
64
68
|
if (id) {
|
|
65
|
-
var
|
|
66
|
-
return (
|
|
69
|
+
var _sharedAttachmentsRef4, _sharedAttachmentsRef5;
|
|
70
|
+
return (_sharedAttachmentsRef4 = sharedAttachmentsRef.current.data) === null || _sharedAttachmentsRef4 === void 0 ? void 0 : (_sharedAttachmentsRef5 = _sharedAttachmentsRef4.visibleDataHandler) === null || _sharedAttachmentsRef5 === void 0 ? void 0 : _sharedAttachmentsRef5.call(_sharedAttachmentsRef4, data, options);
|
|
67
71
|
}
|
|
68
72
|
return dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$visibleD = dataContext.visibleDataHandler) === null || _dataContext$visibleD === void 0 ? void 0 : _dataContext$visibleD.call(dataContext, data, options);
|
|
69
73
|
}, [dataContext, id]);
|
|
@@ -71,8 +75,8 @@ export default function useData() {
|
|
|
71
75
|
var _dataContext$filterDa;
|
|
72
76
|
let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : sharedDataRef.current.data;
|
|
73
77
|
if (id) {
|
|
74
|
-
var
|
|
75
|
-
return (
|
|
78
|
+
var _sharedAttachmentsRef6, _sharedAttachmentsRef7;
|
|
79
|
+
return (_sharedAttachmentsRef6 = sharedAttachmentsRef.current.data) === null || _sharedAttachmentsRef6 === void 0 ? void 0 : (_sharedAttachmentsRef7 = _sharedAttachmentsRef6.filterDataHandler) === null || _sharedAttachmentsRef7 === void 0 ? void 0 : _sharedAttachmentsRef7.call(_sharedAttachmentsRef6, data, filter);
|
|
76
80
|
}
|
|
77
81
|
return dataContext === null || dataContext === void 0 ? void 0 : (_dataContext$filterDa = dataContext.filterDataHandler) === null || _dataContext$filterDa === void 0 ? void 0 : _dataContext$filterDa.call(dataContext, data, filter);
|
|
78
82
|
}, [dataContext, id]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","createReferenceKey","useSharedState","useMountEffect","DataContext","structuredClone","useData","id","arguments","length","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","rerenderUseDataHook","dataContext","hasContext","Error","data","filterDataHandler","updateDataValue","setData","set","newData","update","path","value","existingData","existingValue","has","get","newValue","extend","remove","reduceToVisibleFields","_dataContext$visibleD","options","_sharedAttachmentsRef","_sharedAttachmentsRef2","visibleDataHandler","call","filterData","filter","_dataContext$filterDa","_sharedAttachmentsRef3","_sharedAttachmentsRef4","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n VisibleDataHandler,\n} from '../../DataContext/Context'\nimport { SharedAttachments } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\nexport type PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\nexport type UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P> | any\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\nexport type UseDataReturnVisibleData<Data> = VisibleDataHandler<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n remove: (path: Path) => void\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n reduceToVisibleFields: UseDataReturnVisibleData<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data = JsonObject>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachments<Data>>>>(\n null\n )\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments'),\n { rerenderUseDataHook: forceUpdate }\n )\n\n // If no id is provided, use the context data\n const dataContext = useContext(DataContext)\n if (!id) {\n if (!dataContext.hasContext) {\n throw new Error(\n 'useData needs to run inside DataContext (Form.Handler) or have a valid id'\n )\n }\n\n sharedDataRef.current.data = dataContext.data\n sharedAttachmentsRef.current.data.filterDataHandler =\n dataContext.filterDataHandler\n }\n\n const updateDataValue = dataContext?.updateDataValue\n const setData = dataContext?.setData\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const update = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = structuredClone(\n sharedDataRef.current.data || {}\n ) as Data & JsonObject\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // Get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // Update existing data\n pointer.set(existingData, path, newValue)\n\n // Update provider with new data\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const remove = useCallback<UseDataReturn<Data>['remove']>(\n (path) => {\n const existingData = structuredClone(\n sharedDataRef.current.data || {}\n ) as Data & JsonObject\n\n if (pointer.has(existingData, path)) {\n // Remove existing data\n pointer.remove(existingData, path)\n\n // Update provider with new data\n if (id) {\n sharedDataRef.current.set(existingData)\n } else {\n updateDataValue(path, undefined)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const reduceToVisibleFields = useCallback<\n UseDataReturn<Data>['reduceToVisibleFields']\n >(\n (data, options = {}) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.visibleDataHandler?.(\n data,\n options\n )\n }\n\n return dataContext?.visibleDataHandler?.(data, options)\n },\n [dataContext, id]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return dataContext?.filterDataHandler?.(data, filter)\n },\n [dataContext, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n remove,\n update,\n set,\n getValue,\n reduceToVisibleFields,\n filterData,\n }),\n [\n data,\n remove,\n update,\n set,\n getValue,\n reduceToVisibleFields,\n filterData,\n ]\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","createReferenceKey","useSharedState","useMountEffect","DataContext","structuredClone","useData","id","arguments","length","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","rerenderUseDataHook","dataContext","hasContext","Error","data","filterDataHandler","updateDataValue","setData","getExistingData","_sharedAttachmentsRef","_sharedAttachmentsRef2","_sharedAttachmentsRef3","internalDataRef","set","newData","update","path","value","existingData","existingValue","has","get","newValue","extend","remove","reduceToVisibleFields","_dataContext$visibleD","options","_sharedAttachmentsRef4","_sharedAttachmentsRef5","visibleDataHandler","call","filterData","filter","_dataContext$filterDa","_sharedAttachmentsRef6","_sharedAttachmentsRef7","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n VisibleDataHandler,\n} from '../../DataContext/Context'\nimport { SharedAttachments } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\nexport type PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\nexport type UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P> | any\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\nexport type UseDataReturnVisibleData<Data> = VisibleDataHandler<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n remove: (path: Path) => void\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n reduceToVisibleFields: UseDataReturnVisibleData<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data = JsonObject>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachments<Data>>>>(\n null\n )\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments'),\n { rerenderUseDataHook: forceUpdate }\n )\n\n // If no id is provided, use the context data\n const dataContext = useContext(DataContext)\n if (!id) {\n if (!dataContext.hasContext) {\n throw new Error(\n 'useData needs to run inside DataContext (Form.Handler) or have a valid id'\n )\n }\n\n sharedDataRef.current.data = dataContext.data\n sharedAttachmentsRef.current.data.filterDataHandler =\n dataContext.filterDataHandler\n }\n\n const updateDataValue = dataContext?.updateDataValue\n const setData = dataContext?.setData\n\n const getExistingData = useCallback(() => {\n return structuredClone(\n sharedAttachmentsRef.current?.data?.internalDataRef?.current ||\n sharedDataRef.current.data ||\n {}\n ) as Data & JsonObject\n }, [])\n\n const set = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const update = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = getExistingData()\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // Get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // Update existing data\n pointer.set(existingData, path, newValue)\n\n // Update provider with new data\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue?.(path, newValue)\n }\n }\n },\n [getExistingData, id, updateDataValue]\n )\n\n const remove = useCallback<UseDataReturn<Data>['remove']>(\n (path) => {\n const existingData = getExistingData()\n\n if (pointer.has(existingData, path)) {\n // Remove existing data\n pointer.remove(existingData, path)\n\n // Update provider with new data\n if (id) {\n sharedDataRef.current.set(existingData)\n } else {\n setData?.(existingData)\n }\n }\n },\n [getExistingData, id, setData]\n )\n\n const reduceToVisibleFields = useCallback<\n UseDataReturn<Data>['reduceToVisibleFields']\n >(\n (data, options = {}) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.visibleDataHandler?.(\n data,\n options\n )\n }\n\n return dataContext?.visibleDataHandler?.(data, options)\n },\n [dataContext, id]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return dataContext?.filterDataHandler?.(data, filter)\n },\n [dataContext, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n remove,\n update,\n set,\n getValue,\n reduceToVisibleFields,\n filterData,\n }),\n [\n data,\n remove,\n update,\n set,\n getValue,\n reduceToVisibleFields,\n filterData,\n ]\n )\n}\n"],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ function useConnections() {
|
|
|
45
45
|
const getFieldConnections = useCallback(() => {
|
|
46
46
|
const attachments = get();
|
|
47
47
|
const connections = (attachments === null || attachments === void 0 ? void 0 : attachments.fieldConnectionsRef) || !id && fieldConnectionsRef;
|
|
48
|
-
return connections.current;
|
|
48
|
+
return connections === null || connections === void 0 ? void 0 : connections.current;
|
|
49
49
|
}, [fieldConnectionsRef, get, id]);
|
|
50
50
|
return useMemo(() => ({
|
|
51
51
|
getFieldConnections
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValidation.js","names":["useCallback","useContext","useMemo","createReferenceKey","useSharedState","DataContext","useValidation","id","arguments","length","undefined","data","fallback","context","hasErrors","hasFieldError","setSubmitState","setFormError","error","getFieldConnections","useConnections","setFieldStatus","path","status","_connections$path","_connections$path$set","connections","setEventResult","call","get","dataContext","fieldConnectionsRef","attachments","current"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useValidation.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport { SharedAttachments } from '../../DataContext/Provider'\nimport { EventStateObject, Path } from '../../types'\nimport { FormError } from '../../utils'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n hasFieldError: ContextState['hasFieldError']\n setFormError: (error: Error | FormError | undefined | null) => void\n setFieldStatus: (path: Path, status: EventStateObject) => void\n}\n\nexport default function useValidation(\n id: SharedStateId = undefined\n): UseDataReturn {\n const { data } = useSharedState<\n UseDataReturn & SharedAttachments<unknown>\n >(createReferenceKey(id, 'attachments'))\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n data?.hasErrors || (!id && context?.hasErrors) || fallback\n const hasFieldError =\n data?.hasFieldError || (!id && context?.hasFieldError) || fallback\n\n // Error handling\n const setSubmitState =\n data?.setSubmitState || (!id && context?.setSubmitState) || fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n // Field status\n const { getFieldConnections } = useConnections(id)\n const setFieldStatus = useCallback(\n (path: Path, status: EventStateObject) => {\n const connections = getFieldConnections()\n connections?.[path]?.setEventResult?.(status)\n },\n [getFieldConnections]\n )\n\n return useMemo(\n () => ({ hasErrors, hasFieldError, setFormError, setFieldStatus }),\n [hasErrors, hasFieldError, setFormError, setFieldStatus]\n )\n}\n\ntype UseConnectionsSharedState = {\n fieldConnectionsRef: ContextState['fieldConnectionsRef']\n}\n\nfunction useConnections(id: SharedStateId = undefined) {\n const { get } = useSharedState<UseConnectionsSharedState>(\n createReferenceKey(id, 'attachments')\n )\n\n const dataContext = useContext(DataContext)\n const { fieldConnectionsRef } = dataContext || {}\n\n const getFieldConnections = useCallback(() => {\n const attachments = get()\n const connections =\n attachments?.fieldConnectionsRef || (!id && fieldConnectionsRef)\n\n return connections
|
|
1
|
+
{"version":3,"file":"useValidation.js","names":["useCallback","useContext","useMemo","createReferenceKey","useSharedState","DataContext","useValidation","id","arguments","length","undefined","data","fallback","context","hasErrors","hasFieldError","setSubmitState","setFormError","error","getFieldConnections","useConnections","setFieldStatus","path","status","_connections$path","_connections$path$set","connections","setEventResult","call","get","dataContext","fieldConnectionsRef","attachments","current"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useValidation.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo } from 'react'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\nimport { SharedAttachments } from '../../DataContext/Provider'\nimport { EventStateObject, Path } from '../../types'\nimport { FormError } from '../../utils'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n hasFieldError: ContextState['hasFieldError']\n setFormError: (error: Error | FormError | undefined | null) => void\n setFieldStatus: (path: Path, status: EventStateObject) => void\n}\n\nexport default function useValidation(\n id: SharedStateId = undefined\n): UseDataReturn {\n const { data } = useSharedState<\n UseDataReturn & SharedAttachments<unknown>\n >(createReferenceKey(id, 'attachments'))\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n data?.hasErrors || (!id && context?.hasErrors) || fallback\n const hasFieldError =\n data?.hasFieldError || (!id && context?.hasFieldError) || fallback\n\n // Error handling\n const setSubmitState =\n data?.setSubmitState || (!id && context?.setSubmitState) || fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n // Field status\n const { getFieldConnections } = useConnections(id)\n const setFieldStatus = useCallback(\n (path: Path, status: EventStateObject) => {\n const connections = getFieldConnections()\n connections?.[path]?.setEventResult?.(status)\n },\n [getFieldConnections]\n )\n\n return useMemo(\n () => ({ hasErrors, hasFieldError, setFormError, setFieldStatus }),\n [hasErrors, hasFieldError, setFormError, setFieldStatus]\n )\n}\n\ntype UseConnectionsSharedState = {\n fieldConnectionsRef: ContextState['fieldConnectionsRef']\n}\n\nfunction useConnections(id: SharedStateId = undefined) {\n const { get } = useSharedState<UseConnectionsSharedState>(\n createReferenceKey(id, 'attachments')\n )\n\n const dataContext = useContext(DataContext)\n const { fieldConnectionsRef } = dataContext || {}\n\n const getFieldConnections = useCallback(() => {\n const attachments = get()\n const connections =\n attachments?.fieldConnectionsRef || (!id && fieldConnectionsRef)\n\n return connections?.current\n }, [fieldConnectionsRef, get, id])\n\n return useMemo(() => ({ getFieldConnections }), [getFieldConnections])\n}\n"],"mappings":"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"}
|
|
@@ -141,7 +141,7 @@ function WizardContainer(props) {
|
|
|
141
141
|
}
|
|
142
142
|
setFormState('abort');
|
|
143
143
|
if (!skipErrorCheck) {
|
|
144
|
-
setShowAllErrors(errorOnStepRef.current[index]);
|
|
144
|
+
setShowAllErrors(Boolean(errorOnStepRef.current[index]));
|
|
145
145
|
}
|
|
146
146
|
if (!preventNextStepRef.current && !(result instanceof Error)) {
|
|
147
147
|
handleLayoutEffect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","ReactDOM","classnames","Space","StepIndicator","convertJsxToString","warn","isAsync","useId","Step","WizardContext","DataContext","defaultContextState","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","errorOnStepRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","sharedStateRef","current","undefined","preventNavigation","shouldPrevent","arguments","length","getStepChangeOptions","index","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","Object","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","_ref","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","skipFieldValidation","enableAsyncBehavior","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Error","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","_ref2","current_step","setFormError","error","handleSubmit","_ref3","preventSubmit","setHandleSubmit","check","activeIndex","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","_ref4","sidebar_id","Sidebar","bottom","values","map","_ref5","title","no_animation","on_change","_ref6","incrementIndex","childrenArray","Children","child","isValidElement","_child","_child2","step","type","_step","apply","active","activeWhen","visibleWhen","key","clone","cloneElement","document","_ref7","hasRenderedRef","WizardPortal","PrerenderFieldPropsProvider","hidden","Fn","i","_ref8","createPortal","body","_ref9","setFieldInternals","updateDataValue","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../../components'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport Step, { Props as StepProps } from '../Step'\nimport WizardContext, {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n WizardContextState,\n} from '../Context/WizardContext'\nimport DataContext, {\n defaultContextState,\n} from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const errorOnStepRef = useRef<Record<StepIndex, boolean>>({})\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[index])\n }\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n check,\n setActiveIndex,\n handlePrevious,\n handleNext,\n setFormError,\n }\n }, [\n activeIndex,\n handleNext,\n handlePrevious,\n id,\n prerenderFieldProps,\n check,\n setActiveIndex,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via activeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nfunction DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { id, activeIndexRef, stepsRef, updateTitlesRef } =\n useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(stepsRef.current).map(({ title }) => title)}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n />\n </aside>\n )\n}\n\nfunction IterateOverSteps({ children }) {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n } = useContext(WizardContext)\n\n stepsRef.current = {}\n let incrementIndex = -1\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n if (child.props.active === false) {\n return null\n }\n\n if (\n child.props.activeWhen &&\n !check({ visibleWhen: child.props.activeWhen })\n ) {\n return null\n }\n\n incrementIndex++\n const index = incrementIndex\n\n stepsRef.current[index] = {\n id: child.props.id,\n title:\n child.props.title !== undefined\n ? convertJsxToString(child.props.title)\n : 'Title missing',\n }\n const key = `${index}-${activeIndexRef.current}`\n const clone = (props) =>\n React.cloneElement(child as React.ReactElement<StepProps>, props)\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n prerenderFieldPropsRef.current['step-' + index] = () =>\n clone({\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return clone({\n key,\n index,\n })\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (childrenArray?.length === 0) {\n activeIndexRef.current = 0\n } else if (childrenArray?.length < activeIndexRef.current + 1) {\n activeIndexRef.current = childrenArray.length - 1\n }\n\n totalStepsRef.current = childrenArray?.length\n\n return childrenArray\n}\n\nfunction PrerenderFieldPropsOfOtherSteps({\n prerenderFieldPropsRef,\n}: {\n prerenderFieldPropsRef: WizardContextState['prerenderFieldPropsRef']\n}) {\n const hasRenderedRef = useRef(true)\n if (!hasRenderedRef.current) {\n return null\n }\n hasRenderedRef.current = false\n\n return (\n <WizardPortal>\n <PrerenderFieldPropsProvider>\n <iframe title=\"Wizard Prerender\" hidden>\n {Object.values(prerenderFieldPropsRef.current).map((Fn, i) => (\n <Fn key={i} />\n ))}\n </iframe>\n </PrerenderFieldPropsProvider>\n </WizardPortal>\n )\n}\n\nfunction WizardPortal({ children }) {\n if (typeof document !== 'undefined') {\n return ReactDOM.createPortal(children, document.body)\n }\n}\n\nfunction PrerenderFieldPropsProvider({ children }) {\n const { data, setFieldInternals, updateDataValue } =\n useContext(DataContext)\n\n return (\n <DataContext.Provider\n value={{\n ...defaultContextState,\n\n // Only update the props and the data value\n data,\n setFieldInternals,\n updateDataValue,\n prerenderFieldProps: true,\n hasContext: true,\n }}\n >\n <WizardContext.Provider value={{ prerenderFieldProps: true }}>\n {children}\n </WizardContext.Provider>\n </DataContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","ReactDOM","classnames","Space","StepIndicator","convertJsxToString","warn","isAsync","useId","Step","WizardContext","DataContext","defaultContextState","Handler","createReferenceKey","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","errorOnStepRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","sharedStateRef","current","undefined","preventNavigation","shouldPrevent","arguments","length","getStepChangeOptions","index","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","Object","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","_ref","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","skipFieldValidation","enableAsyncBehavior","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Boolean","Error","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","_ref2","current_step","setFormError","error","handleSubmit","_ref3","preventSubmit","setHandleSubmit","check","activeIndex","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","innerRef","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","_ref4","sidebar_id","Sidebar","bottom","values","map","_ref5","title","no_animation","on_change","_ref6","incrementIndex","childrenArray","Children","child","isValidElement","_child","_child2","step","type","_step","apply","active","activeWhen","visibleWhen","key","clone","cloneElement","document","_ref7","hasRenderedRef","WizardPortal","PrerenderFieldPropsProvider","hidden","Fn","i","_ref8","createPortal","body","_ref9","setFieldInternals","updateDataValue","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../../components'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport Step, { Props as StepProps } from '../Step'\nimport WizardContext, {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n WizardContextState,\n} from '../Context/WizardContext'\nimport DataContext, {\n defaultContextState,\n} from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const errorOnStepRef = useRef<Record<StepIndex, boolean | number>>({})\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ elementRef, stepElementRef })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(Boolean(errorOnStepRef.current[index]))\n }\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n check,\n setActiveIndex,\n handlePrevious,\n handleNext,\n setFormError,\n }\n }, [\n activeIndex,\n handleNext,\n handlePrevious,\n id,\n prerenderFieldProps,\n check,\n setActiveIndex,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via activeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n innerRef={elementRef}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nfunction DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { id, activeIndexRef, stepsRef, updateTitlesRef } =\n useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(stepsRef.current).map(({ title }) => title)}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n />\n </aside>\n )\n}\n\nfunction IterateOverSteps({ children }) {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n } = useContext(WizardContext)\n\n stepsRef.current = {}\n let incrementIndex = -1\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n if (child.props.active === false) {\n return null\n }\n\n if (\n child.props.activeWhen &&\n !check({ visibleWhen: child.props.activeWhen })\n ) {\n return null\n }\n\n incrementIndex++\n const index = incrementIndex\n\n stepsRef.current[index] = {\n id: child.props.id,\n title:\n child.props.title !== undefined\n ? convertJsxToString(child.props.title)\n : 'Title missing',\n }\n const key = `${index}-${activeIndexRef.current}`\n const clone = (props) =>\n React.cloneElement(child as React.ReactElement<StepProps>, props)\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n prerenderFieldPropsRef.current['step-' + index] = () =>\n clone({\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return clone({\n key,\n index,\n })\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (childrenArray?.length === 0) {\n activeIndexRef.current = 0\n } else if (childrenArray?.length < activeIndexRef.current + 1) {\n activeIndexRef.current = childrenArray.length - 1\n }\n\n totalStepsRef.current = childrenArray?.length\n\n return childrenArray\n}\n\nfunction PrerenderFieldPropsOfOtherSteps({\n prerenderFieldPropsRef,\n}: {\n prerenderFieldPropsRef: WizardContextState['prerenderFieldPropsRef']\n}) {\n const hasRenderedRef = useRef(true)\n if (!hasRenderedRef.current) {\n return null\n }\n hasRenderedRef.current = false\n\n return (\n <WizardPortal>\n <PrerenderFieldPropsProvider>\n <iframe title=\"Wizard Prerender\" hidden>\n {Object.values(prerenderFieldPropsRef.current).map((Fn, i) => (\n <Fn key={i} />\n ))}\n </iframe>\n </PrerenderFieldPropsProvider>\n </WizardPortal>\n )\n}\n\nfunction WizardPortal({ children }) {\n if (typeof document !== 'undefined') {\n return ReactDOM.createPortal(children, document.body)\n }\n}\n\nfunction PrerenderFieldPropsProvider({ children }) {\n const { data, setFieldInternals, updateDataValue } =\n useContext(DataContext)\n\n return (\n <DataContext.Provider\n value={{\n ...defaultContextState,\n\n // Only update the props and the data value\n data,\n setFieldInternals,\n updateDataValue,\n prerenderFieldProps: true,\n hasContext: true,\n }}\n >\n <WizardContext.Provider value={{ prerenderFieldProps: true }}>\n {children}\n </WizardContext.Provider>\n </DataContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export default function useExternalValue(props) {
|
|
|
8
8
|
const {
|
|
9
9
|
path,
|
|
10
10
|
itemPath,
|
|
11
|
-
value,
|
|
11
|
+
value = undefined,
|
|
12
12
|
transformers,
|
|
13
13
|
emptyValue = undefined
|
|
14
14
|
} = props;
|
|
@@ -21,7 +21,7 @@ export default function useExternalValue(props) {
|
|
|
21
21
|
value: iterateElementValue
|
|
22
22
|
} = iterateItemContext || {};
|
|
23
23
|
return useMemo(() => {
|
|
24
|
-
if (value !== emptyValue) {
|
|
24
|
+
if (value !== undefined && value !== emptyValue) {
|
|
25
25
|
var _transformers$current, _transformers$current2, _transformers$current3;
|
|
26
26
|
return (_transformers$current = transformers === null || transformers === void 0 ? void 0 : (_transformers$current2 = transformers.current) === null || _transformers$current2 === void 0 ? void 0 : (_transformers$current3 = _transformers$current2.fromExternal) === null || _transformers$current3 === void 0 ? void 0 : _transformers$current3.call(_transformers$current2, value)) !== null && _transformers$current !== void 0 ? _transformers$current : emptyValue;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExternalValue.js","names":["useContext","useMemo","pointer","DataContext","IterateItemContext","useExternalValue","props","path","itemPath","value","
|
|
1
|
+
{"version":3,"file":"useExternalValue.js","names":["useContext","useMemo","pointer","DataContext","IterateItemContext","useExternalValue","props","path","itemPath","value","undefined","transformers","emptyValue","data","iterateItemContext","inIterate","Boolean","iterateElementValue","_transformers$current","_transformers$current2","_transformers$current3","current","fromExternal","call","_transformers$current4","_transformers$current5","_transformers$current6","has","_transformers$current7","_transformers$current8","_transformers$current9","get","_transformers$current10","_transformers$current11","_transformers$current12","_transformers$current13","_transformers$current14","_transformers$current15"],"sources":["../../../../../src/extensions/forms/hooks/useExternalValue.ts"],"sourcesContent":["import { useContext, useMemo } from 'react'\nimport pointer from '../utils/json-pointer'\nimport { FieldProps, Path } from '../types'\nimport DataContext from '../DataContext/Context'\nimport IterateItemContext from '../Iterate/IterateItemContext'\n\nexport type Props<Value> = {\n path?: Path | undefined\n itemPath?: Path\n value?: Value\n transformers?: React.MutableRefObject<{\n fromExternal: FieldProps<Value>['fromExternal']\n }>\n emptyValue?: FieldProps<Value>['emptyValue']\n}\n\nexport default function useExternalValue<Value>(props: Props<Value>) {\n const {\n path,\n itemPath,\n value = undefined,\n transformers,\n emptyValue = undefined,\n } = props\n const { data } = useContext(DataContext) || {}\n const iterateItemContext = useContext(IterateItemContext)\n const inIterate = Boolean(iterateItemContext)\n const { value: iterateElementValue } = iterateItemContext || {}\n\n return useMemo(() => {\n if (value !== undefined && value !== emptyValue) {\n // Value-prop sent directly to the field has highest priority, overriding any surrounding source\n return transformers?.current?.fromExternal?.(value) ?? emptyValue\n }\n\n if (inIterate && itemPath) {\n // This field is inside an iterate, and has a pointer from the base of the element being iterated\n if (itemPath === '/') {\n return (\n transformers?.current?.fromExternal?.(\n iterateElementValue as Value\n ) ?? emptyValue\n )\n }\n\n if (pointer.has(iterateElementValue, itemPath)) {\n return (\n transformers?.current?.fromExternal?.(\n pointer.get(iterateElementValue, itemPath) as Value\n ) ?? emptyValue\n )\n }\n }\n\n if (data && path) {\n // There is a surrounding data context and a path for where in the source to find the data\n if (path === '/') {\n return transformers?.current?.fromExternal?.(data) ?? emptyValue\n }\n\n if (pointer.has(data, path)) {\n return (\n transformers?.current?.fromExternal?.(pointer.get(data, path)) ??\n emptyValue\n )\n }\n }\n\n return emptyValue\n }, [\n data,\n emptyValue,\n inIterate,\n itemPath,\n iterateElementValue,\n path,\n transformers,\n value,\n ])\n}\n"],"mappings":"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"}
|
|
@@ -196,7 +196,7 @@ export default function useFieldProps(localProps) {
|
|
|
196
196
|
itemPath,
|
|
197
197
|
value: valueProp,
|
|
198
198
|
transformers,
|
|
199
|
-
emptyValue
|
|
199
|
+
emptyValue: defaultValue ? undefined : emptyValue
|
|
200
200
|
});
|
|
201
201
|
const externalValueDeps = tmpValue;
|
|
202
202
|
const externalValue = transformers.current.transformIn(tmpValue !== null && tmpValue !== void 0 ? tmpValue : defaultValueRef.current);
|
|
@@ -620,11 +620,6 @@ export default function useFieldProps(localProps) {
|
|
|
620
620
|
const setChanged = useCallback(state => {
|
|
621
621
|
changedRef.current = state;
|
|
622
622
|
}, []);
|
|
623
|
-
const removeError = useCallback(() => {
|
|
624
|
-
setChanged(false);
|
|
625
|
-
hideError();
|
|
626
|
-
clearErrorState();
|
|
627
|
-
}, [clearErrorState, hideError, setChanged]);
|
|
628
623
|
const validatorCacheRef = useRef({
|
|
629
624
|
onChangeValidator: null,
|
|
630
625
|
onBlurValidator: null
|
|
@@ -851,6 +846,12 @@ export default function useFieldProps(localProps) {
|
|
|
851
846
|
}
|
|
852
847
|
}
|
|
853
848
|
}, [clearErrorState, disabled, emptyValue, hideError, persistErrorState, prioritizeContextSchema, required, setFieldState, startOnBlurValidatorProcess, startOnChangeValidatorValidation, startProcess, validateInitially, validateUnchanged]);
|
|
849
|
+
const removeError = useCallback(() => {
|
|
850
|
+
setChanged(false);
|
|
851
|
+
hideError();
|
|
852
|
+
clearErrorState();
|
|
853
|
+
validateValue();
|
|
854
|
+
}, [clearErrorState, hideError, setChanged, validateValue]);
|
|
854
855
|
const handleError = useCallback(() => {
|
|
855
856
|
if (validateContinuously || validateContinuously !== false && !hasFocusRef.current) {
|
|
856
857
|
revealError();
|
|
@@ -935,19 +936,19 @@ export default function useFieldProps(localProps) {
|
|
|
935
936
|
});
|
|
936
937
|
}, [setFieldState]);
|
|
937
938
|
const handleChangeEventResult = useCallback(async () => {
|
|
938
|
-
const result = changeEventResultRef.current;
|
|
939
|
-
if (
|
|
940
|
-
if (
|
|
939
|
+
const result = changeEventResultRef.current || {};
|
|
940
|
+
if ('error' in result) {
|
|
941
|
+
if (!result.error) {
|
|
941
942
|
removeError();
|
|
942
943
|
} else {
|
|
943
944
|
persistErrorState('gracefully', 'onChangeValidator', result.error);
|
|
944
945
|
revealError();
|
|
945
946
|
}
|
|
946
947
|
}
|
|
947
|
-
if (
|
|
948
|
+
if ('warning' in result) {
|
|
948
949
|
warningRef.current = result.warning;
|
|
949
950
|
}
|
|
950
|
-
if (
|
|
951
|
+
if ('info' in result) {
|
|
951
952
|
infoRef.current = result.info;
|
|
952
953
|
}
|
|
953
954
|
if (asyncBehaviorIsEnabled) {
|
|
@@ -1026,7 +1027,7 @@ export default function useFieldProps(localProps) {
|
|
|
1026
1027
|
await runPool(() => {
|
|
1027
1028
|
handleError();
|
|
1028
1029
|
});
|
|
1029
|
-
}, [emptyValue, additionalArgs, hasPath, itemPath, addToPool, validateValue, callOnChangeContext, onChangeContext, runPool, handlePathChangeUnvalidatedDataContext, identifier, handleChangeIterateContext, makeIteratePath, handleError]);
|
|
1030
|
+
}, [emptyValue, additionalArgs, hasPath, itemPath, addToPool, validateValue, callOnChangeContext, onChangeContext, runPool, handlePathChangeUnvalidatedDataContext, nestedIteratePath, identifier, handleChangeIterateContext, makeIteratePath, handleError]);
|
|
1030
1031
|
const setDisplayValue = useCallback(function (content) {
|
|
1031
1032
|
let fieldPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : itemPath ? identifier : path;
|
|
1032
1033
|
if (!fieldPath || !(fieldDisplayValueRef !== null && fieldDisplayValueRef !== void 0 && fieldDisplayValueRef.current)) {
|
|
@@ -1176,10 +1177,13 @@ export default function useFieldProps(localProps) {
|
|
|
1176
1177
|
useUpdateEffect(() => {
|
|
1177
1178
|
if (externalValueDidChangeRef.current) {
|
|
1178
1179
|
externalValueDidChangeRef.current = false;
|
|
1180
|
+
if (!validateContinuously && valueRef.current === emptyValue) {
|
|
1181
|
+
hideError();
|
|
1182
|
+
}
|
|
1179
1183
|
validateValue();
|
|
1180
1184
|
forceUpdate();
|
|
1181
1185
|
}
|
|
1182
|
-
}, [externalValueDeps]);
|
|
1186
|
+
}, [externalValueDeps, emptyValue, validateContinuously]);
|
|
1183
1187
|
useEffect(() => {
|
|
1184
1188
|
if (!localErrorInitiatorRef.current) {
|
|
1185
1189
|
const error = prepareError(dataContextError);
|
|
@@ -1202,7 +1206,7 @@ export default function useFieldProps(localProps) {
|
|
|
1202
1206
|
if (!hasPath && !hasItemPath) {
|
|
1203
1207
|
return;
|
|
1204
1208
|
}
|
|
1205
|
-
let valueToStore = valueProp
|
|
1209
|
+
let valueToStore = valueProp;
|
|
1206
1210
|
const data = wizardContext !== null && wizardContext !== void 0 && wizardContext.prerenderFieldProps ? dataContext.data : (_dataContext$internal = dataContext.internalDataRef) === null || _dataContext$internal === void 0 ? void 0 : _dataContext$internal.current;
|
|
1207
1211
|
const storePath = nestedIteratePath ? makeIteratePath(itemPath, nestedIteratePath) : identifier;
|
|
1208
1212
|
const hasValue = pointer.has(data, storePath) || storePath === '/';
|
|
@@ -1221,6 +1225,8 @@ export default function useFieldProps(localProps) {
|
|
|
1221
1225
|
if (hasDefaultValue) {
|
|
1222
1226
|
valueToStore = defaultValueRef.current;
|
|
1223
1227
|
defaultValueRef.current = undefined;
|
|
1228
|
+
} else if (!hasValue && typeof valueToStore === 'undefined') {
|
|
1229
|
+
valueToStore = emptyValue;
|
|
1224
1230
|
}
|
|
1225
1231
|
let skipEqualCheck = false;
|
|
1226
1232
|
if (hasItemPath) {
|
|
@@ -1377,9 +1383,10 @@ export default function useFieldProps(localProps) {
|
|
|
1377
1383
|
}
|
|
1378
1384
|
const connections = useMemo(() => {
|
|
1379
1385
|
return {
|
|
1380
|
-
setEventResult
|
|
1386
|
+
setEventResult,
|
|
1387
|
+
emptyValue
|
|
1381
1388
|
};
|
|
1382
|
-
}, [setEventResult]);
|
|
1389
|
+
}, [emptyValue, setEventResult]);
|
|
1383
1390
|
setFieldConnectionDataContext === null || setFieldConnectionDataContext === void 0 ? void 0 : setFieldConnectionDataContext(identifier, connections);
|
|
1384
1391
|
const htmlAttributes = useMemo(() => {
|
|
1385
1392
|
return Object.keys(props).reduce((acc, cur) => {
|