@dnb/eufemia 10.58.0 → 10.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/components/form-label/FormLabel.js +13 -10
  3. package/cjs/components/form-label/FormLabel.js.map +1 -1
  4. package/cjs/components/upload/UploadFileListCell.js +2 -1
  5. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  6. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  7. package/cjs/extensions/forms/Form/Section/style/themes/ui.js +1 -1
  8. package/cjs/extensions/forms/Form/Section/style/themes/ui.js.map +1 -1
  9. package/cjs/shared/Eufemia.d.ts +1 -1
  10. package/cjs/shared/Eufemia.js +2 -2
  11. package/cjs/shared/Eufemia.js.map +1 -1
  12. package/cjs/style/core/scopes.scss +1 -1
  13. package/cjs/style/dnb-ui-basis.css +1 -1
  14. package/cjs/style/dnb-ui-basis.min.css +1 -1
  15. package/cjs/style/dnb-ui-body.css +1 -1
  16. package/cjs/style/dnb-ui-body.min.css +1 -1
  17. package/cjs/style/dnb-ui-core.css +1 -1
  18. package/cjs/style/dnb-ui-core.min.css +1 -1
  19. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -1
  20. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -1
  21. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  22. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  23. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -1
  24. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -1
  25. package/components/form-label/FormLabel.js +13 -10
  26. package/components/form-label/FormLabel.js.map +1 -1
  27. package/components/upload/UploadFileListCell.js +2 -1
  28. package/components/upload/UploadFileListCell.js.map +1 -1
  29. package/es/components/form-label/FormLabel.js +13 -10
  30. package/es/components/form-label/FormLabel.js.map +1 -1
  31. package/es/components/upload/UploadFileListCell.js +2 -1
  32. package/es/components/upload/UploadFileListCell.js.map +1 -1
  33. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  34. package/es/extensions/forms/Form/Section/style/themes/ui.js +1 -1
  35. package/es/extensions/forms/Form/Section/style/themes/ui.js.map +1 -1
  36. package/es/shared/Eufemia.d.ts +1 -1
  37. package/es/shared/Eufemia.js +2 -2
  38. package/es/shared/Eufemia.js.map +1 -1
  39. package/es/style/core/scopes.scss +1 -1
  40. package/es/style/dnb-ui-basis.css +1 -1
  41. package/es/style/dnb-ui-basis.min.css +1 -1
  42. package/es/style/dnb-ui-body.css +1 -1
  43. package/es/style/dnb-ui-body.min.css +1 -1
  44. package/es/style/dnb-ui-core.css +1 -1
  45. package/es/style/dnb-ui-core.min.css +1 -1
  46. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -1
  47. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -1
  48. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  49. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  50. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -1
  51. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -1
  52. package/esm/dnb-ui-basis.min.mjs +1 -1
  53. package/esm/dnb-ui-components.min.mjs +1 -1
  54. package/esm/dnb-ui-elements.min.mjs +1 -1
  55. package/esm/dnb-ui-extensions.min.mjs +1 -1
  56. package/esm/dnb-ui-lib.min.mjs +1 -1
  57. package/extensions/forms/Form/Section/Section.js.map +1 -1
  58. package/extensions/forms/Form/Section/style/themes/ui.js +1 -1
  59. package/extensions/forms/Form/Section/style/themes/ui.js.map +1 -1
  60. package/package.json +1 -1
  61. package/shared/Eufemia.d.ts +1 -1
  62. package/shared/Eufemia.js +2 -2
  63. package/shared/Eufemia.js.map +1 -1
  64. package/style/core/scopes.scss +1 -1
  65. package/style/dnb-ui-basis.css +1 -1
  66. package/style/dnb-ui-basis.min.css +1 -1
  67. package/style/dnb-ui-body.css +1 -1
  68. package/style/dnb-ui-body.min.css +1 -1
  69. package/style/dnb-ui-core.css +1 -1
  70. package/style/dnb-ui-core.min.css +1 -1
  71. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -1
  72. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -1
  73. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -1
  74. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -1
  75. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -1
  76. package/style/themes/theme-ui/ui-theme-forms.scss +1 -1
  77. package/umd/dnb-ui-basis.min.js +1 -1
  78. package/umd/dnb-ui-components.min.js +1 -1
  79. package/umd/dnb-ui-elements.min.js +1 -1
  80. package/umd/dnb-ui-extensions.min.js +1 -1
  81. package/umd/dnb-ui-lib.min.js +1 -1
  82. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.css → dnb-form-section-theme-sbanken.css} +0 -0
  83. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.min.css → dnb-form-section-theme-sbanken.min.css} +0 -0
  84. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.scss → dnb-form-section-theme-sbanken.scss} +0 -0
  85. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.css → dnb-form-section-theme-ui.css} +0 -0
  86. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.min.css → dnb-form-section-theme-ui.min.css} +0 -0
  87. /package/cjs/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.scss → dnb-form-section-theme-ui.scss} +0 -0
  88. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.css → dnb-form-section-theme-sbanken.css} +0 -0
  89. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.min.css → dnb-form-section-theme-sbanken.min.css} +0 -0
  90. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.scss → dnb-form-section-theme-sbanken.scss} +0 -0
  91. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.css → dnb-form-section-theme-ui.css} +0 -0
  92. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.min.css → dnb-form-section-theme-ui.min.css} +0 -0
  93. /package/es/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.scss → dnb-form-section-theme-ui.scss} +0 -0
  94. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.css → dnb-form-section-theme-sbanken.css} +0 -0
  95. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.min.css → dnb-form-section-theme-sbanken.min.css} +0 -0
  96. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-sbanken.scss → dnb-form-section-theme-sbanken.scss} +0 -0
  97. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.css → dnb-form-section-theme-ui.css} +0 -0
  98. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.min.css → dnb-form-section-theme-ui.min.css} +0 -0
  99. /package/extensions/forms/Form/Section/style/themes/{dnb-section-theme-ui.scss → dnb-form-section-theme-ui.scss} +0 -0
@@ -55,8 +55,7 @@ export default function FormLabel(localProps) {
55
55
  }
56
56
  const forElem = document.querySelector(`#${forId}`);
57
57
  const target = (forElem === null || forElem === void 0 ? void 0 : forElem.closest('.dnb-input__border--root')) || (forElem === null || forElem === void 0 ? void 0 : forElem.closest('.dnb-input__border'));
