{"version":3,"file":"setCheckAllStatus.mjs","sources":["../../../src/checkbox/hooks/setCheckAllStatus.ts"],"sourcesContent":["// 计算全选按钮的状态\nimport { computed, ref, ComputedRef, Ref } from 'vue';\nimport { intersection } from 'lodash-es';\n\nexport const setCheckAllStatus = (optionList: Ref<any[]>, innerValue: Ref, checkedSet: ComputedRef) => {\n  const { isArray } = Array;\n\n  // 当前有效选项的 value 列表（排除 checkAll 项和 value 为 undefined 的项）\n  const validValues = computed(() => {\n    return (\n      optionList.value?.filter((item) => !item.checkAll && item.value !== undefined).map((item) => item.value) ?? []\n    );\n  });\n\n  // innerValue 与当前有效选项的交集长度\n  const intersectionLen = computed(() => {\n    if (isArray(innerValue.value)) {\n      return intersection(innerValue.value, validValues.value).length;\n    }\n    return 0;\n  });\n\n  const isAllChecked = computed(() => {\n    const validLen = validValues.value.length;\n    if (validLen === 0) return false;\n    // 使用交集长度判断是否全选，而非 checkedSet.size，\n    // 因为 checkedSet 可能包含不在当前 optionList 中的旧值\n    return intersectionLen.value === validLen;\n  });\n\n  const indeterminate = computed(() => {\n    const validLen = validValues.value.length;\n    if (validLen === 0) return false;\n    return !isAllChecked.value && intersectionLen.value > 0;\n  });\n\n  return computed(() => {\n    if (isAllChecked.value) return 'checked';\n    if (indeterminate.value) return 'indeterminate';\n    return 'uncheck';\n  });\n};\n"],"names":["setCheckAllStatus","optionList","innerValue","checkedSet","isArray","Array","validValues","computed","_optionList$value$fil","_optionList$value","value","filter","item","checkAll","map","intersectionLen","intersection","length","isAllChecked","validLen","indeterminate"],"mappings":";;;;;;;;;AAIO,IAAMA,iBAAoB,GAAA,SAApBA,iBAAoBA,CAACC,UAAwB,EAAAC,UAAA,EAAiBC,UAA4B,EAAA;AAC/F,EAAA,IAAEC,UAAYC,KAAA,CAAZD;AAGF,EAAA,IAAAE,WAAA,GAAcC,SAAS,YAAM;IAAA,IAAAC,qBAAA,EAAAC,iBAAA,CAAA;AACjC,IAAA,OAAA,CAAAD,qBAAA,GAAA,CAAAC,iBAAA,GACER,WAAWS,KAAO,MAAAD,IAAAA,IAAAA,iBAAA,uBAAlBA,iBAAA,CAAkBE,MAAA,CAAO,UAACC,IAAS,EAAA;MAAA,OAAA,CAACA,KAAKC,QAAY,IAAAD,IAAA,CAAKF,KAAU,KAAA,KAAA,CAAS,CAAA;AAAA,KAAA,EAAEI,GAAI,CAAA,UAACF;aAASA,IAAK,CAAAF,KAAK,CAAA;AAAA,KAAA,0EAAK,EAAC,CAAA;AAEjH,GAAC,CAAA,CAAA;AAGK,EAAA,IAAAK,eAAA,GAAkBR,SAAS,YAAM;AACjC,IAAA,IAAAH,OAAA,CAAQF,UAAW,CAAAQ,KAAK,CAAG,EAAA;MAC7B,OAAOM,YAAa,CAAAd,UAAA,CAAWQ,KAAO,EAAAJ,WAAA,CAAYI,KAAK,CAAE,CAAAO,MAAA,CAAA;AAC3D,KAAA;AACO,IAAA,OAAA,CAAA,CAAA;AACT,GAAC,CAAA,CAAA;AAEK,EAAA,IAAAC,YAAA,GAAeX,SAAS,YAAM;AAC5B,IAAA,IAAAY,QAAA,GAAWb,YAAYI,KAAM,CAAAO,MAAA,CAAA;AACnC,IAAA,IAAIE,QAAa,KAAA,CAAA,EAAU,OAAA,KAAA,CAAA;AAG3B,IAAA,OAAOJ,gBAAgBL,KAAU,KAAAS,QAAA,CAAA;AACnC,GAAC,CAAA,CAAA;AAEK,EAAA,IAAAC,aAAA,GAAgBb,SAAS,YAAM;AAC7B,IAAA,IAAAY,QAAA,GAAWb,YAAYI,KAAM,CAAAO,MAAA,CAAA;AACnC,IAAA,IAAIE,QAAa,KAAA,CAAA,EAAU,OAAA,KAAA,CAAA;IAC3B,OAAO,CAACD,YAAA,CAAaR,KAAS,IAAAK,eAAA,CAAgBL,KAAQ,GAAA,CAAA,CAAA;AACxD,GAAC,CAAA,CAAA;EAED,OAAOH,SAAS,YAAM;AACpB,IAAA,IAAIW,YAAa,CAAAR,KAAA,EAAc,OAAA,SAAA,CAAA;AAC/B,IAAA,IAAIU,aAAc,CAAAV,KAAA,EAAc,OAAA,eAAA,CAAA;AACzB,IAAA,OAAA,SAAA,CAAA;AACT,GAAC,CAAA,CAAA;AACH;;;;"}