{"version":3,"file":"checkbox.mjs","sources":["../../../../../packages/components/checkbox/src/checkbox.vue"],"sourcesContent":["<template>\n  <view :class=\"['vc-checkbox', block ? 'vc-checkbox--block' : null ,multiple ? 'vc-checkbox--multiple' : null, customClass]\" :style=\"customStyle\">\n    <vc-icon :style=\"iconStyle\" :name=\"checked ? activeIcon : inactiveIcon\" :size=\"size\" :color=\"color\" @click=\"onClickIcon\" />\n    <view class=\"vc-checkbox__label\" :style=\"{ flex: block ? 1 :'auto' }\" @click=\"onClickText\">\n      <slot></slot>\n    </view>\n  </view>\n</template>\n\n<script>\nimport { checkboxKey } from '@vitamin/tokens'\nimport '../style'\n\nexport default {\n  name: 'vc-checkbox',\n  inject: {\n    parent: {\n      from: checkboxKey,\n      default: null\n    }\n  },\n  props: {\n    // 绑定的属性名\n    name: null,\n    // 是否选中\n    value: {\n      type: Boolean,\n      default: false,\n    },\n    // 组件尺寸\n    size: {\n      type: [String, Number],\n      default: 24,\n    },\n    // 是否块级元素\n    block: {\n      type: Boolean,\n      default: false\n    },\n    // 是否多行文本\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    // 禁用 label 文本点击事件\n    labelDisabled: {\n      type: Boolean,\n      default: false\n    },\n    // 禁用 icon 图标点击事件\n    iconDisabled: {\n      type: Boolean,\n      default: false\n    },\n    // 组件激活的图标样式\n    activeIcon: {\n      type: String,\n      default: 'checkbox-on'\n    },\n    // 组件未激活的图标样式\n    inactiveIcon: {\n      type: String,\n      default: 'checkbox-off'\n    },\n    // 自定义样式覆盖\n    customStyle: null,\n    // 自定义类\n    customClass: null,\n    // 自定义图标样式覆盖\n    iconStyle: null,\n  },\n  computed: {\n    checked: {\n      get() {\n        return this.parent ? this.parent.value.includes(this.name) : this.value;\n      },\n      set(val) {\n        if (this.parent) {\n          this.parent.change({ name: this.name, checked: val });\n        } else {\n          this.$emit('input', val);\n          this.$emit('change', val);\n        }\n      },\n    },\n    color() {\n      return this.checked ? '#3264DC' : '#999';\n    }\n  },\n  methods: {\n    onClickIcon() {\n      this.$emit('click-icon');\n      if (this.iconDisabled) return;\n      this.checked = !this.checked;\n    },\n    onClickText() {\n      this.$emit('click-label');\n      if (this.labelDisabled) return;\n      this.checked = !this.checked;\n    },\n  },\n};\n</script>\n"],"names":["__vue2_script","checkboxKey","val"],"mappings":";;;AAaA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,IACA,QAAA;AAAA,MACA,MAAAC;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AAAA,IAEA,MAAA;AAAA,IAEA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,MAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IAEA,aAAA;AAAA,IAEA,aAAA;AAAA,IAEA,WAAA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,SAAA;AAAA,MACA,MAAA;AACA,eAAA,KAAA,SAAA,KAAA,OAAA,MAAA,SAAA,KAAA,IAAA,IAAA,KAAA;AAAA,MACA;AAAA,MACA,IAAAC,GAAA;AACA,QAAA,KAAA,SACA,KAAA,OAAA,OAAA,EAAA,MAAA,KAAA,MAAA,SAAAA,EAAA,CAAA,KAEA,KAAA,MAAA,SAAAA,CAAA,GACA,KAAA,MAAA,UAAAA,CAAA;AAAA,MAEA;AAAA,IACA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,UAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,cAAA;AAEA,MADA,KAAA,MAAA,YAAA,GACA,MAAA,iBACA,KAAA,UAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,cAAA;AAEA,MADA,KAAA,MAAA,aAAA,GACA,MAAA,kBACA,KAAA,UAAA,CAAA,KAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}