UNPKG

tdesign-mobile-vue

Version:
1 lines 6.99 kB
{"version":3,"file":"grid-item.mjs","sources":["../../src/grid/grid-item.tsx"],"sourcesContent":["import { defineComponent, computed, inject } from 'vue';\nimport isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\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 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 } = 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 realImage.value ? <t-image shape=\"round\" {...realImage.value} /> : renderTNodeJSX('image');\n\n return (\n <div class={gridItemClasses.value} style={rootStyle.value}>\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","components","TImage","TBadge","props","setup","context","gridItemClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","_inject","inject","column","border","align","gutter","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","badge"],"mappings":"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"}