first
This commit is contained in:
142
node_modules/vant/lib/dropdown-menu/index.js
generated
vendored
Normal file
142
node_modules/vant/lib/dropdown-menu/index.js
generated
vendored
Normal file
@ -0,0 +1,142 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _utils = require("../utils");
|
||||
|
||||
var _scroll = require("../utils/dom/scroll");
|
||||
|
||||
var _relation = require("../mixins/relation");
|
||||
|
||||
var _clickOutside = require("../mixins/click-outside");
|
||||
|
||||
// Utils
|
||||
// Mixins
|
||||
var _createNamespace = (0, _utils.createNamespace)('dropdown-menu'),
|
||||
createComponent = _createNamespace[0],
|
||||
bem = _createNamespace[1];
|
||||
|
||||
var _default = createComponent({
|
||||
mixins: [(0, _relation.ParentMixin)('vanDropdownMenu'), (0, _clickOutside.ClickOutsideMixin)({
|
||||
event: 'click',
|
||||
method: 'onClickOutside'
|
||||
})],
|
||||
props: {
|
||||
zIndex: [Number, String],
|
||||
activeColor: String,
|
||||
overlay: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
duration: {
|
||||
type: [Number, String],
|
||||
default: 0.2
|
||||
},
|
||||
direction: {
|
||||
type: String,
|
||||
default: 'down'
|
||||
},
|
||||
closeOnClickOverlay: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
data: function data() {
|
||||
return {
|
||||
offset: 0
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
scroller: function scroller() {
|
||||
return (0, _scroll.getScroller)(this.$el);
|
||||
},
|
||||
opened: function opened() {
|
||||
return this.children.some(function (item) {
|
||||
return item.showWrapper;
|
||||
});
|
||||
},
|
||||
barStyle: function barStyle() {
|
||||
if (this.opened && (0, _utils.isDef)(this.zIndex)) {
|
||||
return {
|
||||
zIndex: 1 + this.zIndex
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateOffset: function updateOffset() {
|
||||
if (!this.$refs.bar) {
|
||||
return;
|
||||
}
|
||||
|
||||
var rect = this.$refs.bar.getBoundingClientRect();
|
||||
|
||||
if (this.direction === 'down') {
|
||||
this.offset = rect.bottom;
|
||||
} else {
|
||||
this.offset = window.innerHeight - rect.top;
|
||||
}
|
||||
},
|
||||
toggleItem: function toggleItem(active) {
|
||||
this.children.forEach(function (item, index) {
|
||||
if (index === active) {
|
||||
item.toggle();
|
||||
} else if (item.showPopup) {
|
||||
item.toggle(false, {
|
||||
immediate: true
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
onClickOutside: function onClickOutside() {
|
||||
this.children.forEach(function (item) {
|
||||
item.toggle(false);
|
||||
});
|
||||
}
|
||||
},
|
||||
render: function render() {
|
||||
var _this = this;
|
||||
|
||||
var h = arguments[0];
|
||||
var Titles = this.children.map(function (item, index) {
|
||||
return h("div", {
|
||||
"attrs": {
|
||||
"role": "button",
|
||||
"tabindex": item.disabled ? -1 : 0
|
||||
},
|
||||
"class": bem('item', {
|
||||
disabled: item.disabled
|
||||
}),
|
||||
"on": {
|
||||
"click": function click() {
|
||||
if (!item.disabled) {
|
||||
_this.toggleItem(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [h("span", {
|
||||
"class": [bem('title', {
|
||||
active: item.showPopup,
|
||||
down: item.showPopup === (_this.direction === 'down')
|
||||
}), item.titleClass],
|
||||
"style": {
|
||||
color: item.showPopup ? _this.activeColor : ''
|
||||
}
|
||||
}, [h("div", {
|
||||
"class": "van-ellipsis"
|
||||
}, [item.slots('title') || item.displayTitle])])]);
|
||||
});
|
||||
return h("div", {
|
||||
"class": bem()
|
||||
}, [h("div", {
|
||||
"ref": "bar",
|
||||
"style": this.barStyle,
|
||||
"class": bem('bar', {
|
||||
opened: this.opened
|
||||
})
|
||||
}, [Titles]), this.slots('default')]);
|
||||
}
|
||||
});
|
||||
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user