@seafile/sdoc-editor 2.0.18-alph-0.0.4 → 2.0.18-alph-0.0.5

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