Skip to content

Commit c2e8d64

Browse files
author
lvargas
committed
feat: updated libs and components
1 parent 44397e2 commit c2e8d64

34 files changed

Lines changed: 1036 additions & 446 deletions

File tree

package.json

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -35,39 +35,41 @@
3535
"axios": "^0.21.1",
3636
"case": "^1.6.3",
3737
"code-easy-components": "^0.0.16",
38-
"cross-env": "^7.0.2",
39-
"dateformat": "^3.0.3",
38+
"cross-env": "^7.0.3",
39+
"dateformat": "^4.5.1",
4040
"file-saver": "^2.0.5",
41-
"jszip": "^3.5.0",
42-
"react": "^16.10.2",
43-
"react-dnd": "^9.4.0",
44-
"react-dnd-html5-backend": "^9.4.0",
45-
"react-dom": "^16.10.2",
46-
"react-icons": "^4.1.0",
47-
"react-monaco-editor": "^0.41.2",
41+
"jszip": "^3.6.0",
42+
"react": "^17.0.2",
43+
"react-dnd": "^14.0.2",
44+
"react-dnd-html5-backend": "^14.0.0",
45+
"react-dom": "^17.0.2",
46+
"react-icons": "^4.2.0",
47+
"react-monaco-editor": "^0.43.0",
4848
"react-observing": "^1.3.7",
49-
"react-router-dom": "^5.1.2",
50-
"react-scripts": "^3.2.0",
51-
"yup": "^0.32.8"
49+
"react-router-dom": "^5.2.0",
50+
"react-scripts": "^4.0.3",
51+
"uuid": "^8.3.2",
52+
"yup": "^0.32.9"
5253
},
5354
"devDependencies": {
5455
"@commitlint/cli": "^8.3.5",
5556
"@commitlint/config-conventional": "^8.3.4",
56-
"@testing-library/jest-dom": "^4.2.4",
57-
"@testing-library/react": "^9.3.2",
58-
"@testing-library/user-event": "^7.1.2",
57+
"@testing-library/jest-dom": "^5.12.0",
58+
"@testing-library/react": "^11.2.7",
59+
"@testing-library/user-event": "^13.1.9",
5960
"@types/dateformat": "^3.0.1",
60-
"@types/file-saver": "^2.0.1",
61-
"@types/jest": "^26.0.13",
62-
"@types/mocha": "^8.0.3",
63-
"@types/react": "^16.9.9",
64-
"@types/react-dom": "^16.9.0",
65-
"@types/react-router-dom": "^5.1.5",
61+
"@types/file-saver": "^2.0.2",
62+
"@types/jest": "^26.0.23",
63+
"@types/mocha": "^8.2.2",
64+
"@types/react": "^17.0.5",
65+
"@types/react-dom": "^17.0.5",
66+
"@types/react-router-dom": "^5.1.7",
67+
"@types/uuid": "^8.3.0",
6668
"@types/yup": "^0.29.11",
6769
"commitizen": "^4.0.4",
6870
"cz-conventional-changelog": "3.1.0",
6971
"husky": "^4.2.5",
70-
"typescript": "^3.6.3"
72+
"typescript": "^4.2.4"
7173
},
7274
"config": {
7375
"commitizen": {

src/app/pages/editor/editor-tab/TreeManager.Controller.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ISubscription, observe, transform, useObserver, useObserverValue } from
33
import { IconTrash, Utils } from 'code-easy-components';
44

55
import { Tab, TreeItemFolder, TreeItemGlobalAction, TreeItemInputVariable, TreeItemLocalVariable, TreeItemOutpuVariable, TreeItemRouterConsume, TreeItemRouterExpose, TreeItemRouterInputVariable } from '../../../shared/models';
6-
import { TreeManager, ITreeItem, CustomDragLayer } from '../../../shared/components/external';
6+
import { TreeManager, ITreeItem } from '../../../shared/components/external';
77
import { useEditorContext, useTabList, useCurrentFocus } from '../../../shared/hooks';
88
import { ECurrentFocus, EComponentType, ETabType, } from '../../../shared/enuns';
99
import { AssetsService, openContextMenu } from '../../../shared/services';
@@ -378,6 +378,7 @@ export const TreeManagerController: React.FC = () => {
378378
isDisabledDrop: observe(undefined),
379379
isDisabled: observe(undefined),
380380
iconSize: observe(undefined),
381+
order: observe(0),
381382
}));
382383
}, [itemsCurrent]);
383384

@@ -425,11 +426,7 @@ export const TreeManagerController: React.FC = () => {
425426
id: 'Inspector',
426427
isUseDrag: true,
427428
isUseDrop: true,
428-
activeItemBackgroundColor: '#ffffff05',
429-
focusedItemBackgroundColor: '#ffffff05',
430-
editingItemBackgroundColor: '#ffffff10',
431429
showEmptyMessage: treeManagerItems.length === 0,
432-
customDragLayer: item => <CustomDragLayer children={item} />
433430
}}
434431
/>
435432
);

