@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.
Files changed (45) hide show
  1. package/CHANGELOG.md +6 -2
  2. package/lib/cjs/components/popper/Popper.js +3 -2
  3. package/lib/cjs/components/popper/Popper.js.map +1 -1
  4. package/lib/cjs/components/scroll-area/ScrollBar.js +8 -0
  5. package/lib/cjs/components/scroll-area/ScrollBar.js.map +1 -1
  6. package/lib/es6/components/popper/Popper.js +2 -1
  7. package/lib/es6/components/popper/Popper.js.map +1 -1
  8. package/lib/es6/components/scroll-area/ScrollBar.js +8 -0
  9. package/lib/es6/components/scroll-area/ScrollBar.js.map +1 -1
  10. package/lib/esm/components/animation/Animation.mjs +2 -2
  11. package/lib/esm/components/animation/Collapse.mjs +1 -2
  12. package/lib/esm/components/animation/FadeInOut.mjs +1 -2
  13. package/lib/esm/components/animation/Scale.mjs +1 -2
  14. package/lib/esm/components/animation/Slide.mjs +1 -2
  15. package/lib/esm/components/animation/Transform.mjs +1 -2
  16. package/lib/esm/components/animation/index.mjs +15 -0
  17. package/lib/esm/components/ellipsis/Ellipsis.mjs +6 -6
  18. package/lib/esm/components/ellipsis/EllipsisManager.mjs +20 -24
  19. package/lib/esm/components/ellipsis/Queue.mjs +2 -3
  20. package/lib/esm/components/ellipsis/index.mjs +4 -0
  21. package/lib/esm/components/flex-box/Box/useBox.mjs +0 -1
  22. package/lib/esm/components/flex-box/Flex/useFlex.mjs +0 -1
  23. package/lib/esm/components/flex-box/index.mjs +14 -0
  24. package/lib/esm/components/flex-box/invalid-state-box/InvalidStateBox.mjs +4 -3
  25. package/lib/esm/components/flex-box/screen-reader-only-box/ScreenReaderOnlyBox.mjs +4 -3
  26. package/lib/esm/components/grid/Grid.mjs +2 -2
  27. package/lib/esm/components/hint/Hint.mjs +6 -7
  28. package/lib/esm/components/hint/index.mjs +4 -0
  29. package/lib/esm/components/neighbor-location/NeighborLocation.mjs +2 -2
  30. package/lib/esm/components/neighbor-location/index.mjs +6 -0
  31. package/lib/esm/components/outside-click/OutsideClick.mjs +9 -9
  32. package/lib/esm/components/outside-click/index.mjs +4 -0
  33. package/lib/esm/components/popper/Popper.mjs +28 -31
  34. package/lib/esm/components/popper/arrowOffset.mjs +1 -2
  35. package/lib/esm/components/popper/createPopper.mjs +1 -1
  36. package/lib/esm/components/popper/index.mjs +5 -0
  37. package/lib/esm/components/popper/modifiers/applyMaxSize.mjs +1 -1
  38. package/lib/esm/components/popper/modifiers/cursorAnchoring.mjs +2 -3
  39. package/lib/esm/components/portal/Portal.mjs +2 -2
  40. package/lib/esm/components/portal/index.mjs +6 -0
  41. package/lib/esm/components/scroll-area/ScrollArea.mjs +13 -16
  42. package/lib/esm/components/scroll-area/ScrollBar.mjs +8 -5
  43. package/lib/esm/components/scroll-area/index.mjs +7 -0
  44. package/lib/esm/index.mjs +33 -24
  45. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.js","names":["createComponent","Component","Root","sstyled","lastInteraction","callAllEventHandlers","canUseDOM","hasParent","logger","pick","setRef","forkRef","useContextTheme","uniqueIDEnhancement","useFocusLock","isFocusInside","setFocus","makeFocusLockSyntheticEvent","cssVariableEnhance","useZIndexStacking","ZIndexStackingContextProvider","React","Scale","animationContext","Box","NeighborLocation","OutsideClick","Portal","PortalProvider","createPopper","style","_sstyled","insert","isObject","obj","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","useRef","handleAnimationFrame","useCallback","until","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","isInputTriggerTag","tag","toLowerCase","includes","displayName","render","mouseMoveListenerAdded","lastMouseMove","MODIFIERS_OPTIONS","PopperRoot","constructor","props","_defineProperty","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","placement","modifiers","strategy","onFirstUpdate","other","asProps","optionsModifiers","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","cursorAnchoring","mouseEnterCursorPositionRef","popperMargin","enabled","margin","popperCtx","modifiersMerge","concat","observer","observe","disablePortal","parent","parentElement","traversingLimit","document","body","component","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","makeKeyDownHandler","action","target","HTMLElement","relatedTarget","focused","blurred","interaction","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","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","defaultVisible","arrow","padding","variable","fallback","v","Number","parseInt","toString","prop","Trigger","_ref","arguments[0]","STrigger","onKeyboardFocus","highlighted","forwardRef","activeRef","activeElement","_assignProps","onBlur","PopperPopper","_ref2","_ref3","SPopper","styles","ignorePortalsStacking","autoFocus","controlsLength","focusMaster","role","zIndex","providedZIndex","nodeToMount","propagateFocusLockSyntheticEvent","dispatchEvent","portalMounted","setPortalMounted","useState","updatePopperEveryFrame","handleAnimationStart","Math","min","handleAnimationEnd","animationCtx","useContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","process","env","NODE_ENV","hasTitle","hasAttribute","warn","cn","_assignProps2","Popper"],"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":["createComponent","Component","Root","sstyled","lastInteraction","callAllEventHandlers","canUseDOM","hasParent","logger","pick","forkRef","setRef","useContextTheme","uniqueIDEnhancement","useFocusLock","isFocusInside","setFocus","makeFocusLockSyntheticEvent","cssVariableEnhance","useZIndexStacking","ZIndexStackingContextProvider","React","Scale","animationContext","Box","NeighborLocation","OutsideClick","Portal","PortalProvider","createPopper","style","_sstyled","insert","isObject","obj","Array","isArray","someArray","arr1","arr2","filter","i","indexOf","useUpdatePopperEveryFrame","popperRef","nextAnimationFrameRef","useRef","handleAnimationFrame","useCallback","until","Date","now","current","update","requestAnimationFrame","useEffect","cancelAnimationFrame","isInputTriggerTag","tag","toLowerCase","includes","displayName","render","mouseMoveListenerAdded","lastMouseMove","MODIFIERS_OPTIONS","PopperRoot","constructor","props","_defineProperty","click","trigger","popper","hover","focus","none","createRef","ref","triggerRef","placement","modifiers","strategy","onFirstUpdate","other","asProps","optionsModifiers","modifiersFallback","offset","modifiersOptions","name","undefined","map","options","push","gpuAcceleration","cursorAnchoring","mouseEnterCursorPositionRef","popperMargin","enabled","margin","popperCtx","modifiersMerge","concat","observer","observe","disablePortal","parent","parentElement","traversingLimit","document","body","component","e","visible","key","stopPropagation","bindHandlerChangeVisibleWithTimer","onKeyDown","makeKeyDownHandler","action","target","HTMLElement","relatedTarget","focused","blurred","interaction","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","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","defaultVisible","arrow","padding","variable","fallback","v","Number","parseInt","toString","prop","Trigger","_ref","arguments[0]","STrigger","onKeyboardFocus","highlighted","forwardRef","activeRef","activeElement","_assignProps","onBlur","PopperPopper","_ref2","_ref3","SPopper","styles","ignorePortalsStacking","autoFocus","controlsLength","focusMaster","role","zIndex","providedZIndex","nodeToMount","propagateFocusLockSyntheticEvent","dispatchEvent","portalMounted","setPortalMounted","useState","updatePopperEveryFrame","handleAnimationStart","Math","min","handleAnimationEnd","animationCtx","useContext","unsubscribeAnimationStart","onAnimationStart","unsubscribeAnimationEnd","onAnimationEnd","process","env","NODE_ENV","hasTitle","hasAttribute","warn","cn","_assignProps2","Popper"],"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":[]}
