@vtj/materials 0.10.6 → 0.10.7

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 (77) hide show
  1. package/dist/assets/antdv/index.umd.js +2 -2
  2. package/dist/assets/charts/index.umd.js +2 -2
  3. package/dist/assets/element/index.umd.js +2 -2
  4. package/dist/assets/ui/index.umd.js +2 -2
  5. package/dist/assets/uni-h5/index.umd.js +3 -3
  6. package/dist/assets/uni-ui/index.umd.js +3 -3
  7. package/dist/assets/vant/index.umd.js +2 -2
  8. package/dist/deps/@vtj/charts/index.umd.js +2 -2
  9. package/dist/deps/@vtj/icons/index.umd.js +2 -2
  10. package/dist/deps/@vtj/ui/index.umd.js +3 -3
  11. package/dist/deps/@vtj/utils/index.umd.js +20 -20
  12. package/dist/deps/@vueuse/core/index.iife.min.js +1 -1
  13. package/dist/deps/uni-ui/index.umd.js +1 -1
  14. package/dist/deps/uni-ui/style.css +1 -1
  15. package/package.json +7 -7
  16. package/src/uni-h5/components/input.ts +2 -2
  17. package/src/uni-h5/components/scrollView.ts +3 -3
  18. package/src/uni-h5/components/video.ts +1 -1
  19. package/src/uni-ui/components/badge.ts +1 -5
  20. package/src/uni-ui/components/breadcrumb.ts +1 -20
  21. package/src/uni-ui/components/collapse.ts +22 -23
  22. package/src/uni-ui/components/grid.ts +0 -9
  23. package/src/uni-ui/components/group.ts +1 -10
  24. package/src/uni-ui/components/index.ts +4 -4
  25. package/src/uni-ui/components/popup.ts +10 -2
  26. package/src/uni-ui/components/swiperDot.ts +21 -7
  27. package/src/uni-ui/components/table.ts +9 -3
  28. package/src/uni-ui/components/transition.ts +10 -1
  29. package/src/uni-ui/index.ts +19 -44
  30. package/src/uni-ui/lib/uni-collapse/uni-collapse.vue +153 -0
  31. package/src/uni-ui/lib/uni-collapse-item/uni-collapse-item.vue +425 -0
  32. package/src/uni-ui/lib/uni-data-picker/keypress.js +45 -0
  33. package/src/uni-ui/lib/uni-data-picker/uni-data-picker.vue +604 -0
  34. package/src/uni-ui/lib/uni-data-pickerview/uni-data-picker.js +622 -0
  35. package/src/uni-ui/lib/uni-data-pickerview/uni-data-pickerview.css +76 -0
  36. package/src/uni-ui/lib/uni-data-pickerview/uni-data-pickerview.vue +335 -0
  37. package/src/uni-ui/lib/uni-datetime-picker/calendar-item.vue +181 -170
  38. package/src/uni-ui/lib/uni-datetime-picker/calendar.vue +977 -939
  39. package/src/uni-ui/lib/uni-datetime-picker/time-picker.vue +1024 -932
  40. package/src/uni-ui/lib/uni-datetime-picker/uni-datetime-picker.vue +15 -17
  41. package/src/uni-ui/lib/uni-datetime-picker/util.js +419 -392
  42. package/src/uni-ui/lib/uni-fav/i18n/en.json +4 -0
  43. package/src/uni-ui/lib/uni-fav/i18n/index.js +8 -0
  44. package/src/uni-ui/lib/uni-fav/i18n/zh-Hans.json +4 -0
  45. package/src/uni-ui/lib/uni-fav/i18n/zh-Hant.json +4 -0
  46. package/src/uni-ui/lib/uni-fav/uni-fav.vue +170 -0
  47. package/src/uni-ui/lib/uni-file-picker/choose-and-upload-file.js +280 -0
  48. package/src/uni-ui/lib/uni-file-picker/uni-file-picker.vue +668 -0
  49. package/src/uni-ui/lib/uni-file-picker/upload-file.vue +325 -0
  50. package/src/uni-ui/lib/uni-file-picker/upload-image.vue +292 -0
  51. package/src/uni-ui/lib/uni-file-picker/utils.js +110 -0
  52. package/src/uni-ui/lib/uni-grid/uni-grid.vue +148 -0
  53. package/src/uni-ui/lib/uni-indexed-list/uni-indexed-list-item.vue +152 -128
  54. package/src/uni-ui/lib/uni-indexed-list/uni-indexed-list.vue +50 -50
  55. package/src/uni-ui/lib/uni-load-more/i18n/en.json +5 -0
  56. package/src/uni-ui/lib/uni-load-more/i18n/index.js +8 -0
  57. package/src/uni-ui/lib/uni-load-more/i18n/zh-Hans.json +5 -0
  58. package/src/uni-ui/lib/uni-load-more/i18n/zh-Hant.json +5 -0
  59. package/src/uni-ui/lib/uni-load-more/uni-load-more.vue +456 -0
  60. package/src/uni-ui/lib/uni-notice-bar/uni-notice-bar.vue +484 -0
  61. package/src/uni-ui/lib/uni-popup/uni-popup.vue +4 -4
  62. package/src/uni-ui/lib/uni-popup-message/uni-popup-message.vue +149 -0
  63. package/src/uni-ui/lib/uni-rate/uni-rate.vue +362 -343
  64. package/src/uni-ui/lib/uni-row/uni-row.vue +193 -0
  65. package/src/uni-ui/lib/uni-search-bar/i18n/en.json +4 -0
  66. package/src/uni-ui/lib/uni-search-bar/i18n/index.js +8 -0
  67. package/src/uni-ui/lib/uni-search-bar/i18n/zh-Hans.json +4 -0
  68. package/src/uni-ui/lib/uni-search-bar/i18n/zh-Hant.json +4 -0
  69. package/src/uni-ui/lib/uni-search-bar/uni-search-bar.vue +339 -0
  70. package/src/uni-ui/lib/uni-swipe-action-item/bindingx.js +294 -285
  71. package/src/uni-ui/lib/uni-swipe-action-item/uni-swipe-action-item.vue +8 -9
  72. package/src/uni-ui/lib/uni-th/filter-dropdown.vue +551 -503
  73. package/src/uni-ui/lib/uni-tr/table-checkbox.vue +165 -163
  74. package/src/uni-ui/lib/uni-tr/uni-tr.vue +6 -6
  75. package/src/uni-ui/lib/uni-transition/createAnimation.js +131 -0
  76. package/src/uni-ui/lib/uni-transition/uni-transition.vue +310 -0
  77. package/src/version.ts +2 -2
