{"version":3,"file":"use-sorter.mjs","sources":["../../../../../../../packages/components/table/src/hooks/use-sorter.ts"],"sourcesContent":["import { ref } from 'vue'\nimport type { TableColumnData } from '../types'\n\nconst sortDirection = ['ascend', 'descend', ''] as const\n\ntype SortDirection = (typeof sortDirection)[number]\n\nconst getDirection = (direction: SortDirection) => {\n  let index = sortDirection.indexOf(direction)\n  if (index === sortDirection.length - 1) {\n    index = 0\n  } else {\n    index++\n  }\n\n  return sortDirection[index]\n}\n\nexport const useSorter = ({\n  sort,\n  prop,\n  popup,\n  callback\n}: {\n  sort: SortDirection\n  prop: string | number\n  popup: boolean\n  callback: () => void\n}) => {\n  const activeSort = ref<SortDirection>(sort)\n  const activeProp = ref(prop)\n  const isSortPopup = ref(popup)\n\n  const handleSortChange = (column: TableColumnData, direction?: SortDirection) => {\n    if (activeProp.value !== column.prop) {\n      activeSort.value = ''\n    }\n    activeProp.value = column.prop!\n    activeSort.value = direction ? direction : getDirection(activeSort.value)\n    callback()\n  }\n  return {\n    activeSort,\n    activeProp,\n    handleSortChange,\n    isSortPopup\n  }\n}\n"],"names":[],"mappings":";;AAGA,MAAM,aAAgB,GAAA,CAAC,QAAU,EAAA,SAAA,EAAW,EAAE,CAAA,CAAA;AAI9C,MAAM,YAAA,GAAe,CAAC,SAA6B,KAAA;AACjD,EAAI,IAAA,KAAA,GAAQ,aAAc,CAAA,OAAA,CAAQ,SAAS,CAAA,CAAA;AAC3C,EAAI,IAAA,KAAA,KAAU,aAAc,CAAA,MAAA,GAAS,CAAG,EAAA;AACtC,IAAQ,KAAA,GAAA,CAAA,CAAA;AAAA,GACH,MAAA;AACL,IAAA,KAAA,EAAA,CAAA;AAAA,GACF;AAEA,EAAA,OAAO,cAAc,KAAK,CAAA,CAAA;AAC5B,CAAA,CAAA;AAEO,MAAM,YAAY,CAAC;AAAA,EACxB,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AACF,CAKM,KAAA;AACJ,EAAM,MAAA,UAAA,GAAa,IAAmB,IAAI,CAAA,CAAA;AAC1C,EAAM,MAAA,UAAA,GAAa,IAAI,IAAI,CAAA,CAAA;AAC3B,EAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA,CAAA;AAE7B,EAAM,MAAA,gBAAA,GAAmB,CAAC,MAAA,EAAyB,SAA8B,KAAA;AAC/E,IAAI,IAAA,UAAA,CAAW,KAAU,KAAA,MAAA,CAAO,IAAM,EAAA;AACpC,MAAA,UAAA,CAAW,KAAQ,GAAA,EAAA,CAAA;AAAA,KACrB;AACA,IAAA,UAAA,CAAW,QAAQ,MAAO,CAAA,IAAA,CAAA;AAC1B,IAAA,UAAA,CAAW,KAAQ,GAAA,SAAA,GAAY,SAAY,GAAA,YAAA,CAAa,WAAW,KAAK,CAAA,CAAA;AACxE,IAAS,QAAA,EAAA,CAAA;AAAA,GACX,CAAA;AACA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA;AAAA,GACF,CAAA;AACF;;;;"}