evui 2.0.9 → 2.1.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 (185) hide show
  1. package/dist/0b8d1200e71cae8d747dce4e69c4efb6.png +0 -0
  2. package/dist/1.css +4 -0
  3. package/dist/1.css.map +1 -0
  4. package/dist/1.evui.min.js +2 -0
  5. package/dist/1.evui.min.js.map +1 -0
  6. package/dist/1ba679c05036b34bf359aa2e6c450faa.ttf +0 -0
  7. package/dist/2.css +4 -0
  8. package/dist/2.css.map +1 -0
  9. package/dist/2.evui.min.js +2 -0
  10. package/dist/2.evui.min.js.map +1 -0
  11. package/dist/278156e41e0ad908cf7f841b17130502.woff2 +0 -0
  12. package/dist/3.evui.min.js +2 -0
  13. package/dist/3.evui.min.js.map +1 -0
  14. package/dist/32be89b11725274cd3e801192ba88361.ttf +0 -0
  15. package/dist/38c6d8bab26db77d8c806813e1497763.woff2 +0 -0
  16. package/dist/4.evui.min.js +2 -0
  17. package/dist/4.evui.min.js.map +1 -0
  18. package/dist/425399f81e4ce7cbd967685402ba0260.woff +0 -0
  19. package/dist/4730076470a665bbc7b783c56d29a72e.svg +261 -0
  20. package/dist/52e9a7f6ff3af5ad261e5292d07ebdca.eot +0 -0
  21. package/dist/5367103510b27b78482794590e1ce3b0.ttf +0 -0
  22. package/dist/57e963e3d6dd0a9cf05150b40eebf69b.svg +1008 -0
  23. package/dist/65a2fb6d9aaa164b41a039302093995b.ttf +0 -0
  24. package/dist/687a4990ea22bb1a49d469a5d9319790.woff2 +0 -0
  25. package/dist/6c1d906bf5ba48676f65b2d65e935e1a.ttf +0 -0
  26. package/dist/6dafca5a4f1e31f2bdf11939b24ff422.ttf +0 -0
  27. package/dist/752905fa5edf21fc52a10a0c1ca9c7a4.eot +0 -0
  28. package/dist/76c05d80dda67cdc5d03f345b7bd063f.ttf +0 -0
  29. package/dist/7d62eb50e7bb05eedb2a4656f7fe8f3b.svg +366 -0
  30. package/dist/a01e3f2d6c83dc3aee175e2482b3f777.eot +0 -0
  31. package/dist/b30fd8419d7e6d5918856c7531d33482.svg +1518 -0
  32. package/dist/c57dd55fa982e8940f69ca1d69a8a999.woff +0 -0
  33. package/dist/c656b8caa454ed19b9a2ef7f4f5b8fea.ttf +0 -0
  34. package/dist/cac87dc00c87a5d74711d0276713808a.woff +0 -0
  35. package/dist/d68fa3e67dbb653a13cec44b1bcabcfe.eot +0 -0
  36. package/dist/ddae9b1ba9b0b42f58809904b0b21349.woff +0 -0
  37. package/dist/evui.min.js +19 -0
  38. package/dist/evui.min.js.gz +0 -0
  39. package/dist/evui.min.js.map +1 -0
  40. package/dist/main.css +85 -0
  41. package/dist/main.css.gz +0 -0
  42. package/dist/main.css.map +1 -0
  43. package/package.json +56 -76
  44. package/src/common/emitter.js +20 -0
  45. package/src/common/utils.debounce.js +223 -0
  46. package/src/common/utils.js +51 -17
  47. package/src/common/utils.throttle.js +83 -0
  48. package/src/common/utils.tree.js +18 -0
  49. package/src/components/button/button.vue +317 -241
  50. package/src/components/chart/chart.core.js +378 -85
  51. package/src/components/chart/chart.vue +133 -115
  52. package/src/components/chart/element/element.bar.js +219 -25
  53. package/src/components/chart/element/element.bar.time.js +115 -0
  54. package/src/components/chart/element/element.line.js +172 -21
  55. package/src/components/chart/element/element.pie.js +86 -0
  56. package/src/components/chart/element/element.scatter.js +9 -2
  57. package/src/components/chart/element/element.tip.js +356 -0
  58. package/src/components/chart/helpers/helpers.canvas.js +94 -0
  59. package/src/components/chart/helpers/helpers.constant.js +25 -6
  60. package/src/components/chart/helpers/helpers.util.js +83 -38
  61. package/src/components/chart/index.js +0 -1
  62. package/src/components/chart/model/model.series.js +43 -14
  63. package/src/components/chart/model/model.store.js +440 -46
  64. package/src/components/chart/plugins/plugins.interaction.js +324 -0
  65. package/src/components/chart/plugins/plugins.legend.js +233 -91
  66. package/src/components/chart/plugins/plugins.pie.js +179 -0
  67. package/src/components/chart/plugins/plugins.title.js +25 -2
  68. package/src/components/chart/plugins/plugins.tooltip.js +384 -0
  69. package/src/components/chart/scale/scale.js +91 -29
  70. package/src/components/chart/scale/scale.linear.js +12 -0
  71. package/src/components/chart/scale/scale.logarithmic.js +25 -0
  72. package/src/components/chart/scale/scale.step.js +89 -52
  73. package/src/components/chart/scale/scale.time.category.js +204 -0
  74. package/src/components/chart/scale/scale.time.js +19 -1
  75. package/src/components/checkbox/checkbox-group.vue +15 -11
  76. package/src/components/checkbox/checkbox.vue +210 -138
  77. package/src/components/codeview/code.vue +42 -29
  78. package/src/components/contextmenu/contextmenu.child.vue +79 -0
  79. package/src/components/contextmenu/contextmenu.vue +276 -0
  80. package/src/components/contextmenu/contextmenu.wrap.vue +189 -0
  81. package/src/components/contextmenu/index.js +3 -0
  82. package/src/components/datepicker/calendar.core.js +588 -492
  83. package/src/components/datepicker/calendar.vue +0 -3
  84. package/src/components/datepicker/datepicker.vue +43 -15
  85. package/src/components/datepicker/index.js +5 -1
  86. package/src/components/grid/grid.filter.vue +290 -0
  87. package/src/components/grid/grid.filter.window.vue +411 -0
  88. package/src/components/grid/grid.render.vue +45 -0
  89. package/src/components/grid/grid.vue +1338 -0
  90. package/src/components/icon/icon.vue +23 -7
  91. package/src/components/input/input.number.vue +309 -277
  92. package/src/components/label/label.vue +2 -2
  93. package/src/components/loadingmask/loadingmask.vue +6 -13
  94. package/src/components/loginfield/loginfield.vue +46 -37
  95. package/src/components/markdown/index.js +3 -0
  96. package/src/components/markdown/markdown.vue +1001 -0
  97. package/src/components/menu/index.js +1 -3
  98. package/src/components/menu/menu.nav.item.vue +115 -0
  99. package/src/components/menu/menu.nav.sub.vue +42 -0
  100. package/src/components/menu/menu.nav.vue +71 -98
  101. package/src/components/message/index.js +3 -0
  102. package/src/components/message/message.js +63 -0
  103. package/src/components/message/message.vue +191 -0
  104. package/src/components/message-box/index.js +3 -0
  105. package/src/components/message-box/message-box.js +31 -0
  106. package/src/components/message-box/message-box.vue +299 -0
  107. package/src/components/notification/index.js +3 -0
  108. package/src/components/notification/notification.js +75 -0
  109. package/src/components/notification/notification.vue +242 -0
  110. package/src/components/radio/radio-group.vue +6 -2
  111. package/src/components/radio/radio.vue +156 -76
  112. package/src/components/selectbox/dropdown.vue +86 -40
  113. package/src/components/selectbox/listbox.vue +47 -18
  114. package/src/components/selectbox/option.vue +1 -1
  115. package/src/components/selectbox/selectbox.vue +304 -316
  116. package/src/components/slider/slider-tooltip.vue +7 -7
  117. package/src/components/slider/slider.vue +20 -25
  118. package/src/components/splitter/splitter.vue +104 -94
  119. package/src/components/table/table.black.css +1 -1
  120. package/src/components/table/table.filter.lite.vue +7 -7
  121. package/src/components/table/table.filter.vue +1 -1
  122. package/src/components/table/table.grey.css +5 -6
  123. package/src/components/table/table.navy.css +1 -1
  124. package/src/components/table/table.vue +55 -48
  125. package/src/components/tabs/tab-panel.vue +19 -5
  126. package/src/components/tabs/tabs.vue +182 -87
  127. package/src/components/textfield/textfield.vue +110 -87
  128. package/src/components/timepicker/index.js +2 -2
  129. package/src/components/timepicker/spinner.vue +15 -17
  130. package/src/components/timepicker/timepicker.vue +98 -53
  131. package/src/components/toggle/toggle.vue +148 -109
  132. package/src/components/tree/index.js +2 -6
  133. package/src/components/tree/render.js +17 -0
  134. package/src/components/tree/tree-node.vue +214 -0
  135. package/src/components/tree/tree.vue +296 -0
  136. package/src/components/tree-table/index.js +7 -0
  137. package/src/components/{tree → tree-table}/tree.table.black.css +0 -0
  138. package/src/components/{tree → tree-table}/tree.table.grey.css +0 -0
  139. package/src/components/{tree → tree-table}/tree.table.vue +36 -41
  140. package/src/components/{tree → tree-table}/tree.util.js +0 -0
  141. package/src/components/window/window.vue +238 -191
  142. package/src/index.js +25 -12
  143. package/src/styles/base/base.scss +50 -0
  144. package/src/styles/base/index.scss +1 -0
  145. package/src/styles/default.scss +5 -0
  146. package/src/styles/{codemirror.css → lib/codemirror.css} +0 -0
  147. package/src/styles/{all.css → lib/fontawesome.css} +1 -1
  148. package/src/styles/lib/icon.css +792 -0
  149. package/src/styles/themes/index.scss +2 -0
  150. package/src/styles/themes/mixin.scss +33 -0
  151. package/src/styles/themes/variables.scss +206 -0
  152. package/src/styles/utils/colors.scss +222 -0
  153. package/src/styles/utils/index.scss +2 -0
  154. package/src/styles/utils/mixins.scss +34 -0
  155. package/src/styles/utils/variables.scss +27 -0
  156. package/src/webfonts/EVUI.eot +0 -0
  157. package/src/webfonts/EVUI.svg +251 -173
  158. package/src/webfonts/EVUI.ttf +0 -0
  159. package/src/webfonts/EVUI.woff +0 -0
  160. package/src/webfonts/Roboto-Bold.ttf +0 -0
  161. package/src/webfonts/Roboto-Medium.ttf +0 -0
  162. package/src/webfonts/Roboto-Regular.ttf +0 -0
  163. package/src/components/chart/charts/chart.bar.js +0 -334
  164. package/src/components/chart/charts/chart.base.js +0 -1075
  165. package/src/components/chart/charts/chart.line.js +0 -262
  166. package/src/components/chart/charts/chart.pie.js +0 -383
  167. package/src/components/chart/charts/chart.scatter.js +0 -349
  168. package/src/components/chart/charts/chart.sunburst.js +0 -193
  169. package/src/components/chart/core/axis/axis.js +0 -217
  170. package/src/components/chart/core/axis/axis.scale.auto.js +0 -69
  171. package/src/components/chart/core/axis/axis.scale.fixed.js +0 -65
  172. package/src/components/chart/core/axis/axis.scale.steps.js +0 -149
  173. package/src/components/chart/core/core.constant.js +0 -116
  174. package/src/components/chart/core/core.legend.js +0 -473
  175. package/src/components/chart/core/core.util.js +0 -66
  176. package/src/components/chart/core/data/data.js +0 -412
  177. package/src/components/chart/core/data/data.pie.js +0 -70
  178. package/src/components/chart/core/data/data.stack.js +0 -222
  179. package/src/components/chart/core/data/data.sunburst.js +0 -172
  180. package/src/components/menu/menu.context.children.vue +0 -201
  181. package/src/components/menu/menu.context.vue +0 -144
  182. package/src/components/tabs/jun/tab.vue +0 -123
  183. package/src/components/tabs/jun/tabs.vue +0 -484
  184. package/src/styles/evui.css +0 -386
  185. package/src/styles/icon.css +0 -557
