{"version":3,"file":"document-recycle-bin-tree.repository-B7RWbMvr.js","sources":["../../../src/packages/documents/documents/recycle-bin/tree/data/document-recycle-bin-tree.server.data-source.ts","../../../src/packages/documents/documents/recycle-bin/tree/data/document-recycle-bin-tree.repository.ts"],"sourcesContent":["import { UMB_DOCUMENT_ENTITY_TYPE } from '../../../entity.js';\r\nimport { UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../constants.js';\r\nimport type { UmbDocumentRecycleBinTreeItemModel } from '../types.js';\r\nimport type { DocumentRecycleBinItemResponseModel } 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\nimport type {\r\n\tUmbTreeAncestorsOfRequestArgs,\r\n\tUmbTreeChildrenOfRequestArgs,\r\n\tUmbTreeRootItemsRequestArgs,\r\n} from '@umbraco-cms/backoffice/tree';\r\nimport { UmbTreeServerDataSourceBase } from '@umbraco-cms/backoffice/tree';\r\n\r\n/**\r\n * A data source for the Document Recycle Bin tree that fetches data from the server\r\n * @class UmbDocumentRecycleBinTreeServerDataSource\r\n * @implements {UmbTreeDataSource}\r\n */\r\nexport class UmbDocumentRecycleBinTreeServerDataSource extends UmbTreeServerDataSourceBase<\r\n\tDocumentRecycleBinItemResponseModel,\r\n\tUmbDocumentRecycleBinTreeItemModel\r\n> {\r\n\t/**\r\n\t * Creates an instance of UmbDocumentRecycleBinTreeServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbDocumentRecycleBinTreeServerDataSource\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: UmbTreeRootItemsRequestArgs) =>\r\n\t// eslint-disable-next-line local-rules/no-direct-api-import\r\n\tDocumentService.getRecycleBinDocumentRoot({ skip: args.skip, take: args.take });\r\n\r\nconst getChildrenOf = (args: UmbTreeChildrenOfRequestArgs) => {\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.getRecycleBinDocumentChildren({\r\n\t\t\tparentId: args.parent.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: DocumentRecycleBinItemResponseModel): UmbDocumentRecycleBinTreeItemModel => {\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_RECYCLE_BIN_ROOT_ENTITY_TYPE,\r\n\t\t},\r\n\t\tentityType: UMB_DOCUMENT_ENTITY_TYPE,\r\n\t\tnoAccess: false,\r\n\t\tisTrashed: true,\r\n\t\thasChildren: item.hasChildren,\r\n\t\tisProtected: false,\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_RECYCLE_BIN_ROOT_ENTITY_TYPE } from '../../constants.js';\r\nimport type { UmbDocumentRecycleBinTreeItemModel, UmbDocumentRecycleBinTreeRootModel } from '../types.js';\r\nimport { UmbDocumentRecycleBinTreeServerDataSource } from './document-recycle-bin-tree.server.data-source.js';\r\nimport { UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT } from './document-recycle-bin-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 UmbDocumentRecycleBinTreeRepository\r\n\textends UmbTreeRepositoryBase\r\n\timplements UmbApi\r\n{\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host, UmbDocumentRecycleBinTreeServerDataSource, UMB_DOCUMENT_RECYCLE_BIN_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 = {\r\n\t\t\tunique: null,\r\n\t\t\tentityType: UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE,\r\n\t\t\tname: '#treeHeaders_contentRecycleBin',\r\n\t\t\ticon: 'icon-trash',\r\n\t\t\thasChildren,\r\n\t\t\tisContainer: false,\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 { UmbDocumentRecycleBinTreeRepository as api };\r\n"],"names":["UmbDocumentRecycleBinTreeServerDataSource","UmbTreeServerDataSourceBase","host","getRootItems","getChildrenOf","getAncestorsOf","mapper","args","DocumentService","item","UMB_DOCUMENT_ENTITY_TYPE","UMB_DOCUMENT_RECYCLE_BIN_ROOT_ENTITY_TYPE","variant","UmbDocumentRecycleBinTreeRepository","UmbTreeRepositoryBase","UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT","treeRootData","hasChildren"],"mappings":";;;AAkBO,MAAMA,UAAkDC,EAG7D;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,0BAA0B,EAAE,MAAMD,EAAK,MAAM,MAAMA,EAAK,KAAM,CAAA;AAAA,GAEzEH,IAAgB,CAACG,MAClBA,EAAK,OAAO,WAAW,OACnBJ,EAAaI,CAAI,IAGjBC,EAAgB,8BAA8B;AAAA,EACpD,UAAUD,EAAK,OAAO;AAAA,EACtB,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,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAaD,EAAK;AAAA,EAClB,aAAa;AAAA,EACb,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;AChFM,MAAMI,UACJC,EAET;AAAA,EACC,YAAYZ,GAAyB;AAC9B,UAAAA,GAAMF,GAA2Ce,CAA2C;AAAA,EAAA;AAAA,EAGnG,MAAM,kBAAkB;AACvB,UAAM,EAAE,MAAMC,EAAa,IAAI,MAAM,KAAK,YAAY,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,GACjFC,IAAcD,IAAeA,EAAa,QAAQ,IAAI;AAY5D,WAAO,EAAE,MAVI;AAAA,MACZ,QAAQ;AAAA,MACR,YAAYL;AAAA,MACZ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAAM;AAAA,MACA,aAAa;AAAA,MACb,UAAU;AAAA,IACX,EAEc;AAAA,EAAA;AAEhB;"}