song-ui-u
Version:
vue3 + js的PC前端组件库
1 lines • 3.39 kB
Source Map (JSON)
{"version":3,"file":"checkboxAll.vue.cjs","sources":["../../../../../packages/components/checkbox/src/checkboxAll.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.b(), ns.is('inline', inline)]\">\n <div :class=\"ns.e('label')\">\n <Checkbox\n all\n v-model=\"checkAll\"\n :indeterminate=\"indeterminate\"\n @change=\"handleAll\"\n :size=\"size\"\n >{{ label }}</Checkbox\n >\n </div>\n <div :class=\"ns.e('wrapper')\">\n <CheckboxGroup v-model=\"allModel\" :size=\"size\">\n <slot />\n </CheckboxGroup>\n </div>\n </div>\n</template>\n<script>\nexport default { name: \"x-checkbox-all\" };\n</script>\n<script setup>\nimport { toRefs, ref, provide } from \"vue\";\nimport { useNamespace } from \"@ui-library/hook\";\nimport Checkbox from \"./checkbox.vue\";\nimport CheckboxGroup from \"./checkboxGroup.vue\";\nimport { CHECKBOX_ALL_KEY } from \"./constant\";\nconst ns = useNamespace(\"checkbox-all\");\n// defineModel\nconst allModel = defineModel({ type: Array, default: () => [] });\nconst checkAll = ref(false);\nconst indeterminate = ref(false);\n/** emit */\nconst emit = defineEmits([\"change\"]);\n/** props */\nconst props = defineProps({\n size: {\n type: String,\n default: \"default\",\n },\n label: {\n type: String,\n default: \"全选\",\n },\n inline: Boolean,\n});\nconst list = ref([]);\n\nconst setValuesEvent = (val) => list.value.push(val);\n\nconst changeEvent = async (val) => {\n allModel.value = val;\n changeAllEvent(val);\n emit(\"change\", val);\n};\n\nconst handleAll = (val) => {\n allModel.value = val ? list.value : [];\n indeterminate.value = false;\n};\n\nconst changeAllEvent = (val) => {\n const checkedCount = val.length;\n checkAll.value = checkedCount === list.value.length;\n indeterminate.value = checkedCount > 0 && checkedCount !== list.value.length;\n};\n\nprovide(CHECKBOX_ALL_KEY, {\n ...toRefs(props),\n allModel,\n changeEvent,\n setValuesEvent,\n});\n</script>\n"],"names":["useNamespace","_useModel","ref","provide","CHECKBOX_ALL_KEY","toRefs"],"mappings":";;;;;;;;;;;AAoBA,MAAe,WAAA,GAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;AAQzC,MAAM,EAAE,GAAGA,kBAAY,CAAC,cAAc,CAAC,CAAA;AACvC;AACA,MAAM,QAAQ,GAAGC,YAAW,sBAAmC,CAAC,CAAA;AAChE,MAAM,QAAQ,GAAGC,OAAG,CAAC,KAAK,CAAC,CAAA;AAC3B,MAAM,aAAa,GAAGA,OAAG,CAAC,KAAK,CAAC,CAAA;AAChC;AACA,MAAM,IAAI,GAAG,MAAuB,CAAA;AACpC;AACA,MAAM,KAAK,GAAG,OAUZ,CAAA;AACF,MAAM,IAAI,GAAGA,OAAG,CAAC,EAAE,CAAC,CAAA;;AAEpB,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;AAEpD,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK;AACnC,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAA;AACtB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;AACrB,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA;;AAED,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK;AAC3B,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;AACxC,EAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAA;AAC7B,CAAC,CAAA;;AAED,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK;AAChC,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAA;AACjC,EAAE,QAAQ,CAAC,KAAK,GAAG,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;AACrD,EAAE,aAAa,CAAC,KAAK,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;AAC9E,CAAC,CAAA;;AAEDC,WAAO,CAACC,yBAAgB,EAAE;AAC1B,EAAE,GAAGC,UAAM,CAAC,KAAK,CAAC;AAClB,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}