@seafile/sdoc-editor 1.0.219 → 1.0.221-alph-0.0.1

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 (67) hide show
  1. package/dist/basic-sdk/assets/css/sdoc-editor-plugins.css +0 -23
  2. package/dist/basic-sdk/extension/commons/insert-element-dialog/index.js +12 -2
  3. package/dist/basic-sdk/extension/commons/search-list/index.css +28 -0
  4. package/dist/basic-sdk/extension/commons/search-list/index.js +150 -0
  5. package/dist/basic-sdk/extension/constants/element-type.js +2 -1
  6. package/dist/basic-sdk/extension/constants/index.js +8 -2
  7. package/dist/basic-sdk/extension/constants/menus-config.js +5 -0
  8. package/dist/basic-sdk/extension/plugins/font/helpers.js +7 -0
  9. package/dist/basic-sdk/extension/plugins/header/render-elem.js +2 -1
  10. package/dist/basic-sdk/extension/plugins/image/helpers.js +9 -21
  11. package/dist/basic-sdk/extension/plugins/image/image-loader/index.css +37 -0
  12. package/dist/basic-sdk/extension/plugins/image/image-loader/index.js +23 -0
  13. package/dist/basic-sdk/extension/plugins/image/render-elem.js +24 -76
  14. package/dist/basic-sdk/extension/plugins/image/use-upload-image.js +80 -0
  15. package/dist/basic-sdk/extension/plugins/index.js +7 -0
  16. package/dist/basic-sdk/extension/plugins/multi-column/plugin.js +1 -1
  17. package/dist/basic-sdk/extension/plugins/seatable-column/menu/column-list-item.js +36 -0
  18. package/dist/basic-sdk/extension/plugins/seatable-column/menu/column-list-menu.css +4 -2
  19. package/dist/basic-sdk/extension/plugins/seatable-column/menu/column-list-menu.js +8 -13
  20. package/dist/basic-sdk/extension/plugins/seatable-column/menu/index.js +5 -9
  21. package/dist/basic-sdk/extension/plugins/seatable-column/plugin.js +9 -1
  22. package/dist/basic-sdk/extension/plugins/seatable-column/render-elem.js +71 -7
  23. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/helpers.js +35 -0
  24. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.css +106 -0
  25. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/index.js +81 -0
  26. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-content.js +201 -0
  27. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/record-item.js +41 -0
  28. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header-cell.js +108 -0
  29. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-header.js +143 -0
  30. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/row-card-item.js +240 -0
  31. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table-record.js +37 -0
  32. package/dist/basic-sdk/extension/plugins/seatable-row/dialog/add-seatable-row-dialog/seatable-table.js +134 -0
  33. package/dist/basic-sdk/extension/plugins/seatable-row/helpers.js +90 -0
  34. package/dist/basic-sdk/extension/plugins/seatable-row/index.js +17 -0
  35. package/dist/basic-sdk/extension/plugins/seatable-row/menu/index.js +44 -0
  36. package/dist/basic-sdk/extension/plugins/seatable-row/menu/seatable-list.js +61 -0
  37. package/dist/basic-sdk/extension/plugins/seatable-row/model.js +19 -0
  38. package/dist/basic-sdk/extension/plugins/seatable-row/plugin.js +60 -0
  39. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.css +123 -0
  40. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/index.js +161 -0
  41. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-header.js +78 -0
  42. package/dist/basic-sdk/extension/plugins/seatable-row/render-elem/record-item.js +41 -0
  43. package/dist/basic-sdk/extension/plugins/seatable-tables/menu/index.js +3 -6
  44. package/dist/basic-sdk/extension/plugins/text-style/helpers.js +1 -1
  45. package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +10 -1
  46. package/dist/basic-sdk/extension/render/custom-element.js +5 -0
  47. package/dist/basic-sdk/extension/toolbar/header-toolbar/insert-toolbar/index.js +7 -2
  48. package/dist/basic-sdk/extension/toolbar/side-toolbar/helpers.js +3 -1
  49. package/dist/pages/document-plugin-editor.js +3 -1
  50. package/package.json +7 -7
  51. package/public/locales/cs/sdoc-editor.json +7 -1
  52. package/public/locales/de/sdoc-editor.json +66 -60
  53. package/public/locales/en/sdoc-editor.json +8 -1
  54. package/public/locales/es/sdoc-editor.json +7 -1
  55. package/public/locales/es_AR/sdoc-editor.json +7 -1
  56. package/public/locales/es_MX/sdoc-editor.json +7 -1
  57. package/public/locales/fr/sdoc-editor.json +240 -234
  58. package/public/locales/it/sdoc-editor.json +7 -1
  59. package/public/locales/ru/sdoc-editor.json +8 -2
  60. package/public/locales/zh_CN/sdoc-editor.json +7 -1
  61. package/public/media/sdoc-editor-font/iconfont.css +15 -14
  62. package/public/media/sdoc-editor-font/iconfont.eot +0 -0
  63. package/public/media/sdoc-editor-font/iconfont.svg +3 -1
  64. package/public/media/sdoc-editor-font/iconfont.ttf +0 -0
  65. package/public/media/sdoc-editor-font/iconfont.woff +0 -0
  66. package/public/media/sdoc-editor-font/iconfont.woff2 +0 -0
  67. package/public/media/sdoc-editor-font.css +11 -7
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactI18next = require("react-i18next");
12
+ var _rowCardHeader = _interopRequireDefault(require("./row-card-header"));
13
+ var _helpers = require("./helpers");
14
+ var _rowCardItem = _interopRequireDefault(require("./row-card-item"));
15
+ // 98: row-card-item height + margin top = 88 + 10 = 98
16
+ const CARD_RECORD_ITEM_HEIGHT = 98;
17
+ class RecordContent extends _react.Component {
18
+ constructor(_props) {
19
+ super(_props);
20
+ (0, _defineProperty2.default)(this, "initState", props => {
21
+ const {
22
+ rows
23
+ } = props;
24
+ this.recordItem = [];
25
+ this.currentDisplayRowMinIndex = 0;
26
+ this.currentDisplayRowMaxIndex = Math.floor((0 + this.recordsList.offsetHeight) / CARD_RECORD_ITEM_HEIGHT);
27
+ const displayRows = rows.slice(0, this.shownLength);
28
+ const isHasMore = rows.length === this.shownLength;
29
+ this.setState({
30
+ displayRows,
31
+ isHasMore
32
+ });
33
+ });
34
+ (0, _defineProperty2.default)(this, "scrollToMore", e => {
35
+ e.stopPropagation();
36
+ const {
37
+ clientHeight,
38
+ scrollTop,
39
+ scrollHeight
40
+ } = this.recordsList;
41
+ this.currentDisplayRowMinIndex = Math.floor(scrollTop / CARD_RECORD_ITEM_HEIGHT);
42
+ this.currentDisplayRowMaxIndex = Math.floor(scrollHeight / CARD_RECORD_ITEM_HEIGHT);
43
+ const {
44
+ scrollLeft,
45
+ isHasMore
46
+ } = this.state;
47
+ if (scrollLeft >= 0) {
48
+ this.setItemScrollLeft(scrollLeft, -1);
49
+ }
50
+ if (!isHasMore || this.isLoadingMore) return;
51
+ if (clientHeight + scrollTop >= scrollHeight) {
52
+ const offset = this.shownLength;
53
+ this.isLoadingMore = true;
54
+ this.shownLength = offset + 10;
55
+ this.props.onLoadMore(offset);
56
+ }
57
+ });
58
+ (0, _defineProperty2.default)(this, "onRef", (ref, rowIdx) => {
59
+ this.recordItem[rowIdx] = ref;
60
+ });
61
+ (0, _defineProperty2.default)(this, "getCurrentDisplayRowMaxIndex", () => {
62
+ if (this.recordsList) {
63
+ this.currentDisplayRowMaxIndex = Math.floor((0 + this.recordsList.offsetHeight) / CARD_RECORD_ITEM_HEIGHT);
64
+ }
65
+ });
66
+ (0, _defineProperty2.default)(this, "setScrollLeft", scrollLeft => {
67
+ this.setState({
68
+ scrollLeft
69
+ });
70
+ });
71
+ (0, _defineProperty2.default)(this, "setItemScrollLeft", (scrollLeft, currentRecordIdx) => {
72
+ const {
73
+ isShowRowCardHeader
74
+ } = this.props;
75
+ if (isShowRowCardHeader) this.rowCardHeaderRef.setHeaderScrollLeft(scrollLeft);
76
+ const start = window.isMobile ? 0 : this.currentDisplayRowMinIndex;
77
+ const end = window.isMobile ? this.recordItem.length : this.currentDisplayRowMaxIndex;
78
+ for (let i = start; i <= end; i++) {
79
+ if (i !== currentRecordIdx && this.recordItem[i]) {
80
+ let cardRecordScrollLeft = this.recordItem[i].getScrollLeft();
81
+ if (cardRecordScrollLeft !== scrollLeft) {
82
+ this.recordItem[i].setScrollLeft(scrollLeft);
83
+ }
84
+ }
85
+ }
86
+ });
87
+ (0, _defineProperty2.default)(this, "setRecordsListRef", ref => {
88
+ this.recordsList = ref;
89
+ });
90
+ this.state = {
91
+ isHasMore: false,
92
+ displayRows: [],
93
+ scrollLeft: 0
94
+ };
95
+ this.shownLength = 10;
96
+ this.recordsList = null;
97
+ this.recordsContainer = null;
98
+ this.recordItem = [];
99
+ this.currentDisplayRowMinIndex = 0;
100
+ this.currentDisplayRowMaxIndex = 0;
101
+ this.isLoadingMore = false;
102
+ }
103
+ componentDidMount() {
104
+ this.initState(this.props);
105
+ }
106
+ UNSAFE_componentWillReceiveProps(nextProps) {
107
+ const {
108
+ rows
109
+ } = nextProps;
110
+ if (this.shownLength === 10) {
111
+ this.isLoadingMore = false;
112
+ this.initState(nextProps);
113
+ return;
114
+ }
115
+ this.isLoadingMore = false;
116
+ const displayRows = rows.slice(0, this.shownLength);
117
+ const isHasMore = rows.length === this.shownLength;
118
+ this.setState({
119
+ displayRows,
120
+ isHasMore
121
+ });
122
+ if (this.props.isAdditionEditorView !== nextProps.isAdditionEditorView) {
123
+ this.recordsList.scrollTop = 0;
124
+ }
125
+ }
126
+ componentWillUnmount() {
127
+ this.recordsList = null;
128
+ this.recordsContainer = null;
129
+ this.recordItem = [];
130
+ this.currentDisplayRowMinIndex = 0;
131
+ this.currentDisplayRowMaxIndex = 0;
132
+ }
133
+ render() {
134
+ const {
135
+ table,
136
+ isAdditionEditorView,
137
+ highlightRowIndex,
138
+ noCardItemTip,
139
+ rowCardType,
140
+ columns,
141
+ renderedColumns,
142
+ unShowColumnKeyList,
143
+ showScrollBtn,
144
+ isShowRowCardHeader,
145
+ isShowRemoveCardItemBtn,
146
+ cardListClassName,
147
+ formulaRows,
148
+ createBtn,
149
+ cardHeaderClassName
150
+ } = this.props;
151
+ const {
152
+ displayRows,
153
+ scrollLeft
154
+ } = this.state;
155
+ const rowCardListClass = `row-card-list ${cardListClassName ? cardListClassName : ''}`;
156
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
157
+ className: "row-card-container"
158
+ }, /*#__PURE__*/_react.default.createElement(_rowCardHeader.default, {
159
+ cardHeaderClassName: cardHeaderClassName,
160
+ setItemScrollLeft: this.setItemScrollLeft,
161
+ renderedColumns: renderedColumns,
162
+ getCurrentDisplayRowMaxIndex: this.getCurrentDisplayRowMaxIndex,
163
+ showScrollBtn: showScrollBtn,
164
+ scrollLeft: scrollLeft,
165
+ setScrollLeft: this.setScrollLeft,
166
+ ref: ref => this.rowCardHeaderRef = ref
167
+ }), /*#__PURE__*/_react.default.createElement("div", {
168
+ className: rowCardListClass,
169
+ ref: this.setRecordsListRef,
170
+ onScroll: this.scrollToMore
171
+ }, displayRows.length === 0 && /*#__PURE__*/_react.default.createElement("div", {
172
+ className: "no-records-tips"
173
+ }, noCardItemTip), displayRows.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
174
+ className: "row-card-content",
175
+ ref: ref => this.recordsContent = ref
176
+ }, displayRows.map((row, rowIdx) => {
177
+ const formulaRow = formulaRows && formulaRows[row._id] || {};
178
+ const displayRowName = (0, _helpers.getRowName)(table.columns, row);
179
+ return /*#__PURE__*/_react.default.createElement(_rowCardItem.default, {
180
+ key: `row-card-${rowIdx}`,
181
+ displayRowName: displayRowName,
182
+ setItemScrollLeft: this.setItemScrollLeft,
183
+ onRef: this.onRef,
184
+ rowCardType: rowCardType,
185
+ table: table,
186
+ row: row,
187
+ isAdditionEditorView: isAdditionEditorView,
188
+ isHighlightRow: highlightRowIndex === rowIdx,
189
+ formulaRow: formulaRow,
190
+ rowIdx: rowIdx,
191
+ columns: columns,
192
+ unShowColumnKeyList: unShowColumnKeyList,
193
+ isShowRemoveCardItemBtn: isShowRemoveCardItemBtn,
194
+ onSelectRow: this.props.onSelectRow,
195
+ onExpandRow: this.props.onExpandRow,
196
+ removeCardItem: this.props.removeCardItem
197
+ });
198
+ })))));
199
+ }
200
+ }
201
+ var _default = exports.default = RecordContent;
@@ -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 = RecordItem;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _dtableUtils = require("dtable-utils");
10
+ var _formatter = _interopRequireDefault(require("../../../seatable-tables/formatter"));
11
+ function RecordItem(_ref) {
12
+ let {
13
+ record,
14
+ formulaRow,
15
+ columns,
16
+ editor
17
+ } = _ref;
18
+ return /*#__PURE__*/_react.default.createElement("tr", {
19
+ className: "seatable-view-body-column-row"
20
+ }, columns.map(column => {
21
+ const width = 100;
22
+ let cellValue = record[column.key];
23
+ if ([_dtableUtils.CellType.LINK, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.FORMULA].includes(column.type)) {
24
+ cellValue = formulaRow[column.key];
25
+ }
26
+ return /*#__PURE__*/_react.default.createElement("td", {
27
+ className: "seatable-view-body-column-cell",
28
+ key: record._id + '_' + column.key,
29
+ "data-record-id": record._id,
30
+ style: {
31
+ width,
32
+ minWidth: width
33
+ }
34
+ }, /*#__PURE__*/_react.default.createElement(_formatter.default, {
35
+ isSample: true,
36
+ column: column,
37
+ cellValue: cellValue,
38
+ collaborators: editor.collaborators
39
+ }));
40
+ }));
41
+ }
@@ -0,0 +1,108 @@
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 _reactDom = _interopRequireDefault(require("react-dom"));
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ // import { EventTypes } from '../../lib/constants';
13
+ // import ResizeHandle from '../../lib/third-support/resize-handle/ResizeHandle';
14
+
15
+ class RowCardHeaderCell extends _react.default.Component {
16
+ constructor(props) {
17
+ super(props);
18
+ (0, _defineProperty2.default)(this, "getHeaderCellWidth", () => {
19
+ const {
20
+ column,
21
+ rowCardType,
22
+ table
23
+ } = this.props;
24
+ const {
25
+ key,
26
+ width
27
+ } = column;
28
+ let headerCellWidth = width;
29
+ if (rowCardType === 'link') {
30
+ const tableId = table._id;
31
+ const draggedCellId = `${tableId}-${key}`;
32
+ const existedWidth = JSON.parse(localStorage.getItem(draggedCellId));
33
+ if (existedWidth) {
34
+ headerCellWidth = existedWidth;
35
+ }
36
+ }
37
+ return headerCellWidth;
38
+ });
39
+ (0, _defineProperty2.default)(this, "onDrag", e => {
40
+ const headerCellWidth = this.getWidthFromMouseEvent(e);
41
+ this.setState({
42
+ headerCellWidth
43
+ });
44
+ });
45
+ (0, _defineProperty2.default)(this, "onDragStart", e => {
46
+ this.setState({
47
+ resizing: true
48
+ });
49
+ });
50
+ // onDragEnd = (e) => {
51
+ // const { column, table } = this.props;
52
+ // const columnKey = column.key;
53
+ // const { _id: tableId } = table;
54
+ // const draggedCellId = `${tableId}-${columnKey}`;
55
+ // let width = this.getWidthFromMouseEvent(e);
56
+ // this.setState({ resizing: false });
57
+ // const { eventBus } = window.app;
58
+ // eventBus.dispatch(EventTypes.CHANGE_HEADER_WIDTH, { id: draggedCellId, width });
59
+ // localStorage.setItem(draggedCellId, width);
60
+ // };
61
+ (0, _defineProperty2.default)(this, "getWidthFromMouseEvent", e => {
62
+ let right = e.pageX || e.touches && e.touches[0] && e.touches[0].pageX || e.changedTouches && e.changedTouches[e.changedTouches.length - 1].pageX;
63
+ if (e.pageX === 0) {
64
+ right = 0;
65
+ }
66
+ const left = _reactDom.default.findDOMNode(this.headerCell).getBoundingClientRect().left;
67
+ // add 5px is ResizeHandle component DOM width, and the draggable column minimum width is 50px
68
+ return Math.max(right - left + 5, 50);
69
+ });
70
+ this.state = {
71
+ resizing: false,
72
+ headerCellWidth: this.getHeaderCellWidth(),
73
+ isDraggable: props.rowCardType === 'link'
74
+ };
75
+ }
76
+ render() {
77
+ const {
78
+ column
79
+ } = this.props;
80
+ const {
81
+ headerCellWidth,
82
+ resizing,
83
+ isDraggable
84
+ } = this.state;
85
+ const {
86
+ name,
87
+ key
88
+ } = column;
89
+ return /*#__PURE__*/_react.default.createElement("div", {
90
+ className: (0, _classnames.default)('row-card-column-name text-truncate position-relative', {
91
+ 'row-card-column--resizing': resizing
92
+ }, {
93
+ 'row-card-draggable': isDraggable
94
+ })
95
+ }, /*#__PURE__*/_react.default.createElement("div", {
96
+ ref: ref => this.headerCell = ref,
97
+ className: "row-card-column-name-item position-relative",
98
+ style: {
99
+ width: headerCellWidth
100
+ },
101
+ key: key,
102
+ title: name
103
+ }, /*#__PURE__*/_react.default.createElement("span", {
104
+ title: name
105
+ }, name)));
106
+ }
107
+ }
108
+ var _default = exports.default = RowCardHeaderCell;
@@ -0,0 +1,143 @@
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 _classnames = _interopRequireDefault(require("classnames"));
11
+ var _rowCardHeaderCell = _interopRequireDefault(require("./row-card-header-cell"));
12
+ class RowCardHeader extends _react.default.Component {
13
+ constructor(props) {
14
+ super(props);
15
+ (0, _defineProperty2.default)(this, "onScrollControlClick", type => {
16
+ const tablesNav = this.linkRecordsHeader;
17
+ const {
18
+ offsetWidth,
19
+ scrollWidth,
20
+ scrollLeft
21
+ } = tablesNav;
22
+ let targetScrollLeft;
23
+ if (type === 'prev') {
24
+ if (scrollLeft === 0) {
25
+ return;
26
+ }
27
+ targetScrollLeft = scrollLeft - offsetWidth;
28
+ targetScrollLeft = targetScrollLeft > 0 ? targetScrollLeft : 0;
29
+ }
30
+ if (type === 'next') {
31
+ if (scrollLeft + offsetWidth === scrollWidth) {
32
+ return;
33
+ }
34
+ targetScrollLeft = scrollLeft + offsetWidth;
35
+ targetScrollLeft = targetScrollLeft > scrollWidth - offsetWidth ? scrollWidth - offsetWidth : targetScrollLeft;
36
+ }
37
+ if (this.state.canCardHeaderScroll) {
38
+ this.setState({
39
+ canCardHeaderScroll: false
40
+ });
41
+ let timer = null;
42
+ let step = (targetScrollLeft - scrollLeft) / 10;
43
+ step = step > 0 ? Math.ceil(step) : Math.floor(step);
44
+ timer = setInterval(() => {
45
+ tablesNav.scrollLeft = tablesNav.scrollLeft + step;
46
+ if (Math.abs(targetScrollLeft - tablesNav.scrollLeft) <= Math.abs(step)) {
47
+ tablesNav.scrollLeft = targetScrollLeft;
48
+ clearInterval(timer);
49
+ this.setState({
50
+ canCardHeaderScroll: true
51
+ });
52
+ }
53
+ }, 30);
54
+ }
55
+ });
56
+ (0, _defineProperty2.default)(this, "onScrollHeader", () => {
57
+ let {
58
+ scrollLeft
59
+ } = this.linkRecordsHeader;
60
+ this.props.setItemScrollLeft(scrollLeft, -1);
61
+ if (this.timer) {
62
+ clearTimeout(this.timer);
63
+ }
64
+ this.timer = setTimeout(() => {
65
+ this.props.setScrollLeft(scrollLeft);
66
+ }, 60);
67
+ });
68
+ (0, _defineProperty2.default)(this, "setHeaderScrollLeft", scrollLeft => {
69
+ this.linkRecordsHeader.scrollLeft = scrollLeft;
70
+ });
71
+ (0, _defineProperty2.default)(this, "getCardHeaderCells", () => {
72
+ const cardHeaderCells = [];
73
+ const {
74
+ renderedColumns,
75
+ rowCardType,
76
+ table
77
+ } = this.props;
78
+ for (let i = 0; i < renderedColumns.length; i++) {
79
+ const renderedColumn = renderedColumns[i];
80
+ cardHeaderCells.push( /*#__PURE__*/_react.default.createElement(_rowCardHeaderCell.default, {
81
+ key: renderedColumn.key,
82
+ column: renderedColumn,
83
+ rowCardType: rowCardType,
84
+ table: table
85
+ }));
86
+ }
87
+ return cardHeaderCells;
88
+ });
89
+ this.state = {
90
+ canCardHeaderScroll: true,
91
+ linkRecordsNavScrollWidth: 0,
92
+ linkRecordsNavWidth: 0
93
+ };
94
+ }
95
+ componentDidUpdate(prevProps, prevState) {
96
+ const {
97
+ offsetWidth,
98
+ scrollWidth
99
+ } = this.linkRecordsHeader;
100
+ if (prevState.linkRecordsNavScrollWidth !== scrollWidth || prevState.linkRecordsNavWidth !== offsetWidth) {
101
+ this.props.getCurrentDisplayRowMaxIndex();
102
+ this.setState({
103
+ linkRecordsNavScrollWidth: scrollWidth,
104
+ linkRecordsNavWidth: offsetWidth
105
+ });
106
+ }
107
+ }
108
+ render() {
109
+ const {
110
+ showScrollBtn,
111
+ scrollLeft,
112
+ cardHeaderClassName
113
+ } = this.props;
114
+ const {
115
+ linkRecordsNavWidth,
116
+ linkRecordsNavScrollWidth
117
+ } = this.state;
118
+ const cardHeaderCells = this.getCardHeaderCells();
119
+ return /*#__PURE__*/_react.default.createElement("div", {
120
+ className: `row-card-header ${cardHeaderClassName ? cardHeaderClassName : ''}`
121
+ }, /*#__PURE__*/_react.default.createElement("div", {
122
+ className: "row-card-column-names records-column-names",
123
+ ref: ref => this.recordItemRef = ref
124
+ }, showScrollBtn && /*#__PURE__*/_react.default.createElement("span", {
125
+ className: (0, _classnames.default)('dtable-font', 'dtable-icon-left', 'row-card-scroll', 'link-scroll-prev', {
126
+ 'scroll-active': scrollLeft > 0
127
+ }),
128
+ onClick: this.onScrollControlClick.bind(this, 'prev')
129
+ }), /*#__PURE__*/_react.default.createElement("div", {
130
+ className: "row-card-columns-container",
131
+ onScroll: this.onScrollHeader,
132
+ ref: ref => this.linkRecordsHeader = ref
133
+ }, /*#__PURE__*/_react.default.createElement("div", {
134
+ className: "d-inline-flex"
135
+ }, cardHeaderCells)), showScrollBtn && /*#__PURE__*/_react.default.createElement("span", {
136
+ className: (0, _classnames.default)('dtable-font', 'dtable-icon-right', 'row-card-scroll', 'link-scroll-next', {
137
+ 'scroll-active': scrollLeft + linkRecordsNavWidth < linkRecordsNavScrollWidth
138
+ }),
139
+ onClick: this.onScrollControlClick.bind(this, 'next')
140
+ })));
141
+ }
142
+ }
143
+ var _default = exports.default = RowCardHeader;