yy-vue-easytable 2.27.2

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 (205) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +187 -0
  3. package/libs/font/demo.css +539 -0
  4. package/libs/font/demo_index.html +400 -0
  5. package/libs/font/iconfont.css +57 -0
  6. package/libs/font/iconfont.eot +0 -0
  7. package/libs/font/iconfont.js +1 -0
  8. package/libs/font/iconfont.json +79 -0
  9. package/libs/font/iconfont.svg +56 -0
  10. package/libs/font/iconfont.ttf +0 -0
  11. package/libs/font/iconfont.woff +0 -0
  12. package/libs/font/iconfont.woff2 +0 -0
  13. package/libs/locale/lang/af-ZA.js +48 -0
  14. package/libs/locale/lang/en-US.js +48 -0
  15. package/libs/locale/lang/fr-FR.js +48 -0
  16. package/libs/locale/lang/ko-KR.js +48 -0
  17. package/libs/locale/lang/pt-BR.js +48 -0
  18. package/libs/locale/lang/ru-RU.js +48 -0
  19. package/libs/locale/lang/zh-CN.js +48 -0
  20. package/libs/locale/lang/zh-TW.js +48 -0
  21. package/libs/locale/lang/zu-ZA.js +48 -0
  22. package/libs/main.js +1 -0
  23. package/libs/theme-dark/base.css +1 -0
  24. package/libs/theme-dark/index.css +1253 -0
  25. package/libs/theme-dark/var.css +7 -0
  26. package/libs/theme-dark/ve-checkbox.css +150 -0
  27. package/libs/theme-dark/ve-contextmenu.css +71 -0
  28. package/libs/theme-dark/ve-dropdown.css +177 -0
  29. package/libs/theme-dark/ve-icon.css +10 -0
  30. package/libs/theme-dark/ve-loading.css +218 -0
  31. package/libs/theme-dark/ve-pagination.css +136 -0
  32. package/libs/theme-dark/ve-radio.css +111 -0
  33. package/libs/theme-dark/ve-select.css +50 -0
  34. package/libs/theme-dark/ve-table.css +385 -0
  35. package/libs/theme-default/base.css +1 -0
  36. package/libs/theme-default/index.css +1253 -0
  37. package/libs/theme-default/var.css +7 -0
  38. package/libs/theme-default/ve-checkbox.css +150 -0
  39. package/libs/theme-default/ve-contextmenu.css +71 -0
  40. package/libs/theme-default/ve-dropdown.css +177 -0
  41. package/libs/theme-default/ve-icon.css +10 -0
  42. package/libs/theme-default/ve-loading.css +218 -0
  43. package/libs/theme-default/ve-pagination.css +136 -0
  44. package/libs/theme-default/ve-radio.css +111 -0
  45. package/libs/theme-default/ve-select.css +50 -0
  46. package/libs/theme-default/ve-table.css +385 -0
  47. package/libs/umd/index.js +9 -0
  48. package/libs/ve-checkbox-group.js +1 -0
  49. package/libs/ve-checkbox.js +1 -0
  50. package/libs/ve-contextmenu.js +1 -0
  51. package/libs/ve-dropdown.js +1 -0
  52. package/libs/ve-icon.js +1 -0
  53. package/libs/ve-loading.js +1 -0
  54. package/libs/ve-locale.js +1 -0
  55. package/libs/ve-pagination.js +1 -0
  56. package/libs/ve-radio.js +1 -0
  57. package/libs/ve-select.js +1 -0
  58. package/libs/ve-table.js +1 -0
  59. package/package.json +142 -0
  60. package/packages/font/demo.css +539 -0
  61. package/packages/font/demo_index.html +400 -0
  62. package/packages/font/iconfont.css +57 -0
  63. package/packages/font/iconfont.eot +0 -0
  64. package/packages/font/iconfont.js +1 -0
  65. package/packages/font/iconfont.json +79 -0
  66. package/packages/font/iconfont.svg +56 -0
  67. package/packages/font/iconfont.ttf +0 -0
  68. package/packages/font/iconfont.woff +0 -0
  69. package/packages/font/iconfont.woff2 +0 -0
  70. package/packages/index.js +75 -0
  71. package/packages/src/comps/resize-observer/index.js +2 -0
  72. package/packages/src/comps/resize-observer/src/index.jsx +38 -0
  73. package/packages/src/directives/clickoutside.js +31 -0
  74. package/packages/src/directives/events-outside.js +79 -0
  75. package/packages/src/directives/focus.js +28 -0
  76. package/packages/src/locale/index.js +27 -0
  77. package/packages/src/locale/lang/af-ZA.js +29 -0
  78. package/packages/src/locale/lang/en-US.js +30 -0
  79. package/packages/src/locale/lang/fr-FR.js +29 -0
  80. package/packages/src/locale/lang/ko-KR.js +29 -0
  81. package/packages/src/locale/lang/pt-BR.js +29 -0
  82. package/packages/src/locale/lang/ru-RU.js +29 -0
  83. package/packages/src/locale/lang/zh-CN.js +30 -0
  84. package/packages/src/locale/lang/zh-TW.js +29 -0
  85. package/packages/src/locale/lang/zu-ZA.js +29 -0
  86. package/packages/src/mixins/emitter.js +39 -0
  87. package/packages/src/utils/animation-frame.js +39 -0
  88. package/packages/src/utils/auto-resize.js +179 -0
  89. package/packages/src/utils/constant.js +42 -0
  90. package/packages/src/utils/dom.js +239 -0
  91. package/packages/src/utils/event-key-codes.js +53 -0
  92. package/packages/src/utils/hooks-manager.js +76 -0
  93. package/packages/src/utils/index.js +161 -0
  94. package/packages/src/utils/mouse-event.js +24 -0
  95. package/packages/src/utils/random.js +6 -0
  96. package/packages/src/utils/request-animation-timeout.js +36 -0
  97. package/packages/src/utils/resize-event.js +40 -0
  98. package/packages/src/utils/scroll-bar.js +27 -0
  99. package/packages/style/ve-checkbox.less +179 -0
  100. package/packages/style/ve-contextmenu.less +76 -0
  101. package/packages/style/ve-dropdown.less +204 -0
  102. package/packages/style/ve-icon.less +3 -0
  103. package/packages/style/ve-loading.less +242 -0
  104. package/packages/style/ve-pagination.less +153 -0
  105. package/packages/style/ve-radio.less +126 -0
  106. package/packages/style/ve-select.less +48 -0
  107. package/packages/style/ve-table.less +539 -0
  108. package/packages/theme-dark/base.less +1 -0
  109. package/packages/theme-dark/index.less +12 -0
  110. package/packages/theme-dark/var.less +111 -0
  111. package/packages/theme-dark/ve-checkbox.less +2 -0
  112. package/packages/theme-dark/ve-contextmenu.less +2 -0
  113. package/packages/theme-dark/ve-dropdown.less +2 -0
  114. package/packages/theme-dark/ve-icon.less +2 -0
  115. package/packages/theme-dark/ve-loading.less +2 -0
  116. package/packages/theme-dark/ve-pagination.less +2 -0
  117. package/packages/theme-dark/ve-radio.less +2 -0
  118. package/packages/theme-dark/ve-select.less +2 -0
  119. package/packages/theme-dark/ve-table.less +2 -0
  120. package/packages/theme-default/base.less +1 -0
  121. package/packages/theme-default/index.less +12 -0
  122. package/packages/theme-default/var.less +111 -0
  123. package/packages/theme-default/ve-checkbox.less +2 -0
  124. package/packages/theme-default/ve-contextmenu.less +2 -0
  125. package/packages/theme-default/ve-dropdown.less +2 -0
  126. package/packages/theme-default/ve-icon.less +2 -0
  127. package/packages/theme-default/ve-loading.less +2 -0
  128. package/packages/theme-default/ve-pagination.less +2 -0
  129. package/packages/theme-default/ve-radio.less +2 -0
  130. package/packages/theme-default/ve-select.less +2 -0
  131. package/packages/theme-default/ve-table.less +2 -0
  132. package/packages/ve-checkbox/index.js +7 -0
  133. package/packages/ve-checkbox/src/index.jsx +175 -0
  134. package/packages/ve-checkbox/src/util/constant.js +14 -0
  135. package/packages/ve-checkbox/src/util/index.js +10 -0
  136. package/packages/ve-checkbox-group/index.js +7 -0
  137. package/packages/ve-checkbox-group/src/index.jsx +53 -0
  138. package/packages/ve-checkbox-group/src/util/constant.js +14 -0
  139. package/packages/ve-checkbox-group/src/util/index.js +10 -0
  140. package/packages/ve-contextmenu/index.js +7 -0
  141. package/packages/ve-contextmenu/src/index.jsx +731 -0
  142. package/packages/ve-contextmenu/src/util/constant.js +29 -0
  143. package/packages/ve-contextmenu/src/util/index.js +10 -0
  144. package/packages/ve-dropdown/index.js +7 -0
  145. package/packages/ve-dropdown/src/index.jsx +720 -0
  146. package/packages/ve-dropdown/src/util/constant.js +15 -0
  147. package/packages/ve-dropdown/src/util/index.js +10 -0
  148. package/packages/ve-icon/index.js +7 -0
  149. package/packages/ve-icon/src/index.jsx +52 -0
  150. package/packages/ve-icon/src/util/constant.js +10 -0
  151. package/packages/ve-icon/src/util/index.js +10 -0
  152. package/packages/ve-loading/index.js +8 -0
  153. package/packages/ve-loading/src/bounce.jsx +50 -0
  154. package/packages/ve-loading/src/flow.jsx +51 -0
  155. package/packages/ve-loading/src/grid.jsx +57 -0
  156. package/packages/ve-loading/src/index.js +106 -0
  157. package/packages/ve-loading/src/loading.jsx +63 -0
  158. package/packages/ve-loading/src/plane.jsx +38 -0
  159. package/packages/ve-loading/src/pulse.jsx +38 -0
  160. package/packages/ve-loading/src/util/constant.js +31 -0
  161. package/packages/ve-loading/src/util/index.js +10 -0
  162. package/packages/ve-loading/src/wave.jsx +53 -0
  163. package/packages/ve-locale/index.js +28 -0
  164. package/packages/ve-pagination/index.js +7 -0
  165. package/packages/ve-pagination/src/index.jsx +304 -0
  166. package/packages/ve-pagination/src/pager.jsx +166 -0
  167. package/packages/ve-pagination/src/util/constant.js +16 -0
  168. package/packages/ve-pagination/src/util/index.js +10 -0
  169. package/packages/ve-radio/index.js +7 -0
  170. package/packages/ve-radio/src/index.jsx +121 -0
  171. package/packages/ve-radio/src/util/constant.js +13 -0
  172. package/packages/ve-radio/src/util/index.js +10 -0
  173. package/packages/ve-select/index.js +7 -0
  174. package/packages/ve-select/src/index.jsx +193 -0
  175. package/packages/ve-select/src/util/constant.js +13 -0
  176. package/packages/ve-select/src/util/index.js +10 -0
  177. package/packages/ve-table/index.js +7 -0
  178. package/packages/ve-table/src/body/body-checkbox-content.jsx +126 -0
  179. package/packages/ve-table/src/body/body-radio-content.jsx +113 -0
  180. package/packages/ve-table/src/body/body-td.jsx +671 -0
  181. package/packages/ve-table/src/body/body-tr-scrolling.jsx +38 -0
  182. package/packages/ve-table/src/body/body-tr.jsx +383 -0
  183. package/packages/ve-table/src/body/expand-tr-icon.jsx +80 -0
  184. package/packages/ve-table/src/body/expand-tr.jsx +147 -0
  185. package/packages/ve-table/src/body/index.jsx +943 -0
  186. package/packages/ve-table/src/colgroup/index.jsx +48 -0
  187. package/packages/ve-table/src/column-resizer/index.jsx +318 -0
  188. package/packages/ve-table/src/editor/constant.js +5 -0
  189. package/packages/ve-table/src/editor/index.jsx +533 -0
  190. package/packages/ve-table/src/footer/footer-td.jsx +396 -0
  191. package/packages/ve-table/src/footer/footer-tr.jsx +249 -0
  192. package/packages/ve-table/src/footer/index.jsx +108 -0
  193. package/packages/ve-table/src/header/header-checkbox-content.jsx +69 -0
  194. package/packages/ve-table/src/header/header-filter-content.jsx +100 -0
  195. package/packages/ve-table/src/header/header-filter-custom-content.jsx +110 -0
  196. package/packages/ve-table/src/header/header-th.jsx +664 -0
  197. package/packages/ve-table/src/header/header-tr.jsx +255 -0
  198. package/packages/ve-table/src/header/index.jsx +195 -0
  199. package/packages/ve-table/src/index.jsx +4196 -0
  200. package/packages/ve-table/src/selection/constant.js +5 -0
  201. package/packages/ve-table/src/selection/index.jsx +1643 -0
  202. package/packages/ve-table/src/util/clipboard.js +428 -0
  203. package/packages/ve-table/src/util/constant.js +269 -0
  204. package/packages/ve-table/src/util/index.js +1585 -0
  205. package/packages/ve-table/src/util/store.js +14 -0
