@webiny/app-aco 5.36.0 → 5.36.1-beta.0

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.
@@ -31,7 +31,7 @@ export declare const Actions: import("@emotion/styled").StyledComponent<Pick<imp
31
31
  onOpen?: (() => void) | undefined;
32
32
  onClose?: (() => void) | undefined;
33
33
  "data-testid"?: string | undefined;
34
- }, "anchor" | "className" | keyof import("@rmwc/menu").MenuProps | "handle" | "data-testid">> & Partial<Pick<Partial<import("@rmwc/menu").MenuProps & {
34
+ }, "anchor" | "className" | "data-testid" | "handle" | keyof import("@rmwc/menu").MenuProps>> & Partial<Pick<Partial<import("@rmwc/menu").MenuProps & {
35
35
  children: import("react").ReactNode;
36
36
  handle?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
37
37
  anchor?: "bottomEnd" | "bottomLeft" | "bottomRight" | "bottomStart" | "topEnd" | "topLeft" | "topRight" | "topStart" | undefined;
@@ -114,11 +114,13 @@ var List = function List(_ref) {
114
114
  return _ref3.apply(this, arguments);
115
115
  };
116
116
  }();
117
- var sort = function sort(a, b) {
118
- return a.data.title.localeCompare(b.data.title, undefined, {
119
- numeric: true
120
- });
121
- };
117
+ var sort = (0, _react.useMemo)(function () {
118
+ return function (a, b) {
119
+ return a.data.title.localeCompare(b.data.title, undefined, {
120
+ numeric: true
121
+ });
122
+ };
123
+ }, []);
122
124
  var handleChangeOpen = function handleChangeOpen(folderIds) {
123
125
  setOpenFolderIds(folderIds);
124
126
  };
