vdesign-ui 0.2.19 → 0.3.0

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 (168) hide show
  1. package/README.md +58 -58
  2. package/dist/components/actionbar/index.js +8 -8
  3. package/dist/components/actionbar/index.vue +39 -39
  4. package/dist/components/actionbar/style.less +44 -44
  5. package/dist/components/actionbar-cell/index.js +7 -7
  6. package/dist/components/actionbar-cell/index.vue +42 -42
  7. package/dist/components/actions/index.js +6 -6
  8. package/dist/components/actions/index.vue +77 -77
  9. package/dist/components/actions/style.less +109 -109
  10. package/dist/components/actions-cell/index.js +6 -6
  11. package/dist/components/actions-cell/index.vue +94 -94
  12. package/dist/components/actions-cell/style.less +38 -38
  13. package/dist/components/activityviews/index.js +8 -8
  14. package/dist/components/activityviews/index.vue +192 -192
  15. package/dist/components/activityviews/style.less +161 -161
  16. package/dist/components/badge/index.js +8 -8
  17. package/dist/components/badge/index.vue +49 -49
  18. package/dist/components/badge/style.less +54 -54
  19. package/dist/components/button/index.js +8 -8
  20. package/dist/components/button/index.vue +93 -93
  21. package/dist/components/button/style.less +558 -558
  22. package/dist/components/calendar/index-element.vue +84 -84
  23. package/dist/components/calendar/index.js +7 -7
  24. package/dist/components/calendar/index.vue +53 -53
  25. package/dist/components/calendar/style.less +138 -138
  26. package/dist/components/checkbox/index.js +8 -8
  27. package/dist/components/checkbox/index.vue +161 -161
  28. package/dist/components/checkbox/style.less +288 -288
  29. package/dist/components/checkbox-group/index.js +7 -7
  30. package/dist/components/checkbox-group/index.vue +73 -73
  31. package/dist/components/common/state/index.vue +33 -33
  32. package/dist/components/common/state/style.less +47 -47
  33. package/dist/components/data-list/index.js +10 -10
  34. package/dist/components/data-list/index.vue +19 -19
  35. package/dist/components/data-list/style.less +623 -623
  36. package/dist/components/datetime-picker/index.js +7 -7
  37. package/dist/components/datetime-picker/index.vue +39 -39
  38. package/dist/components/datetime-picker/style.less +23 -23
  39. package/dist/components/dialog/index.js +8 -8
  40. package/dist/components/dialog/index.vue +164 -164
  41. package/dist/components/dialog/overlay-manager.js +18 -18
  42. package/dist/components/dialog/style.less +138 -138
  43. package/dist/components/divider/index.js +8 -8
  44. package/dist/components/divider/index.vue +54 -54
  45. package/dist/components/divider/style.less +92 -92
  46. package/dist/components/dropdown/index.js +8 -8
  47. package/dist/components/dropdown/index.vue +218 -218
  48. package/dist/components/dropdown/style.less +432 -432
  49. package/dist/components/empty/index.js +8 -8
  50. package/dist/components/empty/index.vue +138 -138
  51. package/dist/components/empty/style.less +60 -60
  52. package/dist/components/footer/index.js +6 -6
  53. package/dist/components/footer/index.vue +33 -33
  54. package/dist/components/footer/style.less +20 -20
  55. package/dist/components/footnav/index.js +6 -6
  56. package/dist/components/footnav/index.vue +93 -93
  57. package/dist/components/footnav/style.less +22 -22
  58. package/dist/components/footnav-item/index.js +6 -6
  59. package/dist/components/footnav-item/index.vue +50 -50
  60. package/dist/components/footnav-item/style.less +39 -39
  61. package/dist/components/form/index.js +6 -6
  62. package/dist/components/form/index.vue +14 -14
  63. package/dist/components/headnav/index.js +6 -6
  64. package/dist/components/headnav/index.vue +185 -185
  65. package/dist/components/headnav/style.less +231 -231
  66. package/dist/components/icon/font/iconfont.css +163 -163
  67. package/dist/components/icon/font/iconfont.js +5 -5
  68. package/dist/components/icon/index.js +9 -9
  69. package/dist/components/icon/index.vue +96 -96
  70. package/dist/components/icon/style.less +44 -44
  71. package/dist/components/input/calcTextareaHeight.js +162 -162
  72. package/dist/components/input/index.js +8 -8
  73. package/dist/components/input/index.vue +345 -345
  74. package/dist/components/input/style.less +471 -471
  75. package/dist/components/list/index.js +8 -8
  76. package/dist/components/list/index.vue +152 -152
  77. package/dist/components/list/style.less +213 -213
  78. package/dist/components/loading/index.js +6 -6
  79. package/dist/components/loading/index.vue +68 -68
  80. package/dist/components/loading/style.less +53 -53
  81. package/dist/components/mixins/clickoutside.js +81 -81
  82. package/dist/components/mixins/dom.js +41 -41
  83. package/dist/components/mixins/languageMixin.js +43 -41
  84. package/dist/components/mixins/outlineConfigPlugin.js +45 -45
  85. package/dist/components/mixins/router-link.js +22 -22
  86. package/dist/components/mixins/themeMixin.js +43 -43
  87. package/dist/components/noticebar/index.js +8 -8
  88. package/dist/components/noticebar/index.vue +258 -258
  89. package/dist/components/noticebar/style.less +333 -328
  90. package/dist/components/overlay/index.js +8 -8
  91. package/dist/components/overlay/index.vue +184 -184
  92. package/dist/components/overlay/style.less +24 -24
  93. package/dist/components/pagebreak/index.js +6 -6
  94. package/dist/components/pagebreak/index.vue +67 -67
  95. package/dist/components/pagebreak/style.less +41 -41
  96. package/dist/components/password/index.js +8 -8
  97. package/dist/components/password/index.vue +64 -64
  98. package/dist/components/popover/index.js +8 -8
  99. package/dist/components/popover/index.vue +100 -100
  100. package/dist/components/popover/style.less +346 -346
  101. package/dist/components/popover/vue-popover.vue +314 -314
  102. package/dist/components/popup/index.js +7 -7
  103. package/dist/components/popup/index.vue +165 -165
  104. package/dist/components/popup/style.less +78 -78
  105. package/dist/components/radio/index.js +8 -8
  106. package/dist/components/radio/index.vue +184 -184
  107. package/dist/components/radio/style.less +300 -300
  108. package/dist/components/radio-group/index.js +7 -7
  109. package/dist/components/radio-group/index.vue +62 -62
  110. package/dist/components/result/index.js +8 -8
  111. package/dist/components/result/index.vue +73 -73
  112. package/dist/components/result/style.less +43 -43
  113. package/dist/components/search/index.js +8 -8
  114. package/dist/components/search/index.vue +70 -70
  115. package/dist/components/selector/index.js +8 -8
  116. package/dist/components/selector/index.vue +161 -161
  117. package/dist/components/selector/style.less +484 -484
  118. package/dist/components/skeleton/index.js +6 -6
  119. package/dist/components/skeleton/index.vue +207 -207
  120. package/dist/components/skeleton/style.less +196 -196
  121. package/dist/components/slider/draggable.js +49 -49
  122. package/dist/components/slider/index.js +6 -6
  123. package/dist/components/slider/index.vue +167 -167
  124. package/dist/components/slider/style.less +99 -99
  125. package/dist/components/slider/utils.js +59 -59
  126. package/dist/components/step/index.js +7 -7
  127. package/dist/components/step/index.vue +48 -48
  128. package/dist/components/step/style.less +66 -66
  129. package/dist/components/step-item/index.js +7 -7
  130. package/dist/components/step-item/index.vue +126 -126
  131. package/dist/components/step-item/style.less +399 -399
  132. package/dist/components/stepper/index.js +8 -8
  133. package/dist/components/stepper/index.vue +150 -150
  134. package/dist/components/style/index.vue +42 -42
  135. package/dist/components/switch/index.js +8 -8
  136. package/dist/components/switch/index.vue +72 -72
  137. package/dist/components/switch/style.less +56 -56
  138. package/dist/components/tab/index.js +7 -7
  139. package/dist/components/tab/index.vue +97 -97
  140. package/dist/components/tabs/index.js +8 -8
  141. package/dist/components/tabs/index.vue +356 -348
  142. package/dist/components/tabs/style.less +504 -493
  143. package/dist/components/tag/index.js +6 -6
  144. package/dist/components/tag/index.vue +64 -64
  145. package/dist/components/tag/style.less +210 -210
  146. package/dist/components/title/index.js +8 -8
  147. package/dist/components/title/index.vue +99 -99
  148. package/dist/components/title/style.less +187 -187
  149. package/dist/components/toast/index.js +139 -97
  150. package/dist/components/toast/index.vue +50 -49
  151. package/dist/components/toast/style.less +58 -57
  152. package/dist/components/transition/index.js +8 -8
  153. package/dist/components/transition/index.vue +13 -13
  154. package/dist/components/transition/style.less +208 -208
  155. package/dist/components/upload/index.js +6 -6
  156. package/dist/components/upload/index.vue +106 -106
  157. package/dist/components/upload/style.less +147 -147
  158. package/dist/components/utils/assist.js +34 -34
  159. package/dist/components/utils/env.js +21 -21
  160. package/dist/locale/ar.js +97 -97
  161. package/dist/locale/en.js +97 -97
  162. package/dist/locale/zh.js +97 -97
  163. package/dist/token.css +9 -9
  164. package/dist/vdesign-ui.common.js +212 -161
  165. package/dist/vdesign-ui.css +1 -1
  166. package/dist/vdesign-ui.umd.js +212 -161
  167. package/dist/vdesign-ui.umd.min.js +2 -2
  168. package/package.json +113 -113
