@varlet/ui 1.26.5 → 1.26.8

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.
Files changed (48) hide show
  1. package/README.en-US.md +14 -15
  2. package/README.md +19 -18
  3. package/es/back-top/BackTop.js +12 -7
  4. package/es/cell/cell.css +1 -1
  5. package/es/cell/cell.less +3 -0
  6. package/es/collapse-item/collapseItem.css +1 -1
  7. package/es/collapse-item/collapseItem.less +2 -2
  8. package/es/date-picker/DatePicker.js +5 -2
  9. package/es/date-picker/date-picker.css +1 -1
  10. package/es/date-picker/date-picker.less +10 -0
  11. package/es/date-picker/src/day-picker-panel.js +8 -4
  12. package/es/date-picker/src/month-picker-panel.js +8 -4
  13. package/es/index-bar/IndexBar.js +8 -14
  14. package/es/ripple/index.js +5 -0
  15. package/es/select/Select.js +3 -1
  16. package/es/select/props.js +4 -0
  17. package/es/snackbar/style/index.js +1 -1
  18. package/es/snackbar/style/less.js +1 -1
  19. package/es/style.css +1 -1
  20. package/es/uploader/Uploader.js +14 -1
  21. package/es/uploader/props.js +4 -0
  22. package/es/utils/elements.js +4 -0
  23. package/es/varlet.esm.js +415 -375
  24. package/highlight/attributes.json +8 -0
  25. package/highlight/tags.json +2 -0
  26. package/highlight/web-types.json +19 -1
  27. package/lib/back-top/BackTop.js +11 -6
  28. package/lib/cell/cell.css +1 -1
  29. package/lib/cell/cell.less +3 -0
  30. package/lib/collapse-item/collapseItem.css +1 -1
  31. package/lib/collapse-item/collapseItem.less +2 -2
  32. package/lib/date-picker/DatePicker.js +6 -2
  33. package/lib/date-picker/date-picker.css +1 -1
  34. package/lib/date-picker/date-picker.less +10 -0
  35. package/lib/date-picker/src/day-picker-panel.js +8 -4
  36. package/lib/date-picker/src/month-picker-panel.js +8 -4
  37. package/lib/index-bar/IndexBar.js +7 -13
  38. package/lib/ripple/index.js +6 -0
  39. package/lib/select/Select.js +3 -1
  40. package/lib/select/props.js +4 -0
  41. package/lib/style.css +1 -1
  42. package/lib/uploader/Uploader.js +14 -1
  43. package/lib/uploader/props.js +4 -0
  44. package/lib/utils/elements.js +6 -0
  45. package/package.json +5 -5
  46. package/types/select.d.ts +1 -0
  47. package/types/uploader.d.ts +1 -0
  48. package/umd/varlet.js +4 -4
@@ -1255,6 +1255,10 @@
1255
1255
  "type": "boolean",
1256
1256
  "description": "是否开启多选 默认值:false"
1257
1257
  },
1258
+ "var-select/offset-y": {
1259
+ "type": "string | number",
1260
+ "description": "下拉菜单的垂直偏移量 默认值:true"
1261
+ },
1258
1262
  "var-select/chip": {
1259
1263
  "type": "boolean",
1260
1264
  "description": "是否使用纸片风格(仅限多选) 默认值:false"
@@ -1747,6 +1751,10 @@
1747
1751
  "type": "boolean",
1748
1752
  "description": "是否开启水波纹 默认值:true"
1749
1753
  },
1754
+ "var-uploader/hide-list": {
1755
+ "type": "boolean",
1756
+ "description": "是否隐藏文件列表 默认值:false"
1757
+ },
1750
1758
  "var-uploader/validate-trigger": {
1751
1759
  "type": "ValidateTriggers[]",
1752
1760
  "description": "触发验证的时机, 可选值为 `onChange` `onRemove` 默认值:['onChange', 'onRemove']"
@@ -479,6 +479,7 @@
479
479
  "v-model",
480
480
  "placeholder",
481
481
  "multiple",
482
+ "offset-y",
482
483
  "chip",
483
484
  "line",
484
485
  "hint",
@@ -679,6 +680,7 @@
679
680
  "maxsize",
680
681
  "previewed",
681
682
  "ripple",
683
+ "hide-list",
682
684
  "validate-trigger",
683
685
  "rules"
684
686
  ]
