{"version":3,"file":"useCache.cjs","sources":["../../../../../../../packages/vue-components/vc-select/src/hooks/useCache.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { RawValueType } from '../BaseSelect';\nimport type { DefaultOptionType, LabelInValueType } from '../Select';\nimport { computed, shallowRef } from 'vue';\n\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (\n  labeledValues: Ref<LabelInValueType[]>,\n  valueOptions: Ref<Map<RawValueType, DefaultOptionType>>,\n): [Ref<LabelInValueType[]>, (val: RawValueType) => DefaultOptionType] => {\n  const cacheRef = shallowRef({\n    values: new Map<RawValueType, LabelInValueType>(),\n    options: new Map<RawValueType, DefaultOptionType>(),\n  });\n\n  const filledLabeledValues = computed(() => {\n    const { values: prevValueCache, options: prevOptionCache } = cacheRef.value;\n\n    // Fill label by cache\n    const patchedValues = labeledValues.value.map((item) => {\n      if (item.label === undefined) {\n        return {\n          ...item,\n          label: prevValueCache.get(item.value)?.label,\n        };\n      }\n\n      return item;\n    });\n\n    // Refresh cache\n    const valueCache = new Map<RawValueType, LabelInValueType>();\n    const optionCache = new Map<RawValueType, DefaultOptionType>();\n\n    patchedValues.forEach((item) => {\n      valueCache.set(item.value, item);\n      optionCache.set(\n        item.value,\n        valueOptions.value.get(item.value) || prevOptionCache.get(item.value),\n      );\n    });\n\n    cacheRef.value.values = valueCache;\n    cacheRef.value.options = optionCache;\n\n    return patchedValues;\n  });\n\n  const getOption = (val: RawValueType) =>\n    valueOptions.value.get(val) || cacheRef.value.options.get(val);\n\n  return [filledLabeledValues, getOption];\n};\n"],"names":["shallowRef","computed"],"mappings":";;;;;;AAQA,eAAe,CACb,eACA,YACwE,KAAA;AACxE,EAAA,MAAM,WAAWA,cAAW,CAAA;AAAA,IAC1B,MAAA,sBAAY,GAAoC,EAAA;AAAA,IAChD,OAAA,sBAAa,GAAqC,EAAA;AAAA,GACnD,CAAA,CAAA;AAED,EAAM,MAAA,mBAAA,GAAsBC,aAAS,MAAM;AACzC,IAAA,MAAM,EAAE,MAAQ,EAAA,cAAA,EAAgB,OAAS,EAAA,eAAA,KAAoB,QAAS,CAAA,KAAA,CAAA;AAGtE,IAAA,MAAM,aAAgB,GAAA,aAAA,CAAc,KAAM,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA;AArB5D,MAAA,IAAA,EAAA,CAAA;AAsBM,MAAI,IAAA,IAAA,CAAK,UAAU,KAAW,CAAA,EAAA;AAC5B,QAAO,OAAA;AAAA,UACL,GAAG,IAAA;AAAA,UACH,QAAO,EAAe,GAAA,cAAA,CAAA,GAAA,CAAI,IAAK,CAAA,KAAK,MAA7B,IAAgC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA;AAAA,SACzC,CAAA;AAAA,OACF;AAEA,MAAO,OAAA,IAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAM,MAAA,UAAA,uBAAiB,GAAoC,EAAA,CAAA;AAC3D,IAAM,MAAA,WAAA,uBAAkB,GAAqC,EAAA,CAAA;AAE7D,IAAc,aAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAC9B,MAAW,UAAA,CAAA,GAAA,CAAI,IAAK,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAC/B,MAAY,WAAA,CAAA,GAAA;AAAA,QACV,IAAK,CAAA,KAAA;AAAA,QACL,YAAA,CAAa,MAAM,GAAI,CAAA,IAAA,CAAK,KAAK,CAAK,IAAA,eAAA,CAAgB,GAAI,CAAA,IAAA,CAAK,KAAK,CAAA;AAAA,OACtE,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,QAAA,CAAS,MAAM,MAAS,GAAA,UAAA,CAAA;AACxB,IAAA,QAAA,CAAS,MAAM,OAAU,GAAA,WAAA,CAAA;AAEzB,IAAO,OAAA,aAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAA,MAAM,SAAY,GAAA,CAAC,GACjB,KAAA,YAAA,CAAa,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,IAAK,QAAS,CAAA,KAAA,CAAM,OAAQ,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAE/D,EAAO,OAAA,CAAC,qBAAqB,SAAS,CAAA,CAAA;AACxC,CAAA;;;;"}