@@ -1,97 +1,139 @@
1
- import Vue from 'vue';
2
- import ToastComponent from './index.vue';
3
- import { inBrowser } from '../utils/env';
4
-
5
- let queueResult = []
6
- let allowMultiple = false
7
-
8
- function getType(value) {
9
- if (value !== value) return 'NaN';
10
- return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
11
- }
12
-
13
- class VdToast extends Vue.extend(ToastComponent) {
14
- constructor(options) {
15
- super();
16
- this.vm = this.$mount();
17
- this.timer = null
18
- this.allowMultiple = allowMultiple
19
-
20
- // 判断传入的 options 类型,并进行赋值
21
- if (typeof options === 'string' || typeof options === 'number') {
22
- this.message = options;
23
- } else if (getType(options) === 'object') {
24
- this.message = options.message || '';
25
- this.duration = options.duration || 1500;
26
- Object.assign(this, options);
27
- }
28
-
29
- this.init();
30
- }
31
-
32
- /**
33
- * 初始化方法
34
- */
35
- init() {
36
- if (inBrowser) {
37
- document.body.appendChild(this.vm.$el)
38
- if (!this.allowMultiple) {
39
- queueResult.forEach(toast => {
40
- toast.clear()
41
- })
42
- queueResult = [];
43
- }
44
- this.start()
45
- }
46
- }
47
-
48
- start() {
49
- clearTimeout(this.timer)
50
- /**
51
- * 在挂载真实 DOM 树后显示过渡效果
52
- */
53
- setTimeout(() => {
54
- this.isShow = true
55
- if (this.duration > 0) {
56
- this.end();
57
- }
58
- }, 0)
59
- }
60
-
61
- end() {
62
- /**
63
- * 关闭过渡效果之后移除真实 DOM 树节点
64
- */
65
- this.timer = setTimeout(() => {
66
- this.clear()
67
- }, this.duration)
68
- }
69
-
70
- clear() {
71
- this.isShow = false
72
- if (inBrowser && this.vm.$el) {
73
- setTimeout(() => {
74
- this.vm.$el.parentNode && this.vm.$el.parentNode.removeChild(this.vm.$el);
75
- }, 500)
76
- }
77
- }
78
- }
79
-
80
- const Toast = (options) => {
81
- const NewOption = new VdToast(options)
82
- queueResult.push(NewOption)
83
- return NewOption
84
- }
85
-
86
- Toast.clear = () => {
87
- queueResult.forEach(toast => {
88
- toast.clear()
89
- })
90
- queueResult = [];
91
- }
92
-
93
- Toast.allowMultiple = () => {
94
- allowMultiple = true
95
- }
96
-
97
- export default Toast
1
+ import Vue from "vue";
2
+ import ToastComponent from "./index.vue";
3
+ import { inBrowser } from "../utils/env";
4
+
5
+ let queueResult = [];
6
+ let globalAllowMultiple = false;
7
+ let allTimer = null;
8
+
9
+ function getType(value) {
10
+ if (value !== value) return "NaN";
11
+ return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
12
+ }
13
+
14
+ function normalizeOptions(raw) {
15
+ let opts = {};
16
+
17
+ if (getType(raw) === 'string' || getType(raw) === 'number') {
18
+ opts.message = String(raw);
19
+ } else if (getType(raw) === 'object') {
20
+ opts = { ...raw };
21
+ } else {
22
+ opts.message = '';
23
+ }
24
+
25
+ // 默认值 & 全局/局部 allowMultiple
26
+ opts.duration = getType(opts.duration) === 'number' ? opts.duration : 1500;
27
+ opts.allowMultiple = 'allowMultiple' in opts ? !!opts.allowMultiple : globalAllowMultiple;
28
+
29
+ return opts;
30
+ }
31
+
32
+ class VdToast extends Vue.extend(ToastComponent) {
33
+ constructor(options) {
34
+ super();
35
+ this.vm = this.$mount();
36
+ this.timer = null;
37
+ // // 局部优先,回退全局
38
+ // const localAllowMultiple =
39
+ // getType(options) === "object" && "allowMultiple" in options
40
+ // ? options.allowMultiple
41
+ // : globalAllowMultiple;
42
+ // this.allowMultiple = localAllowMultiple;
43
+ // // 判断传入的 options 类型,并进行赋值
44
+ // if (getType(options) === "string" || getType(options) === "number") {
45
+ // this.message = options;
46
+ // } else if (getType(options) === "object") {
47
+ // this.message = options.message || "";
48
+ // this.duration = options.duration || 1500;
49
+ // Object.assign(this, options);
50
+ // }
51
+ Object.assign(this, options);
52
+
53
+ this.init();
54
+ }
55
+ /**
56
+ * 初始化方法
57
+ */
58
+ init() {
59
+ if (inBrowser) {
60
+ if (!this.allowMultiple) {
61
+ if (allTimer) {
62
+ clearTimeout(allTimer);
63
+ }
64
+ queueResult.forEach((toast) => {
65
+ toast.clear();
66
+ });
67
+ queueResult = [];
68
+ queueResult.push(this);
69
+ allTimer = setTimeout(() => {
70
+ document.body.appendChild(this.vm.$el);
71
+ }, 50);
72
+ } else {
73
+ queueResult.push(this);
74
+ document.body.appendChild(this.vm.$el);
75
+ }
76
+ this.start();
77
+ }
78
+ }
79
+ start() {
80
+ clearTimeout(this.timer);
81
+ /**
82
+ * 在挂载真实 DOM 树后显示过渡效果
83
+ */
84
+ setTimeout(() => {
85
+ this.isShow = true;
86
+ if (this.duration > 0) {
87
+ this.end();
88
+ }
89
+ }, 0);
90
+ }
91
+ end() {
92
+ /**
93
+ * 关闭过渡效果之后移除真实 DOM 树节点
94
+ */
95
+ this.timer = setTimeout(() => {
96
+ this.clear();
97
+ }, this.duration);
98
+ }
99
+ clear() {
100
+ this.isShow = false;
101
+ if (inBrowser && this.vm.$el) {
102
+ setTimeout(() => {
103
+ this.vm.$el.parentNode &&
104
+ this.vm.$el.parentNode.removeChild(this.vm.$el);
105
+ }, 500);
106
+ }
107
+ }
108
+ }
109
+
110
+ // const Toast = (options) => {
111
+ // const localAllowMultiple =
112
+ // getType(options) === "object" && "allowMultiple" in options
113
+ // ? options.allowMultiple
114
+ // : globalAllowMultiple;
115
+
116
+ // if(getType(options) === "object") {
117
+ // options.allowMultiple = localAllowMultiple;
118
+ // }
119
+ // return new VdToast(options);
120
+ // };
121
+
122
+ const Toast = (rawOptions) => {
123
+ const opts = normalizeOptions(rawOptions);
124
+ return new VdToast(opts);
125
+ };
126
+
127
+
128
+ Toast.clear = () => {
129
+ queueResult.forEach((toast) => {
130
+ toast.clear();
131
+ });
132
+ queueResult = [];
133
+ };
134
+
135
+ Toast.allowMultiple = (value = true) => {
136
+ globalAllowMultiple = value;
137
+ };
138
+
139
+ export default Toast;
@@ -1,49 +1,50 @@
1
- <template>
2
- <!-- 消息提示 -->
3
- <div :class="['vd-toast', { 'vd-toast-show': isShow }, { 'vd-toast-icon': !!icon }, customClass]"
4
- :style="`background:${bgColor};`">
5
- <i v-if="!!icon" class="vd-iconfont" :class="[isImage ? '' : `vd-icon-${icon}`]">
6
- <img class="vd-img-icon" v-if="isImage" :src="icon" />
7
- </i>
8
- <div>{{ message }}</div>
9
- </div>
10
- </template>
11
- <script>
12
- export default {
13
- name: 'vd-toast',
14
- data() {
15
- return {
16
- message: '', // 提示语
17
- isShow: false, // 是否显示
18
- bgColor: '', // 背景颜色
19
- icon: '', // 图标
20
- duration: 1500, // 延迟时间
21
- position: 'middle' // default:middle, value: top, bottom
22
- }
23
- },
24
- computed: {
25
- isImage() {
26
- return this.icon.includes('/');
27
- },
28
- customClass() {
29
- var classes = [];
30
- switch (this.position) {
31
- case 'top':
32
- classes.push('vd-toast__top');
33
- break;
34
- case 'bottom':
35
- classes.push('vd-toast__bottom');
36
- break;
37
- default:
38
- classes.push('vd-toast__middle');
39
- }
40
- classes.push(this.className);
41
-
42
- return classes.join(' ');
43
- }
44
- }
45
- }
46
- </script>
47
- <style lang="less">
48
- @import './style.less';
49
- </style>
1
+ <template>
2
+ <!-- 消息提示 -->
3
+ <div :class="['vd-toast', { 'vd-toast-show': isShow }, { 'vd-toast-icon': !!icon }, customClass]"
4
+ :style="`background:${bgColor};`">
5
+ <i v-if="!!icon" class="vd-iconfont" :class="[isImage ? '' : `vd-icon-${icon}`]">
6
+ <img class="vd-img-icon" v-if="isImage" :src="icon" />
7
+ </i>
8
+ <div>{{ message }}</div>
9
+ </div>
10
+ </template>
11
+ <script>
12
+ export default {
13
+ name: 'vd-toast',
14
+ data() {
15
+ return {
16
+ message: '', // 提示语
17
+ isShow: false, // 是否显示
18
+ bgColor: '', // 背景颜色
19
+ icon: '', // 图标
20
+ duration: 1500, // 延迟时间
21
+ position: 'middle', // default:middle, value: top, bottom
22
+ allowMultiple: false
23
+ }
24
+ },
25
+ computed: {
26
+ isImage() {
27
+ return this.icon.includes('/');
28
+ },
29
+ customClass() {
30
+ var classes = [];
31
+ switch (this.position) {
32
+ case 'top':
33
+ classes.push('vd-toast__top');
34
+ break;
35
+ case 'bottom':
36
+ classes.push('vd-toast__bottom');
37
+ break;
38
+ default:
39
+ classes.push('vd-toast__middle');
40
+ }
41
+ classes.push(this.className);
42
+
43
+ return classes.join(' ');
44
+ }
45
+ }
46
+ }
47
+ </script>
48
+ <style lang="less">
49
+ @import './style.less';
50
+ </style>
@@ -1,57 +1,58 @@
1
- @prefix: ~"vd-toast";
2
-
3
- .@{prefix} {
4
- display: inline-block;
5
- width: max-content;
6
- position: fixed;
7
- top: 50%;
8
- left: 50%;
9
- transform: translate(-50%, -50%);
10
- box-sizing: border-box;
11
- text-align: center;
12
- z-index: 3000;
13
- transition: all .3s linear;
14
- opacity: 0;
15
- visibility: hidden;
16
- // token
17
- min-width: var(--width-toast-small);
18
- max-width: var(--width-toast-large);
19
- padding: var(--spacing-toast-padding_x) var(--spacing-toast-padding_y);
20
- background-color: var(--color-toast-bg);
21
- border-radius: var(--radius-toast-content);
22
- color: var(--color-toast-text);
23
- font-size: var(--en-single-f-c-r-fontSize);
24
- font-weight: var(--en-single-f-c-r-fontWeight);
25
-
26
- &.vd-toast-show {
27
- opacity: 1;
28
- visibility: visible;
29
- }
30
-
31
- &-icon {
32
- min-height: var(--height-toast-small);
33
-
34
- .vd-iconfont {
35
- font-size: var(--icon-toast-size);
36
- margin-bottom: var(--spacing-toast-icon-margin_bottom);
37
- }
38
- }
39
-
40
- &__top {
41
- top: 50px;
42
- left: 50%;
43
- transform: translate(-50%, 0);
44
- }
45
-
46
- &__middle {
47
- left: 50%;
48
- top: 50%;
49
- transform: translate(-50%, -50%);
50
- }
51
-
52
- &__bottom {
53
- bottom: 50px;
54
- left: 50%;
55
- transform: translate(-50%, 0);
56
- }
57
- }
1
+ @prefix: ~"vd-toast";
2
+
3
+ .@{prefix} {
4
+ display: inline-block;
5
+ width: max-content;
6
+ position: fixed;
7
+ top: 50%;
8
+ left: 50%;
9
+ transform: translate(-50%, -50%);
10
+ box-sizing: border-box;
11
+ text-align: center;
12
+ z-index: 3000;
13
+ transition: all .3s linear;
14
+ opacity: 0;
15
+ visibility: hidden;
16
+ // token
17
+ min-width: var(--width-toast-small);
18
+ max-width: var(--width-toast-large);
19
+ padding: var(--spacing-toast-padding_x) var(--spacing-toast-padding_y);
20
+ background-color: var(--color-toast-bg);
21
+ border-radius: var(--radius-toast-content);
22
+ color: var(--color-toast-text);
23
+ font-size: var(--en-single-f-c-r-fontSize);
24
+ font-weight: var(--en-single-f-c-r-fontWeight);
25
+
26
+ &.vd-toast-show {
27
+ opacity: 1;
28
+ visibility: visible;
29
+ }
30
+
31
+ &-icon {
32
+ min-height: var(--height-toast-small);
33
+
34
+ .vd-iconfont {
35
+ font-size: var(--icon-toast-size);
36
+ margin-bottom: var(--spacing-toast-icon-margin_bottom);
37
+ }
38
+ }
39
+
40
+ &__top {
41
+ top: 50px;
42
+ left: 50%;
43
+ transform: translate(-50%, 0);
44
+ }
45
+
46
+ &__middle {
47
+ left: 50%;
48
+ top: 50%;
49
+ transform: translate(-50%, -50%);
50
+ }
51
+
52
+ &__bottom {
53
+ top: initial;
54
+ bottom: 50px;
55
+ left: 50%;
56
+ transform: translate(-50%, 0);
57
+ }
58
+ }
@@ -1,8 +1,8 @@
1
- import Transition from './index.vue';
2
- import './style.less';
3
-
4
- Transition.install = function (Vue) {
5
- Vue.component(Transition.name, Transition);
6
- };
7
-
8
- export default Transition;
1
+ import Transition from './index.vue';
2
+ import './style.less';
3
+
4
+ Transition.install = function (Vue) {
5
+ Vue.component(Transition.name, Transition);
6
+ };
7
+
8
+ export default Transition;
@@ -1,13 +1,13 @@
1
- <script>
2
- export default {
3
- name: 'transition',
4
- functional: true,
5
- render(h, context) {
6
- return h('transition', context.data, context.children)
7
- },
8
- }
9
- </script>
10
-
11
- <style lang="less">
12
- @import"./style.less";
13
- </style>
1
+ <script>
2
+ export default {
3
+ name: 'transition',
4
+ functional: true,
5
+ render(h, context) {
6
+ return h('transition', context.data, context.children)
7
+ },
8
+ }
9
+ </script>
10
+
11
+ <style lang="less">
12
+ @import"./style.less";
13
+ </style>