@dnb/eufemia 10.63.1 → 10.63.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/cjs/components/avatar/Avatar.d.ts +1 -1
- package/cjs/components/avatar/Avatar.js.map +1 -1
- package/cjs/components/avatar/AvatarGroup.d.ts +1 -1
- package/cjs/components/avatar/AvatarGroup.js.map +1 -1
- package/cjs/components/badge/Badge.d.ts +1 -1
- package/cjs/components/badge/Badge.js.map +1 -1
- package/cjs/components/lib.d.ts +2 -2
- package/cjs/components/modal/Modal.d.ts +2 -1
- package/cjs/components/modal/Modal.js +10 -4
- package/cjs/components/modal/Modal.js.map +1 -1
- package/cjs/components/modal/ModalContent.d.ts +10 -8
- package/cjs/components/modal/ModalContent.js +48 -23
- package/cjs/components/modal/ModalContent.js.map +1 -1
- package/cjs/components/modal/ModalRoot.d.ts +2 -0
- package/cjs/components/modal/ModalRoot.js.map +1 -1
- package/cjs/components/modal/types.d.ts +11 -3
- package/cjs/components/modal/types.js.map +1 -1
- package/cjs/components/section/Section.js +1 -1
- package/cjs/components/section/Section.js.map +1 -1
- package/cjs/components/tag/Tag.d.ts +2 -2
- package/cjs/components/tag/Tag.js.map +1 -1
- package/cjs/components/tag/TagGroup.d.ts +1 -1
- package/cjs/components/tag/TagGroup.js.map +1 -1
- package/cjs/elements/code/style/code-mixins.scss +4 -0
- package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
- package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
- package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/cjs/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useData.js +14 -10
- package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/cjs/extensions/forms/hooks/useExternalValue.js +2 -2
- package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/cjs/extensions/forms/hooks/useFieldProps.js +23 -16
- package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/cjs/shared/Eufemia.d.ts +1 -1
- package/cjs/shared/Eufemia.js +2 -2
- package/cjs/shared/Eufemia.js.map +1 -1
- package/cjs/shared/error-helper.d.ts +0 -6
- package/cjs/shared/error-helper.js +6 -3
- package/cjs/shared/error-helper.js.map +1 -1
- package/cjs/style/core/scopes.scss +1 -1
- package/cjs/style/dnb-ui-basis.css +1 -1
- package/cjs/style/dnb-ui-basis.min.css +1 -1
- package/cjs/style/dnb-ui-body.css +1 -1
- package/cjs/style/dnb-ui-body.min.css +1 -1
- package/cjs/style/dnb-ui-core.css +1 -1
- package/cjs/style/dnb-ui-core.min.css +1 -1
- package/cjs/style/dnb-ui-elements.css +3 -0
- package/cjs/style/dnb-ui-elements.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/cjs/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/components/avatar/Avatar.d.ts +1 -1
- package/components/avatar/Avatar.js.map +1 -1
- package/components/avatar/AvatarGroup.d.ts +1 -1
- package/components/avatar/AvatarGroup.js.map +1 -1
- package/components/badge/Badge.d.ts +1 -1
- package/components/badge/Badge.js.map +1 -1
- package/components/lib.d.ts +2 -2
- package/components/modal/Modal.d.ts +2 -1
- package/components/modal/Modal.js +10 -4
- package/components/modal/Modal.js.map +1 -1
- package/components/modal/ModalContent.d.ts +10 -8
- package/components/modal/ModalContent.js +48 -23
- package/components/modal/ModalContent.js.map +1 -1
- package/components/modal/ModalRoot.d.ts +2 -0
- package/components/modal/ModalRoot.js.map +1 -1
- package/components/modal/types.d.ts +11 -3
- package/components/modal/types.js.map +1 -1
- package/components/section/Section.js +1 -1
- package/components/section/Section.js.map +1 -1
- package/components/tag/Tag.d.ts +2 -2
- package/components/tag/Tag.js.map +1 -1
- package/components/tag/TagGroup.d.ts +1 -1
- package/components/tag/TagGroup.js.map +1 -1
- package/elements/code/style/code-mixins.scss +4 -0
- package/es/components/avatar/Avatar.d.ts +1 -1
- package/es/components/avatar/Avatar.js.map +1 -1
- package/es/components/avatar/AvatarGroup.d.ts +1 -1
- package/es/components/avatar/AvatarGroup.js.map +1 -1
- package/es/components/badge/Badge.d.ts +1 -1
- package/es/components/badge/Badge.js.map +1 -1
- package/es/components/lib.d.ts +2 -2
- package/es/components/modal/Modal.d.ts +2 -1
- package/es/components/modal/Modal.js +10 -4
- package/es/components/modal/Modal.js.map +1 -1
- package/es/components/modal/ModalContent.d.ts +10 -8
- package/es/components/modal/ModalContent.js +44 -20
- package/es/components/modal/ModalContent.js.map +1 -1
- package/es/components/modal/ModalRoot.d.ts +2 -0
- package/es/components/modal/ModalRoot.js.map +1 -1
- package/es/components/modal/types.d.ts +11 -3
- package/es/components/modal/types.js.map +1 -1
- package/es/components/section/Section.js +1 -1
- package/es/components/section/Section.js.map +1 -1
- package/es/components/tag/Tag.d.ts +2 -2
- package/es/components/tag/Tag.js.map +1 -1
- package/es/components/tag/TagGroup.d.ts +1 -1
- package/es/components/tag/TagGroup.js.map +1 -1
- package/es/elements/code/style/code-mixins.scss +4 -0
- package/es/extensions/forms/DataContext/Context.d.ts +1 -1
- package/es/extensions/forms/DataContext/Context.js.map +1 -1
- package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/es/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/es/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useData.js +14 -10
- package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/es/extensions/forms/hooks/useExternalValue.js +2 -2
- package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/es/extensions/forms/hooks/useFieldProps.js +23 -16
- package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/es/shared/Eufemia.d.ts +1 -1
- package/es/shared/Eufemia.js +2 -2
- package/es/shared/Eufemia.js.map +1 -1
- package/es/shared/error-helper.d.ts +0 -6
- package/es/shared/error-helper.js +6 -3
- package/es/shared/error-helper.js.map +1 -1
- package/es/style/core/scopes.scss +1 -1
- package/es/style/dnb-ui-basis.css +1 -1
- package/es/style/dnb-ui-basis.min.css +1 -1
- package/es/style/dnb-ui-body.css +1 -1
- package/es/style/dnb-ui-body.min.css +1 -1
- package/es/style/dnb-ui-core.css +1 -1
- package/es/style/dnb-ui-core.min.css +1 -1
- package/es/style/dnb-ui-elements.css +3 -0
- package/es/style/dnb-ui-elements.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/es/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/esm/dnb-ui-basis.min.mjs +1 -1
- package/esm/dnb-ui-components.min.mjs +1 -1
- package/esm/dnb-ui-elements.min.mjs +1 -1
- package/esm/dnb-ui-extensions.min.mjs +2 -2
- package/esm/dnb-ui-lib.min.mjs +1 -1
- package/extensions/forms/DataContext/Context.d.ts +1 -1
- package/extensions/forms/DataContext/Context.js.map +1 -1
- package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -0
- package/extensions/forms/DataContext/Provider/Provider.js +33 -30
- package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
- package/extensions/forms/Form/Visibility/useVisibility.js +6 -6
- package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
- package/extensions/forms/Form/data-context/useData.js +14 -10
- package/extensions/forms/Form/data-context/useData.js.map +1 -1
- package/extensions/forms/Form/data-context/useValidation.js +1 -1
- package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js +1 -1
- package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
- package/extensions/forms/hooks/useExternalValue.js +2 -2
- package/extensions/forms/hooks/useExternalValue.js.map +1 -1
- package/extensions/forms/hooks/useFieldProps.js +23 -16
- package/extensions/forms/hooks/useFieldProps.js.map +1 -1
- package/package.json +1 -1
- package/shared/Eufemia.d.ts +1 -1
- package/shared/Eufemia.js +2 -2
- package/shared/Eufemia.js.map +1 -1
- package/shared/error-helper.d.ts +0 -6
- package/shared/error-helper.js +6 -3
- package/shared/error-helper.js.map +1 -1
- package/style/core/scopes.scss +1 -1
- package/style/dnb-ui-basis.css +1 -1
- package/style/dnb-ui-basis.min.css +1 -1
- package/style/dnb-ui-body.css +1 -1
- package/style/dnb-ui-body.min.css +1 -1
- package/style/dnb-ui-core.css +1 -1
- package/style/dnb-ui-core.min.css +1 -1
- package/style/dnb-ui-elements.css +3 -0
- package/style/dnb-ui-elements.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-basis.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
- package/style/themes/theme-eiendom/eiendom-theme-elements.css +3 -0
- package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-basis.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
- package/style/themes/theme-sbanken/sbanken-theme-elements.css +3 -0
- package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-basis.css +3 -0
- package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-elements.css +3 -0
- package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
- package/style/themes/theme-ui/ui-theme-tags.css +3 -0
- package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
- package/umd/dnb-ui-basis.min.js +1 -1
- package/umd/dnb-ui-components.min.js +1 -1
- package/umd/dnb-ui-elements.min.js +1 -1
- package/umd/dnb-ui-extensions.min.js +1 -1
- package/umd/dnb-ui-lib.min.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to @dnb/eufemia will be documented in this file. See
|
|
4
4
|
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.63.3](https://github.com/dnbexperience/eufemia/compare/v10.63.2...v10.63.3) (2025-02-06)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### :memo: Documentation
|
|
10
|
+
|
|
11
|
+
* **Portal:** wrap text of property table description ([#4543](https://github.com/dnbexperience/eufemia/issues/4543)) ([b0ba974](https://github.com/dnbexperience/eufemia/commit/b0ba974723bc6b3d665c902298167292702365a0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### :bug: Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **Forms:** enhance Form.useData to update and render in sync when `id` is used ([#4536](https://github.com/dnbexperience/eufemia/issues/4536)) ([bb12d70](https://github.com/dnbexperience/eufemia/commit/bb12d707fd393c42f8008936c4ad87dd07883763)), closes [#4461](https://github.com/dnbexperience/eufemia/issues/4461)
|
|
17
|
+
* **Forms:** ensure `pathDefined` on Form.Visibility does not render when value is `undefined` ([#4539](https://github.com/dnbexperience/eufemia/issues/4539)) ([4f99680](https://github.com/dnbexperience/eufemia/commit/4f9968006ec2dc5088845da399d34f175e9fab2e))
|
|
18
|
+
* **Forms:** ensure `pathUndefined` on Form.Visibility does render when value is `undefined` ([#4540](https://github.com/dnbexperience/eufemia/issues/4540)) ([9d165e3](https://github.com/dnbexperience/eufemia/commit/9d165e35a76df881f1f584cc10ec3b3fdf444220))
|
|
19
|
+
|
|
20
|
+
## [10.63.2](https://github.com/dnbexperience/eufemia/compare/v10.63.1...v10.63.2) (2025-02-04)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### :bug: Bug Fixes
|
|
24
|
+
|
|
25
|
+
* **Dialog:** prevent `onClose` event from firing in StrictMode when opening a new dialog ([#4525](https://github.com/dnbexperience/eufemia/issues/4525)) ([d24c0d3](https://github.com/dnbexperience/eufemia/commit/d24c0d35bd3fc83a81b4037b883423e0c4a1fc65))
|
|
26
|
+
* **Forms:** always revalidate on submit when data context changes ([#4532](https://github.com/dnbexperience/eufemia/issues/4532)) ([e0692d6](https://github.com/dnbexperience/eufemia/commit/e0692d633f629ec958b2ec4d187e3533b21d113d))
|
|
27
|
+
* **Forms:** ensure `setFieldStatus` by useValidation does not throw when used without id ([#4529](https://github.com/dnbexperience/eufemia/issues/4529)) ([1a92512](https://github.com/dnbexperience/eufemia/commit/1a9251205b2b2914500ef93864bb1a37e159e8b0))
|
|
28
|
+
* **Forms:** ensure `update('/path', undefined)` does not show error message ([#4531](https://github.com/dnbexperience/eufemia/issues/4531)) ([2dfd44a](https://github.com/dnbexperience/eufemia/commit/2dfd44acb00bdbb9512916e8d3d767cfa9f5d53e))
|
|
29
|
+
|
|
6
30
|
## [10.63.1](https://github.com/dnbexperience/eufemia/compare/v10.63.0...v10.63.1) (2025-02-04)
|
|
7
31
|
|
|
8
32
|
|
|
@@ -6,7 +6,7 @@ import AvatarGroup from './AvatarGroup';
|
|
|
6
6
|
export type AvatarSizes = 'small' | 'medium' | 'large' | 'x-large';
|
|
7
7
|
export type AvatarVariants = 'primary' | 'secondary' | 'tertiary';
|
|
8
8
|
export type AvatarImgProps = ImgProps;
|
|
9
|
-
export interface AvatarProps {
|
|
9
|
+
export interface AvatarProps extends Omit<React.HTMLProps<HTMLElement>, 'size'> {
|
|
10
10
|
/**
|
|
11
11
|
* Used in combination with `src` to provide an alt attribute for the `img` element.
|
|
12
12
|
* Default: null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Img","_Context","_componentHelper","_AvatarGroup","_interopRequireWildcard","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","size","variant","skeleton","exports","Avatar","localProps","context","React","useContext","Context","avatarGroupContext","AvatarGroupContext","allProps","extendPropsWithContext","alt","className","children","childrenProp","src","imgProps","hasLabel","props","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","childrenIsString","imageProps","createElement","firstLetterUpperCase","charAt","toUpperCase","warn","validateDOMAttributes","classnames","Group","AvatarGroup","_supportsSpacingProps","_default"],"sources":["../../../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Elements\nimport Img, { ImgProps } from '../../elements/img/Img'\n\n// Shared\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n warn,\n} from '../../shared/component-helper'\n\n// Internal\nimport AvatarGroup, { AvatarGroupContext } from './AvatarGroup'\n\nexport type AvatarSizes = 'small' | 'medium' | 'large' | 'x-large'\nexport type AvatarVariants = 'primary' | 'secondary' | 'tertiary'\n\nexport type AvatarImgProps = ImgProps\n\nexport interface AvatarProps {\n /**\n * Used in combination with `src` to provide an alt attribute for the `img` element.\n * Default: null\n */\n alt?: string\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 component. Can be used instead of prop \"data\".\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the component.\n * Default: medium.\n */\n size?: AvatarSizes\n\n /**\n * Specifies the path to the image\n * Default: null\n */\n src?: string\n\n /**\n * Props applied to the `img` element if the component is used to display an image.\n * Default: null\n */\n imgProps?: ImgProps\n\n /**\n * The variant of the component.\n * Default: primary.\n */\n variant?: AvatarVariants\n\n /**\n * If an avatar is hidden from the screen reader (by setting aria-hidden={true}) or if label is given, typical inside a table or dl (definition list), then you can disable Avatar.Group as a dependent of Avatar.\n * Use `true` to omit the `Avatar group required:` warning.\n * Default: null\n */\n hasLabel?: boolean\n}\n\nexport const defaultProps = {\n size: 'medium',\n variant: 'primary',\n skeleton: false,\n}\n\nconst Avatar = (localProps: AvatarProps & SpacingProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const avatarGroupContext = React.useContext(AvatarGroupContext)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.Avatar,\n { skeleton: context?.skeleton },\n avatarGroupContext\n )\n\n const {\n alt,\n className,\n children: childrenProp,\n size,\n skeleton,\n variant,\n src,\n imgProps,\n hasLabel,\n ...props\n } = allProps\n\n let children = null\n\n const skeletonClasses = createSkeletonClass('shape', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n\n const childrenIsString = typeof childrenProp === 'string'\n\n if (src || imgProps) {\n const imageProps = { src, alt, ...imgProps }\n children = <Img {...imageProps} />\n } else if (childrenIsString) {\n const firstLetterUpperCase = childrenProp.charAt(0).toUpperCase()\n children = <span aria-hidden>{firstLetterUpperCase}</span>\n } else {\n children = childrenProp\n }\n\n if (!avatarGroupContext && !hasLabel) {\n warn(\n `Avatar group required: An Avatar requires an Avatar.Group with label description as a parent component. This is to ensure correct semantic and accessibility.`\n )\n }\n\n validateDOMAttributes(allProps, props)\n\n return (\n <span\n className={classnames(\n 'dnb-avatar',\n `dnb-avatar--${variant || 'primary'}`,\n `dnb-avatar--size-${size || 'medium'}`,\n skeletonClasses,\n spacingClasses,\n className\n )}\n {...props}\n >\n {childrenIsString && (\n <span className=\"dnb-sr-only\">{childrenProp}</span>\n )}\n {children}\n </span>\n )\n}\n\nAvatar.Group = AvatarGroup\n\nexport { AvatarGroup }\n\nAvatar._supportsSpacingProps = true\n\nexport default Avatar\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Avatar.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Img","_Context","_componentHelper","_AvatarGroup","_interopRequireWildcard","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","size","variant","skeleton","exports","Avatar","localProps","context","React","useContext","Context","avatarGroupContext","AvatarGroupContext","allProps","extendPropsWithContext","alt","className","children","childrenProp","src","imgProps","hasLabel","props","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","childrenIsString","imageProps","createElement","firstLetterUpperCase","charAt","toUpperCase","warn","validateDOMAttributes","classnames","Group","AvatarGroup","_supportsSpacingProps","_default"],"sources":["../../../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Elements\nimport Img, { ImgProps } from '../../elements/img/Img'\n\n// Shared\nimport Context from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n validateDOMAttributes,\n extendPropsWithContext,\n warn,\n} from '../../shared/component-helper'\n\n// Internal\nimport AvatarGroup, { AvatarGroupContext } from './AvatarGroup'\n\nexport type AvatarSizes = 'small' | 'medium' | 'large' | 'x-large'\nexport type AvatarVariants = 'primary' | 'secondary' | 'tertiary'\n\nexport type AvatarImgProps = ImgProps\n\nexport interface AvatarProps\n extends Omit<React.HTMLProps<HTMLElement>, 'size'> {\n /**\n * Used in combination with `src` to provide an alt attribute for the `img` element.\n * Default: null\n */\n alt?: string\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 component. Can be used instead of prop \"data\".\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the component.\n * Default: medium.\n */\n size?: AvatarSizes\n\n /**\n * Specifies the path to the image\n * Default: null\n */\n src?: string\n\n /**\n * Props applied to the `img` element if the component is used to display an image.\n * Default: null\n */\n imgProps?: ImgProps\n\n /**\n * The variant of the component.\n * Default: primary.\n */\n variant?: AvatarVariants\n\n /**\n * If an avatar is hidden from the screen reader (by setting aria-hidden={true}) or if label is given, typical inside a table or dl (definition list), then you can disable Avatar.Group as a dependent of Avatar.\n * Use `true` to omit the `Avatar group required:` warning.\n * Default: null\n */\n hasLabel?: boolean\n}\n\nexport const defaultProps = {\n size: 'medium',\n variant: 'primary',\n skeleton: false,\n}\n\nconst Avatar = (localProps: AvatarProps & SpacingProps) => {\n // Every component should have a context\n const context = React.useContext(Context)\n const avatarGroupContext = React.useContext(AvatarGroupContext)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.Avatar,\n { skeleton: context?.skeleton },\n avatarGroupContext\n )\n\n const {\n alt,\n className,\n children: childrenProp,\n size,\n skeleton,\n variant,\n src,\n imgProps,\n hasLabel,\n ...props\n } = allProps\n\n let children = null\n\n const skeletonClasses = createSkeletonClass('shape', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n\n const childrenIsString = typeof childrenProp === 'string'\n\n if (src || imgProps) {\n const imageProps = { src, alt, ...imgProps }\n children = <Img {...imageProps} />\n } else if (childrenIsString) {\n const firstLetterUpperCase = childrenProp.charAt(0).toUpperCase()\n children = <span aria-hidden>{firstLetterUpperCase}</span>\n } else {\n children = childrenProp\n }\n\n if (!avatarGroupContext && !hasLabel) {\n warn(\n `Avatar group required: An Avatar requires an Avatar.Group with label description as a parent component. This is to ensure correct semantic and accessibility.`\n )\n }\n\n validateDOMAttributes(allProps, props)\n\n return (\n <span\n className={classnames(\n 'dnb-avatar',\n `dnb-avatar--${variant || 'primary'}`,\n `dnb-avatar--size-${size || 'medium'}`,\n skeletonClasses,\n spacingClasses,\n className\n )}\n {...props}\n >\n {childrenIsString && (\n <span className=\"dnb-sr-only\">{childrenProp}</span>\n )}\n {children}\n </span>\n )\n}\n\nAvatar.Group = AvatarGroup\n\nexport { AvatarGroup }\n\nAvatar._supportsSpacingProps = true\n\nexport default Avatar\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { AvatarSizes, AvatarVariants } from './Avatar';
|
|
3
3
|
import type { SpacingProps } from '../../shared/types';
|
|
4
4
|
import type { SkeletonShow } from '../skeleton/Skeleton';
|
|
5
|
-
export interface AvatarGroupProps {
|
|
5
|
+
export interface AvatarGroupProps extends Omit<React.HTMLProps<HTMLElement>, 'size' | 'label'> {
|
|
6
6
|
/**
|
|
7
7
|
* Label to describe the avatar group
|
|
8
8
|
* Default: null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarGroup.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_componentHelper","_Context","_excluded","_excluded2","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","label","className","maxElements","size","children","variant","skeleton","exports","AvatarGroupContext","React","createContext","AvatarGroup","localProps","context","useContext","Context","_extendPropsWithConte","extendPropsWithContext","childrenProp","maxElementsProp","props","numOfHiddenAvatars","Array","isArray","total","slice","map","child","appliedSize","appliedVariant","cloneElement","style","zIndex","spacingClasses","createSpacingClasses","_validateDOMAttribute","validateDOMAttributes","attributes","createElement","Provider","classnames","ElementsHidden","_supportsSpacingProps","_default"],"sources":["../../../../src/components/avatar/AvatarGroup.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { AvatarSizes, AvatarVariants } from './Avatar'\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 type { SkeletonShow } from '../skeleton/Skeleton'\n\nexport interface AvatarGroupProps {\n /**\n * Label to describe the avatar 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 * Number of max displayed elements, including the \"elements hidden text (+x)\".\n * Default: 4\n */\n maxElements?: number\n\n /**\n * The avatars to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the Avatars, and \"elements hidden text (+x)\".\n * Default: medium.\n */\n size?: AvatarSizes\n\n /**\n * The variant of the Avatars.\n * Default: primary.\n */\n variant?: AvatarVariants\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 maxElements: 4,\n size: 'medium',\n children: null,\n variant: 'primary',\n skeleton: false,\n}\n\nexport const AvatarGroupContext = React.createContext(null)\n\nconst AvatarGroup = (localProps: AvatarGroupProps & 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 size,\n maxElements: maxElementsProp,\n variant,\n ...props\n } = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.AvatarGroup,\n {\n skeleton: context?.skeleton,\n }\n )\n\n const maxElements =\n maxElementsProp && maxElementsProp > 0 ? maxElementsProp : 4\n\n let children = childrenProp\n let numOfHiddenAvatars = 0\n\n if (Array.isArray(childrenProp)) {\n const total = childrenProp.length\n\n if (total > maxElements) {\n numOfHiddenAvatars = total - maxElements + 1\n }\n\n children = childrenProp\n .slice(0, total - numOfHiddenAvatars)\n .map((child, i) => {\n const appliedSize = child.props.size ? child.props.size : size\n const appliedVariant = child.props.variant\n ? child.props.variant\n : variant\n return React.cloneElement(child, {\n size: appliedSize,\n variant: appliedVariant,\n style: { ...child.props.style, zIndex: total - i },\n key: i,\n })\n })\n }\n\n const spacingClasses = createSpacingClasses(props)\n const {\n skeleton, // eslint-disable-line\n ...attributes\n } = validateDOMAttributes({}, props)\n\n return (\n <AvatarGroupContext.Provider value={props}>\n <span\n className={classnames(\n 'dnb-avatar__group',\n spacingClasses,\n className\n )}\n {...attributes}\n >\n <span className=\"dnb-sr-only\">{label}</span>\n\n {children}\n\n {numOfHiddenAvatars ? (\n <ElementsHidden size={size}>\n +{numOfHiddenAvatars}\n </ElementsHidden>\n ) : null}\n </span>\n </AvatarGroupContext.Provider>\n )\n}\n\nexport interface ElementsHiddenProps {\n /**\n * The avatars to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the \"elements hidden text (+x)\".\n * Default: medium.\n */\n size?: AvatarSizes\n}\n\nfunction ElementsHidden(props: ElementsHiddenProps) {\n const { size, children } = props\n return (\n <span\n className={classnames(\n 'dnb-avatar__group--elements-left',\n `dnb-avatar__group--elements-left--size-${size || 'medium'}`\n )}\n >\n {children}\n </span>\n )\n}\n\nAvatarGroup._supportsSpacingProps = true\n\nexport default AvatarGroup\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,cAAA,GAAAF,OAAA;AAIA,IAAAG,gBAAA,GAAAH,OAAA;AAIA,IAAAI,QAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA0C,MAAAK,SAAA;EAAAC,UAAA;AAAA,SAAAP,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAhB,MAAA,CAAAgB,IAAA,CAAAF,MAAA,OAAAd,MAAA,CAAAiB,qBAAA,QAAAC,OAAA,GAAAlB,MAAA,CAAAiB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAApB,MAAA,CAAAqB,wBAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAE,UAAA,OAAAN,IAAA,CAAAO,IAAA,CAAAX,KAAA,CAAAI,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAArB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAS,OAAA,CAAAb,MAAA,CAAAO,MAAA,OAAAkB,OAAA,WAAAjB,GAAA,IAAAkB,eAAA,CAAAvB,MAAA,EAAAK,GAAA,EAAAD,MAAA,CAAAC,GAAA,SAAAR,MAAA,CAAA2B,yBAAA,GAAA3B,MAAA,CAAA4B,gBAAA,CAAAzB,MAAA,EAAAH,MAAA,CAAA2B,yBAAA,CAAApB,MAAA,KAAAM,OAAA,CAAAb,MAAA,CAAAO,MAAA,GAAAkB,OAAA,WAAAjB,GAAA,IAAAR,MAAA,CAAA6B,cAAA,CAAA1B,MAAA,EAAAK,GAAA,EAAAR,MAAA,CAAAqB,wBAAA,CAAAd,MAAA,EAAAC,GAAA,iBAAAL,MAAA;AAAA,SAAAuB,gBAAA9B,GAAA,EAAAY,GAAA,EAAAsB,KAAA,IAAAtB,GAAA,GAAAuB,cAAA,CAAAvB,GAAA,OAAAA,GAAA,IAAAZ,GAAA,IAAAI,MAAA,CAAA6B,cAAA,CAAAjC,GAAA,EAAAY,GAAA,IAAAsB,KAAA,EAAAA,KAAA,EAAAR,UAAA,QAAAU,YAAA,QAAAC,QAAA,oBAAArC,GAAA,CAAAY,GAAA,IAAAsB,KAAA,WAAAlC,GAAA;AAAA,SAAAmC,eAAAG,GAAA,QAAA1B,GAAA,GAAA2B,YAAA,CAAAD,GAAA,2BAAA1B,GAAA,gBAAAA,GAAA,GAAA4B,MAAA,CAAA5B,GAAA;AAAA,SAAA2B,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAA5B,IAAA,CAAA0B,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,yBAAAvC,MAAA,EAAAwC,QAAA,QAAAxC,MAAA,yBAAAJ,MAAA,GAAA6C,6BAAA,CAAAzC,MAAA,EAAAwC,QAAA,OAAAvC,GAAA,EAAAJ,CAAA,MAAAJ,MAAA,CAAAiB,qBAAA,QAAAgC,gBAAA,GAAAjD,MAAA,CAAAiB,qBAAA,CAAAV,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA6C,gBAAA,CAAA3C,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAAyC,gBAAA,CAAA7C,CAAA,OAAA2C,QAAA,CAAAG,OAAA,CAAA1C,GAAA,uBAAAR,MAAA,CAAAS,SAAA,CAAA0C,oBAAA,CAAAxC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,aAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,cAAAL,MAAA;AAAA,SAAA6C,8BAAAzC,MAAA,EAAAwC,QAAA,QAAAxC,MAAA,yBAAAJ,MAAA,WAAAiD,UAAA,GAAApD,MAAA,CAAAgB,IAAA,CAAAT,MAAA,OAAAC,GAAA,EAAAJ,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAgD,UAAA,CAAA9C,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAA4C,UAAA,CAAAhD,CAAA,OAAA2C,QAAA,CAAAG,OAAA,CAAA1C,GAAA,kBAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,YAAAL,MAAA;AAgDnC,MAAMkD,YAAY,GAAG;EAC1BC,KAAK,EAAE,IAAI;EACXC,SAAS,EAAE,IAAI;EACfC,WAAW,EAAE,CAAC;EACdC,IAAI,EAAE,QAAQ;EACdC,QAAQ,EAAE,IAAI;EACdC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE;AACZ,CAAC;AAAAC,OAAA,CAAAR,YAAA,GAAAA,YAAA;AAEM,MAAMS,kBAAkB,GAAGC,cAAK,CAACC,aAAa,CAAC,IAAI,CAAC;AAAAH,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAE3D,MAAMG,WAAW,GAAIC,UAA2C,IAAK;EAEnE,MAAMC,OAAO,GAAGJ,cAAK,CAACK,UAAU,CAACC,gBAAO,CAAC;EAEzC,MAAAC,qBAAA,GAQI,IAAAC,uCAAsB,EACxBL,UAAU,EACVb,YAAY,EACZc,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,WAAW,EACpB;MACEL,QAAQ,EAAEO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEP;IACrB,CACF,CAAC;IAfK;MACJN,KAAK;MACLC,SAAS;MACTG,QAAQ,EAAEc,YAAY;MACtBf,IAAI;MACJD,WAAW,EAAEiB,eAAe;MAC5Bd;IAEF,CAAC,GAAAW,qBAAA;IADII,KAAK,GAAA5B,wBAAA,CAAAwB,qBAAA,EAAA5E,SAAA;EAUV,MAAM8D,WAAW,GACfiB,eAAe,IAAIA,eAAe,GAAG,CAAC,GAAGA,eAAe,GAAG,CAAC;EAE9D,IAAIf,QAAQ,GAAGc,YAAY;EAC3B,IAAIG,kBAAkB,GAAG,CAAC;EAE1B,IAAIC,KAAK,CAACC,OAAO,CAACL,YAAY,CAAC,EAAE;IAC/B,MAAMM,KAAK,GAAGN,YAAY,CAAClE,MAAM;IAEjC,IAAIwE,KAAK,GAAGtB,WAAW,EAAE;MACvBmB,kBAAkB,GAAGG,KAAK,GAAGtB,WAAW,GAAG,CAAC;IAC9C;IAEAE,QAAQ,GAAGc,YAAY,CACpBO,KAAK,CAAC,CAAC,EAAED,KAAK,GAAGH,kBAAkB,CAAC,CACpCK,GAAG,CAAC,CAACC,KAAK,EAAE7E,CAAC,KAAK;MACjB,MAAM8E,WAAW,GAAGD,KAAK,CAACP,KAAK,CAACjB,IAAI,GAAGwB,KAAK,CAACP,KAAK,CAACjB,IAAI,GAAGA,IAAI;MAC9D,MAAM0B,cAAc,GAAGF,KAAK,CAACP,KAAK,CAACf,OAAO,GACtCsB,KAAK,CAACP,KAAK,CAACf,OAAO,GACnBA,OAAO;MACX,OAAOI,cAAK,CAACqB,YAAY,CAACH,KAAK,EAAE;QAC/BxB,IAAI,EAAEyB,WAAW;QACjBvB,OAAO,EAAEwB,cAAc;QACvBE,KAAK,EAAA7D,aAAA,CAAAA,aAAA,KAAOyD,KAAK,CAACP,KAAK,CAACW,KAAK;UAAEC,MAAM,EAAER,KAAK,GAAG1E;QAAC,EAAE;QAClDI,GAAG,EAAEJ;MACP,CAAC,CAAC;IACJ,CAAC,CAAC;EACN;EAEA,MAAMmF,cAAc,GAAG,IAAAC,mCAAoB,EAACd,KAAK,CAAC;EAClD,MAAAe,qBAAA,GAGI,IAAAC,sCAAqB,EAAC,CAAC,CAAC,EAAEhB,KAAK,CAAC;IAH9B;MACJd;IAEF,CAAC,GAAA6B,qBAAA;IADIE,UAAU,GAAA7C,wBAAA,CAAA2C,qBAAA,EAAA9F,UAAA;EAGf,OACER,MAAA,CAAAW,OAAA,CAAA8F,aAAA,CAAC9B,kBAAkB,CAAC+B,QAAQ;IAAC/D,KAAK,EAAE4C;EAAM,GACxCvF,MAAA,CAAAW,OAAA,CAAA8F,aAAA,SAAA7F,QAAA;IACEwD,SAAS,EAAE,IAAAuC,mBAAU,EACnB,mBAAmB,EACnBP,cAAc,EACdhC,SACF;EAAE,GACEoC,UAAU,GAEdxG,MAAA,CAAAW,OAAA,CAAA8F,aAAA;IAAMrC,SAAS,EAAC;EAAa,GAAED,KAAY,CAAC,EAE3CI,QAAQ,EAERiB,kBAAkB,GACjBxF,MAAA,CAAAW,OAAA,CAAA8F,aAAA,CAACG,cAAc;IAACtC,IAAI,EAAEA;EAAK,GAAC,GACzB,EAACkB,kBACY,CAAC,GACf,IACA,CACqB,CAAC;AAElC,CAAC;AAgBD,SAASoB,cAAcA,CAACrB,KAA0B,EAAE;EAClD,MAAM;IAAEjB,IAAI;IAAEC;EAAS,CAAC,GAAGgB,KAAK;EAChC,OACEvF,MAAA,CAAAW,OAAA,CAAA8F,aAAA;IACErC,SAAS,6EAEmCE,IAAI,IAAI,QAAS;EAC3D,GAEDC,QACG,CAAC;AAEX;AAEAO,WAAW,CAAC+B,qBAAqB,GAAG,IAAI;AAAA,IAAAC,QAAA,GAEzBhC,WAAW;AAAAJ,OAAA,CAAA/D,OAAA,GAAAmG,QAAA"}
|
|
1
|
+
{"version":3,"file":"AvatarGroup.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_componentHelper","_Context","_excluded","_excluded2","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","defaultProps","label","className","maxElements","size","children","variant","skeleton","exports","AvatarGroupContext","React","createContext","AvatarGroup","localProps","context","useContext","Context","_extendPropsWithConte","extendPropsWithContext","childrenProp","maxElementsProp","props","numOfHiddenAvatars","Array","isArray","total","slice","map","child","appliedSize","appliedVariant","cloneElement","style","zIndex","spacingClasses","createSpacingClasses","_validateDOMAttribute","validateDOMAttributes","attributes","createElement","Provider","classnames","ElementsHidden","_supportsSpacingProps","_default"],"sources":["../../../../src/components/avatar/AvatarGroup.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { AvatarSizes, AvatarVariants } from './Avatar'\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 type { SkeletonShow } from '../skeleton/Skeleton'\n\nexport interface AvatarGroupProps\n extends Omit<React.HTMLProps<HTMLElement>, 'size' | 'label'> {\n /**\n * Label to describe the avatar 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 * Number of max displayed elements, including the \"elements hidden text (+x)\".\n * Default: 4\n */\n maxElements?: number\n\n /**\n * The avatars to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the Avatars, and \"elements hidden text (+x)\".\n * Default: medium.\n */\n size?: AvatarSizes\n\n /**\n * The variant of the Avatars.\n * Default: primary.\n */\n variant?: AvatarVariants\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 maxElements: 4,\n size: 'medium',\n children: null,\n variant: 'primary',\n skeleton: false,\n}\n\nexport const AvatarGroupContext = React.createContext(null)\n\nconst AvatarGroup = (localProps: AvatarGroupProps & 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 size,\n maxElements: maxElementsProp,\n variant,\n ...props\n } = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.AvatarGroup,\n {\n skeleton: context?.skeleton,\n }\n )\n\n const maxElements =\n maxElementsProp && maxElementsProp > 0 ? maxElementsProp : 4\n\n let children = childrenProp\n let numOfHiddenAvatars = 0\n\n if (Array.isArray(childrenProp)) {\n const total = childrenProp.length\n\n if (total > maxElements) {\n numOfHiddenAvatars = total - maxElements + 1\n }\n\n children = childrenProp\n .slice(0, total - numOfHiddenAvatars)\n .map((child, i) => {\n const appliedSize = child.props.size ? child.props.size : size\n const appliedVariant = child.props.variant\n ? child.props.variant\n : variant\n return React.cloneElement(child, {\n size: appliedSize,\n variant: appliedVariant,\n style: { ...child.props.style, zIndex: total - i },\n key: i,\n })\n })\n }\n\n const spacingClasses = createSpacingClasses(props)\n const {\n skeleton, // eslint-disable-line\n ...attributes\n } = validateDOMAttributes({}, props)\n\n return (\n <AvatarGroupContext.Provider value={props}>\n <span\n className={classnames(\n 'dnb-avatar__group',\n spacingClasses,\n className\n )}\n {...attributes}\n >\n <span className=\"dnb-sr-only\">{label}</span>\n\n {children}\n\n {numOfHiddenAvatars ? (\n <ElementsHidden size={size}>\n +{numOfHiddenAvatars}\n </ElementsHidden>\n ) : null}\n </span>\n </AvatarGroupContext.Provider>\n )\n}\n\nexport interface ElementsHiddenProps {\n /**\n * The avatars to group.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The size of the \"elements hidden text (+x)\".\n * Default: medium.\n */\n size?: AvatarSizes\n}\n\nfunction ElementsHidden(props: ElementsHiddenProps) {\n const { size, children } = props\n return (\n <span\n className={classnames(\n 'dnb-avatar__group--elements-left',\n `dnb-avatar__group--elements-left--size-${size || 'medium'}`\n )}\n >\n {children}\n </span>\n )\n}\n\nAvatarGroup._supportsSpacingProps = true\n\nexport default AvatarGroup\n"],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export type BadgeProps = {
|
|
|
43
43
|
*/
|
|
44
44
|
variant?: 'information' | 'notification';
|
|
45
45
|
};
|
|
46
|
-
type BadgeAndSpacingProps = BadgeProps & SpacingProps
|
|
46
|
+
type BadgeAndSpacingProps = BadgeProps & SpacingProps & Omit<React.HTMLProps<HTMLElement>, 'content' | 'label'>;
|
|
47
47
|
export declare const defaultProps: {
|
|
48
48
|
label: any;
|
|
49
49
|
className: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Context","_componentHelper","_excluded","obj","__esModule","default","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","_extends","assign","bind","arguments","hasOwnProperty","apply","defaultProps","label","className","skeleton","children","content","vertical","horizontal","variant","exports","Badge","localProps","context","React","useContext","Context","allProps","extendPropsWithContext","createElement","BadgeRoot","BadgeElem","_ref","props","contentProp","restProps","validateDOMAttributes","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","contentIsNum","variantIsNotification","warn","isInline","role","classnames","_supportsSpacingProps","_default"],"sources":["../../../../src/components/badge/Badge.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Shared\nimport Context, { ContextProps } from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\n\nexport type BadgeProps = {\n /**\n * Aria label to describe the badge\n * Default: null\n */\n label?: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content to display the badge on top of.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The content of the component.\n * Default: null\n */\n content?: string | number | React.ReactNode\n\n /**\n * The vertical positioning of the component.\n * Default: null\n */\n vertical?: 'bottom' | 'top'\n\n /**\n * The horizontal positioning of the component.\n * Default: null\n */\n horizontal?: 'left' | 'right'\n\n /**\n * The variant of the component.\n * Default: information.\n */\n variant?: 'information' | 'notification'\n}\n\ntype BadgeAndSpacingProps = BadgeProps
|
|
1
|
+
{"version":3,"file":"Badge.js","names":["_react","_interopRequireDefault","require","_classnames","_SpacingHelper","_SkeletonHelper","_Context","_componentHelper","_excluded","obj","__esModule","default","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","i","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","_extends","assign","bind","arguments","hasOwnProperty","apply","defaultProps","label","className","skeleton","children","content","vertical","horizontal","variant","exports","Badge","localProps","context","React","useContext","Context","allProps","extendPropsWithContext","createElement","BadgeRoot","BadgeElem","_ref","props","contentProp","restProps","validateDOMAttributes","skeletonClasses","createSkeletonClass","spacingClasses","createSpacingClasses","contentIsNum","variantIsNotification","warn","isInline","role","classnames","_supportsSpacingProps","_default"],"sources":["../../../../src/components/badge/Badge.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport { createSkeletonClass } from '../skeleton/SkeletonHelper'\n\n// Shared\nimport Context, { ContextProps } from '../../shared/Context'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport {\n warn,\n extendPropsWithContext,\n validateDOMAttributes,\n} from '../../shared/component-helper'\n\nexport type BadgeProps = {\n /**\n * Aria label to describe the badge\n * Default: null\n */\n label?: React.ReactNode\n\n /**\n * Custom className on the component root\n * Default: null\n */\n className?: string\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * The content to display the badge on top of.\n * Default: null\n */\n children?: React.ReactNode\n\n /**\n * The content of the component.\n * Default: null\n */\n content?: string | number | React.ReactNode\n\n /**\n * The vertical positioning of the component.\n * Default: null\n */\n vertical?: 'bottom' | 'top'\n\n /**\n * The horizontal positioning of the component.\n * Default: null\n */\n horizontal?: 'left' | 'right'\n\n /**\n * The variant of the component.\n * Default: information.\n */\n variant?: 'information' | 'notification'\n}\n\ntype BadgeAndSpacingProps = BadgeProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, 'content' | 'label'>\n\nexport const defaultProps = {\n label: null,\n className: null,\n skeleton: false,\n children: null,\n content: null,\n vertical: null,\n horizontal: null,\n variant: 'information',\n}\n\nfunction Badge(localProps: BadgeAndSpacingProps) {\n // Every component should have a context\n const context = React.useContext(Context)\n\n // Extract additional props from global context\n const allProps = extendPropsWithContext(\n localProps,\n defaultProps,\n context?.Badge,\n { skeleton: context?.skeleton }\n )\n const { children } = allProps\n\n if (children) {\n return (\n <BadgeRoot>\n {children}\n <BadgeElem context={context} {...allProps} />\n </BadgeRoot>\n )\n }\n\n return <BadgeElem context={context} {...allProps} />\n}\n\nfunction BadgeRoot({ children }: { children: React.ReactNode }) {\n return <span className=\"dnb-badge__root\">{children}</span>\n}\n\nfunction BadgeElem(\n props: BadgeAndSpacingProps & { context: ContextProps }\n) {\n const {\n label,\n className,\n children,\n skeleton,\n horizontal,\n vertical,\n content: contentProp,\n variant,\n context,\n ...restProps\n } = props\n\n // to remove spacing props, etc.\n validateDOMAttributes(props, restProps)\n\n const skeletonClasses = createSkeletonClass('shape', skeleton, context)\n const spacingClasses = createSpacingClasses(props)\n const contentIsNum = typeof contentProp === 'number'\n const variantIsNotification = variant === 'notification'\n\n const content =\n variantIsNotification && contentIsNum && contentProp > 9\n ? '9+'\n : contentProp\n\n if (variantIsNotification && !contentIsNum) {\n warn(\n `Type of content should be a number: A notification badge is best suited to display content of type number.`\n )\n }\n if (!label && contentIsNum) {\n warn(\n `Label required: A Badge with a number as content requires a label describing the content of the badge. This is to ensure correct semantic and accessibility.`\n )\n }\n\n const isInline = !children && content\n\n return (\n <span\n role=\"status\"\n className={classnames(\n 'dnb-badge',\n `dnb-badge--variant-${variant}`,\n horizontal && `dnb-badge--horizontal-${horizontal}`,\n vertical && `dnb-badge--vertical-${vertical}`,\n isInline && 'dnb-badge--inline',\n skeletonClasses,\n spacingClasses,\n className\n )}\n {...restProps}\n >\n {label && <span className=\"dnb-sr-only\">{label} </span>}\n {content}\n </span>\n )\n}\n\nBadge._supportsSpacingProps = true\n\nexport default Badge\n"],"mappings":"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"}
|
package/cjs/components/lib.d.ts
CHANGED
|
@@ -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;
|
|
@@ -36,6 +36,7 @@ declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePart
|
|
|
36
36
|
_tryToOpenTimeout: NodeJS.Timeout;
|
|
37
37
|
activeElement: Element;
|
|
38
38
|
isInTransition: boolean;
|
|
39
|
+
modalContentCloseRef: React.RefObject<any>;
|
|
39
40
|
state: {
|
|
40
41
|
hide: boolean;
|
|
41
42
|
modalActive: boolean;
|
|
@@ -97,7 +98,7 @@ declare class Modal extends React.PureComponent<ModalPropTypes & ToCamelCasePart
|
|
|
97
98
|
open: (e: Event) => void;
|
|
98
99
|
close: (event: Event, { ifIsLatest, triggeredBy }?: {
|
|
99
100
|
ifIsLatest: boolean;
|
|
100
|
-
triggeredBy?:
|
|
101
|
+
triggeredBy?: string;
|
|
101
102
|
}) => void;
|
|
102
103
|
removeActiveState(): void;
|
|
103
104
|
/**
|
|
@@ -26,7 +26,7 @@ var _ModalHeaderBar = _interopRequireDefault(require("./parts/ModalHeaderBar"));
|
|
|
26
26
|
var _CloseButton = _interopRequireDefault(require("./parts/CloseButton"));
|
|
27
27
|
var _ModalRoot = _interopRequireDefault(require("./ModalRoot"));
|
|
28
28
|
var _withCamelCaseProps = require("../../shared/helpers/withCamelCaseProps");
|
|
29
|
-
const _excluded = ["root_id", "content_id", "disabled", "labelled_by", "focus_selector", "header_content", "bar_content", "bypass_invalidation_selectors", "vertical_alignment", "id", "
|
|
29
|
+
const _excluded = ["root_id", "content_id", "disabled", "labelled_by", "focus_selector", "header_content", "bar_content", "bypass_invalidation_selectors", "vertical_alignment", "id", "open_delay", "omit_trigger_button", "trigger", "trigger_attributes"];
|
|
30
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
31
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
32
32
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -90,6 +90,7 @@ class Modal extends _react.default.PureComponent {
|
|
|
90
90
|
_defineProperty(this, "_tryToOpenTimeout", void 0);
|
|
91
91
|
_defineProperty(this, "activeElement", void 0);
|
|
92
92
|
_defineProperty(this, "isInTransition", void 0);
|
|
93
|
+
_defineProperty(this, "modalContentCloseRef", void 0);
|
|
93
94
|
_defineProperty(this, "state", {
|
|
94
95
|
hide: false,
|
|
95
96
|
modalActive: false,
|
|
@@ -213,12 +214,16 @@ class Modal extends _react.default.PureComponent {
|
|
|
213
214
|
this.toggleOpenClose(e, true);
|
|
214
215
|
});
|
|
215
216
|
_defineProperty(this, "close", function (event) {
|
|
217
|
+
var _this$modalContentClo, _this$modalContentClo2;
|
|
216
218
|
let {
|
|
217
219
|
ifIsLatest,
|
|
218
|
-
triggeredBy =
|
|
220
|
+
triggeredBy = 'handler'
|
|
219
221
|
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
220
222
|
ifIsLatest: true
|
|
221
223
|
};
|
|
224
|
+
(_this$modalContentClo = (_this$modalContentClo2 = _this.modalContentCloseRef).current) === null || _this$modalContentClo === void 0 ? void 0 : _this$modalContentClo.call(_this$modalContentClo2, event, {
|
|
225
|
+
triggeredBy
|
|
226
|
+
});
|
|
222
227
|
const {
|
|
223
228
|
prevent_close = false
|
|
224
229
|
} = _this.props;
|
|
@@ -247,6 +252,7 @@ class Modal extends _react.default.PureComponent {
|
|
|
247
252
|
});
|
|
248
253
|
this._id = props.id || (0, _componentHelper.makeUniqueId)('modal-');
|
|
249
254
|
this._triggerRef = _react.default.createRef();
|
|
255
|
+
this.modalContentCloseRef = _react.default.createRef();
|
|
250
256
|
this._onUnmount = [];
|
|
251
257
|
}
|
|
252
258
|
componentDidMount() {
|
|
@@ -323,7 +329,6 @@ class Modal extends _react.default.PureComponent {
|
|
|
323
329
|
bypass_invalidation_selectors = null,
|
|
324
330
|
vertical_alignment = 'center',
|
|
325
331
|
id,
|
|
326
|
-
open_state,
|
|
327
332
|
open_delay,
|
|
328
333
|
omit_trigger_button = false,
|
|
329
334
|
trigger = null,
|
|
@@ -376,7 +381,8 @@ class Modal extends _react.default.PureComponent {
|
|
|
376
381
|
bypass_invalidation_selectors: bypass_invalidation_selectors,
|
|
377
382
|
close: this.close,
|
|
378
383
|
hide: hide,
|
|
379
|
-
title: rest.title || fallbackTitle
|
|
384
|
+
title: rest.title || fallbackTitle,
|
|
385
|
+
modalContentCloseRef: this.modalContentCloseRef
|
|
380
386
|
})));
|
|
381
387
|
};
|
|
382
388
|
return _react.default.createElement(_Suffix.SuffixContext.Consumer, null, render);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["_react","_interopRequireDefault","require","_classnames","_Suffix","_Context","_componentHelper","_SpacingHelper","_HelpButtonInstance","_helpers","_ModalInner","_ModalHeader","_ModalHeaderBar","_CloseButton","_ModalRoot","_withCamelCaseProps","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ANIMATION_DURATION","exports","Modal","React","PureComponent","getContent","props","modal_content","processChildren","getDerivedStateFromProps","state","window","animation_duration","no_animation","open_state","_open_state","hide","isTrue","modalActive","constructor","_this","this","preventAutoFocus","event","showModal","preventDefault","toggleNow","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","ifIsLatest","triggeredBy","prevent_close","id","dispatchCustomElementEvent","close","list","getListOfModalRoots","last","getModalRoot","makeUniqueId","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","componentDidUpdate","prevProps","document","documentElement","warn","modalId","render","visualTestsPropsOverride","extendPropsWithContextInClassComponent","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","vertical_alignment","omit_trigger_button","trigger","trigger_attributes","rest","children","freeze","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","HelpButtonInstance","text","createElement","Fragment","onClick","innerRef","className","classnames","createSpacingClasses","class","SuffixContext","Consumer","OriginalComponent","Context","ModalHeaderBar","ModalHeader","ModalInner","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","_default","classWithCamelCaseProps"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n preventAutoFocus: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n\n state = {\n hide: false,\n modalActive: false,\n preventAutoFocus: true,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n vertical_alignment: null,\n open_state: null,\n direct_dom_return: false,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n state.animation_duration = 0\n state.no_animation = true\n } else {\n state.animation_duration = props.animation_duration\n state.no_animation = props.no_animation\n }\n\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(state.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(state.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.state\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay } = this.props\n const { no_animation } = this.state\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive, preventAutoFocus, animation_duration } =\n this.state\n const { close_modal, open_state } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n this.setActiveState(this._id)\n } else if (modalActive === false && !preventAutoFocus) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n },\n parseFloat(String(animation_duration)) / 3\n )\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n\n if (preventAutoFocus) {\n this.setState({ preventAutoFocus: false })\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = null } = { ifIsLatest: true }\n ) => {\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n const visualTestsPropsOverride =\n typeof window !== 'undefined' && window['IS_TEST']\n ? {\n animation_duration: 0,\n no_animation: true,\n }\n : {}\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal,\n visualTestsPropsOverride\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n vertical_alignment = 'center',\n\n id, // eslint-disable-line\n open_state, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.className,\n\n // @deprecated – can be removed in v11\n triggerAttributes.class\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n vertical_alignment={vertical_alignment}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["_react","_interopRequireDefault","require","_classnames","_Suffix","_Context","_componentHelper","_SpacingHelper","_HelpButtonInstance","_helpers","_ModalInner","_ModalHeader","_ModalHeaderBar","_CloseButton","_ModalRoot","_withCamelCaseProps","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","ANIMATION_DURATION","exports","Modal","React","PureComponent","getContent","props","modal_content","processChildren","getDerivedStateFromProps","state","window","animation_duration","no_animation","open_state","_open_state","hide","isTrue","modalActive","constructor","_this","this","preventAutoFocus","event","showModal","preventDefault","toggleNow","timeoutDuration","parseFloat","isInTransition","doItNow","setState","handleSideEffects","_closeTimeout","setTimeout","waitBeforeOpen","open_delay","delay","_openTimeout","clearTimeout","open_modal","fn","_onUnmount","close_modal","toggleOpenClose","setActiveState","_id","_this$_triggerRef","focus","elem","setAttribute","preventScroll","Promise","resolve","removeAttribute","_triggerRef","current","activeElement","HTMLElement","then","e","removeActiveState","_this$modalContentClo","_this$modalContentClo2","ifIsLatest","triggeredBy","modalContentCloseRef","prevent_close","id","dispatchCustomElementEvent","close","list","getListOfModalRoots","last","getModalRoot","makeUniqueId","createRef","componentDidMount","openBasedOnStateUpdate","componentWillUnmount","componentDidUpdate","prevProps","document","documentElement","warn","modalId","render","visualTestsPropsOverride","extendPropsWithContextInClassComponent","defaultProps","context","getTranslation","root_id","content_id","disabled","labelled_by","focus_selector","header_content","bar_content","bypass_invalidation_selectors","vertical_alignment","omit_trigger_button","trigger","trigger_attributes","rest","children","freeze","suffixProps","triggerAttributes","hidden","variant","icon_position","fallbackTitle","title","translation","HelpButton","TriggerButton","HelpButtonInstance","text","createElement","Fragment","onClick","innerRef","className","classnames","createSpacingClasses","class","SuffixContext","Consumer","OriginalComponent","Context","ModalHeaderBar","ModalHeader","ModalInner","spacing","dialog_title","close_title","hide_close_button","close_button_attributes","prevent_core_style","no_animation_on_mobile","fullscreen","min_width","max_width","align_content","container_placement","direct_dom_return","on_open","on_close","on_close_prevent","overlay_class","content_class","_default","classWithCamelCaseProps"],"sources":["../../../../src/components/modal/Modal.tsx"],"sourcesContent":["/**\n * Web Modal Component\n *\n */\n\nimport React from 'react'\nimport classnames from 'classnames'\nimport { SuffixContext } from '../../shared/helpers/Suffix'\nimport Context, { ContextProps } from '../../shared/Context'\nimport {\n warn,\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n processChildren,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport { createSpacingClasses } from '../space/SpacingHelper'\nimport HelpButtonInstance from '../help-button/HelpButtonInstance'\nimport { getListOfModalRoots, getModalRoot } from './helpers'\nimport ModalInner from './parts/ModalInner'\nimport { ModalProps } from './types'\n\nimport ModalHeader from './parts/ModalHeader'\nimport ModalHeaderBar from './parts/ModalHeaderBar'\nimport { ScrollViewAllProps } from '../../fragments/scroll-view/ScrollView'\nimport CloseButton from './parts/CloseButton'\nimport ModalRoot from './ModalRoot'\nimport type { SpacingProps } from '../../shared/types'\nimport {\n classWithCamelCaseProps,\n ToCamelCasePartial,\n} from '../../shared/helpers/withCamelCaseProps'\nimport type { ButtonProps } from '../button/Button'\n\nexport const ANIMATION_DURATION = 300\n\ninterface ModalState {\n hide: boolean\n modalActive: boolean\n preventAutoFocus: boolean\n}\n\nexport type ModalPropTypes = ModalProps &\n SpacingProps &\n Omit<ScrollViewAllProps, 'children'>\n\nclass Modal extends React.PureComponent<\n ModalPropTypes & ToCamelCasePartial<ModalPropTypes>,\n ModalState\n> {\n static contextType = Context\n\n context!: ContextProps\n\n static Bar = ModalHeaderBar\n static Header = ModalHeader\n static Content = ModalInner\n\n static getContent(props) {\n if (typeof props.modal_content === 'string') {\n return props.modal_content\n } else if (typeof props.modal_content === 'function') {\n return props.modal_content(props)\n }\n return processChildren(props)\n }\n\n _id: string\n _triggerRef: React.RefObject<any>\n _onUnmount: Array<() => void>\n _openTimeout: NodeJS.Timeout\n _closeTimeout: NodeJS.Timeout\n _sideEffectsTimeout: NodeJS.Timeout\n _tryToOpenTimeout: NodeJS.Timeout\n activeElement: Element\n isInTransition: boolean\n modalContentCloseRef: React.RefObject<any>\n\n state = {\n hide: false,\n modalActive: false,\n preventAutoFocus: true,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n }\n\n static defaultProps = {\n id: null,\n focus_selector: null,\n labelled_by: null,\n title: null,\n disabled: null,\n spacing: true,\n open_delay: null,\n content_id: null,\n dialog_title: 'Vindu',\n close_title: 'Lukk', // Close Modal Window\n hide_close_button: false,\n close_button_attributes: null,\n prevent_close: false,\n prevent_core_style: false,\n animation_duration: ANIMATION_DURATION,\n no_animation: false,\n no_animation_on_mobile: false,\n fullscreen: 'auto',\n min_width: null,\n max_width: null,\n align_content: 'left',\n container_placement: null,\n vertical_alignment: null,\n open_state: null,\n direct_dom_return: false,\n root_id: 'root',\n omit_trigger_button: false,\n\n className: null,\n children: null,\n\n on_open: null,\n on_close: null,\n on_close_prevent: null,\n open_modal: null,\n close_modal: null,\n\n trigger: null,\n trigger_attributes: null,\n\n overlay_class: null,\n content_class: null,\n\n modal_content: null,\n header_content: null,\n bar_content: null,\n }\n\n static getDerivedStateFromProps(props, state) {\n if (typeof window !== 'undefined' && window['IS_TEST']) {\n state.animation_duration = 0\n state.no_animation = true\n } else {\n state.animation_duration = props.animation_duration\n state.no_animation = props.no_animation\n }\n\n if (props.open_state !== state._open_state) {\n switch (props.open_state) {\n case 'opened':\n case true:\n state.hide = false\n if (isTrue(state.no_animation)) {\n state.modalActive = true\n }\n break\n case 'closed':\n case false:\n state.hide = true\n if (isTrue(state.no_animation)) {\n state.modalActive = false\n }\n break\n }\n }\n state._open_state = props.open_state\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._id = props.id || makeUniqueId('modal-')\n\n this._triggerRef = React.createRef()\n this.modalContentCloseRef = React.createRef()\n\n this._onUnmount = []\n }\n\n componentDidMount() {\n this.openBasedOnStateUpdate()\n }\n\n componentWillUnmount() {\n clearTimeout(this._openTimeout)\n clearTimeout(this._closeTimeout)\n\n this.removeActiveState()\n\n this._onUnmount.forEach((fn) => {\n if (typeof fn === 'function') {\n fn()\n }\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.openBasedOnStateUpdate()\n }\n }\n\n openBasedOnStateUpdate() {\n const { hide } = this.state\n const { open_state } = this.props\n\n if (!this.activeElement && typeof document !== 'undefined') {\n this.activeElement = document.activeElement\n }\n\n if (!hide && (open_state === 'opened' || open_state === true)) {\n this.toggleOpenClose(null, true)\n } else if (hide && (open_state === 'closed' || open_state === false)) {\n this.toggleOpenClose(null, false)\n }\n }\n\n toggleOpenClose = (event = null, showModal = null) => {\n if (event && event.preventDefault) {\n event.preventDefault()\n }\n\n const toggleNow = () => {\n const {\n animation_duration = ANIMATION_DURATION,\n no_animation = false,\n } = this.state\n const timeoutDuration =\n typeof animation_duration === 'string'\n ? parseFloat(animation_duration)\n : animation_duration\n\n const modalActive =\n typeof showModal === 'boolean'\n ? showModal\n : !this.state.modalActive\n\n this.isInTransition = true\n\n const doItNow = () => {\n this.setState(\n {\n hide: false,\n modalActive,\n },\n () => {\n this.isInTransition = false\n this.handleSideEffects()\n }\n )\n }\n\n if (modalActive === false && !isTrue(no_animation)) {\n this.setState({\n hide: true,\n })\n\n this._closeTimeout = setTimeout(doItNow, timeoutDuration) // delay because of the animation\n } else {\n doItNow()\n }\n }\n\n const waitBeforeOpen = () => {\n const { open_delay } = this.props\n const { no_animation } = this.state\n const delay =\n typeof open_delay === 'string'\n ? parseFloat(open_delay)\n : open_delay\n if (delay > 0 && !isTrue(no_animation)) {\n this._openTimeout = setTimeout(toggleNow, delay) // custom delay\n } else {\n toggleNow()\n }\n }\n\n clearTimeout(this._closeTimeout)\n clearTimeout(this._openTimeout)\n\n const { open_modal } = this.props\n if (typeof open_modal === 'function') {\n const fn = open_modal(waitBeforeOpen, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n } else {\n waitBeforeOpen()\n }\n }\n\n handleSideEffects = () => {\n const { modalActive, preventAutoFocus, animation_duration } =\n this.state\n const { close_modal, open_state } = this.props\n\n if (modalActive) {\n if (typeof close_modal === 'function') {\n const fn = close_modal(() => {\n this.toggleOpenClose(null, false)\n }, this)\n if (fn) {\n this._onUnmount.push(fn)\n }\n }\n this.setActiveState(this._id)\n } else if (modalActive === false && !preventAutoFocus) {\n const focus = (elem: HTMLElement) => {\n // So we can omit showing a Tooltip on the trigger button\n elem.setAttribute('data-autofocus', 'true')\n elem.focus({ preventScroll: true })\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n elem?.removeAttribute('data-autofocus')\n resolve()\n },\n parseFloat(String(animation_duration)) / 3\n )\n })\n }\n\n if (this._triggerRef?.current) {\n focus(this._triggerRef.current)\n }\n\n // because the open_state was set to opened, we force\n if (\n (open_state === 'opened' || open_state === true) &&\n this.activeElement instanceof HTMLElement\n ) {\n try {\n focus(this.activeElement).then(() => {\n this.activeElement = null\n })\n } catch (e) {\n //\n }\n }\n\n this.removeActiveState()\n }\n\n if (preventAutoFocus) {\n this.setState({ preventAutoFocus: false })\n }\n }\n\n open = (e: Event) => {\n this.toggleOpenClose(e, true)\n }\n\n close = (\n event: Event,\n { ifIsLatest, triggeredBy = 'handler' } = {\n ifIsLatest: true,\n }\n ) => {\n this.modalContentCloseRef.current?.(event, { triggeredBy })\n\n const { prevent_close = false } = this.props\n\n if (isTrue(prevent_close)) {\n const id = this._id\n dispatchCustomElementEvent(this, 'on_close_prevent', {\n id,\n event,\n triggeredBy,\n close: (e) => {\n this.toggleOpenClose(e, false)\n },\n })\n } else {\n if (ifIsLatest) {\n const list = getListOfModalRoots()\n if (list.length > 1) {\n const last = getModalRoot(-1)\n if (last !== this) {\n return // stop here\n }\n }\n }\n\n this.toggleOpenClose(event, false)\n }\n }\n\n removeActiveState() {\n const last = getModalRoot(-1)\n\n // If this instance is not the last one,\n // make the current one to as the active one\n if (last?._id && last._id !== this._id) {\n return this.setActiveState(last._id)\n }\n\n try {\n document.documentElement.removeAttribute('data-dnb-modal-active')\n } catch (e) {\n warn('Modal: Error on remove \"data-dnb-modal-active\"', e)\n }\n }\n\n /**\n * Prevent scrolling on the background\n * But checks if this instance was the last one or not\n *\n * @param {string} modalId Will remove the attribute if false is given\n */\n setActiveState(modalId: string) {\n if (!modalId) {\n warn('Modal: A valid modalId is required')\n }\n // prevent scrolling on the background\n if (typeof document !== 'undefined') {\n try {\n document.documentElement.setAttribute(\n 'data-dnb-modal-active',\n modalId\n )\n } catch (e) {\n warn('Modal: Error on set \"data-dnb-modal-active\"', e)\n }\n }\n }\n\n render() {\n const visualTestsPropsOverride =\n typeof window !== 'undefined' && window['IS_TEST']\n ? {\n animation_duration: 0,\n no_animation: true,\n }\n : {}\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Modal.defaultProps,\n this.context.getTranslation(this.props).Modal,\n this.context.Modal,\n visualTestsPropsOverride\n )\n\n const {\n root_id = 'root',\n content_id = null,\n disabled = null,\n labelled_by = null,\n focus_selector = null,\n header_content = null,\n bar_content = null,\n bypass_invalidation_selectors = null,\n vertical_alignment = 'center',\n\n id, // eslint-disable-line\n open_delay, // eslint-disable-line\n\n omit_trigger_button = false,\n trigger = null,\n trigger_attributes = null,\n ...rest\n } = props\n\n const { hide, modalActive } = this.state\n const modal_content = Modal.getContent(\n typeof this.props.children === 'function'\n ? Object.freeze({ ...this.props, close: this.close })\n : this.props\n )\n\n const render = (suffixProps) => {\n const triggerAttributes = {\n hidden: false,\n variant: 'secondary',\n icon_position: 'left',\n ...trigger_attributes,\n } as ButtonProps\n\n if (isTrue(disabled)) {\n triggerAttributes.disabled = true\n }\n\n if (triggerAttributes.id) {\n this._id = triggerAttributes.id\n }\n\n let fallbackTitle: string\n if (triggerAttributes.title) {\n fallbackTitle = triggerAttributes.title\n }\n // in case the modal is used in suffix and no title is given\n // suffixProps.label is also available, so we could use that too\n else if (suffixProps) {\n fallbackTitle = this.context.translation.HelpButton.title\n }\n\n const TriggerButton = trigger\n ? (trigger as React.FC)\n : HelpButtonInstance\n\n const title = (\n !triggerAttributes.text ? rest.title || fallbackTitle : null\n ) as string\n\n return (\n <>\n {TriggerButton && !isTrue(omit_trigger_button) && (\n <TriggerButton\n {...triggerAttributes}\n id={this._id}\n title={title}\n onClick={this.toggleOpenClose}\n innerRef={this._triggerRef}\n className={classnames(\n 'dnb-modal__trigger',\n createSpacingClasses(props),\n triggerAttributes.className,\n\n // @deprecated – can be removed in v11\n triggerAttributes.class\n )}\n />\n )}\n\n {modalActive && modal_content && (\n <ModalRoot\n {...rest}\n id={this._id}\n root_id={root_id}\n content_id={content_id || `dnb-modal-${this._id}`}\n labelled_by={labelled_by}\n focus_selector={focus_selector}\n modal_content={modal_content}\n header_content={header_content}\n vertical_alignment={vertical_alignment}\n bar_content={bar_content}\n bypass_invalidation_selectors={bypass_invalidation_selectors}\n close={this.close}\n hide={hide}\n title={rest.title || fallbackTitle}\n modalContentCloseRef={this.modalContentCloseRef}\n />\n )}\n </>\n )\n }\n\n return <SuffixContext.Consumer>{render}</SuffixContext.Consumer>\n }\n}\n\nexport { CloseButton, Modal as OriginalComponent }\n\nexport default classWithCamelCaseProps(Modal)\n"],"mappings":"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"}
|
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
/// <reference types="node" />
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { InteractionInvalidation } from '../../shared/component-helper';
|
|
8
|
-
import { ModalContentProps } from './types';
|
|
8
|
+
import { CloseHandlerParams, ModalContentProps, TriggeredBy } from './types';
|
|
9
9
|
import { ContextProps } from '../../shared/Context';
|
|
10
10
|
interface ModalContentState {
|
|
11
|
-
triggeredBy: string;
|
|
12
|
-
triggeredByEvent: Event;
|
|
13
11
|
color: string;
|
|
14
12
|
}
|
|
15
13
|
declare global {
|
|
@@ -19,8 +17,6 @@ declare global {
|
|
|
19
17
|
}
|
|
20
18
|
export default class ModalContent extends React.PureComponent<ModalContentProps, ModalContentState> {
|
|
21
19
|
state: {
|
|
22
|
-
triggeredBy: any;
|
|
23
|
-
triggeredByEvent: any;
|
|
24
20
|
color: any;
|
|
25
21
|
};
|
|
26
22
|
_contentRef: React.RefObject<HTMLElement>;
|
|
@@ -34,11 +30,17 @@ export default class ModalContent extends React.PureComponent<ModalContentProps,
|
|
|
34
30
|
_androidFocusTimeout: NodeJS.Timeout;
|
|
35
31
|
_ii: InteractionInvalidation;
|
|
36
32
|
_iiLocal: InteractionInvalidation;
|
|
33
|
+
_triggeredBy: TriggeredBy;
|
|
34
|
+
_triggeredByEvent: React.SyntheticEvent;
|
|
35
|
+
_isControlled: boolean;
|
|
37
36
|
static contextType: React.Context<ContextProps>;
|
|
38
37
|
context: ContextProps;
|
|
39
38
|
constructor(props: ModalContentProps);
|
|
40
39
|
componentDidMount(): void;
|
|
41
40
|
componentWillUnmount(): void;
|
|
41
|
+
setIsControlled(): void;
|
|
42
|
+
componentDidUpdate(): void;
|
|
43
|
+
wasOpenedManually(): boolean;
|
|
42
44
|
lockBody: () => void;
|
|
43
45
|
removeLocks(): void;
|
|
44
46
|
setAndroidFocusHelper(): void;
|
|
@@ -52,9 +54,9 @@ export default class ModalContent extends React.PureComponent<ModalContentProps,
|
|
|
52
54
|
onContentMouseDownHandler: (event: React.SyntheticEvent) => void;
|
|
53
55
|
onContentClickHandler: (event: React.SyntheticEvent) => void;
|
|
54
56
|
onKeyDownHandler: (event: any) => void;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
setModalContentState: (event: React.SyntheticEvent, { triggeredBy }: CloseHandlerParams) => void;
|
|
58
|
+
closeModalContent(event: any, { triggeredBy, ...params }: CloseHandlerParams & {
|
|
59
|
+
ifIsLatest?: boolean;
|
|
58
60
|
}): void;
|
|
59
61
|
setBackgroundColor: (color: string) => void;
|
|
60
62
|
render(): import("react/jsx-runtime").JSX.Element;
|