@dnb/eufemia 10.30.0 → 10.30.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/checkbox/Checkbox.d.ts +1 -1
  3. package/cjs/components/checkbox/Checkbox.js +6 -3
  4. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  5. package/cjs/components/flex/style/dnb-flex.css +4 -0
  6. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  7. package/cjs/components/flex/style/flex-stack.scss +3 -0
  8. package/cjs/components/height-animation/HeightAnimationInstance.js +4 -3
  9. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  10. package/cjs/components/table/useTableAnimationHandler.js +1 -1
  11. package/cjs/components/table/useTableAnimationHandler.js.map +1 -1
  12. package/cjs/extensions/forms/DataContext/Provider/Provider.js +8 -1
  13. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  14. package/cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
  15. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
  16. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  17. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
  18. package/cjs/extensions/forms/Form/Visibility/Visibility.js +16 -10
  19. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  20. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +17 -1
  21. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  22. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js +7 -5
  23. package/cjs/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  24. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
  25. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js +7 -5
  26. package/cjs/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  27. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js +8 -6
  28. package/cjs/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  29. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js +7 -5
  30. package/cjs/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  31. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -2
  32. package/cjs/extensions/forms/hooks/useFieldProps.js +5 -3
  33. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  34. package/cjs/shared/Eufemia.d.ts +1 -1
  35. package/cjs/shared/Eufemia.js +2 -2
  36. package/cjs/shared/Eufemia.js.map +1 -1
  37. package/cjs/shared/helpers/assignPropsWithContext.js +6 -1
  38. package/cjs/shared/helpers/assignPropsWithContext.js.map +1 -1
  39. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +0 -1
  40. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  41. package/cjs/style/core/scopes.scss +1 -1
  42. package/cjs/style/dnb-ui-basis.css +1 -1
  43. package/cjs/style/dnb-ui-basis.min.css +1 -1
  44. package/cjs/style/dnb-ui-body.css +1 -1
  45. package/cjs/style/dnb-ui-body.min.css +1 -1
  46. package/cjs/style/dnb-ui-components.css +4 -0
  47. package/cjs/style/dnb-ui-components.min.css +1 -1
  48. package/cjs/style/dnb-ui-core.css +1 -1
  49. package/cjs/style/dnb-ui-core.min.css +1 -1
  50. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  51. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  52. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  53. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  54. package/cjs/style/themes/theme-ui/ui-theme-components.css +4 -0
  55. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  56. package/components/checkbox/Checkbox.d.ts +1 -1
  57. package/components/checkbox/Checkbox.js +6 -3
  58. package/components/checkbox/Checkbox.js.map +1 -1
  59. package/components/flex/style/dnb-flex.css +4 -0
  60. package/components/flex/style/dnb-flex.min.css +1 -1
  61. package/components/flex/style/flex-stack.scss +3 -0
  62. package/components/height-animation/HeightAnimationInstance.js +4 -3
  63. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  64. package/components/table/useTableAnimationHandler.js +1 -1
  65. package/components/table/useTableAnimationHandler.js.map +1 -1
  66. package/es/components/checkbox/Checkbox.d.ts +1 -1
  67. package/es/components/checkbox/Checkbox.js +6 -3
  68. package/es/components/checkbox/Checkbox.js.map +1 -1
  69. package/es/components/flex/style/dnb-flex.css +4 -0
  70. package/es/components/flex/style/dnb-flex.min.css +1 -1
  71. package/es/components/flex/style/flex-stack.scss +3 -0
  72. package/es/components/height-animation/HeightAnimationInstance.js +4 -3
  73. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  74. package/es/components/table/useTableAnimationHandler.js +1 -1
  75. package/es/components/table/useTableAnimationHandler.js.map +1 -1
  76. package/es/extensions/forms/DataContext/Provider/Provider.js +8 -1
  77. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  78. package/es/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
  79. package/es/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
  80. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  81. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
  82. package/es/extensions/forms/Form/Visibility/Visibility.js +16 -10
  83. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  84. package/es/extensions/forms/ValueBlock/ValueBlock.js +18 -2
  85. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  86. package/es/extensions/forms/Wizard/hooks/useNextRouter.js +5 -4
  87. package/es/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  88. package/es/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
  89. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js +6 -5
  90. package/es/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  91. package/es/extensions/forms/Wizard/hooks/useReachRouter.js +6 -5
  92. package/es/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  93. package/es/extensions/forms/Wizard/hooks/useReactRouter.js +5 -4
  94. package/es/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  95. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -2
  96. package/es/extensions/forms/hooks/useFieldProps.js +5 -3
  97. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  98. package/es/shared/Eufemia.d.ts +1 -1
  99. package/es/shared/Eufemia.js +2 -2
  100. package/es/shared/Eufemia.js.map +1 -1
  101. package/es/shared/helpers/assignPropsWithContext.js +4 -1
  102. package/es/shared/helpers/assignPropsWithContext.js.map +1 -1
  103. package/es/shared/helpers/runCssVersionMismatchWarning.js +0 -1
  104. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  105. package/es/style/core/scopes.scss +1 -1
  106. package/es/style/dnb-ui-basis.css +1 -1
  107. package/es/style/dnb-ui-basis.min.css +1 -1
  108. package/es/style/dnb-ui-body.css +1 -1
  109. package/es/style/dnb-ui-body.min.css +1 -1
  110. package/es/style/dnb-ui-components.css +4 -0
  111. package/es/style/dnb-ui-components.min.css +1 -1
  112. package/es/style/dnb-ui-core.css +1 -1
  113. package/es/style/dnb-ui-core.min.css +1 -1
  114. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  115. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  116. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  117. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  118. package/es/style/themes/theme-ui/ui-theme-components.css +4 -0
  119. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  120. package/esm/dnb-ui-basis.min.mjs +1 -1
  121. package/esm/dnb-ui-components.min.mjs +1 -1
  122. package/esm/dnb-ui-elements.min.mjs +1 -1
  123. package/esm/dnb-ui-extensions.min.mjs +3 -3
  124. package/esm/dnb-ui-lib.min.mjs +1 -1
  125. package/extensions/forms/DataContext/Provider/Provider.js +8 -1
  126. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  127. package/extensions/forms/Form/FieldProps/FieldProps.d.ts +2 -0
  128. package/extensions/forms/Form/FieldProps/FieldProps.js +27 -20
  129. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  130. package/extensions/forms/Form/Visibility/Visibility.d.ts +3 -2
  131. package/extensions/forms/Form/Visibility/Visibility.js +16 -10
  132. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  133. package/extensions/forms/ValueBlock/ValueBlock.js +18 -2
  134. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  135. package/extensions/forms/Wizard/hooks/useNextRouter.js +7 -5
  136. package/extensions/forms/Wizard/hooks/useNextRouter.js.map +1 -1
  137. package/extensions/forms/Wizard/hooks/useQueryLocator.d.ts +1 -1
  138. package/extensions/forms/Wizard/hooks/useQueryLocator.js +7 -5
  139. package/extensions/forms/Wizard/hooks/useQueryLocator.js.map +1 -1
  140. package/extensions/forms/Wizard/hooks/useReachRouter.js +8 -6
  141. package/extensions/forms/Wizard/hooks/useReachRouter.js.map +1 -1
  142. package/extensions/forms/Wizard/hooks/useReactRouter.js +7 -5
  143. package/extensions/forms/Wizard/hooks/useReactRouter.js.map +1 -1
  144. package/extensions/forms/hooks/useFieldProps.d.ts +2 -2
  145. package/extensions/forms/hooks/useFieldProps.js +5 -3
  146. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  147. package/package.json +1 -1
  148. package/shared/Eufemia.d.ts +1 -1
  149. package/shared/Eufemia.js +2 -2
  150. package/shared/Eufemia.js.map +1 -1
  151. package/shared/helpers/assignPropsWithContext.js +4 -1
  152. package/shared/helpers/assignPropsWithContext.js.map +1 -1
  153. package/shared/helpers/runCssVersionMismatchWarning.js +0 -1
  154. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  155. package/style/core/scopes.scss +1 -1
  156. package/style/dnb-ui-basis.css +1 -1
  157. package/style/dnb-ui-basis.min.css +1 -1
  158. package/style/dnb-ui-body.css +1 -1
  159. package/style/dnb-ui-body.min.css +1 -1
  160. package/style/dnb-ui-components.css +4 -0
  161. package/style/dnb-ui-components.min.css +1 -1
  162. package/style/dnb-ui-core.css +1 -1
  163. package/style/dnb-ui-core.min.css +1 -1
  164. package/style/themes/theme-eiendom/eiendom-theme-components.css +4 -0
  165. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  166. package/style/themes/theme-sbanken/sbanken-theme-components.css +4 -0
  167. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  168. package/style/themes/theme-ui/ui-theme-components.css +4 -0
  169. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  170. package/umd/dnb-ui-basis.min.js +1 -1
  171. package/umd/dnb-ui-components.min.js +1 -1
  172. package/umd/dnb-ui-elements.min.js +1 -1
  173. package/umd/dnb-ui-extensions.min.js +2 -2
  174. package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
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.30.2](https://github.com/dnbexperience/eufemia/compare/v10.30.1...v10.30.2) (2024-05-10)
7
+
8
+
9
+ ### :bug: Bug Fixes
10
+
11
+ * **forms:** fix wrong TypeScript JSX return type ([#3550](https://github.com/dnbexperience/eufemia/issues/3550)) ([bdd68aa](https://github.com/dnbexperience/eufemia/commit/bdd68aacfa23bcaf89431a76e0952e892237f1a3))
12
+
13
+ ## [10.30.1](https://github.com/dnbexperience/eufemia/compare/v10.30.0...v10.30.1) (2024-05-10)
14
+
15
+
16
+ ### :memo: Documentation
17
+
18
+ * **Portal:** updates css import documentation ([#3542](https://github.com/dnbexperience/eufemia/issues/3542)) ([0b80110](https://github.com/dnbexperience/eufemia/commit/0b801103d40b4e6c43ea3270dfdb7914ebc9d7da))
19
+
20
+
21
+ ### :bug: Bug Fixes
22
+
23
+ * **Checkbox:** fix types issues ([#3540](https://github.com/dnbexperience/eufemia/issues/3540)) ([ed7b1cd](https://github.com/dnbexperience/eufemia/commit/ed7b1cd3f5a3c5012f18dbc16994102bcc8c5466))
24
+ * **Flex.Stack:** align Button to not stretch ([#3544](https://github.com/dnbexperience/eufemia/issues/3544)) ([931d80e](https://github.com/dnbexperience/eufemia/commit/931d80e438f66a988ce9de7457d943c01952f018))
25
+ * **forms:** add `filterData` support to Visibility ([#3543](https://github.com/dnbexperience/eufemia/issues/3543)) ([7ee3f25](https://github.com/dnbexperience/eufemia/commit/7ee3f259c89007d3756c28b8f7e132c93232a16a))
26
+ * **forms:** make id of Wizard location hooks optional ([#3545](https://github.com/dnbexperience/eufemia/issues/3545)) ([91f1026](https://github.com/dnbexperience/eufemia/commit/91f102649a65f30f98e6e8a7e94e317e91efd24b))
27
+ * **forms:** warn when Value component should be wrapped within Value.SummaryList ([#3547](https://github.com/dnbexperience/eufemia/issues/3547)) ([7691eb9](https://github.com/dnbexperience/eufemia/commit/7691eb99889f30baa614e9a732624e828314f15e))
28
+ * **HeightAnimation:** overcome flickering issue due to false height pre-calculation ([#3546](https://github.com/dnbexperience/eufemia/issues/3546)) ([62c08a3](https://github.com/dnbexperience/eufemia/commit/62c08a30b13faa6d4fc56d5fa9f776066540af89))
29
+
6
30
  ## [10.30.0](https://github.com/dnbexperience/eufemia/compare/v10.29.0...v10.30.0) (2024-05-08)
7
31
 
8
32
 
@@ -78,7 +78,7 @@ export type CheckboxProps = {
78
78
  type DeprecatedCheckboxProps = {
79
79
  /** @deprecated use the `label` prop instead */
80
80
  children?: React.ReactNode;
81
- /** @deprecated use `onComplete` */
81
+ /** @deprecated use `onChange` */
82
82
  on_change?: (args: OnChangeParams) => void;
83
83
  /** @deprecated use `labelPosition` */
84
84
  label_position?: CheckboxLabelPosition;
@@ -83,7 +83,7 @@ function Checkbox(localProps) {
83
83
  const callOnChange = (0, _react.useCallback)(args => {
84
84
  onChange === null || onChange === void 0 ? void 0 : onChange(args);
85
85
  }, [onChange]);
86
- const onChangeHandler = (0, _react.useCallback)(event => {
86
+ const handleChange = (0, _react.useCallback)(event => {
87
87
  if (readOnly) {
88
88
  return event.preventDefault();
89
89
  }
@@ -97,13 +97,16 @@ function Checkbox(localProps) {
97
97
  ref.current.focus();
98
98
  }
99
99
  }, [callOnChange, isChecked, readOnly, ref]);
100
+ const onChangeHandler = (0, _react.useCallback)(event => {
101
+ handleChange(event);
102
+ }, [handleChange]);
100
103
  const onKeyDownHandler = (0, _react.useCallback)(event => {
101
104
  switch ((0, _keycode.default)(event)) {
102
105
  case 'enter':
103
- onChangeHandler(event);
106
+ handleChange(event);
104
107
  break;
105
108
  }
106
- }, [onChangeHandler]);
109
+ }, [handleChange]);
107
110
  const mainParams = {
108
111
  className: (0, _classnames.default)("dnb-checkbox dnb-form-component", (0, _SkeletonHelper.createSkeletonClass)(null, skeleton), (0, _SpacingHelper.createSpacingClasses)(props), className, status && `dnb-checkbox__status--${statusState}`, size && `dnb-checkbox--${size}`, label && `dnb-checkbox--label-position-${labelPosition || 'right'}`)
109
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_keycode","_componentHelper","_AlignmentHelper2","_SpacingHelper","_SkeletonHelper","_Context","_Suffix","_useId","_filterValidProps","_withSnakeCaseProps","_FormLabel","_FormStatus","_CheckIcon","_AlignmentHelper","_span","_excluded","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","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","statusState","Checkbox","localProps","context","useContext","Context","props","extractPropsFromContext","status","statusProps","statusNoAnimation","globalStatus","suffix","size","label","labelPosition","labelSrOnly","title","element","disabled","readOnly","skeleton","className","id","idProp","checked","onChange","innerRef","rest","useId","isFn","refHook","useRef","ref","useEffect","current","isChecked","setIsChecked","useState","prevChecked","setPrevChecked","callOnChange","useCallback","args","onChangeHandler","event","preventDefault","updatedCheck","focus","onKeyDownHandler","keycode","mainParams","classnames","createSkeletonClass","createSpacingClasses","showStatus","getStatusState","inputParams","handleInputAttributes","statusComp","createElement","show","text_id","width_selector","text","state","no_animation","Element","forId","srOnly","name","type","onKeyDown","combineDescribedBy","validateDOMAttributes","skeletonDOMAttributes","extendPropsWithContext","convertSnakeCaseProps","pickFormElementProps","FormRow","formElement","_default","exports"],"sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["/**\n * Web Checkbox Component\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\n\nimport {\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport useId from '../../shared/helpers/useId'\nimport type { SpacingProps } from '../space/types'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport CheckIcon from './CheckIcon'\n\nexport type CheckboxLabelPosition = 'left' | 'right'\nexport type CheckboxSize = 'default' | 'medium' | 'large'\nexport type CheckboxAttributes = string | Record<string, unknown>\nexport type OnChangeParams = {\n checked: boolean\n event: React.ChangeEvent<HTMLInputElement>\n}\n\nexport type CheckboxProps = {\n /**\n * Use either the `label` property or provide a custom one.\n */\n label?: React.ReactNode\n /**\n * Defines the position of the `label`. Use either `left` or `right`. Defaults to `right`.\n */\n labelPosition?: CheckboxLabelPosition\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * The `title` of the input - describing it a bit further for accessibility reasons.\n */\n title?: string\n /**\n * Determine whether the checkbox is checked or not. The default is `false`.\n */\n checked?: boolean | undefined | null\n /**\n * The size of the checkbox. For now there is \"medium\" (default) and \"large\".\n */\n size?: CheckboxSize\n /**\n * 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 */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties. See [FormStatus](/uilib/components/form-status/properties/)\n */\n statusProps?: FormStatusProps\n statusNoAnimation?: boolean\n /**\n * The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status)\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the Checkbox more than the label. You can also send in a React component, so it gets wrapped inside the Checkbox component.\n */\n suffix?: React.ReactNode\n value?: string\n element?: React.ElementType\n attributes?: CheckboxAttributes\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * Will be called on state changes made by the user. Returns an boolean `{ checked, event }`.\n */\n onChange?: (args: OnChangeParams) => void\n /**\n * By providing a React.ref we can get the internally used input element (DOM). E.g. `innerRef={myRef}` by using `React.createRef()` or `React.useRef()`.\n */\n innerRef?:\n | React.MutableRefObject<HTMLInputElement>\n | ((elem: HTMLInputElement) => void)\n} & SpacingProps &\n Omit<\n React.HTMLProps<HTMLInputElement>,\n 'ref' | 'label' | 'size' | 'onChange'\n > &\n DeprecatedCheckboxProps\n\n// depracated, can be removed in v11\ntype DeprecatedCheckboxProps = {\n /** @deprecated use the `label` prop instead */\n children?: React.ReactNode\n /** @deprecated use `onComplete` */\n on_change?: (args: OnChangeParams) => void\n /** @deprecated use `labelPosition` */\n label_position?: CheckboxLabelPosition\n /** @deprecated use `labelSrOnly` */\n label_sr_only?: boolean\n /** @deprecated use `statusState` */\n status_state?: FormStatusState\n /** @deprecated use `statusProps` */\n status_props?: FormStatusProps\n /** @deprecated use `statusNoAnimation` */\n status_no_animation?: boolean\n}\n\nconst defaultProps: CheckboxProps = {\n statusState: 'error',\n}\n\nfunction Checkbox(localProps: CheckboxProps) {\n const context = useContext(Context)\n\n const props = extractPropsFromContext()\n\n const {\n value,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n size,\n label,\n labelPosition,\n labelSrOnly,\n title,\n element,\n disabled,\n readOnly,\n skeleton,\n className,\n id: idProp,\n checked,\n onChange,\n innerRef,\n ...rest\n } = props\n\n const id = useId(idProp)\n\n const isFn = typeof innerRef === 'function'\n const refHook = useRef<HTMLInputElement>()\n const ref = (!isFn && innerRef) || refHook\n\n useEffect(() => {\n if (isFn) {\n innerRef?.(ref.current)\n }\n }, [innerRef, isFn, ref])\n\n const [isChecked, setIsChecked] = useState<boolean>(checked ?? false)\n const [prevChecked, setPrevChecked] = useState<boolean>(checked)\n\n useEffect(() => {\n if (checked !== prevChecked) {\n setIsChecked(!!checked)\n setPrevChecked(!!checked)\n }\n }, [checked, prevChecked])\n\n const callOnChange = useCallback(\n (args: OnChangeParams) => {\n onChange?.(args)\n },\n [onChange]\n )\n\n const onChangeHandler = useCallback(\n (event) => {\n if (readOnly) {\n return event.preventDefault()\n }\n const updatedCheck = !isChecked\n\n setIsChecked(updatedCheck)\n callOnChange({ checked: updatedCheck, event })\n\n // help firefox and safari to have an correct state after a click\n if (ref.current) {\n ref.current.focus()\n }\n },\n [callOnChange, isChecked, readOnly, ref]\n )\n\n const onKeyDownHandler = useCallback(\n (event) => {\n switch (keycode(event)) {\n case 'enter':\n onChangeHandler(event)\n break\n }\n },\n [onChangeHandler]\n )\n\n const mainParams = {\n className: classnames(\n 'dnb-checkbox',\n status && `dnb-checkbox__status--${statusState}`,\n size && `dnb-checkbox--${size}`,\n label && `dnb-checkbox--label-position-${labelPosition || 'right'}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const showStatus = getStatusState(status)\n\n const inputParams = handleInputAttributes()\n\n const statusComp = (\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-checkbox__order\">\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n srOnly={labelSrOnly}\n />\n )}\n\n <span className=\"dnb-checkbox__inner\">\n <AlignmentHelper />\n {labelPosition === 'left' && statusComp}\n\n <span className=\"dnb-checkbox__shell\">\n <Element\n id={id}\n name={id}\n type=\"checkbox\"\n title={title}\n className=\"dnb-checkbox__input\"\n value={isChecked ? value || '' : ''}\n disabled={disabled}\n {...inputParams}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n ref={ref}\n />\n\n <span\n className={classnames(\n 'dnb-checkbox__button',\n createSkeletonClass('shape', skeleton, context)\n )}\n aria-hidden\n >\n <span className=\"dnb-checkbox__focus\" />\n </span>\n\n <CheckIcon size={size} />\n </span>\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-checkbox__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {(labelPosition === 'right' || !labelPosition) && statusComp}\n </span>\n )\n\n /**\n * Adds aria attributes, calls validateDOMAttributes and skeletonDOMAttributes and returns the result\n */\n function handleInputAttributes() {\n const inputParams = {\n disabled,\n checked: isChecked,\n readOnly,\n ...rest,\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n // also used for code markup simulation\n return validateDOMAttributes(\n props,\n skeletonDOMAttributes(inputParams, skeleton, context)\n )\n }\n\n function extractPropsFromContext() {\n return extendPropsWithContext(\n convertSnakeCaseProps(localProps),\n defaultProps,\n context.Checkbox,\n {\n skeleton: context?.Checkbox,\n },\n // Deprecated – can be removed in v11\n pickFormElementProps(context?.FormRow),\n pickFormElementProps(context?.formElement)\n )\n }\n}\n\nexport default Checkbox\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_keycode","_componentHelper","_AlignmentHelper2","_SpacingHelper","_SkeletonHelper","_Context","_Suffix","_useId","_filterValidProps","_withSnakeCaseProps","_FormLabel","_FormStatus","_CheckIcon","_AlignmentHelper","_span","_excluded","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","_extends","assign","bind","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","statusState","Checkbox","localProps","context","useContext","Context","props","extractPropsFromContext","status","statusProps","statusNoAnimation","globalStatus","suffix","size","label","labelPosition","labelSrOnly","title","element","disabled","readOnly","skeleton","className","id","idProp","checked","onChange","innerRef","rest","useId","isFn","refHook","useRef","ref","useEffect","current","isChecked","setIsChecked","useState","prevChecked","setPrevChecked","callOnChange","useCallback","args","handleChange","event","preventDefault","updatedCheck","focus","onChangeHandler","onKeyDownHandler","keycode","mainParams","classnames","createSkeletonClass","createSpacingClasses","showStatus","getStatusState","inputParams","handleInputAttributes","statusComp","createElement","show","text_id","width_selector","text","state","no_animation","Element","forId","srOnly","name","type","onKeyDown","combineDescribedBy","validateDOMAttributes","skeletonDOMAttributes","extendPropsWithContext","convertSnakeCaseProps","pickFormElementProps","FormRow","formElement","_default","exports"],"sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["/**\n * Web Checkbox Component\n */\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\n\nimport {\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport useId from '../../shared/helpers/useId'\nimport type { SpacingProps } from '../space/types'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\n\nimport type {\n FormStatusProps,\n FormStatusState,\n FormStatusText,\n} from '../FormStatus'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport CheckIcon from './CheckIcon'\n\nexport type CheckboxLabelPosition = 'left' | 'right'\nexport type CheckboxSize = 'default' | 'medium' | 'large'\nexport type CheckboxAttributes = string | Record<string, unknown>\nexport type OnChangeParams = {\n checked: boolean\n event: React.ChangeEvent<HTMLInputElement>\n}\n\nexport type CheckboxProps = {\n /**\n * Use either the `label` property or provide a custom one.\n */\n label?: React.ReactNode\n /**\n * Defines the position of the `label`. Use either `left` or `right`. Defaults to `right`.\n */\n labelPosition?: CheckboxLabelPosition\n /**\n * Use `true` to make the label only readable by screen readers.\n */\n labelSrOnly?: boolean\n /**\n * The `title` of the input - describing it a bit further for accessibility reasons.\n */\n title?: string\n /**\n * Determine whether the checkbox is checked or not. The default is `false`.\n */\n checked?: boolean | undefined | null\n /**\n * The size of the checkbox. For now there is \"medium\" (default) and \"large\".\n */\n size?: CheckboxSize\n /**\n * 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 */\n status?: FormStatusText\n /**\n * Defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`.\n */\n statusState?: FormStatusState\n /**\n * Use an object to define additional FormStatus properties. See [FormStatus](/uilib/components/form-status/properties/)\n */\n statusProps?: FormStatusProps\n statusNoAnimation?: boolean\n /**\n * The [configuration](/uilib/components/global-status/properties/#configuration-object) used for the target [GlobalStatus](/uilib/components/global-status)\n */\n globalStatus?: GlobalStatusConfigObject\n /**\n * Text describing the content of the Checkbox more than the label. You can also send in a React component, so it gets wrapped inside the Checkbox component.\n */\n suffix?: React.ReactNode\n value?: string\n element?: React.ElementType\n attributes?: CheckboxAttributes\n /**\n * If set to `true`, an overlaying skeleton with animation will be shown.\n */\n skeleton?: SkeletonShow\n /**\n * Will be called on state changes made by the user. Returns an boolean `{ checked, event }`.\n */\n onChange?: (args: OnChangeParams) => void\n /**\n * By providing a React.ref we can get the internally used input element (DOM). E.g. `innerRef={myRef}` by using `React.createRef()` or `React.useRef()`.\n */\n innerRef?:\n | React.MutableRefObject<HTMLInputElement>\n | ((elem: HTMLInputElement) => void)\n} & SpacingProps &\n Omit<\n React.HTMLProps<HTMLInputElement>,\n 'ref' | 'label' | 'size' | 'onChange'\n > &\n DeprecatedCheckboxProps\n\n// depracated, can be removed in v11\ntype DeprecatedCheckboxProps = {\n /** @deprecated use the `label` prop instead */\n children?: React.ReactNode\n /** @deprecated use `onChange` */\n on_change?: (args: OnChangeParams) => void\n /** @deprecated use `labelPosition` */\n label_position?: CheckboxLabelPosition\n /** @deprecated use `labelSrOnly` */\n label_sr_only?: boolean\n /** @deprecated use `statusState` */\n status_state?: FormStatusState\n /** @deprecated use `statusProps` */\n status_props?: FormStatusProps\n /** @deprecated use `statusNoAnimation` */\n status_no_animation?: boolean\n}\n\nconst defaultProps: CheckboxProps = {\n statusState: 'error',\n}\n\nfunction Checkbox(localProps: CheckboxProps) {\n const context = useContext(Context)\n\n const props = extractPropsFromContext()\n\n const {\n value,\n status,\n statusState,\n statusProps,\n statusNoAnimation,\n globalStatus,\n suffix,\n size,\n label,\n labelPosition,\n labelSrOnly,\n title,\n element,\n disabled,\n readOnly,\n skeleton,\n className,\n id: idProp,\n checked,\n onChange,\n innerRef,\n ...rest\n } = props\n\n const id = useId(idProp)\n\n const isFn = typeof innerRef === 'function'\n const refHook = useRef<HTMLInputElement>()\n const ref = (!isFn && innerRef) || refHook\n\n useEffect(() => {\n if (isFn) {\n innerRef?.(ref.current)\n }\n }, [innerRef, isFn, ref])\n\n const [isChecked, setIsChecked] = useState<boolean>(checked ?? false)\n const [prevChecked, setPrevChecked] = useState<boolean>(checked)\n\n useEffect(() => {\n if (checked !== prevChecked) {\n setIsChecked(!!checked)\n setPrevChecked(!!checked)\n }\n }, [checked, prevChecked])\n\n const callOnChange: CheckboxProps['onChange'] = useCallback(\n (args) => {\n onChange?.(args)\n },\n [onChange]\n )\n\n const handleChange = useCallback(\n (event: OnChangeParams['event']) => {\n if (readOnly) {\n return event.preventDefault()\n }\n const updatedCheck = !isChecked\n\n setIsChecked(updatedCheck)\n callOnChange({ checked: updatedCheck, event })\n\n // help firefox and safari to have an correct state after a click\n if (ref.current) {\n ref.current.focus()\n }\n },\n [callOnChange, isChecked, readOnly, ref]\n )\n\n const onChangeHandler = useCallback(\n (event: OnChangeParams['event']) => {\n handleChange(event)\n },\n [handleChange]\n )\n\n const onKeyDownHandler = useCallback(\n (event: KeyboardEvent & OnChangeParams['event']) => {\n switch (keycode(event)) {\n case 'enter':\n handleChange(event)\n break\n }\n },\n [handleChange]\n )\n\n const mainParams = {\n className: classnames(\n 'dnb-checkbox',\n status && `dnb-checkbox__status--${statusState}`,\n size && `dnb-checkbox--${size}`,\n label && `dnb-checkbox--label-position-${labelPosition || 'right'}`,\n 'dnb-form-component',\n createSkeletonClass(null, skeleton),\n createSpacingClasses(props),\n className\n ),\n }\n\n const showStatus = getStatusState(status)\n\n const inputParams = handleInputAttributes()\n\n const statusComp = (\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={statusState}\n no_animation={statusNoAnimation}\n skeleton={skeleton}\n {...statusProps}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-checkbox__order\">\n {label && (\n <FormLabel\n id={id + '-label'}\n forId={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n srOnly={labelSrOnly}\n />\n )}\n\n <span className=\"dnb-checkbox__inner\">\n <AlignmentHelper />\n {labelPosition === 'left' && statusComp}\n\n <span className=\"dnb-checkbox__shell\">\n <Element\n id={id}\n name={id}\n type=\"checkbox\"\n title={title}\n className=\"dnb-checkbox__input\"\n value={isChecked ? value || '' : ''}\n disabled={disabled}\n {...inputParams}\n onChange={onChangeHandler}\n onKeyDown={onKeyDownHandler}\n ref={ref}\n />\n\n <span\n className={classnames(\n 'dnb-checkbox__button',\n createSkeletonClass('shape', skeleton, context)\n )}\n aria-hidden\n >\n <span className=\"dnb-checkbox__focus\" />\n </span>\n\n <CheckIcon size={size} />\n </span>\n </span>\n\n {suffix && (\n <Suffix\n className=\"dnb-checkbox__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n\n {(labelPosition === 'right' || !labelPosition) && statusComp}\n </span>\n )\n\n /**\n * Adds aria attributes, calls validateDOMAttributes and skeletonDOMAttributes and returns the result\n */\n function handleInputAttributes() {\n const inputParams = {\n disabled,\n checked: isChecked,\n readOnly,\n ...rest,\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n // also used for code markup simulation\n return validateDOMAttributes(\n props,\n skeletonDOMAttributes(inputParams, skeleton, context)\n )\n }\n\n function extractPropsFromContext() {\n return extendPropsWithContext(\n convertSnakeCaseProps(localProps),\n defaultProps,\n context.Checkbox,\n {\n skeleton: context?.Checkbox,\n },\n // Deprecated – can be removed in v11\n pickFormElementProps(context?.FormRow),\n pickFormElementProps(context?.formElement)\n )\n }\n}\n\nexport default Checkbox\n"],"mappings":"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"}
@@ -124,4 +124,8 @@
124
124
 
125
125
  .dnb-flex-stack + .dnb-flex-stack {
126
126
  margin-top: var(--spacing-small);
127
+ }
128
+
129
+ .dnb-flex-stack > .dnb-button {
130
+ align-self: flex-start;
127
131
  }
@@ -1 +1 @@
1
- .dnb-flex-container{display:flex;row-gap:var(--gap,0)}.dnb-flex-container--direction-horizontal{flex-direction:row;margin-right:calc(var(--gap)*-1)}.dnb-flex-container--direction-vertical{flex-direction:column}.dnb-flex-container--justify-flex-start{justify-content:flex-start}.dnb-flex-container--justify-flex-end{justify-content:flex-end}.dnb-flex-container--justify-center{justify-content:center}.dnb-flex-container--justify-space-between{justify-content:space-between}.dnb-flex-container--justify-space-around{justify-content:space-around}.dnb-flex-container--justify-space-evenly{justify-content:space-evenly}.dnb-flex-container--align-flex-start{align-items:flex-start}.dnb-flex-container--align-flex-end{align-items:flex-end}.dnb-flex-container--align-center{align-items:center}.dnb-flex-container--align-stretch{align-items:stretch}.dnb-flex-container--align-baseline{align-items:baseline}.dnb-flex-container--align-self-flex-start{align-self:flex-start}.dnb-flex-container--align-self-flex-end{align-self:flex-end}.dnb-flex-container--align-self-center{align-self:center}.dnb-flex-container--align-self-baseline{align-self:baseline}.dnb-flex-container--align-self-stretch{align-self:stretch}.dnb-flex-container--wrap{flex-wrap:wrap}.dnb-flex-container--row-gap-off{--gap:0}.dnb-flex-container--row-gap-small{--gap:var(--spacing-small)}.dnb-flex-container--row-gap-medium{--gap:var(--spacing-medium)}.dnb-flex-container--row-gap-large{--gap:var(--spacing-large)}.dnb-flex-container__hr.dnb-hr{color:var(--color-black-8);width:100%}.dnb-flex-item--grow{flex-grow:1}.dnb-flex-item--shrink{flex-shrink:1}.dnb-flex-item--align-self-flex-start{align-self:flex-start}.dnb-flex-item--align-self-flex-end{align-self:flex-end}.dnb-flex-item--align-self-center{align-self:center}.dnb-flex-item--align-self-baseline{align-self:baseline}.dnb-flex-item--align-self-stretch{align-self:stretch}.dnb-flex-item--responsive{--sizeCount--default:12;--size--default:var(--small);--flex-basis:calc(100%/var(--sizeCount, var(--sizeCount--default))*var(--size, var(--size--default)));flex-basis:var(--flex-basis);flex-grow:0;max-width:var(--flex-basis)}.dnb-flex-container[data-media-key=small] .dnb-flex-item--responsive{--size:var(--small,var(--medium))}.dnb-flex-container[data-media-key=medium] .dnb-flex-item--responsive{--size:var(--medium,var(--large))}.dnb-flex-container[data-media-key=large] .dnb-flex-item--responsive{--size:var(--large,var(--medium))}.dnb-flex-stack+.dnb-flex-stack{margin-top:var(--spacing-small)}
1
+ .dnb-flex-container{display:flex;row-gap:var(--gap,0)}.dnb-flex-container--direction-horizontal{flex-direction:row;margin-right:calc(var(--gap)*-1)}.dnb-flex-container--direction-vertical{flex-direction:column}.dnb-flex-container--justify-flex-start{justify-content:flex-start}.dnb-flex-container--justify-flex-end{justify-content:flex-end}.dnb-flex-container--justify-center{justify-content:center}.dnb-flex-container--justify-space-between{justify-content:space-between}.dnb-flex-container--justify-space-around{justify-content:space-around}.dnb-flex-container--justify-space-evenly{justify-content:space-evenly}.dnb-flex-container--align-flex-start{align-items:flex-start}.dnb-flex-container--align-flex-end{align-items:flex-end}.dnb-flex-container--align-center{align-items:center}.dnb-flex-container--align-stretch{align-items:stretch}.dnb-flex-container--align-baseline{align-items:baseline}.dnb-flex-container--align-self-flex-start{align-self:flex-start}.dnb-flex-container--align-self-flex-end{align-self:flex-end}.dnb-flex-container--align-self-center{align-self:center}.dnb-flex-container--align-self-baseline{align-self:baseline}.dnb-flex-container--align-self-stretch{align-self:stretch}.dnb-flex-container--wrap{flex-wrap:wrap}.dnb-flex-container--row-gap-off{--gap:0}.dnb-flex-container--row-gap-small{--gap:var(--spacing-small)}.dnb-flex-container--row-gap-medium{--gap:var(--spacing-medium)}.dnb-flex-container--row-gap-large{--gap:var(--spacing-large)}.dnb-flex-container__hr.dnb-hr{color:var(--color-black-8);width:100%}.dnb-flex-item--grow{flex-grow:1}.dnb-flex-item--shrink{flex-shrink:1}.dnb-flex-item--align-self-flex-start{align-self:flex-start}.dnb-flex-item--align-self-flex-end{align-self:flex-end}.dnb-flex-item--align-self-center{align-self:center}.dnb-flex-item--align-self-baseline{align-self:baseline}.dnb-flex-item--align-self-stretch{align-self:stretch}.dnb-flex-item--responsive{--sizeCount--default:12;--size--default:var(--small);--flex-basis:calc(100%/var(--sizeCount, var(--sizeCount--default))*var(--size, var(--size--default)));flex-basis:var(--flex-basis);flex-grow:0;max-width:var(--flex-basis)}.dnb-flex-container[data-media-key=small] .dnb-flex-item--responsive{--size:var(--small,var(--medium))}.dnb-flex-container[data-media-key=medium] .dnb-flex-item--responsive{--size:var(--medium,var(--large))}.dnb-flex-container[data-media-key=large] .dnb-flex-item--responsive{--size:var(--large,var(--medium))}.dnb-flex-stack+.dnb-flex-stack{margin-top:var(--spacing-small)}.dnb-flex-stack>.dnb-button{align-self:flex-start}
@@ -1,3 +1,6 @@
1
1
  .dnb-flex-stack + .dnb-flex-stack {
2
2
  margin-top: var(--spacing-small);
3
3
  }
4
+ .dnb-flex-stack > .dnb-button {
5
+ align-self: flex-start;
6
+ }
@@ -148,19 +148,17 @@ class HeightAnimation {
148
148
  if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {
149
149
  return this.__currentHeight;
150
150
  }
151
- const width = this.elem.clientWidth;
152
151
  const clonedElem = this.elem.cloneNode(true);
153
152
  const inputs = clonedElem.querySelectorAll('input');
154
153
  inputs.forEach(input => {
155
154
  input.removeAttribute('name');
156
155
  input.removeAttribute('id');
157
156
  });
158
- (_this$elem$parentNode = this.elem.parentNode) === null || _this$elem$parentNode === void 0 ? void 0 : _this$elem$parentNode.insertBefore(clonedElem, this.elem.nextSibling);
159
157
  for (const key in this.firstPaintStyle) {
160
158
  clonedElem.style[key] = this.firstPaintStyle[key];
161
159
  }
162
- clonedElem.style.width = width ? `${String(width)}px` : 'auto';
163
160
  clonedElem.style.position = 'absolute';
161
+ (_this$elem$parentNode = this.elem.parentNode) === null || _this$elem$parentNode === void 0 ? void 0 : _this$elem$parentNode.insertBefore(clonedElem, this.elem.nextSibling);
164
162
  const height = parseFloat(String(clonedElem.clientHeight)) || parseFloat(clonedElem.getAttribute('data-height')) || null;
165
163
  (_clonedElem$parentNod = clonedElem.parentNode) === null || _clonedElem$parentNod === void 0 ? void 0 : _clonedElem$parentNod.removeChild(clonedElem);
166
164
  if (height) {
@@ -215,6 +213,9 @@ class HeightAnimation {
215
213
  const toHeight = this.getUnknownHeight();
216
214
  this.addEndEvent(e => {
217
215
  if (e.target === e.currentTarget || !e.currentTarget) {
216
+ if (this.elem) {
217
+ this.elem.style.overflowY = '';
218
+ }
218
219
  this.setState('opened');
219
220
  this.readjust();
220
221
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","arguments","length","undefined","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","width","clientWidth","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","parentNode","insertBefore","nextSibling","key","firstPaintStyle","style","position","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","readjust","close","overflowY","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime","exports","default"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const width = this.elem.clientWidth\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.width = width ? `${String(width)}px` : 'auto' // set width because of the \"position: absolute\"\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HeightAnimationInstance.js","names":["HeightAnimation","constructor","opts","arguments","length","undefined","_defineProperty","animate","visibility","opacity","height","isInBrowser","window","setState","setOptions","callAnimationStart","startTime","Date","now","firstTime","onStartStack","forEach","fn","state","callAnimationEnd","isAnimating","__currentHeight","removeEndEvents","onEndStack","addEndEvent","listener","_this$elem","_this$elem$addEventLi","handleTransitionEnd","e","canFinish","delay","duration","timeouts","push","setTimeout","events","elem","addEventListener","call","_this$elem2","_this$elem2$removeEve","removeEventListener","setElement","_this$elem3","_globalThis$animation","document","createElement","String","nodeName","toLowerCase","parentElement","globalThis","animationDuration","parseFloat","getComputedStyle","transitionDuration","Object","freeze","_objectSpread","getOptions","remove","stop","setAsOpen","setAsClosed","getHeight","_this$elem4","clientHeight","getUnknownHeight","_this$elem$parentNode","_clonedElem$parentNod","clonedElem","cloneNode","inputs","querySelectorAll","input","removeAttribute","key","firstPaintStyle","style","position","parentNode","insertBefore","nextSibling","getAttribute","removeChild","onStart","onEnd","start","fromHeight","toHeight","requestAnimationFrame","reqId1","reqId2","id","clearTimeout","cancelAnimationFrame","open","shouldBypassAnimation","target","currentTarget","overflowY","readjust","close","adjustTo","endHeight","newHeight","_globalThis$animation2","Boolean","_globalThis$bypassTim","IS_TEST","bypassTime","exports","default"],"sources":["../../../../src/components/height-animation/HeightAnimationInstance.ts"],"sourcesContent":["export type HeightAnimationOnStartStates =\n | 'opening'\n | 'closing'\n | 'adjusting'\nexport type HeightAnimationOnEndStates = 'opened' | 'closed' | 'adjusted'\nexport type HeightAnimationStates =\n | HeightAnimationOnStartStates\n | HeightAnimationOnEndStates\n | 'init'\nexport type HeightAnimationOptions = {\n animate?: boolean\n}\nexport type HeightAnimationOnStartCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnEndCallback = (\n state: HeightAnimationStates\n) => void\nexport type HeightAnimationOnStartStack =\n Array<HeightAnimationOnStartCallback>\nexport type HeightAnimationOnEndStack = Array<HeightAnimationOnEndCallback>\nexport type HeightAnimationEventListener = (e: Event) => void\nexport type HeightAnimationEvents = Array<HeightAnimationEventListener>\nexport type HeightAnimationElement = HTMLElement\nexport type HeightAnimationContainer = HTMLElement\nexport type HeightAnimationFromHeight = number\nexport type HeightAnimationToHeight = number\n\nexport default class HeightAnimation {\n private state: Readonly<HeightAnimationStates>\n isInBrowser: boolean\n onStartStack: HeightAnimationOnStartStack = []\n onEndStack: HeightAnimationOnEndStack = []\n events: HeightAnimationEvents = []\n opts: HeightAnimationOptions = { animate: true }\n elem: HeightAnimationElement\n reqId1: number\n reqId2: number\n resizeTimeout: NodeJS.Timeout\n timeouts: NodeJS.Timeout[] = []\n firstTime?: number = 0\n startTime?: number = 0\n duration?: number = 0\n isAnimating: boolean\n __currentHeight: number\n\n firstPaintStyle = {\n visibility: 'hidden',\n opacity: '0', // prevents before/after elements to be visible\n height: 'auto',\n }\n\n constructor(opts: HeightAnimationOptions = {}) {\n this.isInBrowser = typeof window !== 'undefined'\n this.setState('init')\n this.setOptions(opts)\n }\n\n callAnimationStart() {\n this.startTime = Date.now()\n if (!this.firstTime) {\n this.firstTime = this.startTime\n }\n if (this.onStartStack) {\n this.onStartStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n callAnimationEnd() {\n this.isAnimating = false\n\n if (this.state !== 'opened') {\n delete this.__currentHeight\n }\n\n this.removeEndEvents()\n\n if (this.onEndStack) {\n this.onEndStack.forEach((fn) => {\n if (typeof fn === 'function') {\n fn(this.state)\n }\n })\n }\n }\n addEndEvent(listener: HeightAnimationEventListener) {\n this.removeEndEvents() // also, remove events on every open (but not on close!)\n\n const handleTransitionEnd = (e) => {\n if (this.canFinish()) {\n listener(e)\n } else {\n const delay = this.duration - (Date.now() - this.startTime)\n\n if (delay === -1) {\n listener(e)\n } else {\n this.timeouts.push(setTimeout(() => listener(e), delay))\n }\n }\n }\n\n this.events.push(handleTransitionEnd)\n this.elem?.addEventListener?.('transitionend', handleTransitionEnd)\n }\n removeEndEvents() {\n this.events.forEach((listener) => {\n this.elem?.removeEventListener?.('transitionend', listener)\n })\n this.events = []\n }\n\n // Public methods\n setElement(elem: HeightAnimationElement) {\n this.elem =\n elem ||\n (typeof document !== 'undefined' && document.createElement('div'))\n\n // TODO: remove when responsive tables are supported\n if (String(this.elem?.nodeName).toLowerCase() === 'td') {\n this.elem = this.elem.parentElement\n }\n\n this.duration =\n globalThis.animationDuration ??\n (parseFloat(window.getComputedStyle(this.elem).transitionDuration) *\n 1000 ||\n 400) // The default duration\n }\n setState(state: HeightAnimationStates) {\n this.state = Object.freeze(state)\n }\n setOptions(opts: HeightAnimationOptions) {\n this.opts = Object.freeze({ ...this.opts, ...opts })\n }\n getOptions() {\n return this.opts\n }\n remove() {\n this.stop()\n this.removeEndEvents()\n this.setState('init')\n this.isAnimating = false\n this.onEndStack = []\n this.onStartStack = []\n this.__currentHeight = undefined\n this.elem = undefined\n }\n setAsOpen() {\n if (this.state === 'opened') {\n return\n }\n this.setState('opening')\n this.callAnimationStart()\n this.setState('opened')\n this.callAnimationEnd()\n }\n setAsClosed() {\n if (this.state === 'closed') {\n return\n }\n this.setState('closing')\n this.callAnimationStart()\n this.setState('closed')\n this.callAnimationEnd()\n }\n getHeight() {\n return parseFloat(String(this.elem?.clientHeight)) || null\n }\n getUnknownHeight() {\n if (!this.elem) {\n return null\n }\n\n if (this.isAnimating && typeof this.__currentHeight !== 'undefined') {\n return this.__currentHeight\n }\n\n const clonedElem = this.elem.cloneNode(true) as HTMLElement\n const inputs = clonedElem.querySelectorAll('input')\n inputs.forEach((input) => {\n input.removeAttribute('name') // because type=\"radio\" will be else effected negatively\n input.removeAttribute('id') // don't put IDs twice in the DOM\n })\n\n // Hide the cloned element\n for (const key in this.firstPaintStyle) {\n clonedElem.style[key] = this.firstPaintStyle[key]\n }\n clonedElem.style.position = 'absolute' // not a part of the \"firstPaintStyle\"\n\n this.elem.parentNode?.insertBefore(clonedElem, this.elem.nextSibling)\n\n const height =\n parseFloat(String(clonedElem.clientHeight)) ||\n // data-height is used for mockup testing with \"mockHeight\"\n parseFloat(clonedElem.getAttribute('data-height')) ||\n null\n\n clonedElem.parentNode?.removeChild(clonedElem)\n\n if (height) {\n this.__currentHeight = height\n }\n\n return height\n }\n onStart(fn: HeightAnimationOnStartCallback) {\n this.onStartStack.push(fn)\n }\n onEnd(fn: HeightAnimationOnEndCallback) {\n this.onEndStack.push(fn)\n }\n start(\n fromHeight: HeightAnimationFromHeight,\n toHeight: HeightAnimationToHeight\n ) {\n if (\n !this.elem ||\n !(\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n )\n ) {\n return\n }\n\n const opts = this.getOptions()\n if (opts.animate === false) {\n return\n }\n\n this.stop()\n this.isAnimating = true\n\n // make the animation\n this.reqId1 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${fromHeight}px`\n\n this.reqId2 = window.requestAnimationFrame(() => {\n if (!this.elem) {\n return\n }\n\n this.elem.style.height = `${toHeight}px`\n })\n })\n }\n stop() {\n this.timeouts.forEach((id) => clearTimeout(id))\n this.timeouts = []\n\n if (\n this.isInBrowser &&\n typeof window.requestAnimationFrame === 'function'\n ) {\n window.cancelAnimationFrame(this.reqId1)\n window.cancelAnimationFrame(this.reqId2)\n }\n }\n open() {\n if (\n this.state === 'opened' ||\n this.state === 'opening' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsOpen()\n return\n }\n\n this.setState('opening')\n this.callAnimationStart()\n\n const toHeight = this.getUnknownHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.overflowY = ''\n }\n this.setState('opened')\n this.readjust()\n }\n })\n\n this.start(0, toHeight)\n }\n close() {\n if (\n this.state === 'closed' ||\n this.state === 'closing' ||\n this.shouldBypassAnimation()\n ) {\n this.setAsClosed()\n return\n }\n\n this.setState('closing')\n this.callAnimationStart()\n\n const fromHeight = this.getHeight()\n\n this.addEndEvent((e) => {\n if (e.target === e.currentTarget || !e.currentTarget) {\n if (this.elem) {\n this.elem.style.visibility = 'hidden'\n this.elem.style.overflowY = 'clip'\n }\n this.setState('closed')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, 0)\n }\n adjustTo(\n fromHeight: HeightAnimationFromHeight = null,\n toHeight: HeightAnimationToHeight = null\n ) {\n const opts = this.getOptions()\n\n if (\n !this.elem ||\n opts.animate === false ||\n this.state === 'opening' ||\n this.state === 'closing'\n ) {\n return\n }\n\n if (fromHeight === 0 || fromHeight === null) {\n fromHeight = this.getHeight()\n }\n if (toHeight === null) {\n toHeight = this.getUnknownHeight()\n }\n\n if (fromHeight === toHeight) {\n this.setState('adjusted')\n return\n }\n\n this.setState('adjusting')\n this.callAnimationStart()\n\n this.addEndEvent((e) => {\n if (\n this.state === 'adjusting' &&\n (e.target === e.currentTarget || !e.currentTarget)\n ) {\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n this.setState('adjusted')\n this.callAnimationEnd()\n }\n })\n\n this.start(fromHeight, toHeight)\n }\n readjust() {\n const endHeight = this.getHeight()\n\n if (this.elem) {\n this.elem.style.height = 'auto'\n }\n\n this.__currentHeight = undefined\n const newHeight = this.getUnknownHeight()\n\n // If the height has changed during the animation, we need to adjust it\n if (endHeight !== newHeight) {\n this.adjustTo(endHeight, newHeight)\n } else {\n this.callAnimationEnd()\n }\n }\n /**\n * Determines whether the animation can finish.\n * Check for certain states and if the time passed is too short.\n * With a so short first state change, we do not call animation end.\n */\n canFinish() {\n return Boolean(\n this.startTime &&\n Date.now() - this.startTime >\n (globalThis.animationDuration ?? this.duration)\n )\n }\n /**\n * Determines whether the animation should be bypassed.\n * Check for certain states and if the time passed is too short to be correct.\n * With a very short first state change, we skip animation.\n */\n shouldBypassAnimation() {\n const opts = this.getOptions()\n\n if (!this.elem || opts.animate === false) {\n return true\n }\n\n if (\n this.isInBrowser &&\n (globalThis.IS_TEST || globalThis.bypassTime === -1)\n ) {\n return false\n }\n\n return Boolean(\n this.firstTime &&\n Date.now() - this.firstTime < (globalThis.bypassTime ?? 100)\n )\n }\n}\n"],"mappings":"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"}
@@ -24,7 +24,7 @@ function useTableAnimationHandler(_ref) {
24
24
  const scrollViewHandler = (0, _react.useCallback)(clip => {
25
25
  const scrollView = (0, _componentHelper.getClosestScrollViewElement)(trRef.current);
26
26
  if (scrollView instanceof HTMLElement) {
27
- scrollView.style.overflow = clip ? 'clip' : '';
27
+ scrollView.style.overflowY = clip ? 'clip' : '';
28
28
  }
29
29
  }, [trRef]);
30
30
  const onOpen = (0, _react.useCallback)(state => {
@@ -1 +1 @@
1
- {"version":3,"file":"useTableAnimationHandler.js","names":["_react","_interopRequireWildcard","require","_componentHelper","_useHeightAnimation","_TableContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useTableAnimationHandler","_ref","innerRef","trRef","expanded","noAnimation","tableAccordionContext","React","useContext","TableAccordionContext","ariaLive","setAriaLive","useState","open","Boolean","trIsOpen","scrollViewHandler","useCallback","clip","scrollView","getClosestScrollViewElement","current","HTMLElement","style","overflow","onOpen","state","onAnimationStart","onAnimationEnd","_tableAccordionContex","_tableAccordionContex2","event","target","onOpened","onClosed","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","useHeightAnimation","animate","_default","exports"],"sources":["../../../../src/components/table/useTableAnimationHandler.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { getClosestScrollViewElement } from '../../shared/component-helper'\nimport { useHeightAnimation } from '../height-animation/useHeightAnimation'\nimport { TableAccordionTrProps } from './TableAccordionTr'\nimport { TableAccordionContext } from './TableContext'\n\nexport type useTableAnimationHandlerProps = {\n /**\n * Ref to <div> inside the <tr> element being expanded/collapsed\n */\n innerRef: React.MutableRefObject<HTMLDivElement>\n /**\n * Ref to the <tr> element being clicked\n */\n trRef: React.MutableRefObject<HTMLTableRowElement>\n}\n\nexport function useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n}: useTableAnimationHandlerProps & TableAccordionTrProps) {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const [ariaLive, setAriaLive] = React.useState(null)\n const open = Boolean(expanded || tableAccordionContext?.trIsOpen)\n\n const scrollViewHandler = useCallback(\n (clip: boolean) => {\n const scrollView = getClosestScrollViewElement(\n trRef.current\n ) as HTMLElement\n if (scrollView instanceof HTMLElement) {\n scrollView.style.overflow = clip ? 'clip' : ''\n }\n },\n [trRef]\n )\n\n const onOpen = useCallback((state) => {\n setAriaLive(state ? true : null)\n }, [])\n\n const onAnimationStart = useCallback(() => {\n scrollViewHandler(true)\n }, [scrollViewHandler])\n\n const onAnimationEnd = useCallback(\n (state) => {\n const event = { target: trRef.current }\n switch (state) {\n case 'opened':\n tableAccordionContext.onOpened?.(event)\n break\n\n case 'closed':\n tableAccordionContext.onClosed?.(event)\n break\n }\n\n scrollViewHandler(false)\n },\n [scrollViewHandler, tableAccordionContext, trRef]\n )\n\n const { isInDOM, isAnimating, isVisibleParallax, firstPaintStyle } =\n useHeightAnimation(innerRef, {\n open,\n animate: Boolean(\n !noAnimation && !tableAccordionContext?.noAnimation\n ),\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n return {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n }\n}\n\nexport default useTableAnimationHandler\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTableAnimationHandler.js","names":["_react","_interopRequireWildcard","require","_componentHelper","_useHeightAnimation","_TableContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","useTableAnimationHandler","_ref","innerRef","trRef","expanded","noAnimation","tableAccordionContext","React","useContext","TableAccordionContext","ariaLive","setAriaLive","useState","open","Boolean","trIsOpen","scrollViewHandler","useCallback","clip","scrollView","getClosestScrollViewElement","current","HTMLElement","style","overflowY","onOpen","state","onAnimationStart","onAnimationEnd","_tableAccordionContex","_tableAccordionContex2","event","target","onOpened","onClosed","isInDOM","isAnimating","isVisibleParallax","firstPaintStyle","useHeightAnimation","animate","_default","exports"],"sources":["../../../../src/components/table/useTableAnimationHandler.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport { getClosestScrollViewElement } from '../../shared/component-helper'\nimport { useHeightAnimation } from '../height-animation/useHeightAnimation'\nimport { TableAccordionTrProps } from './TableAccordionTr'\nimport { TableAccordionContext } from './TableContext'\n\nexport type useTableAnimationHandlerProps = {\n /**\n * Ref to <div> inside the <tr> element being expanded/collapsed\n */\n innerRef: React.MutableRefObject<HTMLDivElement>\n /**\n * Ref to the <tr> element being clicked\n */\n trRef: React.MutableRefObject<HTMLTableRowElement>\n}\n\nexport function useTableAnimationHandler({\n innerRef,\n trRef,\n expanded,\n noAnimation,\n}: useTableAnimationHandlerProps & TableAccordionTrProps) {\n const tableAccordionContext = React.useContext(TableAccordionContext)\n const [ariaLive, setAriaLive] = React.useState(null)\n const open = Boolean(expanded || tableAccordionContext?.trIsOpen)\n\n const scrollViewHandler = useCallback(\n (clip: boolean) => {\n const scrollView = getClosestScrollViewElement(\n trRef.current\n ) as HTMLElement\n if (scrollView instanceof HTMLElement) {\n scrollView.style.overflowY = clip ? 'clip' : ''\n }\n },\n [trRef]\n )\n\n const onOpen = useCallback((state) => {\n setAriaLive(state ? true : null)\n }, [])\n\n const onAnimationStart = useCallback(() => {\n scrollViewHandler(true)\n }, [scrollViewHandler])\n\n const onAnimationEnd = useCallback(\n (state) => {\n const event = { target: trRef.current }\n switch (state) {\n case 'opened':\n tableAccordionContext.onOpened?.(event)\n break\n\n case 'closed':\n tableAccordionContext.onClosed?.(event)\n break\n }\n\n scrollViewHandler(false)\n },\n [scrollViewHandler, tableAccordionContext, trRef]\n )\n\n const { isInDOM, isAnimating, isVisibleParallax, firstPaintStyle } =\n useHeightAnimation(innerRef, {\n open,\n animate: Boolean(\n !noAnimation && !tableAccordionContext?.noAnimation\n ),\n onOpen,\n onAnimationStart,\n onAnimationEnd,\n })\n\n return {\n ariaLive,\n isInDOM,\n isAnimating,\n isVisibleParallax,\n firstPaintStyle,\n }\n}\n\nexport default useTableAnimationHandler\n"],"mappings":"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"}
@@ -175,6 +175,11 @@ function Provider(props) {
175
175
  const fieldPropsRef = (0, _react.useRef)({});
176
176
  const setProps = (0, _react.useCallback)((path, props) => {
177
177
  fieldPropsRef.current[path] = _objectSpread(_objectSpread({}, fieldPropsRef.current[path]), props);
178
+ for (const key in fieldPropsRef.current[path]) {
179
+ if (!Object.prototype.hasOwnProperty.call(props, key)) {
180
+ delete fieldPropsRef.current[path][key];
181
+ }
182
+ }
178
183
  }, []);
179
184
  const hasFieldWithAsyncValidator = (0, _react.useCallback)(() => {
180
185
  for (const path in fieldPropsRef.current) {
@@ -544,7 +549,9 @@ function Provider(props) {
544
549
  show: showAllErrorsRef.current
545
550
  }
546
551
  } : undefined,
547
- disabled: disabled ? disabled : undefined,
552
+ formElement: disabled ? {
553
+ disabled: true
554
+ } : undefined,
548
555
  locale: locale ? locale : undefined,
549
556
  translations: translations ? translations : undefined
550
557
  }, children));