@dnb/eufemia 10.63.2 → 10.63.4

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 (132) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/avatar/Avatar.d.ts +1 -1
  3. package/cjs/components/avatar/Avatar.js.map +1 -1
  4. package/cjs/components/avatar/AvatarGroup.d.ts +1 -1
  5. package/cjs/components/avatar/AvatarGroup.js.map +1 -1
  6. package/cjs/components/badge/Badge.d.ts +1 -1
  7. package/cjs/components/badge/Badge.js.map +1 -1
  8. package/cjs/components/form-status/FormStatus.js +3 -2
  9. package/cjs/components/form-status/FormStatus.js.map +1 -1
  10. package/cjs/components/lib.d.ts +2 -2
  11. package/cjs/components/section/Section.js +1 -1
  12. package/cjs/components/section/Section.js.map +1 -1
  13. package/cjs/components/tag/Tag.d.ts +2 -2
  14. package/cjs/components/tag/Tag.js.map +1 -1
  15. package/cjs/components/tag/TagGroup.d.ts +1 -1
  16. package/cjs/components/tag/TagGroup.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/Context.d.ts +4 -1
  18. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  19. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  20. package/cjs/extensions/forms/DataContext/Provider/Provider.js +60 -43
  21. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  22. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  23. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  24. package/cjs/extensions/forms/Form/data-context/useData.js +14 -10
  25. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  26. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  27. package/cjs/extensions/forms/hooks/useFieldProps.js +11 -3
  28. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  29. package/cjs/shared/Eufemia.d.ts +1 -1
  30. package/cjs/shared/Eufemia.js +2 -2
  31. package/cjs/shared/Eufemia.js.map +1 -1
  32. package/cjs/shared/error-helper.d.ts +0 -6
  33. package/cjs/shared/error-helper.js +6 -3
  34. package/cjs/shared/error-helper.js.map +1 -1
  35. package/cjs/style/core/scopes.scss +1 -1
  36. package/cjs/style/dnb-ui-basis.css +1 -1
  37. package/cjs/style/dnb-ui-basis.min.css +1 -1
  38. package/cjs/style/dnb-ui-body.css +1 -1
  39. package/cjs/style/dnb-ui-body.min.css +1 -1
  40. package/cjs/style/dnb-ui-core.css +1 -1
  41. package/cjs/style/dnb-ui-core.min.css +1 -1
  42. package/components/avatar/Avatar.d.ts +1 -1
  43. package/components/avatar/Avatar.js.map +1 -1
  44. package/components/avatar/AvatarGroup.d.ts +1 -1
  45. package/components/avatar/AvatarGroup.js.map +1 -1
  46. package/components/badge/Badge.d.ts +1 -1
  47. package/components/badge/Badge.js.map +1 -1
  48. package/components/form-status/FormStatus.js +3 -2
  49. package/components/form-status/FormStatus.js.map +1 -1
  50. package/components/lib.d.ts +2 -2
  51. package/components/section/Section.js +1 -1
  52. package/components/section/Section.js.map +1 -1
  53. package/components/tag/Tag.d.ts +2 -2
  54. package/components/tag/Tag.js.map +1 -1
  55. package/components/tag/TagGroup.d.ts +1 -1
  56. package/components/tag/TagGroup.js.map +1 -1
  57. package/es/components/avatar/Avatar.d.ts +1 -1
  58. package/es/components/avatar/Avatar.js.map +1 -1
  59. package/es/components/avatar/AvatarGroup.d.ts +1 -1
  60. package/es/components/avatar/AvatarGroup.js.map +1 -1
  61. package/es/components/badge/Badge.d.ts +1 -1
  62. package/es/components/badge/Badge.js.map +1 -1
  63. package/es/components/form-status/FormStatus.js +3 -2
  64. package/es/components/form-status/FormStatus.js.map +1 -1
  65. package/es/components/lib.d.ts +2 -2
  66. package/es/components/section/Section.js +1 -1
  67. package/es/components/section/Section.js.map +1 -1
  68. package/es/components/tag/Tag.d.ts +2 -2
  69. package/es/components/tag/Tag.js.map +1 -1
  70. package/es/components/tag/TagGroup.d.ts +1 -1
  71. package/es/components/tag/TagGroup.js.map +1 -1
  72. package/es/extensions/forms/DataContext/Context.d.ts +4 -1
  73. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  74. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  75. package/es/extensions/forms/DataContext/Provider/Provider.js +55 -41
  76. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  77. package/es/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  78. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  79. package/es/extensions/forms/Form/data-context/useData.js +14 -10
  80. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  81. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  82. package/es/extensions/forms/hooks/useFieldProps.js +11 -2
  83. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  84. package/es/shared/Eufemia.d.ts +1 -1
  85. package/es/shared/Eufemia.js +2 -2
  86. package/es/shared/Eufemia.js.map +1 -1
  87. package/es/shared/error-helper.d.ts +0 -6
  88. package/es/shared/error-helper.js +6 -3
  89. package/es/shared/error-helper.js.map +1 -1
  90. package/es/style/core/scopes.scss +1 -1
  91. package/es/style/dnb-ui-basis.css +1 -1
  92. package/es/style/dnb-ui-basis.min.css +1 -1
  93. package/es/style/dnb-ui-body.css +1 -1
  94. package/es/style/dnb-ui-body.min.css +1 -1
  95. package/es/style/dnb-ui-core.css +1 -1
  96. package/es/style/dnb-ui-core.min.css +1 -1
  97. package/esm/dnb-ui-basis.min.mjs +1 -1
  98. package/esm/dnb-ui-components.min.mjs +1 -1
  99. package/esm/dnb-ui-elements.min.mjs +1 -1
  100. package/esm/dnb-ui-extensions.min.mjs +1 -1
  101. package/esm/dnb-ui-lib.min.mjs +1 -1
  102. package/extensions/forms/DataContext/Context.d.ts +4 -1
  103. package/extensions/forms/DataContext/Context.js.map +1 -1
  104. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
  105. package/extensions/forms/DataContext/Provider/Provider.js +60 -43
  106. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  107. package/extensions/forms/Form/Visibility/useVisibility.js +6 -6
  108. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  109. package/extensions/forms/Form/data-context/useData.js +14 -10
  110. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  111. package/extensions/forms/hooks/useFieldProps.d.ts +4 -1
  112. package/extensions/forms/hooks/useFieldProps.js +11 -3
  113. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  114. package/package.json +1 -1
  115. package/shared/Eufemia.d.ts +1 -1
  116. package/shared/Eufemia.js +2 -2
  117. package/shared/Eufemia.js.map +1 -1
  118. package/shared/error-helper.d.ts +0 -6
  119. package/shared/error-helper.js +6 -3
  120. package/shared/error-helper.js.map +1 -1
  121. package/style/core/scopes.scss +1 -1
  122. package/style/dnb-ui-basis.css +1 -1
  123. package/style/dnb-ui-basis.min.css +1 -1
  124. package/style/dnb-ui-body.css +1 -1
  125. package/style/dnb-ui-body.min.css +1 -1
  126. package/style/dnb-ui-core.css +1 -1
  127. package/style/dnb-ui-core.min.css +1 -1
  128. package/umd/dnb-ui-basis.min.js +1 -1
  129. package/umd/dnb-ui-components.min.js +1 -1
  130. package/umd/dnb-ui-elements.min.js +1 -1
  131. package/umd/dnb-ui-extensions.min.js +2 -2
  132. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FormStatus.js","names":["React","PropTypes","classnames","useTheme","Context","isTrue","makeUniqueId","validateDOMAttributes","processChildren","extendPropsWithContextInClassComponent","HeightAnimation","spacingPropTypes","createSpacingClasses","Icon","GlobalStatusProvider","skeletonDOMAttributes","createSkeletonClass","pickFormElementProps","ui","sbanken","properties","FormStatus","PureComponent","getContent","props","text","correctStatus","state","getIcon","icon","icon_size","IconToLoad","InfoIcon","WarnIcon","MarketingIcon","ErrorIcon","createElement","title","size","inherit_color","getDerivedStateFromProps","_id","id","constructor","context","_props$globalStatus","_context$FormStatus","_context$FormStatus$g","_context$FormRow","_context$FormRow$glob","_context$formElement","_context$formElement$","_defineProperty","_isMounted","_globalStatus","isReady","updateWidth","fillCache","_ref","current","width_element","width_selector","setMaxWidthToElement","element","widthElement","widthSelector","init","globalStatus","FormRow","formElement","provider","isReadyToGetVisible","label","getProps","add","_objectSpread","status_id","getStatusId","item","item_id","message","status_anchor_label","status_anchor_url","createRef","componentDidMount","document","readyState","window","addEventListener","shouldAnimate","content","contentCache","stateCache","componentWillUnmount","remove","removeEventListener","componentDidUpdate","prevProps","_prevProps$globalStat","show","children","update","preventRestack","defaultProps","skeleton","no_animation","render","rawState","variant","className","stretch","shellSpace","text_id","role","rest","_objectWithoutProperties","_excluded","iconToRender","contentToRender","hasStringContent","length","params","String","startsWith","textParams","shellParams","space","_extends","open","animate","duration","innerRef","attributes","process","env","NODE_ENV","propTypes","string","oneOfType","bool","func","node","oneOf","shape","object","_useTheme","isSbankenTheme","name","fill","line","width","height","viewBox","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","_useTheme2","_useTheme3","fillRule","clipRule","cx","cy","r","_useTheme4","xmlns","getAttribute","replace","sumElementWidth","maxWidth","remWidth","style","getComputedStyle","hasCustomWidth","minWidth","e","ids","split","reduce","acc","cur","elem","querySelector","getElementById","offsetWidth","test","parseFloat","_supportsSpacingProps"],"sources":["../../../../src/components/form-status/FormStatus.js"],"sourcesContent":["/**\n * Web FormStatus Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { useTheme, Context } from '../../shared'\nimport {\n isTrue,\n makeUniqueId,\n validateDOMAttributes,\n processChildren,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport Icon from '../icon/Icon'\nimport GlobalStatusProvider from '../global-status/GlobalStatusProvider'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport ui from '../../style/themes/theme-ui/properties'\nimport sbanken from '../../style/themes/theme-sbanken/properties'\n\nconst properties = { ui, sbanken }\n\nexport default class FormStatus extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n show: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n text: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n label: PropTypes.node,\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n icon_size: PropTypes.string,\n state: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.oneOf(['error', 'warn', 'info', 'marketing']),\n ]),\n variant: PropTypes.oneOf(['flat', 'outlined']),\n size: PropTypes.oneOf(['default', 'large']),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n text_id: PropTypes.string,\n width_selector: PropTypes.string,\n width_element: PropTypes.object,\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n role: PropTypes.string,\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n }\n\n static defaultProps = {\n id: null,\n title: null,\n show: true,\n text: null,\n globalStatus: null,\n label: null,\n icon: 'error',\n icon_size: 'medium',\n size: 'default',\n variant: null,\n state: 'error',\n attributes: null,\n text_id: null,\n width_selector: null,\n width_element: null,\n no_animation: null,\n skeleton: null,\n stretch: null,\n role: null,\n className: null,\n children: null,\n }\n\n static getContent(props) {\n if (props.text) {\n if (isTrue(props.text)) {\n return null\n }\n return props.text\n }\n return processChildren(props)\n }\n\n static correctStatus(state) {\n switch (state) {\n case 'information':\n state = 'info'\n break\n case 'warning':\n state = 'warn'\n break\n }\n return state\n }\n\n static getIcon({ state, icon, icon_size }) {\n if (typeof icon !== 'string') {\n return icon\n }\n\n let IconToLoad = icon\n\n switch (FormStatus.correctStatus(state)) {\n case 'info':\n case 'success':\n IconToLoad = InfoIcon\n break\n case 'warn':\n IconToLoad = WarnIcon\n break\n case 'marketing':\n IconToLoad = MarketingIcon\n break\n case 'error':\n default:\n IconToLoad = ErrorIcon\n }\n\n return (\n <Icon\n icon={<IconToLoad title={null} state={state} />}\n size={icon_size}\n inherit_color={false}\n />\n )\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._id !== props.id && props.id) {\n state.id = props.id\n }\n\n state._id = props.id\n\n return state\n }\n\n state = { id: null }\n\n constructor(props, context) {\n super(props)\n\n // we do not use a random ID here, as we don't need it for now\n this.state.id = props.id || makeUniqueId()\n\n this._globalStatus = GlobalStatusProvider.init(\n props?.globalStatus?.id ||\n context?.FormStatus?.globalStatus?.id ||\n context?.FormRow?.globalStatus?.id || // Deprecated – can be removed in v11\n context?.formElement?.globalStatus?.id ||\n 'main',\n (provider) => {\n // gets called once ready\n if (this.props.state === 'error' && this.isReadyToGetVisible()) {\n const { state, text, globalStatus, label } =\n this.getProps(context)\n provider.add({\n state,\n status_id: this.getStatusId(),\n item: {\n item_id: this.state.id,\n text: globalStatus?.message || text,\n status_anchor_label: label,\n status_anchor_url: true,\n },\n ...globalStatus,\n })\n }\n }\n )\n\n this._ref = React.createRef()\n }\n\n init = () => {\n if (this._isMounted) {\n this._globalStatus.isReady()\n\n this.updateWidth()\n this.fillCache()\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n if (document.readyState === 'complete') {\n this.init()\n } else if (typeof window !== 'undefined') {\n window.addEventListener('load', this.init)\n }\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', this.updateWidth)\n }\n }\n\n fillCache() {\n const shouldAnimate = this.shouldAnimate()\n\n // Content\n const content = shouldAnimate && FormStatus.getContent(this.props)\n if (content && content !== this.contentCache) {\n this.contentCache = content\n }\n\n // State\n const state =\n shouldAnimate && FormStatus.correctStatus(this.props.state)\n if (state) {\n this.stateCache = state\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n const status_id = this.getStatusId()\n this._globalStatus.remove(status_id)\n if (typeof window !== 'undefined') {\n window.removeEventListener('load', this.init)\n window.removeEventListener('resize', this.updateWidth)\n }\n }\n\n componentDidUpdate(prevProps) {\n const { state, show, text, globalStatus, children, label } =\n this.getProps()\n\n if (\n prevProps.text !== text ||\n prevProps.children !== children ||\n prevProps.show !== show ||\n prevProps.globalStatus?.show !== globalStatus?.show ||\n prevProps.state !== state\n ) {\n this.fillCache()\n\n if (state === 'error') {\n const status_id = this.getStatusId()\n\n if (isTrue(show)) {\n this._globalStatus.update(\n status_id,\n {\n state,\n status_id,\n item: {\n item_id: this.state.id,\n text: globalStatus?.message || text,\n status_anchor_label: label,\n status_anchor_url: true,\n },\n ...globalStatus,\n },\n {\n preventRestack: true, // because of the internal \"close\"\n }\n )\n } else if (!FormStatus.getContent(this.props)) {\n const status_id = this.getStatusId()\n this._globalStatus.remove(status_id)\n }\n }\n\n if (this.isReadyToGetVisible()) {\n this.updateWidth()\n }\n }\n }\n\n getProps(context = this.context) {\n return extendPropsWithContextInClassComponent(\n this.props,\n FormStatus.defaultProps,\n { skeleton: context?.skeleton },\n // Deprecated – can be removed in v11\n pickFormElementProps(context?.FormRow),\n pickFormElementProps(context?.formElement),\n context?.FormStatus\n )\n }\n\n getStatusId() {\n return `${this.state.id}-gs`\n }\n\n updateWidth = () => {\n // set max-width to this form-status, using the \"linked mother\"\n if (this._ref.current) {\n const { width_element, width_selector } = this.props\n setMaxWidthToElement({\n element: this._ref.current,\n widthElement: width_element && width_element.current,\n widthSelector: width_selector,\n })\n }\n }\n\n shouldAnimate() {\n return this.props.no_animation === false\n }\n\n isReadyToGetVisible(props = this.props) {\n return isTrue(props.show) && FormStatus.getContent(props)\n ? true\n : false\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n title,\n state: rawState,\n size,\n variant,\n className,\n stretch,\n shellSpace,\n text_id,\n\n show, // eslint-disable-line\n no_animation, // eslint-disable-line\n label, // eslint-disable-line\n status_id, // eslint-disable-line\n globalStatus, // eslint-disable-line\n id, // eslint-disable-line\n text, // eslint-disable-line\n icon, // eslint-disable-line\n icon_size, // eslint-disable-line\n skeleton, // eslint-disable-line\n children, // eslint-disable-line\n role,\n\n ...rest\n } = props\n\n const state = FormStatus.correctStatus(rawState) || this.stateCache\n const iconToRender = FormStatus.getIcon({\n state,\n icon,\n icon_size,\n })\n\n const contentToRender = FormStatus.getContent(this.props)\n\n const hasStringContent =\n typeof contentToRender === 'string' && contentToRender.length > 0\n\n const params = {\n className: classnames(\n 'dnb-form-status',\n state && `dnb-form-status--${state}`,\n `dnb-form-status__size--${size}`,\n variant && `dnb-form-status__variant--${variant}`,\n stretch && 'dnb-form-status--stretch',\n hasStringContent ? 'dnb-form-status--has-content' : null,\n createSpacingClasses(props),\n className\n ),\n id: !String(id).startsWith('null') ? this.state.id : null,\n title,\n role,\n ...rest,\n }\n\n if (!role) {\n switch (state) {\n case 'info':\n params.role = 'status'\n break\n default:\n params.role = 'alert'\n }\n }\n\n const textParams = {\n className: classnames(\n 'dnb-form-status__text',\n createSkeletonClass('font', skeleton, this.context)\n ),\n id: !String(text_id).startsWith('null') ? text_id : null,\n }\n\n const shellParams = {\n className: classnames(\n 'dnb-form-status__shell',\n createSpacingClasses({ space: shellSpace })\n ),\n }\n\n skeletonDOMAttributes(params, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n validateDOMAttributes(null, textParams)\n\n return (\n <HeightAnimation\n element=\"span\"\n open={this.isReadyToGetVisible()}\n animate={this.shouldAnimate()}\n duration={600}\n {...params}\n innerRef={this._ref}\n >\n <span {...shellParams}>\n {iconToRender}\n <span {...textParams}>\n {contentToRender || this.contentCache}\n </span>\n </span>\n </HeightAnimation>\n )\n }\n}\n\nexport const ErrorIcon = (props) => {\n const { title = 'error' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-magenta']\n : properties.ui['--color-fire-red']\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-magenta-light-2']\n : properties.ui['--color-white']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n d=\"M23.625 17.864A3.547 3.547 0 0120.45 23H3.548a3.546 3.546 0 01-3.172-5.136l8.45-14.902a3.548 3.548 0 016.347 0l8.452 14.902z\"\n fill={fill}\n />\n <path\n d=\"M12 16.286a1.286 1.286 0 100 2.572 1.286 1.286 0 000-2.572z\"\n fill={line}\n />\n <path\n d=\"M12 13.818v-5\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nErrorIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const WarnIcon = (props) => {\n const { title = 'error' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-yellow-dark']\n : properties.ui['--color-accent-yellow']\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-black']\n : properties.ui['--color-black-80']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n d=\"M23.625 17.864A3.547 3.547 0 0120.45 23H3.548a3.546 3.546 0 01-3.172-5.136l8.45-14.902a3.548 3.548 0 016.347 0l8.452 14.902z\"\n fill={fill}\n />\n <path\n d=\"M12 16.286a1.286 1.286 0 100 2.572 1.286 1.286 0 000-2.572z\"\n fill={line}\n />\n <path\n d=\"M12 13.818v-5\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nWarnIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const InfoIcon = (props) => {\n const { title = 'info' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n let fill = isSbankenTheme\n ? properties.sbanken['--sb-color-violet-light']\n : properties.ui['--color-sea-green']\n if (props && props?.state === 'success') {\n fill = isSbankenTheme\n ? properties.sbanken['--sb-color-green-dark-3']\n : properties.ui['--color-summer-green']\n }\n\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-green-light-2']\n : properties.ui['--color-white']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.268 0a11.25 11.25 0 105.566 21.017l6.112 2.91a.75.75 0 001-1l-2.911-6.112A11.234 11.234 0 0011.268 0z\"\n fill={fill}\n />\n <circle cx=\"11\" cy=\"6.5\" r=\".5\" fill=\"#fff\" stroke={line} />\n <path\n d=\"M13.75 16H13a1.5 1.5 0 01-1.5-1.5v-3.75a.75.75 0 00-.75-.75H10\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nInfoIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const MarketingIcon = (props) => {\n const { title = 'marketing' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-violet-light']\n : properties.ui['--color-black-80']\n\n return (\n <svg\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <title>{title}</title>\n <path\n d=\"M6 15.25H4.5c-2.042 0-3.75-1.707-3.75-3.75S2.458 7.75 4.5 7.75H6v7.5ZM7.5 15.25c4.801 0 8.846 1.897 12.75 4.5V3.25c-3.904 2.603-7.949 4.5-12.75 4.5v7.5ZM23.25 10a.75.75 0 0 0-1.5 0h1.5Zm-1.5 3a.75.75 0 0 0 1.5 0h-1.5ZM8.483 21.043a.75.75 0 1 0 1.034-1.086l-1.034 1.086ZM21.75 10v3h1.5v-3h-1.5ZM6 15.25a8.058 8.058 0 0 0 2.483 5.793l1.034-1.086A6.559 6.559 0 0 1 7.5 15.25H6Z\"\n fill={fill}\n />\n </svg>\n )\n}\nMarketingIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport function setMaxWidthToElement({\n element,\n id = null,\n widthElement = null,\n widthSelector = null,\n}) {\n if (!(element && typeof window !== 'undefined')) {\n return // stop here\n }\n try {\n if (!id && !widthSelector) {\n id = element.getAttribute('id')\n }\n widthSelector = widthSelector || id?.replace('-form-status', '') || id\n\n let width = sumElementWidth({\n widthElement,\n widthSelector,\n })\n\n if (width > 40) {\n const maxWidth = 30 * 16 // use 12rem, because that's the default width in chrome for an input\n if (width < maxWidth) {\n width = maxWidth\n }\n\n const remWidth = `${width / 16}rem`\n\n const style = window.getComputedStyle(element)\n const hasCustomWidth = element.style.maxWidth\n ? false\n : (style.minWidth !== '' && style.minWidth !== 'auto') ||\n (style.maxWidth !== '' && style.maxWidth !== 'none')\n\n if (!hasCustomWidth) {\n element.style.maxWidth = remWidth\n }\n }\n } catch (e) {\n // skip logging\n }\n}\n\nfunction sumElementWidth({ widthElement, widthSelector }) {\n let width = 0\n if (typeof document === 'undefined') {\n return width // stop here\n }\n try {\n // beside \"selector\" - which is straight forward, we\n // also check if we can get an ID given by text_id\n const ids = widthElement\n ? [widthElement]\n : widthSelector.split(/, |,/g)\n\n width = ids.reduce((acc, cur) => {\n const elem =\n typeof cur === 'string'\n ? cur[0] === '.'\n ? document.querySelector(cur)\n : document.getElementById(cur)\n : cur\n\n let width =\n (elem && elem.offsetWidth) || window.getComputedStyle(elem).width\n if (/em|rem/.test(width)) {\n width = parseFloat(width) * 16\n }\n\n if (width > 0) {\n // add additional one more spacing unit\n // to make it more correct for small elements\n if (acc > 0) {\n acc += 16\n }\n acc += width\n }\n\n return acc\n }, width)\n } catch (e) {\n // skip logging\n }\n\n return width\n}\n\nFormStatus._supportsSpacingProps = true\n"],"mappings":"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"}
1
+ {"version":3,"file":"FormStatus.js","names":["React","PropTypes","classnames","useTheme","Context","isTrue","makeUniqueId","validateDOMAttributes","processChildren","extendPropsWithContextInClassComponent","HeightAnimation","spacingPropTypes","createSpacingClasses","Icon","GlobalStatusProvider","skeletonDOMAttributes","createSkeletonClass","pickFormElementProps","ui","sbanken","properties","FormStatus","PureComponent","getContent","props","text","correctStatus","state","getIcon","icon","icon_size","IconToLoad","InfoIcon","WarnIcon","MarketingIcon","ErrorIcon","createElement","title","size","inherit_color","getDerivedStateFromProps","_id","id","constructor","context","_props$globalStatus","_context$FormStatus","_context$FormStatus$g","_context$FormRow","_context$FormRow$glob","_context$formElement","_context$formElement$","_defineProperty","_isMounted","_globalStatus","isReady","updateWidth","fillCache","_ref","current","width_element","width_selector","setMaxWidthToElement","element","widthElement","widthSelector","init","globalStatus","FormRow","formElement","provider","isReadyToGetVisible","children","label","getProps","add","_objectSpread","status_id","getStatusId","item","item_id","message","status_anchor_label","status_anchor_url","createRef","componentDidMount","document","readyState","window","addEventListener","shouldAnimate","content","contentCache","stateCache","componentWillUnmount","remove","removeEventListener","componentDidUpdate","prevProps","_prevProps$globalStat","show","update","preventRestack","defaultProps","skeleton","no_animation","render","rawState","variant","className","stretch","shellSpace","text_id","role","rest","_objectWithoutProperties","_excluded","iconToRender","contentToRender","hasStringContent","length","params","String","startsWith","textParams","shellParams","space","_extends","open","animate","duration","innerRef","attributes","process","env","NODE_ENV","propTypes","string","oneOfType","bool","func","node","oneOf","shape","object","_useTheme","isSbankenTheme","name","fill","line","width","height","viewBox","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","_useTheme2","_useTheme3","fillRule","clipRule","cx","cy","r","_useTheme4","xmlns","getAttribute","replace","sumElementWidth","maxWidth","remWidth","style","getComputedStyle","hasCustomWidth","minWidth","e","ids","split","reduce","acc","cur","elem","querySelector","getElementById","offsetWidth","test","parseFloat","_supportsSpacingProps"],"sources":["../../../../src/components/form-status/FormStatus.js"],"sourcesContent":["/**\n * Web FormStatus Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport { useTheme, Context } from '../../shared'\nimport {\n isTrue,\n makeUniqueId,\n validateDOMAttributes,\n processChildren,\n extendPropsWithContextInClassComponent,\n} from '../../shared/component-helper'\nimport HeightAnimation from '../height-animation/HeightAnimation'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport Icon from '../icon/Icon'\nimport GlobalStatusProvider from '../global-status/GlobalStatusProvider'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\nimport { pickFormElementProps } from '../../shared/helpers/filterValidProps'\nimport ui from '../../style/themes/theme-ui/properties'\nimport sbanken from '../../style/themes/theme-sbanken/properties'\n\nconst properties = { ui, sbanken }\n\nexport default class FormStatus extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n show: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n text: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n label: PropTypes.node,\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n icon_size: PropTypes.string,\n state: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string,\n PropTypes.oneOf(['error', 'warn', 'info', 'marketing']),\n ]),\n variant: PropTypes.oneOf(['flat', 'outlined']),\n size: PropTypes.oneOf(['default', 'large']),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n text_id: PropTypes.string,\n width_selector: PropTypes.string,\n width_element: PropTypes.object,\n no_animation: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n stretch: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n role: PropTypes.string,\n\n ...spacingPropTypes,\n\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n }\n\n static defaultProps = {\n id: null,\n title: null,\n show: true,\n text: null,\n globalStatus: null,\n label: null,\n icon: 'error',\n icon_size: 'medium',\n size: 'default',\n variant: null,\n state: 'error',\n attributes: null,\n text_id: null,\n width_selector: null,\n width_element: null,\n no_animation: null,\n skeleton: null,\n stretch: null,\n role: null,\n className: null,\n children: null,\n }\n\n static getContent(props) {\n if (props.text) {\n if (isTrue(props.text)) {\n return null\n }\n return props.text\n }\n return processChildren(props)\n }\n\n static correctStatus(state) {\n switch (state) {\n case 'information':\n state = 'info'\n break\n case 'warning':\n state = 'warn'\n break\n }\n return state\n }\n\n static getIcon({ state, icon, icon_size }) {\n if (typeof icon !== 'string') {\n return icon\n }\n\n let IconToLoad = icon\n\n switch (FormStatus.correctStatus(state)) {\n case 'info':\n case 'success':\n IconToLoad = InfoIcon\n break\n case 'warn':\n IconToLoad = WarnIcon\n break\n case 'marketing':\n IconToLoad = MarketingIcon\n break\n case 'error':\n default:\n IconToLoad = ErrorIcon\n }\n\n return (\n <Icon\n icon={<IconToLoad title={null} state={state} />}\n size={icon_size}\n inherit_color={false}\n />\n )\n }\n\n static getDerivedStateFromProps(props, state) {\n if (state._id !== props.id && props.id) {\n state.id = props.id\n }\n\n state._id = props.id\n\n return state\n }\n\n state = { id: null }\n\n constructor(props, context) {\n super(props)\n\n // we do not use a random ID here, as we don't need it for now\n this.state.id = props.id || makeUniqueId()\n\n this._globalStatus = GlobalStatusProvider.init(\n props?.globalStatus?.id ||\n context?.FormStatus?.globalStatus?.id ||\n context?.FormRow?.globalStatus?.id || // Deprecated – can be removed in v11\n context?.formElement?.globalStatus?.id ||\n 'main',\n (provider) => {\n // gets called once ready\n if (this.props.state === 'error' && this.isReadyToGetVisible()) {\n const { state, text, children, globalStatus, label } =\n this.getProps(context)\n provider.add({\n state,\n status_id: this.getStatusId(),\n item: {\n item_id: this.state.id,\n text: globalStatus?.message || text || children,\n status_anchor_label: label,\n status_anchor_url: true,\n },\n ...globalStatus,\n })\n }\n }\n )\n\n this._ref = React.createRef()\n }\n\n init = () => {\n if (this._isMounted) {\n this._globalStatus.isReady()\n\n this.updateWidth()\n this.fillCache()\n }\n }\n\n componentDidMount() {\n this._isMounted = true\n if (document.readyState === 'complete') {\n this.init()\n } else if (typeof window !== 'undefined') {\n window.addEventListener('load', this.init)\n }\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', this.updateWidth)\n }\n }\n\n fillCache() {\n const shouldAnimate = this.shouldAnimate()\n\n // Content\n const content = shouldAnimate && FormStatus.getContent(this.props)\n if (content && content !== this.contentCache) {\n this.contentCache = content\n }\n\n // State\n const state =\n shouldAnimate && FormStatus.correctStatus(this.props.state)\n if (state) {\n this.stateCache = state\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n const status_id = this.getStatusId()\n this._globalStatus.remove(status_id)\n if (typeof window !== 'undefined') {\n window.removeEventListener('load', this.init)\n window.removeEventListener('resize', this.updateWidth)\n }\n }\n\n componentDidUpdate(prevProps) {\n const { state, show, text, globalStatus, children, label } =\n this.getProps()\n\n if (\n prevProps.text !== text ||\n prevProps.children !== children ||\n prevProps.show !== show ||\n prevProps.globalStatus?.show !== globalStatus?.show ||\n prevProps.state !== state\n ) {\n this.fillCache()\n\n if (state === 'error') {\n const status_id = this.getStatusId()\n\n if (isTrue(show)) {\n this._globalStatus.update(\n status_id,\n {\n state,\n status_id,\n item: {\n item_id: this.state.id,\n text: globalStatus?.message || text || children,\n status_anchor_label: label,\n status_anchor_url: true,\n },\n ...globalStatus,\n },\n {\n preventRestack: true, // because of the internal \"close\"\n }\n )\n } else if (!FormStatus.getContent(this.props)) {\n const status_id = this.getStatusId()\n this._globalStatus.remove(status_id)\n }\n }\n\n if (this.isReadyToGetVisible()) {\n this.updateWidth()\n }\n }\n }\n\n getProps(context = this.context) {\n return extendPropsWithContextInClassComponent(\n this.props,\n FormStatus.defaultProps,\n { skeleton: context?.skeleton },\n // Deprecated – can be removed in v11\n pickFormElementProps(context?.FormRow),\n pickFormElementProps(context?.formElement),\n context?.FormStatus\n )\n }\n\n getStatusId() {\n return `${this.state.id}-gs`\n }\n\n updateWidth = () => {\n // set max-width to this form-status, using the \"linked mother\"\n if (this._ref.current) {\n const { width_element, width_selector } = this.props\n setMaxWidthToElement({\n element: this._ref.current,\n widthElement: width_element && width_element.current,\n widthSelector: width_selector,\n })\n }\n }\n\n shouldAnimate() {\n return this.props.no_animation === false\n }\n\n isReadyToGetVisible(props = this.props) {\n return isTrue(props.show) && FormStatus.getContent(props)\n ? true\n : false\n }\n\n render() {\n // use only the props from context, who are available here anyway\n const props = this.getProps()\n\n const {\n title,\n state: rawState,\n size,\n variant,\n className,\n stretch,\n shellSpace,\n text_id,\n\n show, // eslint-disable-line\n no_animation, // eslint-disable-line\n label, // eslint-disable-line\n status_id, // eslint-disable-line\n globalStatus, // eslint-disable-line\n id, // eslint-disable-line\n text, // eslint-disable-line\n icon, // eslint-disable-line\n icon_size, // eslint-disable-line\n skeleton, // eslint-disable-line\n children, // eslint-disable-line\n role,\n\n ...rest\n } = props\n\n const state = FormStatus.correctStatus(rawState) || this.stateCache\n const iconToRender = FormStatus.getIcon({\n state,\n icon,\n icon_size,\n })\n\n const contentToRender = FormStatus.getContent(this.props)\n\n const hasStringContent =\n typeof contentToRender === 'string' && contentToRender.length > 0\n\n const params = {\n className: classnames(\n 'dnb-form-status',\n state && `dnb-form-status--${state}`,\n `dnb-form-status__size--${size}`,\n variant && `dnb-form-status__variant--${variant}`,\n stretch && 'dnb-form-status--stretch',\n hasStringContent ? 'dnb-form-status--has-content' : null,\n createSpacingClasses(props),\n className\n ),\n id: !String(id).startsWith('null') ? this.state.id : null,\n title,\n role,\n ...rest,\n }\n\n if (!role) {\n switch (state) {\n case 'info':\n params.role = 'status'\n break\n default:\n params.role = 'alert'\n }\n }\n\n const textParams = {\n className: classnames(\n 'dnb-form-status__text',\n createSkeletonClass('font', skeleton, this.context)\n ),\n id: !String(text_id).startsWith('null') ? text_id : null,\n }\n\n const shellParams = {\n className: classnames(\n 'dnb-form-status__shell',\n createSpacingClasses({ space: shellSpace })\n ),\n }\n\n skeletonDOMAttributes(params, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, params)\n validateDOMAttributes(null, textParams)\n\n return (\n <HeightAnimation\n element=\"span\"\n open={this.isReadyToGetVisible()}\n animate={this.shouldAnimate()}\n duration={600}\n {...params}\n innerRef={this._ref}\n >\n <span {...shellParams}>\n {iconToRender}\n <span {...textParams}>\n {contentToRender || this.contentCache}\n </span>\n </span>\n </HeightAnimation>\n )\n }\n}\n\nexport const ErrorIcon = (props) => {\n const { title = 'error' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-magenta']\n : properties.ui['--color-fire-red']\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-magenta-light-2']\n : properties.ui['--color-white']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n d=\"M23.625 17.864A3.547 3.547 0 0120.45 23H3.548a3.546 3.546 0 01-3.172-5.136l8.45-14.902a3.548 3.548 0 016.347 0l8.452 14.902z\"\n fill={fill}\n />\n <path\n d=\"M12 16.286a1.286 1.286 0 100 2.572 1.286 1.286 0 000-2.572z\"\n fill={line}\n />\n <path\n d=\"M12 13.818v-5\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nErrorIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const WarnIcon = (props) => {\n const { title = 'error' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-yellow-dark']\n : properties.ui['--color-accent-yellow']\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-black']\n : properties.ui['--color-black-80']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n d=\"M23.625 17.864A3.547 3.547 0 0120.45 23H3.548a3.546 3.546 0 01-3.172-5.136l8.45-14.902a3.548 3.548 0 016.347 0l8.452 14.902z\"\n fill={fill}\n />\n <path\n d=\"M12 16.286a1.286 1.286 0 100 2.572 1.286 1.286 0 000-2.572z\"\n fill={line}\n />\n <path\n d=\"M12 13.818v-5\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nWarnIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const InfoIcon = (props) => {\n const { title = 'info' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n let fill = isSbankenTheme\n ? properties.sbanken['--sb-color-violet-light']\n : properties.ui['--color-sea-green']\n if (props && props?.state === 'success') {\n fill = isSbankenTheme\n ? properties.sbanken['--sb-color-green-dark-3']\n : properties.ui['--color-summer-green']\n }\n\n const line = isSbankenTheme\n ? properties.sbanken['--sb-color-green-light-2']\n : properties.ui['--color-white']\n\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" {...props}>\n <title>{title}</title>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.268 0a11.25 11.25 0 105.566 21.017l6.112 2.91a.75.75 0 001-1l-2.911-6.112A11.234 11.234 0 0011.268 0z\"\n fill={fill}\n />\n <circle cx=\"11\" cy=\"6.5\" r=\".5\" fill=\"#fff\" stroke={line} />\n <path\n d=\"M13.75 16H13a1.5 1.5 0 01-1.5-1.5v-3.75a.75.75 0 00-.75-.75H10\"\n stroke={line}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\nInfoIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport const MarketingIcon = (props) => {\n const { title = 'marketing' } = props || {}\n const isSbankenTheme = useTheme()?.name === 'sbanken'\n const fill = isSbankenTheme\n ? properties.sbanken['--sb-color-violet-light']\n : properties.ui['--color-black-80']\n\n return (\n <svg\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <title>{title}</title>\n <path\n d=\"M6 15.25H4.5c-2.042 0-3.75-1.707-3.75-3.75S2.458 7.75 4.5 7.75H6v7.5ZM7.5 15.25c4.801 0 8.846 1.897 12.75 4.5V3.25c-3.904 2.603-7.949 4.5-12.75 4.5v7.5ZM23.25 10a.75.75 0 0 0-1.5 0h1.5Zm-1.5 3a.75.75 0 0 0 1.5 0h-1.5ZM8.483 21.043a.75.75 0 1 0 1.034-1.086l-1.034 1.086ZM21.75 10v3h1.5v-3h-1.5ZM6 15.25a8.058 8.058 0 0 0 2.483 5.793l1.034-1.086A6.559 6.559 0 0 1 7.5 15.25H6Z\"\n fill={fill}\n />\n </svg>\n )\n}\nMarketingIcon.propTypes = {\n title: PropTypes.string,\n}\n\nexport function setMaxWidthToElement({\n element,\n id = null,\n widthElement = null,\n widthSelector = null,\n}) {\n if (!(element && typeof window !== 'undefined')) {\n return // stop here\n }\n try {\n if (!id && !widthSelector) {\n id = element.getAttribute('id')\n }\n widthSelector = widthSelector || id?.replace('-form-status', '') || id\n\n let width = sumElementWidth({\n widthElement,\n widthSelector,\n })\n\n if (width > 40) {\n const maxWidth = 30 * 16 // use 12rem, because that's the default width in chrome for an input\n if (width < maxWidth) {\n width = maxWidth\n }\n\n const remWidth = `${width / 16}rem`\n\n const style = window.getComputedStyle(element)\n const hasCustomWidth = element.style.maxWidth\n ? false\n : (style.minWidth !== '' && style.minWidth !== 'auto') ||\n (style.maxWidth !== '' && style.maxWidth !== 'none')\n\n if (!hasCustomWidth) {\n element.style.maxWidth = remWidth\n }\n }\n } catch (e) {\n // skip logging\n }\n}\n\nfunction sumElementWidth({ widthElement, widthSelector }) {\n let width = 0\n if (typeof document === 'undefined') {\n return width // stop here\n }\n try {\n // beside \"selector\" - which is straight forward, we\n // also check if we can get an ID given by text_id\n const ids = widthElement\n ? [widthElement]\n : widthSelector.split(/, |,/g)\n\n width = ids.reduce((acc, cur) => {\n const elem =\n typeof cur === 'string'\n ? cur[0] === '.'\n ? document.querySelector(cur)\n : document.getElementById(cur)\n : cur\n\n let width =\n (elem && elem.offsetWidth) || window.getComputedStyle(elem).width\n if (/em|rem/.test(width)) {\n width = parseFloat(width) * 16\n }\n\n if (width > 0) {\n // add additional one more spacing unit\n // to make it more correct for small elements\n if (acc > 0) {\n acc += 16\n }\n acc += width\n }\n\n return acc\n }, width)\n } catch (e) {\n // skip logging\n }\n\n return width\n}\n\nFormStatus._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -164,12 +164,12 @@ export declare const getComponents: () => {
164
164
  (localProps: import("./tag/Tag").TagProps & import("./space/types").SpacingElementProps & {
165
165
  space?: import("./space/types").SpaceTypeAll;
166
166
  innerSpace?: import("./space/types").SpaceTypeAll | import("./space/types").SpaceTypeMedia;
167
- }): import("react/jsx-runtime").JSX.Element;
167
+ } & import("react").HTMLProps<HTMLElement>): import("react/jsx-runtime").JSX.Element;
168
168
  Group: {
169
169
  (localProps: import("./tag/TagGroup").TagGroupProps & import("./space/types").SpacingElementProps & {
170
170
  space?: import("./space/types").SpaceTypeAll;
171
171
  innerSpace?: import("./space/types").SpaceTypeAll | import("./space/types").SpaceTypeMedia;
172
- }): import("react/jsx-runtime").JSX.Element;
172
+ } & Omit<import("react").HTMLProps<HTMLElement>, "label">): import("react/jsx-runtime").JSX.Element;
173
173
  _supportsSpacingProps: boolean;
174
174
  };
175
175
  _formElement: boolean;
@@ -46,7 +46,7 @@ export function SectionParams(localProps) {
46
46
  }));
47
47
  }
48
48
  function getColor(value) {
49
- if (value.includes('--')) {
49
+ if (String(value).includes('--')) {
50
50
  return value;
51
51
  }
52
52
  return value ? !/#|var/.test(value) ? `var(--color-${value})` : value : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (value.includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":";;;;;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SACEC,MAAM,EACNC,sBAAsB,QACjB,+BAA+B;AAMtC,OAAOC,KAAK,MAAM,gBAAgB;AAyHlC,MAAMC,YAAY,GAAG;EACnBC,OAAO,EAAE;AACX,CAAC;AAED,eAAe,SAASC,OAAOA,CAACC,UAA2B,EAAE;EAC3D,OAAOT,KAAA,CAAAU,aAAA,CAACL,KAAK,EAAKM,aAAa,CAACF,UAAU,CAAI,CAAC;AACjD;AAEA,OAAO,SAASE,aAAaA,CAC3BF,UAA2B,EACN;EACrB,MAAMG,OAAO,GAAGZ,KAAK,CAACa,UAAU,CAACX,OAAO,CAAC;EAGzC,MAAMY,KAAK,GAAGV,sBAAsB,CAClCK,UAAU,EACVH,YAAY,EACZM,OAAO,CAACJ,OACV,CAAC;EAED,MAAM;MACJO,OAAO;MACPC,QAAQ,GAAG,CAACF,KAAK,CAACG,MAAM;MACxBA,MAAM;MACNC,aAAa;MACbC,SAAS;MACTC,eAAe;MACfC,UAAU;MACVC,OAAO;MACPC,QAAQ;MAERC,SAAS;MACTC,QAAQ;MAERC,OAAO;MACPC,UAAU;MACVC;IAGF,CAAC,GAAGd,KAAK;IADJe,UAAU,GAAAC,wBAAA,CACXhB,KAAK,EAAAiB,SAAA;EAET,MAAMC,WAAW,GAAGhC,KAAK,CAACiC,MAAM,CAAc,CAAC;EAC/C,MAAMC,UAAU,GAAGX,QAAQ,IAAIK,SAAS,IAAII,WAAW;EAEvD,OAAOG,MAAM,CAACC,MAAM,CAAAC,aAAA,CAAAA,aAAA,KACfR,UAAU;IACbL,SAAS,EAAEvB,UAAU,6BAEHc,OAAO,GAAGA,OAAO,GAAGY,UAAU,IAAI,SAAU,IAG5DH,SAAS,EAFTE,OAAO,IACJ,wBAAuBvB,MAAM,CAACuB,OAAO,CAAC,GAAG,OAAO,GAAGA,OAAQ,EAEhE,CAAC;IACDY,KAAK,EAAAD,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACAE,YAAY,CACbvB,QAAQ,EACR,UAAU,EACTwB,KAAK,IAAM,mBAAkBA,KAAK,GAAG,IAAI,GAAG,KAAM,GACrD,CAAC,GACED,YAAY,CAACtB,MAAM,EAAE,QAAQ,EAAGuB,KAAK,IAAMA,KAAK,GAAG,GAAG,GAAG,GAAI,CAAC,GAC9DD,YAAY,CACbrB,aAAa,EACb,gBAAgB,EACfsB,KAAK,IAAKA,KAAK,IAAI,8BACtB,CAAC,GACED,YAAY,CAACpB,SAAS,EAAE,YAAY,EAAGqB,KAAK,IAAKC,QAAQ,CAACD,KAAK,CAAC,CAAC,GACjED,YAAY,CAACnB,eAAe,EAAE,kBAAkB,EAAGoB,KAAK,IACzDC,QAAQ,CAACD,KAAK,CAChB,CAAC,GACED,YAAY,CACblB,UAAU,EACV,aAAa,EACZmB,KAAK,IAAKA,KAAK,IAAI,uBACtB,CAAC,GACED,YAAY,CAACjB,OAAO,EAAE,eAAe,EAAGkB,KAAK,IAC9CE,MAAM,CAACF,KAAK,CAAC,KAAK,MAAM,GACpB,6BAA6B,GAC7BC,QAAQ,CAACD,KAAK,CACpB,CAAC,GACEX,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAES,KAAK,CACE;IACxBf,QAAQ,EAAEW,UAAU;IACpBT;EAAQ,EACT,CAAC;AACJ;AAEA,SAASgB,QAAQA,CAACD,KAAa,EAAE;EAC/B,IAAIA,KAAK,CAACG,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,OAAOH,KAAK;EACd;EACA,OAAOA,KAAK,GACR,CAAC,OAAO,CAACI,IAAI,CAACJ,KAAK,CAAC,GACjB,eAAcA,KAAM,GAAE,GACvBA,KAAK,GACPK,SAAS;AACf;AAEA,SAASN,YAAYA,CACnBO,QAAoD,EACpDC,IAAY,EACZC,aAAoD,EACpD;EACA,IAAIC,KAAK,GAAGH,QAAmC;EAE/C,IAAIG,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC/CA,KAAK,GAAG;MACNC,KAAK,EAAEJ,QAAQ;MACfK,MAAM,EAAEL,QAAQ;MAChBM,KAAK,EAAEN;IACT,CAA4B;EAC9B;EAEA,MAAMO,MAAM,GAAG,CAAC,CAAC;EAEjB,KAAK,MAAMC,IAAI,IAAIL,KAAK,EAA6B;IAAA,IAAAM,MAAA;IACnD,IAAI,SAAAA,MAAA,GAAON,KAAK,cAAAM,MAAA,uBAALA,MAAA,CAAQD,IAAI,CAAC,MAAK,WAAW,EAAE;MAAA,IAAAE,OAAA;MACxC,MAAMhB,KAAK,GAAGQ,aAAa,EAAAQ,OAAA,GAACP,KAAK,cAAAO,OAAA,uBAALA,OAAA,CAAQF,IAAI,CAAC,CAAC;MAC1C,IAAI,OAAOd,KAAK,KAAK,QAAQ,EAAE;QAC7Ba,MAAM,CAAE,KAAIN,IAAK,KAAIO,IAAK,EAAC,CAAC,GAAGd,KAAK;MACtC;IACF;EACF;EAEA,OAAOa,MAAM;AACf;AAEA7C,OAAO,CAACiD,KAAK,GAAG,SAAS;AACzBjD,OAAO,CAACkD,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"Section.js","names":["React","classnames","Context","isTrue","extendPropsWithContext","Space","defaultProps","element","Section","localProps","createElement","SectionParams","context","useContext","props","variant","breakout","outset","roundedCorner","textColor","backgroundColor","dropShadow","outline","innerRef","className","children","spacing","style_type","inner_ref","attributes","_objectWithoutProperties","_excluded","internalRef","useRef","elementRef","Object","freeze","_objectSpread","style","computeStyle","value","getColor","String","includes","test","undefined","property","name","valueCallback","media","small","medium","large","result","size","_media","_media2","_name","_supportsSpacingProps"],"sources":["../../../../src/components/section/Section.tsx"],"sourcesContent":["/**\n * Web Section Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport Context from '../../shared/Context'\nimport {\n isTrue,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport type {\n DynamicElement,\n ResponsiveProp,\n SpacingProps,\n} from '../../shared/types'\nimport Space from '../space/Space'\n\nexport type SectionVariants = 'error' | 'info' | 'warning' | 'success'\n\nexport type SectionStyleTypes =\n | 'divider'\n | 'white'\n | 'transparent'\n\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'lavender'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'pistachio'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'emerald-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sea-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'fire-red-8'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'sand-yellow'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'black-3'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green'\n /** @deprecated in v11 use \"variant\" or \"backgroundColor\" prop instead */\n | 'mint-green-12'\n\nexport type SectionSpacing =\n | boolean\n | 'x-small'\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\n\nexport type TextColor = string\nexport type OutlineColor = string | boolean\nexport type BackgroundColor = string\nexport type DropShadow = boolean\n\nexport type SectionProps = {\n /**\n * Defines the semantic purpose and subsequently the style of the visual helper. Will take precedence over the style_type prop\n */\n variant?: SectionVariants | string\n\n /**\n * Define if the background color should break-out to a fullscreen view. Defaults to `true`.\n */\n breakout?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the Card should break out negatively on larger screens. You can not use `breakout` and `outset` together.\n * Defaults to `false`\n */\n outset?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define if the section should have rounded corners. Defaults to `false`.\n */\n roundedCorner?: boolean | ResponsiveProp<boolean>\n\n /**\n * Define a custom border color. Use a Eufemia color.\n */\n outline?: OutlineColor | ResponsiveProp<OutlineColor>\n\n /**\n * Define a custom text color to compliment the backgroundColor. Use a Eufemia color.\n */\n textColor?: TextColor | ResponsiveProp<TextColor>\n\n /**\n * Define a custom background color, instead of a variant. Use a Eufemia color.\n */\n backgroundColor?: BackgroundColor | ResponsiveProp<BackgroundColor>\n\n /**\n * Define a custom drop-shadow.\n */\n dropShadow?: DropShadow | ResponsiveProp<DropShadow>\n\n /**\n * Define what HTML element should be used. Defaults to `<section>`.\n */\n element?: DynamicElement\n\n /**\n * Define a React.Ref.\n */\n innerRef?: React.RefObject<HTMLElement>\n\n /**\n * @deprecated in v11 use \"innerSpace\" prop instead\n */\n spacing?: SectionSpacing | ResponsiveProp<SectionSpacing>\n /**\n * @deprecated in v11 use \"background\" prop instead\n */\n style_type?: SectionStyleTypes | string\n /**\n * @deprecated in v11 use \"innerRef\" prop instead\n */\n inner_ref?: React.RefObject<HTMLElement>\n}\n\nexport type SectionAllProps = SectionProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'ref'>\n\ntype SectionReturnParams = Record<string, unknown> & {\n className: string\n innerRef: React.RefObject<HTMLElement>\n children: React.ReactNode\n style: React.CSSProperties\n}\n\nconst defaultProps = {\n element: 'section',\n}\n\nexport default function Section(localProps: SectionAllProps) {\n return <Space {...SectionParams(localProps)} />\n}\n\nexport function SectionParams(\n localProps: SectionAllProps\n): SectionReturnParams {\n const context = React.useContext(Context)\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContext(\n localProps,\n defaultProps,\n context.Section\n )\n\n const {\n variant,\n breakout = !props.outset,\n outset,\n roundedCorner,\n textColor,\n backgroundColor,\n dropShadow,\n outline,\n innerRef,\n\n className,\n children,\n\n spacing,\n style_type,\n inner_ref,\n\n ...attributes\n } = props\n\n const internalRef = React.useRef<HTMLElement>()\n const elementRef = innerRef || inner_ref || internalRef\n\n return Object.freeze({\n ...attributes,\n className: classnames(\n 'dnb-section',\n `dnb-section--${variant ? variant : style_type || 'default'}`,\n spacing &&\n `dnb-section--spacing-${isTrue(spacing) ? 'large' : spacing}`,\n className\n ),\n style: {\n ...computeStyle(\n breakout,\n 'breakout',\n (value) => `var(--breakout--${value ? 'on' : 'off'})`\n ),\n ...computeStyle(outset, 'outset', (value) => (value ? '1' : '0')),\n ...computeStyle(\n roundedCorner,\n 'rounded-corner',\n (value) => value && 'var(--rounded-corner--value)'\n ),\n ...computeStyle(textColor, 'text-color', (value) => getColor(value)),\n ...computeStyle(backgroundColor, 'background-color', (value) =>\n getColor(value)\n ),\n ...computeStyle(\n dropShadow,\n 'drop-shadow',\n (value) => value && 'var(--shadow-default)'\n ),\n ...computeStyle(outline, 'outline-color', (value) =>\n String(value) === 'true'\n ? 'var(--outline-color--value)'\n : getColor(value)\n ),\n ...attributes?.style,\n } as React.CSSProperties,\n innerRef: elementRef,\n children,\n })\n}\n\nfunction getColor(value: string) {\n if (String(value).includes('--')) {\n return value\n }\n return value\n ? !/#|var/.test(value)\n ? `var(--color-${value})`\n : value\n : undefined\n}\n\nfunction computeStyle(\n property: ResponsiveProp<unknown> | boolean | string,\n name: string,\n valueCallback: (value: string) => string | undefined\n) {\n let media = property as ResponsiveProp<unknown>\n\n if (media !== null && typeof media !== 'object') {\n media = {\n small: property,\n medium: property,\n large: property,\n } as ResponsiveProp<unknown>\n }\n\n const result = {}\n\n for (const size in media as ResponsiveProp<unknown>) {\n if (typeof media?.[size] !== 'undefined') {\n const value = valueCallback(media?.[size])\n if (typeof value === 'string') {\n result[`--${name}--${size}`] = value\n }\n }\n }\n\n return result\n}\n\nSection._name = 'Section'\nSection._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -70,12 +70,12 @@ export declare const defaultProps: {
70
70
  omitOnKeyUpDeleteEvent: boolean;
71
71
  };
