dtable-ui-component 0.1.75 → 0.1.76
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.
- package/README.md +20 -2
- package/lib/AutoNumberFormatter/index.css +1 -0
- package/{es/components/cell-formatter/auto-number-formatter.js → lib/AutoNumberFormatter/index.js} +1 -0
- package/lib/ButtonFormatter/index.css +13 -0
- package/{es/components/cell-formatter/button-formatter.js → lib/ButtonFormatter/index.js} +1 -0
- package/lib/CTimeFormatter/index.css +1 -0
- package/{es/components/cell-formatter/ctime-formatter.js → lib/CTimeFormatter/index.js} +1 -0
- package/lib/CheckboxEditor/index.js +104 -0
- package/lib/CheckboxFormatter/index.css +1 -0
- package/{es/components/cell-formatter/checkbox-formatter.js → lib/CheckboxFormatter/index.js} +1 -0
- package/lib/CollaboratorEditor/index.css +48 -0
- package/lib/CollaboratorEditor/index.js +237 -0
- package/lib/CollaboratorEditor/mb-collaborator-editor-popover/index.css +86 -0
- package/lib/CollaboratorEditor/mb-collaborator-editor-popover/index.js +178 -0
- package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.css +1 -0
- package/lib/CollaboratorEditor/pc-collaborator-editor-popover/index.js +110 -0
- package/lib/CollaboratorFormatter/index.css +1 -0
- package/{es/components/cell-formatter/collaborator-formatter.js → lib/CollaboratorFormatter/index.js} +3 -2
- package/lib/CollaboratorItem/index.css +49 -0
- package/{es/components/common/collaborator-item.js → lib/CollaboratorItem/index.js} +1 -0
- package/lib/CreatorFormatter/index.css +1 -0
- package/{es/components/cell-formatter/creator-formatter.js → lib/CreatorFormatter/index.js} +3 -2
- package/lib/DateEditor/index.css +4 -0
- package/lib/DateEditor/index.js +152 -0
- package/{es/css → lib/DateEditor/mb-date-editor-popover}/custom-rc-calendar.css +0 -0
- package/lib/DateEditor/mb-date-editor-popover/index.css +45 -0
- package/lib/DateEditor/mb-date-editor-popover/index.js +245 -0
- package/lib/DateEditor/pc-date-editor-popover.js +142 -0
- package/lib/DateFormatter/index.css +1 -0
- package/{es/components/cell-formatter/date-formatter.js → lib/DateFormatter/index.js} +2 -1
- package/lib/DurationFormatter/index.css +1 -0
- package/{es/components/cell-formatter/duration-formatter.js → lib/DurationFormatter/index.js} +2 -1
- package/{es/components/common/edit-editor-button.js → lib/EditEditorButton/index.js} +0 -0
- package/lib/EmailFormatter/index.css +5 -0
- package/{es/components/cell-formatter/email-formatter.js → lib/EmailFormatter/index.js} +1 -0
- package/lib/FileEditor/index.js +46 -0
- package/lib/FileEditor/pc-files-addition/index.js +0 -0
- package/lib/FileEditor/pc-files-addition/pc-file-uploaded-item.js +0 -0
- package/lib/FileEditor/pc-files-preview/index.js +0 -0
- package/lib/FileEditor/pc-files-preview/pc-file-item-preview.js +0 -0
- package/lib/FileFormatter/index.css +29 -0
- package/{es/components/cell-formatter/file-formatter.js → lib/FileFormatter/index.js} +2 -1
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/excel.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/file.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/music.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/pdf.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/pic.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/ppt.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/txt.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/video.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/192/word.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/excel.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/file.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/music.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/pdf.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/pic.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/ppt.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/txt.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/video.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/file/24/word.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/folder/folder-192.png +0 -0
- package/{es/assets/images → lib/FileItemFormatter/assets}/folder/folder-24.png +0 -0
- package/{es/components/cell-formatter/widgets/file-item-formatter.js → lib/FileItemFormatter/index.js} +2 -2
- package/lib/FileItemFormatter/utils.js +72 -0
- package/{es/components/file-uploader → lib/FileUploader}/index.js +0 -0
- package/{es/utils → lib/FormulaFormatter}/cell-value-validator.js +1 -2
- package/lib/FormulaFormatter/index.css +19 -0
- package/{es/components/cell-formatter/formula-formatter.js → lib/FormulaFormatter/index.js} +7 -8
- package/{es/utils/column-utils.js → lib/FormulaFormatter/utils.js} +5 -1
- package/lib/GeolocationFormatter/index.css +1 -0
- package/{es/components/cell-formatter/geolocation-formatter.js → lib/GeolocationFormatter/index.js} +2 -1
- package/lib/HtmlLongTextFormatter/index.css +63 -0
- package/{es/components/cell-formatter/widgets/long-text-formatter/html-long-text-formatter.js → lib/HtmlLongTextFormatter/index.js} +5 -2
- package/{es/utils → lib/HtmlLongTextFormatter}/markdown2html.js +0 -0
- package/{es/utils → lib/HtmlLongTextFormatter}/unified/index.js +1 -0
- package/{es/utils → lib/HtmlLongTextFormatter}/vfile/core.js +1 -0
- package/{es/utils → lib/HtmlLongTextFormatter}/vfile/index.js +0 -0
- package/{es/components/common → lib/ImageFormatter}/images-lazy-load.js +2 -2
- package/lib/ImageFormatter/index.css +34 -0
- package/{es/components/cell-formatter/image-formatter.js → lib/ImageFormatter/index.js} +4 -3
- package/lib/ImageFormatter/utils.js +7 -0
- package/{es/css/image-previewer-ligntbox.css → lib/ImagePreviewerLightbox/index.css} +0 -0
- package/{es/components/cell-formatter/widgets/image-previewer-lightbox.js → lib/ImagePreviewerLightbox/index.js} +3 -3
- package/lib/ImagePreviewerLightbox/utils.js +8 -0
- package/lib/LastModifierFormatter/index.css +1 -0
- package/{es/components/cell-formatter/last-modifier-formatter.js → lib/LastModifierFormatter/index.js} +5 -4
- package/lib/LinkEditor/index.css +9 -0
- package/lib/LinkEditor/index.js +304 -0
- package/{es/components/common → lib/LinkEditor}/link-editor-option.js +0 -0
- package/lib/LinkEditor/mb-link-editor-popover/index.css +85 -0
- package/lib/LinkEditor/mb-link-editor-popover/index.js +171 -0
- package/lib/LinkEditor/pc-link-editor-popover/index.css +63 -0
- package/lib/LinkEditor/pc-link-editor-popover/index.js +115 -0
- package/lib/LinkFormatter/index.css +27 -0
- package/{es/components/cell-formatter/link-formatter.js → lib/LinkFormatter/index.js} +2 -2
- package/{es/css/loading.css → lib/Loading/index.css} +0 -0
- package/{es/components/loading.js → lib/Loading/index.js} +1 -1
- package/{es/components/cell-formatter/long-text-formatter.js → lib/LongTextFormatter/index.js} +4 -6
- package/{es/components/common/mobile/mb-editor-header.js → lib/MBEditorHeader/index.js} +0 -0
- package/lib/MTimeFormatter/index.css +1 -0
- package/{es/components/cell-formatter/mtime-formatter.js → lib/MTimeFormatter/index.js} +1 -0
- package/{es/components/common/modal-portal.js → lib/ModalPortal/index.js} +0 -0
- package/lib/MultipleSelectEditor/index.css +9 -0
- package/lib/MultipleSelectEditor/index.js +236 -0
- package/lib/MultipleSelectFormatter/index.css +1 -0
- package/{es/components/cell-formatter/multiple-select-formatter.js → lib/MultipleSelectFormatter/index.js} +2 -1
- package/lib/NumberEditor/index.js +154 -0
- package/lib/NumberFormatter/index.css +1 -0
- package/{es/components/cell-formatter/number-formatter.js → lib/NumberFormatter/index.js} +2 -1
- package/lib/RateFormatter/index.css +1 -0
- package/{es/components/cell-formatter/rate-formatter.js → lib/RateFormatter/index.js} +1 -0
- package/{es/components/common/select-item.js → lib/SelectItem/index.js} +0 -0
- package/lib/SimpleLongTextFormatter/index.css +63 -0
- package/{es/components/cell-formatter/widgets/long-text-formatter/simple-long-text-formatter.js → lib/SimpleLongTextFormatter/index.js} +5 -2
- package/{es/utils → lib/SimpleLongTextFormatter}/normalize-long-text-value.js +3 -3
- package/lib/SingleSelectEditor/index.css +9 -0
- package/lib/SingleSelectEditor/index.js +201 -0
- package/lib/SingleSelectFormatter/index.css +1 -0
- package/{es/components/cell-formatter/single-select-formatter.js → lib/SingleSelectFormatter/index.js} +2 -1
- package/lib/TextEditor/index.js +122 -0
- package/lib/TextFormatter/index.css +1 -0
- package/{es/components/cell-formatter/text-formatter.js → lib/TextFormatter/index.js} +1 -0
- package/lib/UrlFormatter/index.css +5 -0
- package/{es/components/cell-formatter/url-formatter.js → lib/UrlFormatter/index.js} +1 -0
- package/{es → lib}/assets/images/avatar/default_avatar.png +0 -0
- package/{es/components/cell-factory/cell-formatter-factory.js → lib/cellFormatterFactory/index.js} +3 -3
- package/{es → lib}/constants/cell-types.js +0 -0
- package/lib/constants/index.js +49 -0
- package/lib/css/cell-editor.css +6 -0
- package/lib/css/cell-formatter.css +4 -0
- package/lib/css/mb-cell-editor.css +55 -0
- package/lib/formatterConfig/index.js +31 -0
- package/lib/index.js +43 -0
- package/{es → lib}/lang/index.js +0 -0
- package/{es → lib}/locals/de.js +0 -0
- package/{es → lib}/locals/en.js +0 -0
- package/{es → lib}/locals/fr.js +0 -0
- package/{es → lib}/locals/zh-CN.js +0 -0
- package/lib/select-editor/index.js +4 -0
- package/lib/select-editor/mb-select-editor-popover/index.css +127 -0
- package/lib/select-editor/mb-select-editor-popover/index.js +231 -0
- package/lib/select-editor/pc-select-editor-popover/index.css +72 -0
- package/lib/select-editor/pc-select-editor-popover/index.js +144 -0
- package/{es/components/common → lib/select-editor}/select-editor-option.js +0 -0
- package/{es/components/toast → lib/toaster}/alert.js +0 -0
- package/{es/components/toast → lib/toaster}/index.js +0 -0
- package/{es/components/toast → lib/toaster}/toast.js +0 -0
- package/{es/components/toast → lib/toaster}/toastManager.js +0 -0
- package/{es/components/toast → lib/toaster}/toaster.js +0 -0
- package/lib/utils/editor-utils.js +71 -0
- package/{es → lib}/utils/number-precision.js +1 -0
- package/lib/utils/utils.js +25 -0
- package/{es → lib}/utils/value-format-utils.js +3 -2
- package/package.json +8 -8
- package/es/app.css +0 -20
- package/es/app.js +0 -91
- package/es/components/cell-formatter/formatter-config.js +0 -31
- package/es/components/cell-formatter/index.js +0 -27
- package/es/constants/index.js +0 -48
- package/es/css/cell-editor.css +0 -614
- package/es/css/cell-formatter.css +0 -247
- package/es/index.js +0 -6
- package/es/utils/utils.js +0 -116
|
@@ -2,8 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
|
|
3
3
|
var _validators;
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import { FORMULA_RESULT_TYPE } from '../constants';
|
|
5
|
+
import { FORMULA_RESULT_TYPE, CellType } from '../constants';
|
|
7
6
|
|
|
8
7
|
var numberValidator = function numberValidator(value) {
|
|
9
8
|
return (value || value === 0) && Object.prototype.toString.call(value) === '[object Number]';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@import url('../css/cell-formatter.css');
|
|
2
|
+
|
|
3
|
+
.dtable-ui.formula-formatter.multiple .formula-formatter-content-item {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
margin-right: 10px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
.dtable-ui.formula-formatter.multiple .formula-formatter-content-item.simple-cell-formatter {
|
|
10
|
+
height: 20px;
|
|
11
|
+
padding: 0 8px;
|
|
12
|
+
align-items: center;
|
|
13
|
+
background: #eceff4;
|
|
14
|
+
border-radius: 3px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.dtable-ui.formula-formatter.multiple .formula-formatter-content-item .collaborator {
|
|
18
|
+
margin-right: 0;
|
|
19
|
+
}
|
|
@@ -4,14 +4,13 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
4
4
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
5
5
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
6
6
|
import React from 'react';
|
|
7
|
-
import { FORMULA_RESULT_TYPE } from '
|
|
8
|
-
import cellFormatterFactory from '../
|
|
9
|
-
import
|
|
10
|
-
import { isFunction } from '
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import { getFormulaDisplayString } from '../../utils/value-format-utils';
|
|
7
|
+
import { FORMULA_RESULT_TYPE, CellType } from '../constants';
|
|
8
|
+
import cellFormatterFactory from '../cellFormatterFactory';
|
|
9
|
+
import TextFormatter from '../TextFormatter';
|
|
10
|
+
import { isArrayFormalColumn, isSimpleCellFormatter, isFunction } from './utils';
|
|
11
|
+
import cellValueValidator from './cell-value-validator';
|
|
12
|
+
import { getFormulaDisplayString } from '../utils/value-format-utils';
|
|
13
|
+
import './index.css';
|
|
15
14
|
|
|
16
15
|
var FormulaFormatter = /*#__PURE__*/function (_React$Component) {
|
|
17
16
|
_inherits(FormulaFormatter, _React$Component);
|
|
@@ -4,4 +4,8 @@ export function isSimpleCellFormatter(type) {
|
|
|
4
4
|
}
|
|
5
5
|
export function isArrayFormalColumn(columnType) {
|
|
6
6
|
return ARRAY_FORMAL_COLUMNS.includes(columnType);
|
|
7
|
-
}
|
|
7
|
+
}
|
|
8
|
+
export var isFunction = function isFunction(functionToCheck) {
|
|
9
|
+
var getType = {};
|
|
10
|
+
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import url('../css/cell-formatter.css');
|
package/{es/components/cell-formatter/geolocation-formatter.js → lib/GeolocationFormatter/index.js}
RENAMED
|
@@ -4,7 +4,8 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import cn from 'astro-classname';
|
|
7
|
-
import { getGeolocationDisplayString } from '
|
|
7
|
+
import { getGeolocationDisplayString } from '../utils/value-format-utils';
|
|
8
|
+
import './index.css';
|
|
8
9
|
|
|
9
10
|
var GeolocationFormatter = /*#__PURE__*/function (_React$Component) {
|
|
10
11
|
_inherits(GeolocationFormatter, _React$Component);
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@import url('../css/cell-formatter.css');
|
|
2
|
+
|
|
3
|
+
.dtable-ui.long-text-formatter {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
height: 28px;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
text-overflow: ellipsis;
|
|
9
|
+
white-space: nowrap;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.dtable-ui.long-text-formatter.article {
|
|
13
|
+
display: block;
|
|
14
|
+
height: auto;
|
|
15
|
+
overflow: auto;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.dtable-ui.long-text-formatter .long-text-links,
|
|
19
|
+
.dtable-ui.long-text-formatter .long-text-check-list {
|
|
20
|
+
display: inline-block;
|
|
21
|
+
height: 20px;
|
|
22
|
+
padding: 2px;
|
|
23
|
+
margin: 4px;
|
|
24
|
+
color: #9c9c9c;
|
|
25
|
+
background-color: #f0f0f0;
|
|
26
|
+
border-radius: 3px;
|
|
27
|
+
line-height: 16px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.dtable-ui.long-text-formatter .long-text-check-list .dtable-font,
|
|
31
|
+
.dtable-ui.long-text-formatter .long-text-links .dtable-font {
|
|
32
|
+
margin-right: 4px;
|
|
33
|
+
font-size: 12px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.dtable-ui.long-text-formatter .long-text-check-list .long-text-check-list-completed {
|
|
37
|
+
color: #61BD4F;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.dtable-ui.long-text-formatter .long-text-images {
|
|
41
|
+
margin-right: -10px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.dtable-ui.long-text-formatter .long-text-images img {
|
|
45
|
+
max-width: 28px;
|
|
46
|
+
max-height: 28px;
|
|
47
|
+
border: 1px solid #f0f0f0;
|
|
48
|
+
box-sizing: border-box;
|
|
49
|
+
border-radius: 3px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.dtable-ui.long-text-formatter .long-text-images .image-number {
|
|
53
|
+
display: inline-block;
|
|
54
|
+
min-width: 14px;
|
|
55
|
+
padding: 0 3px;
|
|
56
|
+
line-height: 14px;
|
|
57
|
+
font-style: normal;
|
|
58
|
+
font-size: 12px;
|
|
59
|
+
border-radius: 6px;
|
|
60
|
+
background-color: #999;
|
|
61
|
+
color: #fff;
|
|
62
|
+
transform: translate(-50%, 9px) scale(0.8);
|
|
63
|
+
}
|
|
@@ -3,7 +3,9 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
3
3
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React, { Component } from 'react';
|
|
6
|
-
import
|
|
6
|
+
import cn from 'astro-classname';
|
|
7
|
+
import { processor } from './markdown2html';
|
|
8
|
+
import './index.css';
|
|
7
9
|
|
|
8
10
|
var HtmlLongTextFormatter = /*#__PURE__*/function (_Component) {
|
|
9
11
|
_inherits(HtmlLongTextFormatter, _Component);
|
|
@@ -79,7 +81,8 @@ var HtmlLongTextFormatter = /*#__PURE__*/function (_Component) {
|
|
|
79
81
|
key: "render",
|
|
80
82
|
value: function render() {
|
|
81
83
|
var innerHtml = this.state.innerHtml;
|
|
82
|
-
var
|
|
84
|
+
var containerClassName = this.props.containerClassName;
|
|
85
|
+
var className = cn('dtable-ui cell-formatter-container long-text-formatter', containerClassName);
|
|
83
86
|
if (!innerHtml) return null;
|
|
84
87
|
return /*#__PURE__*/React.createElement("div", {
|
|
85
88
|
className: "".concat(className, " article"),
|
|
File without changes
|
|
File without changes
|
|
@@ -3,8 +3,8 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
3
3
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import Loading from '../
|
|
7
|
-
import { getImageThumbnailUrl } from '
|
|
6
|
+
import Loading from '../Loading';
|
|
7
|
+
import { getImageThumbnailUrl } from './utils';
|
|
8
8
|
|
|
9
9
|
var ImagesLazyLoad = /*#__PURE__*/function (_React$Component) {
|
|
10
10
|
_inherits(ImagesLazyLoad, _React$Component);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@import url('../css/cell-formatter.css');
|
|
2
|
+
|
|
3
|
+
.dtable-ui.image-formatter {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.dtable-ui.image-formatter .image-item {
|
|
9
|
+
display: inline-block;
|
|
10
|
+
height: 28px;
|
|
11
|
+
width: 28px;
|
|
12
|
+
margin-right: 4px;
|
|
13
|
+
border: 1px solid #f0f0f0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.dtable-ui.image-formatter .image-item:hover {
|
|
17
|
+
border: 1px solid #c9c9c9;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.dtable-ui.image-formatter .image-item-count {
|
|
21
|
+
display: inline-block;
|
|
22
|
+
padding: 0 3px;
|
|
23
|
+
min-width: 14px;
|
|
24
|
+
line-height: 14px;
|
|
25
|
+
font-size: 12px;
|
|
26
|
+
border-radius: 6px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
text-overflow: ellipsis;
|
|
29
|
+
white-space: nowrap;
|
|
30
|
+
color: #fff;
|
|
31
|
+
background-color: #999;
|
|
32
|
+
-webkit-transform: translate(-50%, 8px) scale(.8);
|
|
33
|
+
transform: translate(-50%, 8px) scale(.8);
|
|
34
|
+
}
|
|
@@ -4,9 +4,10 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React, { Fragment } from 'react';
|
|
6
6
|
import cn from 'astro-classname';
|
|
7
|
-
import ImagesLazyLoad from '
|
|
8
|
-
import { getImageThumbnailUrl } from '
|
|
9
|
-
import ImagePreviewerLightbox from '
|
|
7
|
+
import ImagesLazyLoad from './images-lazy-load';
|
|
8
|
+
import { getImageThumbnailUrl } from './utils';
|
|
9
|
+
import ImagePreviewerLightbox from '../ImagePreviewerLightbox';
|
|
10
|
+
import './index.css';
|
|
10
11
|
|
|
11
12
|
var ImageFormatter = /*#__PURE__*/function (_React$Component) {
|
|
12
13
|
_inherits(ImageFormatter, _React$Component);
|
|
File without changes
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { Fragment } from 'react';
|
|
2
2
|
import MediaQuery from 'react-responsive';
|
|
3
|
-
import ModalPortal from '
|
|
3
|
+
import ModalPortal from '../ModalPortal';
|
|
4
4
|
import Lightbox from '@seafile/react-image-lightbox';
|
|
5
|
-
import { checkSVGImage, isInternalImg } from '
|
|
5
|
+
import { checkSVGImage, isInternalImg } from './utils';
|
|
6
6
|
import '@seafile/react-image-lightbox/style.css';
|
|
7
|
-
import '
|
|
7
|
+
import './index.css';
|
|
8
8
|
|
|
9
9
|
function ImagePreviewerLightbox(props) {
|
|
10
10
|
var imageItems = props.imageItems,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var isInternalImg = function isInternalImg(url) {
|
|
2
|
+
if (!url) return;
|
|
3
|
+
return url.indexOf(window.dtable.server) > -1;
|
|
4
|
+
};
|
|
5
|
+
export var checkSVGImage = function checkSVGImage(url) {
|
|
6
|
+
if (!url) return false;
|
|
7
|
+
return url.substr(-4).toLowerCase() === '.svg';
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import url('../css/cell-formatter.css');
|
|
@@ -4,14 +4,15 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
|
4
4
|
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import cn from 'astro-classname';
|
|
7
|
-
import
|
|
8
|
-
import DefaultAvatar from '
|
|
7
|
+
import CollaboratorItem from '../CollaboratorItem';
|
|
8
|
+
import DefaultAvatar from '../assets/images/avatar/default_avatar.png';
|
|
9
|
+
import './index.css';
|
|
9
10
|
|
|
10
11
|
// there will be there conditions
|
|
11
12
|
// 1 value is not exist, typeof value is array, but it's length is 0
|
|
12
13
|
// 2 value is exist, but can't find in collaborators
|
|
13
14
|
// 3 value is exist, typeof value is a string
|
|
14
|
-
// 4
|
|
15
|
+
// 4 value is exist, typeof value is array
|
|
15
16
|
var LastModifierFormatter = /*#__PURE__*/function (_React$PureComponent) {
|
|
16
17
|
_inherits(LastModifierFormatter, _React$PureComponent);
|
|
17
18
|
|
|
@@ -49,7 +50,7 @@ var LastModifierFormatter = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
return /*#__PURE__*/React.createElement(
|
|
53
|
+
return /*#__PURE__*/React.createElement(CollaboratorItem, {
|
|
53
54
|
key: index,
|
|
54
55
|
collaborator: collaborator
|
|
55
56
|
});
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
|
+
import React, { Fragment } from 'react';
|
|
6
|
+
import MediaQuery from 'react-responsive';
|
|
7
|
+
import { getLocale } from '../lang';
|
|
8
|
+
import { CellType } from '../constants';
|
|
9
|
+
import { getNumberDisplayString, getDateDisplayString } from '../utils/value-format-utils';
|
|
10
|
+
import EditEditorButton from '../EditEditorButton';
|
|
11
|
+
import LinkEditorOption from './link-editor-option';
|
|
12
|
+
import PCLinkEditorPopover from './pc-link-editor-popover';
|
|
13
|
+
import MBLinkEditorPopover from './mb-link-editor-popover';
|
|
14
|
+
import './index.css';
|
|
15
|
+
|
|
16
|
+
var LinkEditor = /*#__PURE__*/function (_React$Component) {
|
|
17
|
+
_inherits(LinkEditor, _React$Component);
|
|
18
|
+
|
|
19
|
+
var _super = _createSuper(LinkEditor);
|
|
20
|
+
|
|
21
|
+
function LinkEditor(props) {
|
|
22
|
+
var _this;
|
|
23
|
+
|
|
24
|
+
_classCallCheck(this, LinkEditor);
|
|
25
|
+
|
|
26
|
+
_this = _super.call(this, props);
|
|
27
|
+
|
|
28
|
+
_this.onDocumentToggle = function (e) {
|
|
29
|
+
if (_this.editorContainer !== e.target && !_this.editorContainer.contains(e.target)) {
|
|
30
|
+
_this.onClosePopover();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
_this.getLinkedCellValue = function () {
|
|
35
|
+
var _this$props = _this.props,
|
|
36
|
+
row = _this$props.row,
|
|
37
|
+
column = _this$props.column,
|
|
38
|
+
linkMetaData = _this$props.linkMetaData;
|
|
39
|
+
|
|
40
|
+
var _ref = column.data || {},
|
|
41
|
+
link_id = _ref.link_id,
|
|
42
|
+
table_id = _ref.table_id,
|
|
43
|
+
other_table_id = _ref.other_table_id;
|
|
44
|
+
|
|
45
|
+
_this.linkId = link_id;
|
|
46
|
+
_this.tableId = table_id;
|
|
47
|
+
_this.otherTableId = other_table_id;
|
|
48
|
+
return linkMetaData.getLinkedCellValue(_this.linkId, _this.tableId, _this.otherTableId, row._id);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
_this.formatLinkedValuesToOptions = function () {
|
|
52
|
+
var _this$props2 = _this.props,
|
|
53
|
+
column = _this$props2.column,
|
|
54
|
+
linkMetaData = _this$props2.linkMetaData;
|
|
55
|
+
var rowIds = _this.state.newValue;
|
|
56
|
+
|
|
57
|
+
if (rowIds && Array.isArray(rowIds) && rowIds.length > 0) {
|
|
58
|
+
var linkedRows = linkMetaData.getLinkedRows(_this.otherTableId, rowIds);
|
|
59
|
+
var linkedTable = linkMetaData.getLinkedTable(_this.otherTableId);
|
|
60
|
+
return linkedRows.map(function (linkedRow) {
|
|
61
|
+
var displayColumnKey = column.data.display_column_key; // format value to display
|
|
62
|
+
|
|
63
|
+
var displayValue = _this.getDisplayValue(linkedTable, linkedRow, displayColumnKey);
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
id: linkedRow._id,
|
|
67
|
+
name: displayValue
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return [];
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
_this.getDisplayValue = function (linkedTable, linkedRow, displayColumnKey) {
|
|
76
|
+
var value = linkedRow[displayColumnKey];
|
|
77
|
+
var linkedColumn = linkedTable.columns.find(function (column) {
|
|
78
|
+
return column.key === displayColumnKey;
|
|
79
|
+
});
|
|
80
|
+
var type = linkedColumn.type,
|
|
81
|
+
data = linkedColumn.data;
|
|
82
|
+
|
|
83
|
+
switch (type) {
|
|
84
|
+
case CellType.NUMBER:
|
|
85
|
+
{
|
|
86
|
+
return getNumberDisplayString(value, data);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
case CellType.DATE:
|
|
90
|
+
{
|
|
91
|
+
var format = data.format;
|
|
92
|
+
return getDateDisplayString(value, format);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
default:
|
|
96
|
+
return value;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
_this.getAvailableLinkedOptions = function () {
|
|
101
|
+
var _this$props3 = _this.props,
|
|
102
|
+
column = _this$props3.column,
|
|
103
|
+
linkMetaData = _this$props3.linkMetaData;
|
|
104
|
+
var displayColumnKey = column.data.display_column_key;
|
|
105
|
+
var linkedTable = linkMetaData.getLinkedTable(_this.otherTableId);
|
|
106
|
+
var availableRows = linkedTable.rows.filter(function (row) {
|
|
107
|
+
return !!row[displayColumnKey];
|
|
108
|
+
});
|
|
109
|
+
var availableOptions = availableRows.map(function (row) {
|
|
110
|
+
var displayValue = _this.getDisplayValue(linkedTable, row, displayColumnKey);
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
id: row._id,
|
|
114
|
+
name: displayValue
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
return availableOptions;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
_this.onCommit = function (newValue) {// nothing todo
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
_this.onAddOptionToggle = function (event) {
|
|
124
|
+
event.nativeEvent.stopImmediatePropagation();
|
|
125
|
+
event.stopPropagation();
|
|
126
|
+
|
|
127
|
+
if (_this.props.isReadOnly) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var isPopoverShow = !_this.state.isPopoverShow;
|
|
132
|
+
|
|
133
|
+
if (isPopoverShow) {
|
|
134
|
+
var popoverPosition = _this.caculatePopoverPosition();
|
|
135
|
+
|
|
136
|
+
_this.setState({
|
|
137
|
+
isPopoverShow: isPopoverShow,
|
|
138
|
+
popoverPosition: popoverPosition
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
_this.setState({
|
|
142
|
+
isPopoverShow: isPopoverShow
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
_this.onOptionItemToggle = function (option) {
|
|
148
|
+
var _this$props4 = _this.props,
|
|
149
|
+
row = _this$props4.row,
|
|
150
|
+
linkMetaData = _this$props4.linkMetaData;
|
|
151
|
+
|
|
152
|
+
var newValue = _this.state.newValue.slice();
|
|
153
|
+
|
|
154
|
+
var optionIndex = newValue.findIndex(function (option_id) {
|
|
155
|
+
return option_id === option.id;
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
if (optionIndex !== -1) {
|
|
159
|
+
newValue.splice(optionIndex, 1);
|
|
160
|
+
linkMetaData.removeLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
|
|
161
|
+
} else {
|
|
162
|
+
newValue.push(option.id);
|
|
163
|
+
linkMetaData.addLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
_this.setState({
|
|
167
|
+
newValue: newValue
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
_this.onDeleteOption = function (option) {
|
|
172
|
+
var _this$props5 = _this.props,
|
|
173
|
+
row = _this$props5.row,
|
|
174
|
+
linkMetaData = _this$props5.linkMetaData;
|
|
175
|
+
|
|
176
|
+
var newValue = _this.state.newValue.slice();
|
|
177
|
+
|
|
178
|
+
var optionIndex = newValue.findIndex(function (option_id) {
|
|
179
|
+
return option_id === option.id;
|
|
180
|
+
});
|
|
181
|
+
newValue.splice(optionIndex, 1);
|
|
182
|
+
|
|
183
|
+
_this.setState({
|
|
184
|
+
newValue: newValue
|
|
185
|
+
}, function () {
|
|
186
|
+
linkMetaData.removeLink(_this.linkId, _this.tableId, _this.otherTableId, row._id, option.id);
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
_this.caculatePopoverPosition = function () {
|
|
191
|
+
var POPOVER_MAX_HEIGHT = 200;
|
|
192
|
+
var innerHeight = window.innerHeight;
|
|
193
|
+
|
|
194
|
+
var _this$editor$getClien = _this.editor.getClientRects()[0],
|
|
195
|
+
top = _this$editor$getClien.top,
|
|
196
|
+
height = _this$editor$getClien.height;
|
|
197
|
+
|
|
198
|
+
var isBelow = innerHeight - (top + height) > POPOVER_MAX_HEIGHT;
|
|
199
|
+
var position = {
|
|
200
|
+
top: height + 1,
|
|
201
|
+
left: 0
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
if (!isBelow) {
|
|
205
|
+
var bottom = height + 1;
|
|
206
|
+
position = {
|
|
207
|
+
bottom: bottom,
|
|
208
|
+
left: 0
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return position;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
_this.onClosePopover = function () {
|
|
216
|
+
_this.setState({
|
|
217
|
+
isPopoverShow: false
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
_this.setEditorContainerRef = function (editorContainer) {
|
|
222
|
+
_this.editorContainer = editorContainer;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
_this.setEditorRef = function (editor) {
|
|
226
|
+
_this.editor = editor;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
_this.linkId = '';
|
|
230
|
+
_this.tableId = '';
|
|
231
|
+
_this.otherTableId = '';
|
|
232
|
+
_this.state = {
|
|
233
|
+
newValue: _this.getLinkedCellValue(),
|
|
234
|
+
isPopoverShow: false,
|
|
235
|
+
popoverPosition: {}
|
|
236
|
+
};
|
|
237
|
+
return _this;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
_createClass(LinkEditor, [{
|
|
241
|
+
key: "componentDidMount",
|
|
242
|
+
value: function componentDidMount() {
|
|
243
|
+
document.addEventListener('click', this.onDocumentToggle);
|
|
244
|
+
}
|
|
245
|
+
}, {
|
|
246
|
+
key: "componentWillUnmount",
|
|
247
|
+
value: function componentWillUnmount() {
|
|
248
|
+
document.removeEventListener('click', this.onDocumentToggle);
|
|
249
|
+
}
|
|
250
|
+
}, {
|
|
251
|
+
key: "render",
|
|
252
|
+
value: function render() {
|
|
253
|
+
var _this2 = this;
|
|
254
|
+
|
|
255
|
+
var isReadOnly = this.props.isReadOnly;
|
|
256
|
+
var _this$state = this.state,
|
|
257
|
+
isPopoverShow = _this$state.isPopoverShow,
|
|
258
|
+
popoverPosition = _this$state.popoverPosition;
|
|
259
|
+
var options = this.getAvailableLinkedOptions();
|
|
260
|
+
var selectedOptions = this.formatLinkedValuesToOptions();
|
|
261
|
+
var isShowRemoveIcon = !isReadOnly;
|
|
262
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
263
|
+
ref: this.setEditorContainerRef,
|
|
264
|
+
className: "cell-editor dtable-ui-link-editor"
|
|
265
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
266
|
+
ref: this.setEditorRef,
|
|
267
|
+
className: "dtable-ui-link-editor-container",
|
|
268
|
+
onClick: this.onAddOptionToggle
|
|
269
|
+
}, selectedOptions.length === 0 && /*#__PURE__*/React.createElement(EditEditorButton, {
|
|
270
|
+
text: getLocale('Add_an_option')
|
|
271
|
+
}), selectedOptions.length !== 0 && selectedOptions.map(function (option) {
|
|
272
|
+
return /*#__PURE__*/React.createElement(LinkEditorOption, {
|
|
273
|
+
key: option.id,
|
|
274
|
+
option: option,
|
|
275
|
+
isShowRemoveIcon: isShowRemoveIcon,
|
|
276
|
+
onDeleteLinkOption: _this2.onDeleteOption
|
|
277
|
+
});
|
|
278
|
+
})), isPopoverShow && /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MediaQuery, {
|
|
279
|
+
query: "(min-width: 768px)"
|
|
280
|
+
}, /*#__PURE__*/React.createElement(PCLinkEditorPopover, {
|
|
281
|
+
popoverPosition: popoverPosition,
|
|
282
|
+
options: options,
|
|
283
|
+
selectedOptions: selectedOptions,
|
|
284
|
+
onOptionItemToggle: this.onOptionItemToggle
|
|
285
|
+
})), /*#__PURE__*/React.createElement(MediaQuery, {
|
|
286
|
+
query: "(max-width: 767.8px)"
|
|
287
|
+
}, /*#__PURE__*/React.createElement(MBLinkEditorPopover, {
|
|
288
|
+
isReadOnly: this.props.isReadOnly,
|
|
289
|
+
value: this.state.newValue,
|
|
290
|
+
column: this.props.column,
|
|
291
|
+
options: options,
|
|
292
|
+
onOptionItemToggle: this.onOptionItemToggle,
|
|
293
|
+
onClosePopover: this.onClosePopover
|
|
294
|
+
}))));
|
|
295
|
+
}
|
|
296
|
+
}]);
|
|
297
|
+
|
|
298
|
+
return LinkEditor;
|
|
299
|
+
}(React.Component);
|
|
300
|
+
|
|
301
|
+
LinkEditor.defaultProps = {
|
|
302
|
+
isReadOnly: false
|
|
303
|
+
};
|
|
304
|
+
export default LinkEditor;
|
|
File without changes
|