{"version":3,"file":"relation-collection.repository-C2TUl7kE.js","sources":["../../../src/packages/relations/relations/entity.ts","../../../src/packages/relations/relations/collection/repository/relation-collection.server.data-source.ts","../../../src/packages/relations/relations/collection/repository/relation-collection.repository.ts"],"sourcesContent":["export const UMB_RELATION_ENTITY_TYPE = 'relation';\r\n\r\nexport type UmbRelationEntityType = typeof UMB_RELATION_ENTITY_TYPE;\r\n","import type { UmbRelationCollectionFilterModel } from '../types.js';\r\nimport type { UmbRelationDetailModel } from '../../types.js';\r\nimport { UMB_RELATION_ENTITY_TYPE } from '../../entity.js';\r\nimport type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection';\r\nimport { RelationService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\n\r\n/**\r\n * A data source that fetches the relation collection data from the server.\r\n * @class UmbRelationCollectionServerDataSource\r\n * @implements {UmbCollectionDataSource}\r\n */\r\nexport class UmbRelationCollectionServerDataSource implements UmbCollectionDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbRelationCollectionServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbRelationCollectionServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the relation collection filtered by the given filter.\r\n\t * @param {UmbRelationCollectionFilterModel} filter\r\n\t * @returns {*}\r\n\t * @memberof UmbRelationCollectionServerDataSource\r\n\t */\r\n\tasync getCollection(filter: UmbRelationCollectionFilterModel) {\r\n\t\tconst requestBody = {\r\n\t\t\tskip: filter.skip,\r\n\t\t\ttake: filter.take,\r\n\t\t\tid: filter.relationType.unique,\r\n\t\t};\r\n\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tRelationService.getRelationByRelationTypeId(requestBody),\r\n\t\t);\r\n\r\n\t\tif (data) {\r\n\t\t\tconst items = data.items.map((item) => {\r\n\t\t\t\tconst model: UmbRelationDetailModel = {\r\n\t\t\t\t\tunique: item.id,\r\n\t\t\t\t\tentityType: UMB_RELATION_ENTITY_TYPE,\r\n\t\t\t\t\trelationType: {\r\n\t\t\t\t\t\tunique: item.relationType.id,\r\n\t\t\t\t\t},\r\n\t\t\t\t\tparent: {\r\n\t\t\t\t\t\tunique: item.parent.id,\r\n\t\t\t\t\t\tname: item.parent.name || '',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tchild: {\r\n\t\t\t\t\t\tunique: item.child.id,\r\n\t\t\t\t\t\tname: item.child.name || '',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcreateDate: item.createDate,\r\n\t\t\t\t\tcomment: item.comment || '',\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn model;\r\n\t\t\t});\r\n\r\n\t\t\treturn { data: { items, total: data.total } };\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n}\r\n","import type { UmbRelationCollectionFilterModel } from '../types.js';\r\nimport { UmbRelationCollectionServerDataSource } from './relation-collection.server.data-source.js';\r\nimport type { UmbRelationCollectionDataSource } from './types.js';\r\nimport { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\nimport type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbRelationCollectionRepository extends UmbRepositoryBase implements UmbCollectionRepository {\r\n\t#collectionSource: UmbRelationCollectionDataSource;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t\tthis.#collectionSource = new UmbRelationCollectionServerDataSource(host);\r\n\t}\r\n\r\n\tasync requestCollection(filter: UmbRelationCollectionFilterModel) {\r\n\t\treturn this.#collectionSource.getCollection(filter);\r\n\t}\r\n}\r\n\r\nexport default UmbRelationCollectionRepository;\r\n"],"names":["UMB_RELATION_ENTITY_TYPE","UmbRelationCollectionServerDataSource","#host","host","filter","requestBody","data","error","tryExecuteAndNotify","RelationService","item","UmbRelationCollectionRepository","UmbRepositoryBase","#collectionSource"],"mappings":";;;AAAO,MAAMA,IAA2B;ACajC,MAAMC,EAAiG;AAAA,EAC7GC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKD,KAAQC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,MAAM,cAAcC,GAA0C;AAC7D,UAAMC,IAAc;AAAA,MACnB,MAAMD,EAAO;AAAA,MACb,MAAMA,EAAO;AAAA,MACb,IAAIA,EAAO,aAAa;AAAA,IACzB,GAEM,EAAE,MAAAE,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKN;AAAA,MACLO,EAAgB,4BAA4BJ,CAAW;AAAA,IACxD;AAEA,WAAIC,IAuBI,EAAE,MAAM,EAAE,OAtBHA,EAAK,MAAM,IAAI,CAACI,OACS;AAAA,MACrC,QAAQA,EAAK;AAAA,MACb,YAAYV;AAAA,MACZ,cAAc;AAAA,QACb,QAAQU,EAAK,aAAa;AAAA,MAC3B;AAAA,MACA,QAAQ;AAAA,QACP,QAAQA,EAAK,OAAO;AAAA,QACpB,MAAMA,EAAK,OAAO,QAAQ;AAAA,MAC3B;AAAA,MACA,OAAO;AAAA,QACN,QAAQA,EAAK,MAAM;AAAA,QACnB,MAAMA,EAAK,MAAM,QAAQ;AAAA,MAC1B;AAAA,MACA,YAAYA,EAAK;AAAA,MACjB,SAASA,EAAK,WAAW;AAAA,IAC1B,EAGA,GAEuB,OAAOJ,EAAK,QAAQ,IAGtC,EAAE,OAAAC,EAAM;AAAA,EAAA;AAEjB;AChEO,MAAMI,UAAwCC,EAAqD;AAAA,EACzGC;AAAA,EAEA,YAAYV,GAAyB;AACpC,UAAMA,CAAI,GACL,KAAAU,KAAoB,IAAIZ,EAAsCE,CAAI;AAAA,EAAA;AAAA,EAGxE,MAAM,kBAAkBC,GAA0C;AAC1D,WAAA,KAAKS,GAAkB,cAAcT,CAAM;AAAA,EAAA;AAEpD;;;;;;"}