@webiny/app-aco 5.43.0-beta.0 → 5.43.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/FolderTree/List/index.js +34 -27
- package/components/FolderTree/List/index.js.map +1 -1
- package/components/FolderTree/Node/index.d.ts +3 -1
- package/components/FolderTree/Node/index.js +46 -17
- package/components/FolderTree/Node/index.js.map +1 -1
- package/components/FolderTree/Node/styled.d.ts +5 -0
- package/components/FolderTree/Node/styled.js +38 -20
- package/components/FolderTree/Node/styled.js.map +1 -1
- package/components/FolderTree/index.js +11 -15
- package/components/FolderTree/index.js.map +1 -1
- package/contexts/acoList.js +14 -11
- package/contexts/acoList.js.map +1 -1
- package/contexts/navigateFolder.d.ts +1 -1
- package/contexts/navigateFolder.js +1 -1
- package/contexts/navigateFolder.js.map +1 -1
- package/features/folders/cache/ListCache.js +2 -1
- package/features/folders/cache/ListCache.js.map +1 -1
- package/features/folders/cache/LoadedCache.d.ts +13 -0
- package/features/folders/cache/LoadedCache.js +59 -0
- package/features/folders/cache/LoadedCache.js.map +1 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.d.ts +7 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.js +35 -0
- package/features/folders/cache/LoadedFoldersCacheFactory.js.map +1 -0
- package/features/folders/cache/index.d.ts +2 -0
- package/features/folders/cache/index.js +22 -0
- package/features/folders/cache/index.js.map +1 -1
- package/features/folders/getFolderHierarchy/FolderDto.d.ts +25 -0
- package/features/folders/getFolderHierarchy/FolderDto.js +50 -0
- package/features/folders/getFolderHierarchy/FolderDto.js.map +1 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.d.ts +20 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.js +7 -0
- package/features/folders/getFolderHierarchy/FolderGqlDto.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.d.ts +14 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.js +37 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.d.ts +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.js +207 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchy.test.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.d.ts +31 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js +82 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyGqlGateway.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.d.ts +12 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.js +48 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.d.ts +7 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js +26 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.d.ts +8 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.js +25 -0
- package/features/folders/getFolderHierarchy/GetFolderHierarchyUseCaseWithLoading.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.d.ts +12 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyGateway.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.d.ts +6 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyRepository.js.map +1 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.d.ts +6 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.js +7 -0
- package/features/folders/getFolderHierarchy/IGetFolderHierarchyUseCase.js.map +1 -0
- package/features/folders/getFolderHierarchy/index.d.ts +1 -0
- package/features/folders/getFolderHierarchy/index.js +18 -0
- package/features/folders/getFolderHierarchy/index.js.map +1 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.d.ts +6 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.js +65 -0
- package/features/folders/getFolderHierarchy/useGetFolderHierarchy.js.map +1 -0
- package/features/folders/index.d.ts +2 -0
- package/features/folders/index.js +22 -0
- package/features/folders/index.js.map +1 -1
- package/features/folders/listFolders/useListFolders.js +3 -8
- package/features/folders/listFolders/useListFolders.js.map +1 -1
- package/features/folders/listFoldersByParentIds/FolderDto.d.ts +25 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js +50 -0
- package/features/folders/listFoldersByParentIds/FolderDto.js.map +1 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.d.ts +20 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.js +7 -0
- package/features/folders/listFoldersByParentIds/FolderGqlDto.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsGateway.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsRepository.js.map +1 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.js +7 -0
- package/features/folders/listFoldersByParentIds/IListFoldersByParentIdsUseCase.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.d.ts +14 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.js +39 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js +248 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIds.test.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.d.ts +26 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js +86 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsGqlGateway.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.d.ts +11 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js +32 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepository.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.js +39 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsRepositoryWithLoadedCache.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.d.ts +8 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js +34 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCase.js.map +1 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.d.ts +10 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.js +37 -0
- package/features/folders/listFoldersByParentIds/ListFoldersByParentIdsUseCaseWithLoading.js.map +1 -0
- package/features/folders/listFoldersByParentIds/index.d.ts +1 -0
- package/features/folders/listFoldersByParentIds/index.js +18 -0
- package/features/folders/listFoldersByParentIds/index.js.map +1 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.d.ts +6 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js +65 -0
- package/features/folders/listFoldersByParentIds/useListFoldersByParentIds.js.map +1 -0
- package/handlers.d.ts +1 -1
- package/package.json +17 -18
- package/types.d.ts +10 -10
- package/types.js +12 -11
- package/types.js.map +1 -1
- package/components/FolderTree/Empty/index.d.ts +0 -2
- package/components/FolderTree/Empty/index.js +0 -21
- package/components/FolderTree/Empty/index.js.map +0 -1
- package/components/FolderTree/Empty/styled.d.ts +0 -5
- package/components/FolderTree/Empty/styled.js +0 -25
- package/components/FolderTree/Empty/styled.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CmsIdentity, FolderPermission } from "../../../types";
|
|
2
|
+
export interface FolderGqlDto {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
permissions: FolderPermission[];
|
|
7
|
+
hasNonInheritedPermissions: boolean;
|
|
8
|
+
canManagePermissions: boolean;
|
|
9
|
+
canManageStructure: boolean;
|
|
10
|
+
canManageContent: boolean;
|
|
11
|
+
type: string;
|
|
12
|
+
parentId: string | null;
|
|
13
|
+
createdBy: CmsIdentity;
|
|
14
|
+
createdOn: string;
|
|
15
|
+
savedBy: CmsIdentity;
|
|
16
|
+
savedOn: string;
|
|
17
|
+
modifiedBy: CmsIdentity | null;
|
|
18
|
+
modifiedOn: string | null;
|
|
19
|
+
extensions: Record<string, any>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["FolderGqlDto.ts"],"sourcesContent":["import { CmsIdentity, FolderPermission } from \"~/types\";\n\nexport interface FolderGqlDto {\n id: string;\n title: string;\n slug: string;\n permissions: FolderPermission[];\n hasNonInheritedPermissions: boolean;\n canManagePermissions: boolean;\n canManageStructure: boolean;\n canManageContent: boolean;\n type: string;\n parentId: string | null;\n createdBy: CmsIdentity;\n createdOn: string;\n savedBy: CmsIdentity;\n savedOn: string;\n modifiedBy: CmsIdentity | null;\n modifiedOn: string | null;\n extensions: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LoadingRepository } from "@webiny/app-utils";
|
|
2
|
+
import { IGetFolderHierarchyUseCase } from "./IGetFolderHierarchyUseCase";
|
|
3
|
+
import { IGetFolderHierarchyGateway } from "./IGetFolderHierarchyGateway";
|
|
4
|
+
import { ListCache } from "../cache";
|
|
5
|
+
import { Folder } from "../Folder";
|
|
6
|
+
interface IGetFolderHierarchyInstance {
|
|
7
|
+
useCase: IGetFolderHierarchyUseCase;
|
|
8
|
+
folders: ListCache<Folder>;
|
|
9
|
+
loading: LoadingRepository;
|
|
10
|
+
}
|
|
11
|
+
export declare class GetFolderHierarchy {
|
|
12
|
+
static getInstance(type: string, gateway: IGetFolderHierarchyGateway): IGetFolderHierarchyInstance;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GetFolderHierarchy = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _appUtils = require("@webiny/app-utils");
|
|
11
|
+
var _GetFolderHierarchyUseCaseWithLoading = require("./GetFolderHierarchyUseCaseWithLoading");
|
|
12
|
+
var _GetFolderHierarchyRepository = require("./GetFolderHierarchyRepository");
|
|
13
|
+
var _GetFolderHierarchyUseCase = require("./GetFolderHierarchyUseCase");
|
|
14
|
+
var _cache = require("../cache");
|
|
15
|
+
var GetFolderHierarchy = exports.GetFolderHierarchy = /*#__PURE__*/function () {
|
|
16
|
+
function GetFolderHierarchy() {
|
|
17
|
+
(0, _classCallCheck2.default)(this, GetFolderHierarchy);
|
|
18
|
+
}
|
|
19
|
+
return (0, _createClass2.default)(GetFolderHierarchy, null, [{
|
|
20
|
+
key: "getInstance",
|
|
21
|
+
value: function getInstance(type, gateway) {
|
|
22
|
+
var foldersCache = _cache.folderCacheFactory.getCache(type);
|
|
23
|
+
var loadedCache = _cache.loadedFolderCacheFactory.getCache(type);
|
|
24
|
+
var loadingRepository = _appUtils.loadingRepositoryFactory.getRepository(type);
|
|
25
|
+
var repository = new _GetFolderHierarchyRepository.GetFolderHierarchyRepository(foldersCache, loadedCache, gateway, type);
|
|
26
|
+
var useCase = new _GetFolderHierarchyUseCase.GetFolderHierarchyUseCase(repository);
|
|
27
|
+
var useCaseWithLoading = new _GetFolderHierarchyUseCaseWithLoading.GetFolderHierarchyUseCaseWithLoading(loadingRepository, useCase);
|
|
28
|
+
return {
|
|
29
|
+
useCase: useCaseWithLoading,
|
|
30
|
+
folders: foldersCache,
|
|
31
|
+
loading: loadingRepository
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}]);
|
|
35
|
+
}();
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=GetFolderHierarchy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_appUtils","require","_GetFolderHierarchyUseCaseWithLoading","_GetFolderHierarchyRepository","_GetFolderHierarchyUseCase","_cache","GetFolderHierarchy","exports","_classCallCheck2","default","_createClass2","key","value","getInstance","type","gateway","foldersCache","folderCacheFactory","getCache","loadedCache","loadedFolderCacheFactory","loadingRepository","loadingRepositoryFactory","getRepository","repository","GetFolderHierarchyRepository","useCase","GetFolderHierarchyUseCase","useCaseWithLoading","GetFolderHierarchyUseCaseWithLoading","folders","loading"],"sources":["GetFolderHierarchy.ts"],"sourcesContent":["import { LoadingRepository, loadingRepositoryFactory } from \"@webiny/app-utils\";\nimport { IGetFolderHierarchyUseCase } from \"./IGetFolderHierarchyUseCase\";\nimport { IGetFolderHierarchyGateway } from \"./IGetFolderHierarchyGateway\";\nimport { GetFolderHierarchyUseCaseWithLoading } from \"./GetFolderHierarchyUseCaseWithLoading\";\nimport { GetFolderHierarchyRepository } from \"./GetFolderHierarchyRepository\";\nimport { GetFolderHierarchyUseCase } from \"./GetFolderHierarchyUseCase\";\nimport { folderCacheFactory, ListCache, loadedFolderCacheFactory } from \"../cache\";\nimport { Folder } from \"../Folder\";\n\ninterface IGetFolderHierarchyInstance {\n useCase: IGetFolderHierarchyUseCase;\n folders: ListCache<Folder>;\n loading: LoadingRepository;\n}\n\nexport class GetFolderHierarchy {\n public static getInstance(\n type: string,\n gateway: IGetFolderHierarchyGateway\n ): IGetFolderHierarchyInstance {\n const foldersCache = folderCacheFactory.getCache(type);\n const loadedCache = loadedFolderCacheFactory.getCache(type);\n const loadingRepository = loadingRepositoryFactory.getRepository(type);\n const repository = new GetFolderHierarchyRepository(\n foldersCache,\n loadedCache,\n gateway,\n type\n );\n const useCase = new GetFolderHierarchyUseCase(repository);\n const useCaseWithLoading = new GetFolderHierarchyUseCaseWithLoading(\n loadingRepository,\n useCase\n );\n\n return {\n useCase: useCaseWithLoading,\n folders: foldersCache,\n loading: loadingRepository\n };\n }\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,qCAAA,GAAAD,OAAA;AACA,IAAAE,6BAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAmF,IAStEK,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA;EAAA,SAAAA,mBAAA;IAAA,IAAAE,gBAAA,CAAAC,OAAA,QAAAH,kBAAA;EAAA;EAAA,WAAAI,aAAA,CAAAD,OAAA,EAAAH,kBAAA;IAAAK,GAAA;IAAAC,KAAA,EAC3B,SAAcC,WAAWA,CACrBC,IAAY,EACZC,OAAmC,EACR;MAC3B,IAAMC,YAAY,GAAGC,yBAAkB,CAACC,QAAQ,CAACJ,IAAI,CAAC;MACtD,IAAMK,WAAW,GAAGC,+BAAwB,CAACF,QAAQ,CAACJ,IAAI,CAAC;MAC3D,IAAMO,iBAAiB,GAAGC,kCAAwB,CAACC,aAAa,CAACT,IAAI,CAAC;MACtE,IAAMU,UAAU,GAAG,IAAIC,0DAA4B,CAC/CT,YAAY,EACZG,WAAW,EACXJ,OAAO,EACPD,IACJ,CAAC;MACD,IAAMY,OAAO,GAAG,IAAIC,oDAAyB,CAACH,UAAU,CAAC;MACzD,IAAMI,kBAAkB,GAAG,IAAIC,0EAAoC,CAC/DR,iBAAiB,EACjBK,OACJ,CAAC;MAED,OAAO;QACHA,OAAO,EAAEE,kBAAkB;QAC3BE,OAAO,EAAEd,YAAY;QACrBe,OAAO,EAAEV;MACb,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _GetFolderHierarchy = require("./GetFolderHierarchy");
|
|
4
|
+
var _FoldersCacheFactory = require("../cache/FoldersCacheFactory");
|
|
5
|
+
var _LoadedFoldersCacheFactory = require("../cache/LoadedFoldersCacheFactory");
|
|
6
|
+
describe("GetFolderHierarchy", function () {
|
|
7
|
+
var type = "abc";
|
|
8
|
+
var foldersCache = _FoldersCacheFactory.folderCacheFactory.getCache(type);
|
|
9
|
+
var loadedFoldersCache = _LoadedFoldersCacheFactory.loadedFolderCacheFactory.getCache(type);
|
|
10
|
+
beforeEach(function () {
|
|
11
|
+
foldersCache.clear();
|
|
12
|
+
loadedFoldersCache.clear();
|
|
13
|
+
jest.resetAllMocks();
|
|
14
|
+
});
|
|
15
|
+
it("should update the list of folders in both `cache` and `loadedCache` when `parents` and `children` are returned by the gateway", async function () {
|
|
16
|
+
var gateway = {
|
|
17
|
+
execute: jest.fn().mockResolvedValue({
|
|
18
|
+
parents: [{
|
|
19
|
+
id: "folder-1",
|
|
20
|
+
title: "Folder 1",
|
|
21
|
+
slug: "folder-1",
|
|
22
|
+
parentId: null,
|
|
23
|
+
type: type
|
|
24
|
+
}, {
|
|
25
|
+
id: "folder-2",
|
|
26
|
+
title: "Folder 2",
|
|
27
|
+
slug: "folder-2",
|
|
28
|
+
parentId: "folder-1",
|
|
29
|
+
type: type
|
|
30
|
+
}, {
|
|
31
|
+
id: "folder-3",
|
|
32
|
+
title: "Folder 3",
|
|
33
|
+
slug: "folder-3",
|
|
34
|
+
parentId: "folder-2",
|
|
35
|
+
type: type
|
|
36
|
+
}],
|
|
37
|
+
siblings: [{
|
|
38
|
+
id: "folder-4",
|
|
39
|
+
title: "Folder 4",
|
|
40
|
+
slug: "folder-4",
|
|
41
|
+
parentId: "folder-3",
|
|
42
|
+
type: type
|
|
43
|
+
}, {
|
|
44
|
+
id: "folder-5",
|
|
45
|
+
title: "Folder 5",
|
|
46
|
+
slug: "folder-5",
|
|
47
|
+
parentId: "folder-3",
|
|
48
|
+
type: type
|
|
49
|
+
}]
|
|
50
|
+
})
|
|
51
|
+
};
|
|
52
|
+
var getFolderHierarchy = _GetFolderHierarchy.GetFolderHierarchy.getInstance(type, gateway);
|
|
53
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
54
|
+
expect(loadedFoldersCache.hasItems()).toBeFalse();
|
|
55
|
+
await getFolderHierarchy.useCase.execute({
|
|
56
|
+
id: "folder-0"
|
|
57
|
+
});
|
|
58
|
+
expect(gateway.execute).toHaveBeenCalledTimes(1);
|
|
59
|
+
expect(gateway.execute).toHaveBeenCalledWith({
|
|
60
|
+
type: type,
|
|
61
|
+
id: "folder-0"
|
|
62
|
+
});
|
|
63
|
+
expect(foldersCache.hasItems()).toBeTrue();
|
|
64
|
+
expect(foldersCache.count()).toEqual(5);
|
|
65
|
+
// We are storing only the parent folders id in the loadedFoldersCache
|
|
66
|
+
expect(loadedFoldersCache.count()).toEqual(3);
|
|
67
|
+
expect(loadedFoldersCache.getItems()).toEqual(["folder-1", "folder-2", "folder-3"]);
|
|
68
|
+
|
|
69
|
+
// This call should be idempotent: the number of elements in cache should not change
|
|
70
|
+
await getFolderHierarchy.useCase.execute({
|
|
71
|
+
id: "folder-0"
|
|
72
|
+
});
|
|
73
|
+
expect(foldersCache.count()).toEqual(5);
|
|
74
|
+
expect(loadedFoldersCache.count()).toEqual(3);
|
|
75
|
+
});
|
|
76
|
+
it("should only update the list of folders in `cache` when `children` are returned by the gateway", async function () {
|
|
77
|
+
var gateway = {
|
|
78
|
+
execute: jest.fn().mockResolvedValue({
|
|
79
|
+
parents: [],
|
|
80
|
+
siblings: [{
|
|
81
|
+
id: "folder-1",
|
|
82
|
+
title: "Folder 1",
|
|
83
|
+
slug: "folder-1",
|
|
84
|
+
parentId: null,
|
|
85
|
+
type: type
|
|
86
|
+
}, {
|
|
87
|
+
id: "folder-2",
|
|
88
|
+
title: "Folder 2",
|
|
89
|
+
slug: "folder-2",
|
|
90
|
+
parentId: null,
|
|
91
|
+
type: type
|
|
92
|
+
}]
|
|
93
|
+
})
|
|
94
|
+
};
|
|
95
|
+
var getFolderHierarchy = _GetFolderHierarchy.GetFolderHierarchy.getInstance(type, gateway);
|
|
96
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
97
|
+
expect(loadedFoldersCache.hasItems()).toBeFalse();
|
|
98
|
+
await getFolderHierarchy.useCase.execute({
|
|
99
|
+
id: "folder-0"
|
|
100
|
+
});
|
|
101
|
+
expect(gateway.execute).toHaveBeenCalledTimes(1);
|
|
102
|
+
expect(gateway.execute).toHaveBeenCalledWith({
|
|
103
|
+
type: type,
|
|
104
|
+
id: "folder-0"
|
|
105
|
+
});
|
|
106
|
+
expect(foldersCache.hasItems()).toBeTrue();
|
|
107
|
+
expect(foldersCache.count()).toEqual(2);
|
|
108
|
+
// We are NOT storing any folder loadedFoldersCache
|
|
109
|
+
expect(loadedFoldersCache.hasItems()).toBeFalse();
|
|
110
|
+
});
|
|
111
|
+
it("should handle gateway errors gracefully", async function () {
|
|
112
|
+
var errorGateway = {
|
|
113
|
+
execute: jest.fn().mockRejectedValue(new Error("Gateway error"))
|
|
114
|
+
};
|
|
115
|
+
var getFolderHierarchy = _GetFolderHierarchy.GetFolderHierarchy.getInstance(type, errorGateway);
|
|
116
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
117
|
+
await expect(getFolderHierarchy.useCase.execute({
|
|
118
|
+
id: "folder-0"
|
|
119
|
+
})).rejects.toThrow("Gateway error");
|
|
120
|
+
expect(errorGateway.execute).toHaveBeenCalledTimes(1);
|
|
121
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
122
|
+
});
|
|
123
|
+
it("should clear cache when type changes", async function () {
|
|
124
|
+
var gatewayAbc = {
|
|
125
|
+
execute: jest.fn().mockResolvedValue({
|
|
126
|
+
parents: [{
|
|
127
|
+
id: "folder-1",
|
|
128
|
+
title: "Folder 1",
|
|
129
|
+
slug: "folder-1",
|
|
130
|
+
parentId: null,
|
|
131
|
+
type: type
|
|
132
|
+
}, {
|
|
133
|
+
id: "folder-2",
|
|
134
|
+
title: "Folder 2",
|
|
135
|
+
slug: "folder-2",
|
|
136
|
+
parentId: "folder-1",
|
|
137
|
+
type: type
|
|
138
|
+
}, {
|
|
139
|
+
id: "folder-3",
|
|
140
|
+
title: "Folder 3",
|
|
141
|
+
slug: "folder-3",
|
|
142
|
+
parentId: "folder-2",
|
|
143
|
+
type: type
|
|
144
|
+
}],
|
|
145
|
+
siblings: [{
|
|
146
|
+
id: "folder-4",
|
|
147
|
+
title: "Folder 4",
|
|
148
|
+
slug: "folder-4",
|
|
149
|
+
parentId: "folder-3",
|
|
150
|
+
type: type
|
|
151
|
+
}, {
|
|
152
|
+
id: "folder-5",
|
|
153
|
+
title: "Folder 5",
|
|
154
|
+
slug: "folder-5",
|
|
155
|
+
parentId: "folder-3",
|
|
156
|
+
type: type
|
|
157
|
+
}]
|
|
158
|
+
})
|
|
159
|
+
};
|
|
160
|
+
var newType = "xyz";
|
|
161
|
+
var gatewayXyz = {
|
|
162
|
+
execute: jest.fn().mockResolvedValue({
|
|
163
|
+
parents: [{
|
|
164
|
+
id: "folder-1",
|
|
165
|
+
title: "Folder 1",
|
|
166
|
+
slug: "folder-1",
|
|
167
|
+
parentId: null,
|
|
168
|
+
type: type
|
|
169
|
+
}, {
|
|
170
|
+
id: "folder-2",
|
|
171
|
+
title: "Folder 2",
|
|
172
|
+
slug: "folder-2",
|
|
173
|
+
parentId: "folder-1",
|
|
174
|
+
type: type
|
|
175
|
+
}],
|
|
176
|
+
siblings: [{
|
|
177
|
+
id: "folder-3",
|
|
178
|
+
title: "Folder 3",
|
|
179
|
+
slug: "folder-4",
|
|
180
|
+
parentId: "folder-2",
|
|
181
|
+
type: type
|
|
182
|
+
}]
|
|
183
|
+
})
|
|
184
|
+
};
|
|
185
|
+
var getFolderHierarchyAbc = _GetFolderHierarchy.GetFolderHierarchy.getInstance(type, gatewayAbc);
|
|
186
|
+
expect(foldersCache.hasItems()).toBeFalse();
|
|
187
|
+
await getFolderHierarchyAbc.useCase.execute({
|
|
188
|
+
id: "folder-0"
|
|
189
|
+
});
|
|
190
|
+
expect(gatewayAbc.execute).toHaveBeenCalledTimes(1);
|
|
191
|
+
expect(foldersCache.count()).toEqual(5);
|
|
192
|
+
expect(loadedFoldersCache.count()).toEqual(3);
|
|
193
|
+
var foldersCacheXyz = _FoldersCacheFactory.folderCacheFactory.getCache(newType);
|
|
194
|
+
var loadedFoldersCacheXyz = _LoadedFoldersCacheFactory.loadedFolderCacheFactory.getCache(newType);
|
|
195
|
+
var getFolderHierarchyXyz = _GetFolderHierarchy.GetFolderHierarchy.getInstance(newType, gatewayXyz);
|
|
196
|
+
expect(foldersCacheXyz.hasItems()).toBeFalse();
|
|
197
|
+
expect(loadedFoldersCacheXyz.hasItems()).toBeFalse();
|
|
198
|
+
await getFolderHierarchyXyz.useCase.execute({
|
|
199
|
+
id: "folder-0"
|
|
200
|
+
});
|
|
201
|
+
expect(gatewayXyz.execute).toHaveBeenCalledTimes(1);
|
|
202
|
+
expect(foldersCacheXyz.count()).toEqual(3);
|
|
203
|
+
expect(loadedFoldersCacheXyz.count()).toEqual(2);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
//# sourceMappingURL=GetFolderHierarchy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_GetFolderHierarchy","require","_FoldersCacheFactory","_LoadedFoldersCacheFactory","describe","type","foldersCache","folderCacheFactory","getCache","loadedFoldersCache","loadedFolderCacheFactory","beforeEach","clear","jest","resetAllMocks","it","gateway","execute","fn","mockResolvedValue","parents","id","title","slug","parentId","siblings","getFolderHierarchy","GetFolderHierarchy","getInstance","expect","hasItems","toBeFalse","useCase","toHaveBeenCalledTimes","toHaveBeenCalledWith","toBeTrue","count","toEqual","getItems","errorGateway","mockRejectedValue","Error","rejects","toThrow","gatewayAbc","newType","gatewayXyz","getFolderHierarchyAbc","foldersCacheXyz","loadedFoldersCacheXyz","getFolderHierarchyXyz"],"sources":["GetFolderHierarchy.test.ts"],"sourcesContent":["import { GetFolderHierarchy } from \"./GetFolderHierarchy\";\nimport { folderCacheFactory } from \"../cache/FoldersCacheFactory\";\nimport { loadedFolderCacheFactory } from \"../cache/LoadedFoldersCacheFactory\";\n\ndescribe(\"GetFolderHierarchy\", () => {\n const type = \"abc\";\n\n const foldersCache = folderCacheFactory.getCache(type);\n const loadedFoldersCache = loadedFolderCacheFactory.getCache(type);\n\n beforeEach(() => {\n foldersCache.clear();\n loadedFoldersCache.clear();\n jest.resetAllMocks();\n });\n\n it(\"should update the list of folders in both `cache` and `loadedCache` when `parents` and `children` are returned by the gateway\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n parents: [\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: \"folder-1\",\n type\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: \"folder-2\",\n type\n }\n ],\n siblings: [\n {\n id: \"folder-4\",\n title: \"Folder 4\",\n slug: \"folder-4\",\n parentId: \"folder-3\",\n type\n },\n {\n id: \"folder-5\",\n title: \"Folder 5\",\n slug: \"folder-5\",\n parentId: \"folder-3\",\n type\n }\n ]\n })\n };\n\n const getFolderHierarchy = GetFolderHierarchy.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n expect(loadedFoldersCache.hasItems()).toBeFalse();\n await getFolderHierarchy.useCase.execute({ id: \"folder-0\" });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(gateway.execute).toHaveBeenCalledWith({ type, id: \"folder-0\" });\n\n expect(foldersCache.hasItems()).toBeTrue();\n expect(foldersCache.count()).toEqual(5);\n // We are storing only the parent folders id in the loadedFoldersCache\n expect(loadedFoldersCache.count()).toEqual(3);\n expect(loadedFoldersCache.getItems()).toEqual([\"folder-1\", \"folder-2\", \"folder-3\"]);\n\n // This call should be idempotent: the number of elements in cache should not change\n await getFolderHierarchy.useCase.execute({ id: \"folder-0\" });\n expect(foldersCache.count()).toEqual(5);\n expect(loadedFoldersCache.count()).toEqual(3);\n });\n\n it(\"should only update the list of folders in `cache` when `children` are returned by the gateway\", async () => {\n const gateway = {\n execute: jest.fn().mockResolvedValue({\n parents: [],\n siblings: [\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: null,\n type\n }\n ]\n })\n };\n\n const getFolderHierarchy = GetFolderHierarchy.getInstance(type, gateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n expect(loadedFoldersCache.hasItems()).toBeFalse();\n await getFolderHierarchy.useCase.execute({ id: \"folder-0\" });\n\n expect(gateway.execute).toHaveBeenCalledTimes(1);\n expect(gateway.execute).toHaveBeenCalledWith({ type, id: \"folder-0\" });\n\n expect(foldersCache.hasItems()).toBeTrue();\n expect(foldersCache.count()).toEqual(2);\n // We are NOT storing any folder loadedFoldersCache\n expect(loadedFoldersCache.hasItems()).toBeFalse();\n });\n\n it(\"should handle gateway errors gracefully\", async () => {\n const errorGateway = {\n execute: jest.fn().mockRejectedValue(new Error(\"Gateway error\"))\n };\n const getFolderHierarchy = GetFolderHierarchy.getInstance(type, errorGateway);\n\n expect(foldersCache.hasItems()).toBeFalse();\n\n await expect(getFolderHierarchy.useCase.execute({ id: \"folder-0\" })).rejects.toThrow(\n \"Gateway error\"\n );\n\n expect(errorGateway.execute).toHaveBeenCalledTimes(1);\n expect(foldersCache.hasItems()).toBeFalse();\n });\n\n it(\"should clear cache when type changes\", async () => {\n const gatewayAbc = {\n execute: jest.fn().mockResolvedValue({\n parents: [\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: \"folder-1\",\n type\n },\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-3\",\n parentId: \"folder-2\",\n type\n }\n ],\n siblings: [\n {\n id: \"folder-4\",\n title: \"Folder 4\",\n slug: \"folder-4\",\n parentId: \"folder-3\",\n type\n },\n {\n id: \"folder-5\",\n title: \"Folder 5\",\n slug: \"folder-5\",\n parentId: \"folder-3\",\n type\n }\n ]\n })\n };\n\n const newType = \"xyz\";\n const gatewayXyz = {\n execute: jest.fn().mockResolvedValue({\n parents: [\n {\n id: \"folder-1\",\n title: \"Folder 1\",\n slug: \"folder-1\",\n parentId: null,\n type\n },\n {\n id: \"folder-2\",\n title: \"Folder 2\",\n slug: \"folder-2\",\n parentId: \"folder-1\",\n type\n }\n ],\n siblings: [\n {\n id: \"folder-3\",\n title: \"Folder 3\",\n slug: \"folder-4\",\n parentId: \"folder-2\",\n type\n }\n ]\n })\n };\n\n const getFolderHierarchyAbc = GetFolderHierarchy.getInstance(type, gatewayAbc);\n\n expect(foldersCache.hasItems()).toBeFalse();\n\n await getFolderHierarchyAbc.useCase.execute({ id: \"folder-0\" });\n\n expect(gatewayAbc.execute).toHaveBeenCalledTimes(1);\n expect(foldersCache.count()).toEqual(5);\n expect(loadedFoldersCache.count()).toEqual(3);\n\n const foldersCacheXyz = folderCacheFactory.getCache(newType);\n const loadedFoldersCacheXyz = loadedFolderCacheFactory.getCache(newType);\n const getFolderHierarchyXyz = GetFolderHierarchy.getInstance(newType, gatewayXyz);\n\n expect(foldersCacheXyz.hasItems()).toBeFalse();\n expect(loadedFoldersCacheXyz.hasItems()).toBeFalse();\n\n await getFolderHierarchyXyz.useCase.execute({ id: \"folder-0\" });\n\n expect(gatewayXyz.execute).toHaveBeenCalledTimes(1);\n expect(foldersCacheXyz.count()).toEqual(3);\n expect(loadedFoldersCacheXyz.count()).toEqual(2);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import ApolloClient from "apollo-client";
|
|
2
|
+
import { GetFolderHierarchyGatewayParams, IGetFolderHierarchyGateway } from "./IGetFolderHierarchyGateway";
|
|
3
|
+
import { AcoError, FolderItem } from "../../../types";
|
|
4
|
+
interface GetFolderHierarchyResponseData {
|
|
5
|
+
parents: FolderItem[];
|
|
6
|
+
siblings: FolderItem[];
|
|
7
|
+
}
|
|
8
|
+
export interface GetFolderHierarchyResponse {
|
|
9
|
+
aco: {
|
|
10
|
+
getFolderHierarchy: {
|
|
11
|
+
data: GetFolderHierarchyResponseData | null;
|
|
12
|
+
error: AcoError | null;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface GetFolderHierarchyQueryVariables {
|
|
17
|
+
type: string;
|
|
18
|
+
id: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const GET_FOLDER_HIERARCHY: (FOLDER_FIELDS: string) => import("graphql").DocumentNode;
|
|
21
|
+
export declare class GetFolderHierarchyGqlGateway implements IGetFolderHierarchyGateway {
|
|
22
|
+
private client;
|
|
23
|
+
private modelFields;
|
|
24
|
+
constructor(client: ApolloClient<any>, modelFields: string);
|
|
25
|
+
execute(params: GetFolderHierarchyGatewayParams): Promise<{
|
|
26
|
+
parents: FolderItem[];
|
|
27
|
+
siblings: FolderItem[];
|
|
28
|
+
}>;
|
|
29
|
+
private getRootFolder;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GetFolderHierarchyGqlGateway = exports.GET_FOLDER_HIERARCHY = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
14
|
+
var _constants = require("../../../constants");
|
|
15
|
+
var _templateObject;
|
|
16
|
+
var GET_FOLDER_HIERARCHY = exports.GET_FOLDER_HIERARCHY = function GET_FOLDER_HIERARCHY(FOLDER_FIELDS) {
|
|
17
|
+
return (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query GetFolderHierarchy($type: String!, $id: ID!) {\n aco {\n getFolderHierarchy(type: $type, id: $id) {\n data {\n parents ", "\n siblings ", "\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n"])), FOLDER_FIELDS, FOLDER_FIELDS);
|
|
18
|
+
};
|
|
19
|
+
var GetFolderHierarchyGqlGateway = exports.GetFolderHierarchyGqlGateway = /*#__PURE__*/function () {
|
|
20
|
+
function GetFolderHierarchyGqlGateway(client, modelFields) {
|
|
21
|
+
(0, _classCallCheck2.default)(this, GetFolderHierarchyGqlGateway);
|
|
22
|
+
this.client = client;
|
|
23
|
+
this.modelFields = modelFields;
|
|
24
|
+
}
|
|
25
|
+
return (0, _createClass2.default)(GetFolderHierarchyGqlGateway, [{
|
|
26
|
+
key: "execute",
|
|
27
|
+
value: async function execute(params) {
|
|
28
|
+
var _await$this$client$qu = await this.client.query({
|
|
29
|
+
query: GET_FOLDER_HIERARCHY(this.modelFields),
|
|
30
|
+
variables: (0, _objectSpread2.default)({}, params),
|
|
31
|
+
fetchPolicy: "network-only"
|
|
32
|
+
}),
|
|
33
|
+
response = _await$this$client$qu.data;
|
|
34
|
+
if (!response) {
|
|
35
|
+
throw new Error("Network error while listing folder hierarchy for the provided type/id: ".concat(params.type, "/").concat(params.id, "."));
|
|
36
|
+
}
|
|
37
|
+
var _response$aco$getFold = response.aco.getFolderHierarchy,
|
|
38
|
+
data = _response$aco$getFold.data,
|
|
39
|
+
error = _response$aco$getFold.error;
|
|
40
|
+
if (!data) {
|
|
41
|
+
throw new Error(error?.message || "Could not fetch folder hierarchy for the provided type/id: ".concat(params.type, "/").concat(params.id, "."));
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
parents: [this.getRootFolder()].concat((0, _toConsumableArray2.default)(data.parents)),
|
|
45
|
+
siblings: data.siblings
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
key: "getRootFolder",
|
|
50
|
+
value: function getRootFolder() {
|
|
51
|
+
return {
|
|
52
|
+
id: _constants.ROOT_FOLDER,
|
|
53
|
+
title: "Home",
|
|
54
|
+
permissions: [],
|
|
55
|
+
parentId: "0",
|
|
56
|
+
slug: "",
|
|
57
|
+
createdOn: "",
|
|
58
|
+
createdBy: {
|
|
59
|
+
id: "",
|
|
60
|
+
displayName: "",
|
|
61
|
+
type: ""
|
|
62
|
+
},
|
|
63
|
+
hasNonInheritedPermissions: false,
|
|
64
|
+
canManagePermissions: true,
|
|
65
|
+
canManageStructure: true,
|
|
66
|
+
canManageContent: true,
|
|
67
|
+
savedOn: "",
|
|
68
|
+
savedBy: {
|
|
69
|
+
id: "",
|
|
70
|
+
displayName: "",
|
|
71
|
+
type: ""
|
|
72
|
+
},
|
|
73
|
+
modifiedOn: null,
|
|
74
|
+
modifiedBy: null,
|
|
75
|
+
type: "$ROOT",
|
|
76
|
+
extensions: {}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}]);
|
|
80
|
+
}();
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=GetFolderHierarchyGqlGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_constants","_templateObject","GET_FOLDER_HIERARCHY","exports","FOLDER_FIELDS","gql","_taggedTemplateLiteral2","default","GetFolderHierarchyGqlGateway","client","modelFields","_classCallCheck2","_createClass2","key","value","execute","params","_await$this$client$qu","query","variables","_objectSpread2","fetchPolicy","response","data","Error","concat","type","id","_response$aco$getFold","aco","getFolderHierarchy","error","message","parents","getRootFolder","_toConsumableArray2","siblings","ROOT_FOLDER","title","permissions","parentId","slug","createdOn","createdBy","displayName","hasNonInheritedPermissions","canManagePermissions","canManageStructure","canManageContent","savedOn","savedBy","modifiedOn","modifiedBy","extensions"],"sources":["GetFolderHierarchyGqlGateway.ts"],"sourcesContent":["import ApolloClient from \"apollo-client\";\nimport gql from \"graphql-tag\";\nimport {\n GetFolderHierarchyGatewayParams,\n IGetFolderHierarchyGateway\n} from \"./IGetFolderHierarchyGateway\";\nimport { AcoError, FolderItem } from \"~/types\";\nimport { ROOT_FOLDER } from \"~/constants\";\n\ninterface GetFolderHierarchyResponseData {\n parents: FolderItem[];\n siblings: FolderItem[];\n}\n\nexport interface GetFolderHierarchyResponse {\n aco: {\n getFolderHierarchy: {\n data: GetFolderHierarchyResponseData | null;\n error: AcoError | null;\n };\n };\n}\n\nexport interface GetFolderHierarchyQueryVariables {\n type: string;\n id: string;\n}\n\nexport const GET_FOLDER_HIERARCHY = (FOLDER_FIELDS: string) => gql`\n query GetFolderHierarchy($type: String!, $id: ID!) {\n aco {\n getFolderHierarchy(type: $type, id: $id) {\n data {\n parents ${FOLDER_FIELDS}\n siblings ${FOLDER_FIELDS}\n }\n error {\n code\n data\n message\n }\n }\n }\n }\n`;\n\nexport class GetFolderHierarchyGqlGateway implements IGetFolderHierarchyGateway {\n private client: ApolloClient<any>;\n private modelFields: string;\n\n constructor(client: ApolloClient<any>, modelFields: string) {\n this.client = client;\n this.modelFields = modelFields;\n }\n\n async execute(params: GetFolderHierarchyGatewayParams) {\n const { data: response } = await this.client.query<\n GetFolderHierarchyResponse,\n GetFolderHierarchyQueryVariables\n >({\n query: GET_FOLDER_HIERARCHY(this.modelFields),\n variables: {\n ...params\n },\n fetchPolicy: \"network-only\"\n });\n\n if (!response) {\n throw new Error(\n `Network error while listing folder hierarchy for the provided type/id: ${params.type}/${params.id}.`\n );\n }\n\n const { data, error } = response.aco.getFolderHierarchy;\n\n if (!data) {\n throw new Error(\n error?.message ||\n `Could not fetch folder hierarchy for the provided type/id: ${params.type}/${params.id}.`\n );\n }\n\n return {\n parents: [this.getRootFolder(), ...data.parents],\n siblings: data.siblings\n };\n }\n\n private getRootFolder(): FolderItem {\n return {\n id: ROOT_FOLDER,\n title: \"Home\",\n permissions: [],\n parentId: \"0\",\n slug: \"\",\n createdOn: \"\",\n createdBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n hasNonInheritedPermissions: false,\n canManagePermissions: true,\n canManageStructure: true,\n canManageContent: true,\n savedOn: \"\",\n savedBy: {\n id: \"\",\n displayName: \"\",\n type: \"\"\n },\n modifiedOn: null,\n modifiedBy: null,\n type: \"$ROOT\",\n extensions: {}\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAA0C,IAAAE,eAAA;AAqBnC,IAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAvBA,oBAAoBA,CAAIE,aAAqB;EAAA,WAAKC,mBAAG,EAAAJ,eAAA,KAAAA,eAAA,OAAAK,uBAAA,CAAAC,OAAA,2ZAKpCH,aAAa,EACZA,aAAa;AAAA,CAU3C;AAAC,IAEWI,4BAA4B,GAAAL,OAAA,CAAAK,4BAAA;EAIrC,SAAAA,6BAAYC,MAAyB,EAAEC,WAAmB,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAC,4BAAA;IACxD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAClC;EAAC,WAAAE,aAAA,CAAAL,OAAA,EAAAC,4BAAA;IAAAK,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAACC,MAAuC,EAAE;MACnD,IAAAC,qBAAA,GAA2B,MAAM,IAAI,CAACR,MAAM,CAACS,KAAK,CAGhD;UACEA,KAAK,EAAEhB,oBAAoB,CAAC,IAAI,CAACQ,WAAW,CAAC;UAC7CS,SAAS,MAAAC,cAAA,CAAAb,OAAA,MACFS,MAAM,CACZ;UACDK,WAAW,EAAE;QACjB,CAAC,CAAC;QATYC,QAAQ,GAAAL,qBAAA,CAAdM,IAAI;MAWZ,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,2EAAAC,MAAA,CAC+DT,MAAM,CAACU,IAAI,OAAAD,MAAA,CAAIT,MAAM,CAACW,EAAE,MACtG,CAAC;MACL;MAEA,IAAAC,qBAAA,GAAwBN,QAAQ,CAACO,GAAG,CAACC,kBAAkB;QAA/CP,IAAI,GAAAK,qBAAA,CAAJL,IAAI;QAAEQ,KAAK,GAAAH,qBAAA,CAALG,KAAK;MAEnB,IAAI,CAACR,IAAI,EAAE;QACP,MAAM,IAAIC,KAAK,CACXO,KAAK,EAAEC,OAAO,kEAAAP,MAAA,CACoDT,MAAM,CAACU,IAAI,OAAAD,MAAA,CAAIT,MAAM,CAACW,EAAE,MAC9F,CAAC;MACL;MAEA,OAAO;QACHM,OAAO,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC,EAAAT,MAAA,KAAAU,mBAAA,CAAA5B,OAAA,EAAKgB,IAAI,CAACU,OAAO,EAAC;QAChDG,QAAQ,EAAEb,IAAI,CAACa;MACnB,CAAC;IACL;EAAC;IAAAvB,GAAA;IAAAC,KAAA,EAED,SAAQoB,aAAaA,CAAA,EAAe;MAChC,OAAO;QACHP,EAAE,EAAEU,sBAAW;QACfC,KAAK,EAAE,MAAM;QACbC,WAAW,EAAE,EAAE;QACfC,QAAQ,EAAE,GAAG;QACbC,IAAI,EAAE,EAAE;QACRC,SAAS,EAAE,EAAE;QACbC,SAAS,EAAE;UACPhB,EAAE,EAAE,EAAE;UACNiB,WAAW,EAAE,EAAE;UACflB,IAAI,EAAE;QACV,CAAC;QACDmB,0BAA0B,EAAE,KAAK;QACjCC,oBAAoB,EAAE,IAAI;QAC1BC,kBAAkB,EAAE,IAAI;QACxBC,gBAAgB,EAAE,IAAI;QACtBC,OAAO,EAAE,EAAE;QACXC,OAAO,EAAE;UACLvB,EAAE,EAAE,EAAE;UACNiB,WAAW,EAAE,EAAE;UACflB,IAAI,EAAE;QACV,CAAC;QACDyB,UAAU,EAAE,IAAI;QAChBC,UAAU,EAAE,IAAI;QAChB1B,IAAI,EAAE,OAAO;QACb2B,UAAU,EAAE,CAAC;MACjB,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ListCache, LoadedCache } from "../cache";
|
|
2
|
+
import { Folder } from "../Folder";
|
|
3
|
+
import { GetFolderHierarchyRepositoryParams, IGetFolderHierarchyRepository } from "./IGetFolderHierarchyRepository";
|
|
4
|
+
import { IGetFolderHierarchyGateway } from "./IGetFolderHierarchyGateway";
|
|
5
|
+
export declare class GetFolderHierarchyRepository implements IGetFolderHierarchyRepository {
|
|
6
|
+
private cache;
|
|
7
|
+
private loadedCache;
|
|
8
|
+
private gateway;
|
|
9
|
+
private readonly type;
|
|
10
|
+
constructor(cache: ListCache<Folder>, loadedCache: LoadedCache, gateway: IGetFolderHierarchyGateway, type: string);
|
|
11
|
+
execute(params: GetFolderHierarchyRepositoryParams): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GetFolderHierarchyRepository = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _Folder = require("../Folder");
|
|
12
|
+
var GetFolderHierarchyRepository = exports.GetFolderHierarchyRepository = /*#__PURE__*/function () {
|
|
13
|
+
function GetFolderHierarchyRepository(cache, loadedCache, gateway, type) {
|
|
14
|
+
(0, _classCallCheck2.default)(this, GetFolderHierarchyRepository);
|
|
15
|
+
this.cache = cache;
|
|
16
|
+
this.loadedCache = loadedCache;
|
|
17
|
+
this.gateway = gateway;
|
|
18
|
+
this.type = type;
|
|
19
|
+
}
|
|
20
|
+
return (0, _createClass2.default)(GetFolderHierarchyRepository, [{
|
|
21
|
+
key: "execute",
|
|
22
|
+
value: async function execute(params) {
|
|
23
|
+
if (this.loadedCache.getItem(function (item) {
|
|
24
|
+
return item === params.id;
|
|
25
|
+
})) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
var response = await this.gateway.execute({
|
|
29
|
+
type: this.type,
|
|
30
|
+
id: params.id
|
|
31
|
+
});
|
|
32
|
+
var _response$parents = response.parents,
|
|
33
|
+
parents = _response$parents === void 0 ? [] : _response$parents,
|
|
34
|
+
_response$siblings = response.siblings,
|
|
35
|
+
siblings = _response$siblings === void 0 ? [] : _response$siblings;
|
|
36
|
+
if (parents.length > 0) {
|
|
37
|
+
this.loadedCache.addItems(parents.map(function (parent) {
|
|
38
|
+
return parent.id;
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
this.cache.addItems([].concat((0, _toConsumableArray2.default)(parents), (0, _toConsumableArray2.default)(siblings)).map(function (item) {
|
|
42
|
+
return _Folder.Folder.create(item);
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
}]);
|
|
46
|
+
}();
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=GetFolderHierarchyRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Folder","require","GetFolderHierarchyRepository","exports","cache","loadedCache","gateway","type","_classCallCheck2","default","_createClass2","key","value","execute","params","getItem","item","id","response","_response$parents","parents","_response$siblings","siblings","length","addItems","map","parent","concat","_toConsumableArray2","Folder","create"],"sources":["GetFolderHierarchyRepository.ts"],"sourcesContent":["import { ListCache, LoadedCache } from \"../cache\";\nimport { Folder } from \"../Folder\";\nimport {\n GetFolderHierarchyRepositoryParams,\n IGetFolderHierarchyRepository\n} from \"./IGetFolderHierarchyRepository\";\nimport { IGetFolderHierarchyGateway } from \"./IGetFolderHierarchyGateway\";\n\nexport class GetFolderHierarchyRepository implements IGetFolderHierarchyRepository {\n private cache: ListCache<Folder>;\n private loadedCache: LoadedCache;\n private gateway: IGetFolderHierarchyGateway;\n private readonly type: string;\n\n constructor(\n cache: ListCache<Folder>,\n loadedCache: LoadedCache,\n gateway: IGetFolderHierarchyGateway,\n type: string\n ) {\n this.cache = cache;\n this.loadedCache = loadedCache;\n this.gateway = gateway;\n this.type = type;\n }\n\n async execute(params: GetFolderHierarchyRepositoryParams) {\n if (this.loadedCache.getItem(item => item === params.id)) {\n return;\n }\n\n const response = await this.gateway.execute({ type: this.type, id: params.id });\n\n const { parents = [], siblings = [] } = response;\n\n if (parents.length > 0) {\n this.loadedCache.addItems(parents.map(parent => parent.id));\n }\n\n this.cache.addItems([...parents, ...siblings].map(item => Folder.create(item)));\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAAmC,IAOtBC,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA;EAMrC,SAAAA,6BACIE,KAAwB,EACxBC,WAAwB,EACxBC,OAAmC,EACnCC,IAAY,EACd;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAP,4BAAA;IACE,IAAI,CAACE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;EACpB;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAP,4BAAA;IAAAS,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAACC,MAA0C,EAAE;MACtD,IAAI,IAAI,CAACT,WAAW,CAACU,OAAO,CAAC,UAAAC,IAAI;QAAA,OAAIA,IAAI,KAAKF,MAAM,CAACG,EAAE;MAAA,EAAC,EAAE;QACtD;MACJ;MAEA,IAAMC,QAAQ,GAAG,MAAM,IAAI,CAACZ,OAAO,CAACO,OAAO,CAAC;QAAEN,IAAI,EAAE,IAAI,CAACA,IAAI;QAAEU,EAAE,EAAEH,MAAM,CAACG;MAAG,CAAC,CAAC;MAE/E,IAAAE,iBAAA,GAAwCD,QAAQ,CAAxCE,OAAO;QAAPA,OAAO,GAAAD,iBAAA,cAAG,EAAE,GAAAA,iBAAA;QAAAE,kBAAA,GAAoBH,QAAQ,CAA1BI,QAAQ;QAARA,QAAQ,GAAAD,kBAAA,cAAG,EAAE,GAAAA,kBAAA;MAEnC,IAAID,OAAO,CAACG,MAAM,GAAG,CAAC,EAAE;QACpB,IAAI,CAAClB,WAAW,CAACmB,QAAQ,CAACJ,OAAO,CAACK,GAAG,CAAC,UAAAC,MAAM;UAAA,OAAIA,MAAM,CAACT,EAAE;QAAA,EAAC,CAAC;MAC/D;MAEA,IAAI,CAACb,KAAK,CAACoB,QAAQ,CAAC,GAAAG,MAAA,KAAAC,mBAAA,CAAAnB,OAAA,EAAIW,OAAO,OAAAQ,mBAAA,CAAAnB,OAAA,EAAKa,QAAQ,GAAEG,GAAG,CAAC,UAAAT,IAAI;QAAA,OAAIa,cAAM,CAACC,MAAM,CAACd,IAAI,CAAC;MAAA,EAAC,CAAC;IACnF;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GetFolderHierarchyUseCaseParams, IGetFolderHierarchyUseCase } from "./IGetFolderHierarchyUseCase";
|
|
2
|
+
import { IGetFolderHierarchyRepository } from "./IGetFolderHierarchyRepository";
|
|
3
|
+
export declare class GetFolderHierarchyUseCase implements IGetFolderHierarchyUseCase {
|
|
4
|
+
private repository;
|
|
5
|
+
constructor(repository: IGetFolderHierarchyRepository);
|
|
6
|
+
execute({ id }: GetFolderHierarchyUseCaseParams): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GetFolderHierarchyUseCase = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var GetFolderHierarchyUseCase = exports.GetFolderHierarchyUseCase = /*#__PURE__*/function () {
|
|
11
|
+
function GetFolderHierarchyUseCase(repository) {
|
|
12
|
+
(0, _classCallCheck2.default)(this, GetFolderHierarchyUseCase);
|
|
13
|
+
this.repository = repository;
|
|
14
|
+
}
|
|
15
|
+
return (0, _createClass2.default)(GetFolderHierarchyUseCase, [{
|
|
16
|
+
key: "execute",
|
|
17
|
+
value: async function execute(_ref) {
|
|
18
|
+
var id = _ref.id;
|
|
19
|
+
await this.repository.execute({
|
|
20
|
+
id: id
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}]);
|
|
24
|
+
}();
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=GetFolderHierarchyUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GetFolderHierarchyUseCase","exports","repository","_classCallCheck2","default","_createClass2","key","value","execute","_ref","id"],"sources":["GetFolderHierarchyUseCase.ts"],"sourcesContent":["import {\n GetFolderHierarchyUseCaseParams,\n IGetFolderHierarchyUseCase\n} from \"./IGetFolderHierarchyUseCase\";\nimport { IGetFolderHierarchyRepository } from \"./IGetFolderHierarchyRepository\";\n\nexport class GetFolderHierarchyUseCase implements IGetFolderHierarchyUseCase {\n private repository: IGetFolderHierarchyRepository;\n\n constructor(repository: IGetFolderHierarchyRepository) {\n this.repository = repository;\n }\n\n async execute({ id }: GetFolderHierarchyUseCaseParams) {\n await this.repository.execute({\n id\n });\n }\n}\n"],"mappings":";;;;;;;;;IAMaA,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA;EAGlC,SAAAA,0BAAYE,UAAyC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,yBAAA;IACnD,IAAI,CAACE,UAAU,GAAGA,UAAU;EAChC;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAJ,yBAAA;IAAAM,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAAAC,IAAA,EAA0C;MAAA,IAAvCC,EAAE,GAAAD,IAAA,CAAFC,EAAE;MACd,MAAM,IAAI,CAACR,UAAU,CAACM,OAAO,CAAC;QAC1BE,EAAE,EAAFA;MACJ,CAAC,CAAC;IACN;EAAC;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ILoadingRepository } from "@webiny/app-utils";
|
|
2
|
+
import { GetFolderHierarchyUseCaseParams, IGetFolderHierarchyUseCase } from "./IGetFolderHierarchyUseCase";
|
|
3
|
+
export declare class GetFolderHierarchyUseCaseWithLoading implements IGetFolderHierarchyUseCase {
|
|
4
|
+
private loadingRepository;
|
|
5
|
+
private useCase;
|
|
6
|
+
constructor(loadingRepository: ILoadingRepository, useCase: IGetFolderHierarchyUseCase);
|
|
7
|
+
execute(params: GetFolderHierarchyUseCaseParams): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GetFolderHierarchyUseCaseWithLoading = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _types = require("../../../types");
|
|
11
|
+
var GetFolderHierarchyUseCaseWithLoading = exports.GetFolderHierarchyUseCaseWithLoading = /*#__PURE__*/function () {
|
|
12
|
+
function GetFolderHierarchyUseCaseWithLoading(loadingRepository, useCase) {
|
|
13
|
+
(0, _classCallCheck2.default)(this, GetFolderHierarchyUseCaseWithLoading);
|
|
14
|
+
this.loadingRepository = loadingRepository;
|
|
15
|
+
this.useCase = useCase;
|
|
16
|
+
}
|
|
17
|
+
return (0, _createClass2.default)(GetFolderHierarchyUseCaseWithLoading, [{
|
|
18
|
+
key: "execute",
|
|
19
|
+
value: async function execute(params) {
|
|
20
|
+
await this.loadingRepository.runCallBack(this.useCase.execute(params), _types.LoadingActionsEnum.init);
|
|
21
|
+
}
|
|
22
|
+
}]);
|
|
23
|
+
}();
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=GetFolderHierarchyUseCaseWithLoading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_types","require","GetFolderHierarchyUseCaseWithLoading","exports","loadingRepository","useCase","_classCallCheck2","default","_createClass2","key","value","execute","params","runCallBack","LoadingActionsEnum","init"],"sources":["GetFolderHierarchyUseCaseWithLoading.ts"],"sourcesContent":["import { ILoadingRepository } from \"@webiny/app-utils\";\nimport {\n GetFolderHierarchyUseCaseParams,\n IGetFolderHierarchyUseCase\n} from \"./IGetFolderHierarchyUseCase\";\nimport { LoadingActionsEnum } from \"~/types\";\n\nexport class GetFolderHierarchyUseCaseWithLoading implements IGetFolderHierarchyUseCase {\n private loadingRepository: ILoadingRepository;\n private useCase: IGetFolderHierarchyUseCase;\n\n constructor(loadingRepository: ILoadingRepository, useCase: IGetFolderHierarchyUseCase) {\n this.loadingRepository = loadingRepository;\n this.useCase = useCase;\n }\n\n async execute(params: GetFolderHierarchyUseCaseParams) {\n await this.loadingRepository.runCallBack(\n this.useCase.execute(params),\n LoadingActionsEnum.init\n );\n }\n}\n"],"mappings":";;;;;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AAA6C,IAEhCC,oCAAoC,GAAAC,OAAA,CAAAD,oCAAA;EAI7C,SAAAA,qCAAYE,iBAAqC,EAAEC,OAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,oCAAA;IACpF,IAAI,CAACE,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAAC,WAAAG,aAAA,CAAAD,OAAA,EAAAL,oCAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,eAAMC,OAAOA,CAACC,MAAuC,EAAE;MACnD,MAAM,IAAI,CAACR,iBAAiB,CAACS,WAAW,CACpC,IAAI,CAACR,OAAO,CAACM,OAAO,CAACC,MAAM,CAAC,EAC5BE,yBAAkB,CAACC,IACvB,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|