{"version":3,"file":"app-76a4019d.0881d27117c38f29.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/user-admin/user-manager/user-manager.scss","webpack://client-app/./src/app/user-admin/user-manager/user-manager.html","webpack://client-app/./src/app/services/value-list/value-list-service.ts","webpack://client-app/./src/app/services/viewer-object-info-service/catenda-viewer-object-info-service.ts","webpack://client-app/./src/app/services/viewer-object-info-service/viewer-method-names.ts","webpack://client-app/./src/app/services/viewer-service.ts","webpack://client-app/./src/app/user-admin/user-manager/user-manager.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-manager-container{width:calc(100% - 30px);margin:15px;padding:15px}.user-manager-container .create-user-btn{display:block;margin-left:auto}.user-manager-container .custom-label{font-weight:600}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/user-admin/user-manager/user-manager.scss\"],\"names\":[],\"mappings\":\"AAAA,wBACI,uBAAA,CACA,WAAA,CACA,YAAA,CACA,yCACI,aAAA,CACA,gBAAA,CAEJ,sCACI,eAAA\",\"sourcesContent\":[\".user-manager-container {\\r\\n width: calc(100% - 30px);\\r\\n margin: 15px;\\r\\n padding: 15px;\\r\\n .create-user-btn {\\r\\n display:block;\\r\\n margin-left:auto;\\r\\n }\\r\\n .custom-label {\\r\\n font-weight: 600;\\r\\n }\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\";","import {autoinject} from \"aurelia-framework\";\r\nimport {ApiClient} from \"../api-client\";\r\nimport { RequestMethod } from '../RequestMethod';\r\nimport {ValueListDto, ValueListItemDto} from \"../../models/value-list-dtos\";\r\nimport {AppContextService} from \"../app-context-service\";\r\nimport {I18N} from \"aurelia-i18n\";\r\nimport { HttpResponseMessage } from \"aurelia-http-client\";\r\nimport { ModalService } from \"../modal-service\";\r\nimport { ErrorService } from \"../error-service\";\r\n\r\n@autoinject\r\nexport class ValueListService {\r\n\tconstructor(private api: ApiClient, private appContext: AppContextService, private i18n: I18N,\r\n\t\tprivate modal: ModalService) {\r\n\t}\r\n\r\n\t/*PROJECT SCOPE*/\r\n\tpublic async getValueListsOnProject(): Promise {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).get(\"ValueList/GetValueLists\")\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve value lists.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async getValueListById(valueListId: string): Promise {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).get(\"ValueList/GetValueListByIds?id=\" + valueListId)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve value list.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async getValueListItemsOnProject(id: string): Promise {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).get(`ValueList/GetValueListItemsByValueListId?id=${id}`)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve value list items.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async addNewListToProject(name: string): Promise {\r\n\t\tlet response: HttpResponseMessage = await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/MakeValueList\", name)\r\n\t\t\t.handleErrorWithErrorService(async (t: ErrorService, reason: HttpResponseMessage) => {\r\n\t\t\t\tif (reason?.statusCode == 409) {\r\n\t\t\t\t\tthis.modal.OpenMessage('Name already taken','The value list was not created. Please choose a unique name for your value list.');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.modal.OpenMessage(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_MakeValueList').replace('{0}', name));\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.response();\r\n\t\treturn response.response;\r\n\t}\r\n\r\n\tpublic async renameValueListOnProject(valueList: ValueListDto) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/RenameValueList\", valueList)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RenameValueList').replace('{0}', valueList.name))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async removeListFromProject(ids: string[]) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/RemoveValueList\", ids)\r\n\t\t\t// .handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RemoveValueList').replace('{0}', ids))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\t//This should be determined by an organization role, not an org role.\r\n\tpublic async changeProjectValueListIntoSystemValueList(id: string) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/ChangeProjectValueListIntoSystemValueList\", id)\r\n\t\t\t// .handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async addNewListItemOnProject(listItem: ValueListItemDto, parentListName: string | undefined) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/MakeValueListItem\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async renameListItemOnProject(listItem: ValueListItemDto, parentListName: string | undefined) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/RenameValueListItem\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t// .handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RenameValueListItem').replace('{0}', listItem.value).replace('{1}', parentListName))\r\n\t\t\t.response();\r\n\t}\r\n\t\r\n\tpublic async setDefaultListItemOnProject(item: ValueListItemDto, parentListName: string | undefined) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/SetDefaultValueListItem\", item)\t\t\t\t\t\t\t\t\t\t\t//Should probably be handled better. This is a quick fix to satisfy strict mode.\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_SetDefaultValueListItem').replace('{0}', item.value).replace('{1}', parentListName ? parentListName : \"\"))\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async reorderListItemOnProject(item: ValueListItemDto, parentListName: string | undefined) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/ReorderValueListItem\", item)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_ReorderValueListItem').replace('{0}', item.value).replace('{1}', parentListName ? parentListName : \"\"))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async removeListItemOnProject(item: ValueListItemDto, parentListName: string | undefined) {\r\n\t\treturn await this.api.projectWToken(this.appContext.projectId).postJson(\"ValueList/RemoveValueListItem\", item)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RemoveValueListItem').replace('{0}', item.value).replace('{1}', parentListName ? parentListName : \"\"))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async assignColorsWithProject(valueListId: string, projectId: string) {\r\n\t\tconsole.log('valueListId:',valueListId);\r\n\t\tlet api:RequestMethod = this.api.projectWToken(projectId);\r\n\t\tlet rsp = await api.postJson(\"ValueList/RandomizeColorsOnList\", {valueListId: valueListId})\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t.jsonResult();\r\n\t\treturn rsp;\r\n\t}\r\n\r\n\tpublic async assignColorToListItemWithProject(listItem: ValueListItemDto, projectId: string) {\r\n\t\treturn await this.api.projectWToken(projectId).postJson(\"ValueList/SetListItemColor\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\t/*SYSTEM SCOPE*/\r\n\r\n\r\n\tpublic async getValueListsOnSystem(): Promise {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\tlet result = await this.api.orgByToken(currentUser_OrgId).get(\"ValueList/GetValueLists\")\r\n\t\t\t// .handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve value lists.\")\r\n\t\t\t.jsonResult();\r\n\t\t\treturn result != undefined ? result : [];\r\n\r\n\t}\r\n\tpublic async getValueListItemsOnSystem(id: string): Promise {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).get(`ValueList/GetValueListItemsByValueListId?id=${id}`)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve value list items.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async addNewListToSystem(name: string): Promise {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\tlet response: HttpResponseMessage = await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/MakeValueList\", name)\r\n\t\t\t.handleErrorWithErrorService(async (t: ErrorService, reason: HttpResponseMessage) => {\r\n\t\t\t\tif (reason?.statusCode == 409) {\r\n\t\t\t\t\tthis.modal.OpenMessage('Name already taken','The value list was not created. Please choose a unique name for your value list.');\r\n\t\t\t\t} else if (reason?.statusCode == 403) {\r\n\t\t\t\t\tthis.modal.OpenMessage('Forbidden', \"The user does not have permission to perform this action.\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.modal.OpenMessage(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_MakeValueList').replace('{0}', name));\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.response();\r\n\t\treturn response.response;\r\n\t}\r\n\r\n\tpublic async renameValueListOnSystem(valueList: ValueListDto) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/RenameValueList\", valueList)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RenameValueList').replace('{0}', valueList.name))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async removeListFromSystem(ids: string[]) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/RemoveValueList\", ids)\r\n\t\t\t// .handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RemoveValueList').replace('{0}', list.name))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async addNewListItemOnSystem(listItem: ValueListItemDto, parentListName: string) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/MakeValueListItem\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async renameListItemOnSystem(listItem: ValueListItemDto, parentListName: string) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/RenameValueListItem\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t// .handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RenameValueListItem').replace('{0}', listItem.value).replace('{1}', parentListName))\r\n\t\t\t.response();\r\n\t}\r\n\r\n\tpublic async setDefaultListItemOnSystem(item: ValueListItemDto, parentListName: string) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/SetDefaultValueListItem\", item)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_SetDefaultValueListItem').replace('{0}', item.value).replace('{1}', parentListName))\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async reorderListItemOnSystem(item: ValueListItemDto, parentListName: string) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/ReorderValueListItem\", item)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_ReorderValueListItem').replace('{0}', item.value).replace('{1}', parentListName))\r\n\t\t\t.response();\r\n\r\n\t}\r\n\r\n\tpublic async removeListItemOnSystem(item: ValueListItemDto, parentListName: string) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/RemoveValueListItem\", item)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_RemoveValueListItem').replace('{0}', item.value).replace('{1}', parentListName))\r\n\t\t\t.response();\r\n\t}\r\n\tpublic async assignColorsWithOrgToken(valueListId: string) {\r\n\t\tconsole.log('valueListId:',valueListId);\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\t\tlet api:RequestMethod = this.api.orgByToken(currentUser_OrgId); //system;\r\n\t\tlet rsp = await api.postJson(\"ValueList/RandomizeColorsOnList\", {valueListId: valueListId})\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), this.i18n.tr('Error_Message_Generic'))\r\n\t\t\t.jsonResult();\r\n\t\treturn rsp;\r\n\t}\r\n\r\n\tpublic async assignColorToListItemByOrg(listItem: ValueListItemDto) {\r\n\t\tconst currentUser_OrgId = this.appContext.currentUserOrgId(); // this.api.appContext.currentUser?.organization.id;\r\n\r\n\t\treturn await this.api.orgByToken(currentUser_OrgId).postJson(\"ValueList/SetListItemColor\", listItem)\r\n\t\t\t.handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t\t.response();\r\n\t}\r\n}\r\n","import {autoinject} from \"aurelia-framework\";\r\nimport {EventAggregator} from \"aurelia-event-aggregator\";\r\nimport {ModalService} from \"../modal-service\";\r\nimport {IfcInfo} from \"../../models/viewer-dtos/Dtos/Bimsync/IfcDtos\";\r\nimport {ObjectIDsIF} from \"../../project/ifc-fun/openbim-container\";\r\nimport {ViewerMethodNames} from \"./viewer-method-names\";\r\n\r\ndeclare let $: any;\r\n\r\n@autoinject\r\nexport class Catenda_ViewerObjectInfoService {\r\n\t/* JG: This is actually a relatively cool and well-written class,\r\n\tif you for a moment ignore that it could have done with a bit more explanation.\r\n\t*/\r\n\t\r\n\tconstructor(private events: EventAggregator, private modal: ModalService) {\r\n\t}\r\n\r\n\tfindParentIds(infos: (IfcInfo | null)[], listOfObjectNRs: number[]) {\r\n\t\t// The idea is, that the items which are missing, are missing BECAUSE THEY ARE PARENTS.\r\n\t\tlet indicesNotFound: number[] = this.getIndicesNotFound(infos);\r\n\t\tlet parentObjectIds: number[] = listOfObjectNRs.filter((element, index) => indicesNotFound.includes(index));\r\n\t\treturn parentObjectIds;\r\n\t}\r\n\r\n\tprivate async findObjectsToHandle(objectIds: ObjectIDsIF, methodName: string): Promise {\r\n\t\tlet listOfObjectNRs: number[] = objectIds.objectIds;\r\n\t\tconsole.log('ViewerObjectInfoService.findObjectsToHandle', listOfObjectNRs);\r\n\t\tthis.events.publish('is-loading', true);\r\n\t\tlet self = this;\r\n\r\n\t\tif (listOfObjectNRs.includes(0)) {\r\n\t\t\tconsole.warn(\"Should never happen\");\r\n\t\t} // (JG - I moved this warning outside, here.)\r\n\r\n\t\t$('#viewerContainer3d').viewer('objectInfo', listOfObjectNRs, async (catendaInfos: (IfcInfo | null)[]) => {\r\n\t\t\tif (!catendaInfos.includes(null)) { // JG: apparently 'if all objectNr could be matched/located by catenda, then proceed directly/use them directly'.\r\n\t\t\t\tself.performViewerMethods(listOfObjectNRs, methodName);\r\n\t\t\t\treturn;\r\n\t\t\t} else { // 'because some are missing, we do some lookup':\r\n\t\t\t\tlet parentObjectIds: number[] = self.findParentIds(catendaInfos, listOfObjectNRs);\r\n\t\t\t\tconst correctObjectIds: number[] =\r\n\t\t\t\t\tcatendaInfos.filter((object: IfcInfo | null) => object != null)\r\n\t\t\t\t\t\t.map((object: IfcInfo | null) => object?.id); //Here we can just perform the healthy interaction on\r\n\t\t\t\tawait self.getChildrenFromParent(correctObjectIds, parentObjectIds, methodName);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/* The issue which getChildrenFromParent and its siblings solve, appears to be:\r\n\tThe IFC Express IDs that we encounter directly on the revit/collab DB objects, \r\n\tare not always represented directly as IFC entities in the Catenda object model.\r\n\tHowever, those 'missing' IDs we hold in our hand, do RELATE to the actual ones we need,\r\n\tso if we traverse the IFC object graph relations, we can find the ACTUAL/LEAF entities\r\n\tat the end of those relations. Sometimes as direct children, sometimes as related, e.g. grand-children (I think).\r\n\r\n\tThe workhorses are \tfetchChildrenNewChildren and bimsync.GetProductsInfoByInstanceObjectId,\r\n\twhich look up the IFC relations.\r\n\t*/\r\n\tasync getChildrenFromParent(correctObjectIds: number[], parentObjectIds: number[], methodName: string): Promise {\r\n\t\t// (The idea here being, that 'correctObjectIds' are those already accounted for, \r\n\t\t// and 'parentObjectIds' are those for which we still need to look up further info.)\r\n\t\tlet self = this;\r\n\t\tif (parentObjectIds.includes(0)) { // remove any 0 appearing there.\r\n\t\t\tparentObjectIds = parentObjectIds.filter((objectId: number) => objectId != 0);\r\n\t\t}\r\n\r\n\t\tlet listOfObjectsToCheck: number[] = await this.fetchChildrenNewChildren(parentObjectIds);\r\n\r\n\t\tawait $('#viewerContainer3d').viewer('objectInfo', listOfObjectsToCheck, async (catendaInfos: (IfcInfo | null)[]) => {\r\n\t\t\tif (!catendaInfos.includes(null)) { // means we got ENTIRE LIST mapped.\r\n\t\t\t\tcorrectObjectIds.push(...listOfObjectsToCheck);\r\n\t\t\t\tself.performViewerMethods(correctObjectIds, methodName);\r\n\t\t\t\treturn;\r\n\t\t\t} else { // But IF it contains nulls, only transfer those which are NOT NULL:\r\n\t\t\t\tcorrectObjectIds.push(\r\n\t\t\t\t\t...(catendaInfos.filter((object: (IfcInfo | null)) => object != null).map((object: (IfcInfo | null)) => object?.id))\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// The remaining null holes, indicate those that instead are PARENTS,\r\n\t\t\t\t// and thus must be processed as parents:\r\n\t\t\t\tlet parentObjectIds: number[] = self.findParentIds(catendaInfos, listOfObjectsToCheck);\r\n\t\t\t\tawait self.getChildrenFromParent(correctObjectIds, parentObjectIds, methodName);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tasync fetchChildrenNewChildren(parentObjectIds: number[]): Promise {\r\n\t\tthrow 'Should never be called as it is Catenda...'\r\n\t\t/*\r\n let childrenIds: number[] = [];\r\n try {\r\n for (let parent of parentObjectIds) {\r\n let children = (await this.bimsyncApi.getRelationByObjectId(parent))?.children?.map((child: IfcEntity) => child.objectId);\r\n if (children.length > 0) {\r\n childrenIds.push(...children); \r\n } else { \r\n let fakeParent = (await this.bimsyncApi.GetProductsInfoByInstanceObjectId(parent));\r\n console.warn(\"Object with no geometry found\" , fakeParent);\r\n }\r\n }\r\n } catch {\r\n console.warn(\"Some objects could not be fetched\");\r\n } finally {\r\n return childrenIds;\r\n }\r\n \r\n\t\t */\r\n\t}\r\n\r\n\tperformViewerMethods(correctObjectIds: number[], methodName: string): void {\r\n\t\tif (methodName === ViewerMethodNames.highlight) {\r\n\t\t\t$(\"#viewerContainer3d\").viewer(ViewerMethodNames.deselectAll);\r\n\t\t\t$('#viewerContainer2d').viewer2d(ViewerMethodNames.unselect);\r\n\t\t\t$('#viewerContainer3d').viewer(ViewerMethodNames.show, correctObjectIds);\r\n\t\t\t$(\"#viewerContainer3d\").viewer(ViewerMethodNames.select, correctObjectIds);\r\n\t\t\t$('#viewerContainer2d').viewer2d(ViewerMethodNames.select, correctObjectIds);\r\n\t\t} else { // WTF.. everything-else is, aparently, ViewerMethodNames.show..?\r\n\t\t\t$('#viewerContainer3d').viewer(ViewerMethodNames.show, correctObjectIds);\r\n\t\t\t$('#viewerContainer3d').viewer(methodName, correctObjectIds);\r\n\t\t}\r\n\t\tthis.events.publish('is-loading', false);\r\n\t}\r\n\r\n\tprivate getIndicesNotFound(info: (IfcInfo | null)[]): number[] { // UB: findParentIds. Could possibly be implemented smarter, with better javascript-fu.\r\n\t\tlet indices = [];\r\n\t\tfor (let i = 0; i < info.length; i++) {\r\n\t\t\tif (info[i] == null) {\r\n\t\t\t\tindices.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn indices;\r\n\t}\r\n\r\n\tasync hideObjects(objectIds: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIds, ViewerMethodNames.hide);\r\n\t}\r\n\r\n\tasync highlightObjects(objectIDs: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIDs, ViewerMethodNames.highlight);\r\n\t}\r\n\r\n\tasync lookAtObjects(objectIds: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIds, ViewerMethodNames.lookAt);\r\n\t}\r\n\r\n\tasync selectObjects(objectIds: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIds, ViewerMethodNames.select);\r\n\t}\r\n\r\n\tasync showObjects(objectIds: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIds, ViewerMethodNames.show);\r\n\t}\r\n\r\n\tasync transluteObjects(objectIds: ObjectIDsIF): Promise {\r\n\t\tawait this.findObjectsToHandle(objectIds, ViewerMethodNames.translucent);\r\n\t}\r\n\r\n\tasync hideOthers(objectIds: ObjectIDsIF): Promise {\r\n\t\treturn Promise.resolve(undefined);\r\n\t}\r\n\r\n\tasync transluteOthers(selectedObjectIds: ObjectIDsIF): Promise {\r\n\t\treturn Promise.resolve(undefined);\r\n\t}\r\n}\r\n","export enum ViewerMethodNames {\r\n select = \"select\",\r\n show = \"show\",\r\n lookAt = \"lookAt\",\r\n deselectAll = \"deselectAll\",\r\n unselect = \"unselect\",\r\n hide = \"hide\",\r\n hideAll = \"hideAll\",\r\n translucent = \"translucent\",\r\n highlight = \"highlight\" //Not really a viewer-method. Used for a specific case\r\n}","import {EventAggregator, Subscription} from \"aurelia-event-aggregator\";\r\nimport { autoinject } from \"aurelia-framework\";\r\n\r\ndeclare let $: any;\r\n\r\n@autoinject\r\nexport class ViewerService {\r\n\r\n constructor(public eventAggregator: EventAggregator) {}\r\n\r\n showSpaces(shouldShowSpaces: boolean): void {\r\n this.eventAggregator.publish('3dViewer:ShowSpaces', shouldShowSpaces);\r\n }\r\n\r\n setWalkMode(walkModeOn: boolean): void {\r\n if (walkModeOn) {\r\n $('#viewerContainer3d').viewer('enableGravity');\r\n } else {\r\n $('#viewerContainer3d').viewer('disableGravity'); \r\n }\r\n }\r\n\r\n enableJoystick(shouldShowJoystick: boolean): void {\r\n if(shouldShowJoystick) {\r\n $('#viewerContainer3d').viewerUI('showJoystick');\r\n } else {\r\n $('#viewerContainer3d').viewerUI('hideJoystick');\r\n }\r\n }\r\n\r\n setCameraView(cameraType: string, fov: number): void {\r\n $('#viewerContainer3d').viewer('viewpoint', null, function(viewpoint: any){\r\n viewpoint.type = cameraType;\r\n if (cameraType == 'orthogonal') { \r\n viewpoint.viewToWorldScale = 200;\r\n } else {\r\n viewpoint.fov = fov; \r\n }\r\n $('#viewerContainer3d').viewer('viewpoint' , viewpoint);\r\n });\r\n }\r\n\r\n setViewMode(viewMode: string): void {\r\n $('#viewerContainer3d').viewer('shading', viewMode);\r\n }\r\n\r\n setFieldOfView(value: number): void {\r\n if (value < 30) { value = 30; }\r\n if (value > 150) { value = 150; }\r\n value = parseFloat(value.toString());\r\n $('#viewerContainer3d').viewer('fieldOfView', value);\r\n }\r\n\r\n setRotationSpeed(value: number): void {\r\n if (value < 1) { value = 1; }\r\n if (value > 360) { value = 360; }\r\n value = parseFloat(value.toString());\r\n $('#viewerContainer3d').viewer('rotationSpeed', value);\r\n }\r\n\r\n setHorizontalSpeed(value: number): void {\r\n if (value < 1) { value = 1; }\r\n if (value > 100) { value = 100; }\r\n value = parseFloat((value.toString()));\r\n $('#viewerContainer3d').viewer('walkSpeed', value);\r\n }\r\n \r\n setVerticalSpeed(value: number): void {\r\n if (value < 1) { value = 1; }\r\n if (value > 100) { value = 100; }\r\n value = parseFloat(value.toString());\r\n $('#viewerContainer3d').viewer('elevationSpeed', value);\r\n }\r\n\r\n setTranslucentOpacity(value: number): void {\r\n if (value < 1) { value = 1; }\r\n if (value > 100) { value = 100; }\r\n value = parseFloat((value/100).toPrecision(2));\r\n $('#viewerContainer3d').viewer('translucentOpacity', value);\r\n }\r\n\r\n}","import { ApiClient } from 'app/services/api-client';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { Role, Manufacturer, CommonUser as CommonUserDto } from './user-mng-dtos';\r\nimport { AppContextService } from 'app/services/app-context-service';\r\nimport { ModalService } from 'app/services/modal-service';\r\n\r\n@autoinject\r\nexport class UserManager {\r\n private userToCreate: CommonUserDto = {userName: \"\",email:\"\",organization_Id:\"\", firstName:\"\",surname:\"\",molioIpLicense: false,manufacturer_Id: 0, roles: []};\r\n private roles:Role[] = [];\r\n private manufacturers: Manufacturer[] = [];\r\n private selectedManufacturer: string = \"No Manufacturer\";\r\n\r\n constructor(public apiClient: ApiClient, public appContext: AppContextService, public modal: ModalService) { }\r\n\r\n async bind(): Promise {\r\n console.log(\"users-bind\");\r\n this.roles = await this.apiClient.global.get(\"UserAdministration/GetAllowedRoles\").jsonResult();\r\n this.manufacturers = await this.apiClient.global.get(\"UserAdministration/GetManufacturers\").jsonResult();\r\n this.userToCreate.organization_Id = this.appContext.currentUser?.organization.id ? this.appContext.currentUser?.organization.id : \"00000000-0000-0000-0000-000000000000\";\r\n }\r\n\r\n async switchManufacturer(manu: Manufacturer): Promise {\r\n this.selectedManufacturer = manu.name;\r\n this.userToCreate.manufacturer_Id = manu.id;\r\n }\r\n\r\n async handleSelectChange(role: any): Promise { //Role does not have a selected, but it has been hacked in to check status.\r\n if (role.selected) {//The checkbox status is changed before this code is reached.\r\n this.userToCreate.roles.push(role);\r\n } else {\r\n let index = this.userToCreate.roles.indexOf(role)\r\n if (index > -1) {\r\n this.userToCreate.roles.splice(index, 1);\r\n }\r\n }\r\n console.log(this.userToCreate.roles);\r\n }\r\n async createUser(): Promise {\r\n console.log(\"This user will be created \" , this.userToCreate);\r\n let L = window.location;\r\n\t\tlet host = `${L.protocol}//${L.host}`; \r\n let response = await this.apiClient.global.postJson(`UserAdministration/CreateUserByCommonUser?host=${host}`, this.userToCreate).jsonResult();\r\n console.log(\"create user response \" , response);\r\n if (response.succeeded == true) {\r\n this.resetInputs();\r\n this.modal.OpenMessage(\"User successfully created\", \"If the user was possible to create, the user will now have received an email.\");\r\n return;\r\n } \r\n if (response.succeeded == false) {\r\n let errorMsgs = \"\"\r\n for (let error of response.errors) {\r\n errorMsgs = errorMsgs + error.description+ \"\\n\";\r\n }\r\n this.modal.OpenMessage(\"User not created\", errorMsgs);\r\n return;\r\n }\r\n }\r\n resetInputs():void {\r\n this.selectedManufacturer = \"No Manufacturer\";\r\n this.userToCreate.manufacturer_Id = 0;\r\n this.userToCreate = {\r\n userName: \"\",\r\n email:\"\",\r\n organization_Id:this.appContext.currentUser?.organization.id ? this.appContext.currentUser?.organization.id : \"00000000-0000-0000-0000-000000000000\", \r\n firstName:\"\",\r\n surname:\"\",\r\n molioIpLicense: false,\r\n manufacturer_Id: 0, \r\n roles: []\r\n };\r\n this.roles.forEach(role => {\r\n (role).selected = false;\r\n });\r\n }\r\n}"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","ValueListService","constructor","api","appContext","i18n","modal","getValueListsOnProject","this","projectWToken","projectId","get","handleError","tr","jsonResult","getValueListById","valueListId","getValueListItemsOnProject","addNewListToProject","name","postJson","handleErrorWithErrorService","async","t","reason","statusCode","OpenMessage","replace","response","renameValueListOnProject","valueList","removeListFromProject","ids","changeProjectValueListIntoSystemValueList","addNewListItemOnProject","listItem","parentListName","handleErrorUsingReason","renameListItemOnProject","setDefaultListItemOnProject","item","value","reorderListItemOnProject","removeListItemOnProject","assignColorsWithProject","console","log","assignColorToListItemWithProject","getValueListsOnSystem","currentUser_OrgId","currentUserOrgId","result","orgByToken","undefined","getValueListItemsOnSystem","addNewListToSystem","renameValueListOnSystem","removeListFromSystem","addNewListItemOnSystem","renameListItemOnSystem","setDefaultListItemOnSystem","reorderListItemOnSystem","removeListItemOnSystem","assignColorsWithOrgToken","assignColorToListItemByOrg","autoinject","I18N","Catenda_ViewerObjectInfoService","events","findParentIds","infos","listOfObjectNRs","indicesNotFound","getIndicesNotFound","filter","element","index","includes","findObjectsToHandle","objectIds","methodName","publish","self","warn","$","viewer","catendaInfos","parentObjectIds","correctObjectIds","object","map","getChildrenFromParent","performViewerMethods","objectId","listOfObjectsToCheck","fetchChildrenNewChildren","highlight","deselectAll","viewer2d","unselect","show","select","info","indices","i","length","hideObjects","hide","highlightObjects","objectIDs","lookAtObjects","lookAt","selectObjects","showObjects","transluteObjects","translucent","hideOthers","Promise","resolve","transluteOthers","selectedObjectIds","EventAggregator","ViewerMethodNames","ViewerService","eventAggregator","showSpaces","shouldShowSpaces","setWalkMode","walkModeOn","enableJoystick","shouldShowJoystick","viewerUI","setCameraView","cameraType","fov","viewpoint","type","viewToWorldScale","setViewMode","viewMode","setFieldOfView","parseFloat","toString","setRotationSpeed","setHorizontalSpeed","setVerticalSpeed","setTranslucentOpacity","toPrecision","UserManager","apiClient","userToCreate","userName","email","organization_Id","firstName","surname","molioIpLicense","manufacturer_Id","roles","manufacturers","selectedManufacturer","bind","global","currentUser","organization","switchManufacturer","manu","handleSelectChange","role","selected","indexOf","splice","createUser","L","window","location","host","protocol","succeeded","resetInputs","errorMsgs","error","errors","description","forEach"],"sourceRoot":""}