UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.02 kB
{"version":3,"file":"use-checkbox-status.mjs","sources":["../../../../../../../packages/components/checkbox/src/composables/use-checkbox-status.ts"],"sourcesContent":["import { computed, inject, ref, toRaw } from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useFormSize } from '@element-plus/components/form'\nimport { isArray, isBoolean, isObject, isPropAbsent } from '@element-plus/utils'\nimport { checkboxGroupContextKey } from '../constants'\n\nimport type { ComponentInternalInstance } from 'vue'\nimport type { CheckboxProps } from '../checkbox'\nimport type { CheckboxModel } from '../composables'\n\nexport const useCheckboxStatus = (\n props: CheckboxProps,\n slots: ComponentInternalInstance['slots'],\n { model }: Pick<CheckboxModel, 'model'>\n) => {\n const checkboxGroup = inject(checkboxGroupContextKey, undefined)\n const isFocused = ref(false)\n const actualValue = computed(() => {\n // In version 2.x, if there's no props.value, props.label will act as props.value\n // In version 3.x, remove this computed value, use props.value instead.\n if (!isPropAbsent(props.value)) {\n return props.value\n }\n return props.label\n })\n const isChecked = computed<boolean>(() => {\n const value = model.value\n if (isBoolean(value)) {\n return value\n } else if (isArray(value)) {\n if (isObject(actualValue.value)) {\n return value.map(toRaw).some((o) => isEqual(o, actualValue.value))\n } else {\n return value.map(toRaw).includes(actualValue.value)\n }\n } else if (value !== null && value !== undefined) {\n return value === props.trueValue || value === props.trueLabel\n } else {\n return !!value\n }\n })\n\n const checkboxButtonSize = useFormSize(\n computed(() => checkboxGroup?.size?.value),\n {\n prop: true,\n }\n )\n const checkboxSize = useFormSize(computed(() => checkboxGroup?.size?.value))\n\n const hasOwnLabel = computed<boolean>(() => {\n return !!slots.default || !isPropAbsent(actualValue.value)\n })\n\n return {\n checkboxButtonSize,\n isChecked,\n isFocused,\n checkboxSize,\n hasOwnLabel,\n actualValue,\n }\n}\n\nexport type CheckboxStatus = ReturnType<typeof useCheckboxStatus>\n"],"names":[],"mappings":";;;;;;;AAUO,MAAM,oBAAoB,CAC/B,KAAA,EACA,KAAA,EACA,EAAE,OAAM,KACL;AACH,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,uBAAA,EAAyB,MAAS,CAAA;AAC/D,EAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,EAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AAGjC,IAAA,IAAI,CAAC,YAAA,CAAa,KAAA,CAAM,KAAK,CAAA,EAAG;AAC9B,MAAA,OAAO,KAAA,CAAM,KAAA;AAAA,IACf;AACA,IAAA,OAAO,KAAA,CAAM,KAAA;AAAA,EACf,CAAC,CAAA;AACD,EAAA,MAAM,SAAA,GAAY,SAAkB,MAAM;AACxC,IAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,IAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,MAAA,OAAO,KAAA;AAAA,IACT,CAAA,MAAA,IAAW,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,MAAA,IAAI,QAAA,CAAS,WAAA,CAAY,KAAK,CAAA,EAAG;AAC/B,QAAA,OAAO,KAAA,CAAM,GAAA,CAAI,KAAK,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAA,EAAG,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,MACnE,CAAA,MAAO;AACL,QAAA,OAAO,MAAM,GAAA,CAAI,KAAK,CAAA,CAAE,QAAA,CAAS,YAAY,KAAK,CAAA;AAAA,MACpD;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AAChD,MAAA,OAAO,KAAA,KAAU,KAAA,CAAM,SAAA,IAAa,KAAA,KAAU,KAAA,CAAM,SAAA;AAAA,IACtD,CAAA,MAAO;AACL,MAAA,OAAO,CAAC,CAAC,KAAA;AAAA,IACX;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,kBAAA,GAAqB,WAAA;AAAA,IACzB,SAAS,MAAG;AA3ChB,MAAA,IAAA,EAAA;AA2CmB,MAAA,OAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,SAAf,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,KAAA;AAAA,IAAA,CAAK,CAAA;AAAA,IACzC;AAAA,MACE,IAAA,EAAM;AAAA;AACR,GACF;AACA,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,QAAA,CAAS,MAAG;AAhD/C,IAAA,IAAA,EAAA;AAgDkD,IAAA,OAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,SAAf,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,KAAA;AAAA,EAAA,CAAK,CAAC,CAAA;AAE3E,EAAA,MAAM,WAAA,GAAc,SAAkB,MAAM;AAC1C,IAAA,OAAO,CAAC,CAAC,KAAA,CAAM,WAAW,CAAC,YAAA,CAAa,YAAY,KAAK,CAAA;AAAA,EAC3D,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}