58
- if (target) {
59
- var _elem$addEventListene, _elem$addEventListene2;
58
+ if (target && ref.current) {
60
59
  const elem = ref.current;
61
60
  const buttonEnter = () => {
62
61
  target.classList.add('no-hover');
@@ -78,17 +77,21 @@ export default function FormLabel(localProps) {
78
77
  });
79
78
  };
80
79
  const leave = () => {
81
- var _elem$querySelector, _elem$querySelector$r;
80
+ var _button$removeEventLi;
82
81
  target.classList.remove('hover');
83
- (_elem$querySelector = elem.querySelector('button')) === null || _elem$querySelector === void 0 ? void 0 : (_elem$querySelector$r = _elem$querySelector.removeEventListener) === null || _elem$querySelector$r === void 0 ? void 0 : _elem$querySelector$r.call(_elem$querySelector, 'mouseenter', buttonEnter);
82
+ const button = elem.querySelector('button');
83
+ button === null || button === void 0 ? void 0 : (_button$removeEventLi = button.removeEventListener) === null || _button$removeEventLi === void 0 ? void 0 : _button$removeEventLi.call(button, 'mouseenter', buttonEnter);
84
84
  };
85
- elem === null || elem === void 0 ? void 0 : (_elem$addEventListene = elem.addEventListener) === null || _elem$addEventListene === void 0 ? void 0 : _elem$addEventListene.call(elem, 'mouseenter', enter);
86
- elem === null || elem === void 0 ? void 0 : (_elem$addEventListene2 = elem.addEventListener) === null || _elem$addEventListene2 === void 0 ? void 0 : _elem$addEventListene2.call(elem, 'mouseleave', leave);
85
+ elem.addEventListener('mouseenter', enter);
86
+ elem.addEventListener('mouseleave', leave);
87
87
  return () => {
88
- var _elem$removeEventList, _elem$removeEventList2, _elem$querySelector2, _elem$querySelector2$;
89
- elem === null || elem === void 0 ? void 0 : (_elem$removeEventList = elem.removeEventListener) === null || _elem$removeEventList === void 0 ? void 0 : _elem$removeEventList.call(elem, 'mouseenter', enter);
90
- elem === null || elem === void 0 ? void 0 : (_elem$removeEventList2 = elem.removeEventListener) === null || _elem$removeEventList2 === void 0 ? void 0 : _elem$removeEventList2.call(elem, 'mouseleave', leave);
91
- (_elem$querySelector2 = elem.querySelector('button')) === null || _elem$querySelector2 === void 0 ? void 0 : (_elem$querySelector2$ = _elem$querySelector2.removeEventListener) === null || _elem$querySelector2$ === void 0 ? void 0 : _elem$querySelector2$.call(_elem$querySelector2, 'mouseleave', buttonLeave);
88
+ if (elem) {
89
+ var _button$removeEventLi2;
90
+ elem.removeEventListener('mouseenter', enter);
91
+ elem.removeEventListener('mouseleave', leave);
92
+ const button = elem.querySelector('button');
93
+ button === null || button === void 0 ? void 0 : (_button$removeEventLi2 = button.removeEventListener) === null || _button$removeEventLi2 === void 0 ? void 0 : _button$removeEventLi2.call(button, 'mouseleave', buttonLeave);
94
+ }
92
95
  };
93
96
  }
94
97
  }, [forId, ref]);
