@qn-pandora/pandora-component 4.4.2 → 4.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. package/CHANGELOG.json +34 -0
  2. package/CHANGELOG.md +15 -1
  3. package/es/components/FileResumable/index.js +53 -62
  4. package/es/components/FileResumable/utils.d.ts +2 -0
  5. package/es/components/FileResumable/utils.js +17 -0
  6. package/es/components/InputNumberWithUnit/index.d.ts +2 -0
  7. package/es/components/InputNumberWithUnit/index.js +2 -2
  8. package/es/components/Table/ColumnSetting/index.d.ts +1 -0
  9. package/es/components/Table/ColumnSetting/index.js +16 -8
  10. package/es/components/Table/ColumnSetting/style.css +10 -1
  11. package/es/components/Table/ColumnSetting/style.less +6 -1
  12. package/es/components/Table/constant.d.ts +3 -1
  13. package/es/components/Table/constant.js +2 -0
  14. package/es/components/Table/index.d.ts +30 -4
  15. package/es/components/Table/index.js +280 -30
  16. package/es/components/Table/style.css +1 -0
  17. package/es/components/Table/style.less +1 -0
  18. package/es/index.css +250 -240
  19. package/es/index.d.ts +1 -1
  20. package/es/index.js +1 -1
  21. package/es/index.less +12 -12
  22. package/lib/components/FileResumable/index.js +52 -61
  23. package/lib/components/FileResumable/utils.d.ts +2 -0
  24. package/lib/components/FileResumable/utils.js +21 -0
  25. package/lib/components/InputNumberWithUnit/index.d.ts +2 -0
  26. package/lib/components/InputNumberWithUnit/index.js +2 -2
  27. package/lib/components/Table/ColumnSetting/index.d.ts +1 -0
  28. package/lib/components/Table/ColumnSetting/index.js +15 -7
  29. package/lib/components/Table/ColumnSetting/style.css +10 -1
  30. package/lib/components/Table/ColumnSetting/style.less +6 -1
  31. package/lib/components/Table/constant.d.ts +3 -1
  32. package/lib/components/Table/constant.js +2 -0
  33. package/lib/components/Table/index.d.ts +30 -4
  34. package/lib/components/Table/index.js +279 -29
  35. package/lib/components/Table/style.css +1 -0
  36. package/lib/components/Table/style.less +1 -0
  37. package/lib/index.css +1841 -1831
  38. package/lib/index.d.ts +1 -1
  39. package/lib/index.js +1 -0
  40. package/lib/index.less +10 -10
  41. package/package.json +4 -3
@@ -66,7 +66,7 @@ import * as React from 'react';
66
66
  import classnames from 'classnames';
67
67
  import { observer } from 'mobx-react';
68
68
  import { observable, action, computed } from 'mobx';
69
- import { size, xor, union, unionBy, differenceBy, get, isEqual, includes, isNumber } from 'lodash';
69
+ import { size, xor, union, unionBy, differenceBy, get, isEqual, includes, isNumber, isArray } from 'lodash';
70
70
  import { Table as AntTable, Checkbox } from 'antd';
71
71
  import { ConfigContext } from 'antd/es/config-provider';
72
72
  import { toaster as toasterStore } from '@qn-pandora/app-sdk';
@@ -78,6 +78,11 @@ import { TableLocale } from '../../constants/language/table/type';
78
78
  import { ColumnTag } from './ColumnTag/ColumnTag';
79
79
  import ColumnSetting from './ColumnSetting';
80
80
  import ResizableTitle from './ResizableTitle';
81
+ export var ETableSettingType;
82
+ (function (ETableSettingType) {
83
+ ETableSettingType["SORT"] = "sort";
84
+ ETableSettingType["RESIZE"] = "resize";
85
+ })(ETableSettingType || (ETableSettingType = {}));
81
86
  /**
82
87
  * pandora2.0风格的表格
83
88
  */