72
72
  declare const Tag: {
73
- (localProps: TagProps & SpacingProps): import("react/jsx-runtime").JSX.Element;
73
+ (localProps: TagProps & SpacingProps & React.HTMLProps<HTMLElement>): import("react/jsx-runtime").JSX.Element;
74
74
  Group: {
75
75
  (localProps: import("./TagGroup").TagGroupProps & import("../space/types").SpacingElementProps & {
76
76
  space?: import("../space/types").SpaceTypeAll;
77
77
  innerSpace?: import("../space/types").SpaceTypeAll | import("../space/types").SpaceTypeMedia;
78
- }): import("react/jsx-runtime").JSX.Element;
78
+ } & Omit<React.HTMLProps<HTMLElement>, "label">): import("react/jsx-runtime").JSX.Element;
79
79
  _supportsSpacingProps: boolean;
80
80
  };
81
81
  _formElement: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","names":["React","classnames","IconPrimary","Button","Context","warn","extendPropsWithContext","TagGroup","TagGroupContext","createSpacingClasses","defaultProps","skeleton","omitOnKeyUpDeleteEvent","Tag","localProps","_context$translation","context","useContext","tagGroupContext","allProps","translation","_handleDeprecatedBeha","handleDeprecatedBehavior","className","children","text","hasLabel","variant","onClick","removeIconTitle","addIconTitle","props","_objectWithoutProperties","_excluded","content","addIcon","isInteractive","spacingClasses","tagClassNames","buttonAttr","isDeleteKeyboardEvent","keyboardEvent","key","handleDeleteKeyUp","event","element","type","icon","getIcon","createElement","_extends","size","icon_position","on_click","onKeyUp","e","undefined","_ref","onDelete","_excluded2","title","inherit_color","_svg","width","height","fill","xmlns","d","strokeWidth","strokeLinecap","strokeLinejoin","Group","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/tag/Tag.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport type { IconIcon } from '../icon/Icon'\nimport Button, { ButtonProps } from '../button/Button'\n\n// Shared\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\n// Internal\nimport TagGroup from './TagGroup'\nimport { TagGroupContext } from './TagContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nexport interface TagProps {\n /**\n * The content of the tag element, can be a string or a React Element.\n * Default: null\n */\n text?: string | React.ReactNode\n\n /**\n * Icon displaying on the left side\n * Default: null\n */\n icon?: IconIcon\n\n /**\n * If a label is given, typical inside a table or dl (definition list), then you can disable Tag.Group as a dependent of Tag. Use `true` to omit the `Tag group required:` warning.\n * Default: null\n */\n hasLabel?: boolean\n\n /**\n * Defines the variant\n * Default: 'default'\n */\n variant?: 'default' | 'clickable' | 'addable' | 'removable'\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content of the tag element, can be a string or a React Element. Will be overwritten by text prop\n * Default: null\n */\n children?: string | React.ReactNode // ReactNode allows multiple elements, strings, numbers, fragments, portals...\n\n /**\n * Handle the click event on 'tag' element\n * Default: null\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n\n /**\n * Handle the delete event on 'tag' element\n * Default: null\n * @deprecated Use `onClick` instead. With `variant='removable'`\n */\n onDelete?: React.MouseEventHandler<HTMLButtonElement>\n\n /**\n * Handle the delete event on 'tag' element\n * Default: null\n */\n omitOnKeyUpDeleteEvent?: boolean\n\n /**\n * Internal property\n * Has translation in context\n */\n removeIconTitle?: string\n\n /**\n * Internal property\n * Has translation in context\n */\n addIconTitle?: string\n}\n\nexport const defaultProps = {\n skeleton: null,\n omitOnKeyUpDeleteEvent: false,\n}\n\nconst Tag = (localProps: TagProps & SpacingProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const tagGroupContext = React.useContext(TagGroupContext)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.translation?.Tag,\n context?.Tag,\n tagGroupContext\n )\n\n const {\n className,\n skeleton,\n children,\n text,\n hasLabel,\n variant = 'default',\n onClick,\n omitOnKeyUpDeleteEvent,\n removeIconTitle, // has a translation in context\n addIconTitle, // has a translation in context\n ...props\n } = handleDeprecatedBehavior(allProps)\n\n const content = text || children\n\n const addIcon = variant === 'removable' || variant === 'addable'\n const isInteractive = variant !== 'default'\n const spacingClasses = createSpacingClasses(props)\n const tagClassNames = classnames(\n 'dnb-tag',\n className,\n spacingClasses,\n isInteractive && 'dnb-tag--interactive',\n `dnb-tag--${variant}`\n )\n const buttonAttr: typeof props & Pick<ButtonProps, 'element' | 'type'> =\n props\n\n const isDeleteKeyboardEvent = (keyboardEvent) => {\n return (\n keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete'\n )\n }\n\n const handleDeleteKeyUp = (event) => {\n if (isDeleteKeyboardEvent(event) && onClick) {\n onClick(event)\n }\n }\n\n if (!isInteractive) {\n buttonAttr.element = 'span'\n buttonAttr.type = ''\n }\n\n if (addIcon) {\n buttonAttr.icon = getIcon(\n variant === 'addable' ? addIconTitle : removeIconTitle\n )\n }\n\n if (!tagGroupContext && !hasLabel) {\n warn(\n `Tag group required: A Tag requires a Tag.Group with label description as a parent component. This is to ensure correct semantic and accessibility.`\n )\n }\n\n return (\n <Button\n variant=\"unstyled\"\n size=\"small\"\n icon_position={addIcon ? 'right' : 'left'}\n className={tagClassNames}\n on_click={onClick}\n text={content}\n skeleton={skeleton}\n onKeyUp={\n variant === 'removable' && !omitOnKeyUpDeleteEvent\n ? (e) => handleDeleteKeyUp(e)\n : undefined\n }\n {...buttonAttr}\n />\n )\n}\n\n/**\n * Support deprecated behavior by mutating the props.\n * Deprecated behavior: variant 'clickable' and 'removable' is defined by the 'onClick' and 'onDelete' props\n */\nconst handleDeprecatedBehavior: (allProps: TagProps) => TagProps = ({\n onDelete,\n ...allProps\n}) => {\n if (!allProps.variant) {\n if (allProps.onClick) {\n allProps.variant = 'clickable'\n } else if (onDelete) {\n allProps.onClick = onDelete\n allProps.variant = 'removable'\n }\n }\n return allProps\n}\nconst getIcon = (title: string) => (\n <IconPrimary\n title={title}\n inherit_color={false}\n icon={\n <svg\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8a8 8 0 1 1 16 0A8 8 0 1 1 0 8Z\"\n className=\"dnb-icon-close-circle-path\"\n />\n <path\n d=\"m5.5 10.5 5-5m0 5-5-5\"\n className=\"dnb-icon-close-cross-path\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n />\n)\n\nTag.Group = TagGroup\n\nTag._formElement = true\nTag._supportsSpacingProps = true\n\nexport default Tag\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tag.js","names":["React","classnames","IconPrimary","Button","Context","warn","extendPropsWithContext","TagGroup","TagGroupContext","createSpacingClasses","defaultProps","skeleton","omitOnKeyUpDeleteEvent","Tag","localProps","_context$translation","context","useContext","tagGroupContext","allProps","translation","_handleDeprecatedBeha","handleDeprecatedBehavior","className","children","text","hasLabel","variant","onClick","removeIconTitle","addIconTitle","props","_objectWithoutProperties","_excluded","content","addIcon","isInteractive","spacingClasses","tagClassNames","buttonAttr","isDeleteKeyboardEvent","keyboardEvent","key","handleDeleteKeyUp","event","element","type","icon","getIcon","createElement","_extends","size","icon_position","on_click","onKeyUp","e","undefined","_ref","onDelete","_excluded2","title","inherit_color","_svg","width","height","fill","xmlns","d","strokeWidth","strokeLinecap","strokeLinejoin","Group","_formElement","_supportsSpacingProps"],"sources":["../../../../src/components/tag/Tag.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport IconPrimary from '../icon-primary/IconPrimary'\nimport type { IconIcon } from '../icon/Icon'\nimport Button, { ButtonProps } from '../button/Button'\n\n// Shared\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n} from '../../shared/component-helper'\n\n// Internal\nimport TagGroup from './TagGroup'\nimport { TagGroupContext } from './TagContext'\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\nexport interface TagProps {\n /**\n * The content of the tag element, can be a string or a React Element.\n * Default: null\n */\n text?: string | React.ReactNode\n\n /**\n * Icon displaying on the left side\n * Default: null\n */\n icon?: IconIcon\n\n /**\n * If a label is given, typical inside a table or dl (definition list), then you can disable Tag.Group as a dependent of Tag. Use `true` to omit the `Tag group required:` warning.\n * Default: null\n */\n hasLabel?: boolean\n\n /**\n * Defines the variant\n * Default: 'default'\n */\n variant?: 'default' | 'clickable' | 'addable' | 'removable'\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content of the tag element, can be a string or a React Element. Will be overwritten by text prop\n * Default: null\n */\n children?: string | React.ReactNode // ReactNode allows multiple elements, strings, numbers, fragments, portals...\n\n /**\n * Handle the click event on 'tag' element\n * Default: null\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n\n /**\n * Handle the delete event on 'tag' element\n * Default: null\n * @deprecated Use `onClick` instead. With `variant='removable'`\n */\n onDelete?: React.MouseEventHandler<HTMLButtonElement>\n\n /**\n * Handle the delete event on 'tag' element\n * Default: null\n */\n omitOnKeyUpDeleteEvent?: boolean\n\n /**\n * Internal property\n * Has translation in context\n */\n removeIconTitle?: string\n\n /**\n * Internal property\n * Has translation in context\n */\n addIconTitle?: string\n}\n\nexport const defaultProps = {\n skeleton: null,\n omitOnKeyUpDeleteEvent: false,\n}\n\nconst Tag = (\n localProps: TagProps & SpacingProps & React.HTMLProps<HTMLElement>\n) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const tagGroupContext = React.useContext(TagGroupContext)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.translation?.Tag,\n context?.Tag,\n tagGroupContext\n )\n\n const {\n className,\n skeleton,\n children,\n text,\n hasLabel,\n variant = 'default',\n onClick,\n omitOnKeyUpDeleteEvent,\n removeIconTitle, // has a translation in context\n addIconTitle, // has a translation in context\n ...props\n } = handleDeprecatedBehavior(allProps)\n\n const content = text || children\n\n const addIcon = variant === 'removable' || variant === 'addable'\n const isInteractive = variant !== 'default'\n const spacingClasses = createSpacingClasses(props)\n const tagClassNames = classnames(\n 'dnb-tag',\n className,\n spacingClasses,\n isInteractive && 'dnb-tag--interactive',\n `dnb-tag--${variant}`\n )\n const buttonAttr: typeof props & Pick<ButtonProps, 'element' | 'type'> =\n props\n\n const isDeleteKeyboardEvent = (keyboardEvent) => {\n return (\n keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete'\n )\n }\n\n const handleDeleteKeyUp = (event) => {\n if (isDeleteKeyboardEvent(event) && onClick) {\n onClick(event)\n }\n }\n\n if (!isInteractive) {\n buttonAttr.element = 'span'\n buttonAttr.type = ''\n }\n\n if (addIcon) {\n buttonAttr.icon = getIcon(\n variant === 'addable' ? addIconTitle : removeIconTitle\n )\n }\n\n if (!tagGroupContext && !hasLabel) {\n warn(\n `Tag group required: A Tag requires a Tag.Group with label description as a parent component. This is to ensure correct semantic and accessibility.`\n )\n }\n\n return (\n <Button\n variant=\"unstyled\"\n size=\"small\"\n icon_position={addIcon ? 'right' : 'left'}\n className={tagClassNames}\n on_click={onClick}\n text={content}\n skeleton={skeleton}\n onKeyUp={\n variant === 'removable' && !omitOnKeyUpDeleteEvent\n ? (e) => handleDeleteKeyUp(e)\n : undefined\n }\n {...buttonAttr}\n />\n )\n}\n\n/**\n * Support deprecated behavior by mutating the props.\n * Deprecated behavior: variant 'clickable' and 'removable' is defined by the 'onClick' and 'onDelete' props\n */\nconst handleDeprecatedBehavior: (allProps: TagProps) => TagProps = ({\n onDelete,\n ...allProps\n}) => {\n if (!allProps.variant) {\n if (allProps.onClick) {\n allProps.variant = 'clickable'\n } else if (onDelete) {\n allProps.onClick = onDelete\n allProps.variant = 'removable'\n }\n }\n return allProps\n}\nconst getIcon = (title: string) => (\n <IconPrimary\n title={title}\n inherit_color={false}\n icon={\n <svg\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8a8 8 0 1 1 16 0A8 8 0 1 1 0 8Z\"\n className=\"dnb-icon-close-circle-path\"\n />\n <path\n d=\"m5.5 10.5 5-5m0 5-5-5\"\n className=\"dnb-icon-close-cross-path\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n />\n)\n\nTag.Group = TagGroup\n\nTag._formElement = true\nTag._supportsSpacingProps = true\n\nexport default Tag\n"],"mappings":"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"}
