first
This commit is contained in:
113
node_modules/vant/lib/number-keyboard/Key.js
generated
vendored
Normal file
113
node_modules/vant/lib/number-keyboard/Key.js
generated
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _utils = require("../utils");
|
||||
|
||||
var _touch = require("../mixins/touch");
|
||||
|
||||
var _loading = _interopRequireDefault(require("../loading"));
|
||||
|
||||
var _DeleteIcon = _interopRequireDefault(require("./DeleteIcon"));
|
||||
|
||||
var _CollapseIcon = _interopRequireDefault(require("./CollapseIcon"));
|
||||
|
||||
var _createNamespace = (0, _utils.createNamespace)('key'),
|
||||
createComponent = _createNamespace[0],
|
||||
bem = _createNamespace[1];
|
||||
|
||||
var _default = createComponent({
|
||||
mixins: [_touch.TouchMixin],
|
||||
props: {
|
||||
type: String,
|
||||
text: [Number, String],
|
||||
color: String,
|
||||
wider: Boolean,
|
||||
large: Boolean,
|
||||
loading: Boolean
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
active: false
|
||||
};
|
||||
},
|
||||
mounted: function mounted() {
|
||||
this.bindTouchEvent(this.$el);
|
||||
},
|
||||
methods: {
|
||||
onTouchStart: function onTouchStart(event) {
|
||||
// compatible with Vue 2.6 event bubble bug
|
||||
event.stopPropagation();
|
||||
this.touchStart(event);
|
||||
this.active = true;
|
||||
},
|
||||
onTouchMove: function onTouchMove(event) {
|
||||
this.touchMove(event);
|
||||
|
||||
if (this.direction) {
|
||||
this.active = false;
|
||||
}
|
||||
},
|
||||
onTouchEnd: function onTouchEnd(event) {
|
||||
if (this.active) {
|
||||
// eliminate tap delay on safari
|
||||
// see: https://github.com/vant-ui/vant/issues/6836
|
||||
if (!this.slots('default')) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
this.active = false;
|
||||
this.$emit('press', this.text, this.type);
|
||||
}
|
||||
},
|
||||
genContent: function genContent() {
|
||||
var h = this.$createElement;
|
||||
var isExtra = this.type === 'extra';
|
||||
var isDelete = this.type === 'delete';
|
||||
var text = this.slots('default') || this.text;
|
||||
|
||||
if (this.loading) {
|
||||
return h(_loading.default, {
|
||||
"class": bem('loading-icon')
|
||||
});
|
||||
}
|
||||
|
||||
if (isDelete) {
|
||||
return text || h(_DeleteIcon.default, {
|
||||
"class": bem('delete-icon')
|
||||
});
|
||||
}
|
||||
|
||||
if (isExtra) {
|
||||
return text || h(_CollapseIcon.default, {
|
||||
"class": bem('collapse-icon')
|
||||
});
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
||||
},
|
||||
render: function render() {
|
||||
var h = arguments[0];
|
||||
return h("div", {
|
||||
"class": bem('wrapper', {
|
||||
wider: this.wider
|
||||
})
|
||||
}, [h("div", {
|
||||
"attrs": {
|
||||
"role": "button",
|
||||
"tabindex": "0"
|
||||
},
|
||||
"class": bem([this.color, {
|
||||
large: this.large,
|
||||
active: this.active,
|
||||
delete: this.type === 'delete'
|
||||
}])
|
||||
}, [this.genContent()])]);
|
||||
}
|
||||
});
|
||||
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user