{"version":3,"file":"Scrollbar-BZDIo6FU.js","sources":["../../../node_modules/seemly/es/dom/get-precise-event-target.js","../../../node_modules/seemly/es/misc/index.js","../../../node_modules/naive-ui/es/_utils/vue/wrapper.mjs","../../../node_modules/css-render/esm/exists.js","../../../node_modules/vooks/es/use-is-ios.js","../../../node_modules/naive-ui/es/_utils/composable/use-reactivated.mjs","../../../node_modules/naive-ui/es/_mixins/use-rtl.mjs","../../../node_modules/naive-ui/es/_internal/scrollbar/styles/light.mjs","../../../node_modules/naive-ui/es/_styles/transitions/fade-in.cssr.mjs","../../../node_modules/naive-ui/es/_internal/scrollbar/src/styles/index.cssr.mjs","../../../node_modules/naive-ui/es/_internal/scrollbar/src/Scrollbar.mjs"],"sourcesContent":["export function getPreciseEventTarget(event) {\n return event.composedPath()[0] || null;\n}\n","export function createId(length = 8) {\n return Math.random()\n .toString(16)\n .slice(2, 2 + length);\n}\nexport function repeat(count, v) {\n const ret = [];\n for (let i = 0; i < count; ++i) {\n ret.push(v);\n }\n return ret;\n}\nfunction indexMap(count, createValue) {\n const ret = [];\n if (!createValue) {\n for (let i = 0; i < count; ++i) {\n ret.push(i);\n }\n return ret;\n }\n for (let i = 0; i < count; ++i) {\n ret.push(createValue(i));\n }\n return ret;\n}\nexport { indexMap };\nexport async function sleep(ms) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n","import { defineComponent } from 'vue';\nexport const Wrapper = defineComponent({\n render() {\n var _a, _b;\n return (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n});","import { queryElement } from './utils';\nexport function exists(id, ssr) {\n if (id === undefined)\n return false;\n if (ssr) {\n const { context: { ids } } = ssr;\n return ids.has(id);\n }\n return queryElement(id) !== null;\n}\n","export const isIos = (typeof window === 'undefined'\n ? false\n : /iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n !window.MSStream;\nexport default function useIsIos() {\n return isIos;\n}\n","import { onActivated, onDeactivated } from 'vue';\nexport function useReactivated(callback) {\n const isDeactivatedRef = {\n isDeactivated: false\n };\n let activateStateInitialized = false;\n onActivated(() => {\n isDeactivatedRef.isDeactivated = false;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n return;\n }\n callback();\n });\n onDeactivated(() => {\n isDeactivatedRef.isDeactivated = true;\n if (!activateStateInitialized) {\n activateStateInitialized = true;\n }\n });\n return isDeactivatedRef;\n}","import { onBeforeMount, watchEffect, computed } from 'vue';\nimport { exists } from 'css-render';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { cssrAnchorMetaName } from \"./common.mjs\";\nexport function useRtl(mountId, rtlStateRef, clsPrefixRef) {\n if (!rtlStateRef) return undefined;\n const ssrAdapter = useSsrAdapter();\n const componentRtlStateRef = computed(() => {\n const {\n value: rtlState\n } = rtlStateRef;\n if (!rtlState) {\n return undefined;\n }\n const componentRtlState = rtlState[mountId];\n if (!componentRtlState) {\n return undefined;\n }\n return componentRtlState;\n });\n const mountStyle = () => {\n watchEffect(() => {\n const {\n value: clsPrefix\n } = clsPrefixRef;\n const id = `${clsPrefix}${mountId}Rtl`;\n // if it already exists, we only need to watch clsPrefix, although in most\n // of time it's unnecessary... However we can at least listen less\n // handlers, which is great.\n if (exists(id, ssrAdapter)) return;\n const {\n value: componentRtlState\n } = componentRtlStateRef;\n if (!componentRtlState) return;\n componentRtlState.style.mount({\n id,\n head: true,\n anchorMetaName: cssrAnchorMetaName,\n props: {\n bPrefix: clsPrefix ? `.${clsPrefix}-` : undefined\n },\n ssr: ssrAdapter\n });\n });\n };\n if (ssrAdapter) {\n mountStyle();\n } else {\n onBeforeMount(mountStyle);\n }\n return componentRtlStateRef;\n}","import { commonLight } from \"../../../_styles/common/index.mjs\";\nexport const self = vars => {\n const {\n scrollbarColor,\n scrollbarColorHover\n } = vars;\n return {\n color: scrollbarColor,\n colorHover: scrollbarColorHover\n };\n};\nconst scrollbarLight = {\n name: 'Scrollbar',\n common: commonLight,\n self\n};\nexport default scrollbarLight;","import { c } from \"../../_utils/cssr/index.mjs\";\nimport commonVariables from \"../common/_common.mjs\";\nconst {\n cubicBezierEaseInOut\n} = commonVariables;\nexport function fadeInTransition({\n name = 'fade-in',\n enterDuration = '0.2s',\n leaveDuration = '0.2s',\n enterCubicBezier = cubicBezierEaseInOut,\n leaveCubicBezier = cubicBezierEaseInOut\n} = {}) {\n return [c(`&.${name}-transition-enter-active`, {\n transition: `all ${enterDuration} ${enterCubicBezier}!important`\n }), c(`&.${name}-transition-leave-active`, {\n transition: `all ${leaveDuration} ${leaveCubicBezier}!important`\n }), c(`&.${name}-transition-enter-from, &.${name}-transition-leave-to`, {\n opacity: 0\n }), c(`&.${name}-transition-leave-from, &.${name}-transition-enter-to`, {\n opacity: 1\n })];\n}","import { cB, c, cM, cE } from \"../../../../_utils/cssr/index.mjs\";\nimport { fadeInTransition } from \"../../../../_styles/transitions/fade-in.cssr.mjs\";\n// vars:\n// --n-scrollbar-bezier\n// --n-scrollbar-color\n// --n-scrollbar-color-hover\n// --n-scrollbar-width\n// --n-scrollbar-height\n// --n-scrollbar-border-radius\nexport default cB('scrollbar', `\n overflow: hidden;\n position: relative;\n z-index: auto;\n height: 100%;\n width: 100%;\n`, [c('>', [cB('scrollbar-container', `\n width: 100%;\n overflow: scroll;\n height: 100%;\n min-height: inherit;\n max-height: inherit;\n scrollbar-width: none;\n `, [c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', `\n width: 0;\n height: 0;\n display: none;\n `), c('>', [cB('scrollbar-content', `\n box-sizing: border-box;\n min-width: 100%;\n `)])])]), c('>, +', [cB('scrollbar-rail', `\n position: absolute;\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n `, [cM('horizontal', `\n left: 2px;\n right: 2px;\n bottom: 4px;\n height: var(--n-scrollbar-height);\n `, [c('>', [cE('scrollbar', `\n height: var(--n-scrollbar-height);\n border-radius: var(--n-scrollbar-border-radius);\n right: 0;\n `)])]), cM('vertical', `\n right: 4px;\n top: 2px;\n bottom: 2px;\n width: var(--n-scrollbar-width);\n `, [c('>', [cE('scrollbar', `\n width: var(--n-scrollbar-width);\n border-radius: var(--n-scrollbar-border-radius);\n bottom: 0;\n `)])]), cM('disabled', [c('>', [cE('scrollbar', 'pointer-events: none;')])]), c('>', [cE('scrollbar', `\n z-index: 1;\n position: absolute;\n cursor: pointer;\n pointer-events: all;\n background-color: var(--n-scrollbar-color);\n transition: background-color .2s var(--n-scrollbar-bezier);\n `, [fadeInTransition(), c('&:hover', 'background-color: var(--n-scrollbar-color-hover);')])])])])]);","import { h, ref, defineComponent, computed, onMounted, onBeforeUnmount, mergeProps, Transition, watchEffect, Fragment } from 'vue';\nimport { on, off } from 'evtd';\nimport { VResizeObserver } from 'vueuc';\nimport { useIsIos } from 'vooks';\nimport { getPreciseEventTarget } from 'seemly';\nimport { useConfig, useTheme, useThemeClass, useRtl } from \"../../../_mixins/index.mjs\";\nimport { useReactivated, Wrapper } from \"../../../_utils/index.mjs\";\nimport { scrollbarLight } from \"../styles/index.mjs\";\nimport style from \"./styles/index.cssr.mjs\";\nconst scrollbarProps = Object.assign(Object.assign({}, useTheme.props), {\n size: {\n type: Number,\n default: 5\n },\n duration: {\n type: Number,\n default: 0\n },\n scrollable: {\n type: Boolean,\n default: true\n },\n xScrollable: Boolean,\n trigger: {\n type: String,\n default: 'hover'\n },\n useUnifiedContainer: Boolean,\n triggerDisplayManually: Boolean,\n // If container is set, resize observer won't not attached\n container: Function,\n content: Function,\n containerClass: String,\n containerStyle: [String, Object],\n contentClass: [String, Array],\n contentStyle: [String, Object],\n horizontalRailStyle: [String, Object],\n verticalRailStyle: [String, Object],\n onScroll: Function,\n onWheel: Function,\n onResize: Function,\n internalOnUpdateScrollLeft: Function,\n internalHoistYRail: Boolean\n});\nconst Scrollbar = defineComponent({\n name: 'Scrollbar',\n props: scrollbarProps,\n inheritAttrs: false,\n setup(props) {\n const {\n mergedClsPrefixRef,\n inlineThemeDisabled,\n mergedRtlRef\n } = useConfig(props);\n const rtlEnabledRef = useRtl('Scrollbar', mergedRtlRef, mergedClsPrefixRef);\n // dom ref\n const wrapperRef = ref(null);\n const containerRef = ref(null);\n const contentRef = ref(null);\n const yRailRef = ref(null);\n const xRailRef = ref(null);\n // data ref\n const contentHeightRef = ref(null);\n const contentWidthRef = ref(null);\n const containerHeightRef = ref(null);\n const containerWidthRef = ref(null);\n const yRailSizeRef = ref(null);\n const xRailSizeRef = ref(null);\n const containerScrollTopRef = ref(0);\n const containerScrollLeftRef = ref(0);\n const isShowXBarRef = ref(false);\n const isShowYBarRef = ref(false);\n let yBarPressed = false;\n let xBarPressed = false;\n let xBarVanishTimerId;\n let yBarVanishTimerId;\n let memoYTop = 0;\n let memoXLeft = 0;\n let memoMouseX = 0;\n let memoMouseY = 0;\n const isIos = useIsIos();\n const yBarSizeRef = computed(() => {\n const {\n value: containerHeight\n } = containerHeightRef;\n const {\n value: contentHeight\n } = contentHeightRef;\n const {\n value: yRailSize\n } = yRailSizeRef;\n if (containerHeight === null || contentHeight === null || yRailSize === null) {\n return 0;\n } else {\n return Math.min(containerHeight, yRailSize * containerHeight / contentHeight + props.size * 1.5);\n }\n });\n const yBarSizePxRef = computed(() => {\n return `${yBarSizeRef.value}px`;\n });\n const xBarSizeRef = computed(() => {\n const {\n value: containerWidth\n } = containerWidthRef;\n const {\n value: contentWidth\n } = contentWidthRef;\n const {\n value: xRailSize\n } = xRailSizeRef;\n if (containerWidth === null || contentWidth === null || xRailSize === null) {\n return 0;\n } else {\n return xRailSize * containerWidth / contentWidth + props.size * 1.5;\n }\n });\n const xBarSizePxRef = computed(() => {\n return `${xBarSizeRef.value}px`;\n });\n const yBarTopRef = computed(() => {\n const {\n value: containerHeight\n } = containerHeightRef;\n const {\n value: containerScrollTop\n } = containerScrollTopRef;\n const {\n value: contentHeight\n } = contentHeightRef;\n const {\n value: yRailSize\n } = yRailSizeRef;\n if (containerHeight === null || contentHeight === null || yRailSize === null) {\n return 0;\n } else {\n const heightDiff = contentHeight - containerHeight;\n if (!heightDiff) return 0;\n return containerScrollTop / heightDiff * (yRailSize - yBarSizeRef.value);\n }\n });\n const yBarTopPxRef = computed(() => {\n return `${yBarTopRef.value}px`;\n });\n const xBarLeftRef = computed(() => {\n const {\n value: containerWidth\n } = containerWidthRef;\n const {\n value: containerScrollLeft\n } = containerScrollLeftRef;\n const {\n value: contentWidth\n } = contentWidthRef;\n const {\n value: xRailSize\n } = xRailSizeRef;\n if (containerWidth === null || contentWidth === null || xRailSize === null) {\n return 0;\n } else {\n const widthDiff = contentWidth - containerWidth;\n if (!widthDiff) return 0;\n return containerScrollLeft / widthDiff * (xRailSize - xBarSizeRef.value);\n }\n });\n const xBarLeftPxRef = computed(() => {\n return `${xBarLeftRef.value}px`;\n });\n const needYBarRef = computed(() => {\n const {\n value: containerHeight\n } = containerHeightRef;\n const {\n value: contentHeight\n } = contentHeightRef;\n return containerHeight !== null && contentHeight !== null && contentHeight > containerHeight;\n });\n const needXBarRef = computed(() => {\n const {\n value: containerWidth\n } = containerWidthRef;\n const {\n value: contentWidth\n } = contentWidthRef;\n return containerWidth !== null && contentWidth !== null && contentWidth > containerWidth;\n });\n const mergedShowXBarRef = computed(() => {\n const {\n trigger\n } = props;\n return trigger === 'none' || isShowXBarRef.value;\n });\n const mergedShowYBarRef = computed(() => {\n const {\n trigger\n } = props;\n return trigger === 'none' || isShowYBarRef.value;\n });\n const mergedContainerRef = computed(() => {\n const {\n container\n } = props;\n if (container) return container();\n return containerRef.value;\n });\n const mergedContentRef = computed(() => {\n const {\n content\n } = props;\n if (content) return content();\n return contentRef.value;\n });\n const activateState = useReactivated(() => {\n // Only restore for builtin container & content\n if (!props.container) {\n // remount\n scrollTo({\n top: containerScrollTopRef.value,\n left: containerScrollLeftRef.value\n });\n }\n });\n // methods\n const handleContentResize = () => {\n if (activateState.isDeactivated) return;\n sync();\n };\n const handleContainerResize = e => {\n if (activateState.isDeactivated) return;\n const {\n onResize\n } = props;\n if (onResize) onResize(e);\n sync();\n };\n const scrollTo = (options, y) => {\n if (!props.scrollable) return;\n if (typeof options === 'number') {\n scrollToPosition(options, y !== null && y !== void 0 ? y : 0, 0, false, 'auto');\n return;\n }\n const {\n left,\n top,\n index,\n elSize,\n position,\n behavior,\n el,\n debounce = true\n } = options;\n if (left !== undefined || top !== undefined) {\n scrollToPosition(left !== null && left !== void 0 ? left : 0, top !== null && top !== void 0 ? top : 0, 0, false, behavior);\n }\n if (el !== undefined) {\n scrollToPosition(0, el.offsetTop, el.offsetHeight, debounce, behavior);\n } else if (index !== undefined && elSize !== undefined) {\n scrollToPosition(0, index * elSize, elSize, debounce, behavior);\n } else if (position === 'bottom') {\n scrollToPosition(0, Number.MAX_SAFE_INTEGER, 0, false, behavior);\n } else if (position === 'top') {\n scrollToPosition(0, 0, 0, false, behavior);\n }\n };\n const scrollBy = (options, y) => {\n if (!props.scrollable) return;\n const {\n value: container\n } = mergedContainerRef;\n if (!container) return;\n if (typeof options === 'object') {\n container.scrollBy(options);\n } else {\n container.scrollBy(options, y || 0);\n }\n };\n function scrollToPosition(left, top, elSize, debounce, behavior) {\n const {\n value: container\n } = mergedContainerRef;\n if (!container) return;\n if (debounce) {\n const {\n scrollTop,\n offsetHeight\n } = container;\n if (top > scrollTop) {\n if (top + elSize <= scrollTop + offsetHeight) {\n // do nothing\n } else {\n container.scrollTo({\n left,\n top: top + elSize - offsetHeight,\n behavior\n });\n }\n return;\n }\n }\n container.scrollTo({\n left,\n top,\n behavior\n });\n }\n function handleMouseEnterWrapper() {\n showXBar();\n showYBar();\n sync();\n }\n function handleMouseLeaveWrapper() {\n hideBar();\n }\n function hideBar() {\n hideYBar();\n hideXBar();\n }\n function hideYBar() {\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId);\n }\n yBarVanishTimerId = window.setTimeout(() => {\n isShowYBarRef.value = false;\n }, props.duration);\n }\n function hideXBar() {\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId);\n }\n xBarVanishTimerId = window.setTimeout(() => {\n isShowXBarRef.value = false;\n }, props.duration);\n }\n function showXBar() {\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId);\n }\n isShowXBarRef.value = true;\n }\n function showYBar() {\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId);\n }\n isShowYBarRef.value = true;\n }\n function handleScroll(e) {\n const {\n onScroll\n } = props;\n if (onScroll) onScroll(e);\n syncScrollState();\n }\n function syncScrollState() {\n // only collect scroll state, do not trigger any dom event\n const {\n value: container\n } = mergedContainerRef;\n if (container) {\n containerScrollTopRef.value = container.scrollTop;\n containerScrollLeftRef.value = container.scrollLeft * ((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? -1 : 1);\n }\n }\n function syncPositionState() {\n // only collect position state, do not trigger any dom event\n // Don't use getClientBoundingRect because element may be scale transformed\n const {\n value: content\n } = mergedContentRef;\n if (content) {\n contentHeightRef.value = content.offsetHeight;\n contentWidthRef.value = content.offsetWidth;\n }\n const {\n value: container\n } = mergedContainerRef;\n if (container) {\n containerHeightRef.value = container.offsetHeight;\n containerWidthRef.value = container.offsetWidth;\n }\n const {\n value: xRailEl\n } = xRailRef;\n const {\n value: yRailEl\n } = yRailRef;\n if (xRailEl) {\n xRailSizeRef.value = xRailEl.offsetWidth;\n }\n if (yRailEl) {\n yRailSizeRef.value = yRailEl.offsetHeight;\n }\n }\n /**\n * Sometimes there's only one element that we can scroll,\n * For example for textarea, there won't be a content element.\n */\n function syncUnifiedContainer() {\n const {\n value: container\n } = mergedContainerRef;\n if (container) {\n containerScrollTopRef.value = container.scrollTop;\n containerScrollLeftRef.value = container.scrollLeft * ((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? -1 : 1);\n containerHeightRef.value = container.offsetHeight;\n containerWidthRef.value = container.offsetWidth;\n contentHeightRef.value = container.scrollHeight;\n contentWidthRef.value = container.scrollWidth;\n }\n const {\n value: xRailEl\n } = xRailRef;\n const {\n value: yRailEl\n } = yRailRef;\n if (xRailEl) {\n xRailSizeRef.value = xRailEl.offsetWidth;\n }\n if (yRailEl) {\n yRailSizeRef.value = yRailEl.offsetHeight;\n }\n }\n function sync() {\n if (!props.scrollable) return;\n if (props.useUnifiedContainer) {\n syncUnifiedContainer();\n } else {\n syncPositionState();\n syncScrollState();\n }\n }\n function isMouseUpAway(e) {\n var _a;\n return !((_a = wrapperRef.value) === null || _a === void 0 ? void 0 : _a.contains(getPreciseEventTarget(e)));\n }\n function handleXScrollMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n xBarPressed = true;\n on('mousemove', window, handleXScrollMouseMove, true);\n on('mouseup', window, handleXScrollMouseUp, true);\n memoXLeft = containerScrollLeftRef.value;\n memoMouseX = (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? window.innerWidth - e.clientX : e.clientX;\n }\n function handleXScrollMouseMove(e) {\n if (!xBarPressed) return;\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId);\n }\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId);\n }\n const {\n value: containerWidth\n } = containerWidthRef;\n const {\n value: contentWidth\n } = contentWidthRef;\n const {\n value: xBarSize\n } = xBarSizeRef;\n if (containerWidth === null || contentWidth === null) return;\n const dX = (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? window.innerWidth - e.clientX - memoMouseX : e.clientX - memoMouseX;\n const dScrollLeft = dX * (contentWidth - containerWidth) / (containerWidth - xBarSize);\n const toScrollLeftUpperBound = contentWidth - containerWidth;\n let toScrollLeft = memoXLeft + dScrollLeft;\n toScrollLeft = Math.min(toScrollLeftUpperBound, toScrollLeft);\n toScrollLeft = Math.max(toScrollLeft, 0);\n const {\n value: container\n } = mergedContainerRef;\n if (container) {\n container.scrollLeft = toScrollLeft * ((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? -1 : 1);\n const {\n internalOnUpdateScrollLeft\n } = props;\n if (internalOnUpdateScrollLeft) internalOnUpdateScrollLeft(toScrollLeft);\n }\n }\n function handleXScrollMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n off('mousemove', window, handleXScrollMouseMove, true);\n off('mouseup', window, handleXScrollMouseUp, true);\n xBarPressed = false;\n sync();\n if (isMouseUpAway(e)) {\n hideBar();\n }\n }\n function handleYScrollMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n yBarPressed = true;\n on('mousemove', window, handleYScrollMouseMove, true);\n on('mouseup', window, handleYScrollMouseUp, true);\n memoYTop = containerScrollTopRef.value;\n memoMouseY = e.clientY;\n }\n function handleYScrollMouseMove(e) {\n if (!yBarPressed) return;\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId);\n }\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId);\n }\n const {\n value: containerHeight\n } = containerHeightRef;\n const {\n value: contentHeight\n } = contentHeightRef;\n const {\n value: yBarSize\n } = yBarSizeRef;\n if (containerHeight === null || contentHeight === null) return;\n const dY = e.clientY - memoMouseY;\n const dScrollTop = dY * (contentHeight - containerHeight) / (containerHeight - yBarSize);\n const toScrollTopUpperBound = contentHeight - containerHeight;\n let toScrollTop = memoYTop + dScrollTop;\n toScrollTop = Math.min(toScrollTopUpperBound, toScrollTop);\n toScrollTop = Math.max(toScrollTop, 0);\n const {\n value: container\n } = mergedContainerRef;\n if (container) {\n container.scrollTop = toScrollTop;\n }\n }\n function handleYScrollMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n off('mousemove', window, handleYScrollMouseMove, true);\n off('mouseup', window, handleYScrollMouseUp, true);\n yBarPressed = false;\n sync();\n if (isMouseUpAway(e)) {\n hideBar();\n }\n }\n watchEffect(() => {\n const {\n value: needXBar\n } = needXBarRef;\n const {\n value: needYBar\n } = needYBarRef;\n const {\n value: mergedClsPrefix\n } = mergedClsPrefixRef;\n const {\n value: xRailEl\n } = xRailRef;\n const {\n value: yRailEl\n } = yRailRef;\n if (xRailEl) {\n if (!needXBar) {\n xRailEl.classList.add(`${mergedClsPrefix}-scrollbar-rail--disabled`);\n } else {\n xRailEl.classList.remove(`${mergedClsPrefix}-scrollbar-rail--disabled`);\n }\n }\n if (yRailEl) {\n if (!needYBar) {\n yRailEl.classList.add(`${mergedClsPrefix}-scrollbar-rail--disabled`);\n } else {\n yRailEl.classList.remove(`${mergedClsPrefix}-scrollbar-rail--disabled`);\n }\n }\n });\n onMounted(() => {\n // if container exist, it always can't be resolved when scrollbar is mounted\n // for example:\n // - component\n // - scrollbar\n // - inner\n // if you pass inner to scrollbar, you may use a ref inside component\n // however, when scrollbar is mounted, ref is not ready at component\n // you need to init by yourself\n if (props.container) return;\n sync();\n });\n onBeforeUnmount(() => {\n if (xBarVanishTimerId !== undefined) {\n window.clearTimeout(xBarVanishTimerId);\n }\n if (yBarVanishTimerId !== undefined) {\n window.clearTimeout(yBarVanishTimerId);\n }\n off('mousemove', window, handleYScrollMouseMove, true);\n off('mouseup', window, handleYScrollMouseUp, true);\n });\n const themeRef = useTheme('Scrollbar', '-scrollbar', style, scrollbarLight, props, mergedClsPrefixRef);\n const cssVarsRef = computed(() => {\n const {\n common: {\n cubicBezierEaseInOut,\n scrollbarBorderRadius,\n scrollbarHeight,\n scrollbarWidth\n },\n self: {\n color,\n colorHover\n }\n } = themeRef.value;\n return {\n '--n-scrollbar-bezier': cubicBezierEaseInOut,\n '--n-scrollbar-color': color,\n '--n-scrollbar-color-hover': colorHover,\n '--n-scrollbar-border-radius': scrollbarBorderRadius,\n '--n-scrollbar-width': scrollbarWidth,\n '--n-scrollbar-height': scrollbarHeight\n };\n });\n const themeClassHandle = inlineThemeDisabled ? useThemeClass('scrollbar', undefined, cssVarsRef, props) : undefined;\n const exposedMethods = {\n scrollTo,\n scrollBy,\n sync,\n syncUnifiedContainer,\n handleMouseEnterWrapper,\n handleMouseLeaveWrapper\n };\n return Object.assign(Object.assign({}, exposedMethods), {\n mergedClsPrefix: mergedClsPrefixRef,\n rtlEnabled: rtlEnabledRef,\n containerScrollTop: containerScrollTopRef,\n wrapperRef,\n containerRef,\n contentRef,\n yRailRef,\n xRailRef,\n needYBar: needYBarRef,\n needXBar: needXBarRef,\n yBarSizePx: yBarSizePxRef,\n xBarSizePx: xBarSizePxRef,\n yBarTopPx: yBarTopPxRef,\n xBarLeftPx: xBarLeftPxRef,\n isShowXBar: mergedShowXBarRef,\n isShowYBar: mergedShowYBarRef,\n isIos,\n handleScroll,\n handleContentResize,\n handleContainerResize,\n handleYScrollMouseDown,\n handleXScrollMouseDown,\n cssVars: inlineThemeDisabled ? undefined : cssVarsRef,\n themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,\n onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender\n });\n },\n render() {\n var _a;\n const {\n $slots,\n mergedClsPrefix,\n triggerDisplayManually,\n rtlEnabled,\n internalHoistYRail\n } = this;\n if (!this.scrollable) return (_a = $slots.default) === null || _a === void 0 ? void 0 : _a.call($slots);\n const triggerIsNone = this.trigger === 'none';\n const createYRail = (className, style) => {\n return h(\"div\", {\n ref: \"yRailRef\",\n class: [`${mergedClsPrefix}-scrollbar-rail`, `${mergedClsPrefix}-scrollbar-rail--vertical`, className],\n \"data-scrollbar-rail\": true,\n style: [style || '', this.verticalRailStyle],\n \"aria-hidden\": true\n }, h(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n triggerIsNone ? Wrapper : Transition, triggerIsNone ? null : {\n name: 'fade-in-transition'\n }, {\n default: () => this.needYBar && this.isShowYBar && !this.isIos ? h(\"div\", {\n class: `${mergedClsPrefix}-scrollbar-rail__scrollbar`,\n style: {\n height: this.yBarSizePx,\n top: this.yBarTopPx\n },\n onMousedown: this.handleYScrollMouseDown\n }) : null\n }));\n };\n const createChildren = () => {\n var _a, _b;\n (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);\n return h('div', mergeProps(this.$attrs, {\n role: 'none',\n ref: 'wrapperRef',\n class: [`${mergedClsPrefix}-scrollbar`, this.themeClass, rtlEnabled && `${mergedClsPrefix}-scrollbar--rtl`],\n style: this.cssVars,\n onMouseenter: triggerDisplayManually ? undefined : this.handleMouseEnterWrapper,\n onMouseleave: triggerDisplayManually ? undefined : this.handleMouseLeaveWrapper\n }), [this.container ? (_b = $slots.default) === null || _b === void 0 ? void 0 : _b.call($slots) : h(\"div\", {\n role: \"none\",\n ref: \"containerRef\",\n class: [`${mergedClsPrefix}-scrollbar-container`, this.containerClass],\n style: this.containerStyle,\n onScroll: this.handleScroll,\n onWheel: this.onWheel\n }, h(VResizeObserver, {\n onResize: this.handleContentResize\n }, {\n default: () => h(\"div\", {\n ref: \"contentRef\",\n role: \"none\",\n style: [{\n width: this.xScrollable ? 'fit-content' : null\n }, this.contentStyle],\n class: [`${mergedClsPrefix}-scrollbar-content`, this.contentClass]\n }, $slots)\n })), internalHoistYRail ? null : createYRail(undefined, undefined), this.xScrollable && h(\"div\", {\n ref: \"xRailRef\",\n class: [`${mergedClsPrefix}-scrollbar-rail`, `${mergedClsPrefix}-scrollbar-rail--horizontal`],\n style: this.horizontalRailStyle,\n \"data-scrollbar-rail\": true,\n \"aria-hidden\": true\n }, h(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n triggerIsNone ? Wrapper : Transition, triggerIsNone ? null : {\n name: 'fade-in-transition'\n }, {\n default: () => this.needXBar && this.isShowXBar && !this.isIos ? h(\"div\", {\n class: `${mergedClsPrefix}-scrollbar-rail__scrollbar`,\n style: {\n width: this.xBarSizePx,\n right: rtlEnabled ? this.xBarLeftPx : undefined,\n left: rtlEnabled ? undefined : this.xBarLeftPx\n },\n onMousedown: this.handleXScrollMouseDown\n }) : null\n }))]);\n };\n const scrollbarNode = this.container ? createChildren() : h(VResizeObserver, {\n onResize: this.handleContainerResize\n }, {\n default: createChildren\n });\n if (internalHoistYRail) {\n return h(Fragment, null, scrollbarNode, createYRail(this.themeClass, this.cssVars));\n } else {\n return scrollbarNode;\n }\n }\n});\nexport default Scrollbar;\nexport const XScrollbar = Scrollbar;"],"names":["getPreciseEventTarget","event","createId","length","Wrapper","defineComponent","_a","_b","exists","id","ssr","ids","queryElement","isIos","useIsIos","useReactivated","callback","isDeactivatedRef","activateStateInitialized","onActivated","onDeactivated","useRtl","mountId","rtlStateRef","clsPrefixRef","ssrAdapter","useSsrAdapter","componentRtlStateRef","computed","rtlState","componentRtlState","mountStyle","watchEffect","clsPrefix","cssrAnchorMetaName","onBeforeMount","self","vars","scrollbarColor","scrollbarColorHover","scrollbarLight","commonLight","scrollbarLight$1","cubicBezierEaseInOut","commonVariables","fadeInTransition","name","enterDuration","leaveDuration","enterCubicBezier","leaveCubicBezier","c","style","cB","cM","cE","scrollbarProps","useTheme","Scrollbar","props","mergedClsPrefixRef","inlineThemeDisabled","mergedRtlRef","useConfig","rtlEnabledRef","wrapperRef","ref","containerRef","contentRef","yRailRef","xRailRef","contentHeightRef","contentWidthRef","containerHeightRef","containerWidthRef","yRailSizeRef","xRailSizeRef","containerScrollTopRef","containerScrollLeftRef","isShowXBarRef","isShowYBarRef","yBarPressed","xBarPressed","xBarVanishTimerId","yBarVanishTimerId","memoYTop","memoXLeft","memoMouseX","memoMouseY","yBarSizeRef","containerHeight","contentHeight","yRailSize","yBarSizePxRef","xBarSizeRef","containerWidth","contentWidth","xRailSize","xBarSizePxRef","yBarTopRef","containerScrollTop","heightDiff","yBarTopPxRef","xBarLeftRef","containerScrollLeft","widthDiff","xBarLeftPxRef","needYBarRef","needXBarRef","mergedShowXBarRef","trigger","mergedShowYBarRef","mergedContainerRef","container","mergedContentRef","content","activateState","scrollTo","handleContentResize","sync","handleContainerResize","onResize","options","y","scrollToPosition","left","top","index","elSize","position","behavior","el","debounce","scrollBy","scrollTop","offsetHeight","handleMouseEnterWrapper","showXBar","showYBar","handleMouseLeaveWrapper","hideBar","hideYBar","hideXBar","handleScroll","onScroll","syncScrollState","syncPositionState","xRailEl","yRailEl","syncUnifiedContainer","isMouseUpAway","handleXScrollMouseDown","on","handleXScrollMouseMove","handleXScrollMouseUp","xBarSize","dScrollLeft","toScrollLeftUpperBound","toScrollLeft","internalOnUpdateScrollLeft","off","handleYScrollMouseDown","handleYScrollMouseMove","handleYScrollMouseUp","yBarSize","dScrollTop","toScrollTopUpperBound","toScrollTop","needXBar","needYBar","mergedClsPrefix","onMounted","onBeforeUnmount","themeRef","cssVarsRef","scrollbarBorderRadius","scrollbarHeight","scrollbarWidth","color","colorHover","themeClassHandle","useThemeClass","$slots","triggerDisplayManually","rtlEnabled","internalHoistYRail","triggerIsNone","createYRail","className","h","Transition","createChildren","mergeProps","VResizeObserver","scrollbarNode","Fragment","NScrollbar","XScrollbar"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}