{"version":3,"file":"document-tree.repository-krK56-1X.js","sources":["../../../src/packages/documents/documents/tree/document-tree.server.data-source.ts","../../../src/packages/documents/documents/tree/document-tree.repository.ts"],"sourcesContent":["import { UMB_DOCUMENT_ENTITY_TYPE, UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js';\r\nimport type {\r\n\tUmbDocumentTreeChildrenOfRequestArgs,\r\n\tUmbDocumentTreeItemModel,\r\n\tUmbDocumentTreeRootItemsRequestArgs,\r\n} from './types.js';\r\nimport type { UmbTreeAncestorsOfRequestArgs } from '@umbraco-cms/backoffice/tree';\r\nimport { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree';\r\nimport type { DocumentTreeItemResponseModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { DocumentService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\n/**\r\n * A data source for the Document tree that fetches data from the server\r\n * @class UmbDocumentTreeServerDataSource\r\n * @augments {UmbTreeServerDataSourceBase}\r\n */\r\nexport class UmbDocumentTreeServerDataSource extends UmbTreeServerDataSourceBase<\r\n\tDocumentTreeItemResponseModel,\r\n\tUmbDocumentTreeItemModel,\r\n\tUmbDocumentTreeRootItemsRequestArgs,\r\n\tUmbDocumentTreeChildrenOfRequestArgs\r\n> {\r\n\t/**\r\n\t * Creates an instance of UmbDocumentTreeServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbDocumentTreeServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, {\r\n\t\t\tgetRootItems,\r\n\t\t\tgetChildrenOf,\r\n\t\t\tgetAncestorsOf,\r\n\t\t\tmapper,\r\n\t\t});\r\n\t}\r\n}\r\n\r\nconst getRootItems = (args: UmbDocumentTreeRootItemsRequestArgs) =>\r\n\t// eslint-disable-next-line local-rules/no-direct-api-import\r\n\tDocumentService.getTreeDocumentRoot({\r\n\t\tdataTypeId: args.dataType?.unique,\r\n\t\tskip: args.skip,\r\n\t\ttake: args.take,\r\n\t});\r\n\r\nconst getChildrenOf = (args: UmbDocumentTreeChildrenOfRequestArgs) => {\r\n\tif (args.parent.unique === null) {\r\n\t\treturn getRootItems(args);\r\n\t} else {\r\n\t\t// eslint-disable-next-line local-rules/no-direct-api-import\r\n\t\treturn DocumentService.getTreeDocumentChildren({\r\n\t\t\tparentId: args.parent.unique,\r\n\t\t\tdataTypeId: args.dataType?.unique,\r\n\t\t\tskip: args.skip,\r\n\t\t\ttake: args.take,\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst getAncestorsOf = (args: UmbTreeAncestorsOfRequestArgs) =>\r\n\t// eslint-disable-next-line local-rules/no-direct-api-import\r\n\tDocumentService.getTreeDocumentAncestors({\r\n\t\tdescendantId: args.treeItem.unique,\r\n\t});\r\n\r\nconst mapper = (item: DocumentTreeItemResponseModel): UmbDocumentTreeItemModel => {\r\n\treturn {\r\n\t\tunique: item.id,\r\n\t\tparent: {\r\n\t\t\tunique: item.parent ? item.parent.id : null,\r\n\t\t\tentityType: item.parent ? UMB_DOCUMENT_ENTITY_TYPE : UMB_DOCUMENT_ROOT_ENTITY_TYPE,\r\n\t\t},\r\n\t\tentityType: UMB_DOCUMENT_ENTITY_TYPE,\r\n\t\tnoAccess: item.noAccess,\r\n\t\tisTrashed: item.isTrashed,\r\n\t\thasChildren: item.hasChildren,\r\n\t\tisProtected: item.isProtected,\r\n\t\tdocumentType: {\r\n\t\t\tunique: item.documentType.id,\r\n\t\t\ticon: item.documentType.icon,\r\n\t\t\tcollection: item.documentType.collection ? { unique: item.documentType.collection.id } : null,\r\n\t\t},\r\n\t\tvariants: item.variants.map((variant) => {\r\n\t\t\treturn {\r\n\t\t\t\tname: variant.name,\r\n\t\t\t\tculture: variant.culture || null,\r\n\t\t\t\tsegment: null, // TODO: add segment to the backend API?\r\n\t\t\t\tstate: variant.state,\r\n\t\t\t};\r\n\t\t}),\r\n\t\tname: item.variants[0]?.name, // TODO: this is not correct. We need to get it from the variants. This is a temp solution.\r\n\t\tisFolder: false,\r\n\t\tcreateDate: item.createDate,\r\n\t};\r\n};\r\n","import { UMB_DOCUMENT_ROOT_ENTITY_TYPE } from '../entity.js';\r\nimport { UmbDocumentTreeServerDataSource } from './document-tree.server.data-source.js';\r\nimport type { UmbDocumentTreeItemModel, UmbDocumentTreeRootModel } from './types.js';\r\nimport { UMB_DOCUMENT_TREE_STORE_CONTEXT } from './document-tree.store.context-token.js';\r\nimport { UmbTreeRepositoryBase } from '@umbraco-cms/backoffice/tree';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport type { UmbApi } from '@umbraco-cms/backoffice/extension-api';\r\n\r\nexport class UmbDocumentTreeRepository\r\n\textends UmbTreeRepositoryBase\r\n\timplements UmbApi\r\n{\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbDocumentTreeServerDataSource, UMB_DOCUMENT_TREE_STORE_CONTEXT);\r\n\t}\r\n\r\n\tasync requestTreeRoot() {\r\n\t\tconst { data: treeRootData } = await this._treeSource.getRootItems({ skip: 0, take: 1 });\r\n\t\tconst hasChildren = treeRootData ? treeRootData.total > 0 : false;\r\n\r\n\t\tconst data: UmbDocumentTreeRootModel = {\r\n\t\t\tunique: null,\r\n\t\t\tentityType: UMB_DOCUMENT_ROOT_ENTITY_TYPE,\r\n\t\t\tname: '#treeHeaders_content',\r\n\t\t\thasChildren,\r\n\t\t\tisFolder: true,\r\n\t\t};\r\n\r\n\t\treturn { data };\r\n\t}\r\n}\r\n\r\nexport default UmbDocumentTreeRepository;\r\n"],"names":["UmbDocumentTreeServerDataSource","UmbTreeServerDataSourceBase","host","getRootItems","getChildrenOf","getAncestorsOf","mapper","args","DocumentService","item","UMB_DOCUMENT_ENTITY_TYPE","UMB_DOCUMENT_ROOT_ENTITY_TYPE","variant","UmbDocumentTreeRepository","UmbTreeRepositoryBase","UMB_DOCUMENT_TREE_STORE_CONTEXT","treeRootData","hasChildren"],"mappings":";;;AAiBO,MAAMA,UAAwCC,EAKnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,YAAYC,GAAyB;AACpC,UAAMA,GAAM;AAAA,MACX,cAAAC;AAAA,MACA,eAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,QAAAC;AAAA,IAAA,CACA;AAAA,EAAA;AAEH;AAEA,MAAMH,IAAe,CAACI;AAAA;AAAA,EAErBC,EAAgB,oBAAoB;AAAA,IACnC,YAAYD,EAAK,UAAU;AAAA,IAC3B,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,EACX,CAAA;AAAA,GAEIH,IAAgB,CAACG,MAClBA,EAAK,OAAO,WAAW,OACnBJ,EAAaI,CAAI,IAGjBC,EAAgB,wBAAwB;AAAA,EAC9C,UAAUD,EAAK,OAAO;AAAA,EACtB,YAAYA,EAAK,UAAU;AAAA,EAC3B,MAAMA,EAAK;AAAA,EACX,MAAMA,EAAK;AAAA,CACX,GAIGF,IAAiB,CAACE;AAAA;AAAA,EAEvBC,EAAgB,yBAAyB;AAAA,IACxC,cAAcD,EAAK,SAAS;AAAA,EAC5B,CAAA;AAAA,GAEID,IAAS,CAACG,OACR;AAAA,EACN,QAAQA,EAAK;AAAA,EACb,QAAQ;AAAA,IACP,QAAQA,EAAK,SAASA,EAAK,OAAO,KAAK;AAAA,IACvC,YAAYA,EAAK,SAASC,IAA2BC;AAAA,EACtD;AAAA,EACA,YAAYD;AAAA,EACZ,UAAUD,EAAK;AAAA,EACf,WAAWA,EAAK;AAAA,EAChB,aAAaA,EAAK;AAAA,EAClB,aAAaA,EAAK;AAAA,EAClB,cAAc;AAAA,IACb,QAAQA,EAAK,aAAa;AAAA,IAC1B,MAAMA,EAAK,aAAa;AAAA,IACxB,YAAYA,EAAK,aAAa,aAAa,EAAE,QAAQA,EAAK,aAAa,WAAW,OAAO;AAAA,EAC1F;AAAA,EACA,UAAUA,EAAK,SAAS,IAAI,CAACG,OACrB;AAAA,IACN,MAAMA,EAAQ;AAAA,IACd,SAASA,EAAQ,WAAW;AAAA,IAC5B,SAAS;AAAA;AAAA,IACT,OAAOA,EAAQ;AAAA,EAChB,EACA;AAAA,EACD,MAAMH,EAAK,SAAS,CAAC,GAAG;AAAA;AAAA,EACxB,UAAU;AAAA,EACV,YAAYA,EAAK;AAClB;ACtFM,MAAMI,UACJC,EAET;AAAA,EACC,YAAYZ,GAAyB;AAC9B,UAAAA,GAAMF,GAAiCe,CAA+B;AAAA,EAAA;AAAA,EAG7E,MAAM,kBAAkB;AACvB,UAAM,EAAE,MAAMC,EAAa,IAAI,MAAM,KAAK,YAAY,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,GACjFC,IAAcD,IAAeA,EAAa,QAAQ,IAAI;AAU5D,WAAO,EAAE,MAR8B;AAAA,MACtC,QAAQ;AAAA,MACR,YAAYL;AAAA,MACZ,MAAM;AAAA,MACN,aAAAM;AAAA,MACA,UAAU;AAAA,IACX,EAEc;AAAA,EAAA;AAEhB;"}