@seafile/sdoc-editor 2.0.24 → 2.0.26

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 (62) hide show
  1. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
  2. package/dist/basic-sdk/extension/constants/element-type.js +3 -1
  3. package/dist/basic-sdk/extension/constants/index.js +14 -2
  4. package/dist/basic-sdk/extension/constants/menus-config.js +17 -0
  5. package/dist/basic-sdk/extension/plugins/ai/ai-module/index.js +12 -3
  6. package/dist/basic-sdk/extension/plugins/ai/ai-module/style.css +6 -0
  7. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.css +20 -0
  8. package/dist/basic-sdk/extension/plugins/chart/chart-edit-dialog/index.js +63 -0
  9. package/dist/basic-sdk/extension/plugins/chart/helpers.js +68 -0
  10. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.css +55 -0
  11. package/dist/basic-sdk/extension/plugins/chart/hover-menu/index.js +58 -0
  12. package/dist/basic-sdk/extension/plugins/chart/index.js +19 -0
  13. package/dist/basic-sdk/extension/plugins/chart/menu/index.js +31 -0
  14. package/dist/basic-sdk/extension/plugins/chart/plugin.js +26 -0
  15. package/dist/basic-sdk/extension/plugins/chart/render-elem.css +64 -0
  16. package/dist/basic-sdk/extension/plugins/chart/render-elem.js +154 -0
  17. package/dist/basic-sdk/extension/plugins/index.js +15 -1
  18. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +414 -0
  19. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +76 -0
  20. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +209 -0
  21. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
  22. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
  23. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +125 -0
  24. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +144 -0
  25. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +161 -0
  26. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +47 -0
  27. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +98 -0
  28. package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
  29. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
  30. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +46 -0
  31. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +62 -0
  32. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
  33. package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
  34. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +124 -0
  35. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +160 -0
  36. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
  37. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
  38. package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/index.js +7 -2
  39. package/dist/basic-sdk/extension/render/custom-element.js +10 -0
  40. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +5 -3
  41. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +3 -2
  42. package/dist/basic-sdk/extension/toolbar/side-toolbar/insert-block-menu.js +14 -2
  43. package/dist/constants/index.js +1 -0
  44. package/dist/pages/document-plugin-editor.js +4 -1
  45. package/package.json +3 -2
  46. package/public/locales/cs/sdoc-editor.json +10 -1
  47. package/public/locales/de/sdoc-editor.json +69 -60
  48. package/public/locales/en/sdoc-editor.json +13 -1
  49. package/public/locales/es/sdoc-editor.json +10 -1
  50. package/public/locales/es_AR/sdoc-editor.json +10 -1
  51. package/public/locales/es_MX/sdoc-editor.json +10 -1
  52. package/public/locales/fr/sdoc-editor.json +243 -234
  53. package/public/locales/it/sdoc-editor.json +10 -1
  54. package/public/locales/ru/sdoc-editor.json +11 -2
  55. package/public/locales/zh_CN/sdoc-editor.json +9 -1
  56. package/public/media/sdoc-editor-font/iconfont.css +15 -14
  57. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  58. package/public/media/sdoc-editor-font/iconfont.svg +3 -1
  59. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  60. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  61. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  62. package/public/media/sdoc-editor-font.css +11 -7
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _rowCardHeader = _interopRequireDefault(require("./row-card-header"));
12
+ var _rowCardItem = _interopRequireDefault(require("./row-card-item"));
13
+ // 98: row-card-item height + margin top = 88 + 10 = 98
14
+ const CARD_RECORD_ITEM_HEIGHT = 98;
15
+ class RecordContent extends _react.Component {
16
+ constructor(_props) {
17
+ super(_props);
18
+ (0, _defineProperty2.default)(this, "initState", props => {
19
+ const {
20
+ rows
21
+ } = props;
22
+ this.recordItem = [];
23
+ this.currentDisplayRowMinIndex = 0;
24
+ this.currentDisplayRowMaxIndex = Math.floor((0 + this.recordsList.offsetHeight) / CARD_RECORD_ITEM_HEIGHT);
25
+ const displayRows = rows.slice(0, this.shownLength);
26
+ const isHasMore = rows.length === this.shownLength;
27
+ this.setState({
28
+ displayRows,
29
+ isHasMore
30
+ });
31
+ });
32
+ (0, _defineProperty2.default)(this, "scrollToMore", e => {
33
+ e.stopPropagation();
34
+ const {
35
+ clientHeight,
36
+ scrollTop,
37
+ scrollHeight
38
+ } = this.recordsList;
39
+ this.currentDisplayRowMinIndex = Math.floor(scrollTop / CARD_RECORD_ITEM_HEIGHT);
40
+ this.currentDisplayRowMaxIndex = Math.floor(scrollHeight / CARD_RECORD_ITEM_HEIGHT);
41
+ const {
42
+ scrollLeft,
43
+ isHasMore
44
+ } = this.state;
45
+ if (scrollLeft >= 0) {
46
+ this.setItemScrollLeft(scrollLeft, -1);
47
+ }
48
+ if (!isHasMore || this.isLoadingMore) return;
49
+ if (clientHeight + scrollTop >= scrollHeight) {
50
+ const offset = this.shownLength;
51
+ this.isLoadingMore = true;
52
+ this.shownLength = offset + 10;
53
+ this.props.onLoadMore(offset);
54
+ }
55
+ });
56
+ (0, _defineProperty2.default)(this, "onRef", (ref, rowIdx) => {
57
+ this.recordItem[rowIdx] = ref;
58
+ });
59
+ (0, _defineProperty2.default)(this, "getCurrentDisplayRowMaxIndex", () => {
60
+ if (this.recordsList) {
61
+ this.currentDisplayRowMaxIndex = Math.floor((0 + this.recordsList.offsetHeight) / CARD_RECORD_ITEM_HEIGHT);
62
+ }
63
+ });
64
+ (0, _defineProperty2.default)(this, "setScrollLeft", scrollLeft => {
65
+ this.setState({
66
+ scrollLeft
67
+ });
68
+ });
69
+ (0, _defineProperty2.default)(this, "setItemScrollLeft", (scrollLeft, currentRecordIdx) => {
70
+ const {
71
+ isShowRowCardHeader
72
+ } = this.props;
73
+ if (isShowRowCardHeader) this.rowCardHeaderRef.setHeaderScrollLeft(scrollLeft);
74
+ const start = window.isMobile ? 0 : this.currentDisplayRowMinIndex;
75
+ const end = window.isMobile ? this.recordItem.length : this.currentDisplayRowMaxIndex;
76
+ for (let i = start; i <= end; i++) {
77
+ if (i !== currentRecordIdx && this.recordItem[i]) {
78
+ let cardRecordScrollLeft = this.recordItem[i].getScrollLeft();
79
+ if (cardRecordScrollLeft !== scrollLeft) {
80
+ this.recordItem[i].setScrollLeft(scrollLeft);
81
+ }
82
+ }
83
+ }
84
+ });
85
+ (0, _defineProperty2.default)(this, "setRecordsListRef", ref => {
86
+ this.recordsList = ref;
87
+ });
88
+ (0, _defineProperty2.default)(this, "handleRowClick", rowId => {
89
+ const {
90
+ setSelectedRow
91
+ } = this.props;
92
+
93
+ // Select one row, then make other selected one unselected
94
+ // Select one row to make itself toggled state
95
+ this.setState(prevState => {
96
+ const newSelectedRowId = prevState.selectedRowId === rowId ? null : rowId;
97
+ setTimeout(() => {
98
+ setSelectedRow(newSelectedRowId ? rowId : '');
99
+ }, 0);
100
+ return {
101
+ selectedRowId: newSelectedRowId
102
+ };
103
+ });
104
+ });
105
+ this.state = {
106
+ isHasMore: false,
107
+ displayRows: [],
108
+ scrollLeft: 0,
109
+ selectedRowId: null
110
+ };
111
+ this.shownLength = 10;
112
+ this.recordsList = null;
113
+ this.recordsContainer = null;
114
+ this.recordItem = [];
115
+ this.currentDisplayRowMinIndex = 0;
116
+ this.currentDisplayRowMaxIndex = 0;
117
+ this.isLoadingMore = false;
118
+ }
119
+ componentDidMount() {
120
+ this.initState(this.props);
121
+ }
122
+ UNSAFE_componentWillReceiveProps(nextProps) {
123
+ const {
124
+ rows
125
+ } = nextProps;
126
+ if (this.shownLength === 10) {
127
+ this.isLoadingMore = false;
128
+ this.initState(nextProps);
129
+ return;
130
+ }
131
+ this.isLoadingMore = false;
132
+ const displayRows = rows.slice(0, this.shownLength);
133
+ const isHasMore = rows.length === this.shownLength;
134
+ this.setState({
135
+ displayRows,
136
+ isHasMore
137
+ });
138
+ if (this.props.isAdditionEditorView !== nextProps.isAdditionEditorView) {
139
+ this.recordsList.scrollTop = 0;
140
+ }
141
+ }
142
+ componentWillUnmount() {
143
+ this.recordsList = null;
144
+ this.recordsContainer = null;
145
+ this.recordItem = [];
146
+ this.currentDisplayRowMinIndex = 0;
147
+ this.currentDisplayRowMaxIndex = 0;
148
+ }
149
+ render() {
150
+ const {
151
+ table,
152
+ noCardItemTip,
153
+ rowCardType,
154
+ columns,
155
+ renderedColumns,
156
+ showScrollBtn,
157
+ cardListClassName,
158
+ formulaRows,
159
+ cardHeaderClassName
160
+ } = this.props;
161
+ const {
162
+ displayRows,
163
+ scrollLeft,
164
+ selectedRowId
165
+ } = this.state;
166
+ const rowCardListClass = `row-card-list ${cardListClassName ? cardListClassName : ''}`;
167
+ return /*#__PURE__*/_react.default.createElement("div", {
168
+ className: "seatable-table-wrapper"
169
+ }, /*#__PURE__*/_react.default.createElement("div", {
170
+ className: "row-card-container"
171
+ }, /*#__PURE__*/_react.default.createElement(_rowCardHeader.default, {
172
+ cardHeaderClassName: cardHeaderClassName,
173
+ setItemScrollLeft: this.setItemScrollLeft,
174
+ renderedColumns: renderedColumns,
175
+ getCurrentDisplayRowMaxIndex: this.getCurrentDisplayRowMaxIndex,
176
+ showScrollBtn: showScrollBtn,
177
+ scrollLeft: scrollLeft,
178
+ setScrollLeft: this.setScrollLeft,
179
+ rowCardType: rowCardType,
180
+ ref: ref => this.rowCardHeaderRef = ref,
181
+ table: table
182
+ }), /*#__PURE__*/_react.default.createElement("div", {
183
+ className: rowCardListClass,
184
+ ref: this.setRecordsListRef,
185
+ onScroll: this.scrollToMore
186
+ }, displayRows.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
187
+ className: "no-records-tips"
188
+ }, noCardItemTip), displayRows.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
189
+ className: "row-card-content",
190
+ ref: ref => this.recordsContent = ref
191
+ }, displayRows.map((row, rowIdx) => {
192
+ const formulaRow = formulaRows && formulaRows[row._id] || {};
193
+ return /*#__PURE__*/_react.default.createElement(_rowCardItem.default, {
194
+ key: `row-card-${rowIdx}`,
195
+ setItemScrollLeft: this.setItemScrollLeft,
196
+ onRef: this.onRef,
197
+ rowCardType: rowCardType,
198
+ table: table,
199
+ row: row,
200
+ formulaRow: formulaRow,
201
+ rowIdx: rowIdx,
202
+ columns: columns,
203
+ isSelected: selectedRowId === row._id,
204
+ onRowClick: () => this.handleRowClick(row._id)
205
+ });
206
+ })))));
207
+ }
208
+ }
209
+ var _default = exports.default = RecordContent;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _draggable = _interopRequireDefault(require("../../../../seatable-tables/draggable"));
11
+ require("./index.css");
12
+ const style = {
13
+ position: 'absolute',
14
+ top: 0,
15
+ width: 5,
16
+ borderRadius: '3px',
17
+ margin: '3px 0',
18
+ height: '80%'
19
+ };
20
+ class ResizeHandle extends _react.default.Component {
21
+ constructor() {
22
+ super(...arguments);
23
+ (0, _defineProperty2.default)(this, "setResizeHandleLeft", left => {
24
+ this.draggable.setDraggableLeft(left);
25
+ });
26
+ }
27
+ render() {
28
+ return /*#__PURE__*/_react.default.createElement(_draggable.default, Object.assign({}, this.props, {
29
+ ref: ref => this.draggable = ref,
30
+ className: "react-grid-HeaderCell__resizeHandle",
31
+ style: {
32
+ ...this.props.style,
33
+ ...style
34
+ }
35
+ }));
36
+ }
37
+ }
38
+ var _default = exports.default = ResizeHandle;
@@ -0,0 +1,384 @@
1
+ .react-grid-Header {
2
+ background: #f9f9f9;
3
+ }
4
+
5
+ .react-grid-Header--resizing {
6
+ cursor: ew-resize;
7
+ }
8
+
9
+ .react-grid-HeaderRow {
10
+ -webkit-user-select: none;
11
+ -moz-user-select: none;
12
+ -ms-user-select: none;
13
+ user-select: none;
14
+ display: flex;
15
+ justify-content: space-between;
16
+ }
17
+
18
+ .dtable-header-setting {
19
+ height: 100%;
20
+ width: 30px;
21
+ float: right;
22
+ display: flex;
23
+ align-items: center;
24
+ color: #666666;
25
+ }
26
+
27
+ .dtable-header-setting::after {
28
+ content: '';
29
+ display: block;
30
+ clear: both;
31
+ }
32
+
33
+ .dtable-header-setting:hover {
34
+ color: #444;
35
+ cursor: pointer;
36
+ }
37
+
38
+ .dtable-header-setting-submenu .dtable-dropdown-menu {
39
+ top: -12px !important;
40
+ left: -10px !important;
41
+ }
42
+
43
+ .dtable-dropdown-menu .dtable-header-setting-submenu:hover .dtable-dropdown-menu .item-icon {
44
+ color: #8c8c8c;
45
+ }
46
+
47
+ .dtable-dropdown-menu .dtable-header-setting-submenu:hover .dropdown-item:hover .item-icon {
48
+ color: #fff;
49
+ }
50
+
51
+ .react-grid-HeaderCell {
52
+ user-select: none;
53
+ background: #f9f9f9;
54
+ padding: 8px;
55
+ font-weight: normal;
56
+ border-right: 1px solid #dddddd;
57
+ border-bottom: 1px solid #dddddd;
58
+ font-size: 14px;
59
+ }
60
+
61
+ .react-grid-HeaderCell.rdg-row-actions-cell {
62
+ z-index: 3;
63
+ }
64
+
65
+ .react-grid-HeaderCell__value {
66
+ white-space: nowrap;
67
+ text-overflow: ellipsis;
68
+ overflow: hidden;
69
+ position: relative;
70
+ top: 50%;
71
+ transform: translateY(-50%);
72
+ }
73
+
74
+ .react-grid-HeaderCell__resizeHandle {
75
+ cursor: ew-resize;
76
+ }
77
+
78
+ .react-grid-HeaderCell__resizeHandle:hover {
79
+ background: #dddddd;
80
+ }
81
+
82
+ .react-grid-HeaderCell--frozen:last-of-type {
83
+ box-shadow: 2px 0 5px -2px rgba(136, 136, 136, 0.3);
84
+ }
85
+
86
+ .react-grid-HeaderCell--resizing .react-grid-HeaderCell__resizeHandle {
87
+ background: #dddddd;
88
+ }
89
+
90
+ .react-grid-HeaderCell__draggable {
91
+ cursor: col-resize;
92
+ }
93
+
94
+ .react-grid-HeaderCell__draggable:hover {
95
+ background-color: #2d7ff9;
96
+ }
97
+
98
+ .rdg-can-drop > .react-grid-HeaderCell {
99
+ background: #ececec;
100
+ }
101
+
102
+ .react-grid-HeaderCell .Select {
103
+ max-height: 30px;
104
+ font-size: 12px;
105
+ font-weight: normal;
106
+ }
107
+
108
+ .react-grid-HeaderCell .Select-control {
109
+ max-height: 30px;
110
+ border: 1px solid #cccccc;
111
+ color: #555;
112
+ border-radius: 3px;
113
+ }
114
+
115
+ .react-grid-HeaderCell .is-focused:not(.is-open) > .Select-control {
116
+ border-color: #66afe9;
117
+ outline: 0;
118
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
119
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
120
+ }
121
+
122
+ .react-grid-HeaderCell .Select-control .Select-placeholder {
123
+ line-height: 20px;
124
+ color: #999;
125
+ padding: 4px;
126
+ }
127
+
128
+ .react-grid-HeaderCell .Select-control .Select-input {
129
+ max-height: 28px;
130
+ padding: 4px;
131
+ margin-left: 0px;
132
+ }
133
+
134
+ .react-grid-HeaderCell .Select-control .Select-input input {
135
+ padding: 0px;
136
+ height: 100%;
137
+ }
138
+
139
+ .react-grid-HeaderCell .Select-control .Select-arrow-zone .Select-arrow {
140
+ border-color: gray transparent transparent;
141
+ border-width: 4px 4px 2.5px;
142
+ }
143
+
144
+ .react-grid-HeaderCell .Select-control .Select-value {
145
+ padding: 4px;
146
+ line-height: 20px !important;
147
+ }
148
+
149
+ .react-grid-HeaderCell .Select--multi .Select-control .Select-value {
150
+ padding: 0px;
151
+ line-height: 16px !important;
152
+ max-height: 20px;
153
+ }
154
+
155
+ .react-grid-HeaderCell .Select--multi .Select-control .Select-value .Select-value-icon {
156
+ max-height: 20px;
157
+ }
158
+
159
+ .react-grid-HeaderCell .Select--multi .Select-control .Select-value .Select-value-label {
160
+ max-height: 20px;
161
+ }
162
+
163
+ .react-grid-HeaderCell .Select-control .Select-value .Select-value-label {
164
+ color: #555555 !important;
165
+ }
166
+
167
+ .react-grid-HeaderCell .Select-menu-outer {
168
+ z-index: 2;
169
+ }
170
+
171
+ .react-grid-HeaderCell .Select-menu-outer .Select-option {
172
+ padding: 4px;
173
+ line-height: 20px;
174
+ }
175
+
176
+ .react-grid-HeaderCell .Select-menu-outer .Select-menu .Select-option.is-selected {
177
+ color: #555555;
178
+ }
179
+
180
+ .react-grid-HeaderCell .Select-menu-outer .Select-menu .Select-option.is-focused {
181
+ color: #555555;
182
+ }
183
+
184
+ /* custom */
185
+ .header-cell-container {
186
+ width: 100%;
187
+ height: 100%;
188
+ display: flex;
189
+ }
190
+
191
+ .header-cell-container > div {
192
+ display: flex;
193
+ flex: 1;
194
+ align-items: center;
195
+ justify-content: space-between;
196
+ width: 100%;
197
+ min-width: 30px;
198
+ }
199
+
200
+ .header-cell-container .header-cell-left {
201
+ width: calc(100% - 20px);
202
+ display: flex;
203
+ }
204
+
205
+ .header-cell-container .header-uneditable-cell-left {
206
+ width: calc(100% - 34px);
207
+ }
208
+
209
+ .header-cell-container .header-uneditable-description-cell-left {
210
+ width: calc(100% - 50px);
211
+ }
212
+
213
+ .header-cell-container .dtable-dropdown-menu {
214
+ width: 20px;
215
+ padding: 0 5px;
216
+ }
217
+
218
+ .header-icon {
219
+ display: inline-block;
220
+ padding: 0 0.3125rem;
221
+ margin-left: -0.3125rem;
222
+ }
223
+
224
+ .header-cell-container .header-icon {
225
+ display: flex;
226
+ align-items: center;
227
+ }
228
+
229
+ .header-icon:hover {
230
+ cursor: default;
231
+ }
232
+
233
+ .header-icon .dtable-font {
234
+ font-size: 14px;
235
+ color: #aaa;
236
+ cursor: default;
237
+ }
238
+
239
+ .header-icon .dtable-font.dtable-icon-use-help {
240
+ color: #bdbdbd;
241
+ }
242
+
243
+ .header-icon .dtable-font.dtable-icon-use-help:hover {
244
+ color: #888;
245
+ }
246
+
247
+ .bs-tooltip-bottom .arrow::before,
248
+ .bs-tooltip-auto[x-placement^='bottom'] .arrow::before {
249
+ border-bottom-color: #303133;
250
+ }
251
+
252
+ .bs-tooltip-auto[x-placement^='right'] .arrow::before {
253
+ border-right-color: #303133;
254
+ }
255
+
256
+ .bs-tooltip-auto[x-placement^='left'] .arrow::before {
257
+ border-left-color: #303133;
258
+ }
259
+
260
+ .tooltip-inner {
261
+ max-width: 242px;
262
+ font-weight: lighter;
263
+ text-align: start;
264
+ background-color: #303133;
265
+ }
266
+
267
+ .help-icon-tooltip-inner {
268
+ position: relative;
269
+ overflow: hidden;
270
+ }
271
+
272
+ .help-icon-tooltip-btn {
273
+ float: right;
274
+ cursor: pointer;
275
+ color: rgba(255, 255, 255, 0.6);
276
+ }
277
+
278
+ .help-icon-tooltip-btn:hover {
279
+ color: rgba(255, 255, 255, 1);
280
+ }
281
+
282
+ .expand-row-icon {
283
+ display: inline-block;
284
+ margin-right: 0.5rem;
285
+ }
286
+
287
+ .expand-row-icon .dtable-font {
288
+ font-size: 14px;
289
+ color: #535354;
290
+ }
291
+
292
+ .header-name {
293
+ margin-left: 3px;
294
+ overflow: hidden;
295
+ }
296
+
297
+ .header-cell-container .header-name {
298
+ align-items: center;
299
+ }
300
+
301
+ .header-dropdown {
302
+ position: unset;
303
+ display: inline-block;
304
+ margin-left: auto;
305
+ z-index: 1;
306
+ cursor: pointer !important;
307
+ }
308
+
309
+ .header-dropdown:hover {
310
+ cursor: pointer;
311
+ }
312
+
313
+ .header-dropdown > span {
314
+ display: inline-block;
315
+ padding: 0 6px;
316
+ }
317
+
318
+ .header-dropdown .dtable-icon-drop-down {
319
+ display: inline-block;
320
+ font-size: 12px;
321
+ color: #999;
322
+ transform: scale(0.8);
323
+ transition: all 0.1s;
324
+ }
325
+
326
+ .header-dropdown:hover .dtable-icon-drop-down {
327
+ color: #aaa;
328
+ }
329
+
330
+ .header-dropdown .dropdown-item:hover {
331
+ background-color: #20a0ff;
332
+ color: #fff;
333
+ cursor: pointer;
334
+ }
335
+
336
+ .dtable-dropdown-menu .header-dropdown .grid-header-dropdown-item {
337
+ padding: 0 1rem !important;
338
+ }
339
+
340
+ .header-dropdown .grid-header-dropdown-item .item-icon {
341
+ line-height: 32px;
342
+ }
343
+
344
+ .dtable-dropdown-menu .grid-header-dropdown-item.formula-date-format-item {
345
+ padding-left: 15px;
346
+ }
347
+
348
+ .react-grid-HeaderCell.add-column-icon {
349
+ display: flex;
350
+ justify-content: center;
351
+ align-items: center;
352
+ padding: 0;
353
+ position: absolute;
354
+ cursor: pointer;
355
+ }
356
+
357
+ .react-grid-HeaderCell.add-column-icon .dtable-font {
358
+ font-size: 15px;
359
+ }
360
+
361
+ .react-grid-HeaderCell-default .header-cell-container .widget-HeaderCell__value {
362
+ line-height: 24px;
363
+ }
364
+
365
+ .react-grid-HeaderCell-default .header-name .header-name-text {
366
+ overflow: hidden;
367
+ text-overflow: ellipsis;
368
+ white-space: nowrap;
369
+ }
370
+
371
+ .react-grid-HeaderCell-double .header-cell-container .header-cell-left {
372
+ height: 100%;
373
+ }
374
+
375
+ .react-grid-HeaderCell-double .header-name .header-name-text {
376
+ display: -webkit-box;
377
+ -webkit-line-clamp: 2;
378
+ -webkit-box-orient: vertical;
379
+ overflow: hidden;
380
+ text-overflow: ellipsis;
381
+ white-space: initial;
382
+ max-height: 46px;
383
+ height: fit-content;
384
+ }