UNPKG

@vuesax-alpha/nightly

Version:
1 lines 6.88 kB
{"version":3,"file":"sidebar2.mjs","sources":["../../../../../../packages/components/sidebar/src/sidebar.vue"],"sourcesContent":["<template>\n <div\n ref=\"sidebarRef\"\n v-click-outside=\"clickCloseSidebar\"\n :class=\"sidebarKls\"\n :style=\"sidebarStyles\"\n @mouseenter=\"mouseEnterSidebar\"\n @mouseleave=\"mouseLeaveSidebar\"\n >\n <div v-if=\"$slots.logo\" :class=\"ns.e('logo')\">\n <slot name=\"logo\" />\n </div>\n\n <div v-if=\"$slots.header\" :class=\"ns.e('header')\">\n <slot name=\"header\" />\n </div>\n\n <div :class=\"ns.e('body')\">\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" :class=\"ns.e('footer')\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, provide, ref, watch } from 'vue'\nimport {\n useColor,\n useNamespace,\n useVuesaxBaseComponent,\n} from '@vuesax-alpha/hooks'\nimport { ClickOutside as vClickOutside } from '@vuesax-alpha/directives'\nimport { getVsColor, setColor } from '@vuesax-alpha/utils'\nimport { sidebarContextKey } from '@vuesax-alpha/tokens'\nimport { sidebarEmits, sidebarProps } from './sidebar'\n\ndefineOptions({\n name: 'VsSidebar',\n})\n\nconst props = defineProps(sidebarProps)\nconst emit = defineEmits(sidebarEmits)\n\nconst ns = useNamespace('sidebar')\n\nconst color = useColor('primary')\n\nconst sidebarRef = ref<HTMLElement>()\n\nconst staticWidth = ref<number>(260)\nconst reduceInternal = ref<boolean>(false)\nconst vsBaseClasses = useVuesaxBaseComponent(color)\nconst sidebarKls = computed(() => [\n ns.b(),\n vsBaseClasses,\n ns.is('reduce', reduceInternal.value),\n ns.is('open', props.open),\n ns.is('not-line-active', props.notLineActive),\n ns.is('not-shadow', props.notShadow),\n ns.is('text-white', props.textWhite),\n ns.is('absolute', props.absolute),\n ns.is(props.shape, !!props.shape),\n ns.is('right', props.right),\n])\n\nconst sidebarStyles = computed(() => [\n ns.cssVar({\n color: getVsColor(color.value),\n }),\n])\n\nconst mouseEnterSidebar = () => {\n if (props.hoverExpand) {\n reduceInternal.value = false\n }\n}\n\nconst mouseLeaveSidebar = () => {\n if (props.hoverExpand) {\n reduceInternal.value = true\n }\n}\n\nconst clickCloseSidebar = () => {\n emit('update:open', false)\n}\n\nconst handleClickItem = (id: string) => {\n emit('update:modelValue', id)\n clickCloseSidebar()\n}\n\nwatch(\n () => props.reduce,\n (val: boolean) => {\n const wrapper = sidebarRef.value\n if (!wrapper) return\n\n reduceInternal.value = val\n if (val) {\n wrapper.style.width = '50px'\n } else {\n wrapper.style.width = `${staticWidth.value}px`\n }\n }\n)\n\nwatch(reduceInternal, (val: boolean) => {\n const wrapper = sidebarRef.value\n if (!wrapper) return\n\n if (val) {\n wrapper.style.width = '50px'\n } else {\n wrapper.style.width = `${staticWidth.value}px`\n }\n})\n\nwatch(\n () => props.background,\n () => {\n setColor(\n 'background',\n props.background || '',\n sidebarRef.value!,\n true,\n ns.namespace.value\n )\n }\n)\n\nprovide(sidebarContextKey, {\n modelValue: computed(() => props.modelValue),\n reduce: computed(() => props.reduce),\n handleClickItem,\n})\n\nonMounted(() => {\n staticWidth.value = sidebarRef.value!.offsetWidth\n reduceInternal.value = props.reduce\n\n setColor(\n 'background',\n props.background || '',\n sidebarRef.value!,\n true,\n ns.namespace.value\n )\n\n if (props.textWhite) {\n setColor('text', '#fff', sidebarRef.value!, true, ns.namespace.value)\n }\n})\n</script>\n"],"names":[],"mappings":"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"}