@@ -1 +1 @@
1
- {"version":3,"names":["List","type","folders","onFolderClick","focusedFolderId","hiddenFolderIds","enableActions","onDragStart","onDragEnd","useFolders","updateFolder","useSnackbar","showSnackbar","useState","treeData","setTreeData","undefined","initialOpenList","setInitialOpenList","openFolderIds","setOpenFolderIds","updateDialogOpen","setUpdateDialogOpen","deleteDialogOpen","setDeleteDialogOpen","selectedFolder","setSelectedFolder","useDeepCompareEffect","createTreeData","useEffect","createInitialOpenList","handleDrop","newTree","dragSourceId","dropTargetId","item","find","folder","id","Error","parentId","ROOT_ID","message","sort","a","b","data","title","localeCompare","numeric","handleChangeOpen","folderIds","MultiBackend","getBackendOptions","window","node","depth","isOpen","onToggle","monitorProps","root","dropTarget","draggingSource","placeholder"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport {\n DropOptions,\n getBackendOptions,\n InitialOpen,\n MultiBackend,\n NodeModel,\n Tree\n} from \"@minoru/react-dnd-treeview\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { DndProvider } from \"react-dnd\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { FolderDialogDelete, FolderDialogUpdate } from \"~/components\";\nimport { Node } from \"../Node\";\nimport { NodePreview } from \"../NodePreview\";\nimport { Placeholder } from \"../Placeholder\";\n\nimport { createTreeData, createInitialOpenList } from \"./utils\";\n\nimport { useFolders } from \"~/hooks\";\n\nimport { ROOT_ID } from \"./constants\";\n\nimport { DndItemData, FolderItem } from \"~/types\";\n\ntype ListProps = {\n type: string;\n folders: FolderItem[];\n focusedFolderId?: string;\n hiddenFolderIds?: string[];\n enableActions?: boolean;\n onFolderClick: (data: NodeModel<DndItemData>[\"data\"]) => void;\n onDragStart: () => void;\n onDragEnd: () => void;\n};\n\nexport const List: React.VFC<ListProps> = ({\n type,\n folders,\n onFolderClick,\n focusedFolderId,\n hiddenFolderIds,\n enableActions,\n onDragStart,\n onDragEnd\n}) => {\n const { updateFolder } = useFolders(type);\n const { showSnackbar } = useSnackbar();\n const [treeData, setTreeData] = useState<NodeModel<DndItemData>[]>([]);\n const [initialOpenList, setInitialOpenList] = useState<undefined | InitialOpen>(undefined);\n const [openFolderIds, setOpenFolderIds] = useState<NodeModel<DndItemData>[\"id\"][]>([]);\n const [updateDialogOpen, setUpdateDialogOpen] = useState<boolean>(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState<boolean>(false);\n const [selectedFolder, setSelectedFolder] = useState<FolderItem>();\n\n useDeepCompareEffect(() => {\n if (folders) {\n setTreeData(createTreeData(folders, focusedFolderId, hiddenFolderIds));\n }\n\n /**\n * We are spreading the `folders`:\n * in case of folder value update (e.g. name) from any component within the UI does not trigger the tree data update.\n * TODO: need investigation.\n */\n }, [{ ...folders }, focusedFolderId]);\n\n useEffect(() => {\n if (folders) {\n setInitialOpenList(createInitialOpenList(folders, openFolderIds, focusedFolderId));\n }\n }, []);\n\n const handleDrop = async (\n newTree: NodeModel<DndItemData>[],\n { dragSourceId, dropTargetId }: DropOptions\n ) => {\n try {\n const item = folders.find(folder => folder.id === dragSourceId);\n\n if (!item) {\n throw new Error(\"Folder not found\");\n }\n\n setTreeData(newTree);\n await updateFolder({\n ...item,\n parentId: dropTargetId !== ROOT_ID ? (dropTargetId as string) : null\n });\n } catch (error) {\n return showSnackbar(error.message);\n }\n };\n\n const sort = (a: NodeModel<DndItemData>, b: NodeModel<DndItemData>) => {\n return a.data!.title.localeCompare(b.data!.title, undefined, { numeric: true });\n };\n\n const handleChangeOpen = (folderIds: NodeModel[\"id\"][]) => {\n setOpenFolderIds(folderIds);\n };\n\n return (\n <>\n <DndProvider backend={MultiBackend} options={getBackendOptions()} context={window}>\n <Tree\n tree={treeData}\n rootId={ROOT_ID}\n onDrop={handleDrop}\n onChangeOpen={handleChangeOpen}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n sort={sort}\n render={(node, { depth, isOpen, onToggle }) => (\n <Node\n node={node}\n depth={depth}\n isOpen={isOpen}\n enableActions={enableActions}\n onToggle={onToggle}\n onClick={data => onFolderClick(data)}\n onUpdateFolder={data => {\n setSelectedFolder(data);\n setUpdateDialogOpen(true);\n }}\n onDeleteFolder={data => {\n setSelectedFolder(data);\n setDeleteDialogOpen(true);\n }}\n />\n )}\n dragPreviewRender={monitorProps => <NodePreview monitorProps={monitorProps} />}\n classes={{\n root: \"treeRoot\",\n dropTarget: \"dropTarget\",\n draggingSource: \"draggingSource\",\n placeholder: \"placeholderContainer\"\n }}\n initialOpen={initialOpenList}\n placeholderRender={(node, { depth }) => (\n <Placeholder node={node} depth={depth} />\n )}\n />\n </DndProvider>\n {selectedFolder && (\n <>\n <FolderDialogUpdate\n folder={selectedFolder}\n open={updateDialogOpen}\n onClose={() => {\n setUpdateDialogOpen(false);\n setSelectedFolder(undefined);\n }}\n />\n <FolderDialogDelete\n folder={selectedFolder}\n open={deleteDialogOpen}\n onClose={() => {\n setDeleteDialogOpen(false);\n setSelectedFolder(undefined);\n }}\n />\n </>\n )}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["List","type","folders","onFolderClick","focusedFolderId","hiddenFolderIds","enableActions","onDragStart","onDragEnd","useFolders","updateFolder","useSnackbar","showSnackbar","useState","treeData","setTreeData","undefined","initialOpenList","setInitialOpenList","openFolderIds","setOpenFolderIds","updateDialogOpen","setUpdateDialogOpen","deleteDialogOpen","setDeleteDialogOpen","selectedFolder","setSelectedFolder","useDeepCompareEffect","createTreeData","useEffect","createInitialOpenList","handleDrop","newTree","dragSourceId","dropTargetId","item","find","folder","id","Error","parentId","ROOT_ID","message","sort","useMemo","a","b","data","title","localeCompare","numeric","handleChangeOpen","folderIds","MultiBackend","getBackendOptions","window","node","depth","isOpen","onToggle","monitorProps","root","dropTarget","draggingSource","placeholder"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\n\nimport {\n DropOptions,\n getBackendOptions,\n InitialOpen,\n MultiBackend,\n NodeModel,\n Tree\n} from \"@minoru/react-dnd-treeview\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { DndProvider } from \"react-dnd\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { FolderDialogDelete, FolderDialogUpdate } from \"~/components\";\nimport { Node } from \"../Node\";\nimport { NodePreview } from \"../NodePreview\";\nimport { Placeholder } from \"../Placeholder\";\n\nimport { createTreeData, createInitialOpenList } from \"./utils\";\n\nimport { useFolders } from \"~/hooks\";\n\nimport { ROOT_ID } from \"./constants\";\n\nimport { DndItemData, FolderItem } from \"~/types\";\n\ntype ListProps = {\n type: string;\n folders: FolderItem[];\n focusedFolderId?: string;\n hiddenFolderIds?: string[];\n enableActions?: boolean;\n onFolderClick: (data: NodeModel<DndItemData>[\"data\"]) => void;\n onDragStart: () => void;\n onDragEnd: () => void;\n};\n\nexport const List: React.VFC<ListProps> = ({\n type,\n folders,\n onFolderClick,\n focusedFolderId,\n hiddenFolderIds,\n enableActions,\n onDragStart,\n onDragEnd\n}) => {\n const { updateFolder } = useFolders(type);\n const { showSnackbar } = useSnackbar();\n const [treeData, setTreeData] = useState<NodeModel<DndItemData>[]>([]);\n const [initialOpenList, setInitialOpenList] = useState<undefined | InitialOpen>(undefined);\n const [openFolderIds, setOpenFolderIds] = useState<NodeModel<DndItemData>[\"id\"][]>([]);\n const [updateDialogOpen, setUpdateDialogOpen] = useState<boolean>(false);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState<boolean>(false);\n const [selectedFolder, setSelectedFolder] = useState<FolderItem>();\n\n useDeepCompareEffect(() => {\n if (folders) {\n setTreeData(createTreeData(folders, focusedFolderId, hiddenFolderIds));\n }\n\n /**\n * We are spreading the `folders`:\n * in case of folder value update (e.g. name) from any component within the UI does not trigger the tree data update.\n * TODO: need investigation.\n */\n }, [{ ...folders }, focusedFolderId]);\n\n useEffect(() => {\n if (folders) {\n setInitialOpenList(createInitialOpenList(folders, openFolderIds, focusedFolderId));\n }\n }, []);\n\n const handleDrop = async (\n newTree: NodeModel<DndItemData>[],\n { dragSourceId, dropTargetId }: DropOptions\n ) => {\n try {\n const item = folders.find(folder => folder.id === dragSourceId);\n\n if (!item) {\n throw new Error(\"Folder not found\");\n }\n\n setTreeData(newTree);\n await updateFolder({\n ...item,\n parentId: dropTargetId !== ROOT_ID ? (dropTargetId as string) : null\n });\n } catch (error) {\n return showSnackbar(error.message);\n }\n };\n\n const sort = useMemo(\n () => (a: NodeModel<DndItemData>, b: NodeModel<DndItemData>) => {\n return a.data!.title.localeCompare(b.data!.title, undefined, { numeric: true });\n },\n []\n );\n\n const handleChangeOpen = (folderIds: NodeModel[\"id\"][]) => {\n setOpenFolderIds(folderIds);\n };\n\n return (\n <>\n <DndProvider backend={MultiBackend} options={getBackendOptions()} context={window}>\n <Tree\n tree={treeData}\n rootId={ROOT_ID}\n onDrop={handleDrop}\n onChangeOpen={handleChangeOpen}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n sort={sort}\n render={(node, { depth, isOpen, onToggle }) => (\n <Node\n node={node}\n depth={depth}\n isOpen={isOpen}\n enableActions={enableActions}\n onToggle={onToggle}\n onClick={data => onFolderClick(data)}\n onUpdateFolder={data => {\n setSelectedFolder(data);\n setUpdateDialogOpen(true);\n }}\n onDeleteFolder={data => {\n setSelectedFolder(data);\n setDeleteDialogOpen(true);\n }}\n />\n )}\n dragPreviewRender={monitorProps => <NodePreview monitorProps={monitorProps} />}\n classes={{\n root: \"treeRoot\",\n dropTarget: \"dropTarget\",\n draggingSource: \"draggingSource\",\n placeholder: \"placeholderContainer\"\n }}\n initialOpen={initialOpenList}\n placeholderRender={(node, { depth }) => (\n <Placeholder node={node} depth={depth} />\n )}\n />\n </DndProvider>\n {selectedFolder && (\n <>\n <FolderDialogUpdate\n folder={selectedFolder}\n open={updateDialogOpen}\n onClose={() => {\n setUpdateDialogOpen(false);\n setSelectedFolder(undefined);\n }}\n />\n <FolderDialogDelete\n folder={selectedFolder}\n open={deleteDialogOpen}\n onClose={() => {\n setDeleteDialogOpen(false);\n setSelectedFolder(undefined);\n }}\n />\n </>\n )}\n </>\n );\n};\n"],"mappings":"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"}
@@ -30,7 +30,8 @@ var createTreeData = function createTreeData() {
30
30
  savedOn = item.savedOn;
31
31
  return {
32
32
  id: id,
33
- parent: parentId || _constants.ROOT_ID,
33
+ parent: (parentId === null || parentId === void 0 ? void 0 : parentId.toLowerCase()) || _constants.ROOT_ID,
34
+ // toLowerCase() fixes a bug introduced by 5.36.0: accidentally we stored "ROOT" as parentId, instead of null
34
35
  text: title,
35
36
  droppable: true,
36
37
  data: {
@@ -64,25 +65,35 @@ var createInitialOpenList = function createInitialOpenList() {
64
65
  var folders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
65
66
  var openIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
66
67
  var focusedId = arguments.length > 2 ? arguments[2] : undefined;
67
- var focusedFolder = folders.find(function (folder) {
68
- return folder.id === focusedId;
69
- });
70
- if (!focusedId || !(focusedFolder !== null && focusedFolder !== void 0 && focusedFolder.parentId)) {
68
+ // In case of no focused folder, return the current open folders
69
+ if (!focusedId) {
71
70
  return openIds;
72
71
  }
73
- var findParents = function findParents(acc, folder, index, folders) {
74
- if (folder.parentId && acc.some(function (el) {
75
- return el === folder.id;
76
- })) {
77
- acc.push(folder.parentId);
78
- var newArr = folders.filter(function (_, i) {
79
- return i !== index;
80
- });
81
- return newArr.reduce(findParents, acc);
72
+
73
+ // Create a Map with folders, using folderId as key
74
+ var folderMap = new Map();
75
+ folders.forEach(function (folder) {
76
+ return folderMap.set(folder.id, folder);
77
+ });
78
+
79
+ // Recursive function that drill up the folderMap and includes the folderId above a given folder (identified by folderId)
80
+ var findParents = function findParents(acc, folderId) {
81
+ var folder = folderMap.get(folderId);
82
+ if (!folder || !folder.parentId || acc.includes(folder.parentId)) {
83
+ return acc;
82
84
  }
83
- return acc;
85
+ acc.push(folder.parentId);
86
+ return findParents(acc, folder.parentId);
84
87
  };
85
- var result = folders.reduce(findParents, [focusedId]);
88
+
89
+ // In case there is not focused folder or has no parent, return the current open folders
90
+ var focusedFolder = folderMap.get(focusedId);
91
+ if (!focusedFolder || !focusedFolder.parentId) {
92
+ return openIds;
93
+ }
94
+
95
+ // Remove duplicates and return
96
+ var result = findParents([focusedId], focusedId);
86
97
  return (0, _toConsumableArray2.default)(new Set([].concat((0, _toConsumableArray2.default)(result), (0, _toConsumableArray2.default)(openIds))));
87
98
  };
88
99
  exports.createInitialOpenList = createInitialOpenList;
@@ -1 +1 @@
1
- {"version":3,"names":["createTreeData","folders","focusedNodeId","hiddenFolderIds","map","item","id","parentId","title","slug","type","createdOn","createdBy","savedOn","parent","ROOT_ID","text","droppable","data","isFocused","filter","includes","createInitialOpenList","openIds","focusedId","focusedFolder","find","folder","findParents","acc","index","some","el","push","newArr","_","i","reduce","result","Set"],"sources":["utils.ts"],"sourcesContent":["import { InitialOpen, NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { DndItemData, FolderItem } from \"~/types\";\nimport { ROOT_ID } from \"./constants\";\n\n/**\n * Transform an array of folders returned by useFolders hook into an array of elements for the tree component.\n *\n * @param folders list of folders returned by useFolders hook.\n * @param focusedNodeId id of the current folder selected/focused.\n * @param hiddenFolderIds list ids of the folder you don't want to show within the list.\n * @return array of elements to render the tree component.\n */\nexport const createTreeData = (\n folders: FolderItem[] = [],\n focusedNodeId?: string,\n hiddenFolderIds: string[] = []\n): NodeModel<DndItemData>[] => {\n return folders\n .map(item => {\n const { id, parentId, title, slug, type, createdOn, createdBy, savedOn } = item;\n\n return {\n id,\n parent: parentId || ROOT_ID,\n text: title,\n droppable: true,\n data: {\n id,\n title,\n slug,\n parentId,\n type,\n createdOn,\n createdBy,\n savedOn,\n isFocused: focusedNodeId === id\n }\n };\n })\n .filter(item => !hiddenFolderIds.includes(item.id));\n};\n\n/**\n * Return an array of ids of open folders, based on the current focused folder id, its parent folders and the folders\n * opened by user interaction.\n *\n * @param folders list of folders returned by useFolders hook.\n * @param openIds list of open folders ids.\n * @param focusedId id of the current folder selected/focused.\n * @return array of ids of open folders.\n */\nexport const createInitialOpenList = (\n folders: FolderItem[] = [],\n openIds: NodeModel<DndItemData>[\"id\"][] = [],\n focusedId?: string\n): InitialOpen | undefined => {\n const focusedFolder = folders.find(folder => {\n return folder.id === focusedId;\n });\n\n if (!focusedId || !focusedFolder?.parentId) {\n return openIds;\n }\n\n const findParents = (\n acc: string[],\n folder: FolderItem,\n index: number,\n folders: FolderItem[]\n ): string[] => {\n if (folder.parentId && acc.some(el => el === folder.id)) {\n acc.push(folder.parentId);\n\n const newArr = folders.filter((_, i) => {\n return i !== index;\n });\n\n return newArr.reduce(findParents, acc);\n }\n\n return acc;\n };\n\n const result = folders.reduce(findParents, [focusedId]);\n\n return [...new Set([...result, ...openIds])];\n};\n"],"mappings":";;;;;;;;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,GAII;EAAA,IAH3BC,OAAqB,uEAAG,EAAE;EAAA,IAC1BC,aAAsB;EAAA,IACtBC,eAAyB,uEAAG,EAAE;EAE9B,OAAOF,OAAO,CACTG,GAAG,CAAC,UAAAC,IAAI,EAAI;IACT,IAAQC,EAAE,GAAiED,IAAI,CAAvEC,EAAE;MAAEC,QAAQ,GAAuDF,IAAI,CAAnEE,QAAQ;MAAEC,KAAK,GAAgDH,IAAI,CAAzDG,KAAK;MAAEC,IAAI,GAA0CJ,IAAI,CAAlDI,IAAI;MAAEC,IAAI,GAAoCL,IAAI,CAA5CK,IAAI;MAAEC,SAAS,GAAyBN,IAAI,CAAtCM,SAAS;MAAEC,SAAS,GAAcP,IAAI,CAA3BO,SAAS;MAAEC,OAAO,GAAKR,IAAI,CAAhBQ,OAAO;IAEtE,OAAO;MACHP,EAAE,EAAFA,EAAE;MACFQ,MAAM,EAAEP,QAAQ,IAAIQ,kBAAO;MAC3BC,IAAI,EAAER,KAAK;MACXS,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;QACFZ,EAAE,EAAFA,EAAE;QACFE,KAAK,EAALA,KAAK;QACLC,IAAI,EAAJA,IAAI;QACJF,QAAQ,EAARA,QAAQ;QACRG,IAAI,EAAJA,IAAI;QACJC,SAAS,EAATA,SAAS;QACTC,SAAS,EAATA,SAAS;QACTC,OAAO,EAAPA,OAAO;QACPM,SAAS,EAAEjB,aAAa,KAAKI;MACjC;IACJ,CAAC;EACL,CAAC,CAAC,CACDc,MAAM,CAAC,UAAAf,IAAI;IAAA,OAAI,CAACF,eAAe,CAACkB,QAAQ,CAAChB,IAAI,CAACC,EAAE,CAAC;EAAA,EAAC;AAC3D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AASO,IAAMgB,qBAAqB,GAAG,SAAxBA,qBAAqB,GAIJ;EAAA,IAH1BrB,OAAqB,uEAAG,EAAE;EAAA,IAC1BsB,OAAuC,uEAAG,EAAE;EAAA,IAC5CC,SAAkB;EAElB,IAAMC,aAAa,GAAGxB,OAAO,CAACyB,IAAI,CAAC,UAAAC,MAAM,EAAI;IACzC,OAAOA,MAAM,CAACrB,EAAE,KAAKkB,SAAS;EAClC,CAAC,CAAC;EAEF,IAAI,CAACA,SAAS,IAAI,EAACC,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAElB,QAAQ,GAAE;IACxC,OAAOgB,OAAO;EAClB;EAEA,IAAMK,WAAW,GAAG,SAAdA,WAAW,CACbC,GAAa,EACbF,MAAkB,EAClBG,KAAa,EACb7B,OAAqB,EACV;IACX,IAAI0B,MAAM,CAACpB,QAAQ,IAAIsB,GAAG,CAACE,IAAI,CAAC,UAAAC,EAAE;MAAA,OAAIA,EAAE,KAAKL,MAAM,CAACrB,EAAE;IAAA,EAAC,EAAE;MACrDuB,GAAG,CAACI,IAAI,CAACN,MAAM,CAACpB,QAAQ,CAAC;MAEzB,IAAM2B,MAAM,GAAGjC,OAAO,CAACmB,MAAM,CAAC,UAACe,CAAC,EAAEC,CAAC,EAAK;QACpC,OAAOA,CAAC,KAAKN,KAAK;MACtB,CAAC,CAAC;MAEF,OAAOI,MAAM,CAACG,MAAM,CAACT,WAAW,EAAEC,GAAG,CAAC;IAC1C;IAEA,OAAOA,GAAG;EACd,CAAC;EAED,IAAMS,MAAM,GAAGrC,OAAO,CAACoC,MAAM,CAACT,WAAW,EAAE,CAACJ,SAAS,CAAC,CAAC;EAEvD,wCAAW,IAAIe,GAAG,4CAAKD,MAAM,oCAAKf,OAAO,GAAE;AAC/C,CAAC;AAAC"}
1
+ {"version":3,"names":["createTreeData","folders","focusedNodeId","hiddenFolderIds","map","item","id","parentId","title","slug","type","createdOn","createdBy","savedOn","parent","toLowerCase","ROOT_ID","text","droppable","data","isFocused","filter","includes","createInitialOpenList","openIds","focusedId","folderMap","Map","forEach","folder","set","findParents","acc","folderId","get","push","focusedFolder","result","Set"],"sources":["utils.ts"],"sourcesContent":["import { InitialOpen, NodeModel } from \"@minoru/react-dnd-treeview\";\nimport { DndItemData, FolderItem } from \"~/types\";\nimport { ROOT_ID } from \"./constants\";\n\n/**\n * Transform an array of folders returned by useFolders hook into an array of elements for the tree component.\n *\n * @param folders list of folders returned by useFolders hook.\n * @param focusedNodeId id of the current folder selected/focused.\n * @param hiddenFolderIds list ids of the folder you don't want to show within the list.\n * @return array of elements to render the tree component.\n */\nexport const createTreeData = (\n folders: FolderItem[] = [],\n focusedNodeId?: string,\n hiddenFolderIds: string[] = []\n): NodeModel<DndItemData>[] => {\n return folders\n .map(item => {\n const { id, parentId, title, slug, type, createdOn, createdBy, savedOn } = item;\n\n return {\n id,\n parent: parentId?.toLowerCase() || ROOT_ID, // toLowerCase() fixes a bug introduced by 5.36.0: accidentally we stored \"ROOT\" as parentId, instead of null\n text: title,\n droppable: true,\n data: {\n id,\n title,\n slug,\n parentId,\n type,\n createdOn,\n createdBy,\n savedOn,\n isFocused: focusedNodeId === id\n }\n };\n })\n .filter(item => !hiddenFolderIds.includes(item.id));\n};\n\n/**\n * Return an array of ids of open folders, based on the current focused folder id, its parent folders and the folders\n * opened by user interaction.\n *\n * @param folders list of folders returned by useFolders hook.\n * @param openIds list of open folders ids.\n * @param focusedId id of the current folder selected/focused.\n * @return array of ids of open folders.\n */\nexport const createInitialOpenList = (\n folders: FolderItem[] = [],\n openIds: NodeModel<DndItemData>[\"id\"][] = [],\n focusedId?: string\n): InitialOpen | undefined => {\n // In case of no focused folder, return the current open folders\n if (!focusedId) {\n return openIds;\n }\n\n // Create a Map with folders, using folderId as key\n const folderMap = new Map<string, FolderItem>();\n folders.forEach(folder => folderMap.set(folder.id, folder));\n\n // Recursive function that drill up the folderMap and includes the folderId above a given folder (identified by folderId)\n const findParents = (acc: string[], folderId: string): string[] => {\n const folder = folderMap.get(folderId);\n if (!folder || !folder.parentId || acc.includes(folder.parentId)) {\n return acc;\n }\n\n acc.push(folder.parentId);\n return findParents(acc, folder.parentId);\n };\n\n // In case there is not focused folder or has no parent, return the current open folders\n const focusedFolder = folderMap.get(focusedId);\n if (!focusedFolder || !focusedFolder.parentId) {\n return openIds;\n }\n\n // Remove duplicates and return\n const result = findParents([focusedId], focusedId);\n return [...new Set([...result, ...openIds])];\n};\n"],"mappings":"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"}
@@ -42,36 +42,39 @@ var FoldersProvider = function FoldersProvider(_ref) {
42
42
  folders: folders,
43
43
  loading: loading,
44
44
  listFolders: function listFolders(type) {
45
+ var _arguments = arguments;
45
46
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
46
- var _yield$apolloFetching, response, _response$aco$listFol, data, error;
47
+ var limit, _yield$apolloFetching, response, _response$aco$listFol, data, error;
47
48
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
48
49
  while (1) switch (_context.prev = _context.next) {
49
50
  case 0:
51
+ limit = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : 10000;
50
52
  if (type) {
51
- _context.next = 2;
53
+ _context.next = 3;
52
54
  break;
53
55
  }
54
56
  throw new Error("Folder `type` is mandatory");
55
- case 2:
56
- _context.next = 4;
57
+ case 3:
58
+ _context.next = 5;
57
59
  return (0, _handlers.apolloFetchingHandler)((0, _handlers.loadingHandler)("LIST", setLoading), function () {
58
60
  return client.query({
59
61
  query: _folders.LIST_FOLDERS,
60
62
  variables: {
61
- type: type
63
+ type: type,
64
+ limit: limit
62
65
  }
63
66
  });
64
67
  });
65
- case 4:
68
+ case 5:
66
69
  _yield$apolloFetching = _context.sent;
67
70
  response = _yield$apolloFetching.data;
68
71
  _response$aco$listFol = response.aco.listFolders, data = _response$aco$listFol.data, error = _response$aco$listFol.error;
69
72
  if (data) {
70
- _context.next = 9;
73
+ _context.next = 10;
71
74
  break;
72
75
  }
73
76
  throw new Error((error === null || error === void 0 ? void 0 : error.message) || "Could not fetch folders");
74
- case 9:
77
+ case 10:
75
78
  setFolders(function (folders) {
76
79
  return (0, _objectSpread6.default)((0, _objectSpread6.default)({}, folders), {}, (0, _defineProperty2.default)({}, type, data || []));
77
80
  });
@@ -81,7 +84,7 @@ var FoldersProvider = function FoldersProvider(_ref) {
81
84
  });
82
85
  });
83
86
  return _context.abrupt("return", data);
84
- case 12:
87
+ case 13:
85
88
  case "end":
86
89
  return _context.stop();
87
90
  }
@@ -1 +1 @@
1
- {"version":3,"names":["FoldersContext","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","CREATE","UPDATE","DELETE","FoldersProvider","children","client","useApolloClient","useState","Object","create","folders","setFolders","loading","setLoading","context","listFolders","type","Error","apolloFetchingHandler","loadingHandler","query","LIST_FOLDERS","variables","response","data","aco","error","message","prev","getFolder","id","GET_FOLDER","createFolder","folder","mutate","mutation","CREATE_FOLDER","updateFolder","title","slug","parentId","UPDATE_FOLDER","folderIndex","findIndex","f","typeFolders","deleteFolder","DELETE_FOLDER","updatedFolders","filter"],"sources":["folders.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\n\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\n\nimport {\n CREATE_FOLDER,\n DELETE_FOLDER,\n GET_FOLDER,\n LIST_FOLDERS,\n UPDATE_FOLDER\n} from \"~/graphql/folders.gql\";\n\nimport {\n CreateFolderResponse,\n CreateFolderVariables,\n GetFolderResponse,\n GetFolderQueryVariables,\n DeleteFolderResponse,\n DeleteFolderVariables,\n FolderItem,\n ListFoldersQueryVariables,\n ListFoldersResponse,\n UpdateFolderResponse,\n UpdateFolderVariables,\n Loading,\n LoadingActions\n} from \"~/types\";\n\ninterface FoldersContext {\n folders: Record<string, FolderItem[]>;\n loading: Loading<LoadingActions>;\n listFolders: (type: string) => Promise<FolderItem[]>;\n getFolder: (id: string) => Promise<FolderItem>;\n createFolder: (folder: Omit<FolderItem, \"id\">) => Promise<FolderItem>;\n updateFolder: (folder: FolderItem) => Promise<FolderItem>;\n deleteFolder(folder: FolderItem): Promise<true>;\n}\n\nexport const FoldersContext = React.createContext<FoldersContext | undefined>(undefined);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nexport const FoldersProvider = ({ children }: Props) => {\n const client = useApolloClient();\n const [folders, setFolders] = useState<Record<string, FolderItem[]>>(Object.create(null));\n const [loading, setLoading] = useState<Loading<LoadingActions>>(defaultLoading);\n\n const context: FoldersContext = {\n folders,\n loading,\n async listFolders(type: string) {\n if (!type) {\n throw new Error(\"Folder `type` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListFoldersResponse, ListFoldersQueryVariables>({\n query: LIST_FOLDERS,\n variables: { type }\n })\n );\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n setFolders(folders => ({\n ...folders,\n [type]: data || []\n }));\n\n setLoading(prev => ({\n ...prev,\n INIT: false\n }));\n\n return data;\n },\n\n async getFolder(id) {\n if (!id) {\n throw new Error(\"Folder `id` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetFolderResponse, GetFolderQueryVariables>({\n query: GET_FOLDER,\n variables: { id }\n })\n );\n\n const { data, error } = response.aco.getFolder;\n\n if (!data) {\n throw new Error(error?.message || `Could not fetch folder with id: ${id}`);\n }\n\n return data;\n },\n\n async createFolder(folder) {\n const { type } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateFolderResponse, CreateFolderVariables>({\n mutation: CREATE_FOLDER,\n variables: { data: folder }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating folder\");\n }\n\n const { data, error } = response.aco.createFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not create folder\");\n }\n\n setFolders(folders => ({ ...folders, [type]: [data, ...folders[type]] }));\n\n return data;\n },\n\n async updateFolder(folder) {\n const { id, type, title, slug, parentId } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateFolderResponse, UpdateFolderVariables>({\n mutation: UPDATE_FOLDER,\n variables: {\n id,\n data: {\n title,\n slug,\n parentId\n }\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating folder\");\n }\n\n const { data, error } = response.aco.updateFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not update folder\");\n }\n\n setFolders(folders => {\n const folderIndex = folders[type].findIndex(f => f.id === id);\n if (folderIndex === -1) {\n return folders;\n }\n\n const typeFolders = folders[type];\n typeFolders[folderIndex] = data;\n\n return { ...folders, [type]: typeFolders };\n });\n\n return data;\n },\n\n async deleteFolder(folder) {\n const { id, type } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteFolderResponse, DeleteFolderVariables>({\n mutation: DELETE_FOLDER,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting folder\");\n }\n\n const { data, error } = response.aco.deleteFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete folder\");\n }\n\n setFolders(folders => {\n const updatedFolders = folders[type].filter(f => f.id !== id);\n return { ...folders, [type]: updatedFolders };\n });\n\n return true;\n }\n };\n\n return <FoldersContext.Provider value={context}>{children}</FoldersContext.Provider>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["FoldersContext","React","createContext","undefined","defaultLoading","INIT","LIST","LIST_MORE","GET","CREATE","UPDATE","DELETE","FoldersProvider","children","client","useApolloClient","useState","Object","create","folders","setFolders","loading","setLoading","context","listFolders","type","limit","Error","apolloFetchingHandler","loadingHandler","query","LIST_FOLDERS","variables","response","data","aco","error","message","prev","getFolder","id","GET_FOLDER","createFolder","folder","mutate","mutation","CREATE_FOLDER","updateFolder","title","slug","parentId","UPDATE_FOLDER","folderIndex","findIndex","f","typeFolders","deleteFolder","DELETE_FOLDER","updatedFolders","filter"],"sources":["folders.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\n\nimport { apolloFetchingHandler, loadingHandler } from \"~/handlers\";\n\nimport {\n CREATE_FOLDER,\n DELETE_FOLDER,\n GET_FOLDER,\n LIST_FOLDERS,\n UPDATE_FOLDER\n} from \"~/graphql/folders.gql\";\n\nimport {\n CreateFolderResponse,\n CreateFolderVariables,\n GetFolderResponse,\n GetFolderQueryVariables,\n DeleteFolderResponse,\n DeleteFolderVariables,\n FolderItem,\n ListFoldersQueryVariables,\n ListFoldersResponse,\n UpdateFolderResponse,\n UpdateFolderVariables,\n Loading,\n LoadingActions\n} from \"~/types\";\n\ninterface FoldersContext {\n folders: Record<string, FolderItem[]>;\n loading: Loading<LoadingActions>;\n listFolders: (type: string) => Promise<FolderItem[]>;\n getFolder: (id: string) => Promise<FolderItem>;\n createFolder: (folder: Omit<FolderItem, \"id\">) => Promise<FolderItem>;\n updateFolder: (folder: FolderItem) => Promise<FolderItem>;\n deleteFolder(folder: FolderItem): Promise<true>;\n}\n\nexport const FoldersContext = React.createContext<FoldersContext | undefined>(undefined);\n\ninterface Props {\n children: ReactNode;\n}\n\nconst defaultLoading: Record<LoadingActions, boolean> = {\n INIT: true,\n LIST: false,\n LIST_MORE: false,\n GET: false,\n CREATE: false,\n UPDATE: false,\n DELETE: false\n};\n\nexport const FoldersProvider = ({ children }: Props) => {\n const client = useApolloClient();\n const [folders, setFolders] = useState<Record<string, FolderItem[]>>(Object.create(null));\n const [loading, setLoading] = useState<Loading<LoadingActions>>(defaultLoading);\n\n const context: FoldersContext = {\n folders,\n loading,\n async listFolders(type: string, limit = 10000) {\n if (!type) {\n throw new Error(\"Folder `type` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"LIST\", setLoading),\n () =>\n client.query<ListFoldersResponse, ListFoldersQueryVariables>({\n query: LIST_FOLDERS,\n variables: { type, limit }\n })\n );\n\n const { data, error } = response.aco.listFolders;\n\n if (!data) {\n throw new Error(error?.message || \"Could not fetch folders\");\n }\n\n setFolders(folders => ({\n ...folders,\n [type]: data || []\n }));\n\n setLoading(prev => ({\n ...prev,\n INIT: false\n }));\n\n return data;\n },\n\n async getFolder(id) {\n if (!id) {\n throw new Error(\"Folder `id` is mandatory\");\n }\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"GET\", setLoading),\n () =>\n client.query<GetFolderResponse, GetFolderQueryVariables>({\n query: GET_FOLDER,\n variables: { id }\n })\n );\n\n const { data, error } = response.aco.getFolder;\n\n if (!data) {\n throw new Error(error?.message || `Could not fetch folder with id: ${id}`);\n }\n\n return data;\n },\n\n async createFolder(folder) {\n const { type } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"CREATE\", setLoading),\n () =>\n client.mutate<CreateFolderResponse, CreateFolderVariables>({\n mutation: CREATE_FOLDER,\n variables: { data: folder }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while creating folder\");\n }\n\n const { data, error } = response.aco.createFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not create folder\");\n }\n\n setFolders(folders => ({ ...folders, [type]: [data, ...folders[type]] }));\n\n return data;\n },\n\n async updateFolder(folder) {\n const { id, type, title, slug, parentId } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"UPDATE\", setLoading),\n () =>\n client.mutate<UpdateFolderResponse, UpdateFolderVariables>({\n mutation: UPDATE_FOLDER,\n variables: {\n id,\n data: {\n title,\n slug,\n parentId\n }\n }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while updating folder\");\n }\n\n const { data, error } = response.aco.updateFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not update folder\");\n }\n\n setFolders(folders => {\n const folderIndex = folders[type].findIndex(f => f.id === id);\n if (folderIndex === -1) {\n return folders;\n }\n\n const typeFolders = folders[type];\n typeFolders[folderIndex] = data;\n\n return { ...folders, [type]: typeFolders };\n });\n\n return data;\n },\n\n async deleteFolder(folder) {\n const { id, type } = folder;\n\n const { data: response } = await apolloFetchingHandler(\n loadingHandler(\"DELETE\", setLoading),\n () =>\n client.mutate<DeleteFolderResponse, DeleteFolderVariables>({\n mutation: DELETE_FOLDER,\n variables: { id }\n })\n );\n\n if (!response) {\n throw new Error(\"Network error while deleting folder\");\n }\n\n const { data, error } = response.aco.deleteFolder;\n\n if (!data) {\n throw new Error(error?.message || \"Could not delete folder\");\n }\n\n setFolders(folders => {\n const updatedFolders = folders[type].filter(f => f.id !== id);\n return { ...folders, [type]: updatedFolders };\n });\n\n return true;\n }\n };\n\n return <FoldersContext.Provider value={context}>{children}</FoldersContext.Provider>;\n};\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ var ERROR_FIELD = /* GraphQL */"\n {\n code\n data\n mes
12
12
  var DATA_FIELD = /* GraphQL */"\n {\n id\n title\n slug\n parentId\n type\n savedOn\n createdOn\n createdBy {\n id\n displayName\n }\n }\n";
13
13
  var CREATE_FOLDER = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateFolder($data: FolderCreateInput!) {\n aco {\n createFolder(data: $data) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
14
14
  exports.CREATE_FOLDER = CREATE_FOLDER;
15
- var LIST_FOLDERS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListFolders ($type: String!) {\n aco {\n listFolders(where: { type: $type }) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
15
+ var LIST_FOLDERS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListFolders ($type: String!, $limit: Int) {\n aco {\n listFolders(where: { type: $type }, limit: $limit) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
16
16
  exports.LIST_FOLDERS = LIST_FOLDERS;
17
17
  var GET_FOLDER = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query GetFolder ($id: ID!) {\n aco {\n getFolder(id: $id) {\n data ", "\n error ", "\n }\n }\n }\n"])), DATA_FIELD, ERROR_FIELD);
18
18
  exports.GET_FOLDER = GET_FOLDER;
@@ -1 +1 @@
1
- {"version":3,"names":["ERROR_FIELD","DATA_FIELD","CREATE_FOLDER","gql","LIST_FOLDERS","GET_FOLDER","UPDATE_FOLDER","DELETE_FOLDER"],"sources":["folders.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n code\n data\n message\n }\n`;\n\nconst DATA_FIELD = /* GraphQL */ `\n {\n id\n title\n slug\n parentId\n type\n savedOn\n createdOn\n createdBy {\n id\n displayName\n }\n }\n`;\n\nexport const CREATE_FOLDER = gql`\n mutation CreateFolder($data: FolderCreateInput!) {\n aco {\n createFolder(data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const LIST_FOLDERS = gql`\n query ListFolders ($type: String!) {\n aco {\n listFolders(where: { type: $type }) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const GET_FOLDER = gql`\n query GetFolder ($id: ID!) {\n aco {\n getFolder(id: $id) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const UPDATE_FOLDER = gql`\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n aco {\n updateFolder(id: $id, data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const DELETE_FOLDER = gql`\n mutation DeleteFolder($id: ID!) {\n aco {\n deleteFolder(id: $id) {\n data\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,WAAW,GAAG,4EAMnB;AAED,IAAMC,UAAU,GAAG,qNAclB;AAEM,IAAMC,aAAa,OAAGC,mBAAG,+RAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMI,YAAY,OAAGD,mBAAG,6RAIRF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMK,UAAU,OAAGF,mBAAG,oQAINF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMM,aAAa,OAAGH,mBAAG,oTAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMO,aAAa,OAAGJ,mBAAG,uQAKRH,WAAW,CAIlC;AAAC"}
1
+ {"version":3,"names":["ERROR_FIELD","DATA_FIELD","CREATE_FOLDER","gql","LIST_FOLDERS","GET_FOLDER","UPDATE_FOLDER","DELETE_FOLDER"],"sources":["folders.gql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n code\n data\n message\n }\n`;\n\nconst DATA_FIELD = /* GraphQL */ `\n {\n id\n title\n slug\n parentId\n type\n savedOn\n createdOn\n createdBy {\n id\n displayName\n }\n }\n`;\n\nexport const CREATE_FOLDER = gql`\n mutation CreateFolder($data: FolderCreateInput!) {\n aco {\n createFolder(data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const LIST_FOLDERS = gql`\n query ListFolders ($type: String!, $limit: Int) {\n aco {\n listFolders(where: { type: $type }, limit: $limit) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const GET_FOLDER = gql`\n query GetFolder ($id: ID!) {\n aco {\n getFolder(id: $id) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const UPDATE_FOLDER = gql`\n mutation UpdateFolder($id: ID!, $data: FolderUpdateInput!) {\n aco {\n updateFolder(id: $id, data: $data) {\n data ${DATA_FIELD}\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n\nexport const DELETE_FOLDER = gql`\n mutation DeleteFolder($id: ID!) {\n aco {\n deleteFolder(id: $id) {\n data\n error ${ERROR_FIELD}\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,WAAW,GAAG,4EAMnB;AAED,IAAMC,UAAU,GAAG,qNAclB;AAEM,IAAMC,aAAa,OAAGC,mBAAG,+RAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMI,YAAY,OAAGD,mBAAG,yTAIRF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMK,UAAU,OAAGF,mBAAG,oQAINF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMM,aAAa,OAAGH,mBAAG,oTAITF,UAAU,EACTD,WAAW,CAIlC;AAAC;AAEK,IAAMO,aAAa,OAAGJ,mBAAG,uQAKRH,WAAW,CAIlC;AAAC"}
@@ -51,8 +51,9 @@ var useAcoList = function useAcoList(params) {
51
51
  return [];
52
52
  }
53
53
  if (!folderId || folderId === "ROOT") {
54
+ // checking for parentId value fixes a bug introduced by 5.36.0: accidentally we stored "ROOT" as parentId, instead of null
54
55
  return folders.filter(function (folder) {
55
- return !folder.parentId;
56
+ return !folder.parentId || folder.parentId === "ROOT";
56
57
  });
57
58
  } else {
58
59
  return folders.filter(function (folder) {
@@ -1 +1 @@
1
- {"version":3,"names":["useAcoList","params","type","folderId","initialWhere","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","useState","folders","setFolders","records","setRecords","listTitle","setListTitle","sort","setSort","originalFolders","foldersLoading","loading","listFolders","originalRecords","recordsLoading","listRecords","meta","getCurrentFolderList","currentFolderId","filter","folder","parentId","getCurrentRecordList","record","location","useEffect","useDeepCompareEffect","subFolders","sortTableItems","currentFolder","find","id","title","undefined","subRecords","useMemo","isListLoading","Boolean","INIT","LIST","isListLoadingMore","LIST_MORE","listItems","Object","values","length","validateOrGetDefaultDbSort"],"sources":["useAcoList.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from \"react\";\n\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\n\nimport {\n FolderItem,\n ListDbSort,\n ListSearchRecordsWhereQueryVariables,\n SearchRecordItem\n} from \"~/types\";\n\ninterface UseAcoListParams {\n type: string;\n folderId?: string;\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport const useAcoList = (params: UseAcoListParams) => {\n const { type, folderId, ...initialWhere } = params;\n\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useState<FolderItem[]>([]);\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useState<string | undefined>();\n const [sort, setSort] = useState<ListDbSort>();\n\n const { folders: originalFolders, loading: foldersLoading, listFolders } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n const getCurrentFolderList = (\n folders: FolderItem[],\n currentFolderId?: string\n ): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!folderId || folderId === \"ROOT\") {\n return folders.filter(folder => !folder.parentId);\n } else {\n return folders.filter(folder => folder.parentId === currentFolderId);\n }\n };\n\n const getCurrentRecordList = (\n records: SearchRecordItem[],\n currentFolderId?: string\n ): SearchRecordItem[] | [] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(record => record.location.folderId === currentFolderId);\n };\n\n /**\n * On first mount, call `listFolders` and `listRecords`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We also pass the current `sort` state to `listRecords` so we are able to fetch records according to the previous `sort` value set by the user.\n */\n useEffect(() => {\n if (!originalFolders[type]) {\n listFolders(type);\n }\n\n listRecords({ type, folderId, sort, ...initialWhere });\n }, [type, folderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we return the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we return the current folder name.\n */\n useDeepCompareEffect(() => {\n const subFolders = getCurrentFolderList(originalFolders[type], folderId);\n setFolders(sortTableItems(subFolders, sort));\n\n const currentFolder = originalFolders[type]?.find(folder => folder.id === folderId);\n setListTitle(currentFolder?.title || undefined);\n }, [{ ...originalFolders[type] }, folderId]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we return the `records` list filtered by the current `folderId`.\n */\n useDeepCompareEffect(() => {\n const subRecords = getCurrentRecordList(originalRecords[type], folderId);\n setRecords(subRecords);\n }, [{ ...originalRecords[type] }, folderId]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sort` value;\n */\n useEffect(() => {\n setFolders(folders => sortTableItems(folders, sort));\n }, [sort]);\n\n return useMemo(\n () => ({\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT ||\n foldersLoading.INIT ||\n recordsLoading.LIST ||\n foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta: meta[folderId || \"search\"] || {},\n listItems(params: {\n folderId?: string;\n after?: string;\n limit?: number;\n sort?: ListDbSort;\n search?: string;\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n AND?: ListSearchRecordsWhereQueryVariables[];\n OR?: ListSearchRecordsWhereQueryVariables[];\n }) {\n // We store `sort` param to local state to handle `folders` and future `records` sorting.\n if (params.sort && Object.values(params.sort).length > 0) {\n setSort(validateOrGetDefaultDbSort(params.sort));\n }\n\n return listRecords({ type, folderId, ...params });\n }\n }),\n [folders, records, foldersLoading, recordsLoading, meta]\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useAcoList","params","type","folderId","initialWhere","folderContext","useContext","FoldersContext","searchContext","SearchRecordsContext","Error","useState","folders","setFolders","records","setRecords","listTitle","setListTitle","sort","setSort","originalFolders","foldersLoading","loading","listFolders","originalRecords","recordsLoading","listRecords","meta","getCurrentFolderList","currentFolderId","filter","folder","parentId","getCurrentRecordList","record","location","useEffect","useDeepCompareEffect","subFolders","sortTableItems","currentFolder","find","id","title","undefined","subRecords","useMemo","isListLoading","Boolean","INIT","LIST","isListLoadingMore","LIST_MORE","listItems","Object","values","length","validateOrGetDefaultDbSort"],"sources":["useAcoList.ts"],"sourcesContent":["import { useContext, useEffect, useMemo, useState } from \"react\";\n\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nimport { FoldersContext } from \"~/contexts/folders\";\nimport { SearchRecordsContext } from \"~/contexts/records\";\nimport { sortTableItems, validateOrGetDefaultDbSort } from \"~/sorting\";\n\nimport {\n FolderItem,\n ListDbSort,\n ListSearchRecordsWhereQueryVariables,\n SearchRecordItem\n} from \"~/types\";\n\ninterface UseAcoListParams {\n type: string;\n folderId?: string;\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport const useAcoList = (params: UseAcoListParams) => {\n const { type, folderId, ...initialWhere } = params;\n\n const folderContext = useContext(FoldersContext);\n const searchContext = useContext(SearchRecordsContext);\n\n if (!folderContext || !searchContext) {\n throw new Error(\"useAcoList must be used within a ACOProvider\");\n }\n\n const [folders, setFolders] = useState<FolderItem[]>([]);\n const [records, setRecords] = useState<SearchRecordItem[]>([]);\n const [listTitle, setListTitle] = useState<string | undefined>();\n const [sort, setSort] = useState<ListDbSort>();\n\n const { folders: originalFolders, loading: foldersLoading, listFolders } = folderContext;\n const { records: originalRecords, loading: recordsLoading, listRecords, meta } = searchContext;\n\n const getCurrentFolderList = (\n folders: FolderItem[],\n currentFolderId?: string\n ): FolderItem[] | [] => {\n if (!folders) {\n return [];\n }\n if (!folderId || folderId === \"ROOT\") {\n // checking for parentId value fixes a bug introduced by 5.36.0: accidentally we stored \"ROOT\" as parentId, instead of null\n return folders.filter(folder => !folder.parentId || folder.parentId === \"ROOT\");\n } else {\n return folders.filter(folder => folder.parentId === currentFolderId);\n }\n };\n\n const getCurrentRecordList = (\n records: SearchRecordItem[],\n currentFolderId?: string\n ): SearchRecordItem[] | [] => {\n if (!records) {\n return [];\n }\n\n if (!currentFolderId) {\n return records;\n }\n\n return records.filter(record => record.location.folderId === currentFolderId);\n };\n\n /**\n * On first mount, call `listFolders` and `listRecords`, which will either issue a network request, or load folders and records from cache.\n * We don't need to store the result of it to any local state; that is managed by the context provider.\n *\n * IMPORTANT: we check if the folders[type] array exists: the hook can be used from multiple components and\n * fetch the outdated list from Apollo Cache. Since the state is managed locally, we fetch the folders only\n * at the first mount.\n *\n * We also pass the current `sort` state to `listRecords` so we are able to fetch records according to the previous `sort` value set by the user.\n */\n useEffect(() => {\n if (!originalFolders[type]) {\n listFolders(type);\n }\n\n listRecords({ type, folderId, sort, ...initialWhere });\n }, [type, folderId]);\n\n /**\n * Any time we receive a `folders` list update:\n * - we return the list filtered by the current `type` and parent `folderId`, sorted according to the current `sort` value;\n * - we return the current folder name.\n */\n useDeepCompareEffect(() => {\n const subFolders = getCurrentFolderList(originalFolders[type], folderId);\n setFolders(sortTableItems(subFolders, sort));\n\n const currentFolder = originalFolders[type]?.find(folder => folder.id === folderId);\n setListTitle(currentFolder?.title || undefined);\n }, [{ ...originalFolders[type] }, folderId]);\n\n /**\n * Any time we receive a `records` list or `folderId` update:\n * - we return the `records` list filtered by the current `folderId`.\n */\n useDeepCompareEffect(() => {\n const subRecords = getCurrentRecordList(originalRecords[type], folderId);\n setRecords(subRecords);\n }, [{ ...originalRecords[type] }, folderId]);\n\n /**\n * Any time we receive a new `sort` value:\n * - we sort the current `folders` list according to `sort` value;\n */\n useEffect(() => {\n setFolders(folders => sortTableItems(folders, sort));\n }, [sort]);\n\n return useMemo(\n () => ({\n folders,\n records,\n listTitle,\n isListLoading: Boolean(\n recordsLoading.INIT ||\n foldersLoading.INIT ||\n recordsLoading.LIST ||\n foldersLoading.LIST\n ),\n isListLoadingMore: Boolean(recordsLoading.LIST_MORE),\n meta: meta[folderId || \"search\"] || {},\n listItems(params: {\n folderId?: string;\n after?: string;\n limit?: number;\n sort?: ListDbSort;\n search?: string;\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n AND?: ListSearchRecordsWhereQueryVariables[];\n OR?: ListSearchRecordsWhereQueryVariables[];\n }) {\n // We store `sort` param to local state to handle `folders` and future `records` sorting.\n if (params.sort && Object.values(params.sort).length > 0) {\n setSort(validateOrGetDefaultDbSort(params.sort));\n }\n\n return listRecords({ type, folderId, ...params });\n }\n }),\n [folders, records, foldersLoading, recordsLoading, meta]\n );\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-aco",
3
- "version": "5.36.0",
3
+ "version": "5.36.1-beta.0",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,11 +17,11 @@
17
17
  "@material-design-icons/svg": "0.12.1",
18
18
  "@material-symbols/svg-400": "0.4.3",
19
19
  "@minoru/react-dnd-treeview": "3.2.1",
20
- "@webiny/app": "5.36.0",
21
- "@webiny/app-admin": "5.36.0",
22
- "@webiny/form": "5.36.0",
23
- "@webiny/ui": "5.36.0",
24
- "@webiny/validation": "5.36.0",
20
+ "@webiny/app": "5.36.1-beta.0",
21
+ "@webiny/app-admin": "5.36.1-beta.0",
22
+ "@webiny/form": "5.36.1-beta.0",
23
+ "@webiny/ui": "5.36.1-beta.0",
24
+ "@webiny/validation": "5.36.1-beta.0",
25
25
  "graphql": "15.8.0",
26
26
  "graphql-tag": "2.12.6",
27
27
  "lodash": "4.17.21",
@@ -39,8 +39,8 @@
39
39
  "@babel/preset-typescript": "7.18.6",
40
40
  "@babel/runtime": "7.20.13",
41
41
  "@types/react": "17.0.39",
42
- "@webiny/cli": "5.36.0",
43
- "@webiny/project-utils": "5.36.0",
42
+ "@webiny/cli": "5.36.1-beta.0",
43
+ "@webiny/project-utils": "5.36.1-beta.0",
44
44
  "apollo-client": "2.6.10",
45
45
  "apollo-link": "1.2.14",
46
46
  "rimraf": "3.0.2",
@@ -55,5 +55,5 @@
55
55
  "build": "yarn webiny run build",
56
56
  "watch": "yarn webiny run watch"
57
57
  },
58
- "gitHead": "5c435f437b9f0fe8b4dbf65528aed985ee8d0ff1"
58
+ "gitHead": "5c0feb9439367d0e20b2e3bfd4828d0e6e9d9ef0"
59
59
  }
package/types.d.ts CHANGED
@@ -69,6 +69,7 @@ export interface ListFoldersResponse {
69
69
  }
70
70
  export interface ListFoldersQueryVariables {
71
71
  type: string;
72
+ limit: number;
72
73
  }
73
74
  export interface GetFolderResponse {
74
75
  aco: {
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ListDbSortDirection","ListTableSortDirection"],"sources":["types.ts"],"sourcesContent":["export interface FolderItem {\n id: string;\n title: string;\n slug: string;\n type: string;\n parentId: string | null;\n createdOn: string;\n createdBy: {\n id: string;\n displayName: string;\n };\n savedOn: string;\n}\n\nexport type GenericSearchData = {\n [key: string]: any;\n};\n\nexport interface Location {\n folderId: string;\n}\n\nexport interface SearchRecordItem<TData extends GenericSearchData = GenericSearchData> {\n id: string;\n type: string;\n title: string;\n content: string;\n location: Location;\n data: TData;\n tags: string[];\n}\n\nexport type TagItem = {\n tag: string;\n};\n\nexport type Loading<T extends string> = { [P in T]?: boolean };\n\nexport type LoadingActions = \"INIT\" | \"LIST\" | \"LIST_MORE\" | \"GET\" | \"CREATE\" | \"UPDATE\" | \"DELETE\";\n\nexport interface Error {\n code: string;\n message: string;\n data: any;\n}\n\nexport type Meta<T> = Record<string, { [P in keyof T]: T[P] }>;\n\nexport enum ListDbSortDirection {\n ASC = \"ASC\",\n DESC = \"DESC\"\n}\n\nexport enum ListTableSortDirection {\n asc = \"asc\",\n desc = \"desc\"\n}\n\nexport type ListDbSort = Record<string, ListDbSortDirection>;\n\nexport interface ListTableSort {\n fields: string[];\n orders: ListTableSortDirection[];\n}\n\nexport interface ListMeta {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\nexport interface ListFoldersResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListFoldersQueryVariables {\n type: string;\n}\n\nexport interface GetFolderResponse {\n aco: {\n getFolder: {\n data: FolderItem | null;\n error: Error | null;\n };\n };\n}\n\nexport interface GetFolderQueryVariables {\n id: string;\n}\n\nexport interface UpdateFolderResponse {\n aco: {\n updateFolder: {\n data: FolderItem;\n error: Error | null;\n };\n };\n}\n\nexport interface UpdateFolderVariables {\n id: string;\n data: Partial<Omit<FolderItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">>;\n}\n\nexport interface CreateFolderResponse {\n aco: {\n createFolder: {\n data: FolderItem;\n error: Error | null;\n };\n };\n}\n\nexport interface CreateFolderVariables {\n data: Omit<FolderItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">;\n}\n\nexport interface DeleteFolderVariables {\n id: string;\n}\n\nexport interface DeleteFolderResponse {\n aco: {\n deleteFolder: {\n data: boolean;\n error: Error | null;\n };\n };\n}\n\nexport interface ListSearchRecordsResponse {\n search: {\n listRecords: {\n data: SearchRecordItem[] | null;\n meta: ListMeta | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListSearchRecordsWhereQueryVariables {\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListSearchRecordsQueryVariables {\n where: ListSearchRecordsWhereQueryVariables & {\n type: string;\n location?: Location;\n createdBy?: string;\n AND?: ListSearchRecordsWhereQueryVariables[];\n OR?: ListSearchRecordsWhereQueryVariables[];\n };\n search?: string;\n limit?: number;\n after?: string | null;\n sort?: ListDbSort;\n}\n\nexport interface ListTagsResponse {\n search: {\n listTags: {\n data: string[] | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListTagsWhereQueryVariables {\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListTagsQueryVariables {\n where: ListTagsWhereQueryVariables & {\n type: string;\n AND?: [ListTagsWhereQueryVariables];\n OR?: [ListTagsWhereQueryVariables];\n };\n}\n\nexport interface GetSearchRecordResponse {\n search: {\n getRecord: {\n data: SearchRecordItem | null;\n error: Error | null;\n };\n };\n}\n\nexport interface GetSearchRecordQueryVariables {\n id: string;\n}\n\nexport interface CreateSearchRecordResponse {\n search: {\n createRecord: {\n data: SearchRecordItem;\n error: Error | null;\n };\n };\n}\n\nexport interface CreateSearchRecordVariables {\n data: Omit<SearchRecordItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">;\n}\n\nexport interface UpdateSearchRecordResponse {\n search: {\n updateRecord: {\n data: SearchRecordItem;\n error: Error | null;\n };\n };\n}\n\nexport interface UpdateSearchRecordVariables {\n id: string;\n data: Pick<SearchRecordItem, \"location\" | \"title\" | \"content\" | \"data\">;\n}\n\nexport interface DeleteSearchRecordVariables {\n id: string;\n}\n\nexport interface DeleteSearchRecordResponse {\n search: {\n deleteRecord: {\n data: boolean;\n error: Error | null;\n };\n };\n}\n\nexport interface DndItemData extends FolderItem {\n isFocused?: boolean;\n}\n"],"mappings":";;;;;;IAgDYA,mBAAmB;AAAA;AAAA,WAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;AAAA,GAAnBA,mBAAmB,mCAAnBA,mBAAmB;AAAA,IAKnBC,sBAAsB;AAAA;AAAA,WAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;AAAA,GAAtBA,sBAAsB,sCAAtBA,sBAAsB"}
1
+ {"version":3,"names":["ListDbSortDirection","ListTableSortDirection"],"sources":["types.ts"],"sourcesContent":["export interface FolderItem {\n id: string;\n title: string;\n slug: string;\n type: string;\n parentId: string | null;\n createdOn: string;\n createdBy: {\n id: string;\n displayName: string;\n };\n savedOn: string;\n}\n\nexport type GenericSearchData = {\n [key: string]: any;\n};\n\nexport interface Location {\n folderId: string;\n}\n\nexport interface SearchRecordItem<TData extends GenericSearchData = GenericSearchData> {\n id: string;\n type: string;\n title: string;\n content: string;\n location: Location;\n data: TData;\n tags: string[];\n}\n\nexport type TagItem = {\n tag: string;\n};\n\nexport type Loading<T extends string> = { [P in T]?: boolean };\n\nexport type LoadingActions = \"INIT\" | \"LIST\" | \"LIST_MORE\" | \"GET\" | \"CREATE\" | \"UPDATE\" | \"DELETE\";\n\nexport interface Error {\n code: string;\n message: string;\n data: any;\n}\n\nexport type Meta<T> = Record<string, { [P in keyof T]: T[P] }>;\n\nexport enum ListDbSortDirection {\n ASC = \"ASC\",\n DESC = \"DESC\"\n}\n\nexport enum ListTableSortDirection {\n asc = \"asc\",\n desc = \"desc\"\n}\n\nexport type ListDbSort = Record<string, ListDbSortDirection>;\n\nexport interface ListTableSort {\n fields: string[];\n orders: ListTableSortDirection[];\n}\n\nexport interface ListMeta {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\nexport interface ListFoldersResponse {\n aco: {\n listFolders: {\n data: FolderItem[] | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListFoldersQueryVariables {\n type: string;\n limit: number;\n}\n\nexport interface GetFolderResponse {\n aco: {\n getFolder: {\n data: FolderItem | null;\n error: Error | null;\n };\n };\n}\n\nexport interface GetFolderQueryVariables {\n id: string;\n}\n\nexport interface UpdateFolderResponse {\n aco: {\n updateFolder: {\n data: FolderItem;\n error: Error | null;\n };\n };\n}\n\nexport interface UpdateFolderVariables {\n id: string;\n data: Partial<Omit<FolderItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">>;\n}\n\nexport interface CreateFolderResponse {\n aco: {\n createFolder: {\n data: FolderItem;\n error: Error | null;\n };\n };\n}\n\nexport interface CreateFolderVariables {\n data: Omit<FolderItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">;\n}\n\nexport interface DeleteFolderVariables {\n id: string;\n}\n\nexport interface DeleteFolderResponse {\n aco: {\n deleteFolder: {\n data: boolean;\n error: Error | null;\n };\n };\n}\n\nexport interface ListSearchRecordsResponse {\n search: {\n listRecords: {\n data: SearchRecordItem[] | null;\n meta: ListMeta | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListSearchRecordsWhereQueryVariables {\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListSearchRecordsQueryVariables {\n where: ListSearchRecordsWhereQueryVariables & {\n type: string;\n location?: Location;\n createdBy?: string;\n AND?: ListSearchRecordsWhereQueryVariables[];\n OR?: ListSearchRecordsWhereQueryVariables[];\n };\n search?: string;\n limit?: number;\n after?: string | null;\n sort?: ListDbSort;\n}\n\nexport interface ListTagsResponse {\n search: {\n listTags: {\n data: string[] | null;\n error: Error | null;\n };\n };\n}\n\nexport interface ListTagsWhereQueryVariables {\n tags_in?: string[];\n tags_startsWith?: string;\n tags_not_startsWith?: string;\n}\n\nexport interface ListTagsQueryVariables {\n where: ListTagsWhereQueryVariables & {\n type: string;\n AND?: [ListTagsWhereQueryVariables];\n OR?: [ListTagsWhereQueryVariables];\n };\n}\n\nexport interface GetSearchRecordResponse {\n search: {\n getRecord: {\n data: SearchRecordItem | null;\n error: Error | null;\n };\n };\n}\n\nexport interface GetSearchRecordQueryVariables {\n id: string;\n}\n\nexport interface CreateSearchRecordResponse {\n search: {\n createRecord: {\n data: SearchRecordItem;\n error: Error | null;\n };\n };\n}\n\nexport interface CreateSearchRecordVariables {\n data: Omit<SearchRecordItem, \"id\" | \"createdOn\" | \"createdBy\" | \"savedOn\">;\n}\n\nexport interface UpdateSearchRecordResponse {\n search: {\n updateRecord: {\n data: SearchRecordItem;\n error: Error | null;\n };\n };\n}\n\nexport interface UpdateSearchRecordVariables {\n id: string;\n data: Pick<SearchRecordItem, \"location\" | \"title\" | \"content\" | \"data\">;\n}\n\nexport interface DeleteSearchRecordVariables {\n id: string;\n}\n\nexport interface DeleteSearchRecordResponse {\n search: {\n deleteRecord: {\n data: boolean;\n error: Error | null;\n };\n };\n}\n\nexport interface DndItemData extends FolderItem {\n isFocused?: boolean;\n}\n"],"mappings":";;;;;;IAgDYA,mBAAmB;AAAA;AAAA,WAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;AAAA,GAAnBA,mBAAmB,mCAAnBA,mBAAmB;AAAA,IAKnBC,sBAAsB;AAAA;AAAA,WAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;AAAA,GAAtBA,sBAAsB,sCAAtBA,sBAAsB"}