{"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/table/src/table-body/index.ts"],"sourcesContent":["// @ts-nocheck\nimport {\n  defineComponent,\n  getCurrentInstance,\n  h,\n  inject,\n  onUnmounted,\n  watch,\n} from 'vue'\nimport { isClient } from '@vueuse/core'\nimport { addClass, removeClass } from '@bigin/utils'\nimport { useNamespace } from '@bigin/hooks'\nimport useLayoutObserver from '../layout-observer'\nimport { removePopper } from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport useRender from './render-helper'\nimport defaultProps from './defaults'\n\nimport type { VNode } from 'vue'\n\nexport default defineComponent({\n  name: 'BTableBody',\n  props: defaultProps,\n  setup(props) {\n    const instance = getCurrentInstance()\n    const parent = inject(TABLE_INJECTION_KEY)\n    const ns = useNamespace('table')\n    const { wrappedRowRender, tooltipContent, tooltipTrigger } =\n      useRender(props)\n    const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent!)\n\n    watch(props.store.states.hoverRow, (newVal: any, oldVal: any) => {\n      if (!props.store.states.isComplex.value || !isClient) return\n      let raf = window.requestAnimationFrame\n      if (!raf) {\n        raf = (fn) => window.setTimeout(fn, 16)\n      }\n      raf(() => {\n        // just get first level children; fix #9723\n        const el = instance?.vnode.el as HTMLElement\n        const rows = Array.from(el?.children || []).filter((e) =>\n          e?.classList.contains(`${ns.e('row')}`)\n        )\n        const oldRow = rows[oldVal]\n        const newRow = rows[newVal]\n        if (oldRow) {\n          removeClass(oldRow, 'hover-row')\n        }\n        if (newRow) {\n          addClass(newRow, 'hover-row')\n        }\n      })\n    })\n\n    onUnmounted(() => {\n      removePopper?.()\n    })\n\n    return {\n      ns,\n      onColumnsChange,\n      onScrollableChange,\n      wrappedRowRender,\n      tooltipContent,\n      tooltipTrigger,\n    }\n  },\n  render() {\n    const { wrappedRowRender, store } = this\n    const data = store.states.data.value || []\n    return h('tbody', {}, [\n      data.reduce((acc: VNode[], row) => {\n        return acc.concat(wrappedRowRender(row, acc.length))\n      }, []),\n    ])\n  },\n})\n"],"names":[],"mappings":";;;;;;;;;;;;AAoBA,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,YAAA;AAAA,EACN,KAAO,EAAA,YAAA;AAAA,EACP,MAAM,KAAO,EAAA;AACX,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAM,MAAA,MAAA,GAAS,OAAO,mBAAmB,CAAA,CAAA;AACzC,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAC/B,IAAA,MAAM,EAAE,gBAAkB,EAAA,cAAA,EAAgB,cAAe,EAAA,GACvD,UAAU,KAAK,CAAA,CAAA;AACjB,IAAA,MAAM,EAAE,eAAA,EAAiB,kBAAmB,EAAA,GAAI,kBAAkB,MAAO,CAAA,CAAA;AAEzE,IAAA,KAAA,CAAM,MAAM,KAAM,CAAA,MAAA,CAAO,QAAU,EAAA,CAAC,QAAa,MAAgB,KAAA;AAC/D,MAAA,IAAI,CAAC,KAAM,CAAA,KAAA,CAAM,MAAO,CAAA,SAAA,CAAU,SAAS,CAAC,QAAA;AAAU,QAAA,OAAA;AACtD,MAAA,IAAI,MAAM,MAAO,CAAA,qBAAA,CAAA;AACjB,MAAA,IAAI,CAAC,GAAK,EAAA;AACR,QAAA,GAAA,GAAM,CAAC,EAAA,KAAO,MAAO,CAAA,UAAA,CAAW,IAAI,EAAE,CAAA,CAAA;AAAA,OACxC;AACA,MAAA,GAAA,CAAI,MAAM;AAER,QAAM,MAAA,EAAA,GAAK,UAAU,KAAM,CAAA,EAAA,CAAA;AAC3B,QAAA,MAAM,OAAO,KAAM,CAAA,IAAA,CAAK,IAAI,QAAY,IAAA,EAAE,CAAE,CAAA,MAAA;AAAA,UAAO,CAAC,MAClD,CAAG,EAAA,SAAA,CAAU,SAAS,CAAG,EAAA,EAAA,CAAG,CAAE,CAAA,KAAK,CAAG,CAAA,CAAA,CAAA;AAAA,SACxC,CAAA;AACA,QAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAA;AACpB,QAAA,MAAM,SAAS,IAAK,CAAA,MAAA,CAAA,CAAA;AACpB,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,WAAA,CAAY,QAAQ,WAAW,CAAA,CAAA;AAAA,SACjC;AACA,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,QAAA,CAAS,QAAQ,WAAW,CAAA,CAAA;AAAA,SAC9B;AAAA,OACD,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAED,IAAA,WAAA,CAAY,MAAM;AAChB,MAAe,YAAA,IAAA,CAAA;AAAA,KAChB,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,eAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,KACF,CAAA;AAAA,GACF;AAAA,EACA,MAAS,GAAA;AACP,IAAM,MAAA,EAAE,gBAAkB,EAAA,KAAA,EAAU,GAAA,IAAA,CAAA;AACpC,IAAA,MAAM,IAAO,GAAA,KAAA,CAAM,MAAO,CAAA,IAAA,CAAK,SAAS,EAAC,CAAA;AACzC,IAAO,OAAA,CAAA,CAAE,OAAS,EAAA,EAAI,EAAA;AAAA,MACpB,IAAK,CAAA,MAAA,CAAO,CAAC,GAAA,EAAc,GAAQ,KAAA;AACjC,QAAA,OAAO,IAAI,MAAO,CAAA,gBAAA,CAAiB,GAAK,EAAA,GAAA,CAAI,MAAM,CAAC,CAAA,CAAA;AAAA,OACrD,EAAG,EAAE,CAAA;AAAA,KACN,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}