UNPKG

tdesign-mobile-vue

Version:
1 lines 7.61 kB
{"version":3,"file":"grid-item.mjs","sources":["../../src/grid/grid-item.tsx"],"sourcesContent":["import { defineComponent, computed, inject } from 'vue';\nimport { isFunction, isString, isObject } from 'lodash-es';\nimport { Hover } from '../shared';\nimport config from '../config';\nimport props from './grid-item-props';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport TImage from '../image';\nimport TBadge from '../badge';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-grid-item`,\n directives: { Hover },\n components: { TImage, TBadge },\n props,\n setup(props, context) {\n const gridItemClass = usePrefixClass('grid-item');\n\n const renderTNodeJSX = useTNodeJSX();\n const { column, border, align, gutter, hover } = inject<any>('grid');\n\n const rootStyle = computed(() => {\n const percent = column.value > 0 ? `${100 / +column.value}%` : 0;\n const style: Record<string, any> = {\n textAlign: ['center', 'left'].includes(align.value) ? align.value : 'center',\n };\n if (percent !== 0) {\n style.flexBasis = percent;\n }\n return style;\n });\n\n const size = computed(() => {\n if (column.value > 4 || !column.value) return 'small';\n return column.value < 4 ? 'large' : 'middle';\n });\n\n const realImage = computed(() => {\n if (isString(props.image)) return { src: props.image };\n if (isObject(props.image) && !isFunction(props.image) && !context.slots.image) {\n return props.image;\n }\n return null;\n });\n\n const gridItemClasses = computed(() => [\n `${gridItemClass.value}`,\n `${gridItemClass.value}--${props.layout}`,\n {\n [`${gridItemClass.value}--bordered`]: border.value,\n [`${gridItemClass.value}--surround`]: border.value && gutter.value,\n },\n ]);\n\n return () => {\n const renderImage = () => {\n if (realImage.value) {\n return <t-image shape=\"round\" {...realImage.value} />;\n }\n if (props.icon) {\n return renderTNodeJSX('icon');\n }\n return renderTNodeJSX('image');\n };\n\n return (\n <div\n class={gridItemClasses.value}\n style={rootStyle.value}\n v-hover={{ className: `${gridItemClass.value}--hover`, disabledHover: !hover.value }}\n >\n <div class={`${gridItemClass.value}__image ${gridItemClass.value}__image--${size.value}`}>\n {props.badge ? <t-badge {...(props.badge as Object)}>{renderImage()}</t-badge> : renderImage()}\n </div>\n\n <div class={`${gridItemClass.value}__content ${gridItemClass.value}__content--${props.layout}`}>\n <div class={`${gridItemClass.value}__title ${gridItemClass.value}__title--${size.value}`}>\n {renderTNodeJSX('text')}\n </div>\n <div class={`${gridItemClass.value}__description ${gridItemClass.value}__description--${props.layout}`}>\n {renderTNodeJSX('description')}\n </div>\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","prefix","config","defineComponent","name","directives","Hover","components","TImage","TBadge","props","setup","context","gridItemClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","_inject","inject","column","border","align","gutter","hover","rootStyle","computed","percent","value","concat","style","textAlign","includes","flexBasis","size","realImage","isString","image","src","isObject","isFunction","slots","gridItemClasses","layout","_defineProperty","_slot","renderImage","_createVNode","_resolveComponent","_mergeProps","icon","_withDirectives","badge","className","disabledHover"],"mappings":"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"}