@@ -1 +1 @@
1
- {"version":3,"file":"FormLabel.js","names":["React","useEffect","useRef","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","convertSnakeCaseProps","omitSpacingProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","nestedContent","text","children","nestedNode","nestedElement","createElement","forId","srOnly","vertical","labelDirection","size","element","Element","innerRef","className","attributes","_objectWithoutProperties","_excluded","content","isInteractive","Boolean","disabled","onClick","params","_objectSpread","right","htmlFor","labelRef","ref","forElem","document","querySelector","target","closest","_elem$addEventListene","_elem$addEventListene2","elem","current","buttonEnter","classList","add","leave","buttonLeave","remove","enter","_button$addEventListe","_button$addEventListe2","button","addEventListener","call","once","_elem$querySelector","_elem$querySelector$r","removeEventListener","_elem$removeEventList","_elem$removeEventList2","_elem$querySelector2","_elem$querySelector2$","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React, { useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport {\n FormElementProps,\n pickFormElementProps,\n} from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport { omitSpacingProps } from '../flex/utils'\nimport Context from '../../shared/Context'\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /**\n * For internal use only\n */\n labelDirection?: FormElementProps['labelDirection']\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use \"vertical\" (or \"labelDirection\" for internal use) instead (was not documented before) */\n label_direction?: FormElementProps['label_direction']\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n )\n\n const nestedContent = props?.text || props?.children\n const nestedNode =\n nestedContent?.['type'] === FormLabel ? nestedContent?.['type'] : null\n const nestedElement = nestedNode\n ? () => React.createElement(nestedNode, nestedContent['props'])\n : null\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n labelDirection,\n size,\n skeleton,\n element: Element = nestedElement || 'label',\n innerRef,\n className,\n children,\n ...attributes\n } = props\n\n const content = text || children\n\n const isInteractive = Boolean(\n !props.disabled &&\n !srOnly &&\n (typeof props.onClick === 'function' || forId)\n )\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || labelDirection === 'vertical') &&\n `dnb-form-label--vertical`,\n srOnly && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n isInteractive && 'dnb-form-label--interactive',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(\n content ? { right: 'small', ...props } : omitSpacingProps(props)\n ),\n className\n ),\n htmlFor: forId,\n ...(attributes as DynamicElementParams),\n }\n\n const labelRef = useRef<HTMLLabelElement>(null)\n const ref = innerRef || labelRef\n if (!nestedNode) {\n params['ref'] = ref\n }\n\n useEffect(() => {\n if (!forId) {\n return\n }\n\n const forElem = document.querySelector(`#${forId}`)\n const target =\n forElem?.closest('.dnb-input__border--root') ||\n forElem?.closest('.dnb-input__border')\n\n if (target) {\n const elem = ref.current\n\n const buttonEnter = () => {\n target.classList.add('no-hover')\n leave()\n }\n const buttonLeave = () => {\n target.classList.remove('no-hover')\n enter()\n }\n\n const enter = () => {\n target.classList.add('hover')\n\n // Remove the style from interactive elements (e.g. HelpButton)\n const button = elem.querySelector('button')\n button?.addEventListener?.('mouseenter', buttonEnter, {\n once: true,\n })\n button?.addEventListener?.('mouseleave', buttonLeave, {\n once: true,\n })\n }\n const leave = () => {\n target.classList.remove('hover')\n\n elem\n .querySelector('button')\n ?.removeEventListener?.('mouseenter', buttonEnter)\n }\n\n elem?.addEventListener?.('mouseenter', enter)\n elem?.addEventListener?.('mouseleave', leave)\n\n return () => {\n elem?.removeEventListener?.('mouseenter', enter)\n elem?.removeEventListener?.('mouseleave', leave)\n elem\n .querySelector('button')\n ?.removeEventListener?.('mouseleave', buttonLeave)\n }\n }\n }, [forId, ref])\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{content}</Element>\n}\n\nFormLabel._formElement = true\nFormLabel._supportsSpacingProps = true\n"],"mappings":";;;;;;;AAKA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,sBAAsB,EACtBC,MAAM,EACNC,qBAAqB,QAChB,+BAA+B;AACtC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SACEC,mBAAmB,EACnBC,qBAAqB,QAChB,4BAA4B;AACnC,SAEEC,oBAAoB,QACf,uCAAuC;AAC9C,SAASC,qBAAqB,QAAQ,yCAAyC;AAC/E,SAASC,gBAAgB,QAAQ,eAAe;AAChD,OAAOC,OAAO,MAAM,sBAAsB;AAuC1C,eAAe,SAASC,SAASA,CAACC,UAA6B,EAAE;EAC/D,MAAMC,OAAO,GAAGhB,KAAK,CAACiB,UAAU,CAACJ,OAAO,CAAC;EAGzC,MAAMK,KAAK,GAAGP,qBAAqB,CACjCP,sBAAsB,CACpBW,UAAU,EACV,IAAI,EACJ;IAAEI,QAAQ,EAAEH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG;EAAS,CAAC,EAC/BT,oBAAoB,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,CAAC,EACtCV,oBAAoB,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,WAAW,CAAC,EAC1CL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,SACX,CACF,CAAC;EAED,MAAMQ,aAAa,GAAG,CAAAJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,IAAI,MAAIL,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEM,QAAQ;EACpD,MAAMC,UAAU,GACd,CAAAH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAG,MAAM,CAAC,MAAKR,SAAS,GAAGQ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAG,MAAM,CAAC,GAAG,IAAI;EACxE,MAAMI,aAAa,GAAGD,UAAU,GAC5B,MAAMzB,KAAK,CAAC2B,aAAa,CAACF,UAAU,EAAEH,aAAa,CAAC,OAAO,CAAC,CAAC,GAC7D,IAAI;EAER,MAAM;MACJM,KAAK;MACLL,IAAI;MACJM,MAAM;MACNC,QAAQ;MACRC,cAAc;MACdC,IAAI;MACJb,QAAQ;MACRc,OAAO,EAAEC,OAAO,GAAGR,aAAa,IAAI,OAAO;MAC3CS,QAAQ;MACRC,SAAS;MACTZ;IAEF,CAAC,GAAGN,KAAK;IADJmB,UAAU,GAAAC,wBAAA,CACXpB,KAAK,EAAAqB,SAAA;EAET,MAAMC,OAAO,GAAGjB,IAAI,IAAIC,QAAQ;EAEhC,MAAMiB,aAAa,GAAGC,OAAO,CAC3B,CAACxB,KAAK,CAACyB,QAAQ,IACb,CAACd,MAAM,KACN,OAAOX,KAAK,CAAC0B,OAAO,KAAK,UAAU,IAAIhB,KAAK,CACjD,CAAC;EAED,MAAMiB,MAAM,GAAAC,aAAA;IACVV,SAAS,EAAEjC,UAAU,CACnB,gBAAgB,EAChB,CAACE,MAAM,CAACyB,QAAQ,CAAC,IAAIC,cAAc,KAAK,UAAU,KAC/C,0BAAyB,EAI5BvB,mBAAmB,CAAC,MAAM,EAAEW,QAAQ,EAAEH,OAAO,CAAC,EAC9CT,oBAAoB,CAClBiC,OAAO,GAAAM,aAAA;MAAKC,KAAK,EAAE;IAAO,GAAK7B,KAAK,IAAKN,gBAAgB,CAACM,KAAK,CACjE,CAAC,EACDkB,SAAS,EAPTP,MAAM,IAAI,aAAa,EACvBG,IAAI,IAAK,UAASA,IAAK,EAAC,EACxBS,aAAa,IAAI,6BAMnB,CAAC;IACDO,OAAO,EAAEpB;EAAK,GACVS,UAAU,CACf;EAED,MAAMY,QAAQ,GAAG/C,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAMgD,GAAG,GAAGf,QAAQ,IAAIc,QAAQ;EAChC,IAAI,CAACxB,UAAU,EAAE;IACfoB,MAAM,CAAC,KAAK,CAAC,GAAGK,GAAG;EACrB;EAEAjD,SAAS,CAAC,MAAM;IACd,IAAI,CAAC2B,KAAK,EAAE;MACV;IACF;IAEA,MAAMuB,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAE,IAAGzB,KAAM,EAAC,CAAC;IACnD,MAAM0B,MAAM,GACV,CAAAH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,CAAC,0BAA0B,CAAC,MAC5CJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,OAAO,CAAC,oBAAoB,CAAC;IAExC,IAAID,MAAM,EAAE;MAAA,IAAAE,qBAAA,EAAAC,sBAAA;MACV,MAAMC,IAAI,GAAGR,GAAG,CAACS,OAAO;MAExB,MAAMC,WAAW,GAAGA,CAAA,KAAM;QACxBN,MAAM,CAACO,SAAS,CAACC,GAAG,CAAC,UAAU,CAAC;QAChCC,KAAK,CAAC,CAAC;MACT,CAAC;MACD,MAAMC,WAAW,GAAGA,CAAA,KAAM;QACxBV,MAAM,CAACO,SAAS,CAACI,MAAM,CAAC,UAAU,CAAC;QACnCC,KAAK,CAAC,CAAC;MACT,CAAC;MAED,MAAMA,KAAK,GAAGA,CAAA,KAAM;QAAA,IAAAC,qBAAA,EAAAC,sBAAA;QAClBd,MAAM,CAACO,SAAS,CAACC,GAAG,CAAC,OAAO,CAAC;QAG7B,MAAMO,MAAM,GAAGX,IAAI,CAACL,aAAa,CAAC,QAAQ,CAAC;QAC3CgB,MAAM,aAANA,MAAM,wBAAAF,qBAAA,GAANE,MAAM,CAAEC,gBAAgB,cAAAH,qBAAA,uBAAxBA,qBAAA,CAAAI,IAAA,CAAAF,MAAM,EAAqB,YAAY,EAAET,WAAW,EAAE;UACpDY,IAAI,EAAE;QACR,CAAC,CAAC;QACFH,MAAM,aAANA,MAAM,wBAAAD,sBAAA,GAANC,MAAM,CAAEC,gBAAgB,cAAAF,sBAAA,uBAAxBA,sBAAA,CAAAG,IAAA,CAAAF,MAAM,EAAqB,YAAY,EAAEL,WAAW,EAAE;UACpDQ,IAAI,EAAE;QACR,CAAC,CAAC;MACJ,CAAC;MACD,MAAMT,KAAK,GAAGA,CAAA,KAAM;QAAA,IAAAU,mBAAA,EAAAC,qBAAA;QAClBpB,MAAM,CAACO,SAAS,CAACI,MAAM,CAAC,OAAO,CAAC;QAEhC,CAAAQ,mBAAA,GAAAf,IAAI,CACDL,aAAa,CAAC,QAAQ,CAAC,cAAAoB,mBAAA,wBAAAC,qBAAA,GAD1BD,mBAAA,CAEIE,mBAAmB,cAAAD,qBAAA,uBAFvBA,qBAAA,CAAAH,IAAA,CAAAE,mBAAA,EAE0B,YAAY,EAAEb,WAAW,CAAC;MACtD,CAAC;MAEDF,IAAI,aAAJA,IAAI,wBAAAF,qBAAA,GAAJE,IAAI,CAAEY,gBAAgB,cAAAd,qBAAA,uBAAtBA,qBAAA,CAAAe,IAAA,CAAAb,IAAI,EAAqB,YAAY,EAAEQ,KAAK,CAAC;MAC7CR,IAAI,aAAJA,IAAI,wBAAAD,sBAAA,GAAJC,IAAI,CAAEY,gBAAgB,cAAAb,sBAAA,uBAAtBA,sBAAA,CAAAc,IAAA,CAAAb,IAAI,EAAqB,YAAY,EAAEK,KAAK,CAAC;MAE7C,OAAO,MAAM;QAAA,IAAAa,qBAAA,EAAAC,sBAAA,EAAAC,oBAAA,EAAAC,qBAAA;QACXrB,IAAI,aAAJA,IAAI,wBAAAkB,qBAAA,GAAJlB,IAAI,CAAEiB,mBAAmB,cAAAC,qBAAA,uBAAzBA,qBAAA,CAAAL,IAAA,CAAAb,IAAI,EAAwB,YAAY,EAAEQ,KAAK,CAAC;QAChDR,IAAI,aAAJA,IAAI,wBAAAmB,sBAAA,GAAJnB,IAAI,CAAEiB,mBAAmB,cAAAE,sBAAA,uBAAzBA,sBAAA,CAAAN,IAAA,CAAAb,IAAI,EAAwB,YAAY,EAAEK,KAAK,CAAC;QAChD,CAAAe,oBAAA,GAAApB,IAAI,CACDL,aAAa,CAAC,QAAQ,CAAC,cAAAyB,oBAAA,wBAAAC,qBAAA,GAD1BD,oBAAA,CAEIH,mBAAmB,cAAAI,qBAAA,uBAFvBA,qBAAA,CAAAR,IAAA,CAAAO,oBAAA,EAE0B,YAAY,EAAEd,WAAW,CAAC;MACtD,CAAC;IACH;EACF,CAAC,EAAE,CAACpC,KAAK,EAAEsB,GAAG,CAAC,CAAC;EAEhBzC,qBAAqB,CAACoC,MAAM,EAAE1B,QAAQ,EAAEH,OAAO,CAAC;EAChDV,qBAAqB,CAACS,UAAU,EAAE8B,MAAM,CAAC;EAEzC,OAAO7C,KAAA,CAAA2B,aAAA,CAACO,OAAO,EAAKW,MAAM,EAAGL,OAAiB,CAAC;AACjD;AAEA1B,SAAS,CAACkE,YAAY,GAAG,IAAI;AAC7BlE,SAAS,CAACmE,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"FormLabel.js","names":["React","useEffect","useRef","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","convertSnakeCaseProps","omitSpacingProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","nestedContent","text","children","nestedNode","nestedElement","createElement","forId","srOnly","vertical","labelDirection","size","element","Element","innerRef","className","attributes","_objectWithoutProperties","_excluded","content","isInteractive","Boolean","disabled","onClick","params","_objectSpread","right","htmlFor","labelRef","ref","forElem","document","querySelector","target","closest","current","elem","buttonEnter","classList","add","leave","buttonLeave","remove","enter","_button$addEventListe","_button$addEventListe2","button","addEventListener","call","once","_button$removeEventLi","removeEventListener","_button$removeEventLi2","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React, { useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport {\n FormElementProps,\n pickFormElementProps,\n} from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport { omitSpacingProps } from '../flex/utils'\nimport Context from '../../shared/Context'\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /**\n * For internal use only\n */\n labelDirection?: FormElementProps['labelDirection']\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use \"vertical\" (or \"labelDirection\" for internal use) instead (was not documented before) */\n label_direction?: FormElementProps['label_direction']\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n )\n\n const nestedContent = props?.text || props?.children\n const nestedNode =\n nestedContent?.['type'] === FormLabel ? nestedContent?.['type'] : null\n const nestedElement = nestedNode\n ? () => React.createElement(nestedNode, nestedContent['props'])\n : null\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n labelDirection,\n size,\n skeleton,\n element: Element = nestedElement || 'label',\n innerRef,\n className,\n children,\n ...attributes\n } = props\n\n const content = text || children\n\n const isInteractive = Boolean(\n !props.disabled &&\n !srOnly &&\n (typeof props.onClick === 'function' || forId)\n )\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || labelDirection === 'vertical') &&\n `dnb-form-label--vertical`,\n srOnly && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n isInteractive && 'dnb-form-label--interactive',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(\n content ? { right: 'small', ...props } : omitSpacingProps(props)\n ),\n className\n ),\n htmlFor: forId,\n ...(attributes as DynamicElementParams),\n }\n\n const labelRef = useRef<HTMLLabelElement>(null)\n const ref = innerRef || labelRef\n if (!nestedNode) {\n params['ref'] = ref\n }\n\n useEffect(() => {\n if (!forId) {\n return\n }\n\n const forElem = document.querySelector(`#${forId}`)\n const target =\n forElem?.closest('.dnb-input__border--root') ||\n forElem?.closest('.dnb-input__border')\n\n if (target && ref.current) {\n const elem = ref.current\n\n const buttonEnter = () => {\n target.classList.add('no-hover')\n leave()\n }\n const buttonLeave = () => {\n target.classList.remove('no-hover')\n enter()\n }\n\n const enter = () => {\n target.classList.add('hover')\n\n // Remove the style from interactive elements (e.g. HelpButton)\n const button = elem.querySelector('button')\n button?.addEventListener?.('mouseenter', buttonEnter, {\n once: true,\n })\n button?.addEventListener?.('mouseleave', buttonLeave, {\n once: true,\n })\n }\n const leave = () => {\n target.classList.remove('hover')\n\n const button = elem.querySelector('button')\n button?.removeEventListener?.('mouseenter', buttonEnter)\n }\n\n elem.addEventListener('mouseenter', enter)\n elem.addEventListener('mouseleave', leave)\n\n return () => {\n if (elem) {\n elem.removeEventListener('mouseenter', enter)\n elem.removeEventListener('mouseleave', leave)\n\n const button = elem.querySelector('button')\n button?.removeEventListener?.('mouseleave', buttonLeave)\n }\n }\n }\n }, [forId, ref])\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{content}</Element>\n}\n\nFormLabel._formElement = true\nFormLabel._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -70,7 +70,8 @@ const UploadFileListCell = _ref => {
70
70
  icon: TrashIcon,
71
71
  variant: "tertiary",
72
72
  onClick: onDeleteHandler,
73
- icon_position: "left"
73
+ icon_position: "left",
74
+ disabled: isLoading
74
75
  }, deleteButtonText))), getWarning());