src/app/shared/components/external/flow-editor/components/editor-panel/EditorPanel.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ export const EditorPanel = React.forwardRef(({ allowedsInDrop, onDropItem, onDro
4848
}
4949
}
5050

51-
if (!ref) ref = useRef<SVGSVGElement>(null);
51+
const newRef = useRef<SVGSVGElement>(null);
52+
if (!ref) ref = newRef;
5253

5354
const handleKeyDown = useCallback((e: React.KeyboardEvent<SVGSVGElement>) => {
5455
/** Delete */ if (e.key === 'Delete') onKeyDownDelete && onKeyDownDelete(e);

src/app/shared/components/external/flow-editor/components/tool-bar/components/ListItemDraggable.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const ListItemDraggable: React.FC<ListItemProps> = ({ flowItemType, itemType, la
1515

1616
/** Permite que uym elemento seja arrastado e adicionado dentro do editor de fluxo. */
1717
const [, dragRef] = useDrag<IDroppableItem, any, any>({
18+
type: itemType || 'undefined',
1819
item: { type: itemType || 'undefined', itemProps: { id: undefined, label, itemType, flowItemType, icon, width: 40, height: 40 } },
1920
collect: monitor => ({ isDragging: monitor.isDragging() }),
2021
});

src/app/shared/components/external/flow-editor/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import HTML5Backend from 'react-dnd-html5-backend';
2+
import { HTML5Backend } from 'react-dnd-html5-backend';
33
import { DndProvider } from 'react-dnd';
44

55
import { ConfigurationProvider, ItemsProvider } from './shared/contexts';

src/app/shared/components/external/properties-editor/shared/components/auto-complete/SearchAutoCompleteOption.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const SearchAutoCompleteOption: React.FC<ISearchAutoCompleteOptionProps>
2121
id={String(id)}
2222
disabled={disabled}
2323
onKeyDown={e => {
24-
if (onSelect && !disabled && (e.keyCode === 13 || e.keyCode === 32)) {
24+
if (!disabled && (e.keyCode === 13 || e.keyCode === 32)) {
2525
onSelect();
2626
}
2727
}}
Lines changed: 20 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,55 @@
11
:root {
2-
--selected-item-color: #1f724320;
3-
--focused-item-color: #1f724320;
4-
--editing-item-color: #1f724340;
2+
--border-selected-item-color: #ffffff30;
3+
--selected-item-color: #ffffff10;
4+
--hovered-item-color: #ffffff10;
5+
--editing-item-color: #ffffff15;
56
/* */
67
--warning-item-text-color: yellow;
78
--error-item-text-color: red;
9+
/* */
10+
--font-size: smaller;
811
}
912

1013
/* Estiliza a base da árvore*/
1114

1215
.tree-base {
16+
border: thin solid transparent;
17+
font-size: var(--font-size);
1318
scroll-behavior: smooth;
1419
flex-direction: column;
15-
font-size: smaller;
16-
overflow: auto;
20+
overflow-y: overlay;
21+
overflow-x: hidden;
22+
display: block;
23+
outline: none;
1724
flex: 1;
1825
}
1926

20-
.tree-base-internal {
21-
flex-direction: column;
22-
width: fit-content;
23-
min-width: 100%;
24-
}
25-
2627
.tree-base:focus {
28+
border: thin solid var(--border-selected-item-color);
2729
outline: none;
2830
}
2931

32+
/* Scroll */
33+
3034
.tree-base::-webkit-scrollbar {
31-
width: 10px;
35+
width: 12px;
3236
height: 20px;
3337
}
3438

3539
.tree-base::-webkit-scrollbar-thumb {
36-
background-color: #ffffff10;
40+
background-color: #ffffff00;
3741
}
3842

3943
.tree-base:hover::-webkit-scrollbar-thumb {
40-
background-color: #ffffff40;
44+
background-color: #ffffff10;
4145
}
4246

4347
.tree-base::-webkit-scrollbar-thumb:hover {
44-
background-color: #ffffff50;
48+
background-color: #ffffff30;
4549
}
4650

4751
.tree-base::-webkit-scrollbar-thumb:active {
48-
background-color: #ffffff70;
52+
background-color: #ffffff50;
4953
}
5054

5155
.tree-base::-webkit-scrollbar-corner {
@@ -54,76 +58,11 @@
5458

5559
/* Configure tree item */
5660

57-
.tree-item input {
58-
position: absolute;
59-
float: right;
60-
opacity: 0;
61-
height: 0;
62-
width: 0;
63-
}
64-
65-
.tree-item label {
66-
flex: 1;
67-
padding: 4px;
68-
display: flex;
69-
cursor: pointer;
70-
text-align: start;
71-
align-items: center;
72-
white-space: nowrap;
73-
word-break: keep-all;
74-
}
75-
76-
.tree-item label:hover {
77-
background-color: var(--focused-item-color);
78-
}
79-
80-
.tree-item label.error {
81-
color: var(--error-item-text-color);
82-
text-decoration: underline wavy;
83-
}
84-
85-
.tree-item label.warning {
86-
color: var(--warning-item-text-color);
87-
text-decoration: underline wavy;
88-
}
89-
90-
.tree-item.disabled label {
91-
filter: brightness(0.6);
92-
}
93-
94-
.tree-item.selected label {
95-
background-color: var(--selected-item-color);
96-
}
97-
9861
.tree-item.dragging label {
9962
filter: brightness(0.4);
10063
background-color: #ffffff10;
10164
}
10265

10366
.tree-item.dragging-over label {
104-
animation-name: animation-dragging-over;
105-
animation-iteration-count: infinite;
10667
background-color: #ffffff10;
107-
animation-duration: 1s;
108-
border-radius: 50px;
109-
}
110-
111-
.tree-item :checked:focus+label {
112-
background-color: var(--focused-item-color);
113-
}
114-
115-
.tree-item.editing label, .tree-item.editing.selected label, .tree-item.editing.selected :checked:focus+label label {
116-
background-color: var(--editing-item-color);
117-
}
118-
119-
@keyframes animation-dragging-over {
120-
0% {
121-
opacity: 0.2;
122-
}
123-
50% {
124-
opacity: 1;
125-
}
126-
100% {
127-
opacity: 0.2;
128-
}
12968
}
Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,80 @@
11
import React, { useCallback } from 'react';
22

3-
import { ITreeManagerProps, ITreeManagerEvents } from './shared/interfaces';
4-
import { useBaseItems, useConfigs } from './shared/hooks';
53
import { EmptyFeedback, OnEditListener, OnSelectListener, Tree } from './components';
4+
import { ITreeManagerProps, ITreeManagerEvents } from './shared/interfaces';
5+
import { useBaseItems, useConfigs, useItems } from './shared/hooks';
66
import './TreeManagerBase.css';
77

88
interface TreeManagerBaseProps extends Omit<ITreeManagerProps, 'items'>, ITreeManagerEvents { }
99
export const TreeManagerBase: React.FC<TreeManagerBaseProps> = ({ childrenWhenEmpty, onFocus, onContextMenu, onKeyDown, onSelect, onEdit }) => {
10-
const { showEmptyMessage } = useConfigs();
10+
const { showEmptyMessage, id } = useConfigs();
1111
const baseItems = useBaseItems();
12+
const { selectAll } = useItems();
1213

1314
const handleContextMenu = useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
1415
e.stopPropagation();
1516
onContextMenu && onContextMenu(undefined, e);
1617
}, [onContextMenu]);
1718

19+
const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement | HTMLLabelElement> = useCallback(e => {
20+
e.stopPropagation();
21+
e.preventDefault();
22+
23+
const allTreeItems = document.querySelectorAll(`#${id} .tree-item > .tree-item-label[tabIndex="0"]`);
24+
if (allTreeItems.length === 0) {
25+
onKeyDown && onKeyDown(e);
26+
return;
27+
}
28+
29+
switch (e.key) {
30+
case 'ArrowUp':
31+
(allTreeItems[0] as any)?.click();
32+
(allTreeItems[0] as any)?.focus();
33+
break;
34+
case 'ArrowDown':
35+
(allTreeItems[0] as any)?.click();
36+
(allTreeItems[0] as any)?.focus();
37+
break;
38+
case 'a':
39+
if (e.ctrlKey) selectAll();
40+
break;
41+
default: break;
42+
}
43+
44+
onKeyDown && onKeyDown(e);
45+
}, [id, onKeyDown, selectAll]);
46+
1847
return (
1948
<div
49+
id={id}
50+
role="tree"
2051
tabIndex={0}
2152
onFocus={onFocus}
22-
onKeyDown={onKeyDown}
23-
className={"tree-base"}
53+
className="tree-base"
54+
onKeyDown={handleKeyDown}
2455
onContextMenu={handleContextMenu}
2556
>
2657
{baseItems.length > 0 && baseItems.map((item, index) => (
27-
<div key={index} className="tree-base-internal">
28-
<Tree
29-
item={item}
30-
onContextMenu={onContextMenu}
31-
/>
32-
</div>
58+
<Tree
59+
key={index}
60+
item={item}
61+
onKeyDown={handleKeyDown}
62+
onContextMenu={onContextMenu}
63+
/>
3364
))}
65+
3466
{!((childrenWhenEmpty && baseItems.length === 0) || showEmptyMessage) &&
35-
<div style={{ padding: 50 }} />
67+
<div style={{ padding: 64 }} />
3668
}
37-
<OnEditListener onEdit={onEdit} />
38-
<OnSelectListener onSelect={onSelect} />
69+
3970
<EmptyFeedback
4071
children={childrenWhenEmpty}
4172
onContextMenu={handleContextMenu}
4273
show={!!((childrenWhenEmpty && baseItems.length === 0) || showEmptyMessage)}
4374
/>
75+
76+
<OnEditListener onEdit={onEdit} />
77+
<OnSelectListener onSelect={onSelect} />
4478
</div>
4579
);
4680
}

0 commit comments

Comments
 (0)