vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 19.3 kB
Source Map (JSON)
{"version":3,"file":"drawer.vue2.cjs","sources":["../../../components/drawer/drawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Button } from '@/components/button'\nimport { Icon } from '@/components/icon'\nimport { Masker } from '@/components/masker'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed, nextTick, reactive, ref, shallowReadonly, toRef, watch } from 'vue'\n\nimport {\n createSizeProp,\n emitEvent,\n useIcons,\n useId,\n useLocale,\n useNameHelper,\n useProps,\n} from '@vexip-ui/config'\nimport { useMoving } from '@vexip-ui/hooks'\nimport { isPromise, toNumber } from '@vexip-ui/utils'\nimport { drawerProps } from './props'\nimport { drawerPlacements } from './symbol'\n\nimport type { DrawerSlots } from './symbol'\n\ndefineOptions({ name: 'Drawer' })\n\nconst _props = defineProps(drawerProps)\nconst props = useProps('drawer', _props, {\n locale: null,\n transfer: false,\n active: {\n default: false,\n static: true,\n },\n width: {\n default: 280,\n validator: value => typeof value === 'string' || value > 0,\n },\n height: {\n default: 280,\n validator: value => typeof value === 'string' || value > 0,\n },\n placement: {\n default: 'right',\n validator: value => drawerPlacements.includes(value),\n },\n title: '',\n closable: true,\n inner: false,\n maskClose: true,\n drawerClass: null,\n hideMask: false,\n onBeforeClose: {\n default: null,\n isFunc: true,\n },\n resizable: false,\n autoRemove: false,\n footer: false,\n confirmText: null,\n confirmProps: null,\n cancelText: null,\n cancelProps: null,\n loading: false,\n confirmType: 'primary',\n cancelType: 'default',\n actionSize: createSizeProp('small'),\n undivided: false,\n disableEsc: false,\n slots: () => ({}),\n})\n\nconst emit = defineEmits(['update:active'])\n\nconst slots = defineSlots<DrawerSlots>()\n\nconst nh = useNameHelper('drawer')\nconst icons = useIcons()\nconst locale = useLocale('drawer', toRef(props, 'locale'))\n\nconst currentActive = ref(props.active)\nconst currentWidth = ref(props.width)\nconst currentHeight = ref(props.height)\n\nconst wrapper = ref<HTMLElement>()\n\nconst { target: resizer, moving: resizing } = useMoving({\n onStart: (state, event) => {\n if (!props.resizable || event.button > 0 || !wrapper.value) {\n return false\n }\n\n const width = `${currentWidth.value}`.endsWith('%')\n ? wrapper.value.offsetWidth\n : toNumber(currentWidth.value)\n const height = `${currentHeight.value}`.endsWith('%')\n ? wrapper.value.offsetHeight\n : toNumber(currentHeight.value)\n\n state.xStart = width\n state.yStart = height\n\n emitEvent(props.onResizeStart, { width, height })\n },\n onMove: (state, event) => {\n const deltaX = event.clientX - state.clientX\n const deltaY = event.clientY - state.clientY\n\n let width = toNumber(currentWidth.value)\n let height = toNumber(currentHeight.value)\n\n switch (props.placement) {\n case 'top': {\n height = state.yStart + deltaY\n break\n }\n case 'right': {\n width = state.xStart - deltaX\n break\n }\n case 'bottom': {\n height = state.yStart - deltaY\n break\n }\n default: {\n width = state.xStart + deltaX\n }\n }\n\n currentWidth.value = Math.max(width, 100)\n currentHeight.value = Math.max(height, 100)\n\n emitEvent(props.onResizeMove, {\n width: toNumber(currentWidth.value),\n height: toNumber(currentHeight.value),\n })\n },\n onEnd: () => {\n emitEvent(props.onResizeEnd, {\n width: toNumber(currentWidth.value),\n height: toNumber(currentHeight.value),\n })\n },\n})\n\nconst className = computed(() => {\n return [\n nh.b(),\n nh.bs('vars'),\n {\n [nh.bm('inherit')]: props.inherit,\n [nh.bm('inner')]: props.inner,\n [nh.bm('closable')]: props.closable,\n [nh.bm('resizable')]: props.resizable,\n [nh.bm('undivided')]: props.undivided,\n },\n ]\n})\nconst moveTransition = computed(() => {\n return nh.ns(`move-${props.placement}`)\n})\nconst wrapperClass = computed(() => {\n return [\n nh.be('wrapper'),\n nh.bem('wrapper', props.placement),\n {\n [nh.bem('wrapper', 'hide-mask')]: props.hideMask,\n [nh.bem('wrapper', 'resizing')]: resizing.value,\n },\n props.drawerClass,\n ]\n})\nconst wrapperStyle = computed(() => {\n const placement = props.placement\n\n if (placement === 'top' || placement === 'bottom') {\n const height = currentHeight.value\n\n return {\n height: `${height}`.endsWith('%') ? height : `${height}px`,\n }\n }\n\n const width = currentWidth.value\n\n return {\n width: `${width}`.endsWith('%') ? width : `${width}px`,\n }\n})\nconst hasTitle = computed(() => {\n return !!(slots.header || slots.title || props.title || props.slots.header || props.slots.title)\n})\nconst titleId = useId()\nconst bodyId = useId()\n\nwatch(\n () => props.active,\n value => {\n currentActive.value = value\n },\n)\nwatch(\n () => props.width,\n value => {\n currentWidth.value = value\n },\n)\nwatch(\n () => props.height,\n value => {\n currentHeight.value = value\n },\n)\n\ndefineExpose({\n resizing,\n titleId,\n bodyId,\n wrapper,\n resizer,\n handleConfirm,\n handleCancel,\n handleClose,\n})\n\nconst slotParams = shallowReadonly(\n reactive({\n resizing,\n handleConfirm,\n handleCancel,\n handleClose,\n }),\n)\n\nfunction setActive(active: boolean) {\n if (currentActive.value === active) return\n\n currentActive.value = active\n\n emit('update:active', active)\n emitEvent(props.onToggle, active)\n}\n\nasync function handleClose(isConfirm = false) {\n let result: unknown = true\n\n if (typeof props.onBeforeClose === 'function') {\n result = props.onBeforeClose(isConfirm)\n\n if (isPromise(result)) {\n result = await result\n }\n }\n\n if (result !== false) {\n nextTick(() => {\n setActive(false)\n emitEvent(props.onClose)\n })\n }\n\n return result\n}\n\nfunction handleMaskClose() {\n if (props.maskClose) {\n return handleClose()\n }\n}\n\nfunction handleShow() {\n emitEvent(props.onShow)\n}\n\nfunction handleHide() {\n emitEvent(props.onHide)\n}\n\nfunction handleConfirm() {\n handleClose(true)\n emitEvent(props.onConfirm)\n}\n\nfunction handleCancel() {\n handleClose(false)\n emitEvent(props.onCancel)\n}\n</script>\n\n<template>\n <Masker\n v-model:active=\"currentActive\"\n :inherit=\"props.inherit\"\n :class=\"className\"\n :inner=\"props.inner\"\n :transition-name=\"moveTransition\"\n :closable=\"props.maskClose\"\n :disabled=\"props.hideMask\"\n :on-before-close=\"handleMaskClose\"\n :transfer=\"props.transfer\"\n :auto-remove=\"props.autoRemove\"\n :disable-esc=\"props.disableEsc\"\n @show=\"handleShow\"\n @hide=\"handleHide\"\n >\n <template #default=\"{ show }\">\n <section\n v-show=\"show\"\n ref=\"wrapper\"\n :class=\"wrapperClass\"\n :style=\"wrapperStyle\"\n role=\"dialog\"\n :aria-modal=\"show ? 'true' : undefined\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"bodyId\"\n >\n <div v-if=\"hasTitle\" :class=\"nh.be('header')\">\n <slot name=\"header\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.header\" :data=\"slotParams\">\n <div :id=\"titleId\" :class=\"nh.be('title')\">\n <slot name=\"title\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.title\" :data=\"slotParams\">\n {{ props.title }}\n </Renderer>\n </slot>\n </div>\n <button\n v-if=\"props.closable\"\n type=\"button\"\n :class=\"nh.be('close')\"\n @click=\"handleClose()\"\n >\n <slot name=\"close\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.close\" :data=\"slotParams\">\n <Icon\n v-bind=\"icons.close\"\n :scale=\"+(icons.close.scale || 1) * 1.2\"\n label=\"close\"\n ></Icon>\n </Renderer>\n </slot>\n </button>\n </Renderer>\n </slot>\n </div>\n <div :id=\"bodyId\" :class=\"nh.be('content')\">\n <slot v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.default\" :data=\"slotParams\"></Renderer>\n </slot>\n </div>\n <div v-if=\"props.footer || slots.footer || props.slots.footer\" :class=\"nh.be('footer')\">\n <slot name=\"footer\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.footer\" :data=\"slotParams\">\n <Button\n :class=\"[nh.be('button'), nh.bem('button', 'cancel')]\"\n inherit\n text\n :type=\"props.cancelType\"\n :size=\"props.actionSize\"\n v-bind=\"props.cancelProps\"\n @click=\"handleCancel\"\n >\n {{ props.cancelText || locale.cancel }}\n </Button>\n <Button\n :class=\"[nh.be('button'), nh.bem('button', 'confirm')]\"\n inherit\n :type=\"props.confirmType\"\n :size=\"props.actionSize\"\n :loading=\"props.loading\"\n v-bind=\"props.confirmProps\"\n @click=\"handleConfirm\"\n >\n {{ props.confirmText || locale.confirm }}\n </Button>\n </Renderer>\n </slot>\n </div>\n <div\n v-if=\"props.resizable\"\n ref=\"resizer\"\n :class=\"[\n nh.be('handler'),\n nh.bem('handler', props.placement),\n {\n [nh.bem('handler', 'resizing')]: resizing\n }\n ]\"\n >\n <slot name=\"handler\" v-bind=\"slotParams\">\n <Renderer :renderer=\"props.slots.handler\" :data=\"slotParams\"></Renderer>\n </slot>\n </div>\n </section>\n </template>\n </Masker>\n</template>\n"],"names":["_props","__props","props","useProps","value","drawerPlacements","createSizeProp","emit","__emit","slots","_useSlots","nh","useNameHelper","icons","useIcons","locale","useLocale","toRef","currentActive","ref","currentWidth","currentHeight","wrapper","resizer","resizing","useMoving","state","event","width","toNumber","height","emitEvent","deltaX","deltaY","className","computed","moveTransition","wrapperClass","wrapperStyle","placement","hasTitle","titleId","useId","bodyId","watch","__expose","handleConfirm","handleCancel","handleClose","slotParams","shallowReadonly","reactive","setActive","active","isConfirm","result","isPromise","nextTick","handleMaskClose","handleShow","handleHide","_createBlock","_unref","Masker","$event","_withCtx","show","_createElementVNode","_createElementBlock","_normalizeClass","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps","_createVNode","Renderer","_createTextVNode","_toDisplayString","Icon","_mergeProps"],"mappings":"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"}