{"version":3,"file":"SopDataTable.mjs","sources":["../../../src/components/SopDataTable/SopDataTable.tsx"],"sourcesContent":["import { defineComponent, ref, onMounted, computed, nextTick, onBeforeUpdate } from 'vue';\n\nexport default defineComponent({\n  name: 'SopDataTable',\n  props: {\n    title: {\n      type: String,\n      default: ''\n    },\n    cols: {\n      type: Number,\n      default: 2\n    },\n    gap: {\n      type: Number,\n      default: 16\n    }\n  },\n  setup(props, { slots }) {\n    // 获取实际 slot 中 item 内容项个数\n    const content = ref<HTMLElement | null>(null);\n    // 计算出每一项的宽度并在 style 中引用\n    const itemWidth = computed(() => `calc((100% - ${props.gap * (props.cols - 1)}px) / ${props.cols})`);\n\n    onMounted(() => {\n      setSopDateTableItemWidth();\n    });\n\n    onBeforeUpdate(() => {\n      setSopDateTableItemWidth();\n    });\n\n    async function setSopDateTableItemWidth() {\n      await nextTick();\n      const items = content.value?.querySelectorAll('.sop-data-table-item') || [];\n      if (items.length) {\n        for (let i = 0; i <= items.length; i++) {\n          if ((items[i] as HTMLDivElement)) {\n            (items[i] as HTMLDivElement).style.width = itemWidth.value;\n          }\n        }\n      }\n    }\n\n    return () => (\n      <div class=\"sop-data-table\">\n        {\n          props.title &&\n          <div class=\"sop-data-table__title\">\n            { props.title }\n          </div>\n        }\n\n        <div\n          ref={content}\n          class=\"sop-data-table__content\"\n          style={{ gap: `0 ${props.gap + 'px'}` }}\n        >\n          {slots.default?.()}\n        </div>\n      </div>\n    );\n  },\n});\n"],"names":["defineComponent","name","props","title","type","String","default","cols","Number","gap","setup","slots","content","ref","itemWidth","computed","onMounted","setSopDateTableItemWidth","onBeforeUpdate","nextTick","items","value","querySelectorAll","length","i","style","width","_createVNode"],"mappings":";AAEA,MAAeA,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAO;AAAA,IACLC,OAAO;AAAA,MACLC,MAAMC;AAAAA,MACNC,SAAS;AAAA,IACV;AAAA,IACDC,MAAM;AAAA,MACJH,MAAMI;AAAAA,MACNF,SAAS;AAAA,IACV;AAAA,IACDG,KAAK;AAAA,MACHL,MAAMI;AAAAA,MACNF,SAAS;AAAA,IACX;AAAA,EACD;AAAA,EACDI,MAAMR,OAAO;AAAA,IAAES;AAAAA,EAAM,GAAG;AAEtB,UAAMC,UAAUC,IAAwB,IAAI;AAE5C,UAAMC,YAAYC,SAAS,MAAO,gBAAeb,MAAMO,OAAOP,MAAMK,OAAO,EAAG,SAAQL,MAAMK,IAAK,GAAE;AAEnGS,cAAU,MAAM;AACdC;IACF,CAAC;AAEDC,mBAAe,MAAM;AACnBD;IACF,CAAC;AAED,mBAAeA,2BAA2B;;AACxC,YAAME,SAAQ;AACd,YAAMC,UAAQR,aAAQS,UAART,mBAAeU,iBAAiB,4BAA2B;AACzE,UAAIF,MAAMG,QAAQ;AAChB,iBAASC,IAAI,GAAGA,KAAKJ,MAAMG,QAAQC,KAAK;AACtC,cAAKJ,MAAMI,CAAC,GAAsB;AAC/BJ,kBAAMI,CAAC,EAAqBC,MAAMC,QAAQZ,UAAUO;AAAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAA;;AAAAM,yBAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAGDzB,MAAMC,SAAKwB,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAEPzB,MAAMC,KAAK,CAAA,GACTwB,YAAA,OAAA;AAAA,QAAA,OAIDf;AAAAA,QAAO,SAAA;AAAA,QAAA,SAEL;AAAA,UAAEH,KAAM,KAAIP,MAAMO,MAAM,IAAK;AAAA,QAAE;AAAA,MAAC,GAAA,EAEtCE,WAAML,YAANK,8BAAiB,CAGvB,CAAA,CAAA;AAAA;AAAA,EACH;AACF,CAAC;"}