@@ -30,7 +30,7 @@ export declare const defaultProps: {
30
30
  skeleton: boolean;
31
31
  };
32
32
  declare const TagGroup: {
33
- (localProps: TagGroupProps & SpacingProps): import("react/jsx-runtime").JSX.Element;
33
+ (localProps: TagGroupProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'label'>): import("react/jsx-runtime").JSX.Element;
34
34
  _supportsSpacingProps: boolean;
35
35
  };
36
36
  export default TagGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"TagGroup.js","names":["React","classnames","createSpacingClasses","validateDOMAttributes","extendPropsWithContext","Context","TagGroupContext","defaultProps","label","className","children","skeleton","TagGroup","localProps","context","useContext","_extendPropsWithConte","childrenProp","props","_objectWithoutProperties","_excluded","Array","isArray","map","child","spacingClasses","_validateDOMAttribute","attributes","_excluded2","createElement","Provider","value","_extends","_supportsSpacingProps"],"sources":["../../../../src/components/tag/TagGroup.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\n// Shared\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport { TagGroupContext } from './TagContext'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\n\nexport interface TagGroupProps {\n /**\n * Aria label to describe the tag group\n * Default: null\n */\n label: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * The tags to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * Skeleton should be applied when loading content\n * Default: false\n */\n skeleton?: SkeletonShow\n}\n\nexport const defaultProps = {\n label: null,\n className: null,\n children: null,\n skeleton: false,\n}\n\nconst TagGroup = (localProps: TagGroupProps & SpacingProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n // Extract additional props from global context\n const {\n label,\n className,\n children: childrenProp,\n ...props\n } = extendPropsWithContext(localProps, defaultProps, context?.TagGroup, {\n skeleton: context?.skeleton,\n })\n\n let children = childrenProp\n\n if (Array.isArray(childrenProp)) {\n children = [...childrenProp].map((child) => {\n return child\n })\n }\n\n const spacingClasses = createSpacingClasses(props)\n const {\n skeleton, // eslint-disable-line\n ...attributes\n } = validateDOMAttributes({}, props)\n\n return (\n <TagGroupContext.Provider value={props}>\n <span\n className={classnames('dnb-tag__group', spacingClasses, className)}\n {...attributes}\n >\n <span className=\"dnb-sr-only\">{label}</span>\n {children}\n </span>\n </TagGroupContext.Provider>\n )\n}\n\nTagGroup._supportsSpacingProps = true\n\nexport default TagGroup\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAGnC,SAASC,oBAAoB,QAAQ,wBAAwB;AAG7D,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,+BAA+B;AACtC,OAAOC,OAAO,MAAM,sBAAsB;AAE1C,SAASC,eAAe,QAAQ,cAAc;AA6B9C,OAAO,MAAMC,YAAY,GAAG;EAC1BC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,QAAQ,GAAIC,UAAwC,IAAK;EAE7D,MAAMC,OAAO,GAAGd,KAAK,CAACe,UAAU,CAACV,OAAO,CAAC;EAEzC,MAAAW,qBAAA,GAKIZ,sBAAsB,CAACS,UAAU,EAAEN,YAAY,EAAEO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,QAAQ,EAAE;MACtED,QAAQ,EAAEG,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH;IACrB,CAAC,CAAC;IAPI;MACJH,KAAK;MACLC,SAAS;MACTC,QAAQ,EAAEO;IAEZ,CAAC,GAAAD,qBAAA;IADIE,KAAK,GAAAC,wBAAA,CAAAH,qBAAA,EAAAI,SAAA;EAKV,IAAIV,QAAQ,GAAGO,YAAY;EAE3B,IAAII,KAAK,CAACC,OAAO,CAACL,YAAY,CAAC,EAAE;IAC/BP,QAAQ,GAAG,CAAC,GAAGO,YAAY,CAAC,CAACM,GAAG,CAAEC,KAAK,IAAK;MAC1C,OAAOA,KAAK;IACd,CAAC,CAAC;EACJ;EAEA,MAAMC,cAAc,GAAGvB,oBAAoB,CAACgB,KAAK,CAAC;EAClD,MAAAQ,qBAAA,GAGIvB,qBAAqB,CAAC,CAAC,CAAC,EAAEe,KAAK,CAAC;IAH9B;MACJP;IAEF,CAAC,GAAAe,qBAAA;IADIC,UAAU,GAAAR,wBAAA,CAAAO,qBAAA,EAAAE,UAAA;EAGf,OACE5B,KAAA,CAAA6B,aAAA,CAACvB,eAAe,CAACwB,QAAQ;IAACC,KAAK,EAAEb;EAAM,GACrClB,KAAA,CAAA6B,aAAA,SAAAG,QAAA;IACEvB,SAAS,EAAER,UAAU,CAAC,gBAAgB,EAAEwB,cAAc,EAAEhB,SAAS;EAAE,GAC/DkB,UAAU,GAEd3B,KAAA,CAAA6B,aAAA;IAAMpB,SAAS,EAAC;EAAa,GAAED,KAAY,CAAC,EAC3CE,QACG,CACkB,CAAC;AAE/B,CAAC;AAEDE,QAAQ,CAACqB,qBAAqB,GAAG,IAAI;AAErC,eAAerB,QAAQ"}
