{"version":3,"file":"use-checkbox-disabled.mjs","names":[],"sources":["../../../../../../../packages/components/checkbox/src/composables/use-checkbox-disabled.ts"],"sourcesContent":["import { computed, inject } from 'vue'\nimport { formContextKey, useFormDisabled } from '@element-plus/components/form'\nimport { isUndefined } from '@element-plus/utils'\nimport { checkboxGroupContextKey } from '../constants'\n\nimport type { CheckboxModel, CheckboxStatus } from '../composables'\n\nexport const useCheckboxDisabled = ({\n  model,\n  isChecked,\n}: Pick<CheckboxModel, 'model'> & Pick<CheckboxStatus, 'isChecked'>) => {\n  const checkboxGroup = inject(checkboxGroupContextKey, undefined)\n  const formContext = inject(formContextKey, undefined)\n\n  const isLimitDisabled = computed(() => {\n    const max = checkboxGroup?.max?.value\n    const min = checkboxGroup?.min?.value\n    return (\n      (!isUndefined(max) && model.value.length >= max && !isChecked.value) ||\n      (!isUndefined(min) && model.value.length <= min && isChecked.value)\n    )\n  })\n\n  const isDisabled = useFormDisabled(\n    computed(() => {\n      // Directly use the checkbox\n      if (checkboxGroup === undefined) {\n        return formContext?.disabled ?? isLimitDisabled.value\n      } else {\n        return checkboxGroup.disabled?.value || isLimitDisabled.value\n      }\n    })\n  )\n\n  return {\n    isDisabled,\n    isLimitDisabled,\n  }\n}\n\nexport type CheckboxDisabled = ReturnType<typeof useCheckboxDisabled>\n"],"mappings":";;;;;;;AAOA,MAAa,uBAAuB,EAClC,OACA,gBACsE;CACtE,MAAM,gBAAgB,OAAO,yBAAyB,OAAU;CAChE,MAAM,cAAc,OAAO,gBAAgB,OAAU;CAErD,MAAM,kBAAkB,eAAe;EACrC,MAAM,MAAM,eAAe,KAAK;EAChC,MAAM,MAAM,eAAe,KAAK;AAChC,SACG,CAAC,YAAY,IAAI,IAAI,MAAM,MAAM,UAAU,OAAO,CAAC,UAAU,SAC7D,CAAC,YAAY,IAAI,IAAI,MAAM,MAAM,UAAU,OAAO,UAAU;GAE/D;AAaF,QAAO;EACL,YAZiB,gBACjB,eAAe;AAEb,OAAI,kBAAkB,OACpB,QAAO,aAAa,YAAY,gBAAgB;OAEhD,QAAO,cAAc,UAAU,SAAS,gBAAgB;IAE1D,CACH;EAIC;EACD"}