{"version":3,"file":"app-d5aa3f9d.3c133286bf50fe56.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/quantity-filter-columns/quantity-filter-columns.scss","webpack://client-app/./src/app/components/quantity-filter-columns/quantity-filter-columns.html","webpack://client-app/./src/app/components/quantity-filter-columns/quantity-filter-columns.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, `.dialog-container-columns{height:90vh;width:70vw;overflow:hidden}.dialog-container-columns .dialog-header{width:100%;border-bottom:solid 1px #d3d3d3}.dialog-container-columns .dialog-header h4{padding:10px;vertical-align:middle;margin-bottom:0}.dialog-container-columns .modal-body{display:flex;flex-direction:row;margin-top:5px}.dialog-container-columns .modal-body .left-column{display:flex;flex-direction:column;padding-top:5px;padding-left:15px;padding-right:15px;padding-bottom:2px;width:70%}.dialog-container-columns .modal-body .left-column .header{flex-grow:0}.dialog-container-columns .modal-body .left-column .body-content{height:100%;display:grid;grid-template-rows:50% 50%}.dialog-container-columns .modal-body .left-column .body-content .selected-items-body{flex-grow:1;padding-left:5px;padding-top:5px;overflow:auto}.dialog-container-columns .modal-body .left-column .body-content .selected-items-body .inline-wrapper{display:grid;grid-template-columns:repeat(6, 3.5em) auto}.dialog-container-columns .modal-body .left-column .body-content .selected-items-body .parameter-item .param-type{display:inline-block;width:1.3em;text-align:center;color:#b9b9b9;padding:1px;border-radius:50%;border:solid 1px #b9b9b9;font-family:sans-serif;font-weight:1000}.dialog-container-columns .modal-body .left-column .body-content .selected-items-body .parameter-item .not-right-aligned-item{padding-left:8px;padding-right:8px;padding-top:4px;padding-bottom:4px}.dialog-container-columns .modal-body .left-column .body-content .selected-items-body .parameter-item .right-aligned-item{float:right;margin-right:10px;margin-top:5px;cursor:pointer}.dialog-container-columns .modal-body .left-column .body-content .table-preview-container{overflow:hidden}.dialog-container-columns .modal-body .left-column .body-content .table-preview-container table{width:100%}.dialog-container-columns .modal-body .left-column .body-content .table-preview-container table thead>tr>th{font-weight:900;text-decoration:underline;border:.5px solid #ddd;border-top:0px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:0}.dialog-container-columns .modal-body .left-column .body-content .table-preview-container table thead>tr>th:first-child{border-left:0px}.dialog-container-columns .modal-body .left-column .body-content .table-preview-container table thead>tr>th:last-child{border-right:0px}.dialog-container-columns .modal-body .right-column{display:flex;flex-direction:column;padding-top:5px;padding-left:15px;padding-right:15px;padding-bottom:2px;border-left:solid 1px #d3d3d3;width:30%;max-width:30em;overflow:hidden}.dialog-container-columns .modal-body .right-column .header{flex-grow:0}.dialog-container-columns .modal-body .right-column .search-items-body{flex-basis:0;flex-grow:1;overflow:auto}.dialog-container-columns .modal-body .right-column .search-items-body .item{padding:3px}.dialog-container-columns .modal-body .right-column .search-items-body .item .param-type{display:inline-block;width:1.3em;text-align:center;color:#b9b9b9;padding:1px;border-radius:50%;border:solid 1px #b9b9b9;font-family:sans-serif;font-weight:1000}.dialog-container-columns .modal-body .right-column .search-items-body .item:hover{background-color:#d3d3d3;cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/quantity-filter-columns/quantity-filter-columns.scss\"],\"names\":[],\"mappings\":\"AAAA,0BACI,WAAA,CACA,UAAA,CACA,eAAA,CACA,yCACI,UAAA,CACA,+BAAA,CACA,4CACI,YAAA,CACA,qBAAA,CACA,eAAA,CAIR,sCACI,YAAA,CACA,kBAAA,CACA,cAAA,CACA,mDACL,YAAA,CACA,qBAAA,CAES,eAAA,CACA,iBAAA,CACA,kBAAA,CACA,kBAAA,CACA,SAAA,CACT,2DAAA,WAAA,CACS,iEACI,WAAA,CACA,YAAA,CACA,0BAAA,CACA,sFACI,WAAA,CACA,gBAAA,CACA,eAAA,CACA,aAAA,CACA,sGACI,YAAA,CACA,2CAAA,CAGA,kHACI,oBAAA,CACA,WAAA,CACA,iBAAA,CAEA,aAAA,CACA,WAAA,CACA,iBAAA,CACA,wBAAA,CACA,sBAAA,CACA,gBAAA,CAEJ,8HACI,gBAAA,CACA,iBAAA,CACA,eAAA,CACA,kBAAA,CAEJ,0HACI,WAAA,CACA,iBAAA,CACA,cAAA,CACA,cAAA,CAKZ,0FACI,eAAA,CACA,gGACI,UAAA,CACA,4GACI,eAAA,CACA,yBAAA,CACA,sBAAA,CACA,cAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CAEJ,wHACI,eAAA,CAEJ,uHACI,gBAAA,CAMpB,oDACL,YAAA,CACA,qBAAA,CAES,eAAA,CACA,iBAAA,CACA,kBAAA,CACA,kBAAA,CACA,6BAAA,CACA,SAAA,CACT,cAAA,CACS,eAAA,CAET,4DAAA,WAAA,CACS,uEACR,YAAA,CACA,WAAA,CAEY,aAAA,CAEA,6EACI,WAAA,CAEC,yFACf,oBAAA,CACA,WAAA,CACA,iBAAA,CAEkB,aAAA,CACA,WAAA,CACA,iBAAA,CACA,wBAAA,CACA,sBAAA,CACA,gBAAA,CAGR,mFACI,wBAAA,CACA,cAAA\",\"sourcesContent\":[\".dialog-container-columns {\\r\\n height: 90vh; //height: 600px;\\r\\n width: 70vw; //width: 600px;\\r\\n overflow: hidden;\\r\\n .dialog-header {\\r\\n width: 100%;\\r\\n border-bottom: solid 1px lightgrey;\\r\\n h4 {\\r\\n padding: 10px;\\r\\n vertical-align: middle;\\r\\n margin-bottom: 0;\\r\\n }\\r\\n }\\r\\n\\r\\n .modal-body {\\r\\n display: flex;\\r\\n flex-direction: row;\\r\\n margin-top: 5px;\\t\\t\\r\\n .left-column {\\r\\n\\t\\t\\tdisplay:flex;\\r\\n\\t\\t\\tflex-direction: column;\\r\\n\\r\\n padding-top: 5px;\\r\\n padding-left: 15px;\\r\\n padding-right: 15px;\\r\\n padding-bottom: 2px;\\r\\n width: 70%;\\r\\n\\t\\t\\t.header { flex-grow: 0; } // JG: what is the prettiest way to do this?\\r\\n .body-content {\\r\\n height:100%;\\r\\n display: grid;\\r\\n grid-template-rows: 50% 50%;\\r\\n .selected-items-body {\\r\\n flex-grow: 1;\\r\\n padding-left: 5px;\\r\\n padding-top: 5px;\\r\\n overflow: auto;\\r\\n .inline-wrapper {\\r\\n display: grid;\\r\\n grid-template-columns: repeat(6, 3.5em) auto; //6 checkboxes with a fix width, and the rest takes the rest of the width.\\r\\n }\\r\\n .parameter-item {\\r\\n .param-type {\\r\\n display: inline-block;\\r\\n width: 1.3em;\\r\\n text-align: center;\\r\\n \\r\\n color: rgb(185, 185, 185);\\r\\n padding: 1px;\\r\\n border-radius: 50%;\\r\\n border: solid 1px rgb(185, 185, 185);\\r\\n font-family: sans-serif;\\r\\n font-weight: 1000;\\r\\n }\\r\\n .not-right-aligned-item {\\r\\n padding-left: 8px;\\r\\n padding-right: 8px;\\r\\n padding-top: 4px;\\r\\n padding-bottom: 4px;\\r\\n }\\r\\n .right-aligned-item {\\r\\n float:right;\\r\\n margin-right: 10px;\\r\\n margin-top: 5px;\\r\\n cursor: pointer;\\r\\n\\r\\n }\\r\\n }\\r\\n }\\r\\n .table-preview-container {\\r\\n overflow:hidden;\\r\\n table {\\r\\n width:100%;\\r\\n thead > tr > th {\\r\\n font-weight: 900;\\r\\n text-decoration: underline;\\r\\n border: 0.5px solid #ddd;\\r\\n border-top: 0px;\\r\\n overflow: hidden;\\r\\n white-space: nowrap;\\r\\n text-overflow: ellipsis;\\r\\n max-width: 0;\\r\\n }\\r\\n thead > tr > th:first-child {\\r\\n border-left: 0px;\\r\\n }\\r\\n thead > tr > th:last-child {\\r\\n border-right: 0px;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n .right-column {\\r\\n\\t\\t\\tdisplay:flex;\\r\\n\\t\\t\\tflex-direction: column;\\r\\n\\r\\n padding-top: 5px;\\r\\n padding-left: 15px;\\r\\n padding-right: 15px;\\r\\n padding-bottom: 2px;\\r\\n border-left: solid 1px lightgray;\\r\\n width: 30%;\\r\\n\\t\\t\\tmax-width: 30em;\\r\\n overflow: hidden;\\r\\n\\r\\n\\t\\t\\t.header { flex-grow: 0; } // JG: what is the prettiest way to do this?\\r\\n .search-items-body {\\r\\n\\t\\t\\t\\tflex-basis: 0;\\r\\n\\t\\t\\t\\tflex-grow: 1;\\r\\n //max-height: 450px;\\r\\n overflow: auto;\\r\\n\\r\\n .item {\\r\\n padding: 3px;\\r\\n\\r\\n .param-type {\\r\\n\\t\\t\\t\\t\\t\\tdisplay: inline-block;\\r\\n\\t\\t\\t\\t\\t\\twidth: 1.3em;\\r\\n\\t\\t\\t\\t\\t\\ttext-align: center;\\r\\n\\r\\n color: rgb(185, 185, 185);\\r\\n padding: 1px;\\r\\n border-radius: 50%;\\r\\n border: solid 1px rgb(185, 185, 185);\\r\\n font-family: sans-serif;\\r\\n font-weight: 1000;\\r\\n }\\r\\n }\\r\\n .item:hover {\\r\\n background-color: lightgrey;\\r\\n cursor: pointer;\\r\\n }\\r\\n }\\r\\n }\\r\\n } \\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import { Category } from 'app/models/parameter-definition-dto';\r\nimport { QuantityFilterDto } from 'app/project/quantity-views/quantity-filters';\r\nimport { DnDService } from 'app/services/d-n-d-service';\r\nimport { ModalService } from 'app/services/modal-service';\r\nimport { DisplayUnit, QuantityColumnService, SimpleParameterDto } from 'app/services/quantity-column-service';\r\nimport { DialogCloseResult, DialogController } from 'aurelia-dialog';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { VirtualizationEvents } from 'aurelia-ui-virtualization';\r\nimport { aoCategories } from 'resources/categories/categories';\r\nimport { TypeDto } from '../quantity-filter-sources/quantity-filter-sources';\r\nimport {ApiClient} from \"../../services/api-client\";\r\nimport {AppContextService} from \"../../services/app-context-service\";\r\n\r\n@autoinject\r\nexport class QuantityFilterColumns {\r\n private AggrFuncEnum: typeof AggrFuncEnum = AggrFuncEnum;\r\n private quantityFilter: QuantityFilterDto | undefined;\r\n private parameterColumns: (SimpleParameterDto | null)[] = [];\r\n private selectedParameterColumns: QuantityColumnDto[] = [];\r\n private startingColumnIds: string[] = [];\r\n private userInput: string = \"\";\r\n private catMap: {[key: string]: number[]} = {}\r\n private listFromStart: QuantityColumnDto[] = [];\r\n private readonly pageSize: number = 25;\r\n private parametersLoading: boolean = false;\r\n private hasSearched: boolean = false;\r\n private currentPageNumber: number = 0;\r\n public dragFilter: QuantityColumnDto | undefined; // This is a hack used to change the dragged html at the time it is copied to the mouse\r\n public listId: string = \"\";\r\n private saveClicked: boolean = false;\r\n\tprivate filterContainsRevisions: boolean = false;\r\n\tprivate removePreviousRevisionsOnSave: boolean = false;\r\n\r\n \r\n public keybuttonHandling: ((this: Window, ev: KeyboardEvent) => any) | undefined;\r\n\r\n constructor(protected dialog: DialogController,\r\n\t\t\t\tpublic quantityColumnService: QuantityColumnService,\r\n\t\t\t\tpublic modal: ModalService,\r\n\t\t\t\tprivate dndService: DnDService,\r\n\t\t\t\tprivate api: ApiClient,\r\n\t\t\t\tprivate appContext: AppContextService) { }\r\n\r\n async activate(filter: QuantityFilterDto): Promise {\r\n this.saveClicked = false;\r\n this.catMap = await this.quantityColumnService.getCatMap();\r\n console.log(\"MAP \" , this.catMap);\r\n this.quantityFilter = filter;\r\n\t\tthis.filterContainsRevisions = await this.filterHasRevisions(filter.id);\r\n console.log(\"FILTER ID \" , filter.id);\r\n let parameterIds: string[] = await this.POCGetTypeAndInstProjectParameters();\r\n await this.POCGettingUnits(parameterIds);\r\n\r\n await this.initParameterColumns();\r\n \r\n this.dialog.settings.keyboard = ['Escape'];\r\n this.keybuttonHandling = async (event) => {\r\n\t\t\tif (event.key == \"Enter\") {\r\n await this.searchForParameters();\r\n\t\t\t}\r\n };\r\n\t\twindow.addEventListener('keyup', this.keybuttonHandling, false);\r\n\r\n }\r\n async initParameterColumns() {\r\n this.parameterColumns = [];\r\n this.insertIdentityParameter();\r\n let more = await this.quantityColumnService.GetPartialProjectSimpleParametersByQF(0, this.quantityFilter!.id);\r\n this.parameterColumns.push(...more);\r\n }\r\n\r\n insertIdentityParameter() {\r\n let identityParam:SimpleParameterDto = {\r\n id: '00000000-0000-0000-0000-000000000001',\r\n name: 'AjourCount',\r\n parameterScope: true // what does true/false mean here??\r\n };\r\n this.parameterColumns.push(identityParam);\r\n }\r\n\r\n attached() {\r\n let draggedItem: QuantityColumnDto | undefined;\r\n this.listId = \"selected-columns-list\";\r\n\t\tthis.dndService.attachListInteraction(this.listId, {\r\n\t\t\tanimation: 150,\r\n\t\t\tforceFallback: true,\r\n\t\t\tgroup: \"aggregate-parameter\",\r\n\t\t\thandle: \".drag-handle\",\r\n\t\t\tdraggable: \".draggable-item\",\r\n\t\t\tdragClass: \"draggable-item--dragged\",\r\n\t\t\tchosenClass: \"draggable-item--chosen\",\r\n\t\t\tghostClass: \"draggable-item--ghost\",\r\n\t\t\tonChoose: (event: any) => {\r\n\t\t\t\tdraggedItem = this.selectedParameterColumns[event.oldDraggableIndex];\r\n\t\t\t},\r\n\t\t\tonEnd: (event: any) => {\r\n\t\t\t\tif (event.to.id === this.listId && draggedItem) {\r\n\t\t\t\t\tthis.selectedParameterColumns.splice(event.oldDraggableIndex, 1); // remove from old index\r\n\t\t\t\t\tthis.selectedParameterColumns.splice(event.newDraggableIndex, 0, draggedItem); // add to new index\r\n this.resetParameterOrder();\r\n this.handleCheckbox(event.newDraggableIndex);\r\n\t\t\t\t} \r\n\t\t\t\tdraggedItem = undefined;\r\n\t\t\t}\r\n\t\t});\r\n this.setSelectedAggr();\r\n }\r\n async handleCheckbox(newDraggableIndex: number): Promise {\r\n setTimeout(() => { \r\n //Timeout needed for view to update then setting the checkbox checked again (if it was).\r\n //This is needed as we distinguish on the only unique thing about quantity-columns which is their order.\r\n //There might be multiple guid.empties.\r\n let columnToChange: QuantityColumnDto | undefined = this.selectedParameterColumns.find(column => column.order == newDraggableIndex);\r\n (>document.getElementsByName(columnToChange?.order+'')).forEach((input: HTMLInputElement) => {\r\n if (columnToChange?.aggregate == input.value) {\r\n input.checked = true;\r\n }\r\n });\r\n }, 0);\r\n }\r\n \r\n //This will set the correct aggr for each column if any is selected.\r\n setSelectedAggr(): void {\r\n this.selectedParameterColumns.forEach((column:QuantityColumnDto) => {\r\n let aggrInputs: NodeListOf = >document.getElementsByName(column.order+'');\r\n aggrInputs.forEach((input:HTMLInputElement) => {\r\n if (column.aggregate == input.value) {\r\n input.checked = true;\r\n return;\r\n }\r\n });\r\n });\r\n }\r\n\r\n resetParameterOrder(): void {\r\n for (let parameter of this.selectedParameterColumns) {\r\n parameter.order = this.selectedParameterColumns.indexOf(parameter);\r\n }\r\n }\r\n\r\n unbind() {\r\n if (this.keybuttonHandling) {\r\n window.removeEventListener('keyup', this.keybuttonHandling, false);\r\n }\r\n }\r\n\r\n detached() {\r\n this.dndService.detachListInteraction(this.listId);\r\n }\r\n\r\n private async POCGettingUnits(parameterIds: string[]) {\r\n let units: DisplayUnit[] = await this.quantityColumnService.GetunitsByParameters(parameterIds);\r\n console.log(\"UNITS \" , units);\r\n this.selectedParameterColumns = await this.quantityColumnService.GetQuantityColumns();\r\n this.selectedParameterColumns.forEach(column => {\r\n this.startingColumnIds.push(column.id);\r\n this.listFromStart.push(Object.assign({},column));\r\n });\r\n console.log(this.selectedParameterColumns);\r\n }\r\n\r\n private async POCGetTypeAndInstProjectParameters(): Promise {\r\n let parameterIds: string[] = [];\r\n if (this.quantityFilter) {\r\n let types: TypeDto[] = await this.quantityColumnService.getSelectedTypes(this.quantityFilter.id);\r\n console.log(\"Selected Types \" , types);\r\n let typeIds: string[] = [];\r\n for (let type of types) {\r\n typeIds.push(type.id);\r\n }\r\n \r\n //Type parameters\r\n // let typeParameters = await this.quantityColumnService.GetTypeProjectParameters(typeIds);\r\n // console.log(\"Type Parameter options \" , typeParameters);\r\n // for (let parameter of typeParameters) {\r\n // parameterIds.push(parameter.id);\r\n // }\r\n \r\n // //Inst parameters\r\n // let instParameters = await this.quantityColumnService.GetInstProjectParameters(typeIds);\r\n // console.log(\"Inst Parameter options \" , instParameters);\r\n \r\n // for (let parameter of instParameters) {\r\n // parameterIds.push(parameter.id);\r\n // }\r\n }\r\n return parameterIds;\r\n }\r\n\r\n async getMoreParameters(scrollContext: any): Promise {\r\n if (!scrollContext.isAtBottom) { //built in virtual-repeat.for used for only getting more items if bottom is reached.\r\n return;\r\n }\r\n let newPageIndex: number = Math.round(this.parameterColumns.length / this.pageSize);\r\n if (!this.parametersLoading && this.currentPageNumber != newPageIndex) {\r\n await this.loadMoreParameters(newPageIndex);\r\n //Next line is to avoid \"Scroll intersection not handled. With indices: new\" showing more than once.\r\n document.getElementById('search-items-body')?.dispatchEvent(new CustomEvent(VirtualizationEvents.itemSizeChange));\r\n }\r\n this.sortParameters();\r\n }\r\n\r\n async loadMoreParameters(newPageIndex: number): Promise {\r\n if (this.quantityFilter) {\r\n this.parametersLoading = true;\r\n this.currentPageNumber = newPageIndex;\r\n this.parameterColumns.push(...await this.quantityColumnService.GetPartialProjectSimpleParametersByQF(this.currentPageNumber, this.quantityFilter.id));\r\n this.parametersLoading = false;\r\n }\r\n }\r\n\r\n async searchForParameters(): Promise {\r\n if (this.quantityFilter) { \r\n this.hasSearched = true;\r\n console.log(\"YOUR INPUT WAS - \",this.userInput);\r\n if (this.userInput == \"\") {\r\n await this.reinitParameters(); \r\n } else {\r\n this.parameterColumns = await this.quantityColumnService.GetProjectSimpleParametersByInputByQF(this.userInput, this.quantityFilter.id);\r\n this.handleAjourCount();\r\n this.sortParameters();\r\n }\r\n console.log(\"RETURN \" , this.parameterColumns);\r\n }\r\n }\r\n \r\n handleAjourCount() {\r\n if(\"AjourCount\".toLocaleLowerCase().indexOf(this.userInput.toLocaleLowerCase()) > -1) {\r\n this.insertIdentityParameter();\r\n }\r\n }\r\n\r\n async reinitParameters() {\r\n await this.initParameterColumns();\r\n }\r\n \r\n sortParameters(): void {\r\n this.parameterColumns.sort((element1, element2) => {\r\n if (element1 && element2) {\r\n return element1.name.localeCompare(element2.name);\r\n }\r\n return 0;\r\n })\r\n }\r\n\r\n selectParameter(parameter: SimpleParameterDto): void {\r\n if (this.quantityFilter) {\r\n console.log(\"Selected Parameter \" , parameter);\r\n let column: QuantityColumnDto = new QuantityColumnDto(\r\n\t\t\t\tthis.quantityFilter.id, \r\n\t\t\t\tparameter.name, \r\n\t\t\t\tparameter.id, \r\n\t\t\t\tfalse, \r\n\t\t\t\tparameter.parameterScope, \r\n\t\t\t\tAggrFuncEnum.None //QuantityColumnDTO.None\r\n\t\t\t);\r\n console.log(\"NEWLY SELECTED COLUMN \" , column);\r\n this.selectedParameterColumns.push(column);\r\n console.log(\"Columns\" , this.selectedParameterColumns);\r\n this.resetParameterOrder();\r\n }\r\n }\r\n\r\n removeColumn(column: QuantityColumnDto): void {\r\n console.log(\"PARAMETER TO REMOVE \" , column);\r\n if (column) {\r\n let index = this.selectedParameterColumns.indexOf(column);\r\n if (index != -1) {\r\n this.selectedParameterColumns.splice(index, 1);\r\n this.resetParameterOrder();\r\n }\r\n }\r\n }\r\n async canDeactivate(r: DialogCloseResult):Promise {\r\n return true;\r\n }\r\n\r\n async handleCancelDialog():Promise {\r\n if (this.checkIfSame()) {\r\n this.dialog.cancel();\r\n return;\r\n }\r\n let shouldSave: boolean = await this.modal.OpenConfirm(\"Changes not saved\", \"Do you want to save the changes before closing?\").whenClosed((x: DialogCloseResult) => {\r\n return x.wasCancelled == false;\r\n });\r\n if (shouldSave) {\r\n this.save();\r\n } else {\r\n this.dialog.cancel();\r\n }\r\n }\r\n\r\n async save(): Promise {\r\n this.saveClicked = true;\r\n await this.removeColumns();\r\n let allColumnsInDb: QuantityColumnDto[] = await this.quantityColumnService.AddQuantityColumns(this.selectedParameterColumns.filter(column => column.id == \"00000000-0000-0000-0000-000000000000\"));\r\n await this.editExistingColumns(allColumnsInDb);\r\n\t\t\r\n\t\tif (this.removePreviousRevisionsOnSave) {\r\n\t\t\t// Remove all revisions\r\n\t\t\tawait this.api.project(this.appContext.projectId)\r\n\t\t\t\t.postText(`QuantityFilter/RemoveRevisions/${this.quantityFilter?.id}`, '')\r\n\t\t\t\t.handleError(\"Could not remove revisions\", \"An error occured\")\r\n\t\t\t\t.response();\r\n\t\t}\r\n\t\tawait this.dialog.ok();\r\n }\r\n\r\n checkIfSame(): boolean {\r\n let self = this;\r\n let isSame = (this.listFromStart.length == this.selectedParameterColumns.length) && (this.listFromStart.every(function(element, index) {\r\n return self.isElementSame(element,self.selectedParameterColumns[index]);\r\n }));\r\n return isSame\r\n }\r\n\r\n private isElementSame(newColumn: QuantityColumnDto, oldColumn: QuantityColumnDto): boolean {\r\n return newColumn.id === oldColumn.id \r\n && newColumn.grouped === oldColumn.grouped\r\n\t\t\t\t&& newColumn.aggregate === oldColumn.aggregate\r\n //&& newColumn.withAvg === oldColumn.withAvg\r\n //&& newColumn.withMax === oldColumn.withMax\r\n //&& newColumn.withMin === oldColumn.withMin\r\n //&& newColumn.withNum === oldColumn.withNum\r\n //&& newColumn.withSum === oldColumn.withSum\r\n && newColumn.prjParameterId === oldColumn.prjParameterId\r\n && newColumn.order == oldColumn.order;\r\n }\r\n\r\n private async removeColumns(): Promise {\r\n let listOfSelectedColumIds: string [] = [];\r\n this.selectedParameterColumns.forEach(element => {\r\n listOfSelectedColumIds.push(element.id);\r\n });\r\n await this.quantityColumnService.RemoveQuantityColumns(this.startingColumnIds.filter(element => !listOfSelectedColumIds.includes(element)));\r\n }\r\n\r\n private async editExistingColumns(allColumnsInDb: QuantityColumnDto[]) {\r\n let existingParameters = this.selectedParameterColumns.filter(element => element.id != \"00000000-0000-0000-0000-000000000000\");\r\n let listOfColumnsToEdit: QuantityColumnDto[] = [];\r\n existingParameters.forEach((existingElement: QuantityColumnDto) => {\r\n let elementToCheck: QuantityColumnDto | undefined = allColumnsInDb.find(element => element.id == existingElement.id);\r\n\r\n if (elementToCheck && !this.isElementSame(elementToCheck, existingElement)) {\r\n listOfColumnsToEdit.push(existingElement);\r\n }\r\n });\r\n console.log(\"List to Change \" , listOfColumnsToEdit);\r\n if (listOfColumnsToEdit.length > 0) {\r\n await this.quantityColumnService.EditQuantityColumns(listOfColumnsToEdit);\r\n }\r\n }\r\n showIncludedCategories(parameterId: string): string {\r\n let result: string = `cats: `;\r\n let containedCategories: Category[] = aoCategories.filter(f => this.catMap[parameterId]?.includes(f.id)); \r\n for (let i = 0; i < containedCategories?.length; i++) {\r\n if (i < containedCategories.length - 1) {\r\n result += containedCategories[i].name + \", \";\r\n } else {\r\n result += containedCategories[i].name + \".\";\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n changeAggregate(column: QuantityColumnDto, aggregate: string): void {\r\n //change.delegate is called after an input has been checked or unchecked.\r\n //Getting all input check boxes from the specific column.\r\n let columnInputs: NodeListOf = >document.getElementsByName(column.order+'');\r\n for (let input of columnInputs) {\r\n if (input.value != aggregate) {//If the input is not the clicked input set checked false\r\n input.checked = false;\r\n } else {\r\n if (input.checked) { //If we have a match and it is selected, set aggregate to selected\r\n column.aggregate = aggregate;\r\n } else { //Othervise set the aggregate to none, as the input is no longer selected.\r\n column.aggregate = AggrFuncEnum.None;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\tpublic async filterHasRevisions(filterId: string): Promise {\r\n\t\treturn await this.api.project(this.appContext.projectId).get(`QuantityFilter/ContainsRevisions/${filterId}`).handleError(\"Could not get an answer about if the filter contains any revisions\", \"The answer could not be fetched.\").jsonResult();\r\n\t}\r\n\t\r\n\tpublic async changeGrouping(column: QuantityColumnDto): Promise {\r\n\t\t\r\n\t\t// Ask for confirmation if the filter has revisions\r\n\t\t\r\n\t\tif (this.filterContainsRevisions && !this.removePreviousRevisionsOnSave) {\r\n\t\t\tawait this.modal.OpenConfirm(\"Filter has revisions\", \"The filter has revisions. Changing grouping will remove all revisions when the changes have been saved. Do you want to continue?\").whenClosed(async (x: DialogCloseResult) => {\r\n\t\t\t\tif (x.wasCancelled) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\r\n\t\t\t\t\tthis.removePreviousRevisionsOnSave = true;\r\n\t\t\t\t\t// Change grouping\r\n\t\t\t\t\tcolumn.grouped = !column.grouped;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tcolumn.grouped = !column.grouped;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\nexport enum AggrFuncEnum {\r\n\tNone='None', //-1\r\n\tMax='Max', //0\r\n\tMin='Min', //1,\r\n\tAvg='Avg', //2,\r\n\tSum='Sum', //3,\r\n\tNum='Num', //4,\r\n}\r\n\r\n\r\nexport class QuantityColumnDto {\r\n id: string = \"00000000-0000-0000-0000-000000000000\"\r\n quantityFilterId: string = \"\"; \r\n parameterName: string = \"\";\r\n prjParameterId: string = \"\";\r\n order: number = -1;\r\n parameterScope: boolean = false;\r\n \r\n grouped: boolean = false;\r\n\taggregate:string = 'None' ;\r\n\t//withMax:boolean = false;\r\n\t//withMin:boolean = false;\r\n\t//withAvg:boolean = false;\r\n\t//withSum:boolean = false;\r\n\t//withNum:boolean = false;\r\n\r\n constructor(qf: string, name: string, pp: string, grouped: boolean, parameterScope: boolean, aggrFunc:AggrFuncEnum) {\r\n this.quantityFilterId = qf; // Needs parameterScope.\r\n this.parameterName = name;\r\n this.prjParameterId = pp;\r\n this.grouped = grouped;\r\n this.parameterScope = parameterScope;\r\n\t\tthis.aggregate = aggrFunc; // IE we use the enum value/literal as a string value.\r\n }\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","QuantityFilterColumns","constructor","dialog","quantityColumnService","modal","dndService","api","appContext","AggrFuncEnum","parameterColumns","selectedParameterColumns","startingColumnIds","userInput","catMap","listFromStart","pageSize","parametersLoading","hasSearched","currentPageNumber","listId","saveClicked","filterContainsRevisions","removePreviousRevisionsOnSave","activate","filter","this","getCatMap","console","log","quantityFilter","filterHasRevisions","parameterIds","POCGetTypeAndInstProjectParameters","POCGettingUnits","initParameterColumns","settings","keyboard","keybuttonHandling","async","event","key","searchForParameters","window","addEventListener","insertIdentityParameter","more","GetPartialProjectSimpleParametersByQF","name","parameterScope","attached","draggedItem","attachListInteraction","animation","forceFallback","group","handle","draggable","dragClass","chosenClass","ghostClass","onChoose","oldDraggableIndex","onEnd","to","splice","newDraggableIndex","resetParameterOrder","handleCheckbox","undefined","setSelectedAggr","setTimeout","columnToChange","find","column","order","document","getElementsByName","forEach","input","aggregate","value","checked","parameter","indexOf","unbind","removeEventListener","detached","detachListInteraction","units","GetunitsByParameters","GetQuantityColumns","Object","assign","types","getSelectedTypes","typeIds","type","getMoreParameters","scrollContext","isAtBottom","newPageIndex","Math","round","length","loadMoreParameters","getElementById","dispatchEvent","CustomEvent","VirtualizationEvents","itemSizeChange","sortParameters","reinitParameters","GetProjectSimpleParametersByInputByQF","handleAjourCount","toLocaleLowerCase","sort","element1","element2","localeCompare","selectParameter","QuantityColumnDto","None","removeColumn","index","canDeactivate","r","handleCancelDialog","checkIfSame","cancel","OpenConfirm","whenClosed","x","wasCancelled","save","removeColumns","allColumnsInDb","AddQuantityColumns","editExistingColumns","project","projectId","postText","handleError","response","ok","self","every","element","isElementSame","newColumn","oldColumn","grouped","prjParameterId","listOfSelectedColumIds","RemoveQuantityColumns","includes","existingParameters","listOfColumnsToEdit","existingElement","elementToCheck","EditQuantityColumns","showIncludedCategories","parameterId","result","containedCategories","f","i","changeAggregate","columnInputs","filterId","get","jsonResult","changeGrouping","autoinject","DialogController","qf","pp","aggrFunc","quantityFilterId","parameterName"],"sourceRoot":""}