{"version":3,"file":"useOffsets.cjs","sources":["../../../../../../../packages/components/tabs/src/hooks/useOffsets.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { Tab, TabOffset, TabOffsetMap, TabSizeMap } from '../interface';\nimport { ref, watchEffect } from 'vue';\n\nconst DEFAULT_SIZE = { width: 0, height: 0, left: 0, top: 0 };\n\nexport default function useOffsets(\n  tabs: Ref<Tab[]>,\n  tabSizes: Ref<TabSizeMap>,\n  // holderScrollWidth: Ref<number>,\n): Ref<TabOffsetMap> {\n  const offsetMap = ref<TabOffsetMap>(new Map());\n  watchEffect(() => {\n    const map: TabOffsetMap = new Map();\n    const tabsValue = tabs.value;\n    const lastOffset = tabSizes.value.get(tabsValue[0]?.key) || DEFAULT_SIZE;\n    const rightOffset = lastOffset.left + lastOffset.width;\n\n    for (let i = 0; i < tabsValue.length; i += 1) {\n      const { key } = tabsValue[i];\n      let data = tabSizes.value.get(key);\n\n      // Reuse last one when not exist yet\n      if (!data)\n        data = tabSizes.value.get(tabsValue[i - 1]?.key) || DEFAULT_SIZE;\n\n      const entity = (map.get(key) || { ...data }) as TabOffset;\n\n      // Right\n      entity.right = rightOffset - entity.left - entity.width;\n\n      // Update entity\n      map.set(key, entity);\n    }\n    offsetMap.value = new Map(map);\n  });\n\n  return offsetMap;\n}\n"],"names":["ref","watchEffect"],"mappings":";;;;;;AAIA,MAAM,YAAA,GAAe,EAAE,KAAO,EAAA,CAAA,EAAG,QAAQ,CAAG,EAAA,IAAA,EAAM,CAAG,EAAA,GAAA,EAAK,CAAE,EAAA,CAAA;AAEpC,SAAA,UAAA,CACtB,MACA,QAEmB,EAAA;AACnB,EAAA,MAAM,SAAY,GAAAA,OAAA,iBAAsB,IAAA,GAAA,EAAK,CAAA,CAAA;AAC7C,EAAAC,eAAA,CAAY,MAAM;AAZpB,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAaI,IAAM,MAAA,GAAA,uBAAwB,GAAI,EAAA,CAAA;AAClC,IAAA,MAAM,YAAY,IAAK,CAAA,KAAA,CAAA;AACvB,IAAM,MAAA,UAAA,GAAa,SAAS,KAAM,CAAA,GAAA,CAAA,CAAI,eAAU,CAAC,CAAA,KAAX,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAK,IAAA,YAAA,CAAA;AAC5D,IAAM,MAAA,WAAA,GAAc,UAAW,CAAA,IAAA,GAAO,UAAW,CAAA,KAAA,CAAA;AAEjD,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,SAAU,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;AAC5C,MAAA,MAAM,EAAE,GAAA,EAAQ,GAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AAC3B,MAAA,IAAI,IAAO,GAAA,QAAA,CAAS,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAGjC,MAAA,IAAI,CAAC,IAAA;AACH,QAAO,IAAA,GAAA,QAAA,CAAS,MAAM,GAAI,CAAA,CAAA,EAAA,GAAA,SAAA,CAAU,IAAI,CAAC,CAAA,KAAf,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAK,IAAA,YAAA,CAAA;AAEtD,MAAA,MAAM,SAAU,GAAI,CAAA,GAAA,CAAI,GAAG,CAAK,IAAA,EAAE,GAAG,IAAK,EAAA,CAAA;AAG1C,MAAA,MAAA,CAAO,KAAQ,GAAA,WAAA,GAAc,MAAO,CAAA,IAAA,GAAO,MAAO,CAAA,KAAA,CAAA;AAGlD,MAAI,GAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAAA,KACrB;AACA,IAAU,SAAA,CAAA,KAAA,GAAQ,IAAI,GAAA,CAAI,GAAG,CAAA,CAAA;AAAA,GAC9B,CAAA,CAAA;AAED,EAAO,OAAA,SAAA,CAAA;AACT;;;;"}