@dnb/eufemia 10.31.0 → 10.32.0
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 +34 -0
- package/cjs/components/anchor/Anchor.d.ts +8 -1
- package/cjs/components/anchor/Anchor.js.map +1 -1
- package/cjs/components/card/Card.js +3 -2
- package/cjs/components/card/Card.js.map +1 -1
- package/cjs/components/card/style/dnb-card.css +1 -2
- package/cjs/components/card/style/dnb-card.min.css +1 -1
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/cjs/components/checkbox/style/dnb-checkbox.css +2 -2
- package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/cjs/components/checkbox/style/dnb-checkbox.scss +2 -3
- package/cjs/components/flex/Container.d.ts +4 -1
- package/cjs/components/flex/Container.js +10 -7
- package/cjs/components/flex/Container.js.map +1 -1
- package/cjs/components/flex/Stack.js +3 -3
- package/cjs/components/flex/Stack.js.map +1 -1
- package/cjs/components/flex/utils.js +7 -7
- package/cjs/components/flex/utils.js.map +1 -1
- package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
- package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/cjs/components/space/SpacingUtils.d.ts +1 -1
- package/cjs/components/space/SpacingUtils.js +1 -1
- package/cjs/components/space/SpacingUtils.js.map +1 -1
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/cjs/components/table/style/dnb-table.css +5 -10
- package/cjs/components/table/style/dnb-table.min.css +1 -1
- package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +19 -9
- package/cjs/extensions/forms/DataContext/Context.js +2 -2
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +68 -32
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/cjs/extensions/forms/Field/Number/Number.js +3 -1
- package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -0
- package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/cjs/extensions/forms/Form/Element/Element.js +1 -1
- package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +100 -0
- package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/cjs/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/Tools/index.js +14 -0
- package/cjs/extensions/forms/Form/Tools/index.js.map +1 -0
- package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/cjs/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +2 -2
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
- package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/cjs/extensions/forms/Form/index.d.ts +1 -0
- package/cjs/extensions/forms/Form/index.js +5 -0
- package/cjs/extensions/forms/Form/index.js.map +1 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Step/Step.d.ts +6 -1
- package/cjs/extensions/forms/Wizard/Step/Step.js +9 -5
- package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/cjs/extensions/forms/hooks/useFieldProps.js +70 -31
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +4 -5
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/extensions/forms/types.d.ts +4 -0
- package/cjs/extensions/forms/types.js.map +1 -1
- package/cjs/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/cjs/fragments/drawer-list/DrawerListHelpers.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/MediaQuery.js +19 -1
- package/cjs/shared/MediaQuery.js.map +1 -1
- package/cjs/shared/MediaQueryUtils.d.ts +12 -34
- package/cjs/shared/MediaQueryUtils.js +22 -12
- package/cjs/shared/MediaQueryUtils.js.map +1 -1
- package/cjs/shared/component-helper.d.ts +1 -1
- package/cjs/shared/component-helper.js +5 -1
- package/cjs/shared/component-helper.js.map +1 -1
- package/cjs/shared/useMedia.d.ts +7 -2
- package/cjs/shared/useMedia.js +16 -11
- package/cjs/shared/useMedia.js.map +1 -1
- package/cjs/shared/useMediaQuery.js +30 -9
- package/cjs/shared/useMediaQuery.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +2 -3
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +17 -29
- package/cjs/style/dnb-ui-components.min.css +3 -3
- package/cjs/style/dnb-ui-core.css +2 -3
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +4 -5
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +4 -5
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-components.css +26 -36
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/components/anchor/Anchor.d.ts +8 -1
- package/components/anchor/Anchor.js.map +1 -1
- package/components/card/Card.js +3 -2
- package/components/card/Card.js.map +1 -1
- package/components/card/style/dnb-card.css +1 -2
- package/components/card/style/dnb-card.min.css +1 -1
- package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/components/checkbox/style/dnb-checkbox.css +2 -2
- package/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/components/checkbox/style/dnb-checkbox.scss +2 -3
- package/components/flex/Container.d.ts +4 -1
- package/components/flex/Container.js +10 -7
- package/components/flex/Container.js.map +1 -1
- package/components/flex/Stack.js +3 -3
- package/components/flex/Stack.js.map +1 -1
- package/components/flex/utils.js +8 -8
- package/components/flex/utils.js.map +1 -1
- package/components/skeleton/style/dnb-skeleton.css +4 -8
- package/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/components/space/SpacingUtils.d.ts +1 -1
- package/components/space/SpacingUtils.js +1 -1
- package/components/space/SpacingUtils.js.map +1 -1
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/components/table/style/dnb-table.css +5 -10
- package/components/table/style/dnb-table.min.css +1 -1
- package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/es/components/anchor/Anchor.d.ts +8 -1
- package/es/components/anchor/Anchor.js.map +1 -1
- package/es/components/card/Card.js +3 -2
- package/es/components/card/Card.js.map +1 -1
- package/es/components/card/style/dnb-card.css +1 -2
- package/es/components/card/style/dnb-card.min.css +1 -1
- package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
- package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
- package/es/components/checkbox/style/dnb-checkbox.css +2 -2
- package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
- package/es/components/checkbox/style/dnb-checkbox.scss +2 -3
- package/es/components/flex/Container.d.ts +4 -1
- package/es/components/flex/Container.js +10 -7
- package/es/components/flex/Container.js.map +1 -1
- package/es/components/flex/Stack.js +3 -3
- package/es/components/flex/Stack.js.map +1 -1
- package/es/components/flex/utils.js +8 -8
- package/es/components/flex/utils.js.map +1 -1
- package/es/components/skeleton/style/dnb-skeleton.css +4 -8
- package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
- package/es/components/space/SpacingUtils.d.ts +1 -1
- package/es/components/space/SpacingUtils.js +1 -1
- package/es/components/space/SpacingUtils.js.map +1 -1
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
- package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
- package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
- package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
- package/es/components/table/style/dnb-table.css +5 -10
- package/es/components/table/style/dnb-table.min.css +1 -1
- package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
- package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +19 -9
- package/es/extensions/forms/DataContext/Context.js +2 -2
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/es/extensions/forms/DataContext/Provider/Provider.js +65 -30
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/es/extensions/forms/Field/Number/Number.js +3 -1
- package/es/extensions/forms/Field/Number/Number.js.map +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -0
- package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/es/extensions/forms/Form/Element/Element.js +1 -1
- package/es/extensions/forms/Form/Element/Element.js.map +1 -1
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/es/extensions/forms/Form/Tools/GenerateSchema.js +89 -0
- package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/es/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/es/extensions/forms/Form/Tools/index.js +1 -0
- package/es/extensions/forms/Form/Tools/index.js.map +1 -0
- package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/es/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +1 -2
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/es/extensions/forms/Form/data-context/useError.js +5 -3
- package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/es/extensions/forms/Form/index.d.ts +1 -0
- package/es/extensions/forms/Form/index.js +1 -0
- package/es/extensions/forms/Form/index.js.map +1 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +98 -32
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/es/extensions/forms/Wizard/Step/Step.d.ts +6 -1
- package/es/extensions/forms/Wizard/Step/Step.js +9 -5
- package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/es/extensions/forms/hooks/useFieldProps.js +67 -28
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +4 -5
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/extensions/forms/types.d.ts +4 -0
- package/es/extensions/forms/types.js.map +1 -1
- package/es/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/es/fragments/drawer-list/DrawerListHelpers.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/MediaQuery.js +19 -1
- package/es/shared/MediaQuery.js.map +1 -1
- package/es/shared/MediaQueryUtils.d.ts +12 -34
- package/es/shared/MediaQueryUtils.js +22 -17
- package/es/shared/MediaQueryUtils.js.map +1 -1
- package/es/shared/component-helper.d.ts +1 -1
- package/es/shared/component-helper.js +5 -2
- package/es/shared/component-helper.js.map +1 -1
- package/es/shared/useMedia.d.ts +7 -2
- package/es/shared/useMedia.js +14 -11
- package/es/shared/useMedia.js.map +1 -1
- package/es/shared/useMediaQuery.js +28 -9
- package/es/shared/useMediaQuery.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +2 -3
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +17 -29
- package/es/style/dnb-ui-components.min.css +3 -3
- package/es/style/dnb-ui-core.css +2 -3
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +4 -5
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +4 -5
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-components.css +26 -36
- package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/es/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +19 -9
- package/extensions/forms/DataContext/Context.js +2 -2
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
- package/extensions/forms/DataContext/Provider/Provider.js +68 -32
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Field/Boolean/Boolean.js +2 -1
- package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
- package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
- package/extensions/forms/Field/Number/Number.js +3 -1
- package/extensions/forms/Field/Number/Number.js.map +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
- package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
- package/extensions/forms/FieldBlock/FieldBlock.js +5 -0
- package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
- package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
- package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
- package/extensions/forms/Form/Element/Element.js +1 -1
- package/extensions/forms/Form/Element/Element.js.map +1 -1
- package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
- package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
- package/extensions/forms/Form/Tools/GenerateSchema.js +90 -0
- package/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
- package/extensions/forms/Form/Tools/index.d.ts +1 -0
- package/extensions/forms/Form/Tools/index.js +1 -0
- package/extensions/forms/Form/Tools/index.js.map +1 -0
- package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
- package/extensions/forms/Form/Visibility/Visibility.js +41 -10
- package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
- package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
- package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.d.ts +1 -1
- package/extensions/forms/Form/data-context/useData.js +2 -2
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useError.d.ts +1 -0
- package/extensions/forms/Form/data-context/useError.js +5 -3
- package/extensions/forms/Form/data-context/useError.js.map +1 -1
- package/extensions/forms/Form/index.d.ts +1 -0
- package/extensions/forms/Form/index.js +2 -0
- package/extensions/forms/Form/index.js.map +1 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
- package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
- package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
- package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
- package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
- package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
- package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
- package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
- package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
- package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
- package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
- package/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
- package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
- package/extensions/forms/Wizard/Step/Step.d.ts +6 -1
- package/extensions/forms/Wizard/Step/Step.js +9 -5
- package/extensions/forms/Wizard/Step/Step.js.map +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
- package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
- package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
- package/extensions/forms/hooks/useFieldProps.js +70 -31
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +4 -5
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/extensions/forms/types.d.ts +4 -0
- package/extensions/forms/types.js.map +1 -1
- package/fragments/drawer-list/DrawerListHelpers.js +5 -2
- package/fragments/drawer-list/DrawerListHelpers.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/MediaQuery.js +19 -1
- package/shared/MediaQuery.js.map +1 -1
- package/shared/MediaQueryUtils.d.ts +12 -34
- package/shared/MediaQueryUtils.js +22 -12
- package/shared/MediaQueryUtils.js.map +1 -1
- package/shared/component-helper.d.ts +1 -1
- package/shared/component-helper.js +5 -1
- package/shared/component-helper.js.map +1 -1
- package/shared/useMedia.d.ts +7 -2
- package/shared/useMedia.js +14 -11
- package/shared/useMedia.js.map +1 -1
- package/shared/useMediaQuery.js +28 -9
- package/shared/useMediaQuery.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +2 -3
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +17 -29
- package/style/dnb-ui-components.min.css +3 -3
- package/style/dnb-ui-core.css +2 -3
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +4 -5
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +4 -5
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
- package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
- package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
- package/style/themes/theme-ui/ui-theme-components.css +26 -36
- package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
- package/style/themes/theme-ui/ui-theme-extensions.css +8 -5
- package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
- package/style/themes/theme-ui/ui-theme-forms.css +8 -5
- package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
- package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
+
import { useContext } from 'react';
|
|
7
|
+
import pointer from 'json-pointer';
|
|
8
|
+
import DataContext from '../../DataContext/Context';
|
|
9
|
+
export const schemaParams = ['minLength', 'maxLength', 'pattern', 'description', 'min', 'max', 'multipleOf', 'exclusiveMinimum', 'exclusiveMaximum'];
|
|
10
|
+
export default function GenerateSchema(props) {
|
|
11
|
+
const {
|
|
12
|
+
generateRef,
|
|
13
|
+
children
|
|
14
|
+
} = props;
|
|
15
|
+
const {
|
|
16
|
+
fieldPropsRef,
|
|
17
|
+
data
|
|
18
|
+
} = useContext(DataContext);
|
|
19
|
+
if (generateRef) {
|
|
20
|
+
generateRef.current = () => {
|
|
21
|
+
const schema = Object.entries(fieldPropsRef.current).reduce((acc, [path, props]) => {
|
|
22
|
+
if (path.startsWith('/')) {
|
|
23
|
+
const objectKey = path.substring(1);
|
|
24
|
+
const pathList = objectKey.split('/');
|
|
25
|
+
const slashCount = pathList.length;
|
|
26
|
+
const type = props.valueType || 'string';
|
|
27
|
+
const propertyValue = {
|
|
28
|
+
type
|
|
29
|
+
};
|
|
30
|
+
for (const prop of schemaParams) {
|
|
31
|
+
if (props[prop]) {
|
|
32
|
+
propertyValue[prop] = props[prop];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (Object.hasOwnProperty.call(props, 'value')) {
|
|
36
|
+
pointer.set(data, path, props.value);
|
|
37
|
+
}
|
|
38
|
+
if (slashCount > 1) {
|
|
39
|
+
const nestedPath = [''];
|
|
40
|
+
for (const path of pathList) {
|
|
41
|
+
nestedPath.push(path);
|
|
42
|
+
const pathToSet = nestedPath.join('/properties/');
|
|
43
|
+
const isLast = nestedPath.length - 1 === pathList.length;
|
|
44
|
+
const existingValue = pointer.has(acc, pathToSet) ? pointer.get(acc, pathToSet) : null;
|
|
45
|
+
const pathValue = isLast ? propertyValue : existingValue;
|
|
46
|
+
if (isLast) {
|
|
47
|
+
pointer.set(acc, pathToSet, pathValue);
|
|
48
|
+
} else {
|
|
49
|
+
const pathValue = _objectSpread({
|
|
50
|
+
type: 'object'
|
|
51
|
+
}, existingValue);
|
|
52
|
+
const required = [];
|
|
53
|
+
if (props.required) {
|
|
54
|
+
required.push(pathList.at(-1));
|
|
55
|
+
}
|
|
56
|
+
if (existingValue !== null && existingValue !== void 0 && existingValue.required) {
|
|
57
|
+
required.push(...existingValue.required);
|
|
58
|
+
}
|
|
59
|
+
if (required.length > 0) {
|
|
60
|
+
pathValue.required = required;
|
|
61
|
+
}
|
|
62
|
+
pointer.set(acc, pathToSet, pathValue);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
pointer.set(acc.properties, path, propertyValue);
|
|
67
|
+
if (props.required) {
|
|
68
|
+
acc.required.push(objectKey);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return acc;
|
|
73
|
+
}, {
|
|
74
|
+
type: 'object',
|
|
75
|
+
properties: {},
|
|
76
|
+
required: []
|
|
77
|
+
});
|
|
78
|
+
if (schema.required.length === 0) {
|
|
79
|
+
delete schema.required;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
schema,
|
|
83
|
+
data
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return children;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=GenerateSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateSchema.js","names":["useContext","pointer","DataContext","schemaParams","GenerateSchema","props","generateRef","children","fieldPropsRef","data","current","schema","Object","entries","reduce","acc","path","startsWith","objectKey","substring","pathList","split","slashCount","length","type","valueType","propertyValue","prop","hasOwnProperty","call","set","value","nestedPath","push","pathToSet","join","isLast","existingValue","has","get","pathValue","_objectSpread","required","at","properties"],"sources":["../../../../../../src/extensions/forms/Form/Tools/GenerateSchema.tsx"],"sourcesContent":["import { useContext } from 'react'\nimport pointer from 'json-pointer'\nimport DataContext from '../../DataContext/Context'\n\nexport type GenerateSchemaObject = Record<string, unknown>\nexport type GenerateSchemaProps = {\n generateRef: React.MutableRefObject<() => GenerateSchemaObject>\n children: React.ReactNode\n}\n\nexport const schemaParams = [\n 'minLength',\n 'maxLength',\n 'pattern',\n 'description',\n 'min',\n 'max',\n 'multipleOf',\n 'exclusiveMinimum',\n 'exclusiveMaximum',\n]\n\nexport default function GenerateSchema(props: GenerateSchemaProps) {\n const { generateRef, children } = props\n const { fieldPropsRef, data } = useContext(DataContext)\n\n if (generateRef) {\n generateRef.current = () => {\n const schema = Object.entries(fieldPropsRef.current).reduce(\n (acc, [path, props]) => {\n if (path.startsWith('/')) {\n const objectKey = path.substring(1)\n\n const pathList = objectKey.split('/')\n const slashCount = pathList.length\n\n const type = props.valueType || 'string'\n const propertyValue = {\n type,\n }\n\n for (const prop of schemaParams) {\n if (props[prop]) {\n propertyValue[prop] = props[prop]\n }\n }\n\n if (Object.hasOwnProperty.call(props, 'value')) {\n pointer.set(data, path, props.value)\n }\n\n if (slashCount > 1) {\n const nestedPath = ['']\n for (const path of pathList) {\n nestedPath.push(path)\n const pathToSet = nestedPath.join('/properties/')\n const isLast = nestedPath.length - 1 === pathList.length\n\n const existingValue = pointer.has(acc, pathToSet)\n ? pointer.get(acc, pathToSet)\n : null\n\n const pathValue = isLast ? propertyValue : existingValue\n\n if (isLast) {\n pointer.set(acc, pathToSet, pathValue)\n } else {\n const pathValue = {\n type: 'object',\n ...existingValue,\n }\n\n // - Add required\n const required = []\n if (props.required) {\n required.push(pathList.at(-1))\n }\n if (existingValue?.required) {\n required.push(...existingValue.required)\n }\n if (required.length > 0) {\n pathValue.required = required\n }\n\n pointer.set(acc, pathToSet, pathValue)\n }\n }\n } else {\n pointer.set(acc.properties, path, propertyValue)\n if (props.required) {\n acc.required.push(objectKey)\n }\n }\n }\n\n return acc\n },\n { type: 'object', properties: {}, required: [] }\n )\n\n if (schema.required.length === 0) {\n delete schema.required\n }\n\n return { schema, data }\n }\n }\n\n return children\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as GenerateSchema } from './GenerateSchema';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as GenerateSchema } from './GenerateSchema';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","GenerateSchema"],"sources":["../../../../../../src/extensions/forms/Form/Tools/index.ts"],"sourcesContent":["export { default as GenerateSchema } from './GenerateSchema'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,cAAc,QAAQ,kBAAkB"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import React, { AriaAttributes } from 'react';
|
|
2
2
|
import { HeightAnimationProps } from '../../../../components/HeightAnimation';
|
|
3
|
+
import { FilterData } from '../../DataContext/Context';
|
|
3
4
|
import type { UseFieldProps } from '../../types';
|
|
4
5
|
import type { DataAttributes } from '../../hooks/useFieldProps';
|
|
6
|
+
type VisibleWhen = {
|
|
7
|
+
path: string;
|
|
8
|
+
hasValue: unknown;
|
|
9
|
+
} | {
|
|
10
|
+
path: string;
|
|
11
|
+
withValue: (value: unknown) => boolean;
|
|
12
|
+
};
|
|
5
13
|
export type Props = {
|
|
6
14
|
visible?: boolean;
|
|
7
15
|
/** Given data context path must be defined to show children */
|
|
@@ -16,12 +24,14 @@ export type Props = {
|
|
|
16
24
|
pathTrue?: string;
|
|
17
25
|
/** Given data context path must be false to show children */
|
|
18
26
|
pathFalse?: string;
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
|
|
27
|
+
/** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path. */
|
|
28
|
+
visibleWhen?: VisibleWhen;
|
|
29
|
+
/** Same as `visibleWhen`, but with inverted logic. */
|
|
30
|
+
visibleWhenNot?: VisibleWhen;
|
|
23
31
|
/** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */
|
|
24
32
|
inferData?: (data: unknown) => boolean;
|
|
33
|
+
/** 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. */
|
|
34
|
+
filterData?: FilterData;
|
|
25
35
|
/** Animate the visibility change */
|
|
26
36
|
animate?: boolean;
|
|
27
37
|
/** Keep the content in the DOM, even if it's not visible */
|
|
@@ -30,8 +40,12 @@ export type Props = {
|
|
|
30
40
|
fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes;
|
|
31
41
|
element?: HeightAnimationProps['element'];
|
|
32
42
|
children: React.ReactNode;
|
|
43
|
+
/** @deprecated Use `visibleWhen` instead */
|
|
44
|
+
pathValue?: string;
|
|
45
|
+
/** @deprecated Use `visibleWhen` instead */
|
|
46
|
+
whenValue?: unknown;
|
|
33
47
|
};
|
|
34
|
-
declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, inferData, animate, keepInDOM, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
declare function Visibility({ visible, pathDefined, pathUndefined, pathTruthy, pathFalsy, pathTrue, pathFalse, pathValue, whenValue, visibleWhen, visibleWhenNot, inferData, filterData, animate, keepInDOM, fieldPropsWhenHidden, children, ...rest }: Props): import("react/jsx-runtime").JSX.Element;
|
|
35
49
|
declare namespace Visibility {
|
|
36
50
|
var _supportsSpacingProps: string;
|
|
37
51
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "inferData", "animate", "keepInDOM", "fieldPropsWhenHidden", "children"];
|
|
5
|
+
const _excluded = ["visible", "pathDefined", "pathUndefined", "pathTruthy", "pathFalsy", "pathTrue", "pathFalse", "pathValue", "whenValue", "visibleWhen", "visibleWhenNot", "inferData", "filterData", "animate", "keepInDOM", "fieldPropsWhenHidden", "children"];
|
|
6
6
|
import React, { useContext } from 'react';
|
|
7
7
|
import pointer from 'json-pointer';
|
|
8
8
|
import { warn } from '../../../../shared/helpers';
|
|
@@ -21,7 +21,10 @@ function Visibility(_ref) {
|
|
|
21
21
|
pathFalse,
|
|
22
22
|
pathValue,
|
|
23
23
|
whenValue,
|
|
24
|
+
visibleWhen,
|
|
25
|
+
visibleWhenNot,
|
|
24
26
|
inferData,
|
|
27
|
+
filterData,
|
|
25
28
|
animate,
|
|
26
29
|
keepInDOM,
|
|
27
30
|
fieldPropsWhenHidden,
|
|
@@ -35,31 +38,59 @@ function Visibility(_ref) {
|
|
|
35
38
|
}
|
|
36
39
|
});
|
|
37
40
|
const check = () => {
|
|
41
|
+
var _dataContext$filterDa;
|
|
38
42
|
if (visible === false) {
|
|
39
43
|
return;
|
|
40
44
|
}
|
|
41
|
-
|
|
45
|
+
const data = filterData && ((_dataContext$filterDa = dataContext.filterDataHandler) === null || _dataContext$filterDa === void 0 ? void 0 : _dataContext$filterDa.call(dataContext, dataContext.data, filterData)) || dataContext.data;
|
|
46
|
+
if (visibleWhen || visibleWhenNot) {
|
|
47
|
+
if (visibleWhenNot) {
|
|
48
|
+
visibleWhen = visibleWhenNot;
|
|
49
|
+
}
|
|
50
|
+
const hasPath = pointer.has(data, visibleWhen.path);
|
|
51
|
+
if (hasPath) {
|
|
52
|
+
var _visibleWhen, _visibleWhen2;
|
|
53
|
+
const value = pointer.get(data, visibleWhen.path);
|
|
54
|
+
const withValue = (_visibleWhen = visibleWhen) === null || _visibleWhen === void 0 ? void 0 : _visibleWhen['withValue'];
|
|
55
|
+
const result = withValue && (withValue === null || withValue === void 0 ? void 0 : withValue(value)) === false || Object.prototype.hasOwnProperty.call(visibleWhen, 'hasValue') && ((_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== value;
|
|
56
|
+
if (visibleWhenNot) {
|
|
57
|
+
if (!result) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
} else if (result) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (pathDefined && !pointer.has(data, pathDefined)) {
|
|
42
68
|
return;
|
|
43
69
|
}
|
|
44
|
-
if (pathUndefined && pointer.has(
|
|
70
|
+
if (pathUndefined && pointer.has(data, pathUndefined)) {
|
|
45
71
|
return;
|
|
46
72
|
}
|
|
47
|
-
|
|
73
|
+
const getValue = path => {
|
|
74
|
+
if (pointer.has(data, path)) {
|
|
75
|
+
return pointer.get(data, path);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
if (pathTrue && getValue(pathTrue) !== true) {
|
|
48
79
|
return;
|
|
49
80
|
}
|
|
50
|
-
if (
|
|
81
|
+
if (pathFalse && getValue(pathFalse) !== false) {
|
|
51
82
|
return;
|
|
52
83
|
}
|
|
53
|
-
if (
|
|
84
|
+
if (pathTruthy && Boolean(getValue(pathTruthy)) === false) {
|
|
54
85
|
return;
|
|
55
86
|
}
|
|
56
|
-
if (
|
|
87
|
+
if (pathFalsy && Boolean(getValue(pathFalsy)) === true) {
|
|
57
88
|
return;
|
|
58
89
|
}
|
|
59
|
-
if (
|
|
90
|
+
if (inferData && !inferData(data)) {
|
|
60
91
|
return;
|
|
61
92
|
}
|
|
62
|
-
if (
|
|
93
|
+
if (pathValue && getValue(pathValue) !== whenValue) {
|
|
63
94
|
return;
|
|
64
95
|
}
|
|
65
96
|
return true;
|
|
@@ -69,7 +100,7 @@ function Visibility(_ref) {
|
|
|
69
100
|
const props = !open ? fieldPropsWhenHidden : null;
|
|
70
101
|
return React.createElement(HeightAnimation, _extends({
|
|
71
102
|
open: open,
|
|
72
|
-
keepInDOM: keepInDOM,
|
|
103
|
+
keepInDOM: Boolean(keepInDOM),
|
|
73
104
|
className: "dnb-forms-visibility"
|
|
74
105
|
}, rest), React.createElement(FieldProps, props, children));
|
|
75
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.js","names":["React","useContext","pointer","warn","useMountEffect","HeightAnimation","DataContext","FieldProps","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","animate","keepInDOM","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","dataContext","check","
|
|
1
|
+
{"version":3,"file":"Visibility.js","names":["React","useContext","pointer","warn","useMountEffect","HeightAnimation","DataContext","FieldProps","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","dataContext","check","_dataContext$filterDa","data","filterDataHandler","call","hasPath","has","path","_visibleWhen","_visibleWhen2","value","get","withValue","result","Object","prototype","hasOwnProperty","getValue","Boolean","open","props","createElement","_extends","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport DataContext, { FilterData } from '../../DataContext/Context'\nimport FieldProps from '../FieldProps'\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\n\ntype VisibleWhen =\n | {\n path: string\n hasValue: unknown\n }\n | {\n path: string\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?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. 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 /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility({\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 animate,\n keepInDOM,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n const dataContext = useContext(DataContext)\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const check = () => {\n if (visible === false) {\n return\n }\n\n const data =\n (filterData &&\n dataContext.filterDataHandler?.(dataContext.data, filterData)) ||\n dataContext.data\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n const hasPath = pointer.has(data, visibleWhen.path)\n if (hasPath) {\n const value = pointer.get(data, visibleWhen.path)\n\n const withValue = visibleWhen?.['withValue']\n const result =\n (withValue && withValue?.(value) === false) ||\n (Object.prototype.hasOwnProperty.call(visibleWhen, 'hasValue') &&\n visibleWhen?.['hasValue'] !== value)\n\n if (visibleWhenNot) {\n if (!result) {\n return\n }\n } else if (result) {\n return\n }\n } else {\n return\n }\n }\n\n if (pathDefined && !pointer.has(data, pathDefined)) {\n return\n }\n if (pathUndefined && pointer.has(data, pathUndefined)) {\n return\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathTrue && getValue(pathTrue) !== true) {\n return\n }\n if (pathFalse && getValue(pathFalse) !== false) {\n return\n }\n if (pathTruthy && Boolean(getValue(pathTruthy)) === false) {\n return\n }\n if (pathFalsy && Boolean(getValue(pathFalsy)) === true) {\n return\n }\n if (inferData && !inferData(data)) {\n return\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(pathValue) !== whenValue) {\n return\n }\n\n return true\n }\n\n const open = Boolean(check())\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n {...rest}\n >\n <FieldProps {...props}>{children}</FieldProps>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProps {...props}>{children}</FieldProps>\n </span>\n )\n }\n\n return <>{open ? children : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
|
|
@@ -29,14 +29,14 @@ export const VisibilityProperties = {
|
|
|
29
29
|
type: 'string',
|
|
30
30
|
status: 'optional'
|
|
31
31
|
},
|
|
32
|
-
|
|
33
|
-
doc: '
|
|
34
|
-
type: '
|
|
32
|
+
visibleWhen: {
|
|
33
|
+
doc: 'Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path.',
|
|
34
|
+
type: 'object',
|
|
35
35
|
status: 'optional'
|
|
36
36
|
},
|
|
37
|
-
|
|
38
|
-
doc: '
|
|
39
|
-
type: '
|
|
37
|
+
visibleWhenNot: {
|
|
38
|
+
doc: 'Same as `visibleWhen`, but with inverted logic.',
|
|
39
|
+
type: 'object',
|
|
40
40
|
status: 'optional'
|
|
41
41
|
},
|
|
42
42
|
inferData: {
|
|
@@ -59,6 +59,11 @@ export const VisibilityProperties = {
|
|
|
59
59
|
type: 'boolean',
|
|
60
60
|
status: 'optional'
|
|
61
61
|
},
|
|
62
|
+
filterData: {
|
|
63
|
+
doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',
|
|
64
|
+
type: ['object', 'function'],
|
|
65
|
+
status: 'optional'
|
|
66
|
+
},
|
|
62
67
|
fieldPropsWhenHidden: {
|
|
63
68
|
doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',
|
|
64
69
|
type: 'various',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","pathDefined","doc","type","status","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","
|
|
1
|
+
{"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","pathDefined","doc","type","status","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","visibleWhen","visibleWhenNot","inferData","visible","animate","keepInDOM","filterData","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n visibleWhen: {\n doc: 'Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly by boolean value.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbH,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,UAAU,EAAE;IACVJ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,SAAS,EAAE;IACTL,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRN,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,0NAA0N;IAC/NC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,cAAc,EAAE;IACdT,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,UAAU,EAAE;IACVd,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDa,oBAAoB,EAAE;IACpBf,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDc,OAAO,EAAE;IACPhB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDe,QAAQ,EAAE;IACRjB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
|
|
@@ -5,7 +5,7 @@ type PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}` ? Ke
|
|
|
5
5
|
type PathType<T, P extends string> = P extends `/${infer Rest}` ? PathImpl<T, Rest> : never;
|
|
6
6
|
type UseDataReturnUpdate<Data> = <P extends Path>(path: P, value: ((value: PathType<Data, P>) => unknown) | unknown) => void;
|
|
7
7
|
export type UseDataReturnGetValue<Data> = <P extends Path>(path: P) => PathType<Data, P>;
|
|
8
|
-
export type UseDataReturnFilterData<Data> = (filterDataHandler: FilterData) => Partial<Data>;
|
|
8
|
+
export type UseDataReturnFilterData<Data> = (filterDataHandler: FilterData, data?: Data) => Partial<Data>;
|
|
9
9
|
type UseDataReturn<Data> = {
|
|
10
10
|
data: Data;
|
|
11
11
|
set: (newData: Data) => void;
|
|
@@ -39,8 +39,7 @@ export default function useData(id = undefined, initialData = undefined) {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}, [id, updateDataValue]);
|
|
42
|
-
const filterData = useCallback(filter => {
|
|
43
|
-
const data = sharedDataRef.current.data;
|
|
42
|
+
const filterData = useCallback((filter, data = sharedDataRef.current.data) => {
|
|
44
43
|
if (id) {
|
|
45
44
|
var _sharedAttachmentsRef, _sharedAttachmentsRef2;
|
|
46
45
|
return (_sharedAttachmentsRef = sharedAttachmentsRef.current.data) === null || _sharedAttachmentsRef === void 0 ? void 0 : (_sharedAttachmentsRef2 = _sharedAttachmentsRef.filterDataHandler) === null || _sharedAttachmentsRef2 === void 0 ? void 0 : _sharedAttachmentsRef2.call(_sharedAttachmentsRef, data, filter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","context","data","updateDataValue","setData","rerenderUseDataHook","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","filterDataHandler","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id && context?.data) {\n sharedDataRef.current.data = context.data\n }\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter
|
|
1
|
+
{"version":3,"file":"useData.js","names":["useCallback","useContext","useMemo","useReducer","useRef","pointer","useSharedState","useMountEffect","DataContext","useData","id","undefined","initialData","sharedDataRef","sharedAttachmentsRef","forceUpdate","current","context","data","updateDataValue","setData","rerenderUseDataHook","setHandler","newData","update","updateHandler","path","value","existingData","existingValue","has","get","newValue","set","extend","filterData","filter","_sharedAttachmentsRef","_sharedAttachmentsRef2","filterDataHandler","call","getValue","hadInitialData"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useData.tsx"],"sourcesContent":["import {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer from 'json-pointer'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport type { Path } from '../../types'\nimport DataContext, {\n FilterData,\n FilterDataHandler,\n} from '../../DataContext/Context'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n value: ((value: PathType<Data, P>) => unknown) | unknown\n) => void\n\nexport type UseDataReturnGetValue<Data> = <P extends Path>(\n path: P\n) => PathType<Data, P>\n\nexport type UseDataReturnFilterData<Data> = (\n filterDataHandler: FilterData,\n data?: Data\n) => Partial<Data>\n\ntype UseDataReturn<Data> = {\n data: Data\n set: (newData: Data) => void\n update: UseDataReturnUpdate<Data>\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n}\n\ntype SharedAttachment<Data> = {\n rerenderUseDataHook: () => void\n filterDataHandler?: FilterDataHandler<Data>\n}\n\n/**\n * Custom hook that provides form data management functionality.\n *\n * @template Data - The type of data being managed.\n * @param {SharedStateId} id - The identifier for the data.\n * @param {Data} initialData - The initial data value (optional).\n * @returns {UseDataReturn<Data>} An object containing the data and data management functions.\n */\nexport default function useData<Data>(\n id: SharedStateId = undefined,\n initialData: Data = undefined\n): UseDataReturn<Data> {\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<Data>>>(null)\n const sharedAttachmentsRef =\n useRef<ReturnType<typeof useSharedState<SharedAttachment<Data>>>>(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n sharedDataRef.current = useSharedState<Data>(\n id,\n initialData,\n forceUpdate\n )\n\n // If no id is provided, use the context data\n const context = useContext(DataContext)\n if (!id && context?.data) {\n sharedDataRef.current.data = context.data\n }\n const updateDataValue = context?.updateDataValue\n const setData = context?.setData\n\n sharedAttachmentsRef.current = useSharedState<SharedAttachment<Data>>(\n id + '-attachments',\n { rerenderUseDataHook: forceUpdate }\n )\n\n const setHandler = useCallback(\n (newData: Data) => {\n if (id) {\n sharedDataRef.current.update(newData)\n } else {\n setData?.(newData)\n }\n },\n [id, setData]\n )\n\n const updateHandler = useCallback<UseDataReturnUpdate<Data>>(\n (path, value = undefined) => {\n const existingData = sharedDataRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue =\n typeof value === 'function' ? value(existingValue) : value\n\n if (newValue !== existingValue) {\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n if (id) {\n sharedDataRef.current.extend(existingData)\n } else {\n updateDataValue(path, newValue)\n }\n }\n },\n [id, updateDataValue]\n )\n\n const filterData = useCallback<UseDataReturn<Data>['filterData']>(\n (filter, data = sharedDataRef.current.data) => {\n if (id) {\n return sharedAttachmentsRef.current.data?.filterDataHandler?.(\n data,\n filter\n )\n }\n\n return context?.filterDataHandler(data, filter)\n },\n [context, id]\n )\n\n const getValue = useCallback<UseDataReturn<Data>['getValue']>((path) => {\n if (pointer.has(sharedDataRef.current.data, path)) {\n return pointer.get(sharedDataRef.current.data, path)\n }\n\n return undefined\n }, [])\n\n useMountEffect(() => {\n if (id && !sharedDataRef.current.hadInitialData && initialData) {\n sharedDataRef.current.extend(initialData)\n }\n })\n\n const { data } = sharedDataRef.current\n\n return useMemo(\n () => ({\n data,\n update: updateHandler,\n set: setHandler,\n getValue,\n filterData,\n }),\n [data, filterData, getValue, setHandler, updateHandler]\n )\n}\n"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { SharedStateId } from '../../../../shared/helpers/useSharedState';
|
|
|
2
2
|
import { ContextState } from '../../DataContext/Context';
|
|
3
3
|
type UseDataReturn = {
|
|
4
4
|
hasErrors: ContextState['hasErrors'];
|
|
5
|
+
hasFieldError: ContextState['hasFieldError'];
|
|
5
6
|
setFormError: (error: Error) => void;
|
|
6
7
|
};
|
|
7
8
|
export default function useError(id?: SharedStateId): UseDataReturn;
|
|
@@ -4,13 +4,14 @@ import { useCallback, useContext, useMemo, useRef } from 'react';
|
|
|
4
4
|
import { useSharedState } from '../../../../shared/helpers/useSharedState';
|
|
5
5
|
import DataContext from '../../DataContext/Context';
|
|
6
6
|
export default function useError(id = undefined) {
|
|
7
|
-
var _sharedAttachmentsRef, _sharedAttachmentsRef2, _sharedAttachmentsRef3, _sharedAttachmentsRef4;
|
|
7
|
+
var _sharedAttachmentsRef, _sharedAttachmentsRef2, _sharedAttachmentsRef3, _sharedAttachmentsRef4, _sharedAttachmentsRef5, _sharedAttachmentsRef6;
|
|
8
8
|
const sharedAttachmentsRef = useRef(null);
|
|
9
9
|
sharedAttachmentsRef.current = useSharedState(id + '-attachments');
|
|
10
10
|
const fallback = useCallback(() => false, []);
|
|
11
11
|
const context = useContext(DataContext);
|
|
12
12
|
const hasErrors = ((_sharedAttachmentsRef = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef === void 0 ? void 0 : (_sharedAttachmentsRef2 = _sharedAttachmentsRef.data) === null || _sharedAttachmentsRef2 === void 0 ? void 0 : _sharedAttachmentsRef2.hasErrors) || !id && (context === null || context === void 0 ? void 0 : context.hasErrors) || fallback;
|
|
13
|
-
const
|
|
13
|
+
const hasFieldError = ((_sharedAttachmentsRef3 = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef3 === void 0 ? void 0 : (_sharedAttachmentsRef4 = _sharedAttachmentsRef3.data) === null || _sharedAttachmentsRef4 === void 0 ? void 0 : _sharedAttachmentsRef4.hasFieldError) || !id && (context === null || context === void 0 ? void 0 : context.hasFieldError) || fallback;
|
|
14
|
+
const setSubmitState = ((_sharedAttachmentsRef5 = sharedAttachmentsRef.current) === null || _sharedAttachmentsRef5 === void 0 ? void 0 : (_sharedAttachmentsRef6 = _sharedAttachmentsRef5.data) === null || _sharedAttachmentsRef6 === void 0 ? void 0 : _sharedAttachmentsRef6.setSubmitState) || !id && (context === null || context === void 0 ? void 0 : context.setSubmitState) || fallback;
|
|
14
15
|
const setFormError = useCallback(error => {
|
|
15
16
|
setSubmitState === null || setSubmitState === void 0 ? void 0 : setSubmitState({
|
|
16
17
|
error
|
|
@@ -18,7 +19,8 @@ export default function useError(id = undefined) {
|
|
|
18
19
|
}, [setSubmitState]);
|
|
19
20
|
return useMemo(() => ({
|
|
20
21
|
hasErrors,
|
|
22
|
+
hasFieldError,
|
|
21
23
|
setFormError
|
|
22
|
-
}), [hasErrors, setFormError]);
|
|
24
|
+
}), [hasErrors, hasFieldError, setFormError]);
|
|
23
25
|
}
|
|
24
26
|
//# sourceMappingURL=useError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useError.js","names":["useCallback","useContext","useMemo","useRef","useSharedState","DataContext","useError","id","undefined","_sharedAttachmentsRef","_sharedAttachmentsRef2","_sharedAttachmentsRef3","_sharedAttachmentsRef4","sharedAttachmentsRef","current","fallback","context","hasErrors","data","setSubmitState","setFormError","error"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useError.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n setFormError: (error: Error) => void\n}\n\nexport default function useError(\n id: SharedStateId = undefined\n): UseDataReturn {\n const sharedAttachmentsRef = useRef(null)\n sharedAttachmentsRef.current = useSharedState<UseDataReturn>(\n id + '-attachments'\n )\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n sharedAttachmentsRef.current?.data?.hasErrors ||\n (!id && context?.hasErrors) ||\n fallback\n\n // Error handling\n const setSubmitState =\n sharedAttachmentsRef.current?.data?.setSubmitState ||\n (!id && context?.setSubmitState) ||\n fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n
|
|
1
|
+
{"version":3,"file":"useError.js","names":["useCallback","useContext","useMemo","useRef","useSharedState","DataContext","useError","id","undefined","_sharedAttachmentsRef","_sharedAttachmentsRef2","_sharedAttachmentsRef3","_sharedAttachmentsRef4","_sharedAttachmentsRef5","_sharedAttachmentsRef6","sharedAttachmentsRef","current","fallback","context","hasErrors","data","hasFieldError","setSubmitState","setFormError","error"],"sources":["../../../../../../src/extensions/forms/Form/data-context/useError.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport {\n SharedStateId,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport DataContext, { ContextState } from '../../DataContext/Context'\n\ntype UseDataReturn = {\n hasErrors: ContextState['hasErrors']\n hasFieldError: ContextState['hasFieldError']\n setFormError: (error: Error) => void\n}\n\nexport default function useError(\n id: SharedStateId = undefined\n): UseDataReturn {\n const sharedAttachmentsRef = useRef(null)\n sharedAttachmentsRef.current = useSharedState<UseDataReturn>(\n id + '-attachments'\n )\n\n const fallback = useCallback(() => false, [])\n\n // If no id is provided, use the context version\n const context = useContext(DataContext)\n const hasErrors =\n sharedAttachmentsRef.current?.data?.hasErrors ||\n (!id && context?.hasErrors) ||\n fallback\n const hasFieldError =\n sharedAttachmentsRef.current?.data?.hasFieldError ||\n (!id && context?.hasFieldError) ||\n fallback\n\n // Error handling\n const setSubmitState =\n sharedAttachmentsRef.current?.data?.setSubmitState ||\n (!id && context?.setSubmitState) ||\n fallback\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n return useMemo(\n () => ({ hasErrors, hasFieldError, setFormError }),\n [hasErrors, hasFieldError, setFormError]\n )\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAEEC,cAAc,QACT,2CAA2C;AAClD,OAAOC,WAAW,MAAwB,2BAA2B;AAQrE,eAAe,SAASC,QAAQA,CAC9BC,EAAiB,GAAGC,SAAS,EACd;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACf,MAAMC,oBAAoB,GAAGZ,MAAM,CAAC,IAAI,CAAC;EACzCY,oBAAoB,CAACC,OAAO,GAAGZ,cAAc,CAC3CG,EAAE,GAAG,cACP,CAAC;EAED,MAAMU,QAAQ,GAAGjB,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;EAG7C,MAAMkB,OAAO,GAAGjB,UAAU,CAACI,WAAW,CAAC;EACvC,MAAMc,SAAS,GACb,EAAAV,qBAAA,GAAAM,oBAAoB,CAACC,OAAO,cAAAP,qBAAA,wBAAAC,sBAAA,GAA5BD,qBAAA,CAA8BW,IAAI,cAAAV,sBAAA,uBAAlCA,sBAAA,CAAoCS,SAAS,KAC5C,CAACZ,EAAE,KAAIW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,SAAS,CAAC,IAC3BF,QAAQ;EACV,MAAMI,aAAa,GACjB,EAAAV,sBAAA,GAAAI,oBAAoB,CAACC,OAAO,cAAAL,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8BS,IAAI,cAAAR,sBAAA,uBAAlCA,sBAAA,CAAoCS,aAAa,KAChD,CAACd,EAAE,KAAIW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,aAAa,CAAC,IAC/BJ,QAAQ;EAGV,MAAMK,cAAc,GAClB,EAAAT,sBAAA,GAAAE,oBAAoB,CAACC,OAAO,cAAAH,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8BO,IAAI,cAAAN,sBAAA,uBAAlCA,sBAAA,CAAoCQ,cAAc,KACjD,CAACf,EAAE,KAAIW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,cAAc,CAAC,IAChCL,QAAQ;EACV,MAAMM,YAAY,GAAGvB,WAAW,CAC7BwB,KAAY,IAAK;IAChBF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG;MAAEE;IAAM,CAAC,CAAC;EAC7B,CAAC,EACD,CAACF,cAAc,CACjB,CAAC;EAED,OAAOpB,OAAO,CACZ,OAAO;IAAEiB,SAAS;IAAEE,aAAa;IAAEE;EAAa,CAAC,CAAC,EAClD,CAACJ,SAAS,EAAEE,aAAa,EAAEE,YAAY,CACzC,CAAC;AACH"}
|
|
@@ -13,6 +13,7 @@ export { default as setData } from './data-context/setData';
|
|
|
13
13
|
export { default as getData } from './data-context/getData';
|
|
14
14
|
export { default as useError } from './data-context/useError';
|
|
15
15
|
export { default as useTranslation } from '../hooks/useTranslation';
|
|
16
|
+
export * as Tools from './Tools';
|
|
16
17
|
/**
|
|
17
18
|
* Can be removed in v11
|
|
18
19
|
* @deprecated Use `useTranslation` instead
|
|
@@ -13,5 +13,6 @@ export { default as setData } from './data-context/setData';
|
|
|
13
13
|
export { default as getData } from './data-context/getData';
|
|
14
14
|
export { default as useError } from './data-context/useError';
|
|
15
15
|
export { default as useTranslation } from '../hooks/useTranslation';
|
|
16
|
+
export * as Tools from './Tools';
|
|
16
17
|
export { default as useLocale } from '../hooks/useTranslation';
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","FieldProps","useData","setData","getData","useError","useTranslation","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AACpD,SAASV,OAAO,IAAIW,OAAO,QAAQ,wBAAwB;AAC3D,SAASX,OAAO,IAAIY,OAAO,QAAQ,wBAAwB;AAC3D,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,QAAQ,QAAQ,yBAAyB;AAC7D,SAASd,OAAO,IAAIe,cAAc,QAAQ,yBAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","Handler","Element","Appearance","SubmitButton","SubmitIndicator","ButtonRow","MainHeading","SubHeading","Visibility","FieldProps","useData","setData","getData","useError","useTranslation","Tools","useLocale"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as Appearance } from './Appearance'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as SubmitIndicator } from './SubmitIndicator'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as FieldProps } from './FieldProps'\nexport { default as useData } from './data-context/useData'\nexport { default as setData } from './data-context/setData'\nexport { default as getData } from './data-context/getData'\nexport { default as useError } from './data-context/useError'\nexport { default as useTranslation } from '../hooks/useTranslation'\nexport * as Tools from './Tools'\n\n/**\n * Can be removed in v11\n * @deprecated Use `useTranslation` instead\n */\nexport { default as useLocale } from '../hooks/useTranslation'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,UAAU,QAAQ,cAAc;AACpD,SAASH,OAAO,IAAII,YAAY,QAAQ,gBAAgB;AACxD,SAASJ,OAAO,IAAIK,eAAe,QAAQ,mBAAmB;AAC9D,SAASL,OAAO,IAAIM,SAAS,QAAQ,aAAa;AAClD,SAASN,OAAO,IAAIO,WAAW,QAAQ,eAAe;AACtD,SAASP,OAAO,IAAIQ,UAAU,QAAQ,cAAc;AACpD,SAASR,OAAO,IAAIS,UAAU,QAAQ,cAAc;AACpD,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AACpD,SAASV,OAAO,IAAIW,OAAO,QAAQ,wBAAwB;AAC3D,SAASX,OAAO,IAAIY,OAAO,QAAQ,wBAAwB;AAC3D,SAASZ,OAAO,IAAIa,OAAO,QAAQ,wBAAwB;AAC3D,SAASb,OAAO,IAAIc,QAAQ,QAAQ,yBAAyB;AAC7D,SAASd,OAAO,IAAIe,cAAc,QAAQ,yBAAyB;AACnE,OAAO,KAAKC,KAAK,MAAM,SAAS;AAMhC,SAAShB,OAAO,IAAIiB,SAAS,QAAQ,yBAAyB"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { Props as FlexContainerProps } from '../../../../components/flex/Container';
|
|
2
2
|
import { ContainerMode } from '../Array/types';
|
|
3
|
+
export type ElementBlockProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Defines the variant of the ViewContainer or EditContainer. Can be `outline`.
|
|
6
|
+
* Defaults to `outline`.
|
|
7
|
+
*/
|
|
8
|
+
variant?: 'outline' | 'basic';
|
|
9
|
+
};
|
|
3
10
|
export type Props = {
|
|
4
11
|
mode: ContainerMode;
|
|
5
12
|
open?: boolean | undefined;
|
|
6
13
|
ariaLabel?: string;
|
|
7
14
|
openDelay?: number;
|
|
8
|
-
};
|
|
15
|
+
} & ElementBlockProps;
|
|
9
16
|
declare function ElementBlock(props: Props & FlexContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
10
17
|
declare namespace ElementBlock {
|
|
11
18
|
var _supportsSpacingProps: boolean;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
-
const _excluded = ["mode", "open", "ariaLabel", "onAnimationEnd", "className", "children", "openDelay"];
|
|
5
|
+
const _excluded = ["mode", "open", "ariaLabel", "onAnimationEnd", "className", "children", "openDelay", "variant"];
|
|
6
6
|
import React, { useCallback, useContext, useEffect, useReducer, useRef } from 'react';
|
|
7
7
|
import classnames from 'classnames';
|
|
8
8
|
import { Flex, HeightAnimation } from '../../../../components';
|
|
@@ -35,7 +35,8 @@ function ElementBlock(props) {
|
|
|
35
35
|
onAnimationEnd,
|
|
36
36
|
className,
|
|
37
37
|
children,
|
|
38
|
-
openDelay = 100
|
|
38
|
+
openDelay = 100,
|
|
39
|
+
variant = 'outline'
|
|
39
40
|
} = props,
|
|
40
41
|
restProps = _objectWithoutProperties(props, _excluded);
|
|
41
42
|
const openRef = useRef(open !== null && open !== void 0 ? open : containerMode === mode && !isNew);
|
|
@@ -102,7 +103,7 @@ function ElementBlock(props) {
|
|
|
102
103
|
handleRemoveBlock
|
|
103
104
|
}
|
|
104
105
|
}, React.createElement(HeightAnimation, {
|
|
105
|
-
className: classnames('dnb-forms-iterate-block', className, isNew && 'dnb-forms-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-forms-iterate-block--error'),
|
|
106
|
+
className: classnames('dnb-forms-iterate-block', className, variant && `dnb-forms-iterate-block--variant-${variant}`, isNew && 'dnb-forms-iterate-block--new', contextRef.current.hasErrorAndShowIt && 'dnb-forms-iterate-block--error'),
|
|
106
107
|
open: openRef.current,
|
|
107
108
|
onAnimationEnd: handleAnimationEnd,
|
|
108
109
|
duration: 450,
|