@dnb/eufemia 10.69.0 → 10.69.1
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/global-error/GlobalError.d.ts +1 -1
- package/cjs/components/global-error/GlobalError.js +1 -1
- package/cjs/components/global-error/GlobalError.js.map +1 -1
- package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
- package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
- package/cjs/components/info-card/InfoCardDocs.js +101 -0
- package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
- package/cjs/components/tabs/Tabs.js +2 -2
- package/cjs/components/tabs/Tabs.js.map +1 -1
- package/cjs/components/upload/UploadFileList.js +2 -3
- package/cjs/components/upload/UploadFileList.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -35
- package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +104 -57
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
- package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +16 -8
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
- package/cjs/extensions/forms/hooks/useValueProps.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/component-helper.js +1 -1
- package/cjs/shared/component-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/components/global-error/GlobalError.d.ts +1 -1
- package/components/global-error/GlobalError.js +1 -1
- package/components/global-error/GlobalError.js.map +1 -1
- package/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/components/global-error/GlobalErrorDocs.js +58 -0
- package/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/components/info-card/InfoCardDocs.d.ts +3 -0
- package/components/info-card/InfoCardDocs.js +95 -0
- package/components/info-card/InfoCardDocs.js.map +1 -0
- package/components/tabs/Tabs.js +2 -2
- package/components/tabs/Tabs.js.map +1 -1
- package/components/upload/UploadFileList.js +2 -3
- package/components/upload/UploadFileList.js.map +1 -1
- package/es/components/global-error/GlobalError.d.ts +1 -1
- package/es/components/global-error/GlobalError.js +1 -1
- package/es/components/global-error/GlobalError.js.map +1 -1
- package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
- package/es/components/global-error/GlobalErrorDocs.js +58 -0
- package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
- package/es/components/info-card/InfoCardDocs.d.ts +3 -0
- package/es/components/info-card/InfoCardDocs.js +95 -0
- package/es/components/info-card/InfoCardDocs.js.map +1 -0
- package/es/components/tabs/Tabs.js +2 -2
- package/es/components/tabs/Tabs.js.map +1 -1
- package/es/components/upload/UploadFileList.js +2 -3
- package/es/components/upload/UploadFileList.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +2 -2
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +35 -34
- package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -58
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
- package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/es/extensions/forms/Wizard/Step/Step.js +64 -22
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +16 -8
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/hooks/useValueProps.js +1 -1
- package/es/extensions/forms/hooks/useValueProps.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/component-helper.js +1 -1
- package/es/shared/component-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/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 +1 -1
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +2 -2
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
- package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.js +35 -41
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
- package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
- package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
- package/extensions/forms/Form/Isolation/Isolation.js +3 -4
- package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
- package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
- package/extensions/forms/Form/Visibility/Visibility.js +1 -0
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
- package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
- package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
- package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
- package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
- package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
- package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
- package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
- package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
- package/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
- package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
- package/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -34
- package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +105 -58
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
- package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Context/types.d.ts +9 -6
- package/extensions/forms/Wizard/Context/types.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
- package/extensions/forms/Wizard/Step/Step.js +66 -22
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
- package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
- package/extensions/forms/Wizard/hooks/useStep.js +10 -18
- package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +16 -8
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/hooks/useValueProps.js +1 -1
- package/extensions/forms/hooks/useValueProps.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/component-helper.js +1 -1
- package/shared/component-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/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":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","result","count","child","_child$props","_child$type","translations","Field","Fragment","errorSummary","stateSummary","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","useId","HelpButtonInline","HelpButtonInlineContent","SubmitIndicator","createSharedState","useTranslation","FormError","useIterateItemNo","states","FieldBlock","props","_props$id","dataContext","fieldBlockContext","nestedFieldBlockContext","disableStatusSummary","id","forId","sharedData","_Object$assign","Object","assign","data","className","layout","layoutOptions","composition","label","labelProp","labelDescription","labelDescriptionInline","labelSuffix","labelSrOnly","help","asFieldset","required","info","warning","error","fieldState","disabled","width","contentWidth","labelHeight","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","infoRef","warningRef","errorRef","blockId","salt","forceUpdate","mountedFieldsRef","Map","fieldStateRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorPropRef","Boolean","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setBlockRecordNested","setBlockRecord","setFieldState","showFieldError","show","map","showInitially","statusContent","content","statesWithMessages","entries","flatMap","reduce","acc","cur","existing","find","messages","getMessagesFromError","message","undefined","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","i","arr","length","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","size","mainStyle","_lO$minWidth","_lO$maxWidth","style","lO","min","getFieldWidth","minWidth","max","maxWidth","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","hasHelp","title","Provider","value","hasErrorProp","_extends","contentId","_br","breakout","outset","parseFloat","ref","result","count","child","_child$props","_child$type","translations","Field","Fragment","errorSummary","stateSummary","key","Array","isArray","errors","Error","isValidElement","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n SubmitState,\n Identifier,\n UseFieldProps,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport HelpButtonInline, {\n HelpButtonInlineContent,\n HelpProps,\n} from '../../../components/help-button/HelpButtonInline'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\nimport { FormError } from '../utils'\nimport { useIterateItemNo } from '../Iterate/ItemNo/useIItemNo'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\n/**\n * The width of a field block\n */\nexport type CustomWidth = `${number}rem`\nexport type FieldBlockWidth =\n | false\n | 'small'\n | 'medium'\n | 'large'\n | 'stretch'\n | CustomWidth\nexport type FieldBlockHorizontalLabelWidth =\n | 'small'\n | 'medium'\n | 'large'\n | CustomWidth\nexport type FieldBlockHorizontalLabelHeight =\n | 'default'\n | 'small'\n | 'medium'\n | 'large'\n\nexport type SharedFieldBlockProps = {\n /**\n * The layout of the field block\n */\n layout?: 'vertical' | 'horizontal'\n /** Use this to set additional options for the layout */\n layoutOptions?: {\n width?: FieldBlockHorizontalLabelWidth\n minWidth?: FieldBlockHorizontalLabelWidth\n maxWidth?: FieldBlockHorizontalLabelWidth\n }\n /**\n * Main label text for the field\n */\n label?: React.ReactNode\n /**\n * Will append an additional text to the label, like \"(optional)\" or \"(recommended)\"\n */\n labelSuffix?: React.ReactNode\n /**\n * A more discreet text displayed beside the label\n */\n labelDescription?: React.ReactNode\n /**\n * If true, the labelDescription will be displayed on the same line as the label.\n */\n labelDescriptionInline?: boolean\n /**\n * Width of outer block element\n */\n width?: FieldBlockWidth\n /**\n * Width of contents block, while label etc can be wider if space is available\n */\n contentWidth?: FieldBlockWidth\n /**\n * Provide help content for the field.\n */\n help?: HelpProps\n}\n\nexport type Props<Value = unknown> = SharedFieldBlockProps &\n Pick<\n FieldProps<Value>,\n keyof ComponentProps | 'info' | 'warning' | 'error' | 'disabled'\n > & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** Defines the height of an component (size prop), so the label can be aligned correctly */\n labelHeight?: FieldBlockHorizontalLabelHeight\n /** Disable the error summary for this field block */\n disableStatusSummary?: boolean\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n } & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock<Value = unknown>(props: Props<Value>) {\n const dataContext = useContext(DataContext)\n const fieldBlockContext = useContext(FieldBlockContext)\n const nestedFieldBlockContext = !fieldBlockContext?.disableStatusSummary\n ? fieldBlockContext\n : null\n\n const id = useId(props.id ?? props.forId)\n const sharedData = createSharedState<Props>('field-block-props-' + id)\n const {\n className,\n forId,\n layout = 'vertical',\n layoutOptions,\n composition,\n label: labelProp,\n labelDescription,\n labelDescriptionInline,\n labelSuffix,\n labelSrOnly,\n help,\n asFieldset,\n required,\n info,\n warning,\n error,\n disableStatusSummary,\n fieldState,\n disabled,\n width,\n contentWidth,\n labelHeight,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const infoRef = useRef<UseFieldProps['info']>()\n const warningRef = useRef<UseFieldProps['warning']>()\n const errorRef = useRef<UseFieldProps['error']>()\n\n const blockId = useId(props.id)\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>(new Map())\n const fieldStateRef = useRef<SubmitState>(null)\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorPropRef = useRef(Boolean(error))\n\n const label = useIterateItemNo({\n label: labelProp,\n labelSuffix,\n required,\n })\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setBlockRecordNested = nestedFieldBlockContext?.setBlockRecord\n const setBlockRecord = useCallback(\n (props: StateBasis) => {\n if (setBlockRecordNested) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n setBlockRecordNested(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [setBlockRecordNested, setInternalRecord]\n )\n\n const setFieldState = useCallback(\n (identifier: Identifier, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current) {\n fieldStateRef.current = fieldState\n\n forceUpdate()\n }\n },\n []\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof error !== 'undefined' || (errorRef.current && !error)) {\n errorRef.current = error\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorPropRef.current,\n type: 'error',\n content: error,\n })\n }\n\n if (typeof warning !== 'undefined' || warningRef.current !== warning) {\n warningRef.current = warning\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined' || infoRef.current !== info) {\n infoRef.current = info\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const messages = getMessagesFromError(cur).map((message) => {\n return {\n ...cur,\n message,\n }\n })\n\n if (existing) {\n existing.messages.push(...messages)\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages,\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n children: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, salt) as StatusContent\n }, [\n error,\n warning,\n info,\n salt,\n setInternalRecord,\n blockId,\n props.id,\n forId,\n label,\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(error))\n }\n }, [error, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = new Map()\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n contentWidth &&\n `dnb-forms-field-block--content-width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n labelHeight && `dnb-forms-field-block--label-height-${labelHeight}`,\n composition && 'dnb-forms-field-block__composition',\n composition &&\n `dnb-forms-field-block__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n id: `${id}-label`,\n className: 'dnb-forms-field-block__label',\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: 0, // Use CSS for spacing, but we need to reset space for doing so\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n const style: React.CSSProperties = {}\n\n if (hasCustomWidth) {\n style['--dnb-forms-field-block-width'] = width\n }\n\n if (hasCustomContentWidth) {\n style['--dnb-forms-field-block-content-width'] = contentWidth\n }\n\n const lO = layoutOptions || {}\n const min = getFieldWidth(lO.minWidth ?? lO.width)\n const max = getFieldWidth(lO.maxWidth ?? lO.width)\n\n if (typeof min === 'string') {\n style['--dnb-forms-field-block-layout-width-min'] = min\n }\n if (typeof max === 'string') {\n style['--dnb-forms-field-block-layout-width-max'] = max\n }\n\n return style\n }, [\n contentWidth,\n hasCustomContentWidth,\n hasCustomWidth,\n layoutOptions,\n width,\n ])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n const hasHelp = help?.title || help?.content\n\n return (\n <FieldBlockContext.Provider\n value={{\n setBlockRecord,\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(error),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n disableStatusSummary,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {(label || labelDescription || hasHelp) && (\n <FormLabel {...labelProps}>\n <span>\n {label && (\n <span className=\"dnb-forms-field-block__label__content\">\n {label}\n </span>\n )}\n\n {hasHelp && (\n <HelpButtonInline contentId={`${id}-help`} help={help} />\n )}\n\n {hasLabelDescription && !labelDescriptionInline && <br />}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label__description\">\n {labelDescription}\n </span>\n )}\n </span>\n </FormLabel>\n )}\n\n {hasHelp && (\n <HelpButtonInlineContent\n contentId={`${id}-help`}\n className=\"dnb-forms-field-block__help\"\n help={help}\n breakout={\n layout === 'vertical' &&\n !nestedFieldBlockContext?.composition\n }\n outset={layout !== 'horizontal'}\n />\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__status',\n\n // Handle the width of the status messages\n contentWidth &&\n contentWidth !== 'small' &&\n contentWidth !== 'medium' &&\n !(parseFloat(contentWidth) <= 11) &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`\n )}\n >\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n\n <SubmitIndicator\n state={fieldState ?? fieldStateRef.current}\n className=\"dnb-forms-field-block__indicator dnb-forms-submit-indicator--inline-wrap\"\n />\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nexport function getMessagesFromError(\n item: Partial<StateWithMessage>\n): Array<StateMessage> {\n const { content } = item\n\n if (content instanceof FormError && Array.isArray(content.errors)) {\n return content.errors.map((error) => {\n return error.message\n })\n }\n\n if (Array.isArray(content)) {\n return content.map((content) => {\n return content instanceof FormError || content instanceof Error\n ? content.message\n : content\n })\n }\n\n if (content instanceof FormError || content instanceof Error) {\n return [content.message as StateMessage]\n }\n\n return [\n ((React.isValidElement(content) ? content : content?.toString()) ||\n content) as StateMessage,\n ]\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n\nfunction getFieldWidth(width: FieldBlockHorizontalLabelWidth) {\n switch (width) {\n case 'small':\n return 'var(--forms-field-width--small)'\n case 'medium':\n return 'var(--forms-field-width--medium)'\n case 'large':\n return 'var(--forms-field-width--large)'\n }\n\n return width\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { FieldProps, Identifier, SubmitState } from '../types';
|
|
3
3
|
export type FieldErrorIdsRef = Record<StateTypes, string>;
|
|
4
|
-
export type MountedFieldsRef =
|
|
4
|
+
export type MountedFieldsRef = Map<Identifier, boolean>;
|
|
5
5
|
export type StateTypes = 'error' | 'warning' | 'info';
|
|
6
6
|
export type StateContent = FieldProps<unknown>['error'] | FieldProps<unknown>['warning'] | FieldProps<unknown>['info'];
|
|
7
7
|
export type StateBasis = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldBlockContext.js","names":["React","FieldBlockContext","createContext","undefined"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockContext.ts"],"sourcesContent":["import React from 'react'\nimport type { FieldProps, Identifier, SubmitState } from '../types'\n\nexport type FieldErrorIdsRef = Record<StateTypes, string>\nexport type MountedFieldsRef =
|
|
1
|
+
{"version":3,"file":"FieldBlockContext.js","names":["React","FieldBlockContext","createContext","undefined"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockContext.ts"],"sourcesContent":["import React from 'react'\nimport type { FieldProps, Identifier, SubmitState } from '../types'\n\nexport type FieldErrorIdsRef = Record<StateTypes, string>\nexport type MountedFieldsRef = Map<Identifier, boolean>\nexport type StateTypes = 'error' | 'warning' | 'info'\nexport type StateContent =\n | FieldProps<unknown>['error']\n | FieldProps<unknown>['warning']\n | FieldProps<unknown>['info']\nexport type StateBasis = {\n identifier: Identifier\n type: StateTypes\n content: StateContent\n stateId?: string\n showInitially?: boolean\n show?: boolean\n}\nexport type StateRecord = Record<\n Identifier,\n Array<Omit<StateBasis, 'identifier'>>\n>\nexport type StateMessage = string\nexport type StateWithMessage = StateBasis & {\n message: StateMessage\n}\nexport type StatesWithMessages = StateBasis & {\n messages: Array<StateWithMessage>\n}\nexport type StatusContentState = { id: string; text: React.ReactNode }\nexport type StatusContent = {\n error: StatusContentState\n warning: StatusContentState\n info: StatusContentState\n}\n\nexport type FieldBlockContextProps = {\n setBlockRecord?: ({\n identifier,\n type,\n stateId,\n content,\n showInitially,\n show,\n }: StateBasis) => void\n setFieldState?: (identifier: Identifier, fieldState: SubmitState) => void\n showFieldError?: (identifier: Identifier, showError: boolean) => void\n hasErrorProp?: boolean\n composition?: true\n disableStatusSummary?: boolean\n fieldStateIdsRef?: React.MutableRefObject<FieldErrorIdsRef>\n mountedFieldsRef?: React.MutableRefObject<MountedFieldsRef>\n}\n\nconst FieldBlockContext = React.createContext<\n FieldBlockContextProps | undefined\n>(undefined)\n\nexport default FieldBlockContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAsDzB,MAAMC,iBAAiB,GAAGD,KAAK,CAACE,aAAa,CAE3CC,SAAS,CAAC;AAEZ,eAAeF,iBAAiB","ignoreList":[]}
|
|
@@ -56,14 +56,13 @@ function IsolationProvider(props) {
|
|
|
56
56
|
return pathSection && pointer.has(data, pathSection) ? pointer.get(data, pathSection) : data;
|
|
57
57
|
}, [pathSection]);
|
|
58
58
|
const getMountedData = useCallback(data => {
|
|
59
|
+
var _dataContextRef$curre;
|
|
59
60
|
const mounterData = {};
|
|
60
|
-
|
|
61
|
-
var _dataContextRef$curre;
|
|
62
|
-
const field = dataContextRef.current.mountedFieldsRef.current[path];
|
|
61
|
+
(_dataContextRef$curre = dataContextRef.current) === null || _dataContextRef$curre === void 0 ? void 0 : _dataContextRef$curre.mountedFieldsRef.current.forEach((field, path) => {
|
|
63
62
|
if (field.isMounted && pointer.has(data, path)) {
|
|
64
63
|
pointer.set(mounterData, path, pointer.get(data, path));
|
|
65
64
|
}
|
|
66
|
-
}
|
|
65
|
+
});
|
|
67
66
|
return mounterData;
|
|
68
67
|
}, []);
|
|
69
68
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useId","useDataValue","Context","DataContext","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","_outerContext$addSetS","_outerContext$addSetS2","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","mounterData","_dataContextRef$curre","mountedFieldsRef","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","setShowAllErrorsNested","showAllErrors","_dataContextRef$curre2","_dataContextRef$curre3","setShowAllErrors","call","addSetShowAllErrorsRef","includes","_outerContext$addSetS3","push","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","BubbleValidation","setMountedFieldState","setFieldError","errors","hasErrors","id","Error","undefined","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data extends JsonObject> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => JsonObject\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data extends JsonObject> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n // Depending on the usage, we can get a path like so: \"/pushContainerItems/0/somePath\"\n // where \"somePath\" is a frozen object. In order to still be able to modify it,\n // pointer.set will unfreeze the object and then modify it. (Object.isFrozen(obj[tok]))\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n for (const path in dataContextRef.current?.mountedFieldsRef.current) {\n const field = dataContextRef.current.mountedFieldsRef.current[path]\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const setShowAllErrorsNested = useCallback((showAllErrors: boolean) => {\n dataContextRef.current?.setShowAllErrors?.(showAllErrors)\n }, [])\n\n if (\n bubbleValidation &&\n !outerContext?.addSetShowAllErrorsRef?.current?.includes(\n setShowAllErrorsNested\n )\n ) {\n outerContext.addSetShowAllErrorsRef?.current.push(\n setShowAllErrorsNested\n )\n }\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && (\n <BubbleValidation outerContext={outerContext} />\n )}\n </Provider>\n )\n}\n\nfunction BubbleValidation({\n outerContext,\n}: {\n outerContext: ContextState\n}) {\n const { setMountedFieldState, setFieldError } = outerContext || {}\n const errors = useContext(DataContext).hasErrors()\n\n const id = useId()\n useEffect(() => {\n const path = `/${id}`\n\n if (errors) {\n setMountedFieldState?.(path, {\n isMounted: true,\n })\n }\n\n setFieldError?.(path, errors ? new Error('Form.Isolation') : undefined)\n\n return () => {\n setFieldError?.(path, undefined)\n setMountedFieldState?.(path, {\n isMounted: false,\n })\n }\n }, [errors, id, setFieldError, setMountedFieldState])\n\n return null\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useId","useDataValue","Context","DataContext","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","_outerContext$addSetS","_outerContext$addSetS2","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","_dataContextRef$curre","mounterData","mountedFieldsRef","forEach","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","setShowAllErrorsNested","showAllErrors","_dataContextRef$curre2","_dataContextRef$curre3","setShowAllErrors","call","addSetShowAllErrorsRef","includes","_outerContext$addSetS3","push","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","BubbleValidation","setMountedFieldState","setFieldError","errors","hasErrors","id","Error","undefined","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\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\nexport type IsolationProviderProps<Data extends JsonObject> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (isolatedData: Data, handlerData: Data) => JsonObject\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data extends JsonObject> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n // Depending on the usage, we can get a path like so: \"/pushContainerItems/0/somePath\"\n // where \"somePath\" is a frozen object. In order to still be able to modify it,\n // pointer.set will unfreeze the object and then modify it. (Object.isFrozen(obj[tok]))\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n dataContextRef.current?.mountedFieldsRef.current.forEach(\n (field, path) => {\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n )\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const setShowAllErrorsNested = useCallback((showAllErrors: boolean) => {\n dataContextRef.current?.setShowAllErrors?.(showAllErrors)\n }, [])\n\n if (\n bubbleValidation &&\n !outerContext?.addSetShowAllErrorsRef?.current?.includes(\n setShowAllErrorsNested\n )\n ) {\n outerContext.addSetShowAllErrorsRef?.current.push(\n setShowAllErrorsNested\n )\n }\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && (\n <BubbleValidation outerContext={outerContext} />\n )}\n </Provider>\n )\n}\n\nfunction BubbleValidation({\n outerContext,\n}: {\n outerContext: ContextState\n}) {\n const { setMountedFieldState, setFieldError } = outerContext || {}\n const errors = useContext(DataContext).hasErrors()\n\n const id = useId()\n useEffect(() => {\n const path = `/${id}`\n\n if (errors) {\n setMountedFieldState?.(path, {\n isMounted: true,\n })\n }\n\n setFieldError?.(path, errors ? new Error('Form.Isolation') : undefined)\n\n return () => {\n setFieldError?.(path, undefined)\n setMountedFieldState?.(path, {\n isMounted: false,\n })\n }\n }, [errors, id, setFieldError, setMountedFieldState])\n\n return null\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -64,19 +64,10 @@ export type Props = {
|
|
|
64
64
|
inferData?: (data: unknown) => boolean;
|
|
65
65
|
/** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */
|
|
66
66
|
filterData?: FilterData;
|
|
67
|
-
/** Animate the visibility change */
|
|
68
|
-
animate?: boolean;
|
|
69
|
-
/** Keep the content in the DOM, even if it's not visible */
|
|
70
|
-
keepInDOM?: boolean;
|
|
71
67
|
/** Callback for when the content gets visible. */
|
|
72
68
|
onVisible?: HeightAnimationAllProps['onOpen'];
|
|
73
|
-
/** Callback for when animation has ended */
|
|
74
|
-
onAnimationEnd?: HeightAnimationAllProps['onAnimationEnd'];
|
|
75
|
-
/** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */
|
|
76
|
-
compensateForGap?: HeightAnimationAllProps['compensateForGap'];
|
|
77
69
|
/** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */
|
|
78
70
|
fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes;
|
|
79
|
-
element?: HeightAnimationAllProps['element'];
|
|
80
71
|
children: React.ReactNode;
|
|
81
72
|
/** For internal use only. Used by "Iterate.Visibility" */
|
|
82
73
|
withinIterate?: boolean;
|
|
@@ -84,7 +75,7 @@ export type Props = {
|
|
|
84
75
|
pathValue?: string;
|
|
85
76
|
/** @deprecated Use `visibleWhen` instead */
|
|
86
77
|
whenValue?: unknown;
|
|
87
|
-
}
|
|
78
|
+
} & Pick<HeightAnimationAllProps, 'onAnimationEnd' | 'animate' | 'keepInDOM' | 'element' | 'compensateForGap'>;
|
|
88
79
|
declare function Visibility(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
89
80
|
declare namespace Visibility {
|
|
90
81
|
var _supportsSpacingProps: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","names":["React","useCallback","useContext","warn","useMountEffect","useMounted","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","SummaryListContext","Visibility","props","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","onVisible","onAnimationEnd","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","withinIterate","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","mountedRef","onOpen","state","current","summaryListContext","providerProps","isNested","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useCallback, useContext } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useMounted from '../../../../shared/helpers/useMounted'\nimport HeightAnimation, {\n HeightAnimationAllProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\nimport VisibilityContext from './VisibilityContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** Callback for when the content gets visible. */\n onVisible?: HeightAnimationAllProps['onOpen']\n /** Callback for when animation has ended */\n onAnimationEnd?: HeightAnimationAllProps['onAnimationEnd']\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationAllProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationAllProps['element']\n children: React.ReactNode\n\n /** For internal use only. Used by \"Iterate.Visibility\" */\n withinIterate?: boolean\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility(props: Props) {\n const {\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n onVisible,\n onAnimationEnd,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n withinIterate,\n children,\n ...rest\n } = props\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n withinIterate,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n props,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n const mountedRef = useMounted()\n\n const onOpen: HeightAnimationAllProps['onOpen'] = useCallback(\n (state) => {\n if (mountedRef.current) {\n onVisible?.(state)\n }\n },\n [mountedRef, onVisible]\n )\n\n const summaryListContext = useContext(SummaryListContext)\n const providerProps = !open ? fieldPropsWhenHidden : null\n\n if (\n (animate || keepInDOM) &&\n summaryListContext &&\n !summaryListContext.isNested\n ) {\n // Handle the animation inside the SummaryList\n return <FieldProvider {...providerProps}>{content}</FieldProvider>\n }\n\n if (animate) {\n return (\n <HeightAnimation\n open={open}\n onAnimationEnd={onAnimationEnd}\n onOpen={onOpen}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (mountedRef.current) {\n onVisible?.(open)\n }\n\n if (keepInDOM) {\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Visibility.js","names":["React","useCallback","useContext","warn","useMountEffect","useMounted","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","SummaryListContext","Visibility","props","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","onVisible","onAnimationEnd","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","withinIterate","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","mountedRef","onOpen","state","current","summaryListContext","providerProps","isNested","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useCallback, useContext } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useMounted from '../../../../shared/helpers/useMounted'\nimport HeightAnimation, {\n HeightAnimationAllProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\nimport VisibilityContext from './VisibilityContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Callback for when the content gets visible. */\n onVisible?: HeightAnimationAllProps['onOpen']\n\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n children: React.ReactNode\n\n /** For internal use only. Used by \"Iterate.Visibility\" */\n withinIterate?: boolean\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n} & Pick<\n HeightAnimationAllProps,\n | 'onAnimationEnd'\n | 'animate'\n | 'keepInDOM'\n | 'element'\n | 'compensateForGap'\n>\n\nfunction Visibility(props: Props) {\n const {\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n onVisible,\n onAnimationEnd,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n withinIterate,\n children,\n ...rest\n } = props\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n withinIterate,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n keepInDOM,\n props, // Used by ValueBlock and for when nested in a Visibility\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n const mountedRef = useMounted()\n\n const onOpen: HeightAnimationAllProps['onOpen'] = useCallback(\n (state) => {\n if (mountedRef.current) {\n onVisible?.(state)\n }\n },\n [mountedRef, onVisible]\n )\n\n const summaryListContext = useContext(SummaryListContext)\n const providerProps = !open ? fieldPropsWhenHidden : null\n\n if (\n (animate || keepInDOM) &&\n summaryListContext &&\n !summaryListContext.isNested\n ) {\n // Handle the animation inside the SummaryList\n return <FieldProvider {...providerProps}>{content}</FieldProvider>\n }\n\n if (animate) {\n return (\n <HeightAnimation\n open={open}\n onAnimationEnd={onAnimationEnd}\n onOpen={onOpen}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (mountedRef.current) {\n onVisible?.(open)\n }\n\n if (keepInDOM) {\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Props } from './Visibility';
|
|
3
3
|
type VisibilityContext = {
|
|
4
|
+
isVisible: boolean;
|
|
5
|
+
keepInDOM: boolean;
|
|
4
6
|
inheritVisibility?: boolean;
|
|
5
|
-
isVisible?: boolean;
|
|
6
7
|
props?: Props;
|
|
7
8
|
};
|
|
8
9
|
declare const VisibilityContext: import("react").Context<VisibilityContext>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisibilityContext.js","names":["createContext","VisibilityContext"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityContext.ts"],"sourcesContent":["import { createContext } from 'react'\nimport { Props } from './Visibility'\n\ntype VisibilityContext = {\n
|
|
1
|
+
{"version":3,"file":"VisibilityContext.js","names":["createContext","VisibilityContext"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityContext.ts"],"sourcesContent":["import { createContext } from 'react'\nimport { Props } from './Visibility'\n\ntype VisibilityContext = {\n isVisible: boolean\n keepInDOM: boolean\n inheritVisibility?: boolean\n props?: Props\n}\n\nconst VisibilityContext = createContext<VisibilityContext>(null)\n\nexport default VisibilityContext\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAUrC,MAAMC,iBAAiB,GAAGD,aAAa,CAAoB,IAAI,CAAC;AAEhE,eAAeC,iBAAiB","ignoreList":[]}
|
|
@@ -51,7 +51,7 @@ export default function useVisibility(props) {
|
|
|
51
51
|
}
|
|
52
52
|
const path = 'itemPath' in visibleWhen ? makeIteratePath(visibleWhen.itemPath) : makePath(visibleWhen.path);
|
|
53
53
|
if ('isValid' in visibleWhen) {
|
|
54
|
-
const item = mountedFieldsRef.current
|
|
54
|
+
const item = mountedFieldsRef.current.get(path);
|
|
55
55
|
if (!item || item.isMounted !== true) {
|
|
56
56
|
return visibleWhenNot ? true : false;
|
|
57
57
|
}
|
|
@@ -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","itemPath","item","isMounted","result","continuousValidation","validateContinuously","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","
|
|
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","itemPath","item","get","isMounted","result","continuousValidation","validateContinuously","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","console","warn","hasValue","getValue","undefined","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.get(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":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HeightAnimationProps } from '../../../../components/HeightAnimation';
|
|
1
2
|
import { Props as FlexContainerProps } from '../../../../components/flex/Container';
|
|
2
3
|
import { ContainerMode } from './types';
|
|
3
4
|
export type ArrayItemAreaProps = {
|
|
@@ -13,8 +14,8 @@ export type Props = {
|
|
|
13
14
|
open?: boolean | undefined;
|
|
14
15
|
ariaLabel?: string;
|
|
15
16
|
openDelay?: number;
|
|
16
|
-
} & ArrayItemAreaProps
|
|
17
|
-
declare function ArrayItemArea(props: Props & FlexContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
} & ArrayItemAreaProps & Pick<HeightAnimationProps, 'onAnimationEnd'>;
|
|
18
|
+
declare function ArrayItemArea(props: Props & Omit<FlexContainerProps, 'onAnimationEnd'>): import("react/jsx-runtime").JSX.Element;
|
|
18
19
|
declare namespace ArrayItemArea {
|
|
19
20
|
var _supportsSpacingProps: boolean;
|
|
20
21
|
}
|