{"version":3,"file":"app-d5aa3f9d.235fc7062b0b674e.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:50%}.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:50%;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,CACA,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: 50%;\\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: 50%;\\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","async","filter","this","getCatMap","console","log","quantityFilter","filterHasRevisions","parameterIds","POCGetTypeAndInstProjectParameters","POCGettingUnits","initParameterColumns","settings","keyboard","keybuttonHandling","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","scrollContext","isAtBottom","newPageIndex","Math","round","length","loadMoreParameters","getElementById","dispatchEvent","CustomEvent","VirtualizationEvents","sortParameters","reinitParameters","GetProjectSimpleParametersByInputByQF","handleAjourCount","toLocaleLowerCase","sort","element1","element2","localeCompare","selectParameter","QuantityColumnDto","None","removeColumn","index","r","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","autoinject","DialogController","qf","pp","aggrFunc","quantityFilterId","parameterName"],"sourceRoot":""}