@@ -1,8 +1,6 @@
1
1
  <template>
2
2
  <div class="ev-tabs">
3
- <div
4
- class="ev-tabs-header"
5
- >
3
+ <div class="ev-tabs-header">
6
4
  <div
7
5
  :class="{'ev-tabs-scroll': true, 'scrollable': isActiveScroll}"
8
6
  >
@@ -47,25 +45,24 @@
47
45
  :style="`min-width: ${minTabWidth}px;`"
48
46
  :draggable="true"
49
47
  @click="changeTab(tab.value)"
50
- @mouseenter="toggleCloseIcon($event, true)"
51
- @mouseleave="toggleCloseIcon($event, false)"
52
48
  @dragstart="onDragStart($event, tab.value)"
53
49
  @dragover.prevent="onDragOver($event, tab.value)"
54
50
  @dragend.prevent="onDragEnd"
55
51
  >
56
52
  <span
53
+ :style="`font-size: ${titleSize}px;`"
57
54
  class="ev-tabs-item-content"
58
55
  >
59
56
  <ev-icon
60
57
  v-if="tab.icon"
61
58
  :class="tab.icon"
62
- style="margin-right: 3px; font-size: 10px;"
59
+ style="margin-right: 3px; font-size: 12px;"
63
60
  />
64
61
  {{ tab.title }}