75
76
  function getIcon() {
76
77
  if (isLoading) {
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Anchor","Button","Icon","FormStatus","ProgressIndicator","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_png_medium","png","file_jpg_medium","jpg","file_word_medium","doc","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","fileExtensionImages","docx","odt","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","loadingText","deleteButtonText","download","errorMessage","isLoading","hasWarning","fileType","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","name","rel","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <Anchor\n target=\"_blank\"\n href={imageUrl}\n download={download ? file.name : null}\n className={classnames(\n 'dnb-anchor--no-launch-icon',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </Anchor>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Anchor","Button","Icon","FormStatus","ProgressIndicator","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_png_medium","png","file_jpg_medium","jpg","file_word_medium","doc","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","fileExtensionImages","docx","odt","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","loadingText","deleteButtonText","download","errorMessage","isLoading","hasWarning","fileType","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","disabled","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","name","rel","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <Anchor\n target=\"_blank\"\n href={imageUrl}\n download={download ? file.name : null}\n className={classnames(\n 'dnb-anchor--no-launch-icon',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </Anchor>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
@@ -55,8 +55,7 @@ export default function FormLabel(localProps) {
55
55
  }
56
56
  const forElem = document.querySelector(`#${forId}`);
57
57
  const target = (forElem === null || forElem === void 0 ? void 0 : forElem.closest('.dnb-input__border--root')) || (forElem === null || forElem === void 0 ? void 0 : forElem.closest('.dnb-input__border'));
58
- if (target) {
59
- var _elem$addEventListene, _elem$addEventListene2;
58
+ if (target && ref.current) {
60
59
  const elem = ref.current;
61
60
  const buttonEnter = () => {
62
61
  target.classList.add('no-hover');
@@ -78,17 +77,21 @@ export default function FormLabel(localProps) {
78
77
  });
79
78
  };
80
79
  const leave = () => {
81
- var _elem$querySelector, _elem$querySelector$r;
80
+ var _button$removeEventLi;
82
81
  target.classList.remove('hover');
83
- (_elem$querySelector = elem.querySelector('button')) === null || _elem$querySelector === void 0 ? void 0 : (_elem$querySelector$r = _elem$querySelector.removeEventListener) === null || _elem$querySelector$r === void 0 ? void 0 : _elem$querySelector$r.call(_elem$querySelector, 'mouseenter', buttonEnter);
82
+ const button = elem.querySelector('button');
83
+ button === null || button === void 0 ? void 0 : (_button$removeEventLi = button.removeEventListener) === null || _button$removeEventLi === void 0 ? void 0 : _button$removeEventLi.call(button, 'mouseenter', buttonEnter);
84
84
  };
85
- elem === null || elem === void 0 ? void 0 : (_elem$addEventListene = elem.addEventListener) === null || _elem$addEventListene === void 0 ? void 0 : _elem$addEventListene.call(elem, 'mouseenter', enter);
86
- elem === null || elem === void 0 ? void 0 : (_elem$addEventListene2 = elem.addEventListener) === null || _elem$addEventListene2 === void 0 ? void 0 : _elem$addEventListene2.call(elem, 'mouseleave', leave);
85
+ elem.addEventListener('mouseenter', enter);
86
+ elem.addEventListener('mouseleave', leave);
87
87
  return () => {
88
- var _elem$removeEventList, _elem$removeEventList2, _elem$querySelector2, _elem$querySelector2$;
89
- elem === null || elem === void 0 ? void 0 : (_elem$removeEventList = elem.removeEventListener) === null || _elem$removeEventList === void 0 ? void 0 : _elem$removeEventList.call(elem, 'mouseenter', enter);
90
- elem === null || elem === void 0 ? void 0 : (_elem$removeEventList2 = elem.removeEventListener) === null || _elem$removeEventList2 === void 0 ? void 0 : _elem$removeEventList2.call(elem, 'mouseleave', leave);
91
- (_elem$querySelector2 = elem.querySelector('button')) === null || _elem$querySelector2 === void 0 ? void 0 : (_elem$querySelector2$ = _elem$querySelector2.removeEventListener) === null || _elem$querySelector2$ === void 0 ? void 0 : _elem$querySelector2$.call(_elem$querySelector2, 'mouseleave', buttonLeave);
88
+ if (elem) {
89
+ var _button$removeEventLi2;
90
+ elem.removeEventListener('mouseenter', enter);
91
+ elem.removeEventListener('mouseleave', leave);
92
+ const button = elem.querySelector('button');
93
+ button === null || button === void 0 ? void 0 : (_button$removeEventLi2 = button.removeEventListener) === null || _button$removeEventLi2 === void 0 ? void 0 : _button$removeEventLi2.call(button, 'mouseleave', buttonLeave);
94
+ }
92
95
  };
93
96
  }
94
97
  }, [forId, ref]);
