{"version":3,"file":"use-table.mjs","sources":["../../../../../../../packages/components/table/src/composables/use-table.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, onMounted, ref } from 'vue'\nimport { UPDATE_MODEL_EVENT } from '@vuesax-alpha/constants'\nimport { isArray } from '@vuesax-alpha/utils'\nimport { useNamespace } from '@vuesax-alpha/hooks'\nimport type { TableEmitFn, TableProps } from './../table'\n\nexport const useTable = (props: TableProps, emit: TableEmitFn) => {\n  const ns = useNamespace('table')\n\n  const colspan = ref<number>(0)\n\n  // DOM refs\n  const theadRef = ref<HTMLElement>()\n\n  const isMultipleSelected = computed(\n    () => props.multiple && isArray(props.modelValue)\n  )\n\n  const tableKls = computed(() => [\n    ns.b(),\n    ns.is('striped', props.striped),\n    ns.is('multiple', props.multiple),\n  ])\n\n  const selectedMultiple = (val: any) => {\n    const newVal = props.modelValue\n\n    if (props.modelValue.includes(val)) {\n      newVal.splice(props.modelValue.indexOf(val), 1)\n    } else {\n      newVal.push(val)\n    }\n\n    emit(UPDATE_MODEL_EVENT, newVal)\n  }\n\n  const selected = (val: any) => {\n    if (isMultipleSelected.value) {\n      selectedMultiple(val)\n    } else {\n      emit(UPDATE_MODEL_EVENT, val)\n    }\n  }\n\n  onMounted(() => {\n    if (props.multiple) {\n      if (!isArray(props.modelValue)) {\n        const value = props.modelValue ? [props.modelValue] : []\n        emit(UPDATE_MODEL_EVENT, [...value])\n      }\n    }\n    const tds = theadRef.value?.querySelectorAll('th')\n    colspan.value = tds?.length || 0\n  })\n\n  return {\n    tableKls,\n    colspan,\n    isMultipleSelected,\n    selected,\n\n    theadRef,\n  }\n}\n"],"names":[],"mappings":";;;;;;;;AAOa,MAAA,QAAA,GAAW,CAAC,KAAA,EAAmB,IAAsB,KAAA;AAChE,EAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAE/B,EAAM,MAAA,OAAA,GAAU,IAAY,CAAC,CAAA,CAAA;AAG7B,EAAA,MAAM,WAAW,GAAiB,EAAA,CAAA;AAElC,EAAA,MAAM,kBAAqB,GAAA,QAAA;AAAA,IACzB,MAAM,KAAA,CAAM,QAAY,IAAA,OAAA,CAAQ,MAAM,UAAU,CAAA;AAAA,GAClD,CAAA;AAEA,EAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAAA,IAC9B,GAAG,CAAE,EAAA;AAAA,IACL,EAAG,CAAA,EAAA,CAAG,SAAW,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,IAC9B,EAAG,CAAA,EAAA,CAAG,UAAY,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,GACjC,CAAA,CAAA;AAED,EAAM,MAAA,gBAAA,GAAmB,CAAC,GAAa,KAAA;AACrC,IAAA,MAAM,SAAS,KAAM,CAAA,UAAA,CAAA;AAErB,IAAA,IAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,GAAG,CAAG,EAAA;AAClC,MAAA,MAAA,CAAO,OAAO,KAAM,CAAA,UAAA,CAAW,OAAQ,CAAA,GAAG,GAAG,CAAC,CAAA,CAAA;AAAA,KACzC,MAAA;AACL,MAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAA;AAAA,KACjB;AAEA,IAAA,IAAA,CAAK,oBAAoB,MAAM,CAAA,CAAA;AAAA,GACjC,CAAA;AAEA,EAAM,MAAA,QAAA,GAAW,CAAC,GAAa,KAAA;AAC7B,IAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,MAAA,gBAAA,CAAiB,GAAG,CAAA,CAAA;AAAA,KACf,MAAA;AACL,MAAA,IAAA,CAAK,oBAAoB,GAAG,CAAA,CAAA;AAAA,KAC9B;AAAA,GACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AA7ClB,IAAA,IAAA,EAAA,CAAA;AA8CI,IAAA,IAAI,MAAM,QAAU,EAAA;AAClB,MAAA,IAAI,CAAC,OAAA,CAAQ,KAAM,CAAA,UAAU,CAAG,EAAA;AAC9B,QAAA,MAAM,QAAQ,KAAM,CAAA,UAAA,GAAa,CAAC,KAAM,CAAA,UAAU,IAAI,EAAC,CAAA;AACvD,QAAA,IAAA,CAAK,kBAAoB,EAAA,CAAC,GAAG,KAAK,CAAC,CAAA,CAAA;AAAA,OACrC;AAAA,KACF;AACA,IAAA,MAAM,GAAM,GAAA,CAAA,EAAA,GAAA,QAAA,CAAS,KAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,gBAAiB,CAAA,IAAA,CAAA,CAAA;AAC7C,IAAQ,OAAA,CAAA,KAAA,GAAA,CAAQ,2BAAK,MAAU,KAAA,CAAA,CAAA;AAAA,GAChC,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,OAAA;AAAA,IACA,kBAAA;AAAA,IACA,QAAA;AAAA,IAEA,QAAA;AAAA,GACF,CAAA;AACF;;;;"}