xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 3.7 kB
Source Map (JSON)
{"version":3,"file":"dropdown-item.mjs","sources":["../../src/dropdown/dropdown-item.tsx"],"sourcesContent":["import { defineComponent, ref, PropType } from 'vue';\nimport { TdDropdownProps } from '../dropdown/type';\n\nimport dropdownItemProps from './dropdown-item-props';\nimport useRipple from '../hooks/useRipple';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { pxCompat } from '../utils/helper';\n\nexport default defineComponent({\n name: 'XDropdownItem',\n props: {\n ...dropdownItemProps,\n maxColumnWidth: {\n type: [String, Number] as PropType<TdDropdownProps['maxColumnWidth']>,\n default: 100,\n },\n minColumnWidth: {\n type: [String, Number] as PropType<TdDropdownProps['minColumnWidth']>,\n default: 10,\n },\n isSubmenu: Boolean,\n },\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const renderContent = useContent();\n\n const itemRef = ref<HTMLElement>();\n\n useRipple(props.isSubmenu ? null : itemRef);\n const prefixIcon = renderTNodeJSX('prefixIcon');\n const dropdownItemClass = usePrefixClass('dropdown__item');\n const handleItemClick = (e: MouseEvent) => {\n props.onClick?.(props.value, {\n e,\n });\n };\n\n return () => {\n const content = renderContent('default', 'content');\n const classes = [\n dropdownItemClass.value,\n `${dropdownItemClass.value}--theme-${props.theme}`,\n {\n [`${dropdownItemClass.value}--active`]: props.active,\n [`${dropdownItemClass.value}--disabled`]: props.disabled,\n },\n ];\n\n return (\n <li\n class={classes}\n onClick={handleItemClick}\n style={{\n maxWidth: pxCompat(props.maxColumnWidth),\n minWidth: pxCompat(props.minColumnWidth),\n }}\n ref={itemRef}\n >\n {props.prefixIcon ? <div class={`${dropdownItemClass.value}-icon`}>{prefixIcon}</div> : null}\n {content}\n </li>\n );\n };\n },\n});\n"],"names":["name","props","maxColumnWidth","type","minColumnWidth","isSubmenu","e","_createVNode","maxWidth","minWidth"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oBAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,eAAAA;AACAC,EAAAA,KAAAA,EAAAA,aAAAA,CAAAA,aAAAA,CAAAA,EAAAA,EAAAA,iBAAAA,CAAAA,EAAAA,EAAAA,EAAAA;AAEEC,IAAAA,cAAAA,EAAAA;AACEC,MAAAA,IAAAA,EAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;;;AAGFC,IAAAA,cAAAA,EAAAA;AACED,MAAAA,IAAAA,EAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;;;AAGFE,IAAAA,SAAAA,EAAAA,OAAAA;;;AAGA,IAAA,IAAA,cAAA,GAAA,WAAA,EAAA,CAAA;AACA,IAAA,IAAA,aAAA,GAAA,UAAA,EAAA,CAAA;AAEA,IAAA,IAAA,OAAA,GAAA,GAAA,EAAA,CAAA;;AAGM,IAAA,IAAA,UAAA,GAAA,cAAA,CAAA,YAAA,CAAA,CAAA;AACA,IAAA,IAAA,iBAAA,GAAA,cAAA,CAAA,gBAAA,CAAA,CAAA;AACA,IAAA,IAAA,eAAA,GAAA,SAAA,eAAA,CAAA,CAAA,EAAA;AAAqC,MAAA,IAAA,cAAA,CAAA;AACnC,MAAA,CAAA,cAAA,GAAA,KAAA,CAAA,OAAA,MAAA,IAAA,IAAA,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAA,IAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,EAAA;AACJC,QAAAA,CAAAA,EAAAA,CAAAA;AACF,OAAA,CAAA,CAAA;;AAGF,IAAA,OAAA,YAAA;AAAa,MAAA,IAAA,IAAA,CAAA;AACL,MAAA,IAAA,OAAA,GAAA,aAAA,CAAA,SAAA,EAAA,SAAA,CAAA,CAAA;;AAUN,MAAA,OAAAC,WAAA,CAAA,IAAA,EAAA;AAAA,QAAA,OAAA,EAAA,OAAA;AAGI,QAAA,SAAA,EAAA,eAAA;;AAEEC,UAAAA,QAAAA,EAAAA,QAAAA,CAAAA,KAAAA,CAAAA,cAAAA,CAAAA;AACAC,UAAAA,QAAAA,EAAAA,QAAAA,CAAAA,KAAAA,CAAAA,cAAAA,CAAAA;;;AAEG,OAAA,EAAA,CAAA,KAAA,CAAA,UAAA,GAAAF,WAAA,CAAA,KAAA,EAAA;AAEe,QAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,iBAAA,CAAA,KAAA,EAAA,OAAA,CAAA;AAAiC,OAAA,EAAA,CAAA,UAAA,CAAA,CAAA,GAAA,IAAA,EAAA,OAAA,CAAA,CAAA,CAAA;;AAK7D,GAAA;AACF,CAAA,CAAA;;;;"}