@antscorp/antsomi-ui 1.3.5-beta.689 → 1.3.5-beta.690
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/es/components/molecules/DrawerDetail/DrawerDetail.js +2 -2
- package/es/components/molecules/EditableName/EditableName.js +1 -1
- package/es/components/molecules/EditorTab/EditorTab.js +48 -51
- package/es/components/molecules/EditorTab/styled.js +2 -2
- package/es/components/molecules/ThumbnailCard/ThumbnailCard.js +1 -1
- package/es/components/template/TemplateListing/index.js +1 -1
- package/package.json +1 -1
|
@@ -138,9 +138,9 @@ export const DrawerDetail = props => {
|
|
|
138
138
|
} }),
|
|
139
139
|
React.createElement(Icon, { type: "icon-ants-remove-slim", size: 14 }))),
|
|
140
140
|
showExpandButton && !fullScreen && (React.createElement(ToggleDrawerSizeButton, { style: Object.assign({}, (!showMenu && { background: '#ffffff' })), onClick: () => handleToggleDrawerSize(), collapse: collapseDrawer })),
|
|
141
|
-
showMenu && (React.createElement(LeftMenu, { className: "animate__animated animate__fadeIn" },
|
|
141
|
+
showMenu && (React.createElement(LeftMenu, { "data-test": "left-menu", className: "animate__animated animate__fadeIn" },
|
|
142
142
|
React.createElement("div", null,
|
|
143
|
-
showClose && (React.createElement(CloseBtn, { onClick: onClose },
|
|
143
|
+
showClose && (React.createElement(CloseBtn, { "data-test": "close-btn", onClick: onClose },
|
|
144
144
|
React.createElement(Icon, { type: "icon-ants-remove-slim", size: 14 }))),
|
|
145
145
|
React.createElement(Flex, { vertical: true, gap: 10, align: "center", justify: "center" }, items === null || items === void 0 ? void 0 : items.map((item) => (React.createElement(Tooltip, { key: item === null || item === void 0 ? void 0 : item.key, title: item === null || item === void 0 ? void 0 : item.label, mouseEnterDelay: 0.3, placement: "right" },
|
|
146
146
|
React.createElement(MenuItem, { key: item === null || item === void 0 ? void 0 : item.key, className: (selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.includes(item.key)) ? 'active' : '', onClick: () => onClick && onClick(item) }, item.icon)))))),
|
|
@@ -56,7 +56,7 @@ export const EditableName = React.forwardRef((props, ref) => {
|
|
|
56
56
|
(_a = inputRefElement === null || inputRefElement === void 0 ? void 0 : inputRefElement.input) === null || _a === void 0 ? void 0 : _a.removeEventListener('wheel', preventWheel);
|
|
57
57
|
};
|
|
58
58
|
}, []);
|
|
59
|
-
return (React.createElement(InputWrapperStyled, { className: className || '', style: style, ref: componentInViewRef },
|
|
59
|
+
return (React.createElement(InputWrapperStyled, { "data-test": props['data-test'] || 'editable-name', className: className || '', style: style, ref: componentInViewRef },
|
|
60
60
|
React.createElement(Tooltip, { title: value || internalValue },
|
|
61
61
|
React.createElement(Input, { readOnly: readonly, ref: inputRef, style: { width: inputWidth + 2 }, defaultValue: defaultValue.current, value: value, onChange: event => {
|
|
62
62
|
var _a;
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
// Lib
|
|
11
11
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
12
12
|
import classnames from 'classnames';
|
|
13
|
+
import { useInView } from 'react-intersection-observer';
|
|
13
14
|
// Components
|
|
14
15
|
import Icon from '@antscorp/icons/main';
|
|
15
16
|
import { Button, Typography, Dropdown, ContentEditable, Modal, } from '@antscorp/antsomi-ui/es/components';
|
|
@@ -19,7 +20,7 @@ import { EditorTabStyled } from './styled';
|
|
|
19
20
|
import { handleError } from '@antscorp/antsomi-ui/es/utils';
|
|
20
21
|
const PATH = 'src/components/EditorTab/index.jsx';
|
|
21
22
|
export const EditorTab = props => {
|
|
22
|
-
var _a
|
|
23
|
+
var _a;
|
|
23
24
|
const { listTab = [], activeId = '', showArrow, showDropdown, editNameOnConfigure,
|
|
24
25
|
// disabledScroll,
|
|
25
26
|
onCloseTab, onClickRemoveTab, onConfirmRemove, onActiveTab, onAddTab, onConfigure, onSaveName, newTabText, showComposeNewQuery, className, leftBlockClassName, tabItemClassName, confirmOnRemoveTab, modalFuncProps, } = props;
|
|
@@ -28,17 +29,10 @@ export const EditorTab = props => {
|
|
|
28
29
|
const [isEditable, setIsEditable] = useState();
|
|
29
30
|
const [modal, contextModal] = Modal.useModal();
|
|
30
31
|
// Ref
|
|
31
|
-
const [offsetWidth, setOffsetWidth] = useState(0);
|
|
32
|
-
const [scrollWidth, setScrollWidth] = useState(0);
|
|
33
32
|
const leftBlockRef = useRef(null);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
var _a, _b;
|
|
39
|
-
setOffsetWidth(((_a = leftBlockRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0);
|
|
40
|
-
setScrollWidth(((_b = leftBlockRef.current) === null || _b === void 0 ? void 0 : _b.scrollWidth) || 0);
|
|
41
|
-
}, []);
|
|
33
|
+
const { ref: anchorLeftElRef, inView: anchorLeftElRefInView } = useInView();
|
|
34
|
+
const { ref: anchorRightElRef, inView: anchorRightElRefInView } = useInView();
|
|
35
|
+
const isLeftBlockOverflow = !anchorLeftElRefInView || !anchorRightElRefInView;
|
|
42
36
|
useEffect(() => {
|
|
43
37
|
if (listTab.length - arrTabs.length === 1) {
|
|
44
38
|
setActiveTabId(listTab[listTab.length - 1].id);
|
|
@@ -104,7 +98,7 @@ export const EditorTab = props => {
|
|
|
104
98
|
onActiveTab(tabId);
|
|
105
99
|
}, [onActiveTab]);
|
|
106
100
|
const handleCloseTab = (e, tab, idx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
-
var
|
|
101
|
+
var _b, _c;
|
|
108
102
|
e.stopPropagation();
|
|
109
103
|
// if (arrTabs.length < 2) {
|
|
110
104
|
// return;
|
|
@@ -120,10 +114,10 @@ export const EditorTab = props => {
|
|
|
120
114
|
return;
|
|
121
115
|
if (activeTabId === tab.id) {
|
|
122
116
|
if (idx === arrTabs.length - 1) {
|
|
123
|
-
handleActiveTab((
|
|
117
|
+
handleActiveTab((_b = arrTabs[idx - 1]) === null || _b === void 0 ? void 0 : _b.id);
|
|
124
118
|
}
|
|
125
119
|
else if (arrTabs.length > 1) {
|
|
126
|
-
handleActiveTab((
|
|
120
|
+
handleActiveTab((_c = arrTabs[idx + 1]) === null || _c === void 0 ? void 0 : _c.id);
|
|
127
121
|
}
|
|
128
122
|
}
|
|
129
123
|
onCloseTab === null || onCloseTab === void 0 ? void 0 : onCloseTab(tab, idx, newTabs);
|
|
@@ -165,43 +159,46 @@ export const EditorTab = props => {
|
|
|
165
159
|
contextModal,
|
|
166
160
|
showArrow && isLeftBlockOverflow && (React.createElement("div", { className: "navigate-button", onClick: () => onClickArrow('left') },
|
|
167
161
|
React.createElement(Icon, { type: "icon-ants-angle-left" }))),
|
|
168
|
-
React.createElement("div", { ref: leftBlockRef, className: classnames('left-block', leftBlockClassName), onWheel: onWheelLeftBlock },
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
162
|
+
React.createElement("div", { ref: leftBlockRef, className: classnames('left-block', leftBlockClassName), onWheel: onWheelLeftBlock },
|
|
163
|
+
React.createElement("div", { ref: anchorLeftElRef }),
|
|
164
|
+
arrTabs && arrTabs.length
|
|
165
|
+
? arrTabs.map((tab, idx) => {
|
|
166
|
+
const { showIcon = true, showDropdown = true, hideRemoveOption, closable = true, } = tab;
|
|
167
|
+
return (React.createElement("div", { key: tab.id, onClick: () => handleActiveTab(tab.id), className: classnames('tab-item', tabItemClassName, {
|
|
168
|
+
active: tab.id === activeTabId,
|
|
169
|
+
}) },
|
|
170
|
+
showIcon &&
|
|
171
|
+
(tab.type === 'query' ? (React.createElement(Icon, { type: "icon-ants-material-outline-manage-search", overlayStyle: { fontSize: 21 } })) : (React.createElement(Icon, { type: "icon-ants-table-vertical", overlayStyle: { fontSize: 21 } }))),
|
|
172
|
+
isEditable === tab.id ? (React.createElement(ContentEditable, { value: tab.name, onSave: newValue => {
|
|
173
|
+
setIsEditable(undefined);
|
|
174
|
+
onSaveName === null || onSaveName === void 0 ? void 0 : onSaveName(tab.id, newValue);
|
|
175
|
+
} })) : (React.createElement(Typography.Text, { ellipsis: { tooltip: true } }, tab.name)),
|
|
176
|
+
showDropdown ? (React.createElement(Dropdown, { menu: {
|
|
177
|
+
items: [
|
|
178
|
+
{ label: 'Configure', key: 'configure', style: { minWidth: '135px' } },
|
|
179
|
+
...(hideRemoveOption
|
|
180
|
+
? []
|
|
181
|
+
: [{ label: 'Remove', key: 'remove', style: { minWidth: '135px' } }]),
|
|
182
|
+
],
|
|
183
|
+
onClick: (_a) => __awaiter(void 0, [_a], void 0, function* ({ key, domEvent }) {
|
|
184
|
+
switch (key) {
|
|
185
|
+
case 'configure':
|
|
186
|
+
if (editNameOnConfigure)
|
|
187
|
+
setIsEditable(tab.id);
|
|
188
|
+
onConfigure === null || onConfigure === void 0 ? void 0 : onConfigure(tab.id);
|
|
189
|
+
break;
|
|
190
|
+
case 'remove':
|
|
191
|
+
yield handleCloseTab(domEvent, tab, idx);
|
|
192
|
+
break;
|
|
193
|
+
default:
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}),
|
|
197
|
+
}, placement: "bottomLeft", trigger: ['click'], destroyPopupOnHide: true },
|
|
198
|
+
React.createElement(Button, { icon: React.createElement(Icon, { type: "icon-ants-three-dot-vertical", overlayStyle: { fontSize: 12 } }), size: "small" }))) : closable ? (React.createElement(Button, { onClick: e => handleCloseTab(e, tab, idx), icon: React.createElement(Icon, { type: "icon-ants-remove-slim", overlayStyle: { fontSize: 12 } }), size: "small" })) : null));
|
|
199
|
+
})
|
|
200
|
+
: null,
|
|
201
|
+
React.createElement("div", { ref: anchorRightElRef })),
|
|
205
202
|
showArrow && isLeftBlockOverflow && (React.createElement("div", { className: "navigate-button", onClick: () => onClickArrow('right') },
|
|
206
203
|
React.createElement(Icon, { type: "icon-ants-angle-right" }))),
|
|
207
204
|
showComposeNewQuery || newTabText ? (React.createElement(Button, { onClick: handleAddNew, className: "new-query-button" },
|
|
@@ -93,7 +93,7 @@ export const ThumbnailCard = (props) => {
|
|
|
93
93
|
.filter(Boolean);
|
|
94
94
|
};
|
|
95
95
|
return (React.createElement(Flex, Object.assign({ gap: 10, vertical: true }, restOfProps, { style: Object.assign({ width }, restOfProps.style) }),
|
|
96
|
-
React.createElement(ThumbnailCardWrapper, { "$showSkeleton": showSkeletonMemo, style: { height, cursor: actionAvailable ? 'default' : 'pointer' }, onClick: handleWrapperClick },
|
|
96
|
+
React.createElement(ThumbnailCardWrapper, { "$showSkeleton": showSkeletonMemo, style: { height, cursor: actionAvailable ? 'default' : 'pointer' }, onClick: handleWrapperClick, "data-test": "thumbnail" },
|
|
97
97
|
React.createElement("div", { className: "screen" }, thumbnail && (React.createElement("img", { src: getUrlNoCache(thumbnail, thumbnailCacheValue), alt: "", style: { objectFit: thumbnailFit }, onError: e => {
|
|
98
98
|
e.currentTarget.style.display = 'none';
|
|
99
99
|
} }))),
|
|
@@ -81,7 +81,7 @@ export const TemplateListing = memo(props => {
|
|
|
81
81
|
previewBtnProps: Object.assign(Object.assign({}, previewBtnProps), { onClick: handleClickThumbnailPreview }) }, restOfTemplateItemProps))));
|
|
82
82
|
}))),
|
|
83
83
|
!loading && !blankTemplateProps.show && !isHasData && (React.createElement(EmptyData, { icon: emptyProps === null || emptyProps === void 0 ? void 0 : emptyProps.icon, title: emptyProps === null || emptyProps === void 0 ? void 0 : emptyProps.description })))));
|
|
84
|
-
return (React.createElement(TemplateListingWrapper,
|
|
84
|
+
return (React.createElement(TemplateListingWrapper, { "data-test": "template-listing-container" },
|
|
85
85
|
React.createElement(CategoryListing, Object.assign({}, categoryListingProps, { emptyProps: emptyProps })),
|
|
86
86
|
React.createElement(TemplateWrapper, { className: wrapperClassName, style: wrapperStyle },
|
|
87
87
|
header,
|