{"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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"}