{"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 '@hd-front-end/utils'\nimport { UPDATE_MODEL_EVENT } from '@hd-front-end/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":";;;;;;AAOa,MAAA,gBAAA,GAAmB,CAAC,KAAyB,KAAA;AACxD,EAAM,MAAA,SAAA,GAAY,IAAa,KAAK,CAAA,CAAA;AACpC,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,kBAAmB,EAAA,CAAA;AACpC,EAAM,MAAA,aAAA,GAAgB,MAAO,CAAA,uBAAA,EAAyB,KAAS,CAAA,CAAA,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAS,CAAA,MAAM,WAAY,CAAA,aAAa,MAAM,KAAK,CAAA,CAAA;AACnE,EAAM,MAAA,eAAA,GAAkB,IAAI,KAAK,CAAA,CAAA;AACjC,EAAA,MAAM,QAAQ,QAAS,CAAA;AAAA,IACrB,GAAM,GAAA;AAdV,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAeM,MAAO,OAAA,OAAA,CAAQ,SACX,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,UAAA,KAAf,mBAA2B,KAC3B,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,UAAN,KAAA,IAAA,GAAA,EAAA,GAAoB,SAAU,CAAA,KAAA,CAAA;AAAA,KACpC;AAAA,IAEA,IAAI,GAAc,EAAA;AApBtB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAqBM,MAAA,IAAI,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,GAAG,CAAG,EAAA;AACjC,QAAA,eAAA,CAAgB,KACd,GAAA,CAAA,CAAA,EAAA,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,GAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAoB,WAAU,KAC9B,CAAA,IAAA,GAAA,CAAI,MAAS,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,GAAI,CAAA,KAAA,CAAA,IAChC,GAAI,CAAA,MAAA,GAAS,MAAM,KAAM,CAAA,MAAA,CAAA;AAC3B,QAAA,eAAA,CAAgB,KAAU,KAAA,KAAA,KAAA,CAAS,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,WAAA,KAAf,IAA6B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,aAAA,EAAA,GAAA,CAAA,CAAA,CAAA;AAAA,OAC3D,MAAA;AACL,QAAA,IAAA,CAAK,oBAAoB,GAAG,CAAA,CAAA;AAC5B,QAAA,SAAA,CAAU,KAAQ,GAAA,GAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,OAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AACF;;;;"}