@dnb/eufemia 10.30.0 → 10.30.2
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/checkbox/Checkbox.d.ts +1 -1
- package/cjs/components/checkbox/Checkbox.js +6 -3
- package/cjs/components/checkbox/Checkbox.js.map +1 -1
- package/cjs/components/flex/style/dnb-flex.css +4 -0
- package/cjs/components/flex/style/dnb-flex.min.css +1 -1
- package/cjs/components/flex/style/flex-stack.scss +3 -0
- package/cjs/components/height-animation/HeightAnimationInstance.js +4 -3
- package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/cjs/components/table/useTableAnimationHandler.js +1 -1
- package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +8 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
- package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +16 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +17 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +7 -5
- package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +7 -5
- package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +8 -6
- package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +7 -5
- package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -2
- package/cjs/extensions/forms/hooks/useFieldProps.js +5 -3
- 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/helpers/assignPropsWithContext.js +6 -1
- package/cjs/shared/helpers/assignPropsWithContext.js.map +1 -1
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js +0 -1
- package/cjs/shared/helpers/runCssVersionMismatchWarning.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-components.css +4 -0
- package/cjs/style/dnb-ui-components.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/themes/theme-eiendom/eiendom-theme-components.css +4 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +4 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
- package/components/checkbox/Checkbox.d.ts +1 -1
- package/components/checkbox/Checkbox.js +6 -3
- package/components/checkbox/Checkbox.js.map +1 -1
- package/components/flex/style/dnb-flex.css +4 -0
- package/components/flex/style/dnb-flex.min.css +1 -1
- package/components/flex/style/flex-stack.scss +3 -0
- package/components/height-animation/HeightAnimationInstance.js +4 -3
- package/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/components/table/useTableAnimationHandler.js +1 -1
- package/components/table/useTableAnimationHandler.js.map +1 -1
- package/es/components/checkbox/Checkbox.d.ts +1 -1
- package/es/components/checkbox/Checkbox.js +6 -3
- package/es/components/checkbox/Checkbox.js.map +1 -1
- package/es/components/flex/style/dnb-flex.css +4 -0
- package/es/components/flex/style/dnb-flex.min.css +1 -1
- package/es/components/flex/style/flex-stack.scss +3 -0
- package/es/components/height-animation/HeightAnimationInstance.js +4 -3
- package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
- package/es/components/table/useTableAnimationHandler.js +1 -1
- package/es/components/table/useTableAnimationHandler.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +8 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
- package/es/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
- package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
- package/es/extensions/forms/Form/Visibility/Visibility.js +16 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +18 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js +5 -4
- package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +6 -5
- package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js +6 -5
- package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js +5 -4
- package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -2
- package/es/extensions/forms/hooks/useFieldProps.js +5 -3
- 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/helpers/assignPropsWithContext.js +4 -1
- package/es/shared/helpers/assignPropsWithContext.js.map +1 -1
- package/es/shared/helpers/runCssVersionMismatchWarning.js +0 -1
- package/es/shared/helpers/runCssVersionMismatchWarning.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-components.css +4 -0
- package/es/style/dnb-ui-components.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/themes/theme-eiendom/eiendom-theme-components.css +4 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +4 -0
- package/es/style/themes/theme-ui/ui-theme-components.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 +3 -3
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +8 -1
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
- package/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
- package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
- package/extensions/forms/Form/Visibility/Visibility.js +16 -10
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +18 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useNextRouter.js +7 -5
- package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
- package/extensions/forms/Wizard/hooks/useQueryLocator.js +7 -5
- package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useReachRouter.js +8 -6
- package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useReactRouter.js +7 -5
- package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.d.ts +2 -2
- package/extensions/forms/hooks/useFieldProps.js +5 -3
- 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/helpers/assignPropsWithContext.js +4 -1
- package/shared/helpers/assignPropsWithContext.js.map +1 -1
- package/shared/helpers/runCssVersionMismatchWarning.js +0 -1
- package/shared/helpers/runCssVersionMismatchWarning.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-components.css +4 -0
- package/style/dnb-ui-components.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +4 -0
- package/style/themes/theme-ui/ui-theme-components.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 +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -4,8 +4,9 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
5
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
|
-
import React, { Fragment, useContext } from 'react';
|
|
7
|
+
import React, { Fragment, useContext, useEffect, useRef } from 'react';
|
|
8
8
|
import classnames from 'classnames';
|
|
9
|
+
import { warn } from '../../../shared/helpers';
|
|
9
10
|
import { Dd, Dl, Dt, Span } from '../../../elements';
|
|
10
11
|
import { FormLabel } from '../../../components';
|
|
11
12
|
import SummaryListContext from '../Value/SummaryList/SummaryListContext';
|
|
@@ -26,11 +27,13 @@ function ValueBlock(props) {
|
|
|
26
27
|
gap = 'xx-small'
|
|
27
28
|
} = props;
|
|
28
29
|
const label = inline ? null : labelProp;
|
|
30
|
+
const ref = useRef(null);
|
|
31
|
+
useNotInSummaryList(valueBlockContext !== null && valueBlockContext !== void 0 && valueBlockContext.composition ? null : ref, label);
|
|
29
32
|
if ((children === undefined || children === null || children === false) && !showEmpty && !placeholder) {
|
|
30
33
|
return null;
|
|
31
34
|
}
|
|
32
35
|
let content = null;
|
|
33
|
-
const compositionClass = composition
|
|
36
|
+
const compositionClass = composition && `dnb-forms-value-block__composition--${composition === true ? 'horizontal' : composition}`;
|
|
34
37
|
if (summaryListContext) {
|
|
35
38
|
const Element = summaryListContext.isNested ? Dl : summaryListContext.layout === 'horizontal' ? Dl.Item : Fragment;
|
|
36
39
|
if (!label && valueBlockContext !== null && valueBlockContext !== void 0 && valueBlockContext.composition) {
|
|
@@ -57,6 +60,7 @@ function ValueBlock(props) {
|
|
|
57
60
|
}
|
|
58
61
|
} else {
|
|
59
62
|
content = React.createElement(Span, _extends({
|
|
63
|
+
ref: ref,
|
|
60
64
|
className: classnames('dnb-forms-value-block', compositionClass, className, inline && 'dnb-forms-value-block--inline', maxWidth && `dnb-forms-value-block--max-width-${maxWidth}`)
|
|
61
65
|
}, pickSpacingProps(props)), label && React.createElement(FormLabel, {
|
|
62
66
|
element: "strong",
|
|
@@ -72,6 +76,18 @@ function ValueBlock(props) {
|
|
|
72
76
|
value: props
|
|
73
77
|
}, content);
|
|
74
78
|
}
|
|
79
|
+
function useNotInSummaryList(ref, label) {
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (ref !== null && ref !== void 0 && ref.current) {
|
|
82
|
+
try {
|
|
83
|
+
const sibling = ref.current.previousElementSibling;
|
|
84
|
+
if (sibling !== null && sibling !== void 0 && sibling.classList.contains('dnb-forms-value-block') && !ref.current.closest('.dnb-forms-summary-list')) {
|
|
85
|
+
warn.apply(warn, ['Value components as siblings should be wrapped inside a Value.SummaryList!', label].filter(Boolean));
|
|
86
|
+
}
|
|
87
|
+
} catch (error) {}
|
|
88
|
+
}
|
|
89
|
+
}, [label, ref]);
|
|
90
|
+
}
|
|
75
91
|
ValueBlock._supportsSpacingProps = true;
|
|
76
92
|
export default ValueBlock;
|
|
77
93
|
//# sourceMappingURL=ValueBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueBlock.js","names":["React","Fragment","useContext","classnames","Dd","Dl","Dt","Span","FormLabel","SummaryListContext","pickSpacingProps","ValueBlockContext","ValueBlock","props","summaryListContext","valueBlockContext","className","label","labelProp","inline","maxWidth","composition","placeholder","showEmpty","children","gap","undefined","content","compositionClass","Element","isNested","layout","Item","_span","createElement","Provider","value","_objectSpread","_extends","element","labelDirection","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/ValueBlock/ValueBlock.tsx"],"sourcesContent":["import React, { Fragment, useContext } from 'react'\nimport classnames from 'classnames'\nimport { Dd, Dl, Dt, Span } from '../../../elements'\nimport { FormLabel } from '../../../components'\nimport SummaryListContext from '../Value/SummaryList/SummaryListContext'\nimport { ValueProps } from '../types'\nimport { pickSpacingProps } from '../../../components/flex/utils'\nimport ValueBlockContext from './ValueBlockContext'\n\n/**\n * Props are documented in ValueDocs.ts\n */\nexport type Props = Omit<ValueProps<unknown>, 'value'> & {\n children?: React.ReactNode\n\n /**\n * Used internally by the Composition component\n */\n composition?: boolean\n\n /**\n * Used internally by the Composition component\n */\n gap?: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | false\n}\n\nfunction ValueBlock(props: Props) {\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const {\n className,\n label: labelProp,\n inline,\n maxWidth = props.composition ? props.maxWidth : 'large',\n placeholder,\n showEmpty,\n children,\n composition,\n gap = 'xx-small',\n } = props\n\n const label = inline ? null : labelProp\n\n if (\n (children === undefined || children === null || children === false) &&\n !showEmpty &&\n !placeholder\n ) {\n return null\n }\n\n let content = null\n\n const compositionClass
|
|
1
|
+
{"version":3,"file":"ValueBlock.js","names":["React","Fragment","useContext","useEffect","useRef","classnames","warn","Dd","Dl","Dt","Span","FormLabel","SummaryListContext","pickSpacingProps","ValueBlockContext","ValueBlock","props","summaryListContext","valueBlockContext","className","label","labelProp","inline","maxWidth","composition","placeholder","showEmpty","children","gap","ref","useNotInSummaryList","undefined","content","compositionClass","Element","isNested","layout","Item","_span","createElement","Provider","value","_objectSpread","_extends","element","labelDirection","current","sibling","previousElementSibling","classList","contains","closest","apply","filter","Boolean","error","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/ValueBlock/ValueBlock.tsx"],"sourcesContent":["import React, { Fragment, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { warn } from '../../../shared/helpers'\nimport { Dd, Dl, Dt, Span } from '../../../elements'\nimport { FormLabel } from '../../../components'\nimport SummaryListContext from '../Value/SummaryList/SummaryListContext'\nimport { ValueProps } from '../types'\nimport { pickSpacingProps } from '../../../components/flex/utils'\nimport ValueBlockContext from './ValueBlockContext'\n\n/**\n * Props are documented in ValueDocs.ts\n */\nexport type Props = Omit<ValueProps<unknown>, 'value'> & {\n children?: React.ReactNode\n\n /**\n * Used internally by the Composition component\n */\n composition?: boolean\n\n /**\n * Used internally by the Composition component\n */\n gap?: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | false\n}\n\nfunction ValueBlock(props: Props) {\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n\n const {\n className,\n label: labelProp,\n inline,\n maxWidth = props.composition ? props.maxWidth : 'large',\n placeholder,\n showEmpty,\n children,\n composition,\n gap = 'xx-small',\n } = props\n\n const label = inline ? null : labelProp\n\n const ref = useRef<HTMLElement>(null)\n useNotInSummaryList(valueBlockContext?.composition ? null : ref, label)\n\n if (\n (children === undefined || children === null || children === false) &&\n !showEmpty &&\n !placeholder\n ) {\n return null\n }\n\n let content = null\n\n const compositionClass =\n composition &&\n classnames(\n `dnb-forms-value-block__composition--${\n composition === true ? 'horizontal' : composition\n }`\n )\n\n if (summaryListContext) {\n const Element = summaryListContext.isNested\n ? Dl\n : summaryListContext.layout === 'horizontal'\n ? Dl.Item\n : Fragment\n\n if (!label && valueBlockContext?.composition) {\n content = (\n <span\n className={classnames(\n 'dnb-forms-value-block__content',\n gap && `dnb-forms-value-block__content--gap-${gap}`\n )}\n >\n {children}\n </span>\n ) ?? (\n <span className=\"dnb-forms-value-block__placeholder\">\n {placeholder}\n </span>\n )\n } else {\n content = (\n <Element>\n <SummaryListContext.Provider\n value={{ ...summaryListContext, isNested: true }}\n >\n {label && (\n <Dt className=\"dnb-forms-value-block__label\">\n <strong>{label}</strong>\n </Dt>\n )}\n <Dd\n className={classnames(\n summaryListContext.layout !== 'grid' &&\n !summaryListContext.isNested &&\n maxWidth &&\n `dnb-forms-value-block--max-width-${maxWidth}`,\n compositionClass\n )}\n >\n {children ? (\n <span\n className={classnames(\n 'dnb-forms-value-block__content',\n gap && `dnb-forms-value-block__content--gap-${gap}`\n )}\n >\n {children}\n </span>\n ) : (\n <span className=\"dnb-forms-value-block__placeholder\">\n {placeholder}\n </span>\n )}\n </Dd>\n </SummaryListContext.Provider>\n </Element>\n )\n }\n } else {\n content = (\n <Span\n ref={ref}\n className={classnames(\n 'dnb-forms-value-block',\n inline && 'dnb-forms-value-block--inline',\n maxWidth && `dnb-forms-value-block--max-width-${maxWidth}`,\n compositionClass,\n className\n )}\n {...pickSpacingProps(props)}\n >\n {label && (\n <FormLabel\n element=\"strong\" // enhance a11y: https://www.w3.org/WAI/WCAG21/Techniques/html/H49\n className=\"dnb-forms-value-block__label\"\n labelDirection={inline ? 'horizontal' : 'vertical'}\n >\n {label}\n </FormLabel>\n )}\n {children ? (\n <span\n className={classnames(\n 'dnb-forms-value-block__content',\n gap && `dnb-forms-value-block__content--gap-${gap}`\n )}\n >\n {children}\n </span>\n ) : (\n <span className=\"dnb-forms-value-block__placeholder\">\n {placeholder}\n </span>\n )}\n </Span>\n )\n }\n\n return (\n <ValueBlockContext.Provider value={props}>\n {content}\n </ValueBlockContext.Provider>\n )\n}\n\nfunction useNotInSummaryList(\n ref: React.RefObject<HTMLElement>,\n label?: React.ReactNode\n) {\n useEffect(() => {\n if (ref?.current) {\n try {\n const sibling = ref.current.previousElementSibling\n\n if (\n sibling?.classList.contains('dnb-forms-value-block') &&\n !ref.current.closest('.dnb-forms-summary-list')\n ) {\n warn.apply(\n warn,\n [\n 'Value components as siblings should be wrapped inside a Value.SummaryList!',\n label,\n ].filter(Boolean)\n )\n }\n } catch (error) {\n //\n }\n }\n }, [label, ref])\n}\n\nValueBlock._supportsSpacingProps = true\nexport default ValueBlock\n"],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import useStep from './useStep';
|
|
3
3
|
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
4
|
-
export default function useNextRouter(
|
|
4
|
+
export default function useNextRouter() {
|
|
5
|
+
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
5
6
|
let {
|
|
6
7
|
useRouter,
|
|
7
8
|
usePathname,
|
|
8
9
|
useSearchParams
|
|
9
|
-
} =
|
|
10
|
+
} = arguments.length > 1 ? arguments[1] : undefined;
|
|
11
|
+
const name = id ? `${id}-step` : 'step';
|
|
10
12
|
const {
|
|
11
13
|
setFormError
|
|
12
14
|
} = useStep(id);
|
|
@@ -16,18 +18,18 @@ export default function useNextRouter(id, _ref) {
|
|
|
16
18
|
const onStepChange = useCallback(index => {
|
|
17
19
|
try {
|
|
18
20
|
const params = new URLSearchParams(searchParams.toString());
|
|
19
|
-
params.set(
|
|
21
|
+
params.set(name, String(index));
|
|
20
22
|
router.push(`${pathname}?${params.toString()}`);
|
|
21
23
|
} catch (error) {
|
|
22
24
|
setFormError(error);
|
|
23
25
|
}
|
|
24
|
-
}, [
|
|
26
|
+
}, [name, pathname, router, searchParams, setFormError]);
|
|
25
27
|
const {
|
|
26
28
|
setActiveIndex
|
|
27
29
|
} = useStep(id, {
|
|
28
30
|
onStepChange
|
|
29
31
|
});
|
|
30
|
-
const getIndex = useCallback(() => parseFloat(searchParams.get(
|
|
32
|
+
const getIndex = useCallback(() => parseFloat(searchParams.get(name)), [name, searchParams]);
|
|
31
33
|
useLayoutEffect(() => {
|
|
32
34
|
const routerIndex = getIndex();
|
|
33
35
|
if (!isNaN(routerIndex)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNextRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useNextRouter","id","
|
|
1
|
+
{"version":3,"file":"useNextRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useNextRouter","id","arguments","length","undefined","useRouter","usePathname","useSearchParams","name","setFormError","router","pathname","searchParams","onStepChange","index","params","URLSearchParams","toString","set","String","push","error","setActiveIndex","getIndex","parseFloat","get","routerIndex","isNaN","skipStepChangeCallFromHook","skipStepChangeCallBeforeMounted"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useNextRouter.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport useStep from './useStep'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useNextRouter(\n id: string = null,\n { useRouter, usePathname, useSearchParams }\n) {\n const name = id ? `${id}-step` : 'step'\n const { setFormError } = useStep(id)\n const router = useRouter()\n const pathname = usePathname()\n const searchParams = useSearchParams()\n\n const onStepChange = useCallback(\n (index: number) => {\n try {\n const params = new URLSearchParams(searchParams.toString())\n params.set(name, String(index))\n router.push(`${pathname}?${params.toString()}`)\n } catch (error) {\n setFormError(error)\n }\n },\n [name, pathname, router, searchParams, setFormError]\n )\n\n const { setActiveIndex } = useStep(id, { onStepChange })\n\n const getIndex = useCallback(\n () => parseFloat(searchParams.get(name)),\n [name, searchParams]\n )\n\n useLayoutEffect(() => {\n const routerIndex = getIndex()\n if (!isNaN(routerIndex)) {\n setActiveIndex(routerIndex, {\n skipStepChangeCallFromHook: true,\n skipStepChangeCallBeforeMounted: true,\n })\n }\n }, [getIndex, id, searchParams, setActiveIndex, setFormError])\n\n return { getIndex }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,OAAO,MAAM,WAAW;AAG/B,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGJ,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACG,eAAe;AAEzE,eAAe,SAASG,aAAaA,CAAA,EAGnC;EAAA,IAFAC,EAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACjB;IAAEG,SAAS;IAAEC,WAAW;IAAEC;EAAgB,CAAC,GAAAL,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAE3C,MAAMI,IAAI,GAAGP,EAAE,GAAI,GAAEA,EAAG,OAAM,GAAG,MAAM;EACvC,MAAM;IAAEQ;EAAa,CAAC,GAAGb,OAAO,CAACK,EAAE,CAAC;EACpC,MAAMS,MAAM,GAAGL,SAAS,CAAC,CAAC;EAC1B,MAAMM,QAAQ,GAAGL,WAAW,CAAC,CAAC;EAC9B,MAAMM,YAAY,GAAGL,eAAe,CAAC,CAAC;EAEtC,MAAMM,YAAY,GAAGlB,WAAW,CAC7BmB,KAAa,IAAK;IACjB,IAAI;MACF,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAACJ,YAAY,CAACK,QAAQ,CAAC,CAAC,CAAC;MAC3DF,MAAM,CAACG,GAAG,CAACV,IAAI,EAAEW,MAAM,CAACL,KAAK,CAAC,CAAC;MAC/BJ,MAAM,CAACU,IAAI,CAAE,GAAET,QAAS,IAAGI,MAAM,CAACE,QAAQ,CAAC,CAAE,EAAC,CAAC;IACjD,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdZ,YAAY,CAACY,KAAK,CAAC;IACrB;EACF,CAAC,EACD,CAACb,IAAI,EAAEG,QAAQ,EAAED,MAAM,EAAEE,YAAY,EAAEH,YAAY,CACrD,CAAC;EAED,MAAM;IAAEa;EAAe,CAAC,GAAG1B,OAAO,CAACK,EAAE,EAAE;IAAEY;EAAa,CAAC,CAAC;EAExD,MAAMU,QAAQ,GAAG5B,WAAW,CAC1B,MAAM6B,UAAU,CAACZ,YAAY,CAACa,GAAG,CAACjB,IAAI,CAAC,CAAC,EACxC,CAACA,IAAI,EAAEI,YAAY,CACrB,CAAC;EAEDf,eAAe,CAAC,MAAM;IACpB,MAAM6B,WAAW,GAAGH,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAACI,KAAK,CAACD,WAAW,CAAC,EAAE;MACvBJ,cAAc,CAACI,WAAW,EAAE;QAC1BE,0BAA0B,EAAE,IAAI;QAChCC,+BAA+B,EAAE;MACnC,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACN,QAAQ,EAAEtB,EAAE,EAAEW,YAAY,EAAEU,cAAc,EAAEb,YAAY,CAAC,CAAC;EAE9D,OAAO;IAAEc;EAAS,CAAC;AACrB"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import useStep from './useStep';
|
|
3
3
|
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
4
|
-
export default function useQueryLocator(
|
|
4
|
+
export default function useQueryLocator() {
|
|
5
|
+
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
|
|
5
6
|
const {
|
|
6
7
|
setFormError
|
|
7
8
|
} = useStep(id);
|
|
9
|
+
const name = id ? `${id}-step` : 'step';
|
|
8
10
|
const onStepChange = useCallback(index => {
|
|
9
11
|
try {
|
|
10
12
|
const url = new URL(window.location.href);
|
|
11
|
-
url.searchParams.set(
|
|
13
|
+
url.searchParams.set(name, String(index));
|
|
12
14
|
window.history.pushState({}, '', url.toString());
|
|
13
15
|
} catch (error) {
|
|
14
16
|
setFormError(error);
|
|
15
17
|
}
|
|
16
|
-
}, [
|
|
18
|
+
}, [name, setFormError]);
|
|
17
19
|
const {
|
|
18
20
|
setActiveIndex
|
|
19
21
|
} = useStep(id, {
|
|
@@ -22,11 +24,11 @@ export default function useQueryLocator(id) {
|
|
|
22
24
|
const getIndex = useCallback(() => {
|
|
23
25
|
try {
|
|
24
26
|
const searchParams = new URLSearchParams(window.location.search);
|
|
25
|
-
return parseFloat(searchParams.get(
|
|
27
|
+
return parseFloat(searchParams.get(name));
|
|
26
28
|
} catch (error) {
|
|
27
29
|
setFormError(error);
|
|
28
30
|
}
|
|
29
|
-
}, [
|
|
31
|
+
}, [name, setFormError]);
|
|
30
32
|
useLayoutEffect(() => {
|
|
31
33
|
try {
|
|
32
34
|
const popstateListener = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQueryLocator.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useQueryLocator","id","setFormError","onStepChange","index","url","URL","location","href","searchParams","set","String","history","pushState","toString","error","setActiveIndex","getIndex","URLSearchParams","search","parseFloat","get","popstateListener","routerIndex","isNaN","skipStepChangeCallFromHook","skipStepChangeCallBeforeMounted","addEventListener","removeEventListener"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useQueryLocator.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport useStep from './useStep'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useQueryLocator(id: string) {\n const { setFormError } = useStep(id)\n\n const onStepChange = useCallback(\n (index: number) => {\n try {\n const url = new URL(window.location.href)\n url.searchParams.set(
|
|
1
|
+
{"version":3,"file":"useQueryLocator.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useQueryLocator","id","arguments","length","undefined","setFormError","name","onStepChange","index","url","URL","location","href","searchParams","set","String","history","pushState","toString","error","setActiveIndex","getIndex","URLSearchParams","search","parseFloat","get","popstateListener","routerIndex","isNaN","skipStepChangeCallFromHook","skipStepChangeCallBeforeMounted","addEventListener","removeEventListener"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useQueryLocator.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport useStep from './useStep'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useQueryLocator(id: string = undefined) {\n const { setFormError } = useStep(id)\n const name = id ? `${id}-step` : 'step'\n\n const onStepChange = useCallback(\n (index: number) => {\n try {\n const url = new URL(window.location.href)\n url.searchParams.set(name, String(index))\n window.history.pushState({}, '', url.toString())\n } catch (error) {\n setFormError(error)\n }\n },\n [name, setFormError]\n )\n\n const { setActiveIndex } = useStep(id, { onStepChange })\n\n const getIndex = useCallback(() => {\n try {\n const searchParams = new URLSearchParams(window.location.search)\n return parseFloat(searchParams.get(name))\n } catch (error) {\n setFormError(error)\n }\n }, [name, setFormError])\n\n useLayoutEffect(() => {\n try {\n const popstateListener = () => {\n const routerIndex = getIndex()\n if (!isNaN(routerIndex)) {\n setActiveIndex(routerIndex, {\n skipStepChangeCallFromHook: true,\n skipStepChangeCallBeforeMounted: true,\n })\n }\n }\n\n // Initial setup call\n popstateListener()\n\n window.addEventListener('popstate', popstateListener)\n return () => window.removeEventListener('popstate', popstateListener)\n } catch (error) {\n setFormError(error)\n }\n }, [getIndex, id, setActiveIndex, setFormError])\n\n return { getIndex }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,OAAO,MAAM,WAAW;AAG/B,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGJ,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACG,eAAe;AAEzE,eAAe,SAASG,eAAeA,CAAA,EAAyB;EAAA,IAAxBC,EAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGE,SAAS;EAC5D,MAAM;IAAEC;EAAa,CAAC,GAAGT,OAAO,CAACK,EAAE,CAAC;EACpC,MAAMK,IAAI,GAAGL,EAAE,GAAI,GAAEA,EAAG,OAAM,GAAG,MAAM;EAEvC,MAAMM,YAAY,GAAGZ,WAAW,CAC7Ba,KAAa,IAAK;IACjB,IAAI;MACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACZ,MAAM,CAACa,QAAQ,CAACC,IAAI,CAAC;MACzCH,GAAG,CAACI,YAAY,CAACC,GAAG,CAACR,IAAI,EAAES,MAAM,CAACP,KAAK,CAAC,CAAC;MACzCV,MAAM,CAACkB,OAAO,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAER,GAAG,CAACS,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdd,YAAY,CAACc,KAAK,CAAC;IACrB;EACF,CAAC,EACD,CAACb,IAAI,EAAED,YAAY,CACrB,CAAC;EAED,MAAM;IAAEe;EAAe,CAAC,GAAGxB,OAAO,CAACK,EAAE,EAAE;IAAEM;EAAa,CAAC,CAAC;EAExD,MAAMc,QAAQ,GAAG1B,WAAW,CAAC,MAAM;IACjC,IAAI;MACF,MAAMkB,YAAY,GAAG,IAAIS,eAAe,CAACxB,MAAM,CAACa,QAAQ,CAACY,MAAM,CAAC;MAChE,OAAOC,UAAU,CAACX,YAAY,CAACY,GAAG,CAACnB,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdd,YAAY,CAACc,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACb,IAAI,EAAED,YAAY,CAAC,CAAC;EAExBR,eAAe,CAAC,MAAM;IACpB,IAAI;MACF,MAAM6B,gBAAgB,GAAGA,CAAA,KAAM;QAC7B,MAAMC,WAAW,GAAGN,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAACO,KAAK,CAACD,WAAW,CAAC,EAAE;UACvBP,cAAc,CAACO,WAAW,EAAE;YAC1BE,0BAA0B,EAAE,IAAI;YAChCC,+BAA+B,EAAE;UACnC,CAAC,CAAC;QACJ;MACF,CAAC;MAGDJ,gBAAgB,CAAC,CAAC;MAElB5B,MAAM,CAACiC,gBAAgB,CAAC,UAAU,EAAEL,gBAAgB,CAAC;MACrD,OAAO,MAAM5B,MAAM,CAACkC,mBAAmB,CAAC,UAAU,EAAEN,gBAAgB,CAAC;IACvE,CAAC,CAAC,OAAOP,KAAK,EAAE;MACdd,YAAY,CAACc,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACE,QAAQ,EAAEpB,EAAE,EAAEmB,cAAc,EAAEf,YAAY,CAAC,CAAC;EAEhD,OAAO;IAAEgB;EAAS,CAAC;AACrB"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import useStep from './useStep';
|
|
3
3
|
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
4
|
-
export default function useReachRouter(
|
|
4
|
+
export default function useReachRouter() {
|
|
5
|
+
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
5
6
|
let {
|
|
6
7
|
useLocation,
|
|
7
8
|
navigate
|
|
8
|
-
} =
|
|
9
|
+
} = arguments.length > 1 ? arguments[1] : undefined;
|
|
10
|
+
const name = id ? `${id}-step` : 'step';
|
|
9
11
|
const {
|
|
10
12
|
setFormError
|
|
11
13
|
} = useStep(id);
|
|
@@ -13,12 +15,12 @@ export default function useReachRouter(id, _ref) {
|
|
|
13
15
|
const onStepChange = useCallback(index => {
|
|
14
16
|
try {
|
|
15
17
|
const url = new URL(location.href);
|
|
16
|
-
url.searchParams.set(
|
|
18
|
+
url.searchParams.set(name, String(index));
|
|
17
19
|
navigate(url.href);
|
|
18
20
|
} catch (error) {
|
|
19
21
|
setFormError(error);
|
|
20
22
|
}
|
|
21
|
-
}, [
|
|
23
|
+
}, [location.href, name, navigate, setFormError]);
|
|
22
24
|
const {
|
|
23
25
|
setActiveIndex
|
|
24
26
|
} = useStep(id, {
|
|
@@ -27,11 +29,11 @@ export default function useReachRouter(id, _ref) {
|
|
|
27
29
|
const getIndex = useCallback(() => {
|
|
28
30
|
try {
|
|
29
31
|
const searchParams = new URLSearchParams(location.search);
|
|
30
|
-
return parseFloat(searchParams.get(
|
|
32
|
+
return parseFloat(searchParams.get(name));
|
|
31
33
|
} catch (error) {
|
|
32
34
|
setFormError(error);
|
|
33
35
|
}
|
|
34
|
-
}, [
|
|
36
|
+
}, [location.search, name, setFormError]);
|
|
35
37
|
useLayoutEffect(() => {
|
|
36
38
|
const routerIndex = getIndex();
|
|
37
39
|
if (!isNaN(routerIndex)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReachRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useReachRouter","id","
|
|
1
|
+
{"version":3,"file":"useReachRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useReachRouter","id","arguments","length","undefined","useLocation","navigate","name","setFormError","location","onStepChange","index","url","URL","href","searchParams","set","String","error","setActiveIndex","getIndex","URLSearchParams","search","parseFloat","get","routerIndex","isNaN","skipStepChangeCallFromHook","skipStepChangeCallBeforeMounted"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useReachRouter.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport useStep from './useStep'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useReachRouter(\n id: string = null,\n { useLocation, navigate }\n) {\n const name = id ? `${id}-step` : 'step'\n const { setFormError } = useStep(id)\n const location = useLocation()\n\n const onStepChange = useCallback(\n (index: number) => {\n try {\n const url = new URL(location.href)\n url.searchParams.set(name, String(index))\n navigate(url.href)\n } catch (error) {\n setFormError(error)\n }\n },\n [location.href, name, navigate, setFormError]\n )\n\n const { setActiveIndex } = useStep(id, { onStepChange })\n\n const getIndex = useCallback(() => {\n try {\n const searchParams = new URLSearchParams(location.search)\n return parseFloat(searchParams.get(name))\n } catch (error) {\n setFormError(error)\n }\n }, [location.search, name, setFormError])\n\n useLayoutEffect(() => {\n const routerIndex = getIndex()\n if (!isNaN(routerIndex)) {\n setActiveIndex(routerIndex, {\n skipStepChangeCallFromHook: true,\n skipStepChangeCallBeforeMounted: true,\n })\n }\n }, [getIndex, setActiveIndex])\n\n return { getIndex }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,OAAO,MAAM,WAAW;AAG/B,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGJ,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACG,eAAe;AAEzE,eAAe,SAASG,cAAcA,CAAA,EAGpC;EAAA,IAFAC,EAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACjB;IAAEG,WAAW;IAAEC;EAAS,CAAC,GAAAJ,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEzB,MAAMG,IAAI,GAAGN,EAAE,GAAI,GAAEA,EAAG,OAAM,GAAG,MAAM;EACvC,MAAM;IAAEO;EAAa,CAAC,GAAGZ,OAAO,CAACK,EAAE,CAAC;EACpC,MAAMQ,QAAQ,GAAGJ,WAAW,CAAC,CAAC;EAE9B,MAAMK,YAAY,GAAGf,WAAW,CAC7BgB,KAAa,IAAK;IACjB,IAAI;MACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACJ,QAAQ,CAACK,IAAI,CAAC;MAClCF,GAAG,CAACG,YAAY,CAACC,GAAG,CAACT,IAAI,EAAEU,MAAM,CAACN,KAAK,CAAC,CAAC;MACzCL,QAAQ,CAACM,GAAG,CAACE,IAAI,CAAC;IACpB,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdV,YAAY,CAACU,KAAK,CAAC;IACrB;EACF,CAAC,EACD,CAACT,QAAQ,CAACK,IAAI,EAAEP,IAAI,EAAED,QAAQ,EAAEE,YAAY,CAC9C,CAAC;EAED,MAAM;IAAEW;EAAe,CAAC,GAAGvB,OAAO,CAACK,EAAE,EAAE;IAAES;EAAa,CAAC,CAAC;EAExD,MAAMU,QAAQ,GAAGzB,WAAW,CAAC,MAAM;IACjC,IAAI;MACF,MAAMoB,YAAY,GAAG,IAAIM,eAAe,CAACZ,QAAQ,CAACa,MAAM,CAAC;MACzD,OAAOC,UAAU,CAACR,YAAY,CAACS,GAAG,CAACjB,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,OAAOW,KAAK,EAAE;MACdV,YAAY,CAACU,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACT,QAAQ,CAACa,MAAM,EAAEf,IAAI,EAAEC,YAAY,CAAC,CAAC;EAEzCX,eAAe,CAAC,MAAM;IACpB,MAAM4B,WAAW,GAAGL,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAACM,KAAK,CAACD,WAAW,CAAC,EAAE;MACvBN,cAAc,CAACM,WAAW,EAAE;QAC1BE,0BAA0B,EAAE,IAAI;QAChCC,+BAA+B,EAAE;MACnC,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACR,QAAQ,EAAED,cAAc,CAAC,CAAC;EAE9B,OAAO;IAAEC;EAAS,CAAC;AACrB"}
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import useStep from './useStep';
|
|
3
3
|
const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
|
|
4
|
-
export default function useReactRouter(
|
|
4
|
+
export default function useReactRouter() {
|
|
5
|
+
let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
5
6
|
let {
|
|
6
7
|
useSearchParams
|
|
7
|
-
} =
|
|
8
|
+
} = arguments.length > 1 ? arguments[1] : undefined;
|
|
9
|
+
const name = id ? `${id}-step` : 'step';
|
|
8
10
|
const {
|
|
9
11
|
setFormError
|
|
10
12
|
} = useStep(id);
|
|
11
13
|
const [searchParams, setSearchParams] = useSearchParams();
|
|
12
14
|
const onStepChange = useCallback(index => {
|
|
13
15
|
try {
|
|
14
|
-
searchParams.set(
|
|
16
|
+
searchParams.set(name, index);
|
|
15
17
|
setSearchParams(searchParams);
|
|
16
18
|
} catch (error) {
|
|
17
19
|
setFormError(error);
|
|
18
20
|
}
|
|
19
|
-
}, [
|
|
21
|
+
}, [name, searchParams, setFormError, setSearchParams]);
|
|
20
22
|
const {
|
|
21
23
|
setActiveIndex
|
|
22
24
|
} = useStep(id, {
|
|
23
25
|
onStepChange
|
|
24
26
|
});
|
|
25
|
-
const getIndex = useCallback(() => parseFloat(searchParams.get(
|
|
27
|
+
const getIndex = useCallback(() => parseFloat(searchParams.get(name)), [name, searchParams]);
|
|
26
28
|
useLayoutEffect(() => {
|
|
27
29
|
const routerIndex = getIndex();
|
|
28
30
|
if (!isNaN(routerIndex)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReactRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useReactRouter","id","
|
|
1
|
+
{"version":3,"file":"useReactRouter.js","names":["React","useCallback","useStep","useLayoutEffect","window","useEffect","useReactRouter","id","arguments","length","undefined","useSearchParams","name","setFormError","searchParams","setSearchParams","onStepChange","index","set","error","setActiveIndex","getIndex","parseFloat","get","routerIndex","isNaN","skipStepChangeCallFromHook","skipStepChangeCallBeforeMounted"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useReactRouter.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport useStep from './useStep'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useReactRouter(\n id: string = null,\n { useSearchParams }\n) {\n const name = id ? `${id}-step` : 'step'\n const { setFormError } = useStep(id)\n const [searchParams, setSearchParams] = useSearchParams()\n\n const onStepChange = useCallback(\n (index: number) => {\n try {\n searchParams.set(name, index)\n setSearchParams(searchParams)\n } catch (error) {\n setFormError(error)\n }\n },\n [name, searchParams, setFormError, setSearchParams]\n )\n\n const { setActiveIndex } = useStep(id, { onStepChange })\n\n const getIndex = useCallback(\n () => parseFloat(searchParams.get(name)),\n [name, searchParams]\n )\n\n useLayoutEffect(() => {\n const routerIndex = getIndex()\n if (!isNaN(routerIndex)) {\n setActiveIndex(routerIndex, {\n skipStepChangeCallFromHook: true,\n skipStepChangeCallBeforeMounted: true,\n })\n }\n }, [getIndex, id, searchParams, setActiveIndex, setFormError])\n\n return { getIndex }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,OAAO,MAAM,WAAW;AAG/B,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGJ,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACG,eAAe;AAEzE,eAAe,SAASG,cAAcA,CAAA,EAGpC;EAAA,IAFAC,EAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACjB;IAAEG;EAAgB,CAAC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEnB,MAAME,IAAI,GAAGL,EAAE,GAAI,GAAEA,EAAG,OAAM,GAAG,MAAM;EACvC,MAAM;IAAEM;EAAa,CAAC,GAAGX,OAAO,CAACK,EAAE,CAAC;EACpC,MAAM,CAACO,YAAY,EAAEC,eAAe,CAAC,GAAGJ,eAAe,CAAC,CAAC;EAEzD,MAAMK,YAAY,GAAGf,WAAW,CAC7BgB,KAAa,IAAK;IACjB,IAAI;MACFH,YAAY,CAACI,GAAG,CAACN,IAAI,EAAEK,KAAK,CAAC;MAC7BF,eAAe,CAACD,YAAY,CAAC;IAC/B,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdN,YAAY,CAACM,KAAK,CAAC;IACrB;EACF,CAAC,EACD,CAACP,IAAI,EAAEE,YAAY,EAAED,YAAY,EAAEE,eAAe,CACpD,CAAC;EAED,MAAM;IAAEK;EAAe,CAAC,GAAGlB,OAAO,CAACK,EAAE,EAAE;IAAES;EAAa,CAAC,CAAC;EAExD,MAAMK,QAAQ,GAAGpB,WAAW,CAC1B,MAAMqB,UAAU,CAACR,YAAY,CAACS,GAAG,CAACX,IAAI,CAAC,CAAC,EACxC,CAACA,IAAI,EAAEE,YAAY,CACrB,CAAC;EAEDX,eAAe,CAAC,MAAM;IACpB,MAAMqB,WAAW,GAAGH,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAACI,KAAK,CAACD,WAAW,CAAC,EAAE;MACvBJ,cAAc,CAACI,WAAW,EAAE;QAC1BE,0BAA0B,EAAE,IAAI;QAChCC,+BAA+B,EAAE;MACnC,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACN,QAAQ,EAAEd,EAAE,EAAEO,YAAY,EAAEM,cAAc,EAAEP,YAAY,CAAC,CAAC;EAE9D,OAAO;IAAEQ;EAAS,CAAC;AACrB"}
|
|
@@ -2,9 +2,9 @@ import { AriaAttributes } from 'react';
|
|
|
2
2
|
import { FieldProps, AdditionalEventArgs, SubmitState, Path } from '../types';
|
|
3
3
|
import { ContextState } from '../DataContext';
|
|
4
4
|
export type DataAttributes = {
|
|
5
|
-
[property: `data-${string}`]: string;
|
|
5
|
+
[property: `data-${string}`]: string | boolean | number;
|
|
6
6
|
};
|
|
7
|
-
export default function useFieldProps<Value = unknown, Props extends FieldProps<Value> = FieldProps<Value>>(
|
|
7
|
+
export default function useFieldProps<Value = unknown, Props extends FieldProps<Value> = FieldProps<Value>>(localeProps: Props): Props & FieldProps<Value> & ReturnAdditional<Value>;
|
|
8
8
|
export interface ReturnAdditional<Value> {
|
|
9
9
|
/** Documented APIs */
|
|
10
10
|
value: Value;
|
|
@@ -22,7 +22,7 @@ import useProcessManager from './useProcessManager';
|
|
|
22
22
|
import { createSharedState, useSharedState } from '../../../shared/helpers/useSharedState';
|
|
23
23
|
import { isAsync } from '../../../shared/helpers/isAsync';
|
|
24
24
|
import useTranslation from './useTranslation';
|
|
25
|
-
export default function useFieldProps(
|
|
25
|
+
export default function useFieldProps(localeProps) {
|
|
26
26
|
var _dataContext$props,
|
|
27
27
|
_dataContext$ajvInsta,
|
|
28
28
|
_localErrorRef$curren,
|
|
@@ -33,6 +33,7 @@ export default function useFieldProps(props) {
|
|
|
33
33
|
const {
|
|
34
34
|
extend
|
|
35
35
|
} = useContext(FieldPropsContext);
|
|
36
|
+
const props = extend(localeProps);
|
|
36
37
|
const {
|
|
37
38
|
path,
|
|
38
39
|
itemPath,
|
|
@@ -68,7 +69,7 @@ export default function useFieldProps(props) {
|
|
|
68
69
|
const res = required && (value === emptyValue || typeof emptyValue === 'undefined' && value === '') ? error : undefined;
|
|
69
70
|
return res;
|
|
70
71
|
}
|
|
71
|
-
} =
|
|
72
|
+
} = props;
|
|
72
73
|
const [, forceUpdate] = useReducer(() => ({}), {});
|
|
73
74
|
const {
|
|
74
75
|
startProcess
|
|
@@ -214,7 +215,6 @@ export default function useFieldProps(props) {
|
|
|
214
215
|
}
|
|
215
216
|
cb === null || cb === void 0 ? void 0 : cb();
|
|
216
217
|
}, []);
|
|
217
|
-
setPropsDataContext === null || setPropsDataContext === void 0 ? void 0 : setPropsDataContext(identifier, props);
|
|
218
218
|
const fieldStateRef = useRef();
|
|
219
219
|
const setFieldState = useCallback(state => {
|
|
220
220
|
fieldStateRef.current = state;
|
|
@@ -592,8 +592,10 @@ export default function useFieldProps(props) {
|
|
|
592
592
|
}, [addToPool, asyncBehaviorIsEnabled, handleChangeIterateContext, hasError, hideError, itemPath, iterateElementIndex, onChange, runPool, defineAsyncProcess, setEventResult, updateValue, yieldAsyncProcess]);
|
|
593
593
|
const handleFocus = useCallback(() => setHasFocus(true), [setHasFocus]);
|
|
594
594
|
const handleBlur = useCallback(() => setHasFocus(false), [setHasFocus]);
|
|
595
|
+
setPropsDataContext === null || setPropsDataContext === void 0 ? void 0 : setPropsDataContext(identifier, props);
|
|
595
596
|
useMountEffect(() => {
|
|
596
597
|
dataContext === null || dataContext === void 0 ? void 0 : dataContext.handleMountField(identifier);
|
|
598
|
+
setPropsDataContext === null || setPropsDataContext === void 0 ? void 0 : setPropsDataContext(identifier, props);
|
|
597
599
|
validateValue();
|
|
598
600
|
});
|
|
599
601
|
useUnmountEffect(() => {
|