@@ -1 +1 @@
1
- {"version":3,"file":"FormLabel.js","names":["React","useEffect","useRef","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","convertSnakeCaseProps","omitSpacingProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","nestedContent","text","children","nestedNode","nestedElement","createElement","forId","srOnly","vertical","labelDirection","size","element","Element","innerRef","className","attributes","_objectWithoutProperties","_excluded","content","isInteractive","Boolean","disabled","onClick","params","_objectSpread","right","htmlFor","labelRef","ref","forElem","document","querySelector","target","closest","_elem$addEventListene","_elem$addEventListene2","elem","current","buttonEnter","classList","add","leave","buttonLeave","remove","enter","_button$addEventListe","_button$addEventListe2","button","addEventListener","call","once","_elem$querySelector","_elem$querySelector$r","removeEventListener","_elem$removeEventList","_elem$removeEventList2","_elem$querySelector2","_elem$querySelector2$","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React, { useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport {\n FormElementProps,\n pickFormElementProps,\n} from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport { omitSpacingProps } from '../flex/utils'\nimport Context from '../../shared/Context'\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /**\n * For internal use only\n */\n labelDirection?: FormElementProps['labelDirection']\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use \"vertical\" (or \"labelDirection\" for internal use) instead (was not documented before) */\n label_direction?: FormElementProps['label_direction']\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n )\n\n const nestedContent = props?.text || props?.children\n const nestedNode =\n nestedContent?.['type'] === FormLabel ? nestedContent?.['type'] : null\n const nestedElement = nestedNode\n ? () => React.createElement(nestedNode, nestedContent['props'])\n : null\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n labelDirection,\n size,\n skeleton,\n element: Element = nestedElement || 'label',\n innerRef,\n className,\n children,\n ...attributes\n } = props\n\n const content = text || children\n\n const isInteractive = Boolean(\n !props.disabled &&\n !srOnly &&\n (typeof props.onClick === 'function' || forId)\n )\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || labelDirection === 'vertical') &&\n `dnb-form-label--vertical`,\n srOnly && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n isInteractive && 'dnb-form-label--interactive',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(\n content ? { right: 'small', ...props } : omitSpacingProps(props)\n ),\n className\n ),\n htmlFor: forId,\n ...(attributes as DynamicElementParams),\n }\n\n const labelRef = useRef<HTMLLabelElement>(null)\n const ref = innerRef || labelRef\n if (!nestedNode) {\n params['ref'] = ref\n }\n\n useEffect(() => {\n if (!forId) {\n return\n }\n\n const forElem = document.querySelector(`#${forId}`)\n const target =\n forElem?.closest('.dnb-input__border--root') ||\n forElem?.closest('.dnb-input__border')\n\n if (target) {\n const elem = ref.current\n\n const buttonEnter = () => {\n target.classList.add('no-hover')\n leave()\n }\n const buttonLeave = () => {\n target.classList.remove('no-hover')\n enter()\n }\n\n const enter = () => {\n target.classList.add('hover')\n\n // Remove the style from interactive elements (e.g. HelpButton)\n const button = elem.querySelector('button')\n button?.addEventListener?.('mouseenter', buttonEnter, {\n once: true,\n })\n button?.addEventListener?.('mouseleave', buttonLeave, {\n once: true,\n })\n }\n const leave = () => {\n target.classList.remove('hover')\n\n elem\n .querySelector('button')\n ?.removeEventListener?.('mouseenter', buttonEnter)\n }\n\n elem?.addEventListener?.('mouseenter', enter)\n elem?.addEventListener?.('mouseleave', leave)\n\n return () => {\n elem?.removeEventListener?.('mouseenter', enter)\n elem?.removeEventListener?.('mouseleave', leave)\n elem\n .querySelector('button')\n ?.removeEventListener?.('mouseleave', buttonLeave)\n }\n }\n }, [forId, ref])\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{content}</Element>\n}\n\nFormLabel._formElement = true\nFormLabel._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormLabel.js","names":["React","useEffect","useRef","classnames","extendPropsWithContext","isTrue","validateDOMAttributes","createSpacingClasses","createSkeletonClass","skeletonDOMAttributes","pickFormElementProps","convertSnakeCaseProps","omitSpacingProps","Context","FormLabel","localProps","context","useContext","props","skeleton","FormRow","formElement","nestedContent","text","children","nestedNode","nestedElement","createElement","forId","srOnly","vertical","labelDirection","size","element","Element","innerRef","className","attributes","_objectWithoutProperties","_excluded","content","isInteractive","Boolean","disabled","onClick","params","_objectSpread","right","htmlFor","labelRef","ref","forElem","document","querySelector","target","closest","current","elem","buttonEnter","classList","add","leave","buttonLeave","remove","enter","_button$addEventListe","_button$addEventListe2","button","addEventListener","call","once","_button$removeEventLi","removeEventListener","_button$removeEventLi2","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/form-label/FormLabel.tsx"],"sourcesContent":["/**\n * Web FormLabel Component\n *\n */\n\nimport React, { useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport {\n extendPropsWithContext,\n isTrue,\n validateDOMAttributes,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport {\n createSkeletonClass,\n skeletonDOMAttributes,\n} from '../skeleton/SkeletonHelper'\nimport {\n FormElementProps,\n pickFormElementProps,\n} from '../../shared/helpers/filterValidProps'\nimport { convertSnakeCaseProps } from '../../shared/helpers/withSnakeCaseProps'\nimport { omitSpacingProps } from '../flex/utils'\nimport Context from '../../shared/Context'\nimport type {\n DynamicElement,\n DynamicElementParams,\n SpacingProps,\n} from '../../shared/types'\n\nexport type FormLabelProps = {\n forId?: string\n element?: DynamicElement<HTMLLabelElement>\n text?: React.ReactNode\n size?: 'basis' | 'medium' | 'large'\n id?: string\n skeleton?: boolean\n label?: React.ReactNode\n vertical?: boolean\n srOnly?: boolean\n innerRef?: React.RefObject<HTMLElement>\n\n /** Is not a part of HTMLLabelElement and not documented as of now */\n disabled?: boolean\n\n /**\n * For internal use only\n */\n labelDirection?: FormElementProps['labelDirection']\n\n /** @deprecated use forId instead */\n for_id?: string\n /** @deprecated use srOnly instead */\n sr_only?: boolean\n /** @deprecated use \"vertical\" (or \"labelDirection\" for internal use) instead (was not documented before) */\n label_direction?: FormElementProps['label_direction']\n}\n\nexport type FormLabelAllProps = FormLabelProps &\n React.HTMLAttributes<HTMLLabelElement> &\n SpacingProps\n\nexport default function FormLabel(localProps: FormLabelAllProps) {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = convertSnakeCaseProps(\n extendPropsWithContext(\n localProps,\n null,\n { skeleton: context?.skeleton },\n pickFormElementProps(context?.FormRow), // Deprecated – can be removed in v11\n pickFormElementProps(context?.formElement),\n context?.FormLabel\n )\n )\n\n const nestedContent = props?.text || props?.children\n const nestedNode =\n nestedContent?.['type'] === FormLabel ? nestedContent?.['type'] : null\n const nestedElement = nestedNode\n ? () => React.createElement(nestedNode, nestedContent['props'])\n : null\n\n const {\n forId,\n text,\n srOnly,\n vertical,\n labelDirection,\n size,\n skeleton,\n element: Element = nestedElement || 'label',\n innerRef,\n className,\n children,\n ...attributes\n } = props\n\n const content = text || children\n\n const isInteractive = Boolean(\n !props.disabled &&\n !srOnly &&\n (typeof props.onClick === 'function' || forId)\n )\n\n const params = {\n className: classnames(\n 'dnb-form-label',\n (isTrue(vertical) || labelDirection === 'vertical') &&\n `dnb-form-label--vertical`,\n srOnly && 'dnb-sr-only',\n size && `dnb-h--${size}`,\n isInteractive && 'dnb-form-label--interactive',\n createSkeletonClass('font', skeleton, context),\n createSpacingClasses(\n content ? { right: 'small', ...props } : omitSpacingProps(props)\n ),\n className\n ),\n htmlFor: forId,\n ...(attributes as DynamicElementParams),\n }\n\n const labelRef = useRef<HTMLLabelElement>(null)\n const ref = innerRef || labelRef\n if (!nestedNode) {\n params['ref'] = ref\n }\n\n useEffect(() => {\n if (!forId) {\n return\n }\n\n const forElem = document.querySelector(`#${forId}`)\n const target =\n forElem?.closest('.dnb-input__border--root') ||\n forElem?.closest('.dnb-input__border')\n\n if (target && ref.current) {\n const elem = ref.current\n\n const buttonEnter = () => {\n target.classList.add('no-hover')\n leave()\n }\n const buttonLeave = () => {\n target.classList.remove('no-hover')\n enter()\n }\n\n const enter = () => {\n target.classList.add('hover')\n\n // Remove the style from interactive elements (e.g. HelpButton)\n const button = elem.querySelector('button')\n button?.addEventListener?.('mouseenter', buttonEnter, {\n once: true,\n })\n button?.addEventListener?.('mouseleave', buttonLeave, {\n once: true,\n })\n }\n const leave = () => {\n target.classList.remove('hover')\n\n const button = elem.querySelector('button')\n button?.removeEventListener?.('mouseenter', buttonEnter)\n }\n\n elem.addEventListener('mouseenter', enter)\n elem.addEventListener('mouseleave', leave)\n\n return () => {\n if (elem) {\n elem.removeEventListener('mouseenter', enter)\n elem.removeEventListener('mouseleave', leave)\n\n const button = elem.querySelector('button')\n button?.removeEventListener?.('mouseleave', buttonLeave)\n }\n }\n }\n }, [forId, ref])\n\n skeletonDOMAttributes(params, skeleton, context)\n validateDOMAttributes(localProps, params)\n\n return <Element {...params}>{content}</Element>\n}\n\nFormLabel._formElement = true\nFormLabel._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -69,7 +69,8 @@ const UploadFileListCell = ({
69
69
  icon: TrashIcon,
70
70
  variant: "tertiary",
71
71
  onClick: onDeleteHandler,
72
- icon_position: "left"
72
+ icon_position: "left",
73
+ disabled: isLoading
73
74
  }, deleteButtonText))), getWarning());
