@entur/tooltip 2.6.40 → 2.6.42
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.
|
@@ -143,7 +143,8 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
143
143
|
className: "eds-tooltip__close-button",
|
|
144
144
|
onClick: function onClick() {
|
|
145
145
|
return setShowTooltip(false);
|
|
146
|
-
}
|
|
146
|
+
},
|
|
147
|
+
type: "button"
|
|
147
148
|
}, React.createElement(icons.CloseIcon, null)));
|
|
148
149
|
}));
|
|
149
150
|
};
|
|
@@ -201,7 +202,8 @@ var Popover = function Popover(_ref) {
|
|
|
201
202
|
var buttonProps = {
|
|
202
203
|
'aria-haspopup': 'dialog',
|
|
203
204
|
'aria-expanded': showPopover,
|
|
204
|
-
ref: triggerElement
|
|
205
|
+
ref: triggerElement,
|
|
206
|
+
type: 'button'
|
|
205
207
|
};
|
|
206
208
|
var buttonOnClick = {
|
|
207
209
|
onClick: function onClick(e) {
|
|
@@ -220,7 +222,8 @@ var Popover = function Popover(_ref) {
|
|
|
220
222
|
onClick: function onClick(e) {
|
|
221
223
|
e.preventDefault();
|
|
222
224
|
setShowPopover(false);
|
|
223
|
-
}
|
|
225
|
+
},
|
|
226
|
+
type: 'button'
|
|
224
227
|
};
|
|
225
228
|
var popoverContentProps = React.useCallback(function () {
|
|
226
229
|
var contentProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs.development.js","sources":["../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n","import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n"],"names":["Tooltip","placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","showCloseButton","variant","popperModifiers","name","options","offset","rest","_excluded","useState","showTooltip","setShowTooltip","hoverTimer","handleOpen","event","persist","setTimeout","onMouseExit","clearTimeout","React","useEffect","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","undefined","onFocus","onBlur","onMouseEnter","e","onMouseLeave","Manager","createElement","Reference","ref","cloneElement","Popper","modifiers","enabled","style","classNames","role","id","IconButton","onClick","CloseIcon","PopoverContext","createContext","usePopoverContext","context","useContext","Error","useCustomState","state","setState","internalState","setInternalState","controlled","Popover","controlledState","showPopover","setControlledState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","styles","attributes","forceUpdate","triggerProps","useCallback","buttonProps","buttonOnClick","preventDefault","prev","useOnClickOutside","closeButtonProps","popoverContentProps","contentProps","onKeyDown","key","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","elementContainsElement","focusElementIsTrigger","isValidBlur","contextValue","Provider","value","PopoverTrigger","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","props","Contrast","popper","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tooltip.cjs.development.js","sources":["../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n","import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n type: 'button',\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n type: 'button',\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n"],"names":["Tooltip","placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","showCloseButton","variant","popperModifiers","name","options","offset","rest","_excluded","useState","showTooltip","setShowTooltip","hoverTimer","handleOpen","event","persist","setTimeout","onMouseExit","clearTimeout","React","useEffect","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","undefined","onFocus","onBlur","onMouseEnter","e","onMouseLeave","Manager","createElement","Reference","ref","cloneElement","Popper","modifiers","enabled","style","classNames","role","id","IconButton","onClick","type","CloseIcon","PopoverContext","createContext","usePopoverContext","context","useContext","Error","useCustomState","state","setState","internalState","setInternalState","controlled","Popover","controlledState","showPopover","setControlledState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","styles","attributes","forceUpdate","triggerProps","useCallback","buttonProps","buttonOnClick","preventDefault","prev","useOnClickOutside","closeButtonProps","popoverContentProps","contentProps","onKeyDown","key","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","elementContainsElement","focusElementIsTrigger","isValidBlur","contextValue","Provider","value","PopoverTrigger","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","props","Contrast","popper","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),r=require("react-popper"),n=require("classnames"),o=require("@entur/icons"),i=require("@entur/button"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),r=require("react-popper"),n=require("classnames"),o=require("@entur/icons"),i=require("@entur/button"),u=require("@entur/layout");function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}function a(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)t.indexOf(r=i[n])>=0||(o[r]=e[r]);return o}var l=["placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","showCloseButton","variant","popperModifiers"],c=["children"],p=t.createContext(void 0),f=function(){var e=t.useContext(p);if(null==e)throw Error("usePopoverContext must be used within <Popover/>");return e},d=t.forwardRef((function(e,r){var o=e.children,i=f(),a=i.showPopover,l=i.attributes,c=i.styles,p=(0,i.popoverContentProps)({ref:r});return t.createElement(u.Contrast,s({className:n("eds-popover",{"eds-popover--hidden":!a},"eds-contrast"),style:c.popper,"aria-hidden":!a},l.styles,p),o)}));function v(e,t){return!!e&&(e===t||e.contains(t))}e.warnAboutMissingStyles("tooltip"),exports.Popover=function(n){var o=n.children,i=n.placement,u=void 0===i?"bottom-start":i,a=function(e,r){var n=t.useState(!1),o=void 0!==e&&void 0!==r;return o?[e,r,o]:[n[0],n[1],o]}(n.showPopover,n.setShowPopover),l=a[0],c=a[1],f=a[2],d=t.useRef(null),m=t.useRef(null),b=r.usePopper(d.current,m.current,{modifiers:[{name:"arrow",enabled:!1},{name:"offset",options:{offset:[0,8]}}],placement:u}),h=b.styles,y=b.attributes,P=b.forceUpdate;t.useEffect((function(){P&&P()}),[l,P]);var g=t.useCallback((function(){var e={"aria-haspopup":"dialog","aria-expanded":l,ref:d,type:"button"};return f?e:s({},e,{onClick:function(e){e.preventDefault(),c((function(e){return!e}))}})}),[d,l,c,f]);e.useOnClickOutside([m,d],(function(){return c(!1)}));var E={onClick:function(e){e.preventDefault(),c(!1)},type:"button"},C=t.useCallback((function(){return{role:"dialog","aria-modal":"false",ref:m,onKeyDown:function(e){"Escape"===e.key&&l&&c(!1)},onBlur:function(e){var t=e.relatedTarget;if(t&&"-1"!==t.getAttribute("tabindex")){var r=v(m.current,t),n=v(d.current,t);l&&!r&&!n&&c(!1)}}}}),[m,l,c]);return t.createElement(p.Provider,{value:{showPopover:l,triggerElement:d,contentElement:m,styles:h,attributes:y,popoverContentProps:C,closeButtonProps:E,triggerProps:g}},o)},exports.PopoverCloseButton=function(e){var r=e.children,n=a(e,c),o=f();return t.cloneElement(r,s({},o.closeButtonProps,n))},exports.PopoverContent=d,exports.PopoverTrigger=function(e){var r=e.children,n=f().triggerProps,o=t.Children.only(r);return t.cloneElement(o,n())},exports.Tooltip=function(u){var c,p=u.placement,f=u.content,d=u.children,v=u.className,m=u.isOpen,b=void 0!==m&&m,h=u.disableHoverListener,y=void 0!==h&&h,P=u.disableFocusListener,g=void 0!==P&&P,E=u.showCloseButton,C=void 0===E||E,w=u.variant,x=u.popperModifiers,O=void 0===x?[{name:"offset",options:{offset:[0,10]}}]:x,k=a(u,l),B=t.useState(b||!1),q=B[0],M=B[1];t.useEffect((function(){return function(){clearTimeout(c)}}));var T=e.useRandomId("eds-tooltip");t.useEffect((function(){M(b)}),[b]),t.useEffect((function(){f||M(!1)}),[f]);var j=p;p.includes("-")&&(p.includes("right")&&(j=p.replace("right","end")),p.includes("left")&&(j=p.replace("left","start")));var L={};return L["aria-describedby"]=q?T:void 0,g||(L.onFocus=function(){return M(!0)},L.onBlur=function(){return M(!1)}),y||(L.onMouseEnter=function(e){return e.persist(),void(c=setTimeout((function(){M(!0)}),150))},L.onMouseLeave=function(){return M(!1),void clearTimeout(c)}),t.createElement(r.Manager,null,t.createElement(r.Reference,null,(function(e){return t.cloneElement(d,s({ref:e.ref},L))})),q&&t.createElement(r.Popper,{modifiers:[{name:"arrow",enabled:!1}].concat(O),placement:j},(function(e){var r=e.ref,u=e.style,a=e.placement;return t.createElement("div",s({className:n("eds-tooltip",v,"eds-tooltip--"+a,{"eds-tooltip--error":"error"===w}),ref:r,style:u,role:"tooltip",id:T,"data-placement":a},k),f,b&&C&&t.createElement(i.IconButton,{className:"eds-tooltip__close-button",onClick:function(){return M(!1)},type:"button"},t.createElement(o.CloseIcon,null)))})))};
|
|
2
2
|
//# sourceMappingURL=tooltip.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs.production.min.js","sources":["../src/Popover.tsx","../src/index.tsx","../src/Tooltip.tsx"],"sourcesContent":["import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n","import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n"],"names":["PopoverContext","createContext","undefined","usePopoverContext","context","useContext","Error","PopoverContent","React","forwardRef","ref","children","_usePopoverContext3","showPopover","attributes","styles","props","popoverContentProps","Contrast","_extends","className","classNames","style","popper","elementContainsElement","parent","child","contains","warnAboutMissingStyles","_ref","_ref$placement","placement","_useCustomState","state","setState","_React$useState","useState","controlled","useCustomState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","modifiers","name","enabled","options","offset","forceUpdate","useEffect","triggerProps","useCallback","buttonProps","onClick","e","preventDefault","prev","useOnClickOutside","closeButtonProps","role","onKeyDown","event","key","onBlur","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","focusElementIsTrigger","createElement","Provider","value","_ref3","rest","_objectWithoutPropertiesLoose","_excluded","_usePopoverContext2","cloneElement","_ref2","Children","only","hoverTimer","content","_ref$isOpen","isOpen","_ref$disableHoverList","disableHoverListener","_ref$disableFocusList","disableFocusListener","_ref$showCloseButton","showCloseButton","variant","_ref$popperModifiers","popperModifiers","_useState","showTooltip","setShowTooltip","clearTimeout","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","onFocus","onMouseEnter","persist","setTimeout","onMouseLeave","Manager","Reference","Popper","concat","id","IconButton","CloseIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tooltip.cjs.production.min.js","sources":["../src/Popover.tsx","../src/index.tsx","../src/Tooltip.tsx"],"sourcesContent":["import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n type: 'button',\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n type: 'button',\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n","import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n"],"names":["PopoverContext","createContext","undefined","usePopoverContext","context","useContext","Error","PopoverContent","React","forwardRef","ref","children","_usePopoverContext3","showPopover","attributes","styles","props","popoverContentProps","Contrast","_extends","className","classNames","style","popper","elementContainsElement","parent","child","contains","warnAboutMissingStyles","_ref","_ref$placement","placement","_useCustomState","state","setState","_React$useState","useState","controlled","useCustomState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","modifiers","name","enabled","options","offset","forceUpdate","useEffect","triggerProps","useCallback","buttonProps","type","onClick","e","preventDefault","prev","useOnClickOutside","closeButtonProps","role","onKeyDown","event","key","onBlur","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","focusElementIsTrigger","createElement","Provider","value","_ref3","rest","_objectWithoutPropertiesLoose","_excluded","_usePopoverContext2","cloneElement","_ref2","Children","only","hoverTimer","content","_ref$isOpen","isOpen","_ref$disableHoverList","disableHoverListener","_ref$disableFocusList","disableFocusListener","_ref$showCloseButton","showCloseButton","variant","_ref$popperModifiers","popperModifiers","_useState","showTooltip","setShowTooltip","clearTimeout","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","onFocus","onMouseEnter","persist","setTimeout","onMouseLeave","Manager","Reference","Popper","concat","id","IconButton","CloseIcon"],"mappings":"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"}
|
package/dist/tooltip.esm.js
CHANGED
|
@@ -139,7 +139,8 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
139
139
|
className: "eds-tooltip__close-button",
|
|
140
140
|
onClick: function onClick() {
|
|
141
141
|
return setShowTooltip(false);
|
|
142
|
-
}
|
|
142
|
+
},
|
|
143
|
+
type: "button"
|
|
143
144
|
}, React.createElement(CloseIcon, null)));
|
|
144
145
|
}));
|
|
145
146
|
};
|
|
@@ -197,7 +198,8 @@ var Popover = function Popover(_ref) {
|
|
|
197
198
|
var buttonProps = {
|
|
198
199
|
'aria-haspopup': 'dialog',
|
|
199
200
|
'aria-expanded': showPopover,
|
|
200
|
-
ref: triggerElement
|
|
201
|
+
ref: triggerElement,
|
|
202
|
+
type: 'button'
|
|
201
203
|
};
|
|
202
204
|
var buttonOnClick = {
|
|
203
205
|
onClick: function onClick(e) {
|
|
@@ -216,7 +218,8 @@ var Popover = function Popover(_ref) {
|
|
|
216
218
|
onClick: function onClick(e) {
|
|
217
219
|
e.preventDefault();
|
|
218
220
|
setShowPopover(false);
|
|
219
|
-
}
|
|
221
|
+
},
|
|
222
|
+
type: 'button'
|
|
220
223
|
};
|
|
221
224
|
var popoverContentProps = React.useCallback(function () {
|
|
222
225
|
var contentProps = {
|
package/dist/tooltip.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.esm.js","sources":["../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n","import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n"],"names":["Tooltip","placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","showCloseButton","variant","popperModifiers","name","options","offset","rest","_excluded","useState","showTooltip","setShowTooltip","hoverTimer","handleOpen","event","persist","setTimeout","onMouseExit","clearTimeout","React","useEffect","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","undefined","onFocus","onBlur","onMouseEnter","e","onMouseLeave","Manager","createElement","Reference","ref","cloneElement","Popper","modifiers","enabled","style","classNames","role","id","IconButton","onClick","CloseIcon","PopoverContext","createContext","usePopoverContext","context","useContext","Error","useCustomState","state","setState","internalState","setInternalState","controlled","Popover","controlledState","showPopover","setControlledState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","styles","attributes","forceUpdate","triggerProps","useCallback","buttonProps","buttonOnClick","preventDefault","prev","useOnClickOutside","closeButtonProps","popoverContentProps","contentProps","onKeyDown","key","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","elementContainsElement","focusElementIsTrigger","isValidBlur","contextValue","Provider","value","PopoverTrigger","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","props","Contrast","popper","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tooltip.esm.js","sources":["../src/Tooltip.tsx","../src/Popover.tsx","../src/index.tsx"],"sourcesContent":["import React, { cloneElement, useState } from 'react';\nimport { Manager, Reference, Popper } from 'react-popper';\nimport classNames from 'classnames';\nimport { useRandomId } from '@entur/utils';\nimport { Placement as PopperPlacementProps } from '@popperjs/core';\nimport { CloseIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './Tooltip.scss';\n\ntype Modifier = {\n name: string;\n enabled?: boolean;\n requires?: Array<string>;\n requiresIfExists?: Array<string>;\n options?: Record<string, unknown>;\n data?: Record<string, unknown>;\n [key: string]: any;\n};\n\nexport type TooltipProps = {\n /** Plassering av tooltip-en */\n placement:\n | 'top'\n | 'top-left'\n | 'top-right'\n | 'left'\n | 'right'\n | 'bottom-left' // bottom-start\n | 'bottom'\n | 'bottom-right'; // bottom-end\n /** Innholdet i tooltip-boksen */\n content: React.ReactNode;\n /** Elementet som skal ha tooltip-funksjonalitet */\n children: React.ReactElement;\n /** Om tooltipen skal vises */\n isOpen?: boolean;\n /** Ekstra klassenavn for tooltip */\n className?: string;\n /** Åpner ikke tooltip ved hover-events\n * @default false\n */\n disableHoverListener?: boolean;\n /** Åpner ikke tooltip ved focus-events\n * @default false\n */\n disableFocusListener?: boolean;\n /** Viser en lukkeknapp om man kontrollerer åpningen av Tooltip vha `isOpen`\n * @default true\n */\n showCloseButton?: boolean;\n /** Valideringsvariant for Tooltip */\n variant?: 'error';\n /** En array av modifiers som sendes til Popper, rammeverket som brukes til plassering av Tooltip\n * @default [{ name: 'offset', options: { offset: [0, 10]} }]\n */\n popperModifiers?: Modifier[];\n [key: string]: any;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n placement,\n content,\n children,\n className,\n isOpen = false,\n disableHoverListener = false,\n disableFocusListener = false,\n showCloseButton = true,\n variant,\n popperModifiers = [\n {\n name: 'offset',\n options: { offset: [0, 10] },\n },\n ],\n ...rest\n}) => {\n const [showTooltip, setShowTooltip] = useState(isOpen || false);\n let hoverTimer: ReturnType<typeof setTimeout>;\n\n const handleOpen: (event: React.MouseEvent) => void = event => {\n event.persist();\n hoverTimer = setTimeout(() => {\n setShowTooltip(true);\n }, 150);\n };\n const onMouseExit: () => void = () => {\n setShowTooltip(false);\n clearTimeout(hoverTimer);\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(hoverTimer);\n };\n });\n\n const tooltipId = useRandomId('eds-tooltip');\n React.useEffect(() => {\n setShowTooltip(isOpen);\n }, [isOpen]);\n\n React.useEffect(() => {\n if (!content) {\n setShowTooltip(false);\n }\n }, [content]);\n\n let popperPlacement = placement as PopperPlacementProps;\n if (placement.includes('-')) {\n if (placement.includes('right')) {\n popperPlacement = placement.replace(\n 'right',\n 'end',\n ) as PopperPlacementProps;\n }\n if (placement.includes('left')) {\n popperPlacement = placement.replace(\n 'left',\n 'start',\n ) as PopperPlacementProps;\n }\n }\n\n const childProps: {\n 'aria-describedby'?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: () => void;\n } = {};\n childProps['aria-describedby'] = showTooltip ? tooltipId : undefined;\n\n if (!disableFocusListener) {\n childProps.onFocus = () => setShowTooltip(true);\n childProps.onBlur = () => setShowTooltip(false);\n }\n if (!disableHoverListener) {\n childProps.onMouseEnter = e => handleOpen(e);\n childProps.onMouseLeave = () => onMouseExit();\n }\n\n return (\n <Manager>\n <Reference>\n {({ ref }) =>\n cloneElement(children, {\n ref: ref,\n ...childProps,\n })\n }\n </Reference>\n {showTooltip && (\n <Popper\n modifiers={[{ name: 'arrow', enabled: false }, ...popperModifiers]}\n placement={popperPlacement}\n >\n {({ ref, style, placement: popperPlacement }) => (\n <div\n className={classNames(\n 'eds-tooltip',\n className,\n `eds-tooltip--${popperPlacement}`,\n { 'eds-tooltip--error': variant === 'error' },\n )}\n ref={ref}\n style={style}\n role=\"tooltip\"\n id={tooltipId}\n data-placement={popperPlacement}\n {...rest}\n >\n {content}\n {isOpen && showCloseButton && (\n <IconButton\n className=\"eds-tooltip__close-button\"\n onClick={() => setShowTooltip(false)}\n type=\"button\"\n >\n <CloseIcon />\n </IconButton>\n )}\n </div>\n )}\n </Popper>\n )}\n </Manager>\n );\n};\n","import React, { cloneElement, createContext, useContext } from 'react';\n\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\n\nimport { Contrast } from '@entur/layout';\nimport { useOnClickOutside } from '@entur/utils';\n\nimport './Popover.scss';\n\ntype PopoverContentCallbackProps = {\n ref: React.Ref<HTMLDivElement>;\n};\n\ntype PopoverContextProps = {\n showPopover: boolean;\n triggerElement?: React.RefObject<HTMLButtonElement>;\n contentElement: React.RefObject<HTMLDivElement>;\n styles: { [key: string]: React.CSSProperties };\n attributes: { [key: string]: { [key: string]: string } | undefined };\n closeButtonProps: Record<string, unknown>;\n popoverContentProps: (\n e: PopoverContentCallbackProps,\n ) => Record<string, unknown>;\n triggerProps: () => Record<string, unknown>;\n [key: string]: any;\n};\n\nconst PopoverContext = createContext<PopoverContextProps | undefined>(\n undefined,\n);\nconst usePopoverContext = () => {\n const context = useContext(PopoverContext);\n if (context == null) {\n throw Error('usePopoverContext must be used within <Popover/>');\n }\n return context;\n};\n\nconst useCustomState = (\n state?: boolean,\n setState?: React.Dispatch<React.SetStateAction<boolean>>,\n): [boolean, React.Dispatch<React.SetStateAction<boolean>>, boolean] => {\n const [internalState, setInternalState] = React.useState<boolean>(false);\n const controlled = state !== undefined && setState !== undefined;\n if (controlled) return [state, setState, controlled];\n return [internalState, setInternalState, controlled];\n};\n\nexport type PopoverProps = {\n /** Innholdet i Popover */\n children: React.ReactNode;\n /** Plasseringen av Popover\n * @default \"bottom-start\"\n */\n placement?: Placement;\n /** Hvis du ønsker å styre state selv kan du sende inn state her */\n showPopover?: boolean;\n /** Hvis du ønsker å styre state selv kan du sende inn setState her */\n setShowPopover?: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n placement = 'bottom-start',\n showPopover: controlledState,\n setShowPopover: setControlledState,\n}) => {\n const [showPopover, setShowPopover, controlled] = useCustomState(\n controlledState,\n setControlledState,\n );\n const triggerElement = React.useRef(null);\n const contentElement = React.useRef(null);\n\n const { styles, attributes, forceUpdate } = usePopper(\n triggerElement.current,\n contentElement.current,\n {\n modifiers: [\n { name: 'arrow', enabled: false },\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n ],\n placement: placement,\n },\n );\n\n React.useEffect(() => {\n if (forceUpdate) {\n forceUpdate();\n }\n }, [showPopover, forceUpdate]);\n\n const triggerProps = React.useCallback(() => {\n const buttonProps = {\n 'aria-haspopup': 'dialog',\n 'aria-expanded': showPopover,\n ref: triggerElement,\n type: 'button',\n };\n const buttonOnClick = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(prev => !prev);\n },\n };\n return controlled ? buttonProps : { ...buttonProps, ...buttonOnClick };\n }, [triggerElement, showPopover, setShowPopover, controlled]);\n\n useOnClickOutside([contentElement, triggerElement], () =>\n setShowPopover(false),\n );\n const closeButtonProps = {\n onClick: (e: React.MouseEvent) => {\n e.preventDefault();\n setShowPopover(false);\n },\n type: 'button',\n };\n const popoverContentProps = React.useCallback(() => {\n const contentProps = {\n role: 'dialog',\n 'aria-modal': 'false',\n ref: contentElement,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n showPopover && setShowPopover(false);\n }\n },\n onBlur: (event: React.FocusEvent) => {\n const elementReceivingFocus = event.relatedTarget as HTMLElement;\n // The check for 'tabindex=-1' is a special case for focus handling in Docz\n if (\n !elementReceivingFocus ||\n elementReceivingFocus.getAttribute('tabindex') === '-1'\n )\n return;\n const focusElementIsPopover = elementContainsElement(\n contentElement.current,\n elementReceivingFocus,\n );\n const focusElementIsTrigger = elementContainsElement(\n triggerElement.current,\n elementReceivingFocus,\n );\n const isValidBlur = !focusElementIsPopover && !focusElementIsTrigger;\n if (showPopover && isValidBlur) setShowPopover(false);\n },\n };\n return contentProps;\n }, [contentElement, showPopover, setShowPopover]);\n const contextValue: PopoverContextProps = {\n showPopover,\n triggerElement,\n contentElement,\n styles,\n attributes,\n popoverContentProps,\n closeButtonProps,\n triggerProps,\n };\n return (\n <PopoverContext.Provider value={contextValue}>\n {children}\n </PopoverContext.Provider>\n );\n};\n\nexport type PopoverTriggerProps = {\n /** Knapp som skal brukes for å åpne Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ children }) => {\n const { triggerProps } = usePopoverContext();\n const child = React.Children.only(children) as React.ReactElement<any>;\n return cloneElement(child, triggerProps());\n};\n\nexport type PopoverCloseButtonProps = {\n /** En valgfri knapp som kan legges inn for å lukke Popover */\n children: React.ReactElement;\n};\n\nexport const PopoverCloseButton: React.FC<PopoverCloseButtonProps> = ({\n children,\n ...rest\n}) => {\n const { closeButtonProps } = usePopoverContext();\n return cloneElement(children, { ...closeButtonProps, ...rest });\n};\n\nexport type PopoverContentProps = {\n /**Innholdet til Popover */\n children: React.ReactNode;\n};\n\nexport const PopoverContent = React.forwardRef<\n HTMLDivElement,\n PopoverContentProps\n>(({ children }, ref: React.Ref<HTMLDivElement>) => {\n const { showPopover, attributes, styles, popoverContentProps } =\n usePopoverContext();\n const props = popoverContentProps({ ref });\n return (\n <Contrast\n className={classNames(\n 'eds-popover',\n {\n 'eds-popover--hidden': !showPopover,\n },\n 'eds-contrast',\n )}\n style={styles.popper}\n aria-hidden={!showPopover}\n {...attributes.styles}\n {...props}\n >\n {children}\n </Contrast>\n );\n});\n\nfunction elementContainsElement(\n parent: HTMLElement | null,\n child: HTMLElement,\n) {\n if (!parent) return false;\n return parent === child || parent.contains(child);\n}\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('tooltip');\n\nexport * from './Tooltip';\nexport * from './Popover';\n"],"names":["Tooltip","placement","content","children","className","isOpen","disableHoverListener","disableFocusListener","showCloseButton","variant","popperModifiers","name","options","offset","rest","_excluded","useState","showTooltip","setShowTooltip","hoverTimer","handleOpen","event","persist","setTimeout","onMouseExit","clearTimeout","React","useEffect","tooltipId","useRandomId","popperPlacement","includes","replace","childProps","undefined","onFocus","onBlur","onMouseEnter","e","onMouseLeave","Manager","createElement","Reference","ref","cloneElement","Popper","modifiers","enabled","style","classNames","role","id","IconButton","onClick","type","CloseIcon","PopoverContext","createContext","usePopoverContext","context","useContext","Error","useCustomState","state","setState","internalState","setInternalState","controlled","Popover","controlledState","showPopover","setControlledState","setShowPopover","triggerElement","useRef","contentElement","usePopper","current","styles","attributes","forceUpdate","triggerProps","useCallback","buttonProps","buttonOnClick","preventDefault","prev","useOnClickOutside","closeButtonProps","popoverContentProps","contentProps","onKeyDown","key","elementReceivingFocus","relatedTarget","getAttribute","focusElementIsPopover","elementContainsElement","focusElementIsTrigger","isValidBlur","contextValue","Provider","value","PopoverTrigger","child","Children","only","PopoverCloseButton","PopoverContent","forwardRef","props","Contrast","popper","parent","contains","warnAboutMissingStyles"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/tooltip",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.42",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/tooltip.esm.js",
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
"react-dom": ">=16.8.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@entur/button": "^3.2.
|
|
31
|
-
"@entur/icons": "^6.13.
|
|
32
|
-
"@entur/layout": "^2.1.
|
|
33
|
-
"@entur/tokens": "^3.
|
|
30
|
+
"@entur/button": "^3.2.6",
|
|
31
|
+
"@entur/icons": "^6.13.2",
|
|
32
|
+
"@entur/layout": "^2.1.53",
|
|
33
|
+
"@entur/tokens": "^3.12.0",
|
|
34
34
|
"@entur/utils": "^0.9.5",
|
|
35
35
|
"@popperjs/core": "^2.10.1",
|
|
36
36
|
"classnames": "^2.3.1",
|
|
37
37
|
"react-popper": "~2.2.5"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "05cb986bc4373b1fe20d51c298c4395dd2500843"
|
|
40
40
|
}
|