@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
package/README.en-US.md CHANGED
@@ -9,10 +9,10 @@
9
9
  </p>
10
10
  <p>
11
11
  <img src="https://img.shields.io/npm/v/@varlet/ui?style=flat-square" alt="version">
12
- <img src="https://img.shields.io/github/stars/haoziqaq/varlet" alt="ci">
12
+ <img src="https://img.shields.io/github/stars/varletjs/varlet" alt="stars">
13
13
  <img src="https://img.shields.io/badge/vue-v3.2.0%2B-%23407fbc" alt="vue">
14
14
  <img src="https://img.shields.io/npm/l/@varlet/ui.svg" alt="licence">
15
- <img src="https://img.shields.io/codecov/c/github/haoziqaq/varlet" alt="coverage">
15
+ <img src="https://img.shields.io/codecov/c/github/varletjs/varlet" alt="coverage">
16
16
  <img src="https://img.badgesize.io/https://unpkg.com/@varlet/ui/umd/varlet.js?compression=gzip&label=gzip" alt="gzip" />
17
17
  <img src="https://github.com/varletjs/varlet/workflows/CI/badge.svg" alt="ci">
18
18
  </p>
@@ -26,17 +26,17 @@ Varlet is a Material design mobile component library developed based on `Vue3`,
26
26
 
27
27
 
28
28
  ### Features
29
- 1. Provide 50 high quality general purpose components
30
- 2. Components are very lightweight
31
- 3. Developed by Chinese, complete Chinese and English documentation and logistics support
32
- 4. Support on-demand introduction
33
- 5. Support theme customization
34
- 6. Support internationalization
35
- 7. Support WebStorm, VS Code component syntax highlighting
36
- 8. Support the SSR
37
- 9. Support the Typescript
38
- 10. Make sure more than 90 percent unit test coverage, providing stability assurance
39
- 11. Support dark mode
29
+ - 🚀 Provide 50 high quality general purpose components
30
+ - 🚀 Components are very lightweight
31
+ - 💪 Developed by Chinese, complete Chinese and English documentation and logistics support
32
+ - 🛠️ Support on-demand introduction
33
+ - 🛠️ Support theme customization
34
+ - 🌍 Support internationalization
35
+ - 💡 Support WebStorm, VS Code component syntax highlighting
36
+ - 💪 Support the SSR
37
+ - 💡 Support the Typescript
38
+ - 💪 Make sure more than 90 percent unit test coverage, providing stability assurance
39
+ - 🛠️ Support dark mode
40
40
 
41
41
  ### Install
42
42
 
@@ -56,7 +56,6 @@ Varlet is a Material design mobile component library developed based on `Vue3`,
56
56
  ```
57
57
 
58
58
  ### Webpack / Vite
59
-
60
59
  ```shell
61
60
  # Install with npm or yarn or pnpm
62
61
 
@@ -83,4 +82,4 @@ createApp(App).use(Varlet).mount('#app')
83
82
 
84
83
  <a href="https://github.com/varletjs/varlet/graphs/contributors">
85
84
  <img src="https://contrib.rocks/image?repo=haoziqaq/varlet" />
86
- </a>
85
+ </a>
package/README.md CHANGED
@@ -3,16 +3,16 @@
3
3
  <img src="https://varlet.gitee.io/varlet-ui/logo.svg" width="150">
4
4
  </a>
5
5
  <h1>VARLET</h1>
6
- <p>基于Vue3的Material design风格移动端组件库</p>
6
+ <p>基于 Vue3 Material design 风格移动端组件库</p>
7
7
  <p>
8
8
  <a href="https://varlet.gitee.io/varlet-ui/">开发文档</a> | <a href="https://github.com/varletjs/varlet/blob/dev/README.en-US.md">English</a>
9
9
  </p>
10
10
  <p>
11
11
  <img src="https://img.shields.io/npm/v/@varlet/ui?style=flat-square" alt="version">
