@dnb/eufemia 10.24.0 → 10.25.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 +17 -0
- package/cjs/components/accordion/style/dnb-accordion.css +6 -2
- package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
- package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
- package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
- package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/cjs/components/dropdown/Dropdown.d.ts +0 -3
- package/cjs/components/input/InputDocs.js +2 -2
- package/cjs/components/input/InputDocs.js.map +1 -1
- package/cjs/extensions/forms/DataContext/At/At.js +6 -6
- package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
- package/cjs/extensions/forms/DataContext/Context.js +1 -0
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -26
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
- package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js +27 -24
- package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
- package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +82 -58
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/extensions/forms/style/dnb-forms.css +1 -1
- package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
- package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
- package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-components.css +7 -3
- package/cjs/style/dnb-ui-components.min.css +2 -2
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-extensions.css +1 -1
- package/cjs/style/dnb-ui-extensions.min.css +1 -1
- package/cjs/style/dnb-ui-forms.css +1 -1
- package/cjs/style/dnb-ui-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
- package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/properties.js +10 -10
- package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.js +10 -10
- package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
- package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
- package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/cjs/style/themes/theme-ui/properties.js +10 -10
- package/cjs/style/themes/theme-ui/properties.js.map +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-components.css +8 -4
- package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/components/accordion/style/dnb-accordion.css +6 -2
- package/components/accordion/style/dnb-accordion.min.css +2 -2
- package/components/accordion/style/dnb-accordion.scss +8 -2
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/components/autocomplete/Autocomplete.d.ts +0 -15
- package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/components/autocomplete/AutocompleteDocs.js +285 -0
- package/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/components/dropdown/Dropdown.d.ts +0 -3
- package/components/input/InputDocs.js +2 -2
- package/components/input/InputDocs.js.map +1 -1
- package/es/components/accordion/style/dnb-accordion.css +6 -2
- package/es/components/accordion/style/dnb-accordion.min.css +2 -2
- package/es/components/accordion/style/dnb-accordion.scss +8 -2
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +5 -4
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
- package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +5 -5
- package/es/components/autocomplete/Autocomplete.d.ts +0 -15
- package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
- package/es/components/autocomplete/AutocompleteDocs.js +285 -0
- package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
- package/es/components/dropdown/Dropdown.d.ts +0 -3
- package/es/components/input/InputDocs.js +2 -2
- package/es/components/input/InputDocs.js.map +1 -1
- package/es/extensions/forms/DataContext/At/At.js +7 -7
- package/es/extensions/forms/DataContext/At/At.js.map +1 -1
- package/es/extensions/forms/DataContext/Context.d.ts +5 -2
- package/es/extensions/forms/DataContext/Context.js +1 -0
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/es/extensions/forms/DataContext/Provider/Provider.js +51 -26
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/es/extensions/forms/Form/Handler/Handler.js +3 -3
- package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayout.js +27 -24
- package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
- package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +82 -58
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/extensions/forms/style/dnb-forms.css +1 -1
- package/es/extensions/forms/style/dnb-forms.min.css +1 -1
- package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
- package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-components.css +7 -3
- package/es/style/dnb-ui-components.min.css +2 -2
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-extensions.css +1 -1
- package/es/style/dnb-ui-extensions.min.css +1 -1
- package/es/style/dnb-ui-forms.css +1 -1
- package/es/style/dnb-ui-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
- package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/es/style/themes/theme-eiendom/properties.js +10 -10
- package/es/style/themes/theme-eiendom/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.js +10 -10
- package/es/style/themes/theme-sbanken/properties.js.map +1 -1
- package/es/style/themes/theme-sbanken/properties.scss +10 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
- package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/es/style/themes/theme-ui/properties.js +10 -10
- package/es/style/themes/theme-ui/properties.js.map +1 -1
- package/es/style/themes/theme-ui/ui-theme-components.css +8 -4
- package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/At/At.js +7 -7
- package/extensions/forms/DataContext/At/At.js.map +1 -1
- package/extensions/forms/DataContext/Context.d.ts +5 -2
- package/extensions/forms/DataContext/Context.js +1 -0
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
- package/extensions/forms/DataContext/Provider/Provider.js +52 -26
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/DataContext/Provider/ProviderDocs.js +4 -4
- package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
- package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
- package/extensions/forms/Form/Handler/Handler.js +3 -3
- package/extensions/forms/Form/Handler/Handler.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayout.js +27 -24
- package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
- package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
- package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
- package/extensions/forms/hooks/useFieldProps.js +82 -58
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/extensions/forms/style/dnb-forms.css +1 -1
- package/extensions/forms/style/dnb-forms.min.css +1 -1
- package/fragments/drawer-list/DrawerList.d.ts +95 -1
- package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
- package/fragments/drawer-list/DrawerListDocs.js +180 -0
- package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
- package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-components.css +7 -3
- package/style/dnb-ui-components.min.css +2 -2
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-extensions.css +1 -1
- package/style/dnb-ui-extensions.min.css +1 -1
- package/style/dnb-ui-forms.css +1 -1
- package/style/dnb-ui-forms.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-components.css +8 -4
- package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
- package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
- package/style/themes/theme-eiendom/properties.js +10 -10
- package/style/themes/theme-eiendom/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.js +10 -10
- package/style/themes/theme-sbanken/properties.js.map +1 -1
- package/style/themes/theme-sbanken/properties.scss +10 -10
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-components.css +13 -8
- package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
- package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
- package/style/themes/theme-ui/properties.js +10 -10
- package/style/themes/theme-ui/properties.js.map +1 -1
- package/style/themes/theme-ui/ui-theme-components.css +8 -4
- package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
- package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
- package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.css +1 -1
- package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +2 -2
- package/umd/dnb-ui-lib.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputDocs.js","names":["inputProperties","value","doc","type","status","align","label","label_sr_only","label_direction","status_state","status_props","globalStatus","placeholder","icon","icon_position","icon_size","keep_placeholder","input_class","autocomplete","submit_button_title","suffix","size","selectall","clear","stretch","skeleton","input_attributes","input_state","submit_element","inner_ref","input_element","inner_element","exports"],"sources":["../../../../src/components/input/InputDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputProperties: PropertiesTableProps = {\n value: {\n doc: 'The content value of the input.',\n type: 'string',\n status: 'optional',\n },\n align: {\n doc: 'Defines the text alignment of the input. Can be `left`, `right` or `center`. Defaults to `left`.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'React.Node',\n status: 'optional',\n },\n label_sr_only: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n label_direction: {\n doc: 'Use `label_direction=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: 'string',\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n placeholder: {\n doc: 'The placeholder which shows up once the input value is empty.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to show before or after the input / placeholder. Can be either a string defining a primary icon or a Component using an SVG icon of either 16px or 24px.',\n type: ['string', 'React.
|
|
1
|
+
{"version":3,"file":"InputDocs.js","names":["inputProperties","value","doc","type","status","align","label","label_sr_only","label_direction","status_state","status_props","globalStatus","placeholder","icon","icon_position","icon_size","keep_placeholder","input_class","autocomplete","submit_button_title","suffix","size","selectall","clear","stretch","skeleton","input_attributes","input_state","submit_element","inner_ref","input_element","inner_element","exports"],"sources":["../../../../src/components/input/InputDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const inputProperties: PropertiesTableProps = {\n value: {\n doc: 'The content value of the input.',\n type: 'string',\n status: 'optional',\n },\n align: {\n doc: 'Defines the text alignment of the input. Can be `left`, `right` or `center`. Defaults to `left`.',\n type: 'string',\n status: 'optional',\n },\n label: {\n doc: 'Prepends the Form Label component. If no ID is provided, a random ID is created.',\n type: 'React.Node',\n status: 'optional',\n },\n label_sr_only: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n label_direction: {\n doc: 'Use `label_direction=\"vertical\"` to change the label layout direction. Defaults to `horizontal`.',\n type: 'string',\n status: 'optional',\n },\n status: {\n doc: 'Text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message.',\n type: 'string',\n status: 'optional',\n },\n status_state: {\n doc: 'Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.',\n type: 'string',\n status: 'optional',\n },\n status_props: {\n doc: 'Use an object to define additional FormStatus properties.',\n type: 'object',\n status: 'optional',\n },\n globalStatus: {\n doc: 'The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status).',\n type: 'object',\n status: 'optional',\n },\n placeholder: {\n doc: 'The placeholder which shows up once the input value is empty.',\n type: 'string',\n status: 'optional',\n },\n icon: {\n doc: 'Icon to show before or after the input / placeholder. Can be either a string defining a primary icon or a Component using an SVG icon of either 16px or 24px.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n icon_position: {\n doc: 'Defines the position of icon inside the input. Set to `left` or `right`. Defaults to `left` if not set.',\n type: 'string',\n status: 'optional',\n },\n icon_size: {\n doc: 'The icon size of the icon shows. Defaults to `medium`.',\n type: 'string',\n status: 'optional',\n },\n keep_placeholder: {\n doc: 'Set to `true` in case the `placeholder` has to be kept during focus. By default, the placeholder disappears on focus.',\n type: 'boolean',\n status: 'optional',\n },\n input_class: {\n doc: 'In case we have to set a custom input class.',\n type: 'string',\n status: 'optional',\n },\n type: {\n doc: 'Choose between `text`, `number`, `email`, `password`, `url`, `tel` and `search`.',\n type: 'string',\n status: 'optional',\n },\n autocomplete: {\n doc: 'Defaults to `off`. Set to `on` or any of [allowed `attributes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete). Keep in mind, 1. you may have to define a `name`, 2. have the input as a descendant of a `<form>` element, 3. and have a submit button inside the form.',\n type: 'string',\n status: 'optional',\n },\n submit_button_title: {\n doc: 'Title attribute for the search icon. Only relevant if search input.',\n type: 'string',\n status: 'optional',\n },\n suffix: {\n doc: 'Text describing the content of the input more than the label. you can also send in a React component, so it gets wrapped inside the Input component.',\n type: ['string', 'React.Node'],\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is `default` (2rem), `medium` (2.5rem) and `large` (3rem) are supported component sizes. Defaults to `default` / `null`. Also, if you define a number like `size={2}` then it will be forwarded as the input element attribute.',\n type: ['string', 'number'],\n status: 'optional',\n },\n selectall: {\n doc: 'If set to `true`, then the whole input value gets selected on the entry focus. A second click will place the cursor on the wanted position.',\n type: 'boolean',\n status: 'optional',\n },\n clear: {\n doc: 'If set to `true`, then a clear button will be shown which lets the user clear any given input value.',\n type: 'boolean',\n status: 'optional',\n },\n stretch: {\n doc: 'If set to `true`, then the input field will be 100% in `width`.',\n type: 'boolean',\n status: 'optional',\n },\n skeleton: {\n doc: 'If set to `true`, an overlaying skeleton with animation will be shown.',\n type: 'boolean',\n status: 'optional',\n },\n input_attributes: {\n doc: 'Provide the Input element with any attributes by using an Object `input_attributes={{size:\\'2\\'}}` or a JSON Object `input_attributes=\\'{\"size\":\"2\"}\\'`. **NB:** Keep in mind, that also every not listed component property will be sent along and set as an Input element attribute.',\n type: 'object',\n status: 'optional',\n },\n input_state: {\n doc: 'Defines a custom visual state of the input. Use it only if you have to simulate a custom state. Currently are three statuses `virgin` , `focus` and `dirty`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n submit_element: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on `type=\"search\"`.',\n type: ['string', 'React.Element'],\n status: 'optional',\n },\n inner_ref: {\n doc: 'By providing a React.ref we can get the internally used input element (DOM). E.g. `inner_ref={myRef}` by using `React.createRef()` or `React.useRef()`.',\n type: 'React.Ref',\n status: 'optional',\n },\n input_element: {\n doc: 'By providing a new component we can change the internally used element. Also supports a string only, like `input_element=\"input\"`.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n inner_element: {\n doc: 'By providing a new component to be rendered inside the \"shell\" – we can add a freely customizable internal element. Used by the Autocomplete component.',\n type: ['string', 'React.Element'],\n status: 'internal',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n"],"mappings":"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"}
|
|
@@ -25,19 +25,19 @@ function At(props) {
|
|
|
25
25
|
const dataContext = (0, _react.useContext)(_Context.default);
|
|
26
26
|
const {
|
|
27
27
|
data: contextData,
|
|
28
|
-
handlePathChange:
|
|
28
|
+
handlePathChange: handlePathChangeDataContext
|
|
29
29
|
} = dataContext;
|
|
30
30
|
const data = contextData && _jsonPointer.default.has(contextData, path) ? _jsonPointer.default.get(contextData, path) : undefined;
|
|
31
|
-
const handlePathChange = (0, _react.
|
|
32
|
-
|
|
33
|
-
}
|
|
31
|
+
const handlePathChange = (0, _react.useCallback)((changePath, value) => {
|
|
32
|
+
handlePathChangeDataContext(`${path}${changePath}`, value);
|
|
33
|
+
}, [handlePathChangeDataContext, path]);
|
|
34
34
|
if (iterate) {
|
|
35
35
|
if (!Array.isArray(data)) {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
return _react.default.createElement(_react.default.Fragment, null, data.map((element, i) => {
|
|
39
|
-
const handlePathChange =
|
|
40
|
-
|
|
39
|
+
const handlePathChange = handlePathChangeDataContext ? (changePath, value) => {
|
|
40
|
+
handlePathChangeDataContext(`${path}/${i}${changePath}`, value);
|
|
41
41
|
} : undefined;
|
|
42
42
|
return _react.default.createElement(_Context.default.Provider, {
|
|
43
43
|
key: `element${i}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"At.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_Context","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","At","props","path","iterate","children","dataContext","useContext","Context","data","contextData","handlePathChange","
|
|
1
|
+
{"version":3,"file":"At.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_Context","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","At","props","path","iterate","children","dataContext","useContext","Context","data","contextData","handlePathChange","handlePathChangeDataContext","pointer","useCallback","changePath","Array","isArray","createElement","Fragment","map","element","Provider","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context, { ContextState } from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const {\n data: contextData,\n handlePathChange: handlePathChangeDataContext,\n } = dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n (changePath, value) => {\n handlePathChangeDataContext(`${path}${changePath}`, value)\n },\n [handlePathChangeDataContext, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = (\n handlePathChangeDataContext\n ? (changePath, value) => {\n handlePathChangeDataContext(\n `${path}/${i}${changePath}`,\n value\n )\n }\n : undefined\n ) as ContextState['handlePathChange']\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":"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"}
|
|
@@ -11,7 +11,9 @@ export type EventListenerCall = {
|
|
|
11
11
|
callback: () => any;
|
|
12
12
|
};
|
|
13
13
|
export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
|
|
14
|
-
export type FilterData = (path: Path, value: any, props: FieldProps
|
|
14
|
+
export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
|
|
15
|
+
error: Error | undefined;
|
|
16
|
+
}) => boolean | undefined;
|
|
15
17
|
export interface ContextState {
|
|
16
18
|
id?: Identifier;
|
|
17
19
|
hasContext: boolean;
|
|
@@ -21,7 +23,8 @@ export interface ContextState {
|
|
|
21
23
|
errors?: Record<string, Error>;
|
|
22
24
|
/** Will set autoComplete="on" on each nested Field.String and Field.Number */
|
|
23
25
|
autoComplete?: boolean;
|
|
24
|
-
handlePathChange: (path: Path, value
|
|
26
|
+
handlePathChange: (path: Path, value?: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
|
|
27
|
+
handlePathChangeUnvalidated: (path: Path, value: any) => void;
|
|
25
28
|
updateDataValue: (path: Path, value: any) => void;
|
|
26
29
|
setData: (data: any) => void;
|
|
27
30
|
filterDataHandler: (data: any, filter: FilterData) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value
|
|
1
|
+
{"version":3,"file":"Context.js","names":["_react","_interopRequireDefault","require","_ajv","obj","__esModule","default","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","makeAjvInstance","contextErrorMessages","_isInsideFormElement","props","exports","Context","React","createContext","_default"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAuG5C,MAAMG,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE,IAAAC,oBAAe,EAAC,CAAC;EAC9BC,oBAAoB,EAAE7B,SAAS;EAC/B8B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAAAC,OAAA,CAAAnC,mBAAA,GAAAA,mBAAA;AAED,MAAMoC,OAAO,GAAGC,cAAK,CAACC,aAAa,CAAetC,mBAAmB,CAAC;AAAA,IAAAuC,QAAA,GAEvDH,OAAO;AAAAD,OAAA,CAAApC,OAAA,GAAAwC,QAAA"}
|
|
@@ -58,10 +58,6 @@ export interface Props<Data extends JsonObject> {
|
|
|
58
58
|
* The result of the onSubmit function
|
|
59
59
|
*/
|
|
60
60
|
result: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
|
|
61
|
-
/**
|
|
62
|
-
* Shows an indicator on the current label during a field change.
|
|
63
|
-
*/
|
|
64
|
-
enableAsyncChangeBehavior?: boolean;
|
|
65
61
|
/**
|
|
66
62
|
* Minimum time to display the submit indicator.
|
|
67
63
|
*/
|
|
@@ -69,7 +65,7 @@ export interface Props<Data extends JsonObject> {
|
|
|
69
65
|
/**
|
|
70
66
|
* The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.
|
|
71
67
|
*/
|
|
72
|
-
|
|
68
|
+
asyncSubmitTimeout?: number;
|
|
73
69
|
/**
|
|
74
70
|
* Scroll to top on submit
|
|
75
71
|
*/
|
|
@@ -15,7 +15,7 @@ var _isAsync = require("../../../../shared/helpers/isAsync");
|
|
|
15
15
|
var _useSharedState = require("../../../../shared/helpers/useSharedState");
|
|
16
16
|
var _Context = _interopRequireDefault(require("../Context"));
|
|
17
17
|
var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
|
|
18
|
-
const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "
|
|
18
|
+
const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
21
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -43,7 +43,7 @@ function Provider(props) {
|
|
|
43
43
|
onSubmitComplete,
|
|
44
44
|
scrollTopOnSubmit,
|
|
45
45
|
minimumAsyncBehaviorTime,
|
|
46
|
-
|
|
46
|
+
asyncSubmitTimeout,
|
|
47
47
|
sessionStorageId,
|
|
48
48
|
ajvInstance,
|
|
49
49
|
filterData,
|
|
@@ -106,7 +106,7 @@ function Provider(props) {
|
|
|
106
106
|
}, [executeAjvValidator]);
|
|
107
107
|
const checkFieldStateFor = (0, _react.useCallback)((path, state) => {
|
|
108
108
|
var _errorsRef$current;
|
|
109
|
-
return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] : fieldStateRef.current[path] === state);
|
|
109
|
+
return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] instanceof Error : fieldStateRef.current[path] === state);
|
|
110
110
|
}, []);
|
|
111
111
|
const hasFieldState = (0, _react.useCallback)(state => {
|
|
112
112
|
return mountedFieldPathsRef.current.some(path => {
|
|
@@ -117,7 +117,7 @@ function Provider(props) {
|
|
|
117
117
|
return hasFieldState('error');
|
|
118
118
|
}, [hasFieldState]);
|
|
119
119
|
const setFieldError = (0, _react.useCallback)((path, error) => {
|
|
120
|
-
fieldErrorRef.current[path] =
|
|
120
|
+
fieldErrorRef.current[path] = error;
|
|
121
121
|
}, []);
|
|
122
122
|
const setFieldState = (0, _react.useCallback)((path, fieldState) => {
|
|
123
123
|
if (fieldState !== fieldStateRef.current[path]) {
|
|
@@ -130,9 +130,12 @@ function Provider(props) {
|
|
|
130
130
|
if (filter) {
|
|
131
131
|
const filtered = _objectSpread({}, data);
|
|
132
132
|
Object.entries(fieldPropsRef.current).forEach(_ref => {
|
|
133
|
+
var _fieldErrorRef$curren;
|
|
133
134
|
let [path, props] = _ref;
|
|
134
135
|
const exists = _jsonPointer.default.has(data, path);
|
|
135
|
-
const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props
|
|
136
|
+
const result = filter(path, exists ? _jsonPointer.default.get(data, path) : undefined, props, {
|
|
137
|
+
error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
|
|
138
|
+
});
|
|
136
139
|
if (result === false && exists) {
|
|
137
140
|
_jsonPointer.default.remove(filtered, path);
|
|
138
141
|
}
|
|
@@ -239,23 +242,32 @@ function Provider(props) {
|
|
|
239
242
|
internalDataRef.current = newData;
|
|
240
243
|
forceUpdate();
|
|
241
244
|
}, []);
|
|
242
|
-
const
|
|
245
|
+
const handlePathChangeUnvalidated = (0, _react.useCallback)(async (path, value) => {
|
|
243
246
|
if (!path) {
|
|
244
247
|
return null;
|
|
245
248
|
}
|
|
249
|
+
updateDataValue(path, value);
|
|
246
250
|
if ((0, _isAsync.isAsync)(onPathChange)) {
|
|
247
251
|
await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
|
|
248
252
|
} else {
|
|
249
253
|
onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
|
|
250
254
|
}
|
|
251
|
-
|
|
255
|
+
}, [onPathChange, updateDataValue]);
|
|
256
|
+
const handlePathChange = (0, _react.useCallback)(async function (path) {
|
|
257
|
+
let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_undefined_';
|
|
258
|
+
if (!path) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
if (value !== '_undefined_') {
|
|
262
|
+
handlePathChangeUnvalidated(path, value);
|
|
263
|
+
}
|
|
252
264
|
showAllErrorsRef.current = false;
|
|
253
265
|
validateData();
|
|
254
266
|
if ((0, _isAsync.isAsync)(onChange)) {
|
|
255
|
-
return await onChange(
|
|
267
|
+
return await onChange(internalDataRef.current);
|
|
256
268
|
}
|
|
257
|
-
return onChange === null || onChange === void 0 ? void 0 : onChange(
|
|
258
|
-
}, [
|
|
269
|
+
return onChange === null || onChange === void 0 ? void 0 : onChange(internalDataRef.current);
|
|
270
|
+
}, [handlePathChangeUnvalidated, onChange, validateData]);
|
|
259
271
|
const handleMountField = (0, _react.useCallback)(path => {
|
|
260
272
|
mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
|
|
261
273
|
}, []);
|
|
@@ -285,7 +297,7 @@ function Provider(props) {
|
|
|
285
297
|
setSubmitState({
|
|
286
298
|
error: undefined
|
|
287
299
|
});
|
|
288
|
-
const asyncBehaviorIsEnabled =
|
|
300
|
+
const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
|
|
289
301
|
if (asyncBehaviorIsEnabled) {
|
|
290
302
|
setFormState('pending');
|
|
291
303
|
}
|
|
@@ -331,15 +343,15 @@ function Provider(props) {
|
|
|
331
343
|
window.requestAnimationFrame(() => {
|
|
332
344
|
setFormState(undefined);
|
|
333
345
|
});
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
})
|
|
341
|
-
}
|
|
342
|
-
}
|
|
346
|
+
if (!skipFieldValidation) {
|
|
347
|
+
onSubmitContinueRef.current = () => {
|
|
348
|
+
window.requestAnimationFrame(() => {
|
|
349
|
+
handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
|
|
350
|
+
skipFieldValidation: true
|
|
351
|
+
}));
|
|
352
|
+
});
|
|
353
|
+
};
|
|
354
|
+
}
|
|
343
355
|
}
|
|
344
356
|
onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
|
|
345
357
|
setShowAllErrors(true);
|
|
@@ -428,19 +440,29 @@ function Provider(props) {
|
|
|
428
440
|
forceUpdate();
|
|
429
441
|
}
|
|
430
442
|
}, [schema, validateData, forceUpdate]);
|
|
443
|
+
const onTimeout = (0, _react.useCallback)(() => {
|
|
444
|
+
setFormState(undefined);
|
|
445
|
+
setSubmitState({
|
|
446
|
+
info: undefined,
|
|
447
|
+
warning: undefined,
|
|
448
|
+
error: undefined
|
|
449
|
+
});
|
|
450
|
+
}, [setFormState, setSubmitState]);
|
|
431
451
|
const {
|
|
432
452
|
bufferedFormState: formState
|
|
433
453
|
} = useFormStatusBuffer({
|
|
434
454
|
formState: formStateRef.current,
|
|
435
455
|
waitFor: hasFieldState('pending'),
|
|
436
456
|
minimumAsyncBehaviorTime,
|
|
437
|
-
|
|
457
|
+
asyncSubmitTimeout,
|
|
458
|
+
onTimeout
|
|
438
459
|
});
|
|
439
460
|
const submitState = submitStateRef.current;
|
|
440
461
|
const disabled = (_rest$disabled = rest === null || rest === void 0 ? void 0 : rest['disabled']) !== null && _rest$disabled !== void 0 ? _rest$disabled : formState === 'pending';
|
|
441
462
|
return _react.default.createElement(_Context.default.Provider, {
|
|
442
463
|
value: _objectSpread({
|
|
443
464
|
handlePathChange,
|
|
465
|
+
handlePathChangeUnvalidated,
|
|
444
466
|
handleSubmit,
|
|
445
467
|
handleMountField,
|
|
446
468
|
handleUnMountField,
|
|
@@ -490,7 +512,8 @@ function useFormStatusBuffer(props) {
|
|
|
490
512
|
formState,
|
|
491
513
|
waitFor,
|
|
492
514
|
minimumAsyncBehaviorTime,
|
|
493
|
-
|
|
515
|
+
asyncSubmitTimeout,
|
|
516
|
+
onTimeout
|
|
494
517
|
} = props || {};
|
|
495
518
|
const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
|
|
496
519
|
const stateRef = (0, _react.useRef)();
|
|
@@ -526,7 +549,7 @@ function useFormStatusBuffer(props) {
|
|
|
526
549
|
if (formState === 'complete') {
|
|
527
550
|
hadCompleteRef.current = true;
|
|
528
551
|
}
|
|
529
|
-
if (formState === 'pending') {
|
|
552
|
+
if (formState === 'pending' && stateRef.current !== 'pending') {
|
|
530
553
|
clear();
|
|
531
554
|
nowRef.current = Date.now();
|
|
532
555
|
hadCompleteRef.current = false;
|
|
@@ -546,13 +569,16 @@ function useFormStatusBuffer(props) {
|
|
|
546
569
|
clear();
|
|
547
570
|
}, delay + minimum);
|
|
548
571
|
}
|
|
572
|
+
}
|
|
573
|
+
if (stateRef.current === 'pending') {
|
|
549
574
|
timeoutRef.current.timeout = setTimeout(() => {
|
|
550
|
-
|
|
575
|
+
clear();
|
|
551
576
|
setState(undefined);
|
|
552
|
-
|
|
577
|
+
onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
|
|
578
|
+
}, asyncSubmitTimeout !== null && asyncSubmitTimeout !== void 0 ? asyncSubmitTimeout : 30000);
|
|
553
579
|
}
|
|
554
580
|
return clear;
|
|
555
|
-
}, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor,
|
|
581
|
+
}, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncSubmitTimeout, onTimeout]);
|
|
556
582
|
return {
|
|
557
583
|
bufferedFormState: stateRef.current
|
|
558
584
|
};
|