{"version":3,"file":"main.d6cc0998143f675f.js","mappings":"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6DAAc,EAAE;;AAGlB,MAAMx8C,SAAS,GAAG,MAAMy8C,sEAAAA,EAAwB,CAACC,eAAe,CAAC38C,sDAAS,CAAC;AAE3E,IAAIzP,6DAAe,EAAE;EACnBorD,kDAAY,CAACC,MAAM,EAAE37C,SAAS,CAAC;CAChC,MAAM;EACLA,SAAS,EAAE,CAACg8C,KAAK,CAAEC,GAAG,IAAKvoD,OAAO,CAACvC,KAAK,CAAC8qD,GAAG,CAAC,CAAC;;;;;;;;;;;ACtBhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/@core/auth.service.ts","./src/app/@core/core.module.ts","./src/app/@core/http/api-prefix.interceptor.ts","./src/app/@core/http/error-handler.interceptor.ts","./src/app/@core/http/token.interceptor.ts","./src/app/@core/index.ts","./src/app/@core/logger.service.ts","./src/app/@core/route-reusable-strategy.ts","./src/app/@core/until-destroyed.ts","./src/app/@shared/confirmation-dialog/confirmation-dialog.component.ts","./src/app/@shared/confirmation-dialog/confirmation-dialog.component.html","./src/app/@shared/index.ts","./src/app/@shared/loader/loader.component.html","./src/app/@shared/loader/loader.component.ts","./src/app/@shared/logs/application-insights-logger.ts","./src/app/@shared/logs/empty-logger.ts","./src/app/@shared/logs/error.handler.service.ts","./src/app/@shared/logs/telemetry.service.ts","./src/app/@shared/mat-paginator-goto/mat-paginator-goto.component.ts","./src/app/@shared/mat-paginator-goto/mat-paginator-goto.component.html","./src/app/@shared/shared.module.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/i18n/i18n.module.ts","./src/app/i18n/i18n.service.ts","./src/app/i18n/index.ts","./src/app/i18n/translatable-mat-paginator-intl.ts","./src/app/klic-projects/components/klic-projects-list/klic-projects-list.component.ts","./src/app/klic-projects/components/klic-projects-list/klic-projects-list.component.html","./src/app/klic-projects/components/klic-request-error/klic-request-error.component.html","./src/app/klic-projects/components/klic-request-error/klic-request-error.component.ts","./src/app/klic-projects/klic-projects-routing.module.ts","./src/app/klic-projects/klic-projects.component.ts","./src/app/klic-projects/klic-projects.component.html","./src/app/klic-projects/klic-projects.module.ts","./src/app/klic-projects/services/klic-projects.interface.ts","./src/app/klic-projects/services/klic-projects.service.ts","./src/app/klic-request-page/classes/contact-base.component/contact-base.component.ts","./src/app/klic-request-page/classes/map-tool/line-string-draw.ts","./src/app/klic-request-page/classes/map-tool/map-tool-factory.ts","./src/app/klic-request-page/classes/map-tool/modify-lak-tool.ts","./src/app/klic-request-page/classes/map-tool/modify-tool.ts","./src/app/klic-request-page/classes/map-tool/polygon-draw.ts","./src/app/klic-request-page/classes/mode/add-mode.ts","./src/app/klic-request-page/classes/mode/draft-mode.ts","./src/app/klic-request-page/classes/mode/klic-project-mode.ts","./src/app/klic-request-page/classes/mode/klic-request-mode.ts","./src/app/klic-request-page/classes/split-algorithms/new-split-algorithm.ts","./src/app/klic-request-page/classes/split-algorithms/old-split-algorithm.ts","./src/app/klic-request-page/classes/split-algorithms/split-algorithm-factory.ts","./src/app/klic-request-page/classes/split-algorithms/split-algorithm.ts","./src/app/klic-request-page/components/add-hcs-by-address-dialog/add-hcs-by-address-dialog.component.ts","./src/app/klic-request-page/components/add-hcs-by-address-dialog/add-hcs-by-address-dialog.component.html","./src/app/klic-request-page/components/add-hcs-by-bag-addresses-dialog/add-hcs-by-bag-addresses-dialog.component.ts","./src/app/klic-request-page/components/add-hcs-by-bag-addresses-dialog/add-hcs-by-bag-addresses-dialog.component.html","./src/app/klic-request-page/components/address-book-dialog/address-book-dialog.component.ts","./src/app/klic-request-page/components/address-book-dialog/address-book-dialog.component.html","./src/app/klic-request-page/components/contact-data/contact-data.component.ts","./src/app/klic-request-page/components/contact-data/contact-data.component.html","./src/app/klic-request-page/components/contact-person/contact-person.component.ts","./src/app/klic-request-page/components/contact-person/contact-person.component.html","./src/app/klic-request-page/components/file-upload/file-upload.component.ts","./src/app/klic-request-page/components/file-upload/file-upload.component.html","./src/app/klic-request-page/components/house-connection-sketches-table/house-connection-sketches-table.component.ts","./src/app/klic-request-page/components/house-connection-sketches-table/house-connection-sketches-table.component.html","./src/app/klic-request-page/components/house-connection-sketches/house-connection-sketches.component.ts","./src/app/klic-request-page/components/house-connection-sketches/house-connection-sketches.component.html","./src/app/klic-request-page/components/information-about-performed-work/information-about-performed-work.component.ts","./src/app/klic-request-page/components/information-about-performed-work/information-about-performed-work.component.html","./src/app/klic-request-page/components/kadaster-account-dialog/kadaster-account-dialog.component.ts","./src/app/klic-request-page/components/kadaster-account-dialog/kadaster-account-dialog.component.html","./src/app/klic-request-page/components/kadaster-account/kadaster-account.component.ts","./src/app/klic-request-page/components/kadaster-account/kadaster-account.component.html","./src/app/klic-request-page/components/klic-request-form/klic-request-form.component.ts","./src/app/klic-request-page/components/klic-request-form/klic-request-form.component.html","./src/app/klic-request-page/components/klic-request-item/klic-request-item.component.ts","./src/app/klic-request-page/components/klic-request-item/klic-request-item.component.html","./src/app/klic-request-page/components/klic-type-dialog/klic-type-dialog.component.ts","./src/app/klic-request-page/components/klic-type-dialog/klic-type-dialog.component.html","./src/app/klic-request-page/components/layers/layers.component.ts","./src/app/klic-request-page/components/layers/layers.component.html","./src/app/klic-request-page/components/map-location-search-by-city-street/map-location-search-by-city-street.component.ts","./src/app/klic-request-page/components/map-location-search-by-city-street/map-location-search-by-city-street.component.html","./src/app/klic-request-page/components/map-location-search-by-coordinates/map-location-search-by-coordinates.component.ts","./src/app/klic-request-page/components/map-location-search-by-coordinates/map-location-search-by-coordinates.component.html","./src/app/klic-request-page/components/map-location-search-by-post-code/map-location-search-by-post-code.component.ts","./src/app/klic-request-page/components/map-location-search-by-post-code/map-location-search-by-post-code.component.html","./src/app/klic-request-page/components/map-location-search/map-location-search.component.ts","./src/app/klic-request-page/components/map-location-search/map-location-search.component.html","./src/app/klic-request-page/components/map/map-layers-z-indexes.ts","./src/app/klic-request-page/components/map/map.component.ts","./src/app/klic-request-page/components/map/map.component.html","./src/app/klic-request-page/components/polygon-info/polygon-info.component.ts","./src/app/klic-request-page/components/polygon-info/polygon-info.component.html","./src/app/klic-request-page/components/work-type-dialog/work-type-dialog.component.ts","./src/app/klic-request-page/components/work-type-dialog/work-type-dialog.component.html","./src/app/klic-request-page/enums/addres-type.enum.ts","./src/app/klic-request-page/enums/base-layers.enum.ts","./src/app/klic-request-page/enums/map-tool-type.enum.ts","./src/app/klic-request-page/enums/mode.enum.ts","./src/app/klic-request-page/enums/polygon-validation.enum.ts","./src/app/klic-request-page/enums/split-algorithm-name.enum.ts","./src/app/klic-request-page/interfaces/klic-request.interface.ts","./src/app/klic-request-page/klic-request-page-routing.module.ts","./src/app/klic-request-page/klic-request-page.component.ts","./src/app/klic-request-page/klic-request-page.component.html","./src/app/klic-request-page/klic-request-page.module.ts","./src/app/klic-request-page/models/klic-polygon-model.ts","./src/app/klic-request-page/models/klic-request-model.ts","./src/app/klic-request-page/services/address-book/address-book.service.ts","./src/app/klic-request-page/services/bag/bag.service.ts","./src/app/klic-request-page/services/form/form.service.ts","./src/app/klic-request-page/services/geospatial/geospatial.service.ts","./src/app/klic-request-page/services/klic-data/klic-data.service.ts","./src/app/klic-request-page/services/klic-project/klic-project.service.ts","./src/app/klic-request-page/services/klic-projects/klic-projects.service.ts","./src/app/klic-request-page/services/layers-availability/layers-availability.service.ts","./src/app/klic-request-page/services/map/map.service.ts","./src/app/klic-request-page/services/polygon-validation/polygon-validation.service.ts","./src/app/klic-request-page/services/request-context/request-context.service.ts","./src/app/klic-request-page/validators/blank.validator.ts","./src/app/klic-request-page/validators/reference.validator.ts","./src/app/klic-request-page/validators/work-types-amount.validator.ts","./src/app/material.module.ts","./src/app/shell/shell.component.ts","./src/app/shell/shell.component.html","./src/app/shell/shell.module.ts","./src/app/shell/shell.service.ts","./src/environments/.env.ts","./src/environments/environment.dev.ts","./src/hmr.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private _token: string;\r\n private _platformToken: string;\r\n\r\n constructor() {\r\n const queryStringIndex = window.location.href.indexOf('?');\r\n const queryString = new URLSearchParams(window.location.href.substring(queryStringIndex));\r\n\r\n this.token = queryString.get('token');\r\n this.platformToken = queryString.get('platformToken');\r\n }\r\n\r\n get token() {\r\n return this._token;\r\n }\r\n\r\n set token(token: string) {\r\n this._token = token;\r\n }\r\n\r\n get platformToken() {\r\n return this._platformToken;\r\n }\r\n\r\n set platformToken(platformToken: string) {\r\n this._platformToken = platformToken;\r\n }\r\n}\r\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { RouteReuseStrategy, RouterModule } from '@angular/router';\r\n\r\nimport { RouteReusableStrategy } from './route-reusable-strategy';\r\nimport { ApiPrefixInterceptor } from './http/api-prefix.interceptor';\r\nimport { ErrorHandlerInterceptor } from './http/error-handler.interceptor';\r\nimport { TokenInterceptor } from '@core/http/token.interceptor';\r\n\r\n@NgModule({\r\n imports: [CommonModule, HttpClientModule, RouterModule],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ApiPrefixInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorHandlerInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: RouteReuseStrategy,\r\n useClass: RouteReusableStrategy,\r\n },\r\n ],\r\n})\r\nexport class CoreModule {\r\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\r\n // Import guard\r\n if (parentModule) {\r\n throw new Error(`${parentModule} has already been loaded. Import Core module in the AppModule only.`);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { environment } from '@env/environment';\r\n\r\n/**\r\n * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiPrefixInterceptor implements HttpInterceptor {\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n if (!/^(http|https):/i.test(request.url)) {\r\n request = request.clone({ url: environment.serverUrl + request.url });\r\n }\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { environment } from '@env/environment';\r\nimport { Logger } from '../logger.service';\r\n\r\nconst log = new Logger('ErrorHandlerInterceptor');\r\n\r\n/**\r\n * Adds a default error handler to all requests.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorHandlerInterceptor implements HttpInterceptor {\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(catchError((error) => this.errorHandler(error)));\r\n }\r\n\r\n // Customize the default error handler here if needed\r\n private errorHandler(response: HttpEvent): Observable> {\r\n if (!environment.production) {\r\n // Do something with the error\r\n log.error('Request error', response);\r\n }\r\n throw response;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { AuthService } from '@core/auth.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfirmationDialogComponent } from '@shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private dialog: MatDialog,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const isPdokRequest = request.url.includes('pdok');\r\n if (!isPdokRequest) {\r\n const isPlatformRequest = request.url.includes('klicdata');\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${isPlatformRequest ? this.authService.platformToken : this.authService.token}`,\r\n },\r\n });\r\n }\r\n\r\n return next.handle(request).pipe(\r\n catchError((error) => {\r\n if (error.status === 401) {\r\n this.openConfirmationDialog();\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n private openConfirmationDialog(): void {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n width: '500px',\r\n disableClose: true,\r\n data: {\r\n confirmationText: this.translateService.instant(\r\n 'The security token has expired. Click OK to refresh it and make the request again.'\r\n ),\r\n confirmButtonText: 'OK',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n window.parent.location.href =\r\n `${this.route.snapshot.queryParams.platformUrl}/Backoffice/LargeAreaKlicRequest/B2BKlicRequest`;\r\n }\r\n });\r\n }\r\n}\r\n","export * from './core.module';\r\nexport * from './http/api-prefix.interceptor';\r\nexport * from './http/error-handler.interceptor';\r\nexport * from './route-reusable-strategy';\r\nexport * from './logger.service';\r\nexport * from './until-destroyed';\r\n","/**\r\n * Simple logger system with the possibility of registering custom outputs.\r\n *\r\n * 4 different log levels are provided, with corresponding methods:\r\n * - debug : for debug information\r\n * - info : for informative status of the application (success, ...)\r\n * - warning : for non-critical errors that do not prevent normal application behavior\r\n * - error : for critical errors that prevent normal application behavior\r\n *\r\n * Example usage:\r\n * ```\r\n * import { Logger } from 'app/core/logger.service';\r\n *\r\n * const log = new Logger('myFile');\r\n * ...\r\n * log.debug('something happened');\r\n * ```\r\n *\r\n * To disable debug and info logs in production, add this snippet to your root component:\r\n * ```\r\n * export class AppComponent implements OnInit {\r\n * ngOnInit() {\r\n * if (environment.production) {\r\n * Logger.enableProductionMode();\r\n * }\r\n * ...\r\n * }\r\n * }\r\n *\r\n * If you want to process logs through other outputs than console, you can add LogOutput functions to Logger.outputs.\r\n */\r\n\r\n/**\r\n * The possible log levels.\r\n * LogLevel.Off is never emitted and only used with Logger.level property to disable logs.\r\n */\r\nexport enum LogLevel {\r\n Off = 0,\r\n Error,\r\n Warning,\r\n Info,\r\n Debug,\r\n}\r\n\r\n/**\r\n * Log output handler function.\r\n */\r\nexport type LogOutput = (source: string | undefined, level: LogLevel, ...objects: any[]) => void;\r\n\r\nexport class Logger {\r\n /**\r\n * Current logging level.\r\n * Set it to LogLevel.Off to disable logs completely.\r\n */\r\n static Level = LogLevel.Debug;\r\n\r\n /**\r\n * Additional log outputs.\r\n */\r\n static Outputs: LogOutput[] = [];\r\n\r\n /**\r\n * Enables production mode.\r\n * Sets logging level to LogLevel.Warning.\r\n */\r\n static enableProductionMode() {\r\n Logger.Level = LogLevel.Warning;\r\n }\r\n\r\n constructor(private source?: string) {}\r\n\r\n /**\r\n * Logs messages or objects with the debug level.\r\n * Works the same as console.log().\r\n */\r\n debug(...objects: any[]) {\r\n this.log(console.log, LogLevel.Debug, objects);\r\n }\r\n\r\n /**\r\n * Logs messages or objects with the info level.\r\n * Works the same as console.log().\r\n */\r\n info(...objects: any[]) {\r\n // eslint-disable-next-line no-console\r\n this.log(console.info, LogLevel.Info, objects);\r\n }\r\n\r\n /**\r\n * Logs messages or objects with the warning level.\r\n * Works the same as console.log().\r\n */\r\n warn(...objects: any[]) {\r\n this.log(console.warn, LogLevel.Warning, objects);\r\n }\r\n\r\n /**\r\n * Logs messages or objects with the error level.\r\n * Works the same as console.log().\r\n */\r\n error(...objects: any[]) {\r\n this.log(console.error, LogLevel.Error, objects);\r\n }\r\n\r\n private log(func: (...args: any[]) => void, level: LogLevel, objects: any[]) {\r\n if (level <= Logger.Level) {\r\n const log = this.source ? ['[' + this.source + ']'].concat(objects) : objects;\r\n func.apply(console, log);\r\n Logger.Outputs.forEach((output) => output.apply(output, [this.source, level, ...objects]));\r\n }\r\n }\r\n}\r\n","import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * A route strategy allowing for explicit route reuse.\r\n * Used as a workaround for https://github.com/angular/angular/issues/18374\r\n * To reuse a given route, add `data: { reuse: true }` to the route definition.\r\n */\r\n@Injectable()\r\nexport class RouteReusableStrategy extends RouteReuseStrategy {\r\n public shouldDetach(_route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n public store(_route: ActivatedRouteSnapshot, _detachedTree: DetachedRouteHandle | null): void {}\r\n\r\n public shouldAttach(_route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n public retrieve(_route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n return null;\r\n }\r\n\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig || future.data.reuse;\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nconst untilDestroyedSymbol = Symbol('untilDestroyed');\r\n\r\n/**\r\n * RxJS operator that unsubscribe from observables on destroy.\r\n * Code forked from https://github.com/NetanelBasal/ngx-take-until-destroy\r\n *\r\n * IMPORTANT: Add the `untilDestroyed` operator as the last one to prevent leaks with intermediate observables in the\r\n * operator chain.\r\n *\r\n * @param instance The parent Angular component or object instance.\r\n * @param destroyMethodName The method to hook on (default: 'ngOnDestroy').\r\n * @example\r\n * ```\r\n * import { untilDestroyed } from '@core';\r\n *\r\n * @Component({\r\n * selector: 'app-example',\r\n * templateUrl: './example.component.html'\r\n * })\r\n * export class ExampleComponent implements OnInit, OnDestroy {\r\n * ngOnInit() {\r\n * interval(1000)\r\n * .pipe(untilDestroyed(this))\r\n * .subscribe(val => console.log(val));\r\n * }\r\n *\r\n * // This method must be present, even if empty.\r\n * ngOnDestroy() {\r\n * // To protect you, an error will be thrown if it doesn't exist.\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport function untilDestroyed(instance: object, destroyMethodName: string = 'ngOnDestroy') {\r\n return (source: Observable) => {\r\n const originalDestroy = instance[destroyMethodName];\r\n const hasDestroyFunction = typeof originalDestroy === 'function';\r\n\r\n if (!hasDestroyFunction) {\r\n throw new Error(\r\n `${instance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`\r\n );\r\n }\r\n\r\n if (!instance[untilDestroyedSymbol]) {\r\n instance[untilDestroyedSymbol] = new Subject();\r\n\r\n instance[destroyMethodName] = function () {\r\n if (hasDestroyFunction) {\r\n originalDestroy.apply(this, arguments);\r\n }\r\n instance[untilDestroyedSymbol].next();\r\n instance[untilDestroyedSymbol].complete();\r\n };\r\n }\r\n\r\n return source.pipe(takeUntil(instance[untilDestroyedSymbol]));\r\n };\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.scss'],\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ConfirmationDialogData) {}\r\n\r\n ngOnInit() {}\r\n}\r\n\r\nexport interface ConfirmationDialogData {\r\n confirmButtonText: string;\r\n discardButtonText: string;\r\n confirmationText: string;\r\n}\r\n","\r\n

{{ data.confirmationText }}

\r\n
\r\n\r\n \r\n \r\n\r\n","export * from './shared.module';\r\nexport * from './loader/loader.component';\r\n","
\r\n \r\n {{ message }}\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n @Input() isLoading = false;\r\n @Input() size = 1;\r\n @Input() message: string | undefined;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","import { NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { ApplicationInsights, Util } from '@microsoft/applicationinsights-web';\r\nimport { Logger } from './logger';\r\n\r\nexport class ApplicationInsightsLogger implements Logger {\r\n appInsights: ApplicationInsights;\r\n\r\n constructor(private instrumentationKey: string, private router: Router) {\r\n this.appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: this.instrumentationKey,\r\n enableAutoRouteTracking: true,\r\n },\r\n });\r\n this.appInsights.loadAppInsights();\r\n this.createRouterSubscription();\r\n }\r\n\r\n public logPageView(url: string, name?: string, urlAfterRedirects?: string) {\r\n this.appInsights.context.telemetryTrace.name = this.getRawUrl(url);\r\n\r\n this.appInsights.trackPageView({\r\n name,\r\n uri: urlAfterRedirects,\r\n });\r\n }\r\n\r\n public logEvent(name: string, properties?: { [key: string]: any }) {\r\n this.appInsights.trackEvent({ name }, properties);\r\n }\r\n\r\n public logMetric(name: string, average: number, properties?: { [key: string]: any }) {\r\n this.appInsights.trackMetric({ name, average }, properties);\r\n }\r\n\r\n public logException(exception: Error, severityLevel?: number) {\r\n this.appInsights.trackException({ exception, severityLevel });\r\n }\r\n\r\n public logTrace(message: string, properties?: { [key: string]: any }) {\r\n this.appInsights.trackTrace({ message }, properties);\r\n }\r\n\r\n private startNavigationEvent(url: string) {\r\n this.appInsights.context.telemetryTrace.traceID = Util.generateW3CId();\r\n this.appInsights.context.telemetryTrace.name = this.getRawUrl(url);\r\n this.appInsights.startTrackEvent(url);\r\n }\r\n\r\n private endNavigationEvent(url: string) {\r\n this.appInsights.context.telemetryTrace.name = this.getRawUrl(url);\r\n this.appInsights.stopTrackEvent(url, { type: 'PAGE LOAD TIME' });\r\n }\r\n\r\n private createRouterSubscription() {\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n this.appInsights.context.telemetryTrace.traceID = Util.generateW3CId();\r\n this.startNavigationEvent(event.url);\r\n } else if (event instanceof NavigationEnd) {\r\n this.endNavigationEvent(event.url);\r\n this.logPageView(event.url);\r\n }\r\n });\r\n }\r\n\r\n private getRawUrl(url: string): string {\r\n const urlParts = url.split('?');\r\n\r\n if (urlParts.length > 1) {\r\n return urlParts[0];\r\n }\r\n\r\n return url;\r\n }\r\n}\r\n","import { Logger } from './logger';\r\n\r\nexport class EmptyLogger implements Logger {\r\n public logPageView(_url: string, _name?: string, _urlAfterRedirects?: string): void {}\r\n public logEvent(_name: string, _properties?: { [key: string]: any }): void {}\r\n public logMetric(_name: string, _average: number, _properties?: { [key: string]: any }): void {}\r\n public logException(_exception: Error, _severityLevel?: number): void {}\r\n public logTrace(_message: string, _properties?: { [key: string]: any }): void {}\r\n}\r\n","import { ErrorHandler, Injectable } from '@angular/core';\r\nimport { TelemetryService } from './telemetry.service';\r\nimport { environment } from '@env/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorHandlerService extends ErrorHandler {\r\n constructor(private telemetryService: TelemetryService) {\r\n super();\r\n }\r\n\r\n handleError(error: Error) {\r\n if (!environment.production) {\r\n console.error(error);\r\n }\r\n this.telemetryService.logger.logException(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ApplicationInsightsLogger } from './application-insights-logger';\r\nimport { EmptyLogger } from './empty-logger';\r\nimport { Logger } from './logger';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TelemetryService {\r\n private _logger: Logger = new EmptyLogger();\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n this.route.queryParams.subscribe((queryParams) => {\r\n if (queryParams.instrumentationKey && Object.keys(queryParams).length && !this.isApplicationInsightsLogger()) {\r\n this._logger = new ApplicationInsightsLogger(queryParams.instrumentationKey, router);\r\n }\r\n });\r\n }\r\n\r\n public get logger() {\r\n return this._logger;\r\n }\r\n\r\n private isApplicationInsightsLogger(): boolean {\r\n return this._logger && this._logger instanceof ApplicationInsightsLogger;\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { MatLegacyPaginator as MatPaginator, LegacyPageEvent as PageEvent } from '@angular/material/legacy-paginator';\r\n\r\n@Component({\r\n selector: 'app-mat-paginator-goto',\r\n templateUrl: './mat-paginator-goto.component.html',\r\n styleUrls: ['./mat-paginator-goto.component.scss'],\r\n})\r\nexport class MatPaginatorGotoComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @Input() disabled = false;\r\n @Input() hidePageSize = false;\r\n @Input() pageSizeOptions: number[];\r\n @Input() showFirstLastButtons = false;\r\n @Output() page = new EventEmitter();\r\n\r\n pageSize: number;\r\n pageIndex: number;\r\n length: number;\r\n goToPage: number;\r\n pageNumbers: number[];\r\n\r\n constructor() {}\r\n\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('pageIndex') set pageIndexChanged(pageIndex: number) {\r\n this.pageIndex = pageIndex;\r\n }\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('length') set lengthChanged(length: number) {\r\n this.length = length;\r\n this.updateGoto();\r\n }\r\n // eslint-disable-next-line @angular-eslint/no-input-rename\r\n @Input('pageSize') set pageSizeChanged(pageSize: number) {\r\n this.pageSize = pageSize;\r\n this.updateGoto();\r\n }\r\n\r\n ngOnInit() {\r\n this.updateGoto();\r\n }\r\n\r\n updateGoto() {\r\n this.goToPage = (this.pageIndex || 0) + 1;\r\n this.pageNumbers = [];\r\n const pageLength = Math.ceil(this.length / this.pageSize);\r\n for (let i = 1; i <= pageLength; i++) {\r\n this.pageNumbers.push(i);\r\n }\r\n }\r\n\r\n paginationChange(pageEvt: PageEvent) {\r\n this.length = pageEvt.length;\r\n this.pageIndex = pageEvt.pageIndex;\r\n this.pageSize = pageEvt.pageSize;\r\n this.updateGoto();\r\n this.emitPageEvent(pageEvt);\r\n }\r\n\r\n goToChange() {\r\n this.paginator.pageIndex = this.goToPage - 1;\r\n this.emitPageEvent({\r\n length: this.paginator.length,\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n });\r\n }\r\n\r\n emitPageEvent(pageEvent: PageEvent) {\r\n this.page.next(pageEvent);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
{{ 'Page' | translate }}
\r\n \r\n \r\n {{ pageNumber }}\r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { MaterialModule } from '@app/material.module';\r\nimport { LoaderComponent } from './loader/loader.component';\r\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { MatPaginatorGotoComponent } from './mat-paginator-goto/mat-paginator-goto.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [FlexLayoutModule, MaterialModule, CommonModule, TranslateModule, FormsModule],\r\n declarations: [LoaderComponent, ConfirmationDialogComponent, MatPaginatorGotoComponent],\r\n exports: [LoaderComponent, ConfirmationDialogComponent, MatPaginatorGotoComponent],\r\n})\r\nexport class SharedModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { Shell } from '@app/shell/shell.service';\r\n\r\nconst routes: Routes = [\r\n Shell.childRoutes([\r\n {\r\n path: 'klic-request-page',\r\n loadChildren: () => import('./klic-request-page/klic-request-page.module').then((m) => m.KlicRequestPageModule),\r\n },\r\n {\r\n path: 'klic-projects',\r\n loadChildren: () => import('./klic-projects/klic-projects.module').then((m) => m.KlicProjectsModule),\r\n },\r\n ]),\r\n // Fallback when no prior route is matched\r\n { path: '**', redirectTo: '', pathMatch: 'full' },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n useHash: true,\r\n preloadingStrategy: PreloadAllModules\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n providers: [],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { merge } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { environment } from '@env/environment';\r\nimport { Logger, untilDestroyed } from '@core';\r\nimport { I18nService } from '@app/i18n';\r\nimport { TelemetryService } from '@shared/logs/telemetry.service';\r\nimport { productFruits } from 'product-fruits';\r\nimport { RequestContextService } from './klic-request-page/services/request-context/request-context.service';\r\nimport { RequestContext } from './klic-request-page/interfaces/klic-request.interface';\r\n\r\nconst log = new Logger('App');\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private titleService: Title,\r\n private translateService: TranslateService,\r\n private i18nService: I18nService,\r\n private telemetryService: TelemetryService,\r\n private requestContextService: RequestContextService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n // Setup logger\r\n if (environment.production) {\r\n Logger.enableProductionMode();\r\n }\r\n\r\n log.debug('init');\r\n\r\n // Setup translations\r\n this.i18nService.init(environment.defaultLanguage, environment.supportedLanguages);\r\n this.i18nService.language = navigator.language;\r\n\r\n const onNavigationEnd = this.router.events.pipe(filter((event) => event instanceof NavigationEnd));\r\n\r\n // Change page title on navigation or language change, based on route data\r\n merge(this.translateService.onLangChange, onNavigationEnd)\r\n .pipe(\r\n map(() => {\r\n let route = this.activatedRoute;\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n return route;\r\n }),\r\n filter((route) => route.outlet === 'primary'),\r\n switchMap((route) => route.data),\r\n untilDestroyed(this)\r\n )\r\n .subscribe((event) => {\r\n const title = event.title;\r\n if (title) {\r\n this.titleService.setTitle(this.translateService.instant(title));\r\n }\r\n });\r\n\r\n this.requestContextService.getRequestContext().subscribe(\r\n (requestContext) => {\r\n this.initProductFruits(requestContext);\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.i18nService.destroy();\r\n }\r\n\r\n initProductFruits(requestContext: RequestContext) {\r\n if (environment.productFruitsWorkspaceId) {\r\n const language = 'nl';\r\n\r\n productFruits.init(\r\n environment.productFruitsWorkspaceId,\r\n language,\r\n {\r\n username: requestContext.user.name,\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { ErrorHandler, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MaterialModule } from './material.module';\r\nimport { CoreModule } from '@core';\r\nimport { KlicRequestPageModule } from './klic-request-page/klic-request-page.module';\r\nimport { ShellModule } from './shell/shell.module';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { KlicProjectsModule } from '@app/klic-projects/klic-projects.module';\r\nimport {\r\n MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS as MAT_SNACK_BAR_DEFAULT_OPTIONS\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { MatLegacyPaginatorIntl as MatPaginatorIntl } from '@angular/material/legacy-paginator';\r\nimport { TranslatableMatPaginatorIntl } from '@app/i18n/translatable-mat-paginator-intl';\r\nimport { ErrorHandlerService } from '@shared/logs/error.handler.service';\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot(),\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n CoreModule,\r\n ShellModule,\r\n KlicRequestPageModule,\r\n KlicProjectsModule,\r\n AppRoutingModule, // must be imported as the last module as it contains the fallback route\r\n ],\r\n declarations: [AppComponent],\r\n providers: [\r\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { panelClass: 'snackbar' } },\r\n {\r\n provide: MatPaginatorIntl,\r\n useClass: TranslatableMatPaginatorIntl\r\n },\r\n { provide: ErrorHandler, useClass: ErrorHandlerService },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { MaterialModule } from '@app/material.module';\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule, FlexLayoutModule, MaterialModule],\r\n})\r\nexport class I18nModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService, LangChangeEvent } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { Logger } from '@core/logger.service';\r\nimport enUS from '../../translations/en-US.json';\r\nimport nlNL from '../../translations/nl-NL.json';\r\n\r\nconst log = new Logger('I18nService');\r\nconst languageKey = 'language';\r\n\r\n/**\r\n * Pass-through function to mark a string for translation extraction.\r\n * Running `npm translations:extract` will include the given string by using this.\r\n *\r\n * @param s The string to extract for translation.\r\n * @return The same string.\r\n */\r\nexport function extract(s: string) {\r\n return s;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class I18nService {\r\n defaultLanguage!: string;\r\n supportedLanguages!: string[];\r\n\r\n private langChangeSubscription!: Subscription;\r\n\r\n constructor(private translateService: TranslateService) {\r\n // Embed languages to avoid extra HTTP requests\r\n translateService.setTranslation('en-US', enUS);\r\n translateService.setTranslation('nl', nlNL);\r\n }\r\n\r\n /**\r\n * Sets the current language.\r\n * Note: The current language is saved to the local storage.\r\n * If no parameter is specified, the language is loaded from local storage (if present).\r\n *\r\n * @param language The IETF language code to set.\r\n */\r\n set language(language: string) {\r\n language = language || localStorage.getItem(languageKey) || this.translateService.getBrowserCultureLang();\r\n let isSupportedLanguage = this.supportedLanguages.includes(language);\r\n\r\n // If no exact match is found, search without the region\r\n if (language && !isSupportedLanguage) {\r\n language = language.split('-')[0];\r\n language = this.supportedLanguages.find((supportedLanguage) => supportedLanguage.startsWith(language)) || '';\r\n isSupportedLanguage = Boolean(language);\r\n }\r\n\r\n // Fallback if language is not supported\r\n if (!isSupportedLanguage) {\r\n language = this.defaultLanguage;\r\n }\r\n\r\n log.debug(`Language set to ${language}`);\r\n this.translateService.use(language);\r\n }\r\n\r\n /**\r\n * Gets the current language.\r\n *\r\n * @return The current language code.\r\n */\r\n get language(): string {\r\n return this.translateService.currentLang;\r\n }\r\n\r\n /**\r\n * Initializes i18n for the application.\r\n * Loads language from local storage if present, or sets default language.\r\n *\r\n * @param defaultLanguage The default language to use.\r\n * @param supportedLanguages The list of supported languages.\r\n */\r\n init(defaultLanguage: string, supportedLanguages: string[]) {\r\n this.defaultLanguage = defaultLanguage;\r\n this.supportedLanguages = supportedLanguages;\r\n this.language = '';\r\n\r\n // Warning: this subscription will always be alive for the app's lifetime\r\n this.langChangeSubscription = this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\r\n localStorage.setItem(languageKey, event.lang);\r\n });\r\n }\r\n\r\n /**\r\n * Cleans up language change subscription.\r\n */\r\n destroy() {\r\n if (this.langChangeSubscription) {\r\n this.langChangeSubscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","export * from './i18n.module';\r\nexport * from './i18n.service';\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { MatLegacyPaginatorIntl as MatPaginatorIntl } from '@angular/material/legacy-paginator';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TranslatableMatPaginatorIntl extends MatPaginatorIntl {\r\n constructor(private translateService: TranslateService) {\r\n super();\r\n this.translateMatPaginator();\r\n }\r\n\r\n override getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n length = Math.max(length, 0);\r\n const prevPageLastItemIdx = page * pageSize;\r\n const currPageLastItemIdx =\r\n prevPageLastItemIdx < length ? Math.min(prevPageLastItemIdx + pageSize, length) : prevPageLastItemIdx + pageSize;\r\n\r\n return this.translateService.instant(\r\n 'PAGINATOR.RANGE_LABEL',\r\n { startIndex: prevPageLastItemIdx + 1, endIndex: currPageLastItemIdx, length }\r\n );\r\n };\r\n\r\n private translateMatPaginator() {\r\n const translation = this.translateService.instant([\r\n 'PAGINATOR.ITEMS_PER_PAGE_LABEL',\r\n 'PAGINATOR.NEXT_PAGE_LABEL',\r\n 'PAGINATOR.PREVIOUS_PAGE_LABEL',\r\n 'PAGINATOR.FIRST_PAGE_LABEL',\r\n 'PAGINATOR.LAST_PAGE_LABEL',\r\n 'PAGINATOR.RANGE_LABEL',\r\n ]);\r\n\r\n this.itemsPerPageLabel = translation['PAGINATOR.ITEMS_PER_PAGE_LABEL'];\r\n this.nextPageLabel = translation['PAGINATOR.NEXT_PAGE_LABEL'];\r\n this.previousPageLabel = translation['PAGINATOR.PREVIOUS_PAGE_LABEL'];\r\n this.firstPageLabel = translation['PAGINATOR.FIRST_PAGE_LABEL'];\r\n this.lastPageLabel = translation['PAGINATOR.LAST_PAGE_LABEL'];\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { KlicProjectsService } from '@app/klic-projects/services/klic-projects.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';\r\nimport {\r\n KlicProject,\r\n KlicProjectResult,\r\n KlicProjectStatus,\r\n KlicProjectType,\r\n KlicRequest,\r\n KlicRequestsStatistics,\r\n KlicRequestStatus,\r\n SearchType,\r\n SearchTypeModel,\r\n} from '@app/klic-projects/services/klic-projects.interface';\r\nimport { AuthService } from '@core/auth.service';\r\nimport { LegacyPageEvent as PageEvent } from '@angular/material/legacy-paginator';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { ConfirmationDialogComponent } from '@app/@shared/confirmation-dialog/confirmation-dialog.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginatorGotoComponent } from '../../../@shared/mat-paginator-goto/mat-paginator-goto.component';\r\n\r\n@Component({\r\n selector: 'app-klic-projects-list',\r\n templateUrl: './klic-projects-list.component.html',\r\n styleUrls: ['./klic-projects-list.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class KlicProjectsListComponent implements OnInit {\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n searchTypes: Array;\r\n klicRequests: Array = [];\r\n selectedSearchType: SearchType;\r\n columnsToDisplay = [\r\n 'reference',\r\n 'type',\r\n 'status',\r\n 'klicRequestsCount',\r\n 'createdOn',\r\n 'workStartDate',\r\n 'view',\r\n 'delete',\r\n ];\r\n expandedKlicProject: KlicProject | null;\r\n regionKey: string;\r\n searchText = '';\r\n klicProjectsLoading = false;\r\n isKlicRequestsLoading = false;\r\n totalKlicProjectCount = 0;\r\n klicRequestsStatistics: KlicRequestsStatistics = {\r\n success: 0,\r\n pending: 0,\r\n failed: 0,\r\n isFailedOn: false,\r\n isPendingOn: false,\r\n isSuccessOn: false,\r\n };\r\n\r\n @ViewChild(MatPaginatorGotoComponent, { static: true }) paginator: MatPaginatorGotoComponent;\r\n @ViewChild(MatSort, { static: false }) matSort: MatSort;\r\n\r\n private _klicRequestStatusLabel: Map = new Map([\r\n [KlicRequestStatus.InProgress, 'In progress'],\r\n [KlicRequestStatus.Success, 'Success'],\r\n [KlicRequestStatus.Failed, 'Failed'],\r\n [KlicRequestStatus.Scheduled, 'Scheduled'],\r\n [KlicRequestStatus.WaitingForRequest, 'Waiting for request'],\r\n [KlicRequestStatus.RequestSent, 'Request sent'],\r\n [KlicRequestStatus.WaitingForRetry, 'Waiting for retry'],\r\n [KlicRequestStatus.Added, 'Added'],\r\n [KlicRequestStatus.Updated, 'Updated'],\r\n [KlicRequestStatus.FailedByKadaster, 'Failed'],\r\n [KlicRequestStatus.WaitingForAdditionalData, 'Waiting for additional data'],\r\n [KlicRequestStatus.KadasterAccountFail, 'Failed'],\r\n [KlicRequestStatus.FailedWhenBeingSent, 'Failed'],\r\n [KlicRequestStatus.Draft, 'Draft'],\r\n ]);\r\n\r\n private _klicProjectStatusLabel: Map = new Map([\r\n [KlicProjectStatus.InProgress, 'In progress'],\r\n [KlicProjectStatus.Done, 'Done'],\r\n [KlicProjectStatus.Failed, 'Failed'],\r\n [KlicProjectStatus.Success, 'Success'],\r\n [KlicProjectStatus.Scheduled, 'Scheduled'],\r\n [KlicProjectStatus.Deleting, 'Deleting'],\r\n [KlicProjectStatus.Draft, 'Draft'],\r\n ]);\r\n\r\n private _klicProjectTypeLabel: Map = new Map([\r\n [KlicProjectType.Dig, 'Dig'],\r\n [KlicProjectType.Orientation, 'Orientation'],\r\n [KlicProjectType.Calamity, 'Calamity'],\r\n ]);\r\n\r\n constructor(\r\n private klicProjectsService: KlicProjectsService,\r\n private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private dialog: MatDialog,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.klicProjectsLoading = true;\r\n this.regionKey = this.route.snapshot.queryParams.regionKey;\r\n this.initSearchTypes();\r\n this.initPaginator();\r\n this.displayKlicProjects(0, '');\r\n }\r\n\r\n public getKlicType(klicType: KlicProjectType): string {\r\n return this._klicProjectTypeLabel.get(klicType);\r\n }\r\n\r\n public addKlicRequest(): void {\r\n this.router.navigate(['klic-request-page'], {\r\n queryParamsHandling: 'preserve',\r\n });\r\n }\r\n\r\n public onKlicRequestClick(klicProjectId: string, klicRequestId: string): void {\r\n this.router.navigate(['klic-request-page'], {\r\n queryParams: {\r\n klicProjectId,\r\n klicRequestId,\r\n },\r\n queryParamsHandling: 'merge',\r\n });\r\n }\r\n\r\n public expand(klicProject: KlicProject): void {\r\n this.expandedKlicProject = this.expandedKlicProject === klicProject ? null : klicProject;\r\n if (this.expandedKlicProject) {\r\n this.displayKlicRequests(klicProject);\r\n }\r\n }\r\n\r\n public search(): void {\r\n this.displayKlicProjects(0, this.searchText, this.matSort);\r\n }\r\n\r\n public isKlicRequestFailed(status: KlicRequestStatus): boolean {\r\n return (\r\n status === KlicRequestStatus.FailedByKadaster ||\r\n status === KlicRequestStatus.Failed ||\r\n status === KlicRequestStatus.FailedWhenBeingSent ||\r\n status === KlicRequestStatus.KadasterAccountFail\r\n );\r\n }\r\n\r\n public pageChanged(event: PageEvent) {\r\n this.displayKlicProjects(event.pageIndex, this.searchText, this.matSort);\r\n }\r\n\r\n public sortChanged(sort: Sort): void {\r\n this.displayKlicProjects(0, this.searchText, sort);\r\n }\r\n\r\n public getKlicRequestStatus(klicRequest: KlicRequest): string {\r\n return this._klicRequestStatusLabel.get(klicRequest.status);\r\n }\r\n\r\n public getKlicProjectStatus(klicProject: KlicProject): string {\r\n return this._klicProjectStatusLabel.get(klicProject.status);\r\n }\r\n\r\n public hasKlicProjectWarnings(klicProject: KlicProject): boolean {\r\n return klicProject.status === KlicProjectStatus.Done;\r\n }\r\n\r\n public viewKlicProject(klicProject: KlicProject): void {\r\n this.router.navigate(['klic-request-page'], {\r\n queryParams: {\r\n klicProjectId: klicProject.id,\r\n },\r\n queryParamsHandling: 'merge',\r\n });\r\n }\r\n\r\n public showStartDate(klicProject: KlicProject): boolean {\r\n return klicProject.type === KlicProjectType.Dig;\r\n }\r\n\r\n public showStatistics(klicProject: KlicProject): boolean {\r\n return klicProject.klicRequests?.length > 1;\r\n }\r\n\r\n public filterKlicRequests(klicProject: KlicProject): void {\r\n let klicRequestsFilter = new Array();\r\n\r\n klicProject.klicRequests.forEach((klicRequest) => {\r\n if (this.isKlicRequestFailed(klicRequest.status)) {\r\n if (this.klicRequestsStatistics.isFailedOn) {\r\n klicRequestsFilter.push(klicRequest);\r\n }\r\n } else if (klicRequest.status === KlicRequestStatus.Success) {\r\n if (this.klicRequestsStatistics.isSuccessOn) {\r\n klicRequestsFilter.push(klicRequest);\r\n }\r\n } else {\r\n if (this.klicRequestsStatistics.isPendingOn) {\r\n klicRequestsFilter.push(klicRequest);\r\n }\r\n }\r\n\r\n if (\r\n !this.klicRequestsStatistics.isFailedOn &&\r\n !this.klicRequestsStatistics.isSuccessOn &&\r\n !this.klicRequestsStatistics.isPendingOn\r\n ) {\r\n klicRequestsFilter = klicProject.klicRequests;\r\n }\r\n });\r\n\r\n this.klicRequests = klicRequestsFilter;\r\n }\r\n\r\n public canDeleteKlicProject(klicProject: KlicProject): boolean {\r\n return klicProject.status === KlicProjectStatus.Scheduled || klicProject.status === KlicProjectStatus.Draft;\r\n }\r\n\r\n public openDeleteKlicProjectConfirmationDialog(klicProject: KlicProject): void {\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n width: '500px',\r\n data: {\r\n confirmationText: this.getDeleteKlicProjectConfirmationText(klicProject),\r\n confirmButtonText: 'Yes',\r\n discardButtonText: 'No',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.deleteKlicProject(klicProject.id);\r\n }\r\n });\r\n }\r\n\r\n public getKlicProjectViewButtonText(klicProject: KlicProject): string {\r\n if (klicProject.status === KlicProjectStatus.Failed) {\r\n return 'Fix';\r\n } else if (klicProject.status === KlicProjectStatus.Scheduled || klicProject.status === KlicProjectStatus.Draft) {\r\n return 'Edit';\r\n } else {\r\n return 'View';\r\n }\r\n }\r\n\r\n private getDeleteKlicProjectConfirmationText(klicProject: KlicProject): string {\r\n return `${\r\n klicProject.klicRequestsCount === 1\r\n ? this.translateService.instant('Do you want to delete KLIC Request:')\r\n : this.translateService.instant('Do you want to delete KLIC Requests:')\r\n } ${klicProject.reference}?`;\r\n }\r\n\r\n private deleteKlicProject(klicProjectId: string): void {\r\n this.klicProjectsLoading = true;\r\n this.klicProjectsService.deleteKlicProject(klicProjectId).subscribe(() => {\r\n this.klicProjectsLoading = false;\r\n this.dataSource.data.find((klicProject) => klicProject.id === klicProjectId).status = KlicProjectStatus.Deleting;\r\n });\r\n }\r\n\r\n private displayKlicProjects(pageNumber: number, searchText: string, sort?: Sort): void {\r\n this.paginator.pageIndex = pageNumber;\r\n const top = this.paginator.pageSize;\r\n const skip = pageNumber * top;\r\n const orderBy = this.createSortExpression(sort);\r\n\r\n this.klicProjectsService\r\n .getKlicProjects(this.regionKey, searchText, top.toString(), skip.toString(), orderBy)\r\n .subscribe((klicProjectsResult: KlicProjectResult) => {\r\n this.klicProjectsLoading = false;\r\n this.totalKlicProjectCount = klicProjectsResult.totalCount;\r\n this.dataSource.data = klicProjectsResult.results;\r\n });\r\n }\r\n\r\n private displayKlicRequests(klicProject: KlicProject): void {\r\n this.klicRequests = [];\r\n this.showKlicRequestLoading();\r\n let searchText = '';\r\n\r\n if (this.selectedSearchType === SearchType.KlicRequest && this.searchText) {\r\n searchText = this.searchText;\r\n }\r\n\r\n this.klicProjectsService\r\n .getKlicRequests(klicProject.id, searchText)\r\n .subscribe((klicRequests: Array) => {\r\n klicProject.klicRequests = klicRequests.sort(\r\n (klicRequestA, klicRequestB) => +klicRequestA.selectionPolygonId - +klicRequestB.selectionPolygonId\r\n );\r\n this.klicRequests = klicRequests;\r\n this.hideKlicRequestLoading();\r\n this.countKlicRequests(klicRequests);\r\n });\r\n }\r\n\r\n private initSearchTypes(): void {\r\n this.searchTypes = [\r\n { name: 'KLIC Project', type: SearchType.KlicProject },\r\n { name: 'KLIC Request', type: SearchType.KlicRequest },\r\n ];\r\n this.selectedSearchType = this.searchTypes[0].type;\r\n }\r\n\r\n private showKlicRequestLoading(): void {\r\n this.isKlicRequestsLoading = true;\r\n }\r\n\r\n private hideKlicRequestLoading(): void {\r\n this.isKlicRequestsLoading = false;\r\n }\r\n\r\n private initPaginator(): void {\r\n this.paginator.pageSize = 20;\r\n }\r\n\r\n private createSortExpression(sort: Sort): string {\r\n if (sort && sort.direction) {\r\n return `${sort.active} ${sort.direction}`;\r\n }\r\n return `createdOn desc`;\r\n }\r\n\r\n private countKlicRequests(klicRequests: Array): void {\r\n this.klicRequestsStatistics = {\r\n success: 0,\r\n pending: 0,\r\n failed: 0,\r\n isFailedOn: false,\r\n isPendingOn: false,\r\n isSuccessOn: false,\r\n };\r\n\r\n klicRequests.forEach((klicRequest) => {\r\n if (this.isKlicRequestFailed(klicRequest.status)) {\r\n this.klicRequestsStatistics.failed++;\r\n } else if (klicRequest.status === KlicRequestStatus.Success) {\r\n this.klicRequestsStatistics.success++;\r\n } else {\r\n this.klicRequestsStatistics.pending++;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n {{ 'Search' | translate }}...\r\n \r\n \r\n {{ 'in' | translate }}\r\n \r\n \r\n \r\n {{ searchType.name | translate }}\r\n \r\n \r\n \r\n \r\n \r\n add_circle_outline\r\n {{ 'Add new' | translate }}\r\n \r\n
\r\n\r\n\r\n \r\n {{ 'Reference' | translate }}\r\n {{ element.reference }}\r\n \r\n\r\n \r\n {{ 'Type' | translate }}\r\n {{ getKlicType(element.type) | translate }}\r\n \r\n\r\n \r\n {{ 'Status' | translate }}\r\n \r\n {{ getKlicProjectStatus(element) | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ 'KLIC Requests' | translate }}#\r\n \r\n {{ element.klicRequestsCount }}\r\n \r\n\r\n \r\n {{ 'Created On' | translate }}\r\n {{ element.createdOn | date: 'dd-MM-yyyy' }}\r\n \r\n\r\n \r\n {{ 'Work start date' | translate }}\r\n {{ element.workStartDate | date: 'dd-MM-yyyy' }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n visibility\r\n {{ getKlicProjectViewButtonText(element) | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n delete\r\n {{ 'Delete' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n done\r\n {{ 'Success' | translate }}: {{ klicRequestsStatistics.success }}\r\n \r\n \r\n \r\n \r\n hourglass_empty\r\n {{ 'Pending' | translate }}: {{ klicRequestsStatistics.pending }}\r\n \r\n \r\n \r\n \r\n error_outline\r\n {{ 'Failed' | translate }}: {{ klicRequestsStatistics.failed }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ 'Reference' | translate }}: {{ klicRequest.reference }}\r\n
\r\n
\r\n {{ 'Start Date' | translate }}: {{\r\n klicRequest.informationAboutPerformedWork?.startDate | date: 'dd-MM-yyyy'\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n {{ 'Should be requested on' | translate }}: \r\n {{\r\n klicRequest.shouldBeRequestedOn | date: 'dd-MM-yyyy'\r\n }}\r\n
\r\n
\r\n {{ 'Order number' | translate }}: {{ klicRequest.kadasterOrderId }}\r\n
\r\n
\r\n
\r\n
\r\n {{ 'Message id' | translate }}: {{ klicRequest.id }}\r\n
\r\n
\r\n {{ 'Status' | translate }}: {{ getKlicRequestStatus(klicRequest) | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n","
\r\n \r\n error_outline\r\n {{ 'Show errors' | translate }}\r\n \r\n
\r\n

{{ error.code }} - {{ error.message }}

\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\r\nimport { ErrorModel } from '@app/klic-projects/services/klic-projects.interface';\r\nimport { KlicProjectsService } from '@app/klic-projects/services/klic-projects.service';\r\n\r\n@Component({\r\n selector: 'app-klic-request-error',\r\n templateUrl: './klic-request-error.component.html',\r\n styleUrls: ['./klic-request-error.component.scss'],\r\n})\r\nexport class KlicRequestErrorComponent implements OnInit, OnChanges {\r\n @Input() klicProjectId: string;\r\n @Input() klicRequestId: string;\r\n\r\n errors: Array = [];\r\n\r\n constructor(private klicProjectsService: KlicProjectsService) {}\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges() {\r\n this.errors = [];\r\n }\r\n\r\n public showErrors(): void {\r\n if (this.errors.length > 0) {\r\n return;\r\n }\r\n\r\n this.klicProjectsService\r\n .getKlicRequestErrors(this.klicProjectId, this.klicRequestId)\r\n .subscribe((errors: Array) => {\r\n this.errors = errors;\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { KlicProjectsComponent } from '@app/klic-projects/klic-projects.component';\r\nimport { extract } from '@app/i18n';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'klic-projects',\r\n component: KlicProjectsComponent,\r\n data: { title: extract('KLIC Projects') },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [],\r\n})\r\nexport class KlicProjectsRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-klic-projects',\r\n templateUrl: './klic-projects.component.html',\r\n styleUrls: ['./klic-projects.component.scss'],\r\n})\r\nexport class KlicProjectsComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { KlicProjectsComponent } from './klic-projects.component';\r\nimport { KlicProjectsListComponent } from './components/klic-projects-list/klic-projects-list.component';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CoreModule } from '@core';\r\nimport { SharedModule } from '@shared';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MaterialModule } from '@app/material.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KlicProjectsRoutingModule } from '@app/klic-projects/klic-projects-routing.module';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { KlicRequestErrorComponent } from './components/klic-request-error/klic-request-error.component';\r\n\r\n@NgModule({\r\n declarations: [KlicProjectsComponent, KlicProjectsListComponent, KlicRequestErrorComponent],\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forChild(),\r\n CoreModule,\r\n SharedModule,\r\n FlexLayoutModule,\r\n MaterialModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KlicProjectsRoutingModule,\r\n ScrollingModule,\r\n ],\r\n})\r\nexport class KlicProjectsModule {}\r\n","export interface KlicProject {\r\n id: string;\r\n reference: string;\r\n type: KlicProjectType;\r\n createdOn: Date;\r\n workStartDate: Date;\r\n symbol: string;\r\n description: string;\r\n status: KlicProjectStatus;\r\n klicRequestsCount: number;\r\n klicRequests: Array;\r\n}\r\n\r\nexport interface KlicRequest {\r\n reference: string;\r\n kadasterOrderId: string;\r\n status: KlicRequestStatus;\r\n id: string;\r\n shouldBeRequestedOn: Date;\r\n informationAboutPerformedWork?: WorkDescription;\r\n selectionPolygonId?: string;\r\n}\r\n\r\ninterface WorkDescription {\r\n startDate?: Date;\r\n}\r\n\r\nexport interface KlicProjectResult {\r\n totalCount: number;\r\n results: Array;\r\n}\r\n\r\nexport interface ErrorModel {\r\n code: string;\r\n message: string;\r\n}\r\n\r\nexport enum KlicRequestStatus {\r\n InProgress = 'InProgress',\r\n Success = 'Success',\r\n Failed = 'Failed',\r\n Scheduled = 'Scheduled',\r\n WaitingForRequest = 'WaitingForRequest',\r\n RequestSent = 'RequestSent',\r\n WaitingForRetry = 'WaitingForRetry',\r\n Added = 'Added',\r\n Updated = 'Updated',\r\n FailedByKadaster = 'FailedByKadaster',\r\n WaitingForAdditionalData = 'WaitingForAdditionalData',\r\n KadasterAccountFail = 'KadasterAccountFail',\r\n FailedWhenBeingSent = 'FailedWhenBeingSent',\r\n Draft = 'Draft',\r\n}\r\n\r\nexport enum SearchType {\r\n KlicProject = 0,\r\n KlicRequest = 1,\r\n}\r\n\r\nexport interface SearchTypeModel {\r\n name: string;\r\n type: SearchType;\r\n}\r\n\r\nexport enum KlicProjectStatus {\r\n InProgress = 'InProgress',\r\n Done = 'Done',\r\n Failed = 'Failed',\r\n Success = 'Success',\r\n Scheduled = 'Scheduled',\r\n Deleting = 'Deleting',\r\n Draft = 'Draft',\r\n}\r\n\r\nexport interface KlicRequestsStatistics {\r\n success: number;\r\n pending: number;\r\n failed: number;\r\n isSuccessOn: boolean;\r\n isPendingOn: boolean;\r\n isFailedOn: boolean;\r\n}\r\n\r\nexport enum KlicProjectType {\r\n Dig = 'Dig',\r\n Orientation = 'Orientation',\r\n Calamity = 'Calamity',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ErrorModel, KlicRequest, KlicProjectResult } from '@app/klic-projects/services/klic-projects.interface';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class KlicProjectsService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getKlicProjects(\r\n searchGroupKey: string,\r\n searchText: string,\r\n top: string,\r\n skip: string,\r\n orderBy: string\r\n ): Observable {\r\n return this.httpClient.get('/api/search/klicprojects', {\r\n params: {\r\n searchGroupKey,\r\n searchText,\r\n top,\r\n skip,\r\n orderBy,\r\n },\r\n });\r\n }\r\n\r\n public getKlicRequestErrors(klicProjectId: string, klicRequestId: string): Observable> {\r\n return this.httpClient.get>(\r\n `/api/klicprojects/${klicProjectId}/klicrequest/${klicRequestId}/errors`\r\n );\r\n }\r\n\r\n public getKlicRequests(klicProjectId: string, searchText: string): Observable> {\r\n return this.httpClient.get>(`/api/klicprojects/${klicProjectId}/klicrequests`, {\r\n params: {\r\n searchText,\r\n },\r\n });\r\n }\r\n\r\n public deleteKlicProject(klicProjectId: string): Observable {\r\n return this.httpClient.delete(`/api/klicprojects/${klicProjectId}`);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, Validators } from '@angular/forms';\r\nimport { AddressBookDialogEntry, Country } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport {\r\n AddressBookDialogComponent\r\n} from '@app/klic-request-page/components/address-book-dialog/address-book-dialog.component';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { debounceTime, map, mergeMap } from 'rxjs/operators';\r\nimport { RequestContextService } from '../../services/request-context/request-context.service';\r\nimport { AddressType } from '../../enums/addres-type.enum';\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport abstract class ContactBaseComponent implements OnInit {\r\n readonly NL_POSTCODE_MAX_LENGTH = 6;\r\n readonly REST_OF_THE_WORLD_POSTCODE_MAX_LENGTH = 11;\r\n addressTypes = AddressType;\r\n addressBookLoading = false;\r\n filteredCities: Observable>;\r\n filteredStreets: Observable>;\r\n filteredHouseNumbers: Observable>;\r\n filteredHouseLetters: Observable>;\r\n filteredAdditions: Observable>;\r\n filteredPostCodes: Observable>;\r\n countries: Array;\r\n\r\n constructor(\r\n private bagService: BagService,\r\n private dialog: MatDialog,\r\n protected requestContextService: RequestContextService,\r\n ) {\r\n this.countries = requestContextService.countries;\r\n }\r\n\r\n get name() {\r\n return this.personDetials.get('name');\r\n }\r\n\r\n get companyName() {\r\n return this.details.get('companyName');\r\n }\r\n\r\n get email() {\r\n return this.personDetials.get('email');\r\n }\r\n\r\n get phone() {\r\n return this.personDetials.get('phone');\r\n }\r\n\r\n get city() {\r\n return this.address.get('city');\r\n }\r\n\r\n get street() {\r\n return this.address.get('street');\r\n }\r\n\r\n get houseNumber() {\r\n return this.address.get('houseNumber');\r\n }\r\n\r\n get houseLetter() {\r\n return this.address.get('houseLetter');\r\n }\r\n\r\n get postCode() {\r\n return this.address.get('postCode');\r\n }\r\n\r\n get addition() {\r\n return this.address.get('addition');\r\n }\r\n\r\n get countryCode() {\r\n return this.address.get('countryCode');\r\n }\r\n\r\n // Inputs\r\n abstract get details(): AbstractControl;\r\n abstract get searchGroupKey(): string;\r\n\r\n abstract get address(): AbstractControl;\r\n abstract get personDetials(): AbstractControl;\r\n\r\n ngOnInit(): void {\r\n this.contactPersonAddressAutocomplete();\r\n this.countryCodeValueChangesListener();\r\n this.postCodeAutoFill();\r\n }\r\n\r\n protected abstract onDialogClose(formData: AddressBookDialogEntry): void;\r\n\r\n protected abstract getEntries(): Observable>;\r\n\r\n protected abstract deleteEntryFunction(addressBookEntry: AddressBookDialogEntry): Observable;\r\n\r\n protected abstract addressBookEntriesToDialogDataMapper(entry: T): AddressBookDialogEntry;\r\n\r\n /**\r\n * Opens dialog with Address Book entries\r\n */\r\n public openAddressBookDialog(addressType: AddressType): void {\r\n this.addressBookLoading = true;\r\n\r\n this.getEntries().subscribe((addressBook) => {\r\n this.addressBookLoading = false;\r\n\r\n const dialogEntries: Array = addressBook.map(this.addressBookEntriesToDialogDataMapper);\r\n\r\n const dialogRef = this.dialog.open(AddressBookDialogComponent, {\r\n width: '1000px',\r\n data: {\r\n addressType,\r\n addressBook: dialogEntries,\r\n deleteEntryFunction: this.deleteEntryFunction.bind(this)\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: AddressBookDialogEntry) => {\r\n if (result) {\r\n this.fixNLCountryCode(result);\r\n this.onDialogClose(result);\r\n }\r\n });\r\n });\r\n }\r\n\r\n fixNLCountryCode(result: AddressBookDialogEntry) {\r\n const twoLettersIsoCodeNetherlands = 'NL';\r\n const threeLettersIsoCodeNetherlands = 'NLD';\r\n\r\n result.countryCode = result.countryCode === twoLettersIsoCodeNetherlands\r\n ? threeLettersIsoCodeNetherlands\r\n : result.countryCode;\r\n }\r\n\r\n /**\r\n * Returns max length of Post Code depending on Country Code\r\n *\r\n * @param countryCode Max length depends on Country Code\r\n */\r\n public postCodeMaxLength(countryCode: string): number {\r\n return countryCode === 'NLD' ? this.NL_POSTCODE_MAX_LENGTH : this.REST_OF_THE_WORLD_POSTCODE_MAX_LENGTH;\r\n }\r\n\r\n private contactPersonAddressAutocomplete(): void {\r\n this.cityAutocomplete();\r\n this.streetAutocomplete();\r\n this.houseNumberAutocomplete();\r\n this.houseLetterAutocomplete();\r\n this.postCodeAutocomplete();\r\n this.additionAutocomplete();\r\n }\r\n\r\n private cityAutocomplete(): void {\r\n this.city.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((city) => (city ? this.bagService.getCities(city) : null))\r\n )\r\n .subscribe((cities) => {\r\n this.filteredCities = cities;\r\n });\r\n }\r\n\r\n private streetAutocomplete(): void {\r\n this.street.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((street) => (this.city.value && street ? this.bagService.getStreets(this.city.value, street) : null))\r\n )\r\n .subscribe((streets) => {\r\n this.filteredStreets = streets;\r\n });\r\n }\r\n\r\n private houseNumberAutocomplete(): void {\r\n this.houseNumber.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseNumber) =>\r\n this.city.value && this.street.value && houseNumber\r\n ? this.bagService.getHouseNumbers(this.city.value, this.street.value, houseNumber)\r\n : null\r\n )\r\n )\r\n .subscribe((houseNumbers) => {\r\n this.filteredHouseNumbers = houseNumbers;\r\n });\r\n }\r\n\r\n private houseLetterAutocomplete(): void {\r\n this.houseLetter.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseLetter) =>\r\n this.city.value && this.street.value && this.houseNumber.value && houseLetter\r\n ? this.bagService.getHouseLetters(this.city.value, this.street.value, this.houseNumber.value, houseLetter)\r\n : null\r\n )\r\n )\r\n .subscribe((houseLetters) => {\r\n this.filteredHouseLetters = houseLetters;\r\n });\r\n }\r\n\r\n private postCodeAutocomplete(): void {\r\n this.postCode.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((postCode) =>\r\n this.city.value && this.street.value && postCode\r\n ? this.bagService.getPostCodes(this.city.value, this.street.value, postCode, this.houseNumber.value)\r\n : null\r\n )\r\n )\r\n .subscribe((postCodes) => {\r\n this.filteredPostCodes = postCodes;\r\n });\r\n }\r\n\r\n private additionAutocomplete(): void {\r\n this.addition.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((addition) =>\r\n this.city.value && this.street.value && this.houseNumber.value && addition\r\n ? this.bagService.getAddressAdditions(this.city.value, this.street.value, this.houseNumber.value, addition)\r\n : null\r\n )\r\n )\r\n .subscribe((additions) => {\r\n this.filteredAdditions = additions;\r\n });\r\n }\r\n\r\n private postCodeAutoFill(): void {\r\n const fieldsValueChanges = [this.city.valueChanges, this.street.valueChanges, this.houseNumber.valueChanges];\r\n\r\n combineLatest(fieldsValueChanges)\r\n .pipe(\r\n debounceTime(300),\r\n mergeMap(([city, street, houseNumber]) => {\r\n const fieldsTouched = this.city.touched || this.street.touched || this.houseNumber.touched;\r\n return city && street && fieldsTouched ? this.bagService.getPostCodes(city, street, '', houseNumber) : of([]);\r\n })\r\n )\r\n .subscribe((postCodes) => {\r\n if (postCodes.length === 1) {\r\n this.postCode.setValue(postCodes[0]);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Changes Post Code validators depending on Country Code\r\n *\r\n * @private\r\n */\r\n private countryCodeValueChangesListener(): void {\r\n this.countryCode.valueChanges.subscribe((countryCode: string) => {\r\n this.postCode.setValidators([Validators.required, Validators.maxLength(this.postCodeMaxLength(countryCode))]);\r\n this.postCode.updateValueAndValidity({ onlySelf: true });\r\n });\r\n }\r\n}\r\n","import Map from 'ol/Map';\r\nimport LineString from 'ol/geom/LineString';\r\nimport BaseEvent from 'ol/events/Event';\r\nimport Feature from 'ol/Feature';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport GeometryType from 'ol/geom/GeometryType';\r\nimport Draw, { DrawEvent } from 'ol/interaction/Draw';\r\nimport Point from 'ol/geom/Point';\r\nimport LinearRing from 'ol/geom/LinearRing';\r\nimport Polygon from 'ol/geom/Polygon';\r\nimport MultiPoint from 'ol/geom/MultiPoint';\r\nimport MultiLineString from 'ol/geom/MultiLineString';\r\nimport MultiPolygon from 'ol/geom/MultiPolygon';\r\nimport GeometryCollection from 'ol/geom/GeometryCollection';\r\nimport Style from 'ol/style/Style';\r\nimport Stroke from 'ol/style/Stroke';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { MapToolInterface } from '@app/klic-request-page/interfaces/map-tool.interface';\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport * as turf from '@turf/turf';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\n\r\nexport class LineStringDraw implements MapToolInterface {\r\n readonly type: MapToolType = MapToolType.LineString;\r\n readonly GEOMETRY_TYPE = GeometryType.LINE_STRING;\r\n readonly QUADRANT_SEGMENTS = 1;\r\n jsts: any;\r\n parser: any;\r\n inputData: UntypedFormControl = new UntypedFormControl(this.mapService.actualLineStringBufferValue, [\r\n Validators.required,\r\n Validators.min(5),\r\n Validators.max(200),\r\n ]);\r\n polygonFeature: Feature;\r\n draw: Draw;\r\n actionInProgress = false;\r\n onToolActionEnded: EventEmitter> = new EventEmitter>();\r\n\r\n constructor(private map: Map, private source: VectorSource, private mapService: MapService) {\r\n this.init();\r\n this.onLineStringBufferValueChanges();\r\n import('jsts').then((jsts: any) => {\r\n this.jsts = jsts;\r\n this.prepareParser();\r\n });\r\n }\r\n\r\n public getToolName(): string {\r\n return 'Line draw tool';\r\n }\r\n\r\n public init(): void {\r\n this.addDrawInteraction();\r\n }\r\n\r\n public destroy(): void {\r\n this.removeDrawInteraction();\r\n }\r\n\r\n private createDrawInstance(): Draw {\r\n return new Draw({\r\n source: this.source,\r\n type: this.GEOMETRY_TYPE,\r\n maxPoints: this.mapService.MAX_VERTICES,\r\n condition: (event) => (event.originalEvent as MouseEvent).buttons === 1,\r\n });\r\n }\r\n\r\n private addDrawInteraction(): void {\r\n if (!this.draw) {\r\n this.draw = this.createDrawInstance();\r\n this.map.addInteraction(this.draw);\r\n this.draw.on('drawend', this.onDrawEnd.bind(this));\r\n this.draw.on('drawstart', this.onDrawStart.bind(this));\r\n }\r\n }\r\n\r\n private removeDrawInteraction(): void {\r\n if (this.draw) {\r\n this.map.removeInteraction(this.draw);\r\n this.draw = null;\r\n }\r\n }\r\n\r\n private onDrawStart(event: DrawEvent): void {\r\n this.actionInProgress = true;\r\n\r\n let coordinatesLength = (event.feature.getGeometry() as LineString).getCoordinates().length;\r\n event.feature.getGeometry().on('change', (evt: BaseEvent) => {\r\n const lineString = evt.target as LineString;\r\n if (lineString.getCoordinates().length > coordinatesLength) {\r\n coordinatesLength = lineString.getCoordinates().length;\r\n const lineStringFeature = new Feature(lineString);\r\n if (this.polygonFeature) {\r\n this.source.removeFeature(this.polygonFeature);\r\n }\r\n this.polygonFeature = new Feature(this.lineStringToPolygon(lineStringFeature, this.inputData.value));\r\n this.source.addFeature(this.polygonFeature);\r\n }\r\n });\r\n }\r\n\r\n private onDrawEnd(event: DrawEvent): void {\r\n this.destroy();\r\n this.actionInProgress = false;\r\n event.feature.setStyle(\r\n new Style({\r\n stroke: new Stroke({\r\n color: 'transparent',\r\n }),\r\n })\r\n );\r\n this.simplifyPolygonFeature();\r\n this.onToolActionEnded.emit(this.polygonFeature);\r\n this.polygonFeature = null;\r\n }\r\n\r\n private lineStringToPolygon(lineStringFeature: Feature, lineStringBuffer: number): Feature {\r\n const jstsLineString = this.parser.read(lineStringFeature.getGeometry());\r\n let bufferedLineString = jstsLineString.buffer(\r\n lineStringBuffer,\r\n this.QUADRANT_SEGMENTS,\r\n this.jsts.operation.buffer.BufferParameters.CAP_SQUARE\r\n );\r\n\r\n bufferedLineString = new this.jsts.geom.Polygon(bufferedLineString.getExteriorRing(), []);\r\n\r\n return this.parser.write(bufferedLineString);\r\n }\r\n\r\n private onLineStringBufferValueChanges(): void {\r\n this.inputData.valueChanges.pipe(debounceTime(300)).subscribe((lineStringBuffer) => {\r\n if (this.inputData.valid) {\r\n this.init();\r\n localStorage.setItem('defaultLineStringBufferValue', lineStringBuffer);\r\n } else {\r\n this.destroy();\r\n }\r\n });\r\n }\r\n\r\n private simplifyPolygonFeature(): void {\r\n const polygon = this.polygonFeature.getGeometry() as Polygon;\r\n const turfPolygon = turf.polygon(polygon.getCoordinates());\r\n const simplifiedTurfPolygon = turf.simplify(turfPolygon);\r\n\r\n polygon.setCoordinates(simplifiedTurfPolygon.geometry.coordinates);\r\n }\r\n\r\n private prepareParser(): void {\r\n this.parser = new this.jsts.io.OL3Parser();\r\n this.parser.inject(\r\n Point,\r\n LineString,\r\n LinearRing,\r\n Polygon,\r\n MultiPoint,\r\n MultiLineString,\r\n MultiPolygon,\r\n GeometryCollection\r\n );\r\n }\r\n}\r\n","import Map from 'ol/Map';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\nimport { LineStringDraw } from '@app/klic-request-page/classes/map-tool/line-string-draw';\r\nimport { PolygonDraw } from '@app/klic-request-page/classes/map-tool/polygon-draw';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ModifyTool } from '@app/klic-request-page/classes/map-tool/modify-tool';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { MapToolInterface } from '@app/klic-request-page/interfaces/map-tool.interface';\r\nimport { ModifyLakTool } from '@app/klic-request-page/classes/map-tool/modify-lak-tool';\r\n\r\nexport class MapToolFactory {\r\n constructor(\r\n private map: Map,\r\n private source: VectorSource,\r\n private mapService: MapService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n // TODO: agreed on a call (06.07.2021) to remove IFs when another map tool will be added\r\n public setMapTool(mapTool: MapToolType): MapToolInterface {\r\n if (mapTool === MapToolType.LineString) {\r\n return new LineStringDraw(this.map, this.source, this.mapService);\r\n } else if (mapTool === MapToolType.Polygon) {\r\n return new PolygonDraw(this.map, this.source, this.mapService, this.translateService);\r\n } else if (mapTool === MapToolType.Modify) {\r\n return new ModifyTool(this.map, this.source, this.mapService);\r\n } else if (mapTool === MapToolType.ModifyLAK) {\r\n return new ModifyLakTool(this.map, this.source, this.mapService);\r\n } else {\r\n throw new Error('Select one of the map tools');\r\n }\r\n }\r\n}\r\n","import { ModifyTool } from '@app/klic-request-page/classes/map-tool/modify-tool';\r\nimport Map from 'ol/Map';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\n\r\nexport class ModifyLakTool extends ModifyTool {\r\n readonly type: MapToolType = MapToolType.ModifyLAK;\r\n\r\n constructor(_map: Map, _source: VectorSource, _mapService: MapService) {\r\n super(_map, _source, _mapService);\r\n }\r\n\r\n public getToolName(): string {\r\n return 'Modify LAK tool';\r\n }\r\n}\r\n","import Map from 'ol/Map';\r\nimport Modify, { ModifyEvent } from 'ol/interaction/Modify';\r\nimport Collection from 'ol/Collection';\r\nimport Feature from 'ol/Feature';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport Snap from 'ol/interaction/Snap';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { MapToolInterface } from '@app/klic-request-page/interfaces/map-tool.interface';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { doubleClick } from 'ol/events/condition';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\nimport Polygon from 'ol/geom/Polygon';\r\n\r\nexport class ModifyTool implements MapToolInterface {\r\n readonly type: MapToolType = MapToolType.Modify;\r\n inputData: UntypedFormControl = new UntypedFormControl(this.mapService.actualLineStringBufferValue);\r\n modify: Modify;\r\n snap: Snap;\r\n actionInProgress = false;\r\n onToolActionEnded: EventEmitter> = new EventEmitter>();\r\n\r\n constructor(private map: Map, private source: VectorSource, private mapService: MapService) {\r\n this.init();\r\n }\r\n\r\n public getToolName(): string {\r\n return 'Modify tool';\r\n }\r\n\r\n public init(): void {\r\n this.addModifyInteraction();\r\n this.addSnapInteraction();\r\n }\r\n\r\n public destroy(): void {\r\n this.removeModifyInteraction();\r\n this.removeSnapInteraction();\r\n }\r\n\r\n private createModifyInstance(): Modify {\r\n return new Modify({\r\n features: new Collection>([this.mapService.polygonFeature]),\r\n deleteCondition: doubleClick,\r\n });\r\n }\r\n\r\n private onModifyStart(): void {\r\n this.actionInProgress = true;\r\n }\r\n\r\n private onModifyEnd(event: ModifyEvent): void {\r\n this.actionInProgress = false;\r\n this.onToolActionEnded.emit(\r\n event.features.getArray().find((feature) => feature.getGeometry().getType() === 'Polygon') as Feature\r\n );\r\n }\r\n\r\n private addModifyInteraction(): void {\r\n if (!this.modify) {\r\n this.modify = this.createModifyInstance();\r\n this.map.addInteraction(this.modify);\r\n this.modify.on('modifystart', this.onModifyStart.bind(this));\r\n this.modify.on('modifyend', this.onModifyEnd.bind(this));\r\n }\r\n }\r\n\r\n private removeModifyInteraction(): void {\r\n if (this.modify) {\r\n this.map.removeInteraction(this.modify);\r\n this.modify = null;\r\n }\r\n }\r\n\r\n private addSnapInteraction(): void {\r\n if (!this.snap) {\r\n this.snap = new Snap({ source: this.source });\r\n this.map.addInteraction(this.snap);\r\n }\r\n }\r\n\r\n private removeSnapInteraction(): void {\r\n if (this.snap) {\r\n this.map.removeInteraction(this.snap);\r\n this.snap = null;\r\n }\r\n }\r\n}\r\n","import Map from 'ol/Map';\r\nimport GeometryType from 'ol/geom/GeometryType';\r\nimport Feature from 'ol/Feature';\r\nimport Draw, { DrawEvent } from 'ol/interaction/Draw';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport BaseEvent from 'ol/events/Event';\r\nimport Polygon from 'ol/geom/Polygon';\r\nimport Overlay from 'ol/Overlay';\r\nimport { getSize } from 'ol/extent';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport OverlayPositioning from 'ol/OverlayPositioning';\r\nimport { unByKey } from 'ol/Observable';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { MapToolInterface } from '@app/klic-request-page/interfaces/map-tool.interface';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport { Coordinate } from 'ol/coordinate';\r\n\r\nexport class PolygonDraw implements MapToolInterface {\r\n readonly type: MapToolType = MapToolType.Polygon;\r\n readonly GEOMETRY_TYPE = GeometryType.POLYGON;\r\n inputData: UntypedFormControl = new UntypedFormControl();\r\n draw: Draw;\r\n sketch: Feature;\r\n measureTooltipElement: HTMLElement;\r\n measureTooltip: Overlay;\r\n listener: any;\r\n actionInProgress = false;\r\n onToolActionEnded: EventEmitter> = new EventEmitter>();\r\n\r\n constructor(\r\n private map: Map,\r\n private source: VectorSource,\r\n private mapService: MapService,\r\n private translateService: TranslateService\r\n ) {\r\n this.init();\r\n }\r\n\r\n public getToolName(): string {\r\n return 'Polygon draw tool';\r\n }\r\n\r\n public init(): void {\r\n this.addDrawInteraction();\r\n }\r\n\r\n public destroy(): void {\r\n this.removeDrawInteraction();\r\n }\r\n\r\n private createDrawInstance(): Draw {\r\n return new Draw({\r\n type: this.GEOMETRY_TYPE,\r\n maxPoints: this.mapService.MAX_VERTICES,\r\n condition: (event) => (event.originalEvent as MouseEvent).buttons === 1,\r\n });\r\n }\r\n\r\n private addDrawInteraction(): void {\r\n if (!this.draw) {\r\n this.draw = this.createDrawInstance();\r\n this.map.addInteraction(this.draw);\r\n this.draw.on('drawend', this.onDrawEnd.bind(this));\r\n this.draw.on('drawstart', this.onDrawStart.bind(this));\r\n }\r\n }\r\n\r\n private removeDrawInteraction(): void {\r\n if (this.draw) {\r\n this.map.removeInteraction(this.draw);\r\n this.draw = null;\r\n }\r\n }\r\n\r\n private onDrawStart(event: DrawEvent): void {\r\n this.actionInProgress = true;\r\n this.createMeasureTooltip();\r\n this.sketch = event.feature;\r\n\r\n this.listener = this.sketch.getGeometry().on('change', (evt: BaseEvent) => {\r\n const polygon: Polygon = evt.target as Polygon;\r\n const polygonCoordinates = polygon.getCoordinates()[0];\r\n const tooltipCoordinate = polygonCoordinates[polygonCoordinates.length - 2];\r\n\r\n this.measureTooltipElement.innerHTML = this.formatPolygonInfo(polygon);\r\n this.measureTooltip.setPosition(tooltipCoordinate);\r\n });\r\n }\r\n\r\n private onDrawEnd(event: DrawEvent): void {\r\n this.actionInProgress = false;\r\n this.resetRealTimeInfoInteraction();\r\n if (this.polygonHasValidGeometry(event.feature)) {\r\n this.source.addFeature(event.feature);\r\n this.destroy();\r\n this.onToolActionEnded.emit(event.feature as Feature);\r\n }\r\n }\r\n\r\n private formatPolygonInfo(polygon: Polygon): string {\r\n const polygonExtent = polygon.getExtent();\r\n const polygonSize = getSize(polygonExtent);\r\n\r\n return `${polygonSize[0].toFixed(2)}m x ${polygonSize[1].toFixed(2)}m, ${this.translateService.instant(\r\n 'vertices left'\r\n )}: ${this.mapService.MAX_VERTICES - (polygon.getFlatCoordinates().length - 2) / 2}`;\r\n }\r\n\r\n /**\r\n * Creates a new measure tooltip\r\n */\r\n private createMeasureTooltip(): void {\r\n if (this.measureTooltipElement) {\r\n this.measureTooltipElement.parentNode.removeChild(this.measureTooltipElement);\r\n }\r\n this.measureTooltipElement = document.createElement('div');\r\n this.measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';\r\n this.measureTooltip = new Overlay({\r\n element: this.measureTooltipElement,\r\n offset: [0, -30],\r\n positioning: OverlayPositioning.CENTER_CENTER,\r\n });\r\n this.map.addOverlay(this.measureTooltip);\r\n }\r\n\r\n private resetRealTimeInfoInteraction(): void {\r\n this.measureTooltipElement.parentNode.removeChild(this.measureTooltipElement);\r\n this.measureTooltip.setOffset([0, -7]);\r\n this.sketch = null;\r\n this.measureTooltip = null;\r\n this.measureTooltipElement = null;\r\n unByKey(this.listener);\r\n }\r\n\r\n private polygonHasValidGeometry(polygonFeature: Feature): boolean {\r\n const coordinates = (polygonFeature.getGeometry() as Polygon).getCoordinates()[0];\r\n return this.firstAndLastCoordinatesAreEqual(coordinates) && this.notAllCoordinatesAreEqual(coordinates);\r\n }\r\n\r\n private firstAndLastCoordinatesAreEqual(coordinates: Coordinate[]): boolean {\r\n const firstCoordinate = coordinates[0];\r\n const lastCoordinate = coordinates[coordinates.length - 1];\r\n\r\n return firstCoordinate[0] === lastCoordinate[0] && firstCoordinate[1] === lastCoordinate[1];\r\n }\r\n\r\n private notAllCoordinatesAreEqual(coordinates: Coordinate[]): boolean {\r\n const firstCoordinate = coordinates[0];\r\n return !!coordinates.find(\r\n (coordinate) => !(firstCoordinate[0] === coordinate[0] && firstCoordinate[1] === coordinate[1])\r\n );\r\n }\r\n}\r\n","import { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { Mode } from '@app/klic-request-page/enums/mode.enum';\r\n\r\nexport class AddMode implements ModeInterface {\r\n name = Mode.Add;\r\n isKlicTypeButtonDisabled = false;\r\n geojsonImportEnabled = true;\r\n modifyLAKEnabled = true;\r\n\r\n constructor() {}\r\n\r\n submit() {}\r\n\r\n formControlsMustBeDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n isInformationPolygonBufferDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n showInformationAboutPerformedWork(): boolean {\r\n return true;\r\n }\r\n\r\n isHCSDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n showSubmitButton(): boolean {\r\n return true;\r\n }\r\n\r\n submitButtonText(): string {\r\n return 'Add';\r\n }\r\n\r\n isKadasterAccountButtonDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n removeButtonDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n polygonInteractionsEnabled(): boolean {\r\n return true;\r\n }\r\n}\r\n","import { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { Mode } from '@app/klic-request-page/enums/mode.enum';\r\n\r\nexport class DraftMode implements ModeInterface {\r\n name = Mode.Draft;\r\n isKlicTypeButtonDisabled = false;\r\n geojsonImportEnabled = true;\r\n modifyLAKEnabled = true;\r\n\r\n constructor() {}\r\n\r\n submit() {}\r\n\r\n formControlsMustBeDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n isInformationPolygonBufferDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n showInformationAboutPerformedWork(): boolean {\r\n return true;\r\n }\r\n\r\n isHCSDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n showSubmitButton(): boolean {\r\n return true;\r\n }\r\n\r\n submitButtonText(): string {\r\n return 'Add';\r\n }\r\n\r\n isKadasterAccountButtonDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n removeButtonDisabled(): boolean {\r\n return false;\r\n }\r\n\r\n polygonInteractionsEnabled(): boolean {\r\n return true;\r\n }\r\n}\r\n","import { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { Mode } from '@app/klic-request-page/enums/mode.enum';\r\n\r\nexport class KlicProjectMode implements ModeInterface {\r\n name = Mode.KlicProject;\r\n isKlicTypeButtonDisabled = true;\r\n geojsonImportEnabled = false;\r\n modifyLAKEnabled = false;\r\n\r\n private readonly _edit: boolean = false;\r\n private readonly _retry: boolean = false;\r\n private readonly _singleKlicRequest: boolean = false;\r\n\r\n constructor(edit: boolean, retry: boolean, singleKlicRequest: boolean) {\r\n this._edit = edit;\r\n this._retry = retry;\r\n this._singleKlicRequest = singleKlicRequest;\r\n }\r\n\r\n submit(): void {}\r\n\r\n formControlsMustBeDisabled(): boolean {\r\n return !(this._edit || this._retry);\r\n }\r\n\r\n isInformationPolygonBufferDisabled(): boolean {\r\n return !((this._edit || this._retry) && this._singleKlicRequest);\r\n }\r\n\r\n showInformationAboutPerformedWork(): boolean {\r\n return this._edit || this._retry;\r\n }\r\n\r\n isHCSDisabled(): boolean {\r\n return true;\r\n }\r\n\r\n showSubmitButton(): boolean {\r\n return this._edit || this._retry;\r\n }\r\n\r\n submitButtonText(): string {\r\n return this._retry ? 'Retry' : 'Save';\r\n }\r\n\r\n isKadasterAccountButtonDisabled(): boolean {\r\n return !(this._edit || this._retry);\r\n }\r\n\r\n removeButtonDisabled(): boolean {\r\n return !((this._edit || this._retry) && this._singleKlicRequest);\r\n }\r\n\r\n polygonInteractionsEnabled(): boolean {\r\n return (this._edit || this._retry) && this._singleKlicRequest;\r\n }\r\n}\r\n","import { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { Mode } from '@app/klic-request-page/enums/mode.enum';\r\n\r\nexport class KlicRequestMode implements ModeInterface {\r\n name = Mode.KlicRequest;\r\n isKlicTypeButtonDisabled = true;\r\n geojsonImportEnabled = false;\r\n modifyLAKEnabled = false;\r\n\r\n private readonly _edit: boolean = false;\r\n private readonly _retry: boolean = false;\r\n private readonly _singleKlicRequest: boolean = false;\r\n\r\n constructor(edit: boolean, retry: boolean, singleKlicRequest: boolean) {\r\n this._edit = edit;\r\n this._retry = retry;\r\n this._singleKlicRequest = singleKlicRequest;\r\n }\r\n\r\n submit(): void {}\r\n\r\n formControlsMustBeDisabled(): boolean {\r\n return true;\r\n }\r\n\r\n isInformationPolygonBufferDisabled(): boolean {\r\n return !((this._edit || this._retry) && this._singleKlicRequest);\r\n }\r\n\r\n showInformationAboutPerformedWork(): boolean {\r\n return false;\r\n }\r\n\r\n isHCSDisabled(): boolean {\r\n return !(this._edit || this._retry);\r\n }\r\n\r\n showSubmitButton(): boolean {\r\n return this._edit || this._retry;\r\n }\r\n\r\n submitButtonText(): string {\r\n return this._retry ? 'Retry' : 'Save';\r\n }\r\n\r\n isKadasterAccountButtonDisabled(): boolean {\r\n return true;\r\n }\r\n\r\n removeButtonDisabled(): boolean {\r\n return !((this._edit || this._retry) && this._singleKlicRequest);\r\n }\r\n\r\n polygonInteractionsEnabled(): boolean {\r\n return (this._edit || this._retry) && this._singleKlicRequest;\r\n }\r\n}\r\n","import Polygon from 'ol/geom/Polygon';\r\nimport Feature from 'ol/Feature';\r\nimport * as turf from '@turf/turf';\r\nimport { SplitAlgorithmName } from '@app/klic-request-page/enums/split-algorithm-name.enum';\r\nimport { SplitAlgorithm } from '@app/klic-request-page/classes/split-algorithms/split-algorithm';\r\nimport { Coordinate } from 'ol/coordinate';\r\n\r\nexport class NewSplitAlgorithm extends SplitAlgorithm {\r\n name = SplitAlgorithmName.New;\r\n\r\n public split(polygon: Polygon, maxSideSize: number): Array> {\r\n const polygons: Array> = [];\r\n\r\n if (this.isPolygonWide(polygon)) {\r\n this.widePolygonHandle(polygon, maxSideSize).forEach((polygonFeature) => {\r\n polygons.push(...this.tallPolygonHandle(polygonFeature.getGeometry() as Polygon, maxSideSize));\r\n });\r\n } else {\r\n this.tallPolygonHandle(polygon, maxSideSize).forEach((polygonFeature) => {\r\n polygons.push(...this.widePolygonHandle(polygonFeature.getGeometry() as Polygon, maxSideSize));\r\n });\r\n }\r\n\r\n polygons.map((feature, index) => feature.setId(index + 1));\r\n\r\n return this.processPolygons(polygons);\r\n }\r\n\r\n private widePolygonHandle(polygon: Polygon, maxSideSize: number): Array> {\r\n const polygonFeatures = [];\r\n const polygonExtent = polygon.getExtent();\r\n const turfPolygon = turf.polygon(polygon.getCoordinates());\r\n\r\n let minX = polygonExtent[0];\r\n const minY = polygonExtent[1];\r\n const maxX = polygonExtent[2];\r\n const maxY = polygonExtent[3];\r\n\r\n while (minX < maxX) {\r\n const temp = turf.polygon([\r\n [\r\n [minX, minY],\r\n [minX + maxSideSize, minY],\r\n [minX + maxSideSize, maxY],\r\n [minX, maxY],\r\n [minX, minY],\r\n ],\r\n ]).geometry;\r\n\r\n polygonFeatures.push(...this.intersectPolygons(turfPolygon, temp));\r\n minX = minX + maxSideSize;\r\n }\r\n\r\n return polygonFeatures;\r\n }\r\n\r\n private tallPolygonHandle(polygon: Polygon, maxSideSize: number): Array> {\r\n const polygonFeatures = [];\r\n const polygonExtent = polygon.getExtent();\r\n const turfPolygon = turf.polygon(polygon.getCoordinates());\r\n\r\n const minX = polygonExtent[0];\r\n let minY = polygonExtent[1];\r\n const maxX = polygonExtent[2];\r\n const maxY = polygonExtent[3];\r\n\r\n while (minY < maxY) {\r\n const temp = turf.polygon([\r\n [\r\n [minX, minY],\r\n [maxX, minY],\r\n [maxX, minY + maxSideSize],\r\n [minX, minY + maxSideSize],\r\n [minX, minY],\r\n ],\r\n ]).geometry;\r\n\r\n polygonFeatures.push(...this.intersectPolygons(turfPolygon, temp));\r\n minY = minY + maxSideSize;\r\n }\r\n\r\n return polygonFeatures;\r\n }\r\n\r\n private intersectPolygons(selectionPolygon: any, gridPolygon: turf.Polygon): Array> {\r\n const olFeatures: Array> = [];\r\n const intersection = turf.intersect(selectionPolygon, gridPolygon);\r\n\r\n if (intersection && this.isValidGeometryType(intersection.geometry.type)) {\r\n if (intersection.geometry.type === 'GeometryCollection') {\r\n return this.copyFeaturesFromGeometryCollection(intersection);\r\n }\r\n\r\n let olPolygon = new Polygon(intersection.geometry.coordinates);\r\n let olFeature = new Feature(olPolygon);\r\n\r\n if (intersection.geometry.type === 'MultiPolygon') {\r\n intersection.geometry.coordinates.forEach((coordinates: Coordinate[][]) => {\r\n olPolygon = new Polygon(coordinates);\r\n olFeature = new Feature(olPolygon);\r\n\r\n olFeatures.push(olFeature);\r\n });\r\n } else {\r\n olFeatures.push(olFeature);\r\n }\r\n }\r\n\r\n return olFeatures;\r\n }\r\n\r\n private isPolygonWide(polygon: Polygon): boolean {\r\n const polygonExtent = polygon.getExtent();\r\n\r\n const minX = polygonExtent[0];\r\n const minY = polygonExtent[1];\r\n const maxX = polygonExtent[2];\r\n const maxY = polygonExtent[3];\r\n\r\n return maxX - minX > maxY - minY;\r\n }\r\n\r\n private copyFeaturesFromGeometryCollection(intersection: turf.helpers.Feature) {\r\n const olFeatures: Array> = [];\r\n const polygonGeometries = (intersection.geometry as turf.GeometryCollection)\r\n .geometries\r\n .filter((geom: turf.helpers.Geometries) => geom.type === 'Polygon');\r\n\r\n polygonGeometries.forEach((geom) => {\r\n const polygon = new Polygon(geom.coordinates as Coordinate[][]);\r\n const feature = new Feature(polygon);\r\n\r\n olFeatures.push(feature);\r\n });\r\n\r\n return olFeatures;\r\n }\r\n}\r\n","import Polygon from 'ol/geom/Polygon';\r\nimport Feature from 'ol/Feature';\r\nimport * as turf from '@turf/turf';\r\nimport { SplitAlgorithmName } from '@app/klic-request-page/enums/split-algorithm-name.enum';\r\nimport { SplitAlgorithm } from '@app/klic-request-page/classes/split-algorithms/split-algorithm';\r\nimport { Coordinate } from 'ol/coordinate';\r\n\r\nexport class OldSplitAlgorithm extends SplitAlgorithm {\r\n name = SplitAlgorithmName.Old;\r\n\r\n public split(polygon: Polygon, maxSideSize: number): Array> {\r\n const polygons: Array> = [];\r\n const polygonExtent = polygon.getExtent();\r\n\r\n let newX = polygonExtent[0];\r\n let newY = polygonExtent[1];\r\n\r\n const turfPolygon = turf.polygon(polygon.getCoordinates());\r\n\r\n let idx = 1;\r\n\r\n while (newX < polygonExtent[2]) {\r\n while (newY < polygonExtent[3]) {\r\n const temp = turf.polygon([\r\n [\r\n [newX, newY],\r\n [newX + maxSideSize, newY],\r\n [newX + maxSideSize, newY + maxSideSize],\r\n [newX, newY + maxSideSize],\r\n [newX, newY],\r\n ],\r\n ]).geometry;\r\n\r\n const intersection = turf.intersect(turfPolygon, temp);\r\n\r\n if (intersection && this.isValidGeometryType(intersection.geometry.type)) {\r\n let tempOl = new Polygon(intersection.geometry.coordinates);\r\n let tempFeature = new Feature(tempOl);\r\n\r\n if (intersection.geometry.type === 'MultiPolygon') {\r\n intersection.geometry.coordinates.forEach((coordinates: Coordinate[][]) => {\r\n tempOl = new Polygon(coordinates);\r\n tempFeature = new Feature(tempOl);\r\n\r\n tempFeature.setId(idx);\r\n\r\n polygons.push(tempFeature);\r\n\r\n idx++;\r\n });\r\n } else {\r\n tempFeature.setId(idx);\r\n\r\n polygons.push(tempFeature);\r\n\r\n idx++;\r\n }\r\n }\r\n\r\n newY = newY + maxSideSize;\r\n }\r\n\r\n newY = polygonExtent[1];\r\n newX = newX + maxSideSize;\r\n }\r\n\r\n return this.processPolygons(polygons);\r\n }\r\n}\r\n","import { SplitAlgorithmName } from '@app/klic-request-page/enums/split-algorithm-name.enum';\r\nimport { OldSplitAlgorithm } from '@app/klic-request-page/classes/split-algorithms/old-split-algorithm';\r\nimport { NewSplitAlgorithm } from '@app/klic-request-page/classes/split-algorithms/new-split-algorithm';\r\nimport { Injectable } from '@angular/core';\r\nimport { SplitAlgorithm } from '@app/klic-request-page/classes/split-algorithms/split-algorithm';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SplitAlgorithmFactory {\r\n public setSplitAlgorithm(splitAlgorithmName: SplitAlgorithmName): SplitAlgorithm {\r\n if (splitAlgorithmName === SplitAlgorithmName.Old) {\r\n return new OldSplitAlgorithm();\r\n } else if (splitAlgorithmName === SplitAlgorithmName.New) {\r\n return new NewSplitAlgorithm();\r\n } else {\r\n throw new Error('Select one of the split algorithms');\r\n }\r\n }\r\n}\r\n","import { SplitAlgorithmName } from '@app/klic-request-page/enums/split-algorithm-name.enum';\r\nimport Polygon from 'ol/geom/Polygon';\r\nimport Feature from 'ol/Feature';\r\nimport { Coordinate } from 'ol/coordinate';\r\n\r\nexport abstract class SplitAlgorithm {\r\n public abstract name: SplitAlgorithmName;\r\n public abstract split(polygon: Polygon, maxSideSize: number): Array>;\r\n protected isValidGeometryType(geometryType: string): boolean {\r\n return geometryType === 'Polygon' || geometryType === 'MultiPolygon' || geometryType === 'GeometryCollection';\r\n }\r\n protected processPolygons(polygons: Array>): Array> {\r\n polygons.forEach((polygonFeature) => {\r\n const polygon: Polygon = polygonFeature.getGeometry() as Polygon;\r\n polygon.setCoordinates(this.processedPolygon(polygon));\r\n });\r\n\r\n return polygons;\r\n }\r\n private processedPolygon(polygon: Polygon): Coordinate[][] {\r\n return this.removeDuplicatesFromPolygonCoordinates(this.roundPolygonCoordinates(polygon.getCoordinates()));\r\n }\r\n private roundPolygonCoordinates(polygonCoordinates: Coordinate[][]): Coordinate[][] {\r\n return polygonCoordinates.map((geometry) => geometry.map((coordinates) => coordinates.map((xy) => Math.floor(xy))));\r\n }\r\n private removeDuplicatesFromPolygonCoordinates(coordinates: Coordinate[][]): Coordinate[][] {\r\n const coordinatesWithoutDuplicates: Array> = [];\r\n coordinates[0].forEach((coordinate) => {\r\n if (!coordinatesWithoutDuplicates.find((c) => c[0] === coordinate[0] && c[1] === coordinate[1])) {\r\n coordinatesWithoutDuplicates.push(coordinate);\r\n }\r\n });\r\n coordinatesWithoutDuplicates.push(coordinates[0][0]);\r\n\r\n return [coordinatesWithoutDuplicates];\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { EMPTY, Observable } from 'rxjs';\r\nimport { debounceTime, flatMap, map } from 'rxjs/operators';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { BAGAddress } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-add-hcs-by-address-dialog',\r\n templateUrl: './add-hcs-by-address-dialog.component.html',\r\n styleUrls: ['./add-hcs-by-address-dialog.component.scss'],\r\n})\r\nexport class AddHcsByAddressDialogComponent implements OnInit {\r\n singleAddressForm: UntypedFormGroup;\r\n rangeAddressForm: UntypedFormGroup;\r\n houseNumbersTypes = ['All', 'Odd', 'Even'];\r\n filteredCities: Observable>;\r\n filteredStreets: Observable>;\r\n filteredHouseNumbers: Observable>;\r\n filteredHouseLetters: Observable>;\r\n filteredAdditions: Observable>;\r\n filteredPostCodes: Observable>;\r\n rangeAddressesLoading = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n maxHCSAddressesAmountToSelect: number;\r\n selectedHCSAddresses: Array;\r\n },\r\n private formBuilder: UntypedFormBuilder,\r\n private dialogRef: MatDialogRef>,\r\n private bagService: BagService,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n get city() {\r\n return this.singleAddressForm.get('city');\r\n }\r\n\r\n get rangeCity() {\r\n return this.rangeAddressForm.get('city');\r\n }\r\n\r\n get street() {\r\n return this.singleAddressForm.get('street');\r\n }\r\n\r\n get rangeStreet() {\r\n return this.rangeAddressForm.get('street');\r\n }\r\n\r\n get houseNumber() {\r\n return this.singleAddressForm.get('houseNumber');\r\n }\r\n\r\n get houseLetter() {\r\n return this.singleAddressForm.get('houseLetter');\r\n }\r\n\r\n get addition() {\r\n return this.singleAddressForm.get('addition');\r\n }\r\n\r\n get postCode() {\r\n return this.singleAddressForm.get('postCode');\r\n }\r\n\r\n get rangePostCode() {\r\n return this.rangeAddressForm.get('postCode');\r\n }\r\n\r\n get houseNumberFrom() {\r\n return this.rangeAddressForm.get('houseNumberFrom');\r\n }\r\n\r\n get houseNumberTo() {\r\n return this.rangeAddressForm.get('houseNumberTo');\r\n }\r\n\r\n get houseLetterFrom() {\r\n return this.rangeAddressForm.get('houseLetterFrom');\r\n }\r\n\r\n get houseLetterTo() {\r\n return this.rangeAddressForm.get('houseLetterTo');\r\n }\r\n\r\n get houseNumberType() {\r\n return this.rangeAddressForm.get('houseNumberType');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.singleAddressFormInit();\r\n this.rangeAddressFormInit();\r\n this.autocompleteFunctionality();\r\n this.fillFieldsByPostCode();\r\n }\r\n\r\n public onSingleAddressSubmit(): void {\r\n if (this.city.value && this.street.value && this.houseNumber.value) {\r\n this.addAddressByCityStreetHouseNumber();\r\n } else if (this.postCode.value && this.houseNumber.value) {\r\n this.addAddressByPostCodeHouseNumber();\r\n } else {\r\n this.openAddressNotValidSnackBar();\r\n }\r\n }\r\n\r\n public onRangeAddressSubmit(): void {\r\n if (this.rangeCity.value && this.rangeStreet.value) {\r\n this.addRangeAddressesByCityStreet();\r\n } else if (this.rangePostCode.value) {\r\n this.addRangeAddressesByPostCode();\r\n } else {\r\n this.openRangeAddressNotValidSnackBar();\r\n }\r\n }\r\n\r\n public onDiscardChanges(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n private autocompleteFunctionality(): void {\r\n this.singleAddressAutocomplete();\r\n this.rangeAddressesAutocomplete();\r\n }\r\n\r\n private cityAutocomplete(cityFormControl: AbstractControl): void {\r\n cityFormControl.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((city) => (city ? this.bagService.getCities(city) : null))\r\n )\r\n .subscribe((cities) => {\r\n this.filteredCities = cities;\r\n });\r\n }\r\n\r\n private streetAutocomplete(cityFormControl: AbstractControl, streetFormControl: AbstractControl): void {\r\n streetFormControl.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((street) =>\r\n cityFormControl.value && street ? this.bagService.getStreets(cityFormControl.value, street) : null\r\n )\r\n )\r\n .subscribe((streets) => {\r\n this.filteredStreets = streets;\r\n });\r\n }\r\n\r\n private houseNumberAutocomplete(): void {\r\n this.houseNumber.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseNumber) =>\r\n this.city.value && this.street.value && houseNumber\r\n ? this.bagService.getHouseNumbers(this.city.value, this.street.value, houseNumber)\r\n : null\r\n )\r\n )\r\n .subscribe((houseNumbers) => {\r\n this.filteredHouseNumbers = houseNumbers;\r\n });\r\n }\r\n\r\n private houseLetterAutocomplete(): void {\r\n this.houseLetter.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseLetter) =>\r\n this.city.value && this.street.value && this.houseNumber.value && houseLetter\r\n ? this.bagService.getHouseLetters(this.city.value, this.street.value, this.houseNumber.value, houseLetter)\r\n : null\r\n )\r\n )\r\n .subscribe((houseLetters) => {\r\n this.filteredHouseLetters = houseLetters;\r\n });\r\n }\r\n\r\n private additionAutocomplete(): void {\r\n this.addition.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((addition) =>\r\n this.city.value && this.street.value && this.houseNumber.value && addition\r\n ? this.bagService.getAddressAdditions(this.city.value, this.street.value, this.houseNumber.value, addition)\r\n : null\r\n )\r\n )\r\n .subscribe((additions) => {\r\n this.filteredAdditions = additions;\r\n });\r\n }\r\n\r\n private postCodeAutocomplete(\r\n cityFormControl: AbstractControl,\r\n streetFormControl: AbstractControl,\r\n postCodeFormControl: AbstractControl\r\n ): void {\r\n postCodeFormControl.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((postCode) =>\r\n cityFormControl.value && streetFormControl.value && postCode\r\n ? this.bagService.getPostCodes(cityFormControl.value, streetFormControl.value, postCode)\r\n : null\r\n )\r\n )\r\n .subscribe((postCodes) => {\r\n this.filteredPostCodes = postCodes;\r\n });\r\n }\r\n\r\n private fillCityAndStreetByPostCode(\r\n cityFormControl: AbstractControl,\r\n streetFormControl: AbstractControl,\r\n postCodeFormControl: AbstractControl\r\n ): void {\r\n postCodeFormControl.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((postCode) => (postCode ? this.bagService.getCityStreetByPostCode(postCode) : EMPTY)),\r\n flatMap((addressObservable) => addressObservable)\r\n )\r\n .subscribe((address) => {\r\n if (address) {\r\n this.patchCityAndStreetValues(cityFormControl, streetFormControl, address);\r\n }\r\n });\r\n }\r\n\r\n private singleAddressAutocomplete(): void {\r\n this.cityAutocomplete(this.city);\r\n this.streetAutocomplete(this.city, this.street);\r\n this.houseNumberAutocomplete();\r\n this.houseLetterAutocomplete();\r\n this.additionAutocomplete();\r\n this.postCodeAutocomplete(this.city, this.street, this.postCode);\r\n }\r\n\r\n private rangeAddressesAutocomplete(): void {\r\n this.cityAutocomplete(this.rangeCity);\r\n this.streetAutocomplete(this.rangeCity, this.rangeStreet);\r\n this.postCodeAutocomplete(this.rangeCity, this.rangeStreet, this.rangePostCode);\r\n }\r\n\r\n private fillFieldsByPostCode(): void {\r\n this.fillCityAndStreetByPostCode(this.city, this.street, this.postCode);\r\n this.fillCityAndStreetByPostCode(this.rangeCity, this.rangeStreet, this.rangePostCode);\r\n }\r\n\r\n private patchCityAndStreetValues(\r\n cityFormControl: AbstractControl,\r\n streetFormControl: AbstractControl,\r\n address: BAGAddress\r\n ): void {\r\n cityFormControl.patchValue(address.city);\r\n streetFormControl.patchValue(address.street);\r\n }\r\n\r\n private addAddressByCityStreetHouseNumber(): void {\r\n this.bagService\r\n .getAddressByCityStreetHouseNumber(\r\n this.city.value,\r\n this.street.value,\r\n this.houseNumber.value,\r\n this.houseLetter.value,\r\n this.addition.value\r\n )\r\n .subscribe(\r\n (address) => {\r\n this.dialogRef.close(address);\r\n },\r\n () => this.catchCityStreetHouseNumberError()\r\n );\r\n }\r\n\r\n private addAddressByPostCodeHouseNumber(): void {\r\n this.bagService\r\n .getAddressByPostCodeHouseNumber(\r\n this.postCode.value,\r\n this.houseNumber.value,\r\n this.houseLetter.value,\r\n this.addition.value\r\n )\r\n .subscribe(\r\n (address) => {\r\n this.dialogRef.close(address);\r\n },\r\n () => this.catchPostCodeHouseNumberError()\r\n );\r\n }\r\n\r\n private addRangeAddressesByCityStreet(): void {\r\n this.rangeAddressesLoading = true;\r\n\r\n this.bagService\r\n .getRangeAddressesByCityStreet(\r\n this.rangeCity.value,\r\n this.rangeStreet.value,\r\n this.houseNumberFrom.value,\r\n this.houseNumberTo.value,\r\n this.houseNumberType.value,\r\n this.houseLetterFrom.value,\r\n this.houseLetterTo.value\r\n )\r\n .subscribe(\r\n (addresses) => {\r\n this.rangeAddressesLoading = false;\r\n this.rangeAddressesHandle(addresses);\r\n },\r\n () => this.catchCityStreetError()\r\n );\r\n }\r\n\r\n private addRangeAddressesByPostCode(): void {\r\n this.rangeAddressesLoading = true;\r\n\r\n this.bagService\r\n .getRangeAddressesByPostCode(\r\n this.rangePostCode.value,\r\n this.houseNumberFrom.value,\r\n this.houseNumberTo.value,\r\n this.houseNumberType.value,\r\n this.houseLetterFrom.value,\r\n this.houseLetterTo.value\r\n )\r\n .subscribe(\r\n (addresses) => {\r\n this.rangeAddressesLoading = false;\r\n this.rangeAddressesHandle(addresses);\r\n },\r\n () => this.catchPostCodeError()\r\n );\r\n }\r\n\r\n private rangeAddressesHandle(addresses: Array): void {\r\n if (addresses.length) {\r\n if (\r\n this.bagService.filterBAGAddresses(addresses, this.data.selectedHCSAddresses).length <\r\n this.data.maxHCSAddressesAmountToSelect\r\n ) {\r\n this.dialogRef.close(addresses);\r\n } else {\r\n this.openMaxHCSAddressesSnackBar();\r\n }\r\n } else {\r\n this.openAddressesNotFoundSnackBar();\r\n }\r\n }\r\n\r\n private catchCityStreetHouseNumberError(): void {\r\n this.openSnackBar('Please provide the valid City, Street and House number');\r\n }\r\n\r\n private catchPostCodeHouseNumberError(): void {\r\n this.openSnackBar('Please provide the valid Postcode and House number');\r\n }\r\n\r\n private catchCityStreetError(): void {\r\n this.rangeAddressesLoading = false;\r\n this.openSnackBar('Please provide the valid City and Street');\r\n }\r\n\r\n private catchPostCodeError(): void {\r\n this.rangeAddressesLoading = false;\r\n this.openSnackBar('Please provide the valid Postcode');\r\n }\r\n\r\n private openAddressNotValidSnackBar(): void {\r\n this.openSnackBar(\r\n 'In order to add address please provide City, Street and House number or Postcode and House number'\r\n );\r\n }\r\n\r\n private openRangeAddressNotValidSnackBar(): void {\r\n this.openSnackBar('In order to add addresses please provide City and Street or Postcode with ranges');\r\n }\r\n\r\n private openAddressesNotFoundSnackBar(): void {\r\n this.openSnackBar('There are no addresses found with given data');\r\n }\r\n\r\n private openMaxHCSAddressesSnackBar(): void {\r\n this.openSnackBar('You can select max addresses', { amount: this.data.maxHCSAddressesAmountToSelect });\r\n }\r\n\r\n private openSnackBar(message: string, params?: object): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message, params), 'OK', { duration: 3000 });\r\n }\r\n\r\n private singleAddressFormInit(): void {\r\n this.singleAddressForm = this.formBuilder.group({\r\n city: [''],\r\n street: [''],\r\n houseNumber: [''],\r\n houseLetter: [''],\r\n addition: [''],\r\n postCode: [''],\r\n });\r\n }\r\n\r\n private rangeAddressFormInit(): void {\r\n this.rangeAddressForm = this.formBuilder.group({\r\n city: [''],\r\n street: [''],\r\n postCode: [''],\r\n houseNumberFrom: [''],\r\n houseNumberTo: [''],\r\n houseNumberType: ['All'],\r\n houseLetterFrom: [''],\r\n houseLetterTo: [''],\r\n });\r\n }\r\n}\r\n","

\r\n Add address\r\n close\r\n

\r\n\r\n \r\n

In order to add address please provide City, Street and House number or Postcode and House number

\r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n \r\n {{ city }}\r\n \r\n \r\n \r\n \r\n Street\r\n \r\n \r\n \r\n {{ street }}\r\n \r\n \r\n \r\n \r\n House number\r\n \r\n \r\n \r\n {{ houseNumber }}\r\n \r\n \r\n \r\n \r\n House letter\r\n \r\n \r\n \r\n {{ houseLetter }}\r\n \r\n \r\n \r\n \r\n Postcode\r\n \r\n \r\n \r\n {{ postCode }}\r\n \r\n \r\n \r\n \r\n Addition\r\n \r\n \r\n \r\n {{ addition }}\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n

In order to add addresses please provide City and Street or Postcode with ranges

\r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n \r\n {{ city }}\r\n \r\n \r\n \r\n \r\n Street\r\n \r\n \r\n \r\n {{ street }}\r\n \r\n \r\n \r\n \r\n Postcode\r\n \r\n \r\n \r\n {{ postCode }}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n From\r\n \r\n \r\n -\r\n \r\n To\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n From\r\n \r\n \r\n -\r\n \r\n To\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ type | translate }}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { BAGAddress } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';\r\nimport { MatLegacyPaginator as MatPaginator } from '@angular/material/legacy-paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-add-hcs-by-bag-addresses-dialog',\r\n templateUrl: './add-hcs-by-bag-addresses-dialog.component.html',\r\n styleUrls: ['./add-hcs-by-bag-addresses-dialog.component.scss'],\r\n})\r\nexport class AddHcsByBagAddressesDialogComponent implements OnInit {\r\n dataSource = new MatTableDataSource();\r\n selection = new SelectionModel(true, []);\r\n displayedColumns: string[] = [\r\n 'select',\r\n 'bagId',\r\n 'city',\r\n 'street',\r\n 'houseNumber',\r\n 'houseLetter',\r\n 'postCode',\r\n 'addition',\r\n ];\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: {\r\n maxHCSAddressesAmountToSelect: number;\r\n addresses: Array;\r\n },\r\n private dialogRef: MatDialogRef>,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.dataSource.data = this.data.addresses;\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n /**\r\n * Closes the dialog with the selected addresses\r\n */\r\n public onSubmit(): void {\r\n if (this.isValid()) {\r\n this.dialogRef.close(this.selection.selected);\r\n }\r\n }\r\n\r\n /**\r\n * Discards all the changes and closes the dialog\r\n */\r\n public onDiscardChanges(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n /**\r\n * Filters dataSource by even / odd / all houseNumber\r\n *\r\n * @param event Event from the toggle buttons group\r\n */\r\n public onHouseNumberTypeChange(event: MatButtonToggleChange) {\r\n switch (event.value) {\r\n case 'even':\r\n this.dataSource.data = this.data.addresses.filter((address) => address.houseNumber % 2 === 0);\r\n break;\r\n case 'odd':\r\n this.dataSource.data = this.data.addresses.filter((address) => address.houseNumber % 2 === 1);\r\n break;\r\n default:\r\n this.dataSource.data = this.data.addresses;\r\n }\r\n }\r\n\r\n /**\r\n * Applies filter on the dataSource\r\n *\r\n * @param event Event from the filter input\r\n */\r\n public applyFilter(event: Event): void {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n this.dataSource.data = this.data.addresses;\r\n this.dataSource.data = filterValue ? this.dataSource.filteredData : this.data.addresses;\r\n }\r\n\r\n /**\r\n * Whether the number of selected elements matches the total number of rows\r\n */\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n\r\n return numSelected === numRows;\r\n }\r\n\r\n /**\r\n * Selects all rows if they are not all selected; otherwise clear selection.\r\n */\r\n public masterToggle(): void {\r\n this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach((row) => this.selection.select(row));\r\n }\r\n\r\n /**\r\n * Whether none of the addresses were selected or too many; otherwise returns true\r\n */\r\n private isValid(): boolean {\r\n if (this.selection.isEmpty()) {\r\n this.openSnackBar('Please select the addresses');\r\n return false;\r\n }\r\n\r\n if (this.selection.selected.length > this.data.maxHCSAddressesAmountToSelect) {\r\n this.openSnackBar(`You can select max addresses`, { amount: this.data.maxHCSAddressesAmountToSelect });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Opens SnackBar with translated message\r\n *\r\n * @param message Message to be shown inside SnackBar\r\n * @param params Possible translation params\r\n */\r\n private openSnackBar(message: string, params?: object): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message, params), 'OK', { duration: 3000 });\r\n }\r\n}\r\n","

\r\n Add addresses from BAG\r\n close\r\n

\r\n

Select max 100 values from the list

\r\n
\r\n
\r\n \r\n Filter\r\n \r\n \r\n\r\n \r\n {{ 'All' | translate }}\r\n {{ 'Even' | translate }}\r\n {{ 'Odd' | translate }}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n BAG ID{{ element.bagId }}{{ 'City' | translate }}{{ element.city }}{{ 'Street' | translate }}{{ element.street }}{{ 'House number' | translate }}{{ element.houseNumber }}{{ 'House letter' | translate }}{{ element.houseLetter }}{{ 'Postcode' | translate }}{{ element.postCode }}{{ 'Addition' | translate }}{{ element.addition }}
\r\n
\r\n {{ 'Selected addresses' | translate }} {{ selection.selected.length }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { AddressBookDialogEntry } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';\r\nimport { Observable } from 'rxjs';\r\nimport { AddressType } from '@app/klic-request-page/enums/addres-type.enum';\r\n\r\ninterface AddressBookDialogData {\r\n addressBook: Array;\r\n addressType: AddressType,\r\n deleteEntryFunction: (addressBookEntry: AddressBookDialogEntry) => Observable\r\n}\r\n\r\n@Component({\r\n selector: 'app-address-book-dialog',\r\n templateUrl: './address-book-dialog.component.html',\r\n styleUrls: ['./address-book-dialog.component.scss'],\r\n})\r\nexport class AddressBookDialogComponent implements OnInit {\r\n dataSource = new MatTableDataSource();\r\n selectedDisplayedColumns: Array = [];\r\n private readonly clientPersonDisplayedColumns: Array = ['name', 'companyName', 'remove'];\r\n private readonly contactDataDisplayColumne: Array = ['name', 'email', 'remove'];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: AddressBookDialogData,\r\n public dialogRef: MatDialogRef\r\n ) {\r\n this.selectedDisplayedColumns = data.addressType === AddressType.ClientPerson\r\n ? this.clientPersonDisplayedColumns\r\n : this.contactDataDisplayColumne;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dataSource.data = this.data.addressBook;\r\n this.dataSource.filterPredicate = (addressBookEntry, filter) =>\r\n addressBookEntry.companyName.trim().toLowerCase().indexOf(filter) !== -1 ||\r\n addressBookEntry.name.trim().toLowerCase().indexOf(filter) !== -1;\r\n }\r\n\r\n /**\r\n * Closes the dialog with the selected Address Book Entry\r\n *\r\n * @param addressBookEntry Selected address\r\n */\r\n public onRowClick(addressBookEntry: AddressBookDialogEntry): void {\r\n this.dialogRef.close(addressBookEntry);\r\n }\r\n\r\n /**\r\n * Removes the address from the list\r\n *\r\n * @param addressBookEntry Address to remove\r\n * @param index Index of the selected element\r\n * @param event Mouse Event to prevent selecting the address when removing it\r\n */\r\n public removeAddressBookEntry(addressBookEntry: AddressBookDialogEntry, index: number, event: MouseEvent): void {\r\n event.stopPropagation();\r\n this.data.deleteEntryFunction(addressBookEntry)\r\n .subscribe(() => {\r\n this.dataSource.data.splice(index, 1);\r\n this.dataSource._updateChangeSubscription();\r\n });\r\n }\r\n\r\n /**\r\n * Applies filter on the dataSource\r\n *\r\n * @param event Event from the filter input\r\n */\r\n public applyFilter(event: Event): void {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n /**\r\n * Closes the dialog\r\n */\r\n public closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

\r\n Select value from the list\r\n close\r\n

\r\n
\r\n \r\n Search\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
{{ 'Name' | translate }}{{ element.name }}{{ 'Company Name' | translate }}{{ element.companyName }}{{ 'E-mail' | translate }}{{ element.email }}\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport {\r\n AddressBookDialogEntry,\r\n ContactAddressBookEntry,\r\n ContactData,\r\n KadasterRelation\r\n} from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { AddressBookService } from '@app/klic-request-page/services/address-book/address-book.service';\r\nimport { ContactBaseComponent } from '@app/klic-request-page/classes/contact-base.component/contact-base.component';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\n\r\n@Component({\r\n selector: 'app-contact-data',\r\n templateUrl: './contact-data.component.html',\r\n styleUrls: ['./contact-data.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\r\n})\r\nexport class ContactDataComponent extends ContactBaseComponent implements OnInit {\r\n @Output() selectedKadasterAccountChange: EventEmitter\r\n = new EventEmitter();\r\n\r\n @Input() details: AbstractControl;\r\n @Input() searchGroupKey: string;\r\n\r\n constructor(\r\n bagService: BagService,\r\n dialog: MatDialog,\r\n private addressBookService: AddressBookService,\r\n protected requestContextService: RequestContextService,\r\n ) {\r\n super(bagService, dialog, requestContextService);\r\n }\r\n\r\n get personDetials() {\r\n return this.details;\r\n }\r\n\r\n get address() {\r\n return this.details.get('address');\r\n }\r\n\r\n protected onDialogClose(formData: AddressBookDialogEntry): void {\r\n this.selectedKadasterAccountChange.emit(\r\n this.requestContextService.findKadasterRelationById(formData.kadasterAccountId)\r\n );\r\n this.fillContactDataForm({\r\n name: formData.name,\r\n phone: formData.phone,\r\n address: {\r\n addition: formData.addition,\r\n city: formData.city,\r\n countryCode: formData.countryCode,\r\n houseLetter: formData.houseLetter,\r\n houseNumber: formData.houseNumber,\r\n postCode: formData.postCode,\r\n street: formData.street\r\n }\r\n });\r\n }\r\n\r\n protected getEntries(): Observable {\r\n return this.addressBookService.getContactDataAddressEntries(this.searchGroupKey);\r\n }\r\n\r\n protected deleteEntryFunction(addressBookEntry: AddressBookDialogEntry) {\r\n return this.addressBookService.deleteContactDataAddressEntry(\r\n addressBookEntry.email,\r\n addressBookEntry.name,\r\n this.searchGroupKey\r\n );\r\n }\r\n\r\n protected addressBookEntriesToDialogDataMapper(entry: ContactAddressBookEntry): AddressBookDialogEntry {\r\n return {\r\n email: entry.contactData.email,\r\n name: entry.contactData.name,\r\n phone: entry.contactData.phone,\r\n addition: entry.contactData.address.addition,\r\n city: entry.contactData.address.city,\r\n countryCode: entry.contactData.address.countryCode,\r\n houseLetter: entry.contactData.address.houseLetter,\r\n houseNumber: entry.contactData.address.houseNumber,\r\n postCode: entry.contactData.address.postCode,\r\n street: entry.contactData.address.street,\r\n kadasterAccountId: entry.kadasterAccountId\r\n };\r\n }\r\n\r\n private fillContactDataForm(contactData: Partial): void {\r\n this.details.patchValue(contactData);\r\n }\r\n}\r\n","
\r\n

Contact Data of Requester

\r\n Address Book\r\n \r\n {{\r\n 'Save in the Address Book' | translate\r\n }}\r\n \r\n \r\n Name\r\n \r\n \r\n {{ 'Name' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n {{ 'E - mail' | translate }} {{ 'is required' | translate }}\r\n \r\n E-mail must be valid \r\n \r\n \r\n Phone\r\n \r\n \r\n {{ 'Phone' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Phone should contain only digits, whitespaces and +-() symbols\r\n \r\n \r\n Phone is max characters long\r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n {{ city }}\r\n \r\n \r\n \r\n {{ 'City' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n Street\r\n \r\n \r\n \r\n {{ street }}\r\n \r\n \r\n \r\n {{ 'Street' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n House number\r\n \r\n \r\n \r\n {{ houseNumber }}\r\n \r\n \r\n \r\n {{ 'House number' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n House letter\r\n \r\n \r\n \r\n {{ houseLetter }}\r\n \r\n \r\n House letter is max 1 character long \r\n \r\n \r\n Postcode\r\n \r\n \r\n \r\n {{ postCode }}\r\n \r\n \r\n \r\n {{ 'Postcode' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Postcode is max characters long\r\n \r\n \r\n \r\n Addition\r\n \r\n \r\n \r\n {{ addition }}\r\n \r\n \r\n Addition is max 4 characters long \r\n \r\n \r\n Country code\r\n \r\n {{country.value}}\r\n \r\n \r\n {{ 'Country code' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport {\r\n AddressBookDialogEntry,\r\n ClientAddressBookEntry,\r\n ClientDetails} from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { AddressBookService } from '@app/klic-request-page/services/address-book/address-book.service';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\nimport { ContactBaseComponent } from '@app/klic-request-page/classes/contact-base.component/contact-base.component';\r\n\r\n@Component({\r\n selector: 'app-contact-person',\r\n templateUrl: './contact-person.component.html',\r\n styleUrls: ['./contact-person.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\r\n})\r\nexport class ContactPersonComponent extends ContactBaseComponent implements OnInit {\r\n @Input() details: AbstractControl;\r\n @Input() searchGroupKey: string;\r\n\r\n constructor(\r\n bagService: BagService,\r\n dialog: MatDialog,\r\n private addressBookService: AddressBookService,\r\n protected requestContextService: RequestContextService,\r\n ) {\r\n super(bagService, dialog, requestContextService);\r\n }\r\n\r\n get personDetials() {\r\n return this.details.get('contactPerson');\r\n }\r\n\r\n get address() {\r\n return this.details.get('contactPersonAddress');\r\n }\r\n\r\n protected onDialogClose(formData: AddressBookDialogEntry): void {\r\n this.fillClientDetailsForm({\r\n companyName: formData.companyName,\r\n contactPerson: {\r\n email: formData.email,\r\n name: formData.name,\r\n phone: formData.phone\r\n },\r\n contactPersonAddress: {\r\n addition: formData.addition,\r\n city: formData.city,\r\n countryCode: formData.countryCode,\r\n houseLetter: formData.houseLetter,\r\n houseNumber: formData.houseNumber,\r\n postCode: formData.postCode,\r\n street: formData.street,\r\n }\r\n });\r\n }\r\n\r\n protected getEntries(): Observable {\r\n return this.addressBookService.getClientDetailsAddressEntries(this.searchGroupKey);\r\n }\r\n\r\n protected deleteEntryFunction(addressBookEntry: AddressBookDialogEntry) {\r\n return this.addressBookService.deleteClientDetailsAddressEntry(\r\n addressBookEntry.companyName,\r\n addressBookEntry.name,\r\n this.searchGroupKey\r\n );\r\n }\r\n\r\n protected addressBookEntriesToDialogDataMapper(entry: ClientAddressBookEntry): AddressBookDialogEntry {\r\n return {\r\n companyName: entry.clientDetails.companyName,\r\n email: entry.clientDetails.contactPerson.email,\r\n name: entry.clientDetails.contactPerson.name,\r\n phone: entry.clientDetails.contactPerson.phone,\r\n addition: entry.clientDetails.contactPersonAddress.addition,\r\n city: entry.clientDetails.contactPersonAddress.city,\r\n countryCode: entry.clientDetails.contactPersonAddress.countryCode,\r\n houseLetter: entry.clientDetails.contactPersonAddress.houseLetter,\r\n houseNumber: entry.clientDetails.contactPersonAddress.houseNumber,\r\n postCode: entry.clientDetails.contactPersonAddress.postCode,\r\n street: entry.clientDetails.contactPersonAddress.street,\r\n kadasterAccountId: entry.kadasterAccountId\r\n };\r\n }\r\n\r\n /**\r\n * Fills Client Details Form with values from the selected Address Book Entry\r\n *\r\n * @param clientDetails Selected Address Book Entry Client Details\r\n * @private\r\n */\r\n private fillClientDetailsForm(clientDetails: ClientDetails): void {\r\n this.details.patchValue(clientDetails);\r\n }\r\n}\r\n","
\r\n

Contact Person

\r\n Address Book\r\n \r\n {{\r\n 'Save in the Address Book' | translate\r\n }}\r\n \r\n \r\n Company Name\r\n \r\n \r\n {{ 'Company Name' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {{ 'Name' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n {{ 'E - mail' | translate }} {{ 'is required' | translate }}\r\n \r\n E-mail must be valid \r\n \r\n \r\n Phone\r\n \r\n \r\n {{ 'Phone' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Phone should contain only digits, whitespaces and +-() symbols\r\n \r\n \r\n Phone is max characters long\r\n \r\n \r\n \r\n \r\n \r\n City\r\n \r\n \r\n \r\n {{ city }}\r\n \r\n \r\n \r\n {{ 'City' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n Street\r\n \r\n \r\n \r\n {{ street }}\r\n \r\n \r\n \r\n {{ 'Street' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n House number\r\n \r\n \r\n \r\n {{ houseNumber }}\r\n \r\n \r\n \r\n {{ 'House number' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n House letter\r\n \r\n \r\n \r\n {{ houseLetter }}\r\n \r\n \r\n House letter is max 1 character long \r\n \r\n \r\n Postcode\r\n \r\n \r\n \r\n {{ postCode }}\r\n \r\n \r\n \r\n {{ 'Postcode' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Postcode is max characters long\r\n \r\n \r\n \r\n Addition\r\n \r\n \r\n \r\n {{ addition }}\r\n \r\n \r\n Addition is max 4 characters long \r\n \r\n \r\n Country code\r\n \r\n {{country.value}}\r\n \r\n \r\n {{ 'Country code' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { mergeMap, retry } from 'rxjs/operators';\r\nimport { GeospatialService } from '@app/klic-request-page/services/geospatial/geospatial.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { TelemetryService } from '@shared/logs/telemetry.service';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss'],\r\n})\r\nexport class FileUploadComponent implements OnInit, OnDestroy {\r\n @Input() disabled = false;\r\n @Output() geojsonUrlChange: EventEmitter = new EventEmitter();\r\n\r\n fileUploading = false;\r\n private _fileUpload$: Subscription;\r\n\r\n constructor(\r\n private geospatialService: GeospatialService,\r\n private telemetryService: TelemetryService,\r\n private requestContextService: RequestContextService,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnDestroy(): void {\r\n this._fileUpload$?.unsubscribe();\r\n }\r\n\r\n public importFile(event: any): void {\r\n const file: File = event.target.files[0];\r\n\r\n if (!this.isValidFileFormat(file)) {\r\n this.openInvalidFileFormatSnackBar();\r\n return;\r\n }\r\n\r\n if (file) {\r\n this.fileUploading = true;\r\n this._fileUpload$ = this.geospatialService\r\n .postFile(file)\r\n .pipe(\r\n mergeMap((response) => this.geospatialService.getConversionStatusInInterval(response.id)),\r\n retry(5)\r\n )\r\n .subscribe(\r\n (data) => {\r\n this.fileUploadDataHandle(data, file);\r\n },\r\n () => {\r\n this.catchError();\r\n }\r\n );\r\n }\r\n }\r\n\r\n private logUploadedFileExtension(file: File) {\r\n this.telemetryService.logger.logEvent('FileUpload', {\r\n fileExtension: this.geospatialService.getFileExtension(file),\r\n companyName: this.requestContextService.companyName,\r\n regionName: this.requestContextService.requestContext.region.name,\r\n });\r\n }\r\n\r\n private logFileUploadTimeoutException(): void {\r\n this.telemetryService.logger.logException(new Error('FileUploadTimeout'), 3);\r\n }\r\n\r\n private logFileUploadStatusFailedException(): void {\r\n this.telemetryService.logger.logException(new Error('FileUploadStatusFailed'), 3);\r\n }\r\n\r\n private fileUploadDataHandle(\r\n data: { geojsonUrl: string; timeout: boolean; statusFailed: boolean; errorMessage: string },\r\n file: File\r\n ): void {\r\n if (data?.geojsonUrl) {\r\n this.fileUploading = false;\r\n this.logUploadedFileExtension(file);\r\n this.geojsonUrlChange.emit(data.geojsonUrl);\r\n } else if (data?.timeout) {\r\n this.logFileUploadTimeoutException();\r\n this.catchError();\r\n } else if (data?.statusFailed) {\r\n this.logFileUploadStatusFailedException();\r\n this.catchError(data.errorMessage);\r\n }\r\n }\r\n\r\n private catchError(errorMessage?: string): void {\r\n this.fileUploading = false;\r\n this.snackBar.open(\r\n errorMessage\r\n ? Object.values(\r\n this.translateService.instant([\r\n 'An error occurred.',\r\n errorMessage,\r\n 'For more details contact the GOconnectIT service desk.',\r\n ])\r\n ).join(' ')\r\n : this.translateService.instant(\r\n 'An error occurred. Wait a moment and try again or contact the GOconnectIT service desk.'\r\n ),\r\n 'OK'\r\n );\r\n }\r\n\r\n private openInvalidFileFormatSnackBar(): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant('Supported file formats: GML, XML, ZIP'), 'OK');\r\n }\r\n\r\n private isValidFileFormat(file: File): boolean {\r\n return (\r\n this.geospatialService.getFileExtension(file) === 'gml' ||\r\n this.geospatialService.getFileExtension(file) === 'xml' ||\r\n this.geospatialService.getFileExtension(file) === 'zip'\r\n );\r\n }\r\n}\r\n","\r\n \r\n file_upload\r\n\r\n\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';\r\nimport { BAGAddress } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-house-connection-sketches-table',\r\n templateUrl: './house-connection-sketches-table.component.html',\r\n styleUrls: ['./house-connection-sketches-table.component.scss'],\r\n})\r\nexport class HouseConnectionSketchesTableComponent implements OnInit, AfterViewInit {\r\n @Input() dataSource = new MatTableDataSource();\r\n @Input() removeDisabled = false;\r\n @Output() removeAllAddresses: EventEmitter = new EventEmitter();\r\n @Output() removeSingleAddress: EventEmitter = new EventEmitter();\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n displayedColumns: Array = ['city', 'street', 'houseNumber', 'houseLetter', 'postCode', 'addition', 'remove'];\r\n\r\n constructor(private translateService: TranslateService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n public notFoundInKadasterTooltip(notFoundInKadaster: boolean): string {\r\n return notFoundInKadaster\r\n ? this.translateService.instant(\r\n 'Address rejected by Kadaster, possibly neither an existing nor primary BAG address'\r\n )\r\n : null;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
{{ 'City' | translate }}{{ element.city }}{{ 'Street' | translate }}{{ element.street }}{{ 'House number' | translate }}{{ element.houseNumber }}{{ 'House letter' | translate }}{{ element.houseLetter }}{{ 'Addition' | translate }}{{ element.addition }}{{ 'Postcode' | translate }}{{ element.postCode }}\r\n \r\n delete_sweep\r\n \r\n \r\n \r\n delete\r\n \r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport {\r\n AddHcsByBagAddressesDialogComponent\r\n} from '../add-hcs-by-bag-addresses-dialog/add-hcs-by-bag-addresses-dialog.component';\r\nimport { BAGAddress } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';\r\nimport { AddHcsByAddressDialogComponent } from '../add-hcs-by-address-dialog/add-hcs-by-address-dialog.component';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TelemetryService } from '@shared/logs/telemetry.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-house-connection-sketches',\r\n templateUrl: './house-connection-sketches.component.html',\r\n styleUrls: ['./house-connection-sketches.component.scss'],\r\n})\r\nexport class HouseConnectionSketchesComponent implements OnInit, OnDestroy {\r\n readonly MAX_SELECTED_HCS_ADDRESSES = 100;\r\n @Input() polygonCoordinates: string;\r\n @Input() klicType: string;\r\n @Input() disabled = false;\r\n @Output() selectedAddresses: EventEmitter> = new EventEmitter>();\r\n @Output() bagAddressesLoading: EventEmitter = new EventEmitter();\r\n\r\n selectedHCSAddresses = new MatTableDataSource();\r\n _bagAddressesLoading = false;\r\n\r\n private _defaultAddresses: Array = [];\r\n private _bagAddressesSubscription$: Subscription;\r\n\r\n constructor(\r\n private bagService: BagService,\r\n private dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService,\r\n private telemetryService: TelemetryService\r\n ) {}\r\n\r\n @Input() set defaultAddresses(addresses: Array) {\r\n this._defaultAddresses = addresses;\r\n this.selectedHCSAddresses.data = addresses;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addMultipleAddresses(this._defaultAddresses);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._bagAddressesSubscription$?.unsubscribe();\r\n }\r\n\r\n public openAddHCSByAddressDialog(): void {\r\n if (this.isValidAmountOfHCSAddresses()) {\r\n const dialogRef = this.dialog.open(AddHcsByAddressDialogComponent, {\r\n width: '800px',\r\n data: {\r\n maxHCSAddressesAmountToSelect: this.MAX_SELECTED_HCS_ADDRESSES - this.selectedHCSAddresses.data.length,\r\n selectedHCSAddresses: this.selectedHCSAddresses.data,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n if (result?.length) {\r\n this.addMultipleAddresses(result);\r\n } else if (result && !this.findAddressInSelectedHCS(result)) {\r\n this.addSingleAddress(result);\r\n }\r\n });\r\n } else {\r\n this.openSnackBar('You can select max addresses', { amount: this.MAX_SELECTED_HCS_ADDRESSES });\r\n }\r\n }\r\n\r\n public openAddHCSByBAGAddressesDialog(): void {\r\n if (this.isValidAmountOfHCSAddresses()) {\r\n if (this.polygonCoordinates.length) {\r\n this.bagAddressesLoadingEvent(true);\r\n\r\n this._bagAddressesSubscription$ = (\r\n this.klicType === 'Orientation'\r\n ? this.bagService.getBAGAddresses(this.polygonCoordinates)\r\n : this.bagService.getBAGAddressesFromArea(this.polygonCoordinates)\r\n ).subscribe(\r\n (addresses) => {\r\n this.bagAddressesLoadingEvent(false);\r\n const dialogRef = this.dialog.open(AddHcsByBagAddressesDialogComponent, {\r\n width: '1000px',\r\n data: {\r\n maxHCSAddressesAmountToSelect: this.MAX_SELECTED_HCS_ADDRESSES - this.selectedHCSAddresses.data.length,\r\n addresses: this.bagService.filterBAGAddresses(addresses, this.selectedHCSAddresses.data),\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result: Array) => {\r\n if (result) {\r\n this.addMultipleAddresses(result);\r\n }\r\n });\r\n },\r\n () => {\r\n this.catchBAGAddressesError();\r\n }\r\n );\r\n } else {\r\n this.openSnackBar('Please draw polygon');\r\n }\r\n } else {\r\n this.openSnackBar('You can select max addresses', { amount: this.MAX_SELECTED_HCS_ADDRESSES });\r\n }\r\n }\r\n\r\n public removeAddress(index: number): void {\r\n this.selectedHCSAddresses.data = this.selectedHCSAddresses.data.filter((value, i) => index !== i);\r\n this.emitChange();\r\n }\r\n\r\n public removeAllAddresses(): void {\r\n this.selectedHCSAddresses.data = [];\r\n this.emitChange();\r\n }\r\n\r\n private addMultipleAddresses(addresses: Array): void {\r\n this.selectedHCSAddresses.data = this.selectedHCSAddresses.data.concat(\r\n this.bagService.filterBAGAddresses(addresses, this.selectedHCSAddresses.data)\r\n );\r\n this.sortSelectedHouseConnectionSketches();\r\n this.selectedHCSAddresses._updateChangeSubscription();\r\n this.emitChange();\r\n }\r\n\r\n private addSingleAddress(address: BAGAddress): void {\r\n this.selectedHCSAddresses.data.push(address);\r\n this.sortSelectedHouseConnectionSketches();\r\n this.selectedHCSAddresses._updateChangeSubscription();\r\n this.emitChange();\r\n }\r\n\r\n private sortSelectedHouseConnectionSketches(): void {\r\n this.selectedHCSAddresses.data.sort((a, b) =>\r\n a.city > b.city\r\n ? 1\r\n : a.city === b.city\r\n ? a.street > b.street\r\n ? 1\r\n : a.street === b.street\r\n ? a.houseNumber > b.houseNumber\r\n ? 1\r\n : -1\r\n : -1\r\n : -1\r\n );\r\n }\r\n\r\n private emitChange() {\r\n this.selectedAddresses.emit(this.selectedHCSAddresses.data);\r\n }\r\n\r\n private findAddressInSelectedHCS(bagAddress: BAGAddress) {\r\n return this.selectedHCSAddresses.data.find((address) => address.bagId === bagAddress.bagId);\r\n }\r\n\r\n private isValidAmountOfHCSAddresses(): boolean {\r\n return this.selectedHCSAddresses.data.length < this.MAX_SELECTED_HCS_ADDRESSES;\r\n }\r\n\r\n private catchBAGAddressesError(): void {\r\n this.bagAddressesLoadingEvent(false);\r\n this.logBAGAddressesException();\r\n this.openSnackBar('An error occurred. Wait a moment and try again or contact the GOconnectIT service desk.');\r\n }\r\n\r\n private logBAGAddressesException(): void {\r\n const error = new Error(this.polygonCoordinates);\r\n error.name = 'RetrievingAddressesFromPolygonError';\r\n this.telemetryService.logger.logException(error, 3);\r\n }\r\n\r\n private bagAddressesLoadingEvent(loading: boolean): void {\r\n this._bagAddressesLoading = loading;\r\n this.bagAddressesLoading.emit(loading);\r\n }\r\n\r\n private openSnackBar(message: string, params?: object): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message, params), 'OK');\r\n }\r\n}\r\n","
\r\n House Connection Sketches\r\n \r\n \r\n {{ 'Add addresses from the polygon' | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { Moment } from 'moment';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { WorkTypeDialogComponent } from '../work-type-dialog/work-type-dialog.component';\r\nimport { WorkType } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment from 'moment-timezone';\r\nimport { environment } from '@env/environment';\r\n\r\n@Component({\r\n selector: 'app-information-about-performed-work',\r\n templateUrl: './information-about-performed-work.component.html',\r\n styleUrls: ['./information-about-performed-work.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\r\n})\r\nexport class InformationAboutPerformedWorkComponent implements OnInit {\r\n @Input() klicType: string;\r\n @Input() isRequiredValidationEnabled = true;\r\n @Input() informationAboutPerformedWork: AbstractControl;\r\n @Input() workTypeNotProvidedError = false;\r\n @Input() workTypes: Array;\r\n @Output() startDateChange: EventEmitter = new EventEmitter();\r\n @Output() endDateChange: EventEmitter = new EventEmitter();\r\n @Output() workTypesChange: EventEmitter> = new EventEmitter>();\r\n @Output() workTypeNotProvidedErrorChange: EventEmitter = new EventEmitter();\r\n @Output() selectedWorkTypesChange: EventEmitter> = new EventEmitter>();\r\n\r\n minStartDate = moment().tz(environment.defaultTimeZone).add(2, 'hours').add(1, 'days');\r\n minEndDate = moment().tz(environment.defaultTimeZone).add(2, 'hours').add(2, 'days');\r\n\r\n constructor(private dialog: MatDialog, private translateService: TranslateService) {}\r\n\r\n get notes() {\r\n return this.informationAboutPerformedWork.get('notes');\r\n }\r\n\r\n get workType() {\r\n return this.informationAboutPerformedWork.get('workType');\r\n }\r\n\r\n get startDate() {\r\n return this.informationAboutPerformedWork.get('startDate');\r\n }\r\n\r\n get estimatedEndDate() {\r\n return this.informationAboutPerformedWork.get('estimatedEndDate');\r\n }\r\n\r\n set workTypesList(workTypes: Array) {\r\n this.workTypes = workTypes;\r\n this.workTypesChange.emit(this.workTypes);\r\n }\r\n\r\n set workTypeNotProvided(value: boolean) {\r\n this.workTypeNotProvidedError = value;\r\n this.workTypeNotProvidedErrorChange.emit(this.workTypeNotProvidedError);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isRequiredValidationEnabled) {\r\n this.startDateValueChangesListener();\r\n }\r\n }\r\n\r\n /**\r\n * Opens dialog with Work Types\r\n */\r\n public openWorkTypeDialog(): void {\r\n if (this.workType.value) {\r\n this.workTypes.forEach((workType) => {\r\n workType.selected = this.workType.value.find((workTypeName: string) => workType.key === workTypeName);\r\n });\r\n }\r\n\r\n const dialogRef = this.dialog.open(WorkTypeDialogComponent, {\r\n width: '1000px',\r\n id: 'work-type-dialog',\r\n data: {\r\n workTypes: this.workTypes,\r\n notes: this.notes.value,\r\n klicType: this.klicType,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.workType.patchValue(result.selectedWorkTypes.map((workType: WorkType) => workType.key));\r\n this.notes.patchValue(result.notes);\r\n this.selectedWorkTypesChange.emit(result.selectedWorkTypes);\r\n this.workTypesList = result.workTypes;\r\n this.workType.markAsTouched();\r\n this.workTypeNotProvided = false;\r\n\r\n if (!result.selectedWorkTypes.length) {\r\n this.workTypeNotProvided = true;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public displayWorkTypeName(workTypeName: string): string {\r\n return this.workTypes.find((workType: WorkType) => workType.key === workTypeName).value;\r\n }\r\n\r\n /**\r\n * Adds 'and more' to the selected Work Types button text\r\n */\r\n public additionalSelectedWorkTypesText(): string {\r\n return this.workType.value.length > 1\r\n ? this.translateService.instant('and more', { length: this.workType.value.length - 1 })\r\n : '';\r\n }\r\n\r\n /**\r\n * Triggers when Start Date changes\r\n *\r\n * @param event Event from Start Date MatDatepicker\r\n */\r\n public onMatDatepickerStartDateChange(event: MatDatepickerInputEvent): void {\r\n const defaultTimeZoneStartDate = event.value.tz(environment.defaultTimeZone);\r\n this.startDate.patchValue(defaultTimeZoneStartDate, { emitEvent: false, onlySelf: true });\r\n this.onStartDateChange(defaultTimeZoneStartDate);\r\n }\r\n\r\n public onMatDatepickerEndDateChange(event: MatDatepickerInputEvent): void {\r\n const defaultTimeZoneEndDate = event.value.tz(environment.defaultTimeZone);\r\n this.estimatedEndDate.patchValue(defaultTimeZoneEndDate, { emitEvent: false, onlySelf: true });\r\n this.endDateChange.emit();\r\n }\r\n\r\n private setMinEndDate(startDate: Moment): void {\r\n this.minEndDate = moment(startDate).tz(environment.defaultTimeZone).add(1, 'days');\r\n }\r\n\r\n private startDateValueChangesListener(): void {\r\n this.startDate.valueChanges.subscribe((value: Moment | Date) => {\r\n this.onStartDateChange(moment(value || this.minStartDate).tz(environment.defaultTimeZone));\r\n });\r\n }\r\n\r\n private onStartDateChange(startDate: Moment): void {\r\n this.setMinEndDate(startDate);\r\n this.validateEndDate();\r\n this.startDateChange.emit();\r\n }\r\n\r\n /**\r\n * Validates End Date\r\n *\r\n * @private\r\n */\r\n private validateEndDate(): void {\r\n const endDate = moment(this.estimatedEndDate.value);\r\n if (endDate && endDate < this.minEndDate) {\r\n this.estimatedEndDate.setErrors({ matDatepickerMin: true });\r\n this.estimatedEndDate.markAsTouched({ onlySelf: true });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n {{ 'Start Date' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Start Date should be in the future\r\n \r\n \r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n {{ 'End Date' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n End Date should be after the Start Date\r\n \r\n \r\n
\r\n {{ 'Work Types' | translate }} *\r\n \r\n \r\n {{ displayWorkTypeName(workType.value[0]) }} {{ additionalSelectedWorkTypesText() }}\r\n \r\n {{ 'Select Work Types' | translate }}\r\n \r\n You must provide at least one Work Type\r\n You can provide max 6 Work Types\r\n \r\n \r\n Additional description\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { KadasterRelation } from '@app/klic-request-page/interfaces/klic-request.interface';\r\n\r\n@Component({\r\n selector: 'app-kadaster-account-dialog',\r\n templateUrl: './kadaster-account-dialog.component.html',\r\n styleUrls: ['./kadaster-account-dialog.component.scss'],\r\n})\r\nexport class KadasterAccountDialogComponent implements OnInit {\r\n readonly displayColumns: Array =\r\n ['companyName', 'customerNumber', 'chamberOfCommerceNumber', 'email', 'isDefault'];\r\n\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: Array,\r\n public dialogRef: MatDialogRef,\r\n ) {}\r\n\r\n ngOnInit(): void { }\r\n\r\n public onRowClick(kadasterRelation: KadasterRelation): void {\r\n this.dialogRef.close(kadasterRelation);\r\n }\r\n\r\n public closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

\r\n Select Kadaster Relation\r\n close\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
{{ 'Company Name' | translate }}{{ element.companyName }}{{ 'E-mail' | translate }}{{ element.email }}{{ 'Customer Number' | translate }}{{ element.customerNumber }}{{ 'Chamber Of Commerce Number' | translate }}{{ element.chamberOfCommerceNumber }}{{ 'Is Default' | translate }}{{ (element.isDefault ? 'Yes' : 'No') | translate }}
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport {\r\n KadasterAccountDialogComponent\r\n} from '@app/klic-request-page/components/kadaster-account-dialog/kadaster-account-dialog.component';\r\nimport { KadasterRelation } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\n\r\n@Component({\r\n selector: 'app-kadaster-account',\r\n templateUrl: './kadaster-account.component.html',\r\n styleUrls: ['./kadaster-account.component.scss'],\r\n})\r\nexport class KadasterAccountComponent implements OnInit {\r\n @Input() kadasterRelations: Array;\r\n @Input() kadasterAccountNotProvidedError = false;\r\n @Input() disabled: boolean;\r\n @Output() selectedKadasterAccountChange: EventEmitter = new EventEmitter();\r\n @Output() kadasterAccountNotProvidedErrorChange: EventEmitter = new EventEmitter();\r\n\r\n selectedKadasterRelation: KadasterRelation;\r\n\r\n constructor(private dialog: MatDialog) {}\r\n\r\n @Input() set selectedKadasterAccountId(kadasterRelationId: string) {\r\n this.selectedKadasterRelation = this.kadasterRelations?.find(\r\n (kadasterRelation) => kadasterRelation.id === kadasterRelationId\r\n );\r\n }\r\n\r\n set kadasterAccountNotProvided(value: boolean) {\r\n this.kadasterAccountNotProvidedError = value;\r\n this.kadasterAccountNotProvidedErrorChange.emit(value);\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n /**\r\n * Opens dialog with Kadaster Accounts\r\n */\r\n public openKadasterAccountDialog(): void {\r\n const dialogRef = this.dialog.open(KadasterAccountDialogComponent, {\r\n width: '1000px',\r\n data: this.kadasterRelations,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: KadasterRelation) => {\r\n if (result) {\r\n this.selectedKadasterRelation = result;\r\n this.selectedKadasterAccountChange.emit(result);\r\n this.kadasterAccountNotProvided = false;\r\n }\r\n });\r\n }\r\n}\r\n","{{ 'Kadaster Relation' | translate }} *\r\n \r\n You must provide a Kadaster Relation\r\n\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ReferenceValidator } from '@app/klic-request-page/validators/reference.validator';\r\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\r\nimport { KlicTypeDialogComponent } from '@app/klic-request-page/components/klic-type-dialog/klic-type-dialog.component';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport {\r\n BAGAddress,\r\n ClientDetails,\r\n KLIC_TYPES,\r\n KlicType,\r\n WorkType,\r\n DisabledKlicRequest,\r\n KlicRequest,\r\n ContactData,\r\n KlicProject,\r\n} from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport * as moment from 'moment';\r\nimport { Moment } from 'moment';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatAccordion } from '@angular/material/expansion';\r\nimport { AuthService } from '@core/auth.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { environment } from '@env/environment';\r\nimport { BlankValidator } from '@app/klic-request-page/validators/blank.validator';\r\nimport { KlicDataService } from '@app/klic-request-page/services/klic-data/klic-data.service';\r\nimport { KlicProjectsService } from '@app/klic-request-page/services/klic-projects/klic-projects.service';\r\nimport { AddressBookService } from '@app/klic-request-page/services/address-book/address-book.service';\r\nimport { FormService } from '@app/klic-request-page/services/form/form.service';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\nimport { KlicProjectService } from '@app/klic-request-page/services/klic-project/klic-project.service';\r\nimport { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { Mode } from '@app/klic-request-page/enums/mode.enum';\r\nimport { KlicProjectModel } from '@app/klic-request-page/models/klic-project-model';\r\nimport { KlicRequestModel } from '@app/klic-request-page/models/klic-request-model';\r\nimport { TelemetryService } from '@shared/logs/telemetry.service';\r\nimport * as turf from '@turf/turf';\r\nimport { MatSnackBarRef, SimpleSnackBar } from '@angular/material/snack-bar';\r\nimport { WorkTypesAmountValidator } from '@app/klic-request-page/validators/work-types-amount.validator';\r\nimport { AddressType } from '@app/klic-request-page/enums/addres-type.enum';\r\nimport { BagData } from '@app/klic-request-page/enums/bag-data.interface';\r\nimport { KlicProjectType } from '@app/klic-projects/services/klic-projects.interface';\r\nimport { AddNewAddressResult } from '@app/klic-request-page/interfaces/add-new-address-result';\r\nimport { KadasterRelation } from '../../interfaces/klic-request.interface';\r\n\r\n/**\r\n * Interface for klic request view.\r\n * It allows to combine klicRequests controls and\r\n * disabled klic request in one array for\r\n * displaying it correctly on view.\r\n */\r\ninterface KlicRequestView extends DisabledKlicRequest {\r\n isDisabled: boolean;\r\n informationAboutPerformedWork?: AbstractControl;\r\n houseConnectionSketchAddresses?: AbstractControl;\r\n canBeEdited?: boolean;\r\n selectionPolygonCoordinates?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-klic-request-form',\r\n templateUrl: './klic-request-form.component.html',\r\n styleUrls: ['./klic-request-form.component.scss'],\r\n})\r\nexport class KlicRequestFormComponent implements OnInit, AfterViewInit {\r\n @Input() public klicProjectModel: KlicProjectModel;\r\n @Input() public mode: ModeInterface;\r\n @Output() public selectedPolygonChange: EventEmitter<{ selectionPolygonId: string; selected: boolean }> =\r\n new EventEmitter<{\r\n selectionPolygonId: string;\r\n selected: boolean;\r\n }>();\r\n @Output() public informationPolygonBufferChange: EventEmitter = new EventEmitter();\r\n @Output() public klicTypeChange: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild(MatAccordion) public accordion: MatAccordion;\r\n\r\n public form: UntypedFormGroup;\r\n public klicType: KlicType;\r\n public workTypeNotProvidedError = false;\r\n public kadasterAccountNotProvidedError = false;\r\n public selectedWorkTypes: Array = [];\r\n public workTypes: Array = [...this.requestContextService.workTypes];\r\n public submitDisabled = false;\r\n public submitTouched = false;\r\n public showInformationPolygonBuffer = true;\r\n public informationPolygonBufferSizes = [\r\n { value: 0, label: 0 },\r\n { value: 5, label: 5 },\r\n { value: 10, label: 10 },\r\n { value: 15, label: 15 },\r\n { value: 20, label: 20 },\r\n { value: 25, label: 25 },\r\n { value: 50, label: 50 },\r\n { value: 75, label: 75 },\r\n { value: 99, label: 100 },\r\n ];\r\n public addWithKlicProject = false;\r\n public isAddingFromExistingProject = false;\r\n\r\n private readonly REFERENCE_VALIDATORS = [\r\n Validators.required,\r\n Validators.pattern(/^[a-z0-9-!:\";'?,. ]+$/i),\r\n BlankValidator.isBlank,\r\n ];\r\n private readonly VALID_PHONE_REGEX = '^[0-9\\\\s\\\\+\\\\-\\\\(\\\\)]*';\r\n private _klicRequestsModel: Array;\r\n private _informationPolygonBuffer = 0;\r\n private _informationPolygonFlatCoordinates: Array;\r\n private _disabledKlicRequests: Array = [];\r\n\r\n private addressBookNamesByType = new Map([\r\n [AddressType.ContactData, 'Contact Data of Requester'],\r\n [AddressType.ClientPerson, 'Contact Person'],\r\n ]);\r\n\r\n constructor(\r\n public mapService: MapService,\r\n public formService: FormService,\r\n public requestContextService: RequestContextService,\r\n public klicProjectService: KlicProjectService,\r\n private bagService: BagService,\r\n private klicProjectsService: KlicProjectsService,\r\n private addressBookService: AddressBookService,\r\n private klicDataService: KlicDataService,\r\n private authService: AuthService,\r\n private formBuilder: UntypedFormBuilder,\r\n private dialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private dateAdapter: DateAdapter,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private cd: ChangeDetectorRef,\r\n private hostElement: ElementRef,\r\n private translateService: TranslateService,\r\n private telemetryService: TelemetryService\r\n ) {\r\n this.dateAdapter.setLocale(navigator.language);\r\n this.isAddingFromExistingProject = this.formService.isAddingFromExistingProject();\r\n }\r\n\r\n @Input() public set klicRequestsModel(klicRequestsModel: Array) {\r\n\r\n if (klicRequestsModel) {\r\n this._klicRequestsModel = klicRequestsModel;\r\n\r\n if (this._klicRequestsModel && this._klicRequestsModel.length > 1) {\r\n this.showInformationPolygonBuffer = false;\r\n this.informationPolygonBuffer = 0;\r\n this.referenceAddition.reset();\r\n } else {\r\n this.showInformationPolygonBuffer = true;\r\n }\r\n\r\n if (this.klicRequestsCount === 1 && this._klicRequestsModel.length === 1) {\r\n this.updateKlicRequestsForm();\r\n } else {\r\n this.initKlicRequestsForm();\r\n }\r\n\r\n this.resetGeneralInformationAboutPerformedWork();\r\n }\r\n }\r\n\r\n public set informationPolygonBuffer(informationPolygonBuffer: number) {\r\n this._informationPolygonBuffer = informationPolygonBuffer;\r\n this.informationPolygonBufferChange.emit(this._informationPolygonBuffer);\r\n }\r\n\r\n public get informationPolygonBuffer(): number {\r\n return this._informationPolygonBuffer;\r\n }\r\n\r\n @Input() public set informationPolygonFlatCoordinates(informationPolygonFlatCoordinates: Array) {\r\n this._informationPolygonFlatCoordinates = informationPolygonFlatCoordinates;\r\n this.updateKlicRequestInformationPolygon();\r\n }\r\n\r\n public get informationPolygonFlatCoordinates(): Array {\r\n return this._informationPolygonFlatCoordinates;\r\n }\r\n\r\n public get reference() {\r\n return this.form.get('reference');\r\n }\r\n\r\n public get referenceAddition() {\r\n return this.form.get('referenceAddition');\r\n }\r\n\r\n public get type() {\r\n return this.form.get('type');\r\n }\r\n\r\n public get contactData() {\r\n return this.form.get('contactData');\r\n }\r\n\r\n public get contactDataAddress() {\r\n return this.contactData.get('address');\r\n }\r\n\r\n public get informationAboutPerformedWork() {\r\n return this.form.get('informationAboutPerformedWork');\r\n }\r\n\r\n public get clientDetails() {\r\n return this.form.get('clientDetails');\r\n }\r\n\r\n public get contactPersonAddress() {\r\n return this.clientDetails.get('contactPersonAddress');\r\n }\r\n\r\n public get kadasterAccountId() {\r\n return this.form.get('kadasterAccountId');\r\n }\r\n\r\n public get referenceSeparator() {\r\n return this.form.get('separator');\r\n }\r\n\r\n public get klicRequests() {\r\n return this.form?.get('klicRequests') as UntypedFormArray;\r\n }\r\n\r\n public get saveClientDetailsInAddressBook() {\r\n return this.clientDetails.get('saveInAddressBook');\r\n }\r\n\r\n public get saveContactDataInAddressBook() {\r\n return this.contactData.get('saveInAddressBook');\r\n }\r\n\r\n public get klicRequestsForView(): Array {\r\n const combinedRequests: Array = [];\r\n this.klicRequests.controls.forEach((klicRequest: AbstractControl) => {\r\n combinedRequests.push({\r\n id: klicRequest.get('id').value,\r\n reference: klicRequest.get('reference').value,\r\n selectionPolygonId: klicRequest.get('selectionPolygonId').value,\r\n selectionPolygonCoordinates: klicRequest.get('selectionPolygonCoordinates').value,\r\n canBeEdited: klicRequest.get('canBeEdited').value,\r\n houseConnectionSketchAddresses: klicRequest.get('houseConnectionSketchAddresses'),\r\n houseConnectionSketchAddressesCntr: klicRequest.get('houseConnectionSketchAddresses').value.length,\r\n informationAboutPerformedWork: klicRequest.get('informationAboutPerformedWork'),\r\n isDisabled: false\r\n });\r\n });\r\n combinedRequests.push(...this._disabledKlicRequests.map((dkr => ({\r\n ...dkr,\r\n isDisabled: true\r\n }))));\r\n\r\n return combinedRequests.sort((a, b) =>\r\n a.selectionPolygonId.localeCompare(b.selectionPolygonId, undefined, { numeric: true, sensitivity: 'base' })\r\n );\r\n }\r\n\r\n public get klicRequestsCount(): number {\r\n return (this.klicRequests?.controls?.length || 0) + (this._disabledKlicRequests?.length || 0);\r\n }\r\n\r\n private get isReferenceAdditionVisible(): boolean {\r\n return this.requestContextService.isParsingProjectNumberEnabled && this.klicRequestsCount <= 1;\r\n }\r\n\r\n private get getReferenceAdditionValue(): boolean {\r\n return this.isReferenceAdditionVisible ? this.referenceAddition.value : '';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formInit();\r\n this.klicRequestsReferencesAutocomplete();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.expandOpenedSingleKlicRequest();\r\n }\r\n\r\n /**\r\n * Submits KLIC Request form\r\n */\r\n public submitKlicRequestForm(): void {\r\n this.klicRequestFormValidation();\r\n\r\n if (this.klicCanBeRequested()) {\r\n if (\r\n this.form.value.klicRequests.length === 1 &&\r\n this.isPolygonTouchingInformationPolygon(this.form.value.klicRequests[0])\r\n ) {\r\n this.openSnackBar('Polygon touch information polygon');\r\n return;\r\n }\r\n\r\n this.submitDisabled = true;\r\n delete this.form.value.informationAboutPerformedWork;\r\n\r\n this.getAddressesBagIds().subscribe((bagData: Array) => {\r\n const areAllValid = bagData.every((entry) => !!entry.bagId);\r\n if (areAllValid) {\r\n this.patchControlsWithBagData(bagData);\r\n this.mode.name === Mode.Add ? this.addKlicRequest() : this.updateKlicRequest();\r\n } else {\r\n this.submitDisabled = false;\r\n this.logErrorAndNotify(bagData);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Navigates back to different page depending on conditions\r\n */\r\n public navigateBack(): void {\r\n this.route.snapshot.queryParams.requestFromExisting\r\n ? (window.parent.location.href =\r\n `${this.route.snapshot.queryParams.platformUrl}/Backoffice/LargeAreaKlicRequest/B2BKlicRequest`)\r\n : this.route.snapshot.queryParams.returnUrl\r\n ? this.navigateToReturnUrl()\r\n : this.navigateToKlicProjectsList();\r\n }\r\n\r\n /**\r\n * Opens dialog with Klic Type selection\r\n *\r\n * @param disableClose Disable closing the dialog by clicking on the background\r\n */\r\n public openKlicTypeDialog(disableClose: boolean): void {\r\n const dialogRef = this.dialog.open(KlicTypeDialogComponent, {\r\n width: '800px',\r\n disableClose,\r\n data: this.klicType,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: KlicType) => {\r\n if (result) {\r\n this.setKlicType(result);\r\n }\r\n });\r\n }\r\n\r\n public onAccordionExpand(selectionPolygonId: string): void {\r\n setTimeout(() => {\r\n this.selectedPolygonChange.emit({ selectionPolygonId, selected: true });\r\n });\r\n }\r\n\r\n public onAccordionCollapsed(selectionPolygonId: string): void {\r\n setTimeout(() => {\r\n this.selectedPolygonChange.emit({ selectionPolygonId, selected: false });\r\n });\r\n }\r\n\r\n public onSelectedKadasterAccountChange(kadasterRelation?: KadasterRelation): void {\r\n if(!kadasterRelation) {\r\n return;\r\n }\r\n\r\n this.kadasterAccountId.patchValue(kadasterRelation.id);\r\n this.contactData.patchValue({\r\n email: kadasterRelation.email\r\n });\r\n }\r\n\r\n public klicRequestHouseConnectionSketch(\r\n houseConnectionSketchAddresses: AbstractControl,\r\n bagAddresses: Array\r\n ) {\r\n houseConnectionSketchAddresses.patchValue(bagAddresses);\r\n }\r\n\r\n public onStartDateChange(): void {\r\n this.updateInformationAboutPerformedWorkDates();\r\n }\r\n\r\n public onEndDateChange(): void {\r\n this.updateInformationAboutPerformedWorkDates();\r\n }\r\n\r\n public onSelectedWorkTypesChange(selectedWorkTypes: Array): void {\r\n this.klicRequests.controls.forEach((control) => {\r\n control\r\n .get('informationAboutPerformedWork.workType')\r\n .patchValue(selectedWorkTypes.map((workType: WorkType) => workType.key));\r\n control\r\n .get('informationAboutPerformedWork.notes')\r\n .patchValue(this.informationAboutPerformedWork.get('notes').value);\r\n });\r\n }\r\n\r\n public isKlicDisabled(klicRequestId: string): boolean {\r\n return this.klicProjectService.klicRequest && this.klicProjectService.klicRequest.id !== klicRequestId;\r\n }\r\n\r\n public isHCSDisabled(canBeEdited: boolean): boolean {\r\n return this.mode.isHCSDisabled() && !canBeEdited;\r\n }\r\n\r\n public isContactDataFieldDisabled(field: string): boolean {\r\n return (\r\n this.klicProjectModel.contactData &&\r\n this.klicProjectModel.contactData[field] &&\r\n this.contactData.get(field).valid &&\r\n this.contactData.get(field).pristine\r\n );\r\n }\r\n\r\n public showInformationAboutPerformedWork(): boolean {\r\n return (\r\n this.type.value !== 'Calamity' &&\r\n this.klicRequestsCount > 1 &&\r\n this.mode.showInformationAboutPerformedWork()\r\n );\r\n }\r\n\r\n public showInformationAboutPerformedWorkTitle(): boolean {\r\n return this.type.value !== 'Calamity' && this.klicRequestsCount > 0;\r\n }\r\n\r\n public isKlicRequestMarkedAsInvalid(informationAboutPerformedWork: AbstractControl): boolean {\r\n return this.submitTouched\r\n ? informationAboutPerformedWork.invalid\r\n : informationAboutPerformedWork.invalid &&\r\n informationAboutPerformedWork.touched &&\r\n informationAboutPerformedWork.pristine;\r\n }\r\n\r\n public onBAGAddressesLoading(loading: boolean): void {\r\n this.submitDisabled = loading;\r\n }\r\n\r\n public klicRequestsTrackByFn(_: number, item: KlicRequestView) {\r\n return item.id;\r\n }\r\n\r\n public clearHouseConnectionSketchAddresses() {\r\n if (this._klicRequestsModel && !this.klicProjectService.isKlicProjectStatusDraft()) {\r\n this._klicRequestsModel.forEach((klicRequest) => {\r\n const control = this.klicRequests.controls.find(\r\n c => c.get('selectionPolygonId').value === klicRequest.selectionPolygonId\r\n );\r\n\r\n control?.patchValue({\r\n houseConnectionSketchAddresses: [],\r\n });\r\n });\r\n }\r\n }\r\n\r\n private isPolygonTouchingInformationPolygon(klicRequest: KlicRequest): boolean {\r\n if (klicRequest.informationPolygonCoordinates) {\r\n const parsedPolygon = this.parseStringToPosition(klicRequest.selectionPolygonCoordinates);\r\n const parsedInformation = this.parseStringToPosition(klicRequest.informationPolygonCoordinates);\r\n const turfPolygonLine = turf.lineString(parsedPolygon);\r\n const turfInformation = turf.lineString(parsedInformation);\r\n return turf.lineIntersect(turfInformation, turfPolygonLine).features.length > 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private parseStringToPosition(stringCoords: string): Array {\r\n const splitted = stringCoords.split(' ');\r\n const result: Array = [];\r\n for (let i = 0; i < splitted.length; i += 2) {\r\n result.push([\r\n Number(splitted[i]),\r\n Number(splitted[i + 1])\r\n ]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Inits the form\r\n *\r\n * @private\r\n */\r\n private formInit(): void {\r\n this.form = this.formBuilder.group(\r\n {\r\n informationAboutPerformedWork: this.formBuilder.group({\r\n startDate: [''],\r\n estimatedEndDate: [''],\r\n workType: [''],\r\n notes: [''],\r\n }),\r\n clientDetails: this.formBuilder.group({\r\n companyName: ['', Validators.required],\r\n contactPerson: this.formBuilder.group({\r\n name: ['', Validators.required],\r\n email: ['', [Validators.required]],\r\n phone: ['', [Validators.required, Validators.pattern(this.VALID_PHONE_REGEX), Validators.maxLength(16)]],\r\n }),\r\n contactPersonAddress: this.formBuilder.group({\r\n city: ['', Validators.required],\r\n street: ['', Validators.required],\r\n houseNumber: ['', Validators.required],\r\n houseLetter: ['', Validators.maxLength(1)],\r\n postCode: ['', Validators.required],\r\n countryCode: ['', [Validators.required]],\r\n addition: ['', Validators.maxLength(4)],\r\n bagId: [''],\r\n numberDesignationBagId: ['']\r\n }),\r\n saveInAddressBook: [''],\r\n }),\r\n contactData: this.formBuilder.group({\r\n name: ['', Validators.required],\r\n email: [{ value: '', disabled: true }, [Validators.required]],\r\n phone: ['', [Validators.required, Validators.pattern(this.VALID_PHONE_REGEX), Validators.maxLength(30)]],\r\n address: this.formBuilder.group({\r\n city: ['', Validators.required],\r\n street: ['', Validators.required],\r\n houseNumber: ['', Validators.required],\r\n houseLetter: ['', Validators.maxLength(1)],\r\n postCode: ['', Validators.required],\r\n countryCode: ['', [Validators.required]],\r\n addition: ['', Validators.maxLength(4)],\r\n bagId: [''],\r\n numberDesignationBagId: ['']\r\n }),\r\n saveInAddressBook: [''],\r\n }),\r\n kadasterAccountId: [''],\r\n reference: ['', this.REFERENCE_VALIDATORS],\r\n referenceAddition: [\r\n { value: '', disabled: !this.isReferenceAdditionVisible },\r\n Validators.pattern(/^[a-z0-9-!:\";'?,. ]+$/i)\r\n ],\r\n requesterEmail: [''],\r\n type: [''],\r\n klicRequests: this.formBuilder.array([]),\r\n separator: [''],\r\n searchGroupKey: [''],\r\n id: [null],\r\n canBeEdited: [true],\r\n },\r\n { validators: ReferenceValidator.referenceValidate }\r\n );\r\n\r\n this.form.patchValue(this.klicProjectModel);\r\n this.fillKlicRequestsFromKlicProjectModel();\r\n this.klicProjectModel.type\r\n ? this.setKlicType(KLIC_TYPES.find((klicType) => klicType.value === this.klicProjectModel.type))\r\n : this.selectKlicType();\r\n this.disableFormControls();\r\n }\r\n\r\n private fillKlicRequestsFromKlicProjectModel(): void {\r\n if (this.klicProjectModel.klicRequests.length) {\r\n this.mapKlicProjectModelRequestsToKlicRequestsModel();\r\n this.klicProjectModel.klicRequests.forEach((klicRequest, index) => {\r\n const selectionPolygonId = (index + 1).toString();\r\n if (!this.isKlicDisabled(klicRequest.id)) {\r\n this.klicRequests.push(this.createKlicRequestForm(klicRequest, selectionPolygonId));\r\n } else {\r\n this._disabledKlicRequests.push({\r\n id: klicRequest.id,\r\n reference: this.defaultKlicRequestReference(klicRequest.selectionPolygonId ?? selectionPolygonId),\r\n selectionPolygonId: klicRequest.selectionPolygonId ?? selectionPolygonId,\r\n houseConnectionSketchAddressesCntr: klicRequest.houseConnectionSketchAddresses?.length ?? 0\r\n });\r\n }\r\n\r\n });\r\n this._informationPolygonBuffer = this.klicProjectModel.klicRequests[0]?.informationPolygonBufferInMeters ?? 0;\r\n this.showInformationPolygonBuffer = this.klicRequestsCount <= 1;\r\n this.setReferenceValidators();\r\n }\r\n }\r\n\r\n private createKlicRequestForm(klicRequest: KlicRequest, selectionPolygonId: string) {\r\n return this.formBuilder.group({\r\n isRealKlicRequest: [this.requestContextService.shouldPerformRealKlicRequest],\r\n isRestApiKlicRequest: [this.requestContextService.shouldPerformRestApiKlicRequest],\r\n houseConnectionSketchAddresses: [klicRequest.houseConnectionSketchAddresses ?? [], Validators.maxLength(100)],\r\n informationAboutPerformedWork: this.formBuilder.group({\r\n startDate: [klicRequest.informationAboutPerformedWork?.startDate],\r\n estimatedEndDate: [klicRequest.informationAboutPerformedWork?.estimatedEndDate],\r\n workType: [\r\n klicRequest.informationAboutPerformedWork?.workType ?? [],\r\n [Validators.required, WorkTypesAmountValidator.workTypesAmount]\r\n ],\r\n notes: [klicRequest.informationAboutPerformedWork?.notes],\r\n }),\r\n shouldBeRequestedOn: [klicRequest.shouldBeRequestedOn],\r\n reference: [this.defaultKlicRequestReference(klicRequest.selectionPolygonId ?? selectionPolygonId)],\r\n selectionPolygonId: [klicRequest.selectionPolygonId ?? selectionPolygonId],\r\n selectionPolygonCoordinates: [klicRequest.selectionPolygonCoordinates],\r\n informationPolygonCoordinates: [klicRequest.informationPolygonCoordinates],\r\n informationPolygonBufferInMeters: [klicRequest.informationPolygonBufferInMeters ?? 0],\r\n id: [klicRequest.id],\r\n canBeEdited: [klicRequest.canBeEdited ?? true],\r\n });\r\n }\r\n\r\n private mapKlicProjectModelRequestsToKlicRequestsModel() {\r\n this._klicRequestsModel = this.klicProjectModel.klicRequests.map(\r\n (klicRequest) =>\r\n new KlicRequestModel(\r\n klicRequest.selectionPolygonId,\r\n klicRequest.selectionPolygonCoordinates,\r\n klicRequest.informationPolygonCoordinates,\r\n this._informationPolygonBuffer\r\n )\r\n );\r\n }\r\n\r\n private disableFormControls() {\r\n if (this.mode.formControlsMustBeDisabled()) {\r\n setTimeout(() => {\r\n this.reference.disable();\r\n this.referenceAddition.disable();\r\n this.contactData.disable();\r\n this.informationAboutPerformedWork.disable();\r\n this.clientDetails.disable();\r\n });\r\n }\r\n }\r\n /**\r\n * Calculates the date when the KLIC should be requested\r\n */\r\n private calculateShouldBeRequestedOnDate(): Date {\r\n return this.calculateShouldBeRequestedOnDateForControl(this.informationAboutPerformedWork);\r\n }\r\n\r\n private calculateShouldBeRequestedOnDateForControl(control: AbstractControl): Date {\r\n const today = moment().tz(environment.defaultTimeZone);\r\n const startDate = control.get('startDate');\r\n\r\n const dateAfterSubtraction = moment(\r\n startDate.enabled && startDate.value\r\n ? moment(startDate.value).subtract(\r\n this.requestContextService.numberOfDaysKlicShouldBeRequestedBeforeStartDate,\r\n 'days'\r\n )\r\n : today\r\n );\r\n const shouldBeRequestedOn = dateAfterSubtraction <= today ? today : dateAfterSubtraction;\r\n\r\n return shouldBeRequestedOn.tz(environment.defaultTimeZone).toDate();\r\n }\r\n\r\n private updateKlicRequestsShouldBeRequestedOnDate(): void {\r\n this.klicRequests?.controls.forEach((klicRequest) =>\r\n klicRequest\r\n .get('shouldBeRequestedOn')\r\n .patchValue(this.calculateShouldBeRequestedOnDateForControl(klicRequest.get('informationAboutPerformedWork')))\r\n );\r\n }\r\n\r\n private updateInformationAboutPerformedWorkDates(): void {\r\n this.klicRequests?.controls.forEach((klicRequest) => {\r\n klicRequest.get('shouldBeRequestedOn').patchValue(this.calculateShouldBeRequestedOnDate());\r\n klicRequest\r\n .get('informationAboutPerformedWork.startDate')\r\n .patchValue(this.informationAboutPerformedWork.get('startDate').value);\r\n klicRequest\r\n .get('informationAboutPerformedWork.estimatedEndDate')\r\n .patchValue(this.informationAboutPerformedWork.get('estimatedEndDate').value);\r\n });\r\n }\r\n\r\n private resetGeneralInformationAboutPerformedWork(): void {\r\n this.informationAboutPerformedWork.patchValue({\r\n startDate: null,\r\n estimatedEndDate: null,\r\n workType: [],\r\n notes: null,\r\n });\r\n }\r\n\r\n private prepareAddKlicRequestFormData(): void {\r\n this.resetHouseConnectionSketches();\r\n this.updateKlicRequestsShouldBeRequestedOnDate();\r\n }\r\n\r\n private resetHouseConnectionSketches(): void {\r\n if (this.type.value === 'Calamity') {\r\n this.klicRequests.controls.forEach((klicRequest) =>\r\n this.klicRequestHouseConnectionSketch(klicRequest.get('houseConnectionSketchAddresses'), [])\r\n );\r\n }\r\n }\r\n\r\n private updateKlicRequestsValueAndValidity(): void {\r\n this.klicRequests.controls.forEach((klicRequest) => {\r\n klicRequest.get('informationAboutPerformedWork.workType').markAsTouched();\r\n klicRequest.get('informationAboutPerformedWork.estimatedEndDate').markAsTouched();\r\n klicRequest.get('informationAboutPerformedWork.startDate').markAsTouched();\r\n klicRequest.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private klicRequestFormValidation(): void {\r\n if (!this.mapService.polygonCoordinates.length) {\r\n this.openSnackBar('Please draw polygon', 3000);\r\n }\r\n\r\n if (this.mapService.polygonCoordinates.length && !this.mapService.polygonValid) {\r\n this.openSnackBar('Polygon is not valid. Please draw it again or change the places of vertices.');\r\n }\r\n\r\n if (!this.kadasterAccountId.value) {\r\n this.kadasterAccountNotProvidedError = true;\r\n }\r\n\r\n this.submitTouched = true;\r\n this.updateKlicRequestsValueAndValidity();\r\n this.cd.detectChanges();\r\n this.scrollToInvalidElement();\r\n }\r\n\r\n private setKlicType(klicType: KlicType): void {\r\n if (this.klicType?.key !== klicType.key) {\r\n this.klicType = klicType;\r\n this.type.patchValue(klicType.value);\r\n this.klicTypeChange.emit(klicType);\r\n this.formValidityChangeByKlicType(klicType.value);\r\n }\r\n }\r\n\r\n /**\r\n * Enables/disables some parts of the form depending on KLIC Type\r\n *\r\n * @param klicType Selected KLIC Type\r\n */\r\n private formValidityChangeByKlicType(klicType: string): void {\r\n switch (klicType) {\r\n case 'Dig': {\r\n this.informationAboutPerformedWork.enable();\r\n\r\n this.klicRequests.controls.forEach((control) => {\r\n control.get('informationAboutPerformedWork').enable();\r\n control.get('houseConnectionSketchAddresses').enable();\r\n if (this.mode.name !== Mode.Add) {\r\n this.setKlicRequestsEditable(control);\r\n }\r\n });\r\n\r\n this.clientDetails.enable();\r\n break;\r\n }\r\n case 'Orientation': {\r\n this.informationAboutPerformedWork.enable();\r\n this.informationAboutPerformedWork.get('startDate').disable();\r\n this.informationAboutPerformedWork.get('estimatedEndDate').disable();\r\n\r\n this.klicRequests.controls.forEach((control) => {\r\n control.get('informationAboutPerformedWork').enable();\r\n control.get('informationAboutPerformedWork.startDate').disable();\r\n control.get('informationAboutPerformedWork.estimatedEndDate').disable();\r\n control.get('houseConnectionSketchAddresses').enable();\r\n if (this.mode.name !== Mode.Add) {\r\n this.setKlicRequestsEditable(control);\r\n }\r\n });\r\n\r\n this.clientDetails.disable();\r\n this.informationPolygonBuffer = 0;\r\n break;\r\n }\r\n case 'Calamity': {\r\n this.informationAboutPerformedWork.disable();\r\n\r\n this.klicRequests.controls.forEach((control) => {\r\n control.get('informationAboutPerformedWork').disable();\r\n control.get('houseConnectionSketchAddresses').disable();\r\n if (this.mode.name !== Mode.Add) {\r\n this.setKlicRequestsEditable(control);\r\n }\r\n });\r\n\r\n this.clientDetails.disable();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Scrolls to first invalid element\r\n */\r\n private scrollToInvalidElement(): void {\r\n const invalidFormElements = [...this.hostElement.nativeElement.querySelectorAll('.ng-invalid')].filter(\r\n (element) => element.tagName !== 'FORM'\r\n );\r\n\r\n if (invalidFormElements.length) {\r\n invalidFormElements[0].scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n }\r\n\r\n /**\r\n * Inits the KLIC Requests Form Array\r\n */\r\n private initKlicRequestsForm(): void {\r\n if (this._klicRequestsModel.length) {\r\n this.fillKlicRequestsFormArray();\r\n this.formValidityChangeByKlicType(this.klicType.value);\r\n } else {\r\n this.klicRequests.clear();\r\n }\r\n }\r\n\r\n private updateKlicRequestsForm(): void {\r\n this._klicRequestsModel.forEach((klicRequest) => {\r\n const control = this.klicRequests.controls.find(\r\n c => c.get('selectionPolygonId').value === klicRequest.selectionPolygonId\r\n );\r\n if (!control) {\r\n return;\r\n }\r\n\r\n control.patchValue({\r\n selectionPolygonCoordinates: klicRequest.selectionPolygonCoordinates,\r\n informationPolygonCoordinates: klicRequest.informationPolygonCoordinates,\r\n informationPolygonBufferInMeters: klicRequest.informationPolygonBufferInMeters,\r\n });\r\n });\r\n }\r\n\r\n private setKlicRequestsEditable(klicRequest: AbstractControl): void {\r\n if (!klicRequest.get('canBeEdited').value) {\r\n klicRequest.get('informationAboutPerformedWork').disable();\r\n }\r\n }\r\n\r\n private fillKlicRequestsFormArray(): void {\r\n this.klicRequests.clear();\r\n\r\n this._klicRequestsModel.forEach((klicRequestModel, index) => {\r\n const klicRequest = this.klicProjectService.findKlicRequestBySelectionPolygon(\r\n klicRequestModel.selectionPolygonId\r\n );\r\n\r\n const klicRequestForForm: KlicRequest = {\r\n isRealKlicRequest: this.requestContextService.shouldPerformRealKlicRequest,\r\n isRestApiKlicRequest: this.requestContextService.shouldPerformRestApiKlicRequest,\r\n houseConnectionSketchAddresses: [],\r\n informationAboutPerformedWork: {\r\n startDate: klicRequest?.informationAboutPerformedWork?.startDate,\r\n estimatedEndDate: klicRequest?.informationAboutPerformedWork?.estimatedEndDate,\r\n workType: klicRequest?.informationAboutPerformedWork?.workType ?? [],\r\n notes: klicRequest?.informationAboutPerformedWork?.notes\r\n },\r\n shouldBeRequestedOn: this.calculateShouldBeRequestedOnDate(),\r\n reference: this.defaultKlicRequestReference(klicRequestModel.selectionPolygonId),\r\n selectionPolygonId: klicRequestModel.selectionPolygonId,\r\n selectionPolygonCoordinates: klicRequestModel.selectionPolygonCoordinates,\r\n informationPolygonCoordinates: klicRequestModel.informationPolygonCoordinates,\r\n informationPolygonBufferInMeters: this.informationPolygonBuffer,\r\n id: this.klicProjectModel.klicRequests[index]?.id,\r\n canBeEdited: klicRequest?.canBeEdited ?? true\r\n };\r\n this.klicRequests.push(this.createKlicRequestForm(klicRequestForForm, klicRequestModel.selectionPolygonId));\r\n });\r\n\r\n this.setReferenceValidators();\r\n this.cd.detectChanges();\r\n this.expandOpenedSingleKlicRequest();\r\n }\r\n\r\n private updateKlicRequestInformationPolygon(): void {\r\n this.klicRequests?.controls[0]\r\n ?.get('informationPolygonCoordinates')\r\n .patchValue(this.informationPolygonFlatCoordinates.map((coordinate) => Math.round(coordinate)).join(' '));\r\n this.klicRequests?.controls[0]?.get('informationPolygonBufferInMeters').patchValue(this.informationPolygonBuffer);\r\n }\r\n\r\n private expandOpenedSingleKlicRequest(): void {\r\n let selectedIndex = this.klicRequests.controls[0]?.get('selectionPolygonId').value;\r\n\r\n if (this.klicRequestsCount > 1) {\r\n selectedIndex = this.klicProjectService.klicRequest?.selectionPolygonId;\r\n }\r\n\r\n this.accordion?._headers?.toArray()[selectedIndex - 1]?.panel.toggle();\r\n }\r\n\r\n /**\r\n * Automatically fills KLIC Requests reference fields with values\r\n */\r\n private klicRequestsReferencesAutocomplete(): void {\r\n this.onReferenceValueChanges();\r\n this.onReferenceAdditionValueChanges();\r\n }\r\n\r\n private onReferenceValueChanges(): void {\r\n this.reference.valueChanges.subscribe((value) => {\r\n if (this.klicRequestsCount === 1) {\r\n const param = this.referenceAddition.value\r\n ? value + this.referenceSeparator?.value + this.getReferenceAdditionValue\r\n : value;\r\n\r\n this.setKlicRequestsReferences(param);\r\n } else {\r\n this.setKlicRequestsReferences(value + this.referenceSeparator?.value, true);\r\n }\r\n });\r\n }\r\n\r\n private onReferenceAdditionValueChanges(): void {\r\n if (!this.isReferenceAdditionVisible) {\r\n return;\r\n }\r\n\r\n this.referenceAddition.valueChanges.subscribe((value) => {\r\n value\r\n ? this.setKlicRequestsReferences(this.reference.value + this.referenceSeparator.value + value)\r\n : this.klicRequestsCount === 1\r\n ? this.setKlicRequestsReferences(this.reference.value)\r\n : this.setKlicRequestsReferences(this.reference.value + this.referenceSeparator.value, true);\r\n });\r\n }\r\n\r\n private setKlicRequestsReferences(reference: string, iterable: boolean = false): void {\r\n this.klicRequests.controls.forEach((control) => {\r\n control.get('reference').patchValue(iterable ? reference + control.get('selectionPolygonId').value : reference);\r\n });\r\n }\r\n\r\n private defaultKlicRequestReference(klicPolygonId: string): string {\r\n if (this._klicRequestsModel?.length === 1) {\r\n return this.referenceAddition.value\r\n ? this.reference?.value + this.referenceSeparator?.value + this.getReferenceAdditionValue\r\n : this.reference.value;\r\n } else {\r\n return this.reference?.value + this.referenceSeparator?.value + klicPolygonId;\r\n }\r\n }\r\n\r\n private setReferenceValidators(): void {\r\n this.klicRequestsCount > 1\r\n ? this.reference.setValidators([...this.REFERENCE_VALIDATORS, Validators.maxLength(26)])\r\n : this.reference.setValidators(this.REFERENCE_VALIDATORS);\r\n this.reference.updateValueAndValidity();\r\n }\r\n\r\n private klicCanBeRequested(): boolean {\r\n return (\r\n this.form.valid &&\r\n this.mapService.polygonCoordinates.length &&\r\n this.mapService.polygonValid &&\r\n !(this.workTypeNotProvidedError && this.type.value !== 'Calamity') &&\r\n !!this.kadasterAccountId.value\r\n );\r\n }\r\n\r\n private selectKlicType(): void {\r\n const rememberedKlicType: KlicType = JSON.parse(localStorage.getItem('rememberedKlicType'));\r\n rememberedKlicType ? this.setKlicType(rememberedKlicType) : this.openKlicTypeDialog(true);\r\n }\r\n\r\n private addKlicRequest(): void {\r\n this.prepareAddKlicRequestFormData();\r\n\r\n if (this.addWithKlicProject) {\r\n this.klicDataService.klicProjectExists(this.reference.value).subscribe((klicProjectExists) => {\r\n if (klicProjectExists) {\r\n this.openSnackBar(\r\n 'KLIC Request cannot be made and KLIC Project created because KLIC Reference is already in use'\r\n );\r\n this.submitDisabled = false;\r\n this.addWithKlicProject = false;\r\n } else {\r\n this.addKlic();\r\n }\r\n });\r\n } else {\r\n this.addKlic();\r\n }\r\n }\r\n\r\n private addKlic(): void {\r\n const klicProject = this.form.value as KlicProject;\r\n klicProject.contactData.email = this.contactData.get('email').value;\r\n\r\n // TODO: Remove when SOAP NKRP will be turned off.\r\n // This is added for backward compability and testing purpose.\r\n // For some time there will be two NKRP: SOAP and RestAPI.\r\n // Clients will be migrated partially, after all will be migrated\r\n // SOAP NKRP will be turned off and this can be removed.\r\n klicProject.klicRequests.forEach((klicRequest) => {\r\n if (klicRequest.informationAboutPerformedWork) {\r\n klicRequest.informationAboutPerformedWork.workTypes = [];\r\n\r\n if (klicRequest.isRestApiKlicRequest) {\r\n klicRequest.informationAboutPerformedWork.workTypes = klicRequest.informationAboutPerformedWork.workType;\r\n klicRequest.informationAboutPerformedWork.workType = [];\r\n }\r\n }\r\n });\r\n\r\n forkJoin(this.prepareRequestObservables(this.klicProjectsService.postKlicRequest(klicProject))).subscribe(\r\n (response) => {\r\n this.openRequestSuccessSnackBar(\r\n this.klicRequestsCount === 1 ? 'KLIC Request has been added' : 'KLIC Requests have been added',\r\n response,\r\n this.klicRequestsCount,\r\n environment.production ? null : response[0].id\r\n )\r\n .onAction()\r\n .subscribe(() => {\r\n this.addWithKlicProject ? this.navigateToAddKlicProjectView() : this.navigateBack();\r\n });\r\n },\r\n (error: HttpErrorResponse) => this.catchRequestError(error)\r\n );\r\n }\r\n\r\n private updateKlicRequest(): void {\r\n this.mode.name === Mode.KlicRequest ? this.updateSingleKlicRequest() : this.updateKlicProject();\r\n }\r\n\r\n private updateKlicProject(): void {\r\n this.updateKlicRequestsShouldBeRequestedOnDate();\r\n\r\n const klicProject = this.form.value as KlicProject;\r\n klicProject.contactData.email = this.contactData.get('email').value;\r\n\r\n // TODO: Remove when SOAP NKRP will be turned off.\r\n // This is added for backward compability and testing purpose.\r\n // For some time there will be two NKRP: SOAP and RestAPI.\r\n // Clients will be migrated partially, after all will be migrated\r\n // SOAP NKRP will be turned off and this can be removed.\r\n klicProject.klicRequests.forEach((klicRequest) => {\r\n if (klicRequest.informationAboutPerformedWork) {\r\n klicRequest.informationAboutPerformedWork.workTypes = [];\r\n\r\n if (klicRequest.isRestApiKlicRequest) {\r\n klicRequest.informationAboutPerformedWork.workTypes = klicRequest.informationAboutPerformedWork.workType;\r\n klicRequest.informationAboutPerformedWork.workType = [];\r\n }\r\n }\r\n });\r\n\r\n forkJoin(\r\n this.prepareRequestObservables(\r\n this.klicProjectsService.updateKlicProject(this.route.snapshot.queryParams.klicProjectId, klicProject)\r\n )\r\n ).subscribe(\r\n (response) => {\r\n this.openRequestSuccessSnackBar(\r\n this.klicRequestsCount === 1 ? 'KLIC Request has been updated' : 'KLIC Requests have been updated',\r\n response,\r\n this.klicRequestsCount\r\n )\r\n .onAction()\r\n .subscribe(() => {\r\n this.navigateBack();\r\n });\r\n },\r\n (error: HttpErrorResponse) => this.catchRequestError(error)\r\n );\r\n }\r\n\r\n private updateSingleKlicRequest(): void {\r\n const updatedKlicRequestControl =\r\n this.klicRequests.controls.find(\r\n control => control.get('selectionPolygonId').value === this.klicProjectService.klicRequest.selectionPolygonId\r\n );\r\n if (!updatedKlicRequestControl) {\r\n return;\r\n }\r\n\r\n const informationAboutPerformedWork = updatedKlicRequestControl.get('informationAboutPerformedWork');\r\n updatedKlicRequestControl\r\n .get('shouldBeRequestedOn')\r\n .patchValue(this.calculateShouldBeRequestedOnDateForControl(informationAboutPerformedWork));\r\n\r\n // TODO: Remove when SOAP NKRP will be turned off.\r\n // This is added for backward compability and testing purpose.\r\n // For some time there will be two NKRP: SOAP and RestAPI.\r\n // Clients will be migrated partially, after all will be migrated\r\n // SOAP NKRP will be turned off and this can be removed.\r\n const klicRequest = updatedKlicRequestControl.value;\r\n if (klicRequest.informationAboutPerformedWork) {\r\n klicRequest.informationAboutPerformedWork.workTypes = [];\r\n if (klicRequest.isRestApiKlicRequest) {\r\n klicRequest.informationAboutPerformedWork.workTypes = klicRequest.informationAboutPerformedWork.workType;\r\n klicRequest.informationAboutPerformedWork.workType = [];\r\n }\r\n }\r\n\r\n forkJoin(\r\n this.prepareRequestObservables(\r\n this.klicProjectsService.updateKlicRequest(\r\n this.route.snapshot.queryParams.klicProjectId,\r\n this.klicProjectService.klicRequest.id,\r\n updatedKlicRequestControl.value\r\n )\r\n )\r\n ).subscribe(\r\n (response) => {\r\n this.openRequestSuccessSnackBar('KLIC Request has been updated', response)\r\n .onAction()\r\n .subscribe(() => {\r\n this.navigateBack();\r\n });\r\n },\r\n (error: HttpErrorResponse) => this.catchRequestError(error)\r\n );\r\n }\r\n\r\n private clientDetailsAddressBookHandle(): Observable {\r\n if (this.saveClientDetailsInAddressBook.value) {\r\n return this.addressBookService.upsertClientDetailsAddressEntry(\r\n this.clientDetails.value as ClientDetails,\r\n this.kadasterAccountId.value,\r\n this.requestContextService.searchGroupKey\r\n ).pipe(map(() => ({\r\n saved: true,\r\n type: AddressType.ClientPerson\r\n })));\r\n }\r\n }\r\n\r\n private contactDataAddressBookHandle(): Observable {\r\n if (this.saveContactDataInAddressBook.value) {\r\n return this.addressBookService.upsertContactDataAddressEntry(\r\n this.contactData.getRawValue() as ContactData,\r\n this.kadasterAccountId.value,\r\n this.requestContextService.searchGroupKey\r\n ).pipe(map(() => ({\r\n saved: true,\r\n type: AddressType.ContactData\r\n })));;\r\n }\r\n }\r\n\r\n private prepareRequestObservables(requestObservable: Observable): Array> {\r\n const clientDetailsAddressBookObservable = this.clientDetailsAddressBookHandle();\r\n const contactDataAddressBookObservable = this.contactDataAddressBookHandle();\r\n const observablesArray = [requestObservable];\r\n\r\n if (clientDetailsAddressBookObservable) {\r\n observablesArray.push(clientDetailsAddressBookObservable);\r\n }\r\n\r\n if (contactDataAddressBookObservable) {\r\n observablesArray.push(contactDataAddressBookObservable);\r\n }\r\n\r\n return observablesArray;\r\n }\r\n\r\n private logErrorAndNotify(data: BagData[]) {\r\n const errorEntry = data.find((d) => !d.bagId);\r\n\r\n if (!errorEntry) {\r\n return;\r\n }\r\n\r\n const messages = this.getErrorMessages(errorEntry.addressType);\r\n\r\n this.openSnackBar(messages.snackBarMessage);\r\n this.telemetryService.logger.logEvent(messages.logMessage, {\r\n addressData: messages.logData,\r\n });\r\n }\r\n\r\n private getErrorMessages(addressType: AddressType) {\r\n return addressType === AddressType.ContactData ?\r\n {\r\n snackBarMessage: 'Contact Data Address not found',\r\n logMessage: 'ContactDataAddressNotFound',\r\n logData: this.contactData.value\r\n } :\r\n {\r\n snackBarMessage: 'Contact Person Address not found',\r\n logMessage: 'ClientDetailsAddressNotFound',\r\n logData: this.contactData.value\r\n };\r\n }\r\n\r\n private patchControlsWithBagData(data: BagData[]) {\r\n const contactDataBagData = data.find((d) => d.addressType === AddressType.ContactData);\r\n if (!!contactDataBagData) {\r\n this.contactDataAddress.patchValue({\r\n ...this.contactDataAddress.value,\r\n bagId: contactDataBagData.bagId,\r\n numberDesignationBagId: contactDataBagData.numberDesignationBagId\r\n }, { emitEvent: false });\r\n }\r\n\r\n const clientPersonBagData = data.find((d) => d.addressType === AddressType.ClientPerson);\r\n if (!!clientPersonBagData) {\r\n this.contactPersonAddress.patchValue({\r\n ...this.contactPersonAddress.value,\r\n bagId: clientPersonBagData.bagId,\r\n numberDesignationBagId: clientPersonBagData.numberDesignationBagId\r\n }, { emitEvent: false });\r\n }\r\n }\r\n\r\n private getAddressesBagIds(): Observable> {\r\n const validations = [];\r\n\r\n if(this.isCountryCodeNLD(this.contactDataAddress)) {\r\n validations.push(this.getContactDataAddressBagId());\r\n }\r\n\r\n if (this.type.value === KlicProjectType.Dig && this.isCountryCodeNLD(this.contactPersonAddress)) {\r\n validations.push(this.getClientPersonAddressBagId());\r\n }\r\n\r\n return validations.length ? forkJoin(validations) : of([]);\r\n }\r\n\r\n private getClientPersonAddressBagId(): Observable {\r\n return this.getAddressBagId(this.contactPersonAddress, AddressType.ClientPerson);\r\n }\r\n\r\n private getContactDataAddressBagId(): Observable {\r\n return this.getAddressBagId(this.contactDataAddress, AddressType.ContactData);\r\n }\r\n\r\n private getAddressBagId(\r\n adressControl: AbstractControl,\r\n addressType: AddressType\r\n ): Observable {\r\n return this.bagService\r\n .getAddressByCityStreetHouseNumber(\r\n adressControl.get('city').value,\r\n adressControl.get('street').value,\r\n adressControl.get('houseNumber').value,\r\n adressControl.get('houseLetter').value ? adressControl.get('houseLetter').value : '',\r\n adressControl.get('addition').value ? adressControl.get('addition').value : ''\r\n )\r\n .pipe(\r\n map(\r\n (address) => ({\r\n addressType,\r\n numberDesignationBagId: address.numberDesignationBagId,\r\n bagId:\r\n address.postCode.toLowerCase() === adressControl.get('postCode').value.toLowerCase() ?\r\n address.bagId :\r\n undefined\r\n })\r\n ),\r\n catchError(() => of({\r\n addressType,\r\n bagId: undefined\r\n }))\r\n );\r\n }\r\n\r\n private isCountryCodeNLD(control: AbstractControl): boolean {\r\n return control.get('countryCode').value === 'NLD';\r\n }\r\n\r\n private openSnackBar(message: string, duration?: number): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK', { duration });\r\n }\r\n\r\n private openRequestSuccessSnackBar(\r\n message: string,\r\n response: Array,\r\n klicRequestsNumber?: number,\r\n projectId?: string\r\n ): MatSnackBarRef {\r\n const addressBookSavedMsg = this.getAddressBookSavedMsg(response);\r\n\r\n return this.snackBar.open(\r\n `${klicRequestsNumber && klicRequestsNumber !== 1 ? klicRequestsNumber : ''} ${this.translateService.instant(\r\n message\r\n )} ${addressBookSavedMsg} ${projectId ? `Project ID: ${projectId}`\r\n : ''\r\n }`,\r\n 'OK'\r\n );\r\n }\r\n\r\n /**\r\n * Opens snackbar with the http error\r\n *\r\n * @param error Error from the request\r\n * @private\r\n */\r\n private catchRequestError(error: HttpErrorResponse): MatSnackBarRef {\r\n this.submitDisabled = false;\r\n return this.snackBar.open(\r\n `${this.translateService.instant('Something went wrong. Contact support:')} ${error.error.traceId}`,\r\n 'OK'\r\n );\r\n }\r\n\r\n /**\r\n * Navigates to Add Klic Project view\r\n *\r\n * @private\r\n */\r\n private navigateToAddKlicProjectView(): void {\r\n const returnUrl = this.route.snapshot.queryParams.returnUrl\r\n ? this.route.snapshot.queryParams.returnUrl\r\n : `${this.route.snapshot.queryParams.platformUrl}/Backoffice/LargeAreaKlicRequest/B2BKlicRequest`;\r\n // eslint-disable-next-line max-len\r\n window.parent.location.href = `${this.route.snapshot.queryParams.platformUrl}/Backoffice/KlicWorkflow/Add?reference=${this.reference.value}&returnUrl=${returnUrl}`;\r\n }\r\n\r\n /**\r\n * Navigates to the returnUrl given in the query parameters\r\n *\r\n * @private\r\n */\r\n private navigateToReturnUrl(): void {\r\n window.parent.location.href = this.route.snapshot.queryParams.returnUrl;\r\n }\r\n\r\n /**\r\n * Navigates to KLIC Projects list view\r\n *\r\n * @private\r\n */\r\n private navigateToKlicProjectsList(): void {\r\n this.router.navigate(['klic-projects'], {\r\n queryParams: {\r\n token: this.authService.token,\r\n regionKey: this.requestContextService.searchGroupKey,\r\n platformToken: this.authService.platformToken,\r\n platformUrl: this.route.snapshot.queryParams.platformUrl,\r\n instrumentationKey: this.route.snapshot.queryParams.instrumentationKey,\r\n },\r\n });\r\n }\r\n\r\n private getAddressBookSavedMsg(response: Array) {\r\n const addressBookSavedTypes = response.filter(r => r?.saved)\r\n .map((r) => this.translateService.instant(this.addressBookNamesByType.get(r.type))).join(', ');\r\n let addressBookSavedMsg = '';\r\n\r\n if (addressBookSavedTypes) {\r\n addressBookSavedMsg =\r\n this.translateService.instant('Addresses saved in the Address Book', { addresses: addressBookSavedTypes });\r\n }\r\n return addressBookSavedMsg;\r\n }\r\n}\r\n","
\r\n {{ 'KLIC Type' | translate }} *\r\n \r\n {{ (type.value ? type.value : 'Select KLIC Type') | translate }}\r\n \r\n \r\n \r\n Reference\r\n \r\n \r\n {{ 'Reference' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Reference should contain only letters, digits and :;\"'-!,.? symbols\r\n \r\n \r\n The Reference must be up to 26 characters long\r\n \r\n \r\n The Reference together with the Reference Addition and the separator must be up to 30 characters long\r\n \r\n \r\n \r\n Reference addition\r\n \r\n \r\n Reference addition should contain only letters, digits and :;\"'-!,.? symbols\r\n \r\n \r\n \r\n Information Polygon buffer\r\n \r\n {{\r\n size.label + ' m'\r\n }}\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n

Work Description

\r\n
\r\n
\r\n {{\r\n 'Settings in this section will be applied to all underlying KLIC Requests, you can change them for any Polygon\r\n below.'\r\n | translate\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ 'Polygon No.' | translate }} {{ klicRequest.selectionPolygonId }}\r\n \r\n \r\n {{ reference.value ? klicRequest.reference : '' }}\r\n \r\n home\r\n {{ klicRequest.houseConnectionSketchAddressesCntr }}\r\n \r\n \r\n \r\n \r\n {{ 'Polygon No.' | translate }} {{ klicRequest.selectionPolygonId }}\r\n \r\n \r\n {{ reference.value ? klicRequest.reference : '' }}\r\n \r\n home\r\n {{ klicRequest.houseConnectionSketchAddressesCntr }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {{ 'Add and create KLIC Project' | translate }}\r\n \r\n \r\n {{ mode.submitButtonText() | translate }}\r\n \r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, FormGroupDirective } from '@angular/forms';\r\nimport { WorkType } from '@app/klic-request-page/interfaces/klic-request.interface';\r\n\r\n@Component({\r\n selector: 'app-klic-request-item',\r\n templateUrl: './klic-request-item.component.html',\r\n styleUrls: ['./klic-request-item.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }],\r\n})\r\nexport class KlicRequestItemComponent implements OnInit {\r\n @Input() klicType: string;\r\n @Input() informationAboutPerformedWork: AbstractControl;\r\n @Input() workTypeNotProvidedError = false;\r\n @Input() workTypes: Array;\r\n @Output() workTypeNotProvidedErrorChange: EventEmitter = new EventEmitter();\r\n @Output() workTypesChange: EventEmitter> = new EventEmitter>();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { KLIC_TYPES, KlicType } from '@app/klic-request-page/interfaces/klic-request.interface';\r\n\r\n@Component({\r\n selector: 'app-klic-type-dialog',\r\n templateUrl: './klic-type-dialog.component.html',\r\n styleUrls: ['./klic-type-dialog.component.scss'],\r\n})\r\nexport class KlicTypeDialogComponent implements OnInit {\r\n klicTypes = KLIC_TYPES;\r\n rememberKlicType = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: KlicType,\r\n public dialogRef: MatDialogRef\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n onKlicTypeClick(klicType: KlicType) {\r\n if (this.rememberKlicType) {\r\n localStorage.setItem('rememberedKlicType', JSON.stringify(klicType));\r\n }\r\n this.dialogRef.close(klicType);\r\n }\r\n\r\n public closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

\r\n Select KLIC Type\r\n close\r\n

\r\n\r\n \r\n \r\n
\r\n {{ klicType.value | translate }}\r\n {{ klicType.maxSideSize }}m x {{ klicType.maxSideSize }}m\r\n
\r\n {{ klicType.description | translate }}\r\n \r\n \r\n {{\r\n 'Remember my choice' | translate\r\n }}\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BaseLayers } from '@app/klic-request-page/enums/base-layers.enum';\r\nimport { AdditionalLayer } from '@app/klic-request-page/interfaces/additional-layer.interface';\r\n\r\n@Component({\r\n selector: 'app-layers',\r\n templateUrl: './layers.component.html',\r\n styleUrls: ['./layers.component.scss']\r\n})\r\nexport class LayersComponent {\r\n\r\n @Input() layers: Array;\r\n @Output() additionalLayerToggled: EventEmitter = new EventEmitter();\r\n @Output() baseLayerChanged: EventEmitter = new EventEmitter();\r\n @Output() closeIconClicked: EventEmitter = new EventEmitter();\r\n\r\n public readonly baseLayers = Object.values(BaseLayers);\r\n public baseLayer: BaseLayers;\r\n\r\n constructor() { }\r\n\r\n @Input() set currentBaseLayer(layer: BaseLayers) {\r\n this.baseLayer = layer;\r\n }\r\n\r\n public onAdditionalLayerToggled(name: string) {\r\n this.additionalLayerToggled.emit(name);\r\n }\r\n\r\n public onBaseLayerChanged() {\r\n this.baseLayerChanged.emit(this.baseLayer);\r\n }\r\n}\r\n","
\r\n close\r\n
\r\n \r\n \r\n {{ layer | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n {{ layer.displayName | translate }}\r\n \r\n
\r\n
","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { debounceTime, map, tap } from 'rxjs/operators';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-map-location-search-by-city-street',\r\n templateUrl: './map-location-search-by-city-street.component.html',\r\n styleUrls: ['./map-location-search-by-city-street.component.scss'],\r\n})\r\nexport class MapLocationSearchByCityStreetComponent implements OnInit {\r\n @Output() addressLocationFound = new EventEmitter();\r\n addressLocationForm: UntypedFormGroup;\r\n filteredCities: Observable>;\r\n filteredStreets: Observable>;\r\n filteredHouseNumbers: Observable>;\r\n filteredHouseLetters: Observable>;\r\n filteredAdditions: Observable>;\r\n\r\n constructor(\r\n private bagService: BagService,\r\n private formBuilder: UntypedFormBuilder,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n get city() {\r\n return this.addressLocationForm.get('city');\r\n }\r\n\r\n get street() {\r\n return this.addressLocationForm.get('street');\r\n }\r\n\r\n get houseNumber() {\r\n return this.addressLocationForm.get('houseNumber');\r\n }\r\n\r\n get houseLetter() {\r\n return this.addressLocationForm.get('houseLetter');\r\n }\r\n\r\n get addition() {\r\n return this.addressLocationForm.get('addition');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addressLocationFormInit();\r\n this.addressLocationAutocomplete();\r\n }\r\n\r\n public onAddressLocationSubmit(): void {\r\n if (this.addressLocationForm.valid) {\r\n this.searchLocationByCityStreet();\r\n }\r\n }\r\n\r\n private searchLocationByCityStreet(): void {\r\n this.bagService\r\n .getLocationByCityStreet(\r\n this.city.value,\r\n this.street.value,\r\n this.houseNumber.value ? this.houseNumber.value : '',\r\n this.houseLetter.value,\r\n this.addition.value\r\n )\r\n .pipe(tap((location) => (location.exact = !!(this.city.value && this.street.value && this.houseNumber.value))))\r\n .subscribe(\r\n (location) => {\r\n this.addressLocationFound.emit(location);\r\n },\r\n () => this.catchAddressNotFoundError()\r\n );\r\n }\r\n\r\n private addressLocationAutocomplete(): void {\r\n this.cityAutocomplete();\r\n this.streetAutocomplete();\r\n this.houseNumberAutocomplete();\r\n this.houseLetterAutocomplete();\r\n this.additionAutocomplete();\r\n }\r\n\r\n private cityAutocomplete(): void {\r\n this.city.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((city) => (city ? this.bagService.getCities(city) : null))\r\n )\r\n .subscribe((cities) => {\r\n this.filteredCities = cities;\r\n });\r\n }\r\n\r\n private streetAutocomplete(): void {\r\n this.street.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((street) => (this.city.value && street ? this.bagService.getStreets(this.city.value, street) : null))\r\n )\r\n .subscribe((streets) => {\r\n this.filteredStreets = streets;\r\n });\r\n }\r\n\r\n private houseNumberAutocomplete(): void {\r\n this.houseNumber.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseNumber) =>\r\n this.city.value && this.street.value && houseNumber\r\n ? this.bagService.getHouseNumbers(this.city.value, this.street.value, houseNumber)\r\n : null\r\n )\r\n )\r\n .subscribe((houseNumbers) => {\r\n this.filteredHouseNumbers = houseNumbers;\r\n });\r\n }\r\n\r\n private houseLetterAutocomplete(): void {\r\n this.houseLetter.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((houseLetter) =>\r\n this.city.value && this.street.value && this.houseNumber.value && houseLetter\r\n ? this.bagService.getHouseLetters(this.city.value, this.street.value, this.houseNumber.value, houseLetter)\r\n : null\r\n )\r\n )\r\n .subscribe((houseLetters) => {\r\n this.filteredHouseLetters = houseLetters;\r\n });\r\n }\r\n\r\n private additionAutocomplete(): void {\r\n this.addition.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n map((addition) =>\r\n this.city.value && this.street.value && this.houseNumber.value && addition\r\n ? this.bagService.getAddressAdditions(this.city.value, this.street.value, this.houseNumber.value, addition)\r\n : null\r\n )\r\n )\r\n .subscribe((additions) => {\r\n this.filteredAdditions = additions;\r\n });\r\n }\r\n\r\n private catchAddressNotFoundError() {\r\n this.openSnackBar('Address not found');\r\n }\r\n\r\n private openSnackBar(message: string): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK', { duration: 3000 });\r\n }\r\n\r\n private addressLocationFormInit(): void {\r\n this.addressLocationForm = this.formBuilder.group({\r\n city: ['', Validators.required],\r\n street: ['', Validators.required],\r\n houseNumber: [''],\r\n houseLetter: [''],\r\n addition: [''],\r\n });\r\n }\r\n}\r\n","
\r\n \r\n City\r\n \r\n {{ 'City' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n {{ city }}\r\n \r\n \r\n \r\n \r\n Street\r\n \r\n {{ 'Street' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n {{ street }}\r\n \r\n \r\n \r\n \r\n House number\r\n \r\n \r\n \r\n {{ houseNumber }}\r\n \r\n \r\n \r\n \r\n House letter\r\n \r\n \r\n \r\n {{ houseLetter }}\r\n \r\n \r\n \r\n \r\n Addition\r\n \r\n \r\n \r\n {{ addition }}\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\n\r\n@Component({\r\n selector: 'app-map-location-search-by-coordinates',\r\n templateUrl: './map-location-search-by-coordinates.component.html',\r\n styleUrls: ['./map-location-search-by-coordinates.component.scss'],\r\n})\r\nexport class MapLocationSearchByCoordinatesComponent implements OnInit {\r\n @Output() coordinatesLocationFound = new EventEmitter();\r\n coordinatesLocationForm: UntypedFormGroup;\r\n\r\n constructor(private formBuilder: UntypedFormBuilder) {}\r\n\r\n get longitude() {\r\n return this.coordinatesLocationForm.get('longitude');\r\n }\r\n\r\n get latitude() {\r\n return this.coordinatesLocationForm.get('latitude');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.coordinatesLocationFormInit();\r\n }\r\n\r\n public onCoordinatesLocationSubmit(): void {\r\n if (this.coordinatesLocationForm.valid) {\r\n this.coordinatesLocationFound.emit(this.coordinatesLocationForm.value);\r\n }\r\n }\r\n\r\n private coordinatesLocationFormInit(): void {\r\n this.coordinatesLocationForm = this.formBuilder.group({\r\n longitude: ['', Validators.required],\r\n latitude: ['', Validators.required],\r\n exact: [true],\r\n });\r\n }\r\n}\r\n","
\r\n \r\n Longitude\r\n \r\n {{ 'Longitude' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n Latitude\r\n \r\n {{ 'Latitude' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-map-location-search-by-post-code',\r\n templateUrl: './map-location-search-by-post-code.component.html',\r\n styleUrls: ['./map-location-search-by-post-code.component.scss'],\r\n})\r\nexport class MapLocationSearchByPostCodeComponent implements OnInit {\r\n @Output() postCodeLocationFound = new EventEmitter();\r\n postCodeLocationForm: UntypedFormGroup;\r\n\r\n constructor(\r\n private bagService: BagService,\r\n private formBuilder: UntypedFormBuilder,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n get postCode() {\r\n return this.postCodeLocationForm.get('postCode');\r\n }\r\n\r\n get houseNumber() {\r\n return this.postCodeLocationForm.get('houseNumber');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.postCodeLocationFormInit();\r\n }\r\n\r\n public onPostCodeLocationSubmit(): void {\r\n if (this.postCodeLocationForm.valid) {\r\n this.searchLocationByPostCode();\r\n }\r\n }\r\n\r\n private searchLocationByPostCode(): void {\r\n this.bagService\r\n .getLocationByPostCode(this.postCode.value, this.houseNumber.value ? this.houseNumber.value : '')\r\n .pipe(tap((location) => (location.exact = !!(this.postCode.value && this.houseNumber.value))))\r\n .subscribe(\r\n (location) => {\r\n this.postCodeLocationFound.emit(location);\r\n },\r\n () => this.catchAddressNotFoundError()\r\n );\r\n }\r\n\r\n private catchAddressNotFoundError(): void {\r\n this.openSnackBar('Address not found');\r\n }\r\n\r\n private openSnackBar(message: string): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK', { duration: 3000 });\r\n }\r\n\r\n private postCodeLocationFormInit(): void {\r\n this.postCodeLocationForm = this.formBuilder.group({\r\n postCode: ['', Validators.required],\r\n houseNumber: [''],\r\n });\r\n }\r\n}\r\n","
\r\n \r\n Postcode\r\n \r\n {{ 'Postcode' | translate }} {{ 'is required' | translate }}\r\n \r\n \r\n House number\r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\n\r\n@Component({\r\n selector: 'app-map-location-search',\r\n templateUrl: './map-location-search.component.html',\r\n styleUrls: ['./map-location-search.component.scss'],\r\n})\r\nexport class MapLocationSearchComponent implements OnInit {\r\n @Input() showRemoveAllTheMarkersButton = false;\r\n @Output() locationFound: EventEmitter = new EventEmitter();\r\n @Output() removeAllTheMarkers: EventEmitter = new EventEmitter();\r\n searchOpened = false;\r\n addressLocationMode = true;\r\n postCodeLocationMode = false;\r\n coordinatesLocationMode = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public onLocationFound(location: LocationCoordinates): void {\r\n this.locationFound.emit(location);\r\n }\r\n\r\n public onModeChangeToAddress(): void {\r\n this.addressLocationMode = true;\r\n this.postCodeLocationMode = false;\r\n this.coordinatesLocationMode = false;\r\n }\r\n\r\n public onModeChangeToPostCode(): void {\r\n this.postCodeLocationMode = true;\r\n this.addressLocationMode = false;\r\n this.coordinatesLocationMode = false;\r\n }\r\n\r\n public onModeChangeToCoordinates(): void {\r\n this.coordinatesLocationMode = true;\r\n this.postCodeLocationMode = false;\r\n this.addressLocationMode = false;\r\n }\r\n}\r\n","\r\n\r\n delete_forever\r\n\r\n
\r\n
\r\n close\r\n
\r\n \r\n \r\n \r\n \r\n {{ 'Search by address' | translate }}\r\n \r\n \r\n {{ 'Search by postcode' | translate }}\r\n \r\n \r\n {{ 'Search by coordinates' | translate }}\r\n \r\n
\r\n","// This file contains z-indexes used in map component.\r\n// Since z-index of one layer/style/vector etc. can affect other layers, it's good to have\r\n// them in one place.\r\nexport const MapZIndexes = {\r\n BaseLayer: 0,\r\n AdditionalLayer: 1,\r\n Vector: 2,\r\n Style: 3\r\n};","import { Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Map as OLMap } from 'ol';\r\nimport VectorSource from 'ol/source/Vector';\r\nimport VectorLayer from 'ol/layer/Vector';\r\nimport Style from 'ol/style/Style';\r\nimport Fill from 'ol/style/Fill';\r\nimport Stroke from 'ol/style/Stroke';\r\nimport CircleStyle from 'ol/style/Circle';\r\nimport * as extent from 'ol/extent';\r\nimport { Extent, getSize } from 'ol/extent';\r\nimport Projection from 'ol/proj/Projection';\r\nimport { Tile } from 'ol/layer';\r\nimport WMTS, { Options } from 'ol/source/WMTS';\r\nimport WMTSTileGrid from 'ol/tilegrid/WMTS';\r\nimport TileWMS, { Options as WMSOptions } from 'ol/source/TileWMS';\r\nimport View from 'ol/View';\r\nimport * as control from 'ol/control';\r\nimport ScaleLine from 'ol/control/ScaleLine';\r\nimport MousePosition from 'ol/control/MousePosition';\r\nimport { Coordinate, createStringXY } from 'ol/coordinate';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport Polygon from 'ol/geom/Polygon';\r\nimport Feature, { FeatureLike } from 'ol/Feature';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport * as turf from '@turf/turf';\r\nimport { KlicPolygonModel } from '@app/klic-request-page/models/klic-polygon-model';\r\nimport Text from 'ol/style/Text';\r\nimport { LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport Point from 'ol/geom/Point';\r\nimport Icon from 'ol/style/Icon';\r\nimport { Size } from 'ol/size';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MapToolFactory } from '@app/klic-request-page/classes/map-tool/map-tool-factory';\r\nimport { MapToolType } from '@app/klic-request-page/enums/map-tool-type.enum';\r\nimport { MapToolInterface } from '@app/klic-request-page/interfaces/map-tool.interface';\r\nimport { PolygonValidation } from '@app/klic-request-page/enums/polygon-validation.enum';\r\nimport {\r\n PolygonValidationService\r\n} from '@app/klic-request-page/services/polygon-validation/polygon-validation.service';\r\nimport { ContextMenuComponent } from 'ngx-contextmenu';\r\nimport { TelemetryService } from '@app/@shared/logs/telemetry.service';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\nimport { KlicProjectModel } from '@app/klic-request-page/models/klic-project-model';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { GeospatialService } from '@app/klic-request-page/services/geospatial/geospatial.service';\r\nimport { SplitAlgorithmFactory } from '@app/klic-request-page/classes/split-algorithms/split-algorithm-factory';\r\nimport { SplitAlgorithmName } from '@app/klic-request-page/enums/split-algorithm-name.enum';\r\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\r\nimport { AdditionalLayer } from '@app/klic-request-page/interfaces/additional-layer.interface';\r\nimport { MapZIndexes } from './map-layers-z-indexes';\r\nimport { BaseLayers } from '@app/klic-request-page/enums/base-layers.enum';\r\nimport {\r\n LayersAvailabilityService\r\n} from '@app/klic-request-page/services/layers-availability/layers-availability.service';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { first } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.scss'],\r\n})\r\nexport class MapComponent implements OnInit, OnDestroy {\r\n @Input() klicProjectModel: KlicProjectModel;\r\n @Input() removeButtonDisabled: boolean;\r\n @Input() polygonInteractionsEnabled: boolean;\r\n @Input() modifyLAKEnabled: boolean;\r\n\r\n @Output() klicPolygonsChange: EventEmitter> = new EventEmitter>();\r\n @Output() informationPolygonFlatCoordinatesChange: EventEmitter> = new EventEmitter>();\r\n @Output() geojsonUrlChange: EventEmitter = new EventEmitter();\r\n @Output() toolActionEnded: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild(ContextMenuComponent) public mapContextMenu: ContextMenuComponent;\r\n\r\n readonly MARKER_STYLE: Style = new Style({\r\n image: new Icon({\r\n anchor: [0.5, 1],\r\n src: 'http://cdn.mapmarker.io/api/v1/pin?size=50&hoffset=1',\r\n }),\r\n zIndex: MapZIndexes.Style,\r\n });\r\n map: OLMap;\r\n vector: VectorLayer;\r\n source = new VectorSource({});\r\n projectionExtent: Extent = [-285401.92, 22598.08, 595401.9199999999, 903401.9199999999];\r\n projection = new Projection({\r\n code: 'EPSG:28992',\r\n units: 'm',\r\n extent: this.projectionExtent,\r\n getPointResolution: (resolution) => resolution,\r\n });\r\n resolutions = [\r\n 3440.64, 1720.32, 860.16, 430.08, 215.04, 107.52, 53.76, 26.88, 13.44, 6.72, 3.36, 1.68, 0.84, 0.42, 0.21,\r\n ];\r\n size = extent.getWidth(this.projectionExtent) / 256;\r\n matrixIds = new Array(15);\r\n bufferFeature: Feature;\r\n informationPolygonCoordinates: Array[];\r\n lakPolygons: Array> = [];\r\n markerFeatures: Map> = new Map>();\r\n markerFeatureAtPixel: Feature;\r\n verticesCount: number;\r\n polygonSize: Size;\r\n selectedId: number;\r\n orthoPhotoLayers = {\r\n baseLayer: {\r\n tile: new Tile({\r\n source: new WMTS(this.WMTSOptions(this.mapService.PDOK_SERVICES.HWH_LUCHTFOTORGB_WMTS, 'Actueel_orthoHR')),\r\n zIndex: MapZIndexes.BaseLayer,\r\n }),\r\n },\r\n labelsLayer: {\r\n tile: new Tile({\r\n source: new WMTS(this.WMTSOptions(this.mapService.PDOK_SERVICES.GEODATA_WMTS, 'lufolabels')),\r\n zIndex: MapZIndexes.BaseLayer,\r\n }),\r\n isVisible: true\r\n }\r\n };\r\n orthoPhotoMode = false;\r\n mapTool: MapToolInterface;\r\n mapToolFactory: MapToolFactory;\r\n mapToolTypes = MapToolType;\r\n selectedMapTool: MapToolType;\r\n modifyLAKSelected = false;\r\n mapInitialized: BehaviorSubject = new BehaviorSubject(false);\r\n public isOverlayOpen = false;\r\n public overlayPosition: Array = [\r\n new ConnectionPositionPair(\r\n { originX: 'start', originY: 'top' },\r\n { overlayX: 'end', overlayY: 'top' })\r\n ];\r\n\r\n public additionalLayers: Array = [\r\n {\r\n displayName: 'Kadaster parcel',\r\n tile: new Tile({\r\n minZoom: 12,\r\n zIndex: MapZIndexes.AdditionalLayer,\r\n source: new TileWMS(this.WMSOptions(this.mapService.PDOK_SERVICES.KADASTRALE_KAART_WMS, 'Perceel'))\r\n }),\r\n isVisible: false\r\n },\r\n ];\r\n\r\n private _klicPolygons: Array;\r\n private _informationPolygonBuffer = 0;\r\n private _maxSideSize = 500;\r\n private _isLAKPossible: boolean;\r\n private _importedFeature: Feature;\r\n\r\n // COLORS\r\n private readonly selectionPolygonColorCode = '140, 166, 197';\r\n private readonly selectionPolygonColorRGB = `rgb(${this.selectionPolygonColorCode})`;\r\n private readonly selectionPolygonColorRGBA = `rgba(${this.selectionPolygonColorCode}, 0.7)`;\r\n private readonly informationPolygonFillColorRGBA = 'rgba(203, 103, 160, 0.7)';\r\n private readonly informationPolygonBorderColor = '#000000';\r\n private readonly whiteColorRGBA = 'rgba(255, 255, 255, 0.2)';\r\n\r\n constructor(\r\n public mapService: MapService,\r\n private geospatialService: GeospatialService,\r\n private polygonValidationService: PolygonValidationService,\r\n private requestContextService: RequestContextService,\r\n private splitAlgorithmFactory: SplitAlgorithmFactory,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService,\r\n private telemetryService: TelemetryService,\r\n private layersAvailabilityService: LayersAvailabilityService\r\n ) {\r\n for (let i = 0; i < 15; ++i) {\r\n this.matrixIds[i] = 'EPSG:28992:' + i;\r\n }\r\n }\r\n\r\n @Input() set importedFeature(importedFeature: Feature) {\r\n this.mapInitialized.subscribe((mapInitialized) => {\r\n if (mapInitialized && importedFeature) {\r\n this._importedFeature = importedFeature;\r\n this.addImportedFeatureToMap();\r\n }\r\n });\r\n }\r\n\r\n @Input()\r\n set maxSideSize(maxSideSize: number) {\r\n if (maxSideSize) {\r\n this._maxSideSize = maxSideSize;\r\n this.maxSideSizeChanged();\r\n }\r\n }\r\n\r\n @Input()\r\n set isLAKPossible(isLAKPossible: boolean) {\r\n this._isLAKPossible = isLAKPossible;\r\n }\r\n\r\n @Input()\r\n set selectedPolygon(selectedPolygon: { selectionPolygonId: string; selected: boolean }) {\r\n if (this.lakPolygons.length) {\r\n this.switchPolygonSelection(selectedPolygon.selectionPolygonId, selectedPolygon.selected);\r\n }\r\n }\r\n\r\n @Input()\r\n set klicPolygonsInput(klicPolygons: Array) {\r\n this._klicPolygons = klicPolygons;\r\n }\r\n\r\n @Input()\r\n set informationPolygonBuffer(informationPolygonBuffer: number) {\r\n if (this._informationPolygonBuffer !== informationPolygonBuffer) {\r\n this._informationPolygonBuffer = informationPolygonBuffer;\r\n this.refreshInformationPolygon();\r\n }\r\n }\r\n\r\n set klicPolygons(klicPolygons: Array) {\r\n this._klicPolygons = klicPolygons;\r\n this.klicPolygonsChange.emit(this._klicPolygons);\r\n }\r\n\r\n get informationPolygonFlatCoordinates(): Array {\r\n return [].concat.apply([], this.informationPolygonCoordinates);\r\n }\r\n\r\n get currentBaseLayer(): BaseLayers {\r\n return this.orthoPhotoMode ? BaseLayers.Satellite : BaseLayers.Streets;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initMap();\r\n if (this._klicPolygons?.length) {\r\n this.klicProjectPolygonInit();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removePolygon();\r\n }\r\n\r\n public removePolygon(): void {\r\n if (this.mapService.polygonFeature) {\r\n this.mapService.polygonCoordinates = [];\r\n this.mapService.polygonValid = false;\r\n this.removePolygonFromMap();\r\n this.dismissOpenedSnackBar();\r\n this.mapService.polygonFeature = null;\r\n this.lakPolygons = [];\r\n this.removeInformationPolygon();\r\n this.selectMapTool(this.selectedMapTool);\r\n this.switchLineStringBufferFormControl();\r\n }\r\n }\r\n\r\n public splitPolygon(): void {\r\n if (this.mapService.polygonFeature) {\r\n if (this.lakPolygons?.length) {\r\n this.lakPolygons.forEach((polygon) => {\r\n if (polygon.getId() !== this.mapService.polygonFeature.getId()) {\r\n this.source.removeFeature(polygon);\r\n }\r\n });\r\n }\r\n if (this.lakPolygons?.length === 1) {\r\n this.mapService.polygonFeature.setId(undefined);\r\n (this.mapService.polygonFeature.getStyle() as Style).setFill(new Fill({ color: this.whiteColorRGBA }));\r\n (this.mapService.polygonFeature.getStyle() as Style).setText(new Text());\r\n }\r\n const splitAlgorithm = this.splitAlgorithmFactory.setSplitAlgorithm(SplitAlgorithmName.New);\r\n this.lakPolygons = splitAlgorithm.split(\r\n this.mapService.polygonFeature.getGeometry() as Polygon,\r\n this._maxSideSize\r\n );\r\n this.source.addFeatures(this.lakPolygons);\r\n if (!this.isMapToolModifyLAK()) {\r\n this.mapTool.destroy();\r\n }\r\n this.mapLakFeaturesToOutput();\r\n }\r\n }\r\n\r\n public onLocationFound(location: LocationCoordinates): void {\r\n location.exact ? this.onExactLocationFound(location) : this.onInexactLocationFound(location);\r\n }\r\n\r\n public onLayerChange(): void {\r\n this.orthoPhotoMode ? this.removeOrthoPhotoLayers() : this.addOrthoPhotoLayers();\r\n this.orthoPhotoMode = !this.orthoPhotoMode;\r\n }\r\n\r\n public drawToolDisabled(): boolean {\r\n return !!(this.mapService.polygonFeature || this.lakPolygons?.length || this.mapTool.actionInProgress);\r\n }\r\n\r\n public onDrawTypeChange(drawType: MapToolType): void {\r\n this.selectedMapTool = this.selectMapTool(drawType);\r\n }\r\n\r\n public removeMarkerFeatures(): void {\r\n this.markerFeatures.forEach((markerFeature) => {\r\n this.source.removeFeature(markerFeature);\r\n });\r\n this.markerFeatures.clear();\r\n }\r\n\r\n public removeMarkerFeature(): void {\r\n if (this.markerFeatureAtPixel) {\r\n this.source.removeFeature(this.markerFeatureAtPixel);\r\n this.markerFeatures.delete(this.markerFeatureAtPixel.getId());\r\n }\r\n }\r\n\r\n public getMarkerFeatureAtPixel(event: MouseEvent) {\r\n const featuresAtPixel = this.map.getFeaturesAtPixel(this.map.getEventPixel(event)) as Array>;\r\n this.markerFeatureAtPixel = featuresAtPixel.filter((feature) => this.markerFeatures.get(feature.getId()))[0];\r\n }\r\n\r\n public onModifyLAKClick() {\r\n if (!this.isMapToolModifyLAK()) {\r\n this.openSnackBar(\r\n // eslint-disable-next-line max-len\r\n 'If you continue with this action, the current (LAK) split and the data of the individual KLIC Requests will be removed and the split will be based on the new polygon.'\r\n )\r\n .onAction()\r\n .subscribe(() => {\r\n this.toggleModifyLAK();\r\n });\r\n } else {\r\n this.toggleModifyLAK();\r\n }\r\n }\r\n\r\n public onAdditionalLayerToggle(name: string) {\r\n const layer = this.additionalLayers.find((l) => l.displayName === name);\r\n if (layer) {\r\n layer.isVisible = !layer.isVisible;\r\n layer.isVisible ? this.map.addLayer(layer.tile) : this.map.removeLayer(layer.tile);\r\n }\r\n }\r\n\r\n public onBaseLayerChanged(_: BaseLayers) {\r\n // For now there are only two layers so we don't have to check\r\n // which layer was selected - orthoPhotoMode variable will indicate that.\r\n // This implementation was prepared if in the future more base layers\r\n // will be available to select.\r\n this.onLayerChange();\r\n }\r\n\r\n private toggleModifyLAK(): void {\r\n this.isMapToolModifyLAK() ? this.unselectMapTool() : this.selectMapTool(MapToolType.ModifyLAK);\r\n }\r\n\r\n private selectMapTool(mapToolType: MapToolType): MapToolType {\r\n if (this.mapTool) {\r\n this.unselectMapTool();\r\n }\r\n this.mapTool = this.mapToolFactory.setMapTool(mapToolType);\r\n this.mapTool.onToolActionEnded.subscribe((feature: Feature) => this.onToolActionEnded(feature));\r\n\r\n return mapToolType;\r\n }\r\n\r\n private unselectMapTool(): void {\r\n this.mapTool.destroy();\r\n this.mapTool = null;\r\n }\r\n\r\n private isMapToolModifyLAK(): boolean {\r\n return this.mapTool?.type === MapToolType.ModifyLAK;\r\n }\r\n\r\n private switchLineStringBufferFormControl(): void {\r\n this.drawToolDisabled()\r\n ? this.mapTool.inputData.disable({ emitEvent: false })\r\n : this.mapTool.inputData.enable({ emitEvent: false });\r\n }\r\n\r\n private addOrthoPhotoLayers(): void {\r\n this.map.addLayer(this.orthoPhotoLayers.baseLayer.tile);\r\n this.layersAvailabilityService.isLufolabelsLayerAvailable()\r\n .pipe(first())\r\n .subscribe((isAvailable) => {\r\n if (isAvailable) {\r\n this.map.addLayer(this.orthoPhotoLayers.labelsLayer.tile);\r\n this.orthoPhotoLayers.labelsLayer.isVisible = true;\r\n } else {\r\n this.openSnackBar('Lufolabels not available');\r\n const errMsg = `Lufolabels layer is not available. Layer url: ${this.mapService.PDOK_SERVICES.GEODATA_WMTS}`;\r\n this.telemetryService.logger.logException(new Error(errMsg), SeverityLevel.Error);\r\n }\r\n });\r\n }\r\n\r\n private removeOrthoPhotoLayers(): void {\r\n this.map.removeLayer(this.orthoPhotoLayers.baseLayer.tile);\r\n if (this.orthoPhotoLayers.labelsLayer.isVisible) {\r\n this.map.removeLayer(this.orthoPhotoLayers.labelsLayer.tile);\r\n }\r\n }\r\n\r\n private setLocationMarker(location: LocationCoordinates): void {\r\n const newMarkerFeature = this.createMarkerFeature(location);\r\n\r\n if (!this.markerFeatures.get(newMarkerFeature.getId())) {\r\n this.markerFeatures.set(newMarkerFeature.getId(), newMarkerFeature);\r\n this.source.addFeature(newMarkerFeature);\r\n }\r\n }\r\n\r\n private createMarkerFeature(location: LocationCoordinates): Feature {\r\n const markerFeature = new Feature();\r\n markerFeature.setStyle(this.MARKER_STYLE);\r\n markerFeature.setGeometry(new Point([location.longitude, location.latitude]));\r\n markerFeature.setId(`marker_${location.longitude}${location.latitude}`);\r\n\r\n return markerFeature;\r\n }\r\n\r\n private fitMapViewToMarkerFeatures(): void {\r\n const coordinates: Coordinate[][] = [];\r\n this.markerFeatures.forEach((markerFeature) => coordinates.push([markerFeature.getGeometry().getCoordinates()]));\r\n const polygonFromMarkers = new Polygon(coordinates);\r\n this.map.getView().fit(polygonFromMarkers, { padding: [50, 50, 50, 50] });\r\n }\r\n\r\n private onExactLocationFound(location: LocationCoordinates): void {\r\n this.setLocationMarker(location);\r\n this.fitMapViewToMarkerFeatures();\r\n }\r\n\r\n private onInexactLocationFound(location: LocationCoordinates): void {\r\n this.map.getView().setCenter([location.longitude, location.latitude]);\r\n this.map.getView().setZoom(14);\r\n }\r\n\r\n private mapLakFeaturesToOutput(): void {\r\n if (this.lakPolygons.length) {\r\n this.klicPolygons = this.lakPolygons.map(\r\n (polygon) =>\r\n new KlicPolygonModel(\r\n polygon.getId().toString(),\r\n (polygon.getGeometry() as Polygon).getFlatCoordinates(),\r\n +polygon.getId() === +this.selectedId,\r\n [].concat.apply([], this.informationPolygonCoordinates)\r\n )\r\n );\r\n }\r\n }\r\n\r\n private getText(feature: FeatureLike): string {\r\n return feature.getId() ? feature.getId().toString() : '';\r\n }\r\n\r\n private initMap(): void {\r\n this.vector = new VectorLayer({\r\n source: this.source,\r\n style: (feature) => new Style({\r\n zIndex: MapZIndexes.Style,\r\n fill: new Fill({\r\n color: this.whiteColorRGBA,\r\n }),\r\n stroke: new Stroke({\r\n color: this.selectionPolygonColorRGB,\r\n width: 2,\r\n }),\r\n text: new Text({\r\n fill: new Fill({ color: this.selectionPolygonColorRGB }),\r\n text: this.getText(feature),\r\n }),\r\n image: new CircleStyle({\r\n radius: 7,\r\n fill: new Fill({\r\n color: this.selectionPolygonColorRGB,\r\n }),\r\n }),\r\n }),\r\n });\r\n\r\n this.vector.setZIndex(MapZIndexes.Vector);\r\n\r\n this.map = new OLMap({\r\n layers: [\r\n new Tile({\r\n zIndex: MapZIndexes.BaseLayer,\r\n source: new WMTS(this.WMTSOptions(this.mapService.PDOK_SERVICES.BRT_ACHTERGRONDKAART, 'standaard')),\r\n }),\r\n new Tile({\r\n zIndex: MapZIndexes.BaseLayer,\r\n source: new WMTS(this.WMTSOptions(this.mapService.PDOK_SERVICES.BGT, 'pastelvisualisatie')),\r\n }),\r\n this.vector,\r\n ],\r\n target: 'map',\r\n controls: control\r\n .defaults({\r\n attributionOptions: {\r\n collapsible: false,\r\n },\r\n })\r\n .extend([\r\n new ScaleLine(),\r\n new MousePosition({\r\n projection: 'EPSG:28992',\r\n className: 'mouse-position',\r\n coordinateFormat: createStringXY(2),\r\n }),\r\n ]),\r\n view: new View({\r\n extent: [5700, 289700, 290300, 640300],\r\n minZoom: 3,\r\n maxZoom: 15,\r\n projection: this.projection,\r\n center: [150000, 450000],\r\n zoom: 3,\r\n }),\r\n });\r\n\r\n this.map.once('postcompose', () => {\r\n this.mapInitialized.next(true);\r\n });\r\n\r\n this.mapToolFactory = new MapToolFactory(this.map, this.source, this.mapService, this.translateService);\r\n this.selectedMapTool = this.selectMapTool(MapToolType.Polygon);\r\n this.refreshMapSize();\r\n }\r\n\r\n private klicProjectPolygonInit(): void {\r\n this._klicPolygons.length === 1 ? this.klicRequestPolygonInit() : this.lakPolygonsInit();\r\n this.mapTool.destroy();\r\n if (this.polygonInteractionsEnabled) {\r\n this.lakPolygons.length ? this.selectMapTool(MapToolType.Modify) : this.selectMapTool(MapToolType.Polygon);\r\n }\r\n this.source.addFeatures(this.lakPolygons);\r\n }\r\n\r\n private klicRequestPolygonInit() {\r\n if (this._klicPolygons[0].flatCoordinates.length) {\r\n const selectionPolygonFlatCoordinates: Array = this._klicPolygons[0].flatCoordinates;\r\n const selectionPolygonCoordinates = this.chunkArray(selectionPolygonFlatCoordinates, 2);\r\n const selectionPolygon: Polygon = new Polygon([selectionPolygonCoordinates]);\r\n if (selectionPolygon.getArea()) {\r\n const selectionPolygonFeature = new Feature(selectionPolygon);\r\n selectionPolygonFeature.setId(1);\r\n this.lakPolygons.push(selectionPolygonFeature);\r\n this.polygonFeatureProcessing(selectionPolygonFeature);\r\n this.map.getView().fit(selectionPolygon);\r\n }\r\n }\r\n }\r\n\r\n private lakPolygonsInit() {\r\n // TODO: refactor and remove not required elements\r\n const interiorPoints: Array> = [];\r\n this._klicPolygons.forEach((klicPolygon) => {\r\n if (klicPolygon.flatCoordinates) {\r\n const coordinates = this.chunkArray(klicPolygon.flatCoordinates, 2);\r\n const polygon: Polygon = new Polygon([coordinates]);\r\n const feature = new Feature(polygon);\r\n feature.setId(+klicPolygon.id);\r\n this.lakPolygons.push(feature);\r\n interiorPoints.push([polygon.getFlatInteriorPoint()[0], polygon.getFlatInteriorPoint()[1]]);\r\n this.mapService.polygonCoordinates = klicPolygon.flatCoordinates;\r\n }\r\n });\r\n this.lakPolygons.sort((featureA, featureB) => +featureA.getId() - +featureB.getId());\r\n const interiorPointsPolygon = new Polygon([interiorPoints]);\r\n this.map.getView().setCenter(interiorPointsPolygon.getFlatInteriorPoint());\r\n this.map.getView().setZoom(10);\r\n this.mapService.polygonValid = true;\r\n }\r\n\r\n private informationPolygonInit(selectionPolygonCoordinates: Array>): void {\r\n if (this._klicPolygons[0]?.informationPolygonFlatCoordinates?.length) {\r\n this.generateInformationPolygonByCoordinates(\r\n this._klicPolygons[0]?.informationPolygonFlatCoordinates,\r\n selectionPolygonCoordinates\r\n );\r\n } else if (this._informationPolygonBuffer > 0) {\r\n this.refreshInformationPolygon();\r\n }\r\n\r\n this.fitMapViewToInformationPolygon();\r\n }\r\n\r\n private fitMapViewToInformationPolygon(): void {\r\n if (this.bufferFeature) {\r\n this.map.getView().fit(this.bufferFeature.getGeometry() as Polygon);\r\n }\r\n }\r\n\r\n private addImportedFeatureToMap(): void {\r\n this.removePolygon();\r\n this.source.addFeature(this._importedFeature);\r\n this.polygonFeatureProcessing(this._importedFeature);\r\n this.map.getView().fit(this._importedFeature.getGeometry() as Polygon);\r\n }\r\n\r\n private chunkArray(flatArray: Array, chunkSize: number): Array> {\r\n let index = 0;\r\n const arrayLength = flatArray.length;\r\n const chunkedArray: Array> = [];\r\n\r\n for (index; index < arrayLength; index += chunkSize) {\r\n const chunk = flatArray.slice(index, index + chunkSize);\r\n chunkedArray.push(chunk);\r\n }\r\n\r\n return chunkedArray;\r\n }\r\n\r\n private logMapTool(): void {\r\n this.telemetryService.logger.logEvent('MapTool', {\r\n toolType: this.mapTool.getToolName(),\r\n companyName: this.requestContextService.requestContext.companyName,\r\n regionName: this.requestContextService.requestContext.region.name,\r\n });\r\n }\r\n\r\n private onToolActionEnded(polygonFeature: Feature): void {\r\n if (polygonFeature) {\r\n this.logMapTool();\r\n this.polygonFeatureProcessing(polygonFeature);\r\n this.toolActionEnded.next();\r\n }\r\n }\r\n\r\n private polygonFeatureProcessing(polygonFeature: Feature): void {\r\n this.mapService.polygonFeature = polygonFeature;\r\n const polygon: Polygon = this.mapService.polygonFeature.getGeometry() as Polygon;\r\n polygon.setCoordinates(\r\n polygon.getCoordinates().map((geometry) => geometry.map((coordinates) => coordinates.map((xy) => Math.floor(xy))))\r\n );\r\n\r\n this.verticesCount = this.polygonVerticesCount(polygon);\r\n\r\n if (this.verticesCount > this.mapService.MAX_VERTICES) {\r\n this.mapService.polygonValid = false;\r\n this.openMaxVerticesSnackBar();\r\n } else {\r\n this.mapService.polygonValid = true;\r\n this.mapService.polygonCoordinates = polygon.getFlatCoordinates();\r\n this.polygonSize = getSize(polygon.getExtent());\r\n this.dismissOpenedSnackBar();\r\n }\r\n\r\n this.selectMapTool(this.isMapToolModifyLAK() ? MapToolType.ModifyLAK : MapToolType.Modify);\r\n this.validateMainPolygon(polygon);\r\n this.refreshInformationPolygon();\r\n this.switchLineStringBufferFormControl();\r\n }\r\n\r\n private polygonVerticesCount(polygon: Polygon): number {\r\n return polygon.getFlatCoordinates().length / 2;\r\n }\r\n\r\n private refreshInformationPolygon(): void {\r\n this.removeInformationPolygon();\r\n this.generateInformationPolygonByBuffer();\r\n this.informationPolygonFlatCoordinatesChange.emit(this.informationPolygonFlatCoordinates);\r\n }\r\n\r\n private generateInformationPolygonByCoordinates(\r\n informationPolygonFlatCoordinates: Array,\r\n selectionPolygonCoordinates: Array>\r\n ): void {\r\n this.informationPolygonCoordinates = this.chunkArray(informationPolygonFlatCoordinates, 2);\r\n const informationPolygon = new Polygon([this.informationPolygonCoordinates, selectionPolygonCoordinates]);\r\n this.bufferFeature = new Feature(informationPolygon);\r\n this.setBufferFeatureStyle();\r\n this.source.addFeature(this.bufferFeature);\r\n this.informationPolygonFlatCoordinatesChange.emit(this.informationPolygonFlatCoordinates);\r\n }\r\n\r\n private generateInformationPolygonByBuffer(): void {\r\n if (this.mapService.polygonFeature && this._informationPolygonBuffer > 0 && this.mapService.polygonValid) {\r\n const turfPolygon = this.geospatialService.getTurfPolygonFromOLPolygonInFakeWgs(\r\n this.mapService.polygonFeature.getGeometry() as Polygon\r\n );\r\n\r\n const buffer = this.geospatialService.getBufferPolygon(\r\n turfPolygon,\r\n this._informationPolygonBuffer\r\n ) as turf.helpers.Feature;\r\n\r\n if (buffer.geometry) {\r\n let bufferOl = new Polygon(buffer.geometry.coordinates.map((x) => x.map((y) => turf.toMercator(y))));\r\n\r\n bufferOl = this.geospatialService.createBufferPolygonFeature(\r\n bufferOl as any,\r\n this.mapService.polygonFeature.getGeometry() as Polygon\r\n );\r\n\r\n this.informationPolygonCoordinates = (bufferOl.simplify(1) as Polygon).getCoordinates()[0];\r\n\r\n this.bufferFeature = new Feature(bufferOl);\r\n\r\n if (this.bufferFeature) {\r\n this.setBufferFeatureStyle();\r\n this.source.addFeature(this.bufferFeature);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setBufferFeatureStyle(): void {\r\n this.bufferFeature.setStyle(\r\n new Style({\r\n fill: new Fill({\r\n color: this.informationPolygonFillColorRGBA,\r\n }),\r\n stroke: new Stroke({\r\n color: this.informationPolygonBorderColor,\r\n width: 1,\r\n }),\r\n })\r\n );\r\n }\r\n\r\n private validateMainPolygon(polygon: Polygon) {\r\n this.validatePolygonKinks(polygon);\r\n this.validatePolygonVertices(polygon);\r\n this.polygonSizeValidationResult(\r\n this.validatePolygonSize(),\r\n this.polygonSizeValidationSuccessOnToolActionEnded.bind(this)\r\n );\r\n }\r\n\r\n private validatePolygonVertices(polygon: Polygon) {\r\n const vertices = polygon.getCoordinates()[0];\r\n const minDistance = 1;\r\n\r\n if (this.geospatialService.getShortestHorizontalOrVerticalDistance(vertices) < minDistance) {\r\n this.openSnackBar('Cant put vertice closer than 1 meter to previous');\r\n this.mapService.polygonValid = false;\r\n }\r\n }\r\n\r\n private validatePolygonSize(): PolygonValidation {\r\n return this.polygonValidationService.validatePolygonSize(\r\n this.polygonSize,\r\n this._maxSideSize,\r\n this.requestContextService.canRequestLargeAreaKlic,\r\n this._isLAKPossible\r\n );\r\n }\r\n\r\n private showInvalidPolygonMessage(polygonValidation: PolygonValidation): void {\r\n switch (polygonValidation) {\r\n case PolygonValidation.TooLarge: {\r\n this.polygonTooLarge();\r\n break;\r\n }\r\n case PolygonValidation.TooLargeForLAK: {\r\n this.polygonTooLargeForLAK();\r\n break;\r\n }\r\n case PolygonValidation.CannotRequestLAKForThisProject: {\r\n this.cannotRequestLAKForThisProject();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private polygonSizeValidationResult(polygonValidation: PolygonValidation, polygonSizeValidationSuccess: () => void) {\r\n if (polygonValidation === PolygonValidation.None) {\r\n polygonSizeValidationSuccess();\r\n } else {\r\n this.showInvalidPolygonMessage(polygonValidation);\r\n }\r\n }\r\n\r\n private polygonSizeValidationSuccessOnKlicTypeChange(): void {\r\n if (!this.polygonValidationService.isLAK) {\r\n return;\r\n }\r\n this.lakPolygon();\r\n }\r\n\r\n private polygonSizeValidationSuccessOnToolActionEnded(): void {\r\n if (this.mapService.polygonValid) {\r\n this.polygonValidationService.isLAK ? this.lakPolygon() : this.simplePolygon();\r\n }\r\n }\r\n\r\n private polygonTooLarge(): void {\r\n this.mapService.polygonValid = false;\r\n this.openSnackBar('The polygon size is too big');\r\n }\r\n\r\n private polygonTooLargeForLAK(): void {\r\n this.mapService.polygonValid = false;\r\n this.openSnackBar('The polygon size is too big for LAK Request');\r\n }\r\n\r\n private simplePolygon(): void {\r\n if (this.lakPolygons?.length > 1) {\r\n this.lakPolygons?.forEach((polygon) => {\r\n this.source.removeFeature(polygon);\r\n });\r\n }\r\n this.mapService.polygonValid = true;\r\n this.mapService.polygonFeature.setId(1);\r\n this.lakPolygons = [];\r\n this.lakPolygons.push(this.mapService.polygonFeature);\r\n this.mapLakFeaturesToOutput();\r\n }\r\n\r\n private lakPolygon(): void {\r\n this.mapService.polygonValid = false;\r\n if (this.isMapToolModifyLAK()) {\r\n this.splitPolygon();\r\n this.mapService.polygonValid = true;\r\n } else {\r\n this.openSnackBar('The polygon size is too big, do you wish to split it?')\r\n .onAction()\r\n .subscribe(() => {\r\n this.splitPolygon();\r\n this.mapService.polygonValid = true;\r\n });\r\n }\r\n }\r\n\r\n private cannotRequestLAKForThisProject(): void {\r\n this.mapService.polygonValid = false;\r\n this.openSnackBar('Cannot create LAK for this project');\r\n }\r\n\r\n private removePolygonFromMap(): void {\r\n this.source.removeFeature(this.mapService.polygonFeature);\r\n if (this.lakPolygons?.length) {\r\n this.lakPolygons?.forEach((polygon) => {\r\n if (polygon.getId() !== this.mapService.polygonFeature.getId()) {\r\n this.source.removeFeature(polygon);\r\n }\r\n });\r\n this.klicPolygons = [];\r\n }\r\n }\r\n\r\n private removeInformationPolygon(): void {\r\n if (this.bufferFeature) {\r\n this.source.removeFeature(this.bufferFeature);\r\n this.bufferFeature = null;\r\n this.informationPolygonCoordinates = null;\r\n }\r\n }\r\n\r\n private dismissOpenedSnackBar(): void {\r\n if (this.snackBar._openedSnackBarRef) {\r\n this.snackBar.dismiss();\r\n }\r\n }\r\n\r\n private maxSideSizeChanged(): void {\r\n if (this.lakPolygons.length > 1) {\r\n this.removePolygon();\r\n } else if (this.mapService.polygonFeature) {\r\n this.polygonSizeValidationResult(\r\n this.validatePolygonSize(),\r\n this.polygonSizeValidationSuccessOnKlicTypeChange.bind(this)\r\n );\r\n }\r\n }\r\n\r\n private validatePolygonKinks(polygon: Polygon) {\r\n if (this.polygonHasKinks(polygon)) {\r\n this.mapService.polygonValid = false;\r\n this.openSnackBar('Lines of the polygon cannot cross each other', 3000);\r\n }\r\n }\r\n\r\n private polygonHasKinks(polygon: Polygon): boolean {\r\n const turfPolygon = turf.polygon(polygon.getCoordinates());\r\n\r\n return !!turf.kinks(turfPolygon).features.length;\r\n }\r\n\r\n private switchPolygonSelection(selectionPolygonId: string, selected: boolean) {\r\n const foundPolygon = this.lakPolygons.find((polygon) => polygon.getId().toString() === selectionPolygonId);\r\n foundPolygon?.setStyle(\r\n new Style({\r\n zIndex: 100,\r\n fill: new Fill({\r\n color: selected ? this.selectionPolygonColorRGBA : this.whiteColorRGBA,\r\n }),\r\n stroke: new Stroke({\r\n color: this.selectionPolygonColorRGB,\r\n width: 2,\r\n }),\r\n text: new Text({\r\n fill: new Fill({ color: this.selectionPolygonColorRGB }),\r\n text: foundPolygon.getId().toString(),\r\n }),\r\n image: new CircleStyle({\r\n radius: 7,\r\n fill: new Fill({\r\n color: this.selectionPolygonColorRGB,\r\n }),\r\n }),\r\n })\r\n );\r\n }\r\n\r\n private openSnackBar(message: string, duration?: number): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK', { duration });\r\n }\r\n\r\n private openMaxVerticesSnackBar(): MatSnackBarRef {\r\n const messages = ['There should be max', 'vertice(s)', 'Remove', 'vertices or drawn polygon again.'];\r\n const translatedMessages = this.translateService.instant(messages);\r\n const message = `${translatedMessages[messages[0]]} ${this.mapService.MAX_VERTICES} ${\r\n translatedMessages[messages[1]]\r\n } ${translatedMessages[messages[2]]} ${this.verticesCount - this.mapService.MAX_VERTICES} ${\r\n translatedMessages[messages[3]]\r\n }`;\r\n\r\n return this.snackBar.open(message, 'OK');\r\n }\r\n\r\n private WMTSOptions(url: string, layer: string): Options {\r\n return {\r\n url,\r\n layer,\r\n matrixSet: 'EPSG:28992',\r\n format: 'image/png',\r\n projection: this.projection,\r\n tileGrid: new WMTSTileGrid({\r\n origin: extent.getTopLeft(this.projectionExtent),\r\n resolutions: this.resolutions,\r\n matrixIds: this.matrixIds,\r\n }),\r\n style: 'default',\r\n wrapX: false,\r\n };\r\n }\r\n\r\n private WMSOptions(url: string, layer: string): WMSOptions {\r\n return {\r\n url,\r\n projection: this.projection,\r\n params: {\r\n 'LAYERS': layer,\r\n 'CRS': 'EPSG:28992'\r\n }\r\n };\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n private onResize(): void {\r\n this.refreshMapSize();\r\n }\r\n\r\n private refreshMapSize() {\r\n setTimeout(() => {\r\n this.map?.updateSize();\r\n }, 200);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
Remove the pin
\r\n
\r\n
\r\n
\r\n \r\n \r\n layers\r\n \r\n \r\n delete\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Buffer [5 - 200 m]\r\n \r\n \r\n
\r\n \r\n edit\r\n \r\n \r\n timeline\r\n \r\n
\r\n\r\n \r\n\r\n 1 && modifyLAKEnabled\"\r\n [class.selected]=\"mapTool?.type === mapToolTypes.ModifyLAK\"\r\n [matTooltip]=\"'Modify LAK Polygon' | translate\"\r\n (click)=\"onModifyLAKClick()\"\r\n >\r\n auto_fix_normal\r\n \r\n\r\n
\r\n \r\n You can remove any vertice by double-clicking it\r\n
\r\n\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-polygon-info',\r\n templateUrl: './polygon-info.component.html',\r\n styleUrls: ['./polygon-info.component.scss'],\r\n})\r\nexport class PolygonInfoComponent implements OnInit {\r\n @Input() sizeX: number;\r\n @Input() sizeY: number;\r\n @Input() verticesCount: number;\r\n @Input() maxVertices: number;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n \r\n {{ 'Size' | translate }}: {{ sizeX.toFixed(0) }}m x {{ sizeY.toFixed(0) }}m, {{ verticesCount }}\r\n {{ 'vertices drawn out of' | translate }}\r\n {{ maxVertices }} ({{ maxVertices - verticesCount }} {{ 'left' | translate }})\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {\r\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA,\r\n MatLegacyDialogRef as MatDialogRef\r\n} from '@angular/material/legacy-dialog';\r\nimport { MatLegacySnackBar as MatSnackBar } from '@angular/material/legacy-snack-bar';\r\nimport { MatSnackBarRef, SimpleSnackBar } from '@angular/material/snack-bar';\r\nimport { WorkType } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-work-type-dialog',\r\n templateUrl: './work-type-dialog.component.html',\r\n styleUrls: ['./work-type-dialog.component.scss'],\r\n})\r\nexport class WorkTypeDialogComponent implements OnInit {\r\n workTypes: Array = [];\r\n notes: string;\r\n isValid = true;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n private snackBar: MatSnackBar,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.workTypes = JSON.parse(JSON.stringify(this.data.workTypes));\r\n this.notes = this.data.notes;\r\n this.workTypesValidation();\r\n }\r\n\r\n onDiscardChanges(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSaveChanges(): void {\r\n if (this.isValid) {\r\n this.dialogRef.close({\r\n workTypes: this.workTypes,\r\n selectedWorkTypes: this.selectedWorkTypes(),\r\n notes: this.notes,\r\n });\r\n } else {\r\n this.openSnackBar('The data you provided is not valid');\r\n }\r\n }\r\n\r\n onCheckboxChange(): void {\r\n this.workTypesValidation();\r\n }\r\n\r\n onNotesChange(): void {\r\n this.notesValidation();\r\n }\r\n\r\n private selectedWorkTypes(): Array {\r\n return this.workTypes.filter((workType) => workType.selected);\r\n }\r\n\r\n private workTypesValidation(): void {\r\n this.isValid = true;\r\n if (this.data.klicType !== 'Calamity') {\r\n if (this.selectedWorkTypes().length > 6) {\r\n this.openSnackBar('You can provide max 6 Work Types');\r\n this.isValid = false;\r\n }\r\n if (this.selectedWorkTypes().length > 5 && this.notes) {\r\n this.openSnackBar('You can provide max 5 Work Types with Additional description');\r\n this.isValid = false;\r\n }\r\n }\r\n }\r\n\r\n private notesValidation(): void {\r\n this.isValid = true;\r\n if (this.data.klicType !== 'Calamity') {\r\n if (this.notes && this.selectedWorkTypes().length > 5) {\r\n this.openSnackBar('You can provide max 5 Work Types with Additional description');\r\n this.isValid = false;\r\n }\r\n }\r\n if (this.notes.length > 2000) {\r\n this.openSnackBar('Additional description should be max 2000 characters long');\r\n this.isValid = false;\r\n }\r\n }\r\n\r\n private openSnackBar(message: string): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK', { duration: 3000 });\r\n }\r\n}\r\n","

\r\n Select Work Types\r\n close\r\n

\r\n
\r\n \r\n {{ workType.value }}\r\n \r\n \r\n Additional description\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n","export enum AddressType {\r\n ContactData,\r\n ClientPerson\r\n}","export enum BaseLayers {\r\n Streets = 'Streets',\r\n Satellite = 'Satellite'\r\n}","export enum MapToolType {\r\n LineString = 'LineString',\r\n Polygon = 'Polygon',\r\n Modify = 'Modify',\r\n ModifyLAK = 'ModifyLAK',\r\n}\r\n","export enum Mode {\r\n Add = 'Add',\r\n Draft = 'Draft',\r\n KlicProject = 'KlicProject',\r\n KlicRequest = 'KlicRequest',\r\n}\r\n","export enum PolygonValidation {\r\n None = 'None',\r\n TooLarge = 'TooLarge',\r\n TooLargeForLAK = 'TooLargeForLAK',\r\n CannotRequestLAKForThisProject = 'CannotRequestLAKForThisProject',\r\n}\r\n","export enum SplitAlgorithmName {\r\n Old = 'Old',\r\n New = 'New',\r\n}\r\n","export interface RequestContext {\r\n dictionaries: Dictionaries;\r\n companyName: string;\r\n region: Region;\r\n user: User;\r\n userAddress: UserAddress;\r\n kadasterAccounts: Array;\r\n kadasterRelations: Array;\r\n searchGroupKey: string;\r\n}\r\n\r\nexport interface WorkType {\r\n key: string;\r\n value: string;\r\n selected?: boolean;\r\n}\r\n\r\nexport interface KadasterAccount {\r\n id: string;\r\n customerNumber: string;\r\n userName: string;\r\n isDefault: boolean;\r\n}\r\n\r\nexport interface KlicType {\r\n key: number;\r\n value: string;\r\n maxSideSize: number;\r\n description: string;\r\n}\r\n\r\nexport interface KlicProject {\r\n id: string;\r\n status: string;\r\n type: number | string;\r\n contactData: ContactData;\r\n clientDetails: ClientDetails;\r\n kadasterAccountId: string;\r\n reference: string;\r\n klicRequests: Array;\r\n searchGroupKey: string;\r\n}\r\n\r\nexport interface BAGAddress {\r\n bagId: string;\r\n numberDesignationBagId: string;\r\n city: string;\r\n street: string;\r\n houseNumber: number;\r\n houseLetter: string;\r\n postCode: string;\r\n addition: string;\r\n notFoundInKadaster: boolean;\r\n}\r\n\r\nexport interface KlicRequest {\r\n id?: string;\r\n reference: string;\r\n isRealKlicRequest: boolean;\r\n isRestApiKlicRequest: boolean;\r\n houseConnectionSketchAddresses?: Array;\r\n informationAboutPerformedWork?: WorkDescription;\r\n shouldBeRequestedOn: Date;\r\n status?: string;\r\n selectionPolygonId?: string;\r\n selectionPolygonCoordinates: string;\r\n informationPolygonCoordinates?: string;\r\n informationPolygonBufferInMeters?: number;\r\n canBeEdited?: boolean;\r\n}\r\n\r\nexport interface DisabledKlicRequest {\r\n id: string;\r\n reference: string;\r\n selectionPolygonId: string;\r\n houseConnectionSketchAddressesCntr: number;\r\n}\r\n\r\nexport interface LocationCoordinates {\r\n longitude: number;\r\n latitude: number;\r\n exact: boolean;\r\n}\r\n\r\nexport interface ClientAddressBookEntry {\r\n clientDetails: ClientDetails;\r\n kadasterAccountId: string;\r\n}\r\n\r\nexport interface ContactAddressBookEntry {\r\n contactData: ContactData;\r\n kadasterAccountId: string;\r\n}\r\n\r\nexport interface AddressBookDialogEntry {\r\n companyName?: string;\r\n name: string;\r\n phone: string;\r\n email: string;\r\n city: string;\r\n street: string;\r\n houseNumber: number;\r\n houseLetter: string;\r\n postCode: string;\r\n countryCode: string;\r\n addition: string;\r\n kadasterAccountId: string;\r\n}\r\n\r\nexport interface ClientDetails {\r\n companyName: string;\r\n contactPerson: ContactPerson;\r\n contactPersonAddress: Address;\r\n}\r\n\r\nexport interface User {\r\n name: string;\r\n phone: string;\r\n email: string;\r\n}\r\n\r\nexport interface UserAddress {\r\n city: string;\r\n street: string;\r\n houseNumber: number;\r\n houseLetter: string;\r\n postCode: string;\r\n countryCode: string;\r\n addition: string;\r\n}\r\n\r\nexport const KLIC_TYPES: Array = [\r\n {\r\n key: 0,\r\n value: 'Dig',\r\n maxSideSize: 500,\r\n description: 'DIG_DESCRIPTION',\r\n },\r\n {\r\n key: 1,\r\n value: 'Orientation',\r\n maxSideSize: 2500,\r\n description: 'ORIENTATION_DESCRIPTION',\r\n },\r\n {\r\n key: 2,\r\n value: 'Calamity',\r\n maxSideSize: 500,\r\n description: 'CALAMITY_DESCRIPTION',\r\n },\r\n];\r\n\r\nexport interface ContactData {\r\n name: string;\r\n phone: string;\r\n email: string;\r\n address: Address;\r\n}\r\n\r\nexport interface Country {\r\n key: number;\r\n value: string;\r\n}\r\n\r\nexport interface KadasterRelation {\r\n id: string,\r\n companyName: string,\r\n customerNumber: string,\r\n email: string,\r\n chamberOfCommerceNumber: string,\r\n isDefault: boolean\r\n}\r\n\r\ninterface ContactPerson {\r\n name: string;\r\n phone: string;\r\n email: string;\r\n}\r\n\r\ninterface Address {\r\n city: string;\r\n street: string;\r\n houseNumber: number;\r\n houseLetter: string;\r\n postCode: string;\r\n countryCode: string;\r\n addition: string;\r\n bagId?: string;\r\n}\r\n\r\ninterface WorkDescription {\r\n startDate?: Date;\r\n estimatedEndDate?: Date;\r\n workType: Array;\r\n workTypes?: Array;\r\n notes: string;\r\n}\r\n\r\ninterface Dictionaries {\r\n workTypes: Array;\r\n countries: Array;\r\n}\r\n\r\ninterface Region {\r\n name: string;\r\n email: string;\r\n settings: Settings;\r\n}\r\n\r\ninterface Settings {\r\n projectNumberSeparator: string;\r\n isParsingProjectNumberEnabled: boolean;\r\n shouldAddRegionEmailToKlicRequest: boolean;\r\n shouldAddRequesterEmailToKlicRequest: boolean;\r\n canRequestLargeAreaKlic: boolean;\r\n informationPolygonEnabled: boolean;\r\n shouldPerformRealKlicRequest: boolean;\r\n numberOfDaysKlicShouldBeRequestedBeforeStartDate: number;\r\n shouldPerformRestApiKlicRequest: boolean;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { KlicRequestPageComponent } from '@app/klic-request-page/klic-request-page.component';\r\nimport { extract } from '@app/i18n';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'klic-request-page',\r\n component: KlicRequestPageComponent,\r\n data: { title: extract('KLIC Request') },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [],\r\n})\r\nexport class KlicRequestPageRoutingModule {}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { KlicPolygonModel } from './models/klic-polygon-model';\r\nimport { KlicType } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { FormService } from '@app/klic-request-page/services/form/form.service';\r\nimport { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { KlicProjectService } from '@app/klic-request-page/services/klic-project/klic-project.service';\r\nimport { KlicProjectModel } from '@app/klic-request-page/models/klic-project-model';\r\nimport { KlicRequestModel } from '@app/klic-request-page/models/klic-request-model';\r\nimport Feature from 'ol/Feature';\r\nimport { GeospatialService } from '@app/klic-request-page/services/geospatial/geospatial.service';\r\nimport {\r\n MatLegacySnackBar as MatSnackBar, MatLegacySnackBarRef as MatSnackBarRef, LegacySimpleSnackBar as SimpleSnackBar\r\n} from '@angular/material/legacy-snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport { KlicRequestFormComponent } from './components/klic-request-form/klic-request-form.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-klic-request-page',\r\n templateUrl: './klic-request-page.component.html',\r\n styleUrls: ['./klic-request-page.component.scss'],\r\n})\r\nexport class KlicRequestPageComponent implements OnInit, OnDestroy {\r\n @ViewChild('klicRequestForm', { static: false }) klicRequestForm: KlicRequestFormComponent;\r\n\r\n klicProjectModel: KlicProjectModel;\r\n klicRequestsModel: Array;\r\n klicPolygons: Array;\r\n maxSideSize: number;\r\n isLAKPossible: boolean;\r\n informationPolygonBuffer = 0;\r\n informationPolygonFlatCoordinates: Array;\r\n selectedPolygon: { selectionPolygonId: string; selected: boolean };\r\n mode: ModeInterface;\r\n removeButtonDisabled: boolean;\r\n importedFeature: Feature;\r\n polygonInteractionsEnabled: boolean;\r\n modifyLAKEnabled: boolean;\r\n\r\n private destroy$ = new Subject();\r\n\r\n constructor(\r\n private formService: FormService,\r\n private mapService: MapService,\r\n private klicProjectService: KlicProjectService,\r\n private geospatialService: GeospatialService,\r\n private translateService: TranslateService,\r\n private snackBar: MatSnackBar,\r\n private route: ActivatedRoute,\r\n private cd: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.formService.klicProjectModelSubject\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((klicProjectModel: KlicProjectModel) => {\r\n if (klicProjectModel) {\r\n this.mode = this.klicProjectService.setMode();\r\n this.removeButtonDisabled = this.mode.removeButtonDisabled();\r\n this.polygonInteractionsEnabled = this.mode.polygonInteractionsEnabled();\r\n this.modifyLAKEnabled = this.mode.modifyLAKEnabled;\r\n this.klicPolygons = klicProjectModel.klicRequests.map(\r\n (klicRequest, index) =>\r\n new KlicPolygonModel(\r\n klicRequest.selectionPolygonId ?? (index + 1).toString(),\r\n klicRequest.selectionPolygonCoordinates\r\n ? this.parseStringToNumberCoordinates(klicRequest.selectionPolygonCoordinates)\r\n : [],\r\n false,\r\n klicRequest.informationPolygonCoordinates\r\n ? this.parseStringToNumberCoordinates(klicRequest.informationPolygonCoordinates)\r\n : []\r\n )\r\n );\r\n this.informationPolygonBuffer = klicProjectModel.klicRequests[0]?.informationPolygonBufferInMeters ?? 0;\r\n this.klicProjectModel = {\r\n ...klicProjectModel,\r\n contactData: {\r\n ...klicProjectModel.contactData,\r\n address: klicProjectModel.contactData.address,\r\n }\r\n };\r\n this.getGeoJSON(this.route.snapshot.queryParams.geojsonUrl);\r\n this.cd.detectChanges();\r\n }\r\n });\r\n this.formService.init();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.mapService.polygonValid = false;\r\n this.mapService.polygonCoordinates = [];\r\n this.klicProjectModel = null;\r\n this.klicRequestsModel = [];\r\n this.klicPolygons = [];\r\n this.mode = null;\r\n this.klicProjectService.klicRequest = null;\r\n this.formService.destroy();\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n public onKlicPolygonsChange(klicPolygons: Array): void {\r\n this.klicRequestsModel = klicPolygons.map(\r\n (klicPolygon) =>\r\n new KlicRequestModel(\r\n klicPolygon.id,\r\n klicPolygon.flatCoordinates.join(' '),\r\n klicPolygon.informationPolygonFlatCoordinates.map((coordinate) => Math.round(coordinate)).join(' '),\r\n this.informationPolygonBuffer\r\n )\r\n );\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onToolActionEnded() {\r\n // We have to check if this is defined because this function is also\r\n // called when getting back from klic project to projects list,\r\n // this component is destroyed and there is a console error\r\n // while trying to access function of undefined object.\r\n if (this.klicRequestForm) {\r\n this.klicRequestForm.clearHouseConnectionSketchAddresses();\r\n }\r\n }\r\n\r\n public onSelectedPolygonChange(selectedPolygon: { selectionPolygonId: string; selected: boolean }): void {\r\n this.selectedPolygon = selectedPolygon;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onInformationPolygonBufferChange(informationPolygonBuffer: number): void {\r\n this.informationPolygonBuffer = informationPolygonBuffer;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onInformationPolygonFlatCoordinatesChange(informationPolygonFlatCoordinates: Array): void {\r\n this.informationPolygonFlatCoordinates = informationPolygonFlatCoordinates;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public onKlicTypeChange(klicType: KlicType): void {\r\n if (this.maxSideSize === klicType.maxSideSize) {\r\n this.maxSideSize = null;\r\n this.cd.detectChanges();\r\n }\r\n this.isLAKPossible = klicType?.value !== 'Calamity';\r\n this.maxSideSize = klicType.maxSideSize;\r\n this.cd.detectChanges();\r\n }\r\n\r\n public getGeoJSON(geojsonUrl: string): void {\r\n if (geojsonUrl && this.mode.geojsonImportEnabled) {\r\n this.geospatialService.getGeoJSON(geojsonUrl).subscribe((geojson) => {\r\n this.importedFeature = this.geospatialService.getFeatureFromGeoJSON(geojson);\r\n if (!this.importedFeature) {\r\n this.openFileImportErrorSnackBar(\r\n 'Failed to import a file. Only the polygon is allowed. Recreate the geometry with the correct type.'\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private openFileImportErrorSnackBar(message: string): MatSnackBarRef {\r\n return this.snackBar.open(this.translateService.instant(message), 'OK');\r\n }\r\n\r\n private parseStringToNumberCoordinates(stringCoordinates: string): number[] {\r\n return stringCoordinates.split(' ').map((coordinate) => parseFloat(coordinate));\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { SharedModule } from '@shared';\r\nimport { MaterialModule } from '@app/material.module';\r\nimport { KlicRequestPageRoutingModule } from './klic-request-page-routing.module';\r\nimport { KlicRequestPageComponent } from './klic-request-page.component';\r\nimport { MapComponent } from './components/map/map.component';\r\nimport { KlicRequestFormComponent } from './components/klic-request-form/klic-request-form.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KlicTypeDialogComponent } from './components/klic-type-dialog/klic-type-dialog.component';\r\nimport { WorkTypeDialogComponent } from './components/work-type-dialog/work-type-dialog.component';\r\nimport {\r\n AddHcsByAddressDialogComponent\r\n} from './components/add-hcs-by-address-dialog/add-hcs-by-address-dialog.component';\r\nimport { KadasterAccountDialogComponent } from './components/kadaster-account-dialog/kadaster-account-dialog.component';\r\nimport {\r\n AddHcsByBagAddressesDialogComponent }\r\n from './components/add-hcs-by-bag-addresses-dialog/add-hcs-by-bag-addresses-dialog.component';\r\nimport {\r\n HouseConnectionSketchesTableComponent }\r\n from './components/house-connection-sketches-table/house-connection-sketches-table.component';\r\nimport {\r\n ContactPersonComponent } from './components/contact-person/contact-person.component';\r\nimport {\r\n InformationAboutPerformedWorkComponent }\r\n from './components/information-about-performed-work/information-about-performed-work.component';\r\nimport {\r\n HouseConnectionSketchesComponent } from './components/house-connection-sketches/house-connection-sketches.component';\r\nimport { MapLocationSearchComponent } from './components/map-location-search/map-location-search.component';\r\nimport {\r\n MapLocationSearchByCoordinatesComponent }\r\n from './components/map-location-search-by-coordinates/map-location-search-by-coordinates.component';\r\nimport { PolygonInfoComponent } from './components/polygon-info/polygon-info.component';\r\nimport {\r\n MapLocationSearchByPostCodeComponent }\r\n from './components/map-location-search-by-post-code/map-location-search-by-post-code.component';\r\nimport {\r\n MapLocationSearchByCityStreetComponent }\r\n from './components/map-location-search-by-city-street/map-location-search-by-city-street.component';\r\nimport { MapService } from '@app/klic-request-page/services/map/map.service';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport {\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n MAT_MOMENT_DATE_FORMATS,\r\n MomentDateAdapter,\r\n} from '@angular/material-moment-adapter';\r\nimport { AddressBookDialogComponent } from './components/address-book-dialog/address-book-dialog.component';\r\nimport { KlicRequestItemComponent } from './components/klic-request-item/klic-request-item.component';\r\nimport { KadasterAccountComponent } from './components/kadaster-account/kadaster-account.component';\r\nimport { ContextMenuModule } from 'ngx-contextmenu';\r\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\r\nimport { LayersComponent } from './components/layers/layers.component';\r\nimport { ContactDataComponent } from './components/contact-data/contact-data.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n TranslateModule.forChild(),\r\n MaterialModule,\r\n SharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KlicRequestPageRoutingModule,\r\n ContextMenuModule.forRoot(),\r\n ],\r\n declarations: [\r\n KlicRequestPageComponent,\r\n MapComponent,\r\n KlicRequestFormComponent,\r\n KlicTypeDialogComponent,\r\n WorkTypeDialogComponent,\r\n AddHcsByAddressDialogComponent,\r\n KadasterAccountDialogComponent,\r\n AddHcsByBagAddressesDialogComponent,\r\n HouseConnectionSketchesTableComponent,\r\n ContactPersonComponent,\r\n ContactDataComponent,\r\n InformationAboutPerformedWorkComponent,\r\n HouseConnectionSketchesComponent,\r\n MapLocationSearchComponent,\r\n MapLocationSearchByCoordinatesComponent,\r\n PolygonInfoComponent,\r\n MapLocationSearchByPostCodeComponent,\r\n MapLocationSearchByCityStreetComponent,\r\n AddressBookDialogComponent,\r\n KlicRequestItemComponent,\r\n KadasterAccountComponent,\r\n FileUploadComponent,\r\n LayersComponent,\r\n ],\r\n providers: [\r\n MapService,\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE],\r\n },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true, strict: true } },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n})\r\nexport class KlicRequestPageModule {}\r\n","export class KlicPolygonModel {\r\n constructor(\r\n public id: string,\r\n public flatCoordinates: Array,\r\n public selected?: boolean,\r\n public informationPolygonFlatCoordinates?: Array\r\n ) {}\r\n}\r\n","export class KlicRequestModel {\r\n constructor(\r\n public selectionPolygonId: string,\r\n public selectionPolygonCoordinates: string,\r\n public informationPolygonCoordinates?: string,\r\n public informationPolygonBufferInMeters?: number\r\n ) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n ClientAddressBookEntry,\r\n ClientDetails,\r\n ContactAddressBookEntry,\r\n ContactData\r\n} from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AddressBookService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getClientDetailsAddressEntries(searchGroupKey: string): Observable> {\r\n return this.getEntries(searchGroupKey, 'clientDetails');\r\n }\r\n\r\n public getContactDataAddressEntries(searchGroupKey: string): Observable> {\r\n return this.getEntries(searchGroupKey, 'contactData');\r\n }\r\n\r\n public deleteClientDetailsAddressEntry(\r\n companyName: string,\r\n contactPersonName: string,\r\n searchGroupKey: string\r\n ): Observable {\r\n return this.deleteEntryByCompanyName(companyName, contactPersonName, searchGroupKey, 'clientDetails');\r\n }\r\n\r\n public deleteContactDataAddressEntry(\r\n email: string,\r\n contactPersonName: string,\r\n searchGroupKey: string\r\n ): Observable {\r\n return this.deleteEntryByEmail(email, contactPersonName, searchGroupKey, 'contactData');\r\n }\r\n\r\n public upsertClientDetailsAddressEntry(\r\n clientDetails: ClientDetails,\r\n kadasterAccountId: string,\r\n searchGroupKey: string\r\n ): Observable {\r\n return this.httpClient.put(`/address-book/${searchGroupKey}/clientDetails/entries`, {\r\n clientDetails,\r\n kadasterAccountId,\r\n });\r\n }\r\n\r\n public upsertContactDataAddressEntry(\r\n contactData: ContactData,\r\n kadasterAccountId: string,\r\n searchGroupKey: string\r\n ): Observable {\r\n return this.httpClient.put(`/address-book/${searchGroupKey}/contactData/entries`, {\r\n contactData,\r\n kadasterAccountId\r\n });\r\n }\r\n\r\n private getEntries(searchGroupKey: string, pathSuffix: string): Observable> {\r\n return this.httpClient.get>(`/address-book/${searchGroupKey}/${pathSuffix}/entries`);\r\n }\r\n\r\n private deleteEntryByCompanyName(\r\n companyName: string,\r\n contactPersonName: string,\r\n searchGroupKey: string,\r\n pathSuffix: string\r\n ): Observable {\r\n return this.httpClient.delete(`/address-book/${searchGroupKey}/${pathSuffix}/entries`, {\r\n params: {\r\n companyName,\r\n contactPersonName,\r\n },\r\n });\r\n }\r\n\r\n private deleteEntryByEmail(\r\n contactPersonEmail: string,\r\n contactPersonName: string,\r\n searchGroupKey: string,\r\n pathSuffix: string\r\n ): Observable {\r\n return this.httpClient.delete(`/address-book/${searchGroupKey}/${pathSuffix}/entries`, {\r\n params: {\r\n contactPersonEmail,\r\n contactPersonName,\r\n },\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { BAGAddress, LocationCoordinates } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BagService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public getCities(cityQuery: string): Observable> {\r\n return this.httpClient.get>('/bag/cities', {\r\n params: {\r\n cityQuery,\r\n },\r\n });\r\n }\r\n\r\n public getStreets(city: string, streetQuery: string): Observable> {\r\n return this.httpClient.get>(`/bag/cities/${city}/streets`, {\r\n params: {\r\n streetQuery,\r\n },\r\n });\r\n }\r\n\r\n public getHouseNumbers(city: string, street: string, houseNumberQuery: string): Observable> {\r\n return this.httpClient.get>(`/bag/cities/${city}/streets/${street}/house-numbers`, {\r\n params: {\r\n houseNumberQuery,\r\n },\r\n });\r\n }\r\n\r\n public getHouseLetters(\r\n city: string,\r\n street: string,\r\n houseNumber: string,\r\n houseLetterQuery: string\r\n ): Observable> {\r\n return this.httpClient.get>(\r\n `/bag/cities/${city}/streets/${street}/house-numbers/${houseNumber}/house-letters`,\r\n {\r\n params: {\r\n houseLetterQuery,\r\n },\r\n }\r\n );\r\n }\r\n\r\n public getAddressAdditions(\r\n city: string,\r\n street: string,\r\n houseNumber: string,\r\n additionQuery: string\r\n ): Observable> {\r\n return this.httpClient.get>(\r\n `/bag/cities/${city}/streets/${street}/house-numbers/${houseNumber}/additions`,\r\n {\r\n params: {\r\n additionQuery,\r\n },\r\n }\r\n );\r\n }\r\n\r\n public getPostCodes(\r\n city: string,\r\n street: string,\r\n postCodeQuery: string,\r\n houseNumber?: string\r\n ): Observable> {\r\n const params = houseNumber ? { postCodeQuery, houseNumber } : { postCodeQuery };\r\n return this.httpClient.get>(`/bag/cities/${city}/streets/${street}/post-codes`, { params });\r\n }\r\n\r\n public getAddressByCityStreetHouseNumber(\r\n city: string,\r\n street: string,\r\n houseNumber: string,\r\n houseLetter?: string,\r\n addition?: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `/bag/addresses/cities/${city}/streets/${street}/house-numbers/${houseNumber}/validate`,\r\n {\r\n params: {\r\n houseLetter,\r\n addition,\r\n },\r\n }\r\n );\r\n }\r\n\r\n public getAddressByPostCodeHouseNumber(\r\n postCode: string,\r\n houseNumber: string,\r\n houseLetter?: string,\r\n addition?: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `/bag/addresses/post-codes/${postCode}/house-numbers/${houseNumber}/validate`,\r\n {\r\n params: {\r\n houseLetter,\r\n addition,\r\n },\r\n }\r\n );\r\n }\r\n\r\n public getBAGAddressesFromArea(coordinates: string): Observable> {\r\n return this.httpClient.post>('/bag/addresses/get-by-coordinates-from-area-500-x-500', {\r\n coordinates,\r\n });\r\n }\r\n\r\n public getBAGAddresses(coordinates: string): Observable> {\r\n return this.httpClient.post>('/bag/addresses/get-by-coordinates', {\r\n coordinates,\r\n });\r\n }\r\n\r\n public getCityStreetByPostCode(postCode: string): Observable {\r\n return this.httpClient.get(`/bag/addresses/post-codes/${postCode}/get-city-and-street`);\r\n }\r\n\r\n public getRangeAddressesByPostCode(\r\n postCode: string,\r\n houseNumberFrom: string,\r\n houseNumberTo: string,\r\n houseNumberType: string,\r\n houseLetterFrom: string,\r\n houseLetterTo: string\r\n ): Observable> {\r\n return this.httpClient.get>(`/bag/addresses/post-codes/${postCode}/get-range`, {\r\n params: {\r\n houseNumberFrom,\r\n houseNumberTo,\r\n houseNumberType,\r\n houseLetterFrom,\r\n houseLetterTo,\r\n },\r\n });\r\n }\r\n\r\n public getRangeAddressesByCityStreet(\r\n city: string,\r\n street: string,\r\n houseNumberFrom: string,\r\n houseNumberTo: string,\r\n houseNumberType: string,\r\n houseLetterFrom: string,\r\n houseLetterTo: string\r\n ): Observable> {\r\n return this.httpClient.get>(`/bag/addresses/cities/${city}/streets/${street}/get-range`, {\r\n params: {\r\n houseNumberFrom,\r\n houseNumberTo,\r\n houseNumberType,\r\n houseLetterFrom,\r\n houseLetterTo,\r\n },\r\n });\r\n }\r\n\r\n public getLocationByCityStreet(\r\n city: string,\r\n street: string,\r\n houseNumber: string,\r\n houseLetter: string,\r\n addition: string\r\n ): Observable {\r\n return this.httpClient.get(`/bag/addresses/cities/${city}/streets/${street}/location`, {\r\n params: {\r\n houseNumber,\r\n houseLetter,\r\n addition,\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n }\r\n\r\n public getLocationByPostCode(postCode: string, houseNumber?: string): Observable {\r\n return this.httpClient.get(`/bag/addresses/post-codes/${postCode}/location`, {\r\n params: {\r\n houseNumber,\r\n },\r\n });\r\n }\r\n\r\n public filterBAGAddresses(selectedBagAddresses: Array, addresses: Array): Array {\r\n selectedBagAddresses.forEach((bagAddress) => {\r\n if (addresses.find((address) => address.bagId === bagAddress.bagId)) {\r\n selectedBagAddresses = selectedBagAddresses.filter((address) => address.bagId !== bagAddress.bagId);\r\n }\r\n });\r\n\r\n return selectedBagAddresses;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { KlicProject } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { forkJoin, Observable, ReplaySubject, Subject, Subscription } from 'rxjs';\r\nimport { RequestContextService } from '@app/klic-request-page/services/request-context/request-context.service';\r\nimport { KlicProjectsService } from '@app/klic-request-page/services/klic-projects/klic-projects.service';\r\nimport { KlicDataService } from '@app/klic-request-page/services/klic-data/klic-data.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { KlicProjectService } from '@app/klic-request-page/services/klic-project/klic-project.service';\r\nimport { BagService } from '@app/klic-request-page/services/bag/bag.service';\r\nimport { KlicProjectModel } from '@app/klic-request-page/models/klic-project-model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormService {\r\n klicProject: KlicProject;\r\n\r\n requestSubscription$: Subscription;\r\n\r\n private _klicProjectModel: KlicProjectModel;\r\n private _klicProjectModelSubject: Subject = new Subject();\r\n\r\n constructor(\r\n private requestContextService: RequestContextService,\r\n private klicProjectsService: KlicProjectsService,\r\n private klicProjectService: KlicProjectService,\r\n private klicDataService: KlicDataService,\r\n private bagService: BagService,\r\n private route: ActivatedRoute\r\n ) {\r\n }\r\n\r\n get klicProjectModel() {\r\n return this._klicProjectModel;\r\n }\r\n\r\n set klicProjectModel(klicProjectModel: KlicProjectModel) {\r\n this._klicProjectModel = klicProjectModel;\r\n }\r\n\r\n get klicProjectModelSubject() {\r\n return this._klicProjectModelSubject;\r\n }\r\n\r\n public init(): void {\r\n this.requestSubscription$ = forkJoin(this.prepareObservables()).subscribe((response) => {\r\n this.fillModelWithDefaultValues();\r\n this.klicProject = response[1];\r\n\r\n // TODO: Remove when SOAP NKRP will be turned off.\r\n // This is added for backward compability and testing purpose.\r\n // For some time there will be two NKRP: SOAP and RestAPI.\r\n // Clients will be migrated partially, after all will be migrated\r\n // SOAP NKRP will be turned off and this can be removed.\r\n if (this.klicProject) {\r\n this.klicProject.klicRequests.forEach((klicRequest) => {\r\n if (klicRequest.informationAboutPerformedWork && klicRequest.isRestApiKlicRequest) {\r\n klicRequest.informationAboutPerformedWork.workType = klicRequest.informationAboutPerformedWork.workTypes;\r\n }\r\n });\r\n }\r\n\r\n this.klicProjectService.klicProject = response[1];\r\n this.fillModelWithKlicProjectValues(response[1]);\r\n this._klicProjectModelSubject.next(this.klicProjectModel);\r\n });\r\n }\r\n\r\n public destroy(): void {\r\n this.klicProject = null;\r\n this.klicProjectModel = null;\r\n this._klicProjectModelSubject.next(null);\r\n this.unsubscribe();\r\n }\r\n\r\n public prepareObservables(): Array> {\r\n const requestObservables: Array> = [this.requestContextService.getRequestContext()];\r\n\r\n if (this.route.snapshot.queryParams.klicProjectId) {\r\n requestObservables.push(this.klicProjectsService.getKlicProject(this.route.snapshot.queryParams.klicProjectId));\r\n }\r\n\r\n if (this.route.snapshot.queryParams.klicDataInfoId) {\r\n requestObservables.push(\r\n this.klicDataService.getExistingKlicProject(this.route.snapshot.queryParams.klicDataInfoId)\r\n );\r\n }\r\n\r\n return requestObservables;\r\n }\r\n\r\n public fillModelWithKlicProjectValues(klicProject: KlicProject): void {\r\n if (klicProject) {\r\n if (!this.requestContextService.findKadasterRelationById(klicProject.kadasterAccountId)) {\r\n delete klicProject.kadasterAccountId;\r\n }\r\n if (!this.requestContextService.informationPolygonEnabled) {\r\n this.removeInformationPolygonFromKlicProject(klicProject);\r\n }\r\n Object.assign(this.klicProjectModel, { ...klicProject, referenceAddition: this.getReferenceAddition() });\r\n }\r\n }\r\n\r\n /**\r\n * Fills the KLIC Request form with default values from the Request Context\r\n */\r\n public fillModelWithDefaultValues(): void {\r\n this.klicProjectModel = {\r\n ...this.klicProjectModel,\r\n reference: this.isAddingFromExistingProject() ? this.route.snapshot.queryParams.Reference : '',\r\n separator: this.requestContextService.projectNumberSeparator,\r\n searchGroupKey: this.requestContextService.searchGroupKey,\r\n kadasterAccountId: this.requestContextService.defaultKadasterRelation?.id,\r\n contactData: {\r\n ...this.requestContextService.user,\r\n address: this.requestContextService.userAddress,\r\n email: this.requestContextService.defaultKadasterRelation?.email || ''\r\n },\r\n klicRequests: [],\r\n clientDetails: {\r\n companyName: this.requestContextService.companyName,\r\n contactPerson: this.requestContextService.user,\r\n contactPersonAddress: this.requestContextService.userAddress,\r\n },\r\n };\r\n }\r\n\r\n public isAddingFromExistingProject(): boolean {\r\n return this.route.snapshot.queryParams.IsAddingForExistingProject === 'True';\r\n }\r\n\r\n private getReferenceAddition(): string {\r\n return this.klicProject.klicRequests?.length === 1\r\n ? this.klicProject.klicRequests[0].reference?.split(this.klicProjectModel.separator)[1]\r\n : '';\r\n }\r\n\r\n private removeInformationPolygonFromKlicProject(klicProject: KlicProject): void {\r\n klicProject.klicRequests.forEach((klicRequest) => {\r\n delete klicRequest.informationPolygonCoordinates;\r\n delete klicRequest.informationPolygonBufferInMeters;\r\n });\r\n }\r\n\r\n private unsubscribe(): void {\r\n this.requestSubscription$.unsubscribe();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { interval, Observable, Subject } from 'rxjs';\r\nimport { GeoJSON } from 'ol/format';\r\nimport Feature from 'ol/Feature';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport proj4 from 'proj4';\r\nimport { register } from 'ol/proj/proj4';\r\nimport { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport Polygon from 'ol/geom/Polygon';\r\nimport * as turf from '@turf/turf';\r\nimport { Coordinate } from 'ol/coordinate';\r\nimport { getArea } from 'ol/sphere';\r\nimport { Size } from 'ol/size';\r\nimport * as extent from 'ol/extent';\r\nimport { getSize } from 'ol/extent';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GeospatialService {\r\n private readonly CONVERSION_STATUS_TIMEOUT = 60;\r\n\r\n constructor(private httpClient: HttpClient, private httpBackend: HttpBackend) {\r\n this.registerEPSG28992Projection();\r\n }\r\n\r\n public getGeoJSON(geojsonUrl: string): Observable {\r\n // When injected, HttpBackend dispatches requests directly to the backend,\r\n // without going through the interceptor chain.\r\n const httpClient = new HttpClient(this.httpBackend);\r\n return httpClient.get(geojsonUrl);\r\n }\r\n\r\n public postFile(file: File): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n const fileExtension = this.getFileExtension(file);\r\n\r\n return this.httpClient.post(\r\n `/api/conversion/source/${fileExtension === 'gml' || fileExtension === 'xml' ? 'gml' : 'shp'}`,\r\n formData\r\n );\r\n }\r\n\r\n public getConversionStatusInInterval(\r\n id: string\r\n ): Observable<{ geojsonUrl: string; timeout: boolean; statusFailed: boolean; errorMessage: string }> {\r\n const destroy$ = new Subject();\r\n return interval(1000).pipe(\r\n takeUntil(destroy$),\r\n switchMap((timeout) =>\r\n this.getConversionStatus(id).pipe(\r\n map((data) => {\r\n if (data.status === 'Completed' || data.status === 'Failed' || timeout > this.CONVERSION_STATUS_TIMEOUT) {\r\n destroy$.next();\r\n destroy$.complete();\r\n return {\r\n geojsonUrl: data.blobUri,\r\n timeout: timeout > this.CONVERSION_STATUS_TIMEOUT,\r\n statusFailed: data.status === 'Failed',\r\n errorMessage: data.errorMessage,\r\n };\r\n }\r\n })\r\n )\r\n )\r\n );\r\n }\r\n\r\n public getConversionStatus(id: string): Observable {\r\n return this.httpClient.get(`/api/conversion/${id}/status`);\r\n }\r\n\r\n public getFeatureFromGeoJSON(geoJson: GeoJSON): Feature {\r\n const features: Feature[] = new GeoJSON()\r\n .readFeatures(geoJson, {\r\n dataProjection: 'EPSG:4326',\r\n featureProjection: 'EPSG:28992',\r\n })\r\n .filter((feature) => feature.getGeometry() instanceof Polygon);\r\n\r\n return features[0];\r\n }\r\n\r\n public getFileExtension(file: File): string {\r\n const fileNameArray = file.name.split('.');\r\n return fileNameArray[fileNameArray.length - 1];\r\n }\r\n\r\n public getShortestHorizontalOrVerticalDistance(vertices: Coordinate[]): number {\r\n let shortestDistance = Number.MAX_VALUE;\r\n for (let i = 0; i < vertices.length - 1; i++) {\r\n for (let j = i + 1; j < vertices.length - 1; j++) {\r\n const distance = this.calculateDistanceBetweenRDCoordinates(vertices[i], vertices[j]);\r\n shortestDistance = Math.min(distance, shortestDistance);\r\n }\r\n }\r\n return shortestDistance;\r\n }\r\n\r\n public getBufferPolygon(\r\n turfPolygon: turf.helpers.Feature,\r\n informationPolygonBuffer: number\r\n ): turf.Feature {\r\n return turf.buffer(turfPolygon, informationPolygonBuffer, { units: 'metres' });\r\n }\r\n\r\n public getTurfPolygonFromOLPolygonInFakeWgs(\r\n polygon: Polygon\r\n ): turf.helpers.Feature {\r\n return turf.polygon(polygon.getCoordinates().map((x) => x.map((y) => turf.toWgs84(y))));\r\n }\r\n\r\n public createBufferPolygonFeature(buffer: Polygon, selectionPolygon: Polygon): Polygon {\r\n const bufferExtent = buffer.getExtent();\r\n const bufferExtentSize = getSize(bufferExtent);\r\n\r\n buffer = this.intersectWithMaxSizeOfThePolygon(bufferExtentSize, bufferExtent, buffer);\r\n\r\n buffer.setCoordinates([buffer.getCoordinates()[0].map((coordinates) => coordinates.map((xy) => Math.floor(xy)))]);\r\n\r\n const tempIPCoordinates = (buffer.simplify(1) as Polygon).getCoordinates()[0];\r\n\r\n buffer.setCoordinates([tempIPCoordinates, selectionPolygon.getCoordinates()[0]]);\r\n\r\n if (this.getPolygonArea(buffer) !== 0) {\r\n return buffer;\r\n }\r\n }\r\n\r\n private calculateDistanceBetweenRDCoordinates(vertice1: Coordinate, vertice2: Coordinate) {\r\n const horizontalDistance = this.getHorizontalDistance(vertice1, vertice2);\r\n const verticalDistance = this.getVerticalDistance(vertice1, vertice2);\r\n\r\n return Math.sqrt(Math.pow(horizontalDistance, 2) + Math.pow(verticalDistance, 2));\r\n }\r\n\r\n private getHorizontalDistance(vertice1: Coordinate, vertice2: Coordinate): number {\r\n return Math.abs(vertice1[0] - vertice2[0]);\r\n }\r\n\r\n private getVerticalDistance(vertice1: Coordinate, vertice2: Coordinate): number {\r\n return Math.abs(vertice1[1] - vertice2[1]);\r\n }\r\n\r\n private getPolygonArea(polygon: Polygon): number {\r\n return Math.round(getArea(polygon));\r\n }\r\n\r\n private intersectWithMaxSizeOfThePolygon(\r\n bufferExtentSize: Size,\r\n bufferExtent: extent.Extent,\r\n bufferOl: Polygon\r\n ): Polygon {\r\n if (bufferExtentSize[0] > 500 || bufferExtentSize[1] > 500) {\r\n const centerPoint = this.getCenterPointOfExtent(bufferExtent);\r\n\r\n const maxSizePolygon = turf.polygon([\r\n [\r\n [centerPoint[0] - 250, centerPoint[1] - 250],\r\n [centerPoint[0] + 250, centerPoint[1] - 250],\r\n [centerPoint[0] + 250, centerPoint[1] + 250],\r\n [centerPoint[0] - 250, centerPoint[1] + 250],\r\n [centerPoint[0] - 250, centerPoint[1] - 250],\r\n ],\r\n ]);\r\n\r\n const turfPolygon = turf.polygon(bufferOl.getCoordinates());\r\n\r\n const intersected = turf.intersect(maxSizePolygon, turfPolygon);\r\n\r\n bufferOl = new Polygon(intersected.geometry.coordinates);\r\n }\r\n return bufferOl;\r\n }\r\n\r\n private getCenterPointOfExtent(bufferExtent: extent.Extent) {\r\n const centerX = bufferExtent[0] + (bufferExtent[2] - bufferExtent[0]) / 2;\r\n const centerY = bufferExtent[1] + (bufferExtent[3] - bufferExtent[1]) / 2;\r\n\r\n const centerPoint = [centerX, centerY];\r\n return centerPoint;\r\n }\r\n\r\n private registerEPSG28992Projection(): void {\r\n proj4.defs(\r\n 'EPSG:28992',\r\n // eslint-disable-next-line max-len\r\n '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs'\r\n );\r\n register(proj4);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { KlicProject } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class KlicDataService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public klicProjectExists(reference: string): Observable {\r\n return this.httpClient.post(`/api/klicdata/klicprojectexists`, {\r\n reference,\r\n });\r\n }\r\n\r\n public getExistingKlicProject(klicDataInfoId: string): Observable {\r\n return this.httpClient.get(`/api/klicdata/getfromexisting/${klicDataInfoId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { KlicProject, KlicRequest } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { KlicProjectStatus, KlicRequestStatus } from '@app/klic-projects/services/klic-projects.interface';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AddMode } from '@app/klic-request-page/classes/mode/add-mode';\r\nimport { KlicProjectMode } from '@app/klic-request-page/classes/mode/klic-project-mode';\r\nimport { ModeInterface } from '@app/klic-request-page/interfaces/mode.interface';\r\nimport { KlicRequestMode } from '@app/klic-request-page/classes/mode/klic-request-mode';\r\nimport { DraftMode } from '@app/klic-request-page/classes/mode/draft-mode';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class KlicProjectService {\r\n private _klicProject: KlicProject = null;\r\n private _klicRequest: KlicRequest = null;\r\n private _requestFromExisting = false;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this._requestFromExisting = this.route.snapshot.queryParams.requestFromExisting === 'true';\r\n }\r\n\r\n get klicProject() {\r\n return this._klicProject;\r\n }\r\n\r\n set klicProject(klicProject: KlicProject) {\r\n this._klicProject = klicProject;\r\n if (this.route.snapshot.queryParams.klicRequestId) {\r\n this.klicRequest = this.findKlicRequestById(this.route.snapshot.queryParams.klicRequestId);\r\n }\r\n }\r\n\r\n get klicRequest() {\r\n return this._klicRequest;\r\n }\r\n\r\n set klicRequest(klicRequest: KlicRequest) {\r\n this._klicRequest = klicRequest;\r\n }\r\n\r\n public setMode(): ModeInterface {\r\n if (this.klicProject && !this._requestFromExisting) {\r\n if (this.isKlicProjectStatusDraft()) {\r\n return new DraftMode();\r\n }\r\n if (this.klicRequest) {\r\n return new KlicRequestMode(\r\n this.klicRequest.canBeEdited,\r\n this.isKlicRequestStatusFailed(this.klicRequest),\r\n this.klicProject.klicRequests.length === 1\r\n );\r\n }\r\n return new KlicProjectMode(\r\n this.klicProjectCanBeEdited(),\r\n this.isKlicProjectStatusFailed(),\r\n this.klicProject.klicRequests.length === 1\r\n );\r\n } else {\r\n return new AddMode();\r\n }\r\n }\r\n\r\n public klicProjectCanBeEdited(): boolean {\r\n return !this.klicProject?.klicRequests.find((klicRequest) => !klicRequest.canBeEdited);\r\n }\r\n\r\n public klicProjectCanBeUpdated(): boolean {\r\n return !!this.klicProject?.klicRequests.find((klicRequest) => klicRequest.canBeEdited);\r\n }\r\n\r\n public isKlicProjectStatusFailed(): boolean {\r\n return this.klicProject?.status === KlicProjectStatus.Failed;\r\n }\r\n\r\n public isKlicProjectStatusDraft(): boolean {\r\n return this.klicProject?.status === KlicProjectStatus.Draft;\r\n }\r\n\r\n public isKlicRequestStatusFailed(klicRequest: KlicRequest): boolean {\r\n return (\r\n klicRequest?.status === KlicRequestStatus.Failed || klicRequest?.status === KlicRequestStatus.FailedByKadaster\r\n );\r\n }\r\n\r\n public findKlicRequestBySelectionPolygon(selectionPolygonId: string): KlicRequest {\r\n return this.klicProject?.klicRequests.find((klicRequest) => klicRequest.selectionPolygonId === selectionPolygonId);\r\n }\r\n\r\n public findKlicRequestById(klicRequestId: string): KlicRequest {\r\n return this.klicProject?.klicRequests.find((klicRequest) => klicRequest.id === klicRequestId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { KlicProject, KlicRequest } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class KlicProjectsService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n public postKlicRequest(request: KlicProject): Observable {\r\n return this.httpClient.post('/api/klicprojects', request);\r\n }\r\n\r\n public getKlicProject(id: string): Observable {\r\n return this.httpClient.get(`/api/klicprojects/${id}`);\r\n }\r\n\r\n public updateKlicProject(klicProjectId: string, klicProject: KlicProject): Observable {\r\n return this.httpClient.put(`/api/klicprojects/${klicProjectId}`, klicProject);\r\n }\r\n\r\n public updateKlicRequest(klicProjectId: string, klicRequestId: string, klicRequest: KlicRequest): Observable {\r\n return this.httpClient.put(`/api/klicprojects/${klicProjectId}/klicrequest/${klicRequestId}`, klicRequest);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { MapService } from '../map/map.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayersAvailabilityService {\r\n\r\n constructor(private httpClient: HttpClient, private mapService: MapService) { }\r\n\r\n public isLufolabelsLayerAvailable(): Observable {\r\n const params = {\r\n layer: 'lufolabels',\r\n tilematrixset: 'EPSG:28992',\r\n Service: 'WMTS',\r\n Request: 'GetTile',\r\n Version: '1.0.0',\r\n Format: 'image/png',\r\n TileMatrix: 'EPSG:28992:4',\r\n TileCol: 6,\r\n TileRow: 8\r\n };\r\n\r\n return this.httpClient.get(this.mapService.PDOK_SERVICES.GEODATA_WMTS, { responseType: 'text', params }).pipe(\r\n map((_) => true),\r\n catchError((_err, _caught) => of(false))\r\n );\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport Feature from 'ol/Feature';\r\nimport Polygon from 'ol/geom/Polygon';\r\n\r\n@Injectable()\r\nexport class MapService {\r\n readonly MAX_VERTICES = 50;\r\n readonly DEFAULT_LINE_STRING_BUFFER_VALUE = 10;\r\n readonly PDOK_SERVICES = {\r\n BRT_ACHTERGRONDKAART: 'https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0',\r\n BGT: 'https://service.pdok.nl/lv/bgt/wmts/v1_0',\r\n GEODATA_WMTS: 'https://service.pdok.nl/bzk/luchtfotolabels/wmts/v1_0',\r\n HWH_LUCHTFOTORGB_WMTS: 'https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0',\r\n KADASTRALE_KAART_WMS: 'https://service.pdok.nl/kadaster/kadastralekaart/wms/v5_0'\r\n };\r\n polygonCoordinates: Array = [];\r\n polygonValid = false;\r\n polygonFeature: Feature;\r\n\r\n constructor() {}\r\n\r\n get actualLineStringBufferValue(): string | number {\r\n return localStorage.getItem('defaultLineStringBufferValue')\r\n ? localStorage.getItem('defaultLineStringBufferValue')\r\n : this.DEFAULT_LINE_STRING_BUFFER_VALUE;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PolygonValidation } from '@app/klic-request-page/enums/polygon-validation.enum';\r\nimport { Size } from 'ol/size';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PolygonValidationService {\r\n isLAK = false;\r\n isLAKPossible: boolean;\r\n polygonSize: Size;\r\n maxSideSize: number;\r\n canRequestLargeAreaKlic = false;\r\n isAddingForExistingProject = false;\r\n\r\n constructor(private route: ActivatedRoute) {\r\n this.isAddingForExistingProject = this.route.snapshot.queryParams.IsAddingForExistingProject === 'True';\r\n }\r\n\r\n public validatePolygonSize(\r\n polygonSize: Size,\r\n maxSideSize: number,\r\n canRequestLargeAreaKlic: boolean,\r\n isLAKPossible: boolean\r\n ): PolygonValidation {\r\n this.polygonSize = polygonSize;\r\n this.maxSideSize = maxSideSize;\r\n this.canRequestLargeAreaKlic = canRequestLargeAreaKlic;\r\n this.isLAKPossible = isLAKPossible;\r\n\r\n if (this.isLargerThanKlicTypeMaxSize() && this.canRequestLargeAreaKlic) {\r\n return this.lakValidation();\r\n }\r\n\r\n return this.klicRequestValidation();\r\n }\r\n\r\n private klicRequestValidation(): PolygonValidation {\r\n this.isLAK = false;\r\n\r\n if (this.isLargerThanKlicTypeMaxSize()) {\r\n return PolygonValidation.TooLarge;\r\n } else {\r\n return PolygonValidation.None;\r\n }\r\n }\r\n\r\n private lakValidation(): PolygonValidation {\r\n this.isLAK = true;\r\n\r\n if (!this.isLAKPossible) {\r\n return this.klicRequestValidation();\r\n }\r\n\r\n if (this.isLargerThanLAKMaxSize()) {\r\n return PolygonValidation.TooLargeForLAK;\r\n }\r\n\r\n if (!this.canLAKBeRequestedForThisProject()) {\r\n return PolygonValidation.CannotRequestLAKForThisProject;\r\n }\r\n\r\n return PolygonValidation.None;\r\n }\r\n\r\n private isLargerThanKlicTypeMaxSize(): boolean {\r\n return this.polygonSize[0] > this.maxSideSize || this.polygonSize[1] > this.maxSideSize;\r\n }\r\n\r\n private isLargerThanLAKMaxSize(): boolean {\r\n return this.polygonSize[0] > 5000 || this.polygonSize[1] > 5000;\r\n }\r\n\r\n private canLAKBeRequestedForThisProject(): boolean {\r\n return !(this.isAddingForExistingProject && this.route.snapshot.queryParams.Reference?.length > 26);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { KadasterRelation, RequestContext } from '@app/klic-request-page/interfaces/klic-request.interface';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map, shareReplay } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RequestContextService {\r\n private _requestContext: RequestContext;\r\n private _requestContext$: Observable;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this._requestContext$ = this.httpClient\r\n .get('/api/RequestContext')\r\n .pipe(map((requestContext) => {\r\n requestContext.userAddress.countryCode = requestContext.userAddress.countryCode === 'NL'\r\n ? 'NLD'\r\n : requestContext.userAddress.countryCode;\r\n this._requestContext = requestContext\r\n\r\n return requestContext;\r\n }),\r\n shareReplay(1));\r\n }\r\n\r\n get requestContext() {\r\n return this._requestContext;\r\n }\r\n\r\n get canRequestLargeAreaKlic() {\r\n return this._requestContext?.region.settings.canRequestLargeAreaKlic;\r\n }\r\n\r\n get companyName() {\r\n return this._requestContext?.companyName;\r\n }\r\n\r\n get defaultKadasterAccount() {\r\n return this.kadasterAccounts?.find((kadasterAccount) => kadasterAccount.isDefault);\r\n }\r\n\r\n get defaultKadasterRelation() {\r\n return this.kadasterRelations?.find((kadasterRelation) => kadasterRelation.isDefault);\r\n }\r\n\r\n get informationPolygonEnabled() {\r\n return this._requestContext?.region.settings.informationPolygonEnabled;\r\n }\r\n\r\n get isParsingProjectNumberEnabled() {\r\n return this._requestContext?.region.settings.isParsingProjectNumberEnabled;\r\n }\r\n\r\n get kadasterAccounts() {\r\n return this._requestContext?.kadasterAccounts;\r\n }\r\n\r\n get kadasterRelations() {\r\n return this._requestContext?.kadasterRelations;\r\n }\r\n\r\n get numberOfDaysKlicShouldBeRequestedBeforeStartDate() {\r\n return this._requestContext?.region.settings.numberOfDaysKlicShouldBeRequestedBeforeStartDate;\r\n }\r\n\r\n get projectNumberSeparator() {\r\n return this._requestContext?.region?.settings?.projectNumberSeparator\r\n ? this._requestContext?.region?.settings?.projectNumberSeparator\r\n : ' ';\r\n }\r\n\r\n get searchGroupKey() {\r\n return this._requestContext?.searchGroupKey;\r\n }\r\n\r\n get shouldPerformRealKlicRequest() {\r\n return this._requestContext?.region.settings.shouldPerformRealKlicRequest;\r\n }\r\n\r\n get shouldPerformRestApiKlicRequest() {\r\n return this._requestContext?.region.settings.shouldPerformRestApiKlicRequest;\r\n }\r\n\r\n get user() {\r\n return this._requestContext?.user;\r\n }\r\n\r\n get userAddress() {\r\n return this._requestContext?.userAddress;\r\n }\r\n\r\n get workTypes() {\r\n return this._requestContext?.dictionaries.workTypes;\r\n }\r\n\r\n get countries() {\r\n return this._requestContext?.dictionaries.countries;\r\n }\r\n\r\n public getRequestContext(): Observable {\r\n return this._requestContext$;\r\n }\r\n\r\n public findKadasterRelationById(id: string): KadasterRelation {\r\n return this.kadasterRelations?.find((kadasterRelation) => kadasterRelation.id === id);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BlankValidator {\r\n static isBlank(control: AbstractControl): ValidationErrors | null {\r\n return control.value.trim().length ? null : { required: true };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ReferenceValidator {\r\n static referenceValidate(control: AbstractControl): ValidatorFn {\r\n const referenceAadditionControl = control.get('referenceAddition');\r\n const referenceControl = control.get('reference');\r\n\r\n const isReferenceAdditionDisabled = referenceAadditionControl.status === 'DISABLED';\r\n const referenceAddition = isReferenceAdditionDisabled ? undefined : referenceAadditionControl.value;\r\n\r\n const reference = referenceControl.value;\r\n const separator = control.get('separator').value;\r\n\r\n const fullReferenceLength = referenceAddition\r\n ? reference.length + separator.length + referenceAddition.length\r\n : reference.length;\r\n\r\n if (fullReferenceLength > 30) {\r\n referenceControl.setErrors({ ...referenceControl.errors, reference: true });\r\n referenceAadditionControl.setErrors({ ...referenceAadditionControl.errors, reference: true });\r\n } else {\r\n if (referenceControl.hasError('reference')) {\r\n delete referenceControl.errors.reference;\r\n referenceControl.updateValueAndValidity();\r\n }\r\n if (referenceAadditionControl.hasError('reference')) {\r\n delete referenceAadditionControl.errors.reference;\r\n referenceAadditionControl.updateValueAndValidity();\r\n }\r\n return null;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WorkTypesAmountValidator {\r\n static workTypesAmount(control: AbstractControl): ValidationErrors | null {\r\n return control.value.length > 6 ? { maxWorkTypesExceeded: true } : null;\r\n }\r\n}\r\n","/*\r\n * This module imports and re-exports all Angular Material modules for convenience,\r\n * so only 1 module import is needed in your feature modules.\r\n * See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.\r\n *\r\n * To optimize your production builds, you should only import the components used in your app.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n MatCommonModule,\r\n MatLineModule,\r\n MatNativeDateModule,\r\n MatPseudoCheckboxModule,\r\n MatRippleModule,\r\n} from '@angular/material/core';\r\nimport {\r\n MatLegacyOptionModule as MatOptionModule,\r\n} from '@angular/material/legacy-core';\r\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';\r\nimport { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';\r\nimport { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\r\nimport { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list';\r\nimport { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu';\r\nimport { MatLegacyPaginatorModule as MatPaginatorModule } from '@angular/material/legacy-paginator';\r\nimport { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar';\r\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\r\nimport { MatLegacyRadioModule as MatRadioModule } from '@angular/material/legacy-radio';\r\nimport { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle';\r\nimport { MatLegacySliderModule as MatSliderModule } from '@angular/material/legacy-slider';\r\nimport { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatLegacyTableModule as MatTableModule } from '@angular/material/legacy-table';\r\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\n@NgModule({\r\n exports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatCommonModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatLineModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatOptionModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatPseudoCheckboxModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSlideToggleModule,\r\n MatSliderModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n OverlayModule\r\n ],\r\n})\r\nexport class MaterialModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-shell',\r\n templateUrl: './shell.component.html',\r\n styleUrls: ['./shell.component.scss'],\r\n})\r\nexport class ShellComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { I18nModule } from '@app/i18n';\r\nimport { MaterialModule } from '@app/material.module';\r\nimport { ShellComponent } from './shell.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, TranslateModule, FlexLayoutModule, MaterialModule, I18nModule, RouterModule],\r\n declarations: [ShellComponent],\r\n})\r\nexport class ShellModule {}\r\n","import { Routes, Route } from '@angular/router';\r\n\r\nimport { ShellComponent } from './shell.component';\r\n\r\n/**\r\n * Provides helper methods to create routes.\r\n */\r\nexport class Shell {\r\n /**\r\n * Creates routes using the shell component and authentication.\r\n *\r\n * @param routes The routes to add.\r\n * @return The new route using shell as the base.\r\n */\r\n static childRoutes(routes: Routes): Route {\r\n return {\r\n path: '',\r\n component: ShellComponent,\r\n children: routes,\r\n // Reuse ShellComponent instance when navigating between child views\r\n data: { reuse: true },\r\n };\r\n }\r\n}\r\n","export const env: { [s: string]: (string | null); } = {\n 'npm_package_version': '3.2.0'\n};\n","// `.env.ts` is generated by the `npm run env` command\r\n// `npm run env` exposes environment variables as JSON for any usage you might\r\n// want, like displaying the version or getting extra config from your CI bot, etc.\r\n// This is useful for granularity you might need beyond just the environment.\r\n// Note that as usual, any environment variables you expose through it will end up in your\r\n// bundle, and you should not use it for any sensitive information like passwords or keys.\r\nimport { env } from './.env';\r\n\r\nexport const environment = {\r\n production: false,\r\n hmr: false,\r\n version: env.npm_package_version + '-dev',\r\n serverUrl: '',\r\n platformUrl: 'https://gciplatformdev.azurewebsites.net',\r\n defaultLanguage: 'en-US',\r\n supportedLanguages: ['en-US', 'nl'],\r\n productFruitsWorkspaceId: 'lxBev3b3WcTft0o9',\r\n defaultTimeZone: 'Europe/Amsterdam'\r\n};\r\n","import { NgModuleRef, ApplicationRef } from '@angular/core';\r\nimport { createNewHosts } from '@angularclass/hmr';\r\n\r\nexport function hmrBootstrap(module: any, bootstrap: () => Promise>) {\r\n let ngModule: NgModuleRef;\r\n module.hot.accept();\r\n\r\n bootstrap()\r\n .then((mod) => (ngModule = mod))\r\n .catch((err) => console.error(err));\r\n\r\n module.hot.dispose(() => {\r\n const appRef: ApplicationRef = ngModule.injector.get(ApplicationRef);\r\n const elements = appRef.components.map((c) => c.location.nativeElement);\r\n const makeVisible = createNewHosts(elements);\r\n ngModule.destroy();\r\n makeVisible();\r\n });\r\n}\r\n","/*\r\n * Entry point of the application.\r\n * Only platform bootstrapping code should be here.\r\n * For app-specific initialization, use `app/app.component.ts`.\r\n */\r\n\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from '@app/app.module';\r\nimport { environment } from '@env/environment';\r\nimport { hmrBootstrap } from './hmr';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nconst bootstrap = () => platformBrowserDynamic().bootstrapModule(AppModule);\r\n\r\nif (environment.hmr) {\r\n hmrBootstrap(module, bootstrap);\r\n} else {\r\n bootstrap().catch((err) => console.error(err));\r\n}\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["AuthService","constructor","queryStringIndex","window","location","href","indexOf","queryString","URLSearchParams","substring","token","get","platformToken","_token","_platformToken","factory","providedIn","CommonModule","HTTP_INTERCEPTORS","HttpClientModule","RouteReuseStrategy","RouterModule","RouteReusableStrategy","ApiPrefixInterceptor","ErrorHandlerInterceptor","TokenInterceptor","CoreModule","parentModule","Error","provide","useClass","multi","imports","environment","intercept","request","next","test","url","clone","serverUrl","handle","catchError","Logger","log","pipe","error","errorHandler","response","production","throwError","ConfirmationDialogComponent","authService","route","dialog","translateService","isPdokRequest","includes","isPlatformRequest","setHeaders","Authorization","status","openConfirmationDialog","dialogRef","open","width","disableClose","data","confirmationText","instant","confirmButtonText","afterClosed","subscribe","result","parent","snapshot","queryParams","platformUrl","LogLevel","enableProductionMode","Level","Warning","source","debug","objects","console","Debug","info","Info","warn","func","level","concat","apply","Outputs","forEach","output","shouldDetach","_route","store","_detachedTree","shouldAttach","retrieve","shouldReuseRoute","future","curr","routeConfig","reuse","Subject","takeUntil","untilDestroyedSymbol","Symbol","untilDestroyed","instance","destroyMethodName","originalDestroy","hasDestroyFunction","name","arguments","complete","MAT_LEGACY_DIALOG_DATA","MAT_DIALOG_DATA","ngOnInit","selectors","decls","vars","consts","template","i0","LoaderComponent","inputs","isLoading","size","message","NavigationEnd","NavigationStart","ApplicationInsights","Util","ApplicationInsightsLogger","instrumentationKey","router","appInsights","config","enableAutoRouteTracking","loadAppInsights","createRouterSubscription","logPageView","urlAfterRedirects","context","telemetryTrace","getRawUrl","trackPageView","uri","logEvent","properties","trackEvent","logMetric","average","trackMetric","logException","exception","severityLevel","trackException","logTrace","trackTrace","startNavigationEvent","traceID","generateW3CId","startTrackEvent","endNavigationEvent","stopTrackEvent","type","events","event","urlParts","split","length","EmptyLogger","_url","_name","_urlAfterRedirects","_properties","_average","_exception","_severityLevel","_message","ErrorHandler","ErrorHandlerService","telemetryService","handleError","logger","TelemetryService","Object","keys","isApplicationInsightsLogger","_logger","EventEmitter","MatLegacyPaginator","MatPaginator","MatPaginatorGotoComponent","pageIndexChanged","pageIndex","lengthChanged","updateGoto","pageSizeChanged","pageSize","goToPage","pageNumbers","pageLength","Math","ceil","i","push","paginationChange","pageEvt","emitPageEvent","goToChange","paginator","pageEvent","page","viewQuery","ctx","FlexLayoutModule","MaterialModule","TranslateModule","FormsModule","SharedModule","declarations","exports","PreloadAllModules","Shell","routes","childRoutes","path","loadChildren","then","m","KlicRequestPageModule","KlicProjectsModule","redirectTo","pathMatch","AppRoutingModule","forRoot","useHash","preloadingStrategy","merge","filter","map","switchMap","productFruits","AppComponent","activatedRoute","titleService","i18nService","requestContextService","init","defaultLanguage","supportedLanguages","language","navigator","onNavigationEnd","onLangChange","firstChild","outlet","title","setTitle","getRequestContext","requestContext","initProductFruits","ngOnDestroy","destroy","productFruitsWorkspaceId","username","user","BrowserModule","BrowserAnimationsModule","ShellModule","MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS","MAT_SNACK_BAR_DEFAULT_OPTIONS","MatLegacyPaginatorIntl","MatPaginatorIntl","TranslatableMatPaginatorIntl","AppModule","bootstrap","useValue","panelClass","I18nModule","enUS","nlNL","languageKey","extract","s","I18nService","setTranslation","localStorage","getItem","getBrowserCultureLang","isSupportedLanguage","find","supportedLanguage","startsWith","Boolean","use","currentLang","langChangeSubscription","setItem","lang","unsubscribe","max","prevPageLastItemIdx","currPageLastItemIdx","min","startIndex","endIndex","translateMatPaginator","translation","itemsPerPageLabel","nextPageLabel","previousPageLabel","firstPageLabel","lastPageLabel","animate","state","style","transition","trigger","MatLegacyTableDataSource","MatTableDataSource","KlicProjectStatus","KlicProjectType","KlicRequestStatus","SearchType","MatSort","$event","ctx_r42","ctx_r45","ctx_r47","KlicProjectsListComponent","klicProjectsService","success","pending","failed","isFailedOn","isPendingOn","isSuccessOn","Map","InProgress","Success","Failed","Scheduled","WaitingForRequest","RequestSent","WaitingForRetry","Added","Updated","FailedByKadaster","WaitingForAdditionalData","KadasterAccountFail","FailedWhenBeingSent","Draft","Done","Deleting","Dig","Orientation","Calamity","klicProjectsLoading","regionKey","initSearchTypes","initPaginator","displayKlicProjects","getKlicType","klicType","_klicProjectTypeLabel","addKlicRequest","navigate","queryParamsHandling","onKlicRequestClick","klicProjectId","klicRequestId","expand","klicProject","expandedKlicProject","displayKlicRequests","search","searchText","matSort","isKlicRequestFailed","pageChanged","sortChanged","sort","getKlicRequestStatus","klicRequest","_klicRequestStatusLabel","getKlicProjectStatus","_klicProjectStatusLabel","hasKlicProjectWarnings","viewKlicProject","id","showStartDate","showStatistics","klicRequests","filterKlicRequests","klicRequestsFilter","Array","klicRequestsStatistics","canDeleteKlicProject","openDeleteKlicProjectConfirmationDialog","getDeleteKlicProjectConfirmationText","discardButtonText","deleteKlicProject","getKlicProjectViewButtonText","klicRequestsCount","reference","dataSource","pageNumber","top","skip","orderBy","createSortExpression","getKlicProjects","toString","klicProjectsResult","totalKlicProjectCount","totalCount","results","showKlicRequestLoading","selectedSearchType","KlicRequest","getKlicRequests","klicRequestA","klicRequestB","selectionPolygonId","hideKlicRequestLoading","countKlicRequests","searchTypes","KlicProject","isKlicRequestsLoading","direction","active","height","minHeight","KlicRequestErrorComponent","ngOnChanges","errors","showErrors","getKlicRequestErrors","features","KlicProjectsComponent","component","KlicProjectsRoutingModule","forChild","ReactiveFormsModule","ScrollingModule","KlicProjectsService","httpClient","searchGroupKey","params","delete","Validators","AddressBookDialogComponent","combineLatest","of","debounceTime","mergeMap","AddressType","ContactBaseComponent","bagService","countries","personDetials","companyName","details","email","phone","city","address","street","houseNumber","houseLetter","postCode","addition","countryCode","contactPersonAddressAutocomplete","countryCodeValueChangesListener","postCodeAutoFill","openAddressBookDialog","addressType","addressBookLoading","getEntries","addressBook","dialogEntries","addressBookEntriesToDialogDataMapper","deleteEntryFunction","bind","fixNLCountryCode","onDialogClose","twoLettersIsoCodeNetherlands","threeLettersIsoCodeNetherlands","postCodeMaxLength","NL_POSTCODE_MAX_LENGTH","REST_OF_THE_WORLD_POSTCODE_MAX_LENGTH","cityAutocomplete","streetAutocomplete","houseNumberAutocomplete","houseLetterAutocomplete","postCodeAutocomplete","additionAutocomplete","valueChanges","getCities","cities","filteredCities","value","getStreets","streets","filteredStreets","getHouseNumbers","houseNumbers","filteredHouseNumbers","getHouseLetters","houseLetters","filteredHouseLetters","getPostCodes","postCodes","filteredPostCodes","getAddressAdditions","additions","filteredAdditions","fieldsValueChanges","fieldsTouched","touched","setValue","setValidators","required","maxLength","updateValueAndValidity","onlySelf","encapsulation","LineString","Feature","GeometryType","Draw","Point","LinearRing","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection","Style","Stroke","UntypedFormControl","turf","MapToolType","LineStringDraw","mapService","LINE_STRING","actualLineStringBufferValue","onLineStringBufferValueChanges","jsts","prepareParser","getToolName","addDrawInteraction","removeDrawInteraction","createDrawInstance","GEOMETRY_TYPE","maxPoints","MAX_VERTICES","condition","originalEvent","buttons","draw","addInteraction","on","onDrawEnd","onDrawStart","removeInteraction","actionInProgress","coordinatesLength","feature","getGeometry","getCoordinates","evt","lineString","target","lineStringFeature","polygonFeature","removeFeature","lineStringToPolygon","inputData","addFeature","setStyle","stroke","color","simplifyPolygonFeature","onToolActionEnded","emit","lineStringBuffer","jstsLineString","parser","read","bufferedLineString","buffer","QUADRANT_SEGMENTS","operation","BufferParameters","CAP_SQUARE","geom","getExteriorRing","write","valid","polygon","turfPolygon","simplifiedTurfPolygon","simplify","setCoordinates","geometry","coordinates","io","OL3Parser","inject","PolygonDraw","ModifyTool","ModifyLakTool","MapToolFactory","setMapTool","mapTool","Modify","ModifyLAK","_map","_source","_mapService","Collection","Snap","doubleClick","addModifyInteraction","addSnapInteraction","removeModifyInteraction","removeSnapInteraction","createModifyInstance","deleteCondition","onModifyStart","onModifyEnd","getArray","getType","modify","snap","Overlay","getSize","OverlayPositioning","unByKey","POLYGON","createMeasureTooltip","sketch","listener","polygonCoordinates","tooltipCoordinate","measureTooltipElement","innerHTML","formatPolygonInfo","measureTooltip","setPosition","resetRealTimeInfoInteraction","polygonHasValidGeometry","polygonExtent","getExtent","polygonSize","toFixed","getFlatCoordinates","parentNode","removeChild","document","createElement","className","element","offset","positioning","CENTER_CENTER","addOverlay","setOffset","firstAndLastCoordinatesAreEqual","notAllCoordinatesAreEqual","firstCoordinate","lastCoordinate","coordinate","Mode","AddMode","Add","submit","formControlsMustBeDisabled","isInformationPolygonBufferDisabled","showInformationAboutPerformedWork","isHCSDisabled","showSubmitButton","submitButtonText","isKadasterAccountButtonDisabled","removeButtonDisabled","polygonInteractionsEnabled","DraftMode","KlicProjectMode","edit","retry","singleKlicRequest","_edit","_retry","_singleKlicRequest","KlicRequestMode","SplitAlgorithmName","SplitAlgorithm","NewSplitAlgorithm","New","maxSideSize","polygons","isPolygonWide","widePolygonHandle","tallPolygonHandle","index","setId","processPolygons","polygonFeatures","minX","minY","maxX","maxY","temp","intersectPolygons","selectionPolygon","gridPolygon","olFeatures","intersection","intersect","isValidGeometryType","copyFeaturesFromGeometryCollection","olPolygon","olFeature","polygonGeometries","geometries","OldSplitAlgorithm","Old","newX","newY","idx","tempOl","tempFeature","SplitAlgorithmFactory","setSplitAlgorithm","splitAlgorithmName","geometryType","processedPolygon","removeDuplicatesFromPolygonCoordinates","roundPolygonCoordinates","xy","floor","coordinatesWithoutDuplicates","c","EMPTY","flatMap","AddHcsByAddressDialogComponent","formBuilder","snackBar","singleAddressForm","rangeCity","rangeAddressForm","rangeStreet","rangePostCode","houseNumberFrom","houseNumberTo","houseLetterFrom","houseLetterTo","houseNumberType","singleAddressFormInit","rangeAddressFormInit","autocompleteFunctionality","fillFieldsByPostCode","onSingleAddressSubmit","addAddressByCityStreetHouseNumber","addAddressByPostCodeHouseNumber","openAddressNotValidSnackBar","onRangeAddressSubmit","addRangeAddressesByCityStreet","addRangeAddressesByPostCode","openRangeAddressNotValidSnackBar","onDiscardChanges","close","singleAddressAutocomplete","rangeAddressesAutocomplete","cityFormControl","streetFormControl","postCodeFormControl","fillCityAndStreetByPostCode","getCityStreetByPostCode","addressObservable","patchCityAndStreetValues","patchValue","getAddressByCityStreetHouseNumber","catchCityStreetHouseNumberError","getAddressByPostCodeHouseNumber","catchPostCodeHouseNumberError","rangeAddressesLoading","getRangeAddressesByCityStreet","addresses","rangeAddressesHandle","catchCityStreetError","getRangeAddressesByPostCode","catchPostCodeError","filterBAGAddresses","selectedHCSAddresses","maxHCSAddressesAmountToSelect","openMaxHCSAddressesSnackBar","openAddressesNotFoundSnackBar","openSnackBar","amount","duration","group","SelectionModel","ctx_r18","ctx_r22","AddHcsByBagAddressesDialogComponent","onSubmit","isValid","selection","selected","onHouseNumberTypeChange","applyFilter","filterValue","trim","toLowerCase","filteredData","isAllSelected","numSelected","numRows","masterToggle","clear","row","select","isEmpty","selectedDisplayedColumns","ClientPerson","clientPersonDisplayedColumns","contactDataDisplayColumne","filterPredicate","addressBookEntry","onRowClick","removeAddressBookEntry","stopPropagation","splice","_updateChangeSubscription","closeDialog","ControlContainer","FormGroupDirective","ContactDataComponent","addressBookService","formData","selectedKadasterAccountChange","findKadasterRelationById","kadasterAccountId","fillContactDataForm","getContactDataAddressEntries","deleteContactDataAddressEntry","entry","contactData","outputs","useExisting","ContactPersonComponent","fillClientDetailsForm","contactPerson","contactPersonAddress","getClientDetailsAddressEntries","deleteClientDetailsAddressEntry","clientDetails","FileUploadComponent","geospatialService","_fileUpload$","importFile","file","files","isValidFileFormat","openInvalidFileFormatSnackBar","fileUploading","postFile","getConversionStatusInInterval","fileUploadDataHandle","logUploadedFileExtension","fileExtension","getFileExtension","regionName","region","logFileUploadTimeoutException","logFileUploadStatusFailedException","geojsonUrl","geojsonUrlChange","timeout","statusFailed","errorMessage","values","join","disabled","HouseConnectionSketchesTableComponent","ngAfterViewInit","notFoundInKadasterTooltip","notFoundInKadaster","HouseConnectionSketchesComponent","defaultAddresses","_defaultAddresses","addMultipleAddresses","_bagAddressesSubscription$","openAddHCSByAddressDialog","isValidAmountOfHCSAddresses","MAX_SELECTED_HCS_ADDRESSES","findAddressInSelectedHCS","addSingleAddress","openAddHCSByBAGAddressesDialog","bagAddressesLoadingEvent","getBAGAddresses","getBAGAddressesFromArea","catchBAGAddressesError","removeAddress","emitChange","removeAllAddresses","sortSelectedHouseConnectionSketches","a","b","selectedAddresses","bagAddress","bagId","logBAGAddressesException","loading","_bagAddressesLoading","bagAddressesLoading","WorkTypeDialogComponent","moment","InformationAboutPerformedWorkComponent","tz","defaultTimeZone","add","notes","informationAboutPerformedWork","workType","startDate","estimatedEndDate","workTypesList","workTypes","workTypesChange","workTypeNotProvided","workTypeNotProvidedError","workTypeNotProvidedErrorChange","isRequiredValidationEnabled","startDateValueChangesListener","openWorkTypeDialog","workTypeName","key","selectedWorkTypes","selectedWorkTypesChange","markAsTouched","displayWorkTypeName","additionalSelectedWorkTypesText","onMatDatepickerStartDateChange","defaultTimeZoneStartDate","emitEvent","onStartDateChange","onMatDatepickerEndDateChange","defaultTimeZoneEndDate","endDateChange","setMinEndDate","minEndDate","minStartDate","validateEndDate","startDateChange","endDate","setErrors","matDatepickerMin","KadasterAccountDialogComponent","kadasterRelation","KadasterAccountComponent","selectedKadasterAccountId","kadasterRelationId","selectedKadasterRelation","kadasterRelations","kadasterAccountNotProvided","kadasterAccountNotProvidedError","kadasterAccountNotProvidedErrorChange","openKadasterAccountDialog","ReferenceValidator","KlicTypeDialogComponent","KLIC_TYPES","DisabledKlicRequest","MatAccordion","forkJoin","BlankValidator","KlicRequestModel","WorkTypesAmountValidator","KlicRequestFormComponent","formService","klicProjectService","klicDataService","dateAdapter","cd","hostElement","label","pattern","isBlank","ContactData","setLocale","isAddingFromExistingProject","klicRequestsModel","_klicRequestsModel","showInformationPolygonBuffer","informationPolygonBuffer","referenceAddition","reset","updateKlicRequestsForm","initKlicRequestsForm","resetGeneralInformationAboutPerformedWork","_informationPolygonBuffer","informationPolygonBufferChange","informationPolygonFlatCoordinates","_informationPolygonFlatCoordinates","updateKlicRequestInformationPolygon","form","contactDataAddress","referenceSeparator","saveClientDetailsInAddressBook","saveContactDataInAddressBook","klicRequestsForView","combinedRequests","controls","selectionPolygonCoordinates","canBeEdited","houseConnectionSketchAddresses","houseConnectionSketchAddressesCntr","isDisabled","_disabledKlicRequests","dkr","localeCompare","undefined","numeric","sensitivity","isReferenceAdditionVisible","isParsingProjectNumberEnabled","getReferenceAdditionValue","formInit","klicRequestsReferencesAutocomplete","expandOpenedSingleKlicRequest","submitKlicRequestForm","klicRequestFormValidation","klicCanBeRequested","isPolygonTouchingInformationPolygon","submitDisabled","getAddressesBagIds","bagData","areAllValid","every","patchControlsWithBagData","mode","updateKlicRequest","logErrorAndNotify","navigateBack","requestFromExisting","returnUrl","navigateToReturnUrl","navigateToKlicProjectsList","openKlicTypeDialog","setKlicType","onAccordionExpand","setTimeout","selectedPolygonChange","onAccordionCollapsed","onSelectedKadasterAccountChange","klicRequestHouseConnectionSketch","bagAddresses","updateInformationAboutPerformedWorkDates","onEndDateChange","onSelectedWorkTypesChange","control","isKlicDisabled","isContactDataFieldDisabled","field","klicProjectModel","pristine","showInformationAboutPerformedWorkTitle","isKlicRequestMarkedAsInvalid","submitTouched","invalid","onBAGAddressesLoading","klicRequestsTrackByFn","_","item","clearHouseConnectionSketchAddresses","isKlicProjectStatusDraft","informationPolygonCoordinates","parsedPolygon","parseStringToPosition","parsedInformation","turfPolygonLine","turfInformation","lineIntersect","stringCoords","splitted","Number","VALID_PHONE_REGEX","numberDesignationBagId","saveInAddressBook","REFERENCE_VALIDATORS","requesterEmail","array","separator","validators","referenceValidate","fillKlicRequestsFromKlicProjectModel","selectKlicType","disableFormControls","mapKlicProjectModelRequestsToKlicRequestsModel","createKlicRequestForm","defaultKlicRequestReference","informationPolygonBufferInMeters","setReferenceValidators","isRealKlicRequest","shouldPerformRealKlicRequest","isRestApiKlicRequest","shouldPerformRestApiKlicRequest","workTypesAmount","shouldBeRequestedOn","disable","calculateShouldBeRequestedOnDate","calculateShouldBeRequestedOnDateForControl","today","dateAfterSubtraction","enabled","subtract","numberOfDaysKlicShouldBeRequestedBeforeStartDate","toDate","updateKlicRequestsShouldBeRequestedOnDate","prepareAddKlicRequestFormData","resetHouseConnectionSketches","updateKlicRequestsValueAndValidity","polygonValid","detectChanges","scrollToInvalidElement","klicTypeChange","formValidityChangeByKlicType","enable","setKlicRequestsEditable","invalidFormElements","nativeElement","querySelectorAll","tagName","scrollIntoView","behavior","block","fillKlicRequestsFormArray","klicRequestModel","findKlicRequestBySelectionPolygon","klicRequestForForm","round","selectedIndex","accordion","_headers","toArray","panel","toggle","onReferenceValueChanges","onReferenceAdditionValueChanges","param","setKlicRequestsReferences","iterable","klicPolygonId","rememberedKlicType","JSON","parse","addWithKlicProject","klicProjectExists","addKlic","prepareRequestObservables","postKlicRequest","openRequestSuccessSnackBar","onAction","navigateToAddKlicProjectView","catchRequestError","updateSingleKlicRequest","updateKlicProject","updatedKlicRequestControl","clientDetailsAddressBookHandle","upsertClientDetailsAddressEntry","saved","contactDataAddressBookHandle","upsertContactDataAddressEntry","getRawValue","requestObservable","clientDetailsAddressBookObservable","contactDataAddressBookObservable","observablesArray","errorEntry","d","messages","getErrorMessages","snackBarMessage","logMessage","addressData","logData","contactDataBagData","clientPersonBagData","validations","isCountryCodeNLD","getContactDataAddressBagId","getClientPersonAddressBagId","getAddressBagId","adressControl","klicRequestsNumber","projectId","addressBookSavedMsg","getAddressBookSavedMsg","traceId","addressBookSavedTypes","r","addressBookNamesByType","KlicRequestItemComponent","onKlicTypeClick","rememberKlicType","stringify","BaseLayers","LayersComponent","currentBaseLayer","layer","baseLayer","onAdditionalLayerToggled","additionalLayerToggled","onBaseLayerChanged","baseLayerChanged","layers","closeIconClicked","tap","MapLocationSearchByCityStreetComponent","addressLocationForm","addressLocationFormInit","addressLocationAutocomplete","onAddressLocationSubmit","searchLocationByCityStreet","getLocationByCityStreet","exact","addressLocationFound","catchAddressNotFoundError","MapLocationSearchByCoordinatesComponent","longitude","coordinatesLocationForm","latitude","coordinatesLocationFormInit","onCoordinatesLocationSubmit","coordinatesLocationFound","MapLocationSearchByPostCodeComponent","postCodeLocationForm","postCodeLocationFormInit","onPostCodeLocationSubmit","searchLocationByPostCode","getLocationByPostCode","postCodeLocationFound","MapLocationSearchComponent","onLocationFound","locationFound","onModeChangeToAddress","addressLocationMode","postCodeLocationMode","coordinatesLocationMode","onModeChangeToPostCode","onModeChangeToCoordinates","showRemoveAllTheMarkersButton","removeAllTheMarkers","MapZIndexes","BaseLayer","AdditionalLayer","Vector","OLMap","VectorSource","VectorLayer","Fill","CircleStyle","extent","Projection","Tile","WMTS","WMTSTileGrid","TileWMS","View","ScaleLine","MousePosition","createStringXY","KlicPolygonModel","Text","Icon","PolygonValidation","ContextMenuComponent","BehaviorSubject","ConnectionPositionPair","SeverityLevel","first","MapComponent","polygonValidationService","splitAlgorithmFactory","layersAvailabilityService","image","anchor","src","zIndex","code","units","projectionExtent","getPointResolution","resolution","getWidth","tile","WMTSOptions","PDOK_SERVICES","HWH_LUCHTFOTORGB_WMTS","labelsLayer","GEODATA_WMTS","isVisible","originX","originY","overlayX","overlayY","displayName","minZoom","WMSOptions","KADASTRALE_KAART_WMS","selectionPolygonColorCode","matrixIds","importedFeature","mapInitialized","_importedFeature","addImportedFeatureToMap","_maxSideSize","maxSideSizeChanged","isLAKPossible","_isLAKPossible","selectedPolygon","lakPolygons","switchPolygonSelection","klicPolygonsInput","klicPolygons","_klicPolygons","refreshInformationPolygon","klicPolygonsChange","orthoPhotoMode","Satellite","Streets","initMap","klicProjectPolygonInit","removePolygon","removePolygonFromMap","dismissOpenedSnackBar","removeInformationPolygon","selectMapTool","selectedMapTool","switchLineStringBufferFormControl","splitPolygon","getId","getStyle","setFill","whiteColorRGBA","setText","splitAlgorithm","addFeatures","isMapToolModifyLAK","mapLakFeaturesToOutput","onExactLocationFound","onInexactLocationFound","onLayerChange","removeOrthoPhotoLayers","addOrthoPhotoLayers","drawToolDisabled","onDrawTypeChange","drawType","removeMarkerFeatures","markerFeatures","markerFeature","removeMarkerFeature","markerFeatureAtPixel","getMarkerFeatureAtPixel","featuresAtPixel","getFeaturesAtPixel","getEventPixel","onModifyLAKClick","toggleModifyLAK","onAdditionalLayerToggle","additionalLayers","l","addLayer","removeLayer","unselectMapTool","mapToolType","mapToolFactory","orthoPhotoLayers","isLufolabelsLayerAvailable","isAvailable","errMsg","setLocationMarker","newMarkerFeature","createMarkerFeature","set","MARKER_STYLE","setGeometry","fitMapViewToMarkerFeatures","polygonFromMarkers","getView","fit","padding","setCenter","setZoom","selectedId","getText","vector","fill","selectionPolygonColorRGB","text","radius","setZIndex","BRT_ACHTERGRONDKAART","BGT","defaults","attributionOptions","collapsible","extend","projection","coordinateFormat","view","maxZoom","center","zoom","once","refreshMapSize","klicRequestPolygonInit","lakPolygonsInit","flatCoordinates","selectionPolygonFlatCoordinates","chunkArray","getArea","selectionPolygonFeature","polygonFeatureProcessing","interiorPoints","klicPolygon","getFlatInteriorPoint","featureA","featureB","interiorPointsPolygon","informationPolygonInit","generateInformationPolygonByCoordinates","fitMapViewToInformationPolygon","bufferFeature","flatArray","chunkSize","arrayLength","chunkedArray","chunk","slice","logMapTool","toolType","toolActionEnded","verticesCount","polygonVerticesCount","openMaxVerticesSnackBar","validateMainPolygon","generateInformationPolygonByBuffer","informationPolygonFlatCoordinatesChange","informationPolygon","setBufferFeatureStyle","getTurfPolygonFromOLPolygonInFakeWgs","getBufferPolygon","bufferOl","x","y","toMercator","createBufferPolygonFeature","informationPolygonFillColorRGBA","informationPolygonBorderColor","validatePolygonKinks","validatePolygonVertices","polygonSizeValidationResult","validatePolygonSize","polygonSizeValidationSuccessOnToolActionEnded","vertices","minDistance","getShortestHorizontalOrVerticalDistance","canRequestLargeAreaKlic","showInvalidPolygonMessage","polygonValidation","TooLarge","polygonTooLarge","TooLargeForLAK","polygonTooLargeForLAK","CannotRequestLAKForThisProject","cannotRequestLAKForThisProject","polygonSizeValidationSuccess","None","polygonSizeValidationSuccessOnKlicTypeChange","isLAK","lakPolygon","simplePolygon","_openedSnackBarRef","dismiss","polygonHasKinks","kinks","foundPolygon","selectionPolygonColorRGBA","translatedMessages","matrixSet","format","tileGrid","origin","getTopLeft","resolutions","wrapX","onResize","updateSize","PolygonInfoComponent","sizeX","sizeY","maxVertices","workTypesValidation","onSaveChanges","onCheckboxChange","onNotesChange","notesValidation","description","KlicRequestPageComponent","KlicRequestPageRoutingModule","klicProjectModelSubject","destroy$","setMode","modifyLAKEnabled","parseStringToNumberCoordinates","getGeoJSON","onKlicPolygonsChange","klicRequestForm","onSelectedPolygonChange","onInformationPolygonBufferChange","onInformationPolygonFlatCoordinatesChange","onKlicTypeChange","geojsonImportEnabled","geojson","getFeatureFromGeoJSON","openFileImportErrorSnackBar","stringCoordinates","parseFloat","MapService","DateAdapter","MAT_DATE_FORMATS","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MAT_MOMENT_DATE_FORMATS","MomentDateAdapter","ContextMenuModule","deps","useUtc","strict","AddressBookService","contactPersonName","deleteEntryByCompanyName","deleteEntryByEmail","put","pathSuffix","contactPersonEmail","BagService","cityQuery","streetQuery","houseNumberQuery","houseLetterQuery","additionQuery","postCodeQuery","post","headers","selectedBagAddresses","FormService","_klicProjectModel","_klicProjectModelSubject","requestSubscription$","prepareObservables","fillModelWithDefaultValues","fillModelWithKlicProjectValues","requestObservables","getKlicProject","klicDataInfoId","getExistingKlicProject","informationPolygonEnabled","removeInformationPolygonFromKlicProject","assign","getReferenceAddition","Reference","projectNumberSeparator","defaultKadasterRelation","userAddress","IsAddingForExistingProject","interval","GeoJSON","proj4","register","HttpClient","GeospatialService","httpBackend","registerEPSG28992Projection","FormData","append","getConversionStatus","CONVERSION_STATUS_TIMEOUT","blobUri","geoJson","readFeatures","dataProjection","featureProjection","fileNameArray","shortestDistance","MAX_VALUE","j","distance","calculateDistanceBetweenRDCoordinates","toWgs84","bufferExtent","bufferExtentSize","intersectWithMaxSizeOfThePolygon","tempIPCoordinates","getPolygonArea","vertice1","vertice2","horizontalDistance","getHorizontalDistance","verticalDistance","getVerticalDistance","sqrt","pow","abs","centerPoint","getCenterPointOfExtent","maxSizePolygon","intersected","centerX","centerY","defs","KlicDataService","KlicProjectService","_requestFromExisting","_klicProject","findKlicRequestById","_klicRequest","isKlicRequestStatusFailed","klicProjectCanBeEdited","isKlicProjectStatusFailed","klicProjectCanBeUpdated","LayersAvailabilityService","tilematrixset","Service","Request","Version","Format","TileMatrix","TileCol","TileRow","responseType","_err","_caught","DEFAULT_LINE_STRING_BUFFER_VALUE","PolygonValidationService","isAddingForExistingProject","isLargerThanKlicTypeMaxSize","lakValidation","klicRequestValidation","isLargerThanLAKMaxSize","canLAKBeRequestedForThisProject","shareReplay","RequestContextService","_requestContext$","_requestContext","settings","defaultKadasterAccount","kadasterAccounts","kadasterAccount","isDefault","dictionaries","referenceAadditionControl","referenceControl","isReferenceAdditionDisabled","fullReferenceLength","hasError","maxWorkTypesExceeded","MatCommonModule","MatLineModule","MatNativeDateModule","MatPseudoCheckboxModule","MatRippleModule","MatLegacyOptionModule","MatOptionModule","MatLegacyAutocompleteModule","MatAutocompleteModule","MatBadgeModule","MatLegacyButtonModule","MatButtonModule","MatButtonToggleModule","MatLegacyCardModule","MatCardModule","MatLegacyCheckboxModule","MatCheckboxModule","MatLegacyChipsModule","MatChipsModule","MatDatepickerModule","MatLegacyDialogModule","MatDialogModule","MatDividerModule","MatExpansionModule","MatLegacyFormFieldModule","MatFormFieldModule","MatGridListModule","MatIconModule","MatLegacyInputModule","MatInputModule","MatLegacyListModule","MatListModule","MatLegacyMenuModule","MatMenuModule","MatLegacyPaginatorModule","MatPaginatorModule","MatLegacyProgressBarModule","MatProgressBarModule","MatLegacyProgressSpinnerModule","MatProgressSpinnerModule","MatLegacyRadioModule","MatRadioModule","MatLegacySelectModule","MatSelectModule","MatSidenavModule","MatLegacySlideToggleModule","MatSlideToggleModule","MatLegacySliderModule","MatSliderModule","MatLegacySnackBarModule","MatSnackBarModule","MatSortModule","MatStepperModule","MatLegacyTableModule","MatTableModule","MatLegacyTabsModule","MatTabsModule","MatToolbarModule","MatLegacyTooltipModule","MatTooltipModule","MatTreeModule","OverlayModule","ShellComponent","children","env","hmr","version","npm_package_version","ApplicationRef","createNewHosts","hmrBootstrap","module","ngModule","hot","accept","mod","catch","err","dispose","appRef","injector","elements","components","makeVisible","enableProdMode","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[134]}