{"version":3,"file":"user-collection.repository-vD059_u9.js","sources":["../../../src/packages/user/user/collection/repository/user-collection.server.data-source.ts","../../../src/packages/user/user/collection/repository/user-collection.repository.ts"],"sourcesContent":["import type { UmbUserDetailModel } from '../../types.js';\r\nimport { UMB_USER_ENTITY_TYPE } from '../../entity.js';\r\nimport type { UmbUserCollectionFilterModel } from '../types.js';\r\nimport type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection';\r\nimport type {\r\n\tDirectionModel,\r\n\tUserOrderModel,\r\n\tUserResponseModel,\r\n\tUserStateModel,\r\n} from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { UserService } 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 user collection data from the server.\r\n * @class UmbUserCollectionServerDataSource\r\n * @implements {UmbCollectionDataSource}\r\n */\r\nexport class UmbUserCollectionServerDataSource implements UmbCollectionDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbUserCollectionServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbUserCollectionServerDataSource\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 user collection filtered by the given filter.\r\n\t * @param {UmbUserCollectionFilterModel} filter\r\n\t * @returns {*}\r\n\t * @memberof UmbUserCollectionServerDataSource\r\n\t */\r\n\tasync getCollection(filter: UmbUserCollectionFilterModel) {\r\n\t\tconst { data, error } = await tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.getFilterUser({\r\n\t\t\t\tfilter: filter.filter,\r\n\t\t\t\torderBy: filter.orderBy as unknown as UserOrderModel, // TODO: This is a temporary workaround to avoid a type error.\r\n\t\t\t\torderDirection: filter.orderDirection as unknown as DirectionModel, // TODO: This is a temporary workaround to avoid a type error.\r\n\t\t\t\tskip: filter.skip,\r\n\t\t\t\ttake: filter.take,\r\n\t\t\t\tuserGroupIds: filter.userGroupIds,\r\n\t\t\t\tuserStates: filter.userStates as unknown as Array, // TODO: This is a temporary workaround to avoid a type error.\r\n\t\t\t}),\r\n\t\t);\r\n\r\n\t\tif (data) {\r\n\t\t\tconst { items, total } = data;\r\n\r\n\t\t\tconst mappedItems: Array = items.map((item: UserResponseModel) => {\r\n\t\t\t\tconst userDetail: UmbUserDetailModel = {\r\n\t\t\t\t\tentityType: UMB_USER_ENTITY_TYPE,\r\n\t\t\t\t\temail: item.email,\r\n\t\t\t\t\tuserName: item.userName,\r\n\t\t\t\t\tname: item.name,\r\n\t\t\t\t\tuserGroupUniques: item.userGroupIds.map((reference) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tunique: reference.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tunique: item.id,\r\n\t\t\t\t\tlanguageIsoCode: item.languageIsoCode || null,\r\n\t\t\t\t\tdocumentStartNodeUniques: item.documentStartNodeIds.map((node) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tunique: node.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tmediaStartNodeUniques: item.mediaStartNodeIds.map((node) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tunique: node.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}),\r\n\t\t\t\t\thasDocumentRootAccess: item.hasDocumentRootAccess,\r\n\t\t\t\t\thasMediaRootAccess: item.hasMediaRootAccess,\r\n\t\t\t\t\tavatarUrls: item.avatarUrls,\r\n\t\t\t\t\tstate: item.state,\r\n\t\t\t\t\tfailedLoginAttempts: item.failedLoginAttempts,\r\n\t\t\t\t\tcreateDate: item.createDate,\r\n\t\t\t\t\tupdateDate: item.updateDate,\r\n\t\t\t\t\tlastLoginDate: item.lastLoginDate || null,\r\n\t\t\t\t\tlastLockoutDate: item.lastLockoutDate || null,\r\n\t\t\t\t\tlastPasswordChangeDate: item.lastPasswordChangeDate || null,\r\n\t\t\t\t\tisAdmin: item.isAdmin,\r\n\t\t\t\t\tkind: item.kind,\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn userDetail;\r\n\t\t\t});\r\n\r\n\t\t\treturn { data: { items: mappedItems, total } };\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n}\r\n","import { UmbUserRepositoryBase } from '../../repository/user-repository-base.js';\r\nimport type { UmbUserCollectionFilterModel } from '../types.js';\r\nimport { UmbUserCollectionServerDataSource } from './user-collection.server.data-source.js';\r\nimport type { UmbUserCollectionDataSource } from './types.js';\r\nimport type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbUserCollectionRepository extends UmbUserRepositoryBase implements UmbCollectionRepository {\r\n\t#collectionSource: UmbUserCollectionDataSource;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t\tthis.#collectionSource = new UmbUserCollectionServerDataSource(host);\r\n\t}\r\n\r\n\tasync requestCollection(filter: UmbUserCollectionFilterModel = { skip: 0, take: 100 }) {\r\n\t\tawait this.init;\r\n\r\n\t\tconst { data, error } = await this.#collectionSource.getCollection(filter);\r\n\r\n\t\tif (data) {\r\n\t\t\tthis.detailStore!.appendItems(data.items);\r\n\t\t}\r\n\r\n\t\treturn { data, error, asObservable: () => this.detailStore!.all() };\r\n\t}\r\n}\r\n\r\nexport default UmbUserCollectionRepository;\r\n"],"names":["UmbUserCollectionServerDataSource","#host","host","filter","data","error","tryExecuteAndNotify","UserService","items","total","item","UMB_USER_ENTITY_TYPE","reference","node","UmbUserCollectionRepository","UmbUserRepositoryBase","#collectionSource"],"mappings":";;;;AAmBO,MAAMA,EAAyF;AAAA,EACrGC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAYC,GAAyB;AACpC,SAAKD,KAAQC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASd,MAAM,cAAcC,GAAsC;AACzD,UAAM,EAAE,MAAAC,GAAM,OAAAC,EAAM,IAAI,MAAMC;AAAA,MAC7B,KAAKL;AAAA,MACLM,EAAY,cAAc;AAAA,QACzB,QAAQJ,EAAO;AAAA,QACf,SAASA,EAAO;AAAA;AAAA,QAChB,gBAAgBA,EAAO;AAAA;AAAA,QACvB,MAAMA,EAAO;AAAA,QACb,MAAMA,EAAO;AAAA,QACb,cAAcA,EAAO;AAAA,QACrB,YAAYA,EAAO;AAAA;AAAA,MACnB,CAAA;AAAA,IACF;AAEA,QAAIC,GAAM;AACH,YAAA,EAAE,OAAAI,GAAO,OAAAC,EAAA,IAAUL;AA0CzB,aAAO,EAAE,MAAM,EAAE,OAxC8BI,EAAM,IAAI,CAACE,OAClB;AAAA,QACtC,YAAYC;AAAA,QACZ,OAAOD,EAAK;AAAA,QACZ,UAAUA,EAAK;AAAA,QACf,MAAMA,EAAK;AAAA,QACX,kBAAkBA,EAAK,aAAa,IAAI,CAACE,OACjC;AAAA,UACN,QAAQA,EAAU;AAAA,QACnB,EACA;AAAA,QACD,QAAQF,EAAK;AAAA,QACb,iBAAiBA,EAAK,mBAAmB;AAAA,QACzC,0BAA0BA,EAAK,qBAAqB,IAAI,CAACG,OACjD;AAAA,UACN,QAAQA,EAAK;AAAA,QACd,EACA;AAAA,QACD,uBAAuBH,EAAK,kBAAkB,IAAI,CAACG,OAC3C;AAAA,UACN,QAAQA,EAAK;AAAA,QACd,EACA;AAAA,QACD,uBAAuBH,EAAK;AAAA,QAC5B,oBAAoBA,EAAK;AAAA,QACzB,YAAYA,EAAK;AAAA,QACjB,OAAOA,EAAK;AAAA,QACZ,qBAAqBA,EAAK;AAAA,QAC1B,YAAYA,EAAK;AAAA,QACjB,YAAYA,EAAK;AAAA,QACjB,eAAeA,EAAK,iBAAiB;AAAA,QACrC,iBAAiBA,EAAK,mBAAmB;AAAA,QACzC,wBAAwBA,EAAK,0BAA0B;AAAA,QACvD,SAASA,EAAK;AAAA,QACd,MAAMA,EAAK;AAAA,MACZ,EAGA,GAEoC,OAAAD,IAAQ;AAAA,IAAA;AAG9C,WAAO,EAAE,OAAAJ,EAAM;AAAA,EAAA;AAEjB;AC5FO,MAAMS,UAAoCC,EAAyD;AAAA,EACzGC;AAAA,EAEA,YAAYd,GAAyB;AACpC,UAAMA,CAAI,GACL,KAAAc,KAAoB,IAAIhB,EAAkCE,CAAI;AAAA,EAAA;AAAA,EAGpE,MAAM,kBAAkBC,IAAuC,EAAE,MAAM,GAAG,MAAM,OAAO;AACtF,UAAM,KAAK;AAEL,UAAA,EAAE,MAAAC,GAAM,OAAAC,EAAM,IAAI,MAAM,KAAKW,GAAkB,cAAcb,CAAM;AAEzE,WAAIC,KACE,KAAA,YAAa,YAAYA,EAAK,KAAK,GAGlC,EAAE,MAAAA,GAAM,OAAAC,GAAO,cAAc,MAAM,KAAK,YAAa,MAAM;AAAA,EAAA;AAEpE;"}