@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,442 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getRowRecord = exports.getRowName = exports.getFormattedCell = exports.getAllCollaborators = exports.UNSHOW_COLUMN_TYPE = void 0;
8
+ exports.getSelectColumnOptions = getSelectColumnOptions;
9
+ exports.isFunction = void 0;
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
+ var _dtableUtils = require("dtable-utils");
13
+ var _SimpleCellFormatter = _interopRequireDefault(require("./formatters/SimpleCellFormatter"));
14
+ var _SingleSelectOption = _interopRequireDefault(require("./formatters/SingleSelectOption"));
15
+ var _RateFormatter = _interopRequireDefault(require("./formatters/RateFormatter"));
16
+ const getRowName = (columns, row, formula_rows) => {
17
+ if (!row) return '';
18
+ const displayColumn = columns.find(column => column.key === '0000');
19
+ if (!displayColumn) return '';
20
+ const {
21
+ type,
22
+ key,
23
+ data
24
+ } = displayColumn;
25
+ let formulaRows;
26
+ if (formula_rows) {
27
+ formulaRows = formula_rows;
28
+ } else {
29
+ const view = window.app.getSelectedView();
30
+ formulaRows = view.formula_rows || {};
31
+ }
32
+ const tables = window.app.state.value.tables;
33
+ const {
34
+ departments = []
35
+ } = window.seafile || window.seafileConfig;
36
+ const collaborators = window.app.state.collaboratorsWithAppUsers;
37
+ // const { collaboratorManager } = window.seafile || window.seafileConfig;
38
+
39
+ return (0, _dtableUtils.getCellValueDisplayString)(row, type, key, {
40
+ formulaRows,
41
+ data,
42
+ tables,
43
+ collaborators,
44
+ departments
45
+ });
46
+ };
47
+ exports.getRowName = getRowName;
48
+ const getFormattedCell = function (column, row) {
49
+ let {
50
+ formulaRow = {},
51
+ searchValue = null,
52
+ tableId = null
53
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
54
+ let columnWidth = arguments.length > 3 ? arguments[3] : undefined;
55
+ let isShowColumnName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
56
+ let {
57
+ key,
58
+ type
59
+ } = column;
60
+ let {
61
+ _id: rowId
62
+ } = row;
63
+ let value = row[key];
64
+ let displayValue;
65
+ let isNonEmptyArray = Array.isArray(value) && value.length > 0;
66
+ switch (type) {
67
+ case _dtableUtils.CellType.TEXT:
68
+ {
69
+ if (value && typeof value === 'string') {
70
+ if (searchValue) {
71
+ // displayValue = _renderSearch(value, searchValue);
72
+ } else {
73
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
74
+ className: "cell-value-ellipsis text-truncate",
75
+ title: value
76
+ }, value);
77
+ }
78
+ }
79
+ break;
80
+ }
81
+ case _dtableUtils.CellType.DATE:
82
+ {
83
+ if (value && typeof value === 'string') {
84
+ const format = column.data && column.data.format ? column.data.format : 'YYYY-MM-DD';
85
+ const formatValue = (0, _dtableUtils.getDateDisplayString)(value, format);
86
+ // displayValue = searchValue ? _renderSearch(formatValue, searchValue) : formatValue;
87
+ displayValue = formatValue;
88
+ }
89
+ break;
90
+ }
91
+ case _dtableUtils.CellType.CTIME:
92
+ case _dtableUtils.CellType.MTIME:
93
+ {
94
+ if (value && typeof value === 'string') {
95
+ if (searchValue) {
96
+ // displayValue = (
97
+ // <Highlighter highlight={searchValue}>
98
+ // {dayjs(value).format('YYYY-MM-DD HH:mm:ss')}
99
+ // </Highlighter>
100
+ // );
101
+ } else {
102
+ displayValue = (0, _dayjs.default)(value).format('YYYY-MM-DD HH:mm:ss');
103
+ }
104
+ }
105
+ break;
106
+ }
107
+ case _dtableUtils.CellType.NUMBER:
108
+ {
109
+ if ((0, _dtableUtils.isNumber)(value)) {
110
+ const {
111
+ data = {}
112
+ } = column;
113
+ const formatedValue = (0, _dtableUtils.getNumberDisplayString)(value, data);
114
+ if (searchValue) {
115
+ // displayValue = _renderSearch(formatedValue, searchValue);
116
+ } else {
117
+ displayValue = /*#__PURE__*/_react.default.createElement("div", {
118
+ className: "number-formatter"
119
+ }, formatedValue);
120
+ }
121
+ }
122
+ break;
123
+ }
124
+ case _dtableUtils.CellType.LINK:
125
+ {
126
+ displayValue = null;
127
+ const {
128
+ data
129
+ } = column;
130
+ // if (!LinksUtils.isValidLink(data)) break;
131
+
132
+ // is default view: row data can get from formula row
133
+ // is archive view: row data can get form rowdata
134
+ // value = isArchiveViewRowData(row, column) ? value : formulaRow[key];
135
+ value = formulaRow[key];
136
+ if (!value || !Array.isArray(value) || value.length === 0) break;
137
+ const {
138
+ collaborators,
139
+ departments
140
+ } = window.app.state;
141
+ const {
142
+ display_column_key,
143
+ array_type,
144
+ array_data
145
+ } = data;
146
+ // linked table's linked column
147
+ const linkedColumn = {
148
+ key: display_column_key,
149
+ type: array_type,
150
+ data: array_data
151
+ };
152
+ displayValue = /*#__PURE__*/_react.default.createElement("div", {
153
+ className: "links-formatter"
154
+ }, /*#__PURE__*/_react.default.createElement("div", {
155
+ className: "formatter-show"
156
+ }, value.map(item => {
157
+ const {
158
+ row_id: rowId,
159
+ display_value: cellValue
160
+ } = item;
161
+ const linkedRow = {
162
+ _id: rowId,
163
+ [display_column_key]: cellValue
164
+ };
165
+ const formulaRows = {
166
+ [rowId]: linkedRow
167
+ };
168
+ const displayResult = (0, _dtableUtils.getCellValueStringResult)(linkedRow, linkedColumn, {
169
+ formulaRows,
170
+ collaborators,
171
+ departments
172
+ });
173
+ return /*#__PURE__*/_react.default.createElement("div", {
174
+ key: `${rowId}_${display_column_key}`,
175
+ className: "link"
176
+ }, /*#__PURE__*/_react.default.createElement("span", {
177
+ className: "link-name"
178
+ }, displayResult));
179
+ })));
180
+ break;
181
+ }
182
+ case _dtableUtils.CellType.COLLABORATOR:
183
+ {
184
+ if (value && isNonEmptyArray) {
185
+ const allCollaborators = getAllCollaborators();
186
+ let validValue = value.filter(item => {
187
+ return allCollaborators.find(collaborator => collaborator.email === item);
188
+ });
189
+ displayValue = validValue.length > 0 ? createColumnFormatter(type, {
190
+ value: validValue
191
+ }) : '';
192
+ }
193
+ break;
194
+ }
195
+ case _dtableUtils.CellType.SINGLE_SELECT:
196
+ {
197
+ if (value && typeof value === 'string') {
198
+ displayValue = /*#__PURE__*/_react.default.createElement(_SingleSelectOption.default, {
199
+ column: column,
200
+ value: value
201
+ });
202
+ }
203
+ break;
204
+ }
205
+ case _dtableUtils.CellType.MULTIPLE_SELECT:
206
+ {
207
+ if (value && isNonEmptyArray) {
208
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
209
+ className: "multiple-select-formatter"
210
+ }, value.map((item, index) => {
211
+ return /*#__PURE__*/_react.default.createElement(_SingleSelectOption.default, {
212
+ column: column,
213
+ value: item,
214
+ key: `row-operation-multiple-select-${index}`
215
+ });
216
+ }));
217
+ }
218
+ break;
219
+ }
220
+ case _dtableUtils.CellType.FILE:
221
+ {
222
+ if (value) {
223
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
224
+ className: "row-cell-value-empty"
225
+ });
226
+ }
227
+ break;
228
+ }
229
+ case _dtableUtils.CellType.IMAGE:
230
+ {
231
+ if (value) {
232
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
233
+ className: "row-cell-value-empty"
234
+ });
235
+ }
236
+ break;
237
+ }
238
+ case _dtableUtils.CellType.DIGITAL_SIGN:
239
+ {
240
+ if (value) {
241
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
242
+ className: "row-cell-value-empty"
243
+ });
244
+ }
245
+ break;
246
+ }
247
+ case _dtableUtils.CellType.DEPARTMENT_SINGLE_SELECT:
248
+ {
249
+ if (value) {
250
+ displayValue = createColumnFormatter(type, {
251
+ value
252
+ });
253
+ }
254
+ break;
255
+ }
256
+ case _dtableUtils.CellType.CHECKBOX:
257
+ {
258
+ if (value) {
259
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
260
+ className: "row-cell-value-empty"
261
+ });
262
+ }
263
+ break;
264
+ }
265
+ case _dtableUtils.CellType.GEOLOCATION:
266
+ {
267
+ if (value && typeof value === 'object') {
268
+ displayValue = /*#__PURE__*/_react.default.createElement("div", {
269
+ className: "geolocation-formatter"
270
+ }, createColumnFormatter(type, {
271
+ value,
272
+ column,
273
+ row,
274
+ isCellSelected: false
275
+ }));
276
+ }
277
+ break;
278
+ }
279
+ case _dtableUtils.CellType.CREATOR:
280
+ case _dtableUtils.CellType.LAST_MODIFIER:
281
+ {
282
+ if (value) {
283
+ displayValue = createColumnFormatter(type, {
284
+ value
285
+ });
286
+ }
287
+ break;
288
+ }
289
+ case _dtableUtils.CellType.LONG_TEXT:
290
+ {
291
+ if (value) {
292
+ displayValue = createColumnFormatter(type, {
293
+ value,
294
+ column
295
+ });
296
+ }
297
+ break;
298
+ }
299
+ case _dtableUtils.CellType.FORMULA:
300
+ case _dtableUtils.CellType.LINK_FORMULA:
301
+ {
302
+ if (!formulaRow) {
303
+ break;
304
+ }
305
+ if (value) {
306
+ displayValue = createColumnFormatter(type, {
307
+ value
308
+ });
309
+ }
310
+ break;
311
+ }
312
+ // email, url, audo_number are same
313
+ case _dtableUtils.CellType.EMAIL:
314
+ case _dtableUtils.CellType.URL:
315
+ case _dtableUtils.CellType.AUTO_NUMBER:
316
+ {
317
+ if (value) {
318
+ displayValue = createColumnFormatter(type, {
319
+ value
320
+ });
321
+ }
322
+ break;
323
+ }
324
+ case _dtableUtils.CellType.DURATION:
325
+ {
326
+ if (value) {
327
+ displayValue = createColumnFormatter(type, {
328
+ value,
329
+ column
330
+ });
331
+ }
332
+ break;
333
+ }
334
+ case _dtableUtils.CellType.RATE:
335
+ {
336
+ if (value) {
337
+ displayValue = /*#__PURE__*/_react.default.createElement(_RateFormatter.default, {
338
+ value: value,
339
+ column: column,
340
+ editable: false
341
+ });
342
+ }
343
+ break;
344
+ }
345
+ case _dtableUtils.CellType.BUTTON:
346
+ {
347
+ if (value) {
348
+ displayValue = /*#__PURE__*/_react.default.createElement("span", {
349
+ className: "row-cell-value-empty"
350
+ });
351
+ }
352
+ break;
353
+ }
354
+ default:
355
+ {
356
+ break;
357
+ }
358
+ }
359
+ return getCellRecord(displayValue, rowId, column, columnWidth, isShowColumnName);
360
+ };
361
+ exports.getFormattedCell = getFormattedCell;
362
+ const getAllCollaborators = () => {
363
+ const {
364
+ collaboratorsCache,
365
+ state
366
+ } = window.app;
367
+ return [...state.collaboratorsWithAppUsers, ...Object.values(collaboratorsCache)];
368
+ };
369
+ exports.getAllCollaborators = getAllCollaborators;
370
+ const createColumnFormatter = (columnType, formatterProps) => {
371
+ // const Formatter = cellFormatterFactory.createFormatter(columnType);
372
+ // if (React.isValidElement(Formatter)) {
373
+ // return React.cloneElement(Formatter, { ...formatterProps });
374
+ // } else if (isFunction(Formatter)) {
375
+ // return <Formatter {...formatterProps} />;
376
+ // }
377
+ return /*#__PURE__*/_react.default.createElement(_SimpleCellFormatter.default, formatterProps);
378
+ };
379
+ const getCellRecord = function (displayValue, rowId, column, columnWidth) {
380
+ let isShowColumnName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
381
+ let {
382
+ key,
383
+ name
384
+ } = column;
385
+ if (!isShowColumnName) {
386
+ return /*#__PURE__*/_react.default.createElement("div", {
387
+ className: "row-cell-value text-truncate",
388
+ key: rowId + '_' + key,
389
+ style: {
390
+ width: columnWidth
391
+ }
392
+ }, displayValue ? displayValue : /*#__PURE__*/_react.default.createElement("span", {
393
+ className: "row-cell-value-empty"
394
+ }));
395
+ }
396
+ return /*#__PURE__*/_react.default.createElement("div", {
397
+ className: `row-cell-value text-truncate ${isShowColumnName && 'show-name'}`,
398
+ key: rowId + '_' + key,
399
+ style: {
400
+ width: columnWidth
401
+ }
402
+ }, /*#__PURE__*/_react.default.createElement("span", {
403
+ className: "column-name text-truncate"
404
+ }, name), /*#__PURE__*/_react.default.createElement("div", {
405
+ className: "row-cell-value-content",
406
+ style: {
407
+ width: columnWidth
408
+ }
409
+ }, displayValue ? displayValue : /*#__PURE__*/_react.default.createElement("span", {
410
+ className: "row-cell-value-empty"
411
+ })));
412
+ };
413
+ const UNSHOW_COLUMN_TYPE = exports.UNSHOW_COLUMN_TYPE = [_dtableUtils.CellType.LINK, _dtableUtils.CellType.LONG_TEXT, _dtableUtils.CellType.FORMULA, _dtableUtils.CellType.LINK_FORMULA];
414
+ const getRowRecord = function (currentTableId, row, columns, unShowColumnKeyList) {
415
+ let matchedResult = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
416
+ if (!Array.isArray(unShowColumnKeyList)) {
417
+ unShowColumnKeyList = [];
418
+ }
419
+ return columns.filter(column => {
420
+ if (unShowColumnKeyList.includes(column.key)) return false;
421
+ if (UNSHOW_COLUMN_TYPE.includes(column.type)) return false;
422
+ return true;
423
+ }).map(column => {
424
+ const searchValue = matchedResult && matchedResult[column.key];
425
+ return getFormattedCell(column, row, {
426
+ tableId: currentTableId,
427
+ searchValue
428
+ }, column.width);
429
+ });
430
+ };
431
+ exports.getRowRecord = getRowRecord;
432
+ const isFunction = functionToCheck => {
433
+ const getType = {};
434
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
435
+ };
436
+ exports.isFunction = isFunction;
437
+ function getSelectColumnOptions(column) {
438
+ if (!column || !column.data || !Array.isArray(column.data.options)) {
439
+ return [];
440
+ }
441
+ return column.data.options;
442
+ }