@seafile/sdoc-editor 2.0.18-alph-1.0.2 → 2.0.18-alph-2.0.0

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 (60) hide show
  1. package/dist/basic-sdk/comment/components/comment-participants-editor/index.js +1 -0
  2. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
  3. package/dist/basic-sdk/extension/constants/element-type.js +2 -1
  4. package/dist/basic-sdk/extension/constants/index.js +8 -2
  5. package/dist/basic-sdk/extension/constants/menus-config.js +5 -0
  6. package/dist/basic-sdk/extension/plugins/index.js +7 -0
  7. package/dist/basic-sdk/extension/plugins/multi-column/plugin.js +0 -25
  8. package/dist/basic-sdk/extension/plugins/seatable-row/constants/index.js +10 -0
  9. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/RateFormatter.js +111 -0
  10. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SimpleCellFormatter.js +41 -0
  11. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/SingleSelectOption.js +65 -0
  12. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/rate-formatter.css +23 -0
  13. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/formatters/widget/rate-item.js +78 -0
  14. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/helpers.js +442 -0
  15. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +425 -0
  16. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +76 -0
  17. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/link-content.js +133 -0
  18. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +214 -0
  19. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/ResizeHandle.js +38 -0
  20. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/resize-handle/index.css +384 -0
  21. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +125 -0
  22. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +143 -0
  23. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +192 -0
  24. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +51 -0
  25. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +90 -0
  26. package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
  27. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.css +3 -0
  28. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +46 -0
  29. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +62 -0
  30. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
  31. package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
  32. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +124 -0
  33. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +160 -0
  34. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
  35. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
  36. package/dist/basic-sdk/extension/plugins/seatable-tables/formatter/collaborator-wrapper.js +3 -0
  37. package/dist/basic-sdk/extension/render/custom-element.js +5 -0
  38. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +3 -2
  39. package/dist/basic-sdk/extension/toolbar/insert-element-toolbar/index.js +0 -7
  40. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +2 -1
  41. package/dist/constants/index.js +1 -0
  42. package/dist/pages/document-plugin-editor.js +3 -1
  43. package/package.json +1 -1
  44. package/public/locales/cs/sdoc-editor.json +7 -1
  45. package/public/locales/de/sdoc-editor.json +66 -60
  46. package/public/locales/en/sdoc-editor.json +9 -1
  47. package/public/locales/es/sdoc-editor.json +7 -1
  48. package/public/locales/es_AR/sdoc-editor.json +7 -1
  49. package/public/locales/es_MX/sdoc-editor.json +7 -1
  50. package/public/locales/fr/sdoc-editor.json +240 -234
  51. package/public/locales/it/sdoc-editor.json +7 -1
  52. package/public/locales/ru/sdoc-editor.json +8 -2
  53. package/public/locales/zh_CN/sdoc-editor.json +6 -1
  54. package/public/media/sdoc-editor-font/iconfont.css +15 -14
  55. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  56. package/public/media/sdoc-editor-font/iconfont.svg +3 -1
  57. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  58. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  59. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  60. package/public/media/sdoc-editor-font.css +11 -7
