You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
15 KiB
1 line
15 KiB
{"ast":null,"code":"import { defineComponent, ref, computed, watch, nextTick, provide, reactive, onActivated, onMounted, onUpdated, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, normalizeStyle, createBlock, resolveDynamicComponent, withCtx, renderSlot, createCommentVNode } from 'vue';\nimport { useResizeObserver, useEventListener } from '@vueuse/core';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport Bar from './bar2.mjs';\nimport { scrollbarContextKey } from './constants.mjs';\nimport { scrollbarProps, scrollbarEmits } from './scrollbar.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\nimport { isObject } from '@vue/shared';\nimport { isNumber } from '../../../utils/types.mjs';\nimport { debugWarn } from '../../../utils/error.mjs';\nconst COMPONENT_NAME = \"ElScrollbar\";\nconst __default__ = defineComponent({\n name: COMPONENT_NAME\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: scrollbarProps,\n emits: scrollbarEmits,\n setup(__props, {\n expose,\n emit\n }) {\n const props = __props;\n const ns = useNamespace(\"scrollbar\");\n let stopResizeObserver = void 0;\n let stopResizeListener = void 0;\n let wrapScrollTop = 0;\n let wrapScrollLeft = 0;\n const scrollbarRef = ref();\n const wrapRef = ref();\n const resizeRef = ref();\n const barRef = ref();\n const wrapStyle = computed(() => {\n const style = {};\n if (props.height) style.height = addUnit(props.height);\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight);\n return [props.wrapStyle, style];\n });\n const wrapKls = computed(() => {\n return [props.wrapClass, ns.e(\"wrap\"), {\n [ns.em(\"wrap\", \"hidden-default\")]: !props.native\n }];\n });\n const resizeKls = computed(() => {\n return [ns.e(\"view\"), props.viewClass];\n });\n const handleScroll = () => {\n var _a;\n if (wrapRef.value) {\n (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value);\n wrapScrollTop = wrapRef.value.scrollTop;\n wrapScrollLeft = wrapRef.value.scrollLeft;\n emit(\"scroll\", {\n scrollTop: wrapRef.value.scrollTop,\n scrollLeft: wrapRef.value.scrollLeft\n });\n }\n };\n function scrollTo(arg1, arg2) {\n if (isObject(arg1)) {\n wrapRef.value.scrollTo(arg1);\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value.scrollTo(arg1, arg2);\n }\n }\n const setScrollTop = value => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, \"value must be a number\");\n return;\n }\n wrapRef.value.scrollTop = value;\n };\n const setScrollLeft = value => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, \"value must be a number\");\n return;\n }\n wrapRef.value.scrollLeft = value;\n };\n const update = () => {\n var _a;\n (_a = barRef.value) == null ? void 0 : _a.update();\n };\n watch(() => props.noresize, noresize => {\n if (noresize) {\n stopResizeObserver == null ? void 0 : stopResizeObserver();\n stopResizeListener == null ? void 0 : stopResizeListener();\n } else {\n ;\n ({\n stop: stopResizeObserver\n } = useResizeObserver(resizeRef, update));\n stopResizeListener = useEventListener(\"resize\", update);\n }\n }, {\n immediate: true\n });\n watch(() => [props.maxHeight, props.height], () => {\n if (!props.native) nextTick(() => {\n var _a;\n update();\n if (wrapRef.value) {\n (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value);\n }\n });\n });\n provide(scrollbarContextKey, reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef\n }));\n onActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop;\n wrapRef.value.scrollLeft = wrapScrollLeft;\n }\n });\n onMounted(() => {\n if (!props.native) nextTick(() => {\n update();\n });\n });\n onUpdated(() => update());\n expose({\n wrapRef,\n update,\n scrollTo,\n setScrollTop,\n setScrollLeft,\n handleScroll\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"scrollbarRef\",\n ref: scrollbarRef,\n class: normalizeClass(unref(ns).b())\n }, [createElementVNode(\"div\", {\n ref_key: \"wrapRef\",\n ref: wrapRef,\n class: normalizeClass(unref(wrapKls)),\n style: normalizeStyle(unref(wrapStyle)),\n tabindex: _ctx.tabindex,\n onScroll: handleScroll\n }, [(openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), {\n id: _ctx.id,\n ref_key: \"resizeRef\",\n ref: resizeRef,\n class: normalizeClass(unref(resizeKls)),\n style: normalizeStyle(_ctx.viewStyle),\n role: _ctx.role,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.ariaOrientation\n }, {\n default: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n _: 3\n }, 8, [\"id\", \"class\", \"style\", \"role\", \"aria-label\", \"aria-orientation\"]))], 46, [\"tabindex\"]), !_ctx.native ? (openBlock(), createBlock(Bar, {\n key: 0,\n ref_key: \"barRef\",\n ref: barRef,\n always: _ctx.always,\n \"min-size\": _ctx.minSize\n }, null, 8, [\"always\", \"min-size\"])) : createCommentVNode(\"v-if\", true)], 2);\n };\n }\n});\nvar Scrollbar = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"scrollbar.vue\"]]);\nexport { Scrollbar as default };","map":{"version":3,"names":["name","COMPONENT_NAME","ns","useNamespace","stopResizeObserver","stopResizeListener","wrapScrollTop","wrapScrollLeft","scrollbarRef","ref","wrapRef","resizeRef","barRef","wrapStyle","computed","style","props","height","addUnit","maxHeight","wrapKls","wrapClass","e","em","native","resizeKls","viewClass","handleScroll","_a","value","scrollTop","scrollLeft","emit","scrollTo","arg1","arg2","isObject","isNumber","setScrollTop","debugWarn","setScrollLeft","update","watch","noresize","stop","useResizeObserver","useEventListener","immediate","nextTick","provide","scrollbarContextKey","reactive","scrollbarElement","wrapElement","onActivated","onMounted","onUpdated","expose","_ctx","_cache","openBlock","createElementBlock","ref_key","class","normalizeClass","unref","b","createElementVNode","normalizeStyle"],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { addUnit, debugWarn, isNumber, isObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits, scrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(scrollbarProps)\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n if (props.height) style.height = addUnit(props.height)\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n emit('scroll', {\n scrollTop: wrapRef.value.scrollTop,\n scrollLeft: wrapRef.value.scrollLeft,\n })\n }\n}\n\n// TODO: refactor method overrides, due to script setup dts\n// @ts-nocheck\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native)\n nextTick(() => {\n update()\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n }\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n }\n})\n\nonMounted(() => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |