UNPKG

mealcomes

Version:

MealComes 用于学习前端的组件库

1 lines 4.93 kB
{"version":3,"file":"checkbox-Bxqb1mwr.mjs","sources":["../../../../packages/components/checkbox/src/checkbox.ts","../../../../packages/components/checkbox/src/checkbox.vue","../../../../packages/components/checkbox/index.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from 'vue';\n\n/**\n * checkBox 组件 props\n */\nexport const checkboxProps = {\n /**\n * 是否选中\n */\n modelValue: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>\n },\n /**\n * 是否半选\n */\n indeterminate: Boolean,\n /**\n * 是否禁用\n */\n disabled: {\n type: Boolean,\n default: false\n },\n label: {\n type: String as PropType<string>\n }\n} as const;\n\n/**\n * checkBox 组件 Props 类型\n */\nexport type CheckboxProps = Partial<ExtractPropTypes<typeof checkboxProps>>;\n\n/**\n * checkbox 组件 emits\n */\nexport const checkboxEmits = {\n 'update:modelValue': (value: boolean | string | number) =>\n typeof value === 'boolean',\n change: (value: boolean) => typeof value === 'boolean'\n};\n\n/**\n * checkbox 组件 emits 类型\n */\nexport type CheckboxEmits = typeof checkboxEmits;\n","<template>\n <label :class=\"[bem.b('wrapper'), bem.is('checked', model as boolean), bem.is('disabled', disabled)]\">\n <span :class=\"[\n bem.b(), bem.is('checked', model as boolean),\n bem.is('disabled', disabled), bem.is('indeterminate', indeterminate)]\">\n <input type=\"checkbox\" v-model=\"model\" ref=\"inputRef\" :disabled=\"disabled\" :value=\"label\"\n @change=\"handleChange\">\n <span :class=\"bem.m('inner')\"></span>\n </span>\n <span v-if=\"$slots.default || label\">\n <slot />\n <template v-if=\"!$slots.default\">{{ label }}</template>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { createNamespace } from '@mealcomes/utils';\nimport { checkboxEmits, checkboxProps } from './checkbox';\nimport { computed } from 'vue';\n\nconst bem = createNamespace('checkbox');\nconst props = defineProps(checkboxProps);\nconst emit = defineEmits(checkboxEmits);\n\ndefineOptions({\n name: 'mc-checkbox'\n})\n\nconst model = computed({\n get() {\n return props.modelValue;\n },\n set(val: string | number | boolean) {\n if (props.disabled) {\n return;\n }\n emit('update:modelValue', val);\n }\n})\n\nfunction handleChange(e: Event) {\n if (props.disabled) return;\n const target = e.target as HTMLInputElement;\n emit('change', target.checked);\n}\n</script>","import { withInstall } from '@mealcomes/utils';\nimport _CheckBox from './src/checkbox.vue';\n\nexport const McCheckbox = withInstall(_CheckBox);\n\nexport default McCheckbox;\n\nexport * from './src/checkbox';\n\ndeclare module 'vue' {\n export interface GlobalComponents {\n McCheckbox: typeof McCheckbox;\n }\n}\n"],"names":["checkboxProps","checkboxEmits","value","bem","createNamespace","props","__props","emit","__emit","model","computed","val","handleChange","target","_createElementBlock","_normalizeClass","_unref","disabled","_createElementVNode","indeterminate","$event","label","$slots","_hoisted_2","_renderSlot","_ctx","_Fragment","McCheckbox","withInstall","_CheckBox"],"mappings":";;AAKO,MAAMA,IAAgB;AAAA;AAAA;AAAA;AAAA,EAIzB,YAAY;AAAA,IACR,MAAM,CAAC,SAAS,QAAQ,MAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKlC,eAAe;AAAA;AAAA;AAAA;AAAA,EAIf,UAAU;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EAAA;AAAA,EAEb,OAAO;AAAA,IACH,MAAM;AAAA,EAAA;AAEd,GAUaC,IAAgB;AAAA,EACzB,qBAAqB,CAACC,MAClB,OAAOA,KAAU;AAAA,EACrB,QAAQ,CAACA,MAAmB,OAAOA,KAAU;AACjD;;;;;;ACnBA,UAAMC,IAAMC,EAAgB,UAAU,GAChCC,IAAQC,GACRC,IAAOC,GAMPC,IAAQC,EAAS;AAAA,MACnB,MAAM;AACF,eAAOL,EAAM;AAAA,MACjB;AAAA,MACA,IAAIM,GAAgC;AAChC,QAAIN,EAAM,YAGVE,EAAK,qBAAqBI,CAAG;AAAA,MACjC;AAAA,IAAA,CACH;AAED,aAASC,EAAa,GAAU;AAC5B,UAAIP,EAAM,SAAU;AACpB,YAAMQ,IAAS,EAAE;AACjB,MAAAN,EAAK,UAAUM,EAAO,OAAO;AAAA,IACjC;2BA5CIC,EAYQ,SAAA;AAAA,MAZA,OAAKC,EAAA,CAAGC,EAAAb,CAAA,EAAI,cAAca,EAAAb,CAAA,EAAI,GAAE,WAAYM,OAAK,GAAcO,EAAAb,CAAA,EAAI,eAAec,EAAAA,QAAQ,CAAA,CAAA;AAAA,IAAA;MAC9FC,EAMO,QAAA;AAAA,QANA,OAAKH,EAAA;AAAA,UAAgBC,EAAAb,CAAA,EAAI,EAAA;AAAA,UAAKa,KAAI,cAAcP,EAAA,KAAK;AAAA,UAA0BO,EAAAb,CAAA,EAAI,GAAE,YAAac,EAAAA,QAAQ;AAAA,UAAGD,EAAAb,CAAA,EAAI,GAAE,iBAAkBgB,EAAAA,aAAa;AAAA,QAAA,CAAA;AAAA,MAAA;UAGrJD,EAC2B,SAAA;AAAA,UADpB,MAAK;AAAA,wDAAoBT,EAAK,QAAAW;AAAA,UAAE,KAAI;AAAA,UAAY,UAAUH,EAAAA;AAAAA,UAAW,OAAOI,EAAAA;AAAAA,UAC9E,UAAQT;AAAA,QAAA;cADmBH,EAAA,KAAK;AAAA,QAAA;QAErCS,EAAqC,QAAA;AAAA,UAA9B,OAAKH,EAAEC,EAAAb,CAAA,EAAI,EAAC,OAAA,CAAA;AAAA,QAAA;;MAEXmB,EAAAA,OAAO,WAAWD,EAAAA,cAA9BP,EAGO,QAAAS,GAAA;AAAA,QAFHC,EAAQC,EAAA,QAAA,SAAA;AAAA,QACSH,EAAAA,OAAO,4BAAxBR,EAAuDY,GAAA,EAAA,KAAA,KAAA;AAAA,cAAnBL,EAAAA,KAAK,GAAA,CAAA;AAAA,QAAA;;;;ICRxCM,IAAaC,EAAYC,CAAS;"}