{"version":3,"file":"app-e4359144.c78b68d15122a07e.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/services/object-list/object-list-client-side.ts","webpack://client-app/./src/app/services/object-list/object-list-builder.ts","webpack://client-app/./src/app/services/object-list/object-list-column-manager.ts"],"sourcesContent":["import { ObjectFilterService } from 'app/services/object-services/object-filter-service';\r\nimport { ObjectListColumnManager } from './object-list-column-manager';\r\nimport { ObjectDetailService } from 'app/services/object-services/object-detail-service';\r\nimport { ObjectListSource } from \"./object-list-source\";\r\nimport { ObjectParameterService } from '../object-services/object-parameter-service';\r\nimport { ObjectRow, ObjectCell } from './object-list-row';\r\n\r\nexport class ObjectListClientSide implements ObjectListSource {\r\n\tpublic cellUpdateTrigger: number = 0;\r\n\r\n constructor(\r\n private useInstanceLevel: boolean,\r\n private columns: ObjectListColumnManager,\r\n private objectService: ObjectDetailService,\r\n private filterService: ObjectFilterService,\r\n private parameterService: ObjectParameterService) {\r\n\t}\r\n\r\n\tpublic getObjectDetailService(): ObjectDetailService { return this.objectService; }\r\n\r\n setup(listMode: string, nrOfRowsToLoad: number): void { throw new Error(\"Method not implemented.\"); }\r\n reset(): void { throw new Error(\"Method not implemented.\"); }\r\n async setExpandContent(parent: ObjectRow): Promise { throw new Error(\"Method not implemented.\"); }\r\n collapseContent(row: ObjectRow): number { throw new Error(\"Method not implemented.\"); }\r\n async getMoreRows(who:string, index: number): Promise { throw new Error(\"Method not implemented.\"); } \r\n async saveCell(item: ObjectRow,items: ObjectRow[], cell: ObjectCell): Promise { throw new Error(\"Method not implemented.\"); }\r\n\tasync saveClassificationCell(item: ObjectRow,items: ObjectRow[], cell: ObjectCell): Promise { throw new Error(\"Method not implemented.\"); }\r\n \r\n\tpublic incrementCellUpdateTrigger(){\r\n\t\tthis.cellUpdateTrigger++;\r\n\t}\r\n}\r\n","import { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { AoxObjectServiceBuilder, ObjectServiceBuilder } from './../object-services/object-service-builder';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { ObjectFilterService } from \"../object-services/object-filter-service\";\r\nimport { ObjectDetailService } from \"../object-services/object-detail-service\";\r\nimport { ObjectParameterService } from \"../object-services/object-parameter-service\";\r\nimport { ObjectListClientSide } from \"./object-list-client-side\";\r\nimport { ObjectListServerSide } from \"./object-list-server-side\";\r\nimport { ObjectListManager } from \"./object-list-manager\";\r\nimport { ObjectListColumnManager } from './object-list-column-manager';\r\nimport {ParameterDefinitionService} from \"../object-services/parameter-definition-service\";\r\nimport {ColorLegendService} from \"../color-legend/color-legend-service\";\r\n\r\n@autoinject\r\nexport class ObjectListBuilder {\r\n\t/* Den her klasse f�les lidt overfl�dig, det er jo n�rmest bare en 1-1 map \r\n\t * fra metodenavne til de samme p� ObjectServiceBuilder..\r\n\t * Blot for instanceLevel boolean.\r\n\t * Men den leverer os en ObjectListSourceStrategy.\r\n\t */\r\n\r\n\tconstructor(private objServiceBuilder: ObjectServiceBuilder,\r\n\t\t\t\tprivate eventAggregator: EventAggregator,\r\n\t\t\t\tprivate colorLegendService: ColorLegendService) {\r\n\t\t\r\n\t}\r\n\r\n public ForAjourManufacturer_OLB(): ObjectListSourceStrategy | undefined{\r\n\t\treturn this.buildStrategy(false, this.objServiceBuilder.ForAjourManufacturer_OSB('AM,OLB'));\r\n }\r\n\tpublic ForAjourObjects_OLB(orgId:string): ObjectListSourceStrategy | undefined{\r\n\t\treturn this.buildStrategy(false, this.objServiceBuilder.ForAjourObjects_OSB(orgId));\r\n }\r\n\tpublic ForAjourCollab_OLB(projectId: string): ObjectListSourceStrategy | undefined {\r\n\t\treturn this.buildStrategy(true, this.objServiceBuilder.ForAjourCollab_OSB(projectId));\r\n\t}\r\n\r\n\tprivate buildStrategy(instanceLevel: boolean, aoxObjSvcBuilder: AoxObjectServiceBuilder) {\r\n\t\tlet objFilterService: ObjectFilterService | undefined = aoxObjSvcBuilder.BuildObjectFilterService(); \r\n\t\tlet objectDetailService: ObjectDetailService | undefined = aoxObjSvcBuilder.BuildObjectDetailService();\r\n\t\tlet objectParameterService: ObjectParameterService | undefined = aoxObjSvcBuilder.BuildObjectParameterService();\r\n\t\tlet parameterDefinitionService: ParameterDefinitionService | undefined = aoxObjSvcBuilder.BuildParameterDefinitionService();\r\n\t\tif (objFilterService && objectDetailService && objectParameterService && parameterDefinitionService) {\r\n\t\t\treturn new ObjectListSourceStrategy(instanceLevel, objFilterService, objectDetailService, objectParameterService, parameterDefinitionService, this.eventAggregator, this.colorLegendService);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport class ObjectListSourceStrategy{\r\n constructor(\r\n private useInstanceLevel: boolean,\r\n private filterService: ObjectFilterService,\r\n private objectService: ObjectDetailService,\r\n private parameterService: ObjectParameterService,\r\n\t\tprivate parameterDefinitionService: ParameterDefinitionService,\r\n\t\tprivate eventAggregator: EventAggregator,\r\n\t\tprivate colorLegendService: ColorLegendService) { \r\n }\r\n\r\n public BuildClientSide(): ObjectListManager{\r\n let columns = new ObjectListColumnManager(this.filterService, this.parameterDefinitionService, this.colorLegendService);\r\n return new ObjectListManager(\r\n new ObjectListClientSide(this.useInstanceLevel, columns, this.objectService, this.filterService, this.parameterService), \r\n\t\t\tcolumns,\r\n\t\t\tthis.eventAggregator, this.colorLegendService);\r\n }\r\n\r\n public BuildServerSide(): ObjectListManager{\r\n let columns = new ObjectListColumnManager(this.filterService, this.parameterDefinitionService, this.colorLegendService);\r\n return new ObjectListManager(\r\n new ObjectListServerSide(this.useInstanceLevel, columns, this.objectService, this.filterService, this.parameterService, this.colorLegendService, this.eventAggregator), \r\n\t\t\tcolumns,\r\n\t\t\tthis.eventAggregator, this.colorLegendService);\r\n }\r\n}\r\n","//import { UIValueFilter } from './../../models/object-filter';\r\n//import { ObjectListManager } from './object-list-manager';\r\nimport {IdNamePair} from './../../models/idNamePair';\r\nimport {ObjectValues} from 'app/models/object-values';\r\nimport {ObjectFilterService} from 'app/services/object-services/object-filter-service';\r\nimport {FieldsStaticFilter, FilterUserSettings, ObjectFilter, UIValueFilter, ValueFilter, ValueFilterUI2} from \"app/models/object-filter\";\r\nimport {ObjectRow} from './object-list-row';\r\nimport {ParameterDefinitionService} from \"../object-services/parameter-definition-service\";\r\nimport {ParameterDefinitionDto} from \"../../models/parameter-definition-dto\";\r\nimport {ObjectDisplayUnits} from \"../../models/object-display-units\";\r\nimport {IColorLegendService} from \"../color-legend/i-color-legend-service\";\r\n//import { FullView } from 'app/project/split-viewer/full-view';\r\n\r\nexport class ObjectListColumnManager {\r\n\tprivate availableFilterContext: ObjectFilter[] = [];\r\n\tprivate _filterCategoryContext: IdNamePair | undefined; // please access through getFilterCategoryContext instead.\r\n\r\n\tmainSearch: UIValueFilter | undefined; // An initial search field filter\r\n\r\n\t// De her (staticFilters) maa IKKE klones, de skal bruges som de er..\r\n\tstaticFilters: ValueFilterUI2[] = []; // All filters except for the copies in the applied list //ObjectFilter\r\n\tselected: UIValueFilter[] = []; // Filters selected by the user\r\n\tapplied: ObjectFilter[] = []; // Copy of mainSearch + group + selected Filters from when they where applied\r\n\r\n\tgrouped: UIValueFilter[] | null = []; // Used as templates to create row filters for group rows\r\n\t\r\n\tcolumnParameterDefinitionMetadata: ParameterDefinitionDto[] = []; // Used as templates to create row filters for group rows\r\n\tcolumnTypeDisplayUnits: ObjectDisplayUnits[] = []; // Used as templates to create row filters for group rows\r\n\tuseGrouping: boolean = false;\r\n\troot: ObjectRow | undefined;\r\n\tknownGridMode: string = \"\";\r\n\r\n\tconstructor(public OFS_service: ObjectFilterService, public parameterDefinitionService: ParameterDefinitionService, private colorLegendService: IColorLegendService) {\r\n\r\n\t}\r\n\r\n\tsetFilterCategoryContext(newCatContext: IdNamePair | undefined) {\r\n\t\tthis._filterCategoryContext = newCatContext; // in setFilterCategoryContext.\r\n\t}\r\n\r\n\tgetFilterCategoryContext(): IdNamePair | undefined {\r\n\t\treturn this._filterCategoryContext; // in getFilterCategoryContext.\r\n\t}\r\n\r\n\tinitialize() {\r\n\t\tthis.staticFilters = this.OFS_service.getStaticFilters;\r\n\t\tthis.availableFilterContext = [];\r\n\t\tthis.setFilterCategoryContext(undefined);\r\n\t\t\r\n\t\tthis.selected = [...this.staticFilters];//in-OLCM.initialize\r\n\t\tthis.applied = [];\r\n\t\tthis.grouped = [];\r\n\t\tthis.columnParameterDefinitionMetadata = [];\r\n\t}\r\n\r\n\tsetMainSearchFilter(mainSearch: UIValueFilter): void { //ObjectFilter\r\n\t\t// Reset\r\n\t\tthis.mainSearch = mainSearch;\r\n\t\tthis.removeMainFromSelected(mainSearch);\r\n\t}\r\n\t\r\n\tremoveMainFromSelected(mainSearch: UIValueFilter) {\r\n\t\tlet mainIndex = this.selected.indexOf(mainSearch);//in-removeMainFromSelected\r\n\t\tif (mainIndex >= 0) {\t\t\t\r\n\t\t\tthis.selected.splice(mainIndex, 1);//in-removeMainFromSelected\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static valueFilter2UIFilter(vf: ValueFilter[]):UIValueFilter[] {\r\n\t\tlet extended = vf.map( (valueFilter:ValueFilter) => {\r\n\t\t\t\r\n\t\t\tlet filterUserSettings:FilterUserSettings = {\r\n\t\t\t\tisLocked: undefined,\r\n\t\t\t\tselectedSortingOption: undefined,\r\n\t\t\t\tselectedComparisonOption: undefined,\r\n\t\t\t\tvalue: '',\r\n\t\t\t\thide: false\r\n\t\t\t};\r\n\r\n\t\t\tlet staticFields:FieldsStaticFilter = {\r\n\t\t\t\tisStatic:false,\r\n\t\t\t\tisFixedColumn:false // (burde maaske op til FilterUserSettings.)\r\n\t\t\t};\r\n\r\n\t\t\tlet uiValueFilter:UIValueFilter = {\r\n\t\t\t\t...valueFilter,\r\n\t\t\t\t...filterUserSettings, \r\n\t\t\t\t...staticFields // ie her skal isStatic og isFixedColumn paa.\r\n\t\t\t};\r\n\t\t\treturn uiValueFilter;\r\n\t\t});\r\n\t\treturn extended;\r\n\t}\r\n\r\n\t/* JG: The following 3 could be reduced immensely, \r\n\tas they are just very wordy repetition of 'filter out already-used'. */\r\n\r\n\tasync getAvailableGroupingFilters(categoryId: string):Promise {\r\n\t\tlet availableFilters0:ValueFilter[] = await this.OFS_service.getAvailableFiltersByCategory(categoryId, this.availableFilterContext);\r\n\t\tlet availableFilters:UIValueFilter[] = ObjectListColumnManager.valueFilter2UIFilter(availableFilters0);\r\n\r\n\t\tlet nonInst_staticFilters:ValueFilterUI2[] = this.staticFilters.filter(x => x.targetType != ObjectValues.targetTypes.instance);\r\n\t\tlet newAvailable:ValueFilter[] = [...nonInst_staticFilters, ...availableFilters];\r\n\r\n\t\t// From the fresh batch we just retrieved, \r\n\t\t// remove any items that are actually already in play:\r\n\t\tif (this.grouped) {\r\n\t\t\t[this.mainSearch, ...this.grouped].forEach( (inUse:UIValueFilter | undefined) => {\r\n\t\t\t\tif (inUse && Boolean(inUse)) {\r\n\t\t\t\t\tlet filterToRemove = newAvailable.filter(n => n.targetType == inUse.targetType && n.targetId == inUse.targetId)\r\n\t\t\t\t\tif (filterToRemove.length > 0) {\r\n\t\t\t\t\t\tfilterToRemove.forEach(f => {\r\n\t\t\t\t\t\t\tlet index = newAvailable.indexOf(f);\r\n\t\t\t\t\t\t\tif (index >= 0)\r\n\t\t\t\t\t\t\tnewAvailable.splice(index, 1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn newAvailable;\r\n\t}\r\n\r\n\tasync getAvailableFiltersByCategory(categoryId: string):Promise {\r\n\t\t// PROBLEM: denne gir dubletter, det gør den udenfor ikke!\r\n\t\tlet availableFilters0:ValueFilter[] = await this.OFS_service.getAvailableFiltersByCategory(categoryId, this.availableFilterContext); // problem - gir dubletter e.g. BYGNINGSETAGE.\r\n\t\tlet availableFilters:UIValueFilter[] = ObjectListColumnManager.valueFilter2UIFilter(availableFilters0);\r\n\r\n\t\tlet newAvailable:UIValueFilter[] = [...this.staticFilters, ...availableFilters];//in-getAvailableFiltersByCategory\r\n\t\tif (this.grouped) {\r\n\t\t\t[this.mainSearch, ...this.grouped, ...this.selected].forEach( (inUse:UIValueFilter | undefined) => {//in-getAvailableFiltersByCategory\r\n\t\t\t\tif (inUse && Boolean(inUse)) {\r\n\t\t\t\t\tlet filterToRemove = newAvailable.filter(n => n.targetType == inUse.targetType && n.targetId == inUse.targetId)\r\n\t\t\t\t\tif (filterToRemove.length > 0) {\r\n\t\t\t\t\t\tfilterToRemove.forEach(f => {\r\n\t\t\t\t\t\t\tlet index = newAvailable.indexOf(f);\r\n\t\t\t\t\t\t\tif (index >= 0)\r\n\t\t\t\t\t\t\tnewAvailable.splice(index, 1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn newAvailable;\r\n\t}\r\n\r\n\r\n\tasync getAvailableFiltersByAppliedFilters(who:string):Promise {\r\n\t\tconsole.log('getAvailableFiltersByAppliedFilters', who);\r\n\t\tlet availableFilters:ValueFilter[] = await this.OFS_service.getAvailableFilters(this.applied);//getAvailableFiltersByAppliedFilters\r\n\r\n\t\tlet newAvailable:ValueFilter[] = [...this.staticFilters, ...availableFilters];//in-OLCM.getAvailableFiltersByAppliedFilters\r\n\t\tif (this.grouped) {\r\n\t\t\t[this.mainSearch, ...this.grouped, ...this.selected].forEach( (inUse:UIValueFilter | undefined) => {//in-getAvailableFiltersByAppliedFilters\r\n\t\t\t\tif (inUse && Boolean(inUse)) {\r\n\t\t\t\t\tlet filtersToRemove = newAvailable.filter(n => n.targetType == inUse.targetType && n.targetId == inUse.targetId)\r\n\t\t\t\t\tif (filtersToRemove.length > 0) {\r\n\t\t\t\t\t\tfiltersToRemove.forEach(filterToRemove => {\r\n\t\t\t\t\t\t\tconsole.log('will remove avail-f', filterToRemove.targetType, 'targetId?:', filterToRemove.targetId);\r\n\t\t\t\t\t\t\tlet index = newAvailable.indexOf(filterToRemove);\r\n\t\t\t\t\t\t\tif (index >= 0)\r\n\t\t\t\t\t\t\tnewAvailable.splice(index, 1);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn newAvailable;\r\n\t}\r\n\r\n\tasync getAllFilters(who:string):Promise {\r\n\t\tconsole.log('getAllFilters', who);\r\n\t\tlet availableFilters:ValueFilter[] = await this.OFS_service.getAvailableFilters(this.applied);//getAllFilters\r\n\t\treturn [...this.staticFilters, ...availableFilters];//in-OLCM.getAllFilters\r\n\t}\r\n\r\n\r\n\tremoveGrouping() { // JG: I think we should rename this to clear/reset-grouping?\r\n\t\tthis.useGrouping = false;\t\t\r\n\t\tthis.return_NonMainGroupedFilters_ToSelected();\r\n\t\tthis.grouped = [];\r\n\t\tthis.availableFilterContext = [];\r\n\t\tthis.resetRoot();\r\n\t}\r\n\treturn_NonMainGroupedFilters_ToSelected() {\r\n\t\tif (this.grouped) {\r\n\t\t\tthis.selected.unshift(...this.grouped.filter(x => x !== this.mainSearch));//-removeGrouping.\r\n\t\t\tconsole.log('olcm.removeGrouping, unshift OLCM.selected');\r\n\t\t}\r\n\t}\r\n\r\n\tapplyGrouping(grouping: UIValueFilter[] | null = null) { \r\n\t\t// (JG: I believe this is intended as a 'reset-clear-zero', not a 'toggle'.)\r\n\t\tif (this.useGrouping) { this.removeGrouping(); } // in applyGrouping.\t\t\r\n\t\tthis.useGrouping = true;\r\n\r\n\t\t// Her i OLCM.applyGrouping, feeder vi igen statics direkte ind i grouped:\r\n\t\tlet staticGrouping: ValueFilterUI2[] | undefined = this.OFS_service.getStaticGrouping(this.staticFilters);\r\n\t\tif (staticGrouping) {\r\n\t\t\tthis.grouped = Boolean(grouping) ? grouping : [...staticGrouping]; // (JG: Hmm, her soerger ... blot for en KOPI - vel ligegyldigt her?)\r\n\t\t}\r\n\r\n\t\tthis.addTypeGroupingIfMissing();\r\n\t\tthis.removeGroupedFromSelected();\r\n\t}\r\n\r\n\taddTypeGroupingIfMissing() {\r\n\t\tif (this.grouped && !Boolean(this.grouped.find(x => x.targetType == ObjectValues.targetTypes.type))) {\r\n\t\t\tlet foundStaticFilter: ValueFilterUI2 | undefined = this.staticFilters.find(x => x.targetType == ObjectValues.targetTypes.type); \r\n\t\t\tif(foundStaticFilter) {\r\n\t\t\t\tthis.grouped.push(foundStaticFilter);//in-OLCM-applyGrouping, HER kan statics ryge direkte i OLCM.grouped!\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tremoveGroupedFromSelected() {\r\n\t\t\tthis.selected = this.selected.filter(//-removeGroupedFromSelected\t\t\t\r\n\t\t\ts => {\r\n\t\t\t\tif (this.grouped) {\r\n\t\t\t\t\t!this.grouped.find( g => ObjectValues.areSameField(s,g));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tresetRoot() {\r\n\t\tthis.root = ObjectRow.BuildGroup(\"Root ObjectRowGroup\", \"All\", false, null, -1, null, this.colorLegendService);\r\n\t\tthis.setAvailableFilterContext(this.root);\r\n\t}\r\n\r\n\r\n\tsetAvailableFilterContext(selectedItem: ObjectRow) {\r\n\t\tthis.availableFilterContext = this.getAppliedGroupingFilters(selectedItem);\r\n\t\tif (Boolean(selectedItem.value)) {\r\n\t\t\tif (selectedItem.value) {\r\n\t\t\t\tthis.setFilterCategoryContext({ name: selectedItem.value.categoryName, id: selectedItem.value.categoryId });\r\n\t\t\t} else {\r\n\t\t\t\tthis.setFilterCategoryContext(undefined);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tlet categoryFilter = this.availableFilterContext.find(x => x.targetType == ObjectValues.targetTypes.category);\r\n\t\t\tif (categoryFilter && Boolean(categoryFilter)\r\n\t\t\t\t&& Boolean(categoryFilter.value)\r\n\t\t\t\t&& categoryFilter.selectedComparisonOption == ObjectValues.comparisonMethods.hasRelation) {\r\n\t\t\t\t\tif (categoryFilter.value) {\r\n\t\t\t\t\t\tthis.setFilterCategoryContext({ name: categoryFilter.name, id: categoryFilter.value });\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetAppliedGroupingFilters(node: ObjectRow): ObjectFilter[] {\r\n\t\tlet nodeFilters = node.group.getContentFilters();\r\n\t\t// Ensure splice start index points to first grouping filter, (Only the mainsearch filter can be applied before grouping if not included in grouping) \r\n\t\tlet index = nodeFilters && Boolean(this.mainSearch) && !nodeFilters.some(x => this.mainSearch?.targetType == x.targetType && this.mainSearch.targetId == x.targetId) ? 1 : 0;\r\n\t\tlet appliedFilters = this.applied.filter(x => {\r\n\t\t\tif (nodeFilters) {\r\n\t\t\t\treturn !nodeFilters.some(n => n.targetType == x.targetType && n.targetId == x.targetId)\r\n\t\t\t}\r\n\t\t});\r\n\r\n let filters = [...appliedFilters];\r\n\t\tif (nodeFilters) {\r\n\t\t\tfilters.splice(index, 0, ...nodeFilters);\r\n\t\t}\r\n\t\treturn filters;\r\n\t}\r\n\r\n\tasync loadColumnMetadata() {\r\n\t\tlet ids = this.applied.filter(x => x.targetId !== undefined).map(x => x.targetId);\r\n\t\tif (ids.length === 0)\r\n\t\t\treturn;\r\n\t\t//api call for getting columns metadata\r\n\t\tthis.columnParameterDefinitionMetadata = [];\r\n\t\t//also fetches unit-data, incl. information about unitShort. \r\n\t\t//yields the same data per parameter regardless of the project. Unitshort is always empty.\r\n\t\tconsole.log('ObjectListColumnManager.loadColumnMetadata calling getProjectParameterByIds.');\r\n\t\tthis.columnParameterDefinitionMetadata = await this.parameterDefinitionService.getProjectParameterByIds(ids);\r\n\t\tconsole.log('loadColumnMetadata,columnParameterDefinitionMetadata:', this.columnParameterDefinitionMetadata);\r\n\t}\r\n\r\n\tupdateTypeDisplayUnits(moreTypeDisplayUnits: ObjectDisplayUnits[], logUnits:boolean) {\r\n\t\tif (logUnits) { console.log('OLCM.updateTypeDisplayUnits', moreTypeDisplayUnits); }\r\n\t\tif (moreTypeDisplayUnits.length === 0) { return; }\r\n\t\tthis.columnTypeDisplayUnits = this.uniqueArray([...this.columnTypeDisplayUnits, ...moreTypeDisplayUnits]);\r\n\t}\r\n\t\r\n\tprivate uniqueArray(arr: ObjectDisplayUnits[]){\r\n\t\treturn [...new Set(arr.map(o => JSON.stringify(o)))].map((s:string) => JSON.parse(s));\r\n\t}\r\n\t\r\n}\r\n\r\n"],"names":["ObjectListClientSide","constructor","useInstanceLevel","columns","objectService","filterService","parameterService","cellUpdateTrigger","getObjectDetailService","this","setup","listMode","nrOfRowsToLoad","Error","reset","setExpandContent","parent","collapseContent","row","getMoreRows","who","index","saveCell","item","items","cell","saveClassificationCell","incrementCellUpdateTrigger","ObjectListBuilder","objServiceBuilder","eventAggregator","colorLegendService","ForAjourManufacturer_OLB","buildStrategy","ForAjourManufacturer_OSB","ForAjourObjects_OLB","orgId","ForAjourObjects_OSB","ForAjourCollab_OLB","projectId","ForAjourCollab_OSB","instanceLevel","aoxObjSvcBuilder","objFilterService","BuildObjectFilterService","objectDetailService","BuildObjectDetailService","objectParameterService","BuildObjectParameterService","parameterDefinitionService","BuildParameterDefinitionService","ObjectListSourceStrategy","autoinject","EventAggregator","BuildClientSide","BuildServerSide","ObjectListColumnManager","OFS_service","availableFilterContext","staticFilters","selected","applied","grouped","columnParameterDefinitionMetadata","columnTypeDisplayUnits","useGrouping","knownGridMode","setFilterCategoryContext","newCatContext","_filterCategoryContext","getFilterCategoryContext","initialize","getStaticFilters","undefined","setMainSearchFilter","mainSearch","removeMainFromSelected","mainIndex","indexOf","splice","valueFilter2UIFilter","vf","map","valueFilter","isLocked","selectedSortingOption","selectedComparisonOption","value","hide","isStatic","isFixedColumn","getAvailableGroupingFilters","categoryId","availableFilters0","getAvailableFiltersByCategory","availableFilters","newAvailable","filter","x","targetType","targetTypes","instance","forEach","inUse","Boolean","filterToRemove","n","targetId","length","f","getAvailableFiltersByAppliedFilters","console","log","getAvailableFilters","filtersToRemove","getAllFilters","removeGrouping","return_NonMainGroupedFilters_ToSelected","resetRoot","unshift","applyGrouping","grouping","staticGrouping","getStaticGrouping","addTypeGroupingIfMissing","removeGroupedFromSelected","find","type","foundStaticFilter","push","s","g","areSameField","root","BuildGroup","setAvailableFilterContext","selectedItem","getAppliedGroupingFilters","name","categoryName","id","categoryFilter","category","comparisonMethods","hasRelation","node","nodeFilters","group","getContentFilters","some","filters","loadColumnMetadata","ids","getProjectParameterByIds","updateTypeDisplayUnits","moreTypeDisplayUnits","logUnits","uniqueArray","arr","Set","o","JSON","stringify","parse"],"sourceRoot":""}