tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 25.1 kB
Source Map (JSON)
{"version":3,"file":"drawer.mjs","sources":["../../../components/drawer/drawer.tsx"],"sourcesContent":["import { onBeforeUnmount, onMounted, computed, defineComponent, nextTick, onUpdated, ref, watch, Teleport } from 'vue';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-vue-next';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { useGlobalIcon } from '../hooks/useGlobalIcon';\nimport { isServer } from '../utils/dom';\nimport { getScrollbarWidth } from '@tdesign/common-js/utils/getScrollbarWidth';\nimport props from './props';\nimport { DrawerCloseContext } from './type';\nimport { useAction } from '../dialog/hooks';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { useDrag } from './hooks';\nimport type { TdDrawerProps } from './type';\nimport useTeleport from '../hooks/useTeleport';\n\nlet key = 1;\n\nexport default defineComponent({\n name: 'TDrawer',\n inheritAttrs: false,\n props,\n emits: ['update:visible'],\n setup(props, context) {\n const destroyOnCloseVisible = ref(false);\n const isVisible = ref(false);\n const styleEl = ref();\n const styleTimer = ref();\n const { globalConfig } = useConfig('drawer');\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n const COMPONENT_NAME = usePrefixClass('drawer');\n const { draggedSizeValue, enableDrag, draggableLineStyles } = useDrag(props as TdDrawerProps);\n\n // teleport容器\n const teleportElement = useTeleport(() => props.attach);\n\n const confirmBtnAction = (e: MouseEvent) => {\n props.onConfirm?.({ e });\n };\n const cancelBtnAction = (e: MouseEvent) => {\n props.onCancel?.({ e });\n closeDrawer({ trigger: 'cancel', e });\n };\n const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n const drawerEle = ref<HTMLElement | null>(null);\n const drawerClasses = computed(() => {\n return [\n COMPONENT_NAME.value,\n `${COMPONENT_NAME.value}--${props.placement}`,\n {\n [`${COMPONENT_NAME.value}--open`]: isVisible.value,\n [`${COMPONENT_NAME.value}--attach`]: props.showInAttachedElement,\n [`${COMPONENT_NAME.value}--without-mask`]: !props.showOverlay,\n },\n ];\n });\n\n const sizeValue = computed(() => {\n if (draggedSizeValue.value) return draggedSizeValue.value;\n\n const size = props.size ?? globalConfig.value.size;\n const defaultSize = isNaN(Number(size)) ? size : `${size}px`;\n return (\n {\n small: '300px',\n medium: '500px',\n large: '760px',\n }[size] || defaultSize\n );\n });\n const wrapperStyles = computed(() => {\n return {\n // 用于抵消动画效果:transform: translateX(100%); 等\n transform: isVisible.value ? 'translateX(0)' : undefined,\n width: ['left', 'right'].includes(props.placement) ? sizeValue.value : '',\n height: ['top', 'bottom'].includes(props.placement) ? sizeValue.value : '',\n };\n });\n\n const wrapperClasses = computed(() => {\n return [\n `${COMPONENT_NAME.value}__content-wrapper`,\n `${COMPONENT_NAME.value}__content-wrapper--${props.placement}`,\n ];\n });\n\n const parentNode = computed<HTMLElement>(() => {\n return drawerEle.value && (drawerEle.value.parentNode as HTMLElement);\n });\n\n const modeAndPlacement = computed<string>(() => {\n return [props.mode, props.placement].join();\n });\n\n const footerStyle = computed(() => {\n return {\n display: 'flex',\n justifyContent: props.placement === 'right' ? 'flex-start' : 'flex-end',\n };\n });\n\n const handleEscKeydown = (e: KeyboardEvent) => {\n if ((props.closeOnEscKeydown ?? globalConfig.value.closeOnEscKeydown) && e.key === 'Escape' && isVisible.value) {\n props.onEscKeydown?.({ e });\n closeDrawer({ trigger: 'esc', e });\n }\n };\n\n const clearStyleFunc = () => {\n clearTimeout(styleTimer.value);\n styleTimer.value = setTimeout(() => {\n styleEl.value?.parentNode?.removeChild?.(styleEl.value);\n }, 150);\n };\n\n const handlePushMode = () => {\n if (props.mode !== 'push') return;\n nextTick(() => {\n if (!parentNode.value) return;\n parentNode.value.style.cssText = 'transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;';\n });\n };\n // push 动画效果处理\n const updatePushMode = () => {\n if (!parentNode.value) return;\n if (props.mode !== 'push' || !parentNode.value) return;\n const marginStr = {\n left: `margin: 0 0 0 ${sizeValue.value}`,\n right: `margin: 0 0 0 -${sizeValue.value}`,\n top: `margin: ${sizeValue.value} 0 0 0`,\n bottom: `margin: -${sizeValue.value} 0 0 0`,\n }[props.placement];\n if (isVisible.value) {\n parentNode.value.style.cssText += marginStr;\n } else {\n parentNode.value.style.cssText = parentNode.value.style.cssText.replace(/margin:.+;/, '');\n }\n };\n\n // locale 全局配置,插槽,props,默认值,决定了按钮最终呈现\n const getDefaultFooter = () => {\n // this.getConfirmBtn is a function of useAction\n const confirmBtn = getConfirmBtn({\n confirmBtn: props.confirmBtn as TdDrawerProps['confirmBtn'],\n globalConfirm: globalConfig.value.confirm,\n className: `${COMPONENT_NAME.value}__confirm`,\n });\n // this.getCancelBtn is a function of useAction\n const cancelBtn = getCancelBtn({\n cancelBtn: props.cancelBtn as TdDrawerProps['cancelBtn'],\n globalCancel: globalConfig.value.cancel,\n className: `${COMPONENT_NAME.value}__cancel`,\n });\n return (\n <div style={footerStyle.value}>\n {props.placement === 'right' ? confirmBtn : null}\n {cancelBtn}\n {props.placement !== 'right' ? confirmBtn : null}\n </div>\n );\n };\n watch(\n modeAndPlacement,\n () => {\n handlePushMode();\n },\n { immediate: true },\n );\n watch(\n () => props.visible,\n (value) => {\n if (isServer) return;\n if (value) {\n if (!props.showInAttachedElement && props.preventScrollThrough) {\n styleEl.value && document.head.appendChild(styleEl.value);\n }\n } else {\n clearStyleFunc();\n }\n\n // 打开前动画或关闭前动画\n value ? props.onBeforeOpen?.() : props.onBeforeClose?.();\n\n // 处理显示逻辑\n if (props.destroyOnClose) {\n if (value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => {\n isVisible.value = true;\n });\n } else {\n isVisible.value = false;\n setTimeout(() => {\n destroyOnCloseVisible.value = true;\n }, 200);\n }\n } else if (destroyOnCloseVisible.value === true && value) {\n destroyOnCloseVisible.value = false;\n setTimeout(() => {\n isVisible.value = true;\n });\n } else {\n isVisible.value = value;\n }\n },\n { immediate: true },\n );\n const handleCloseBtnClick = (e: MouseEvent) => {\n props.onCloseBtnClick?.({ e });\n closeDrawer({ trigger: 'close-btn', e });\n };\n const handleWrapperClick = (e: MouseEvent) => {\n props.onOverlayClick?.({ e });\n if (props.closeOnOverlayClick ?? globalConfig.value.closeOnOverlayClick) {\n closeDrawer({ trigger: 'overlay', e });\n }\n };\n\n const closeDrawer = (params: DrawerCloseContext) => {\n props.onClose?.(params);\n context.emit('update:visible', false);\n };\n\n onUpdated(() => {\n updatePushMode();\n });\n\n onMounted(() => {\n const hasScrollBar = window.innerWidth > document.documentElement.clientWidth;\n const scrollWidth = hasScrollBar ? getScrollbarWidth() : 0;\n\n styleEl.value = document.createElement('style');\n styleEl.value.dataset.id = `td_drawer_${+new Date()}_${(key += 1)}`;\n styleEl.value.innerHTML = `\n html body {\n overflow-y: hidden;\n transition: margin 300ms cubic-bezier(0.7, 0.3, 0.1, 1) 0s;\n ${props.mode === 'push' ? '' : `width: calc(100% - ${scrollWidth}px);`}\n }\n `;\n\n if (isVisible.value && !props.showInAttachedElement && props.preventScrollThrough) {\n document.head.appendChild(styleEl.value);\n }\n\n window.addEventListener('keydown', handleEscKeydown);\n });\n\n onBeforeUnmount(() => {\n clearStyleFunc();\n window.removeEventListener('keydown', handleEscKeydown);\n });\n\n return () => {\n if (destroyOnCloseVisible.value) return;\n const body = renderContent('body', 'default');\n const headerContent = renderTNodeJSX('header');\n const defaultFooter = getDefaultFooter();\n return (\n <Teleport disabled={!props.attach || !teleportElement.value} to={teleportElement.value}>\n <div\n ref={drawerEle}\n class={drawerClasses.value}\n style={{ zIndex: props.zIndex }}\n onKeydown={handleEscKeydown}\n tabindex={0}\n {...context.attrs}\n >\n {props.showOverlay && <div class={`${COMPONENT_NAME.value}__mask`} onClick={handleWrapperClick} />}\n <div class={wrapperClasses.value} style={wrapperStyles.value}>\n {headerContent && <div class={`${COMPONENT_NAME.value}__header`}>{headerContent}</div>}\n {props.closeBtn && (\n <div class={`${COMPONENT_NAME.value}__close-btn`} onClick={handleCloseBtnClick}>\n {renderTNodeJSX('closeBtn', <CloseIcon />)}\n </div>\n )}\n <div class={[`${COMPONENT_NAME.value}__body`, 'narrow-scrollbar']}>{body}</div>\n {props.footer && (\n <div class={`${COMPONENT_NAME.value}__footer`}>{renderTNodeJSX('footer', defaultFooter)}</div>\n )}\n {props.sizeDraggable && <div style={draggableLineStyles.value} onMousedown={enableDrag}></div>}\n </div>\n </div>\n </Teleport>\n );\n };\n },\n});\n"],"names":["key","defineComponent","name","inheritAttrs","props","emits","setup","context","destroyOnCloseVisible","ref","isVisible","styleEl","styleTimer","_useConfig","useConfig","globalConfig","_useGlobalIcon","useGlobalIcon","CloseIcon","TdCloseIcon","renderTNodeJSX","useTNodeJSX","renderContent","useContent","COMPONENT_NAME","usePrefixClass","_useDrag","useDrag","draggedSizeValue","enableDrag","draggableLineStyles","teleportElement","useTeleport","attach","confirmBtnAction","e","_props2$onConfirm","onConfirm","cancelBtnAction","_props2$onCancel","onCancel","closeDrawer","trigger","_useAction","useAction","getConfirmBtn","getCancelBtn","drawerEle","drawerClasses","computed","value","concat","placement","_defineProperty","showInAttachedElement","showOverlay","sizeValue","_props2$size","size","defaultSize","isNaN","Number","small","medium","large","wrapperStyles","transform","width","includes","height","wrapperClasses","parentNode","modeAndPlacement","mode","join","footerStyle","display","justifyContent","handleEscKeydown","_props2$closeOnEscKey","closeOnEscKeydown","_props2$onEscKeydown","onEscKeydown","clearStyleFunc","clearTimeout","setTimeout","_styleEl$value","_styleEl$value$remove","removeChild","call","handlePushMode","nextTick","style","cssText","updatePushMode","marginStr","left","right","top","bottom","replace","getDefaultFooter","confirmBtn","globalConfirm","confirm","className","cancelBtn","globalCancel","cancel","_createVNode","watch","immediate","visible","_props2$onBeforeOpen","_props2$onBeforeClose","isServer","preventScrollThrough","document","head","appendChild","onBeforeOpen","onBeforeClose","destroyOnClose","handleCloseBtnClick","_props2$onCloseBtnCli","onCloseBtnClick","handleWrapperClick","_props2$onOverlayClic","_props2$closeOnOverla","onOverlayClick","closeOnOverlayClick","params","_props2$onClose","onClose","emit","onUpdated","onMounted","hasScrollBar","window","innerWidth","documentElement","clientWidth","scrollWidth","getScrollbarWidth","createElement","dataset","id","Date","innerHTML","addEventListener","onBeforeUnmount","removeEventListener","body","headerContent","defaultFooter","Teleport","_default","_mergeProps","zIndex","attrs","closeBtn","footer","sizeDraggable"],"mappings":"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"}