@@ -89,6 +94,12 @@ var Table = /** @class */ (function (_super) {
89
94
  _this.checkAll = false;
90
95
  _this.hiddenColumn = _this.props.hiddenColumns;
91
96
  _this.columns = [];
97
+ _this.sortConfig = {
98
+ sortKeys: [],
99
+ fixedRightKeys: [],
100
+ fixedLeftKeys: []
101
+ };
102
+ _this.settingFields = [];
92
103
  return _this;
93
104
  }
94
105
  Table.prototype.UNSAFE_componentWillReceiveProps = function (nextProps) {
@@ -119,11 +130,12 @@ var Table = /** @class */ (function (_super) {
119
130
  : selectedRowsOfCurrentPage);
120
131
  }
121
132
  }
122
- if (isEqual(nextProps.hiddenColumns, this.props.hiddenColumns)) {
133
+ if (!isEqual(nextProps.hiddenColumns, this.props.hiddenColumns)) {
123
134
  this.setHiddenColumn(nextProps.hiddenColumns);
124
135
  }
125
136
  if (nextProps.columns !== this.props.columns) {
126
- this.setColumns(nextProps.scroll && nextProps.draggable
137
+ this.setColumns((nextProps.scroll && nextProps.draggable === true) ||
138
+ nextProps.draggable === ETableSettingType.RESIZE
127
139
  ? this.getResizeColumns(nextProps.columns)
128
140
  : nextProps.columns);
129
141
  }
@@ -202,7 +214,9 @@ var Table = /** @class */ (function (_super) {
202
214
  });
203
215
  }
204
216
  });
205
- return options;
217
+ return this.sortConfig.sortKeys
218
+ .map(function (key) { return options.find(function (option) { return option.value === key; }); })
219
+ .filter(function (f) { return !!f; });
206
220
  },
207
221
  enumerable: true,
208
222
  configurable: true
@@ -233,6 +247,114 @@ var Table = /** @class */ (function (_super) {
233
247
  enumerable: true,
234
248
  configurable: true
235
249
  });
250
+ Object.defineProperty(Table.prototype, "resizable", {
251
+ get: function () {
252
+ var _a, _b;
253
+ return (((_a = this.props) === null || _a === void 0 ? void 0 : _a.draggable) === true ||
254
+ ((_b = this.props) === null || _b === void 0 ? void 0 : _b.draggable) === ETableSettingType.RESIZE);
255
+ },
256
+ enumerable: true,
257
+ configurable: true
258
+ });
259
+ Object.defineProperty(Table.prototype, "sortable", {
260
+ get: function () {
261
+ var _a, _b;
262
+ return (((_a = this.props) === null || _a === void 0 ? void 0 : _a.draggable) === true ||
263
+ ((_b = this.props) === null || _b === void 0 ? void 0 : _b.draggable) === ETableSettingType.SORT);
264
+ },
265
+ enumerable: true,
266
+ configurable: true
267
+ });
268
+ Table.prototype.initSettingConfig = function () {
269
+ var _this = this;
270
+ var _a = this.props, saveSettingKey = _a.saveSettingKey, _b = _a.hiddenColumns, hiddenColumns = _b === void 0 ? [] : _b;
271
+ var settingFields = [];
272
+ var sortableColumns = [];
273
+ var leftColumns = [];
274
+ var rightColumns = [];
275
+ var hideKeys = [];
276
+ if (saveSettingKey) {
277
+ // 支持排序或拖拽
278
+ var sizeStr = localStorage.getItem(saveSettingKey);
279
+ settingFields = (!!sizeStr && JSON.parse(sizeStr)) || [];
280
+ // 已配置的列和实际的对不上
281
+ // 可能新增或者删除列的情况
282
+ var newSettingFields = [];
283
+ if ((settingFields === null || settingFields === void 0 ? void 0 : settingFields.length) && isArray(settingFields)) {
284
+ // 已配置列
285
+ // 旧类型数据为对象类型,未配置
286
+ settingFields.map(function (field) {
287
+ var find = _this.columns.find(function (column) { return column.dataIndex === field.field; });
288
+ if (find) {
289
+ if (field.hide) {
290
+ hideKeys.push(field.field);
291
+ }
292
+ if (!find.fixed) {
293
+ sortableColumns.push(field);
294
+ }
295
+ else if (find.fixed === 'left' || find.fixed === true) {
296
+ leftColumns.push(field);
297
+ }
298
+ else {
299
+ rightColumns.push(field);
300
+ }
301
+ }
302
+ });
303
+ // 未配置过的列
304
+ this.columns
305
+ .filter(function (f) { return !settingFields.find(function (field) { return field.field === f.dataIndex; }); })
306
+ .map(function (column) {
307
+ if (!column.fixed) {
308
+ sortableColumns.push({
309
+ field: column.dataIndex,
310
+ fixed: column.fixed
311
+ });
312
+ }
313
+ else if (column.fixed === 'left' || column.fixed === true) {
314
+ leftColumns.push({
315
+ field: column.dataIndex,
316
+ fixed: column.fixed
317
+ });
318
+ }
319
+ else {
320
+ rightColumns.push({
321
+ field: column.dataIndex,
322
+ fixed: column.fixed
323
+ });
324
+ }
325
+ });
326
+ }
327
+ else {
328
+ // 从未配置过的列
329
+ this.columns.map(function (column) {
330
+ if (!column.fixed) {
331
+ sortableColumns.push({
332
+ field: column.dataIndex,
333
+ fixed: column.fixed
334
+ });
335
+ }
336
+ else if (column.fixed === 'left' || column.fixed === true) {
337
+ leftColumns.push({
338
+ field: column.dataIndex,
339
+ fixed: column.fixed
340
+ });
341
+ }
342
+ else {
343
+ rightColumns.push({
344
+ field: column.dataIndex,
345
+ fixed: column.fixed
346
+ });
347
+ }
348
+ });
349
+ }
350
+ this.setFixedLeftKeys(leftColumns.map(function (t) { return t.field; }));
351
+ this.setFixedRightKeys(rightColumns.map(function (t) { return t.field; }));
352
+ this.setSortKeys(sortableColumns.map(function (t) { return t.field; }));
353
+ this.setHiddenColumn(__spread(new Set(__spread(hiddenColumns, hideKeys))));
354
+ newSettingFields = __spread(leftColumns, sortableColumns, rightColumns);
355
+ this.setSettingFields(newSettingFields);
356
+ }
357
+ };
236
358
  // 隐藏key
