{"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAS+B,SAAAA,QAAAC,CAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAA,KAAA,UAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAJ,CAAA,CAAAK,KAAAA,iBAAAA,IAAAA,CAAAA,OAAA,CAAAL,CAAA,CAAA,CAAA;AAAA,CAAA;AAE/B,IAAQM,SAAWC,MAAA,CAAXD;AAER,gBAAeE,eAAgB,CAAA;AAC7BC,EAAAA,gBAASH,MAAA,EAAA,YAAA,CAAA;AACTI,EAAAA,UAAA,EAAY;AAAEC,IAAAA,MAAA,EAAAA,KAAA;AAAQC,IAAAA,MAAO,EAAPA,KAAAA;GAAO;AAC7BC,EAAAA,KAAA,EAAAA,KAAA;AACAC,EAAAA,KAAA,WAAAA,KAAAA,CAAMD,QAAOE,OAAS,EAAA;AACd,IAAA,IAAAC,aAAA,GAAgBC,eAAe,WAAW,CAAA,CAAA;AAEhD,IAAA,IAAMC,iBAAiBC,WAAY,EAAA,CAAA;AACnC,IAAA,IAAAC,OAAA,GAA0CC,OAAY,MAAM,CAAA;MAApDC,MAAQ,GAAAF,OAAA,CAARE,MAAQ;MAAAC,MAAA,GAAAH,OAAA,CAAAG,MAAA;MAAQC,gBAAAA;MAAOC,MAAO,GAAAL,OAAA,CAAPK,MAAO,CAAA;AAEhC,IAAA,IAAAC,SAAA,GAAYC,SAAS,YAAM;AACzB,MAAA,IAAAC,OAAA,GAAUN,OAAOO,KAAQ,GAAA,CAAA,GAAA,EAAA,CAAAC,MAAA,CAAO,GAAM,GAAA,CAACR,OAAOO,KAAW,SAAA,CAAA,CAAA;AAC/D,MAAA,IAAME,KAA6B,GAAA;AACjCC,QAAAA,SAAA,EAAW,CAAC,QAAA,EAAU,MAAM,CAAA,CAAEC,SAAST,KAAM,CAAAK,KAAK,CAAI,GAAAL,KAAA,CAAMK,KAAQ,GAAA,QAAA;OACtE,CAAA;MACA,IAAID,YAAY,CAAG,EAAA;QACjBG,KAAA,CAAMG,SAAY,GAAAN,OAAA,CAAA;AACpB,OAAA;AACO,MAAA,OAAAG,KAAA,CAAA;AACT,KAAC,CAAA,CAAA;AAEK,IAAA,IAAAI,IAAA,GAAOR,SAAS,YAAM;AAC1B,MAAA,IAAIL,MAAO,CAAAO,KAAA,GAAQ,CAAK,IAAA,CAACP,MAAO,CAAAO,KAAA,EAAc,OAAA,OAAA,CAAA;MACvC,OAAAP,MAAA,CAAOO,KAAQ,GAAA,CAAA,GAAI,OAAU,GAAA,QAAA,CAAA;AACtC,KAAC,CAAA,CAAA;AAEK,IAAA,IAAAO,SAAA,GAAYT,SAAS,YAAM;AAC3B,MAAA,IAAAU,UAAA,CAASxB,OAAMyB,KAAK,CAAA,EAAU,OAAA;QAAEC,GAAK1B,EAAAA,MAAAA,CAAMyB,KAAAA;OAAM,CAAA;MACrD,IAAIE,UAAS3B,CAAAA,MAAAA,CAAMyB,KAAK,CAAA,IAAK,CAACG,YAAA,CAAW5B,MAAM,CAAAyB,KAAK,CAAK,IAAA,CAACvB,OAAQ,CAAA2B,KAAA,CAAMJ,KAAO,EAAA;QAC7E,OAAOzB,MAAM,CAAAyB,KAAA,CAAA;AACf,OAAA;AACO,MAAA,OAAA,IAAA,CAAA;AACT,KAAC,CAAA,CAAA;IAEK,IAAAK,eAAA,GAAkBhB,SAAS,YAAA;MAAA,OAAM,CAAA,EAAA,CAAAG,MAAA,CAClCd,aAAc,CAAAa,KAAA,CAAA,EAAA,EAAA,CAAAC,MAAA,CACdd,aAAc,CAAAa,KAAA,EAAA,IAAA,CAAA,CAAAC,MAAA,CAAUjB,MAAM,CAAA+B,MAAA,CAAA,EAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAA,EAAA,CAAAf,MAAA,CAE3Bd,aAAc,CAAAa,KAAA,EAAA,YAAA,CAAA,EAAoBN,MAAO,CAAAM,KAAA,MAAAC,MAAA,CACzCd,aAAA,CAAca,KAAoB,iBAAAN,MAAA,CAAOM,SAASJ,MAAO,CAAAI,KAAA,CAEhE,CAAA,CAAA;KAAA,CAAA,CAAA;AAED,IAAA,OAAO,YAAM;AAAA,MAAA,IAAAiB,KAAA,CAAA;AACX,MAAA,IAAMC,WAAc,GAAA,SAAdA,WAAcA,GAAA;QAAA,OAClBX,SAAU,CAAAP,KAAA,GAAAmB,WAAA,CAAAC,gBAAA,aAAAC,UAAA,CAAA;UAAA,OAAuB,EAAA,OAAA;AAAA,SAAA,EAAYd,SAAU,CAAAP,KAAA,WAAYX,cAAA,CAAe,OAAO,CAAA,CAAA;AAAA,OAAA,CAAA;AAE3F,MAAA,OAAA8B,WAAA,CAAA,KAAA,EAAA;QAAA,OACcL,EAAAA,eAAgB,CAAAd,KAAA;AAAA,QAAA,OAAA,EAAcH,SAAU,CAAAG,KAAAA;AAAA,OAAA,EAAA,CAAAmB,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAlB,MAAA,CACnCd,cAAca,KAAgB,cAAAC,MAAA,CAAAd,aAAA,CAAca,KAAiB,EAAAC,WAAAA,CAAAA,CAAAA,MAAA,CAAAK,IAAA,CAAKN,KAC9EhB,CAAAA;OAAAA,EAAAA,CAAAA,MAAAA,CAAMsC,iDAAsBtC,OAAMsC,KAAmB,EAAApD,OAAA,CAAA+C,KAAA,GAAAC,WAAA;;;;WAA2BA,WAAY,EAAA,CAAA,CAAA,EAAAC,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAlB,MAAA,CAGhFd,cAAca,KAAkB,gBAAAC,MAAA,CAAAd,aAAA,CAAca,6BAAmBhB,MAAM,CAAA+B,MAAA,CAAA;AAAA,OAAA,EAAA,CAAAI,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAlB,MAAA,CACrEd,aAAc,CAAAa,KAAA,cAAAC,MAAA,CAAgBd,aAAc,CAAAa,KAAA,EAAAC,WAAAA,CAAAA,CAAAA,MAAA,CAAiBK,IAAK,CAAAN,KAAA,CAAA;AAAA,OAAA,EAAA,CAC9EX,cAAe,CAAA,MAAM;2BAETF,aAAc,CAAAa,KAAA,oBAAAC,MAAA,CAAsBd,aAAc,CAAAa,KAAA,EAAAC,iBAAAA,CAAAA,CAAAA,MAAA,CAAuBjB,MAAM,CAAA+B,MAAA,CAAA;OAC3F1B,EAAAA,CAAAA,cAAe,CAAA,aAAa;KAKvC,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}