@dnb/eufemia 10.51.1 → 10.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/cjs/components/badge/Badge.js +44 -37
  3. package/cjs/components/badge/Badge.js.map +1 -1
  4. package/cjs/extensions/forms/Field/Selection/Selection.js +1 -1
  5. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  6. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  7. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  8. package/cjs/extensions/forms/hooks/useFieldProps.js +23 -20
  9. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  10. package/cjs/extensions/forms/types.d.ts +2 -2
  11. package/cjs/extensions/forms/types.js.map +1 -1
  12. package/cjs/extensions/forms/utils/ajv.js +1 -1
  13. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  14. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  15. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  16. package/cjs/shared/Eufemia.d.ts +1 -1
  17. package/cjs/shared/Eufemia.js +2 -2
  18. package/cjs/shared/Eufemia.js.map +1 -1
  19. package/cjs/shared/locales/en-GB.js +1 -1
  20. package/cjs/shared/locales/en-GB.js.map +1 -1
  21. package/cjs/style/core/scopes.scss +1 -1
  22. package/cjs/style/dnb-ui-basis.css +1 -1
  23. package/cjs/style/dnb-ui-basis.min.css +1 -1
  24. package/cjs/style/dnb-ui-body.css +1 -1
  25. package/cjs/style/dnb-ui-body.min.css +1 -1
  26. package/cjs/style/dnb-ui-core.css +1 -1
  27. package/cjs/style/dnb-ui-core.min.css +1 -1
  28. package/components/badge/Badge.js +44 -37
  29. package/components/badge/Badge.js.map +1 -1
  30. package/es/components/badge/Badge.js +43 -36
  31. package/es/components/badge/Badge.js.map +1 -1
  32. package/es/extensions/forms/Field/Selection/Selection.js +1 -1
  33. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  34. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  35. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  36. package/es/extensions/forms/hooks/useFieldProps.js +22 -19
  37. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  38. package/es/extensions/forms/types.d.ts +2 -2
  39. package/es/extensions/forms/types.js.map +1 -1
  40. package/es/extensions/forms/utils/ajv.js +1 -1
  41. package/es/extensions/forms/utils/ajv.js.map +1 -1
  42. package/es/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  43. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  44. package/es/shared/Eufemia.d.ts +1 -1
  45. package/es/shared/Eufemia.js +2 -2
  46. package/es/shared/Eufemia.js.map +1 -1
  47. package/es/shared/locales/en-GB.js +1 -1
  48. package/es/shared/locales/en-GB.js.map +1 -1
  49. package/es/style/core/scopes.scss +1 -1
  50. package/es/style/dnb-ui-basis.css +1 -1
  51. package/es/style/dnb-ui-basis.min.css +1 -1
  52. package/es/style/dnb-ui-body.css +1 -1
  53. package/es/style/dnb-ui-body.min.css +1 -1
  54. package/es/style/dnb-ui-core.css +1 -1
  55. package/es/style/dnb-ui-core.min.css +1 -1
  56. package/esm/dnb-ui-basis.min.mjs +1 -1
  57. package/esm/dnb-ui-components.min.mjs +1 -1
  58. package/esm/dnb-ui-elements.min.mjs +1 -1
  59. package/esm/dnb-ui-extensions.min.mjs +2 -2
  60. package/esm/dnb-ui-lib.min.mjs +1 -1
  61. package/extensions/forms/Field/Selection/Selection.js +1 -1
  62. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  63. package/extensions/forms/Form/Visibility/Visibility.d.ts +2 -2
  64. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  65. package/extensions/forms/hooks/useFieldProps.js +22 -19
  66. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  67. package/extensions/forms/types.d.ts +2 -2
  68. package/extensions/forms/types.js.map +1 -1
  69. package/extensions/forms/utils/ajv.js +1 -1
  70. package/extensions/forms/utils/ajv.js.map +1 -1
  71. package/extensions/forms/utils/json-pointer/json-pointer.js +1 -1
  72. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  73. package/package.json +1 -1
  74. package/shared/Eufemia.d.ts +1 -1
  75. package/shared/Eufemia.js +2 -2
  76. package/shared/Eufemia.js.map +1 -1
  77. package/shared/locales/en-GB.js +1 -1
  78. package/shared/locales/en-GB.js.map +1 -1
  79. package/style/core/scopes.scss +1 -1
  80. package/style/dnb-ui-basis.css +1 -1
  81. package/style/dnb-ui-basis.min.css +1 -1
  82. package/style/dnb-ui-body.css +1 -1
  83. package/style/dnb-ui-body.min.css +1 -1
  84. package/style/dnb-ui-core.css +1 -1
  85. package/style/dnb-ui-core.min.css +1 -1
  86. package/umd/dnb-ui-basis.min.js +1 -1
  87. package/umd/dnb-ui-components.min.js +1 -1
  88. package/umd/dnb-ui-elements.min.js +1 -1
  89. package/umd/dnb-ui-extensions.min.js +3 -3
  90. package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to @dnb/eufemia will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.51.2](https://github.com/dnbexperience/eufemia/compare/v10.51.1...v10.51.2) (2024-10-03)
7
+
8
+
9
+ ### :bug: Bug Fixes
10
+
11
+ * **Badge:** prevents unwanted re-rendering ([#4049](https://github.com/dnbexperience/eufemia/issues/4049)) ([1e51e7a](https://github.com/dnbexperience/eufemia/commit/1e51e7aee28a6cc2ef1607226fc2c1463b9e4b48))
12
+ * **Field.Selection:** prevent `radio` re-render onClick to enable keyboard navigation ([#4037](https://github.com/dnbexperience/eufemia/issues/4037)) ([d122f98](https://github.com/dnbexperience/eufemia/commit/d122f98c9fd31c3e7dafde5bfc91d231e7884e62))
13
+ * **Forms:** support validation when using object based `transformOut` and `transformIn` on fields ([#4042](https://github.com/dnbexperience/eufemia/issues/4042)) ([5554525](https://github.com/dnbexperience/eufemia/commit/5554525e0272917084798aad7567773eac8e42ed)), closes [#3997](https://github.com/dnbexperience/eufemia/issues/3997)
14
+ * **Timeline:** alt label complete -> completed ([#4044](https://github.com/dnbexperience/eufemia/issues/4044)) ([4a6828d](https://github.com/dnbexperience/eufemia/commit/4a6828d29c8a7bbfb7ddd102ef672f365a6e3fab))
15
+
6
16
  ## [10.51.1](https://github.com/dnbexperience/eufemia/compare/v10.51.0...v10.51.1) (2024-09-30)
7
17
 
8
18
 
@@ -11,11 +11,11 @@ var _SpacingHelper = require("../space/SpacingHelper");
11
11
  var _SkeletonHelper = require("../skeleton/SkeletonHelper");
12
12
  var _Context = _interopRequireDefault(require("../../shared/Context"));
13
13
  var _componentHelper = require("../../shared/component-helper");
14
- const _excluded = ["label", "className", "children", "skeleton", "horizontal", "vertical", "content", "variant"];
14
+ const _excluded = ["label", "className", "children", "skeleton", "horizontal", "vertical", "content", "variant", "context"];
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
16
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
18
17
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
18
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
19
  const defaultProps = {
20
20
  label: null,
21
21
  className: null,
@@ -28,11 +28,31 @@ const defaultProps = {
28
28
  };
29
29
  exports.defaultProps = defaultProps;
30
30
  function Badge(localProps) {
31
- var _span;
32
31
  const context = _react.default.useContext(_Context.default);
33
32
  const allProps = (0, _componentHelper.extendPropsWithContext)(localProps, defaultProps, context === null || context === void 0 ? void 0 : context.Badge, {
34
33
  skeleton: context === null || context === void 0 ? void 0 : context.skeleton
35
34
  });
35
+ const {
36
+ children
37
+ } = allProps;
38
+ if (children) {
39
+ return _react.default.createElement(BadgeRoot, null, children, _react.default.createElement(BadgeElem, _extends({
40
+ context: context
41
+ }, allProps)));
42
+ }
43
+ return _react.default.createElement(BadgeElem, _extends({
44
+ context: context
45
+ }, allProps));
46
+ }
47
+ function BadgeRoot(_ref) {
48
+ let {
49
+ children
50
+ } = _ref;
51
+ return _react.default.createElement("span", {
52
+ className: "dnb-badge__root"
53
+ }, children);
54
+ }
55
+ function BadgeElem(props) {
36
56
  const {
37
57
  label,
38
58
  className,
@@ -41,42 +61,29 @@ function Badge(localProps) {
41
61
  horizontal,
42
62
  vertical,
43
63
  content: contentProp,
44
- variant
45
- } = allProps,
46
- props = _objectWithoutProperties(allProps, _excluded);
47
- (0, _componentHelper.validateDOMAttributes)(allProps, props);
48
- if (children) {
49
- return _react.default.createElement(BadgeRoot, null, children, _react.default.createElement(BadgeElem, null));
50
- }
51
- return _react.default.createElement(BadgeElem, null);
52
- function BadgeRoot(_ref) {
53
- let {
54
- children
55
- } = _ref;
56
- return _react.default.createElement("span", {
57
- className: "dnb-badge__root"
58
- }, children);
64
+ variant,
65
+ context
66
+ } = props,
67
+ restProps = _objectWithoutProperties(props, _excluded);
68
+ (0, _componentHelper.validateDOMAttributes)(props, restProps);
69
+ const skeletonClasses = (0, _SkeletonHelper.createSkeletonClass)('shape', skeleton, context);
70
+ const spacingClasses = (0, _SpacingHelper.createSpacingClasses)(props);
71
+ const contentIsNum = typeof contentProp === 'number';
72
+ const variantIsNotification = variant === 'notification';
73
+ const content = variantIsNotification && contentIsNum && contentProp > 9 ? '9+' : contentProp;
74
+ if (variantIsNotification && !contentIsNum) {
75
+ (0, _componentHelper.warn)(`Type of content should be a number: A notification badge is best suited to display content of type number.`);
59
76
  }
60
- function BadgeElem() {
61
- const skeletonClasses = (0, _SkeletonHelper.createSkeletonClass)('shape', skeleton, context);
62
- const spacingClasses = (0, _SpacingHelper.createSpacingClasses)(allProps);
63
- const contentIsNum = typeof contentProp === 'number';
64
- const variantIsNotification = variant === 'notification';
65
- const content = variantIsNotification && contentIsNum && contentProp > 9 ? '9+' : contentProp;
66
- if (variantIsNotification && !contentIsNum) {
67
- (0, _componentHelper.warn)(`Type of content should be a number: A notification badge is best suited to display content of type number.`);
68
- }
69
- if (!label && contentIsNum) {
70
- (0, _componentHelper.warn)(`Label required: A Badge with a number as content requires a label describing the content of the badge. This is to ensure correct semantic and accessibility.`);
71
- }
72
- const isInline = !children && content;
73
- return _react.default.createElement("span", _extends({
74
- role: "status",
75
- className: (0, _classnames.default)(`dnb-badge dnb-badge--variant-${variant}`, skeletonClasses, spacingClasses, className, horizontal && `dnb-badge--horizontal-${horizontal}`, vertical && `dnb-badge--vertical-${vertical}`, isInline && 'dnb-badge--inline')
76
- }, props), label && (_span || (_span = _react.default.createElement("span", {
77
- className: "dnb-sr-only"
78
- }, label, " "))), content);
77
+ if (!label && contentIsNum) {
78
+ (0, _componentHelper.warn)(`Label required: A Badge with a number as content requires a label describing the content of the badge. This is to ensure correct semantic and accessibility.`);
79
79
  }
80
+ const isInline = !children && content;
81
+ return _react.default.createElement("span", _extends({
82
+ role: "status",
83
+ className: (0, _classnames.default)(`dnb-badge dnb-badge--variant-${variant}`, skeletonClasses, spacingClasses, className, horizontal && `dnb-badge--horizontal-${horizontal}`, vertical && `dnb-badge--vertical-${vertical}`, isInline && 'dnb-badge--inline')
84
+ }, restProps), label && _react.default.createElement("span", {
85
+ className: "dnb-sr-only"
86
+ }, label, " "), content);
80
87
  }
81
88
  Badge._supportsSpacingProps = true;
82
89
  var _default = Badge;
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Context","_componentHelper","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","defaultProps","label","className","skeleton","children","content","vertical","horizontal","variant","exports","Badge","localProps","_span","context","React","useContext","Context","allProps","extendPropsWithContext","contentProp","props","validateDOMAttributes","createElement","BadgeRoot","BadgeElem","_ref","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","contentIsNum","variantIsNotification","warn","isInline","role","classnames","_supportsSpacingProps","_default"],"sources":["../../../../src/components/badge/Badge.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Shared\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\n\nexport type BadgeProps = {\n /**\n * Aria label to describe the badge\n * Default: null\n */\n label?: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content to display the badge on top of.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The content of the component.\n * Default: null\n */\n content?: string | number | React.ReactNode\n\n /**\n * The vertical positioning of the component.\n * Default: null\n */\n vertical?: 'bottom' | 'top'\n\n /**\n * The horizontal positioning of the component.\n * Default: null\n */\n horizontal?: 'left' | 'right'\n\n /**\n * The variant of the component.\n * Default: information.\n */\n variant?: 'information' | 'notification'\n}\n\ntype BadgeAndSpacingProps = BadgeProps & SpacingProps\n\nexport const defaultProps = {\n label: null,\n className: null,\n skeleton: false,\n children: null,\n content: null,\n vertical: null,\n horizontal: null,\n variant: 'information',\n}\n\nfunction Badge(localProps: BadgeAndSpacingProps) {\n // Every component should have a context\n const context = React.useContext(Context)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.Badge,\n { skeleton: context?.skeleton }\n )\n\n const {\n label,\n className,\n children, // eslint-disable-line\n skeleton,\n horizontal,\n vertical,\n content: contentProp,\n variant,\n ...props\n } = allProps\n\n validateDOMAttributes(allProps, props)\n\n if (children) {\n return (\n <BadgeRoot>\n {children}\n <BadgeElem />\n </BadgeRoot>\n )\n }\n\n return <BadgeElem />\n\n function BadgeRoot({ children }: { children: React.ReactNode }) {\n return <span className=\"dnb-badge__root\">{children}</span>\n }\n\n function BadgeElem() {\n const skeletonClasses = createSkeletonClass('shape', skeleton, context)\n const spacingClasses = createSpacingClasses(allProps)\n const contentIsNum = typeof contentProp === 'number'\n const variantIsNotification = variant === 'notification'\n\n const content =\n variantIsNotification && contentIsNum && contentProp > 9\n ? '9+'\n : contentProp\n\n if (variantIsNotification && !contentIsNum) {\n warn(\n `Type of content should be a number: A notification badge is best suited to display content of type number.`\n )\n }\n if (!label && contentIsNum) {\n warn(\n `Label required: A Badge with a number as content requires a label describing the content of the badge. This is to ensure correct semantic and accessibility.`\n )\n }\n\n const isInline = !children && content\n\n return (\n <span\n role=\"status\"\n className={classnames(\n 'dnb-badge',\n `dnb-badge--variant-${variant}`,\n horizontal && `dnb-badge--horizontal-${horizontal}`,\n vertical && `dnb-badge--vertical-${vertical}`,\n isInline && 'dnb-badge--inline',\n skeletonClasses,\n spacingClasses,\n className\n )}\n {...props}\n >\n {label && <span className=\"dnb-sr-only\">{label} </span>}\n {content}\n </span>\n )\n }\n}\n\nBadge._supportsSpacingProps = true\n\nexport default Badge\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAGA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AAGA,IAAAK,gBAAA,GAAAL,OAAA;AAIsC,MAAAM,SAAA;AAAA,SAAAP,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,yBAAAN,MAAA,EAAAO,QAAA,QAAAP,MAAA,yBAAAJ,MAAA,GAAAY,6BAAA,CAAAR,MAAA,EAAAO,QAAA,OAAAN,GAAA,EAAAJ,CAAA,MAAAJ,MAAA,CAAAgB,qBAAA,QAAAC,gBAAA,GAAAjB,MAAA,CAAAgB,qBAAA,CAAAT,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAa,gBAAA,CAAAX,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAAS,gBAAA,CAAAb,CAAA,OAAAU,QAAA,CAAAI,OAAA,CAAAV,GAAA,uBAAAR,MAAA,CAAAS,SAAA,CAAAU,oBAAA,CAAAR,IAAA,CAAAJ,MAAA,EAAAC,GAAA,aAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,cAAAL,MAAA;AAAA,SAAAY,8BAAAR,MAAA,EAAAO,QAAA,QAAAP,MAAA,yBAAAJ,MAAA,WAAAiB,UAAA,GAAApB,MAAA,CAAAqB,IAAA,CAAAd,MAAA,OAAAC,GAAA,EAAAJ,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAgB,UAAA,CAAAd,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAAY,UAAA,CAAAhB,CAAA,OAAAU,QAAA,CAAAI,OAAA,CAAAV,GAAA,kBAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,YAAAL,MAAA;AAsD/B,MAAMmB,YAAY,GAAG;EAC1BC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,KAAK;EACfC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,IAAI;EACbC,QAAQ,EAAE,IAAI;EACdC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE;AACX,CAAC;AAAAC,OAAA,CAAAT,YAAA,GAAAA,YAAA;AAED,SAASU,KAAKA,CAACC,UAAgC,EAAE;EAAA,IAAAC,KAAA;EAE/C,MAAMC,OAAO,GAAGC,cAAK,CAACC,UAAU,CAACC,gBAAO,CAAC;EAGzC,MAAMC,QAAQ,GAAG,IAAAC,uCAAsB,EACrCP,UAAU,EACVX,YAAY,EACZa,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH,KAAK,EACd;IAAEP,QAAQ,EAAEU,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEV;EAAS,CAChC,CAAC;EAED,MAAM;MACJF,KAAK;MACLC,SAAS;MACTE,QAAQ;MACRD,QAAQ;MACRI,UAAU;MACVD,QAAQ;MACRD,OAAO,EAAEc,WAAW;MACpBX;IAEF,CAAC,GAAGS,QAAQ;IADPG,KAAK,GAAA7B,wBAAA,CACN0B,QAAQ,EAAA5C,SAAA;EAEZ,IAAAgD,sCAAqB,EAACJ,QAAQ,EAAEG,KAAK,CAAC;EAEtC,IAAIhB,QAAQ,EAAE;IACZ,OACEvC,MAAA,CAAAW,OAAA,CAAA8C,aAAA,CAACC,SAAS,QACPnB,QAAQ,EACTvC,MAAA,CAAAW,OAAA,CAAA8C,aAAA,CAACE,SAAS,MAAE,CACH,CAAC;EAEhB;EAEA,OAAO3D,MAAA,CAAAW,OAAA,CAAA8C,aAAA,CAACE,SAAS,MAAE,CAAC;EAEpB,SAASD,SAASA,CAAAE,IAAA,EAA8C;IAAA,IAA7C;MAAErB;IAAwC,CAAC,GAAAqB,IAAA;IAC5D,OAAO5D,MAAA,CAAAW,OAAA,CAAA8C,aAAA;MAAMpB,SAAS,EAAC;IAAiB,GAAEE,QAAe,CAAC;EAC5D;EAEA,SAASoB,SAASA,CAAA,EAAG;IACnB,MAAME,eAAe,GAAG,IAAAC,mCAAmB,EAAC,OAAO,EAAExB,QAAQ,EAAEU,OAAO,CAAC;IACvE,MAAMe,cAAc,GAAG,IAAAC,mCAAoB,EAACZ,QAAQ,CAAC;IACrD,MAAMa,YAAY,GAAG,OAAOX,WAAW,KAAK,QAAQ;IACpD,MAAMY,qBAAqB,GAAGvB,OAAO,KAAK,cAAc;IAExD,MAAMH,OAAO,GACX0B,qBAAqB,IAAID,YAAY,IAAIX,WAAW,GAAG,CAAC,GACpD,IAAI,GACJA,WAAW;IAEjB,IAAIY,qBAAqB,IAAI,CAACD,YAAY,EAAE;MAC1C,IAAAE,qBAAI,EACD,4GACH,CAAC;IACH;IACA,IAAI,CAAC/B,KAAK,IAAI6B,YAAY,EAAE;MAC1B,IAAAE,qBAAI,EACD,8JACH,CAAC;IACH;IAEA,MAAMC,QAAQ,GAAG,CAAC7B,QAAQ,IAAIC,OAAO;IAErC,OACExC,MAAA,CAAAW,OAAA,CAAA8C,aAAA,SAAA7C,QAAA;MACEyD,IAAI,EAAC,QAAQ;MACbhC,SAAS,EAAE,IAAAiC,mBAAU,kCAEG3B,OAAQ,IAI9BkB,eAAe,EACfE,cAAc,EACd1B,SAAS,EALTK,UAAU,IAAK,yBAAwBA,UAAW,EAAC,EACnDD,QAAQ,IAAK,uBAAsBA,QAAS,EAAC,EAC7C2B,QAAQ,IAAI,mBAId;IAAE,GACEb,KAAK,GAERnB,KAAK,KAAAW,KAAA,KAAAA,KAAA,GAAI/C,MAAA,CAAAW,OAAA,CAAA8C,aAAA;MAAMpB,SAAS,EAAC;IAAa,GAAED,KAAK,EAAC,GAAO,CAAC,IACtDI,OACG,CAAC;EAEX;AACF;AAEAK,KAAK,CAAC0B,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAEnB3B,KAAK;AAAAD,OAAA,CAAAjC,OAAA,GAAA6D,QAAA"}
1
+ {"version":3,"file":"Badge.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Context","_componentHelper","_excluded","obj","__esModule","default","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","_extends","assign","bind","arguments","hasOwnProperty","apply","defaultProps","label","className","skeleton","children","content","vertical","horizontal","variant","exports","Badge","localProps","context","React","useContext","Context","allProps","extendPropsWithContext","createElement","BadgeRoot","BadgeElem","_ref","props","contentProp","restProps","validateDOMAttributes","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","contentIsNum","variantIsNotification","warn","isInline","role","classnames","_supportsSpacingProps","_default"],"sources":["../../../../src/components/badge/Badge.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Shared\nimport Context, { ContextProps } from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\n\nexport type BadgeProps = {\n /**\n * Aria label to describe the badge\n * Default: null\n */\n label?: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content to display the badge on top of.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The content of the component.\n * Default: null\n */\n content?: string | number | React.ReactNode\n\n /**\n * The vertical positioning of the component.\n * Default: null\n */\n vertical?: 'bottom' | 'top'\n\n /**\n * The horizontal positioning of the component.\n * Default: null\n */\n horizontal?: 'left' | 'right'\n\n /**\n * The variant of the component.\n * Default: information.\n */\n variant?: 'information' | 'notification'\n}\n\ntype BadgeAndSpacingProps = BadgeProps & SpacingProps\n\nexport const defaultProps = {\n label: null,\n className: null,\n skeleton: false,\n children: null,\n content: null,\n vertical: null,\n horizontal: null,\n variant: 'information',\n}\n\nfunction Badge(localProps: BadgeAndSpacingProps) {\n // Every component should have a context\n const context = React.useContext(Context)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.Badge,\n { skeleton: context?.skeleton }\n )\n const { children } = allProps\n\n if (children) {\n return (\n <BadgeRoot>\n {children}\n <BadgeElem context={context} {...allProps} />\n </BadgeRoot>\n )\n }\n\n return <BadgeElem context={context} {...allProps} />\n}\n\nfunction BadgeRoot({ children }: { children: React.ReactNode }) {\n return <span className=\"dnb-badge__root\">{children}</span>\n}\n\nfunction BadgeElem(\n props: BadgeAndSpacingProps & { context: ContextProps }\n) {\n const {\n label,\n className,\n children,\n skeleton,\n horizontal,\n vertical,\n content: contentProp,\n variant,\n context,\n ...restProps\n } = props\n\n // to remove spacing props, etc.\n validateDOMAttributes(props, restProps)\n\n const skeletonClasses = createSkeletonClass('shape', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n const contentIsNum = typeof contentProp === 'number'\n const variantIsNotification = variant === 'notification'\n\n const content =\n variantIsNotification && contentIsNum && contentProp > 9\n ? '9+'\n : contentProp\n\n if (variantIsNotification && !contentIsNum) {\n warn(\n `Type of content should be a number: A notification badge is best suited to display content of type number.`\n )\n }\n if (!label && contentIsNum) {\n warn(\n `Label required: A Badge with a number as content requires a label describing the content of the badge. This is to ensure correct semantic and accessibility.`\n )\n }\n\n const isInline = !children && content\n\n return (\n <span\n role=\"status\"\n className={classnames(\n 'dnb-badge',\n `dnb-badge--variant-${variant}`,\n horizontal && `dnb-badge--horizontal-${horizontal}`,\n vertical && `dnb-badge--vertical-${vertical}`,\n isInline && 'dnb-badge--inline',\n skeletonClasses,\n spacingClasses,\n className\n )}\n {...restProps}\n >\n {label && <span className=\"dnb-sr-only\">{label} </span>}\n {content}\n </span>\n )\n}\n\nBadge._supportsSpacingProps = true\n\nexport default Badge\n"],"mappings":"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"}
@@ -193,7 +193,7 @@ function renderRadioItems(_ref5) {
193
193
  const Component = variant === 'radio' ? _components.Radio : _components.ToggleButton;
194
194
  return _react.default.createElement(Component, _extends({
195
195
  id: optionsCount === 1 ? id : undefined,
196
- key: `option-${i}-${value}`,
196
+ key: `option-${i}-${id}`,
197
197
  label: variant === 'radio' ? label : undefined,
198
198
  text: variant === 'button' ? label : undefined,
199
199
  value: String(value !== null && value !== void 0 ? value : ''),
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_utils","_FieldBlock","_types","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","propertyIsEnumerable","sourceKeys","keys","_extends","assign","bind","arguments","apply","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Selection","props","clearValue","useMemo","makeUniqueId","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDropdownChange","useCallback","_ref","selectedKey","onChangeHandler","_ref2","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","pickSpacingProps","Component","Radio","ToggleButton","items","renderRadioItems","createElement","asFieldset","React","Children","count","Group","layout_direction","on_change","status","getStatus","renderDropdownItems","concat","makeOptions","Boolean","sharedProps","list_class","portal_class","title","suffix","HelpButton","content","on_show","on_hide","stretch","Autocomplete","convertCamelCaseProps","Dropdown","_error$message","message","Error","FormError","toString","_ref5","optionsCount","createOption","rest","size","text","map","mapOptions","_ref6","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref7","_props$children","_props$value","_ref8","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(children: React.ReactNode, { createOption }) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_componentHelper","_components","_Option","_hooks","_utils","_FieldBlock","_types","_withCamelCaseProps","_useDataValue","_em","_em2","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","i","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","propertyIsEnumerable","sourceKeys","keys","_extends","assign","bind","arguments","apply","ownKeys","object","enumerableOnly","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","Selection","props","clearValue","useMemo","makeUniqueId","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","useFieldProps","getValueByPath","useDataValue","dataList","handleDropdownChange","useCallback","_ref","selectedKey","onChangeHandler","_ref2","handleShow","_ref3","handleHide","_ref4","cn","classnames","fieldBlockProps","forId","pickSpacingProps","Component","Radio","ToggleButton","items","renderRadioItems","createElement","asFieldset","React","Children","count","Group","layout_direction","on_change","status","getStatus","renderDropdownItems","concat","makeOptions","Boolean","sharedProps","list_class","portal_class","title","suffix","HelpButton","content","on_show","on_hide","stretch","Autocomplete","convertCamelCaseProps","Dropdown","_error$message","message","Error","FormError","toString","_ref5","optionsCount","createOption","rest","size","text","map","mapOptions","_ref6","child","isValidElement","type","OptionField","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref7","_props$children","_props$value","_ref8","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(children: React.ReactNode, { createOption }) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
@@ -11,7 +11,7 @@ export type VisibleWhen = {
11
11
  hasValue: unknown;
12
12
  }
13
13
  /**
14
- * @deprecated Will be remove din v11!
14
+ * @deprecated Will be removed in v11!
15
15
  */
16
16
  | {
17
17
  path: Path;
@@ -19,7 +19,7 @@ export type VisibleWhen = {
19
19
  withValue: (value: unknown) => boolean;
20
20
  }
21
21
  /**
22
- * @deprecated Will be remove din v11!
22
+ * @deprecated Will be removed in v11!
23
23
  */
24
24
  | {
25
25
  itemPath: Path;
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["_react","_interopRequireDefault","require","_helpers","_useMountEffect","_HeightAnimation","_Provider","_useVisibility","_VisibilityContext","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","useMountEffect","warn","check","useVisibility","open","content","createElement","Provider","value","isVisible","props","Boolean","className","hidden","Fragment","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown\n }\n | {\n itemPath: Path\n hasValue: unknown\n }\n /**\n * @deprecated Will be remove din v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be remove din v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationProps['compensateForGap']\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 compensateForGap,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\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 compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...props}>{content}</FieldProvider>\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 <FieldProvider {...props}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","names":["_react","_interopRequireDefault","require","_helpers","_useMountEffect","_HeightAnimation","_Provider","_useVisibility","_VisibilityContext","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","useMountEffect","warn","check","useVisibility","open","content","createElement","Provider","value","isVisible","props","Boolean","className","hidden","Fragment","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown\n }\n | {\n itemPath: Path\n hasValue: unknown\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationProps['compensateForGap']\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 compensateForGap,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\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 compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...props}>{content}</FieldProvider>\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 <FieldProvider {...props}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
@@ -27,7 +27,7 @@ var _usePath = _interopRequireDefault(require("./usePath"));
27
27
  var _useSharedState = require("../../../shared/helpers/useSharedState");
28
28
  var _isAsync = require("../../../shared/helpers/isAsync");
29
29
  var _useTranslation = _interopRequireDefault(require("./useTranslation"));
30
- var _useExternalValue2 = _interopRequireDefault(require("./useExternalValue"));
30
+ var _useExternalValue = _interopRequireDefault(require("./useExternalValue"));
31
31
  var _useDataValue = _interopRequireDefault(require("./useDataValue"));
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
  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); }
@@ -40,7 +40,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
40
40
  const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;
41
41
  function useFieldProps(localeProps) {
42
42
  var _dataContext$props,
43
- _useExternalValue,
43
+ _transformers$current,
44
44
  _dataContext$ajvInsta,
45
45
  _localErrorRef$curren,
46
46
  _ref3,
@@ -176,13 +176,13 @@ function useFieldProps(localeProps) {
176
176
  useLayoutEffect(() => {
177
177
  defaultValueRef.current = defaultValue;
178
178
  }, []);
179
- const externalValue = (_useExternalValue = (0, _useExternalValue2.default)({
179
+ const externalValue = (_transformers$current = transformers.current.transformIn((0, _useExternalValue.default)({
180
180
  path,
181
181
  itemPath,
182
182
  value: valueProp,
183
183
  transformers,
184
184
  emptyValue
185
- })) !== null && _useExternalValue !== void 0 ? _useExternalValue : defaultValueRef.current;
185
+ }))) !== null && _transformers$current !== void 0 ? _transformers$current : defaultValueRef.current;
186
186
  const valueRef = (0, _react.useRef)(externalValue);
187
187
  const changedRef = (0, _react.useRef)();
188
188
  const hasFocusRef = (0, _react.useRef)();
@@ -695,10 +695,11 @@ function useFieldProps(localeProps) {
695
695
  } = _ref7;
696
696
  const value = transformers.current.toEvent(overrideValue !== null && overrideValue !== void 0 ? overrideValue : valueRef.current, eventName);
697
697
  const args = transformers.current.provideAdditionalArgs(value, additionalArgs);
698
+ const transformedValue = transformers.current.transformOut(value, args);
698
699
  if (typeof args !== 'undefined') {
699
- return [value, args];
700
+ return [transformedValue, args];
700
701
  }
701
- return [value];
702
+ return [transformedValue];
702
703
  }, []);
703
704
  const setHasFocus = (0, _react.useCallback)(async (hasFocus, overrideValue, additionalArgs) => {
704
705
  const args = getEventArgs({
@@ -829,19 +830,25 @@ function useFieldProps(localeProps) {
829
830
  forceUpdate();
830
831
  }, [asyncBehaviorIsEnabled, executeOnChangeRegardlessOfError, hasPath, yieldAsyncProcess, onChangeContext, defineAsyncProcess, hasError, setEventResult, handlePathChangeDataContext, identifier]);
831
832
  const updateValue = (0, _react.useCallback)(async newValue => {
832
- if (newValue === valueRef.current) {
833
+ const currentValue = valueRef.current;
834
+ if (newValue === currentValue) {
833
835
  return;
834
836
  }
835
- valueRef.current = newValue;
837
+ const transformedValue = transformers.current.transformValue(newValue, currentValue);
838
+ const contextValue = transformers.current.transformOut(transformedValue, transformers.current.provideAdditionalArgs(transformedValue, additionalArgs));
839
+ valueRef.current = transformedValue;
836
840
  if (hasPath) {
837
- handlePathChangeUnvalidatedDataContext(identifier, newValue);
841
+ handlePathChangeUnvalidatedDataContext(identifier, contextValue);
842
+ }
843
+ if (itemPath) {
844
+ handleChangeIterateContext === null || handleChangeIterateContext === void 0 ? void 0 : handleChangeIterateContext(makeIteratePath(itemPath, ''), contextValue);
838
845
  }
839
846
  addToPool('validator', validateValue, (0, _isAsync.isAsync)(onChangeValidatorRef.current));
840
847
  addToPool('onChangeContext', callOnChangeContext, (0, _isAsync.isAsync)(onChangeContext));
841
848
  await runPool(() => {
842
849
  handleError();
843
850
  });
844
- }, [hasPath, addToPool, validateValue, callOnChangeContext, onChangeContext, runPool, handlePathChangeUnvalidatedDataContext, identifier, handleError]);
851
+ }, [additionalArgs, hasPath, itemPath, addToPool, validateValue, callOnChangeContext, onChangeContext, runPool, handlePathChangeUnvalidatedDataContext, identifier, handleChangeIterateContext, makeIteratePath, handleError]);
845
852
  const setChanged = state => {
846
853
  changedRef.current = state;
847
854
  };
@@ -852,16 +859,12 @@ function useFieldProps(localeProps) {
852
859
  if (fromInput === currentValue) {
853
860
  return;
854
861
  }
855
- const transformedValue = transformers.current.transformOut(transformers.current.transformValue(fromInput, currentValue), transformers.current.provideAdditionalArgs(fromInput, additionalArgs));
856
862
  changedRef.current = true;
857
- if (itemPath) {
858
- handleChangeIterateContext === null || handleChangeIterateContext === void 0 ? void 0 : handleChangeIterateContext(makeIteratePath(itemPath, ''), transformedValue);
859
- }
860
863
  if (asyncBehaviorIsEnabled) {
861
864
  hideError();
862
- await updateValue(transformedValue);
865
+ await updateValue(fromInput);
863
866
  } else {
864
- updateValue(transformedValue);
867
+ updateValue(fromInput);
865
868
  }
866
869
  if ((0, _isAsync.isAsync)(onChange)) {
867
870
  addToPool('onChangeLocal', async () => {
@@ -900,7 +903,7 @@ function useFieldProps(localeProps) {
900
903
  setEventResult(onChange === null || onChange === void 0 ? void 0 : onChange.apply(_this, args));
901
904
  }
902
905
  await runPool();
903
- }, [itemPath, asyncBehaviorIsEnabled, onChange, runPool, handleChangeIterateContext, makeIteratePath, hideError, updateValue, addToPool, getEventArgs, yieldAsyncProcess, defineAsyncProcess, hasError, setEventResult]);
906
+ }, [asyncBehaviorIsEnabled, onChange, runPool, hideError, updateValue, addToPool, getEventArgs, yieldAsyncProcess, defineAsyncProcess, hasError, setEventResult]);
904
907
  const handleFocus = (0, _react.useCallback)(() => setHasFocus(true), [setHasFocus]);
905
908
  const handleBlur = (0, _react.useCallback)(() => setHasFocus(false), [setHasFocus]);
906
909
  setFieldPropsDataContext === null || setFieldPropsDataContext === void 0 ? void 0 : setFieldPropsDataContext(identifier, props);
@@ -1006,12 +1009,12 @@ function useFieldProps(localeProps) {
1006
1009
  let valueToStore = valueProp;
1007
1010
  const data = wizardContext !== null && wizardContext !== void 0 && wizardContext.prerenderFieldProps ? dataContext.data : (_dataContext$internal = dataContext.internalDataRef) === null || _dataContext$internal === void 0 ? void 0 : _dataContext$internal.current;
1008
1011
  const hasValue = _jsonPointer.default.has(data, identifier) || identifier === '/';
1009
- const existingValue = identifier === '/' ? data : hasValue ? _jsonPointer.default.get(data, identifier) : undefined;
1012
+ const existingValue = transformers.current.transformIn(identifier === '/' ? data : hasValue ? _jsonPointer.default.get(data, identifier) : undefined);
1010
1013
  if (dataContext.id && !hasValue && typeof existingValue === 'undefined' && typeof valueToStore === 'undefined') {
1011
1014
  const sharedState = (0, _useSharedState.createSharedState)(dataContext.id);
1012
1015
  const hasValue = _jsonPointer.default.has(sharedState.data, identifier);
1013
1016
  if (hasValue) {
1014
- const sharedValue = _jsonPointer.default.get(sharedState.data, identifier);
1017
+ const sharedValue = transformers.current.transformIn(_jsonPointer.default.get(sharedState.data, identifier));
1015
1018
  if (sharedValue) {
1016
1019
  valueToStore = sharedValue;
1017
1020
  }
@@ -1195,7 +1198,7 @@ function useFieldProps(localeProps) {
1195
1198
  name: props.name || ((_props$path = props.path) === null || _props$path === void 0 ? void 0 : _props$path.replace('/', '')) || id,
1196
1199
  autoComplete: (_props$autoComplete = props.autoComplete) !== null && _props$autoComplete !== void 0 ? _props$autoComplete : dataContext.autoComplete === true ? 'on' : undefined,
1197
1200
  id,
1198
- value: transformers.current.transformIn(transformers.current.toInput(valueRef.current)),
1201
+ value: transformers.current.toInput(valueRef.current),
1199
1202
  hasError: hasVisibleError,
1200
1203
  isChanged: Boolean(changedRef.current),
1201
1204
  props,