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

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