{"version":3,"file":"switch.vue2.mjs","sources":["../../../../../../packages/components/switch/src/switch.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToSwitch'\n});\n</script>\n<template>\n\t<div v-dis.opacity=\"disabled\" v-tip=\"changed ? t('to.switch.changed') : ''\" :flex=\"flex ? flex : null\" class=\"to-switch\" :style=\"setStyle\" :class=\"setClass\" @click=\"toggle\">\n\t\t<div class=\"to-switch-on\">\n\t\t\t<div v-if=\"onText\" class=\"to-switch-on-text\">{{ onText }}</div>\n\t\t\t<to-icon v-if=\"onIcon\" class=\"to-switch-on-icon\" :value=\"onIcon\"></to-icon>\n\t\t</div>\n\t\t<div class=\"to-switch-off\">\n\t\t\t<div v-if=\"offText\" class=\"to-switch-off-text\">{{ offText }}</div>\n\t\t\t<to-icon v-if=\"offIcon\" class=\"to-switch-off-icon\" :value=\"offIcon\"></to-icon>\n\t\t</div>\n\t\t<div class=\"to-switch-slider\"></div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, ref, watch, inject } from 'vue'\nimport { t } from '@touchvue/locale'\n\n\n\nconst ToForm = inject<{ comparable?: boolean }>('ToForm')\n\nconst valueStore = ref([])\n\nconst props = defineProps({\n\tflex: Boolean,\n\tdisabled: Boolean,\n\tmodelValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: false\n\t},\n\tonValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: true\n\t},\n\toffValue: {\n\t\ttype: [Boolean, String, Number],\n\t\tdefault: false\n\t},\n\tonColor: {\n\t\ttype: String,\n\t\tdefault: 'primary'\n\t},\n\toffColor: {\n\t\ttype: String,\n\t\tdefault: 'info'\n\t},\n\tonText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\toffText: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tonIcon: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\toffIcon: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: 'default'\n\t},\n\tbeforeChange: {\n\t\ttype: [Function, String, Boolean],\n\t\tdefault: ''\n\t},\n\tcomparable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(props.modelValue)\nconst disabled = ref(props.disabled)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tivalue.value = val\n\t},\n\t{ immediate: true }\n)\n\nwatch(\n\t() => props.disabled,\n\tval => {\n\t\tdisabled.value = val\n\t}\n)\n\nconst setClass = computed(() => {\n\tconst arr = ['to-disable-target']\n\tif (ivalue.value === props.onValue) {\n\t\tarr.push(`is-on`)\n\t}\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\tif (ToForm?.comparable || props.comparable) {\n\t\tarr.push('to-compare')\n\t}\n\tif (changed.value) {\n\t\tarr.push('to-switch-changed')\n\t}\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\tif (props.width) {\n\t\tobj['--width'] = props.width + 'em'\n\t}\n\treturn obj\n})\n\nconst changed = computed(() => {\n\tif ((props.comparable || ToForm?.comparable) && valueStore.value.length > 0 && ivalue.value !== valueStore.value[0]) {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n})\n\nasync function toggle() {\n\tif (disabled.value) return\n\tlet flag = true\n\tif (typeof props.beforeChange === 'boolean') {\n\t\tflag = props.beforeChange\n\t} else {\n\t\tif (props.beforeChange) {\n\t\t\tif (typeof props.beforeChange === 'function') {\n\t\t\t\tif (typeof props.beforeChange().then === 'function') {\n\t\t\t\t\tflag = await props.beforeChange()\n\t\t\t\t} else {\n\t\t\t\t\tflag = props.beforeChange()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag = !!props.beforeChange\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tivalue.value = ivalue.value === props.onValue ? props.offValue : props.onValue\n\temit('update:modelValue', ivalue.value)\n\temit('change', ivalue.value)\n}\n\nconst compare = () => {\n\tvalueStore.value.unshift(ivalue.value)\n}\n// 撤销\nconst restore = () => {\n\tivalue.value = valueStore.value[0]\n\tvalueStore.value.splice(0, 1)\n}\n\nconst setDisabled = (f: boolean) => {\n\tdisabled.value = f\n}\ndefineExpose({\n\tcompare,\n\trestore,\n\tchanged,\n\tsetDisabled\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","_unref"],"mappings":"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"}