jiaojiu/node_modules/vant/lib/switch/index.js

86 lines
2.0 KiB

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _utils = require("../utils");
var _shared = require("./shared");
var _field = require("../mixins/field");
var _loading = _interopRequireDefault(require("../loading"));
// Utils
// Mixins
// Components
var _createNamespace = (0, _utils.createNamespace)('switch'),
createComponent = _createNamespace[0],
bem = _createNamespace[1];
var _default = createComponent({
mixins: [_field.FieldMixin],
props: _shared.switchProps,
computed: {
checked: function checked() {
return this.value === this.activeValue;
},
style: function style() {
return {
fontSize: (0, _utils.addUnit)(this.size),
backgroundColor: this.checked ? this.activeColor : this.inactiveColor
};
}
},
methods: {
onClick: function onClick(event) {
this.$emit('click', event);
if (!this.disabled && !this.loading) {
var newValue = this.checked ? this.inactiveValue : this.activeValue;
this.$emit('input', newValue);
this.$emit('change', newValue);
}
},
genLoading: function genLoading() {
var h = this.$createElement;
if (this.loading) {
var color = this.checked ? this.activeColor : this.inactiveColor;
return h(_loading.default, {
"class": bem('loading'),
"attrs": {
"color": color
}
});
}
}
},
render: function render() {
var h = arguments[0];
var checked = this.checked,
loading = this.loading,
disabled = this.disabled;
return h("div", {
"class": bem({
on: checked,
loading: loading,
disabled: disabled
}),
"attrs": {
"role": "switch",
"aria-checked": String(checked)
},
"style": this.style,
"on": {
"click": this.onClick
}
}, [h("div", {
"class": bem('node')
}, [this.genLoading()])]);
}
});
exports.default = _default;