xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 5.06 kB
Source Map (JSON)
{"version":3,"file":"sticky-item.mjs","sources":["../../src/sticky-tool/sticky-item.tsx"],"sourcesContent":["import { computed, defineComponent, PropType } from 'vue';\nimport baseProps from './sticky-item-props';\nimport TdStickyToolProps from './props';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport type { Styles } from '../common';\nimport Popup from '../popup';\nimport { useTNodeJSX } from '../hooks';\n\nimport type { TdStickyItemProps } from './type';\nimport type { TdPopupProps } from '../popup/type';\n\nexport default defineComponent({\n name: 'XStickyItem',\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 Object.keys(baseProps).forEach((i) => (item[i] = props[i]));\n props.onClick({ e, item });\n };\n const handleHoverItem = (e: MouseEvent) => {\n const item: TdStickyItemProps = {};\n Object.keys(baseProps).forEach((i) => (item[i] = props[i]));\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":["name","props","basePopupProps","styles","e","item","hideEmptyPopup","_createVNode","_mergeProps"],"mappings":"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"}