UNPKG

tdesign-mobile-vue

Version:
1 lines 7.66 kB
{"version":3,"file":"drawer.mjs","sources":["../../src/drawer/drawer.tsx"],"sourcesContent":["import { ref, watch, toRefs, defineComponent, h } from 'vue';\nimport TPopup from '../popup';\nimport config from '../config';\nimport props from './props';\nimport { DrawerItem } from './type';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-drawer`,\n props,\n emits: ['update:visible', 'itemClick', 'overlayClick'],\n setup(props, context) {\n const renderTNodeJSX = useTNodeJSX();\n const drawerClass = usePrefixClass('drawer');\n const { visible, showOverlay } = toRefs(props);\n const open = ref(visible.value || false);\n\n watch(open, () => {\n context.emit('update:visible', open.value);\n });\n\n watch(visible, () => {\n open.value = visible.value;\n });\n\n const onItemClick = (index: number, item: DrawerItem, context: { e: MouseEvent }) => {\n props.onItemClick?.(index, item, context);\n };\n\n const onVisibleChange = (visible: boolean) => {\n if (showOverlay.value) {\n props.onOverlayClick?.({ visible });\n }\n };\n\n const onClose = () => {\n props.onClose?.('overlay');\n };\n\n return () => {\n const { attach, zIndex, closeOnOverlayClick, destroyOnClose, items, placement, showOverlay } = props;\n const renderTitleNode = () => {\n const titleNode = renderTNodeJSX('title');\n if (!titleNode) {\n return null;\n }\n return <div class={`${drawerClass.value}__title`}>{titleNode}</div>;\n };\n const renderFooterNode = () => {\n const footerNode = renderTNodeJSX('footer');\n if (!footerNode) {\n return null;\n }\n return <div class={`${drawerClass.value}__footer`}>{footerNode}</div>;\n };\n return (\n <TPopup\n v-model={open.value}\n placement={placement}\n attach={attach}\n showOverlay={showOverlay}\n zIndex={zIndex}\n closeOnOverlayClick={closeOnOverlayClick}\n destroyOnClose={destroyOnClose}\n onVisibleChange={onVisibleChange}\n onClose={onClose}\n >\n <div class={`${drawerClass.value}`}>\n {renderTitleNode()}\n {renderTNodeJSX('default')}\n\n <div class={`${drawerClass.value}__sidebar`}>\n {(items || []).map((item, index) => (\n <div\n key={item.title}\n class={`${drawerClass.value}__sidebar-item`}\n onClick={(e) => onItemClick(index, item, { e })}\n >\n {item.icon && <span class={`${drawerClass.value}__sidebar-item-icon`}>{item.icon(h)}</span>}\n <div class={`${drawerClass.value}__sidebar-item-title`}>{item.title}</div>\n </div>\n ))}\n </div>\n\n {renderFooterNode()}\n </div>\n </TPopup>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","emits","setup","context","renderTNodeJSX","useTNodeJSX","drawerClass","usePrefixClass","_toRefs","toRefs","visible","showOverlay","open","ref","value","watch","emit","onItemClick","index","item","_props2$onItemClick","onVisibleChange","_props2$onOverlayClic","onOverlayClick","onClose","_props2$onClose","attach","zIndex","closeOnOverlayClick","destroyOnClose","items","placement","renderTitleNode","titleNode","_createVNode","concat","renderFooterNode","footerNode","TPopup","onUpdateModelValue","$event","default","_default","map","title","onClick","e","icon","h"],"mappings":"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"}