tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 6.87 kB
Source Map (JSON)
{"version":3,"file":"sticky-item.mjs","sources":["../../../components/sticky-tool/sticky-item.tsx"],"sourcesContent":["import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { useTNodeJSX, usePrefixClass } from '@tdesign/shared-hooks';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'TStickyItem',\n props: {\n ...baseProps,\n type: TdStickyToolProps.type,\n shape: TdStickyToolProps.shape,\n placement: TdStickyToolProps.placement,\n basePopupProps: Object as PropType<TdPopupProps>,\n baseWidth: TdStickyToolProps.width,\n onClick: TdStickyToolProps.onClick,\n onHover: TdStickyToolProps.onHover,\n },\n setup(props) {\n const COMPONENT_NAME = usePrefixClass('sticky-item');\n const baseClass = computed(() => {\n return [\n `${COMPONENT_NAME.value}`,\n `${COMPONENT_NAME.value}--${props.type}`,\n `${COMPONENT_NAME.value}--${props.shape}`,\n ];\n });\n const labelClass = computed(() => {\n return [`${COMPONENT_NAME.value}__label`];\n });\n const popupPlacement = computed(() => {\n return props.placement.indexOf('right') !== -1 ? 'left' : 'right';\n });\n const styles = computed(() => {\n const styles: Styles = {};\n if (props.baseWidth) {\n const selfWidth = props.type === 'normal' ? '56px' : '40px';\n styles.margin = `calc((${props.baseWidth} - ${selfWidth})/2)`;\n }\n return styles;\n });\n const handleClickItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n // @ts-ignore\n // TODO 这里因为 props 类型的原因,暂不好修改,后续改成 setup 就简单了\n (Object.keys(baseProps) as (keyof typeof baseProps)[]).forEach((i) => (item[i] = props[i] as any));\n props.onHover({ e, item });\n };\n const renderTNodeJSX = useTNodeJSX();\n const popupProps = Object.assign({ hideEmptyPopup: true }, props.basePopupProps, props.popupProps);\n return () => (\n <Popup\n overlayInnerClassName={`${usePrefixClass('sticky-tool').value}-popup-content`}\n trigger={props.trigger}\n placement={popupPlacement.value}\n content={() => renderTNodeJSX('popup')}\n {...popupProps}\n >\n <div class={baseClass.value} style={styles.value} onClick={handleClickItem} onMouseenter={handleHoverItem}>\n {renderTNodeJSX('icon')}\n {props.type === 'normal' ? <div class={labelClass.value}>{renderTNodeJSX('label')}</div> : null}\n </div>\n </Popup>\n );\n },\n});\n"],"names":["defineComponent","name","props","_objectSpread","baseProps","type","TdStickyToolProps","shape","placement","basePopupProps","Object","baseWidth","width","onClick","onHover","setup","COMPONENT_NAME","usePrefixClass","baseClass","computed","concat","value","labelClass","popupPlacement","indexOf","styles","selfWidth","margin","handleClickItem","e","item","keys","forEach","i","handleHoverItem","renderTNodeJSX","useTNodeJSX","popupProps","assign","hideEmptyPopup","_createVNode","Popup","_mergeProps","trigger","content","_default"],"mappings":"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"}