237
359
  Table.prototype.handleHideColumnsChange = function (keys) {
238
360
  var _a, _b;
@@ -241,33 +363,55 @@ var Table = /** @class */ (function (_super) {
241
363
  // 提示。至少需要勾选一列
242
364
  return toasterStore.warning(formatString(TableLocale.hide_column_tooltip, this.context.locale));
243
365
  }
366
+ var newSettingFields = this.settingFields.map(function (field) {
367
+ if (includes(keys, field.field)) {
368
+ return __assign(__assign({}, field), { hide: true });
369
+ }
370
+ return __assign(__assign({}, field), { hide: false });
371
+ });
244
372
  this.setHiddenColumn(keys);
373
+ this.setSettingFields(newSettingFields);
245
374
  (_b = (_a = this.props).onHiddenColumnsChange) === null || _b === void 0 ? void 0 : _b.call(_a, keys);
246
375
  };
247
- Table.prototype.getColumns = function () {
248
- var _a = this.props, showColumnSetting = _a.showColumnSetting, columnSettingOverlayClass = _a.columnSettingOverlayClass;
376
+ Table.prototype.getSortedColumns = function () {
377
+ var _this = this;
249
378
  var hiddenColumn = this.hiddenColumn || [];
250
- if (!showColumnSetting) {
251
- return this.columns;
252
- }
253
- // 获取到列设置的options
254
- var columnsSettingOptions = this.columnsSettingOptions;
255
379
  var selectedCols = __spread((this.columns || []).filter(function (item) {
256
380
  if (item.configurable === false || !includes(hiddenColumn, item.key)) {
257
381
  return true;
258
382
  }
259
383
  return false;
260
384
  }));
261
- var length = selectedCols.length;
385
+ var fixedRightColumn = this.columns.filter(function (column) {
386
+ return includes(_this.sortConfig.fixedRightKeys, column.key);
387
+ });
388
+ var fixedLeftColumn = this.columns.filter(function (column) {
389
+ return includes(_this.sortConfig.fixedLeftKeys, column.key);
390
+ });
391
+ return __spread(fixedLeftColumn, this.getSortCoulmns(selectedCols), fixedRightColumn);
392
+ };
393
+ Table.prototype.getColumns = function () {
394
+ var _a = this.props, showColumnSetting = _a.showColumnSetting, columnSettingOverlayClass = _a.columnSettingOverlayClass;
395
+ if (!showColumnSetting) {
396
+ return this.columns;
397
+ }
398
+ // 获取到列设置的options
399
+ var columnsSettingOptions = this.columnsSettingOptions;
400
+ var allCols = this.getSortedColumns();
401
+ var length = allCols.length;
262
402
  if (length > 0) {
263
- var lastCol = selectedCols.pop();
264
403
  var title = (React.createElement("span", { className: SDK_PREFIX + "-last-column-title" },
265
- lastCol.title,
266
404
  React.createElement("span", { className: SDK_PREFIX + "-last-column-setting" },
267
- React.createElement(ColumnSetting, { options: columnsSettingOptions, hiddenKeys: this.hiddenColumn, onHiddenKeysChange: this.handleHideColumnsChange, overlayClass: columnSettingOverlayClass }))));
268
- selectedCols.push(__assign(__assign({}, lastCol), { title: title }));
405
+ React.createElement(ColumnSetting, { options: columnsSettingOptions, hiddenKeys: this.hiddenColumn, onHiddenKeysChange: this.handleHideColumnsChange, onMove: this.setSortKeys, overlayClass: columnSettingOverlayClass }))));
406
+ allCols.push({
407
+ title: title,
408
+ dataIndex: '__setting__',
409
+ key: '__setting__',
410
+ width: 40,
411
+ fixed: 'right'
412
+ });
269
413
  }