12
- <img src="https://img.shields.io/github/stars/haoziqaq/varlet" alt="ci">
12
+ <img src="https://img.shields.io/github/stars/varletjs/varlet" alt="stars">
13
13
  <img src="https://img.shields.io/badge/vue-v3.2.0%2B-%23407fbc" alt="vue">
14
14
  <img src="https://img.shields.io/npm/l/@varlet/ui.svg" alt="licence">
15
- <img src="https://img.shields.io/codecov/c/github/haoziqaq/varlet" alt="coverage">
15
+ <img src="https://img.shields.io/codecov/c/github/varletjs/varlet" alt="coverage">
16
16
  <img src="https://img.badgesize.io/https://unpkg.com/@varlet/ui/umd/varlet.js?compression=gzip&label=gzip" alt="gzip" />
17
17
  <img src="https://github.com/varletjs/varlet/workflows/CI/badge.svg" alt="ci">
18
18
  </p>
@@ -22,25 +22,25 @@
22
22
 
23
23
  ### 介绍
24
24
 
25
- Varlet是一个基于`Vue3`开发的Material风格移动端组件库,全面拥抱`Vue3`生态,由社区建立起来的组件库团队进行维护。
25
+ Varlet 是一个基于 `Vue3` 开发的 Material 风格移动端组件库,全面拥抱 `Vue3` 生态,由社区建立起来的组件库团队进行维护。
26
26
 
27
27
  ### 特性
28
- 1. 提供50个高质量通用组件
29
- 2. 组件十分轻量
30
- 3. 由国人开发,完善的中英文文档和后勤保障
31
- 4. 支持按需引入
32
- 5. 支持主题定制
33
- 6. 支持国际化
34
- 7. 支持webstorm,vscode组件属性高亮
35
- 8. 支持SSR
36
- 9. 支持Typescript
37
- 10. 确保90%以上单元测试覆盖率,提供稳定性保证
38
- 11. 支持暗黑模式
28
+ - 🚀 提供50个高质量通用组件
29
+ - 🚀 组件十分轻量
30
+ - 💪 由国人开发,完善的中英文文档和后勤保障
31
+ - 🛠️ 支持按需引入
32
+ - 🛠️ 支持主题定制
33
+ - 🌍 支持国际化
34
+ - 💡 支持 webstorm,vscode 组件属性高亮
35
+ - 💪 支持 SSR
36
+ - 💡 支持 Typescript
37
+ - 💪 确保90%以上单元测试覆盖率,提供稳定性保证
38
+ - 🛠️ 支持暗黑模式
39
39
 
40
40
  ### 安装
41
41
 
42
42
  ### CDN
43
- `varlet.js`包含组件库的所有样式和逻辑,引入即可。
43
+ `varlet.js` 包含组件库的所有样式和逻辑,引入即可。
44
44
 
45
45
  ```html
46
46
  <div id="app"></div>
@@ -56,7 +56,7 @@ Varlet是一个基于`Vue3`开发的Material风格移动端组件库,全面拥
56
56
 
57
57
  ### Webpack / Vite
58
58
  ```shell
59
- # 通过npm或yarn或pnpm安装
59
+ # 通过 npm yarn pnpm 安装
60
60
 
61
61
  # npm
62
62
  npm i @varlet/ui -S
@@ -80,5 +80,6 @@ createApp(App).use(Varlet).mount('#app')
80
80
  ### Contributors
81
81
 
82
82
  <a href="https://github.com/varletjs/varlet/graphs/contributors">
83
- <img src="https://contrib.rocks/image?repo=haoziqaq/varlet" />
83
+ <img src="https://contrib.rocks/image?repo=varletjs/varlet" />
84
84
  </a>
85
+
@@ -4,13 +4,16 @@ import VarIcon from '../icon';
4
4
  import { props } from './props';
5
5
  import { isString, easeInOutCubic, throttle, isObject } from '../utils/shared';
6
6
  import { getScrollTop, getScrollLeft, scrollTo, getParentScroller, toPxNum, toSizeUnit } from '../utils/elements';
