{"version":3,"file":"useCache.cjs","sources":["../../../../../../../packages/vue-components/vc-tree-select/src/hooks/useCache.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { LabeledValueType, RawValueType } from '../TreeSelect';\nimport { computed, shallowRef, toRaw, watch } from 'vue';\n\n/**\n * This function will try to call requestIdleCallback if available to save performance.\n * No need `getLabel` here since already fetch on `rawLabeledValue`.\n */\nexport default (values: Ref<LabeledValueType[]>): [Ref<LabeledValueType[]>] => {\n  const cacheRef = shallowRef({\n    valueLabels: new Map<RawValueType, any>(),\n  });\n  const mergedValues = shallowRef();\n  watch(\n    values,\n    () => {\n      mergedValues.value = toRaw(values.value);\n    },\n    { immediate: true },\n  );\n  const newFilledValues = computed(() => {\n    const { valueLabels } = cacheRef.value;\n    const valueLabelsCache = new Map<RawValueType, any>();\n\n    const filledValues = mergedValues.value.map((item) => {\n      const { value } = item;\n      const mergedLabel = item.label ?? valueLabels.get(value);\n\n      // Save in cache\n      valueLabelsCache.set(value, mergedLabel);\n\n      return {\n        ...item,\n        label: mergedLabel,\n      };\n    });\n\n    cacheRef.value.valueLabels = valueLabelsCache;\n\n    return filledValues;\n  });\n  return [newFilledValues];\n};\n"],"names":["shallowRef","watch","toRaw","computed"],"mappings":";;;;;;AAQA,eAAe,CAAC,MAA+D,KAAA;AAC7E,EAAA,MAAM,WAAWA,cAAW,CAAA;AAAA,IAC1B,WAAA,sBAAiB,GAAuB,EAAA;AAAA,GACzC,CAAA,CAAA;AACD,EAAA,MAAM,eAAeA,cAAW,EAAA,CAAA;AAChC,EAAAC,SAAA;AAAA,IACE,MAAA;AAAA,IACA,MAAM;AACJ,MAAa,YAAA,CAAA,KAAA,GAAQC,SAAM,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,KACzC;AAAA,IACA,EAAE,WAAW,IAAK,EAAA;AAAA,GACpB,CAAA;AACA,EAAM,MAAA,eAAA,GAAkBC,aAAS,MAAM;AACrC,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,QAAS,CAAA,KAAA,CAAA;AACjC,IAAM,MAAA,gBAAA,uBAAuB,GAAuB,EAAA,CAAA;AAEpD,IAAA,MAAM,YAAe,GAAA,YAAA,CAAa,KAAM,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA;AAxB1D,MAAA,IAAA,EAAA,CAAA;AAyBM,MAAM,MAAA,EAAE,OAAU,GAAA,IAAA,CAAA;AAClB,MAAA,MAAM,eAAc,EAAK,GAAA,IAAA,CAAA,KAAA,KAAL,IAAc,GAAA,EAAA,GAAA,WAAA,CAAY,IAAI,KAAK,CAAA,CAAA;AAGvD,MAAiB,gBAAA,CAAA,GAAA,CAAI,OAAO,WAAW,CAAA,CAAA;AAEvC,MAAO,OAAA;AAAA,QACL,GAAG,IAAA;AAAA,QACH,KAAO,EAAA,WAAA;AAAA,OACT,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,QAAA,CAAS,MAAM,WAAc,GAAA,gBAAA,CAAA;AAE7B,IAAO,OAAA,YAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAA,OAAO,CAAC,eAAe,CAAA,CAAA;AACzB,CAAA;;;;"}