first
This commit is contained in:
1
node_modules/vant/lib/popover/index.css
generated
vendored
Normal file
1
node_modules/vant/lib/popover/index.css
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
238
node_modules/vant/lib/popover/index.js
generated
vendored
Normal file
238
node_modules/vant/lib/popover/index.js
generated
vendored
Normal file
@ -0,0 +1,238 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
||||
|
||||
var _popperjs = require("@vant/popperjs");
|
||||
|
||||
var _utils = require("../utils");
|
||||
|
||||
var _constant = require("../utils/constant");
|
||||
|
||||
var _clickOutside = require("../mixins/click-outside");
|
||||
|
||||
var _icon = _interopRequireDefault(require("../icon"));
|
||||
|
||||
var _popup = _interopRequireDefault(require("../popup"));
|
||||
|
||||
// Mixins
|
||||
// Components
|
||||
var _createNamespace = (0, _utils.createNamespace)('popover'),
|
||||
createComponent = _createNamespace[0],
|
||||
bem = _createNamespace[1];
|
||||
|
||||
var _default2 = createComponent({
|
||||
mixins: [(0, _clickOutside.ClickOutsideMixin)({
|
||||
event: 'touchstart',
|
||||
method: 'onClickOutside'
|
||||
})],
|
||||
props: {
|
||||
value: Boolean,
|
||||
trigger: String,
|
||||
overlay: Boolean,
|
||||
offset: {
|
||||
type: Array,
|
||||
default: function _default() {
|
||||
return [0, 8];
|
||||
}
|
||||
},
|
||||
theme: {
|
||||
type: String,
|
||||
default: 'light'
|
||||
},
|
||||
actions: {
|
||||
type: Array,
|
||||
default: function _default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
placement: {
|
||||
type: String,
|
||||
default: 'bottom'
|
||||
},
|
||||
getContainer: {
|
||||
type: [String, Function],
|
||||
default: 'body'
|
||||
},
|
||||
closeOnClickAction: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value: 'updateLocation',
|
||||
placement: 'updateLocation'
|
||||
},
|
||||
mounted: function mounted() {
|
||||
this.updateLocation();
|
||||
},
|
||||
beforeDestroy: function beforeDestroy() {
|
||||
if (this.popper) {
|
||||
if (!_utils.isServer) {
|
||||
window.removeEventListener('animationend', this.updateLocation);
|
||||
window.removeEventListener('transitionend', this.updateLocation);
|
||||
}
|
||||
|
||||
this.popper.destroy();
|
||||
this.popper = null;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
createPopper: function createPopper() {
|
||||
var popper = (0, _popperjs.createPopper)(this.$refs.wrapper, this.$refs.popover.$el, {
|
||||
placement: this.placement,
|
||||
modifiers: [{
|
||||
name: 'computeStyles',
|
||||
options: {
|
||||
adaptive: false,
|
||||
gpuAcceleration: false
|
||||
}
|
||||
}, (0, _extends2.default)({}, _popperjs.offsetModifier, {
|
||||
options: {
|
||||
offset: this.offset
|
||||
}
|
||||
})]
|
||||
});
|
||||
|
||||
if (!_utils.isServer) {
|
||||
window.addEventListener('animationend', this.updateLocation);
|
||||
window.addEventListener('transitionend', this.updateLocation);
|
||||
}
|
||||
|
||||
return popper;
|
||||
},
|
||||
updateLocation: function updateLocation() {
|
||||
var _this = this;
|
||||
|
||||
this.$nextTick(function () {
|
||||
if (!_this.value) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_this.popper) {
|
||||
_this.popper = _this.createPopper();
|
||||
} else {
|
||||
_this.popper.setOptions({
|
||||
placement: _this.placement
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
renderAction: function renderAction(action, index) {
|
||||
var _this2 = this;
|
||||
|
||||
var h = this.$createElement;
|
||||
var icon = action.icon,
|
||||
text = action.text,
|
||||
disabled = action.disabled,
|
||||
className = action.className;
|
||||
return h("div", {
|
||||
"attrs": {
|
||||
"role": "menuitem"
|
||||
},
|
||||
"class": [bem('action', {
|
||||
disabled: disabled,
|
||||
'with-icon': icon
|
||||
}), className],
|
||||
"on": {
|
||||
"click": function click() {
|
||||
return _this2.onClickAction(action, index);
|
||||
}
|
||||
}
|
||||
}, [icon && h(_icon.default, {
|
||||
"attrs": {
|
||||
"name": icon
|
||||
},
|
||||
"class": bem('action-icon')
|
||||
}), h("div", {
|
||||
"class": [bem('action-text'), _constant.BORDER_BOTTOM]
|
||||
}, [text])]);
|
||||
},
|
||||
onToggle: function onToggle(value) {
|
||||
this.$emit('input', value);
|
||||
},
|
||||
onClickWrapper: function onClickWrapper() {
|
||||
if (this.trigger === 'click') {
|
||||
this.onToggle(!this.value);
|
||||
}
|
||||
},
|
||||
onTouchstart: function onTouchstart(event) {
|
||||
event.stopPropagation();
|
||||
this.$emit('touchstart', event);
|
||||
},
|
||||
onClickAction: function onClickAction(action, index) {
|
||||
if (action.disabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.$emit('select', action, index);
|
||||
|
||||
if (this.closeOnClickAction) {
|
||||
this.$emit('input', false);
|
||||
}
|
||||
},
|
||||
onClickOutside: function onClickOutside() {
|
||||
this.$emit('input', false);
|
||||
},
|
||||
onOpen: function onOpen() {
|
||||
this.$emit('open');
|
||||
},
|
||||
|
||||
/* istanbul ignore next */
|
||||
onOpened: function onOpened() {
|
||||
this.$emit('opened');
|
||||
},
|
||||
onClose: function onClose() {
|
||||
this.$emit('close');
|
||||
},
|
||||
|
||||
/* istanbul ignore next */
|
||||
onClosed: function onClosed() {
|
||||
this.$emit('closed');
|
||||
}
|
||||
},
|
||||
render: function render() {
|
||||
var h = arguments[0];
|
||||
return h("span", {
|
||||
"ref": "wrapper",
|
||||
"class": bem('wrapper'),
|
||||
"on": {
|
||||
"click": this.onClickWrapper
|
||||
}
|
||||
}, [h(_popup.default, {
|
||||
"ref": "popover",
|
||||
"attrs": {
|
||||
"value": this.value,
|
||||
"overlay": this.overlay,
|
||||
"position": null,
|
||||
"transition": "van-popover-zoom",
|
||||
"lockScroll": false,
|
||||
"getContainer": this.getContainer
|
||||
},
|
||||
"class": bem([this.theme]),
|
||||
"on": {
|
||||
"open": this.onOpen,
|
||||
"close": this.onClose,
|
||||
"input": this.onToggle,
|
||||
"opened": this.onOpened,
|
||||
"closed": this.onClosed
|
||||
},
|
||||
"nativeOn": {
|
||||
"touchstart": this.onTouchstart
|
||||
}
|
||||
}, [h("div", {
|
||||
"class": bem('arrow')
|
||||
}), h("div", {
|
||||
"class": bem('content'),
|
||||
"attrs": {
|
||||
"role": "menu"
|
||||
}
|
||||
}, [this.slots('default') || this.actions.map(this.renderAction)])]), this.slots('reference')]);
|
||||
}
|
||||
});
|
||||
|
||||
exports.default = _default2;
|
270
node_modules/vant/lib/popover/index.less
generated
vendored
Normal file
270
node_modules/vant/lib/popover/index.less
generated
vendored
Normal file
@ -0,0 +1,270 @@
|
||||
@import '../style/var';
|
||||
|
||||
.van-popover {
|
||||
position: absolute;
|
||||
overflow: visible;
|
||||
background-color: transparent;
|
||||
transition: opacity 0.15s, transform 0.15s;
|
||||
|
||||
&__wrapper {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
&__arrow {
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
border-width: @popover-arrow-size;
|
||||
}
|
||||
|
||||
&__content {
|
||||
overflow: hidden;
|
||||
border-radius: @popover-border-radius;
|
||||
}
|
||||
|
||||
&__action {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
width: @popover-action-width;
|
||||
height: @popover-action-height;
|
||||
padding: 0 @padding-md;
|
||||
font-size: @popover-action-font-size;
|
||||
line-height: @line-height-md;
|
||||
cursor: pointer;
|
||||
|
||||
&:last-child {
|
||||
.van-popover__action-text::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&-text {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&-icon {
|
||||
margin-right: @padding-xs;
|
||||
font-size: @popover-action-icon-size;
|
||||
}
|
||||
|
||||
&--with-icon {
|
||||
.van-popover__action-text {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement^='top'] {
|
||||
.van-popover__arrow {
|
||||
bottom: 0;
|
||||
border-top-color: currentColor;
|
||||
border-bottom-width: 0;
|
||||
transform: translate(-50%, 100%);
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='top'] {
|
||||
transform-origin: 50% 100%;
|
||||
|
||||
.van-popover__arrow {
|
||||
left: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='top-start'] {
|
||||
transform-origin: 0 100%;
|
||||
|
||||
.van-popover__arrow {
|
||||
left: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='top-end'] {
|
||||
transform-origin: 100% 100%;
|
||||
|
||||
.van-popover__arrow {
|
||||
right: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement^='left'] {
|
||||
.van-popover__arrow {
|
||||
right: 0;
|
||||
border-right-width: 0;
|
||||
border-left-color: currentColor;
|
||||
transform: translate(100%, -50%);
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='left'] {
|
||||
transform-origin: 100% 50%;
|
||||
|
||||
.van-popover__arrow {
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='left-start'] {
|
||||
transform-origin: 100% 0;
|
||||
|
||||
.van-popover__arrow {
|
||||
top: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='left-end'] {
|
||||
transform-origin: 100% 100%;
|
||||
|
||||
.van-popover__arrow {
|
||||
bottom: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement^='right'] {
|
||||
.van-popover__arrow {
|
||||
left: 0;
|
||||
border-right-color: currentColor;
|
||||
border-left-width: 0;
|
||||
transform: translate(-100%, -50%);
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='right'] {
|
||||
transform-origin: 0 50%;
|
||||
|
||||
.van-popover__arrow {
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='right-start'] {
|
||||
transform-origin: 0 0;
|
||||
|
||||
.van-popover__arrow {
|
||||
top: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='right-end'] {
|
||||
transform-origin: 0 100%;
|
||||
|
||||
.van-popover__arrow {
|
||||
bottom: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement^='bottom'] {
|
||||
.van-popover__arrow {
|
||||
top: 0;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: currentColor;
|
||||
transform: translate(-50%, -100%);
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='bottom'] {
|
||||
transform-origin: 50% 0;
|
||||
|
||||
.van-popover__arrow {
|
||||
left: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='bottom-start'] {
|
||||
transform-origin: 0 0;
|
||||
|
||||
.van-popover__arrow {
|
||||
left: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&[data-popper-placement='bottom-end'] {
|
||||
transform-origin: 100% 0;
|
||||
|
||||
.van-popover__arrow {
|
||||
right: @padding-md;
|
||||
}
|
||||
}
|
||||
|
||||
&--light {
|
||||
color: @popover-light-text-color;
|
||||
|
||||
.van-popover__content {
|
||||
background-color: @popover-light-background-color;
|
||||
box-shadow: 0 2px 12px rgba(50, 50, 51, 0.12);
|
||||
}
|
||||
|
||||
.van-popover__arrow {
|
||||
color: @popover-light-background-color;
|
||||
}
|
||||
|
||||
.van-popover__action {
|
||||
&:active {
|
||||
background-color: @active-color;
|
||||
}
|
||||
|
||||
&--disabled {
|
||||
color: @popover-light-action-disabled-text-color;
|
||||
cursor: not-allowed;
|
||||
|
||||
&:active {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&--dark {
|
||||
color: @popover-dark-text-color;
|
||||
|
||||
.van-popover__content {
|
||||
background-color: @popover-dark-background-color;
|
||||
}
|
||||
|
||||
.van-popover__arrow {
|
||||
color: @popover-dark-background-color;
|
||||
}
|
||||
|
||||
.van-popover__action {
|
||||
&:active {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
&--disabled {
|
||||
color: @popover-dark-action-disabled-text-color;
|
||||
|
||||
&:active {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.van-popover__action-text {
|
||||
&::after {
|
||||
border-color: @gray-7;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-zoom-enter,
|
||||
&-zoom-leave-active {
|
||||
transform: scale(0.8);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
&-zoom-enter-active {
|
||||
transition-timing-function: @animation-timing-function-enter;
|
||||
}
|
||||
|
||||
&-zoom-leave-active {
|
||||
transition-timing-function: @animation-timing-function-leave;
|
||||
}
|
||||
}
|
6
node_modules/vant/lib/popover/style/index.js
generated
vendored
Normal file
6
node_modules/vant/lib/popover/style/index.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
require('../../style/base.css');
|
||||
require('../../overlay/index.css');
|
||||
require('../../info/index.css');
|
||||
require('../../icon/index.css');
|
||||
require('../../popup/index.css');
|
||||
require('../index.css');
|
6
node_modules/vant/lib/popover/style/less.js
generated
vendored
Normal file
6
node_modules/vant/lib/popover/style/less.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
require('../../style/base.less');
|
||||
require('../../overlay/index.less');
|
||||
require('../../info/index.less');
|
||||
require('../../icon/index.less');
|
||||
require('../../popup/index.less');
|
||||
require('../index.less');
|
Reference in New Issue
Block a user