@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
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NEED_FORMATTER = exports.LINK_NOT_SUPPORT_TYPES = exports.DELETED_OPTION_BACKGROUND_COLOR = void 0;
7
+ var _dtableUtils = require("dtable-utils");
8
+ const LINK_NOT_SUPPORT_TYPES = exports.LINK_NOT_SUPPORT_TYPES = [_dtableUtils.CellType.CHECKBOX, _dtableUtils.CellType.RATE, _dtableUtils.CellType.LONG_TEXT, _dtableUtils.CellType.IMAGE, _dtableUtils.CellType.FILE, _dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.MULTIPLE_SELECT, _dtableUtils.CellType.GEOLOCATION, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.BUTTON, _dtableUtils.CellType.LINK, _dtableUtils.CellType.DIGITAL_SIGN];
9
+ const NEED_FORMATTER = exports.NEED_FORMATTER = [_dtableUtils.CellType.CREATOR, _dtableUtils.CellType.LAST_MODIFIER, _dtableUtils.CellType.SINGLE_SELECT];
10
+ const DELETED_OPTION_BACKGROUND_COLOR = exports.DELETED_OPTION_BACKGROUND_COLOR = '#eaeaea';
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _rateItem = _interopRequireDefault(require("./widget/rate-item"));
11
+ require("./rate-formatter.css");
12
+ class RateFormatter extends _react.default.Component {
13
+ constructor(props) {
14
+ super(props);
15
+ (0, _defineProperty2.default)(this, "onMouseEnterRateItem", index => {
16
+ this.setState({
17
+ enterRateItemIndex: index
18
+ });
19
+ });
20
+ (0, _defineProperty2.default)(this, "onMouseLeaveRateItem", () => {
21
+ this.setState({
22
+ enterRateItemIndex: -1
23
+ });
24
+ });
25
+ (0, _defineProperty2.default)(this, "onChangeRateNumber", index => {
26
+ const {
27
+ value
28
+ } = this.state;
29
+ let {
30
+ column,
31
+ onCommit,
32
+ row
33
+ } = this.props;
34
+ let updated;
35
+ if (value === index) {
36
+ this.setState({
37
+ value: ''
38
+ });
39
+ updated = {
40
+ [column === null || column === void 0 ? void 0 : column.key]: ''
41
+ };
42
+ } else {
43
+ this.setState({
44
+ value: index
45
+ });
46
+ updated = {
47
+ [column === null || column === void 0 ? void 0 : column.key]: index
48
+ };
49
+ }
50
+ onCommit({
51
+ rowId: row ? row._id : '',
52
+ cellKey: column === null || column === void 0 ? void 0 : column.key,
53
+ updated
54
+ });
55
+ });
56
+ (0, _defineProperty2.default)(this, "getRateMaxStar", () => {
57
+ const {
58
+ column,
59
+ value,
60
+ isCellSelected,
61
+ readOnly
62
+ } = this.props;
63
+ const {
64
+ enterRateItemIndex
65
+ } = this.state;
66
+ const {
67
+ rate_max_number
68
+ } = column.data || {};
69
+ const editable = !readOnly && this.props.editable;
70
+ let rateList = [];
71
+ if (value || isCellSelected) {
72
+ for (let i = 0; i < rate_max_number; i++) {
73
+ let rateItem = /*#__PURE__*/_react.default.createElement(_rateItem.default, {
74
+ key: i,
75
+ enterRateItemIndex: enterRateItemIndex,
76
+ rateItemIndex: i + 1,
77
+ onMouseEnterRateItem: this.onMouseEnterRateItem,
78
+ onMouseLeaveRateItem: this.onMouseLeaveRateItem,
79
+ value: value,
80
+ column: column,
81
+ isShowRateItem: isCellSelected && editable,
82
+ onChangeRateNumber: this.onChangeRateNumber,
83
+ editable: editable
84
+ });
85
+ rateList.push(rateItem);
86
+ }
87
+ }
88
+ return rateList;
89
+ });
90
+ this.state = {
91
+ value: props.value || 0,
92
+ enterRateItemIndex: -1
93
+ };
94
+ }
95
+ render() {
96
+ const {
97
+ value
98
+ } = this.props;
99
+ let rateList = this.getRateMaxStar();
100
+ return /*#__PURE__*/_react.default.createElement("div", {
101
+ className: "d-flex rate-formatter",
102
+ title: value,
103
+ role: "button",
104
+ "aria-label": `${value}${this.props.cellAriaLabel || ''}`
105
+ }, rateList);
106
+ }
107
+ }
108
+ RateFormatter.defaultProps = {
109
+ editable: true
110
+ };
111
+ var _default = exports.default = RateFormatter;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ class SimpleCellFormatter extends _react.default.Component {
11
+ constructor() {
12
+ super(...arguments);
13
+ (0, _defineProperty2.default)(this, "getFormattedValue", val => {
14
+ let formattedValue = val;
15
+ if (Object.prototype.toString.call(val) === '[object Boolean]') {
16
+ formattedValue += '';
17
+ }
18
+ return formattedValue;
19
+ });
20
+ }
21
+ shouldComponentUpdate(nextProps) {
22
+ return nextProps.value !== this.props.value;
23
+ }
24
+ render() {
25
+ const {
26
+ value,
27
+ type,
28
+ cellAriaLabel = ''
29
+ } = this.props;
30
+ if (typeof value === 'object') {
31
+ return null;
32
+ }
33
+ let formattedValue = this.getFormattedValue(value);
34
+ return /*#__PURE__*/_react.default.createElement("div", {
35
+ className: type ? `grid-cell-type-${type}` : 'grid-cell-type-default',
36
+ title: formattedValue,
37
+ "aria-label": `${formattedValue}${cellAriaLabel}`
38
+ }, formattedValue);
39
+ }
40
+ }
41
+ var _default = exports.default = SimpleCellFormatter;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _constants = require("../../../constants");
11
+ var _helpers = require("../helpers");
12
+ class SingleSelectOption extends _react.default.Component {
13
+ constructor() {
14
+ super(...arguments);
15
+ (0, _defineProperty2.default)(this, "getCurrentOption", () => {
16
+ let {
17
+ value,
18
+ column
19
+ } = this.props;
20
+ let options = (0, _helpers.getSelectColumnOptions)(column);
21
+ return options.find(item => item.id === value);
22
+ });
23
+ (0, _defineProperty2.default)(this, "getStyle", option => {
24
+ let style = {
25
+ display: 'inline-block',
26
+ padding: '0px 10px',
27
+ height: '20px',
28
+ lineHeight: '20px',
29
+ textAlign: 'center',
30
+ borderRadius: '10px',
31
+ fontSize: '13px'
32
+ };
33
+ if (option) {
34
+ style.backgroundColor = option.color;
35
+ style.color = option.textColor || null;
36
+ } else {
37
+ style.backgroundColor = _constants.DELETED_OPTION_BACKGROUND_COLOR;
38
+ }
39
+ return style;
40
+ });
41
+ }
42
+ render() {
43
+ const {
44
+ value,
45
+ column,
46
+ cellAriaLabel = ''
47
+ } = this.props;
48
+ if (!value) {
49
+ return /*#__PURE__*/_react.default.createElement("div", {
50
+ className: "w-100 h-100",
51
+ "aria-label": cellAriaLabel
52
+ });
53
+ }
54
+ const currentOption = this.getCurrentOption();
55
+ const name = currentOption ? currentOption.name : null;
56
+ return /*#__PURE__*/_react.default.createElement("div", {
57
+ // If parent node is FormulaFormatter, column is {data: array_data}, so column.type is undefined
58
+ className: 'grid-cell-type-' + (column.type || ''),
59
+ style: this.getStyle(currentOption),
60
+ title: name,
61
+ "aria-label": `${name}${cellAriaLabel}`
62
+ }, name);
63
+ }
64
+ }
65
+ var _default = exports.default = SingleSelectOption;
@@ -0,0 +1,23 @@
1
+ .rate-formatter {
2
+ height: fit-content;
3
+ }
4
+
5
+ .rate-formatter .rate-item {
6
+ cursor: pointer;
7
+ }
8
+
9
+ .rate-item-active {
10
+ opacity: 1 !important;
11
+ }
12
+
13
+ @media (max-width: 767px) {
14
+ .mobile-row-expand-rate-container .rate-item,
15
+ .mobile-row-expand-rate-container .rate-item-active {
16
+ margin-right: 0.25rem;
17
+ }
18
+
19
+ .mobile-row-expand-rate-container .rate-item .dtable-font,
20
+ .mobile-row-expand-rate-container .rate-item-active .dtable-font {
21
+ font-size: 24px;
22
+ }
23
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactstrap = require("reactstrap");
11
+ class RateItem extends _react.default.Component {
12
+ constructor(props) {
13
+ super(props);
14
+ (0, _defineProperty2.default)(this, "onMouseEnterRateItem", () => {
15
+ const {
16
+ rateItemIndex
17
+ } = this.props;
18
+ this.props.onMouseEnterRateItem(rateItemIndex);
19
+ });
20
+ (0, _defineProperty2.default)(this, "onMouseLeaveRateItem", () => {
21
+ this.props.onMouseLeaveRateItem();
22
+ });
23
+ (0, _defineProperty2.default)(this, "onChangeRateNumber", () => {
24
+ const {
25
+ onChangeRateNumber,
26
+ rateItemIndex,
27
+ editable
28
+ } = this.props;
29
+ if (onChangeRateNumber && editable) {
30
+ onChangeRateNumber(rateItemIndex);
31
+ }
32
+ });
33
+ this.tooltipRef = /*#__PURE__*/_react.default.createRef();
34
+ }
35
+ render() {
36
+ const {
37
+ enterRateItemIndex,
38
+ rateItemIndex,
39
+ value,
40
+ column,
41
+ isShowRateItem,
42
+ editable
43
+ } = this.props;
44
+ const {
45
+ rate_style_color,
46
+ rate_style_type
47
+ } = column.data || {};
48
+ const rateShowType = rate_style_type ? rate_style_type : 'dtable-icon-rate';
49
+ if (!isShowRateItem && rateItemIndex > value) return null;
50
+ let style = {
51
+ color: value >= rateItemIndex ? rate_style_color : '#e5e5e5'
52
+ };
53
+ if (enterRateItemIndex >= rateItemIndex) {
54
+ style = {
55
+ color: rate_style_color,
56
+ opacity: value >= rateItemIndex ? 1 : 0.4
57
+ };
58
+ }
59
+ return /*#__PURE__*/_react.default.createElement("div", {
60
+ onMouseEnter: this.onMouseEnterRateItem,
61
+ onMouseLeave: this.onMouseLeaveRateItem,
62
+ style: {
63
+ cursor: editable ? 'pointer' : 'default'
64
+ },
65
+ onClick: this.onChangeRateNumber,
66
+ className: `rate-item ${value >= rateItemIndex ? 'rate-item-active' : ''}`
67
+ }, /*#__PURE__*/_react.default.createElement("span", {
68
+ className: `dtable-font ${rateShowType}`,
69
+ ref: this.tooltipRef,
70
+ style: style,
71
+ "aria-hidden": "true"
72
+ }), editable && /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledTooltip, {
73
+ placement: "bottom",
74
+ target: this.tooltipRef
75
+ }, rateItemIndex));
76
+ }
77
+ }
78
+ var _default = exports.default = RateItem;