270
- return selectedCols;
414
+ return allCols;
271
415
  };
272
416
  Table.prototype.getRowKey = function (row, index) {
273
417
  var rowKey = this.props.rowKey;
@@ -276,6 +420,11 @@ var Table = /** @class */ (function (_super) {
276
420
  }
277
421
  return rowKey ? row[rowKey] : index;
278
422
  };
423
+ Table.prototype.getSortCoulmns = function (columns) {
424
+ return this.sortConfig.sortKeys
425
+ .map(function (key) { return columns.find(function (column) { return column.dataIndex === key; }); })
426
+ .filter(function (f) { return !!f; });
427
+ };
279
428
  Table.prototype.setIndeterminate = function (indeterminate) {
280
429
  this.indeterminate = indeterminate;
281
430
  };
@@ -288,6 +437,32 @@ var Table = /** @class */ (function (_super) {
288
437
  Table.prototype.setColumns = function (columns) {
289
438
  this.columns = columns;
290
439
  };
440
+ Table.prototype.setSortKeys = function (columns) {
441
+ var right = this.settingFields.filter(function (f) { return f.fixed === 'right'; });
442
+ var left = this.settingFields.filter(function (f) { return f.fixed === true || f.fixed === 'left'; });
443
+ var center = this.settingFields.filter(function (f) { return !f.fixed; });
444
+ var newCenter = [];
445
+ columns.map(function (column) {
446
+ var find = center.find(function (f) { return f.field === column; });
447
+ if (find) {
448
+ newCenter.push(find);
449
+ }
450
+ });
451
+ this.setSettingFields(__spread(left, newCenter, right));
452
+ this.sortConfig = __assign(__assign({}, this.sortConfig), { sortKeys: columns });
453
+ };
454
+ Table.prototype.setSettingFields = function (columns) {
455
+ if (this.props.saveSettingKey) {
456
+ localStorage.setItem(this.props.saveSettingKey, JSON.stringify(columns));
457
+ }
458
+ this.settingFields = columns;
459
+ };
460
+ Table.prototype.setFixedRightKeys = function (columns) {
461
+ this.sortConfig = __assign(__assign({}, this.sortConfig), { fixedRightKeys: columns });
462
+ };
463
+ Table.prototype.setFixedLeftKeys = function (columns) {
464
+ this.sortConfig = __assign(__assign({}, this.sortConfig), { fixedLeftKeys: columns });
465
+ };
291
466
  // 设置全选checkout的状态
292
467
  Table.prototype.setCheckboxStatus = function (selectedRowsOfCurrentPage, dataSource) {
293
468
  if (selectedRowsOfCurrentPage === void 0) { selectedRowsOfCurrentPage = []; }
@@ -364,35 +539,42 @@ var Table = /** @class */ (function (_super) {
364
539
  }
365
540
  });
366
541
  var sizeMap = {};
542
+ var setttingFields = this.settingFields;
367
543
  newColumns.forEach(function (element) {
368
544
  if (element.dataIndex && isNumber(element.width)) {
369
545
  sizeMap[element.dataIndex] = element.width;
370
546
  }
371
547
  });
372
- if (this.props.onDraggableChange) {
373
- this.props.onDraggableChange(sizeMap);
548
+ if (this.props.onSettingChange) {
549
+ this.props.onSettingChange(setttingFields);
374
550
  }
375
- else if (this.props.dragSaveKey) {
376
- localStorage.setItem(this.props.dragSaveKey, JSON.stringify(sizeMap));
551
+ else if (this.resizable && this.props.saveSettingKey) {
552
+ setttingFields.forEach(function (field) {
553
+ if (sizeMap[field.field]) {
554
+ field.width = sizeMap[field.field];
555
+ }
556
+ });
557
+ this.setSettingFields(setttingFields);
377
558
  }
378
559
  this.setColumns(newColumns);
379
560
  };
380
561
  Table.prototype.getResizeColumns = function (columns) {
381
562
  var _this = this;
382
- var sizeMap;
383
- if (this.props.dragSaveKey) {
384
- var sizeStr = localStorage.getItem(this.props.dragSaveKey);
385
- sizeMap = !!sizeStr && JSON.parse(sizeStr);
386
- if (sizeMap) {
563
+ var fields;
564
+ if (this.props.saveSettingKey) {
565
+ var sizeStr = localStorage.getItem(this.props.saveSettingKey);
566
+ fields = !!sizeStr && JSON.parse(sizeStr);
567
+ if (fields) {
387
568
  columns = columns === null || columns === void 0 ? void 0 : columns.map(function (col) {
569
+ var _a;
388
570
  var dataIndex = get(col, 'dataIndex');
389
- var width = sizeMap[dataIndex];
571
+ var width = (_a = fields.find(function (f) { return f.field === dataIndex; })) === null || _a === void 0 ? void 0 : _a.width;
390
572
  return isNumber(width) ? __assign(__assign({}, col), { width: width }) : col;
391
573
  });
392
574
  }
393
575
  }
394
576
  var transformColumns = columns === null || columns === void 0 ? void 0 : columns.map(function (it) {
395
- if (get(it, 'resizable') && _this.props.draggable) {
577
+ if (get(it, 'resizable') && _this.resizable) {
396
578
  return __assign(__assign({}, it), { ellipsis: {
397
579
  showTitle: true
398
580
  }, onHeaderCell: function (col) { return ({
@@ -409,9 +591,12 @@ var Table = /** @class */ (function (_super) {
409
591
  return transformColumns;
410
592
  };
411
593
  Table.prototype.componentDidMount = function () {
412
- this.setColumns(this.props.draggable && this.props.scroll
594
+ this.setColumns(this.resizable && this.props.scroll
413
595
  ? this.getResizeColumns(this.props.columns)
414
596
  : this.props.columns);
597
+ if (this.sortable || this.resizable) {
598
+ this.initSettingConfig();
599
+ }
415
600
  };
416
601
  Table.prototype.render = function () {
417
602
  var _a, _b;
@@ -423,7 +608,7 @@ var Table = /** @class */ (function (_super) {
423
608
  // getCheckboxProps只能放到tableBatchWrapper里,因为selectedRowKeys在那个组件计算
424
609
  rowSelection: batchOptions && this.props.rowSelection
425
610
  ? this.rowSelection
426
- : this.props.rowSelection, rowClassName: this.getRowClassName, components: __assign(__assign({}, (components || {})), (draggable && scroll
611
+ : this.props.rowSelection, rowClassName: this.getRowClassName, components: __assign(__assign({}, (components || {})), (this.resizable && scroll
427
612
  ? {
428
613
  header: {
429
614
  cell: ResizableTitle
@@ -466,6 +651,14 @@ var Table = /** @class */ (function (_super) {
466
651
  observable.ref,
467
652
  __metadata("design:type", Array)
468
653
  ], Table.prototype, "columns", void 0);
654
+ __decorate([
655
+ observable.ref,
656
+ __metadata("design:type", Object)
657
+ ], Table.prototype, "sortConfig", void 0);
658
+ __decorate([
659
+ observable.ref,
660
+ __metadata("design:type", Array)
661
+ ], Table.prototype, "settingFields", void 0);
469
662
  __decorate([
470
663
  computed,
471
664
  __metadata("design:type", Object),
@@ -501,12 +694,35 @@ var Table = /** @class */ (function (_super) {
501
694
  __metadata("design:type", Object),
502
695
  __metadata("design:paramtypes", [])
503
696
  ], Table.prototype, "columnKeys", null);
697
+ __decorate([
698
+ computed,
699
+ __metadata("design:type", Object),
700
+ __metadata("design:paramtypes", [])
701
+ ], Table.prototype, "resizable", null);
702
+ __decorate([
703
+ computed,
704
+ __metadata("design:type", Object),
705
+ __metadata("design:paramtypes", [])
706
+ ], Table.prototype, "sortable", null);
707
+ __decorate([
708
+ bind,
709
+ action,
710
+ __metadata("design:type", Function),
711
+ __metadata("design:paramtypes", []),
712
+ __metadata("design:returntype", void 0)
713
+ ], Table.prototype, "initSettingConfig", null);
504
714
  __decorate([
505
715
  bind,
506
716
  __metadata("design:type", Function),
507
717
  __metadata("design:paramtypes", [Array]),
508
718
  __metadata("design:returntype", void 0)
509
719
  ], Table.prototype, "handleHideColumnsChange", null);
720
+ __decorate([
721
+ bind,
722
+ __metadata("design:type", Function),
723
+ __metadata("design:paramtypes", []),
724
+ __metadata("design:returntype", void 0)
725
+ ], Table.prototype, "getSortedColumns", null);
510
726
  __decorate([
511
727
  bind,
512
728
  __metadata("design:type", Function),
@@ -519,6 +735,12 @@ var Table = /** @class */ (function (_super) {
519
735
  __metadata("design:paramtypes", [Object, Number]),
520
736
  __metadata("design:returntype", void 0)
521
737
  ], Table.prototype, "getRowKey", null);
738
+ __decorate([
739
+ bind,
740
+ __metadata("design:type", Function),
741
+ __metadata("design:paramtypes", [Array]),
742
+ __metadata("design:returntype", void 0)
743
+ ], Table.prototype, "getSortCoulmns", null);
522
744
  __decorate([
523
745
  bind,
524
746
  action,
@@ -547,6 +769,34 @@ var Table = /** @class */ (function (_super) {
547
769
  __metadata("design:paramtypes", [Array]),
548
770
  __metadata("design:returntype", void 0)
549
771
  ], Table.prototype, "setColumns", null);
772
+ __decorate([
773
+ bind,
774
+ action,
775
+ __metadata("design:type", Function),
776
+ __metadata("design:paramtypes", [Array]),
777
+ __metadata("design:returntype", void 0)
778
+ ], Table.prototype, "setSortKeys", null);
779
+ __decorate([
780
+ bind,
781
+ action,
782
+ __metadata("design:type", Function),
783
+ __metadata("design:paramtypes", [Array]),
784
+ __metadata("design:returntype", void 0)
785
+ ], Table.prototype, "setSettingFields", null);
786
+ __decorate([
787
+ bind,
788
+ action,
789
+ __metadata("design:type", Function),
790
+ __metadata("design:paramtypes", [Array]),
791
+ __metadata("design:returntype", void 0)
792
+ ], Table.prototype, "setFixedRightKeys", null);
793
+ __decorate([
794
+ bind,
795
+ action,
796
+ __metadata("design:type", Function),
797
+ __metadata("design:paramtypes", [Array]),
798
+ __metadata("design:returntype", void 0)
799
+ ], Table.prototype, "setFixedLeftKeys", null);
550
800
  __decorate([
551
801
  bind,
552
802
  __metadata("design:type", Function),
@@ -1724,6 +1724,7 @@ textarea.ant-pagination-options-quick-jumper input {
1724
1724
  }
1725
1725
  .pandora-sdk-last-column-title .pandora-sdk-last-column-setting {
1726
1726
  position: absolute;
1727
+ top: 12px;
1727
1728
  right: 12px;
1728
1729
  }
1729
1730
  .ant-table-thead > tr > th > .ant-table-column-sorters {
@@ -316,6 +316,7 @@
316
316
  .@{sdk-prefix}-last-column-title {
317
317
  .@{sdk-prefix}-last-column-setting {
318
318
  position: absolute;
319
+ top: 12px;
319
320
  right: 12px;
320
321
  }
321
322
  }