@@ -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",
4
+ "version": "1.26.7",
5
5
  "name": "VARLET",
6
6
  "contributions": {
7
7
  "html": {
@@ -3739,6 +3739,15 @@
3739
3739
  "kind": "expression"
3740
3740
  }
3741
3741
  },
3742
+ {
3743
+ "name": "offset-y",
3744
+ "description": "下拉菜单的垂直偏移量",
3745
+ "default": "true",
3746
+ "value": {
3747
+ "type": "string | number",
3748
+ "kind": "expression"
3749
+ }
3750
+ },
3742
3751
  {
3743
3752
  "name": "chip",
3744
3753
  "description": "是否使用纸片风格(仅限多选)",
@@ -5172,6 +5181,15 @@
5172
5181
  "kind": "expression"
5173
5182
  }
5174
5183
  },
5184
+ {
5185
+ "name": "hide-list",
5186
+ "description": "是否隐藏文件列表",
5187
+ "default": "false",
5188
+ "value": {
5189
+ "type": "boolean",
5190
+ "kind": "expression"
5191
+ }
5192
+ },
5175
5193
  {
5176
5194
  "name": "validate-trigger",
5177
5195
  "description": "触发验证的时机, 可选值为 `onChange` `onRemove`",
@@ -23,7 +23,10 @@ function render(_ctx, _cache) {
23
23
 
24
24
  var _component_var_button = (0, _vue.resolveComponent)("var-button");
25
25
 
26
- return (0, _vue.openBlock)(), (0, _vue.createElementBlock)("div", {
26
+ return (0, _vue.openBlock)(), (0, _vue.createBlock)(_vue.Teleport, {
27
+ to: "body",
28
+ disabled: _ctx.disabled
29
+ }, [(0, _vue.createElementVNode)("div", {
27
30
  class: (0, _vue.normalizeClass)(["var-back-top", [_ctx.show ? 'var-back-top--active' : null]]),
28
31
  ref: "backTopEl",
29
32
  style: (0, _vue.normalizeStyle)({
@@ -46,7 +49,9 @@ function render(_ctx, _cache) {
46
49
 
47
50
  })])], 6
48
51
  /* CLASS, STYLE */
49
- );
52
+ )], 8
53
+ /* PROPS */
54
+ , ["disabled"]);
50
55
  }
51
56
 
52
57
  var _default = (0, _vue.defineComponent)({
@@ -61,6 +66,7 @@ var _default = (0, _vue.defineComponent)({
61
66
  setup(props) {
62
67
  var show = (0, _vue.ref)(false);
63
68
  var backTopEl = (0, _vue.ref)(null);
69
+ var disabled = (0, _vue.ref)(true);
64
70
  var target;
65
71
 
66
72
  var click = event => {
@@ -94,21 +100,20 @@ var _default = (0, _vue.defineComponent)({
94
100
  return el;
95
101
  }
96
102
 
97
- if ((0, _shared.isObject)(target)) {
98
- return target;
99
- }
100
-
103
+ if ((0, _shared.isObject)(target)) return target;
101
104
  throw Error('[Varlet] BackTop: type of prop "target" should be a selector or an element object');
102
105
  };
103
106
 
104
107
  (0, _vue.onMounted)(() => {
105
108
  target = props.target ? getTarget() : (0, _elements.getParentScroller)(backTopEl.value);
106
109
  target.addEventListener('scroll', throttleScroll);
110
+ disabled.value = false;
107
111
  });
108
112
  (0, _vue.onBeforeUnmount)(() => {
109
113
  target.removeEventListener('scroll', throttleScroll);
110
114
  });
111
115
  return {
116
+ disabled,
112
117
  show,
113
118
  backTopEl,
114
119
  toSizeUnit: _elements.toSizeUnit,
package/lib/cell/cell.css CHANGED
@@ -1 +1 @@
1
- :root { --cell-font-size: var(--font-size-md); --cell-desc-font-size: var(--font-size-sm); --cell-desc-color: rgba(0, 0, 0, 0.6); --cell-padding: 10px 12px; --cell-min-height: 40px; --cell-border-color: #bcc2cb; --cell-border-left: 12px; --cell-border-right: 12px; --cell-icon-right: 8px; --cell-extra-left: 8px;}.var-cell { align-items: center; display: flex; min-height: var(--cell-min-height); outline: none; padding: var(--cell-padding); position: relative; box-sizing: border-box; font-size: var(--cell-font-size);}.var-cell--border::after { position: absolute; box-sizing: border-box; content: ' '; pointer-events: none; right: var(--cell-border-right); bottom: 0; left: var(--cell-border-left); border-bottom: 1px solid var(--cell-border-color); transform: scaleY(0.5);}.var-cell__icon { margin-right: var(--cell-icon-right); flex: 0;}.var-cell__content { flex: 1; overflow: hidden;}.var-cell__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}.var-cell__desc { font-size: var(--cell-desc-font-size); color: var(--cell-desc-color);}.var-cell__extra { flex: 0; margin-left: var(--cell-extra-left);}
1
+ :root { --cell-color: var(--color-text); --cell-font-size: var(--font-size-md); --cell-desc-font-size: var(--font-size-sm); --cell-desc-color: rgba(0, 0, 0, 0.6); --cell-padding: 10px 12px; --cell-min-height: 40px; --cell-border-color: #bcc2cb; --cell-border-left: 12px; --cell-border-right: 12px; --cell-icon-right: 8px; --cell-extra-left: 8px;}.var-cell { align-items: center; display: flex; min-height: var(--cell-min-height); outline: none; padding: var(--cell-padding); position: relative; box-sizing: border-box; font-size: var(--cell-font-size); color: var(--cell-color);}.var-cell--border::after { position: absolute; box-sizing: border-box; content: ' '; pointer-events: none; right: var(--cell-border-right); bottom: 0; left: var(--cell-border-left); border-bottom: 1px solid var(--cell-border-color); transform: scaleY(0.5);}.var-cell__icon { margin-right: var(--cell-icon-right); flex: 0;}.var-cell__content { flex: 1; overflow: hidden;}.var-cell__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}.var-cell__desc { font-size: var(--cell-desc-font-size); color: var(--cell-desc-color);}.var-cell__extra { flex: 0; margin-left: var(--cell-extra-left);}
@@ -1,3 +1,4 @@
1
+ @cell-color: var(--color-text);
1
2
  @cell-font-size: var(--font-size-md);
2
3
  @cell-desc-font-size: var(--font-size-sm);
3
4
  @cell-desc-color: rgba(0, 0, 0, 0.6);
@@ -10,6 +11,7 @@
10
11
  @cell-extra-left: 8px;
11
12
 
12
13
  :root {
14
+ --cell-color: @cell-color;
13
15
  --cell-font-size: @cell-font-size;
14
16
  --cell-desc-font-size: @cell-desc-font-size;
15
17
  --cell-desc-color: @cell-desc-color;
@@ -31,6 +33,7 @@
31
33
  position: relative;
32
34
  box-sizing: border-box;
33
35
  font-size: var(--cell-font-size);
36
+ color: var(--cell-color);
34
37
 
35
38
  &--border {
36
39
  &::after {
@@ -1 +1 @@
1
- :root { --collapse-background: #fff; --collapse-text-color: #232222; --collapse-header-font-size: var(--font-size-lg); --collapse-header-padding: 10px 16px; --collapse-content-font-size: var(--font-size-md); --collapse-content-padding: 0 16px 10px; --collapse-item-margin-top: 16px; --collapse-disable-color: #bdbdbd; --collapse-border-top: thin solid rgba(0, 0, 0, 0.12);}.var-collapse-item { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); box-sizing: border-box; position: relative; margin-top: 0; background: var(--collapse-background); color: var(--collapse-text-color); transition: margin-top 0.25s, background-color 0.25s;}.var-collapse-item::before { bottom: 0; content: ''; left: 0; position: absolute; right: 0; top: 0; z-index: -1; box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);}.var-collapse-item:not(:first-child)::after { border-top: var(--collapse-border-top); content: ''; left: 0; position: absolute; right: 0; top: 0;}.var-collapse-item-header { align-items: center; display: flex; font-size: var(--collapse-header-font-size); outline: none; padding: var(--collapse-header-padding); justify-content: space-between; position: relative;}.var-collapse-item-header__title { transition: color 0.25s;}.var-collapse-item-header__icon { transform: rotate(0deg); opacity: 1;}.var-collapse-item-header__disable { opacity: 0;}.var-collapse-item-header__open { transform: rotate(-180deg);}.var-collapse-item-content { display: flex; font-size: var(--collapse-content-font-size); overflow: hidden; transition: all 0.25s;}.var-collapse-item__wrap { padding: var(--collapse-content-padding); word-break: break-all; flex: 1;}.var-collapse-item__active + .var-collapse-item,.var-collapse-item__active:not(:first-child) { margin-top: var(--collapse-item-margin-top);}.var-collapse-item__active + .var-collapse-item::after,.var-collapse-item__active:not(:first-child)::after { border-top: none;}.var-collapse-item__disable { color: var(--collapse-disable-color); cursor: not-allowed;}
1
+ :root { --collapse-background: #fff; --collapse-text-color: #232222; --collapse-header-font-size: var(--font-size-lg); --collapse-header-padding: 10px 12px; --collapse-content-font-size: var(--font-size-md); --collapse-content-padding: 0 12px 10px; --collapse-item-margin-top: 16px; --collapse-disable-color: #bdbdbd; --collapse-border-top: thin solid rgba(0, 0, 0, 0.12);}.var-collapse-item { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); box-sizing: border-box; position: relative; margin-top: 0; background: var(--collapse-background); color: var(--collapse-text-color); transition: margin-top 0.25s, background-color 0.25s;}.var-collapse-item::before { bottom: 0; content: ''; left: 0; position: absolute; right: 0; top: 0; z-index: -1; box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);}.var-collapse-item:not(:first-child)::after { border-top: var(--collapse-border-top); content: ''; left: 0; position: absolute; right: 0; top: 0;}.var-collapse-item-header { align-items: center; display: flex; font-size: var(--collapse-header-font-size); outline: none; padding: var(--collapse-header-padding); justify-content: space-between; position: relative;}.var-collapse-item-header__title { transition: color 0.25s;}.var-collapse-item-header__icon { transform: rotate(0deg); opacity: 1;}.var-collapse-item-header__disable { opacity: 0;}.var-collapse-item-header__open { transform: rotate(-180deg);}.var-collapse-item-content { display: flex; font-size: var(--collapse-content-font-size); overflow: hidden; transition: all 0.25s;}.var-collapse-item__wrap { padding: var(--collapse-content-padding); word-break: break-all; flex: 1;}.var-collapse-item__active + .var-collapse-item,.var-collapse-item__active:not(:first-child) { margin-top: var(--collapse-item-margin-top);}.var-collapse-item__active + .var-collapse-item::after,.var-collapse-item__active:not(:first-child)::after { border-top: none;}.var-collapse-item__disable { color: var(--collapse-disable-color); cursor: not-allowed;}
@@ -1,9 +1,9 @@
1
1
  @collapse-background: #fff;
2
2
  @collapse-text-color: #232222;
3
3
  @collapse-header-font-size: var(--font-size-lg);
4
- @collapse-header-padding: 10px 16px;
4
+ @collapse-header-padding: 10px 12px;
5
5
  @collapse-content-font-size: var(--font-size-md);
6
- @collapse-content-padding: 0 16px 10px;
6
+ @collapse-content-padding: 0 12px 10px;
7
7
  @collapse-item-margin-top: 16px;
8
8
  @collapse-disable-color: #bdbdbd;
9
9
  @collapse-border-top: thin solid rgba(0, 0, 0, 0.12);
@@ -18,6 +18,8 @@ var _props = require("./props");
18
18
 
19
19
  var _shared = require("../utils/shared");
20
20
 
21
+ var _elements = require("../utils/elements");
22
+
21
23
  var _locale = require("../locale");
22
24
 
23
25
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -324,8 +326,10 @@ var _default = (0, _vue.defineComponent)({
324
326
  var handleTouchend = () => {
325
327
  if (isUntouchable.value || touchDirection !== 'x') return;
326
328
  var componentRef = getPanelType.value === 'month' ? monthPanelEl : dayPanelEl;
327
- componentRef.value.forwardRef(checkType);
328
- resetState();
329
+ (0, _elements.nextTickFrame)(() => {
330
+ componentRef.value.forwardRef(checkType);
331
+ resetState();
332
+ });
329
333
  };
330
334
 
331
335
  var updateRange = (date, type) => {
@@ -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; 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%);}
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-month-picker__button-disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.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 .var-day-picker__button-disabled { color: var(--color-text-disabled) !important; cursor: not-allowed;}.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%);}
@@ -197,6 +197,11 @@
197
197
  &__button[var-date-picker-color-cover='true'] {
198
198
  color: var(--date-picker-main-color);
199
199
  }
200
+
201
+ &__button-disabled {
202
+ color: var(--color-text-disabled) !important;
203
+ cursor: not-allowed;
204
+ }
200
205
  }
201
206
 
202
207
  .var-year-picker {
@@ -259,6 +264,11 @@
259
264
  &__button[var-date-picker-color-cover='true'] {
260
265
  color: var(--date-picker-main-color);
261
266
  }
267
+
268
+ &__button-disabled {
269
+ color: var(--color-text-disabled) !important;
270
+ cursor: not-allowed;
271
+ }
262
272
  }
263
273
 
264
274
  &-translatey-enter-from {
@@ -84,7 +84,7 @@ function render(_ctx, _cache) {
84
84
  round: "",
85
85
  ripple: false
86
86
  }, _extends({}, _ctx.buttonProps(day)), {
87
- onClick: $event => _ctx.chooseDay(day)
87
+ onClick: event => _ctx.chooseDay(day, event)
88
88
  }), {
89
89
  default: (0, _vue.withCtx)(() => [(0, _vue.createTextVNode)((0, _vue.toDisplayString)(_ctx.filterDay(day)), 1
90
90
  /* TEXT */
@@ -314,11 +314,13 @@ var _default = (0, _vue.defineComponent)({
314
314
 
315
315
  var isCover = textColorOrCover().startsWith('var-date-picker');
316
316
  return {
317
- disabled,
318
317
  text: computeText(),
319
318
  outline: computeOutline(),
320
319
  textColor: isCover ? '' : textColorOrCover(),
321
- 'var-date-picker-color-cover': isCover
320
+ 'var-date-picker-color-cover': isCover,
321
+ class: {
322
+ 'var-day-picker__button-disabled': disabled
323
+ }
322
324
  };
323
325
  };
324
326
 
@@ -328,7 +330,9 @@ var _default = (0, _vue.defineComponent)({
328
330
  emit('check-preview', 'month', checkType);
329
331
  };
330
332
 
331
- var chooseDay = day => {
333
+ var chooseDay = (day, event) => {
334
+ var buttonEl = event.currentTarget;
335
+ if (buttonEl.classList.contains('var-day-picker__button-disabled')) return;
332
336
  emit('choose-day', day);
333
337
  }; // expose for internal
334
338
 
@@ -67,7 +67,7 @@ function render(_ctx, _cache) {
67
67
  "var-month-picker-cover": "",
68
68
  ripple: false
69
69
  }, _extends({}, _ctx.buttonProps(month.index)), {
70
- onClick: $event => _ctx.chooseMonth(month)
70
+ onClick: event => _ctx.chooseMonth(month, event)
71
71
  }), {
72
72
  default: (0, _vue.withCtx)(() => [(0, _vue.createTextVNode)((0, _vue.toDisplayString)(_ctx.getMonthAbbr(month.index)), 1
73
73
  /* TEXT */
@@ -240,16 +240,20 @@ var _default = (0, _vue.defineComponent)({
240
240
 
241
241
  var isCover = textColorOrCover().startsWith('var-date-picker');
242
242
  return {
243
- disabled,
244
243
  outline: computeOutline(),
245
244
  text: computeText(),
246
245
  color: !computeText() ? color : '',
247
246
  textColor: isCover ? '' : textColorOrCover(),
248
- 'var-date-picker-color-cover': isCover
247
+ 'var-date-picker-color-cover': isCover,
248
+ class: {
249
+ 'var-month-picker__button-disabled': disabled
250
+ }
249
251
  };
250
252
  };
251
253
 
252
- var chooseMonth = month => {
254
+ var chooseMonth = (month, event) => {
255
+ var buttonEl = event.currentTarget;
256
+ if (buttonEl.classList.contains('var-month-picker__button-disabled')) return;
253
257
  emit('choose-month', month);
254
258
  };
255
259
 
@@ -66,7 +66,6 @@ var _default = (0, _vue.defineComponent)({
66
66
  indexAnchors,
67
67
  bindIndexAnchors
68
68
  } = (0, _provide.useIndexAnchors)();
69
- var scrollEl = (0, _vue.ref)(null);
70
69
  var clickedName = (0, _vue.ref)('');
71
70
  var scroller = (0, _vue.ref)(null);
72
71
  var barEl = (0, _vue.ref)(null);
@@ -93,10 +92,8 @@ var _default = (0, _vue.defineComponent)({
93
92
  };
94
93
 
95
94
  var handleScroll = () => {
96
- var {
97
- scrollTop,
98
- scrollHeight
99
- } = scrollEl.value;
95
+ var scrollTop = (0, _elements.getScrollTop)(scroller.value);
96
+ var scrollHeight = scroller.value === window ? document.body.scrollHeight : scroller.value.scrollHeight;
100
97
  var {
101
98
  offsetTop
102
99
  } = barEl.value;
@@ -131,10 +128,10 @@ var _default = (0, _vue.defineComponent)({
131
128
  });
132
129
  if (!indexAnchor) return;
133
130
  var top = indexAnchor.ownTop.value - stickyOffsetTop.value + offsetTop;
134
- var left = (0, _elements.getScrollLeft)(scrollEl.value);
131
+ var left = (0, _elements.getScrollLeft)(scroller.value);
135
132
  clickedName.value = anchorName;
136
133
  emitEvent(anchorName);
137
- yield (0, _elements.scrollTo)(scrollEl.value, {
134
+ yield (0, _elements.scrollTo)(scroller.value, {
138
135
  left,
139
136
  top,
140
137
  animation: _shared.easeInOutCubic,
@@ -167,17 +164,14 @@ var _default = (0, _vue.defineComponent)({
167
164
  });
168
165
  }));
169
166
  (0, _vue.onMounted)( /*#__PURE__*/_asyncToGenerator(function* () {
170
- var _scroller$value;
171
-
172
167
  yield (0, _elements.doubleRaf)();
173
168
  scroller.value = (0, _elements.getParentScroller)(barEl.value);
174
- scrollEl.value = scroller.value === window ? scroller.value.document.documentElement : scroller.value;
175
- (_scroller$value = scroller.value) == null ? void 0 : _scroller$value.addEventListener('scroll', handleScroll);
169
+ scroller.value.addEventListener('scroll', handleScroll);
176
170
  }));
177
171
  (0, _vue.onBeforeUnmount)(() => {
178
- var _scroller$value2;
172
+ var _scroller$value;
179
173
 
180
- (_scroller$value2 = scroller.value) == null ? void 0 : _scroller$value2.removeEventListener('scroll', handleScroll);
174
+ (_scroller$value = scroller.value) == null ? void 0 : _scroller$value.removeEventListener('scroll', handleScroll);
181
175
  });
182
176
  return {
183
177
  barEl,
@@ -9,6 +9,8 @@ var _context = _interopRequireDefault(require("../context"));
9
9
 
10
10
 
11
11
 
12
+ var _elements = require("../utils/elements");
13
+
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
 
14
16
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -118,6 +120,10 @@ function removeRipple() {
118
120
  function forbidRippleTask() {
119
121
  var _ripple = this._ripple;
120
122
 
123
+ if (!(0, _elements.supportTouch)()) {
124
+ return;
125
+ }
126
+
121
127
  if (!_ripple.touchmoveForbid) {
122
128
  return;
123
129
  }
@@ -317,7 +317,7 @@ var _default = (0, _vue.defineComponent)({
317
317
  }
318
318
 
319
319
  wrapWidth.value = getWrapWidth();
320
- offsetY.value = getOffsetY();
320
+ offsetY.value = getOffsetY() + (0, _elements.toPxNum)(props.offsetY);
321
321
  isFocus.value = true;
322
322
  onFocus == null ? void 0 : onFocus();
323
323
  validateWithTrigger('onFocus');
@@ -448,6 +448,8 @@ var _default = (0, _vue.defineComponent)({
448
448
 
449
449
 
450
450
  var focus = () => {
451
+ wrapWidth.value = getWrapWidth();
452
+ offsetY.value = getOffsetY() + (0, _elements.toPxNum)(props.offsetY);
451
453
  isFocus.value = true;
452
454
  }; // expose
453
455
 
@@ -19,6 +19,10 @@ var props = {
19
19
  type: Boolean,
20
20
  default: false
21
21
  },
22
+ offsetY: {
23
+ type: [String, Number],
24
+ default: 0
25
+ },
22
26
  chip: {
23
27
  type: Boolean,
24
28
  default: false