element-plus
Version:
A Component Library for Vue 3
1 lines • 5.94 kB
Source Map (JSON)
{"version":3,"file":"checkbox-button.mjs","sources":["../../../../../../packages/components/checkbox/src/checkbox-button.vue"],"sourcesContent":["<template>\n <label :class=\"labelKls\">\n <input\n v-model=\"model\"\n :class=\"ns.be('button', 'original')\"\n type=\"checkbox\"\n :name=\"name\"\n :tabindex=\"tabindex\"\n :disabled=\"isDisabled\"\n v-bind=\"inputBindings\"\n @change=\"handleChange\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n @click.stop\n />\n\n <span\n v-if=\"$slots.default || label\"\n :class=\"ns.be('button', 'inner')\"\n :style=\"isChecked ? activeStyle : undefined\"\n >\n <slot>{{ label }}</slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, useSlots } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { checkboxGroupContextKey } from './constants'\nimport { useCheckbox } from './composables'\nimport { checkboxEmits, checkboxProps } from './checkbox'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElCheckboxButton',\n})\n\nconst props = defineProps(checkboxProps)\ndefineEmits(checkboxEmits)\nconst slots = useSlots()\n\nconst {\n isFocused,\n isChecked,\n isDisabled,\n checkboxButtonSize,\n model,\n actualValue,\n handleChange,\n} = useCheckbox(props, slots)\n\nconst inputBindings = computed(() => {\n if (\n props.trueValue ||\n props.falseValue ||\n props.trueLabel ||\n props.falseLabel\n ) {\n return {\n 'true-value': props.trueValue ?? props.trueLabel ?? true,\n 'false-value': props.falseValue ?? props.falseLabel ?? false,\n }\n }\n return {\n value: actualValue.value,\n }\n})\n\nconst checkboxGroup = inject(checkboxGroupContextKey, undefined)\nconst ns = useNamespace('checkbox')\n\nconst activeStyle = computed<CSSProperties>(() => {\n const fillValue = checkboxGroup?.fill?.value ?? ''\n return {\n backgroundColor: fillValue,\n borderColor: fillValue,\n color: checkboxGroup?.textColor?.value ?? '',\n boxShadow: fillValue ? `-1px 0 0 0 ${fillValue}` : undefined,\n }\n})\n\nconst labelKls = computed(() => {\n return [\n ns.b('button'),\n ns.bm('button', checkboxButtonSize.value),\n ns.is('disabled', isDisabled.value),\n ns.is('checked', isChecked.value),\n ns.is('focus', isFocused.value),\n ]\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_withDirectives","_createElementVNode","_mergeProps","_isRef","_unref","name","tabindex","_withModifiers","$slots","label","_normalizeStyle","_renderSlot","_createTextVNode"],"mappings":"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"}