{"version":3,"file":"table.vue2.mjs","sources":["../../../components/table/table.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { NativeScroll } from '@/components/native-scroll'\r\nimport { Renderer } from '@/components/renderer'\r\nimport { Scrollbar } from '@/components/scrollbar'\r\n\r\nimport {\r\n  computed,\r\n  nextTick,\r\n  onBeforeUnmount,\r\n  onMounted,\r\n  provide,\r\n  reactive,\r\n  ref,\r\n  renderSlot,\r\n  toRef,\r\n  watch,\r\n} from 'vue'\r\n\r\nimport TableColumn from './table-column'\r\nimport TableColumnGroup from './table-column-group'\r\nimport TableSummary from './table-summary'\r\nimport TableHead from './table-head.vue'\r\nimport TableBody from './table-body.vue'\r\nimport TableFoot from './table-foot.vue'\r\nimport { emitEvent, useLocale, useNameHelper, useProps } from '@vexip-ui/config'\r\nimport {\r\n  debounce,\r\n  debounceMinor,\r\n  getLast,\r\n  isDefined,\r\n  isValidNumber,\r\n  listToMap,\r\n  nextFrameOnce,\r\n  noop,\r\n  removeArrayItem,\r\n  toNumber,\r\n} from '@vexip-ui/utils'\r\nimport { useSetTimeout } from '@vexip-ui/hooks'\r\nimport { tableProps } from './props'\r\nimport { useStore } from './store'\r\nimport { DropType, TABLE_ACTIONS, TABLE_SLOTS, TABLE_STORE } from './symbol'\r\n\r\nimport type { Slots } from 'vue'\r\nimport type { StyleType } from '@vexip-ui/config'\r\nimport type { NativeScrollExposed, NativeScrollPayload } from '@/components/native-scroll'\r\nimport type { ScrollbarExposed } from '@/components/scrollbar'\r\nimport type {\r\n  Key,\r\n  MouseEventType,\r\n  MoveEventType,\r\n  StoreOptions,\r\n  TableCellPayload,\r\n  TableColResizePayload,\r\n  TableColumnGroupOptions,\r\n  TableColumnOptions,\r\n  TableFootPayload,\r\n  TableHeadPayload,\r\n  TableKeyConfig,\r\n  TableRowInstance,\r\n  TableRowPayload,\r\n  TableRowState,\r\n  TableSlots,\r\n  TableSummaryOptions,\r\n} from './symbol'\r\n\r\nconst defaultKeyConfig: Required<TableKeyConfig> = {\r\n  id: 'id',\r\n  children: 'children',\r\n  checked: 'checked',\r\n  height: 'height',\r\n  expanded: 'expanded',\r\n  treeExpanded: 'treeExpanded',\r\n}\r\n\r\ndefineOptions({ name: 'Table' })\r\n\r\nconst _props = defineProps(tableProps)\r\nconst props = useProps('table', _props, {\r\n  locale: null,\r\n  columns: {\r\n    default: () => [],\r\n    static: true,\r\n  },\r\n  summaries: {\r\n    default: () => [],\r\n    static: true,\r\n  },\r\n  data: {\r\n    default: () => [],\r\n    static: true,\r\n  },\r\n  width: null,\r\n  height: null,\r\n  minHeight: null,\r\n  rowClass: null,\r\n  rowStyle: null,\r\n  rowAttrs: null,\r\n  stripe: false,\r\n  border: false,\r\n  highlight: false,\r\n  useXBar: false,\r\n  useYBar: false,\r\n  barFade: 1500,\r\n  rowDraggable: false,\r\n  rowHeight: {\r\n    default: null,\r\n    validator: value => value > 0,\r\n  },\r\n  rowMinHeight: {\r\n    default: 36,\r\n    validator: value => value > 0,\r\n  },\r\n  virtual: false,\r\n  bufferCount: {\r\n    default: 5,\r\n    validator: value => value >= 0,\r\n  },\r\n  scrollClass: () => ({}),\r\n  expandRenderer: {\r\n    default: null,\r\n    isFunc: true,\r\n  },\r\n  currentPage: {\r\n    default: 1,\r\n    validator: value => value > 0,\r\n    static: true,\r\n  },\r\n  pageSize: 0,\r\n  transparent: false,\r\n  tooltipTheme: {\r\n    default: 'dark',\r\n    validator: value => ['light', 'dark'].includes(value),\r\n  },\r\n  tooltipWidth: 500,\r\n  singleSorter: false,\r\n  singleFilter: false,\r\n  cellClass: null,\r\n  cellStyle: null,\r\n  cellAttrs: null,\r\n  headClass: null,\r\n  headStyle: null,\r\n  headAttrs: null,\r\n  footClass: null,\r\n  footStyle: null,\r\n  footAttrs: null,\r\n  customSorter: false,\r\n  customFilter: false,\r\n  keyConfig: () => ({}),\r\n  disabledTree: false,\r\n  rowIndent: '16px',\r\n  noCascaded: false,\r\n  colResizable: false,\r\n  cellSpan: {\r\n    default: null,\r\n    isFunc: true,\r\n  },\r\n  sidePadding: 0,\r\n  icons: () => ({}),\r\n  borderWidth: 1,\r\n  dataFilter: {\r\n    default: null,\r\n    isFunc: true,\r\n  },\r\n  noTransition: false,\r\n  ellipsis: false,\r\n  slots: () => ({}),\r\n})\r\n\r\n// only for dnd end payload\r\nconst emit = defineEmits(['update:data'])\r\n\r\nconst slots = defineSlots<TableSlots>()\r\n\r\nconst nh = useNameHelper('table')\r\nconst { timer } = useSetTimeout()\r\n\r\nconst bodyHeight = ref<number | undefined>(props.height)\r\nconst bodyMinHeight = ref(props.height || 0)\r\nconst xScrollEnabled = ref(false)\r\nconst yScrollEnabled = ref(false)\r\nconst xScrollPercent = ref(0)\r\nconst yScrollPercent = ref(0)\r\nconst headHeight = ref(0)\r\nconst footHeight = ref(0)\r\nconst indicatorShow = ref(false)\r\nconst indicatorType = ref(DropType.BEFORE)\r\nconst tempColumns = reactive(new Set<TableColumnGroupOptions | TableColumnOptions>())\r\nconst tempSummaries = reactive(new Set<TableSummaryOptions>())\r\nconst tableWidth = ref<number | string>()\r\nconst hasDragColumn = ref(false)\r\nconst bodyWidth = ref(0)\r\n\r\nconst wrapper = ref<HTMLElement>()\r\nconst mainScroll = ref<NativeScrollExposed>()\r\nconst xHeadScroll = ref<NativeScrollExposed>()\r\nconst xAboveScroll = ref<NativeScrollExposed>()\r\nconst xBelowScroll = ref<NativeScrollExposed>()\r\nconst thead = ref<HTMLElement>()\r\nconst aboveTfoot = ref<HTMLElement>()\r\nconst belowTfoot = ref<HTMLElement>()\r\nconst indicator = ref<HTMLElement>()\r\nconst xScrollbar = ref<ScrollbarExposed>()\r\nconst yScrollbar = ref<ScrollbarExposed>()\r\n\r\nlet isMounted = false\r\n\r\nconst locale = useLocale('table', toRef(props, 'locale'))\r\nconst keyConfig = computed(() => ({ ...defaultKeyConfig, ...props.keyConfig }))\r\nconst allColumns = computed(() => Array.from(tempColumns))\r\nconst allSummaries = computed(() => Array.from(tempSummaries))\r\n\r\nconst syncToStoreProps = [\r\n  'rowClass',\r\n  'rowStyle',\r\n  'rowAttrs',\r\n  'cellClass',\r\n  'cellStyle',\r\n  'cellAttrs',\r\n  'headClass',\r\n  'headStyle',\r\n  'headAttrs',\r\n  'footClass',\r\n  'footStyle',\r\n  'footAttrs',\r\n  'border',\r\n  'stripe',\r\n  'highlight',\r\n  'currentPage',\r\n  'pageSize',\r\n  'rowHeight',\r\n  'rowMinHeight',\r\n  'rowDraggable',\r\n  'tooltipTheme',\r\n  'tooltipWidth',\r\n  'singleSorter',\r\n  'singleFilter',\r\n  'customSorter',\r\n  'customFilter',\r\n  'noCascaded',\r\n  'colResizable',\r\n  'expandRenderer',\r\n  'cellSpan',\r\n  'sidePadding',\r\n  'borderWidth',\r\n  'dataFilter',\r\n  'ellipsis',\r\n] as const\r\n\r\nconst store = useStore({\r\n  ...(syncToStoreProps.reduce(\r\n    (prev, current) => ((prev[current] = props[current]), prev),\r\n    {} as any,\r\n  ) as StoreOptions),\r\n  columns: allColumns.value,\r\n  summaries: allSummaries.value,\r\n  data: props.data,\r\n  dataKey: keyConfig.value.id,\r\n  virtual: props.virtual,\r\n  locale: locale.value,\r\n  keyConfig: keyConfig.value,\r\n  disabledTree: props.disabledTree,\r\n  colResizable: props.colResizable === true ? 'lazy' : props.colResizable,\r\n  sidePadding: Array.isArray(props.sidePadding)\r\n    ? props.sidePadding\r\n    : [props.sidePadding, props.sidePadding],\r\n})\r\n\r\nprovide(TABLE_STORE, store)\r\nprovide(TABLE_ACTIONS, {\r\n  increaseColumn,\r\n  decreaseColumn,\r\n  increaseSummary,\r\n  decreaseSummary,\r\n  getTableElement,\r\n  refreshXScroll,\r\n  emitRowCheck,\r\n  emitAllRowCheck,\r\n  emitRowExpand,\r\n  emitRowTreeExpand,\r\n  emitRowFilter,\r\n  emitRowSort,\r\n  handleRowDragStart,\r\n  handleRowDragOver,\r\n  handleRowDrop,\r\n  handleRowDragEnd,\r\n  emitRowEvent,\r\n  emitCellEvent,\r\n  emitHeadEvent,\r\n  emitColResize,\r\n  emitFootEvent,\r\n  hasIcon: name => !!props.icons[name],\r\n  getIcon: name => props.icons[name],\r\n  renderTableSlot,\r\n  runInLocked,\r\n  updateColumns: () => debounceMinor(updateColumns),\r\n  setColumnProp,\r\n  updateSummaries: () => debounceMinor(updateSummaries),\r\n  setSummaryProp,\r\n})\r\nprovide(TABLE_SLOTS, slots as Slots)\r\n\r\nconst { state, getters, mutations } = store\r\n\r\nconst mergedLocked = computed(() => props.noTransition || state.locked || state.barScrolling)\r\nconst className = computed(() => {\r\n  return {\r\n    [nh.b()]: true,\r\n    [nh.bs('vars')]: true,\r\n    [nh.bm('inherit')]: props.inherit,\r\n    [nh.bm('stripe')]: props.stripe,\r\n    [nh.bm('border')]: props.border,\r\n    [nh.bm('highlight')]: props.highlight,\r\n    [nh.bm('use-y-bar')]: props.useYBar,\r\n    [nh.bm('transparent')]: props.transparent,\r\n    [nh.bm('virtual')]: props.virtual,\r\n    [nh.bm('col-resizable')]: props.colResizable,\r\n    [nh.bm('col-resizing')]: state.colResizing,\r\n    [nh.bm('locked')]: mergedLocked.value,\r\n    [nh.bm('above-foot')]: state.aboveSummaries.length,\r\n    [nh.bm('below-foot')]: state.belowSummaries.length,\r\n    [nh.bm('using-bar')]: state.barScrolling,\r\n  }\r\n})\r\nconst style = computed(() => {\r\n  const width = tableWidth.value ?? props.width\r\n  const [padLeft, padRight] = state.sidePadding\r\n\r\n  const style: StyleType = {\r\n    [nh.cv('row-indent-width')]:\r\n      typeof props.rowIndent === 'number' ? `${props.rowIndent}px` : props.rowIndent,\r\n    [nh.cv('b-width')]: `${props.borderWidth}px`,\r\n    [nh.cv('expanded-width')]: `${bodyWidth.value}px`,\r\n  }\r\n\r\n  if (padLeft) {\r\n    style[nh.cv('side-pad-left')] = `${padLeft}px`\r\n  }\r\n\r\n  if (padRight) {\r\n    style[nh.cv('side-pad-right')] = `${padRight}px`\r\n  }\r\n\r\n  if (isDefined(width)) {\r\n    if (typeof width === 'number' || isValidNumber(width, true)) {\r\n      style.width = `${width}px`\r\n      style.minWidth = `${width}px`\r\n    } else {\r\n      style.width = width\r\n    }\r\n  }\r\n\r\n  return style\r\n})\r\nconst useXScroll = computed(() => {\r\n  return !!(\r\n    isDefined(props.width) ||\r\n    state.leftFixedColumns.length ||\r\n    state.rightFixedColumns.length\r\n  )\r\n})\r\nconst bodyScrollHeight = computed(() => {\r\n  const { totalHeight } = state\r\n\r\n  return bodyHeight.value ? Math.min(bodyHeight.value, totalHeight) : undefined\r\n})\r\nconst xBarLength = computed(() => mainScroll.value?.xBarLength || 35)\r\nconst yBarLength = computed(() => {\r\n  const { totalHeight } = state\r\n\r\n  if (bodyScrollHeight.value && totalHeight) {\r\n    return Math.max(Math.min((bodyScrollHeight.value / totalHeight) * 100, 99), 5) || 35\r\n  }\r\n\r\n  return 35\r\n})\r\nconst totalWidths = computed(() => {\r\n  return (\r\n    (getLast(getters.totalWidths) || 0) + (state.sidePadding[0] || 0) + (state.sidePadding[1] || 0)\r\n  )\r\n})\r\nconst leftFixedActive = computed(() => xScrollEnabled.value && xScrollPercent.value > 0)\r\nconst rightFixedActive = computed(() => xScrollEnabled.value && xScrollPercent.value < 100)\r\n\r\nconst {\r\n  setColumns,\r\n  setSummaries,\r\n  setData,\r\n  setDataKey,\r\n  setTableWidth,\r\n  setBodyYScroll,\r\n  setBodyXScroll,\r\n  setRenderRows,\r\n  setVirtual,\r\n  setLocale,\r\n  setDragging,\r\n  setKeyConfig,\r\n  setDisabledTree,\r\n  setLocked,\r\n  setBarScrolling,\r\n  clearSort,\r\n  clearFilter,\r\n  refreshRowIndex,\r\n  clearCheckAll,\r\n  getParentRow,\r\n  getCurrentData,\r\n  flatTreeRows,\r\n  refreshRowDepth,\r\n  queryRow,\r\n  handleCheck,\r\n  setTreeExpanded,\r\n} = mutations\r\n\r\nwatch(allColumns, updateColumns)\r\nwatch(allSummaries, updateSummaries)\r\nwatch(() => keyConfig.value.id, setDataKey)\r\nwatch(() => props.data, forceRefreshData, { deep: true })\r\nwatch(() => props.width, computeTableWidth)\r\nwatch([() => props.height, () => props.borderWidth], () => {\r\n  nextTick(computeBodyHeight)\r\n})\r\nwatch(locale, setLocale, { deep: true })\r\nwatch(\r\n  () => props.virtual,\r\n  value => {\r\n    setVirtual(value)\r\n    setData(props.data)\r\n    refreshPercentScroll()\r\n  },\r\n)\r\nwatch(\r\n  keyConfig,\r\n  config => {\r\n    setKeyConfig(config)\r\n    setData(props.data)\r\n  },\r\n  { deep: true },\r\n)\r\nwatch(\r\n  () => props.disabledTree,\r\n  value => {\r\n    setDisabledTree(value)\r\n    setData(props.data)\r\n  },\r\n)\r\nwatch([() => props.rowHeight, () => props.rowMinHeight], () => {\r\n  refresh()\r\n})\r\n\r\nfor (const prop of syncToStoreProps) {\r\n  const watchCallback =\r\n    mutations[\r\n      `set${prop.charAt(0).toLocaleUpperCase()}${prop.slice(1)}` as `set${Capitalize<typeof prop>}`\r\n    ]\r\n\r\n  watch(() => props[prop], watchCallback as any)\r\n}\r\n\r\nfunction syncBarScroll() {\r\n  xScrollbar.value?.handleScroll(xScrollPercent.value)\r\n  yScrollbar.value?.handleScroll(yScrollPercent.value)\r\n}\r\n\r\nconst handlerResize = debounce(refresh)\r\n\r\nonMounted(() => {\r\n  isMounted = true\r\n\r\n  watch(bodyScrollHeight, refreshPercentScroll)\r\n  refresh()\r\n  window.addEventListener('resize', handlerResize)\r\n  nextTick(() => {\r\n    hasDragColumn.value = getters.hasDragColumn\r\n  })\r\n\r\n  if (mainScroll.value) {\r\n    xScrollEnabled.value = mainScroll.value.enableXScroll\r\n    yScrollEnabled.value = mainScroll.value.enableYScroll\r\n  }\r\n})\r\n\r\nonBeforeUnmount(() => {\r\n  isMounted = false\r\n\r\n  window.removeEventListener('resize', handlerResize)\r\n})\r\n\r\ndefineExpose({\r\n  bodyHeight,\r\n  xScrollEnabled,\r\n  yScrollEnabled,\r\n  xScrollPercent,\r\n  yScrollPercent,\r\n  headHeight,\r\n  footHeight,\r\n  indicatorShow,\r\n  bodyScrollHeight,\r\n  totalWidths,\r\n  totalHeight: computed(() => state.totalHeight),\r\n  locked: mergedLocked,\r\n\r\n  store,\r\n\r\n  wrapper,\r\n  mainScroll,\r\n  xHeadScroll,\r\n  xAboveScroll,\r\n  xBelowScroll,\r\n  thead,\r\n  aboveTfoot,\r\n  belowTfoot,\r\n  indicator,\r\n  xScrollbar,\r\n  yScrollbar,\r\n\r\n  clearSort,\r\n  clearFilter,\r\n  clearSelected: clearCheckAll,\r\n  refresh,\r\n  refreshData: forceRefreshData,\r\n  getSelected,\r\n  getData: getCurrentData,\r\n  selectRow: setRowChecked,\r\n  treeExpandRow: setRowTreeExpanded,\r\n})\r\n\r\nfunction forceRefreshData(data = props.data) {\r\n  return runInLocked(() => {\r\n    setData(data)\r\n    nextTick(() => computeRenderRows(true))\r\n    refreshPercentScroll()\r\n  })\r\n}\r\n\r\nfunction computeTableWidth() {\r\n  const width = props.width\r\n\r\n  if (isDefined(width)) {\r\n    if (typeof width === 'string' && parseFloat(width).toString() !== width) {\r\n      tableWidth.value = width\r\n    } else {\r\n      tableWidth.value = `${toNumber(width)}px`\r\n    }\r\n  }\r\n\r\n  nextTick(() => {\r\n    mainScroll.value?.content && setTableWidth(mainScroll.value.content.offsetWidth)\r\n    refreshXScroll()\r\n  })\r\n}\r\n\r\nfunction computeBodyHeight() {\r\n  const height = props.height\r\n  const minHeight = props.minHeight\r\n  const borderWidth = props.borderWidth\r\n\r\n  let fixedHeight = 0\r\n\r\n  if (thead.value || aboveTfoot.value || belowTfoot.value) {\r\n    if (thead.value) {\r\n      fixedHeight = thead.value.offsetHeight\r\n    }\r\n\r\n    if (aboveTfoot.value) {\r\n      fixedHeight += aboveTfoot.value.offsetHeight\r\n    }\r\n\r\n    if (belowTfoot.value) {\r\n      fixedHeight = belowTfoot.value.offsetHeight\r\n    }\r\n  } else {\r\n    // one row as head placeholder\r\n    fixedHeight = props.rowHeight || props.rowMinHeight\r\n  }\r\n\r\n  fixedHeight += 2 * borderWidth\r\n\r\n  if (isDefined(height)) {\r\n    bodyHeight.value = height - fixedHeight\r\n  } else {\r\n    bodyHeight.value = undefined\r\n  }\r\n\r\n  if (isDefined(minHeight)) {\r\n    bodyMinHeight.value = Math.min(minHeight, height ?? Infinity) - fixedHeight\r\n  } else {\r\n    bodyMinHeight.value = 0\r\n  }\r\n}\r\n\r\nfunction handleMainScroll(payload: NativeScrollPayload) {\r\n  if (state.barScrolling) return\r\n\r\n  if (payload.type !== 'vertical') {\r\n    handleXScroll(payload)\r\n  }\r\n\r\n  if (payload.type !== 'horizontal') {\r\n    handleYScroll(payload)\r\n  }\r\n}\r\n\r\nfunction handleXScroll({ clientX, percentX }: { clientX: number, percentX: number }) {\r\n  if (state.barScrolling) return\r\n\r\n  xScrollPercent.value = percentX\r\n  setBodyXScroll(clientX)\r\n  syncBarScroll()\r\n  emitEvent(props.onScroll, {\r\n    type: 'horizontal',\r\n    client: clientX,\r\n    percent: percentX,\r\n  })\r\n}\r\n\r\nfunction handleYScroll({ clientY, percentY }: { clientY: number, percentY: number }) {\r\n  if (state.barScrolling) return\r\n\r\n  yScrollPercent.value = percentY\r\n  setBodyYScroll(clientY)\r\n  syncBarScroll()\r\n  emitYScroll(clientY, percentY)\r\n}\r\n\r\nfunction handleXBarScroll(percent: number) {\r\n  if (!mainScroll.value) return\r\n\r\n  const client = (mainScroll.value.xScrollLimit * percent) / 100\r\n\r\n  xScrollPercent.value = percent\r\n  setBodyXScroll(client)\r\n  emitEvent(props.onScroll, { type: 'horizontal', client, percent })\r\n}\r\n\r\nfunction handleYBarScroll(percent: number) {\r\n  const { totalHeight } = state\r\n  const client = (percent * (totalHeight - (bodyScrollHeight.value ?? 0))) / 100\r\n\r\n  yScrollPercent.value = percent\r\n  setBodyYScroll(client)\r\n  emitYScroll(client, percent)\r\n}\r\n\r\nfunction emitYScroll(client: number, percent: number) {\r\n  runInLocked()\r\n  nextFrameOnce(computeRenderRows)\r\n  emitEvent(props.onScroll, { type: 'vertical', client, percent })\r\n}\r\n\r\nfunction handleResize() {\r\n  if (mainScroll.value?.content) {\r\n    bodyWidth.value = mainScroll.value.content.offsetWidth\r\n  }\r\n\r\n  isMounted && refresh()\r\n}\r\n\r\nfunction increaseColumn(column: TableColumnOptions) {\r\n  tempColumns.add(column)\r\n}\r\n\r\nfunction decreaseColumn(column: TableColumnOptions) {\r\n  tempColumns.delete(column)\r\n}\r\n\r\nfunction increaseSummary(summary: TableSummaryOptions) {\r\n  tempSummaries.add(summary)\r\n}\r\n\r\nfunction decreaseSummary(summary: TableSummaryOptions) {\r\n  tempSummaries.delete(summary)\r\n}\r\n\r\nfunction updateColumns() {\r\n  runInLocked(() => {\r\n    setColumns(allColumns.value)\r\n    isMounted && computeTableWidth()\r\n    nextTick(() => {\r\n      hasDragColumn.value = getters.hasDragColumn\r\n    })\r\n  })\r\n}\r\n\r\nfunction setColumnProp(key: Key, prop: string, value: any) {\r\n  mutations.setColumnProp(key, prop, value)\r\n}\r\n\r\nfunction updateSummaries() {\r\n  runInLocked(() => {\r\n    setSummaries(allSummaries.value)\r\n  })\r\n}\r\n\r\nfunction setSummaryProp(key: Key, prop: string, value: any) {\r\n  mutations.setSummaryProp(key, prop, value)\r\n}\r\n\r\nfunction getTableElement() {\r\n  return wrapper.value\r\n}\r\n\r\nfunction refreshXScroll() {\r\n  mainScroll.value?.refresh()\r\n  xHeadScroll.value?.refresh()\r\n  xAboveScroll.value?.refresh()\r\n  xBelowScroll.value?.refresh()\r\n}\r\n\r\nfunction emitRowCheck(payload: TableRowPayload & { checked: boolean }) {\r\n  emitEvent(props.onRowCheck, payload)\r\n}\r\n\r\nfunction emitAllRowCheck(checked: boolean, partial: boolean) {\r\n  emitEvent(props.onRowCheckAll, checked, partial)\r\n}\r\n\r\nfunction emitRowExpand(payload: TableRowPayload & { expanded: boolean }) {\r\n  emitEvent(props.onRowExpand, payload)\r\n}\r\n\r\nfunction emitRowTreeExpand(payload: TableRowPayload & { expanded: boolean }) {\r\n  emitEvent(props.onRowTreeExpand, payload)\r\n}\r\n\r\nfunction emitRowFilter() {\r\n  const { columns, filters } = state\r\n  const columnMap = listToMap(columns, 'key')\r\n  const profiles = Array.from(filters.keys())\r\n    .filter(key => filters.get(key)!.active)\r\n    .map(key => {\r\n      const column = columnMap[key as string]\r\n\r\n      return {\r\n        name: column.name,\r\n        key: column.key,\r\n        meta: column.meta!,\r\n        active: filters.get(key)!.active!,\r\n      }\r\n    })\r\n\r\n  computeRenderRows(true)\r\n  emitEvent(\r\n    props.onRowFilter,\r\n    profiles,\r\n    getters.filteredData.map(row => row.data),\r\n  )\r\n}\r\n\r\nfunction emitRowSort() {\r\n  const { columns, sorters } = state\r\n  const columnMap = listToMap(columns, 'key')\r\n  const profiles = Array.from(sorters.keys())\r\n    .filter(key => sorters.get(key)!.type)\r\n    .map(key => {\r\n      const column = columnMap[key as string]\r\n      const sorter = sorters.get(key)!\r\n\r\n      return {\r\n        name: column.name,\r\n        key: column.key,\r\n        meta: column.meta!,\r\n        type: sorter.type!,\r\n        order: sorter.order,\r\n      }\r\n    })\r\n\r\n  computeRenderRows(true)\r\n  emitEvent(\r\n    props.onRowSort,\r\n    profiles,\r\n    getters.sortedData.map(row => row.data),\r\n  )\r\n}\r\n\r\nlet dragState: {\r\n  draggingRow: TableRowState,\r\n  tableRect: DOMRect,\r\n  willDropRow: TableRowState | null,\r\n  dropType: DropType,\r\n  dropped: boolean,\r\n} | null\r\n\r\nfunction handleRowDragStart(rowInstance: TableRowInstance, event: DragEvent) {\r\n  dragState = {\r\n    draggingRow: rowInstance.row,\r\n    tableRect: wrapper.value!.getBoundingClientRect(),\r\n    willDropRow: null,\r\n    dropType: DropType.BEFORE,\r\n    dropped: false,\r\n  }\r\n\r\n  setDragging(true)\r\n  emitEvent(props.onRowDragStart, rowInstance.row.data, event)\r\n}\r\n\r\nfunction handleRowDragOver(rowInstance: TableRowInstance, event: DragEvent) {\r\n  if (!dragState || !rowInstance.el) return\r\n\r\n  const dropRowRect = rowInstance.el.getBoundingClientRect()\r\n  const tableRect = dragState.tableRect\r\n  const prevPercent = state.disabledTree ? 0.5 : 0.25\r\n  const nextPercent = state.disabledTree ? 0.5 : 0.75\r\n  const distance = event.clientY - dropRowRect.top\r\n  const dropRowHeight = dropRowRect.height\r\n\r\n  let dropType: DropType\r\n  let indicatorTop = -9999\r\n  let isIndicatorShow = true\r\n\r\n  if (distance < dropRowHeight * prevPercent) {\r\n    dropType = DropType.BEFORE\r\n    indicatorTop = dropRowRect.top - tableRect.top\r\n  } else if (distance >= dropRowHeight * nextPercent) {\r\n    dropType = DropType.AFTER\r\n    indicatorTop = dropRowRect.bottom - tableRect.top\r\n  } else {\r\n    dropType = DropType.INNER\r\n    isIndicatorShow = false\r\n  }\r\n\r\n  if (indicator.value) {\r\n    indicator.value.style.top = `${indicatorTop - 2}px`\r\n  }\r\n\r\n  dragState.willDropRow = rowInstance.row\r\n  dragState.dropType = dropType\r\n\r\n  indicatorShow.value = isIndicatorShow\r\n  indicatorType.value = dropType\r\n\r\n  emitEvent(props.onRowDragOver, rowInstance.row.data, event)\r\n}\r\n\r\nfunction isLeftInsideRight(left: TableRowState, right: TableRowState) {\r\n  if (!left || !right) return true\r\n\r\n  while (left) {\r\n    if (left === right || left.key === right.key) {\r\n      return true\r\n    }\r\n\r\n    left = getParentRow(left.key)!\r\n  }\r\n\r\n  return false\r\n}\r\n\r\nfunction handleRowDrop(rowInstance: TableRowInstance, event: DragEvent) {\r\n  if (!dragState) return\r\n\r\n  const { draggingRow, willDropRow, dropType } = dragState\r\n\r\n  if (!willDropRow || isLeftInsideRight(willDropRow, draggingRow)) return\r\n\r\n  let currentKey: Key\r\n  let parent: TableRowState | null\r\n\r\n  if (draggingRow) {\r\n    parent = getParentRow(draggingRow.key)\r\n\r\n    if (!parent) {\r\n      parent = {\r\n        children: state.treeRowData,\r\n      } as TableRowState\r\n    }\r\n\r\n    currentKey = draggingRow.key\r\n    removeArrayItem(parent.children, item => item.key === currentKey)\r\n\r\n    if (!parent.children?.length) {\r\n      parent.treeExpanded = false\r\n    }\r\n  }\r\n\r\n  if (dropType === DropType.INNER) {\r\n    if (!Array.isArray(willDropRow.children)) {\r\n      willDropRow.children = []\r\n    }\r\n\r\n    const children = Array.from(willDropRow.children)\r\n\r\n    children.push(draggingRow)\r\n\r\n    willDropRow.children = children\r\n    willDropRow.treeExpanded = true\r\n    draggingRow.parent = willDropRow.key\r\n  } else {\r\n    currentKey = willDropRow.key\r\n    parent = getParentRow(willDropRow.key)\r\n\r\n    if (!parent) {\r\n      parent = {\r\n        children: state.treeRowData,\r\n      } as TableRowState\r\n    }\r\n\r\n    const index = parent.children.findIndex(row => row.key === currentKey)\r\n\r\n    if (~index) {\r\n      parent.children.splice(+(dropType === DropType.AFTER) + index, 0, draggingRow)\r\n\r\n      draggingRow.parent = parent.key\r\n    }\r\n  }\r\n\r\n  dragState.dropped = true\r\n\r\n  refreshRowDepth()\r\n  flatTreeRows()\r\n  refreshRowIndex()\r\n  emitEvent(props.onRowDrop, rowInstance.row.data, dropType!, event)\r\n}\r\n\r\nfunction handleRowDragEnd(event: DragEvent) {\r\n  if (!dragState) return\r\n\r\n  const { draggingRow, dropped } = dragState\r\n\r\n  dragState = null\r\n  indicatorShow.value = false\r\n\r\n  nextTick(() => {\r\n    const allDataPayload = dropped ? getCurrentData() : state.data\r\n\r\n    setDragging(false)\r\n    dropped && emit('update:data', allDataPayload)\r\n    emitEvent(props.onRowDragEnd, draggingRow.data, allDataPayload, event)\r\n  })\r\n}\r\n\r\nfunction emitRowEvent(type: MouseEventType, payload: TableRowPayload) {\r\n  emitEvent(props[`onRow${type}`], payload)\r\n}\r\n\r\nfunction emitCellEvent(type: MouseEventType, payload: TableCellPayload) {\r\n  emitEvent(props[`onCell${type}`], payload)\r\n}\r\n\r\nfunction emitHeadEvent(type: MouseEventType, payload: TableHeadPayload) {\r\n  emitEvent(props[`onHead${type}`], payload)\r\n}\r\n\r\nfunction emitColResize(type: MoveEventType, payload: TableColResizePayload) {\r\n  emitEvent(props[`onColResize${type}`], payload)\r\n}\r\n\r\nfunction emitFootEvent(type: MouseEventType, payload: TableFootPayload) {\r\n  emitEvent(props[`onFoot${type}`], payload)\r\n}\r\n\r\nfunction computeRenderRows(force = false) {\r\n  const { totalHeight, bodyYScroll, heightBITree } = state\r\n  const { processedData } = getters\r\n  const rowCount = processedData.length\r\n\r\n  if (!props.virtual) {\r\n    setRenderRows(0, rowCount, force)\r\n\r\n    return\r\n  }\r\n\r\n  const viewHeight = Math.max(\r\n    Math.min(bodyHeight.value || 0, bodyScrollHeight.value || 0),\r\n    bodyMinHeight.value,\r\n  )\r\n\r\n  if (!viewHeight) {\r\n    setRenderRows(0, 0, force)\r\n  }\r\n\r\n  let viewStart = bodyYScroll\r\n  let viewEnd = bodyYScroll + viewHeight\r\n\r\n  if (viewEnd > totalHeight) {\r\n    viewEnd = totalHeight\r\n    viewStart = viewEnd - viewHeight\r\n  }\r\n\r\n  const start = heightBITree.boundIndex(viewStart)\r\n  const end = heightBITree.boundIndex(viewEnd)\r\n  const renderStart = Math.max(start - props.bufferCount, 0)\r\n  const renderEnd = Math.min(end + props.bufferCount + 1, rowCount)\r\n\r\n  setRenderRows(renderStart, renderEnd, force)\r\n}\r\n\r\nfunction refresh() {\r\n  return runInLocked(() => {\r\n    nextTick(computeTableWidth)\r\n    setTimeout(() => {\r\n      computeBodyHeight()\r\n      refreshPercentScroll()\r\n      nextFrameOnce(computeRenderRows)\r\n    }, 0)\r\n  })\r\n}\r\n\r\nasync function runInLocked(handler = noop, delay = 250) {\r\n  clearTimeout(timer.locked)\r\n\r\n  setLocked(true)\r\n  await handler()\r\n\r\n  return new Promise<void>(resolve => {\r\n    timer.locked = setTimeout(() => {\r\n      setLocked(false)\r\n      resolve()\r\n    }, delay)\r\n  })\r\n}\r\n\r\nfunction refreshPercentScroll() {\r\n  clearTimeout(timer.scroll)\r\n\r\n  timer.scroll = setTimeout(() => {\r\n    const { totalHeight, bodyYScroll } = state\r\n\r\n    yScrollPercent.value = Math.max(\r\n      Math.min((bodyYScroll / (totalHeight - (bodyScrollHeight.value ?? 0) || 1)) * 100, 100),\r\n      0,\r\n    )\r\n    syncBarScroll()\r\n    nextTick(() => {\r\n      computeBodyHeight()\r\n    })\r\n    runInLocked()\r\n    nextFrameOnce(computeRenderRows)\r\n  }, 10)\r\n}\r\n\r\nfunction getSelected() {\r\n  const data = state.rowData\r\n  const selectedData = []\r\n\r\n  for (let i = 0, len = data.length; i < len; ++i) {\r\n    const row = data[i]\r\n\r\n    if (row.checked) {\r\n      selectedData.push(row.data)\r\n    }\r\n  }\r\n\r\n  return selectedData\r\n}\r\n\r\nfunction setRowChecked(keyOrData: Key | Record<any, any>, checked?: boolean) {\r\n  const row = queryRow(keyOrData)\r\n\r\n  if (!row || getters.disableCheckRows.has(row.key)) return\r\n\r\n  handleCheck(row.key, checked ?? !row.checked)\r\n}\r\n\r\nfunction setRowTreeExpanded(keyOrData: Key | Record<any, any>, expanded?: boolean) {\r\n  const row = queryRow(keyOrData)\r\n\r\n  if (!row) return\r\n\r\n  runInLocked()\r\n  setTreeExpanded(row.key, expanded ?? !row.treeExpanded)\r\n}\r\n\r\nfunction renderTableSlot({ name }: { name: string }) {\r\n  return renderSlot(slots as Slots, name)\r\n}\r\n</script>\r\n\r\n<template>\r\n  <div\r\n    ref=\"wrapper\"\r\n    :class=\"className\"\r\n    role=\"table\"\r\n    :style=\"style\"\r\n    :aria-rowcount=\"props.data.length\"\r\n  >\r\n    <div v-show=\"false\" role=\"none\" aria-hidden>\r\n      <slot></slot>\r\n      <template\r\n        v-for=\"(column, index) in props.columns\"\r\n        :key=\"(column as TableColumnOptions).key ?? `__inner-column-${index}`\"\r\n      >\r\n        <TableColumnGroup v-if=\"'children' in column\" v-bind=\"column\"></TableColumnGroup>\r\n        <TableColumn v-else v-bind=\"column\" :id-key=\"column.key\"></TableColumn>\r\n      </template>\r\n      <TableSummary\r\n        v-for=\"({ key, ...others }, index) in props.summaries\"\r\n        v-bind=\"others\"\r\n        :key=\"`__inner-summary-${index}`\"\r\n        :id-key=\"key\"\r\n      ></TableSummary>\r\n    </div>\r\n    <div ref=\"thead\" :class=\"nh.be('head-wrapper')\">\r\n      <NativeScroll\r\n        ref=\"xHeadScroll\"\r\n        inherit\r\n        mode=\"horizontal\"\r\n        scroll-only\r\n        :class=\"[nh.be('wrapper'), props.scrollClass.horizontal]\"\r\n        :scroll-x=\"state.bodyXScroll\"\r\n        @scroll=\"handleXScroll\"\r\n      >\r\n        <div\r\n          v-if=\"state.leftFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'left')]: true,\r\n            [nh.bem('fixed', 'active')]: leftFixedActive,\r\n          }\"\r\n        >\r\n          <TableHead fixed=\"left\"></TableHead>\r\n        </div>\r\n        <TableHead></TableHead>\r\n        <div\r\n          v-if=\"state.rightFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'right')]: true,\r\n            [nh.bem('fixed', 'active')]: rightFixedActive,\r\n          }\"\r\n        >\r\n          <TableHead fixed=\"right\"></TableHead>\r\n        </div>\r\n      </NativeScroll>\r\n    </div>\r\n    <div\r\n      v-if=\"state.aboveSummaries.length\"\r\n      ref=\"aboveTfoot\"\r\n      :class=\"[nh.be('foot-wrapper'), nh.bem('foot-wrapper', 'above')]\"\r\n    >\r\n      <NativeScroll\r\n        ref=\"xAboveScroll\"\r\n        inherit\r\n        mode=\"horizontal\"\r\n        scroll-only\r\n        :class=\"[nh.be('wrapper'), props.scrollClass.horizontal]\"\r\n        :scroll-x=\"state.bodyXScroll\"\r\n        @scroll=\"handleXScroll\"\r\n      >\r\n        <div\r\n          v-if=\"state.leftFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'left')]: true,\r\n            [nh.bem('fixed', 'active')]: leftFixedActive,\r\n          }\"\r\n        >\r\n          <TableFoot fixed=\"left\" above></TableFoot>\r\n        </div>\r\n        <TableFoot above></TableFoot>\r\n        <div\r\n          v-if=\"state.rightFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'right')]: true,\r\n            [nh.bem('fixed', 'active')]: rightFixedActive,\r\n          }\"\r\n        >\r\n          <TableFoot fixed=\"right\" above></TableFoot>\r\n        </div>\r\n      </NativeScroll>\r\n    </div>\r\n    <div\r\n      :class=\"[\r\n        nh.be('body-wrapper'),\r\n        state.totalHeight >= bodyMinHeight && nh.bem('body-wrapper', 'scrolled'),\r\n      ]\"\r\n      :style=\"{\r\n        ...(!bodyScrollHeight && state.totalHeight\r\n          ? {\r\n            height: `${state.totalHeight}px`,\r\n            transition:\r\n              props.noTransition || state.locked\r\n                ? undefined\r\n                : `height ${nh.gnv('transition-base')}`,\r\n          }\r\n          : undefined),\r\n        minHeight: `${bodyMinHeight}px`,\r\n      }\"\r\n    >\r\n      <NativeScroll\r\n        ref=\"mainScroll\"\r\n        inherit\r\n        mode=\"both\"\r\n        scroll-only\r\n        observe-deep\r\n        :class=\"[nh.be('wrapper'), props.scrollClass.major]\"\r\n        :bar-class=\"nh.bem('bar', 'horizontal')\"\r\n        :height=\"bodyScrollHeight\"\r\n        :scroll-x=\"state.bodyXScroll\"\r\n        :scroll-y=\"state.bodyYScroll\"\r\n        @scroll=\"handleMainScroll\"\r\n        @x-enabled-change=\"xScrollEnabled = $event\"\r\n        @y-enabled-change=\"yScrollEnabled = $event\"\r\n        @resize=\"handleResize\"\r\n      >\r\n        <div\r\n          v-if=\"state.leftFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'left')]: true,\r\n            [nh.bem('fixed', 'active')]: leftFixedActive,\r\n          }\"\r\n          :style=\"{ minHeight: `${state.totalHeight}px` }\"\r\n        >\r\n          <TableBody fixed=\"left\">\r\n            <template v-if=\"slots.empty || props.slots.empty\" #empty=\"{ isFixed }\">\r\n              <slot name=\"empty\" :is-fixed=\"isFixed\">\r\n                <Renderer :renderer=\"props.slots.empty\" :data=\"{ isFixed }\"></Renderer>\r\n              </slot>\r\n            </template>\r\n          </TableBody>\r\n        </div>\r\n        <TableBody>\r\n          <template v-if=\"slots.empty || props.slots.empty\" #empty=\"{ isFixed }\">\r\n            <slot name=\"empty\" :is-fixed=\"isFixed\">\r\n              <Renderer :renderer=\"props.slots.empty\" :data=\"{ isFixed }\"></Renderer>\r\n            </slot>\r\n          </template>\r\n        </TableBody>\r\n        <div\r\n          v-if=\"state.rightFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'right')]: true,\r\n            [nh.bem('fixed', 'active')]: rightFixedActive,\r\n          }\"\r\n          :style=\"{ minHeight: `${state.totalHeight}px` }\"\r\n        >\r\n          <TableBody fixed=\"right\">\r\n            <template v-if=\"slots.empty || props.slots.empty\" #empty=\"{ isFixed }\">\r\n              <slot name=\"empty\" :is-fixed=\"isFixed\">\r\n                <Renderer :renderer=\"props.slots.empty\" :data=\"{ isFixed }\"></Renderer>\r\n              </slot>\r\n            </template>\r\n          </TableBody>\r\n        </div>\r\n      </NativeScroll>\r\n    </div>\r\n    <div\r\n      v-if=\"state.belowSummaries.length\"\r\n      ref=\"belowTfoot\"\r\n      :class=\"[nh.be('foot-wrapper'), nh.bem('foot-wrapper', 'below')]\"\r\n    >\r\n      <NativeScroll\r\n        ref=\"xBelowScroll\"\r\n        inherit\r\n        mode=\"horizontal\"\r\n        scroll-only\r\n        :class=\"[nh.be('wrapper'), props.scrollClass.horizontal]\"\r\n        :bar-class=\"nh.bem('bar', 'horizontal')\"\r\n        :bar-fade=\"props.barFade\"\r\n        :scroll-x=\"state.bodyXScroll\"\r\n        @scroll=\"handleXScroll\"\r\n      >\r\n        <div\r\n          v-if=\"state.leftFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'left')]: true,\r\n            [nh.bem('fixed', 'active')]: leftFixedActive,\r\n          }\"\r\n        >\r\n          <TableFoot fixed=\"left\"></TableFoot>\r\n        </div>\r\n        <TableFoot></TableFoot>\r\n        <div\r\n          v-if=\"state.rightFixedColumns.length\"\r\n          :class=\"{\r\n            [nh.bem('fixed', 'right')]: true,\r\n            [nh.bem('fixed', 'active')]: rightFixedActive,\r\n          }\"\r\n        >\r\n          <TableFoot fixed=\"right\"></TableFoot>\r\n        </div>\r\n      </NativeScroll>\r\n    </div>\r\n    <Scrollbar\r\n      v-if=\"props.useXBar && useXScroll\"\r\n      ref=\"xScrollbar\"\r\n      inherit\r\n      placement=\"bottom\"\r\n      :class=\"nh.bem('bar', 'horizontal')\"\r\n      :fade=\"props.barFade\"\r\n      :disabled=\"!xScrollEnabled\"\r\n      :bar-length=\"xBarLength\"\r\n      :style=\"{ bottom: `${footHeight}px` }\"\r\n      @scroll-start=\"setBarScrolling(true)\"\r\n      @scroll=\"handleXBarScroll\"\r\n      @scroll-end=\"setBarScrolling(false)\"\r\n    ></Scrollbar>\r\n    <Scrollbar\r\n      v-if=\"props.useYBar && bodyScrollHeight\"\r\n      ref=\"yScrollbar\"\r\n      inherit\r\n      placement=\"right\"\r\n      :class=\"nh.bem('bar', 'vertical')\"\r\n      :fade=\"props.barFade\"\r\n      :disabled=\"!yScrollEnabled\"\r\n      :bar-length=\"yBarLength\"\r\n      :style=\"{\r\n        top: headHeight ? `${headHeight}px` : undefined,\r\n        bottom: footHeight ? `${footHeight}px` : undefined,\r\n      }\"\r\n      @scroll-start=\"setBarScrolling(true)\"\r\n      @scroll=\"handleYBarScroll\"\r\n      @scroll-end=\"setBarScrolling(false)\"\r\n    ></Scrollbar>\r\n    <div\r\n      v-if=\"props.rowDraggable || hasDragColumn\"\r\n      v-show=\"indicatorShow\"\r\n      ref=\"indicator\"\r\n      :class=\"[\r\n        nh.be('indicator'),\r\n        indicatorType === 'before' && nh.bem('indicator', 'before'),\r\n        indicatorType === 'after' && nh.bem('indicator', 'after'),\r\n      ]\"\r\n    ></div>\r\n    <div\r\n      v-if=\"state.colResizable === 'lazy'\"\r\n      v-show=\"state.colResizing\"\r\n      :class=\"nh.be('resize-indicator')\"\r\n      :style=\"{ left: `${state.resizeLeft}px` }\"\r\n    ></div>\r\n  </div>\r\n</template>\r\n"],"names":["defaultKeyConfig","props","useProps","__props","value","emit","__emit","slots","_useSlots","nh","useNameHelper","timer","useSetTimeout","bodyHeight","ref","bodyMinHeight","xScrollEnabled","yScrollEnabled","xScrollPercent","yScrollPercent","headHeight","footHeight","indicatorShow","indicatorType","DropType","tempColumns","reactive","tempSummaries","tableWidth","hasDragColumn","bodyWidth","wrapper","mainScroll","xHeadScroll","xAboveScroll","xBelowScroll","thead","aboveTfoot","belowTfoot","indicator","xScrollbar","yScrollbar","isMounted","locale","useLocale","toRef","keyConfig","computed","allColumns","allSummaries","syncToStoreProps","store","useStore","prev","current","provide","TABLE_STORE","TABLE_ACTIONS","increaseColumn","decreaseColumn","increaseSummary","decreaseSummary","getTableElement","refreshXScroll","emitRowCheck","emitAllRowCheck","emitRowExpand","emitRowTreeExpand","emitRowFilter","emitRowSort","handleRowDragStart","handleRowDragOver","handleRowDrop","handleRowDragEnd","emitRowEvent","emitCellEvent","emitHeadEvent","emitColResize","emitFootEvent","name","renderTableSlot","runInLocked","debounceMinor","updateColumns","setColumnProp","updateSummaries","setSummaryProp","TABLE_SLOTS","state","getters","mutations","mergedLocked","className","style","width","padLeft","padRight","isDefined","isValidNumber","useXScroll","bodyScrollHeight","totalHeight","xBarLength","_a","yBarLength","totalWidths","getLast","leftFixedActive","rightFixedActive","setColumns","setSummaries","setData","setDataKey","setTableWidth","setBodyYScroll","setBodyXScroll","setRenderRows","setVirtual","setLocale","setDragging","setKeyConfig","setDisabledTree","setLocked","setBarScrolling","clearSort","clearFilter","refreshRowIndex","clearCheckAll","getParentRow","getCurrentData","flatTreeRows","refreshRowDepth","queryRow","handleCheck","setTreeExpanded","watch","forceRefreshData","computeTableWidth","nextTick","computeBodyHeight","refreshPercentScroll","config","refresh","prop","watchCallback","syncBarScroll","_b","handlerResize","debounce","onMounted","onBeforeUnmount","__expose","getSelected","setRowChecked","setRowTreeExpanded","data","computeRenderRows","toNumber","height","minHeight","borderWidth","fixedHeight","handleMainScroll","payload","handleXScroll","handleYScroll","clientX","percentX","emitEvent","clientY","percentY","emitYScroll","handleXBarScroll","percent","client","handleYBarScroll","nextFrameOnce","handleResize","column","summary","key","_c","_d","checked","partial","columns","filters","columnMap","listToMap","profiles","row","sorters","sorter","dragState","rowInstance","event","dropRowRect","tableRect","prevPercent","nextPercent","distance","dropRowHeight","dropType","indicatorTop","isIndicatorShow","isLeftInsideRight","left","right","draggingRow","willDropRow","currentKey","parent","removeArrayItem","item","children","index","dropped","allDataPayload","type","force","bodyYScroll","heightBITree","processedData","rowCount","viewHeight","viewStart","viewEnd","start","end","renderStart","renderEnd","handler","noop","delay","resolve","selectedData","i","len","keyOrData","expanded","renderSlot","_createElementBlock","_unref","_withDirectives","_createElementVNode","_hoisted_2","_renderSlot","_ctx","_openBlock","_Fragment","_createBlock","_mergeProps","_renderList","others","TableSummary","_normalizeClass","_createVNode","NativeScroll","TableHead","TableFoot","_normalizeStyle","_cache","$event","TableBody","_createSlots","_withCtx","isFixed","Renderer","Scrollbar","_vShow"],"mappings":"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"}