@@ -90,6 +90,14 @@ class ScrollBarRoot extends Component {
90
90
  _defineProperty(this, "calculate", () => {
91
91
  if (!this.$container) return;
92
92
  const visibleScroll = this.calculateVisibleScroll();
93
+
94
+ /*
95
+ Safari retains GPU-composited layers after DOM removal.
96
+ Resetting transform before unmount prevents ghost rendering artifacts.
97
+ */
98
+ if (!visibleScroll && this.$slider) {
99
+ this.$slider.style.transform = 'none';
100
+ }
93
101
  this.setState({
94
102
  visibleScroll
95
103
  }, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBar.js","names":["createComponent","sstyled","Component","Root","contextEnhance","React","Box","style","_sstyled","insert","hideScrollBarsFromScreenReadersContext","createContext","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","toString","ScrollBarRoot","constructor","args","_defineProperty","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","styles","uid","hideFromScreenReaders","state","leftOffset","rightOffset","topOffset","bottomOffset","offsetSum","right","bottom","createElement","cn","_assignProps","refBar","handleMouseDownBar","createRef","children","ScrollBar","Slider","_ref2","arguments[0]","_ref4","SSlider","_assignProps2","onDragStart","setAreaValue"],"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":["createComponent","sstyled","Component","Root","contextEnhance","React","Box","style","_sstyled","insert","hideScrollBarsFromScreenReadersContext","createContext","DEFAULT_SLIDER_SIZE","setAriaValues","$container","$horizontalBar","$verticalBar","scrollWidth","clientWidth","scrollHeight","clientHeight","scrollLeft","scrollTop","maxScrollRight","maxScrollBottom","setAttribute","Math","floor","toString","ScrollBarRoot","constructor","args","_defineProperty","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","styles","uid","hideFromScreenReaders","state","leftOffset","rightOffset","topOffset","bottomOffset","offsetSum","right","bottom","createElement","cn","_assignProps","refBar","handleMouseDownBar","createRef","children","ScrollBar","Slider","_ref2","arguments[0]","_ref4","SSlider","_assignProps2","onDragStart","setAreaValue"],"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":";;;;AAAA,SAASA,eAAe,EAAEC,OAAO,EAAEC,SAAS,EAAEC,IAAI,QAAQ,eAAe;AACzE,OAAOC,cAAc,MAAM,iDAAiD;AAC5E,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,GAAG,QAAQ,aAAa;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAIlC,OAAO,MAAMC,sCAAsC,gBAAGL,KAAK,CAACM,aAAa,CAAC,KAAK,CAAC;AAEhF,OAAO,MAAMC,mBAAmB,GAAG,EAAE;;AAErC;AACA,MAAMC,aAAa,GAAGA,CACpBC,UAA2B,EAC3BC,cAA+B,EAC/BC,YAA6B,KAC1B;EACH,IAAI,CAACF,UAAU,IAAI,EAAEC,cAAc,IAAIC,YAAY,CAAC,EAAE;EACtD,MAAM;IAAEC,WAAW;IAAEC,WAAW;IAAEC,YAAY;IAAEC,YAAY;IAAEC,UAAU;IAAEC;EAAU,CAAC,GACnFR,UAAU;EACZ,MAAMS,cAAc,GAAGN,WAAW,GAAGC,WAAW;EAChD,MAAMM,eAAe,GAAGL,YAAY,GAAGC,YAAY;EACnD,IAAIL,cAAc,EAAE;IAClBA,cAAc,CAACU,YAAY,CAAC,eAAe,EAAEC,IAAI,CAACC,KAAK,CAACN,UAAU,CAAC,CAACO,QAAQ,CAAC,CAAC,CAAC;IAC/Eb,cAAc,CAACU,YAAY,CAAC,eAAe,EAAEF,cAAc,CAACK,QAAQ,CAAC,CAAC,CAAC;EACzE;EACA,IAAIZ,YAAY,EAAE;IAChBA,YAAY,CAACS,YAAY,CAAC,eAAe,EAAEC,IAAI,CAACC,KAAK,CAACL,SAAS,CAAC,CAACM,QAAQ,CAAC,CAAC,CAAC;IAC5EZ,YAAY,CAACS,YAAY,CAAC,eAAe,EAAED,eAAe,CAACI,QAAQ,CAAC,CAAC,CAAC;EACxE;AACF,CAAC;AAMD,MAAMC,aAAa,SAAS3B,SAAS,CAA8G;EAAA4B,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,eAetH,IAAI;IAAAA,eAAA,kBACD,IAAI;IAAAA,eAAA,sBAEpB;MAAEC,KAAK,EAAErB,mBAAmB;MAAEsB,MAAM,EAAEtB;IAAoB,CAAC;IAAAoB,eAAA,oBAE7D;MAAEG,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAAJ,eAAA,iBACjB;MAAEG,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAAJ,eAAA,kBAEb;MAAEK,IAAI,EAAE,CAAC;MAAEC,GAAG,EAAE;IAAE,CAAC;IAAAN,eAAA,iBACpB;MAAEO,KAAK,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC;IAAAR,eAAA,gBAEhB;MACbS,aAAa,EAAE;IACjB,CAAC;IAAAT,eAAA,iBAMSU,OAA2B,IAAK;MACxC,IAAIA,OAAO,KAAK,IAAI,EAAE;QACpB,IAAI,CAACC,IAAI,GAAGD,OAAO;QACnB,MAAME,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;QACzC,MAAM;UAAEC,gBAAgB;UAAEC;QAAe,CAAC,GAAG,IAAI,CAACC,OAAO;QACzD,IAAIJ,WAAW,KAAK,YAAY,IAAIE,gBAAgB,EAAEA,gBAAgB,CAACG,OAAO,GAAGP,OAAO;QACxF,IAAIE,WAAW,KAAK,UAAU,IAAIG,cAAc,EAAEA,cAAc,CAACE,OAAO,GAAGP,OAAO;QAElF7B,aAAa,CAAC,IAAI,CAACC,UAAU,EAAEgC,gBAAgB,EAAEG,OAAO,EAAEF,cAAc,EAAEE,OAAO,CAAC;MACpF;IACF,CAAC;IAAAjB,eAAA,oBAEYkB,IAAwB,IAAK;MACxC,IAAIA,IAAI,EAAE;QACR,IAAI,CAACC,OAAO,GAAGD,IAAI;MACrB;IACF,CAAC;IAAAlB,eAAA,oBAsFW,MAAM;MAChB,IAAI,CAAC,IAAI,CAAClB,UAAU,EAAE;MAEtB,MAAM2B,aAAa,GAAG,IAAI,CAACW,sBAAsB,CAAC,CAAC;;MAEnD;AACJ;AACA;AACA;MACI,IAAI,CAACX,aAAa,IAAI,IAAI,CAACU,OAAO,EAAE;QAClC,IAAI,CAACA,OAAO,CAAC5C,KAAK,CAAC8C,SAAS,GAAG,MAAM;MACvC;MAEA,IAAI,CAACC,QAAQ,CAAC;QAAEb;MAAc,CAAC,EAAE,MAAM;QACrC,IAAI,CAAC,IAAI,CAAC3B,UAAU,IAAI,CAAC,IAAI,CAAC6B,IAAI,IAAI,CAAC,IAAI,CAACQ,OAAO,EAAE;QACrD,MAAMP,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;QAEzC,IAAI,CAACU,WAAW,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC;QAC9C,IAAI,CAACC,MAAM,GAAG,IAAI,CAACC,eAAe,CAAC,CAAC;QACpC,IAAI,CAACC,SAAS,GAAG,IAAI,CAACC,kBAAkB,CAAC,CAAC;QAE1C,IAAIhB,WAAW,KAAK,YAAY,EAAE;UAChC,IAAI,CAACO,OAAO,CAAC5C,KAAK,CAAC0B,KAAK,GAAG,GAAG,IAAI,CAACsB,WAAW,CAACtB,KAAK,IAAI;QAC1D,CAAC,MAAM,IAAIW,WAAW,KAAK,UAAU,EAAE;UACrC,IAAI,CAACO,OAAO,CAAC5C,KAAK,CAAC2B,MAAM,GAAG,GAAG,IAAI,CAACqB,WAAW,CAACrB,MAAM,IAAI;QAC5D;QACA,IAAI,CAAC2B,YAAY,CAAC,CAAC;MACrB,CAAC,CAAC;IACJ,CAAC;IAAA7B,eAAA,uBAEc,MAAM;MACnB,IAAI,CAAC,IAAI,CAAClB,UAAU,IAAI,CAAC,IAAI,CAACqC,OAAO,EAAE;MAEvC,MAAM;QAAE7B,SAAS;QAAED;MAAW,CAAC,GAAG,IAAI,CAACP,UAAU;MACjD,MAAM8B,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;MAEzC,IAAID,WAAW,KAAK,YAAY,EAAE;QAChC,IAAI,CAACO,OAAO,CAAC5C,KAAK,CAAC8C,SAAS,GAAG,cAAchC,UAAU,GAAG,IAAI,CAACsC,SAAS,CAACxB,CAAC,KAAK;MACjF,CAAC,MAAM,IAAIS,WAAW,KAAK,UAAU,EAAE;QACrC,IAAI,CAACO,OAAO,CAAC5C,KAAK,CAAC8C,SAAS,GAAG,cAAc/B,SAAS,GAAG,IAAI,CAACqC,SAAS,CAACvB,CAAC,KAAK;MAChF;IACF,CAAC;IAAAJ,eAAA,oCAS4B8B,CAAQ,IAAKA,CAAC,CAACC,cAAc,CAAC,CAAC;IAAA/B,eAAA,kCAEjC8B,CAAa,IAAK;MAC3C,MAAM;QAAEvB,KAAK;QAAEC;MAAM,CAAC,GAAGsB,CAAC;MAC1B,MAAM;QAAEzB,IAAI;QAAEC;MAAI,CAAC,GAAG,IAAI,CAAC0B,OAAO;MAClC,MAAM;QAAE7B,CAAC;QAAEC;MAAE,CAAC,GAAG,IAAI,CAACuB,SAAS;MAC/B,MAAMf,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;MAEzC,IAAID,WAAW,KAAK,YAAY,IAAI,IAAI,CAAC9B,UAAU,EAAE;QACnD,IAAI,CAACA,UAAU,CAACO,UAAU,GAAG,IAAI,CAAC4C,qBAAqB,CAAC1B,KAAK,EAAE,IAAI,CAAC2B,MAAM,CAAC3B,KAAK,EAAEF,IAAI,EAAEF,CAAC,CAAC;MAC5F,CAAC,MAAM,IAAIS,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC9B,UAAU,EAAE;QACxD,IAAI,CAACA,UAAU,CAACQ,SAAS,GAAG,IAAI,CAAC2C,qBAAqB,CAACzB,KAAK,EAAE,IAAI,CAAC0B,MAAM,CAAC1B,KAAK,EAAEF,GAAG,EAAEF,CAAC,CAAC;MAC1F;IACF,CAAC;IAAAJ,eAAA,gCAEuB,MAAM;MAC5BmC,QAAQ,CAACC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACC,uBAAuB,EAAE,IAAI,CAAC;MAC7EF,QAAQ,CAACC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACE,qBAAqB,EAAE,IAAI,CAAC;MACzEH,QAAQ,CAACC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAACG,yBAAyB,EAAE,IAAI,CAAC;IACnF,CAAC;IAAAvC,eAAA,gCAEwB8B,CAAa,IAAK;MACzC;MACAA,CAAC,CAACU,eAAe,CAAC,CAAC;MACnB;MACA,IAAI,CAACN,MAAM,GAAG;QAAE3B,KAAK,EAAEuB,CAAC,CAACvB,KAAK;QAAEC,KAAK,EAAEsB,CAAC,CAACtB;MAAM,CAAC;MAChD;MACA;MACA,MAAM;QAAEnB,UAAU;QAAEC;MAAU,CAAC,GAAG,IAAI,CAACR,UAAW;MAClD,IAAI,CAACkD,OAAO,GAAG;QAAE3B,IAAI,EAAEhB,UAAU;QAAEiB,GAAG,EAAEhB;MAAU,CAAC;MAEnD6C,QAAQ,CAACM,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACJ,uBAAuB,EAAE,IAAI,CAAC;MAC1EF,QAAQ,CAACM,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACH,qBAAqB,EAAE,IAAI,CAAC;MACtEH,QAAQ,CAACM,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAACF,yBAAyB,EAAE,IAAI,CAAC;IAChF,CAAC;IAAAvC,eAAA,6BAEqB8B,CAAa,IAAK;MACtC,IAAI,CAAC,IAAI,CAAChD,UAAU,EAAE;;MAEtB;MACAgD,CAAC,CAACU,eAAe,CAAC,CAAC;MAEnB,MAAM;QAAEjC,KAAK;QAAEC;MAAM,CAAC,GAAGsB,CAAC;MAC1B,MAAM;QAAEY,WAAW;QAAEC;MAAY,CAAC,GAAGC,MAAM;MAC3C,MAAM;QAAEvC,IAAI;QAAEC;MAAI,CAAC,GAAG,IAAI,CAACK,IAAI,CAAEkC,qBAAqB,CAAC,CAAC;MACxD,MAAMjC,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;MAEzC,IAAID,WAAW,KAAK,YAAY,EAAE;QAChC,IAAI,CAAC9B,UAAU,CAACO,UAAU,GAAG,IAAI,CAACyD,sBAAsB,CACtDzC,IAAI,EACJqC,WAAW,EACXnC,KAAK,EACL,IAAI,CAACkB,MAAM,CAACtB,CAAC,EACb,IAAI,CAACwB,SAAS,CAACxB,CACjB,CAAC;MACH,CAAC,MAAM,IAAIS,WAAW,KAAK,UAAU,EAAE;QACrC,IAAI,CAAC9B,UAAU,CAACQ,SAAS,GAAG,IAAI,CAACwD,sBAAsB,CACrDxC,GAAG,EACHqC,WAAW,EACXnC,KAAK,EACL,IAAI,CAACiB,MAAM,CAACrB,CAAC,EACb,IAAI,CAACuB,SAAS,CAACvB,CACjB,CAAC;MACH;IACF,CAAC;EAAA;EA5ND,IAAItB,UAAUA,CAAA,EAAmB;IAC/B,OAAO,IAAI,CAACkC,OAAO,CAAC+B,SAAS,CAAC9B,OAAO;EACvC;EAoBAG,sBAAsBA,CAAA,EAAG;IACvB,MAAMR,WAAW,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;IACzC,MAAM,CAACmC,UAAU,EAAEC,QAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAE1D,IAAIF,UAAU,IAAIpC,WAAW,KAAK,YAAY,EAAE;MAC9C,OAAO,IAAI;IACb,CAAC,MAAM,IAAIqC,QAAQ,IAAIrC,WAAW,KAAK,UAAU,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,OAAO,KAAK;EACd;EAEAgB,kBAAkBA,CAAA,EAAG;IACnB,MAAM;MAAE1C,WAAW;MAAEE,YAAY;MAAEH,WAAW;MAAEE;IAAa,CAAC,GAAG,IAAI,CAACL,UAAW;IACjF,MAAM;MAAEI,WAAW,EAAEiE,cAAc;MAAE/D,YAAY,EAAEgE;IAAgB,CAAC,GAAG,IAAI,CAACzC,IAAK;IACjF,MAAM;MAAEV,KAAK;MAAEC;IAAO,CAAC,GAAG,IAAI,CAACqB,WAAW;IAC1C,OAAO;MACLpB,CAAC,EAAE,CAACgD,cAAc,GAAGlD,KAAK,KAAKhB,WAAW,GAAGC,WAAW,CAAC;MACzDkB,CAAC,EAAE,CAACgD,eAAe,GAAGlD,MAAM,KAAKf,YAAY,GAAGC,YAAY;IAC9D,CAAC;EACH;EAEAsC,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAExC,WAAW;MAAEE;IAAa,CAAC,GAAG,IAAI,CAACuB,IAAK;IAChD,MAAM;MAAEV,KAAK;MAAEC;IAAO,CAAC,GAAG,IAAI,CAACqB,WAAW;IAC1C,OAAO;MACLpB,CAAC,EAAE,CAACjB,WAAW,GAAGe,KAAK,IAAIf,WAAW;MACtCkB,CAAC,EAAE,CAAChB,YAAY,GAAGc,MAAM,IAAId;IAC/B,CAAC;EACH;EAEAoC,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MAAEtC,WAAW;MAAEE;IAAa,CAAC,GAAG,IAAI,CAACuB,IAAK;IAChD,MAAM;MAAE1B,WAAW;MAAEE;IAAa,CAAC,GAAG,IAAI,CAACL,UAAW;IAEtD,MAAMuE,mBAAmB,GAAGA,CAACC,WAAmB,EAAEC,SAAiB,KAAK;MACtE,MAAMC,KAAK,GAAG9D,IAAI,CAAC+D,GAAG,CAACH,WAAW,GAAGC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;MACpD,OAAO7D,IAAI,CAACgE,KAAK,CAACJ,WAAW,GAAGE,KAAK,CAAC;IACxC,CAAC;IAED,OAAO;MACLvD,KAAK,EAAEP,IAAI,CAACiE,GAAG,CAACN,mBAAmB,CAACnE,WAAW,EAAED,WAAW,CAAC,EAAEL,mBAAmB,CAAC;MACnFsB,MAAM,EAAER,IAAI,CAACiE,GAAG,CAACN,mBAAmB,CAACjE,YAAY,EAAED,YAAY,CAAC,EAAEP,mBAAmB;IACvF,CAAC;EACH;EAEAkE,sBAAsBA,CACpBc,QAAgB,EAChBC,YAAoB,EACpBC,WAAmB,EACnBrC,MAAc,EACdE,SAAiB,EACjB;IACA;IACA,MAAMoC,OAAO,GAAGH,QAAQ,GAAGC,YAAY;;IAEvC;IACA,MAAMG,MAAM,GAAG,CAACF,WAAW,GAAGC,OAAO,IAAItC,MAAM;IAE/C,OAAOuC,MAAM,GAAGrC,SAAS;EAC3B;EAEAM,qBAAqBA,CACnB6B,WAAmB,EACnBG,cAAsB,EACtBC,SAAiB,EACjBvC,SAAiB,EACjB;IACA;IACA,MAAMwC,WAAW,GAAGL,WAAW,GAAGG,cAAc;;IAEhD;IACA,MAAMD,MAAM,GAAGE,SAAS,GAAGvC,SAAS,GAAGwC,WAAW;IAElD,OAAOH,MAAM,GAAGrC,SAAS;EAC3B;EAEAuB,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAAC,IAAI,CAACpE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3C,MAAM;MAAEG,WAAW;MAAEE,YAAY;MAAED,WAAW;MAAEE;IAAa,CAAC,GAAG,IAAI,CAACN,UAAU;IAChF,OAAO,CAACG,WAAW,GAAGC,WAAW,EAAEC,YAAY,GAAGC,YAAY,CAAC;EACjE;EA6CAyB,cAAcA,CAAA,EAAG;IACf,IAAI,IAAI,CAACG,OAAO,CAACJ,WAAW,KAAKwD,SAAS,EAAE,OAAO,IAAI,CAACpD,OAAO,CAACJ,WAAW;IAC3E,MAAM,CAACoC,UAAU,EAAEC,QAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC1D,IAAID,QAAQ,EAAE,OAAO,UAAU;IAC/B,IAAID,UAAU,EAAE,OAAO,YAAY;EACrC;EAoEAqB,SAASA,CAACC,KAAqB,EAAE;IAC/B,IAAI,CAACA,KAAK,EAAE;IACZA,KAAK,CAAC7B,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACZ,YAAY,CAAC;IACnDyC,KAAK,CAAC7B,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC8B,SAAS,CAAC;EACrD;EAEAC,WAAWA,CAACF,KAAqB,EAAE;IACjC,IAAI,CAACA,KAAK,EAAE;IACZA,KAAK,CAAClC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACP,YAAY,CAAC;IACtDyC,KAAK,CAAClC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACmC,SAAS,CAAC;EACxD;EAEAE,cAAcA,CAAA,EAAG;IACf,OAAO;MACLC,GAAG,EAAE,IAAI,CAACC,SAAS;MACnBC,WAAW,EAAE,IAAI,CAACC;IACpB,CAAC;EACH;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACT,SAAS,CAAC,IAAI,CAACvF,UAAU,CAAC;EACjC;EAEAiG,kBAAkBA,CAACC,SAAyB,EAAE;IAC5C,IAAIA,SAAS,CAACjC,SAAS,KAAK,IAAI,CAACkC,KAAK,CAAClC,SAAS,IAAIiC,SAAS,CAACjC,SAAS,KAAK,IAAI,EAAE;MAChF,IAAI,CAACsB,SAAS,CAAC,IAAI,CAACvF,UAAU,CAAC;IACjC;EACF;EAEAoG,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACV,WAAW,CAAC,IAAI,CAAC1F,UAAU,CAAC;EACnC;EAEAqG,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAApE,OAAA;MAAAqE,KAAA;IACP,MAAMC,UAAU,GAgDJhH,GAAG;IA/Cf,MAAM;MAAEiH,MAAM;MAAEC,GAAG;MAAE5B,QAAQ;MAAEb,SAAS;MAAEnC,WAAW;MAAE6E;IAAsB,CAAC,GAAG,IAAI,CAACzE,OAAO;IAC7F,MAAM;MAAEP;IAAc,CAAC,GAAG,IAAI,CAACiF,KAAK;IAEpC,IAAI;MAAEC,UAAU;MAAEC,WAAW;MAAEC,SAAS;MAAEC;IAAa,CAAC,GAAG,IAAI,CAAC9E,OAAO;IAEvE,IAAI,CAACP,aAAa,EAAE;MAClB,OAAO,IAAI;IACb;IAEA,IAAIsF,SAAS,GAAG,CAAC;IAEjB,IAAInF,WAAW,KAAK,YAAY,EAAE;MAChC,IAAI+E,UAAU,EAAEI,SAAS,IAAIJ,UAAU;MACvC,IAAIC,WAAW,EAAEG,SAAS,IAAIH,WAAW;MAEzC,IAAIhC,QAAQ,KAAK,QAAQ,IAAIb,SAAS,EAAE9B,OAAO,EAAE;QAC/C,MAAM;UAAEZ,IAAI;UAAE2F;QAAM,CAAC,GAAGjD,SAAS,CAAC9B,OAAO,CAAC4B,qBAAqB,CAAC,CAAC;QAEjE,IAAI8C,UAAU,EAAE;UACdA,UAAU,IAAItF,IAAI;QACpB;QAEA,IAAIuF,WAAW,EAAE;UACfA,WAAW,IAAII,KAAK;QACtB;MACF;IACF;IAEA,IAAIpF,WAAW,KAAK,UAAU,EAAE;MAC9B,IAAIiF,SAAS,EAAEE,SAAS,IAAIF,SAAS;MACrC,IAAIC,YAAY,EAAEC,SAAS,IAAID,YAAY;MAE3C,IAAIlC,QAAQ,KAAK,QAAQ,IAAIb,SAAS,EAAE9B,OAAO,EAAE;QAC/C,MAAM;UAAEX,GAAG;UAAE2F;QAAO,CAAC,GAAGlD,SAAS,CAAC9B,OAAO,CAAC4B,qBAAqB,CAAC,CAAC;QAEjE,IAAIgD,SAAS,EAAE;UACbA,SAAS,IAAIvF,GAAG;QAClB;QAEA,IAAIwF,YAAY,EAAE;UAChBA,YAAY,IAAIG,MAAM;QACxB;MACF;IACF;IAEA,OAAAZ,KAAA,GAAOpH,OAAO,CAACsH,MAAM,CAAC,eACpBlH,KAAA,CAAA6H,aAAA,CAACZ,UAAU,EAAAD,KAAA,CAAAc,EAAA;MAAA,GAAAC,YAAA;QAAA,QAEHxF,WAAW,KAAK,YAAY,IAAI+E,UAAU,GAAG,GAAGA,UAAU,IAAI,GAAGvB,SAAS;QAAA,SACzExD,WAAW,KAAK,YAAY,IAAIgF,WAAW,GAAG,GAAGA,WAAW,IAAI,GAAGxB,SAAS;QAAA,OAC9ExD,WAAW,KAAK,UAAU,IAAIiF,SAAS,GAAG,GAAGA,SAAS,IAAI,GAAGzB,SAAS;QAAA,UACnExD,WAAW,KAAK,UAAU,IAAIkF,YAAY,GAAG,GAAGA,YAAY,IAAI,GAAG1B,SAAS;QAAA,aACzE,GAAG2B,SAAS,IAAI;QAAA,QACrBN,qBAAqB,GAAGrB,SAAS,GAAG,WAAW;QAAA,eACxCqB,qBAAqB,GAAG,MAAM,GAAGrB,SAAS;QAAA,OAClD,IAAI,CAACiC,MAAM;QAAA,iBACDZ,qBAAqB,GAAGrB,SAAS,GAAG,CAAC;QAAA,iBACrCqB,qBAAqB,GAAGrB,SAAS,GAAG,OAAOoB,GAAG,mBAAmB;QAAA,oBAC9DC,qBAAqB,GAAGrB,SAAS,GAAG,IAAI,CAACvD,cAAc,CAAC,CAAC;QAAA,eAC9D,IAAI,CAACyF,kBAAkB;QAAA,eACvB,IAAI,CAACzF,cAAc,CAAC;MAAC,GAAAuE,IAAA;IAAA,EACnC,CAAC;EAEN;AACF;AAACpF,eAAA,CA/VKH,aAAa,iBACI,KAAK;AAAAG,eAAA,CADtBH,aAAa,WAGFtB,KAAK;AAAAyB,eAAA,CAHhBH,aAAa,aAIA,CACfzB,cAAc,CAACM,sCAAsC,EAAE,uBAAuB,CAAC,CAChF;AAAAsB,eAAA,CANGH,aAAa,kBAQK,MAAM;EAC1B,OAAO;IACLkD,SAAS,eAAE1E,KAAK,CAACkI,SAAS,CAAqB,CAAC;IAChDC,QAAQ,eAAEnI,KAAA,CAAA6H,aAAA,CAACO,SAAS,CAACC,MAAM,MAAE;EAC/B,CAAC;AACH,CAAC;AAoVH,SAASA,MAAMA,CAACzB,KAAqB,EAAE;EAAA,IAAA0B,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACrC,MAAM;IAAEtB;EAAO,CAAC,GAAGN,KAAK;EACxB,MAAM6B,OAAO,GAE2BxI,GAAG;EAA3C,OAAAuI,KAAA,GAAO5I,OAAO,CAACsH,MAAM,CAAC,eAAClH,KAAA,CAAA6H,aAAA,CAACY,OAAO,EAAAD,KAAA,CAAAV,EAAA;IAAA,GAAAY,aAAA;MAAA,eAA2BC,CAAA,KAAM;IAAK,GAAAL,KAAA;EAAA,EAAG,CAAC;AAC3E;AAEA,OAAO,MAAMF,SAAS,GAAGzI,eAAe,CAAC6B,aAAa,EAAE;EACtD6G;AACF,CAAC,CAAyB;AAE1B,SAAS7H,aAAa,IAAIoI,YAAY","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { createComponent, Component, sstyled, assignProps } from "@semcore/core";
2
+ import { sstyled, Component, assignProps, createComponent } from "@semcore/core";
3
3
  import contextEnhance from "@semcore/core/lib/utils/enhances/contextEnhance";
4
4
  import React from "react";
5
+ import "../flex-box/index.mjs";
5
6
  import Box from "../flex-box/Box/index.mjs";
6
- /*!__reshadow-styles__:"./style/animate.shadow.css"*/
7
7
  const style = (
8
8
  /*__reshadow_css_start__*/
9
9
  (sstyled.insert(
@@ -1,9 +1,8 @@
1
- import { createBaseComponent, sstyled } from "@semcore/core";
1
+ import { sstyled, createBaseComponent } from "@semcore/core";
2
2
  import { useForkRef } from "@semcore/core/lib/utils/ref";
3
3
  import useEnhancedEffect from "@semcore/core/lib/utils/use/useEnhancedEffect";
4
4
  import React from "react";
5
5
  import Animation from "./Animation.mjs";
6
- /*!__reshadow-styles__:"./style/keyframes.shadow.css"*/
7
6
  const style = (
8
7
  /*__reshadow_css_start__*/
9
8
  (sstyled.insert(
@@ -1,7 +1,6 @@
1
- import { createBaseComponent, sstyled } from "@semcore/core";
1
+ import { sstyled, createBaseComponent } from "@semcore/core";
2
2
  import React from "react";
3
3
  import Animation from "./Animation.mjs";
4
- /*!__reshadow-styles__:"./style/keyframes.shadow.css"*/
5
4
  const style = (
6
5
  /*__reshadow_css_start__*/
7
6
  (sstyled.insert(
@@ -1,8 +1,7 @@
1
- import { createBaseComponent, sstyled } from "@semcore/core";
1
+ import { sstyled, createBaseComponent } from "@semcore/core";
2
2
  import { useForkRef } from "@semcore/core/lib/utils/ref";
3
3
  import React from "react";
4
4
  import Animation from "./Animation.mjs";
5
- /*!__reshadow-styles__:"./style/keyframes.shadow.css"*/
6
5
  const style = (
7
6
  /*__reshadow_css_start__*/
8
7
  (sstyled.insert(
@@ -1,7 +1,6 @@
1
- import { createBaseComponent, sstyled } from "@semcore/core";
1
+ import { sstyled, createBaseComponent } from "@semcore/core";
2
2
  import React from "react";
3
3
  import Animation from "./Animation.mjs";
4
- /*!__reshadow-styles__:"./style/keyframes.shadow.css"*/
5
4
  const style = (
6
5
  /*__reshadow_css_start__*/
7
6
  (sstyled.insert(
@@ -1,7 +1,6 @@
1
- import { createBaseComponent, sstyled } from "@semcore/core";
1
+ import { sstyled, createBaseComponent } from "@semcore/core";
2
2
  import React from "react";
3
3
  import Animation from "./Animation.mjs";
4
- /*!__reshadow-styles__:"./style/keyframes.shadow.css"*/
5
4
  const style = (
6
5
  /*__reshadow_css_start__*/
7
6
  (sstyled.insert(
@@ -0,0 +1,15 @@
1
+ import { default as default2, animationContext } from "./Animation.mjs";
2
+ import { default as default3 } from "./Transform.mjs";
3
+ import { default as default4 } from "./FadeInOut.mjs";
4
+ import { default as default5 } from "./Collapse.mjs";
5
+ import { default as default6 } from "./Scale.mjs";
6
+ import { default as default7 } from "./Slide.mjs";
7
+ export {
8
+ default2 as Animation,
9
+ default5 as Collapse,
10
+ default4 as FadeInOut,
11
+ default6 as Scale,
12
+ default7 as Slide,
13
+ default3 as Transform,
14
+ animationContext
15
+ };
@@ -54,9 +54,9 @@ class Ellipsis extends EventEmitter {
54
54
  return this.settings.observeChildrenMutations;
55
55
  }
56
56
  getTruncateSize(options) {
57
- const text = (options == null ? void 0 : options.text) ?? this.textContent;
58
- const containerWidth = (options == null ? void 0 : options.containerWidth) ?? this.getContainerWidth();
59
- const font = (options == null ? void 0 : options.font) ?? this.getFont();
57
+ const text = options?.text ?? this.textContent;
58
+ const containerWidth = options?.containerWidth ?? this.getContainerWidth();
59
+ const font = options?.font ?? this.getFont();
60
60
  let keep = 0;
61
61
  let left = 0;
62
62
  let right = text.length;
@@ -65,7 +65,7 @@ class Ellipsis extends EventEmitter {
65
65
  const mid = Math.floor((left + right) / 2);
66
66
  keep = Math.max(0, Math.ceil(mid / 2));
67
67
  let testText;
68
- if ((options == null ? void 0 : options.direction) === void 0) {
68
+ if (options?.direction === void 0) {
69
69
  testText = text.slice(0, keep) + "..." + text.slice(-keep);
70
70
  } else {
71
71
  testText = options.direction === "start" ? text.slice(0, keep) : text.slice(-keep);
@@ -233,8 +233,8 @@ class Ellipsis extends EventEmitter {
233
233
  return width;
234
234
  }
235
235
  calculatePaddings(computedStyle) {
236
- const paddingLeft = Number((computedStyle == null ? void 0 : computedStyle.paddingLeft.replace("px", "")) ?? "0");
237
- const paddingRight = Number((computedStyle == null ? void 0 : computedStyle.paddingRight.replace("px", "")) ?? "0");
236
+ const paddingLeft = Number(computedStyle?.paddingLeft.replace("px", "") ?? "0");
237
+ const paddingRight = Number(computedStyle?.paddingRight.replace("px", "") ?? "0");
238
238
  const paddings = paddingLeft + paddingRight;
239
239
  return paddings;
240
240
  }