@webiny/app-aco 0.0.0-ee-vpcs.549378cf03
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/LICENSE +21 -0
- package/README.md +349 -0
- package/components/Dialogs/DialogCreate.d.ts +10 -0
- package/components/Dialogs/DialogCreate.js +153 -0
- package/components/Dialogs/DialogCreate.js.map +1 -0
- package/components/Dialogs/DialogDelete.d.ts +10 -0
- package/components/Dialogs/DialogDelete.js +135 -0
- package/components/Dialogs/DialogDelete.js.map +1 -0
- package/components/Dialogs/DialogUpdate.d.ts +10 -0
- package/components/Dialogs/DialogUpdate.js +186 -0
- package/components/Dialogs/DialogUpdate.js.map +1 -0
- package/components/Dialogs/index.d.ts +3 -0
- package/components/Dialogs/index.js +44 -0
- package/components/Dialogs/index.js.map +1 -0
- package/components/Dialogs/styled.d.ts +8 -0
- package/components/Dialogs/styled.js +23 -0
- package/components/Dialogs/styled.js.map +1 -0
- package/components/Tree/ButtonCreate/index.d.ts +6 -0
- package/components/Tree/ButtonCreate/index.js +33 -0
- package/components/Tree/ButtonCreate/index.js.map +1 -0
- package/components/Tree/ButtonCreate/styled.d.ts +18 -0
- package/components/Tree/ButtonCreate/styled.js +28 -0
- package/components/Tree/ButtonCreate/styled.js.map +1 -0
- package/components/Tree/Empty/index.d.ts +2 -0
- package/components/Tree/Empty/index.js +30 -0
- package/components/Tree/Empty/index.js.map +1 -0
- package/components/Tree/Empty/styled.d.ts +4 -0
- package/components/Tree/Empty/styled.js +16 -0
- package/components/Tree/Empty/styled.js.map +1 -0
- package/components/Tree/List/constants.d.ts +1 -0
- package/components/Tree/List/constants.js +8 -0
- package/components/Tree/List/constants.js.map +1 -0
- package/components/Tree/List/index.d.ts +13 -0
- package/components/Tree/List/index.js +233 -0
- package/components/Tree/List/index.js.map +1 -0
- package/components/Tree/List/utils.d.ts +20 -0
- package/components/Tree/List/utils.js +93 -0
- package/components/Tree/List/utils.js.map +1 -0
- package/components/Tree/Loader/index.d.ts +2 -0
- package/components/Tree/Loader/index.js +25 -0
- package/components/Tree/Loader/index.js.map +1 -0
- package/components/Tree/Loader/styled.d.ts +5 -0
- package/components/Tree/Loader/styled.js +21 -0
- package/components/Tree/Loader/styled.js.map +1 -0
- package/components/Tree/MenuActions/index.d.ts +9 -0
- package/components/Tree/MenuActions/index.js +51 -0
- package/components/Tree/MenuActions/index.js.map +1 -0
- package/components/Tree/MenuActions/styled.d.ts +4 -0
- package/components/Tree/MenuActions/styled.js +16 -0
- package/components/Tree/MenuActions/styled.js.map +1 -0
- package/components/Tree/Node/index.d.ts +19 -0
- package/components/Tree/Node/index.js +79 -0
- package/components/Tree/Node/index.js.map +1 -0
- package/components/Tree/Node/styled.d.ts +38 -0
- package/components/Tree/Node/styled.js +47 -0
- package/components/Tree/Node/styled.js.map +1 -0
- package/components/Tree/NodePreview/index.d.ts +8 -0
- package/components/Tree/NodePreview/index.js +24 -0
- package/components/Tree/NodePreview/index.js.map +1 -0
- package/components/Tree/NodePreview/styled.d.ts +4 -0
- package/components/Tree/NodePreview/styled.js +16 -0
- package/components/Tree/NodePreview/styled.js.map +1 -0
- package/components/Tree/Placeholder/index.d.ts +9 -0
- package/components/Tree/Placeholder/index.js +26 -0
- package/components/Tree/Placeholder/index.js.map +1 -0
- package/components/Tree/Placeholder/styled.d.ts +4 -0
- package/components/Tree/Placeholder/styled.js +16 -0
- package/components/Tree/Placeholder/styled.js.map +1 -0
- package/components/Tree/Title/index.d.ts +9 -0
- package/components/Tree/Title/index.js +31 -0
- package/components/Tree/Title/index.js.map +1 -0
- package/components/Tree/Title/styled.d.ts +10 -0
- package/components/Tree/Title/styled.js +27 -0
- package/components/Tree/Title/styled.js.map +1 -0
- package/components/Tree/index.d.ts +13 -0
- package/components/Tree/index.js +99 -0
- package/components/Tree/index.js.map +1 -0
- package/components/Tree/styled.d.ts +4 -0
- package/components/Tree/styled.js +16 -0
- package/components/Tree/styled.js.map +1 -0
- package/components/index.d.ts +2 -0
- package/components/index.js +31 -0
- package/components/index.js.map +1 -0
- package/contexts/folders.d.ts +17 -0
- package/contexts/folders.js +354 -0
- package/contexts/folders.js.map +1 -0
- package/contexts/index.d.ts +2 -0
- package/contexts/index.js +24 -0
- package/contexts/index.js.map +1 -0
- package/contexts/links.d.ts +18 -0
- package/contexts/links.js +371 -0
- package/contexts/links.js.map +1 -0
- package/graphql/folders.gql.d.ts +5 -0
- package/graphql/folders.gql.js +31 -0
- package/graphql/folders.gql.js.map +1 -0
- package/graphql/links.gql.d.ts +5 -0
- package/graphql/links.gql.js +34 -0
- package/graphql/links.gql.js.map +1 -0
- package/handlers.d.ts +18 -0
- package/handlers.js +70 -0
- package/handlers.js.map +1 -0
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +31 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useFolders.d.ts +14 -0
- package/hooks/useFolders.js +64 -0
- package/hooks/useFolders.js.map +1 -0
- package/hooks/useLinks.d.ts +20 -0
- package/hooks/useLinks.js +65 -0
- package/hooks/useLinks.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.js +53 -0
- package/index.js.map +1 -0
- package/package.json +57 -0
- package/types.d.ts +152 -0
- package/types.js +5 -0
- package/types.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Container","styled"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const Container = styled(\"div\")`\n position: absolute;\n right: 8px;\n visibility: hidden;\n cursor: pointer;\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,SAAS,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,mEAAf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { NodeModel } from "@minoru/react-dnd-treeview";
|
|
3
|
+
import { DndItemData } from "../../../types";
|
|
4
|
+
declare type Props = {
|
|
5
|
+
node: NodeModel<DndItemData>;
|
|
6
|
+
depth: number;
|
|
7
|
+
isOpen: boolean;
|
|
8
|
+
onToggle: (id: NodeModel<DndItemData>["id"]) => void;
|
|
9
|
+
onClick: (data: NodeModel<DndItemData>["data"]) => void;
|
|
10
|
+
onUpdateFolder: (data: NodeModel<DndItemData>["data"]) => void;
|
|
11
|
+
onDeleteFolder: (data: NodeModel<DndItemData>["data"]) => void;
|
|
12
|
+
};
|
|
13
|
+
declare type FolderProps = {
|
|
14
|
+
text: string;
|
|
15
|
+
isOpen: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const FolderNode: ({ isOpen, text }: FolderProps) => JSX.Element;
|
|
18
|
+
export declare const Node: ({ node, depth, isOpen, onToggle, onClick, onUpdateFolder, onDeleteFolder }: Props) => JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Node = exports.FolderNode = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _arrow_right = require("@material-symbols/svg-400/outlined/arrow_right.svg");
|
|
13
|
+
|
|
14
|
+
var _folderFill = require("@material-symbols/svg-400/outlined/folder-fill.svg");
|
|
15
|
+
|
|
16
|
+
var _folder_openFill = require("@material-symbols/svg-400/outlined/folder_open-fill.svg");
|
|
17
|
+
|
|
18
|
+
var _reactDndTreeview = require("@minoru/react-dnd-treeview");
|
|
19
|
+
|
|
20
|
+
var _MenuActions = require("../MenuActions");
|
|
21
|
+
|
|
22
|
+
var _styled = require("./styled");
|
|
23
|
+
|
|
24
|
+
var FolderNode = function FolderNode(_ref) {
|
|
25
|
+
var isOpen = _ref.isOpen,
|
|
26
|
+
text = _ref.text;
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_styled.FolderIcon, null, isOpen ? /*#__PURE__*/_react.default.createElement(_folder_openFill.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_folderFill.ReactComponent, null)), /*#__PURE__*/_react.default.createElement(_styled.Text, {
|
|
28
|
+
use: "body2"
|
|
29
|
+
}, text));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.FolderNode = FolderNode;
|
|
33
|
+
|
|
34
|
+
var Node = function Node(_ref2) {
|
|
35
|
+
var _node$data;
|
|
36
|
+
|
|
37
|
+
var node = _ref2.node,
|
|
38
|
+
depth = _ref2.depth,
|
|
39
|
+
isOpen = _ref2.isOpen,
|
|
40
|
+
onToggle = _ref2.onToggle,
|
|
41
|
+
onClick = _ref2.onClick,
|
|
42
|
+
onUpdateFolder = _ref2.onUpdateFolder,
|
|
43
|
+
onDeleteFolder = _ref2.onDeleteFolder;
|
|
44
|
+
// Move the placeholder line to the left based on the element depth within the tree.
|
|
45
|
+
// Let's add some pixels so that the element is detached from the container but takes up the whole length while it's highlighted during dnd.
|
|
46
|
+
var indent = depth * 24 + 8;
|
|
47
|
+
var dragOverProps = (0, _reactDndTreeview.useDragOver)(node.id, isOpen, onToggle);
|
|
48
|
+
|
|
49
|
+
var handleToggle = function handleToggle(e) {
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
onToggle(node.id);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
var handleClick = function handleClick(e) {
|
|
55
|
+
e.stopPropagation();
|
|
56
|
+
onClick(node.data);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Container, Object.assign({
|
|
60
|
+
isFocused: !!((_node$data = node.data) !== null && _node$data !== void 0 && _node$data.isFocused),
|
|
61
|
+
style: {
|
|
62
|
+
paddingInlineStart: indent
|
|
63
|
+
}
|
|
64
|
+
}, dragOverProps), /*#__PURE__*/_react.default.createElement(_styled.ArrowIcon, {
|
|
65
|
+
isOpen: isOpen,
|
|
66
|
+
onClick: handleToggle
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_arrow_right.ReactComponent, null)), /*#__PURE__*/_react.default.createElement(_styled.Content, {
|
|
68
|
+
onClick: handleClick
|
|
69
|
+
}, /*#__PURE__*/_react.default.createElement(FolderNode, {
|
|
70
|
+
text: node.text,
|
|
71
|
+
isOpen: isOpen
|
|
72
|
+
})), node.data && /*#__PURE__*/_react.default.createElement(_MenuActions.MenuActions, {
|
|
73
|
+
folder: node.data,
|
|
74
|
+
onUpdateFolder: onUpdateFolder,
|
|
75
|
+
onDeleteFolder: onDeleteFolder
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
exports.Node = Node;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FolderNode","isOpen","text","Node","node","depth","onToggle","onClick","onUpdateFolder","onDeleteFolder","indent","dragOverProps","useDragOver","id","handleToggle","e","stopPropagation","handleClick","data","isFocused","paddingInlineStart"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as ArrowRight } from \"@material-symbols/svg-400/outlined/arrow_right.svg\";\nimport { ReactComponent as Folder } from \"@material-symbols/svg-400/outlined/folder-fill.svg\";\nimport { ReactComponent as FolderOpen } from \"@material-symbols/svg-400/outlined/folder_open-fill.svg\";\nimport { NodeModel, useDragOver } from \"@minoru/react-dnd-treeview\";\n\nimport { MenuActions } from \"~/components/Tree/MenuActions\";\n\nimport { Container, ArrowIcon, FolderIcon, Text, Content } from \"./styled\";\n\nimport { DndItemData } from \"~/types\";\n\ntype Props = {\n node: NodeModel<DndItemData>;\n depth: number;\n isOpen: boolean;\n onToggle: (id: NodeModel<DndItemData>[\"id\"]) => void;\n onClick: (data: NodeModel<DndItemData>[\"data\"]) => void;\n onUpdateFolder: (data: NodeModel<DndItemData>[\"data\"]) => void;\n onDeleteFolder: (data: NodeModel<DndItemData>[\"data\"]) => void;\n};\n\ntype FolderProps = {\n text: string;\n isOpen: boolean;\n};\n\nexport const FolderNode = ({ isOpen, text }: FolderProps) => {\n return (\n <>\n <FolderIcon>{isOpen ? <FolderOpen /> : <Folder />}</FolderIcon>\n <Text use={\"body2\"}>{text}</Text>\n </>\n );\n};\n\nexport const Node = ({\n node,\n depth,\n isOpen,\n onToggle,\n onClick,\n onUpdateFolder,\n onDeleteFolder\n}: Props) => {\n // Move the placeholder line to the left based on the element depth within the tree.\n // Let's add some pixels so that the element is detached from the container but takes up the whole length while it's highlighted during dnd.\n const indent = depth * 24 + 8;\n\n const dragOverProps = useDragOver(node.id, isOpen, onToggle);\n\n const handleToggle = (e: React.MouseEvent) => {\n e.stopPropagation();\n onToggle(node.id);\n };\n\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n onClick(node.data);\n };\n\n return (\n <Container\n isFocused={!!node.data?.isFocused}\n style={{ paddingInlineStart: indent }}\n {...dragOverProps}\n >\n <ArrowIcon isOpen={isOpen} onClick={handleToggle}>\n <ArrowRight />\n </ArrowIcon>\n <Content onClick={handleClick}>\n <FolderNode text={node.text} isOpen={isOpen} />\n </Content>\n {node.data && (\n <MenuActions\n folder={node.data}\n onUpdateFolder={onUpdateFolder}\n onDeleteFolder={onDeleteFolder}\n />\n )}\n </Container>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AAmBO,IAAMA,UAAU,GAAG,SAAbA,UAAa,OAAmC;EAAA,IAAhCC,MAAgC,QAAhCA,MAAgC;EAAA,IAAxBC,IAAwB,QAAxBA,IAAwB;EACzD,oBACI,yEACI,6BAAC,kBAAD,QAAaD,MAAM,gBAAG,6BAAC,+BAAD,OAAH,gBAAoB,6BAAC,0BAAD,OAAvC,CADJ,eAEI,6BAAC,YAAD;IAAM,GAAG,EAAE;EAAX,GAAqBC,IAArB,CAFJ,CADJ;AAMH,CAPM;;;;AASA,IAAMC,IAAI,GAAG,SAAPA,IAAO,QAQP;EAAA;;EAAA,IAPTC,IAOS,SAPTA,IAOS;EAAA,IANTC,KAMS,SANTA,KAMS;EAAA,IALTJ,MAKS,SALTA,MAKS;EAAA,IAJTK,QAIS,SAJTA,QAIS;EAAA,IAHTC,OAGS,SAHTA,OAGS;EAAA,IAFTC,cAES,SAFTA,cAES;EAAA,IADTC,cACS,SADTA,cACS;EACT;EACA;EACA,IAAMC,MAAM,GAAGL,KAAK,GAAG,EAAR,GAAa,CAA5B;EAEA,IAAMM,aAAa,GAAG,IAAAC,6BAAA,EAAYR,IAAI,CAACS,EAAjB,EAAqBZ,MAArB,EAA6BK,QAA7B,CAAtB;;EAEA,IAAMQ,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAyB;IAC1CA,CAAC,CAACC,eAAF;IACAV,QAAQ,CAACF,IAAI,CAACS,EAAN,CAAR;EACH,CAHD;;EAKA,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACF,CAAD,EAAyB;IACzCA,CAAC,CAACC,eAAF;IACAT,OAAO,CAACH,IAAI,CAACc,IAAN,CAAP;EACH,CAHD;;EAKA,oBACI,6BAAC,iBAAD;IACI,SAAS,EAAE,CAAC,gBAACd,IAAI,CAACc,IAAN,uCAAC,WAAWC,SAAZ,CADhB;IAEI,KAAK,EAAE;MAAEC,kBAAkB,EAAEV;IAAtB;EAFX,GAGQC,aAHR,gBAKI,6BAAC,iBAAD;IAAW,MAAM,EAAEV,MAAnB;IAA2B,OAAO,EAAEa;EAApC,gBACI,6BAAC,2BAAD,OADJ,CALJ,eAQI,6BAAC,eAAD;IAAS,OAAO,EAAEG;EAAlB,gBACI,6BAAC,UAAD;IAAY,IAAI,EAAEb,IAAI,CAACF,IAAvB;IAA6B,MAAM,EAAED;EAArC,EADJ,CARJ,EAWKG,IAAI,CAACc,IAAL,iBACG,6BAAC,wBAAD;IACI,MAAM,EAAEd,IAAI,CAACc,IADjB;IAEI,cAAc,EAAEV,cAFpB;IAGI,cAAc,EAAEC;EAHpB,EAZR,CADJ;AAqBH,CA9CM"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="web" />
|
|
3
|
+
/// <reference types="react" />
|
|
4
|
+
declare type ContainerProps = {
|
|
5
|
+
isFocused: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare type ArrowIconContainerProps = {
|
|
8
|
+
isOpen: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const Container: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContainerProps, object>;
|
|
11
|
+
export declare const Icon: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
12
|
+
export declare const ArrowIcon: import("@emotion/styled-base").StyledComponent<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
13
|
+
theme?: object | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
children?: import("react").ReactNode;
|
|
16
|
+
}, "key" | "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
17
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
18
|
+
}, ArrowIconContainerProps, object>;
|
|
19
|
+
export declare const FolderIcon: import("@emotion/styled-base").StyledComponent<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
20
|
+
theme?: object | undefined;
|
|
21
|
+
} & {
|
|
22
|
+
children?: import("react").ReactNode;
|
|
23
|
+
}, "key" | "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
24
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
25
|
+
}, Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
26
|
+
theme?: object | undefined;
|
|
27
|
+
} & {
|
|
28
|
+
children?: import("react").ReactNode;
|
|
29
|
+
}, "key" | "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
30
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
31
|
+
}, "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
32
|
+
export declare const Content: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
33
|
+
export declare const Text: import("@emotion/styled-base").StyledComponent<import("@webiny/ui/Typography/Typography").TypographyProps & {
|
|
34
|
+
children?: import("react").ReactNode;
|
|
35
|
+
}, Pick<import("@webiny/ui/Typography/Typography").TypographyProps & {
|
|
36
|
+
children?: import("react").ReactNode;
|
|
37
|
+
}, keyof import("@webiny/ui/Typography/Typography").TypographyProps>, object>;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Text = exports.Icon = exports.FolderIcon = exports.Content = exports.Container = exports.ArrowIcon = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
13
|
+
|
|
14
|
+
var Container = /*#__PURE__*/(0, _styled.default)("div", {
|
|
15
|
+
label: "Container",
|
|
16
|
+
target: "e12afjno0"
|
|
17
|
+
})("display:flex;align-items:center;padding:4px 32px 4px 0;background:", function (props) {
|
|
18
|
+
return props.isFocused && "var(--mdc-theme-background)";
|
|
19
|
+
}, ";color:var(--webiny-theme-color-text-secondary);fill:currentColor;position:relative;&:hover .folder-tree-menu-action{visibility:visible;}");
|
|
20
|
+
exports.Container = Container;
|
|
21
|
+
var Icon = /*#__PURE__*/(0, _styled.default)("div", {
|
|
22
|
+
label: "Icon",
|
|
23
|
+
target: "e12afjno1"
|
|
24
|
+
})("display:flex;align-items:center;justify-content:center;height:24px;width:24px;cursor:pointer;");
|
|
25
|
+
exports.Icon = Icon;
|
|
26
|
+
var ArrowIcon = /*#__PURE__*/(0, _styled.default)(Icon, {
|
|
27
|
+
label: "ArrowIcon",
|
|
28
|
+
target: "e12afjno2"
|
|
29
|
+
})("transition:transform linear 0.1s;transform:", function (props) {
|
|
30
|
+
return props.isOpen ? "rotate(90deg)" : "rotate(0deg)";
|
|
31
|
+
}, ";");
|
|
32
|
+
exports.ArrowIcon = ArrowIcon;
|
|
33
|
+
var FolderIcon = /*#__PURE__*/(0, _styled.default)(Icon, {
|
|
34
|
+
label: "FolderIcon",
|
|
35
|
+
target: "e12afjno3"
|
|
36
|
+
})("margin-right:4px;");
|
|
37
|
+
exports.FolderIcon = FolderIcon;
|
|
38
|
+
var Content = /*#__PURE__*/(0, _styled.default)("div", {
|
|
39
|
+
label: "Content",
|
|
40
|
+
target: "e12afjno4"
|
|
41
|
+
})("display:flex;align-items:center;cursor:pointer;white-space:nowrap;overflow:hidden;");
|
|
42
|
+
exports.Content = Content;
|
|
43
|
+
var Text = /*#__PURE__*/(0, _styled.default)(_Typography.Typography, {
|
|
44
|
+
label: "Text",
|
|
45
|
+
target: "e12afjno5"
|
|
46
|
+
})("white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px;");
|
|
47
|
+
exports.Text = Text;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Container","styled","props","isFocused","Icon","ArrowIcon","isOpen","FolderIcon","Content","Text","Typography"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\ntype ContainerProps = {\n isFocused: boolean;\n};\n\ntype ArrowIconContainerProps = {\n isOpen: boolean;\n};\n\nexport const Container = styled(\"div\")<ContainerProps>`\n display: flex;\n align-items: center;\n padding: 4px 32px 4px 0;\n background: ${props => props.isFocused && \"var(--mdc-theme-background)\"};\n color: var(--webiny-theme-color-text-secondary);\n fill: currentColor;\n position: relative;\n\n &:hover .folder-tree-menu-action {\n visibility: visible;\n }\n`;\n\nexport const Icon = styled(\"div\")`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n cursor: pointer;\n`;\n\nexport const ArrowIcon = styled(Icon)<ArrowIconContainerProps>`\n transition: transform linear 0.1s;\n transform: ${props => (props.isOpen ? \"rotate(90deg)\" : \"rotate(0deg)\")};\n`;\n\nexport const FolderIcon = styled(Icon)`\n margin-right: 4px;\n`;\n\nexport const Content = styled(\"div\")`\n display: flex;\n align-items: center;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nexport const Text = styled(Typography)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 24px;\n`;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAUO,IAAMA,SAAS,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,yEAIJ,UAAAC,KAAK;EAAA,OAAIA,KAAK,CAACC,SAAN,IAAmB,6BAAvB;AAAA,CAJD,8IAAf;;AAcA,IAAMC,IAAI,oBAAGH,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,mGAAV;;AASA,IAAMI,SAAS,oBAAGJ,eAAH,EAAUG,IAAV;EAAA;EAAA;AAAA,kDAEL,UAAAF,KAAK;EAAA,OAAKA,KAAK,CAACI,MAAN,GAAe,eAAf,GAAiC,cAAtC;AAAA,CAFA,MAAf;;AAKA,IAAMC,UAAU,oBAAGN,eAAH,EAAUG,IAAV;EAAA;EAAA;AAAA,uBAAhB;;AAIA,IAAMI,OAAO,oBAAGP,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,wFAAb;;AAQA,IAAMQ,IAAI,oBAAGR,eAAH,EAAUS,sBAAV;EAAA;EAAA;AAAA,iFAAV"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DragLayerMonitorProps } from "@minoru/react-dnd-treeview";
|
|
3
|
+
import { DndItemData } from "../../../types";
|
|
4
|
+
declare type Props = {
|
|
5
|
+
monitorProps: DragLayerMonitorProps<DndItemData>;
|
|
6
|
+
};
|
|
7
|
+
export declare const NodePreview: React.FC<Props>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.NodePreview = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _Node = require("../Node");
|
|
13
|
+
|
|
14
|
+
var _styled = require("./styled");
|
|
15
|
+
|
|
16
|
+
var NodePreview = function NodePreview(props) {
|
|
17
|
+
var item = props.monitorProps.item;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Container, null, /*#__PURE__*/_react.default.createElement(_Node.FolderNode, {
|
|
19
|
+
text: item.text,
|
|
20
|
+
isOpen: false
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.NodePreview = NodePreview;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NodePreview","props","item","monitorProps","text"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { DragLayerMonitorProps } from \"@minoru/react-dnd-treeview\";\n\nimport { FolderNode } from \"~/components/Tree/Node\";\nimport { Container } from \"./styled\";\n\nimport { DndItemData } from \"~/types\";\n\ntype Props = {\n monitorProps: DragLayerMonitorProps<DndItemData>;\n};\n\nexport const NodePreview: React.FC<Props> = props => {\n const item = props.monitorProps.item;\n\n return (\n <Container>\n <FolderNode text={item.text} isOpen={false} />\n </Container>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AAGA;;AACA;;AAQO,IAAMA,WAA4B,GAAG,SAA/BA,WAA+B,CAAAC,KAAK,EAAI;EACjD,IAAMC,IAAI,GAAGD,KAAK,CAACE,YAAN,CAAmBD,IAAhC;EAEA,oBACI,6BAAC,iBAAD,qBACI,6BAAC,gBAAD;IAAY,IAAI,EAAEA,IAAI,CAACE,IAAvB;IAA6B,MAAM,EAAE;EAArC,EADJ,CADJ;AAKH,CARM"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="web" />
|
|
3
|
+
/// <reference types="react" />
|
|
4
|
+
export declare const Container: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Container = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var Container = /*#__PURE__*/(0, _styled.default)("div", {
|
|
13
|
+
label: "Container",
|
|
14
|
+
target: "e2my8y90"
|
|
15
|
+
})("background-color:var(--webiny-theme-color-primary);border-radius:var(--webiny-theme-border-radius);color:var(--webiny-theme-color-on-primary);fill:currentColor;display:inline-grid;grid-template-columns:auto auto;align-items:center;padding:4px 8px;pointer-events:none;");
|
|
16
|
+
exports.Container = Container;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Container","styled"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const Container = styled(\"div\")`\n background-color: var(--webiny-theme-color-primary);\n border-radius: var(--webiny-theme-border-radius);\n color: var(--webiny-theme-color-on-primary);\n fill: currentColor;\n display: inline-grid;\n grid-template-columns: auto auto;\n align-items: center;\n padding: 4px 8px;\n pointer-events: none;\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,SAAS,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,iRAAf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { NodeModel } from "@minoru/react-dnd-treeview";
|
|
3
|
+
import { DndItemData } from "../../../types";
|
|
4
|
+
interface Props {
|
|
5
|
+
depth: number;
|
|
6
|
+
node: NodeModel<DndItemData>;
|
|
7
|
+
}
|
|
8
|
+
export declare const Placeholder: ({ depth }: Props) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Placeholder = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _styled = require("./styled");
|
|
13
|
+
|
|
14
|
+
var Placeholder = function Placeholder(_ref) {
|
|
15
|
+
var depth = _ref.depth;
|
|
16
|
+
// Move the placeholder line to the left based on the element depth within the tree.
|
|
17
|
+
// Let's add some pixels so that the element is detached from the container but takes up the whole length while it's highlighted during dnd.
|
|
18
|
+
var left = depth * 24 + 8;
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Element, {
|
|
20
|
+
style: {
|
|
21
|
+
left: left
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.Placeholder = Placeholder;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Placeholder","depth","left"],"sources":["index.tsx"],"sourcesContent":["import { NodeModel } from \"@minoru/react-dnd-treeview\";\nimport React from \"react\";\n\nimport { Element } from \"./styled\";\nimport { DndItemData } from \"~/types\";\n\ninterface Props {\n depth: number;\n node: NodeModel<DndItemData>;\n}\n\nexport const Placeholder = ({ depth }: Props) => {\n // Move the placeholder line to the left based on the element depth within the tree.\n // Let's add some pixels so that the element is detached from the container but takes up the whole length while it's highlighted during dnd.\n const left = depth * 24 + 8;\n return <Element style={{ left }} />;\n};\n"],"mappings":";;;;;;;;;AACA;;AAEA;;AAQO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAAsB;EAAA,IAAnBC,KAAmB,QAAnBA,KAAmB;EAC7C;EACA;EACA,IAAMC,IAAI,GAAGD,KAAK,GAAG,EAAR,GAAa,CAA1B;EACA,oBAAO,6BAAC,eAAD;IAAS,KAAK,EAAE;MAAEC,IAAI,EAAJA;IAAF;EAAhB,EAAP;AACH,CALM"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="web" />
|
|
3
|
+
/// <reference types="react" />
|
|
4
|
+
export declare const Element: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Element = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var Element = /*#__PURE__*/(0, _styled.default)("div", {
|
|
13
|
+
label: "Element",
|
|
14
|
+
target: "ehnecm90"
|
|
15
|
+
})("background-color:var(--webiny-theme-color-primary);height:2px;position:absolute;right:0;top:0;transform:translateY(-50%);");
|
|
16
|
+
exports.Element = Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Element","styled"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const Element = styled(\"div\")`\n background-color: var(--webiny-theme-color-primary);\n height: 2px;\n position: absolute;\n right: 0;\n top: 0;\n transform: translateY(-50%);\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,OAAO,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,+HAAb"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Title = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _home = require("@material-design-icons/svg/filled/home.svg");
|
|
13
|
+
|
|
14
|
+
var _styled = require("./styled");
|
|
15
|
+
|
|
16
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
17
|
+
|
|
18
|
+
var Title = function Title(_ref) {
|
|
19
|
+
var title = _ref.title,
|
|
20
|
+
onClick = _ref.onClick,
|
|
21
|
+
isDragging = _ref.isDragging;
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Container, {
|
|
23
|
+
onClick: onClick,
|
|
24
|
+
hasClickAction: Boolean(onClick),
|
|
25
|
+
isDragging: isDragging
|
|
26
|
+
}, /*#__PURE__*/_react.default.createElement(_styled.IconContainer, null, /*#__PURE__*/_react.default.createElement(_home.ReactComponent, null)), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
27
|
+
use: "subtitle2"
|
|
28
|
+
}, title));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.Title = Title;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Title","title","onClick","isDragging","Boolean"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ReactComponent as Dashboard } from \"@material-design-icons/svg/filled/home.svg\";\n\nimport { Container, IconContainer } from \"./styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\ntype Props = {\n title: string;\n isDragging: boolean;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n};\n\nexport const Title: React.FC<Props> = ({ title, onClick, isDragging }) => {\n return (\n <Container onClick={onClick} hasClickAction={Boolean(onClick)} isDragging={isDragging}>\n <IconContainer>\n <Dashboard />\n </IconContainer>\n <Typography use={\"subtitle2\"}>{title}</Typography>\n </Container>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AAQO,IAAMA,KAAsB,GAAG,SAAzBA,KAAyB,OAAoC;EAAA,IAAjCC,KAAiC,QAAjCA,KAAiC;EAAA,IAA1BC,OAA0B,QAA1BA,OAA0B;EAAA,IAAjBC,UAAiB,QAAjBA,UAAiB;EACtE,oBACI,6BAAC,iBAAD;IAAW,OAAO,EAAED,OAApB;IAA6B,cAAc,EAAEE,OAAO,CAACF,OAAD,CAApD;IAA+D,UAAU,EAAEC;EAA3E,gBACI,6BAAC,qBAAD,qBACI,6BAAC,oBAAD,OADJ,CADJ,eAII,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GAA+BF,KAA/B,CAJJ,CADJ;AAQH,CATM"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="web" />
|
|
3
|
+
/// <reference types="react" />
|
|
4
|
+
declare type ContainerProps = {
|
|
5
|
+
hasClickAction: boolean;
|
|
6
|
+
isDragging: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const Container: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContainerProps, object>;
|
|
9
|
+
export declare const IconContainer: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.IconContainer = exports.Container = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var Container = /*#__PURE__*/(0, _styled.default)("div", {
|
|
13
|
+
label: "Container",
|
|
14
|
+
target: "eteslgk0"
|
|
15
|
+
})("position:absolute;top:8px;left:0;display:flex;align-items:center;color:var(--webiny-theme-color-text-secondary);fill:currentColor;padding:0 8px 0;cursor:", function (_ref) {
|
|
16
|
+
var hasClickAction = _ref.hasClickAction;
|
|
17
|
+
return hasClickAction && "pointer";
|
|
18
|
+
}, ";pointer-events:", function (_ref2) {
|
|
19
|
+
var isDragging = _ref2.isDragging;
|
|
20
|
+
return isDragging ? "none" : "auto";
|
|
21
|
+
}, ";");
|
|
22
|
+
exports.Container = Container;
|
|
23
|
+
var IconContainer = /*#__PURE__*/(0, _styled.default)("div", {
|
|
24
|
+
label: "IconContainer",
|
|
25
|
+
target: "eteslgk1"
|
|
26
|
+
})("margin-right:4px;height:24px;width:24px;");
|
|
27
|
+
exports.IconContainer = IconContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Container","styled","hasClickAction","isDragging","IconContainer"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\ntype ContainerProps = {\n hasClickAction: boolean;\n isDragging: boolean;\n};\n\nexport const Container = styled(\"div\")<ContainerProps>`\n position: absolute;\n top: 8px;\n left: 0;\n display: flex;\n align-items: center;\n color: var(--webiny-theme-color-text-secondary);\n fill: currentColor;\n padding: 0 8px 0;\n cursor: ${({ hasClickAction }) => hasClickAction && \"pointer\"};\n // The title acts like is not there, so user can drag a folder over the title and move it to the root.\n pointer-events: ${({ isDragging }) => (isDragging ? \"none\" : \"auto\")};\n`;\n\nexport const IconContainer = styled.div`\n margin-right: 4px;\n height: 24px;\n width: 24px;\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAOO,IAAMA,SAAS,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,gKASR;EAAA,IAAGC,cAAH,QAAGA,cAAH;EAAA,OAAwBA,cAAc,IAAI,SAA1C;AAAA,CATQ,sBAWA;EAAA,IAAGC,UAAH,SAAGA,UAAH;EAAA,OAAqBA,UAAU,GAAG,MAAH,GAAY,MAA3C;AAAA,CAXA,MAAf;;AAcA,IAAMC,aAAa,oBAAGH,eAAH;EAAA;EAAA;AAAA,8CAAnB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { NodeModel } from "@minoru/react-dnd-treeview";
|
|
4
|
+
import { DndItemData } from "../../types";
|
|
5
|
+
declare type Props = {
|
|
6
|
+
type: string;
|
|
7
|
+
title: string;
|
|
8
|
+
onFolderClick: (data: NodeModel<DndItemData>["data"]) => void;
|
|
9
|
+
onTitleClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
10
|
+
focusedFolderId?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const FolderTree: React.FC<Props>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.FolderTree = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _useFolders2 = require("../../hooks/useFolders");
|
|
17
|
+
|
|
18
|
+
var _ButtonCreate = require("./ButtonCreate");
|
|
19
|
+
|
|
20
|
+
var _Empty = require("./Empty");
|
|
21
|
+
|
|
22
|
+
var _Loader = require("./Loader");
|
|
23
|
+
|
|
24
|
+
var _List = require("./List");
|
|
25
|
+
|
|
26
|
+
var _Title = require("./Title");
|
|
27
|
+
|
|
28
|
+
var _ = require("./..");
|
|
29
|
+
|
|
30
|
+
var _styled = require("./styled");
|
|
31
|
+
|
|
32
|
+
var FolderTree = function FolderTree(_ref) {
|
|
33
|
+
var type = _ref.type,
|
|
34
|
+
title = _ref.title,
|
|
35
|
+
focusedFolderId = _ref.focusedFolderId,
|
|
36
|
+
onFolderClick = _ref.onFolderClick,
|
|
37
|
+
onTitleClick = _ref.onTitleClick;
|
|
38
|
+
|
|
39
|
+
var _useFolders = (0, _useFolders2.useFolders)(type),
|
|
40
|
+
folders = _useFolders.folders;
|
|
41
|
+
|
|
42
|
+
var _useState = (0, _react.useState)(false),
|
|
43
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
|
+
createDialogOpen = _useState2[0],
|
|
45
|
+
setCreateDialogOpen = _useState2[1]; // Little CSS trick here: since the folder title has absolute position, user can drag a folder over it and move it to root folder.
|
|
46
|
+
// While we are moving folders around we disable any title pointer event.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
var _useState3 = (0, _react.useState)(false),
|
|
50
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
51
|
+
isDragging = _useState4[0],
|
|
52
|
+
setIsDragging = _useState4[1];
|
|
53
|
+
|
|
54
|
+
var renderList = function renderList() {
|
|
55
|
+
if (!folders) {
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement(_Loader.Loader, null);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (folders.length > 0) {
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.List, {
|
|
61
|
+
type: type,
|
|
62
|
+
folders: folders,
|
|
63
|
+
onFolderClick: onFolderClick,
|
|
64
|
+
focusedFolderId: focusedFolderId,
|
|
65
|
+
onDragStart: function onDragStart() {
|
|
66
|
+
return setIsDragging(true);
|
|
67
|
+
},
|
|
68
|
+
onDragEnd: function onDragEnd() {
|
|
69
|
+
return setIsDragging(false);
|
|
70
|
+
}
|
|
71
|
+
}), /*#__PURE__*/_react.default.createElement(_ButtonCreate.CreateButton, {
|
|
72
|
+
onClick: function onClick() {
|
|
73
|
+
return setCreateDialogOpen(true);
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Empty.Empty, null), /*#__PURE__*/_react.default.createElement(_ButtonCreate.CreateButton, {
|
|
79
|
+
onClick: function onClick() {
|
|
80
|
+
return setCreateDialogOpen(true);
|
|
81
|
+
}
|
|
82
|
+
}));
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(_styled.Container, null, /*#__PURE__*/_react.default.createElement(_Title.Title, {
|
|
86
|
+
title: title,
|
|
87
|
+
onClick: onTitleClick,
|
|
88
|
+
isDragging: isDragging
|
|
89
|
+
}), renderList(), /*#__PURE__*/_react.default.createElement(_.FolderDialogCreate, {
|
|
90
|
+
type: type,
|
|
91
|
+
open: createDialogOpen,
|
|
92
|
+
onClose: function onClose() {
|
|
93
|
+
return setCreateDialogOpen(false);
|
|
94
|
+
},
|
|
95
|
+
parentId: undefined
|
|
96
|
+
}));
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
exports.FolderTree = FolderTree;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FolderTree","type","title","focusedFolderId","onFolderClick","onTitleClick","useFolders","folders","useState","createDialogOpen","setCreateDialogOpen","isDragging","setIsDragging","renderList","length","undefined"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from \"react\";\n\nimport { NodeModel } from \"@minoru/react-dnd-treeview\";\n\nimport { useFolders } from \"~/hooks/useFolders\";\n\nimport { CreateButton } from \"./ButtonCreate\";\nimport { Empty } from \"~/components/Tree/Empty\";\nimport { Loader } from \"./Loader\";\nimport { List } from \"./List\";\nimport { Title } from \"./Title\";\nimport { FolderDialogCreate } from \"~/components\";\n\nimport { Container } from \"./styled\";\n\nimport { DndItemData } from \"~/types\";\n\ntype Props = {\n type: string;\n title: string;\n onFolderClick: (data: NodeModel<DndItemData>[\"data\"]) => void;\n onTitleClick?: (event: React.MouseEvent<HTMLElement>) => void;\n focusedFolderId?: string;\n};\n\nexport const FolderTree: React.FC<Props> = ({\n type,\n title,\n focusedFolderId,\n onFolderClick,\n onTitleClick\n}) => {\n const { folders } = useFolders(type);\n const [createDialogOpen, setCreateDialogOpen] = useState<boolean>(false);\n\n // Little CSS trick here: since the folder title has absolute position, user can drag a folder over it and move it to root folder.\n // While we are moving folders around we disable any title pointer event.\n const [isDragging, setIsDragging] = useState<boolean>(false);\n\n const renderList = () => {\n if (!folders) {\n return <Loader />;\n }\n\n if (folders.length > 0) {\n return (\n <>\n <List\n type={type}\n folders={folders}\n onFolderClick={onFolderClick}\n focusedFolderId={focusedFolderId}\n onDragStart={() => setIsDragging(true)}\n onDragEnd={() => setIsDragging(false)}\n />\n <CreateButton onClick={() => setCreateDialogOpen(true)} />\n </>\n );\n }\n\n return (\n <>\n <Empty />\n <CreateButton onClick={() => setCreateDialogOpen(true)} />\n </>\n );\n };\n\n return (\n <Container>\n <Title title={title} onClick={onTitleClick} isDragging={isDragging} />\n {renderList()}\n <FolderDialogCreate\n type={type}\n open={createDialogOpen}\n onClose={() => setCreateDialogOpen(false)}\n parentId={undefined}\n />\n </Container>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAIA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAYO,IAAMA,UAA2B,GAAG,SAA9BA,UAA8B,OAMrC;EAAA,IALFC,IAKE,QALFA,IAKE;EAAA,IAJFC,KAIE,QAJFA,KAIE;EAAA,IAHFC,eAGE,QAHFA,eAGE;EAAA,IAFFC,aAEE,QAFFA,aAEE;EAAA,IADFC,YACE,QADFA,YACE;;EACF,kBAAoB,IAAAC,uBAAA,EAAWL,IAAX,CAApB;EAAA,IAAQM,OAAR,eAAQA,OAAR;;EACA,gBAAgD,IAAAC,eAAA,EAAkB,KAAlB,CAAhD;EAAA;EAAA,IAAOC,gBAAP;EAAA,IAAyBC,mBAAzB,iBAFE,CAIF;EACA;;;EACA,iBAAoC,IAAAF,eAAA,EAAkB,KAAlB,CAApC;EAAA;EAAA,IAAOG,UAAP;EAAA,IAAmBC,aAAnB;;EAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,GAAM;IACrB,IAAI,CAACN,OAAL,EAAc;MACV,oBAAO,6BAAC,cAAD,OAAP;IACH;;IAED,IAAIA,OAAO,CAACO,MAAR,GAAiB,CAArB,EAAwB;MACpB,oBACI,yEACI,6BAAC,UAAD;QACI,IAAI,EAAEb,IADV;QAEI,OAAO,EAAEM,OAFb;QAGI,aAAa,EAAEH,aAHnB;QAII,eAAe,EAAED,eAJrB;QAKI,WAAW,EAAE;UAAA,OAAMS,aAAa,CAAC,IAAD,CAAnB;QAAA,CALjB;QAMI,SAAS,EAAE;UAAA,OAAMA,aAAa,CAAC,KAAD,CAAnB;QAAA;MANf,EADJ,eASI,6BAAC,0BAAD;QAAc,OAAO,EAAE;UAAA,OAAMF,mBAAmB,CAAC,IAAD,CAAzB;QAAA;MAAvB,EATJ,CADJ;IAaH;;IAED,oBACI,yEACI,6BAAC,YAAD,OADJ,eAEI,6BAAC,0BAAD;MAAc,OAAO,EAAE;QAAA,OAAMA,mBAAmB,CAAC,IAAD,CAAzB;MAAA;IAAvB,EAFJ,CADJ;EAMH,CA3BD;;EA6BA,oBACI,6BAAC,iBAAD,qBACI,6BAAC,YAAD;IAAO,KAAK,EAAER,KAAd;IAAqB,OAAO,EAAEG,YAA9B;IAA4C,UAAU,EAAEM;EAAxD,EADJ,EAEKE,UAAU,EAFf,eAGI,6BAAC,oBAAD;IACI,IAAI,EAAEZ,IADV;IAEI,IAAI,EAAEQ,gBAFV;IAGI,OAAO,EAAE;MAAA,OAAMC,mBAAmB,CAAC,KAAD,CAAzB;IAAA,CAHb;IAII,QAAQ,EAAEK;EAJd,EAHJ,CADJ;AAYH,CAvDM"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="web" />
|
|
3
|
+
/// <reference types="react" />
|
|
4
|
+
export declare const Container: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Container = void 0;
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var Container = /*#__PURE__*/(0, _styled.default)("div", {
|
|
13
|
+
label: "Container",
|
|
14
|
+
target: "ee41tcw0"
|
|
15
|
+
})("position:relative;margin:0 0 32px;& .treeRoot{box-sizing:border-box;padding:36px 0 0;min-width:200px;}& .dropTarget{background:var(--mdc-theme-background);}& .draggingSource{opacity:0.5;}& .placeholderContainer{position:relative;}");
|
|
16
|
+
exports.Container = Container;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Container","styled"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const Container = styled(\"div\")`\n position: relative;\n margin: 0 0 32px;\n\n & .treeRoot {\n box-sizing: border-box;\n padding: 36px 0 0;\n min-width: 200px;\n }\n\n & .dropTarget {\n background: var(--mdc-theme-background);\n }\n\n & .draggingSource {\n opacity: 0.5;\n }\n\n & .placeholderContainer {\n position: relative;\n }\n`;\n"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,SAAS,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,4OAAf"}
|