@@ -0,0 +1,161 @@
1
+ import { createI18N } from "../locale/index";
2
+
3
+ /*
4
+ * @createLocale
5
+ * @desc create namespace by comp name
6
+ * @param {string} compName
7
+ * @return {function}
8
+ */
9
+ export function createLocale(compName) {
10
+ return createI18N(compName);
11
+ }
12
+
13
+ /*
14
+ * @isEmptyArray
15
+ * @desc is empty array
16
+ * @param {array} arr
17
+ */
18
+ export function isEmptyArray(arr) {
19
+ return !(Array.isArray(arr) && arr.length > 0);
20
+ }
21
+
22
+ /*
23
+ * @isEmptyValue
24
+ * @desc is empty value
25
+ * @param {array} arr
26
+ */
27
+ export function isEmptyValue(value) {
28
+ return !(value !== "" && value !== undefined && value !== null);
29
+ }
30
+
31
+ /*
32
+ * @isDefined
33
+ * @desc is defined
34
+ * @param {any} val
35
+ */
36
+ export function isDefined(val) {
37
+ return val !== undefined && val !== null;
38
+ }
39
+
40
+ /*
41
+ * @isObject
42
+ * @desc is object
43
+ * @param {any} val
44
+ */
45
+ export function isObject(val) {
46
+ return val !== null && typeof val === "object";
47
+ }
48
+
49
+ /*
50
+ * @isFunction
51
+ * @desc is function
52
+ * @param {any} val
53
+ */
54
+ export function isFunction(val) {
55
+ return typeof val === "function";
56
+ }
57
+
58
+ /*
59
+ * @isBoolean
60
+ * @desc is boolean
61
+ * @param {any} val
62
+ */
63
+ export function isBoolean(val) {
64
+ return typeof val === "boolean";
65
+ }
66
+
67
+ /*
68
+ * @isNumber
69
+ * @desc is number
70
+ * @param {any} val
71
+ */
72
+ export function isNumber(val) {
73
+ return typeof val === "number";
74
+ }
75
+
76
+ /*
77
+ * @isTrue
78
+ * @desc is equal true
79
+ * @param {any} val
80
+ */
81
+ export function isTrue(val) {
82
+ return isBoolean(val) && val;
83
+ }
84
+
85
+ /*
86
+ * @isFalse
87
+ * @desc is equal false
88
+ * @param {any} val
89
+ */
90
+ export function isFalse(val) {
91
+ return isBoolean(val) && !val;
92
+ }
93
+
94
+ /*
95
+ * @getValByUnit
96
+ * @desc get value by unit
97
+ * @param {number|string} width - 宽度
98
+ */
99
+ export function getValByUnit(width) {
100
+ return typeof width === "number" ? width + "px" : width;
101
+ }
102
+
103
+ /*
104
+ * @getParentCompByName
105
+ * @desc get parent comp by name
106
+ * @param {object} context
107
+ * @param {string} name - parent comp name
108
+ */
109
+ export function getParentCompByName(context, name) {
110
+ let parent = context.$parent;
111
+
112
+ while (parent) {
113
+ if (parent.$options.name !== name) {
114
+ parent = parent.$parent;
115
+ } else {
116
+ return parent;
117
+ }
118
+ }
119
+
120
+ return null;
121
+ }
122
+
123
+ /*
124
+ * @getChildCompsByName
125
+ * @desc get child comps by name
126
+ * @param {object} context
127
+ * @param {string} name - child comp name
128
+ */
129
+ export function getChildCompsByName(context, name) {
130
+ let result = [];
131
+
132
+ let childrens = context.$children;
133
+
134
+ while (childrens && childrens.length > 0) {
135
+ childrens.forEach((child) => {
136
+ childrens = child.$children ? child.$children : null;
137
+
138
+ if (child.$options.name === name) {
139
+ result.push(child);
140
+ }
141
+ });
142
+ }
143
+
144
+ return result;
145
+ }
146
+
147
+ /*
148
+ * @scrollTo
149
+ * @desc element scrollTo https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollTo
150
+ * @param {element} el - element
151
+ * @param {object} option - scroll option
152
+ */
153
+ export function scrollTo(el, option) {
154
+ if (isFunction(el.scrollTo)) {
155
+ el.scrollTo(option);
156
+ } else {
157
+ const { top, left } = option;
158
+ el.scrollTop = top;
159
+ el.scrollLeft = left;
160
+ }
161
+ }
@@ -0,0 +1,24 @@
1
+ import { MOUSE_EVENT_CLICK_TYPE } from "./constant";
2
+
3
+ /*
4
+ get mouse event key type by mousedown\mouseup\... event
5
+ */
6
+ export function getMouseEventClickType(event) {
7
+ let result = null;
8
+
9
+ if (!event) {
10
+ return result;
11
+ }
12
+
13
+ const button =
14
+ typeof event.which != "undefined" ? event.which : event.button;
15
+ if (button == 1) {
16
+ result = MOUSE_EVENT_CLICK_TYPE.LEFT_MOUSE;
17
+ } else if (button == 2) {
18
+ result = MOUSE_EVENT_CLICK_TYPE.MIDDLE_MOUSE;
19
+ } else if (button == 3) {
20
+ result = MOUSE_EVENT_CLICK_TYPE.RIGHT_MOUSE;
21
+ }
22
+
23
+ return result;
24
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generate a non duplicate ID
3
+ */
4
+ export function getRandomId() {
5
+ return Date.now().toString(36) + Math.random().toString(36).substr(2);
6
+ }
@@ -0,0 +1,36 @@
1
+ /*
2
+ fork from:
3
+ https://github.com/bvaughn/react-virtualized/blob/HEAD/source/utils/requestAnimationTimeout.js
4
+ */
5
+
6
+ import { caf, raf } from "./animation-frame";
7
+
8
+ export const cancelAnimationTimeout = (frame) => caf(frame.id);
9
+
10
+ /**
11
+ * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
12
+ * When the delay time has been reached the function you're timing out will be called.
13
+ *
14
+ * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
15
+ */
16
+ export const requestAnimationTimeout = (callback, delay) => {
17
+ let start;
18
+ // wait for end of processing current event handler, because event handler may be long
19
+ Promise.resolve().then(() => {
20
+ start = Date.now();
21
+ });
22
+
23
+ const timeout = () => {
24
+ if (Date.now() - start >= delay) {
25
+ callback.call();
26
+ } else {
27
+ frame.id = raf(timeout);
28
+ }
29
+ };
30
+
31
+ const frame = {
32
+ id: raf(timeout),
33
+ };
34
+
35
+ return frame;
36
+ };
@@ -0,0 +1,40 @@
1
+ /*
2
+ fork from:
3
+ https://github.com/ElemeFE/element
4
+ */
5
+
6
+ import ResizeObserver from "resize-observer-polyfill";
7
+
8
+ /* istanbul ignore next */
9
+ const resizeHandler = function (entries) {
10
+ for (let entry of entries) {
11
+ const listeners = entry.target.__resizeListeners__ || [];
12
+ if (listeners.length) {
13
+ listeners.forEach((fn) => {
14
+ fn(entry.contentRect);
15
+ });
16
+ }
17
+ }
18
+ };
19
+
20
+ /* istanbul ignore next */
21
+ export const addResizeListener = function (element, fn) {
22
+ if (!element.__resizeListeners__) {
23
+ element.__resizeListeners__ = [];
24
+ element.__ro__ = new ResizeObserver(resizeHandler);
25
+ element.__ro__.observe(element);
26
+ }
27
+ element.__resizeListeners__.push(fn);
28
+ };
29
+
30
+ /* istanbul ignore next */
31
+ export const removeResizeListener = function (element, fn) {
32
+ if (!element || !element.__resizeListeners__) return;
33
+ element.__resizeListeners__.splice(
34
+ element.__resizeListeners__.indexOf(fn),
35
+ 1,
36
+ );
37
+ if (!element.__resizeListeners__.length) {
38
+ element.__ro__.disconnect();
39
+ }
40
+ };
@@ -0,0 +1,27 @@
1
+ /*
2
+ * @getScrollbarWidth
3
+ * @desc get scroll bar width
4
+ * @param
5
+ * @return
6
+ */
7
+ export function getScrollbarWidth() {
8
+ const outer = document.createElement("div");
9
+ outer.className = "ve-scrollbar-wrap";
10
+ outer.style.visibility = "hidden";
11
+ outer.style.width = "100px";
12
+ outer.style.position = "absolute";
13
+ outer.style.top = "-9999px";
14
+ document.body.appendChild(outer);
15
+
16
+ const widthNoScroll = outer.offsetWidth;
17
+ outer.style.overflow = "scroll";
18
+
19
+ const inner = document.createElement("div");
20
+ inner.style.width = "100%";
21
+ outer.appendChild(inner);
22
+
23
+ const widthWithScroll = inner.offsetWidth;
24
+ outer.parentNode.removeChild(outer);
25
+
26
+ return widthNoScroll - widthWithScroll;
27
+ }
@@ -0,0 +1,179 @@
1
+ .ve-checkbox {
2
+ cursor: pointer;
3
+ font-size: 12px;
4
+ display: inline-block;
5
+ position: relative;
6
+ vertical-align: middle;
7
+
8
+ &:hover {
9
+ .ve-checkbox-inner {
10
+ border-color: @ve-checkbox-checked-border-color;
11
+ }
12
+ }
13
+
14
+ &-content {
15
+ white-space: nowrap;
16
+ cursor: pointer;
17
+ outline: none;
18
+ display: inline-block;
19
+ line-height: 1;
20
+ position: relative;
21
+ vertical-align: text-bottom;
22
+
23
+ &:hover {
24
+ .ve-checkbox-inner {
25
+ border-color: @ve-checkbox-checked-border-color;
26
+ }
27
+ }
28
+
29
+ // input
30
+ .ve-checkbox-input {
31
+ position: absolute;
32
+ left: 0;
33
+ z-index: 1;
34
+ cursor: pointer;
35
+ opacity: 0;
36
+ filter: alpha(opacity=0);
37
+ top: 0;
38
+ bottom: 0;
39
+ right: 0;
40
+
41
+ &:focus {
42
+ .ve-checkbox-inner {
43
+ border-color: @ve-checkbox-checked-border-color;
44
+ }
45
+ }
46
+ }
47
+
48
+ // checkbox 框
49
+ .ve-checkbox-inner {
50
+ position: relative;
51
+ top: 0;
52
+ left: 0;
53
+ display: block;
54
+ width: 16px;
55
+ height: 16px;
56
+ border: 1px solid #abbacc;
57
+ border-radius: 2px;
58
+ background-color: #fff;
59
+ transition: all 0.3s;
60
+ &:after {
61
+ transform: rotate(45deg) scale(0);
62
+ position: absolute;
63
+ left: 4px;
64
+ top: 2px;
65
+ display: table;
66
+ width: 6px;
67
+ height: 9px;
68
+ border: 2px solid #fff;
69
+ border-top: 0;
70
+ border-left: 0;
71
+ content: " ";
72
+ transition: all 0.1s cubic-bezier(0.71, -0.46, 0.88, 0.6);
73
+ }
74
+ }
75
+ }
76
+
77
+ // 选中时
78
+ .ve-checkbox-checked {
79
+ &:after {
80
+ position: absolute;
81
+ top: 0;
82
+ left: 0;
83
+ width: 100%;
84
+ height: 100%;
85
+ border-radius: 2px;
86
+ border: 1px solid @ve-checkbox-checked-background-color;
87
+ content: "";
88
+ animation-fill-mode: both;
89
+ visibility: hidden;
90
+ }
91
+
92
+ .ve-checkbox-inner {
93
+ background-color: @ve-checkbox-checked-background-color;
94
+ border-color: @ve-checkbox-checked-background-color;
95
+ &:after {
96
+ transform: rotate(45deg) scale(1);
97
+ position: absolute;
98
+ display: table;
99
+ border: 2px solid #fff;
100
+ border-top: 0;
101
+ border-left: 0;
102
+ content: " ";
103
+ transition: all 0.2s cubic-bezier(0.12, 0.4, 0.29, 1.46) 0.1s;
104
+ }
105
+ }
106
+ }
107
+
108
+ // 半选状态
109
+ .ve-checkbox-indeterminate {
110
+ .ve-checkbox-inner {
111
+ background-color: #fff;
112
+ border-color: #d9d9d9;
113
+ position: relative;
114
+ top: 0;
115
+ left: 0;
116
+ direction: ltr;
117
+ background-color: #fff;
118
+ border: 1px solid #d9d9d9;
119
+ border-radius: 2px;
120
+ border-collapse: separate;
121
+ transition: all 0.3s;
122
+ &:after {
123
+ top: 50%;
124
+ left: 50%;
125
+ width: 8px;
126
+ height: 8px;
127
+ background-color: @ve-checkbox-checked-border-color;
128
+ border: 0;
129
+ -webkit-transform: translate(-50%, -50%) scale(1);
130
+ transform: translate(-50%, -50%) scale(1);
131
+ opacity: 1;
132
+ content: " ";
133
+ }
134
+ &:hover {
135
+ border-color: @ve-checkbox-checked-border-color;
136
+ }
137
+ }
138
+
139
+ &.ve-checkbox-disabled {
140
+ .ve-checkbox-inner:after {
141
+ border-color: rgba(0, 0, 0, 0.25);
142
+ }
143
+ }
144
+ }
145
+
146
+ // 禁用选择
147
+ .ve-checkbox-disabled {
148
+ cursor: not-allowed;
149
+ // 禁用的选中
150
+ &.ve-checkbox-checked {
151
+ .ve-checkbox-inner:after {
152
+ animation-name: none;
153
+ border-color: rgba(0, 0, 0, 0.25);
154
+ }
155
+ }
156
+
157
+ .ve-checkbox-input {
158
+ cursor: not-allowed;
159
+ }
160
+
161
+ // 禁用状态的框
162
+ .ve-checkbox-inner {
163
+ color: rgba(0, 0, 0, 0.25);
164
+ cursor: not-allowed;
165
+ border-color: #d9d9d9 !important;
166
+ background-color: #f7f7f7;
167
+ &:after {
168
+ animation-name: none;
169
+ border-color: #f7f7f7;
170
+ }
171
+ }
172
+ }
173
+ // label
174
+ &-label {
175
+ margin: 0 6px 0 3px;
176
+ width: 100%;
177
+ color: @ve-checkbox-label-text-color !important;
178
+ }
179
+ }
@@ -0,0 +1,76 @@
1
+ // popper
2
+ .ve-contextmenu-popper {
3
+ z-index: 9999;
4
+ overflow: hidden;
5
+ border-radius: @ve-contextmenu-border-radius;
6
+ border: 1px solid @ve-contextmenu-border-color;
7
+ background-color: @ve-contextmenu-background-color;
8
+ box-shadow: 0 2px 12px 0 @ve-contextmenu-box-shadow-color;
9
+ }
10
+
11
+ .ve-contextmenu {
12
+ display: flex;
13
+ flex-direction: row;
14
+
15
+ &-panel {
16
+ min-width: @ve-contextmenu-min-width;
17
+ min-height: @ve-contextmenu-min-height;
18
+ overflow: hidden;
19
+
20
+ .ve-contextmenu-list {
21
+ min-height: 100%;
22
+ margin: 0;
23
+ padding: 6px 0;
24
+ list-style: none;
25
+ box-sizing: border-box;
26
+
27
+ .ve-contextmenu-node {
28
+ display: flex;
29
+ align-items: center;
30
+ padding: 0 30px 0 20px;
31
+ height: 34px;
32
+ justify-content: center;
33
+ outline: none;
34
+ color: @ve-contextmenu-node-text-color;
35
+ cursor: pointer;
36
+
37
+ &:not(&-disabled):hover {
38
+ background: @ve-contextmenu-node-hover-background-color;
39
+ color: @ve-contextmenu-node-hover-text-color;
40
+ }
41
+
42
+ &-active {
43
+ background: @ve-contextmenu-node-hover-background-color;
44
+ color: @ve-contextmenu-node-active-text-color;
45
+ }
46
+
47
+ &-label {
48
+ flex: 1;
49
+ padding: 0 10px;
50
+ white-space: nowrap;
51
+ overflow: hidden;
52
+ text-overflow: ellipsis;
53
+ }
54
+
55
+ &-icon-postfix {
56
+ color: @ve-contextmenu-node-icon-postfix-color;
57
+ }
58
+
59
+ &-disabled {
60
+ color: @ve-contextmenu-node-disabled-text-color;
61
+ cursor: not-allowed;
62
+ .ve-contextmenu-node-icon-postfix {
63
+ color: @ve-contextmenu-node-disabled-icon-postfix-color;
64
+ }
65
+ }
66
+ }
67
+
68
+ .ve-contextmenu-node-separator {
69
+ height: 1px;
70
+ margin: 5px 0px;
71
+ border-bottom: 1px solid
72
+ @ve-contextmenu-node-separator-line-color;
73
+ }
74
+ }
75
+ }
76
+ }