UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.13 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,KACA,EAAA,EAAE,OACC,KAAA;AACH,EAAM,MAAA,aAAA,GAAgB,MAAO,CAAA,uBAAA,EAAyB,KAAS,CAAA,CAAA,CAAA;AAC/D,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAC3B,EAAM,MAAA,WAAA,GAAc,SAAS,MAAM;AAGjC,IAAA,IAAI,CAAC,YAAA,CAAa,KAAM,CAAA,KAAK,CAAG,EAAA;AAC9B,MAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,KACf;AACA,IAAA,OAAO,KAAM,CAAA,KAAA,CAAA;AAAA,GACd,CAAA,CAAA;AACD,EAAM,MAAA,SAAA,GAAY,SAAkB,MAAM;AACxC,IAAA,MAAM,QAAQ,KAAM,CAAA,KAAA,CAAA;AACpB,IAAI,IAAA,SAAA,CAAU,KAAK,CAAG,EAAA;AACpB,MAAO,OAAA,KAAA,CAAA;AAAA,KACT,MAAA,IAAW,OAAQ,CAAA,KAAK,CAAG,EAAA;AACzB,MAAI,IAAA,QAAA,CAAS,WAAY,CAAA,KAAK,CAAG,EAAA;AAC/B,QAAO,OAAA,KAAA,CAAM,GAAI,CAAA,KAAK,CAAE,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,OAAQ,CAAA,CAAA,EAAG,WAAY,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,OAC5D,MAAA;AACL,QAAA,OAAO,MAAM,GAAI,CAAA,KAAK,CAAE,CAAA,QAAA,CAAS,YAAY,KAAK,CAAA,CAAA;AAAA,OACpD;AAAA,KACS,MAAA,IAAA,KAAA,KAAU,IAAQ,IAAA,KAAA,KAAU,KAAW,CAAA,EAAA;AAChD,MAAA,OAAO,KAAU,KAAA,KAAA,CAAM,SAAa,IAAA,KAAA,KAAU,KAAM,CAAA,SAAA,CAAA;AAAA,KAC/C,MAAA;AACL,MAAA,OAAO,CAAC,CAAC,KAAA,CAAA;AAAA,KACX;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,kBAAqB,GAAA,WAAA;AAAA,IACzB,SAAS,MAAG;AA3ChB,MAAA,IAAA,EAAA,CAAA;AA2CmB,MAAA,OAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,SAAf,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA;AAAA,KAAK,CAAA;AAAA,IACzC;AAAA,MACE,IAAM,EAAA,IAAA;AAAA,KACR;AAAA,GACF,CAAA;AACA,EAAM,MAAA,YAAA,GAAe,WAAY,CAAA,QAAA,CAAS,MAAG;AAhD/C,IAAA,IAAA,EAAA,CAAA;AAgDkD,IAAA,OAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,SAAf,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA;AAAA,GAAK,CAAC,CAAA,CAAA;AAE3E,EAAM,MAAA,WAAA,GAAc,SAAkB,MAAM;AAC1C,IAAA,OAAO,CAAC,CAAC,KAAA,CAAM,WAAW,CAAC,YAAA,CAAa,YAAY,KAAK,CAAA,CAAA;AAAA,GAC1D,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,GACF,CAAA;AACF;;;;"}