various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 4.4 kB
Source Map (JSON)
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/checkbox/default/src/composable.ts"],"sourcesContent":["import { SetupContext, computed, inject } from \"vue\";\r\nimport { UiCheckboxProps, UiCheckboxEmits } from \"../index\";\r\nimport { UiCheckboxGroupInjectionKey } from \"../../default-group\";\r\n\r\nexport const useComposable = (define: UiCheckboxProps, emits: SetupContext<typeof UiCheckboxEmits>[\"emit\"]) => {\r\n //* 父组件注入函数\r\n const checkboxGroup = inject(UiCheckboxGroupInjectionKey, undefined);\r\n\r\n //* 函数列表\r\n const methods = {\r\n switchData: (ev: Event) => {\r\n //* 获取节点\r\n const el = ev.target as HTMLInputElement;\r\n\r\n //* 响应时间操作\r\n emits(\"update:modelValue\", el.checked || false);\r\n emits(\"change\", ev);\r\n\r\n //* 响应父组件事件\r\n checkboxGroup && checkboxGroup.change(define.value);\r\n },\r\n };\r\n\r\n //* 计算函数\r\n const computeds = {\r\n //* 是否已被选中\r\n checked: computed(() => {\r\n if (checkboxGroup?.define.modelValue.includes(define.value)) return true;\r\n else return define.modelValue;\r\n }),\r\n\r\n //* 是否禁用\r\n disabled: computed(() => {\r\n if (define.disabled) return true;\r\n if (checkboxGroup) {\r\n //* 判断该多选框是否为已选中状态\r\n if (checkboxGroup.define.modelValue.includes(define.value)) {\r\n //* 当已选中的数量达到最小数量时, 禁用已选中多选框取消\r\n if (checkboxGroup.define.min && checkboxGroup.define.modelValue.length <= checkboxGroup.define.min) {\r\n return true;\r\n }\r\n } else {\r\n //* 当已选中的数量达到最小数量时, 禁用未选中多选框选中\r\n if (checkboxGroup.define.max && checkboxGroup.define.modelValue.length >= checkboxGroup.define.max) {\r\n return true;\r\n }\r\n }\r\n } else {\r\n return false;\r\n }\r\n }),\r\n\r\n //* 主体类名\r\n className: computed(() => {\r\n //* 1. 初始化返回值\r\n const result: string[] = [];\r\n\r\n //* 2. 检测是否被禁用\r\n if (computeds.disabled.value) result.push(\"ui-disabled-status\");\r\n //* 3. 检测是否被激活\r\n if (computeds.checked.value) result.push(\"ui-active\");\r\n\r\n return result.join(\" \");\r\n }),\r\n };\r\n\r\n return { methods, computeds };\r\n};\r\n"],"names":[],"mappings":";;;AAIa,MAAA,aAAA,GAAgB,CAAC,MAAA,EAAyB,KAAwD,KAAA;AAE3G,EAAM,MAAA,aAAA,GAAgB,MAAO,CAAA,2BAAA,EAA6B,KAAS,CAAA,CAAA,CAAA;AAGnE,EAAA,MAAM,OAAU,GAAA;AAAA,IACZ,UAAA,EAAY,CAAC,EAAc,KAAA;AAEvB,MAAA,MAAM,KAAK,EAAG,CAAA,MAAA,CAAA;AAGd,MAAM,KAAA,CAAA,mBAAA,EAAqB,EAAG,CAAA,OAAA,IAAW,KAAK,CAAA,CAAA;AAC9C,MAAA,KAAA,CAAM,UAAU,EAAE,CAAA,CAAA;AAGlB,MAAiB,aAAA,IAAA,aAAA,CAAc,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,KACtD;AAAA,GACJ,CAAA;AAGA,EAAA,MAAM,SAAY,GAAA;AAAA;AAAA,IAEd,OAAA,EAAS,SAAS,MAAM;AACpB,MAAA,IAAI,+CAAe,MAAO,CAAA,UAAA,CAAW,QAAS,CAAA,MAAA,CAAO,QAAe,OAAA,IAAA,CAAA;AAAA,kBACxD,MAAO,CAAA,UAAA,CAAA;AAAA,KACtB,CAAA;AAAA;AAAA,IAGD,QAAA,EAAU,SAAS,MAAM;AACrB,MAAI,IAAA,MAAA,CAAO,UAAiB,OAAA,IAAA,CAAA;AAC5B,MAAA,IAAI,aAAe,EAAA;AAEf,QAAA,IAAI,cAAc,MAAO,CAAA,UAAA,CAAW,QAAS,CAAA,MAAA,CAAO,KAAK,CAAG,EAAA;AAExD,UAAI,IAAA,aAAA,CAAc,OAAO,GAAO,IAAA,aAAA,CAAc,OAAO,UAAW,CAAA,MAAA,IAAU,aAAc,CAAA,MAAA,CAAO,GAAK,EAAA;AAChG,YAAO,OAAA,IAAA,CAAA;AAAA,WACX;AAAA,SACG,MAAA;AAEH,UAAI,IAAA,aAAA,CAAc,OAAO,GAAO,IAAA,aAAA,CAAc,OAAO,UAAW,CAAA,MAAA,IAAU,aAAc,CAAA,MAAA,CAAO,GAAK,EAAA;AAChG,YAAO,OAAA,IAAA,CAAA;AAAA,WACX;AAAA,SACJ;AAAA,OACG,MAAA;AACH,QAAO,OAAA,KAAA,CAAA;AAAA,OACX;AAAA,KACH,CAAA;AAAA;AAAA,IAGD,SAAA,EAAW,SAAS,MAAM;AAEtB,MAAA,MAAM,SAAmB,EAAC,CAAA;AAG1B,MAAA,IAAI,SAAU,CAAA,QAAA,CAAS,KAAO,EAAA,MAAA,CAAO,KAAK,oBAAoB,CAAA,CAAA;AAE9D,MAAA,IAAI,SAAU,CAAA,OAAA,CAAQ,KAAO,EAAA,MAAA,CAAO,KAAK,WAAW,CAAA,CAAA;AAEpD,MAAO,OAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAA;AAAA,KACzB,CAAA;AAAA,GACL,CAAA;AAEA,EAAO,OAAA,EAAE,SAAS,SAAU,EAAA,CAAA;AAChC;;;;"}