74
75
  function getIcon() {
75
76
  if (isLoading) {
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Anchor","Button","Icon","FormStatus","ProgressIndicator","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_png_medium","png","file_jpg_medium","jpg","file_word_medium","doc","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","fileExtensionImages","docx","odt","UploadFileListCell","id","uploadFile","onDelete","loadingText","deleteButtonText","download","_div","_FormStatus","errorMessage","isLoading","hasWarning","fileType","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","name","rel","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <Anchor\n target=\"_blank\"\n href={imageUrl}\n download={download ? file.name : null}\n className={classnames(\n 'dnb-anchor--no-launch-icon',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </Anchor>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFileListCell.js","names":["React","useRef","classnames","Anchor","Button","Icon","FormStatus","ProgressIndicator","trash","TrashIcon","exclamation_medium","ExclamationIcon","file_png_medium","png","file_jpg_medium","jpg","file_word_medium","doc","file_pdf_medium","pdf","file_xls_medium","xls","file_ppt_medium","ppt","file_csv_medium","csv","file_txt_medium","txt","file_xml_medium","xml","file_medium","file","getPreviousSibling","warn","useUpload","getFileTypeFromExtension","fileExtensionImages","docx","odt","UploadFileListCell","id","uploadFile","onDelete","loadingText","deleteButtonText","download","_div","_FormStatus","errorMessage","isLoading","hasWarning","fileType","imageUrl","URL","createObjectURL","cellRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","querySelector","focus","e","onDeleteHandler","createElement","className","ref","getIcon","getTitle","icon","variant","onClick","icon_position","disabled","getWarning","_ProgressIndicator","_Icon","iconFileType","mimeParts","type","split","Object","prototype","hasOwnProperty","call","target","href","name","rel","top","text","stretch","internalFiles","updateExists","useState","timerRef","clearTimers","clearTimeout","useEffect","some","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <Anchor\n target=\"_blank\"\n href={imageUrl}\n download={download ? file.name : null}\n className={classnames(\n 'dnb-anchor--no-launch-icon',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </Anchor>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","Toolbar","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","validateInitially","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","sectionProps","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../../Field/Provider'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type { Path, FieldProps, OnChange } from '../../types'\nimport type { JsonObject } from '../../utils/json-pointer'\nimport type { SharedFieldBlockProps } from '../../FieldBlock'\nimport Toolbar from './Toolbar'\n\nexport type OverwritePropsDefaults = {\n [key: Path]:\n | (FieldProps & SharedFieldBlockProps)\n | OverwritePropsDefaults\n}\nexport type SectionProps<\n overwriteProps = OverwritePropsDefaults,\n Data extends JsonObject = JsonObject,\n> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * If set to `true`, the whole section will be validated initially. All fields will then automatically get `validateInitially` and show their error messages. Can be useful in combination with `containerMode=\"auto\"`.\n */\n validateInitially?: boolean\n\n /**\n * Defines the container mode. Can be `view`, `edit` or `auto`.\n * When set to `auto`, the mode will initially be \"edit\" if fields contain errors.\n * Defaults to `auto`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<Data>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps<overwriteProps = OverwritePropsDefaults> =\n SectionProps<overwriteProps> & {\n children: React.ReactNode\n }\n\nfunction SectionComponent<overwriteProps = OverwritePropsDefaults>(\n props: LocalProps<overwriteProps>\n) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n validateInitially,\n containerMode = 'auto',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n const sectionProps = props as SectionProps\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props: sectionProps,\n }}\n >\n <SectionContainerProvider\n validateInitially={validateInitially}\n containerMode={containerMode}\n >\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.Toolbar = Toolbar\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","Toolbar","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","validateInitially","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","args","identifier","fieldProps","undefined","createElement","sectionProps","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../../Field/Provider'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\nimport Toolbar from './Toolbar'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type { Path, FieldProps, OnChange } from '../../types'\nimport type { JsonObject } from '../../utils/json-pointer'\nimport type { SharedFieldBlockProps } from '../../FieldBlock'\n\nexport type OverwritePropsDefaults = {\n [key: Path]:\n | (FieldProps & SharedFieldBlockProps)\n | OverwritePropsDefaults\n}\nexport type SectionProps<\n overwriteProps = OverwritePropsDefaults,\n Data extends JsonObject = JsonObject,\n> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * If set to `true`, the whole section will be validated initially. All fields will then automatically get `validateInitially` and show their error messages. Can be useful in combination with `containerMode=\"auto\"`.\n */\n validateInitially?: boolean\n\n /**\n * Defines the container mode. Can be `view`, `edit` or `auto`.\n * When set to `auto`, the mode will initially be \"edit\" if fields contain errors.\n * Defaults to `auto`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<Data>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps<overwriteProps = OverwritePropsDefaults> =\n SectionProps<overwriteProps> & {\n children: React.ReactNode\n }\n\nfunction SectionComponent<overwriteProps = OverwritePropsDefaults>(\n props: LocalProps<overwriteProps>\n) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n validateInitially,\n containerMode = 'auto',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n const sectionProps = props as SectionProps\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props: sectionProps,\n }}\n >\n <SectionContainerProvider\n validateInitially={validateInitially}\n containerMode={containerMode}\n >\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.Toolbar = Toolbar\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
@@ -1 +1 @@
1
- import "./dnb-section-theme-ui.min.css";
1
+ import "./dnb-form-section-theme-ui.min.css";
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","names":[],"sources":["../../../../../../../../src/extensions/forms/Form/Section/style/themes/ui.js"],"sourcesContent":["/**\n * Imports the default theme\n *\n */\n\nimport './dnb-section-theme-ui.scss'\n"],"mappings":"AAKA,OAAO,gCAA6B"}
1
+ {"version":3,"file":"ui.js","names":[],"sources":["../../../../../../../../src/extensions/forms/Form/Section/style/themes/ui.js"],"sourcesContent":["/**\n * Imports the default theme\n *\n */\n\nimport './dnb-form-section-theme-ui.scss'\n"],"mappings":"AAKA,OAAO,qCAAkC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "10.58.0";
1
+ export declare const version = "10.59.0";
2
2
  export declare function init(): void;
@@ -1,9 +1,9 @@
1
- export const version = '10.58.0';
1
+ export const version = '10.59.0';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.58.0';
6
+ return '10.59.0';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.58.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.58.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.59.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.59.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF"}
@@ -45,7 +45,7 @@
45
45
  word-break: break-word;
46
46
 
47
47
  // Will add this to the body tag – later we can test for a version mismatch
48
- --eufemia-version: '10.58.0';
48
+ --eufemia-version: '10.59.0';
49
49
 
50
50
  @content;
51
51
  }
@@ -248,7 +248,7 @@ body {
248
248
  /* stylelint-disable-next-line */
249
249
  -webkit-text-size-adjust: 100%;
250
250
  word-break: break-word;
251
- --eufemia-version: "10.58.0";
251
+ --eufemia-version: "10.59.0";
252
252
  }
253
253
  .dnb-core-style *,
254
254
  .dnb-core-style ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.58.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.59.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -274,7 +274,7 @@ body {
274
274
  /* stylelint-disable-next-line */
275
275
  -webkit-text-size-adjust: 100%;
276
276
  word-break: break-word;
277
- --eufemia-version: "10.58.0";
277
+ --eufemia-version: "10.59.0";
278
278
  }
279
279
  body *,
280
280
  body ::before,
@@ -1 +1 @@
1
- html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.58.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
1
+ html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);-moz-tab-size:4;tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] a:hover{-webkit-text-decoration:none;text-decoration:none}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{max-width:60rem;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.59.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
@@ -273,7 +273,7 @@ body,
273
273
  /* stylelint-disable-next-line */
274
274
  -webkit-text-size-adjust: 100%;
275
275
  word-break: break-word;
276
- --eufemia-version: "10.58.0";
276
+ --eufemia-version: "10.59.0";
277
277
  }
278
278
  body *,
279
279
  body ::before,