{"version":3,"file":"layoutGridItem.mjs","names":[],"sources":["../../../../src/components/layoutGrid/src/layoutGridItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { definePropType, makeSlots, useExpose, useRender } from \"../../../utils\";\nimport type { Ref } from \"vue\";\nimport type { FaLayoutGridBreakpoint, FaLayoutGridItemResponsive } from \"./layoutGrid.type\";\n\n/** FaLayoutGridItem 的插槽参数 */\nexport interface FaLayoutGridItemSlots extends Record<string, unknown> {\n\t/** 默认内容插槽 */\n\tdefault: never;\n}\n\nexport default defineComponent({\n\tname: \"FaLayoutGridItem\",\n\tprops: {\n\t\t/** 偏移 */\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 0,\n\t\t},\n\t\t/** 占位 */\n\t\tspan: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: 1,\n\t\t},\n\t\t/** 后缀 */\n\t\tsuffix: { type: Boolean, default: false },\n\t\t/** 响应式，小于480px屏幕配置 */\n\t\txs: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 响应式，平板竖屏配置 */\n\t\tsm: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 响应式，平板横屏配置 */\n\t\tmd: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 响应式，小型桌面配置 */\n\t\tlg: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** 响应式，大型桌面配置 */\n\t\txl: {\n\t\t\ttype: definePropType<FaLayoutGridItemResponsive>(Object),\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\tslots: makeSlots<FaLayoutGridItemSlots>(),\n\tsetup(props, { attrs, slots, expose }) {\n\t\tconst attrsObj = attrs as Record<string, unknown>;\n\n\t\t// 注入布局状态\n\t\tconst breakpoint = inject<Ref<FaLayoutGridBreakpoint>>(\"breakpoint\", ref(\"xl\"));\n\t\tconst firstHiddenIndex = inject<Ref<number>>(\"firstHiddenIndex\", ref(-1));\n\t\tconst gap = inject<Ref<number>>(\"gap\", ref(0));\n\t\tconst cols = inject<Ref<number>>(\"cols\", ref(5));\n\n\t\tconst state = reactive({\n\t\t\tshow: true,\n\t\t});\n\n\t\tconst style = computed(() => {\n\t\t\tconst activeBreakpointProps = props[breakpoint.value];\n\t\t\tconst span = activeBreakpointProps?.span ?? (typeof props.span === \"number\" ? props.span : Number(props.span));\n\t\t\tconst offset = activeBreakpointProps?.offset ?? (typeof props.offset === \"number\" ? props.offset : Number(props.offset));\n\t\t\tif (props.suffix) {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumnStart: cols.value - span - offset + 1,\n\t\t\t\t\tgridColumnEnd: `span ${span + offset}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap.value}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tgridColumn: `span ${span + offset > cols.value ? cols.value : span + offset}/span ${\n\t\t\t\t\t\tspan + offset > cols.value ? cols.value : span + offset\n\t\t\t\t\t}`,\n\t\t\t\t\tmarginLeft: offset !== 0 ? `calc(((100% + ${gap.value}px) / ${span + offset}) * ${offset})` : \"unset\",\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\n\t\twatch(\n\t\t\t() => [firstHiddenIndex.value, breakpoint.value],\n\t\t\t(n) => {\n\t\t\t\tconst index = Number(attrsObj[\"data-index\"] ?? attrsObj[\"index\"]);\n\t\t\t\tif (Number.isInteger(index)) {\n\t\t\t\t\tstate.show = !(n[0] !== -1 && index >= Number(n[0]));\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<div style={style.value} vShow={state.show}>\n\t\t\t\t{slots.default?.()}\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\tshow: computed(() => state.show),\n\t\t});\n\t},\n});\n"],"mappings":";;;;;;AAWA,IAAA,yBAAe,gBAAgB;CAC9B,MAAM;CACN,OAAO;;EAEN,QAAQ;GACP,MAAM,CAAC,QAAQ,MAAM;GACrB,SAAS;EACV;;EAEA,MAAM;GACL,MAAM,CAAC,QAAQ,MAAM;GACrB,SAAS;EACV;;EAEA,QAAQ;GAAE,MAAM;GAAS,SAAS;EAAM;;EAExC,IAAI;GACH,MAAM,eAA2C,MAAM;GACvD,SAAS,KAAA;EACV;;EAEA,IAAI;GACH,MAAM,eAA2C,MAAM;GACvD,SAAS,KAAA;EACV;;EAEA,IAAI;GACH,MAAM,eAA2C,MAAM;GACvD,SAAS,KAAA;EACV;;EAEA,IAAI;GACH,MAAM,eAA2C,MAAM;GACvD,SAAS,KAAA;EACV;;EAEA,IAAI;GACH,MAAM,eAA2C,MAAM;GACvD,SAAS,KAAA;EACV;CACD;CACA,OAAO,UAAiC;CACxC,MAAM,OAAO,EAAE,OAAO,OAAO,UAAU;EACtC,MAAM,WAAW;EAGjB,MAAM,aAAa,OAAoC,cAAc,IAAI,IAAI,CAAC;EAC9E,MAAM,mBAAmB,OAAoB,oBAAoB,IAAI,EAAE,CAAC;EACxE,MAAM,MAAM,OAAoB,OAAO,IAAI,CAAC,CAAC;EAC7C,MAAM,OAAO,OAAoB,QAAQ,IAAI,CAAC,CAAC;EAE/C,MAAM,QAAQ,SAAS,EACtB,MAAM,KACP,CAAC;EAED,MAAM,QAAQ,eAAe;GAC5B,MAAM,wBAAwB,MAAM,WAAW;GAC/C,MAAM,OAAO,uBAAuB,SAAS,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO,OAAO,MAAM,IAAI;GAC5G,MAAM,SAAS,uBAAuB,WAAW,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,OAAO,MAAM,MAAM;GACtH,IAAI,MAAM,QACT,OAAO;IACN,iBAAiB,KAAK,QAAQ,OAAO,SAAS;IAC9C,eAAe,QAAQ,OAAO;IAC9B,YAAY,WAAW,IAAI,iBAAiB,IAAI,MAAK,QAAS,OAAO,OAAM,MAAO,OAAM,KAAM;GAC/F;QAEA,OAAO;IACN,YAAY,QAAQ,OAAO,SAAS,KAAK,QAAQ,KAAK,QAAQ,OAAO,OAAM,QAC1E,OAAO,SAAS,KAAK,QAAQ,KAAK,QAAQ,OAAO;IAElD,YAAY,WAAW,IAAI,iBAAiB,IAAI,MAAK,QAAS,OAAO,OAAM,MAAO,OAAM,KAAM;GAC/F;EAEF,CAAC;EAED,YACO,CAAC,iBAAiB,OAAO,WAAW,KAAK,IAC9C,MAAM;GACN,MAAM,QAAQ,OAAO,SAAS,iBAAiB,SAAS,QAAQ;GAChE,IAAI,OAAO,UAAU,KAAK,GACzB,MAAM,OAAO,EAAE,EAAE,OAAO,MAAM,SAAS,OAAO,EAAE,EAAE;EAEpD,GACA,EAAE,WAAW,KAAK,CACnB;EAEA,gBAAU,eAAA,YAAA,OAAA,EAAA,SACG,MAAM,MAAK,GAAA,CACrB,MAAM,UAAU,CAAC,CAAA,GAAA,CAAA,CAAA,OADa,MAAM,IAAI,CAAA,CAAA,CAG1C;EAED,OAAO,UAAU,QAAQ,EACxB,MAAM,eAAe,MAAM,IAAI,EAChC,CAAC;CACF;AACD,CAAC"}