7
- import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, withModifiers as _withModifiers, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
7
+ import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, withModifiers as _withModifiers, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock } from "vue";
8
8
  export function render(_ctx, _cache) {
9
9
  var _component_var_icon = _resolveComponent("var-icon");
10
10
 
11
11
  var _component_var_button = _resolveComponent("var-button");
12
12
 
13
- return _openBlock(), _createElementBlock("div", {
13
+ return _openBlock(), _createBlock(_Teleport, {
14
+ to: "body",
15
+ disabled: _ctx.disabled
16
+ }, [_createElementVNode("div", {
14
17
  class: _normalizeClass(["var-back-top", [_ctx.show ? 'var-back-top--active' : null]]),
15
18
  ref: "backTopEl",
16
19
  style: _normalizeStyle({
@@ -33,7 +36,9 @@ export function render(_ctx, _cache) {
33
36
 
34
37
  })])], 6
35
38
  /* CLASS, STYLE */
36
- );
39
+ )], 8
40
+ /* PROPS */
41
+ , ["disabled"]);
37
42
  }
38
43
  export default defineComponent({
39
44
  render,
@@ -47,6 +52,7 @@ export default defineComponent({
47
52
  setup(props) {
48
53
  var show = ref(false);
49
54
  var backTopEl = ref(null);
55
+ var disabled = ref(true);
50
56
  var target;
51
57
 
52
58
  var click = event => {
@@ -80,21 +86,20 @@ export default defineComponent({
80
86
  return el;
81
87
  }
82
88
 
83
- if (isObject(target)) {
84
- return target;
85
- }
86
-
89
+ if (isObject(target)) return target;
87
90
  throw Error('[Varlet] BackTop: type of prop "target" should be a selector or an element object');
88
91
  };
89
92
 
90
93
  onMounted(() => {
91
94
  target = props.target ? getTarget() : getParentScroller(backTopEl.value);
92
95
  target.addEventListener('scroll', throttleScroll);
96
+ disabled.value = false;
93
97
  });
94
98
  onBeforeUnmount(() => {
95
99
  target.removeEventListener('scroll', throttleScroll);
96
100
  });
97
101
  return {
102
+ disabled,
98
103
  show,
99
104
  backTopEl,
100
105
  toSizeUnit,
package/es/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);}
package/es/cell/cell.less CHANGED
@@ -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);
@@ -5,6 +5,7 @@ import YearPickerPanel from './src/year-picker-panel.js'
5
5
  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
+ import { nextTickFrame } from '../utils/elements';
8
9
  import { pack } from '../locale';
9
10
  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";
10
11
  export function render(_ctx, _cache) {
@@ -304,8 +305,10 @@ export default defineComponent({
304
305
  var handleTouchend = () => {
305
306
  if (isUntouchable.value || touchDirection !== 'x') return;
306
307
  var componentRef = getPanelType.value === 'month' ? monthPanelEl : dayPanelEl;
307
- componentRef.value.forwardRef(checkType);
308
- resetState();
308
+ nextTickFrame(() => {
309
+ componentRef.value.forwardRef(checkType);
310
+ resetState();
311
+ });
309
312
  };
310
313
 
311
314
  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 {
@@ -66,7 +66,7 @@ export function render(_ctx, _cache) {
66
66
  round: "",
67
67
  ripple: false
68
68
  }, _extends({}, _ctx.buttonProps(day)), {
69
- onClick: $event => _ctx.chooseDay(day)
69
+ onClick: event => _ctx.chooseDay(day, event)
70
70
  }), {
71
71
  default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.filterDay(day)), 1
72
72
  /* TEXT */
@@ -294,11 +294,13 @@ export default defineComponent({
294
294
 
295
295
  var isCover = textColorOrCover().startsWith('var-date-picker');
296
296
  return {
297
- disabled,
298
297
  text: computeText(),
299
298
  outline: computeOutline(),
300
299
  textColor: isCover ? '' : textColorOrCover(),
301
- 'var-date-picker-color-cover': isCover
300
+ 'var-date-picker-color-cover': isCover,
301
+ class: {
302
+ 'var-day-picker__button-disabled': disabled
303
+ }
302
304
  };
303
305
  };
304
306
 
@@ -308,7 +310,9 @@ export default defineComponent({
308
310
  emit('check-preview', 'month', checkType);
309
311
  };
310
312
 
311
- var chooseDay = day => {
313
+ var chooseDay = (day, event) => {
314
+ var buttonEl = event.currentTarget;
315
+ if (buttonEl.classList.contains('var-day-picker__button-disabled')) return;
312
316
  emit('choose-day', day);
313
317
  }; // expose for internal
314
318
 
@@ -49,7 +49,7 @@ export function render(_ctx, _cache) {
49
49
  "var-month-picker-cover": "",
50
50
  ripple: false
51
51
  }, _extends({}, _ctx.buttonProps(month.index)), {
52
- onClick: $event => _ctx.chooseMonth(month)
52
+ onClick: event => _ctx.chooseMonth(month, event)
53
53
  }), {
54
54
  default: _withCtx(() => [_createTextVNode(_toDisplayString(_ctx.getMonthAbbr(month.index)), 1
55
55
  /* TEXT */
@@ -221,16 +221,20 @@ export default defineComponent({
221
221
 
222
222
  var isCover = textColorOrCover().startsWith('var-date-picker');
223
223
  return {
224
- disabled,
225
224
  outline: computeOutline(),
226
225
  text: computeText(),
227
226
  color: !computeText() ? color : '',
228
227
  textColor: isCover ? '' : textColorOrCover(),
229
- 'var-date-picker-color-cover': isCover
228
+ 'var-date-picker-color-cover': isCover,
229
+ class: {
230
+ 'var-month-picker__button-disabled': disabled
231
+ }
230
232
  };
231
233
  };
232
234
 
233
- var chooseMonth = month => {
235
+ var chooseMonth = (month, event) => {
236
+ var buttonEl = event.currentTarget;
237
+ if (buttonEl.classList.contains('var-month-picker__button-disabled')) return;
234
238
  emit('choose-month', month);
235
239
  };
236
240
 
@@ -4,7 +4,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
4
4
 
5
5
  import { computed, defineComponent, ref, watch, onMounted, onBeforeUnmount } from 'vue';
6
6
  import { easeInOutCubic, isPlainObject, toNumber } from '../utils/shared';
7
- import { doubleRaf, getParentScroller, getScrollLeft, nextTickFrame, requestAnimationFrame, scrollTo as varScrollTo } from '../utils/elements';
7
+ import { doubleRaf, getParentScroller, getScrollLeft, getScrollTop, nextTickFrame, requestAnimationFrame, scrollTo as varScrollTo } from '../utils/elements';
8
8
  import { useIndexAnchors } from './provide';
9
9
  import { props } from './props';
10
10
  import { renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from "vue";
@@ -55,7 +55,6 @@ export default defineComponent({
55
55
  indexAnchors,
56
56
  bindIndexAnchors
57
57
  } = useIndexAnchors();
58
- var scrollEl = ref(null);
59
58
  var clickedName = ref('');
60
59
  var scroller = ref(null);
61
60
  var barEl = ref(null);
@@ -82,10 +81,8 @@ export default defineComponent({
82
81
  };
83
82
 
84
83
  var handleScroll = () => {
85
- var {
86
- scrollTop,
87
- scrollHeight
88
- } = scrollEl.value;
84
+ var scrollTop = getScrollTop(scroller.value);
85
+ var scrollHeight = scroller.value === window ? document.body.scrollHeight : scroller.value.scrollHeight;
89
86
  var {
90
87
  offsetTop
91
88
  } = barEl.value;
@@ -120,10 +117,10 @@ export default defineComponent({
120
117
  });
121
118
  if (!indexAnchor) return;
122
119
  var top = indexAnchor.ownTop.value - stickyOffsetTop.value + offsetTop;
123
- var left = getScrollLeft(scrollEl.value);
120
+ var left = getScrollLeft(scroller.value);
124
121
  clickedName.value = anchorName;
125
122
  emitEvent(anchorName);
126
- yield varScrollTo(scrollEl.value, {
123
+ yield varScrollTo(scroller.value, {
127
124
  left,
128
125
  top,
129
126
  animation: easeInOutCubic,
@@ -156,17 +153,14 @@ export default defineComponent({
156
153
  });
157
154
  }));
158
155
  onMounted( /*#__PURE__*/_asyncToGenerator(function* () {
159
- var _scroller$value;
160
-
161
156
  yield doubleRaf();
162
157
  scroller.value = getParentScroller(barEl.value);
163
- scrollEl.value = scroller.value === window ? scroller.value.document.documentElement : scroller.value;
164
- (_scroller$value = scroller.value) == null ? void 0 : _scroller$value.addEventListener('scroll', handleScroll);
158
+ scroller.value.addEventListener('scroll', handleScroll);
165
159
  }));
166
160
  onBeforeUnmount(() => {
167
- var _scroller$value2;
161
+ var _scroller$value;
168
162
 
169
- (_scroller$value2 = scroller.value) == null ? void 0 : _scroller$value2.removeEventListener('scroll', handleScroll);
163
+ (_scroller$value = scroller.value) == null ? void 0 : _scroller$value.removeEventListener('scroll', handleScroll);
170
164
  });
171
165
  return {
172
166
  barEl,
@@ -3,6 +3,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
3
3
  import context from '../context';
4
4
 
5
5
 
6
+ import { supportTouch } from '../utils/elements';
6
7
  var ANIMATION_DURATION = 250;
7
8
 
8
9
  function setStyles(element) {
@@ -108,6 +109,10 @@ function removeRipple() {
108
109
  function forbidRippleTask() {
109
110
  var _ripple = this._ripple;
110
111
 
112
+ if (!supportTouch()) {
113
+ return;
114
+ }
115
+
111
116
  if (!_ripple.touchmoveForbid) {
112
117
  return;
113
118
  }
@@ -298,7 +298,7 @@ export default defineComponent({
298
298
  }
299
299
 
300
300
  wrapWidth.value = getWrapWidth();
301
- offsetY.value = getOffsetY();
301
+ offsetY.value = getOffsetY() + toPxNum(props.offsetY);
302
302
  isFocus.value = true;
303
303
  onFocus == null ? void 0 : onFocus();
304
304
  validateWithTrigger('onFocus');
@@ -429,6 +429,8 @@ export default defineComponent({
429
429
 
430
430
 
431
431
  var focus = () => {
432
+ wrapWidth.value = getWrapWidth();
433
+ offsetY.value = getOffsetY() + toPxNum(props.offsetY);
432
434
  isFocus.value = true;
433
435
  }; // expose
434
436
 
@@ -12,6 +12,10 @@ export var props = {
12
12
  type: Boolean,
13
13
  default: false
14
14
  },
15
+ offsetY: {
16
+ type: [String, Number],
17
+ default: 0
18
+ },
15
19
  chip: {
16
20
  type: Boolean,
17
21
  default: false
@@ -1,8 +1,8 @@
1
1
  import '../../styles/common.css'
2
- import '../SnackbarSfc.css'
3
2
  import '../../styles/elevation.css'
4
3
  import '../../loading/loading.css'
5
4
  import '../../button/button.css'
6
5
  import '../../icon/icon.css'
7
6
  import '../snackbar.css'
8
7
  import '../coreSfc.css'
8
+ import '../SnackbarSfc.css'
@@ -1,8 +1,8 @@
1
1
  import '../../styles/common.less'
2
- import '../SnackbarSfc.less'
3
2
  import '../../styles/elevation.less'
4
3
  import '../../loading/loading.less'
5
4
  import '../../button/button.less'
6
5
  import '../../icon/icon.less'
7
6
  import '../snackbar.less'
8
7
  import '../coreSfc.less'
8
+ import '../SnackbarSfc.less'