@varlet/ui 1.26.4 → 1.26.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/date-picker/DatePicker.js +83 -12
- package/es/date-picker/date-picker.css +1 -1
- package/es/date-picker/date-picker.less +1 -0
- package/es/date-picker/props.js +4 -0
- package/es/date-picker/src/day-picker-panel.js +9 -0
- package/es/date-picker/src/month-picker-panel.js +9 -0
- package/es/date-picker/src/panel-header.js +1 -0
- package/es/image-preview/ImagePreview.js +4 -1
- package/es/image-preview/imagePreview.css +1 -1
- package/es/image-preview/imagePreview.less +11 -1
- package/es/style.css +1 -1
- package/es/varlet.esm.js +155 -59
- package/highlight/attributes.json +4 -0
- package/highlight/tags.json +2 -1
- package/highlight/web-types.json +14 -1
- package/lib/date-picker/DatePicker.js +82 -11
- package/lib/date-picker/date-picker.css +1 -1
- package/lib/date-picker/date-picker.less +1 -0
- package/lib/date-picker/props.js +4 -0
- package/lib/date-picker/src/day-picker-panel.js +9 -0
- package/lib/date-picker/src/month-picker-panel.js +9 -0
- package/lib/date-picker/src/panel-header.js +1 -0
- package/lib/image-preview/ImagePreview.js +4 -1
- package/lib/image-preview/imagePreview.css +1 -1
- package/lib/image-preview/imagePreview.less +11 -1
- package/lib/style.css +1 -1
- package/package.json +4 -4
- package/types/datePicker.d.ts +1 -0
- package/umd/varlet.js +4 -4
|
@@ -527,6 +527,10 @@
|
|
|
527
527
|
"type": "boolean",
|
|
528
528
|
"description": "是否支持选择一个范围 默认值:false"
|
|
529
529
|
},
|
|
530
|
+
"var-date-picker/touchable": {
|
|
531
|
+
"type": "boolean",
|
|
532
|
+
"description": "是否支持拖动切换面板 默认值:true"
|
|
533
|
+
},
|
|
530
534
|
"var-dialog/v-model:show": {
|
|
531
535
|
"type": "boolean",
|
|
532
536
|
"description": "是否显示对话框 默认值:false"
|
package/highlight/tags.json
CHANGED
package/highlight/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"framework": "vue",
|
|
4
|
-
"version": "1.26.
|
|
4
|
+
"version": "1.26.4",
|
|
5
5
|
"name": "VARLET",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -1542,6 +1542,15 @@
|
|
|
1542
1542
|
"type": "boolean",
|
|
1543
1543
|
"kind": "expression"
|
|
1544
1544
|
}
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"name": "touchable",
|
|
1548
|
+
"description": "是否支持拖动切换面板",
|
|
1549
|
+
"default": "true",
|
|
1550
|
+
"value": {
|
|
1551
|
+
"type": "boolean",
|
|
1552
|
+
"kind": "expression"
|
|
1553
|
+
}
|
|
1545
1554
|
}
|
|
1546
1555
|
],
|
|
1547
1556
|
"events": [
|
|
@@ -2186,6 +2195,10 @@
|
|
|
2186
2195
|
{
|
|
2187
2196
|
"name": "close-icon",
|
|
2188
2197
|
"description": "关闭按钮"
|
|
2198
|
+
},
|
|
2199
|
+
{
|
|
2200
|
+
"name": "extra",
|
|
2201
|
+
"description": "额外插槽"
|
|
2189
2202
|
}
|
|
2190
2203
|
]
|
|
2191
2204
|
},
|
|
@@ -22,12 +22,6 @@ var _locale = require("../locale");
|
|
|
22
22
|
|
|
23
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
24
|
|
|
25
|
-
var _withScopeId = n => ((0, _vue.pushScopeId)(""), n = n(), (0, _vue.popScopeId)(), n);
|
|
26
|
-
|
|
27
|
-
var _hoisted_1 = {
|
|
28
|
-
class: "var-date-picker-body"
|
|
29
|
-
};
|
|
30
|
-
|
|
31
25
|
function render(_ctx, _cache) {
|
|
32
26
|
var _component_year_picker_panel = (0, _vue.resolveComponent)("year-picker-panel");
|
|
33
27
|
|
|
@@ -105,18 +99,30 @@ function render(_ctx, _cache) {
|
|
|
105
99
|
/* CLASS */
|
|
106
100
|
)], 4
|
|
107
101
|
/* STYLE */
|
|
108
|
-
), (0, _vue.createElementVNode)("div",
|
|
102
|
+
), (0, _vue.createElementVNode)("div", {
|
|
103
|
+
class: "var-date-picker-body",
|
|
104
|
+
onTouchstart: _cache[2] || (_cache[2] = function () {
|
|
105
|
+
return _ctx.handleTouchstart && _ctx.handleTouchstart(...arguments);
|
|
106
|
+
}),
|
|
107
|
+
onTouchmove: _cache[3] || (_cache[3] = function () {
|
|
108
|
+
return _ctx.handleTouchmove && _ctx.handleTouchmove(...arguments);
|
|
109
|
+
}),
|
|
110
|
+
onTouchend: _cache[4] || (_cache[4] = function () {
|
|
111
|
+
return _ctx.handleTouchend && _ctx.handleTouchend(...arguments);
|
|
112
|
+
})
|
|
113
|
+
}, [(0, _vue.createVNode)(_vue.Transition, {
|
|
109
114
|
name: "var-date-picker-panel-fade"
|
|
110
115
|
}, {
|
|
111
|
-
default: (0, _vue.withCtx)(() => [_ctx.
|
|
116
|
+
default: (0, _vue.withCtx)(() => [_ctx.getPanelType === 'year' ? ((0, _vue.openBlock)(), (0, _vue.createBlock)(_component_year_picker_panel, {
|
|
112
117
|
key: 0,
|
|
113
118
|
"component-props": _ctx.componentProps,
|
|
114
119
|
preview: _ctx.previewYear,
|
|
115
120
|
onChooseYear: _ctx.getChooseYear
|
|
116
121
|
}, null, 8
|
|
117
122
|
/* PROPS */
|
|
118
|
-
, ["component-props", "preview", "onChooseYear"])) :
|
|
123
|
+
, ["component-props", "preview", "onChooseYear"])) : _ctx.getPanelType === 'month' ? ((0, _vue.openBlock)(), (0, _vue.createBlock)(_component_month_picker_panel, {
|
|
119
124
|
key: 1,
|
|
125
|
+
ref: "monthPanelEl",
|
|
120
126
|
current: _ctx.currentDate,
|
|
121
127
|
choose: _ctx.getChoose,
|
|
122
128
|
preview: _ctx.getPreview,
|
|
@@ -126,8 +132,9 @@ function render(_ctx, _cache) {
|
|
|
126
132
|
onCheckPreview: _ctx.checkPreview
|
|
127
133
|
}, null, 8
|
|
128
134
|
/* PROPS */
|
|
129
|
-
, ["current", "choose", "preview", "click-year", "component-props", "onChooseMonth", "onCheckPreview"])) :
|
|
135
|
+
, ["current", "choose", "preview", "click-year", "component-props", "onChooseMonth", "onCheckPreview"])) : _ctx.getPanelType === 'date' ? ((0, _vue.openBlock)(), (0, _vue.createBlock)(_component_day_picker_panel, {
|
|
130
136
|
key: 2,
|
|
137
|
+
ref: "dayPanelEl",
|
|
131
138
|
current: _ctx.currentDate,
|
|
132
139
|
choose: _ctx.getChoose,
|
|
133
140
|
preview: _ctx.getPreview,
|
|
@@ -141,7 +148,9 @@ function render(_ctx, _cache) {
|
|
|
141
148
|
_: 1
|
|
142
149
|
/* STABLE */
|
|
143
150
|
|
|
144
|
-
})]
|
|
151
|
+
})], 32
|
|
152
|
+
/* HYDRATE_EVENTS */
|
|
153
|
+
)], 2
|
|
145
154
|
/* CLASS */
|
|
146
155
|
);
|
|
147
156
|
}
|
|
@@ -157,6 +166,10 @@ var _default = (0, _vue.defineComponent)({
|
|
|
157
166
|
props: _props.props,
|
|
158
167
|
|
|
159
168
|
setup(props) {
|
|
169
|
+
var startX = 0;
|
|
170
|
+
var startY = 0;
|
|
171
|
+
var checkType = '';
|
|
172
|
+
var touchDirection;
|
|
160
173
|
var currentDate = (0, _dayjs.default)().format('YYYY-MM-D');
|
|
161
174
|
var [currentYear, currentMonth] = currentDate.split('-');
|
|
162
175
|
|
|
@@ -175,6 +188,8 @@ var _default = (0, _vue.defineComponent)({
|
|
|
175
188
|
var chooseDays = (0, _vue.ref)([]);
|
|
176
189
|
var chooseRangeMonth = (0, _vue.ref)([]);
|
|
177
190
|
var chooseRangeDay = (0, _vue.ref)([]);
|
|
191
|
+
var monthPanelEl = (0, _vue.ref)(null);
|
|
192
|
+
var dayPanelEl = (0, _vue.ref)(null);
|
|
178
193
|
var componentProps = (0, _vue.reactive)({
|
|
179
194
|
allowedDates: props.allowedDates,
|
|
180
195
|
type: props.type,
|
|
@@ -244,6 +259,15 @@ var _default = (0, _vue.defineComponent)({
|
|
|
244
259
|
if (_locale.pack.value.lang === 'zh-CN') return chooseMonth.value.index + "-" + showDay + " " + weekName.slice(0, 3);
|
|
245
260
|
return weekName.slice(0, 3) + ", " + monthName.slice(0, 3) + " " + chooseDay.value;
|
|
246
261
|
});
|
|
262
|
+
var getPanelType = (0, _vue.computed)(() => {
|
|
263
|
+
if (isYearPanel.value) return 'year';
|
|
264
|
+
if (props.type === 'month' || isMonthPanel.value) return 'month';
|
|
265
|
+
if (props.type === 'date') return 'date';
|
|
266
|
+
return '';
|
|
267
|
+
});
|
|
268
|
+
var isUntouchable = (0, _vue.computed)(() => {
|
|
269
|
+
return !props.touchable || ['', 'year'].includes(getPanelType.value);
|
|
270
|
+
});
|
|
247
271
|
var slotProps = (0, _vue.computed)(() => {
|
|
248
272
|
var _chooseMonth$value, _chooseDay$value, _chooseYear$value, _chooseMonth$value$in, _chooseMonth$value2;
|
|
249
273
|
|
|
@@ -271,6 +295,39 @@ var _default = (0, _vue.defineComponent)({
|
|
|
271
295
|
}
|
|
272
296
|
};
|
|
273
297
|
|
|
298
|
+
var handleTouchstart = event => {
|
|
299
|
+
if (isUntouchable.value) return;
|
|
300
|
+
var {
|
|
301
|
+
clientX,
|
|
302
|
+
clientY
|
|
303
|
+
} = event.touches[0];
|
|
304
|
+
startX = clientX;
|
|
305
|
+
startY = clientY;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
var getDirection = (x, y) => {
|
|
309
|
+
return x >= y && x > 20 ? 'x' : 'y';
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
var handleTouchmove = event => {
|
|
313
|
+
if (isUntouchable.value) return;
|
|
314
|
+
var {
|
|
315
|
+
clientX,
|
|
316
|
+
clientY
|
|
317
|
+
} = event.touches[0];
|
|
318
|
+
var x = clientX - startX;
|
|
319
|
+
var y = clientY - startY;
|
|
320
|
+
touchDirection = getDirection(Math.abs(x), Math.abs(y));
|
|
321
|
+
checkType = x > 0 ? 'prev' : 'next';
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
var handleTouchend = () => {
|
|
325
|
+
if (isUntouchable.value || touchDirection !== 'x') return;
|
|
326
|
+
var componentRef = getPanelType.value === 'month' ? monthPanelEl : dayPanelEl;
|
|
327
|
+
componentRef.value.forwardRef(checkType);
|
|
328
|
+
resetState();
|
|
329
|
+
};
|
|
330
|
+
|
|
274
331
|
var updateRange = (date, type) => {
|
|
275
332
|
var rangeDate = type === 'month' ? chooseRangeMonth : chooseRangeDay;
|
|
276
333
|
rangeDate.value = rangeDone.value ? [date, date] : [rangeDate.value[0], date];
|
|
@@ -438,6 +495,13 @@ var _default = (0, _vue.defineComponent)({
|
|
|
438
495
|
previewYear.value = yearValue;
|
|
439
496
|
};
|
|
440
497
|
|
|
498
|
+
var resetState = () => {
|
|
499
|
+
startY = 0;
|
|
500
|
+
startX = 0;
|
|
501
|
+
checkType = '';
|
|
502
|
+
touchDirection = undefined;
|
|
503
|
+
};
|
|
504
|
+
|
|
441
505
|
(0, _vue.watch)(() => props.modelValue, value => {
|
|
442
506
|
if (!checkValue() || invalidFormatDate(value) || !value) return;
|
|
443
507
|
|
|
@@ -454,7 +518,10 @@ var _default = (0, _vue.defineComponent)({
|
|
|
454
518
|
}, {
|
|
455
519
|
immediate: true
|
|
456
520
|
});
|
|
521
|
+
(0, _vue.watch)(getPanelType, resetState);
|
|
457
522
|
return {
|
|
523
|
+
monthPanelEl,
|
|
524
|
+
dayPanelEl,
|
|
458
525
|
reverse,
|
|
459
526
|
currentDate,
|
|
460
527
|
chooseMonth,
|
|
@@ -465,12 +532,16 @@ var _default = (0, _vue.defineComponent)({
|
|
|
465
532
|
isMonthPanel,
|
|
466
533
|
getMonthTitle,
|
|
467
534
|
getDateTitle,
|
|
535
|
+
getPanelType,
|
|
468
536
|
getChoose,
|
|
469
537
|
getPreview,
|
|
470
538
|
componentProps,
|
|
471
539
|
slotProps,
|
|
472
540
|
formatRange,
|
|
473
541
|
clickEl,
|
|
542
|
+
handleTouchstart,
|
|
543
|
+
handleTouchmove,
|
|
544
|
+
handleTouchend,
|
|
474
545
|
getChooseDay,
|
|
475
546
|
getChooseMonth,
|
|
476
547
|
getChooseYear,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --date-picker-border-radius: 4px; --date-picker-font-size: var(--font-size-md); --date-picker-min-width: 290px; --date-picker-height: 385px; --date-picker-main-color: rgba(0, 0, 0, 0.87); --date-picker-title-padding: 16px; --date-picker-title-background: var(--color-primary); --date-picker-title-color: #fff; --date-picker-title-year-font-size: var(--font-size-md); --date-picker-title-year-font-weight: 500; --date-picker-title-year-margin-bottom: 8px; --date-picker-title-date-height: 48px; --date-picker-title-date-font-size: 34px; --date-picker-title-date-font-weight: 500; --date-picker-title-date-range-font-size: 20px; --date-picker-body-background-color: rgba(0, 0, 0, 0); --picker-header-padding: 4px 16px; --month-picker-padding: 0 12px; --month-picker-item-width: 33%; --month-picker-item-height: 56px; --month-picker-item-button-max-width: 140px; --year-picker-font-weight: 400; --year-picker-item-padding: 8px 0; --year-picker-item-active-font-size: 26px; --year-picker-item-active-font-weight: 500; --year-picker-item-active-font-padding: 10px 0; --year-picker-item-active-color: var(--color-primary); --day-picker-content-item-width: 14.28%; --day-picker-content-item-font-size: var(--font-size-sm); --day-picker-content-item-padding: 2px 0; --day-picker-content-item-button-width: 32px; --day-picker-content-item-button-height: 32px; --day-picker-content-item-button-font-size: var(--font-size-sm); --day-picker-head-item-color: rgba(0, 0, 0, 0.38); --day-picker-head-item-padding: 8px 0; --day-picker-head-item-font-weight: 600;}.var-date-picker { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); border-radius: var(--date-picker-border-radius); contain: layout style; display: flex; flex-direction: column; font-size: var(--date-picker-font-size); position: relative; min-width: var(--date-picker-min-width); height: var(--date-picker-height); overflow: hidden;}.var-date-picker ul { list-style: none; margin: 0; padding: 0;}.var-date-picker-title { padding: var(--date-picker-title-padding); color: var(--date-picker-title-color); background: var(--date-picker-title-background); display: flex; justify-content: space-between; flex-direction: column; flex-wrap: wrap;}.var-date-picker-title__year { opacity: 0.6; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); align-items: center; display: inline-flex; font-size: var(--date-picker-title-year-font-size); font-weight: var(--date-picker-title-year-font-weight); margin-bottom: var(--date-picker-title-year-margin-bottom); transition: 0.3s var(--cubic-bezier);}.var-date-picker-title__year--active { opacity: 1;}.var-date-picker-title__date { height: var(--date-picker-title-date-height); overflow: hidden; font-size: var(--date-picker-title-date-font-size); text-align: left; font-weight: var(--date-picker-title-date-font-weight); position: relative; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); display: flex; align-items: center; opacity: 0.6; transition: 0.3s var(--cubic-bezier);}.var-date-picker-title__date--active { opacity: 1;}.var-date-picker-title__date--range { font-size: var(--date-picker-title-date-range-font-size);}.var-date-picker-body { flex: 1; position: relative; overflow: auto; background-color: var(--date-picker-body-background-color);}.var-date-picker .var-picker-header { padding: var(--picker-header-padding); align-items: center; display: flex; justify-content: space-between; position: relative;}.var-date-picker .var-picker-header__value { flex: 1; text-align: center; position: relative; overflow: hidden; font-weight: 700; cursor: pointer;}.var-date-picker .var-picker-header__value div { width: 100%;}.var-date-picker .var-month-picker__content { padding: var(--month-picker-padding);}.var-date-picker .var-month-picker__content ul { display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-month-picker__content ul li { width: var(--month-picker-item-width); display: flex; height: var(--month-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-month-picker__button[var-month-picker-cover] { width: 100%; max-width: var(--month-picker-item-button-max-width);}.var-date-picker .var-month-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-year-picker__panel { width: 100%; height: 100%; font-weight: var(--year-picker-font-weight); padding: 0; margin: 0; list-style-type: none; overflow: auto; text-align: center;}.var-date-picker .var-year-picker__panel li { padding: var(--year-picker-item-padding); cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-date-picker .var-year-picker__panel--active { font-size: var(--year-picker-item-active-font-size); font-weight: var(--year-picker-item-active-font-weight); padding: var(--year-picker-item-active-font-padding); color: var(--year-picker-item-active-color);}.var-date-picker .var-day-picker__content ul { display: flex; flex-wrap: wrap;}.var-date-picker .var-day-picker__content ul li { position: relative; display: flex; justify-content: center; width: var(--day-picker-content-item-width); font-size: var(--day-picker-content-item-font-size); padding: var(--day-picker-content-item-padding);}.var-date-picker .var-day-picker__head li { color: var(--day-picker-head-item-color); padding: var(--day-picker-head-item-padding); font-weight: var(--day-picker-head-item-font-weight);}.var-date-picker .var-day-picker__button[var-day-picker-cover] { width: var(--day-picker-content-item-button-width); height: var(--day-picker-content-item-button-height); font-size: var(--day-picker-content-item-button-font-size);}.var-date-picker .var-day-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker-translatey-enter-from { opacity: 0; transform: translateY(100%);}.var-date-picker-translatey-enter-active,.var-date-picker-reverse-translatey-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-active,.var-date-picker-reverse-translatey-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-to { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-enter-from { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-leave-to { opacity: 0; transform: translateY(100%);}.var-date-picker-panel-fade-enter-from,.var-date-picker-panel-fade-leave-to { transition: 0.3s var(--cubic-bezier); opacity: 0;}.var-date-picker-panel-fade-leave-active { position: absolute;}.var-date-picker-translatex-enter-from { opacity: 0; transform: translateX(100%);}.var-date-picker-reverse-translatex-enter-from { opacity: 0; transform: translateX(-100%);}.var-date-picker-translatex-enter-active,.var-date-picker-reverse-translatex-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-active,.var-date-picker-reverse-translatex-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-to { opacity: 0; transform: translateX(-100%);}.var-date-picker-reverse-translatex-leave-to { opacity: 0; transform: translateX(100%);}
|
|
1
|
+
:root { --date-picker-border-radius: 4px; --date-picker-font-size: var(--font-size-md); --date-picker-min-width: 290px; --date-picker-height: 385px; --date-picker-main-color: rgba(0, 0, 0, 0.87); --date-picker-title-padding: 16px; --date-picker-title-background: var(--color-primary); --date-picker-title-color: #fff; --date-picker-title-year-font-size: var(--font-size-md); --date-picker-title-year-font-weight: 500; --date-picker-title-year-margin-bottom: 8px; --date-picker-title-date-height: 48px; --date-picker-title-date-font-size: 34px; --date-picker-title-date-font-weight: 500; --date-picker-title-date-range-font-size: 20px; --date-picker-body-background-color: rgba(0, 0, 0, 0); --picker-header-padding: 4px 16px; --month-picker-padding: 0 12px; --month-picker-item-width: 33%; --month-picker-item-height: 56px; --month-picker-item-button-max-width: 140px; --year-picker-font-weight: 400; --year-picker-item-padding: 8px 0; --year-picker-item-active-font-size: 26px; --year-picker-item-active-font-weight: 500; --year-picker-item-active-font-padding: 10px 0; --year-picker-item-active-color: var(--color-primary); --day-picker-content-item-width: 14.28%; --day-picker-content-item-font-size: var(--font-size-sm); --day-picker-content-item-padding: 2px 0; --day-picker-content-item-button-width: 32px; --day-picker-content-item-button-height: 32px; --day-picker-content-item-button-font-size: var(--font-size-sm); --day-picker-head-item-color: rgba(0, 0, 0, 0.38); --day-picker-head-item-padding: 8px 0; --day-picker-head-item-font-weight: 600;}.var-date-picker { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); border-radius: var(--date-picker-border-radius); contain: layout style; display: flex; flex-direction: column; font-size: var(--date-picker-font-size); position: relative; min-width: var(--date-picker-min-width); height: var(--date-picker-height); overflow: hidden;}.var-date-picker ul { list-style: none; margin: 0; padding: 0;}.var-date-picker-title { padding: var(--date-picker-title-padding); color: var(--date-picker-title-color); background: var(--date-picker-title-background); display: flex; justify-content: space-between; flex-direction: column; flex-wrap: wrap;}.var-date-picker-title__year { opacity: 0.6; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); align-items: center; display: inline-flex; font-size: var(--date-picker-title-year-font-size); font-weight: var(--date-picker-title-year-font-weight); margin-bottom: var(--date-picker-title-year-margin-bottom); transition: 0.3s var(--cubic-bezier);}.var-date-picker-title__year--active { opacity: 1;}.var-date-picker-title__date { height: var(--date-picker-title-date-height); overflow: hidden; font-size: var(--date-picker-title-date-font-size); text-align: left; font-weight: var(--date-picker-title-date-font-weight); position: relative; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); display: flex; align-items: center; opacity: 0.6; transition: 0.3s var(--cubic-bezier);}.var-date-picker-title__date--active { opacity: 1;}.var-date-picker-title__date--range { font-size: var(--date-picker-title-date-range-font-size);}.var-date-picker-body { flex: 1; position: relative; overflow: auto; background-color: var(--date-picker-body-background-color);}.var-date-picker .var-picker-header { padding: var(--picker-header-padding); align-items: center; display: flex; justify-content: space-between; position: relative;}.var-date-picker .var-picker-header__value { flex: 1; text-align: center; position: relative; overflow: hidden; font-weight: 700; cursor: pointer; user-select: none;}.var-date-picker .var-picker-header__value div { width: 100%;}.var-date-picker .var-month-picker__content { padding: var(--month-picker-padding);}.var-date-picker .var-month-picker__content ul { display: flex; flex-wrap: wrap; justify-content: space-between;}.var-date-picker .var-month-picker__content ul li { width: var(--month-picker-item-width); display: flex; height: var(--month-picker-item-height); align-items: center; justify-content: center;}.var-date-picker .var-month-picker__button[var-month-picker-cover] { width: 100%; max-width: var(--month-picker-item-button-max-width);}.var-date-picker .var-month-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker .var-year-picker__panel { width: 100%; height: 100%; font-weight: var(--year-picker-font-weight); padding: 0; margin: 0; list-style-type: none; overflow: auto; text-align: center;}.var-date-picker .var-year-picker__panel li { padding: var(--year-picker-item-padding); cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-date-picker .var-year-picker__panel--active { font-size: var(--year-picker-item-active-font-size); font-weight: var(--year-picker-item-active-font-weight); padding: var(--year-picker-item-active-font-padding); color: var(--year-picker-item-active-color);}.var-date-picker .var-day-picker__content ul { display: flex; flex-wrap: wrap;}.var-date-picker .var-day-picker__content ul li { position: relative; display: flex; justify-content: center; width: var(--day-picker-content-item-width); font-size: var(--day-picker-content-item-font-size); padding: var(--day-picker-content-item-padding);}.var-date-picker .var-day-picker__head li { color: var(--day-picker-head-item-color); padding: var(--day-picker-head-item-padding); font-weight: var(--day-picker-head-item-font-weight);}.var-date-picker .var-day-picker__button[var-day-picker-cover] { width: var(--day-picker-content-item-button-width); height: var(--day-picker-content-item-button-height); font-size: var(--day-picker-content-item-button-font-size);}.var-date-picker .var-day-picker__button[var-date-picker-color-cover='true'] { color: var(--date-picker-main-color);}.var-date-picker-translatey-enter-from { opacity: 0; transform: translateY(100%);}.var-date-picker-translatey-enter-active,.var-date-picker-reverse-translatey-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-active,.var-date-picker-reverse-translatey-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatey-leave-to { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-enter-from { opacity: 0; transform: translateY(-100%);}.var-date-picker-reverse-translatey-leave-to { opacity: 0; transform: translateY(100%);}.var-date-picker-panel-fade-enter-from,.var-date-picker-panel-fade-leave-to { transition: 0.3s var(--cubic-bezier); opacity: 0;}.var-date-picker-panel-fade-leave-active { position: absolute;}.var-date-picker-translatex-enter-from { opacity: 0; transform: translateX(100%);}.var-date-picker-reverse-translatex-enter-from { opacity: 0; transform: translateX(-100%);}.var-date-picker-translatex-enter-active,.var-date-picker-reverse-translatex-enter-active { transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-active,.var-date-picker-reverse-translatex-leave-active { position: absolute; transition: 0.3s var(--cubic-bezier);}.var-date-picker-translatex-leave-to { opacity: 0; transform: translateX(-100%);}.var-date-picker-reverse-translatex-leave-to { opacity: 0; transform: translateX(100%);}
|
package/lib/date-picker/props.js
CHANGED
|
@@ -51,6 +51,7 @@ function render(_ctx, _cache) {
|
|
|
51
51
|
var _component_var_button = (0, _vue.resolveComponent)("var-button");
|
|
52
52
|
|
|
53
53
|
return (0, _vue.openBlock)(), (0, _vue.createElementBlock)("div", _hoisted_1, [(0, _vue.createElementVNode)("div", _hoisted_2, [(0, _vue.createVNode)(_component_panel_header, {
|
|
54
|
+
ref: "headerEl",
|
|
54
55
|
type: "day",
|
|
55
56
|
date: _ctx.preview,
|
|
56
57
|
disabled: _ctx.panelBtnDisabled,
|
|
@@ -144,6 +145,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
144
145
|
var days = (0, _vue.ref)([]);
|
|
145
146
|
var reverse = (0, _vue.ref)(false);
|
|
146
147
|
var panelKey = (0, _vue.ref)(0);
|
|
148
|
+
var headerEl = (0, _vue.ref)(null);
|
|
147
149
|
var panelBtnDisabled = (0, _vue.reactive)({
|
|
148
150
|
left: false,
|
|
149
151
|
right: false
|
|
@@ -328,6 +330,11 @@ var _default = (0, _vue.defineComponent)({
|
|
|
328
330
|
|
|
329
331
|
var chooseDay = day => {
|
|
330
332
|
emit('choose-day', day);
|
|
333
|
+
}; // expose for internal
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
var forwardRef = checkType => {
|
|
337
|
+
headerEl.value.checkDate(checkType);
|
|
331
338
|
};
|
|
332
339
|
|
|
333
340
|
(0, _vue.onMounted)(() => {
|
|
@@ -341,9 +348,11 @@ var _default = (0, _vue.defineComponent)({
|
|
|
341
348
|
return {
|
|
342
349
|
days,
|
|
343
350
|
reverse,
|
|
351
|
+
headerEl,
|
|
344
352
|
panelKey,
|
|
345
353
|
sortWeekList,
|
|
346
354
|
panelBtnDisabled,
|
|
355
|
+
forwardRef,
|
|
347
356
|
filterDay,
|
|
348
357
|
getDayAbbr,
|
|
349
358
|
checkDate,
|
|
@@ -45,6 +45,7 @@ function render(_ctx, _cache) {
|
|
|
45
45
|
var _component_var_button = (0, _vue.resolveComponent)("var-button");
|
|
46
46
|
|
|
47
47
|
return (0, _vue.openBlock)(), (0, _vue.createElementBlock)("div", _hoisted_1, [(0, _vue.createElementVNode)("div", _hoisted_2, [(0, _vue.createVNode)(_component_panel_header, {
|
|
48
|
+
ref: "headerEl",
|
|
48
49
|
type: "month",
|
|
49
50
|
date: _ctx.preview,
|
|
50
51
|
disabled: _ctx.panelBtnDisabled,
|
|
@@ -126,6 +127,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
126
127
|
var [currentYear, currentMonth] = props.current.split('-');
|
|
127
128
|
var reverse = (0, _vue.ref)(false);
|
|
128
129
|
var panelKey = (0, _vue.ref)(0);
|
|
130
|
+
var headerEl = (0, _vue.ref)(null);
|
|
129
131
|
var panelBtnDisabled = (0, _vue.reactive)({
|
|
130
132
|
left: false,
|
|
131
133
|
right: false
|
|
@@ -255,6 +257,11 @@ var _default = (0, _vue.defineComponent)({
|
|
|
255
257
|
reverse.value = checkType === 'prev';
|
|
256
258
|
panelKey.value += checkType === 'prev' ? -1 : 1;
|
|
257
259
|
emit('check-preview', 'year', checkType);
|
|
260
|
+
}; // expose for internal
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
var forwardRef = checkType => {
|
|
264
|
+
headerEl.value.checkDate(checkType);
|
|
258
265
|
};
|
|
259
266
|
|
|
260
267
|
(0, _vue.watch)(() => props.preview.previewYear, year => {
|
|
@@ -272,9 +279,11 @@ var _default = (0, _vue.defineComponent)({
|
|
|
272
279
|
return {
|
|
273
280
|
pack: _locale.pack,
|
|
274
281
|
MONTH_LIST: _props.MONTH_LIST,
|
|
282
|
+
headerEl,
|
|
275
283
|
reverse,
|
|
276
284
|
panelKey,
|
|
277
285
|
panelBtnDisabled,
|
|
286
|
+
forwardRef,
|
|
278
287
|
buttonProps,
|
|
279
288
|
getMonthAbbr,
|
|
280
289
|
chooseMonth,
|
|
@@ -126,6 +126,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
126
126
|
});
|
|
127
127
|
|
|
128
128
|
var checkDate = checkType => {
|
|
129
|
+
if (checkType === 'prev' && props.disabled.left || checkType === 'next' && props.disabled.right) return;
|
|
129
130
|
emit('check-date', checkType);
|
|
130
131
|
reverse.value = checkType === 'prev';
|
|
131
132
|
forwardOrBackNum.value += checkType === 'prev' ? -1 : 1;
|
|
@@ -32,6 +32,9 @@ var _hoisted_2 = {
|
|
|
32
32
|
key: 0,
|
|
33
33
|
class: "var-image-preview__indicators"
|
|
34
34
|
};
|
|
35
|
+
var _hoisted_3 = {
|
|
36
|
+
class: "var-image-preview__extra"
|
|
37
|
+
};
|
|
35
38
|
|
|
36
39
|
function render(_ctx, _cache) {
|
|
37
40
|
var _component_var_swipe_item = (0, _vue.resolveComponent)("var-swipe-item");
|
|
@@ -131,7 +134,7 @@ function render(_ctx, _cache) {
|
|
|
131
134
|
onClick: _ctx.close
|
|
132
135
|
}, null, 8
|
|
133
136
|
/* PROPS */
|
|
134
|
-
, ["onClick"])) : (0, _vue.createCommentVNode)("v-if", true)])]),
|
|
137
|
+
, ["onClick"])) : (0, _vue.createCommentVNode)("v-if", true)]), (0, _vue.createElementVNode)("div", _hoisted_3, [(0, _vue.renderSlot)(_ctx.$slots, "extra")])]),
|
|
135
138
|
_: 3
|
|
136
139
|
/* FORWARDED */
|
|
137
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --image-preview-swipe-indicators-text-color: #ddd; --image-preview-swipe-indicators-padding: 16px 0; --image-preview-zoom-container-background: #000; --image-preview-close-icon-top:
|
|
1
|
+
:root { --image-preview-swipe-indicators-text-color: #ddd; --image-preview-swipe-indicators-padding: 16px 0; --image-preview-zoom-container-background: #000; --image-preview-close-icon-top: 14px; --image-preview-close-icon-right: 14px; --image-preview-extra-top: 14px; --image-preview-extra-left: 14px; --image-preview-close-icon-size: 22px; --image-preview-close-icon-color: #fff;}.var-image-preview__popup[var-image-preview-cover] { background: transparent;}.var-image-preview__swipe[var-image-preview-cover] { width: 100vw; height: 100vh;}.var-image-preview__swipe-item[var-image-preview-cover] { overflow: hidden;}.var-image-preview__close-icon[var-image-preview-cover] { position: absolute; top: var(--image-preview-close-icon-top); right: var(--image-preview-close-icon-right); color: var(--image-preview-close-icon-color); font-size: var(--image-preview-close-icon-size);}.var-image-preview__extra { position: absolute; top: var(--image-preview-extra-top); left: var(--image-preview-extra-left);}.var-image-preview__indicators { position: absolute; top: 0; width: 100%; padding: var(--image-preview-swipe-indicators-padding); color: var(--image-preview-swipe-indicators-text-color); text-align: center;}.var-image-preview__image { width: 100%; height: 100%; object-fit: contain; -webkit-user-drag: none;}.var-image-preview__zoom-container { display: flex; justify-content: center; align-items: center; width: 100vw; height: 100vh; transition: transform 0.2s; background: var(--image-preview-zoom-container-background);}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
@image-preview-swipe-indicators-text-color: #ddd;
|
|
2
2
|
@image-preview-swipe-indicators-padding: 16px 0;
|
|
3
3
|
@image-preview-zoom-container-background: #000;
|
|
4
|
-
@image-preview-close-icon-top:
|
|
4
|
+
@image-preview-close-icon-top: 14px;
|
|
5
5
|
@image-preview-close-icon-right: 14px;
|
|
6
|
+
@image-preview-extra-top: 14px;
|
|
7
|
+
@image-preview-extra-left: 14px;
|
|
6
8
|
@image-preview-close-icon-size: 22px;
|
|
7
9
|
@image-preview-close-icon-color: #fff;
|
|
8
10
|
|
|
@@ -12,6 +14,8 @@
|
|
|
12
14
|
--image-preview-zoom-container-background: @image-preview-zoom-container-background;
|
|
13
15
|
--image-preview-close-icon-top: @image-preview-close-icon-top;
|
|
14
16
|
--image-preview-close-icon-right: @image-preview-close-icon-right;
|
|
17
|
+
--image-preview-extra-top: @image-preview-extra-top;
|
|
18
|
+
--image-preview-extra-left: @image-preview-extra-left;
|
|
15
19
|
--image-preview-close-icon-size: @image-preview-close-icon-size;
|
|
16
20
|
--image-preview-close-icon-color: @image-preview-close-icon-color;
|
|
17
21
|
}
|
|
@@ -38,6 +42,12 @@
|
|
|
38
42
|
font-size: var(--image-preview-close-icon-size);
|
|
39
43
|
}
|
|
40
44
|
|
|
45
|
+
&__extra {
|
|
46
|
+
position: absolute;
|
|
47
|
+
top: var(--image-preview-extra-top);
|
|
48
|
+
left: var(--image-preview-extra-left);
|
|
49
|
+
}
|
|
50
|
+
|
|
41
51
|
&__indicators {
|
|
42
52
|
position: absolute;
|
|
43
53
|
top: 0;
|