@semcore/base-components 17.0.0-prerelease.36 → 17.0.0-prerelease.39
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 +6 -2
- package/lib/cjs/components/popper/Popper.js +3 -2
- package/lib/cjs/components/popper/Popper.js.map +1 -1
- package/lib/cjs/components/scroll-area/ScrollBar.js +8 -0
- package/lib/cjs/components/scroll-area/ScrollBar.js.map +1 -1
- package/lib/es6/components/popper/Popper.js +2 -1
- package/lib/es6/components/popper/Popper.js.map +1 -1
- package/lib/es6/components/scroll-area/ScrollBar.js +8 -0
- package/lib/es6/components/scroll-area/ScrollBar.js.map +1 -1
- package/lib/esm/components/animation/Animation.mjs +2 -2
- package/lib/esm/components/animation/Collapse.mjs +1 -2
- package/lib/esm/components/animation/FadeInOut.mjs +1 -2
- package/lib/esm/components/animation/Scale.mjs +1 -2
- package/lib/esm/components/animation/Slide.mjs +1 -2
- package/lib/esm/components/animation/Transform.mjs +1 -2
- package/lib/esm/components/animation/index.mjs +15 -0
- package/lib/esm/components/ellipsis/Ellipsis.mjs +6 -6
- package/lib/esm/components/ellipsis/EllipsisManager.mjs +20 -24
- package/lib/esm/components/ellipsis/Queue.mjs +2 -3
- package/lib/esm/components/ellipsis/index.mjs +4 -0
- package/lib/esm/components/flex-box/Box/useBox.mjs +0 -1
- package/lib/esm/components/flex-box/Flex/useFlex.mjs +0 -1
- package/lib/esm/components/flex-box/index.mjs +14 -0
- package/lib/esm/components/flex-box/invalid-state-box/InvalidStateBox.mjs +4 -3
- package/lib/esm/components/flex-box/screen-reader-only-box/ScreenReaderOnlyBox.mjs +4 -3
- package/lib/esm/components/grid/Grid.mjs +2 -2
- package/lib/esm/components/hint/Hint.mjs +6 -7
- package/lib/esm/components/hint/index.mjs +4 -0
- package/lib/esm/components/neighbor-location/NeighborLocation.mjs +2 -2
- package/lib/esm/components/neighbor-location/index.mjs +6 -0
- package/lib/esm/components/outside-click/OutsideClick.mjs +9 -9
- package/lib/esm/components/outside-click/index.mjs +4 -0
- package/lib/esm/components/popper/Popper.mjs +28 -31
- package/lib/esm/components/popper/arrowOffset.mjs +1 -2
- package/lib/esm/components/popper/createPopper.mjs +1 -1
- package/lib/esm/components/popper/index.mjs +5 -0
- package/lib/esm/components/popper/modifiers/applyMaxSize.mjs +1 -1
- package/lib/esm/components/popper/modifiers/cursorAnchoring.mjs +2 -3
- package/lib/esm/components/portal/Portal.mjs +2 -2
- package/lib/esm/components/portal/index.mjs +6 -0
- package/lib/esm/components/scroll-area/ScrollArea.mjs +13 -16
- package/lib/esm/components/scroll-area/ScrollBar.mjs +8 -5
- package/lib/esm/components/scroll-area/index.mjs +7 -0
- package/lib/esm/index.mjs +33 -24
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
-
## [17.0.0] - 2026-04-
|
|
5
|
+
## [17.0.0] - 2026-04-14
|
|
6
6
|
|
|
7
7
|
### BREAK
|
|
8
8
|
|
|
9
|
-
- **
|
|
9
|
+
- **breakpoints**: New major version.
|
|
10
|
+
- **grid**: New major version.
|
|
11
|
+
- **flex-box**: New major version.
|
|
12
|
+
- **neighbor-location**: New major version.
|
|
13
|
+
- **popper**: New major version.
|
|
10
14
|
- **portal**: Removed using `getNodeByRef`. Use `React.RefObject` instead.
|
|
11
15
|
- **outside-click**: Removed using `getNodeByRef`. Use `React.RefObject` instead.
|
|
12
16
|
- **scroll-area**: Removed using `getNodeByRef`. Use `React.RefObject` instead.
|
|
@@ -13,6 +13,7 @@ var _hasParent = require("@semcore/core/lib/utils/hasParent");
|
|
|
13
13
|
var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
|
|
14
14
|
var _pick = _interopRequireDefault(require("@semcore/core/lib/utils/pick"));
|
|
15
15
|
var _ref4 = require("@semcore/core/lib/utils/ref");
|
|
16
|
+
var _setRef = _interopRequireDefault(require("@semcore/core/lib/utils/setRef"));
|
|
16
17
|
var _ThemeProvider = require("@semcore/core/lib/utils/ThemeProvider");
|
|
17
18
|
var _uniqueID = _interopRequireDefault(require("@semcore/core/lib/utils/uniqueID"));
|
|
18
19
|
var _useFocusLock = require("@semcore/core/lib/utils/use/useFocusLock");
|
|
@@ -97,13 +98,13 @@ class PopperRoot extends _core.Component {
|
|
|
97
98
|
});
|
|
98
99
|
(0, _defineProperty2.default)(this, "createTriggerRef", ref => {
|
|
99
100
|
if (ref && this.triggerRef.current !== ref) {
|
|
100
|
-
(0,
|
|
101
|
+
(0, _setRef.default)(this.triggerRef, ref);
|
|
101
102
|
this.createPopper();
|
|
102
103
|
}
|
|
103
104
|
});
|
|
104
105
|
(0, _defineProperty2.default)(this, "createPopperRef", ref => {
|
|
105
106
|
if (ref && this.popperRef.current !== ref) {
|
|
106
|
-
(0,
|
|
107
|
+
(0, _setRef.default)(this.popperRef, ref);
|
|
107
108
|
this.createPopper();
|
|
108
109
|
}
|
|
109
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.js","names":["_core","require","_assignProps3","_canUseDOM","_interopRequireDefault","_hasParent","_logger","_pick","_ref4","_ThemeProvider","_uniqueID","_useFocusLock","_useCssVariable","_zIndexStacking","_react","_animation","_flexBox","_neighborLocation","_outsideClick","_portal","_createPopper","style","sstyled","insert","isObject","obj","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","React","useRef","handleAnimationFrame","useCallback","until","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","isInputTriggerTag","tag","toLowerCase","includes","displayName","render","exports","mouseMoveListenerAdded","lastMouseMove","MODIFIERS_OPTIONS","PopperRoot","Component","constructor","props","_defineProperty2","default","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","setRef","createPopper","placement","modifiers","strategy","onFirstUpdate","other","asProps","optionsModifiers","pick","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","cursorAnchoring","mouseEnterCursorPositionRef","popperMargin","enabled","margin","popperCtx","modifiersMerge","concat","callAllEventHandlers","observer","observe","disablePortal","parent","parentElement","traversingLimit","document","body","component","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","makeKeyDownHandler","action","target","HTMLElement","relatedTarget","focused","blurred","hasParent","interaction","lastInteraction","isKeyboard","dataset","hideFocusHoverPopper","triggerClick","associatedLabels","labels","popperInsideOfLabel","some","label","lastPopperClick","x","clientX","y","clientY","focusAction","ignoreTriggerFocus","setTimeout","node","getAttribute","setAttribute","currentTarget","lastPopperReference","handlerChangeVisibleWithTimer","clearTimeout","timerMultiTrigger","window","state","elements","reference","setOptions","timeout","latency","cb","disabled","handlers","timeoutConfig","timer","event","focusLoop","canUseDOM","ResizeObserver","uncontrolledProps","__disablePopper","lastPopperReferenceMounted","Boolean","getPopperOptions","componentDidMount","addEventListener","capture","componentDidUpdate","prevProps","popperProps","propName","destroyPopper","disconnect","destroy","handlersFromInteraction","eventInteraction","eventsInteractionMap","showEvents","hideEvents","crossEvents","forEach","getTriggerProps","disableEnforceFocus","explicitTriggerSet","interactionProps","createTriggerRef","active","bindHandlerKeyDown","getPopperProps","duration","animationsDisabled","createPopperRef","handleFocusOut","handlePopperFocusOut","onClick","handlePopperClick","setContext","setTrigger","setPopper","componentWillUnmount","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","OutsideClick","defaultVisible","arrow","padding","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","v","Number","parseInt","toString","prop","Trigger","_ref","arguments[0]","STrigger","Box","onKeyboardFocus","highlighted","forwardRef","activeRef","isFocusInside","activeElement","setFocus","assignProps","forkRef","onBlur","PopperPopper","_ref2","_ref3","SPopper","Scale","styles","ignorePortalsStacking","autoFocus","controlsLength","focusMaster","role","zIndex","providedZIndex","nodeToMount","useZIndexStacking","propagateFocusLockSyntheticEvent","dispatchEvent","makeFocusLockSyntheticEvent","portalMounted","setPortalMounted","useState","useFocusLock","useContextTheme","updatePopperEveryFrame","handleAnimationStart","Math","min","handleAnimationEnd","animationCtx","useContext","animationContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","process","env","NODE_ENV","hasTitle","hasAttribute","logger","warn","Portal","cn","NeighborLocation","ZIndexStackingContextProvider","PortalProvider","Popper","createComponent"],"sources":["../../../../src/components/popper/Popper.tsx"],"sourcesContent":["import type { Instance, Modifier } from '@popperjs/core/lib/types';\nimport {\n createComponent,\n Component,\n type IRootComponentProps,\n Root,\n sstyled,\n lastInteraction,\n} from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { hasParent } from '@semcore/core/lib/utils/hasParent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport pick from '@semcore/core/lib/utils/pick';\nimport { setRef, forkRef } from '@semcore/core/lib/utils/ref';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport {\n useFocusLock,\n isFocusInside,\n setFocus,\n makeFocusLockSyntheticEvent,\n} from '@semcore/core/lib/utils/use/useFocusLock';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n useZIndexStacking,\n ZIndexStackingContextProvider,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport React from 'react';\n\nimport { Scale, animationContext } from '../animation';\nimport { Box } from '../flex-box';\nimport { NeighborLocation } from '../neighbor-location';\nimport { OutsideClick } from '../outside-click';\nimport { Portal, PortalProvider } from '../portal';\nimport createPopper from './createPopper';\nimport type {\n InnerPopperPopperProps,\n InnerPopperTriggerProps,\n Popper as PopperType,\n PopperComponent,\n PopperPopperProps,\n PopperProps,\n PopperTriggerProps,\n} from './Popper.types';\nimport style from './style/popper.shadow.css';\n\nfunction isObject(obj: any) {\n return typeof obj === 'object' && !Array.isArray(obj);\n}\n\nfunction someArray(arr1: any[], arr2: any[]) {\n return arr1.filter(function (i) {\n return arr2.indexOf(i) !== -1;\n });\n}\n\nconst useUpdatePopperEveryFrame = (popperRef: React.RefObject<Instance>) => {\n const nextAnimationFrameRef = React.useRef(-1);\n const handleAnimationFrame = React.useCallback((until: number) => {\n if (until < Date.now()) return;\n popperRef.current?.update();\n nextAnimationFrameRef.current = requestAnimationFrame(() => handleAnimationFrame(until));\n }, []);\n React.useEffect(() => () => cancelAnimationFrame(nextAnimationFrameRef.current), []);\n return handleAnimationFrame;\n};\n\nexport const isInputTriggerTag = (tag: null | string | Record<any, any>) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nlet mouseMoveListenerAdded = false;\nlet lastMouseMove = 0;\n\nconst MODIFIERS_OPTIONS = [\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'cursorAnchoring',\n] as const;\n\nclass PopperRoot extends Component<PopperProps, typeof PopperRoot.enhance, { visible: null }, typeof PopperRoot.defaultProps> {\n static displayName = 'Popper';\n\n static style = style;\n\n static defaultProps = {\n defaultVisible: false,\n placement: 'auto',\n modifiers: [],\n arrow: {\n padding: 6,\n },\n strategy: 'absolute',\n interaction: 'click',\n timeout: 0,\n excludeRefs: [],\n focusLoop: true,\n cursorAnchoring: false,\n };\n\n static enhance = [\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'duration',\n }),\n ] as const;\n\n eventsInteractionMap = {\n click: {\n trigger: [['onClick'], ['onClick']],\n popper: [],\n },\n hover: {\n trigger: [\n ['onMouseEnter', 'onFocus', 'onKeyboardFocus', 'onTouchStart'],\n ['onMouseLeave', 'onBlur'],\n ],\n popper: [['onMouseEnter', 'onFocusCapture', 'onTouchStart'], ['onMouseLeave']],\n },\n focus: {\n trigger: [['onFocus', 'onClick'], ['onBlur']],\n // to intercept faster than onBlur on the trigger\n popper: [['onFocusCapture'], ['onBlur']],\n },\n none: {\n trigger: [],\n popper: [],\n },\n };\n\n observer: ResizeObserver | null = null;\n\n triggerRef = React.createRef<HTMLElement>();\n popperRef = React.createRef<HTMLElement>();\n popper = React.createRef() as React.MutableRefObject<Instance | null>;\n lastPopperReference: HTMLElement | null = null;\n ignoreTriggerFocus = false;\n\n timer = 0;\n timerMultiTrigger = 0;\n\n constructor(props: PopperProps) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n this.popper.current?.update();\n });\n });\n }\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n mouseEnterCursorPositionRef: React.MutableRefObject<any> = { current: null };\n\n createTriggerRef = (ref?: HTMLElement) => {\n if (ref && this.triggerRef.current !== ref) {\n setRef(this.triggerRef, ref);\n this.createPopper();\n }\n };\n\n createPopperRef = (ref?: HTMLElement) => {\n if (ref && this.popperRef.current !== ref) {\n setRef(this.popperRef, ref);\n this.createPopper();\n }\n };\n\n getPopperOptions = () => {\n const { placement, modifiers = [], strategy, onFirstUpdate, ...other } = this.asProps;\n\n const optionsModifiers: Record<any, any> = pick(\n other,\n // @ts-ignore\n MODIFIERS_OPTIONS,\n );\n const modifiersFallback: Array<Partial<Modifier<any, any>>> = [];\n\n if (typeof optionsModifiers.offset === 'number') {\n optionsModifiers.offset = [0, optionsModifiers.offset];\n }\n const modifiersOptions: Array<Partial<Modifier<any, any>>> = MODIFIERS_OPTIONS.filter(\n (name) => optionsModifiers[name] !== undefined,\n ).map((name) => ({\n name,\n options: isObject(optionsModifiers[name])\n ? optionsModifiers[name]\n : { [name]: optionsModifiers[name] },\n }));\n\n modifiersOptions.push({\n name: 'computeStyles',\n options: { gpuAcceleration: false },\n });\n if (this.asProps.cursorAnchoring) {\n modifiersOptions.push({\n name: 'cursorAnchoring',\n options: {\n cursorAnchoring: this.asProps.cursorAnchoring,\n mouseEnterCursorPositionRef: this.mouseEnterCursorPositionRef,\n },\n });\n }\n\n if (this.asProps.popperMargin) {\n modifiersOptions.push({\n name: 'applyMaxSize',\n enabled: true,\n options: {\n margin: this.asProps.popperMargin,\n popperCtx: this,\n },\n });\n }\n\n const modifiersMerge = modifiersFallback.concat(...modifiersOptions, modifiers);\n\n return {\n placement,\n strategy,\n onFirstUpdate: callAllEventHandlers(onFirstUpdate, () => {\n this.observer?.observe(this.triggerRef.current!);\n this.observer?.observe(this.popperRef.current!);\n if (this.asProps.disablePortal) return;\n let parent = this.popperRef.current?.parentElement;\n const traversingLimit = 10;\n for (let i = 0; i < traversingLimit; i++) {\n if (!parent) break;\n this.observer?.observe(parent);\n if (parent === document.body) break;\n parent = parent.parentElement;\n }\n }),\n modifiers: modifiersMerge,\n };\n };\n\n createPopper() {\n if (!this.triggerRef.current || !this.popperRef.current) return;\n // @ts-ignore\n if (this.asProps.__disablePopper) return; // for datepicker tests\n\n const lastPopperReferenceMounted = Boolean(this.lastPopperReference?.parentElement);\n\n this.popper.current = createPopper(\n lastPopperReferenceMounted ? this.lastPopperReference! : this.triggerRef.current!,\n this.popperRef.current,\n this.getPopperOptions(),\n );\n }\n\n componentDidMount() {\n if (canUseDOM() && !mouseMoveListenerAdded) {\n mouseMoveListenerAdded = true;\n document.addEventListener(\n 'mousemove',\n () => {\n lastMouseMove = Date.now();\n },\n { capture: true },\n );\n }\n }\n\n componentDidUpdate(prevProps: PopperProps) {\n const popperProps = [\n 'strategy',\n 'placement',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n ];\n if (\n this.popper.current &&\n // @ts-ignore\n popperProps.some((propName) => prevProps[propName] !== this.asProps[propName])\n ) {\n this.popper.current.setOptions(this.getPopperOptions());\n }\n }\n\n destroyPopper() {\n clearTimeout(this.timer);\n clearTimeout(this.timerMultiTrigger);\n\n this.observer?.disconnect();\n\n if (this.popper.current) {\n this.popper.current.destroy();\n this.popper.current = null;\n }\n }\n\n handlersFromInteraction(\n interaction: PopperProps['interaction'],\n component: PopperComponent,\n visible: boolean,\n ) {\n const eventInteraction =\n typeof interaction === 'string' ? this.eventsInteractionMap[interaction] : interaction;\n\n if (!eventInteraction) return;\n\n const [showEvents = [], hideEvents = []] = eventInteraction[component];\n const crossEvents = someArray(showEvents, hideEvents);\n const handlers: Record<any, any> = {};\n\n showEvents.forEach((action: any) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n hideEvents.forEach((action: any) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(false, component, action);\n });\n crossEvents.forEach((action) => {\n handlers[action] = visible\n ? this.bindHandlerChangeVisibleWithTimer(false, component, action)\n : this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n return handlers;\n }\n\n makeKeyDownHandler = (component: PopperComponent) => (e: React.KeyboardEvent) => {\n const { visible } = this.asProps;\n if (visible && e.key === 'Escape') {\n e.stopPropagation();\n\n this.bindHandlerChangeVisibleWithTimer(false, component, 'onKeyDown')(e);\n }\n };\n\n bindHandlerKeyDown = (\n onKeyDown: (event: React.KeyboardEvent) => void | false,\n component: PopperComponent,\n ) => callAllEventHandlers(onKeyDown, this.makeKeyDownHandler(component));\n\n lastPopperClick = 0;\n bindHandlerChangeVisibleWithTimer =\n (visible: boolean, component?: PopperComponent, action?: any) => (e: React.SyntheticEvent) => {\n const trigger = this.triggerRef.current;\n if (\n component === 'trigger' &&\n action === 'onBlur' &&\n e.target instanceof HTMLElement &&\n 'relatedTarget' in e &&\n e.relatedTarget instanceof HTMLElement\n ) {\n const focused = e.relatedTarget;\n const blurred = e.target;\n if (\n focused &&\n trigger &&\n blurred &&\n hasParent(focused, trigger) &&\n hasParent(blurred, trigger)\n ) {\n return;\n }\n }\n\n if (\n visible &&\n component === 'trigger' &&\n action === 'onFocus' &&\n this.asProps.interaction === 'hover' &&\n !lastInteraction.isKeyboard() &&\n e.target instanceof HTMLElement &&\n e.target.dataset.hideFocusHoverPopper === 'true'\n ) {\n return;\n }\n\n if (component === 'trigger' && action === 'onClick' && e.target instanceof HTMLElement) {\n const triggerClick = hasParent(e.target, trigger!);\n // @ts-ignore\n const associatedLabels = [...(trigger?.labels || [])];\n const popperInsideOfLabel = associatedLabels.some((label) =>\n hasParent(this.popperRef.current, label),\n );\n\n if (triggerClick && popperInsideOfLabel && Date.now() - this.lastPopperClick < 100) {\n return;\n }\n }\n /**\n * When popper appears right under mouse that doesn't move, it gets undesired onMouseEnter event.\n * That may cause hover interaction poppers to display two closely placed poppers.\n * That check ensures that onMouseEnter means mouse entered the popper, not popper entered the mouse.\n */\n if (component === 'popper' && action === 'onMouseEnter' && Date.now() - lastMouseMove > 100)\n return;\n\n if (action === 'onMouseEnter') {\n // @ts-ignore\n this.mouseEnterCursorPositionRef.current = { x: e.clientX, y: e.clientY };\n }\n\n const focusAction = ['onFocus', 'onKeyboardFocus', 'onFocusCapture'].includes(action);\n if (this.ignoreTriggerFocus && visible && component === 'trigger' && focusAction) {\n return;\n }\n if (!visible) {\n /**\n * When sibling popovers triggers with hover/focus interactions are navigated fast,\n * sometimes focus moves into closing popovers and prevents it from closing. It may cause\n * multiple popovers to be opened at the same time.\n */\n setTimeout(() => {\n const node = this.popperRef.current;\n if (node?.getAttribute('tabindex') === '0') {\n node.setAttribute('tabindex', '-1');\n }\n }, 0);\n }\n\n const target = e?.currentTarget;\n if (component === 'trigger' && target && target instanceof HTMLElement) {\n this.lastPopperReference = target;\n }\n this.handlerChangeVisibleWithTimer(visible, e, () => {\n clearTimeout(this.timerMultiTrigger);\n // instance popper is not here yet because the popperRef did not have time to come\n this.timerMultiTrigger = window.setTimeout(() => {\n if (\n visible &&\n component === 'trigger' &&\n this.popper.current &&\n this.lastPopperReference\n ) {\n if (this.popper.current.state.elements.reference !== this.lastPopperReference) {\n this.popper.current.state.elements.reference = this.lastPopperReference;\n // for update\n this.popper.current.setOptions({});\n }\n }\n if (!visible && component === 'popper') {\n const { timeout } = this.asProps;\n const latency = Array.isArray(timeout) ? timeout[1] : timeout;\n setTimeout(() => {\n this.ignoreTriggerFocus = false;\n }, latency + 20);\n }\n }, 0);\n });\n if (\n component === 'popper' &&\n !visible &&\n ['onClick', 'onBlur', 'onKeyDown'].includes(action)\n ) {\n this.ignoreTriggerFocus = true;\n }\n };\n\n handlerChangeVisibleWithTimer = (visible: boolean, e: React.SyntheticEvent, cb: () => void) => {\n const { timeout, disabled } = this.asProps;\n if (typeof disabled === 'boolean' && disabled && visible) return;\n const handlers = this.handlers;\n\n const timeoutConfig = typeof timeout === 'number' ? [timeout, timeout] : timeout!;\n const latency = visible ? timeoutConfig[0] : timeoutConfig[1];\n clearTimeout(this.timer);\n this.timer = window.setTimeout(() => {\n handlers.visible(visible, e);\n }, latency);\n cb();\n };\n\n getTriggerProps() {\n const { visible, interaction, disableEnforceFocus, explicitTriggerSet } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'trigger',\n Boolean(visible),\n );\n return {\n ref: explicitTriggerSet ? undefined : this.createTriggerRef,\n active: visible,\n interaction,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown, 'trigger'),\n disableEnforceFocus,\n popperRef: this.popperRef,\n };\n }\n\n getPopperProps() {\n const {\n visible,\n disablePortal,\n interaction,\n placement,\n duration,\n animationsDisabled,\n disableEnforceFocus,\n } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'popper',\n Boolean(visible),\n );\n\n return {\n ref: this.createPopperRef,\n triggerRef: this.triggerRef,\n visible,\n interaction,\n disablePortal,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown, 'popper'),\n placement,\n duration,\n animationsDisabled,\n popper: this.popper,\n disableEnforceFocus,\n handleFocusOut: this.handlePopperFocusOut,\n onClick: this.handlePopperClick,\n };\n }\n\n handlePopperFocusOut = (event: React.SyntheticEvent) => {\n if (this.asProps.focusLoop) return;\n if (\n this.triggerRef.current &&\n event.target instanceof HTMLElement &&\n hasParent(event.target, this.triggerRef.current)\n )\n return;\n\n this.bindHandlerChangeVisibleWithTimer(false, 'popper', 'onBlur')(event);\n };\n\n handlePopperClick = () => {\n this.lastPopperClick = Date.now();\n };\n\n setContext() {\n return {\n popper: this.popper,\n setTrigger: this.createTriggerRef,\n setPopper: this.createPopperRef,\n };\n }\n\n componentWillUnmount() {\n this.destroyPopper();\n }\n\n render() {\n const { Children, visible, root, onOutsideClick, excludeRefs = [] } = this.asProps;\n return (\n <>\n {visible\n ? (\n <OutsideClick\n root={root}\n excludeRefs={[this.triggerRef, this.popperRef, ...excludeRefs]}\n onOutsideClick={callAllEventHandlers(\n onOutsideClick,\n this.bindHandlerChangeVisibleWithTimer(false),\n )}\n />\n )\n : null}\n <Children />\n </>\n );\n }\n}\n\nfunction Trigger(props: PopperTriggerProps & IRootComponentProps & InnerPopperTriggerProps) {\n const STrigger = Root;\n const { Children, onKeyboardFocus, highlighted, active, popperRef, forwardRef } = props;\n\n const triggerRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n if (highlighted === true && onKeyboardFocus) {\n onKeyboardFocus({ currentTarget: triggerRef.current });\n }\n }, [highlighted]);\n\n const activeRef = React.useRef(active);\n activeRef.current = active;\n React.useEffect(() => {\n if (!active) return;\n return () => {\n setTimeout(() => {\n if (activeRef.current) return;\n if (!isFocusInside(popperRef.current) && document.activeElement !== document.body) return;\n if (!lastInteraction.isKeyboard()) return;\n\n if (triggerRef.current) {\n setFocus(triggerRef.current);\n }\n }, 1);\n };\n }, [active]);\n\n return (\n <>\n <STrigger\n render={Box}\n inline\n aria-haspopup={true}\n ref={forkRef(triggerRef, forwardRef!)}\n onBlur={props.onBlur}\n >\n <Children />\n </STrigger>\n </>\n );\n}\n\nfunction PopperPopper(props: PopperPopperProps & IRootComponentProps & InnerPopperPopperProps) {\n const SPopper = Root;\n const {\n Children,\n styles,\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n triggerRef,\n autoFocus,\n controlsLength,\n duration,\n animationsDisabled,\n popper,\n focusMaster = false,\n handleFocusOut,\n role,\n zIndex: providedZIndex,\n nodeToMount,\n } = props;\n const ref = React.useRef<HTMLElement>(null);\n const zIndex = useZIndexStacking('z-index-popper');\n\n // https://github.com/facebook/react/issues/11387\n const stopPropagation = React.useCallback((event: React.SyntheticEvent) => {\n event.stopPropagation();\n }, []);\n const propagateFocusLockSyntheticEvent = React.useCallback((event: React.SyntheticEvent) => {\n event.stopPropagation();\n // @ts-ignore\n ref.current?.dispatchEvent(makeFocusLockSyntheticEvent(event));\n }, []);\n\n const [portalMounted, setPortalMounted] = React.useState(disablePortal);\n useFocusLock(\n ref,\n autoFocus ?? false,\n triggerRef,\n !visible || disableEnforceFocus || !portalMounted,\n focusMaster,\n handleFocusOut,\n );\n\n useContextTheme(ref, visible);\n\n const updatePopperEveryFrame = useUpdatePopperEveryFrame(popper);\n const handleAnimationStart = React.useCallback(\n (duration?: number) => {\n if (duration && duration > 0) {\n updatePopperEveryFrame(Date.now() + Math.min(duration, 2000));\n }\n },\n [updatePopperEveryFrame],\n );\n const handleAnimationEnd = React.useCallback(() => {\n popper.current?.update();\n }, []);\n const animationCtx = React.useContext(animationContext);\n React.useEffect(() => {\n if (!ignorePortalsStacking) return;\n if (!animationCtx) return;\n const unsubscribeAnimationStart = animationCtx.onAnimationStart(handleAnimationStart);\n const unsubscribeAnimationEnd = animationCtx.onAnimationEnd(handleAnimationEnd);\n return () => {\n unsubscribeAnimationStart();\n unsubscribeAnimationEnd();\n };\n }, [animationCtx, ignorePortalsStacking]);\n\n React.useEffect(() => {\n if (role === 'dialog' && visible && process.env.NODE_ENV !== 'production') {\n const hasTitle = (node: HTMLElement) => {\n if (node.hasAttribute('aria-label')) return true;\n if (node.hasAttribute('aria-labelledby')) return true;\n if (node.hasAttribute('title')) return true;\n\n return false;\n };\n\n logger.warn(\n ref.current && !hasTitle(ref.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for popper with role dialog`,\n // @ts-ignore\n props['data-ui-name'] || PopperPopper.displayName,\n );\n }\n }, [visible, role]);\n\n return sstyled(styles)(\n <Portal\n disablePortal={disablePortal}\n ignorePortalsStacking={ignorePortalsStacking}\n onMount={setPortalMounted}\n nodeToMount={nodeToMount}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <ZIndexStackingContextProvider designToken='z-index-popper'>\n <SPopper\n render={Scale}\n animationsDisabled={animationsDisabled}\n visible={visible}\n duration={[duration, duration / 2]}\n ref={ref}\n onClick={stopPropagation}\n onContextMenu={stopPropagation}\n onDoubleClick={stopPropagation}\n onDrag={stopPropagation}\n onDragEnd={stopPropagation}\n onDragEnter={stopPropagation}\n onDragExit={stopPropagation}\n onDragLeave={stopPropagation}\n onDragOver={stopPropagation}\n onDragStart={stopPropagation}\n onDrop={stopPropagation}\n onMouseDown={stopPropagation}\n onMouseMove={stopPropagation}\n onMouseOver={stopPropagation}\n onMouseOut={stopPropagation}\n onMouseUp={stopPropagation}\n onKeyDown={propagateFocusLockSyntheticEvent}\n onKeyPress={stopPropagation}\n onKeyUp={stopPropagation}\n onFocus={stopPropagation}\n onBlur={propagateFocusLockSyntheticEvent}\n onChange={stopPropagation}\n onInput={stopPropagation}\n onInvalid={stopPropagation}\n onReset={stopPropagation}\n onSubmit={stopPropagation}\n use:zIndex={providedZIndex ?? zIndex}\n >\n <PortalProvider value={ref}>\n <Children />\n </PortalProvider>\n </SPopper>\n </ZIndexStackingContextProvider>\n </NeighborLocation>\n </Portal>,\n );\n}\n\nexport const Popper = createComponent(PopperRoot, {\n Trigger,\n Popper: PopperPopper,\n}) as typeof PopperType;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Popper.js","names":["_core","require","_assignProps3","_canUseDOM","_interopRequireDefault","_hasParent","_logger","_pick","_ref4","_setRef","_ThemeProvider","_uniqueID","_useFocusLock","_useCssVariable","_zIndexStacking","_react","_animation","_flexBox","_neighborLocation","_outsideClick","_portal","_createPopper","style","sstyled","insert","isObject","obj","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","React","useRef","handleAnimationFrame","useCallback","until","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","isInputTriggerTag","tag","toLowerCase","includes","displayName","render","exports","mouseMoveListenerAdded","lastMouseMove","MODIFIERS_OPTIONS","PopperRoot","Component","constructor","props","_defineProperty2","default","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","setRef","createPopper","placement","modifiers","strategy","onFirstUpdate","other","asProps","optionsModifiers","pick","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","cursorAnchoring","mouseEnterCursorPositionRef","popperMargin","enabled","margin","popperCtx","modifiersMerge","concat","callAllEventHandlers","observer","observe","disablePortal","parent","parentElement","traversingLimit","document","body","component","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","makeKeyDownHandler","action","target","HTMLElement","relatedTarget","focused","blurred","hasParent","interaction","lastInteraction","isKeyboard","dataset","hideFocusHoverPopper","triggerClick","associatedLabels","labels","popperInsideOfLabel","some","label","lastPopperClick","x","clientX","y","clientY","focusAction","ignoreTriggerFocus","setTimeout","node","getAttribute","setAttribute","currentTarget","lastPopperReference","handlerChangeVisibleWithTimer","clearTimeout","timerMultiTrigger","window","state","elements","reference","setOptions","timeout","latency","cb","disabled","handlers","timeoutConfig","timer","event","focusLoop","canUseDOM","ResizeObserver","uncontrolledProps","__disablePopper","lastPopperReferenceMounted","Boolean","getPopperOptions","componentDidMount","addEventListener","capture","componentDidUpdate","prevProps","popperProps","propName","destroyPopper","disconnect","destroy","handlersFromInteraction","eventInteraction","eventsInteractionMap","showEvents","hideEvents","crossEvents","forEach","getTriggerProps","disableEnforceFocus","explicitTriggerSet","interactionProps","createTriggerRef","active","bindHandlerKeyDown","getPopperProps","duration","animationsDisabled","createPopperRef","handleFocusOut","handlePopperFocusOut","onClick","handlePopperClick","setContext","setTrigger","setPopper","componentWillUnmount","Children","root","onOutsideClick","excludeRefs","createElement","Fragment","OutsideClick","defaultVisible","arrow","padding","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","v","Number","parseInt","toString","prop","Trigger","_ref","arguments[0]","STrigger","Box","onKeyboardFocus","highlighted","forwardRef","activeRef","isFocusInside","activeElement","setFocus","assignProps","forkRef","onBlur","PopperPopper","_ref2","_ref3","SPopper","Scale","styles","ignorePortalsStacking","autoFocus","controlsLength","focusMaster","role","zIndex","providedZIndex","nodeToMount","useZIndexStacking","propagateFocusLockSyntheticEvent","dispatchEvent","makeFocusLockSyntheticEvent","portalMounted","setPortalMounted","useState","useFocusLock","useContextTheme","updatePopperEveryFrame","handleAnimationStart","Math","min","handleAnimationEnd","animationCtx","useContext","animationContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","process","env","NODE_ENV","hasTitle","hasAttribute","logger","warn","Portal","cn","NeighborLocation","ZIndexStackingContextProvider","PortalProvider","Popper","createComponent"],"sources":["../../../../src/components/popper/Popper.tsx"],"sourcesContent":["import type { Instance, Modifier } from '@popperjs/core/lib/types';\nimport {\n createComponent,\n Component,\n type IRootComponentProps,\n Root,\n sstyled,\n lastInteraction,\n} from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { hasParent } from '@semcore/core/lib/utils/hasParent';\nimport logger from '@semcore/core/lib/utils/logger';\nimport pick from '@semcore/core/lib/utils/pick';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport setRef from '@semcore/core/lib/utils/setRef';\nimport { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport {\n useFocusLock,\n isFocusInside,\n setFocus,\n makeFocusLockSyntheticEvent,\n} from '@semcore/core/lib/utils/use/useFocusLock';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport {\n useZIndexStacking,\n ZIndexStackingContextProvider,\n} from '@semcore/core/lib/utils/zIndexStacking';\nimport React from 'react';\n\nimport { Scale, animationContext } from '../animation';\nimport { Box } from '../flex-box';\nimport { NeighborLocation } from '../neighbor-location';\nimport { OutsideClick } from '../outside-click';\nimport { Portal, PortalProvider } from '../portal';\nimport createPopper from './createPopper';\nimport type {\n InnerPopperPopperProps,\n InnerPopperTriggerProps,\n Popper as PopperType,\n PopperComponent,\n PopperPopperProps,\n PopperProps,\n PopperTriggerProps,\n} from './Popper.types';\nimport style from './style/popper.shadow.css';\n\nfunction isObject(obj: any) {\n return typeof obj === 'object' && !Array.isArray(obj);\n}\n\nfunction someArray(arr1: any[], arr2: any[]) {\n return arr1.filter(function (i) {\n return arr2.indexOf(i) !== -1;\n });\n}\n\nconst useUpdatePopperEveryFrame = (popperRef: React.RefObject<Instance>) => {\n const nextAnimationFrameRef = React.useRef(-1);\n const handleAnimationFrame = React.useCallback((until: number) => {\n if (until < Date.now()) return;\n popperRef.current?.update();\n nextAnimationFrameRef.current = requestAnimationFrame(() => handleAnimationFrame(until));\n }, []);\n React.useEffect(() => () => cancelAnimationFrame(nextAnimationFrameRef.current), []);\n return handleAnimationFrame;\n};\n\nexport const isInputTriggerTag = (tag: null | string | Record<any, any>) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nlet mouseMoveListenerAdded = false;\nlet lastMouseMove = 0;\n\nconst MODIFIERS_OPTIONS = [\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'cursorAnchoring',\n] as const;\n\nclass PopperRoot extends Component<PopperProps, typeof PopperRoot.enhance, { visible: null }, typeof PopperRoot.defaultProps> {\n static displayName = 'Popper';\n\n static style = style;\n\n static defaultProps = {\n defaultVisible: false,\n placement: 'auto',\n modifiers: [],\n arrow: {\n padding: 6,\n },\n strategy: 'absolute',\n interaction: 'click',\n timeout: 0,\n excludeRefs: [],\n focusLoop: true,\n cursorAnchoring: false,\n };\n\n static enhance = [\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'duration',\n }),\n ] as const;\n\n eventsInteractionMap = {\n click: {\n trigger: [['onClick'], ['onClick']],\n popper: [],\n },\n hover: {\n trigger: [\n ['onMouseEnter', 'onFocus', 'onKeyboardFocus', 'onTouchStart'],\n ['onMouseLeave', 'onBlur'],\n ],\n popper: [['onMouseEnter', 'onFocusCapture', 'onTouchStart'], ['onMouseLeave']],\n },\n focus: {\n trigger: [['onFocus', 'onClick'], ['onBlur']],\n // to intercept faster than onBlur on the trigger\n popper: [['onFocusCapture'], ['onBlur']],\n },\n none: {\n trigger: [],\n popper: [],\n },\n };\n\n observer: ResizeObserver | null = null;\n\n triggerRef = React.createRef<HTMLElement>();\n popperRef = React.createRef<HTMLElement>();\n popper = React.createRef() as React.MutableRefObject<Instance | null>;\n lastPopperReference: HTMLElement | null = null;\n ignoreTriggerFocus = false;\n\n timer = 0;\n timerMultiTrigger = 0;\n\n constructor(props: PopperProps) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(() => {\n requestAnimationFrame(() => {\n this.popper.current?.update();\n });\n });\n }\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n mouseEnterCursorPositionRef: React.MutableRefObject<any> = { current: null };\n\n createTriggerRef = (ref?: HTMLElement) => {\n if (ref && this.triggerRef.current !== ref) {\n setRef(this.triggerRef, ref);\n this.createPopper();\n }\n };\n\n createPopperRef = (ref?: HTMLElement) => {\n if (ref && this.popperRef.current !== ref) {\n setRef(this.popperRef, ref);\n this.createPopper();\n }\n };\n\n getPopperOptions = () => {\n const { placement, modifiers = [], strategy, onFirstUpdate, ...other } = this.asProps;\n\n const optionsModifiers: Record<any, any> = pick(\n other,\n // @ts-ignore\n MODIFIERS_OPTIONS,\n );\n const modifiersFallback: Array<Partial<Modifier<any, any>>> = [];\n\n if (typeof optionsModifiers.offset === 'number') {\n optionsModifiers.offset = [0, optionsModifiers.offset];\n }\n const modifiersOptions: Array<Partial<Modifier<any, any>>> = MODIFIERS_OPTIONS.filter(\n (name) => optionsModifiers[name] !== undefined,\n ).map((name) => ({\n name,\n options: isObject(optionsModifiers[name])\n ? optionsModifiers[name]\n : { [name]: optionsModifiers[name] },\n }));\n\n modifiersOptions.push({\n name: 'computeStyles',\n options: { gpuAcceleration: false },\n });\n if (this.asProps.cursorAnchoring) {\n modifiersOptions.push({\n name: 'cursorAnchoring',\n options: {\n cursorAnchoring: this.asProps.cursorAnchoring,\n mouseEnterCursorPositionRef: this.mouseEnterCursorPositionRef,\n },\n });\n }\n\n if (this.asProps.popperMargin) {\n modifiersOptions.push({\n name: 'applyMaxSize',\n enabled: true,\n options: {\n margin: this.asProps.popperMargin,\n popperCtx: this,\n },\n });\n }\n\n const modifiersMerge = modifiersFallback.concat(...modifiersOptions, modifiers);\n\n return {\n placement,\n strategy,\n onFirstUpdate: callAllEventHandlers(onFirstUpdate, () => {\n this.observer?.observe(this.triggerRef.current!);\n this.observer?.observe(this.popperRef.current!);\n if (this.asProps.disablePortal) return;\n let parent = this.popperRef.current?.parentElement;\n const traversingLimit = 10;\n for (let i = 0; i < traversingLimit; i++) {\n if (!parent) break;\n this.observer?.observe(parent);\n if (parent === document.body) break;\n parent = parent.parentElement;\n }\n }),\n modifiers: modifiersMerge,\n };\n };\n\n createPopper() {\n if (!this.triggerRef.current || !this.popperRef.current) return;\n // @ts-ignore\n if (this.asProps.__disablePopper) return; // for datepicker tests\n\n const lastPopperReferenceMounted = Boolean(this.lastPopperReference?.parentElement);\n\n this.popper.current = createPopper(\n lastPopperReferenceMounted ? this.lastPopperReference! : this.triggerRef.current!,\n this.popperRef.current,\n this.getPopperOptions(),\n );\n }\n\n componentDidMount() {\n if (canUseDOM() && !mouseMoveListenerAdded) {\n mouseMoveListenerAdded = true;\n document.addEventListener(\n 'mousemove',\n () => {\n lastMouseMove = Date.now();\n },\n { capture: true },\n );\n }\n }\n\n componentDidUpdate(prevProps: PopperProps) {\n const popperProps = [\n 'strategy',\n 'placement',\n 'offset',\n 'preventOverflow',\n 'arrow',\n 'flip',\n 'computeStyles',\n 'eventListeners',\n 'onFirstUpdate',\n 'cursorAnchoring',\n ];\n if (\n this.popper.current &&\n // @ts-ignore\n popperProps.some((propName) => prevProps[propName] !== this.asProps[propName])\n ) {\n this.popper.current.setOptions(this.getPopperOptions());\n }\n }\n\n destroyPopper() {\n clearTimeout(this.timer);\n clearTimeout(this.timerMultiTrigger);\n\n this.observer?.disconnect();\n\n if (this.popper.current) {\n this.popper.current.destroy();\n this.popper.current = null;\n }\n }\n\n handlersFromInteraction(\n interaction: PopperProps['interaction'],\n component: PopperComponent,\n visible: boolean,\n ) {\n const eventInteraction =\n typeof interaction === 'string' ? this.eventsInteractionMap[interaction] : interaction;\n\n if (!eventInteraction) return;\n\n const [showEvents = [], hideEvents = []] = eventInteraction[component];\n const crossEvents = someArray(showEvents, hideEvents);\n const handlers: Record<any, any> = {};\n\n showEvents.forEach((action: any) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n hideEvents.forEach((action: any) => {\n handlers[action] = this.bindHandlerChangeVisibleWithTimer(false, component, action);\n });\n crossEvents.forEach((action) => {\n handlers[action] = visible\n ? this.bindHandlerChangeVisibleWithTimer(false, component, action)\n : this.bindHandlerChangeVisibleWithTimer(true, component, action);\n });\n return handlers;\n }\n\n makeKeyDownHandler = (component: PopperComponent) => (e: React.KeyboardEvent) => {\n const { visible } = this.asProps;\n if (visible && e.key === 'Escape') {\n e.stopPropagation();\n\n this.bindHandlerChangeVisibleWithTimer(false, component, 'onKeyDown')(e);\n }\n };\n\n bindHandlerKeyDown = (\n onKeyDown: (event: React.KeyboardEvent) => void | false,\n component: PopperComponent,\n ) => callAllEventHandlers(onKeyDown, this.makeKeyDownHandler(component));\n\n lastPopperClick = 0;\n bindHandlerChangeVisibleWithTimer =\n (visible: boolean, component?: PopperComponent, action?: any) => (e: React.SyntheticEvent) => {\n const trigger = this.triggerRef.current;\n if (\n component === 'trigger' &&\n action === 'onBlur' &&\n e.target instanceof HTMLElement &&\n 'relatedTarget' in e &&\n e.relatedTarget instanceof HTMLElement\n ) {\n const focused = e.relatedTarget;\n const blurred = e.target;\n if (\n focused &&\n trigger &&\n blurred &&\n hasParent(focused, trigger) &&\n hasParent(blurred, trigger)\n ) {\n return;\n }\n }\n\n if (\n visible &&\n component === 'trigger' &&\n action === 'onFocus' &&\n this.asProps.interaction === 'hover' &&\n !lastInteraction.isKeyboard() &&\n e.target instanceof HTMLElement &&\n e.target.dataset.hideFocusHoverPopper === 'true'\n ) {\n return;\n }\n\n if (component === 'trigger' && action === 'onClick' && e.target instanceof HTMLElement) {\n const triggerClick = hasParent(e.target, trigger!);\n // @ts-ignore\n const associatedLabels = [...(trigger?.labels || [])];\n const popperInsideOfLabel = associatedLabels.some((label) =>\n hasParent(this.popperRef.current, label),\n );\n\n if (triggerClick && popperInsideOfLabel && Date.now() - this.lastPopperClick < 100) {\n return;\n }\n }\n /**\n * When popper appears right under mouse that doesn't move, it gets undesired onMouseEnter event.\n * That may cause hover interaction poppers to display two closely placed poppers.\n * That check ensures that onMouseEnter means mouse entered the popper, not popper entered the mouse.\n */\n if (component === 'popper' && action === 'onMouseEnter' && Date.now() - lastMouseMove > 100)\n return;\n\n if (action === 'onMouseEnter') {\n // @ts-ignore\n this.mouseEnterCursorPositionRef.current = { x: e.clientX, y: e.clientY };\n }\n\n const focusAction = ['onFocus', 'onKeyboardFocus', 'onFocusCapture'].includes(action);\n if (this.ignoreTriggerFocus && visible && component === 'trigger' && focusAction) {\n return;\n }\n if (!visible) {\n /**\n * When sibling popovers triggers with hover/focus interactions are navigated fast,\n * sometimes focus moves into closing popovers and prevents it from closing. It may cause\n * multiple popovers to be opened at the same time.\n */\n setTimeout(() => {\n const node = this.popperRef.current;\n if (node?.getAttribute('tabindex') === '0') {\n node.setAttribute('tabindex', '-1');\n }\n }, 0);\n }\n\n const target = e?.currentTarget;\n if (component === 'trigger' && target && target instanceof HTMLElement) {\n this.lastPopperReference = target;\n }\n this.handlerChangeVisibleWithTimer(visible, e, () => {\n clearTimeout(this.timerMultiTrigger);\n // instance popper is not here yet because the popperRef did not have time to come\n this.timerMultiTrigger = window.setTimeout(() => {\n if (\n visible &&\n component === 'trigger' &&\n this.popper.current &&\n this.lastPopperReference\n ) {\n if (this.popper.current.state.elements.reference !== this.lastPopperReference) {\n this.popper.current.state.elements.reference = this.lastPopperReference;\n // for update\n this.popper.current.setOptions({});\n }\n }\n if (!visible && component === 'popper') {\n const { timeout } = this.asProps;\n const latency = Array.isArray(timeout) ? timeout[1] : timeout;\n setTimeout(() => {\n this.ignoreTriggerFocus = false;\n }, latency + 20);\n }\n }, 0);\n });\n if (\n component === 'popper' &&\n !visible &&\n ['onClick', 'onBlur', 'onKeyDown'].includes(action)\n ) {\n this.ignoreTriggerFocus = true;\n }\n };\n\n handlerChangeVisibleWithTimer = (visible: boolean, e: React.SyntheticEvent, cb: () => void) => {\n const { timeout, disabled } = this.asProps;\n if (typeof disabled === 'boolean' && disabled && visible) return;\n const handlers = this.handlers;\n\n const timeoutConfig = typeof timeout === 'number' ? [timeout, timeout] : timeout!;\n const latency = visible ? timeoutConfig[0] : timeoutConfig[1];\n clearTimeout(this.timer);\n this.timer = window.setTimeout(() => {\n handlers.visible(visible, e);\n }, latency);\n cb();\n };\n\n getTriggerProps() {\n const { visible, interaction, disableEnforceFocus, explicitTriggerSet } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'trigger',\n Boolean(visible),\n );\n return {\n ref: explicitTriggerSet ? undefined : this.createTriggerRef,\n active: visible,\n interaction,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown, 'trigger'),\n disableEnforceFocus,\n popperRef: this.popperRef,\n };\n }\n\n getPopperProps() {\n const {\n visible,\n disablePortal,\n interaction,\n placement,\n duration,\n animationsDisabled,\n disableEnforceFocus,\n } = this.asProps;\n // @ts-ignore\n const { onKeyDown, ...interactionProps } = this.handlersFromInteraction(\n interaction,\n 'popper',\n Boolean(visible),\n );\n\n return {\n ref: this.createPopperRef,\n triggerRef: this.triggerRef,\n visible,\n interaction,\n disablePortal,\n ...interactionProps,\n onKeyDown: this.bindHandlerKeyDown(onKeyDown, 'popper'),\n placement,\n duration,\n animationsDisabled,\n popper: this.popper,\n disableEnforceFocus,\n handleFocusOut: this.handlePopperFocusOut,\n onClick: this.handlePopperClick,\n };\n }\n\n handlePopperFocusOut = (event: React.SyntheticEvent) => {\n if (this.asProps.focusLoop) return;\n if (\n this.triggerRef.current &&\n event.target instanceof HTMLElement &&\n hasParent(event.target, this.triggerRef.current)\n )\n return;\n\n this.bindHandlerChangeVisibleWithTimer(false, 'popper', 'onBlur')(event);\n };\n\n handlePopperClick = () => {\n this.lastPopperClick = Date.now();\n };\n\n setContext() {\n return {\n popper: this.popper,\n setTrigger: this.createTriggerRef,\n setPopper: this.createPopperRef,\n };\n }\n\n componentWillUnmount() {\n this.destroyPopper();\n }\n\n render() {\n const { Children, visible, root, onOutsideClick, excludeRefs = [] } = this.asProps;\n return (\n <>\n {visible\n ? (\n <OutsideClick\n root={root}\n excludeRefs={[this.triggerRef, this.popperRef, ...excludeRefs]}\n onOutsideClick={callAllEventHandlers(\n onOutsideClick,\n this.bindHandlerChangeVisibleWithTimer(false),\n )}\n />\n )\n : null}\n <Children />\n </>\n );\n }\n}\n\nfunction Trigger(props: PopperTriggerProps & IRootComponentProps & InnerPopperTriggerProps) {\n const STrigger = Root;\n const { Children, onKeyboardFocus, highlighted, active, popperRef, forwardRef } = props;\n\n const triggerRef = React.useRef<HTMLElement>();\n\n React.useEffect(() => {\n if (highlighted === true && onKeyboardFocus) {\n onKeyboardFocus({ currentTarget: triggerRef.current });\n }\n }, [highlighted]);\n\n const activeRef = React.useRef(active);\n activeRef.current = active;\n React.useEffect(() => {\n if (!active) return;\n return () => {\n setTimeout(() => {\n if (activeRef.current) return;\n if (!isFocusInside(popperRef.current) && document.activeElement !== document.body) return;\n if (!lastInteraction.isKeyboard()) return;\n\n if (triggerRef.current) {\n setFocus(triggerRef.current);\n }\n }, 1);\n };\n }, [active]);\n\n return (\n <>\n <STrigger\n render={Box}\n inline\n aria-haspopup={true}\n ref={forkRef(triggerRef, forwardRef!)}\n onBlur={props.onBlur}\n >\n <Children />\n </STrigger>\n </>\n );\n}\n\nfunction PopperPopper(props: PopperPopperProps & IRootComponentProps & InnerPopperPopperProps) {\n const SPopper = Root;\n const {\n Children,\n styles,\n visible,\n disablePortal,\n ignorePortalsStacking,\n disableEnforceFocus,\n triggerRef,\n autoFocus,\n controlsLength,\n duration,\n animationsDisabled,\n popper,\n focusMaster = false,\n handleFocusOut,\n role,\n zIndex: providedZIndex,\n nodeToMount,\n } = props;\n const ref = React.useRef<HTMLElement>(null);\n const zIndex = useZIndexStacking('z-index-popper');\n\n // https://github.com/facebook/react/issues/11387\n const stopPropagation = React.useCallback((event: React.SyntheticEvent) => {\n event.stopPropagation();\n }, []);\n const propagateFocusLockSyntheticEvent = React.useCallback((event: React.SyntheticEvent) => {\n event.stopPropagation();\n // @ts-ignore\n ref.current?.dispatchEvent(makeFocusLockSyntheticEvent(event));\n }, []);\n\n const [portalMounted, setPortalMounted] = React.useState(disablePortal);\n useFocusLock(\n ref,\n autoFocus ?? false,\n triggerRef,\n !visible || disableEnforceFocus || !portalMounted,\n focusMaster,\n handleFocusOut,\n );\n\n useContextTheme(ref, visible);\n\n const updatePopperEveryFrame = useUpdatePopperEveryFrame(popper);\n const handleAnimationStart = React.useCallback(\n (duration?: number) => {\n if (duration && duration > 0) {\n updatePopperEveryFrame(Date.now() + Math.min(duration, 2000));\n }\n },\n [updatePopperEveryFrame],\n );\n const handleAnimationEnd = React.useCallback(() => {\n popper.current?.update();\n }, []);\n const animationCtx = React.useContext(animationContext);\n React.useEffect(() => {\n if (!ignorePortalsStacking) return;\n if (!animationCtx) return;\n const unsubscribeAnimationStart = animationCtx.onAnimationStart(handleAnimationStart);\n const unsubscribeAnimationEnd = animationCtx.onAnimationEnd(handleAnimationEnd);\n return () => {\n unsubscribeAnimationStart();\n unsubscribeAnimationEnd();\n };\n }, [animationCtx, ignorePortalsStacking]);\n\n React.useEffect(() => {\n if (role === 'dialog' && visible && process.env.NODE_ENV !== 'production') {\n const hasTitle = (node: HTMLElement) => {\n if (node.hasAttribute('aria-label')) return true;\n if (node.hasAttribute('aria-labelledby')) return true;\n if (node.hasAttribute('title')) return true;\n\n return false;\n };\n\n logger.warn(\n ref.current && !hasTitle(ref.current),\n `'title' or 'aria-label' or 'aria-labelledby' are required props for popper with role dialog`,\n // @ts-ignore\n props['data-ui-name'] || PopperPopper.displayName,\n );\n }\n }, [visible, role]);\n\n return sstyled(styles)(\n <Portal\n disablePortal={disablePortal}\n ignorePortalsStacking={ignorePortalsStacking}\n onMount={setPortalMounted}\n nodeToMount={nodeToMount}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <ZIndexStackingContextProvider designToken='z-index-popper'>\n <SPopper\n render={Scale}\n animationsDisabled={animationsDisabled}\n visible={visible}\n duration={[duration, duration / 2]}\n ref={ref}\n onClick={stopPropagation}\n onContextMenu={stopPropagation}\n onDoubleClick={stopPropagation}\n onDrag={stopPropagation}\n onDragEnd={stopPropagation}\n onDragEnter={stopPropagation}\n onDragExit={stopPropagation}\n onDragLeave={stopPropagation}\n onDragOver={stopPropagation}\n onDragStart={stopPropagation}\n onDrop={stopPropagation}\n onMouseDown={stopPropagation}\n onMouseMove={stopPropagation}\n onMouseOver={stopPropagation}\n onMouseOut={stopPropagation}\n onMouseUp={stopPropagation}\n onKeyDown={propagateFocusLockSyntheticEvent}\n onKeyPress={stopPropagation}\n onKeyUp={stopPropagation}\n onFocus={stopPropagation}\n onBlur={propagateFocusLockSyntheticEvent}\n onChange={stopPropagation}\n onInput={stopPropagation}\n onInvalid={stopPropagation}\n onReset={stopPropagation}\n onSubmit={stopPropagation}\n use:zIndex={providedZIndex ?? zIndex}\n >\n <PortalProvider value={ref}>\n <Children />\n </PortalProvider>\n </SPopper>\n </ZIndexStackingContextProvider>\n </NeighborLocation>\n </Portal>,\n );\n}\n\nexport const Popper = createComponent(PopperRoot, {\n Trigger,\n Popper: PopperPopper,\n}) as typeof PopperType;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -95,6 +95,14 @@ class ScrollBarRoot extends _core.Component {
|
|
|
95
95
|
(0, _defineProperty2.default)(this, "calculate", () => {
|
|
96
96
|
if (!this.$container) return;
|
|
97
97
|
const visibleScroll = this.calculateVisibleScroll();
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
Safari retains GPU-composited layers after DOM removal.
|
|
101
|
+
Resetting transform before unmount prevents ghost rendering artifacts.
|
|
102
|
+
*/
|
|
103
|
+
if (!visibleScroll && this.$slider) {
|
|
104
|
+
this.$slider.style.transform = 'none';
|
|
105
|
+
}
|
|
98
106
|
this.setState({
|
|
99
107
|
visibleScroll
|
|
100
108
|
}, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollBar.js","names":["_core","require","_contextEnhance","_interopRequireDefault","_react","_flexBox","style","sstyled","insert","hideScrollBarsFromScreenReadersContext","exports","React","createContext","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","toString","setAreaValue","ScrollBarRoot","Component","constructor","args","_defineProperty2","default","width","height","x","y","left","top","pageX","pageY","visibleScroll","domNode","$bar","orientation","getOrientation","horizontalBarRef","verticalBarRef","asProps","current","node","$slider","calculateVisibleScroll","setState","sliderStyle","calculateSliderStyle","kefBar","calculateKefBar","kefScroll","calculateKefScroll","handleScroll","transform","e","preventDefault","_scroll","calculateScrollByDiff","_mouse","document","removeEventListener","handleMouseMoveDocument","handleMouseUpDocument","handleSelectStartDocument","stopPropagation","addEventListener","pageXOffset","pageYOffset","window","getBoundingClientRect","calculateScrollByClick","container","horizontal","vertical","calculateOrientation","clientWidthBar","clientHeightBar","calculateDimensions","visibleSize","totalSize","ratio","min","round","max","position","windowOffset","mouseOffset","barPage","scroll","oldMouseOffset","oldScroll","offsetMouse","undefined","subscribe","$node","calculate","unsubscribe","getSliderProps","ref","refSlider","onMouseDown","handleMouseDownSlider","componentDidMount","componentDidUpdate","prevProps","props","componentWillUnmount","render","_ref","_ref3","SScrollBar","Box","styles","uid","hideFromScreenReaders","state","leftOffset","rightOffset","topOffset","bottomOffset","offsetSum","right","bottom","createElement","cn","assignProps","refBar","handleMouseDownBar","contextEnhance","createRef","children","ScrollBar","Slider","_ref2","arguments[0]","_ref4","SSlider","onDragStart","createComponent"],"sources":["../../../../src/components/scroll-area/ScrollBar.tsx"],"sourcesContent":["import { createComponent, sstyled, Component, Root } from '@semcore/core';\nimport contextEnhance from '@semcore/core/lib/utils/enhances/contextEnhance';\nimport React from 'react';\n\nimport { Box } from '../flex-box';\nimport type { ScrollBar as ScrollBarType, ScrollBarProps } from './ScrollBar.types';\nimport style from './style/scroll-bar.shadow.css';\n\nexport const hideScrollBarsFromScreenReadersContext = React.createContext(false);\n\nexport const DEFAULT_SLIDER_SIZE = 50;\n\n// updating DOM directly to avoid react dom rerendering and reconciliation\nconst setAriaValues = (\n $container?: Element | null,\n $horizontalBar?: Element | null,\n $verticalBar?: Element | null,\n) => {\n if (!$container || !($horizontalBar || $verticalBar)) return;\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n $container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n if ($horizontalBar) {\n $horizontalBar.setAttribute('aria-valuenow', Math.floor(scrollLeft).toString());\n $horizontalBar.setAttribute('aria-valuemax', maxScrollRight.toString());\n }\n if ($verticalBar) {\n $verticalBar.setAttribute('aria-valuenow', Math.floor(scrollTop).toString());\n $verticalBar.setAttribute('aria-valuemax', maxScrollBottom.toString());\n }\n};\n\ntype State = {\n visibleScroll: boolean;\n};\n\nclass ScrollBarRoot extends Component<ScrollBarProps, typeof ScrollBarRoot.enhance, {}, { container: React.RefObject<HTMLElement> | null }, State> {\n static displayName = 'Bar';\n\n static style = style;\n static enhance = [\n contextEnhance(hideScrollBarsFromScreenReadersContext, 'hideFromScreenReaders'),\n ] as const;\n\n static defaultProps = () => {\n return {\n container: React.createRef<HTMLElement | null>(),\n children: <ScrollBar.Slider />,\n };\n };\n\n $bar: HTMLElement | null = null;\n $slider: HTMLElement | null = null;\n\n sliderStyle = { width: DEFAULT_SLIDER_SIZE, height: DEFAULT_SLIDER_SIZE };\n\n kefScroll = { x: 0, y: 0 };\n kefBar = { x: 0, y: 0 };\n\n _scroll = { left: 0, top: 0 };\n _mouse = { pageX: 0, pageY: 0 };\n\n state: State = {\n visibleScroll: false,\n };\n\n get $container(): Element | null {\n return this.asProps.container.current;\n }\n\n refBar = (domNode: HTMLElement | null) => {\n if (domNode !== null) {\n this.$bar = domNode;\n const orientation = this.getOrientation();\n const { horizontalBarRef, verticalBarRef } = this.asProps;\n if (orientation === 'horizontal' && horizontalBarRef) horizontalBarRef.current = domNode;\n if (orientation === 'vertical' && verticalBarRef) verticalBarRef.current = domNode;\n\n setAriaValues(this.$container, horizontalBarRef?.current, verticalBarRef?.current);\n }\n };\n\n refSlider = (node: HTMLElement | null) => {\n if (node) {\n this.$slider = node;\n }\n };\n\n calculateVisibleScroll() {\n const orientation = this.getOrientation();\n const [horizontal, vertical] = this.calculateOrientation();\n\n if (horizontal && orientation === 'horizontal') {\n return true;\n } else if (vertical && orientation === 'vertical') {\n return true;\n }\n\n return false;\n }\n\n calculateKefScroll() {\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } = this.$container!;\n const { clientWidth: clientWidthBar, clientHeight: clientHeightBar } = this.$bar!;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidthBar - width) / (scrollWidth - clientWidth),\n y: (clientHeightBar - height) / (scrollHeight - clientHeight),\n };\n }\n\n calculateKefBar() {\n const { clientWidth, clientHeight } = this.$bar!;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidth - width) / clientWidth,\n y: (clientHeight - height) / clientHeight,\n };\n }\n\n calculateSliderStyle() {\n const { clientWidth, clientHeight } = this.$bar!;\n const { scrollWidth, scrollHeight } = this.$container!;\n\n const calculateDimensions = (visibleSize: number, totalSize: number) => {\n const ratio = Math.min(visibleSize / totalSize, 1); // percentage of visible area\n return Math.round(visibleSize * ratio);\n };\n\n return {\n width: Math.max(calculateDimensions(clientWidth, scrollWidth), DEFAULT_SLIDER_SIZE),\n height: Math.max(calculateDimensions(clientHeight, scrollHeight), DEFAULT_SLIDER_SIZE),\n };\n }\n\n calculateScrollByClick(\n position: number,\n windowOffset: number,\n mouseOffset: number,\n kefBar: number,\n kefScroll: number,\n ) {\n // bar coordinates relative to the page\n const barPage = position + windowOffset;\n\n // click coordinates - bar coordinates * proportion\n const scroll = (mouseOffset - barPage) * kefBar;\n\n return scroll / kefScroll;\n }\n\n calculateScrollByDiff(\n mouseOffset: number,\n oldMouseOffset: number,\n oldScroll: number,\n kefScroll: number,\n ) {\n // mouse offset (new coordinates - old coordinates)\n const offsetMouse = mouseOffset - oldMouseOffset;\n\n // old scroll position * scroll ratio + offset\n const scroll = oldScroll * kefScroll + offsetMouse;\n\n return scroll / kefScroll;\n }\n\n calculateOrientation() {\n if (!this.$container) return [false, false];\n const { scrollWidth, scrollHeight, clientWidth, clientHeight } = this.$container;\n return [scrollWidth > clientWidth, scrollHeight > clientHeight];\n }\n\n calculate = () => {\n if (!this.$container) return;\n\n const visibleScroll = this.calculateVisibleScroll();\n\n this.setState({ visibleScroll }, () => {\n if (!this.$container || !this.$bar || !this.$slider) return;\n const orientation = this.getOrientation();\n\n this.sliderStyle = this.calculateSliderStyle();\n this.kefBar = this.calculateKefBar();\n this.kefScroll = this.calculateKefScroll();\n\n if (orientation === 'horizontal') {\n this.$slider.style.width = `${this.sliderStyle.width}px`;\n } else if (orientation === 'vertical') {\n this.$slider.style.height = `${this.sliderStyle.height}px`;\n }\n this.handleScroll();\n });\n };\n\n handleScroll = () => {\n if (!this.$container || !this.$slider) return;\n\n const { scrollTop, scrollLeft } = this.$container;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$slider.style.transform = `translateX(${scrollLeft * this.kefScroll.x}px)`;\n } else if (orientation === 'vertical') {\n this.$slider.style.transform = `translateY(${scrollTop * this.kefScroll.y}px)`;\n }\n };\n\n getOrientation() {\n if (this.asProps.orientation !== undefined) return this.asProps.orientation;\n const [horizontal, vertical] = this.calculateOrientation();\n if (vertical) return 'vertical';\n if (horizontal) return 'horizontal';\n }\n\n handleSelectStartDocument = (e: Event) => e.preventDefault();\n\n handleMouseMoveDocument = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n const { left, top } = this._scroll;\n const { x, y } = this.kefScroll;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal' && this.$container) {\n this.$container.scrollLeft = this.calculateScrollByDiff(pageX, this._mouse.pageX, left, x);\n } else if (orientation === 'vertical' && this.$container) {\n this.$container.scrollTop = this.calculateScrollByDiff(pageY, this._mouse.pageY, top, y);\n }\n };\n\n handleMouseUpDocument = () => {\n document.removeEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.removeEventListener('mouseup', this.handleMouseUpDocument, true);\n document.removeEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownSlider = (e: MouseEvent) => {\n // canceling the emergence of a real scroll\n e.stopPropagation();\n // save mouse coordinates (relative to the page)\n this._mouse = { pageX: e.pageX, pageY: e.pageY };\n // save the scroll of the container\n // TODO: what happens if the content increases while we scroll?\n const { scrollLeft, scrollTop } = this.$container!;\n this._scroll = { left: scrollLeft, top: scrollTop };\n\n document.addEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.addEventListener('mouseup', this.handleMouseUpDocument, true);\n document.addEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownBar = (e: MouseEvent) => {\n if (!this.$container) return;\n\n // cancellation of the ascent as in a real scroll\n e.stopPropagation();\n\n const { pageX, pageY } = e;\n const { pageXOffset, pageYOffset } = window;\n const { left, top } = this.$bar!.getBoundingClientRect();\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByClick(\n left,\n pageXOffset,\n pageX,\n this.kefBar.x,\n this.kefScroll.x,\n );\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByClick(\n top,\n pageYOffset,\n pageY,\n this.kefBar.y,\n this.kefScroll.y,\n );\n }\n };\n\n subscribe($node: Element | null) {\n if (!$node) return;\n $node.addEventListener('scroll', this.handleScroll);\n $node.addEventListener('calculate', this.calculate);\n }\n\n unsubscribe($node: Element | null) {\n if (!$node) return;\n $node.removeEventListener('scroll', this.handleScroll);\n $node.removeEventListener('calculate', this.calculate);\n }\n\n getSliderProps() {\n return {\n ref: this.refSlider,\n onMouseDown: this.handleMouseDownSlider,\n };\n }\n\n componentDidMount() {\n this.subscribe(this.$container);\n }\n\n componentDidUpdate(prevProps: ScrollBarProps) {\n if (prevProps.container !== this.props.container && prevProps.container === null) {\n this.subscribe(this.$container);\n }\n }\n\n componentWillUnmount() {\n this.unsubscribe(this.$container);\n }\n\n render() {\n const SScrollBar = Root;\n const { styles, uid, position, container, orientation, hideFromScreenReaders } = this.asProps;\n const { visibleScroll } = this.state;\n\n let { leftOffset, rightOffset, topOffset, bottomOffset } = this.asProps;\n\n if (!visibleScroll) {\n return null;\n }\n\n let offsetSum = 0;\n\n if (orientation === 'horizontal') {\n if (leftOffset) offsetSum += leftOffset;\n if (rightOffset) offsetSum += rightOffset;\n\n if (position === 'sticky' && container?.current) {\n const { left, right } = container.current.getBoundingClientRect();\n\n if (leftOffset) {\n leftOffset += left;\n }\n\n if (rightOffset) {\n rightOffset += right;\n }\n }\n }\n\n if (orientation === 'vertical') {\n if (topOffset) offsetSum += topOffset;\n if (bottomOffset) offsetSum += bottomOffset;\n\n if (position === 'sticky' && container?.current) {\n const { top, bottom } = container.current.getBoundingClientRect();\n\n if (topOffset) {\n topOffset += top;\n }\n\n if (bottomOffset) {\n bottomOffset += bottom;\n }\n }\n }\n\n return sstyled(styles)(\n <SScrollBar\n render={Box}\n left={orientation === 'horizontal' && leftOffset ? `${leftOffset}px` : undefined}\n right={orientation === 'horizontal' && rightOffset ? `${rightOffset}px` : undefined}\n top={orientation === 'vertical' && topOffset ? `${topOffset}px` : undefined}\n bottom={orientation === 'vertical' && bottomOffset ? `${bottomOffset}px` : undefined}\n offsetSum={`${offsetSum}px`}\n role={hideFromScreenReaders ? undefined : 'scrollbar'}\n aria-hidden={hideFromScreenReaders ? 'true' : undefined}\n ref={this.refBar}\n aria-valuemin={hideFromScreenReaders ? undefined : 0}\n aria-controls={hideFromScreenReaders ? undefined : `igc-${uid}-scroll-container`}\n aria-orientation={hideFromScreenReaders ? undefined : this.getOrientation()}\n onMouseDown={this.handleMouseDownBar}\n orientation={this.getOrientation()}\n />,\n );\n }\n}\n\nfunction Slider(props: ScrollBarProps) {\n const { styles } = props;\n const SSlider = Root;\n\n return sstyled(styles)(<SSlider render={Box} onDragStart={() => false} />);\n}\n\nexport const ScrollBar = createComponent(ScrollBarRoot, {\n Slider,\n}) as typeof ScrollBarType;\n\nexport { setAriaValues as setAreaValue };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ScrollBar.js","names":["_core","require","_contextEnhance","_interopRequireDefault","_react","_flexBox","style","sstyled","insert","hideScrollBarsFromScreenReadersContext","exports","React","createContext","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","toString","setAreaValue","ScrollBarRoot","Component","constructor","args","_defineProperty2","default","width","height","x","y","left","top","pageX","pageY","visibleScroll","domNode","$bar","orientation","getOrientation","horizontalBarRef","verticalBarRef","asProps","current","node","$slider","calculateVisibleScroll","transform","setState","sliderStyle","calculateSliderStyle","kefBar","calculateKefBar","kefScroll","calculateKefScroll","handleScroll","e","preventDefault","_scroll","calculateScrollByDiff","_mouse","document","removeEventListener","handleMouseMoveDocument","handleMouseUpDocument","handleSelectStartDocument","stopPropagation","addEventListener","pageXOffset","pageYOffset","window","getBoundingClientRect","calculateScrollByClick","container","horizontal","vertical","calculateOrientation","clientWidthBar","clientHeightBar","calculateDimensions","visibleSize","totalSize","ratio","min","round","max","position","windowOffset","mouseOffset","barPage","scroll","oldMouseOffset","oldScroll","offsetMouse","undefined","subscribe","$node","calculate","unsubscribe","getSliderProps","ref","refSlider","onMouseDown","handleMouseDownSlider","componentDidMount","componentDidUpdate","prevProps","props","componentWillUnmount","render","_ref","_ref3","SScrollBar","Box","styles","uid","hideFromScreenReaders","state","leftOffset","rightOffset","topOffset","bottomOffset","offsetSum","right","bottom","createElement","cn","assignProps","refBar","handleMouseDownBar","contextEnhance","createRef","children","ScrollBar","Slider","_ref2","arguments[0]","_ref4","SSlider","onDragStart","createComponent"],"sources":["../../../../src/components/scroll-area/ScrollBar.tsx"],"sourcesContent":["import { createComponent, sstyled, Component, Root } from '@semcore/core';\nimport contextEnhance from '@semcore/core/lib/utils/enhances/contextEnhance';\nimport React from 'react';\n\nimport { Box } from '../flex-box';\nimport type { ScrollBar as ScrollBarType, ScrollBarProps } from './ScrollBar.types';\nimport style from './style/scroll-bar.shadow.css';\n\nexport const hideScrollBarsFromScreenReadersContext = React.createContext(false);\n\nexport const DEFAULT_SLIDER_SIZE = 50;\n\n// updating DOM directly to avoid react dom rerendering and reconciliation\nconst setAriaValues = (\n $container?: Element | null,\n $horizontalBar?: Element | null,\n $verticalBar?: Element | null,\n) => {\n if (!$container || !($horizontalBar || $verticalBar)) return;\n const { scrollWidth, clientWidth, scrollHeight, clientHeight, scrollLeft, scrollTop } =\n $container;\n const maxScrollRight = scrollWidth - clientWidth;\n const maxScrollBottom = scrollHeight - clientHeight;\n if ($horizontalBar) {\n $horizontalBar.setAttribute('aria-valuenow', Math.floor(scrollLeft).toString());\n $horizontalBar.setAttribute('aria-valuemax', maxScrollRight.toString());\n }\n if ($verticalBar) {\n $verticalBar.setAttribute('aria-valuenow', Math.floor(scrollTop).toString());\n $verticalBar.setAttribute('aria-valuemax', maxScrollBottom.toString());\n }\n};\n\ntype State = {\n visibleScroll: boolean;\n};\n\nclass ScrollBarRoot extends Component<ScrollBarProps, typeof ScrollBarRoot.enhance, {}, { container: React.RefObject<HTMLElement> | null }, State> {\n static displayName = 'Bar';\n\n static style = style;\n static enhance = [\n contextEnhance(hideScrollBarsFromScreenReadersContext, 'hideFromScreenReaders'),\n ] as const;\n\n static defaultProps = () => {\n return {\n container: React.createRef<HTMLElement | null>(),\n children: <ScrollBar.Slider />,\n };\n };\n\n $bar: HTMLElement | null = null;\n $slider: HTMLElement | null = null;\n\n sliderStyle = { width: DEFAULT_SLIDER_SIZE, height: DEFAULT_SLIDER_SIZE };\n\n kefScroll = { x: 0, y: 0 };\n kefBar = { x: 0, y: 0 };\n\n _scroll = { left: 0, top: 0 };\n _mouse = { pageX: 0, pageY: 0 };\n\n state: State = {\n visibleScroll: false,\n };\n\n get $container(): Element | null {\n return this.asProps.container.current;\n }\n\n refBar = (domNode: HTMLElement | null) => {\n if (domNode !== null) {\n this.$bar = domNode;\n const orientation = this.getOrientation();\n const { horizontalBarRef, verticalBarRef } = this.asProps;\n if (orientation === 'horizontal' && horizontalBarRef) horizontalBarRef.current = domNode;\n if (orientation === 'vertical' && verticalBarRef) verticalBarRef.current = domNode;\n\n setAriaValues(this.$container, horizontalBarRef?.current, verticalBarRef?.current);\n }\n };\n\n refSlider = (node: HTMLElement | null) => {\n if (node) {\n this.$slider = node;\n }\n };\n\n calculateVisibleScroll() {\n const orientation = this.getOrientation();\n const [horizontal, vertical] = this.calculateOrientation();\n\n if (horizontal && orientation === 'horizontal') {\n return true;\n } else if (vertical && orientation === 'vertical') {\n return true;\n }\n\n return false;\n }\n\n calculateKefScroll() {\n const { clientWidth, clientHeight, scrollWidth, scrollHeight } = this.$container!;\n const { clientWidth: clientWidthBar, clientHeight: clientHeightBar } = this.$bar!;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidthBar - width) / (scrollWidth - clientWidth),\n y: (clientHeightBar - height) / (scrollHeight - clientHeight),\n };\n }\n\n calculateKefBar() {\n const { clientWidth, clientHeight } = this.$bar!;\n const { width, height } = this.sliderStyle;\n return {\n x: (clientWidth - width) / clientWidth,\n y: (clientHeight - height) / clientHeight,\n };\n }\n\n calculateSliderStyle() {\n const { clientWidth, clientHeight } = this.$bar!;\n const { scrollWidth, scrollHeight } = this.$container!;\n\n const calculateDimensions = (visibleSize: number, totalSize: number) => {\n const ratio = Math.min(visibleSize / totalSize, 1); // percentage of visible area\n return Math.round(visibleSize * ratio);\n };\n\n return {\n width: Math.max(calculateDimensions(clientWidth, scrollWidth), DEFAULT_SLIDER_SIZE),\n height: Math.max(calculateDimensions(clientHeight, scrollHeight), DEFAULT_SLIDER_SIZE),\n };\n }\n\n calculateScrollByClick(\n position: number,\n windowOffset: number,\n mouseOffset: number,\n kefBar: number,\n kefScroll: number,\n ) {\n // bar coordinates relative to the page\n const barPage = position + windowOffset;\n\n // click coordinates - bar coordinates * proportion\n const scroll = (mouseOffset - barPage) * kefBar;\n\n return scroll / kefScroll;\n }\n\n calculateScrollByDiff(\n mouseOffset: number,\n oldMouseOffset: number,\n oldScroll: number,\n kefScroll: number,\n ) {\n // mouse offset (new coordinates - old coordinates)\n const offsetMouse = mouseOffset - oldMouseOffset;\n\n // old scroll position * scroll ratio + offset\n const scroll = oldScroll * kefScroll + offsetMouse;\n\n return scroll / kefScroll;\n }\n\n calculateOrientation() {\n if (!this.$container) return [false, false];\n const { scrollWidth, scrollHeight, clientWidth, clientHeight } = this.$container;\n return [scrollWidth > clientWidth, scrollHeight > clientHeight];\n }\n\n calculate = () => {\n if (!this.$container) return;\n\n const visibleScroll = this.calculateVisibleScroll();\n\n /*\n Safari retains GPU-composited layers after DOM removal.\n Resetting transform before unmount prevents ghost rendering artifacts.\n */\n if (!visibleScroll && this.$slider) {\n this.$slider.style.transform = 'none';\n }\n\n this.setState({ visibleScroll }, () => {\n if (!this.$container || !this.$bar || !this.$slider) return;\n const orientation = this.getOrientation();\n\n this.sliderStyle = this.calculateSliderStyle();\n this.kefBar = this.calculateKefBar();\n this.kefScroll = this.calculateKefScroll();\n\n if (orientation === 'horizontal') {\n this.$slider.style.width = `${this.sliderStyle.width}px`;\n } else if (orientation === 'vertical') {\n this.$slider.style.height = `${this.sliderStyle.height}px`;\n }\n this.handleScroll();\n });\n };\n\n handleScroll = () => {\n if (!this.$container || !this.$slider) return;\n\n const { scrollTop, scrollLeft } = this.$container;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$slider.style.transform = `translateX(${scrollLeft * this.kefScroll.x}px)`;\n } else if (orientation === 'vertical') {\n this.$slider.style.transform = `translateY(${scrollTop * this.kefScroll.y}px)`;\n }\n };\n\n getOrientation() {\n if (this.asProps.orientation !== undefined) return this.asProps.orientation;\n const [horizontal, vertical] = this.calculateOrientation();\n if (vertical) return 'vertical';\n if (horizontal) return 'horizontal';\n }\n\n handleSelectStartDocument = (e: Event) => e.preventDefault();\n\n handleMouseMoveDocument = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n const { left, top } = this._scroll;\n const { x, y } = this.kefScroll;\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal' && this.$container) {\n this.$container.scrollLeft = this.calculateScrollByDiff(pageX, this._mouse.pageX, left, x);\n } else if (orientation === 'vertical' && this.$container) {\n this.$container.scrollTop = this.calculateScrollByDiff(pageY, this._mouse.pageY, top, y);\n }\n };\n\n handleMouseUpDocument = () => {\n document.removeEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.removeEventListener('mouseup', this.handleMouseUpDocument, true);\n document.removeEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownSlider = (e: MouseEvent) => {\n // canceling the emergence of a real scroll\n e.stopPropagation();\n // save mouse coordinates (relative to the page)\n this._mouse = { pageX: e.pageX, pageY: e.pageY };\n // save the scroll of the container\n // TODO: what happens if the content increases while we scroll?\n const { scrollLeft, scrollTop } = this.$container!;\n this._scroll = { left: scrollLeft, top: scrollTop };\n\n document.addEventListener('mousemove', this.handleMouseMoveDocument, true);\n document.addEventListener('mouseup', this.handleMouseUpDocument, true);\n document.addEventListener('selectstart', this.handleSelectStartDocument, true);\n };\n\n handleMouseDownBar = (e: MouseEvent) => {\n if (!this.$container) return;\n\n // cancellation of the ascent as in a real scroll\n e.stopPropagation();\n\n const { pageX, pageY } = e;\n const { pageXOffset, pageYOffset } = window;\n const { left, top } = this.$bar!.getBoundingClientRect();\n const orientation = this.getOrientation();\n\n if (orientation === 'horizontal') {\n this.$container.scrollLeft = this.calculateScrollByClick(\n left,\n pageXOffset,\n pageX,\n this.kefBar.x,\n this.kefScroll.x,\n );\n } else if (orientation === 'vertical') {\n this.$container.scrollTop = this.calculateScrollByClick(\n top,\n pageYOffset,\n pageY,\n this.kefBar.y,\n this.kefScroll.y,\n );\n }\n };\n\n subscribe($node: Element | null) {\n if (!$node) return;\n $node.addEventListener('scroll', this.handleScroll);\n $node.addEventListener('calculate', this.calculate);\n }\n\n unsubscribe($node: Element | null) {\n if (!$node) return;\n $node.removeEventListener('scroll', this.handleScroll);\n $node.removeEventListener('calculate', this.calculate);\n }\n\n getSliderProps() {\n return {\n ref: this.refSlider,\n onMouseDown: this.handleMouseDownSlider,\n };\n }\n\n componentDidMount() {\n this.subscribe(this.$container);\n }\n\n componentDidUpdate(prevProps: ScrollBarProps) {\n if (prevProps.container !== this.props.container && prevProps.container === null) {\n this.subscribe(this.$container);\n }\n }\n\n componentWillUnmount() {\n this.unsubscribe(this.$container);\n }\n\n render() {\n const SScrollBar = Root;\n const { styles, uid, position, container, orientation, hideFromScreenReaders } = this.asProps;\n const { visibleScroll } = this.state;\n\n let { leftOffset, rightOffset, topOffset, bottomOffset } = this.asProps;\n\n if (!visibleScroll) {\n return null;\n }\n\n let offsetSum = 0;\n\n if (orientation === 'horizontal') {\n if (leftOffset) offsetSum += leftOffset;\n if (rightOffset) offsetSum += rightOffset;\n\n if (position === 'sticky' && container?.current) {\n const { left, right } = container.current.getBoundingClientRect();\n\n if (leftOffset) {\n leftOffset += left;\n }\n\n if (rightOffset) {\n rightOffset += right;\n }\n }\n }\n\n if (orientation === 'vertical') {\n if (topOffset) offsetSum += topOffset;\n if (bottomOffset) offsetSum += bottomOffset;\n\n if (position === 'sticky' && container?.current) {\n const { top, bottom } = container.current.getBoundingClientRect();\n\n if (topOffset) {\n topOffset += top;\n }\n\n if (bottomOffset) {\n bottomOffset += bottom;\n }\n }\n }\n\n return sstyled(styles)(\n <SScrollBar\n render={Box}\n left={orientation === 'horizontal' && leftOffset ? `${leftOffset}px` : undefined}\n right={orientation === 'horizontal' && rightOffset ? `${rightOffset}px` : undefined}\n top={orientation === 'vertical' && topOffset ? `${topOffset}px` : undefined}\n bottom={orientation === 'vertical' && bottomOffset ? `${bottomOffset}px` : undefined}\n offsetSum={`${offsetSum}px`}\n role={hideFromScreenReaders ? undefined : 'scrollbar'}\n aria-hidden={hideFromScreenReaders ? 'true' : undefined}\n ref={this.refBar}\n aria-valuemin={hideFromScreenReaders ? undefined : 0}\n aria-controls={hideFromScreenReaders ? undefined : `igc-${uid}-scroll-container`}\n aria-orientation={hideFromScreenReaders ? undefined : this.getOrientation()}\n onMouseDown={this.handleMouseDownBar}\n orientation={this.getOrientation()}\n />,\n );\n }\n}\n\nfunction Slider(props: ScrollBarProps) {\n const { styles } = props;\n const SSlider = Root;\n\n return sstyled(styles)(<SSlider render={Box} onDragStart={() => false} />);\n}\n\nexport const ScrollBar = createComponent(ScrollBarRoot, {\n Slider,\n}) as typeof ScrollBarType;\n\nexport { setAriaValues as setAreaValue };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,8 @@ import canUseDOM from '@semcore/core/lib/utils/canUseDOM';
|
|
|
8
8
|
import { hasParent } from '@semcore/core/lib/utils/hasParent';
|
|
9
9
|
import logger from '@semcore/core/lib/utils/logger';
|
|
10
10
|
import pick from '@semcore/core/lib/utils/pick';
|
|
11
|
-
import {
|
|
11
|
+
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
12
|
+
import setRef from '@semcore/core/lib/utils/setRef';
|
|
12
13
|
import { useContextTheme } from '@semcore/core/lib/utils/ThemeProvider';
|
|
13
14
|
import uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';
|
|
14
15
|
import { useFocusLock, isFocusInside, setFocus, makeFocusLockSyntheticEvent } from '@semcore/core/lib/utils/use/useFocusLock';
|