@@ -0,0 +1,425 @@
1
+ .seatable-rows-select-dialog {
2
+ max-width: 520px;
3
+ }
4
+
5
+ .seatable-rows-select-dialog .sdoc-seatable-rows-select-footer {
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: flex-end;
9
+ padding: 1rem;
10
+ border-top: 1px solid #e9ecef;
11
+ }
12
+
13
+ .seatable-rows-select-dialog .modal-header-container {
14
+ display: flex;
15
+ position: relative;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ width: 100%;
19
+ height: 57px;
20
+ padding: 16px;
21
+ border-bottom: 1px solid #e9ecef;
22
+ }
23
+
24
+ .seatable-rows-select-dialog .modal-title-container {
25
+ flex: 1;
26
+ white-space: nowrap;
27
+ position: relative;
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: flex-start;
31
+ margin: auto;
32
+ }
33
+
34
+ .seatable-rows-select-dialog .modal-body {
35
+ padding: 0 !important;
36
+ }
37
+
38
+ .seatable-rows-select-dialog .modal-body .form-label {
39
+ margin: 1rem 1rem 0;
40
+ padding-bottom: 1rem;
41
+ border-bottom: 1px solid #e2e2e2;
42
+ }
43
+
44
+ .seatable-rows-close-dialog {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ width: 28px;
49
+ }
50
+
51
+ .modal-header-container .sdoc-close1 {
52
+ font-size: 16px;
53
+ color: #666666;
54
+ }
55
+
56
+ .modal-header-container .sdoc-close1:hover {
57
+ background-color: #EFEFEF;
58
+ border-radius: 3px;
59
+ height: 28px;
60
+ width: 28px;
61
+ }
62
+
63
+ .seatable-rows-select-dialog .seatable-table-wrapper {
64
+ height: 280px;
65
+ overflow-x: auto;
66
+ overflow-y: hidden;
67
+ border: 2px solid transparent;
68
+ }
69
+
70
+ .seatable-rows-select-dialog .row-card-container {
71
+ height: 100%;
72
+ width: 100%;
73
+ }
74
+
75
+ .row-card-container::-webkit-scrollbar {
76
+ display: none;
77
+ }
78
+
79
+ .records-column-names {
80
+ padding: 12px 32px;
81
+ min-width: 100%;
82
+ background-color: #fff;
83
+ box-shadow: -1px 0 2px 0 #ccc;
84
+ display: flex;
85
+ align-items: center;
86
+ }
87
+
88
+ .row-card-header .row-card-column-names {
89
+ padding: 8px 32px;
90
+ width: 100%;
91
+ position: relative;
92
+ min-width: 100%;
93
+ background-color: #fff;
94
+ box-shadow: -1px 0 2px 0 #ccc;
95
+ display: flex;
96
+ align-items: center;
97
+ }
98
+
99
+ .row-card-header .row-card-column-names .link-scroll-prev {
100
+ left: 4px;
101
+ }
102
+
103
+ .row-card-header .row-card-column-names .row-card-scroll {
104
+ color: #999;
105
+ font-size: 14px;
106
+ width: 24px;
107
+ height: 24px;
108
+ text-align: center;
109
+ line-height: 24px;
110
+ position: absolute;
111
+ top: 10px;
112
+ background-color: #fff;
113
+ }
114
+
115
+ .row-card-header .row-card-column-names .scroll-active {
116
+ color: #000;
117
+ cursor: pointer;
118
+ }
119
+
120
+ .row-card-header .row-card-column-names .link-scroll-next {
121
+ right: 4px;
122
+ }
123
+
124
+ .row-card-header .row-card-column-names .scroll-active:hover {
125
+ background: #efefef;
126
+ border-radius: 4px;
127
+ }
128
+
129
+ .row-card-header .row-card-columns-container {
130
+ width: 100%;
131
+ overflow: hidden;
132
+ overflow-x: scroll;
133
+ scrollbar-width: none;
134
+ }
135
+
136
+ .row-card-header .row-card-columns-container .row-card-column-name:first-child,
137
+ .mobile-link-records-container .link-records-column-name:first-child {
138
+ margin: 0 8px 0 0;
139
+ }
140
+
141
+ .row-card-header .row-card-columns-container .row-card-column-name {
142
+ flex-shrink: 0;
143
+ margin: 0 8px;
144
+ font-size: 14px;
145
+ color: #666666;
146
+ height: 30px;
147
+ line-height: 30px;
148
+ cursor: default;
149
+ }
150
+
151
+ .row-card-header .row-card-columns-container::-webkit-scrollbar {
152
+ display: none;
153
+ }
154
+
155
+ .seatable-rows-select-dialog .row-card-container .row-card-list {
156
+ height: calc(100% - 40px);
157
+ width: 100%;
158
+ min-width: 100%;
159
+ padding: 10px 20px;
160
+ overflow-y: auto;
161
+ margin-top: 3px;
162
+ }
163
+
164
+ .row-card-list .no-records-tips {
165
+ color: #666666;
166
+ text-align: center;
167
+ }
168
+
169
+ .row-card-list .no-views-tips {
170
+ color: #666666;
171
+ text-align: center;
172
+ }
173
+
174
+ .row-card-list .row-card-content {
175
+ padding: 0;
176
+ height: auto;
177
+ overflow-y: unset;
178
+ }
179
+
180
+ .row-card-list .row-card-content::-webkit-scrollbar {
181
+ width: 0;
182
+ }
183
+
184
+ .row-card-item {
185
+ height: 88px;
186
+ margin-top: 10px;
187
+ background-color: #fff;
188
+ border-radius: 4px;
189
+ border: 1px solid rgba(0, 0, 0, 0.1);
190
+ font-size: 14px;
191
+ display: flex;
192
+ flex-direction: column;
193
+ justify-content: space-between;
194
+ align-items: flex-start;
195
+ position: relative;
196
+ }
197
+
198
+ .row-card-item:first-child {
199
+ margin-top: 0;
200
+ }
201
+
202
+ .row-card-item:last-child {
203
+ margin-bottom: 10px;
204
+ }
205
+
206
+ .row-card-item:hover {
207
+ cursor: pointer;
208
+ border-color: rgba(0, 0, 0, 0.3);
209
+ }
210
+
211
+ .row-card-item.row-card-item-highlight {
212
+ border-color: rgba(0, 0, 0, 0.3);
213
+ }
214
+
215
+ .row-card-item .row-card-item-container {
216
+ width: 100%;
217
+ overflow: hidden;
218
+ padding: 12px;
219
+ }
220
+
221
+ .row-card-item-header {
222
+ z-index: 1;
223
+ }
224
+
225
+ .row-card-item .row-card-item-header {
226
+ width: 100%;
227
+ height: 24px;
228
+ display: inline-flex;
229
+ justify-content: space-between;
230
+ align-items: center;
231
+ }
232
+
233
+ .row-card-item .row-card-item-name {
234
+ height: 100%;
235
+ flex: 1 1;
236
+ font-weight: 400;
237
+ }
238
+
239
+ .row-card-item .row-card-item-check {
240
+ color: #59cb74;
241
+ }
242
+
243
+ .row-card-item .row-card-item-remove {
244
+ height: 24px;
245
+ width: 24px;
246
+ text-align: center;
247
+ }
248
+
249
+ .row-card-item .row-card-remove-icon {
250
+ font-size: 16px;
251
+ color: #aaa;
252
+ }
253
+
254
+ .row-card-item-remove:hover .row-card-remove-icon {
255
+ color: #666666;
256
+ }
257
+
258
+ .row-card-item .row-card-item-content {
259
+ display: flex;
260
+ width: 100%;
261
+ overflow-x: scroll;
262
+ height: 40px;
263
+ }
264
+
265
+ .row-card-item .row-card-item-content::-webkit-scrollbar {
266
+ display: none;
267
+ }
268
+
269
+ .row-card-item .row-cell-value {
270
+ display: flex;
271
+ justify-content: flex-start;
272
+ align-items: center;
273
+ flex-shrink: 0;
274
+ text-align: left;
275
+ margin: 0 8px;
276
+ }
277
+
278
+ .row-card-item .row-cell-value.show-name {
279
+ flex-direction: column;
280
+ align-items: flex-start;
281
+ justify-content: center !important;
282
+ }
283
+
284
+ .row-card-item .row-cell-value.show-name .row-cell-value-content {
285
+ max-height: 20px;
286
+ }
287
+
288
+ .row-card-item .row-cell-value.show-name .column-name {
289
+ margin: 0.25rem 0;
290
+ font-size: 12px;
291
+ color: #666;
292
+ max-width: 100px;
293
+ }
294
+
295
+ .row-card-item .row-cell-value.show-name .links-formatter .formatter-show {
296
+ display: inline-block;
297
+ }
298
+
299
+ .row-card-item .row-cell-value.show-name .image-cell-value {
300
+ height: inherit;
301
+ }
302
+
303
+ .row-card-item .row-cell-value:first-child {
304
+ justify-content: flex-start;
305
+ margin: 0 8px 0 0;
306
+ }
307
+
308
+ .row-card-item .row-cell-value-empty {
309
+ display: inline-block;
310
+ height: 8px;
311
+ width: 20px;
312
+ background-color: #f1f1f1;
313
+ border-radius: 4px;
314
+ }
315
+
316
+ .row-card-item-content .collaborators-formatter {
317
+ width: 100%;
318
+ overflow: hidden;
319
+ }
320
+
321
+ .row-card-item-content .collaborators-formatter .formatter-show {
322
+ align-items: center;
323
+ }
324
+
325
+ .row-card-item-content .multiple-select-formatter {
326
+ width: 100%;
327
+ overflow: hidden;
328
+ display: inline-flex;
329
+ }
330
+
331
+ .multiple-select-formatter .grid_cell_type_multiple-select {
332
+ margin-right: 10px;
333
+ }
334
+
335
+ .multiple-select-formatter .grid_cell_type_multiple-select:last-child {
336
+ margin-right: 0;
337
+ }
338
+
339
+ .row-card-item-content .cell-value-ellipsis {
340
+ display: inline-block;
341
+ height: auto;
342
+ width: 100%;
343
+ }
344
+
345
+ .row-card-item-content .image-cell-value {
346
+ height: 30px;
347
+ width: 40px;
348
+ position: relative;
349
+ display: inline-flex;
350
+ align-items: center;
351
+ justify-content: flex-start;
352
+ }
353
+
354
+ .row-card-item-content .image-cell-value img {
355
+ display: inline-block;
356
+ max-height: 30px;
357
+ max-width: 40px;
358
+ border-radius: 3px;
359
+ }
360
+
361
+ .image-cell-value .cell-value-size {
362
+ position: absolute;
363
+ bottom: -2px;
364
+ right: -4px;
365
+ display: inline-block;
366
+ height: 12px;
367
+ padding: 0 4px;
368
+ border-radius: 6px;
369
+ text-align: center;
370
+ background-color: #999;
371
+ font-size: 10px;
372
+ line-height: 12px;
373
+ color: #fff;
374
+ }
375
+
376
+ .row-card-item .number-formatter {
377
+ width: 100%;
378
+ height: 100%;
379
+ display: inline-flex;
380
+ align-items: center;
381
+ }
382
+
383
+ .row-card-item .geolocation-formatter {
384
+ width: 100%;
385
+ }
386
+
387
+ .row-card-item .geolocation-formatter div {
388
+ width: 100%;
389
+ overflow: hidden;
390
+ text-overflow: ellipsis;
391
+ white-space: nowrap;
392
+ }
393
+
394
+ .row-card-content .row-card-item .row-card-item-container {
395
+ padding: 0;
396
+ position: relative;
397
+ }
398
+
399
+ .row-card-item .row-card-item-header {
400
+ position: absolute;
401
+ top: 12px;
402
+ padding: 0 12px;
403
+ pointer-events: none;
404
+ }
405
+
406
+ .row-card-item .row-card-item-name {
407
+ pointer-events: none;
408
+ }
409
+
410
+ .row-card-item .row-card-item-remove {
411
+ pointer-events: all;
412
+ }
413
+
414
+ .row-card-item .row-card-item-container .row-card-item-content {
415
+ height: 88px;
416
+ padding: 24px 12px 0;
417
+ }
418
+
419
+ .row-card-column--resizing {
420
+ background-color: #f5f5f5;
421
+ }
422
+
423
+ .row-card-draggable:hover {
424
+ background-color: #f5f5f5;
425
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
11
+ var _reactstrap = require("reactstrap");
12
+ var _helpers = require("../../helpers");
13
+ var _seatableTableRecord = _interopRequireDefault(require("./seatable-table-record"));
14
+ require("./index.css");
15
+ const AddSeatableRowDialog = _ref => {
16
+ let {
17
+ editor,
18
+ closeDialog,
19
+ handleSubmit,
20
+ data
21
+ } = _ref;
22
+ const {
23
+ table
24
+ } = data;
25
+ const [rowRecordsErrorMessage, setRowRecordsErrorMessage] = (0, _react.useState)('');
26
+ const [selectedRow, setSelectedRow] = (0, _react.useState)(null);
27
+ const {
28
+ t
29
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
30
+ const submit = (0, _react.useCallback)(() => {
31
+ setRowRecordsErrorMessage('');
32
+ if (!selectedRow) {
33
+ setRowRecordsErrorMessage(t('Please_select_one_row_record'));
34
+ return;
35
+ }
36
+ if (selectedRow) {
37
+ (0, _helpers.insertSeaTableRow)(editor, table._id, selectedRow, 'after');
38
+ }
39
+ handleSubmit && handleSubmit();
40
+ closeDialog();
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ }, [editor, selectedRow]);
43
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
44
+ isOpen: true,
45
+ autoFocus: false,
46
+ toggle: closeDialog,
47
+ className: "seatable-rows-select-dialog",
48
+ zIndex: 1071,
49
+ returnFocusAfterClose: false
50
+ }, /*#__PURE__*/_react.default.createElement("div", {
51
+ className: "modal-header-container"
52
+ }, /*#__PURE__*/_react.default.createElement("h5", {
53
+ className: "modal-title-container"
54
+ }, t('Select_seatable_rows')), /*#__PURE__*/_react.default.createElement("div", {
55
+ className: "sdocfont sdoc-close1 seatable-rows-close-dialog",
56
+ onClick: closeDialog
57
+ })), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
58
+ className: "form-group"
59
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, table.name), /*#__PURE__*/_react.default.createElement(_seatableTableRecord.default, {
60
+ table: table,
61
+ setSelectedRow: setSelectedRow
62
+ }), rowRecordsErrorMessage && /*#__PURE__*/_react.default.createElement(_reactstrap.Alert, {
63
+ color: "danger",
64
+ className: "mt-2"
65
+ }, t(rowRecordsErrorMessage))))), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, {
66
+ className: "sdoc-seatable-rows-select-footer"
67
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
68
+ color: "secondary",
69
+ onClick: closeDialog
70
+ }, t('Cancel')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
71
+ color: "primary",
72
+ disabled: false,
73
+ onClick: submit
74
+ }, t('Add_row_record'))));
75
+ };
76
+ var _default = exports.default = AddSeatableRowDialog;
@@ -0,0 +1,133 @@
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 _dtableStore = require("dtable-store");
12
+ var _helpers = require("./helpers");
13
+ var _SimpleCellFormatter = _interopRequireDefault(require("./formatters/SimpleCellFormatter"));
14
+ var _constants = require("../../constants");
15
+ const DEFAULT_MAX_DISPLAY_LINKS = 40;
16
+ class LinkContent extends _react.Component {
17
+ constructor() {
18
+ super(...arguments);
19
+ (0, _defineProperty2.default)(this, "getFormatterContent", shownLinks => {
20
+ const {
21
+ linkedColumn
22
+ } = this.props;
23
+ const {
24
+ type
25
+ } = linkedColumn;
26
+ let formatterProps = {
27
+ column: linkedColumn,
28
+ isCellSelected: false,
29
+ readOnly: true
30
+ };
31
+ const className = `link formatter-item ${type === _dtableStore.CellType.SINGLE_SELECT ? 'mr-1' : ''}`;
32
+ return shownLinks.map(link => {
33
+ if (!link) return null;
34
+ const {
35
+ row_id,
36
+ display_value
37
+ } = link;
38
+ if (!Array.isArray(display_value)) {
39
+ formatterProps['value'] = display_value;
40
+ return /*#__PURE__*/_react.default.createElement("div", {
41
+ key: `link-record-item-${row_id}`,
42
+ className: className
43
+ }, /*#__PURE__*/_react.default.createElement("span", {
44
+ className: "row-cell-value-empty"
45
+ }));
46
+ }
47
+ return display_value.map((item, index) => {
48
+ formatterProps['value'] = item;
49
+ return /*#__PURE__*/_react.default.createElement("div", {
50
+ key: `link-record-item-${row_id}-${index}`,
51
+ className: className
52
+ }, /*#__PURE__*/_react.default.createElement("span", {
53
+ className: "row-cell-value-empty"
54
+ }));
55
+ });
56
+ });
57
+ });
58
+ (0, _defineProperty2.default)(this, "renderLinks", () => {
59
+ const {
60
+ linkedColumn,
61
+ computedValue,
62
+ maxDisplayLinks
63
+ } = this.props;
64
+ const {
65
+ key,
66
+ type
67
+ } = linkedColumn;
68
+ if (!Array.isArray(computedValue) || computedValue.length === 0) {
69
+ return [];
70
+ }
71
+ const shownLinks = computedValue.length > maxDisplayLinks ? computedValue.slice(0, 40) : computedValue;
72
+ if (_constants.NEED_FORMATTER.includes(type)) {
73
+ return this.getFormatterContent(shownLinks);
74
+ }
75
+ const {
76
+ collaborators,
77
+ departments
78
+ } = window.app.state;
79
+ return shownLinks.map((link, index) => {
80
+ const {
81
+ row_id,
82
+ display_value
83
+ } = link;
84
+ const linkedValue = _constants.LINK_NOT_SUPPORT_TYPES.includes(type) ? null : display_value;
85
+ const row = {
86
+ _id: row_id,
87
+ [key]: linkedValue
88
+ };
89
+ const formulaRows = type === _dtableStore.CellType.FORMULA ? {
90
+ [row_id]: row
91
+ } : null;
92
+ const cellValue = (0, _dtableStore.getCellValueStringResult)(row, linkedColumn, {
93
+ formulaRows,
94
+ collaborators,
95
+ departments
96
+ });
97
+ return /*#__PURE__*/_react.default.createElement("div", {
98
+ key: `link-item-${index}`,
99
+ className: "link"
100
+ }, /*#__PURE__*/_react.default.createElement("span", {
101
+ className: "link-name pr-1",
102
+ title: cellValue
103
+ }, cellValue));
104
+ });
105
+ });
106
+ }
107
+ createColumnFormatter(Formatter, formatterProps) {
108
+ if ( /*#__PURE__*/_react.default.isValidElement(Formatter)) {
109
+ return /*#__PURE__*/_react.default.cloneElement(Formatter, {
110
+ ...formatterProps
111
+ });
112
+ } else if ((0, _helpers.isFunction)(Formatter)) {
113
+ return /*#__PURE__*/_react.default.createElement(Formatter, formatterProps);
114
+ }
115
+ return /*#__PURE__*/_react.default.createElement(_SimpleCellFormatter.default, formatterProps);
116
+ }
117
+ render() {
118
+ const {
119
+ linkedColumn,
120
+ computedValue,
121
+ Empty
122
+ } = this.props;
123
+ if (!linkedColumn || !Array.isArray(computedValue) || computedValue.length === 0) {
124
+ return Empty;
125
+ }
126
+ return this.renderLinks();
127
+ }
128
+ }
129
+ (0, _defineProperty2.default)(LinkContent, "defaultProps", {
130
+ maxDisplayLinks: DEFAULT_MAX_DISPLAY_LINKS,
131
+ Empty: null
132
+ });
133
+ var _default = exports.default = LinkContent;