{"version":3,"file":"app-1f1c3628.cf250d5c75c9f5d5.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/services/object-services/ao-object-detail-service.ts","webpack://client-app/./src/app/services/object-services/aoc-object-filter-service.ts","webpack://client-app/./src/app/services/object-services/aom-object-parameter-service.ts","webpack://client-app/./src/app/services/object-services/img-svc-enum.ts","webpack://client-app/./src/app/services/object-services/object-detail-service.ts","webpack://client-app/./src/app/services/object-services/object-filter-service.ts","webpack://client-app/./src/app/services/object-services/object-parameter-service.ts","webpack://client-app/./src/app/services/object-services/aom-object-detail-service.ts","webpack://client-app/./src/app/services/object-services/aoc-object-detail-service.ts","webpack://client-app/./src/app/services/object-services/aoc-object-parameter-service.ts","webpack://client-app/./src/app/services/object-services/ao-object-parameter-service.ts","webpack://client-app/./src/app/services/object-services/aom-object-filter-service.ts","webpack://client-app/./src/app/services/object-services/ao-object-filter-service.ts","webpack://client-app/./src/app/services/object-services/aom-parameter-definition-service.ts","webpack://client-app/./src/app/services/object-services/ao-parameter-definition-service.ts","webpack://client-app/./src/app/services/object-services/aoc-parameter-definition-service.ts","webpack://client-app/./src/app/services/object-services/object-service-builder.ts"],"sourcesContent":["import { AppValues } from 'app/models/app-values';\n//import { ObjectValues } from 'app/models/object-values';\n//import { ObjectFilter } from 'app/models/object-filter';\nimport { ApiClient } from '../api-client';\n//import { ObjectDetails } from 'app/models/object-details';\n//import { IdNamePair } from 'app/models/idNamePair';\nimport { ObjectDetailService } from './object-detail-service';\nimport { ImgSvcEnum } from './img-svc-enum';\r\n\nexport class AoObjectDetailService extends ObjectDetailService {\n\tconstructor(imgSvcEnum: ImgSvcEnum, api: ApiClient, orgId:string){\n\t\tsuper(imgSvcEnum, api, AppValues.apiTarget.system, orgId); // apiInput is orgId, in this context. Not a good approach..\n }\n}\n","\r\nimport { AppValues } from 'app/models/app-values';\r\nimport { ApiClient } from '../api-client';\r\nimport { ValueFilterUI2 } from 'app/models/object-filter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport { ObjectFilterService } from './object-filter-service';\r\n\r\nexport class AocObjectFilterService extends ObjectFilterService {\r\n public get getStaticFilters(): ValueFilterUI2[] { return ObjectValues.staticAocFilters; } //ObjectFilter\r\n constructor(api: ApiClient, apiInput: any){\r\n super(api, AppValues.apiTarget.project, apiInput);\r\n }\r\n}\r\n","import { ObjectFilter } from 'app/models/object-filter';\r\nimport { ApiClient } from '../api-client';\r\nimport { ObjectParameter } from 'app/models/object-parameter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport { ObjectParameterService } from './object-parameter-service';\r\nimport { AppValues } from 'app/models/app-values';\r\nimport { ObjectDetails } from 'app/models/object-details';\r\n\r\nexport class AomObjectParameterService extends ObjectParameterService {\r\n constructor(api: ApiClient){\r\n super(api, AppValues.apiTarget.manufacturer);\r\n }\r\n\r\n \r\n\tpublic async getFamilyParameters(objectTypeIds: string[], familyPropertieIds: string[], typePropertieIds: string[]): Promise{\r\n\t\tconsole.log('getFamilyParameters calling GTP with ', objectTypeIds);\r\n\r\n\t\t//Denne syntax er Shorthand Property Names, aka Object Initializer Property Shorthand, fra ES6/ES2015\r\n return await this.api.manufacturer\r\n .postJson(`ObjectParameter/GetTypeParameters`, JSON.stringify({ objectTypeIds, familyPropertieIds, typePropertieIds }))\r\n\t\t\t.objectResult();\r\n\t}\r\n\tpublic async reloadTypeParamVALUES(types: ObjectDetails[], filters: ObjectFilter[]): Promise{\r\n\t\tlet typeIds = types.map(x => x.typeId);\r\n let familyPropertieIds: string[] = [];\r\n let typePropertieIds: string[] = [];\r\n filters.filter(x => !x.hide)\r\n .forEach(x => {\r\n if (x.targetId && x.targetType === ObjectValues.targetTypes.familyParameter)\r\n familyPropertieIds.push(x.targetId);\r\n else if (x.targetId && x.targetType === ObjectValues.targetTypes.typeParameter)\r\n typePropertieIds.push(x.targetId);\r\n });\r\n let parameters = await this.getFamilyParameters(typeIds, familyPropertieIds, typePropertieIds);\t\t\t\t\r\n types.forEach(x => x.properties = parameters.filter(property => property.elementId === x.typeId));\r\n\t}\r\n}\r\n","\r\nexport enum ImgSvcEnum {\r\n LocalSvc = 'L',\r\n ExtSvc='X'\r\n}\r\n\r\n","import {autoinject} from 'aurelia-framework';\r\nimport {ObjectValues} from 'app/models/object-values';\r\nimport {ObjectFilter} from 'app/models/object-filter';\r\nimport {ApiClient} from '../api-client';\r\nimport { RequestMethod } from '../RequestMethod';\r\nimport {ObjectDetails} from 'app/models/object-details';\r\nimport {IdNamePair} from 'app/models/idNamePair';\r\nimport { ImgSvcEnum } from './img-svc-enum';\r\n\r\nimport * as settings from 'app-settings.json';\r\nimport {AppValues} from '../../models/app-values';\r\n\r\nexport interface FilterIF {\r\n\tsort:string;\r\n\tcomparison:string;\r\n\ttargetId: string;\r\n\ttargetType: string;\r\n\tvalue: string;\r\n}\r\n\r\n@autoinject\r\nexport abstract class ObjectDetailService {\r\n\tconstructor(public imgSvcEnum: ImgSvcEnum, private api: ApiClient, private apiTarget: string, private apiInput: any = null){\r\n\t\tlet api_url = this.api.getApiUrl();\r\n\t\tif (!api_url) { throw 'empty api URL!'; }\r\n\t}\r\n\r\n private mapFilters(filters: ObjectFilter[]): FilterIF[] {\r\n return filters.map( \r\n\t\t\t(x:ObjectFilter) => { \r\n\t\t\t\treturn {\r\n\t\t\t\t\tsort: Boolean(x.selectedSortingOption) ? x.selectedSortingOption?.name : ObjectValues.sortingMethods.none.name,\r\n\t\t\t\t\tcomparison: Boolean(x.selectedComparisonOption) ? x.selectedComparisonOption?.name : null,\r\n\t\t\t\t\ttargetId: x.targetId,\r\n\t\t\t\t\ttargetType: x.targetType,\r\n\t\t\t\t\tvalue: x.value,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t );\r\n\t}\r\n\r\n\r\n\t//private getApiUrl(): string { return this.api.getApiUrl(); } // for img-urls.\r\n\tpublic getImgUrl(): string {\t\t\r\n\t\tif (this.imgSvcEnum == ImgSvcEnum.ExtSvc) {\r\n\t\t\treturn settings.externalUrls.imageServer;\r\n\t\t} else {\r\n\t\t\t\r\n\t\t\treturn this.api.getApiUrl() + '/api/global/Image' // in getImgUrl.\r\n\t\t}\r\n\t}\r\n\r\n\t// vi skal ogsaa kende vores orgId.\r\n\tpublic getOrgId(): string {\r\n\t\t// vi skal ogsaa have fat i brugerens orgId&company.\r\n\t\t// vi maa have noget brugerId, projectId, orgId..\r\n\t\t// apiInput er nogen gange projektId.\r\n\t\t// AoxObjectServiceBuilder har en input, den gir videre til AocObjectDetailService.\r\n\t\t// Og det er ObjectServiceBuilder, der laver AoxObjectServiceBuilder.\r\n\t\t// Og den f�r projectId som arg til ForAjourCollab_OSB,\r\n\t\t// og det faas fra this.appContext.projectId, som er AppContextService.\r\n\t\t// Den har UserDto, som har organization: {id.\r\n\t\t// AppContextService er noget, ..alle..? har.\r\n\t\t// Hmm, ObjSvcBuilder.ForAjourCollab_OSB bliver fodret fra\r\n\t\t// ObjectListBuilder.ForAjourCollab_OLB\r\n\t\t// Den bliver normalt fodret i building-parts.activate().\r\n\t\t// saa vi skal nok fixe ForAjourObjects_OLB() til at faa orgId med.\r\n\r\n\t\t/* By a rather convoluted and not-good mechanism,\r\n\t\t * ObjectListBuilder forwards the orgId through a maze of builders,\r\n\t\t * so we can access it here as apiInput\r\n\t\t */\r\n\r\n\t\treturn (this.apiTarget == AppValues.apiTarget.system ? this.apiInput : settings.manufacturerOrgId);\r\n\t}\r\n\r\n\tpublic async queryObjectInstances(resultIndex: number, resultRows: number, filters: ObjectFilter[]): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectDetail/queryObjectInstances/${resultIndex}/${resultRows}`, this.mapFilters(filters))\r\n .objectResult();\r\n\t}\r\n\r\n\tpublic async queryObjectTypes(who:string, resultIndex: number, resultRows: number, filters: ObjectFilter[]): Promise{ // UB e.g. OLSS.getTypes\r\n\t\t/* NB! If this is executed when NO PROJECT IS SELECTED,\r\n\t\tit will fail!\r\n\t\t\r\n\t\t JG: Jeg har mistanke om, at der er noget rod med QOT;\r\n\t\t * det er som om den fyrer flere gange undervejs, mens vi er ved at sætte data op,\r\n\t\t * f.eks. 3 gange - og den burde kun fyre 1 gang!\r\n\t\t */\r\n\r\n\t\t//TMI console.log('apiTarget', this.apiTarget);\r\n\t\t//TMI console.log('apiInput', this.apiInput);\r\n\t\tconsole.log('qot,Filters', who, filters, 'apiTarget:', this.apiTarget, 'apiInput:', this.apiInput);\r\n\t\t\r\n let answer = await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectDetail/queryObjectTypes/${resultIndex}/${resultRows}`, this.mapFilters(filters))\r\n .handleErrorUsingReason(\"Could not get type\")\r\n .objectResult();\r\n\t\treturn answer;\r\n\t}\r\n\r\n\tpublic async queryObjectFamilies(resultIndex: number, resultRows: number, filters: ObjectFilter[]): Promise{\r\n\t\t/* Be aware: The ObjectDetails gotten here are FAMILY LEVEL,\r\n\t\tso the typeInfo fields are filled out with null/empty values, by design!\r\n\r\n\t\t*/\r\n\t\tlet mappedFilters:FilterIF[] = this.mapFilters(filters);\r\n\r\n\t\tlet rm: RequestMethod = this.api.target(this.apiTarget, this.apiInput);\r\n\t\tlet path = `ObjectDetail/queryObjectFamilies/${resultIndex}/${resultRows}`;\r\n\t\t\r\n let z:ObjectDetails[] = await rm\r\n .postJson(path, mappedFilters)\r\n .objectResult();\r\n\t\tif (!z) { throw 'queryObjectFamilies empty response?'; }\r\n\r\n\t\tconsole.log('qof',z);\r\n\t return z;\r\n\t}\r\n\r\n\tpublic async queryFamilyTypes(filters: ObjectFilter[]): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectDetail/queryFamilyTypes`, this.mapFilters(filters))\r\n .objectResult();\r\n\t}\r\n}\r\n","//import { AppValues } from 'app/models/app-values';\r\n\r\nimport { ApiClient } from '../api-client';\r\nimport { RequestMethod } from '../RequestMethod';\r\nimport { IdNamePair } from 'app/models/idNamePair';\r\nimport { ObjectFilter, ObjectFilterDTO, ValueFilter, ValueFilterUI2 } from 'app/models/object-filter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport { SettingNames } from 'app/models/setting-dto';\r\nimport { FilterDto } from 'app/models/filter-dto';\r\n\r\n\r\nexport abstract class ObjectFilterService {\r\n public get getStaticFilters(): ValueFilterUI2[] { return ObjectValues.staticFiltersAll; } //ObjectFilter\r\n\r\n constructor(private api: ApiClient, private apiTarget: string, private apiInput: any = null) { \r\n\t\tif (apiInput == 'undefined') { console.trace('ObjectFilterService sees string-undefined'); }\r\n }\r\n public getStaticGrouping(filters: ValueFilterUI2[]): ValueFilterUI2[] | undefined { //ObjectFilter\r\n let category = filters.find(x => x.targetType == ObjectValues.targetTypes.category);\r\n let family = filters.find(x => x.targetType == ObjectValues.targetTypes.family);\r\n let type = filters.find(x => x.targetType == ObjectValues.targetTypes.type); \r\n if (category && family && type) {\r\n return [\r\n category,\r\n family,\r\n type\r\n ].filter(x => Boolean(x));\r\n }\r\n } \r\n\r\n public mapToQUERY_Filters(filters: ObjectFilter[]): ObjectFilterDTO[]{\r\n /* Also, this maps a 'client' filter to\r\n a client2server filter (what I want to call a 'queryfilter').\r\n IE, \r\n */\r\n // This maps from a mixture of FilterSettingsDto (last 3) and ? \r\n // JG: This is really C:\\dev\\aoc\\AO.Queries\\Common\\AOXObjectDtos\\ObjectFilter.cs, which only has 5 fields.\r\n return filters.map( (x:ObjectFilter) => { return {\r\n\t\t\ttargetId: x.targetId,\r\n\t\t\ttargetType: x.targetType,\r\n\t\t\tvalue: x.value,\r\n\t\t\tsort: Boolean(x.selectedSortingOption) ? x.selectedSortingOption?.name : ObjectValues.sortingMethods.none.name,\r\n\t\t\tcomparison: Boolean(x.selectedComparisonOption) ? x.selectedComparisonOption?.name : null\r\n\t\t};});\r\n }\r\n\r\n public async getSearchAutocompleteResults(filterTargetType: string, searchTerm: string): Promise {\r\n let x = await this.api.target(this.apiTarget)\r\n .get(`ObjectFilter/AutocompleteSearch/${filterTargetType}/${searchTerm}`)\r\n .objectResult();\r\n console.log('getSearchAutocompleteResults', filterTargetType, x);\r\n return x;\r\n }\r\n public async OFS_getRowFilters(target: ObjectFilter, filters: ObjectFilter[]): Promise {\r\n console.log('OFS_getRowFilters');\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectFilter/GetRowFilters`, { \r\n target: this.mapToQUERY_Filters([target])[0], \r\n filters: this.mapToQUERY_Filters(filters)\r\n })\r\n .objectResult();\r\n }\r\n\r\n\tpublic async getProjectCategories(): Promise {\r\n let api:RequestMethod = this.api.target(this.apiTarget, this.apiInput);\r\n let call = api.get(`Category/GetProjectIncludedCategories`);\r\n let r2 = call.objectResult();\r\n\t\treturn r2;\r\n\t}\r\n\r\n public async hasRows(target: ObjectFilter, filters: ObjectFilter[]): Promise {\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectFilter/HasRows`, { \r\n target: this.mapToQUERY_Filters([target])[0], \r\n filters: this.mapToQUERY_Filters(filters)\r\n })\r\n .objectResult();\r\n }\r\n\r\n public async getValueFilters(contextType: string, contextId: string): Promise {\r\n return await this.api.target(this.apiTarget)\r\n .get(`ObjectFilter/GetValueFilters/${contextType}/${contextId}`)\r\n .jsonResult().catch(async reason => console.error(await reason.json()));\r\n }\r\n \r\n\tpublic async getAvailableFiltersByCategory(categoryId: string, filters: ObjectFilter[]): Promise {\r\n\t\t// Giver paa en eller anden maade dubletter?\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectFilter/GetAvailableFiltersByCat/${categoryId}`, this.mapToQUERY_Filters(filters))\r\n .objectResult();\r\n\t}\r\n\t\r\n\tpublic async getAvailableFilters(applied_or_all_Filters: ObjectFilter[]): Promise {\r\n\t\t/* NB! applied_or_all_Filters only seems to have effect for SYSTEM(manufacturer) queries,\r\n\t\t not for project queries!\r\n\t\t (I think it is probably because for manufacturer, it uses the existing filters\r\n\t\tto limit to families or revitTypes, and only shows filter-columns applicable to those families or types? )\r\n\t\t*/\r\n let queryFilters: ObjectFilterDTO[] = this.mapToQUERY_Filters(applied_or_all_Filters); // really more like MappedFilterDTO\r\n let data:ValueFilter[] = \r\n await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectFilter/GetAvailableFilters`, queryFilters)\r\n .objectResult();\r\n return data;\r\n }\r\n\r\n\t//FIXME\r\n\tpublic async ofs_getDefaultFilter(projectId: string): Promise{\r\n\t\t// JG: I don't think this is ever called, instead the same method is manually called elsewhere?\r\n\t\tconsole.log('object-filter/service.ofs_getDefaultFilter will get lastAppliedFilters');\r\n\t\treturn await this.api.system\r\n\t\t\t.get(`Setting/GetSetting/${projectId}/${SettingNames.lastAppliedFilters}`)//ofs_getDefaultFilter\r\n\t\t\t.jsonResult();\r\n\t}\r\n}\r\n","import { ObjectDetails } from './../../models/object-details';\r\nimport { ObjectFilter } from 'app/models/object-filter';\r\nimport { ApiClient } from '../api-client';\r\nimport { RequestMethod } from '../RequestMethod';\r\nimport { ObjectParameter } from 'app/models/object-parameter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport {ObjectDisplayUnits} from \"../../models/object-display-units\";\r\n\r\nexport abstract class ObjectParameterService {\r\n constructor(protected api: ApiClient, private apiTarget: string, protected apiInput: any = null){\r\n\r\n }\r\n private mapFilters(filters: ObjectFilter[]): any[]{\r\n return filters.map(x => { return {\r\n\t\t\tsort: Boolean(x.selectedSortingOption) ? x.selectedSortingOption?.name : ObjectValues.sortingMethods.none.name,\r\n\t\t\tcomparison: Boolean(x.selectedComparisonOption) ? x.selectedComparisonOption?.name : null,\r\n\t\t\ttargetId: x.targetId,\r\n\t\t\ttargetType: x.targetType,\r\n\t\t\tvalue: x.value,\r\n\t\t};});\r\n }\r\n\r\n\tpublic async reloadTypeParamVALUES(types: ObjectDetails[], filters: ObjectFilter[], who:string): Promise {\r\n\t\tlet objectTypeIds:string[] = types.map(x => x.typeId);\r\n\r\n\t\tlet parameterDefinitionIds:string[] = [];\r\n filters.filter(x => !x.hide && x.targetType === ObjectValues.targetTypes.typeParameter)\r\n\t\t\t .forEach(x => parameterDefinitionIds.push(x.targetId ? x.targetId : \"\"));\r\n\r\n\t\t// giver det mening, at den bliver kaldt 3 gange ved page load?\r\n\t\t//console.log('xxsetTypeParameters calling GTP with ', objectTypeIds); // Syntaxen nedenfor er ES6 shorthand property names.\r\n\r\n\t\tlet api:RequestMethod = this.api.target(this.apiTarget, this.apiInput);\r\n\r\n\t\t// JG: Det her er vist egentlig VALUES? (som de har kaldt parameters.)\r\n\t\tconst freshValues: ObjectParameter[] = await\r\n\t\t\tapi\r\n\t\t\t.postJson(`ObjectParameter/GetTypeParameters`, JSON.stringify({objectTypeIds, parameterDefinitionIds}))\r\n\t\t\t.handleErrorMsgUsingReason('Error', 'could not retrieve type parameters')\r\n\t\t\t.objectResult();\r\n\r\n\t\tconsole.log('setTypeParameters','who:', who,',filts:', filters, ', #OT-IDs:', objectTypeIds.length, ', PD-Ids (TP):', parameterDefinitionIds,'->values:', freshValues);\r\n\r\n types.forEach( (type:ObjectDetails) => {\r\n if (!Boolean(type.properties)) { type.properties = []; } // (Ensure init to at least empty.)\r\n\r\n let newParameters = freshValues.filter(property => property.elementId === type.typeId);\r\n\r\n if (!Boolean(newParameters)) { newParameters = []; } // (Ensure init to at least empty.)\r\n type.properties.splice(0, // (\"From the start of the array\".)\r\n\t\t\t\t type.properties.length, // (\"Delete all previous content.\")\r\n\t\t\t\t\t\t\t\t ...newParameters // (\"Replace with the fresh batch\".)\r\n\t\t\t\t\t\t\t\t );\r\n });\r\n\t}\r\n\t\r\n\tpublic async getTypeDisplayUnits(types: ObjectDetails[], logUnits:boolean): Promise{\r\n\t\tlet mapped_typeIds = types.map(x => x.typeId);\r\n\t\tlet unique_IDs = new Set(mapped_typeIds);\r\n\t\tlet typeIds:string[] = [...unique_IDs];\r\n\r\n\t\tlet result = await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/GetTypeDisplayUnits`, JSON.stringify({ typeIds }))\r\n\t\t\t.objectResult();\r\n\t\t\tif (logUnits) { console.log(`ObjectParameter/GetTypeDisplayUnits` , result); }\r\n\t\t\treturn result;\r\n\t}\r\n\r\n\tpublic async setInstanceParameters(instances: ObjectDetails[], filters: ObjectFilter[], who: string): Promise{\r\n\t\tconsole.log('SIP', who, instances.length, filters.length);\r\n\t\tlet instanceIds:string[] = instances.map(x => x.instanceId);\r\n\r\n\t\tlet parameterDefinitionIds: string[] = [];\r\n filters.filter(x => !x.hide && x.targetType === ObjectValues.targetTypes.instanceParameter)\r\n\t\t\t.forEach(x => parameterDefinitionIds.push(x.targetId ? x.targetId : \"\"));\r\n\r\n\t\t/* JG: Dette approach er broken,\r\n\t\t * sql engine kan ikke holde til det, hvis vi sender mere end 2100 args med.\r\n\t\t Dette burde aendres til istedet at hente per revit-type?\r\n\t\t Og saa maaske med et paging-interface?\r\n\t\t */ \r\n\r\n\t\t /*\r\n\t\t\tRT: For at lappe på det broken approach , 'chunkes' instances, hvis \r\n\t\t\tdet samlede antal af instances + parameterDefinitionIds > 2100.\r\n\t\t */\r\n\r\n\t\tlet parameters:ObjectParameter[] = [];\r\n\t\tif (instanceIds.length + parameterDefinitionIds.length > (2100-20)) {\r\n\t\t\tconst chunkSize = 1000;\r\n\t\t\tfor (let i = 0; i < instanceIds.length; i += chunkSize) {\r\n\t\t\t\tconst chunk = instanceIds.slice(i, i + chunkSize);\r\n\t\t\t\tconst chunkParameters = await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t\t.postJson(`ObjectParameter/GetInstanceParameters`, JSON.stringify({ instanceIds:chunk, parameterDefinitionIds }))\r\n\t\t\t\t.handleErrorMsgUsingReason('Error', \"GetInstanceParameters failed.\")\r\n\t\t\t\t.objectResult(); // Her stod any, men det maa da vaere ObjectParameter, hvis noget, formoder jeg?\r\n\t\t\t\tparameters.push(...chunkParameters);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tparameters = await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t\t.postJson(`ObjectParameter/GetInstanceParameters`, JSON.stringify({ instanceIds, parameterDefinitionIds }))\r\n\t\t\t\t.handleErrorMsgUsingReason('Error', \"GetInstanceParameters failed.\")\r\n\t\t\t\t.objectResult(); // Her stod any, men det maa da vaere ObjectParameter, hvis noget, formoder jeg?\r\n\t\t}\r\n\r\n\r\n instances.forEach( (od:ObjectDetails) => {\r\n if (!Boolean(od.properties)) { od.properties = []; }\r\n let newParameters:ObjectParameter[] = parameters.filter(property => property.elementId === od.instanceId);\r\n if (!Boolean(newParameters)) { newParameters = []; }\r\n od.properties.splice(0, od.properties.length, ...newParameters);\r\n });\r\n\t}\r\n\t\r\n\tpublic async GetAllTypeParameters(typeId: string): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .get(`ObjectParameter/GetAllTypeParameters/${typeId}`)\r\n\t\t\t.objectResult();\r\n\t}\r\n\r\n\tpublic async updateInstanceParameter(instanceParameterValueId: string, parameterValue: string|undefined): Promise{\r\n\t\tconsole.log('object-parameter-service.updateInstanceParameter');\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectParameter/UpdateInstanceParameter/${instanceParameterValueId}`, parameterValue)\r\n .noResponse();\r\n }\r\n \r\n public async updateTypeParameter(typeParameterId: string, parameterValue: string): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectParameter/UpdateTypeParameter/${typeParameterId}`, parameterValue)\r\n .noResponse();\r\n }\r\n public async createInstanceParameter(instanceId: string, parameterDefinitionId: string, parameterValue: string): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectParameter/createInstanceParameter/${instanceId}/${parameterDefinitionId}`, parameterValue)\r\n .noResponse();\r\n }\r\n \r\n public async createTypeParameter(typeId: string, parameterDefinitionId: string, parameterValue: string): Promise{\r\n return await this.api.target(this.apiTarget, this.apiInput)\r\n .postJson(`ObjectParameter/createTypeParameter/${typeId}/${parameterDefinitionId}`, parameterValue)\r\n .noResponse();\r\n\t}\r\n\r\n\tpublic async updateInstanceParameters(instanceParameterValueIds: string[], parameterValue: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/UpdateInstanceParameterValues`, { valueIds: instanceParameterValueIds, newValue : parameterValue })\r\n\t\t\t.noResponse();\r\n\t}\r\n\r\n\tpublic async updateTypeParameters(typeParameterIds: string[], parameterValue: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/UpdateTypeParameterValues`, { valueIds: typeParameterIds, newValue : parameterValue })\r\n\t\t\t.noResponse();\r\n\t}\r\n\tpublic async createInstanceParameters(instanceIds: string[], parameterDefinitionId: string, parameterValue: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/createInstanceParameters`, {instanceIds : instanceIds, parameterDefinitionId : parameterDefinitionId, parameterValue : parameterValue})\r\n\t\t\t.noResponse();\r\n\t}\r\n\r\n\tpublic async createTypeParameters(typeIds: string[], parameterDefinitionId: string, parameterValue: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/createTypeParameters/`, {typeIds : typeIds, parameterDefinitionId : parameterDefinitionId, parameterValue : parameterValue})\r\n\t\t\t.noResponse();\r\n\t}\r\n\r\n\tpublic async updateClassificationInstanceParameters(instanceParameterValueIds: string[], parameterDefinitionId: string, nodeId: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/UpdateClassificationInstanceParameterValues`, { valueIds: instanceParameterValueIds, parameterDefinitionId : parameterDefinitionId, nodeId : nodeId })\r\n\t\t\t.noResponse();\r\n\t}\r\n\r\n\tpublic async updateClassificationTypeParameters(typeParameterIds: string[], parameterDefinitionId: string, nodeId: string): Promise{\r\n\t\tconsole.log('updateClassificationTypeParameters, nodeId:', nodeId);\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/UpdateClassificationTypeParameterValues`, { valueIds: typeParameterIds, parameterDefinitionId : parameterDefinitionId, nodeId : nodeId })\r\n\t\t\t.noResponse();\r\n\t}\r\n\tpublic async createClassificationInstanceParameters(instanceIds: string[], parameterDefinitionId: string, nodeId: string): Promise{\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/createClassificationInstanceParameters`, {instanceIds : instanceIds, parameterDefinitionId : parameterDefinitionId, nodeId : nodeId})\r\n\t\t\t.noResponse();\r\n\t}\r\n\r\n\tpublic async createClassificationTypeParameters(typeIds: string[], parameterDefinitionId: string, nodeId: string): Promise{\r\n\t\tconsole.log('createClassificationTypeParameters, nodeId:', nodeId);\r\n\t\treturn await this.api.target(this.apiTarget, this.apiInput)\r\n\t\t\t.postJson(`ObjectParameter/createClassificationTypeParameters/`, {typeIds : typeIds, parameterDefinitionId : parameterDefinitionId, nodeId : nodeId})\r\n\t\t\t.noResponse();\r\n\t}\r\n}\r\n","import { ApiClient } from '../api-client';\nimport { ObjectDetailService } from './object-detail-service';\nimport { AppValues } from 'app/models/app-values';\nimport { ImgSvcEnum } from './img-svc-enum';\r\n\nexport class AomObjectDetailService extends ObjectDetailService {\n\tconstructor(imgSvcEnum: ImgSvcEnum, api: ApiClient){\n\t\tsuper(imgSvcEnum, api, AppValues.apiTarget.manufacturer);\n }\n}\n","import { AppValues } from 'app/models/app-values';\n//import { ObjectValues } from 'app/models/object-values';\n//import { ObjectFilter } from 'app/models/object-filter';\nimport { ApiClient } from '../api-client';\n//import { ObjectDetails } from 'app/models/object-details';\n//import { IdNamePair } from 'app/models/idNamePair';\nimport { ObjectDetailService } from './object-detail-service';\nimport { ImgSvcEnum } from './img-svc-enum';\r\n\nexport class AocObjectDetailService extends ObjectDetailService {\n\tconstructor(imgSvcEnum: ImgSvcEnum, api: ApiClient, apiInput: any){\n\t\tsuper(imgSvcEnum, api, AppValues.apiTarget.project, apiInput);\n }\n}\n","import { ApiClient } from '../api-client';\r\nimport { ObjectParameterService } from './object-parameter-service';\r\nimport { AppValues } from 'app/models/app-values';\r\n\r\n//import { ObjectFilter } from 'app/models/object-filter';\r\n//import { ObjectParameter } from 'app/models/object-parameter';\r\n//import { ObjectValues } from 'app/models/object-values';\r\n\r\nexport class AocObjectParameterService extends ObjectParameterService {\r\n constructor(api: ApiClient, apiInput: any){\r\n super(api, AppValues.apiTarget.project, apiInput);\r\n }\r\n}\r\n","import { ApiClient } from '../api-client';\r\nimport { ObjectParameterService } from './object-parameter-service';\r\nimport { AppValues } from 'app/models/app-values';\r\n\r\n//import { ObjectFilter } from 'app/models/object-filter';\r\n//import { ObjectParameter } from 'app/models/object-parameter';\r\n//import { ObjectValues } from 'app/models/object-values';\r\n\r\nexport class AoObjectParameterService extends ObjectParameterService {\r\n constructor(api: ApiClient){\r\n super(api, AppValues.apiTarget.system);\r\n }\r\n}\r\n","\r\nimport { AppValues } from '../../models/app-values';\r\nimport { ApiClient } from '../api-client';\r\nimport { ObjectFilter, ValueFilterUI2 } from 'app/models/object-filter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport { ObjectFilterService } from './object-filter-service';\r\n\r\nexport class AomObjectFilterService extends ObjectFilterService {\r\n public get getStaticFilters(): ValueFilterUI2[] { return ObjectValues.staticAoFilters; } //ObjectFilter\r\n constructor(api: ApiClient){\r\n super(api, AppValues.apiTarget.manufacturer);\r\n }\r\n //Was ObjectFilter, but strict mode complained.\r\n public getStaticGrouping(filters: ValueFilterUI2[]): ValueFilterUI2[] | undefined {\r\n let manu = filters.find(x => x.targetType == ObjectValues.targetTypes.manufacturer);\r\n let category = filters.find(x => x.targetType == ObjectValues.targetTypes.category);\r\n let family = filters.find(x => x.targetType == ObjectValues.targetTypes.family);\r\n if (manu && category && family) {\r\n return [\r\n manu,\r\n category,\r\n family\r\n ].filter(x => Boolean(x));\r\n }\r\n }\r\n}\r\n","\r\nimport { AppValues } from '../../models/app-values';\r\nimport { ApiClient } from '../api-client';\r\n//import { IdNamePair } from 'app/models/idNamePair';\r\nimport { ObjectFilter, ValueFilterUI2 } from 'app/models/object-filter';\r\nimport { ObjectValues } from 'app/models/object-values';\r\nimport { ObjectFilterService } from './object-filter-service';\r\n\r\nexport class AoObjectFilterService extends ObjectFilterService {\r\n public get getStaticFilters(): ValueFilterUI2[] { return ObjectValues.staticAoFilters; }//ObjectFilter\r\n constructor(api: ApiClient){\r\n super(api, AppValues.apiTarget.system);\r\n }\r\n}\r\n","import {ParameterDefinitionService} from \"./parameter-definition-service\";\r\nimport {ApiClient} from \"../api-client\";\r\nimport {AppValues} from \"../../models/app-values\";\r\n\r\nexport class AomParameterDefinitionService extends ParameterDefinitionService{\r\n\tconstructor(apiClient:ApiClient) {\r\n\t\tsuper(apiClient, AppValues.apiTarget.manufacturer);\r\n\t}\r\n}\r\n","import {ParameterDefinitionService} from \"./parameter-definition-service\";\r\nimport {ApiClient} from \"../api-client\";\r\nimport {AppValues} from \"../../models/app-values\";\r\n\r\nexport class AoParameterDefinitionService extends ParameterDefinitionService{\r\n\tconstructor(apiClient:ApiClient) {\r\n\t\tsuper(apiClient, AppValues.apiTarget.system);\r\n\t}\r\n}\r\n","import {ParameterDefinitionService} from \"./parameter-definition-service\";\r\nimport {ApiClient} from \"../api-client\";\r\nimport {AppValues} from \"../../models/app-values\";\r\n\r\nexport class AocParameterDefinitionService extends ParameterDefinitionService{\r\n\tconstructor(apiClient:ApiClient, projectId:string) {\r\n\t\tsuper(apiClient, AppValues.apiTarget.project, projectId);\r\n\t}\r\n}\r\n","import { AomObjectDetailService } from './aom-object-detail-service';\r\nimport { AppValues } from 'app/models/app-values';\r\nimport { ApiClient } from 'app/services/api-client';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { AocObjectDetailService } from './aoc-object-detail-service';\r\nimport { ObjectDetailService } from './object-detail-service';\r\nimport { ObjectParameterService } from './object-parameter-service';\r\nimport { ObjectFilterService } from './object-filter-service';\r\nimport { AomObjectParameterService } from './aom-object-parameter-service';\r\nimport { AocObjectParameterService } from './aoc-object-parameter-service';\r\nimport { AocObjectFilterService } from './aoc-object-filter-service';\r\nimport { AoObjectDetailService } from './ao-object-detail-service';\r\nimport { AoObjectParameterService } from './ao-object-parameter-service';\r\nimport { AomObjectFilterService } from './aom-object-filter-service';\r\nimport { AoObjectFilterService } from './ao-object-filter-service';\r\nimport {ParameterDefinitionService} from \"./parameter-definition-service\";\r\nimport {AomParameterDefinitionService} from \"./aom-parameter-definition-service\";\r\nimport {AoParameterDefinitionService} from \"./ao-parameter-definition-service\";\r\nimport {AocParameterDefinitionService} from \"./aoc-parameter-definition-service\";\r\n\r\nimport { ImgSvcEnum } from './img-svc-enum';\r\n\r\n@autoinject\r\nexport class ObjectServiceBuilder{\r\n\r\n constructor(private api: ApiClient) {}\r\n\r\n\tpublic ForAjourShowRoom_OSB(): AoxObjectServiceBuilder { // The proper manufacturer implementation.\r\n\t\treturn new AoxObjectServiceBuilder(ImgSvcEnum.ExtSvc, this.api, AppValues.apiTarget.manufacturer);\r\n\t}\r\n\tpublic ForAjourObjects_OSB(orgId:string): AoxObjectServiceBuilder{ // AO attempting to use the manuf. features.\r\n\t\treturn new AoxObjectServiceBuilder(ImgSvcEnum.LocalSvc, this.api, AppValues.apiTarget.system, orgId); // I do not like this 'input:any' thing.\r\n }\r\n public ForAjourCollab_OSB(projectId:string): AoxObjectServiceBuilder{\r\n\t\treturn new AoxObjectServiceBuilder(ImgSvcEnum.ExtSvc, this.api, AppValues.apiTarget.project, projectId);\r\n\t}\r\n\treadonly redir:boolean = false; // only enable when doing development experiments - makes no sense for production.\r\n\tpublic ForAjourManufacturer_OSB(who:string): AoxObjectServiceBuilder {\r\n\t\t/* A level-of-indirection that let's us try out the \"real\" manufacturer-interface against a normal db.\r\n\t\t * This is only intended for testing-out.\r\n\t\t * The real way to deploy this, is through 'ForAjourObjects_OLB'.\r\n\t\t */\r\n\t\tif (this.redir) {\r\n\t\t\tlet noOrgId: string = 'org-id-missing';\r\n\t\t\treturn this.ForAjourObjects_OSB(noOrgId);\r\n\t\t} else {\r\n\t\t\treturn this.ForAjourShowRoom_OSB();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n\r\nexport class AoxObjectServiceBuilder {\r\n\tconstructor(private imgSvcEnum: ImgSvcEnum, private api: ApiClient, private apiTarget: string, private apiInput: any = null) { \r\n\t\tif (apiInput == 'undefined') { console.trace( 'AOSB no!'); }\r\n\t} \r\n\r\n public BuildObjectDetailService(): ObjectDetailService | undefined {\r\n switch (this.apiTarget) {\r\n case AppValues.apiTarget.manufacturer:\r\n\t\t\t\treturn new AomObjectDetailService(this.imgSvcEnum, this.api);\r\n case AppValues.apiTarget.system:\r\n\t\t\t\treturn new AoObjectDetailService(this.imgSvcEnum, this.api, this.apiInput);\r\n case AppValues.apiTarget.project:\r\n\t\t\t\treturn new AocObjectDetailService(this.imgSvcEnum, this.api, this.apiInput);\r\n }\r\n }\r\n public BuildObjectParameterService(): ObjectParameterService | undefined { \r\n switch (this.apiTarget) {\r\n case AppValues.apiTarget.manufacturer:\r\n return new AomObjectParameterService(this.api);\r\n case AppValues.apiTarget.system:\r\n return new AoObjectParameterService(this.api);\r\n case AppValues.apiTarget.project:\r\n return new AocObjectParameterService(this.api, this.apiInput);\r\n }\r\n }\r\n public BuildObjectFilterService(): ObjectFilterService | undefined { \r\n switch (this.apiTarget) {\r\n case AppValues.apiTarget.manufacturer:\r\n return new AomObjectFilterService(this.api);\r\n case AppValues.apiTarget.system:\r\n return new AoObjectFilterService(this.api);\r\n case AppValues.apiTarget.project:\r\n return new AocObjectFilterService(this.api, this.apiInput);\r\n }\r\n }\r\n\tpublic BuildParameterDefinitionService(): ParameterDefinitionService | undefined {\r\n\t\tswitch (this.apiTarget) {\r\n\t\t\tcase AppValues.apiTarget.manufacturer:\r\n\t\t\t\treturn new AomParameterDefinitionService(this.api);\r\n\t\t\tcase AppValues.apiTarget.system:\r\n\t\t\t\treturn new AoParameterDefinitionService(this.api);\r\n\t\t\tcase AppValues.apiTarget.project:\r\n\t\t\t\treturn new AocParameterDefinitionService(this.api, this.apiInput);\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["AoObjectDetailService","constructor","imgSvcEnum","api","orgId","super","apiTarget","system","AocObjectFilterService","getStaticFilters","staticAocFilters","apiInput","project","AomObjectParameterService","manufacturer","getFamilyParameters","objectTypeIds","familyPropertieIds","typePropertieIds","console","log","this","postJson","JSON","stringify","objectResult","reloadTypeParamVALUES","types","filters","typeIds","map","x","typeId","filter","hide","forEach","targetId","targetType","targetTypes","familyParameter","push","typeParameter","parameters","properties","property","elementId","ImgSvcEnum","ObjectDetailService","getApiUrl","mapFilters","sort","Boolean","selectedSortingOption","name","sortingMethods","none","comparison","selectedComparisonOption","value","getImgUrl","ExtSvc","imageServer","getOrgId","queryObjectInstances","resultIndex","resultRows","target","queryObjectTypes","who","handleErrorUsingReason","queryObjectFamilies","mappedFilters","rm","path","z","queryFamilyTypes","autoinject","ObjectFilterService","staticFiltersAll","trace","getStaticGrouping","category","find","family","type","mapToQUERY_Filters","getSearchAutocompleteResults","filterTargetType","searchTerm","get","OFS_getRowFilters","getProjectCategories","hasRows","getValueFilters","contextType","contextId","jsonResult","catch","async","reason","error","json","getAvailableFiltersByCategory","categoryId","getAvailableFilters","applied_or_all_Filters","queryFilters","ofs_getDefaultFilter","projectId","lastAppliedFilters","ObjectParameterService","parameterDefinitionIds","freshValues","handleErrorMsgUsingReason","length","newParameters","splice","getTypeDisplayUnits","logUnits","mapped_typeIds","Set","result","setInstanceParameters","instances","instanceIds","instanceId","instanceParameter","chunkSize","i","chunk","slice","chunkParameters","od","GetAllTypeParameters","updateInstanceParameter","instanceParameterValueId","parameterValue","noResponse","updateTypeParameter","typeParameterId","createInstanceParameter","parameterDefinitionId","createTypeParameter","updateInstanceParameters","instanceParameterValueIds","valueIds","newValue","updateTypeParameters","typeParameterIds","createInstanceParameters","createTypeParameters","updateClassificationInstanceParameters","nodeId","updateClassificationTypeParameters","createClassificationInstanceParameters","createClassificationTypeParameters","AomObjectDetailService","AocObjectDetailService","AocObjectParameterService","AoObjectParameterService","AomObjectFilterService","staticAoFilters","manu","AoObjectFilterService","AomParameterDefinitionService","apiClient","AoParameterDefinitionService","AocParameterDefinitionService","ObjectServiceBuilder","redir","ForAjourShowRoom_OSB","AoxObjectServiceBuilder","ForAjourObjects_OSB","LocalSvc","ForAjourCollab_OSB","ForAjourManufacturer_OSB","noOrgId","BuildObjectDetailService","BuildObjectParameterService","BuildObjectFilterService","BuildParameterDefinitionService"],"sourceRoot":""}