{"version":3,"file":"app-a32aaa92.7af3547fbc1853b6.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/services/quantity-column-service.ts","webpack://client-app/./src/app/services/quantity-sources-service.ts","webpack://client-app/./src/app/services/quantity-takeoff-service.ts","webpack://client-app/./src/app/services/scroll-object-grid-service.ts","webpack://client-app/./src/app/services/split-viewer-resize-service.ts","webpack://client-app/./src/app/services/summing/summing-service.ts"],"sourcesContent":["import { ApiClient } from \"./api-client\";\r\nimport { AppContextService } from \"./app-context-service\";\r\nimport { autoinject } from \"aurelia-framework\";\r\nimport { TypeDto } from \"app/components/quantity-filter-sources/quantity-filter-sources\";\r\nimport { QuantityColumnDto } from \"app/components/quantity-filter-columns/quantity-filter-columns\";\r\n\r\n\r\n@autoinject\r\nexport class QuantityColumnService {\r\n private quantityFilterId: string = \"\";\r\n constructor(private api: ApiClient, private appContext: AppContextService) {\r\n }\r\n\r\n public async getTypes(input: string, pageIndex: number): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetTypes/${input}/${pageIndex}`).handleError(\"Error fetching Types\",\"The types could not be fetched.\").jsonResult();\r\n }\r\n \r\n public async getSelectedTypes(quantityFilterId: string): Promise {\r\n this.quantityFilterId = quantityFilterId;\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetSelectedTypes/${this.quantityFilterId}`).handleError(\"Error fetching Types\",\"The types could not be fetched.\").jsonResult();\r\n }\r\n \r\n public async changeSavedSources(list: TypeDto[]): Promise {\r\n let typeIds: string[] = [];\r\n list.forEach(element => {typeIds.push(element.id)});\r\n await this.api.project(this.appContext.projectId).postJson(`QuantitySources/ChangeQuantitySources/${this.quantityFilterId}`, typeIds)\r\n .handleError(\"Error\" , \"Could not save changes.\")\r\n .response();\r\n }\r\n\r\n public async deleteSources(list: TypeDto[]): Promise {\r\n let typeIds: string[] = [];\r\n list.forEach(element => {typeIds.push(element.id)});\r\n await this.api.project(this.appContext.projectId).postJson(`QuantitySources/RemoveQuantitySources/${this.quantityFilterId}`, typeIds)\r\n .handleError(\"Error\" , \"Could not Delete types\")\r\n .response();\r\n }\r\n\r\n public async GetPartialProjectSimpleParametersByQF(pageIndex: number, qfId: string): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantityColumn/GetPartialProjectSimpleParametersByQF/${pageIndex}/${qfId}`).handleError(\"Error fetching Project parameters\",\"The Project parameters could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async GetProjectSimpleParametersByInputByQF(input: string, qfId: string): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantityColumn/GetProjectSimpleParametersByInputByQF/${input}/${qfId}`).handleError(\"Error fetching Project parameters\",\"The Project parameters could not be fetched.\").jsonResult();\r\n \r\n }\r\n\r\n public async GetTypeProjectParameters(typeIds: string[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/GetProjectSimpleParametersTypeByRevitTypes`, typeIds).handleError(\"Error fetching Project parameters\",\"The type project parameters could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async GetInstProjectParameters(typeIds: string[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/GetProjectSimpleParametersInstByRevitTypes`, typeIds).handleError(\"Error fetching Project parameters\",\"The instance Project parameters could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async GetunitsByParameters(parameters: string[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/GetUnitTypesFromParameterIds`, parameters).handleError(\"Error fetching Units\",\"The Units could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async AddQuantityColumns(columns: QuantityColumnDto[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/AddQuantityColumnsToQuantityFilter/${this.quantityFilterId}`, columns).handleError(\"Error saving Quantity columns\",\"The quantity columns was not be saved.\").jsonResult();\r\n }\r\n\r\n public async RemoveQuantityColumns(columns: string[]): Promise {\r\n await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/RemoveQuantityColumnsFromQuantityFilter`, columns).handleError(\"Error deleting Quantity columns\",\"The quantity columns could not be deleted.\").jsonResult();\r\n }\r\n\r\n public async GetQuantityColumns(): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantityColumn/GetQuantityColumns/${this.quantityFilterId}`).handleError(\"Error fetching Quantity columns\",\"The quantity columns could not be fetched.\").jsonResult();\r\n }\r\n \r\n public async EditQuantityColumns(listOfColumnsToEdit: QuantityColumnDto[]): Promise {\r\n await this.api.project(this.appContext.projectId).postJson(`QuantityColumn/EditQuantityColumns/${this.quantityFilterId}`, listOfColumnsToEdit).handleError(\"Error saving edited Quantity columns\",\"The changes could not be saved.\").jsonResult();\r\n }\r\n public async getCatMap(): Promise<{[key: string]: number[]}> {\r\n return await this.api.project(this.appContext.projectId).get(`QuantityColumn/GetCatMap`).handleError(\"Could not get Category map\", \"The category map could not be fetched.\").jsonResult();\r\n }\r\n}\r\n\r\nexport interface SimpleParameterDto {\r\n id: string;\r\n name: string;\r\n parameterScope: boolean; // what does true false mean here?\r\n}\r\n\r\nexport interface DisplayUnit {\r\n enumInt: number;\r\n convertionRate: number;\r\n unitString: string;\r\n unitShort: string;\r\n}\r\n","import { ApiClient } from \"./api-client\";\r\nimport { AppContextService } from \"./app-context-service\";\r\nimport {autoinject} from \"aurelia-framework\";\r\nimport { CategoryWithTypesDto } from \"app/models/category-dto\";\r\nimport { FamilyWithTypesDto, TypeDto, TypeDtoWCategory } from \"app/components/quantity-filter-sources/quantity-filter-sources\";\r\nimport { HttpResponseMessage } from \"aurelia-http-client\";\r\n\r\n\r\n@autoinject\r\nexport class QuantitySourcesService {\r\n private quantityFilterId: string = \"\";\r\n constructor(private api: ApiClient, private appContext: AppContextService) {\r\n }\r\n\r\n async GetInstancesByTypeId(typeId: string): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetInstanceIdsByType/${typeId}`).handleError(\"Error fetching instances\",\"The instances could not be fetched.\").jsonResult();\r\n }\r\n public async getTypes(input: string, pageIndex: number): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetTypes/${input}/${pageIndex}`).handleError(\"Error fetching Types\",\"The types could not be fetched.\").jsonResult();\r\n }\r\n \r\n public async getProjectCategories(input: string, pageIndex: number): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetCategories/${input}/${pageIndex}`).handleError(\"Error fetching Categories\",\"The categories could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async getProjectFamilies(input: string, pageIndex: number): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetProjectFamilies/${input}/${pageIndex}`).handleError(\"Error fetching Families\",\"The families could not be fetched.\").jsonResult();\r\n }\r\n\r\n public async getTypeByBuiltInCategory(builtInCategory: number): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetTypeByBuiltInCategory/${builtInCategory}`).handleError(\"Error fetching Types\",\"The types could not be fetched by builtInCategory.\").jsonResult();\r\n }\r\n\r\n public async getTypeIdByFamilyId(familyId: string): Promise {\r\n return await this.api.project(this.appContext.projectId).get(`QuantitySources/GetTypesByFamilyId/${familyId}`).handleError(\"Error fetching Types\",\"The types could not be fetched by familyId.\").jsonResult();\r\n }\r\n\r\n\r\n\tcache_types:TypeDto[] = [];\r\n public async getSelectedTypes(quantityFilterId: string, by:string, force:boolean): Promise {\r\n\t\tconsole.log('getSelectedTypes by:', by);\r\n\t\tif (this.quantityFilterId == quantityFilterId && !force) {\r\n\t\t\tconsole.warn('quantityFilterId already set to ', quantityFilterId,'ignoring', by);\r\n\t\t\treturn this.cache_types; //[];\r\n\t\t}\r\n\r\n this.quantityFilterId = quantityFilterId;\r\n\t\tconsole.log('getSelectedTypes, for quantityFilterId:', quantityFilterId);\r\n let types:TypeDto[] = await this.api.project(this.appContext.projectId).get(`QuantitySources/GetSelectedTypes/${this.quantityFilterId}`)\r\n\t\t.handleError(\"Error fetching Types\",\"The types could not be fetched.\").jsonResult();\r\n\t\tthis.cache_types = types;\r\n\t\treturn types;\r\n }\r\n \r\n public async changeSavedSources(list: TypeDto[], qfId?: string): Promise {\r\n let typeIds: string[] = list.map(element => element.id);\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/ChangeQuantitySources/${qfId == undefined ? this.quantityFilterId : qfId}`, typeIds)\r\n .handleError(\"Error\" , \"Could not save changes.\")\r\n .response();\r\n }\r\n\r\n public async changeSavedSourcesWithIds(list: string[], qfId?: string): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/ChangeQuantitySources/${qfId == undefined ? this.quantityFilterId : qfId}`, list)\r\n .handleError(\"Error\" , \"Could not save changes.\")\r\n .response();\r\n }\r\n\r\n public async updateSources(qfId: string, typesToAdd: string[], typesToRemove:string[]): Promise {\r\n let addResponse = await this.api.project(this.appContext.projectId).postJson(`QuantitySources/AddQuantitySources/${qfId}`, typesToAdd).handleError(\"Error\" , \"Could not add types to filter.\").response();\r\n if (addResponse.statusCode == 200) {\r\n let removeResponse = await this.api.project(this.appContext.projectId).postJson(`QuantitySources/RemoveQuantitySources/${qfId}`, typesToRemove).handleError(\"Error\" , \"Could not Delete types\").response();\r\n if (removeResponse.statusCode == 200) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public async addSources(qfId: string, list: string[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/AddQuantitySources/${qfId}`, list).handleError(\"Error\" , \"Could not add types to filter.\").response();\r\n }\r\n\r\n public async deleteSources(qfId: string, list: string[]): Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/RemoveQuantitySources/${qfId}`, list)\r\n .handleError(\"Error\" , \"Could not Delete types\")\r\n .response();\r\n }\r\n\r\n public async searchForTypes(inputDto: SearchInputDto, pageIndex: number) : Promise {\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/GetAllTypes/${pageIndex}`,inputDto).handleError(\"Error\" , \"Could not fetch types.\").jsonResult();\r\n }\r\n}\r\n\r\nexport interface SearchInputDto {\r\n catInput: string,\r\n typeInput: string,\r\n famInput: string\r\n}\r\n","import { TypeDto, TypeDtoWCategory, TypeDtoWithSelect } from \"app/components/quantity-filter-sources/quantity-filter-sources\";\r\nimport { QuantityFilterDto } from \"app/project/quantity-views/quantity-filters\";\r\nimport { autoinject } from \"aurelia-framework\"\r\nimport { ApiClient } from \"./api-client\";\r\nimport { AppContextService } from \"./app-context-service\";\r\n\r\n@autoinject\r\nexport class QuantityTakeoffService {\r\n constructor(private api: ApiClient, private appContext: AppContextService) {}\r\n\r\n async GetQuantityFilters(): Promise {\r\n let path = `QuantityFilter/GetQuantityFiltersForProject`;\r\n return await this.api.project(this.appContext.projectId).get(path).jsonResult(); \r\n }\r\n \r\n async DeleteQF(qf: QuantityFilterDto): Promise {\r\n let path = `QuantityFilter/DeleteQuantityFilter`;\r\n\t\tawait this.api.project(this.appContext.projectId).postJson(path,qf.id).jsonResult(); \r\n }\r\n\r\n async GetTypesByEntityLabels(objectIds: number[]): Promise {\r\n\t\tconsole.log('QuantityTakeoffService.GetTypesByEntityLabels,D, with: (#) objectIds:', objectIds.length, objectIds);\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/GetTypesByEntityLabels/`, objectIds)\r\n .handleError(\"Error\" , \"Could not fetch types.\")\r\n .jsonResult();\r\n }\r\n\r\n async GetTypesWCategoriesByEntityLabels(objectIds: number[]): Promise {\r\n console.log('QuantityTakeoffService.GetTypesWCategoriesByEntityLabels,D, with: (#) objectIds:', objectIds.length, objectIds);\r\n return await this.api.project(this.appContext.projectId).postJson(`QuantitySources/GetTypesWCategoriesByEntityLabels/`, objectIds)\r\n .handleError(\"Error\" , \"Could not fetch types.\")\r\n .jsonResult(); }\r\n}\r\n","import { autoinject } from \"aurelia-framework\"\r\n\r\n@autoinject\r\nexport class ScrollObjectGridService {\r\n \r\n static async handleFindAndScrollToElement(clickedElementId: number, multilineEnabled: boolean, appliedNumberOfLines: number): Promise {\r\n\t\tif (await this.scrollToElement(clickedElementId.toString())) {\r\n\t\t\tlet isFound: boolean = false;\r\n\t\t\tlet resetCounter: number = 0;\r\n\t\t\t//Scrolling table to center.\r\n\t\t\tlet tableContainer: HTMLElement | null = document.getElementById('table-container');\r\n\t\t\tif (tableContainer) {\r\n\t\t\t\ttableContainer.scrollTop = tableContainer.offsetHeight / 2;\r\n\t\t\t}\r\n\t\t\twhile (!isFound && resetCounter <= 10) {\t\t\t\r\n\t\t\t\tresetCounter++;\r\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 100)); //This break is for Aurelia to load the DOM-elements.\r\n\t\t\t\tawait this.scrollNearElement(clickedElementId, multilineEnabled, appliedNumberOfLines);\r\n\t\t\t\tisFound = !(await this.scrollToElement(clickedElementId.toString()));\r\n\t\t\t}\r\n\t\t\tconsole.log(\"Number of tries \" , resetCounter);\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async scrollNearElement(clickedElementId: number, multilineEnabled: boolean, appliedNumberOfLines: number): Promise {\r\n\t\t//Getting the middle element of loaded HTML row elements.\r\n\t\tlet middleHTMLElementId = (Number.parseInt(document.getElementsByClassName('item-row')[Math.floor(document.getElementsByClassName('item-row').length / 2)].id));\r\n\t\tlet diff: number = (clickedElementId - middleHTMLElementId);\r\n\t\tlet cellWithOneLineHeight = 34.59;\r\n\t\tlet cellWithTwoLinesHeight = 44.78\r\n\t\tlet lineHeightExtra = 22.39 //To calculate the next cell height: add 22.39 to the prior cell height.\r\n\t\tlet scrollLength: number = cellWithOneLineHeight * diff;\r\n\t\tif (multilineEnabled) {\r\n\t\t\tlet extraLinesToApply = appliedNumberOfLines - 2;\r\n\t\t\tlet cellWithXLines = (cellWithTwoLinesHeight + (lineHeightExtra * extraLinesToApply));\r\n\t\t\tscrollLength = appliedNumberOfLines == 2 ? diff * cellWithTwoLinesHeight : diff * cellWithXLines;\r\n\t\t\t// console.log(\"Multiple line row: \", cellWithXLines); //Can be used to see if acutal dom cell matches the calculated height.\r\n\t\t}\r\n\t\t\r\n\t\tlet tableContainer: HTMLElement | null = document.getElementById('table-container');\r\n\t\tif (tableContainer) {\r\n\t\t\ttableContainer.scrollBy(0,(scrollLength));\r\n\t\t}\r\n\t}\r\n\r\n\tstatic async scrollToElement(clickedElementId: string): Promise {\r\n\t\tlet elem = document.getElementById(clickedElementId);\r\n\t\tif (elem != null) {\r\n\t\t\telem.scrollIntoView({block: 'end', inline: 'start'});\r\n\t\t\tlet tableContainer: HTMLElement | null = document.getElementById('table-container');\r\n\t\t\tif (tableContainer) {\r\n\t\t\t\t// Centering element manually, this is due to block: 'center' sligthly moving whole window up.\r\n\r\n\t\t\t\t//Ensures top elements are not being scrolled away from.\r\n\t\t\t\tlet elemRect = elem.getBoundingClientRect();\r\n\t\t\t\tlet bottomPos = elemRect.y + elemRect.height; //Bottom part of element to scroll to.\r\n\t\t\t\tif (bottomPos >= tableContainer.getBoundingClientRect().height) {\r\n\t\t\t\t\tlet scrollPos = (tableContainer.getBoundingClientRect().height / 2) - elemRect.height / 2;\r\n\t\t\t\t\ttableContainer.scrollBy({ behavior: 'smooth', top: scrollPos });\r\n\t\t\t\t}\r\n }\r\n }\r\n\t\treturn elem == null;\r\n\t}\r\n}","import Split from 'split.js'; // ES6 module.\r\n//import Split from \"split.js/dist/split.js\";\t\t\r\n//var Split = require('split.js'); // CommonJS, som vi ikke bruger.\r\n\r\nimport {EventAggregator} from 'aurelia-event-aggregator';\r\nimport {autoinject} from 'aurelia-framework';\r\n\r\ndeclare let $: any;\r\n\r\n@autoinject\r\nexport class SplitViewerResizeService {\r\n private mainSplit: Split.Instance | undefined;\r\n\tprivate horizontalSplit: Split.Instance | undefined; \r\n\r\n\tpublic isColorPickerVisible: boolean = false;\r\n\tpublic isSettingsVisible: boolean = false;\r\n public verticalGutter: HTMLElement | null = null; \r\n\r\n constructor(public events: EventAggregator){\r\n } \r\n\r\n async setupMainSplitter(shouldShowGutter: boolean): Promise {\r\n\t\tconst leftPanel = document.getElementById('panel-left');\r\n\t\tconst middlePanel = document.getElementById('panel-middle');\r\n\t\tif (leftPanel != null && middlePanel != null) {\r\n this.mainSplit = Split(['#panel-left','#panel-middle'],\r\n {\r\n minSize: 0,\r\n gutterSize: 13,\r\n direction: 'horizontal',\r\n onDrag: function (sizes: any) {\r\n window.dispatchEvent(new Event('resize'));\r\n },\r\n sizes:[50,50]\r\n });\r\n this.styleOnlyFirstGutter();\r\n if (!shouldShowGutter) {\r\n await this.hideMainSplitter();\r\n }\r\n\r\n }\r\n }\r\n\r\n destroySplitters():void {\r\n if (this.mainSplit) {\r\n this.mainSplit.destroy();\r\n this.mainSplit = undefined;\r\n }\r\n if (this.horizontalSplit) {\r\n this.horizontalSplit.destroy();\r\n this.horizontalSplit = undefined;\r\n }\r\n }\r\n\r\n async hideMainSplitter(): Promise {\r\n if (this.mainSplit != undefined) {\r\n let gutterToStyle: HTMLElement = document.getElementById('panel-left')?.nextElementSibling;\r\n gutterToStyle.classList.add('hide-box');\r\n }\r\n }\r\n\r\n async showMainSplitter(): Promise {\r\n if (this.mainSplit != undefined) {\r\n let gutterToStyle: HTMLElement = document.getElementById('panel-left')?.nextElementSibling;\r\n gutterToStyle.classList.remove('hide-box');\r\n } else {\r\n await this.setupMainSplitter(true);\r\n }\r\n }\r\n\r\n async setupViewerSplitter(): Promise {\r\n this.horizontalSplit = Split(['#bim-viewer-3d','#bim-viewer-2d-holder'],\r\n {\r\n minSize: 0,\r\n gutterSize: 10,\r\n direction: 'vertical',\r\n onDrag: function (sizes: any) {\r\n window.dispatchEvent(new Event('resize'));\r\n },\r\n sizes: [50, 50],\r\n });\r\n this.verticalGutter = document.getElementsByClassName('gutter-vertical')[0];\r\n this.hide2dViewOnModelUnLoaded();\r\n }\r\n\r\n styleOnlyFirstGutter(): void {\r\n let gutterToStyle: HTMLElement = document.getElementById('panel-left')?.nextElementSibling;\r\n gutterToStyle.classList.add('gutter-content');\r\n }\r\n\r\n hide2dViewOnModelUnLoaded(): void {\r\n\t\tconsole.log('hide2dViewOnModelUnLoaded twoD_enabled?')\r\n let docked2dView: HTMLElement | null = document.getElementById('small-2d-view');\r\n let viewer: HTMLElement | null = document.getElementById('viewer2d');\r\n if (docked2dView && viewer) {\r\n if (!docked2dView.contains(viewer)) {\r\n this.hide2dView();\r\n } else {\r\n docked2dView.style.visibility = \"hidden\";\r\n }\r\n }\r\n }\r\n\r\n \r\n hide2dView(): void { //Perhaps change as in base-viewer-combined.\r\n\t\tconsole.log('split-viewer-resize-service.hide2dView, twoD_enabled?'); \r\n if (this.horizontalSplit != undefined) {\r\n this.horizontalSplit.setSizes([100,0]); \r\n this.verticalGutter?.classList.add('hide-box'); \r\n let bvElement = document.getElementById('bim-viewer-3d'); \r\n if (bvElement) {\r\n bvElement.style.height = '100%';\r\n }\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n }\r\n\r\n setViewerSplitSize(top: number, bottom: number): void {\r\n let docked2dView: HTMLElement | null = document.getElementById('small-2d-view');\r\n let viewer: HTMLElement | null = document.getElementById('viewer2d');\r\n if (!docked2dView?.contains(viewer)) { //This resizing only applies if the 2d view is not docked in the 3d view.\r\n this.horizontalSplit?.setSizes([top,bottom]); \r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n }\r\n \r\n show2dViewOnModelLoaded(): void {\r\n let docked2dView: HTMLElement | null = document.getElementById('small-2d-view');\r\n let viewer: HTMLElement | null = document.getElementById('viewer2d');\r\n if (docked2dView && viewer) {\r\n if (!docked2dView.contains(viewer)) {\r\n this.horizontalSplit?.setSizes([50,50]); \r\n this.verticalGutter?.classList.remove('hide-box');\r\n window.dispatchEvent(new Event('resize'));\r\n } else {\r\n docked2dView.style.visibility = \"visible\";\r\n }\r\n }\r\n }\r\n \r\n show2dView(): void {\r\n this.horizontalSplit?.setSizes([50,50]); \r\n this.verticalGutter?.classList.remove('hide-box');\r\n window.dispatchEvent(new Event('resize'));\r\n }\r\n}\r\n","import { autoinject } from \"aurelia-framework\";\r\nimport {ApiClient} from \"../api-client\";\r\nimport { RequestExecution } from '../RequestExecution';\r\nimport {AppContextService} from \"../app-context-service\";\r\nimport {I18N} from \"aurelia-i18n\";\r\nimport {ValueListDto} from \"../../models/value-list-dtos\";\r\nimport {Category} from \"../../models/parameter-definition-dto\";\r\nimport { HttpResponseMessage } from \"aurelia-http-client\";\r\nimport { QuantityParameter } from \"app/models/quantity-parameter\";\r\n\r\n@autoinject\r\nexport class SummingService {\r\n\r\n\tconstructor(private api:ApiClient, private appContext:AppContextService, private i18n: I18N) {\r\n\t}\r\n\r\n\tpublic async getCategoriesOnProject() : Promise {\r\n\t\treturn await this.api.project(this.appContext.projectId).get(\"Summing/GetProjectCategories\")\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve project categories.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async getFamiliesByCategory(id: string) : Promise {\r\n\t\treturn await this.api.project(this.appContext.projectId).get(\"Summing/GetFamiliesByBuiltInCategory?builtInCategory=\"+id)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve families by category.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\t\r\n\tpublic async getTypeQuantityParameters(typeId:string):Promise{\r\n\t\treturn await this.api.project(this.appContext.projectId).get(`Summing/GetTypeQuantityParameters/${typeId}`)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve quantity parameters.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\r\n\tpublic async getFamilyQuantityParameters(familyId:string):Promise{\r\n\t\treturn await this.api.project(this.appContext.projectId).get(`Summing/GetFamilyQuantityParameters/${familyId}`)\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not retrieve quantity parameters.\")\r\n\t\t\t.jsonResult();\r\n\t}\r\n\t\r\n\tpublic async setQuantityParameterOnType(typeIds:string[], parameterDefinitionId:string):Promise {\r\n\t\tconsole.log('setQuantityParameterOnType');\r\n\r\n\t\tconsole.log('calling Summing/SetQuantityParameterOnType..');\r\n\t\tlet a = await this.api.project(this.appContext.projectId).postJson(`Summing/SetQuantityParameterOnType`, { typeIds, parameterDefinitionId })\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not save quantity parameter.\")\r\n\t\t\t.response(); //noResponse();\r\n\t\tif (!a.isSuccess) { throw `could not SetQuantityParameterOnType: ${a.statusCode} ${a.statusText}`; }\r\n\r\n\t\tawait this.syncQuantities(typeIds, []);\r\n\t}\r\n\r\n\tpublic async setQuantityParameterOnFamily(familyIds:string[], parameterDefinitionId:string):Promise {\r\n\t\tconsole.log('setQuantityParameterOnFamily');\r\n\r\n\t\tconsole.log('calling Summing/SetQuantityParameterOnFamily..');\r\n\t\tlet a = await this.api.project(this.appContext.projectId).postJson(`Summing/SetQuantityParameterOnFamily`, { familyIds, parameterDefinitionId })\r\n\t\t\t.handleError(this.i18n.tr('Error_Title_Generic'), \"Could not save quantity parameter.\")\r\n\t\t\t.response(); \r\n\t\tif (!a.isSuccess) { throw `could not SetQuantityParameterOnFamily: ${a.statusCode} ${a.statusText}`; }\r\n\r\n\t\tawait this.syncQuantities([], familyIds);\r\n\t}\r\n\r\n\tasync syncQuantities(typeIds:string[], famIds:string[]):Promise {\r\n\t\tconsole.log('calling Summing/SyncQuantities..');\r\n\t\tlet r:HttpResponseMessage = \r\n\t\t await this.api.project(this.appContext.projectId).postJson(`Summing/SyncQuantities`, {typeIds:typeIds, famIds:famIds})\r\n\t\t .handleErrorUsingReason(this.i18n.tr('Error_Title_Generic'))\r\n\t\t .response(); ///noResponse();\r\n\r\n\t\tconsole.log('syncQuant:', r.isSuccess ? r.content : r);\r\n\t\tif (!r.isSuccess) { throw `could not SyncQuantities: ${r.statusCode} ${r.statusText}`; }\r\n\t}\r\n\r\n}\r\n"],"names":["QuantityColumnService","constructor","api","appContext","quantityFilterId","getTypes","input","pageIndex","this","project","projectId","get","handleError","jsonResult","getSelectedTypes","changeSavedSources","list","typeIds","forEach","element","push","id","postJson","response","deleteSources","GetPartialProjectSimpleParametersByQF","qfId","GetProjectSimpleParametersByInputByQF","GetTypeProjectParameters","GetInstProjectParameters","GetunitsByParameters","parameters","AddQuantityColumns","columns","RemoveQuantityColumns","GetQuantityColumns","EditQuantityColumns","listOfColumnsToEdit","getCatMap","autoinject","QuantitySourcesService","cache_types","GetInstancesByTypeId","typeId","getProjectCategories","getProjectFamilies","getTypeByBuiltInCategory","builtInCategory","getTypeIdByFamilyId","familyId","by","force","console","log","warn","types","map","undefined","changeSavedSourcesWithIds","updateSources","typesToAdd","typesToRemove","statusCode","addSources","searchForTypes","inputDto","QuantityTakeoffService","GetQuantityFilters","DeleteQF","qf","GetTypesByEntityLabels","objectIds","length","GetTypesWCategoriesByEntityLabels","ScrollObjectGridService","handleFindAndScrollToElement","clickedElementId","multilineEnabled","appliedNumberOfLines","scrollToElement","toString","isFound","resetCounter","tableContainer","document","getElementById","scrollTop","offsetHeight","Promise","resolve","setTimeout","scrollNearElement","diff","Number","parseInt","getElementsByClassName","Math","floor","scrollLength","scrollBy","elem","scrollIntoView","block","inline","elemRect","getBoundingClientRect","y","height","scrollPos","behavior","top","SplitViewerResizeService","events","isColorPickerVisible","isSettingsVisible","verticalGutter","setupMainSplitter","shouldShowGutter","leftPanel","middlePanel","mainSplit","minSize","gutterSize","direction","onDrag","sizes","window","dispatchEvent","Event","styleOnlyFirstGutter","hideMainSplitter","destroySplitters","destroy","horizontalSplit","nextElementSibling","classList","add","showMainSplitter","remove","setupViewerSplitter","hide2dViewOnModelUnLoaded","docked2dView","viewer","contains","style","visibility","hide2dView","setSizes","bvElement","setViewerSplitSize","bottom","show2dViewOnModelLoaded","show2dView","EventAggregator","SummingService","i18n","getCategoriesOnProject","tr","getFamiliesByCategory","getTypeQuantityParameters","getFamilyQuantityParameters","setQuantityParameterOnType","parameterDefinitionId","a","isSuccess","statusText","syncQuantities","setQuantityParameterOnFamily","familyIds","famIds","r","handleErrorUsingReason","content","I18N"],"sourceRoot":""}