@varlet/ui 1.26.2 → 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/checkbox/Checkbox.js +6 -1
- package/es/checkbox-group/CheckboxGroup.js +7 -1
- package/es/date-picker/DatePicker.js +87 -15
- 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 +10 -1
- package/es/date-picker/src/month-picker-panel.js +10 -1
- package/es/date-picker/src/panel-header.js +2 -1
- package/es/image-preview/ImagePreview.js +7 -3
- package/es/image-preview/imagePreview.css +1 -1
- package/es/image-preview/imagePreview.less +11 -1
- package/es/rate/Rate.js +2 -1
- package/es/rate/props.js +3 -0
- package/es/style.css +1 -1
- package/es/varlet.esm.js +180 -69
- package/highlight/attributes.json +8 -0
- package/highlight/tags.json +3 -1
- package/highlight/web-types.json +23 -1
- package/lib/checkbox/Checkbox.js +6 -1
- package/lib/checkbox-group/CheckboxGroup.js +7 -1
- package/lib/date-picker/DatePicker.js +86 -14
- 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 +10 -1
- package/lib/date-picker/src/month-picker-panel.js +10 -1
- package/lib/date-picker/src/panel-header.js +2 -1
- package/lib/image-preview/ImagePreview.js +7 -3
- package/lib/image-preview/imagePreview.css +1 -1
- package/lib/image-preview/imagePreview.less +11 -1
- package/lib/rate/Rate.js +2 -1
- package/lib/rate/props.js +3 -0
- package/lib/style.css +1 -1
- package/package.json +4 -4
- package/types/datePicker.d.ts +1 -0
- package/types/radioGroup.d.ts +3 -3
- package/types/rate.d.ts +1 -0
- package/umd/varlet.js +4 -4
package/es/checkbox/Checkbox.js
CHANGED
|
@@ -155,6 +155,10 @@ export default defineComponent({
|
|
|
155
155
|
uncheckedValue
|
|
156
156
|
} = props;
|
|
157
157
|
value.value = values.includes(checkedValue) ? checkedValue : uncheckedValue;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
var resetWithAnimation = () => {
|
|
161
|
+
withAnimation.value = false;
|
|
158
162
|
}; // expose
|
|
159
163
|
|
|
160
164
|
|
|
@@ -194,7 +198,8 @@ export default defineComponent({
|
|
|
194
198
|
sync,
|
|
195
199
|
validate,
|
|
196
200
|
resetValidation,
|
|
197
|
-
reset
|
|
201
|
+
reset,
|
|
202
|
+
resetWithAnimation
|
|
198
203
|
};
|
|
199
204
|
bindCheckboxGroup == null ? void 0 : bindCheckboxGroup(checkboxProvider);
|
|
200
205
|
bindForm == null ? void 0 : bindForm(checkboxProvider);
|
|
@@ -99,7 +99,11 @@ export default defineComponent({
|
|
|
99
99
|
sync
|
|
100
100
|
} = _ref;
|
|
101
101
|
return sync(props.modelValue);
|
|
102
|
-
});
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var resetWithAnimation = () => {
|
|
105
|
+
checkboxes.forEach(checkbox => checkbox.resetWithAnimation());
|
|
106
|
+
}; // expose
|
|
103
107
|
|
|
104
108
|
|
|
105
109
|
var checkAll = () => {
|
|
@@ -112,6 +116,7 @@ export default defineComponent({
|
|
|
112
116
|
return checkedValue.value;
|
|
113
117
|
});
|
|
114
118
|
var changedModelValue = uniq(checkedValues);
|
|
119
|
+
resetWithAnimation();
|
|
115
120
|
(_props$onUpdateModel2 = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel2.call(props, changedModelValue);
|
|
116
121
|
return changedModelValue;
|
|
117
122
|
}; // expose
|
|
@@ -132,6 +137,7 @@ export default defineComponent({
|
|
|
132
137
|
return checkedValue.value;
|
|
133
138
|
});
|
|
134
139
|
var changedModelValue = uniq(checkedValues);
|
|
140
|
+
resetWithAnimation();
|
|
135
141
|
(_props$onUpdateModel3 = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel3.call(props, changedModelValue);
|
|
136
142
|
return changedModelValue;
|
|
137
143
|
}; // expose
|
|
@@ -6,13 +6,7 @@ import DayPickerPanel from './src/day-picker-panel.js'
|
|
|
6
6
|
import { props, MONTH_LIST, WEEK_HEADER } from './props';
|
|
7
7
|
import { isArray, toNumber } from '../utils/shared';
|
|
8
8
|
import { pack } from '../locale';
|
|
9
|
-
import { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeProps as _normalizeProps, mergeProps as _mergeProps, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, createBlock as _createBlock
|
|
10
|
-
|
|
11
|
-
var _withScopeId = n => (_pushScopeId(""), n = n(), _popScopeId(), n);
|
|
12
|
-
|
|
13
|
-
var _hoisted_1 = {
|
|
14
|
-
class: "var-date-picker-body"
|
|
15
|
-
};
|
|
9
|
+
import { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeProps as _normalizeProps, mergeProps as _mergeProps, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, createBlock as _createBlock } from "vue";
|
|
16
10
|
export function render(_ctx, _cache) {
|
|
17
11
|
var _component_year_picker_panel = _resolveComponent("year-picker-panel");
|
|
18
12
|
|
|
@@ -40,7 +34,7 @@ export function render(_ctx, _cache) {
|
|
|
40
34
|
class: _normalizeClass(["var-date-picker-title__date", [!_ctx.isYearPanel ? 'var-date-picker-title__date--active' : null, _ctx.range ? 'var-date-picker-title__date--range' : null]]),
|
|
41
35
|
onClick: _cache[1] || (_cache[1] = $event => _ctx.clickEl('date'))
|
|
42
36
|
}, [_createVNode(_Transition, {
|
|
43
|
-
name: _ctx.multiple ? '' : _ctx.reverse ? '
|
|
37
|
+
name: _ctx.multiple ? '' : "var-date-picker" + (_ctx.reverse ? '-reverse' : '') + "-translatey"
|
|
44
38
|
}, {
|
|
45
39
|
default: _withCtx(() => {
|
|
46
40
|
var _ctx$chooseMonth, _ctx$chooseMonth2, _ctx$chooseMonth3;
|
|
@@ -90,18 +84,30 @@ export function render(_ctx, _cache) {
|
|
|
90
84
|
/* CLASS */
|
|
91
85
|
)], 4
|
|
92
86
|
/* STYLE */
|
|
93
|
-
), _createElementVNode("div",
|
|
87
|
+
), _createElementVNode("div", {
|
|
88
|
+
class: "var-date-picker-body",
|
|
89
|
+
onTouchstart: _cache[2] || (_cache[2] = function () {
|
|
90
|
+
return _ctx.handleTouchstart && _ctx.handleTouchstart(...arguments);
|
|
91
|
+
}),
|
|
92
|
+
onTouchmove: _cache[3] || (_cache[3] = function () {
|
|
93
|
+
return _ctx.handleTouchmove && _ctx.handleTouchmove(...arguments);
|
|
94
|
+
}),
|
|
95
|
+
onTouchend: _cache[4] || (_cache[4] = function () {
|
|
96
|
+
return _ctx.handleTouchend && _ctx.handleTouchend(...arguments);
|
|
97
|
+
})
|
|
98
|
+
}, [_createVNode(_Transition, {
|
|
94
99
|
name: "var-date-picker-panel-fade"
|
|
95
100
|
}, {
|
|
96
|
-
default: _withCtx(() => [_ctx.
|
|
101
|
+
default: _withCtx(() => [_ctx.getPanelType === 'year' ? (_openBlock(), _createBlock(_component_year_picker_panel, {
|
|
97
102
|
key: 0,
|
|
98
103
|
"component-props": _ctx.componentProps,
|
|
99
104
|
preview: _ctx.previewYear,
|
|
100
105
|
onChooseYear: _ctx.getChooseYear
|
|
101
106
|
}, null, 8
|
|
102
107
|
/* PROPS */
|
|
103
|
-
, ["component-props", "preview", "onChooseYear"])) :
|
|
108
|
+
, ["component-props", "preview", "onChooseYear"])) : _ctx.getPanelType === 'month' ? (_openBlock(), _createBlock(_component_month_picker_panel, {
|
|
104
109
|
key: 1,
|
|
110
|
+
ref: "monthPanelEl",
|
|
105
111
|
current: _ctx.currentDate,
|
|
106
112
|
choose: _ctx.getChoose,
|
|
107
113
|
preview: _ctx.getPreview,
|
|
@@ -111,8 +117,9 @@ export function render(_ctx, _cache) {
|
|
|
111
117
|
onCheckPreview: _ctx.checkPreview
|
|
112
118
|
}, null, 8
|
|
113
119
|
/* PROPS */
|
|
114
|
-
, ["current", "choose", "preview", "click-year", "component-props", "onChooseMonth", "onCheckPreview"])) :
|
|
120
|
+
, ["current", "choose", "preview", "click-year", "component-props", "onChooseMonth", "onCheckPreview"])) : _ctx.getPanelType === 'date' ? (_openBlock(), _createBlock(_component_day_picker_panel, {
|
|
115
121
|
key: 2,
|
|
122
|
+
ref: "dayPanelEl",
|
|
116
123
|
current: _ctx.currentDate,
|
|
117
124
|
choose: _ctx.getChoose,
|
|
118
125
|
preview: _ctx.getPreview,
|
|
@@ -126,7 +133,9 @@ export function render(_ctx, _cache) {
|
|
|
126
133
|
_: 1
|
|
127
134
|
/* STABLE */
|
|
128
135
|
|
|
129
|
-
})]
|
|
136
|
+
})], 32
|
|
137
|
+
/* HYDRATE_EVENTS */
|
|
138
|
+
)], 2
|
|
130
139
|
/* CLASS */
|
|
131
140
|
);
|
|
132
141
|
}
|
|
@@ -141,6 +150,10 @@ export default defineComponent({
|
|
|
141
150
|
props,
|
|
142
151
|
|
|
143
152
|
setup(props) {
|
|
153
|
+
var startX = 0;
|
|
154
|
+
var startY = 0;
|
|
155
|
+
var checkType = '';
|
|
156
|
+
var touchDirection;
|
|
144
157
|
var currentDate = dayjs().format('YYYY-MM-D');
|
|
145
158
|
var [currentYear, currentMonth] = currentDate.split('-');
|
|
146
159
|
var monthDes = MONTH_LIST.find(month => month.index === currentMonth);
|
|
@@ -157,6 +170,8 @@ export default defineComponent({
|
|
|
157
170
|
var chooseDays = ref([]);
|
|
158
171
|
var chooseRangeMonth = ref([]);
|
|
159
172
|
var chooseRangeDay = ref([]);
|
|
173
|
+
var monthPanelEl = ref(null);
|
|
174
|
+
var dayPanelEl = ref(null);
|
|
160
175
|
var componentProps = reactive({
|
|
161
176
|
allowedDates: props.allowedDates,
|
|
162
177
|
type: props.type,
|
|
@@ -224,15 +239,25 @@ export default defineComponent({
|
|
|
224
239
|
if (pack.value.lang === 'zh-CN') return chooseMonth.value.index + "-" + showDay + " " + weekName.slice(0, 3);
|
|
225
240
|
return weekName.slice(0, 3) + ", " + monthName.slice(0, 3) + " " + chooseDay.value;
|
|
226
241
|
});
|
|
242
|
+
var getPanelType = computed(() => {
|
|
243
|
+
if (isYearPanel.value) return 'year';
|
|
244
|
+
if (props.type === 'month' || isMonthPanel.value) return 'month';
|
|
245
|
+
if (props.type === 'date') return 'date';
|
|
246
|
+
return '';
|
|
247
|
+
});
|
|
248
|
+
var isUntouchable = computed(() => {
|
|
249
|
+
return !props.touchable || ['', 'year'].includes(getPanelType.value);
|
|
250
|
+
});
|
|
227
251
|
var slotProps = computed(() => {
|
|
228
|
-
var _chooseMonth$value, _chooseYear$value, _chooseMonth$value$in, _chooseMonth$value2
|
|
252
|
+
var _chooseMonth$value, _chooseDay$value, _chooseYear$value, _chooseMonth$value$in, _chooseMonth$value2;
|
|
229
253
|
|
|
230
254
|
var weekIndex = dayjs(chooseYear.value + "-" + ((_chooseMonth$value = chooseMonth.value) == null ? void 0 : _chooseMonth$value.index) + "-" + chooseDay.value).day();
|
|
255
|
+
var date = chooseDay.value ? (_chooseDay$value = chooseDay.value) == null ? void 0 : _chooseDay$value.padStart(2, '0') : '';
|
|
231
256
|
return {
|
|
232
257
|
week: "" + weekIndex,
|
|
233
258
|
year: (_chooseYear$value = chooseYear.value) != null ? _chooseYear$value : '',
|
|
234
259
|
month: (_chooseMonth$value$in = (_chooseMonth$value2 = chooseMonth.value) == null ? void 0 : _chooseMonth$value2.index) != null ? _chooseMonth$value$in : '',
|
|
235
|
-
date
|
|
260
|
+
date
|
|
236
261
|
};
|
|
237
262
|
});
|
|
238
263
|
var formatRange = computed(() => getChoose.value.chooseRangeDay.map(choose => dayjs(choose).format('YYYY-MM-DD')));
|
|
@@ -250,6 +275,39 @@ export default defineComponent({
|
|
|
250
275
|
}
|
|
251
276
|
};
|
|
252
277
|
|
|
278
|
+
var handleTouchstart = event => {
|
|
279
|
+
if (isUntouchable.value) return;
|
|
280
|
+
var {
|
|
281
|
+
clientX,
|
|
282
|
+
clientY
|
|
283
|
+
} = event.touches[0];
|
|
284
|
+
startX = clientX;
|
|
285
|
+
startY = clientY;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
var getDirection = (x, y) => {
|
|
289
|
+
return x >= y && x > 20 ? 'x' : 'y';
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
var handleTouchmove = event => {
|
|
293
|
+
if (isUntouchable.value) return;
|
|
294
|
+
var {
|
|
295
|
+
clientX,
|
|
296
|
+
clientY
|
|
297
|
+
} = event.touches[0];
|
|
298
|
+
var x = clientX - startX;
|
|
299
|
+
var y = clientY - startY;
|
|
300
|
+
touchDirection = getDirection(Math.abs(x), Math.abs(y));
|
|
301
|
+
checkType = x > 0 ? 'prev' : 'next';
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
var handleTouchend = () => {
|
|
305
|
+
if (isUntouchable.value || touchDirection !== 'x') return;
|
|
306
|
+
var componentRef = getPanelType.value === 'month' ? monthPanelEl : dayPanelEl;
|
|
307
|
+
componentRef.value.forwardRef(checkType);
|
|
308
|
+
resetState();
|
|
309
|
+
};
|
|
310
|
+
|
|
253
311
|
var updateRange = (date, type) => {
|
|
254
312
|
var rangeDate = type === 'month' ? chooseRangeMonth : chooseRangeDay;
|
|
255
313
|
rangeDate.value = rangeDone.value ? [date, date] : [rangeDate.value[0], date];
|
|
@@ -415,6 +473,13 @@ export default defineComponent({
|
|
|
415
473
|
previewYear.value = yearValue;
|
|
416
474
|
};
|
|
417
475
|
|
|
476
|
+
var resetState = () => {
|
|
477
|
+
startY = 0;
|
|
478
|
+
startX = 0;
|
|
479
|
+
checkType = '';
|
|
480
|
+
touchDirection = undefined;
|
|
481
|
+
};
|
|
482
|
+
|
|
418
483
|
watch(() => props.modelValue, value => {
|
|
419
484
|
if (!checkValue() || invalidFormatDate(value) || !value) return;
|
|
420
485
|
|
|
@@ -431,7 +496,10 @@ export default defineComponent({
|
|
|
431
496
|
}, {
|
|
432
497
|
immediate: true
|
|
433
498
|
});
|
|
499
|
+
watch(getPanelType, resetState);
|
|
434
500
|
return {
|
|
501
|
+
monthPanelEl,
|
|
502
|
+
dayPanelEl,
|
|
435
503
|
reverse,
|
|
436
504
|
currentDate,
|
|
437
505
|
chooseMonth,
|
|
@@ -442,12 +510,16 @@ export default defineComponent({
|
|
|
442
510
|
isMonthPanel,
|
|
443
511
|
getMonthTitle,
|
|
444
512
|
getDateTitle,
|
|
513
|
+
getPanelType,
|
|
445
514
|
getChoose,
|
|
446
515
|
getPreview,
|
|
447
516
|
componentProps,
|
|
448
517
|
slotProps,
|
|
449
518
|
formatRange,
|
|
450
519
|
clickEl,
|
|
520
|
+
handleTouchstart,
|
|
521
|
+
handleTouchmove,
|
|
522
|
+
handleTouchend,
|
|
451
523
|
getChooseDay,
|
|
452
524
|
getChooseMonth,
|
|
453
525
|
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/es/date-picker/props.js
CHANGED
|
@@ -33,6 +33,7 @@ export function render(_ctx, _cache) {
|
|
|
33
33
|
var _component_var_button = _resolveComponent("var-button");
|
|
34
34
|
|
|
35
35
|
return _openBlock(), _createElementBlock("div", _hoisted_1, [_createElementVNode("div", _hoisted_2, [_createVNode(_component_panel_header, {
|
|
36
|
+
ref: "headerEl",
|
|
36
37
|
type: "day",
|
|
37
38
|
date: _ctx.preview,
|
|
38
39
|
disabled: _ctx.panelBtnDisabled,
|
|
@@ -41,7 +42,7 @@ export function render(_ctx, _cache) {
|
|
|
41
42
|
}, null, 8
|
|
42
43
|
/* PROPS */
|
|
43
44
|
, ["date", "disabled", "onCheckPanel", "onCheckDate"]), _createVNode(_Transition, {
|
|
44
|
-
name: _ctx.reverse ? '
|
|
45
|
+
name: "var-date-picker" + (_ctx.reverse ? '-reverse' : '') + "-translatex"
|
|
45
46
|
}, {
|
|
46
47
|
default: _withCtx(() => [(_openBlock(), _createElementBlock("div", {
|
|
47
48
|
key: _ctx.panelKey
|
|
@@ -125,6 +126,7 @@ export default defineComponent({
|
|
|
125
126
|
var days = ref([]);
|
|
126
127
|
var reverse = ref(false);
|
|
127
128
|
var panelKey = ref(0);
|
|
129
|
+
var headerEl = ref(null);
|
|
128
130
|
var panelBtnDisabled = reactive({
|
|
129
131
|
left: false,
|
|
130
132
|
right: false
|
|
@@ -308,6 +310,11 @@ export default defineComponent({
|
|
|
308
310
|
|
|
309
311
|
var chooseDay = day => {
|
|
310
312
|
emit('choose-day', day);
|
|
313
|
+
}; // expose for internal
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
var forwardRef = checkType => {
|
|
317
|
+
headerEl.value.checkDate(checkType);
|
|
311
318
|
};
|
|
312
319
|
|
|
313
320
|
onMounted(() => {
|
|
@@ -321,9 +328,11 @@ export default defineComponent({
|
|
|
321
328
|
return {
|
|
322
329
|
days,
|
|
323
330
|
reverse,
|
|
331
|
+
headerEl,
|
|
324
332
|
panelKey,
|
|
325
333
|
sortWeekList,
|
|
326
334
|
panelBtnDisabled,
|
|
335
|
+
forwardRef,
|
|
327
336
|
filterDay,
|
|
328
337
|
getDayAbbr,
|
|
329
338
|
checkDate,
|
|
@@ -27,6 +27,7 @@ export function render(_ctx, _cache) {
|
|
|
27
27
|
var _component_var_button = _resolveComponent("var-button");
|
|
28
28
|
|
|
29
29
|
return _openBlock(), _createElementBlock("div", _hoisted_1, [_createElementVNode("div", _hoisted_2, [_createVNode(_component_panel_header, {
|
|
30
|
+
ref: "headerEl",
|
|
30
31
|
type: "month",
|
|
31
32
|
date: _ctx.preview,
|
|
32
33
|
disabled: _ctx.panelBtnDisabled,
|
|
@@ -35,7 +36,7 @@ export function render(_ctx, _cache) {
|
|
|
35
36
|
}, null, 8
|
|
36
37
|
/* PROPS */
|
|
37
38
|
, ["date", "disabled", "onCheckPanel", "onCheckDate"]), _createVNode(_Transition, {
|
|
38
|
-
name: _ctx.reverse ? '
|
|
39
|
+
name: "var-date-picker" + (_ctx.reverse ? '-reverse' : '') + "-translatex"
|
|
39
40
|
}, {
|
|
40
41
|
default: _withCtx(() => [(_openBlock(), _createElementBlock("ul", {
|
|
41
42
|
key: _ctx.panelKey
|
|
@@ -107,6 +108,7 @@ export default defineComponent({
|
|
|
107
108
|
var [currentYear, currentMonth] = props.current.split('-');
|
|
108
109
|
var reverse = ref(false);
|
|
109
110
|
var panelKey = ref(0);
|
|
111
|
+
var headerEl = ref(null);
|
|
110
112
|
var panelBtnDisabled = reactive({
|
|
111
113
|
left: false,
|
|
112
114
|
right: false
|
|
@@ -236,6 +238,11 @@ export default defineComponent({
|
|
|
236
238
|
reverse.value = checkType === 'prev';
|
|
237
239
|
panelKey.value += checkType === 'prev' ? -1 : 1;
|
|
238
240
|
emit('check-preview', 'year', checkType);
|
|
241
|
+
}; // expose for internal
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
var forwardRef = checkType => {
|
|
245
|
+
headerEl.value.checkDate(checkType);
|
|
239
246
|
};
|
|
240
247
|
|
|
241
248
|
watch(() => props.preview.previewYear, year => {
|
|
@@ -253,9 +260,11 @@ export default defineComponent({
|
|
|
253
260
|
return {
|
|
254
261
|
pack,
|
|
255
262
|
MONTH_LIST,
|
|
263
|
+
headerEl,
|
|
256
264
|
reverse,
|
|
257
265
|
panelKey,
|
|
258
266
|
panelBtnDisabled,
|
|
267
|
+
forwardRef,
|
|
259
268
|
buttonProps,
|
|
260
269
|
getMonthAbbr,
|
|
261
270
|
chooseMonth,
|
|
@@ -36,7 +36,7 @@ export function render(_ctx, _cache) {
|
|
|
36
36
|
class: "var-picker-header__value",
|
|
37
37
|
onClick: _cache[1] || (_cache[1] = $event => _ctx.$emit('check-panel'))
|
|
38
38
|
}, [_createVNode(_Transition, {
|
|
39
|
-
name: _ctx.reverse ? '
|
|
39
|
+
name: "var-date-picker" + (_ctx.reverse ? '-reverse' : '') + "-translatex"
|
|
40
40
|
}, {
|
|
41
41
|
default: _withCtx(() => [(_openBlock(), _createElementBlock("div", {
|
|
42
42
|
key: _ctx.showDate
|
|
@@ -113,6 +113,7 @@ export default defineComponent({
|
|
|
113
113
|
});
|
|
114
114
|
|
|
115
115
|
var checkDate = checkType => {
|
|
116
|
+
if (checkType === 'prev' && props.disabled.left || checkType === 'next' && props.disabled.right) return;
|
|
116
117
|
emit('check-date', checkType);
|
|
117
118
|
reverse.value = checkType === 'prev';
|
|
118
119
|
forwardOrBackNum.value += checkType === 'prev' ? -1 : 1;
|
|
@@ -7,6 +7,7 @@ import { props } from './props';
|
|
|
7
7
|
import { toNumber } from '../utils/shared';
|
|
8
8
|
var DISTANCE_OFFSET = 12;
|
|
9
9
|
var EVENT_DELAY = 200;
|
|
10
|
+
var TAP_DELAY = 350;
|
|
10
11
|
var ANIMATION_DURATION = 200;
|
|
11
12
|
import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
|
|
12
13
|
|
|
@@ -17,6 +18,9 @@ var _hoisted_2 = {
|
|
|
17
18
|
key: 0,
|
|
18
19
|
class: "var-image-preview__indicators"
|
|
19
20
|
};
|
|
21
|
+
var _hoisted_3 = {
|
|
22
|
+
class: "var-image-preview__extra"
|
|
23
|
+
};
|
|
20
24
|
export function render(_ctx, _cache) {
|
|
21
25
|
var _component_var_swipe_item = _resolveComponent("var-swipe-item");
|
|
22
26
|
|
|
@@ -115,7 +119,7 @@ export function render(_ctx, _cache) {
|
|
|
115
119
|
onClick: _ctx.close
|
|
116
120
|
}, null, 8
|
|
117
121
|
/* PROPS */
|
|
118
|
-
, ["onClick"])) : _createCommentVNode("v-if", true)])]),
|
|
122
|
+
, ["onClick"])) : _createCommentVNode("v-if", true)]), _createElementVNode("div", _hoisted_3, [_renderSlot(_ctx.$slots, "extra")])]),
|
|
119
123
|
_: 3
|
|
120
124
|
/* FORWARDED */
|
|
121
125
|
|
|
@@ -203,11 +207,11 @@ export default defineComponent({
|
|
|
203
207
|
};
|
|
204
208
|
|
|
205
209
|
var isTapTouch = target => {
|
|
206
|
-
if (!startTouch || !prevTouch) {
|
|
210
|
+
if (!target || !startTouch || !prevTouch) {
|
|
207
211
|
return false;
|
|
208
212
|
}
|
|
209
213
|
|
|
210
|
-
return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET && (target === startTouch.target || target.parentNode === startTouch.target);
|
|
214
|
+
return getDistance(startTouch, prevTouch) <= DISTANCE_OFFSET && Date.now() - prevTouch.timestamp < TAP_DELAY && (target === startTouch.target || target.parentNode === startTouch.target);
|
|
211
215
|
};
|
|
212
216
|
|
|
213
217
|
var handleTouchend = event => {
|
|
@@ -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;
|
package/es/rate/Rate.js
CHANGED
|
@@ -33,13 +33,14 @@ export function render(_ctx, _cache) {
|
|
|
33
33
|
onClick: $event => _ctx.handleClick(val, $event)
|
|
34
34
|
}, [_createVNode(_component_var_icon, {
|
|
35
35
|
transition: 0,
|
|
36
|
+
namespace: _ctx.namespace,
|
|
36
37
|
name: _ctx.getIconName(val),
|
|
37
38
|
style: _normalizeStyle({
|
|
38
39
|
fontSize: _ctx.toSizeUnit(_ctx.size)
|
|
39
40
|
})
|
|
40
41
|
}, null, 8
|
|
41
42
|
/* PROPS */
|
|
42
|
-
, ["name", "style"])], 14
|
|
43
|
+
, ["namespace", "name", "style"])], 14
|
|
43
44
|
/* CLASS, STYLE, PROPS */
|
|
44
45
|
, _hoisted_3)), [[_directive_ripple, {
|
|
45
46
|
disabled: _ctx.formReadonly || _ctx.readonly || _ctx.formDisabled || _ctx.disabled || !_ctx.ripple
|