1
+ {"version":3,"file":"TagGroup.js","names":["React","classnames","createSpacingClasses","validateDOMAttributes","extendPropsWithContext","Context","TagGroupContext","defaultProps","label","className","children","skeleton","TagGroup","localProps","context","useContext","_extendPropsWithConte","childrenProp","props","_objectWithoutProperties","_excluded","Array","isArray","map","child","spacingClasses","_validateDOMAttribute","attributes","_excluded2","createElement","Provider","value","_extends","_supportsSpacingProps"],"sources":["../../../../src/components/tag/TagGroup.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\n\n// Shared\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport { TagGroupContext } from './TagContext'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\n\nexport interface TagGroupProps {\n /**\n * Aria label to describe the tag group\n * Default: null\n */\n label: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * The tags to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * Skeleton should be applied when loading content\n * Default: false\n */\n skeleton?: SkeletonShow\n}\n\nexport const defaultProps = {\n label: null,\n className: null,\n children: null,\n skeleton: false,\n}\n\nconst TagGroup = (\n localProps: TagGroupProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'label'>\n) => {\n // Every component should have a context\n const context = React.useContext(Context)\n // Extract additional props from global context\n const {\n label,\n className,\n children: childrenProp,\n ...props\n } = extendPropsWithContext(localProps, defaultProps, context?.TagGroup, {\n skeleton: context?.skeleton,\n })\n\n let children = childrenProp\n\n if (Array.isArray(childrenProp)) {\n children = [...childrenProp].map((child) => {\n return child\n })\n }\n\n const spacingClasses = createSpacingClasses(props)\n const {\n skeleton, // eslint-disable-line\n ...attributes\n } = validateDOMAttributes({}, props)\n\n return (\n <TagGroupContext.Provider value={props}>\n <span\n className={classnames('dnb-tag__group', spacingClasses, className)}\n {...attributes}\n >\n <span className=\"dnb-sr-only\">{label}</span>\n {children}\n </span>\n </TagGroupContext.Provider>\n )\n}\n\nTagGroup._supportsSpacingProps = true\n\nexport default TagGroup\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAGnC,SAASC,oBAAoB,QAAQ,wBAAwB;AAG7D,SACEC,qBAAqB,EACrBC,sBAAsB,QACjB,+BAA+B;AACtC,OAAOC,OAAO,MAAM,sBAAsB;AAE1C,SAASC,eAAe,QAAQ,cAAc;AA6B9C,OAAO,MAAMC,YAAY,GAAG;EAC1BC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,QAAQ,EAAE,IAAI;EACdC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,QAAQ,GACZC,UAE6C,IAC1C;EAEH,MAAMC,OAAO,GAAGd,KAAK,CAACe,UAAU,CAACV,OAAO,CAAC;EAEzC,MAAAW,qBAAA,GAKIZ,sBAAsB,CAACS,UAAU,EAAEN,YAAY,EAAEO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,QAAQ,EAAE;MACtED,QAAQ,EAAEG,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH;IACrB,CAAC,CAAC;IAPI;MACJH,KAAK;MACLC,SAAS;MACTC,QAAQ,EAAEO;IAEZ,CAAC,GAAAD,qBAAA;IADIE,KAAK,GAAAC,wBAAA,CAAAH,qBAAA,EAAAI,SAAA;EAKV,IAAIV,QAAQ,GAAGO,YAAY;EAE3B,IAAII,KAAK,CAACC,OAAO,CAACL,YAAY,CAAC,EAAE;IAC/BP,QAAQ,GAAG,CAAC,GAAGO,YAAY,CAAC,CAACM,GAAG,CAAEC,KAAK,IAAK;MAC1C,OAAOA,KAAK;IACd,CAAC,CAAC;EACJ;EAEA,MAAMC,cAAc,GAAGvB,oBAAoB,CAACgB,KAAK,CAAC;EAClD,MAAAQ,qBAAA,GAGIvB,qBAAqB,CAAC,CAAC,CAAC,EAAEe,KAAK,CAAC;IAH9B;MACJP;IAEF,CAAC,GAAAe,qBAAA;IADIC,UAAU,GAAAR,wBAAA,CAAAO,qBAAA,EAAAE,UAAA;EAGf,OACE5B,KAAA,CAAA6B,aAAA,CAACvB,eAAe,CAACwB,QAAQ;IAACC,KAAK,EAAEb;EAAM,GACrClB,KAAA,CAAA6B,aAAA,SAAAG,QAAA;IACEvB,SAAS,EAAER,UAAU,CAAC,gBAAgB,EAAEwB,cAAc,EAAEhB,SAAS;EAAE,GAC/DkB,UAAU,GAEd3B,KAAA,CAAA6B,aAAA;IAAMpB,SAAS,EAAC;EAAa,GAAED,KAAY,CAAC,EAC3CE,QACG,CACkB,CAAC;AAE/B,CAAC;AAEDE,QAAQ,CAACqB,qBAAqB,GAAG,IAAI;AAErC,eAAerB,QAAQ"}
@@ -113,7 +113,10 @@ export interface ContextState {
113
113
  setFieldConnection?: (path: Path, connections: FieldConnections) => void;
114
114
  isEmptyDataRef?: React.MutableRefObject<boolean>;
115
115
  addSetShowAllErrorsRef?: React.MutableRefObject<Array<(showAllErrors: boolean) => void>>;
116
- fieldDisplayValueRef?: React.MutableRefObject<Record<Path, React.ReactNode>>;
116
+ fieldDisplayValueRef?: React.MutableRefObject<Record<Path, {
117
+ type: 'field';
118
+ value?: React.ReactNode;
119
+ }>>;
117
120
  fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>;
118
121
  valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>;
119
122
  fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsRef = Record<\n Path,\n {\n props: FieldInternalsRefProps\n id: string | undefined\n }\n>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: (path: Path, props: unknown, id?: string) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, React.ReactNode>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AA8MtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","handleSubmitCall","setShowAllErrors","setMountedFieldState","hasErrors","hasFieldState","hasFieldError","ajvInstance","contextErrorMessages","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, FormError, JsonObject, makeAjvInstance } from '../utils'\nimport {\n AllJSONSchemaVersions,\n GlobalErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n FieldProps,\n ValueProps,\n OnChange,\n OnSubmitParams,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\nimport { SnapshotName } from '../Form/Snapshot'\nimport { SharedStateId } from '../../../shared/helpers/useSharedState'\n\nexport type MountState = {\n isPreMounted?: boolean\n isMounted?: boolean\n isVisible?: boolean\n isFocused?: boolean\n wasStepChange?: boolean\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit' | 'onPathChange' | 'onMount'\n callback: (params?: { value: unknown }) => void | Promise<void | Error>\n}\n\nexport type VisibleDataHandler<Data> = (\n data?: Data,\n options?: VisibleDataOptions\n) => Partial<Data>\nexport type VisibleDataOptions = {\n keepPaths?: Array<Path>\n removePaths?: Array<Path>\n}\nexport type MutateDataHandler<Data> = (\n data: Data,\n mutate: TransformData\n) => Partial<Data>\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n displayValue: undefined | React.ReactNode | Array<React.ReactNode>\n label: React.ReactNode\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type VisibleData<Data = unknown> = Partial<Data>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\nexport type FieldConnections = {\n setEventResult?: (status: EventStateObject) => void\n}\nexport type FieldInternalsRefProps =\n | (FieldProps & { children: unknown })\n | undefined\nexport type FieldInternalsRef = Record<\n Path,\n {\n props: FieldInternalsRefProps\n id: string | undefined\n }\n>\nexport type ValueInternalsRef = Record<\n Path,\n { props: ValueProps | undefined }\n>\n\nexport interface ContextState {\n id?: SharedStateId\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n internalDataRef?: React.MutableRefObject<any>\n /** Should the form validate data before submitting? */\n errors?: Record<Path, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (\n path: Path,\n value: any,\n options?: { preventUpdate?: boolean }\n ) => void\n setData: (data: any) => void\n clearData?: () => void\n mutateDataHandler?: MutateDataHandler<unknown>\n filterDataHandler?: FilterDataHandler<unknown>\n visibleDataHandler?: VisibleDataHandler<unknown>\n validateData: () => void\n handleSubmit: () => Promise<EventStateObject | undefined>\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState?: (path: Path, fieldState: SubmitState) => void\n setFieldError?: (path: Path, error: Error | FormError) => void\n setMountedFieldState: (path: Path, options: MountState) => void\n setFormState?: (\n state: SubmitState,\n options?: { keepPending?: boolean }\n ) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehavior: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => Promise<EventStateObject | undefined>\n getSubmitData?: () => unknown\n getSubmitParams?: () => OnSubmitParams\n setFieldEventListener?: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setVisibleError?: (path: Path, hasError: boolean) => void\n setFieldInternals?: (path: Path, props: unknown, id?: string) => void\n setValueInternals?: (path: Path, props: unknown) => void\n setHandleSubmit?: (\n callback: HandleSubmitCallback,\n params?: { remove?: boolean }\n ) => void\n setFieldConnection?: (path: Path, connections: FieldConnections) => void\n isEmptyDataRef?: React.MutableRefObject<boolean>\n addSetShowAllErrorsRef?: React.MutableRefObject<\n Array<(showAllErrors: boolean) => void>\n >\n fieldDisplayValueRef?: React.MutableRefObject<\n Record<Path, { type: 'field'; value?: React.ReactNode }>\n >\n fieldInternalsRef?: React.MutableRefObject<FieldInternalsRef>\n valueInternalsRef?: React.MutableRefObject<ValueInternalsRef>\n fieldConnectionsRef?: React.RefObject<Record<Path, FieldConnections>>\n mountedFieldsRef?: React.MutableRefObject<Record<Path, MountState>>\n snapshotsRef?: React.MutableRefObject<\n Map<SnapshotName, Map<Path, unknown>>\n >\n existingFieldsRef?: React.MutableRefObject<Map<Path, boolean>>\n formElementRef?: React.MutableRefObject<HTMLFormElement>\n fieldErrorRef?: React.MutableRefObject<Record<Path, Error>>\n showAllErrors: boolean | number\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: GlobalErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n prerenderFieldProps?: boolean\n decoupleForm?: boolean\n hasElementRef?: React.MutableRefObject<boolean>\n restHandlerProps?: Record<string, unknown>\n props: ProviderProps<JsonObject>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n setMountedFieldState: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAqCC,eAAe,QAAQ,UAAU;AA8MtE,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,oBAAoB,EAAEA,CAAA,KAAM,IAAI;EAChCC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,WAAW,EAAEzB,eAAe,CAAC,CAAC;EAC9B0B,oBAAoB,EAAEtB,SAAS;EAC/BuB,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,aAAa,CAAe5B,mBAAmB,CAAC;AAEtE,eAAe2B,OAAO"}
@@ -14,8 +14,11 @@ export type SharedAttachments<Data = unknown> = {
14
14
  setShowAllErrors?: ContextState['setShowAllErrors'];
15
15
  setSubmitState?: ContextState['setSubmitState'];
16
16
  rerenderUseDataHook?: () => void;
17
+ updateDataValue?: ContextState['updateDataValue'];
17
18
  clearData?: () => void;
19
+ setData?: ContextState['setData'];
18
20
  fieldConnectionsRef?: ContextState['fieldConnectionsRef'];
21
+ internalDataRef?: ContextState['internalDataRef'];
19
22
  };
20
23
  export type Props<Data extends JsonObject> = IsolationProviderProps<Data> & {
21
24
  /**
@@ -170,7 +170,8 @@ export default function Provider(props) {
170
170
  }, []);
171
171
  const mutateDataHandler = useCallback((data, handler, {
172
172
  remove = false,
173
- mutate = true
173
+ mutate = true,
174
+ fireHandlerWhen = null
174
175
  } = {}) => {
175
176
  const freshData = {};
176
177
  const mutateEntry = (path, result) => {
@@ -198,20 +199,27 @@ export default function Provider(props) {
198
199
  if (exists) {
199
200
  var _fieldErrorRef$curren;
200
201
  const value = pointer.get(data, path);
201
- const displayValue = fieldDisplayValueRef.current[path];
202
+ const {
203
+ value: displayValue,
204
+ type
205
+ } = fieldDisplayValueRef.current[path] || {};
202
206
  const internal = {
203
207
  error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
204
208
  };
205
- const result = handler({
206
- path,
207
- value,
208
- displayValue,
209
- label: props.label,
210
- data: internalDataRef.current,
211
- props,
212
- internal
213
- });
214
- mutateEntry(path, result);
209
+ if ((fireHandlerWhen === null || fireHandlerWhen === void 0 ? void 0 : fireHandlerWhen({
210
+ type
211
+ })) !== false) {
212
+ const result = handler({
213
+ path,
214
+ value,
215
+ displayValue,
216
+ label: props.label,
217
+ data: internalDataRef.current,
218
+ props,
219
+ internal
220
+ });
221
+ mutateEntry(path, result);
222
+ }
215
223
  }
216
224
  });
217
225
  if (!mutate) {
@@ -387,34 +395,6 @@ export default function Provider(props) {
387
395
  isEmptyDataRef.current = false;
388
396
  });
389
397
  }, [emptyData, id, onClear, setSharedData]);
390
- useLayoutEffect(() => {
391
- if (id) {
392
- if (initialData && !sharedData.data) {
393
- extendSharedData(initialData, {
394
- preventSyncOfSameInstance: true
395
- });
396
- }
397
- }
398
- }, [id, initialData, extendSharedData, sharedData.data]);
399
- useLayoutEffect(() => {
400
- if (id) {
401
- extendAttachment({
402
- visibleDataHandler,
403
- filterDataHandler,
404
- hasErrors,
405
- hasFieldError,
406
- setShowAllErrors,
407
- setSubmitState,
408
- clearData,
409
- fieldConnectionsRef
410
- }, {
411
- preventSyncOfSameInstance: true
412
- });
413
- if (filterSubmitData) {
414
- rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
415
- }
416
- }
417
- }, [extendAttachment, visibleDataHandler, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState, clearData, extendSharedData]);
418
398
  useMemo(() => {
419
399
  executeAjvValidator();
420
400
  }, [internalDataRef.current]);
@@ -670,7 +650,10 @@ export default function Provider(props) {
670
650
  };
671
651
  const transformData = (data, handler) => {
672
652
  return mutateDataHandler(data, handler, {
673
- mutate: false
653
+ mutate: false,
654
+ fireHandlerWhen: ({
655
+ type
656
+ }) => type === 'field'
674
657
  });
675
658
  };
676
659
  const formElement = formElementRef.current;
@@ -764,6 +747,37 @@ export default function Provider(props) {
764
747
  customStatus: undefined
765
748
  });
766
749
  }, [setFormState, setSubmitState]);
750
+ useLayoutEffect(() => {
751
+ if (id) {
752
+ if (initialData && !sharedData.data) {
753
+ extendSharedData(initialData, {
754
+ preventSyncOfSameInstance: true
755
+ });
756
+ }
757
+ }
758
+ }, [id, initialData, extendSharedData, sharedData.data]);
759
+ useLayoutEffect(() => {
760
+ if (id) {
761
+ extendAttachment({
762
+ visibleDataHandler,
763
+ filterDataHandler,
764
+ hasErrors,
765
+ hasFieldError,
766
+ setShowAllErrors,
767
+ setSubmitState,
768
+ clearData,
769
+ setData,
770
+ updateDataValue,
771
+ fieldConnectionsRef,
772
+ internalDataRef
773
+ }, {
774
+ preventSyncOfSameInstance: true
775
+ });
776
+ if (filterSubmitData) {
777
+ rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
778
+ }
779
+ }
780
+ }, [clearData, extendAttachment, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setData, setShowAllErrors, setSubmitState, updateDataValue, visibleDataHandler]);
767
781
  const {
768
782
  bufferedFormState: formState
769
783
  } = useFormStatusBuffer({