@@ -0,0 +1,604 @@
1
+ <template>
2
+ <view class="uni-data-tree">
3
+ <view class="uni-data-tree-input" @click="handleInput">
4
+ <slot :options="options" :data="inputSelected" :error="errorMessage">
5
+ <view class="input-value" :class="{ 'input-value-border': border }">
6
+ <text v-if="errorMessage" class="selected-area error-text">{{
7
+ errorMessage
8
+ }}</text>
9
+ <view v-else-if="loading && !isOpened" class="selected-area">
10
+ <uni-load-more
11
+ class="load-more"
12
+ :contentText="loadMore"
13
+ status="loading"></uni-load-more>
14
+ </view>
15
+ <scroll-view
16
+ v-else-if="inputSelected.length"
17
+ class="selected-area"
18
+ scroll-x="true">
19
+ <view class="selected-list">
20
+ <view
21
+ class="selected-item"
22
+ v-for="(item, index) in inputSelected"
23
+ :key="index">
24
+ <text class="text-color">{{ item.text }}</text
25
+ ><text
26
+ v-if="index < inputSelected.length - 1"
27
+ class="input-split-line"
28
+ >{{ split }}</text
29
+ >
30
+ </view>
31
+ </view>
32
+ </scroll-view>
33
+ <text v-else class="selected-area placeholder">{{
34
+ placeholder
35
+ }}</text>
36
+ <view
37
+ v-if="clearIcon && !readonly && inputSelected.length"
38
+ class="icon-clear"
39
+ @click.stop="clear">
40
+ <uni-icons type="clear" color="#c0c4cc" size="24"></uni-icons>
41
+ </view>
42
+ <view
43
+ class="arrow-area"
44
+ v-if="(!clearIcon || !inputSelected.length) && !readonly">
45
+ <view class="input-arrow"></view>
46
+ </view>
47
+ </view>
48
+ </slot>
49
+ </view>
50
+ <view
51
+ class="uni-data-tree-cover"
52
+ v-if="isOpened"
53
+ @click="handleClose"></view>
54
+ <view class="uni-data-tree-dialog" v-if="isOpened">
55
+ <view class="uni-popper__arrow"></view>
56
+ <view class="dialog-caption">
57
+ <view class="title-area">
58
+ <text class="dialog-title">{{ popupTitle }}</text>
59
+ </view>
60
+ <view class="dialog-close" @click="handleClose">
61
+ <view class="dialog-close-plus" data-id="close"></view>
62
+ <view
63
+ class="dialog-close-plus dialog-close-rotate"
64
+ data-id="close"></view>
65
+ </view>
66
+ </view>
67
+ <data-picker-view
68
+ class="picker-view"
69
+ ref="pickerView"
70
+ v-model="dataValue"
71
+ :localdata="localdata"
72
+ :preload="preload"
73
+ :collection="collection"
74
+ :field="field"
75
+ :orderby="orderby"
76
+ :where="where"
77
+ :step-searh="stepSearh"
78
+ :self-field="selfField"
79
+ :parent-field="parentField"
80
+ :managed-mode="true"
81
+ :map="map"
82
+ :ellipsis="ellipsis"
83
+ @change="onchange"
84
+ @datachange="ondatachange"
85
+ @nodeclick="onnodeclick">
86
+ </data-picker-view>
87
+ </view>
88
+ </view>
89
+ </template>
90
+
91
+ <script>
92
+ import dataPicker from '../uni-data-pickerview/uni-data-picker.js';
93
+ import DataPickerView from '../uni-data-pickerview/uni-data-pickerview.vue';
94
+
95
+ /**
96
+ * DataPicker 级联选择
97
+ * @description 支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。
98
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=3796
99
+ * @property {String} popup-title 弹出窗口标题
100
+ * @property {Array} localdata 本地数据,参考
101
+ * @property {Boolean} border = [true|false] 是否有边框
102
+ * @property {Boolean} readonly = [true|false] 是否仅读
103
+ * @property {Boolean} preload = [true|false] 是否预加载数据
104
+ * @value true 开启预加载数据,点击弹出窗口后显示已加载数据
105
+ * @value false 关闭预加载数据,点击弹出窗口后开始加载数据
106
+ * @property {Boolean} step-searh = [true|false] 是否分布查询
107
+ * @value true 启用分布查询,仅查询当前选中节点
108
+ * @value false 关闭分布查询,一次查询出所有数据
109
+ * @property {String|DBFieldString} self-field 分布查询当前字段名称
110
+ * @property {String|DBFieldString} parent-field 分布查询父字段名称
111
+ * @property {String|DBCollectionString} collection 表名
112
+ * @property {String|DBFieldString} field 查询字段,多个字段用 `,` 分割
113
+ * @property {String} orderby 排序字段及正序倒叙设置
114
+ * @property {String|JQLString} where 查询条件
115
+ * @event {Function} popupshow 弹出的选择窗口打开时触发此事件
116
+ * @event {Function} popuphide 弹出的选择窗口关闭时触发此事件
117
+ */
118
+ export default {
119
+ name: 'UniDataPicker',
120
+ emits: [
121
+ 'popupopened',
122
+ 'popupclosed',
123
+ 'nodeclick',
124
+ 'input',
125
+ 'change',
126
+ 'update:modelValue',
127
+ 'inputclick'
128
+ ],
129
+ mixins: [dataPicker],
130
+ components: {
131
+ DataPickerView
132
+ },
133
+ props: {
134
+ options: {
135
+ type: [Object, Array],
136
+ default() {
137
+ return {};
138
+ }
139
+ },
140
+ popupTitle: {
141
+ type: String,
142
+ default: '请选择'
143
+ },
144
+ placeholder: {
145
+ type: String,
146
+ default: '请选择'
147
+ },
148
+ heightMobile: {
149
+ type: String,
150
+ default: ''
151
+ },
152
+ readonly: {
153
+ type: Boolean,
154
+ default: false
155
+ },
156
+ clearIcon: {
157
+ type: Boolean,
158
+ default: true
159
+ },
160
+ border: {
161
+ type: Boolean,
162
+ default: true
163
+ },
164
+ split: {
165
+ type: String,
166
+ default: '/'
167
+ },
168
+ ellipsis: {
169
+ type: Boolean,
170
+ default: true
171
+ }
172
+ },
173
+ data() {
174
+ return {
175
+ isOpened: false,
176
+ inputSelected: []
177
+ };
178
+ },
179
+ created() {
180
+ this.$nextTick(() => {
181
+ this.load();
182
+ });
183
+ },
184
+ watch: {
185
+ localdata: {
186
+ handler() {
187
+ this.load();
188
+ },
189
+ deep: true
190
+ }
191
+ },
192
+ methods: {
193
+ clear() {
194
+ this._dispatchEvent([]);
195
+ },
196
+ onPropsChange() {
197
+ this._treeData = [];
198
+ this.selectedIndex = 0;
199
+
200
+ this.load();
201
+ },
202
+ load() {
203
+ if (this.readonly) {
204
+ this._processReadonly(this.localdata, this.dataValue);
205
+ return;
206
+ }
207
+
208
+ // 回显本地数据
209
+ if (this.isLocalData) {
210
+ this.loadData();
211
+ this.inputSelected = this.selected.slice(0);
212
+ } else if (this.isCloudDataList || this.isCloudDataTree) {
213
+ // 回显 Cloud 数据
214
+ this.loading = true;
215
+ this.getCloudDataValue()
216
+ .then((res) => {
217
+ this.loading = false;
218
+ this.inputSelected = res;
219
+ })
220
+ .catch((err) => {
221
+ this.loading = false;
222
+ this.errorMessage = err;
223
+ });
224
+ }
225
+ },
226
+ show() {
227
+ this.isOpened = true;
228
+ setTimeout(() => {
229
+ this.$refs.pickerView.updateData({
230
+ treeData: this._treeData,
231
+ selected: this.selected,
232
+ selectedIndex: this.selectedIndex
233
+ });
234
+ }, 200);
235
+ this.$emit('popupopened');
236
+ },
237
+ hide() {
238
+ this.isOpened = false;
239
+ this.$emit('popupclosed');
240
+ },
241
+ handleInput() {
242
+ if (this.readonly) {
243
+ this.$emit('inputclick');
244
+ return;
245
+ }
246
+ this.show();
247
+ },
248
+ handleClose(e) {
249
+ this.hide();
250
+ },
251
+ onnodeclick(e) {
252
+ this.$emit('nodeclick', e);
253
+ },
254
+ ondatachange(e) {
255
+ this._treeData = this.$refs.pickerView._treeData;
256
+ },
257
+ onchange(e) {
258
+ this.hide();
259
+ this.$nextTick(() => {
260
+ this.inputSelected = e;
261
+ });
262
+ this._dispatchEvent(e);
263
+ },
264
+ _processReadonly(dataList, value) {
265
+ var isTree = dataList.findIndex((item) => {
266
+ return item.children;
267
+ });
268
+ if (isTree > -1) {
269
+ let inputValue;
270
+ if (Array.isArray(value)) {
271
+ inputValue = value[value.length - 1];
272
+ if (typeof inputValue === 'object' && inputValue.value) {
273
+ inputValue = inputValue.value;
274
+ }
275
+ } else {
276
+ inputValue = value;
277
+ }
278
+ this.inputSelected = this._findNodePath(inputValue, this.localdata);
279
+ return;
280
+ }
281
+
282
+ if (!this.hasValue) {
283
+ this.inputSelected = [];
284
+ return;
285
+ }
286
+
287
+ let result = [];
288
+ for (let i = 0; i < value.length; i++) {
289
+ var val = value[i];
290
+ var item = dataList.find((v) => {
291
+ return v.value == val;
292
+ });
293
+ if (item) {
294
+ result.push(item);
295
+ }
296
+ }
297
+ if (result.length) {
298
+ this.inputSelected = result;
299
+ }
300
+ },
301
+ _filterForArray(data, valueArray) {
302
+ var result = [];
303
+ for (let i = 0; i < valueArray.length; i++) {
304
+ var value = valueArray[i];
305
+ var found = data.find((item) => {
306
+ return item.value == value;
307
+ });
308
+ if (found) {
309
+ result.push(found);
310
+ }
311
+ }
312
+ return result;
313
+ },
314
+ _dispatchEvent(selected) {
315
+ let item = {};
316
+ if (selected.length) {
317
+ var value = new Array(selected.length);
318
+ for (var i = 0; i < selected.length; i++) {
319
+ value[i] = selected[i].value;
320
+ }
321
+ item = selected[selected.length - 1];
322
+ } else {
323
+ item.value = '';
324
+ }
325
+ if (this.formItem) {
326
+ this.formItem.setValue(item.value);
327
+ }
328
+
329
+ this.$emit('input', item.value);
330
+ this.$emit('update:modelValue', item.value);
331
+ this.$emit('change', {
332
+ detail: {
333
+ value: selected
334
+ }
335
+ });
336
+ }
337
+ }
338
+ };
339
+ </script>
340
+
341
+ <style>
342
+ .uni-data-tree {
343
+ flex: 1;
344
+ position: relative;
345
+ font-size: 14px;
346
+ }
347
+
348
+ .error-text {
349
+ color: #dd524d;
350
+ }
351
+
352
+ .input-value {
353
+ /* #ifndef APP-NVUE */
354
+ display: flex;
355
+ /* #endif */
356
+ flex-direction: row;
357
+ align-items: center;
358
+ flex-wrap: nowrap;
359
+ font-size: 14px;
360
+ /* line-height: 35px; */
361
+ padding: 0 10px;
362
+ padding-right: 5px;
363
+ overflow: hidden;
364
+ height: 35px;
365
+ /* #ifndef APP-NVUE */
366
+ box-sizing: border-box;
367
+ /* #endif */
368
+ }
369
+
370
+ .input-value-border {
371
+ border: 1px solid #e5e5e5;
372
+ border-radius: 5px;
373
+ }
374
+
375
+ .selected-area {
376
+ /* flex: 1; */
377
+ overflow: hidden;
378
+ /* #ifndef APP-NVUE */
379
+ display: flex;
380
+ /* #endif */
381
+ flex-direction: row;
382
+ }
383
+
384
+ .load-more {
385
+ /* #ifndef APP-NVUE */
386
+ margin-right: auto;
387
+ /* #endif */
388
+ /* #ifdef APP-NVUE */
389
+ /* width: 40px; */
390
+ /* #endif */
391
+ }
392
+
393
+ .selected-list {
394
+ /* #ifndef APP-NVUE */
395
+ display: flex;
396
+ /* #endif */
397
+ flex-direction: row;
398
+ flex-wrap: nowrap;
399
+ /* padding: 0 5px; */
400
+ }
401
+
402
+ .selected-item {
403
+ flex-direction: row;
404
+ /* padding: 0 1px; */
405
+ /* #ifndef APP-NVUE */
406
+ white-space: nowrap;
407
+ /* #endif */
408
+ }
409
+
410
+ .text-color {
411
+ color: #333;
412
+ }
413
+
414
+ .placeholder {
415
+ color: grey;
416
+ font-size: 12px;
417
+ }
418
+
419
+ .input-split-line {
420
+ opacity: 0.5;
421
+ }
422
+
423
+ .arrow-area {
424
+ position: relative;
425
+ width: 20px;
426
+ /* #ifndef APP-NVUE */
427
+ margin-bottom: 5px;
428
+ margin-left: auto;
429
+ display: flex;
430
+ /* #endif */
431
+ justify-content: center;
432
+ transform: rotate(-45deg);
433
+ transform-origin: center;
434
+ }
435
+
436
+ .input-arrow {
437
+ width: 7px;
438
+ height: 7px;
439
+ border-left: 1px solid #999;
440
+ border-bottom: 1px solid #999;
441
+ }
442
+
443
+ .uni-data-tree-cover {
444
+ position: fixed;
445
+ left: 0;
446
+ top: 0;
447
+ right: 0;
448
+ bottom: 0;
449
+ background-color: rgba(0, 0, 0, 0.4);
450
+ /* #ifndef APP-NVUE */
451
+ display: flex;
452
+ /* #endif */
453
+ flex-direction: column;
454
+ z-index: 100;
455
+ }
456
+
457
+ .uni-data-tree-dialog {
458
+ position: fixed;
459
+ left: 0;
460
+ /* #ifndef APP-NVUE */
461
+ top: 20%;
462
+ /* #endif */
463
+ /* #ifdef APP-NVUE */
464
+ /* top: 200px; */
465
+ /* #endif */
466
+ right: 0;
467
+ bottom: 0;
468
+ background-color: #ffffff;
469
+ border-top-left-radius: 10px;
470
+ border-top-right-radius: 10px;
471
+ /* #ifndef APP-NVUE */
472
+ display: flex;
473
+ /* #endif */
474
+ flex-direction: column;
475
+ z-index: 102;
476
+ overflow: hidden;
477
+ /* #ifdef APP-NVUE */
478
+ /* width: 750rpx; */
479
+ /* #endif */
480
+ }
481
+
482
+ .dialog-caption {
483
+ position: relative;
484
+ /* #ifndef APP-NVUE */
485
+ display: flex;
486
+ /* #endif */
487
+ flex-direction: row;
488
+ /* border-bottom: 1px solid #f0f0f0; */
489
+ }
490
+
491
+ .title-area {
492
+ /* #ifndef APP-NVUE */
493
+ display: flex;
494
+ /* #endif */
495
+ align-items: center;
496
+ /* #ifndef APP-NVUE */
497
+ margin: auto;
498
+ /* #endif */
499
+ padding: 0 10px;
500
+ }
501
+
502
+ .dialog-title {
503
+ /* font-weight: bold; */
504
+ line-height: 44px;
505
+ }
506
+
507
+ .dialog-close {
508
+ position: absolute;
509
+ top: 0;
510
+ right: 0;
511
+ bottom: 0;
512
+ /* #ifndef APP-NVUE */
513
+ display: flex;
514
+ /* #endif */
515
+ flex-direction: row;
516
+ align-items: center;
517
+ padding: 0 15px;
518
+ }
519
+
520
+ .dialog-close-plus {
521
+ width: 16px;
522
+ height: 2px;
523
+ background-color: #666;
524
+ border-radius: 2px;
525
+ transform: rotate(45deg);
526
+ }
527
+
528
+ .dialog-close-rotate {
529
+ position: absolute;
530
+ transform: rotate(-45deg);
531
+ }
532
+
533
+ .picker-view {
534
+ flex: 1;
535
+ overflow: hidden;
536
+ }
537
+
538
+ .icon-clear {
539
+ display: flex;
540
+ align-items: center;
541
+ }
542
+
543
+ /* #ifdef H5 */
544
+ @media all and (min-width: 768px) {
545
+ .uni-data-tree-cover {
546
+ background-color: transparent;
547
+ }
548
+
549
+ .uni-data-tree-dialog {
550
+ position: absolute;
551
+ top: 55px;
552
+ height: auto;
553
+ min-height: 400px;
554
+ max-height: 50vh;
555
+ background-color: #fff;
556
+ border: 1px solid #ebeef5;
557
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
558
+ border-radius: 4px;
559
+ overflow: unset;
560
+ }
561
+
562
+ .dialog-caption {
563
+ display: none;
564
+ }
565
+
566
+ .icon-clear {
567
+ /* margin-right: 5px; */
568
+ }
569
+ }
570
+
571
+ /* #endif */
572
+
573
+ /* picker 弹出层通用的指示小三角, todo:扩展至上下左右方向定位 */
574
+ /* #ifndef APP-NVUE */
575
+ .uni-popper__arrow,
576
+ .uni-popper__arrow::after {
577
+ position: absolute;
578
+ display: block;
579
+ width: 0;
580
+ height: 0;
581
+ border-color: transparent;
582
+ border-style: solid;
583
+ border-width: 6px;
584
+ }
585
+
586
+ .uni-popper__arrow {
587
+ filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
588
+ top: -6px;
589
+ left: 10%;
590
+ margin-right: 3px;
591
+ border-top-width: 0;
592
+ border-bottom-color: #ebeef5;
593
+ }
594
+
595
+ .uni-popper__arrow::after {
596
+ content: ' ';
597
+ top: 1px;
598
+ margin-left: -6px;
599
+ border-top-width: 0;
600
+ border-bottom-color: #fff;
601
+ }
602
+
603
+ /* #endif */
604
+ </style>