65
62
  <ev-icon
66
63
  v-if="!disableRemoveTab && tabList.length > 1"
67
64
  class="ei-close ev-tab-close-btn"
68
- style="margin-left: 3px; font-size: 10px;"
65
+ style="margin-left: 3px; font-size: 12px;"
69
66
  @click.native.stop="removeTab(tab.value)"
70
67
  />
71
68
  </span>
@@ -75,10 +72,8 @@
75
72
  </div>
76
73
  </div>
77
74
  </div>
78
- <div
79
- class="ev-tabs-body"
80
- >
81
- <slot/>
75
+ <div class="ev-tabs-body">
76
+ <slot />
82
77
  </div>
83
78
  </div>
84
79
  </template>
@@ -86,24 +81,46 @@
86
81
  <script>
87
82
  export default {
88
83
  props: {
84
+ /**
85
+ * 탭 목록
86
+ */
89
87
  value: {
90
88
  type: Array,
91
89
  default() {
92
90
  return [];
93
91
  },
94
92
  },
93
+ /**
94
+ * 탭 이동 가능 유무
95
+ */
95
96
  disableMoveTab: {
96
97
  type: Boolean,
97
98
  default: false,
98
99
  },
100
+ /**
101
+ * 탭 제거 가능 유무
102
+ */
99
103
  disableRemoveTab: {
100
104
  type: Boolean,
101
105
  default: false,
102
106
  },
107
+ /**
108
+ * 탭 헤더 너비
109
+ */
103
110
  minTabWidth: {
104
111
  type: Number,
105
112
  default: 100,
106
113
  },
114
+ /**
115
+ * 탭 제목 글자 크기
116
+ */
117
+ titleSize: {
118
+ type: Number,
119
+ default: 16,
120
+ },
121
+ /**
122
+ * 탭 활성화 키값
123
+ */
107
124
  activeTabValue: {
108
125
  type: String,
109
126
  default: '',
@@ -143,17 +160,24 @@
143
160
  activeTabValue(value) {
144
161
  if (this.checkValid(value)) {
145
162
  this.activeTab = value;
146
- this.toggleScrollIcon();
163
+ setTimeout(() => this.toggleScrollIcon());
147
164
  }
148
165
  },
149
166
  },
150
167
  mounted() {
151
168
  if (!this.checkValid(this.activeTab) && this.tabList.length) {
152
169
  this.activeTab = this.tabList[0].value;
153
- this.toggleScrollIcon();
154
170
  }
171
+
172
+ setTimeout(() => this.toggleScrollIcon());
155
173
  },
156
174
  methods: {
175
+ /**
176
+ * 해당 키값을 가진 탭이 존재하는지 확인한다.
177
+ *
178
+ * @param {string} value - 탭의 키값
179
+ * @returns {boolean} 탭 존재 유무
180
+ */
157
181
  checkValid(value) {
158
182
  let isExist = false;
159
183
 
@@ -166,6 +190,12 @@
166
190
 
167
191
  return isExist;
168
192
  },
193
+ /**
194
+ * dragstart 이벤트를 처리한다.
195
+ *
196
+ * @param {object} e - 이벤트 객체
197
+ * @param {string} value - 탭의 키값
198
+ */
169
199
  onDragStart(e, value) {
170
200
  if (this.disableMoveTab) {
171
201
  return;
@@ -174,6 +204,12 @@
174
204
  e.dataTransfer.effectAllowed = 'move';
175
205
  this.dragStartValue = value;
176
206
  },
207
+ /**
208
+ * dragover 이벤트를 처리한다.
209
+ *
210
+ * @param {object} e - 이벤트 객체
211
+ * @param {string} value - 탭의 키값
212
+ */
177
213
  onDragOver(e, value) {
178
214
  if (this.disableMoveTab) {
179
215
  return;
@@ -182,6 +218,9 @@
182
218
  e.dataTransfer.dropEffect = 'move';
183
219
  this.dragOverValue = value;
184
220
  },
221
+ /**
222
+ * dragend 이벤트를 처리한다.
223
+ */
185
224
  onDragEnd() {
186
225
  let dragIndex;
187
226
  let moveIndex;
@@ -213,6 +252,11 @@
213
252
  this.dragStartValue = '';
214
253
  this.dragOverValue = '';
215
254
  },
255
+ /**
256
+ * mousewheel 이벤트를 처리한다.
257
+ *
258
+ * @param {object} e - 이벤트 객체
259
+ */
216
260
  onMouseWheel(e) {
217
261
  if (this.isActiveScroll) {
218
262
  if (e.deltaY < 0) {
@@ -222,6 +266,11 @@
222
266
  }
223
267
  }
224
268
  },
269
+ /**
270
+ * scroll 이벤트를 처리한다.
271
+ *
272
+ * @param {string} type - 이동 방향
273
+ */
225
274
  onMoveScroll(type) {
226
275
  const currentOffset = this.currentOffset;
227
276
  const minTabWidth = this.minTabWidth;
@@ -249,6 +298,9 @@
249
298
  }
250
299
  }
251
300
  },
301
+ /**
302
+ * tab scroll icon 표시 유무를 처리한다.
303
+ */
252
304
  toggleScrollIcon() {
253
305
  const navWidth = this.$refs.nav.offsetWidth;
254
306
  const navWrapWidth = this.$refs.navWrap.offsetWidth;
@@ -266,6 +318,9 @@
266
318
  this.moveToScroll();
267
319
  }
268
320
  },
321
+ /**
322
+ * tab scroll 관련 offset 계산하여 적용한다.
323
+ */
269
324
  moveToScroll() {
270
325
  setTimeout(() => {
271
326
  const nav = this.$refs.nav;
@@ -273,9 +328,13 @@
273
328
  const navWrapWidth = this.$refs.navWrap.offsetWidth;
274
329
  const activeTabRect = nav.querySelector(`div[value='${this.activeTab}']`).getBoundingClientRect();
275
330
  const activeTabWidth = (activeTabRect.left + activeTabRect.width) - navRect.left;
276
- const moveOffset = navWrapWidth - (activeTabWidth + 4);
331
+ let moveOffset = navWrapWidth - activeTabWidth;
277
332
  const maxMoveOffset = navRect.width - navWrapWidth;
278
333
 
334
+ if (this.tabList[this.tabList.length - 1].value !== this.activeTab) {
335
+ moveOffset += 4;
336
+ }
337
+
279
338
  this.currentOffset = moveOffset > 0 ? 0 : moveOffset;
280
339
  if (this.currentOffset) {
281
340
  this.disablePrev = false;
@@ -286,26 +345,30 @@
286
345
  }
287
346
  });
288
347
  },
289
- toggleCloseIcon(e, value) {
290
- if (this.disableRemoveTab) {
291
- return;
292
- }
293
-
294
- const itemContent = e.target.getElementsByClassName('ev-tabs-item-content')[0];
295
- if (value) {
296
- itemContent.classList.add('icon');
297
- } else {
298
- itemContent.classList.remove('icon');
299
- }
300
- },
348
+ /**
349
+ * 변경에 대해서 치리한다.
350
+ *
351
+ * @param {string} value - 탭의 키값
352
+ */
301
353
  changeTab(value) {
302
354
  if (this.activeTab === value) {
303
355
  return;
304
356
  }
305
357
 
358
+ /**
359
+ * 탭 변경 이벤트
360
+ *
361
+ * @property {string} oldTab - 이전 탭 키값
362
+ * @property {string} newTab - 현재 탭 키값
363
+ */
306
364
  this.$emit('change-tab', this.activeTab, value);
307
365
  this.activeTab = value;
308
366
  },
367
+ /**
368
+ * 탭 제거에 대해서 처리한다.
369
+ *
370
+ * @param {string} value - 탭의 키값
371
+ */
309
372
  removeTab(value) {
310
373
  let removeIndex;
311
374
  let removeTab;
@@ -326,9 +389,20 @@
326
389
  if (this.activeTab === value) {
327
390
  removeIndex = this.tabList.length === removeIndex ? removeIndex - 1 : removeIndex;
328
391
  this.activeTab = this.tabList[removeIndex].value;
392
+ /**
393
+ * 탭 변경 이벤트
394
+ *
395
+ * @property {string} oldTab - 이전 탭 키값
396
+ * @property {string} newTab - 현재 탭 키값
397
+ */
329
398
  this.$emit('change-tab', value, this.activeTab);
330
399
  }
331
400
 
401
+ /**
402
+ * 탭 제거 이벤트
403
+ *
404
+ * @property {string} removeTab - 제거된 탭 키값
405
+ */
332
406
  this.$emit('remove-tab', removeTab);
333
407
  this.$emit('input', this.tabList);
334
408
  setTimeout(() => this.toggleScrollIcon());
@@ -337,11 +411,13 @@
337
411
  };
338
412
  </script>
339
413
 
340
- <style>
414
+ <style lang="scss">
415
+ @import '~@/styles/default';
416
+
341
417
  .ev-tabs {
342
418
  width: 100%;
343
419
  height: 100%;
344
- padding-top: 30px;
420
+ padding-top: 36px;
345
421
  position: relative;
346
422
  }
347
423
  .ev-tabs-header {
@@ -349,98 +425,117 @@
349
425
  padding: 0;
350
426
  top: 0;
351
427
  width: 100%;
352
- height: 30px;
353
- border-bottom: 1px solid #dddee1;
428
+ height: 36px;
429
+
430
+ @include evThemify() {
431
+ border-bottom: $border-solid evThemed('tab-border');
432
+ }
354
433
  }
355
434
  .ev-tabs-body {
356
435
  position: relative;
357
436
  width: 100%;
358
437
  height: 100%;
359
- border: 1px solid #dddee1;
360
- border-top: 0;
438
+ overflow: auto;
439
+
440
+ @include evThemify() {
441
+ color: evThemed('font-color-base');
442
+ border: $border-solid evThemed('tab-border');
443
+ background-color: evThemed('tab-active-bg');
444
+ border-top: 0;
445
+ }
361
446
  }
362
447
  .ev-tabs-scroll {
363
448
  box-sizing: border-box;
364
449
  overflow: hidden;
365
450
  margin-bottom: -1px;
366
451
  position: relative;
367
- }
368
- .ev-tabs-scroll.scrollable {
369
- padding: 0 15px;
452
+
453
+ &.scrollable {
454
+ padding: 0 15px;
455
+ }
370
456
  }
371
457
  .ev-tabs-nav-wrap {
372
458
  overflow: hidden;
373
459
  }
374
460
  .ev-tabs-nav {
375
- border: 1px solid #dddee1;
376
- border-bottom: none;
377
- border-top: none;
378
- border-radius: 4px 4px 0 0;
379
461
  box-sizing: border-box;
380
462
  white-space: nowrap;
381
463
  position: relative;
382
464
  transition: transform .3s;
383
465
  float: left;
384
466
  }
385
- .ev-tabs-nav:first-child {
386
- border-left: none;
387
- }
388
- .ev-tabs-nav:last-child {
389
- border-right: none;
390
- }
391
467
  .ev-tabs-item {
392
- margin-right: 4px;
393
- height: 30px;
394
- box-sizing: border-box;
395
- display: inline-block;
396
- font-size: 12px;
397
- font-weight: 500;
398
- color: #303133;
399
468
  position: relative;
400
- background: #f8f8f9;
401
- border: 1px solid #dddee1;
469
+ display: inline-block;
470
+ height: 36px;
471
+ box-sizing: border-box;
402
472
  user-select: none;
403
- }
404
- .ev-tabs-item.active {
405
- background: #fff;
406
- transform: translateZ(0);
407
- color: #2d8cf0;
408
- border-bottom: none;
409
- }
410
- .ev-tabs-item:hover {
411
- color: #2589E9;
412
- font-weight: bold;
413
473
  cursor: pointer;
414
- }
415
- .ev-tabs-item.dragover {
416
- border-left: 3px solid blue;
417
- }
418
- .ev-tab-close-btn {
419
- width: 0;
420
- overflow: hidden;
421
- font-weight: normal;
422
- }
423
- .ev-tabs-item > .icon > .ev-tab-close-btn {
424
- width: 10px;
425
- }
426
- .ev-tab-close-btn:hover {
427
- font-weight: bold;
428
- color: red;
474
+ border-radius: 2px;
475
+
476
+ @include evThemify() {
477
+ color: evThemed('tab-color');
478
+ border: $border-solid evThemed('tab-border');
479
+ background-color: evThemed('tab-bg');
480
+ }
481
+
482
+ &.active {
483
+ transform: translateZ(0);
484
+ border-bottom: none;
485
+
486
+ @include evThemify() {
487
+ color: evThemed('tab-color');
488
+ background-color: evThemed('tab-active-bg');
489
+ }
490
+
491
+ & .ev-tabs-item-content {
492
+ @include evThemify() {
493
+ color: evThemed('tab-color');
494
+ }
495
+ }
496
+ }
497
+
498
+ &.dragover {
499
+ border-left: 3px solid blue;
500
+ }
501
+
502
+ &:not(:last-child) {
503
+ margin-right: 4px;
504
+ }
429
505
  }
430
506
  .ev-tabs-item-content {
431
507
  display: flex;
432
- align-items: baseline;
508
+ align-items: center;
433
509
  justify-content: center;
434
- padding: 5px 16px 4px;
435
- font-size: 14px;
510
+ line-height: 36px;
511
+ text-align: center;
512
+ padding: 0 5px;
513
+
514
+ @include evThemify() {
515
+ color: rgba(evThemed('tab-color'), 0.7);
516
+ }
517
+
518
+ & .ev-tab-close-btn {
519
+ width: 12px;
520
+
521
+ &:hover {
522
+ font-weight: bold;
523
+ color: red;
524
+ }
525
+ }
436
526
  }
437
527
  .ev-tab-scroll-icon {
438
528
  position: absolute;
439
- line-height: 30px;
529
+ line-height: 36px;
440
530
  cursor: pointer;
441
- }
442
- .ev-tab-scroll-icon.disabled {
443
- opacity: 0.3;
444
- cursor: not-allowed;
531
+
532
+ @include evThemify() {
533
+ border: $border-solid evThemed('tab-border');
534
+ }
535
+
536
+ &.disabled {
537
+ opacity: 0.3;
538
+ cursor: not-allowed;
539
+ }
445
540
  }
446
541
  </style>