UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 2.91 kB
{"version":3,"file":"use-checkbox-model.mjs","sources":["../../../../../../../packages/components/checkbox/src/composables/use-checkbox-model.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, ref } from 'vue'\nimport { isArray, isUndefined } from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { checkboxGroupContextKey } from '../constants'\n\nimport type { CheckboxProps } from '../checkbox'\n\nexport const useCheckboxModel = (props: CheckboxProps) => {\n const selfModel = ref<unknown>(false)\n const { emit } = getCurrentInstance()!\n const checkboxGroup = inject(checkboxGroupContextKey, undefined)\n const isGroup = computed(() => isUndefined(checkboxGroup) === false)\n const isLimitExceeded = ref(false)\n const model = computed({\n get() {\n return isGroup.value\n ? checkboxGroup?.modelValue?.value\n : (props.modelValue ?? selfModel.value)\n },\n\n set(val: unknown) {\n if (isGroup.value && isArray(val)) {\n isLimitExceeded.value =\n checkboxGroup?.max?.value !== undefined &&\n val.length > checkboxGroup?.max.value &&\n val.length > model.value.length\n isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val)\n } else {\n emit(UPDATE_MODEL_EVENT, val)\n selfModel.value = val\n }\n },\n })\n\n return {\n model,\n isGroup,\n isLimitExceeded,\n }\n}\n\nexport type CheckboxModel = ReturnType<typeof useCheckboxModel>\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAyB;AACxD,EAAA,MAAM,SAAA,GAAY,IAAa,KAAK,CAAA;AACpC,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,kBAAA,EAAmB;AACpC,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,uBAAA,EAAyB,MAAS,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,MAAM,WAAA,CAAY,aAAa,MAAM,KAAK,CAAA;AACnE,EAAA,MAAM,eAAA,GAAkB,IAAI,KAAK,CAAA;AACjC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAA,GAAM;AAdV,MAAA,IAAA,EAAA,EAAA,EAAA;AAeM,MAAA,OAAO,OAAA,CAAQ,SACX,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,UAAA,KAAf,mBAA2B,KAAA,GAAA,CAC1B,EAAA,GAAA,KAAA,CAAM,UAAA,KAAN,IAAA,GAAA,EAAA,GAAoB,SAAA,CAAU,KAAA;AAAA,IACrC,CAAA;AAAA,IAEA,IAAI,GAAA,EAAc;AApBtB,MAAA,IAAA,EAAA,EAAA,EAAA;AAqBM,MAAA,IAAI,OAAA,CAAQ,KAAA,IAAS,OAAA,CAAQ,GAAG,CAAA,EAAG;AACjC,QAAA,eAAA,CAAgB,KAAA,GAAA,CAAA,CACd,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,GAAA,KAAf,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,WAAU,MAAA,IAC9B,GAAA,CAAI,MAAA,IAAS,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,GAAA,CAAI,KAAA,CAAA,IAChC,GAAA,CAAI,MAAA,GAAS,MAAM,KAAA,CAAM,MAAA;AAC3B,QAAA,eAAA,CAAgB,KAAA,KAAU,KAAA,KAAA,CAAS,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,WAAA,KAAf,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,aAAA,EAA6B,GAAA,CAAA,CAAA;AAAA,MAClE,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,oBAAoB,GAAG,CAAA;AAC5B,QAAA,SAAA,CAAU,KAAA,GAAQ,GAAA;AAAA,MACpB;AAAA,IACF;AAAA,GACD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}