{"version":3,"file":"dynamic-display-shared.mjs","sources":["../../../projects/dynamic-display-shared/src/lib/dynamic-display-shared.service.ts","../../../projects/dynamic-display-shared/src/lib/dynamic-display-shared.component.ts","../../../projects/dynamic-display-shared/src/lib/dynamic-display-shared.module.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/guid.ts","../../../projects/dynamic-display-shared/src/lib/shared/documents/documents.helper.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-details.view-model.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/date.utility.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-type-instance.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/view-model.helper.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/long-text-dialog/long-text-dialog.component.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/long-text-dialog/long-text-dialog.component.html","../../../projects/dynamic-display-shared/src/lib/shared/store/filter.actions.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/logger.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/entity.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/device-type.service.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/data/api-base.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/documents/azure-storage.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/documents/storage.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/recursive-components.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/entities-collection-view/entities-collection-view.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/entities-list/entities-list.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/inner-entity-details/inner-entity-details.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/parameters-group/parameters-group.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/groups-collection/groups-collection.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/user-account/user-account.component.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/user-account/user-account.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/buildings-animation/buildings-animation.component.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/buildings-animation/buildings-animation.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/file-upload/file-upload.component.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/file-upload/file-upload.component.html","../../../projects/dynamic-display-shared/src/lib/shared/components/unauthorized-page/unauthorized-page.component.ts","../../../projects/dynamic-display-shared/src/lib/shared/components/unauthorized-page/unauthorized-page.component.html","../../../projects/dynamic-display-shared/src/lib/shared/auth/auth.config.model.ts","../../../projects/dynamic-display-shared/src/lib/shared/auth/identity-initializer.ts","../../../projects/dynamic-display-shared/src/lib/shared/custom-material-module.module.ts","../../../projects/dynamic-display-shared/src/lib/shared/documents/azure-file-upload-bl.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/entity-base.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/store/entity-management.actions.ts","../../../projects/dynamic-display-shared/src/lib/shared/auth/group-number.enum.ts","../../../projects/dynamic-display-shared/src/lib/shared/auth/user.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/update-entity.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/shared.module.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/action-notifier.service.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/deep-clone.utility.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/group-by.utility.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/notification.service.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/script-loader.utility.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/sort.utility.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/string.utility.ts","../../../projects/dynamic-display-shared/src/lib/infrastructure/pipes/safe-url.pipe.ts","../../../projects/dynamic-display-shared/src/lib/shared/auth/admin.guard.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/documents/requiredFileType.ts","../../../projects/dynamic-display-shared/src/lib/shared/helpers/scroll-page.helper.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/acumulated-data.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/comment.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entities.group.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-chart-color-palette.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-metadata.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-parameter.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-parameter-metadata.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/entity-status.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/field-type.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/filter-category.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/filter-data.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/filter-range-parameter.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/filter.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/housing-units-chart.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/housing-units-chart-header.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/housing-units-chart-categoty.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/process-status.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/process.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/sort-option.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/stacked-column-chart-view-model.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/target-chart.ts","../../../projects/dynamic-display-shared/src/lib/shared/model/year-target.ts","../../../projects/dynamic-display-shared/src/lib/shared/pipes/to-array.pipe.ts","../../../projects/dynamic-display-shared/src/lib/shared/services/idle.service.ts","../../../projects/dynamic-display-shared/src/lib/shared/store/entity-management.reducer.ts","../../../projects/dynamic-display-shared/src/public-api.ts","../../../projects/dynamic-display-shared/src/dynamic-display-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DynamicDisplaySharedService {\n\n  constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-dynamic-display-shared',\n  template: `\n    <p>\n      dynamic-display-shared works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class DynamicDisplaySharedComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DynamicDisplaySharedComponent } from './dynamic-display-shared.component';\n\n\n\n@NgModule({\n  declarations: [\n    DynamicDisplaySharedComponent\n  ],\n  imports: [\n  ],\n  exports: [\n    DynamicDisplaySharedComponent\n  ]\n})\nexport class DynamicDisplaySharedModule { }\n","export class Guid {\r\n  static newGuid() {\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n      var r = Math.random() * 16 | 0,\r\n        v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n      return v.toString(16);\r\n    });\r\n  }\r\n}\r\n","import { Guid } from \"../../infrastructure/guid\";\r\n\r\nexport function getFileName(entityId: string, parameterMetadataId: number, originalFileName: string) {\r\n  return `${Guid.newGuid()}_${parameterMetadataId}.${getFileExtension(originalFileName)}`;\r\n}\r\nexport function getFileExtension(fileName: string) {\r\n  return fileName ? fileName.slice((Math.max(0, fileName.lastIndexOf('.')) || Infinity) + 1) : '';\r\n}\r\n\r\nexport function applyDownloadLink(href: string, fileName: string | null, openInNewWindow = false) {\r\n  const downloadLink = document.createElement('a');\r\n  downloadLink.href = href;\r\n  if (openInNewWindow) {\r\n    downloadLink.setAttribute('target', '_blank');\r\n  }\r\n  if (fileName) {\r\n    downloadLink.setAttribute('download', fileName);\r\n  }\r\n  document.body.appendChild(downloadLink);\r\n  downloadLink.click();\r\n  downloadLink.parentNode!.removeChild(downloadLink);\r\n}\r\n","import { AnyParameter } from './entity-parameter';\r\nimport { Process } from './process';\r\nimport { Comment } from './comment';\r\nimport { EntityMetadata } from './entity-metadata';\r\n\r\nexport class EntityBase {\r\n  id!: number;\r\n  fixedId!: string;\r\n  isDisplayDescription!: boolean;\r\n  iconName!: string;\r\n  gisId!: string;\r\n  cssClasses!: string;\r\n  color!: string;\r\n  pluralEntitiesDescription!: string;\r\n  orderBy!: number;\r\n  comments!: Comment[];\r\n  presentationEntityId!: number;\r\n  superRange!: boolean;\r\n}\r\nexport class Entity extends EntityBase {\r\n  entityMetadata!: EntityMetadata;\r\n  parameters!: AnyParameter[];\r\n  processes!: Process[];\r\n\r\n}\r\n","import { AnyParameter } from './entity-parameter';\r\nimport { EntityBase } from './entity';\r\nimport { EntityTypeInstance } from './entity-type-instance';\r\nimport { ProcessViewModel } from './process';\r\nimport { Comment } from './comment';\r\n\r\n\r\nexport class ParametersGroup {\r\n    order!: number;\r\n    description!: string;\r\n    parameters!: AnyParameter[];\r\n}\r\n\r\nexport class EntityDetailsViewModel extends EntityBase {\r\n    type!: EntityTypeInstance;\r\n\r\n    description!: string;\r\n    shortDescription!: string;\r\n    // isDisplayDescription: boolean;\r\n    parametersGroups!: ParametersGroup[];\r\n    // headersParameters: ParametersGroup;\r\n    // subHeadersParameters: ParametersGroup;\r\n    // color: string;\r\n    // iconName: string;\r\n    // cssClasses: string;\r\n    // gisId: string;\r\n    gisIdFieldName!: string;\r\n    gisLayers!: string;\r\n    gisBs!: string;\r\n    override pluralEntitiesDescription!: string;\r\n    processes!: ProcessViewModel[];\r\n    override comments!: Comment[];\r\n}\r\nexport class MasterEntityDetailsViewModel extends EntityDetailsViewModel {\r\n    headersParameters: ParametersGroup | undefined;\r\n    subHeadersParameters: ParametersGroup | undefined;\r\n}\r\n","\r\nexport function getTime(date?: Date) {\r\n  return date != null ? new Date(date).getTime() : 0;\r\n}\r\n","export enum EntityTypeInstance {\r\n  range = 1,\r\n  taxationSubRange = 2,\r\n  program = 3,\r\n  building = 4,\r\n  apartment = 5,\r\n  blockParcel = 6,\r\n  contact = 7,\r\n  discussion = 10,\r\n  landZoning = 13,\r\n  parcel = 14,\r\n  localAuthoritieSubRange = 15,\r\n  tama38 = 16,\r\n  preliminaryRequest = 17,\r\n  declarationRequest = 18,\r\n  parcelRequest = 21,\r\n  constructionEvacuationRequest = 22,\r\n  barry = 23,\r\n  contract = 24,\r\n  entrepreneurContacts = 25,\r\n  RangeRequest = 26,\r\n  SubRangeRequest = 27,\r\n  task = 28,\r\n  permitCondition = 29,\r\n  programRequest = 30,\r\n  permitExpect = 31,\r\n  document = 32,\r\n  firstSort = 34,\r\n  secondSort = 35,\r\n  landUse = 36,\r\n  withoutFunding = 37,\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n  tiyuv_tama38 = 101,\r\n  request = 102,\r\n  permit = 103,\r\n  certificate = 104,\r\n  stage = 105,\r\n  use = 106\r\n\r\n}\r\n","\r\nimport { Entity, EntityBase } from './entity';\r\nimport { EntityDetailsViewModel, ParametersGroup, MasterEntityDetailsViewModel } from './entity-details.view-model';\r\nimport { AnyParameter, SimpleParameter, EntityParameter, EntityViewModelParameter } from './entity-parameter';\r\nimport { plural } from 'pluralize';\r\nimport { getTime } from '../../infrastructure/date.utility';\r\nimport { EntityTypeInstance } from './entity-type-instance';\r\nexport function getMasterEntityViewModel(entity: Entity): MasterEntityDetailsViewModel {\r\n  return getViewModel(entity, true) as MasterEntityDetailsViewModel;\r\n}\r\nexport function getEntityViewModel(entity: Entity): EntityDetailsViewModel {\r\n  return getViewModel(entity, false);\r\n}\r\n// function getTime(date?: Date) {\r\n//   return date != null ? new Date(date).getTime() : 0;\r\n// }\r\nfunction getViewModel(entity: Entity, isMaster: boolean): EntityDetailsViewModel {\r\n  const groupsMap = new Map<number, AnyParameter[]>();\r\n  entity.parameters.forEach((param) => {\r\n    const key = param.parametersGroupOrder;\r\n    const collection = groupsMap.get(key);\r\n    if (!collection) {\r\n      groupsMap.set(key, [param]);\r\n    } else {\r\n      collection.push(param);\r\n    }\r\n  });\r\n  // tslint:disable-next-line: one-variable-per-declaration\r\n  const groups: ParametersGroup[] = [...groupsMap.entries()].sort()\r\n    .map((params) => {\r\n      const grp = new ParametersGroup();\r\n      grp.order = params[0];\r\n      grp.parameters = params[1]\r\n        .map(p => {\r\n          if (isSimpleParameter(p)) {\r\n            return p;\r\n          } else {\r\n            const entityParameter = p as EntityParameter;\r\n            return {\r\n              ...entityParameter,\r\n              value: entityParameter.value ? entityParameter.value.map(ntt => getEntityViewModel(ntt)) : []\r\n            };\r\n          }\r\n        })\r\n        .sort((p1, p2) => p1.order - p2.order);\r\n      return grp;\r\n    }\r\n    );\r\n  const processes = entity.processes\r\n    .map(prcs => ({\r\n      ...prcs,\r\n      entities: prcs.entities.map(ntt => getEntityViewModel(ntt)),\r\n      editEntities: prcs.editEntities ? prcs.editEntities.map(ntt => getEntityViewModel(ntt)) : null,\r\n      // resAppExpansionView: prcs.resAppExpansionView ? getEntityViewModel(prcs.resAppExpansionView) : null,\r\n      resAppToggledView: prcs.resAppToggledView ? getEntityViewModel(prcs.resAppToggledView) : null,\r\n    }))\r\n    .sort((p1, p2) => p1.order - p2.order);\r\n  const comments = entity.comments ? entity.comments.map(c => {\r\n    const newComment = Object.assign(c, {});\r\n    newComment.date = new Date(c.date);\r\n    return newComment;\r\n  }).sort((c1, c2) => getTime(c2.date) - getTime(c1.date)) : [];\r\n\r\n  processes.forEach(p => {\r\n    p.statuses = p.statuses.sort((s1, s2) => s1.order - s2.order);\r\n    p.statuses.forEach(status => status.entitiesStatus = status.entitiesStatus.sort((e1, e2) => getTime(e2.date) - getTime(e1.date)));\r\n  });\r\n  const entityBase: EntityBase = entity as EntityBase;\r\n  const viewModel: EntityDetailsViewModel = {\r\n    ...entityBase,\r\n    id: entity.id,\r\n    description: entity.entityMetadata.description,\r\n    shortDescription: entity.entityMetadata.shortDescription,\r\n    type: entity.entityMetadata.id as EntityTypeInstance,\r\n    parametersGroups: groups,\r\n    processes,\r\n    comments,\r\n    gisIdFieldName: entity.entityMetadata.gisIdFieldName,\r\n    gisLayers: entity.entityMetadata.gisLayers,\r\n    gisBs: entity.entityMetadata.gisBs,\r\n  };\r\n  if (isMaster) {\r\n    const masterViewModel: MasterEntityDetailsViewModel = {\r\n      ...viewModel,\r\n      parametersGroups: groups.filter(group => group.order !== 0 && group.order !== 1),\r\n      headersParameters: groups.find(group => group.order === 0),\r\n      subHeadersParameters: groups.find(group => group.order === 1),\r\n    };\r\n    return masterViewModel;\r\n  } else {\r\n    return viewModel;\r\n  }\r\n\r\n}\r\n\r\nexport function isSimpleParameter(parameter: AnyParameter): boolean {\r\n  return parameter && 'valueCssClassName' in parameter;\r\n}\r\nexport function isEntityParameter(parameter: AnyParameter): boolean {\r\n  return parameter && 'isDisplayEntityType' in parameter;\r\n}\r\n\r\nexport function getPluralEntityTypeName(metadataId: number): string {\r\n  return plural(EntityTypeInstance[metadataId]);\r\n}\r\n\r\nexport function getSimpleParameters(parameters: AnyParameter[]): SimpleParameter[] {\r\n  return parameters.filter(p => isSimpleParameter(p)).map(p => p as SimpleParameter);\r\n}\r\n\r\nexport function getEntityParameters(parameters: AnyParameter[]): EntityViewModelParameter[] {\r\n  return parameters.filter(p => isEntityParameter(p)).map(p => p as EntityViewModelParameter);\r\n}\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n  selector: 'app-long-text-dialog',\r\n  templateUrl: './long-text-dialog.component.html',\r\n  styleUrls: ['./long-text-dialog.component.css']\r\n})\r\nexport class LongTextDialogComponent implements OnInit {\r\n\r\n  constructor(private dialogRef: MatDialogRef<LongTextDialogComponent>\r\n    ,         @Inject(MAT_DIALOG_DATA) public data: {title:string, longText: string }) { }\r\n\r\n  ngOnInit() {\r\n  }\r\n  close() {\r\n    this.dialogRef.close();\r\n  }\r\n}\r\n","<div class=\"dialog-container\">\r\n  <div class=\"dialog-title\" mat-dialog-title>\r\n    <div class=\"title\">{{data.title}}</div>\r\n    <a (click)=\"close()\" class=\"float-left-icon\">\r\n      <mat-icon>close</mat-icon>\r\n    </a>\r\n  </div>\r\n  {{data.longText}}\r\n</div>\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { EntityDetailsViewModel } from '../model/entity-details.view-model';\r\nimport { FilterCategory } from '../model/filter-category';\r\nimport { FilterRangeParameter } from '../model/filter-range-parameter';\r\n\r\n\r\nexport const addCategoriesFilter = createAction(\r\n  '[Filter] Add Categories Filters',\r\n  props<{ categoriesFilter: FilterCategory[] }>()\r\n);\r\n\r\nexport const clearFilter = createAction(\r\n  '[Filter] Clear Filter'\r\n);\r\n\r\nexport const removeCategoriesFilter = createAction(\r\n  '[Filter] Remove Category Filter',\r\n  props<{ categoryFilter: FilterCategory }>()\r\n);\r\nexport const removeCategoriesFilterRange = createAction(\r\n  '[Filter] Remove Category Filter Range',\r\n  props<{ categoryFilterRange: FilterRangeParameter }>()\r\n);\r\nexport const updateFreeFilter = createAction(\r\n  '[Filter] Update Free Filter',\r\n  props<{ freeFilter: string }>()\r\n);\r\nexport const updateRangesFilter = createAction(\r\n  '[Filter] Update Range Filter',\r\n  props<{ ranges: FilterRangeParameter[] }>()\r\n);\r\nexport const fetchFiltersOptions = createAction(\r\n  '[Filter] Fetch Filters Options'\r\n);\r\n\r\nexport const loadFiltersOptionsSuccess = createAction(\r\n  '[Filter] Load Filters Options',\r\n  props<{ categoriesFilter: FilterCategory[] }>()\r\n);\r\n\r\n// export const loadFiltersOptionsSuccess = createAction(\r\n//   '[Filter] Load Filters Options Success',\r\n\r\n// );\r\n\r\nexport const loadFiltersOptionsFailure = createAction(\r\n  '[Filter] Load Filters Options Failure',\r\n  props<{ error: any }>()\r\n);\r\n\r\nexport const downloadFileStarted = createAction(\r\n  '[Filter] Download File Started'\r\n);\r\n\r\nexport const downloadFileFinished = createAction(\r\n  '[Filter] Download File Finished'\r\n);\r\n\r\n// Statistic actions\r\n\r\nexport const updateSelectedChart = createAction(\r\n  '[Statistic] Update Selected Chart',\r\n  props<{ chartId: number, selectedChart: string }>()\r\n);\r\n\r\nexport const refreshEntities = createAction(\r\n  '[Filter] Refresh Entities',\r\n  props<{ entities: EntityDetailsViewModel[] }>()\r\n);\r\n\r\nexport const sortIdChange = createAction(\r\n  '[Filter] Sort id changed',\r\n  props<{ sortId: number | null | undefined }>()\r\n);\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport abstract class Logger {\r\n    fatal(message: string, ...additional: any[]) { }\r\n    error(message: string, ...additional: any[]) { }\r\n    warn(message: string, ...additional: any[]) { }\r\n    info(message: string, ...additional: any[]) { }\r\n    log(message: string, ...additional: any[]) { }\r\n    debug(message: string, ...additional: any[]) { }\r\n    trace(message: string, ...additional: any[]) { }\r\n}","import { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Entity } from '../../shared/model/entity';\r\n// import { searchCategoriesMock } from '../models/entity-mock';\r\nimport { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Store } from '@ngrx/store';\r\nimport { Logger } from '../../infrastructure/logger';\r\nimport { applyDownloadLink } from '../documents/documents.helper';\r\nimport { EntityTypeInstance } from '../model/entity-type-instance';\r\nimport { SortOption } from '../model/sort-option';\r\nimport { FilterCategory } from '../model/filter-category';\r\nimport { FilterRangeParameter } from '../model/filter-range-parameter';\r\nimport { HousingUnitsChartHeader } from '../model/housing-units-chart-header';\r\nimport { HousingUnitsChart } from '../model/housing-units-chart';\r\nimport { TargetChart } from '../model/target-chart';\r\nimport { downloadFileFinished, downloadFileStarted } from '../store/filter.actions';\r\nimport { FilterState } from '../store/filter.reducer';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class EntityService {\r\n  // public pageSize = 5;\r\n  // private _entities: Entity[] = [];\r\n  // private _entitiesSubject: Subject<Entity[]> = new BehaviorSubject<Entity[]>(this._entities);\r\n\r\n  public innerEntitiesProcessHeight: number[] = [];\r\n  public cardProcessHeight: number[] = [];\r\n\r\n  constructor(\r\n    private httpClient: HttpClient,\r\n    private store: Store<FilterState>, private logger: Logger,\r\n    @Inject('env') protected env: any) { }\r\n\r\n\r\n\r\n  public getEntities(filterCategories: FilterCategory[],filtersParametersRange: FilterRangeParameter[], filterTerm: string, skip: number, take: number, presentationTypeId: number,\r\n    administrativeCode: number, entrepreneurCode: number, sortId: number)\r\n    : Observable<Entity[]> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n\r\n      const url = `${this.getBaseUrl()}/entities`;\r\n      const filtersParameters = filterCategories.map(f => {\r\n        return {\r\n          parameterId: f.parameterId,\r\n          values: f.data.map((d: { dataItem: any; }) => {\r\n            return { value: d.dataItem };\r\n          })\r\n        };\r\n      }\r\n      );\r\n      const requestBody = {\r\n        filterTerm,\r\n        skip,\r\n        take,\r\n        presentationTypeId,\r\n        filtersParameters,\r\n        filtersParametersRange,\r\n        sortId\r\n      };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.post<Entity[]>(url, requestBody, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          observer.complete();\r\n          this.logger.debug(`${response.length} Entities have been fetched successfully`);\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching entities', error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public downloadResultFile(filterCategories: FilterCategory[], filterParametersRange: FilterRangeParameter[], filterTerm: string)\r\n    : Observable<{}> {\r\n    // : Observable<{ disposition: string; blobFile: Blob }> {\r\n    const self = this;\r\n    this.store.dispatch(downloadFileStarted());\r\n    return new Observable(observer => {\r\n\r\n      const url = `${this.getBaseUrl()}/ExcelExport`;\r\n      const filtersParameters = filterCategories.map(f => {\r\n        return {\r\n          parameterId: f.parameterId,\r\n          values: f.data.map((d: { dataItem: any; }) => {\r\n            return { value: d.dataItem };\r\n          })\r\n        };\r\n      }\r\n      );\r\n      const filtersParametersRange = filterParametersRange.map(f => {\r\n        return {\r\n          parameterMetadataId: f.parameterMetadataId,\r\n          valueFrom: f.valueFrom,\r\n          valueTo: f.valueTo\r\n        };\r\n      });\r\n      const requestBody = {\r\n        filterTerm,\r\n        skip: 0,\r\n        take: 1000000,\r\n        presentationTypeId: 7,\r\n        filtersParameters,\r\n        filtersParametersRange \r\n      };\r\n      const options = {\r\n        responseType: 'blob' as 'json',\r\n        observe: 'response' as 'body',\r\n        // withCredentials: true,\r\n        headers: new HttpHeaders({\r\n          'content-type': 'application/json',\r\n          'response-type': 'blob' as 'json',\r\n          'Access-Control-Expose-Headers': 'Content-Disposition'\r\n          // authorization: 'Bearer my JWT',\r\n          // accept: 'text/plain, */*',\r\n          // 'Cache-Control': 'no-cache',\r\n        })\r\n      };\r\n      this.httpClient.post(url, requestBody, options).subscribe(\r\n// @ts-ignore\r\n        (response: HttpResponse<Blob>) => {\r\n          const result = {\r\n// @ts-ignore\r\n            blobFile: new Blob([response.body], { type: response.headers.get('Content-Type') }),\r\n            disposition: response.headers.get('Content-Disposition')\r\n          };\r\n          const dataType = result.blobFile.type;\r\n          const binaryData = [];\r\n          binaryData.push(result.blobFile);\r\n          const href = window.URL.createObjectURL(new Blob(binaryData, { type: dataType }));\r\n          let filename = null;\r\n          if (result.disposition) {\r\n            const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n            const matches = filenameRegex.exec(result.disposition);\r\n            if (matches != null && matches[1]) {\r\n              filename = matches[1].replace(/['\"]/g, '');\r\n            }\r\n          }\r\n          applyDownloadLink(href, filename);\r\n          this.store.dispatch(downloadFileFinished());\r\n\r\n          // observer.next(result);\r\n          observer.complete();\r\n          this.logger.debug(`File have been fetched successfully`);\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching file', error);\r\n          observer.error(error);\r\n          this.store.dispatch(downloadFileFinished());\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n\r\n\r\n  getEntity(fixedId: string, entityType: EntityTypeInstance, presentationTypeId: number)\r\n    : Observable<Entity> {\r\n\r\n    const url = `${this.getBaseUrl()}/entities/${fixedId}/${Number(entityType)}/${presentationTypeId}`;\r\n    // todo: return native observble\r\n    return this.httpClient.get<Entity>(url);\r\n\r\n    // }\r\n  }\r\n\r\n  getEntityByBlockParcel(block: number, parcel: number, entityType: EntityTypeInstance, presentationTypeId: number)\r\n    : Observable<Entity> {\r\n    // let ntt = this.entities.find((e => e.id === entityCode));\r\n    // if (ntt) {\r\n    //   return of(ntt);\r\n    // } else {\r\n    const url = `${this.getBaseUrl()}/entities/${block}/${parcel}/${Number(entityType)}/${presentationTypeId}`;\r\n    // todo: return native observble\r\n    return this.httpClient.get<Entity>(url);\r\n\r\n    // }\r\n  }\r\n\r\n  getEntityBySpecificPresentation(presentationId: number, relatedEntityId: number)\r\n    : Observable<Entity> {\r\n    const url = `${this.getBaseUrl()}/entities/GetEntityBySpecificPresentation/${presentationId}/${relatedEntityId}`;\r\n    // todo: return native observble\r\n    return this.httpClient.get<Entity>(url);\r\n\r\n    // }\r\n  }\r\n\r\n  private getBaseUrl(): string {\r\n    return this.env.apiUrl;\r\n  }\r\n  public getSearchCategories(filterCategories: FilterCategory[], filterRangeParameters: FilterRangeParameter[], filterTerm: string, sortId: number)\r\n    : Observable<FilterCategory[]> {\r\n\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/GetFilterCategories`;\r\n      const filtersParameters = filterCategories.map(f => {\r\n        return {\r\n          parameterId: f.parameterId,\r\n          values: f.data.map((d: { dataItem: any; }) => {\r\n            return { value: d.dataItem };\r\n          })\r\n        };\r\n      }\r\n      );\r\n      const requestBody = {\r\n        filtersParameters, filterRangeParameters, filterTerm, sortId\r\n      };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.post<FilterCategory[]>(url, requestBody, options).subscribe(\r\n        response => {\r\n\r\n          observer.next(response);\r\n          self.logger.info('Fetch search categories completed');\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching search categories', error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public getHousingUnitsCharts(filterCategories: FilterCategory[],filtersCategoryRange: FilterRangeParameter[], filterTerm: string)\r\n    : Observable<HousingUnitsChart[]> {\r\n\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/GetHousingUnitsCharts`;\r\n      const filtersParameters = filterCategories.map(f => {\r\n        return {\r\n          parameterId: f.parameterId,\r\n          values: f.data.map((d: { dataItem: any; }) => {\r\n            return { value: d.dataItem };\r\n          })\r\n        };\r\n      }\r\n      );\r\n      const filtersParametersRange = filtersCategoryRange.map(f => {\r\n        return {\r\n          parameterMetadataId: f.parameterMetadataId,\r\n          valueFrom: f.valueFrom,\r\n          valueTo: f.valueTo\r\n        };\r\n      });\r\n      const requestBody = {\r\n        filtersParameters, filtersParametersRange, filterTerm \r\n      };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.post<HousingUnitsChart[]>(url, requestBody, options).subscribe(\r\n        response => {\r\n\r\n          observer.next(response);\r\n          self.logger.info('Fetch housing units charts completed');\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching housing units charts', error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public getHousingUnitsChartsHeaders(filterCategories: FilterCategory[],filtersCategoryRange: FilterRangeParameter[], filterTerm: string)\r\n    : Observable<HousingUnitsChartHeader[]> {\r\n\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/GetHousingUnitsChartsHeaders`;\r\n      const filtersParameters = filterCategories.map(f => {\r\n        return {\r\n          parameterId: f.parameterId,\r\n          values: f.data.map((d: { dataItem: any; }) => {\r\n            return { value: d.dataItem };\r\n          })\r\n        };\r\n      }\r\n      );\r\n      const filtersParametersRange = filtersCategoryRange.map(f => {\r\n        return {\r\n          parameterMetadataId: f.parameterMetadataId,\r\n          valueFrom: f.valueFrom,\r\n          valueTo: f.valueTo\r\n        };\r\n      });\r\n      const requestBody = {\r\n        filtersParameters,filtersParametersRange, filterTerm \r\n      };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.post<HousingUnitsChartHeader[]>(url, requestBody, options).subscribe(\r\n        response => {\r\n\r\n          observer.next(response);\r\n          self.logger.info('Fetch housing units charts headers completed');\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching housing units charts headers.', error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public getTargetCharts()\r\n    : Observable<TargetChart[]> {\r\n\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/GetTargetCharts`;\r\n      // const filtersParameters = filterCategories.map(f => {\r\n      //   return {\r\n      //     parameterId: f.parameterId,\r\n      //     values: f.data.map(d => {\r\n      //       return { value: d.dataItem };\r\n      //     })\r\n      //   };\r\n      // }\r\n      // );\r\n      const requestBody = {\r\n        //filtersParameters, filterTerm\r\n      };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.get<TargetChart[]>(url, options).subscribe(\r\n        response => {\r\n\r\n          observer.next(response);\r\n          self.logger.info('Fetch target charts completed');\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error('An error occurred while fetching target charts', error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public getStatusEntities(processId: number): Observable<Entity[]> {\r\n\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/GetStatusEntities`;\r\n      const requestBody = { processId };\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.httpClient.post<Entity[]>(url, requestBody, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Get entitiesStatus completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while get entitiesStatus`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  getEntityTemplate(entityTypeId: number, presentationTypeId: number, parentRangeId?: string): Observable<Entity> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      let url;\r\n      if (parentRangeId) {\r\n        url = `${this.getBaseUrl()}/entities/GetEntityTemplate/${entityTypeId}/${presentationTypeId}/${parentRangeId}`;\r\n      } else {\r\n        url = `${this.getBaseUrl()}/entities/GetEntityTemplate/${entityTypeId}/${presentationTypeId}/0`;\r\n\r\n      }\r\n      // const requestBody = { entityTypeId: entityTypeId };\r\n      // const options = {\r\n      //   headers: new HttpHeaders({\r\n      //     'Content-Type': 'application/json',\r\n      //   })\r\n      // };\r\n\r\n      this.httpClient.get<Entity>(url).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Add&Get entitiy completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while add&get entity`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  markSuperRange(entityId: string, isSuperRange: boolean): Observable<{}> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/MarkSuperRange/${entityId}`;\r\n      const options = {\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n      this.httpClient.post(url, isSuperRange, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Mark entity ${entityId} as super range completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while mark entity  ${entityId} as super range`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n\r\n\r\n  deleteEntity(entityId: number): Observable<Entity> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.getBaseUrl()}/entities/Delete/${entityId}`;\r\n      this.httpClient.delete<Entity>(url).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Delete entitiy completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while delete entity`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  getSortOptions(entityMetadataId: number)\r\n    : Observable<SortOption[]> {\r\n    const url = `${this.getBaseUrl()}/entities/GetSortOptions/${entityMetadataId}`;\r\n    // todo: return native observble\r\n    return this.httpClient.get<SortOption[]>(url);\r\n\r\n    // }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DeviceTypeService {\r\n\r\n  public isMobile: Subject<boolean> = new BehaviorSubject<boolean>(false);\r\n  public isMobile$: Observable<boolean> = this.isMobile.asObservable();\r\n\r\n  constructor() {\r\n    window.innerWidth <= 700 || window.innerHeight <= 550 ? this.isMobile.next(true) : this.isMobile.next(false);\r\n    window.addEventListener('resize', () => {\r\n      window.innerWidth <= 700 || window.innerHeight <= 550 ? this.isMobile.next(true) : this.isMobile.next(false);\r\n    });\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { Logger } from '../logger';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport abstract class ApiBaseService {\r\n\r\n\r\n  constructor(protected http: HttpClient,\r\n              protected logger: Logger, protected oauthService: OAuthService, @Inject('env') protected env: any) { }\r\n\r\n  protected get baseUrl(): string {\r\n    return `${this.env.apiUrl}`;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { UploadConfig, UploadParams } from './azure-file-upload-bl.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AzurestorageService {\r\n  static DefaultBlockSize = 1024 * 500;\r\n  constructor(private http: HttpClient) { }\r\n  generateBlobUrl(\r\n    params: UploadParams,\r\n    filename: string,\r\n    useAzureStorageEmulator = false,\r\n    azureStorageEmulatorBaseUrl = '') {\r\n    const url = useAzureStorageEmulator ? azureStorageEmulatorBaseUrl : `https://${params.storageAccount}.blob.core.windows.net`;\r\n    return `${url}/${params.containerName}/${filename}`;\r\n  }\r\n  private uploadFileInBlocks(reader: FileReader, state: any) {\r\n    if (!state.cancelled) {\r\n      if (state.totalBytesRemaining > 0) {\r\n        const fileContent = state.file.slice(state.currentFilePointer, state.currentFilePointer + state.maxBlockSize);\r\n        const blockId = state.blockIdPrefix + this.prependZeros(state.blockIds.length, 6);\r\n        state.blockIds.push(btoa(blockId));\r\n        reader.readAsArrayBuffer(fileContent);\r\n        state.currentFilePointer += state.maxBlockSize;\r\n        state.totalBytesRemaining -= state.maxBlockSize;\r\n        if (state.totalBytesRemaining < state.maxBlockSize) {\r\n          state.maxBlockSize = state.totalBytesRemaining;\r\n        }\r\n      } else {\r\n        this.commitBlockList(state);\r\n      }\r\n    }\r\n  }\r\n  private commitBlockList(state: { fileUrl: string; file: { type: any; }; blockIds: string | any[]; complete: () => void; error: (arg0: any) => void; }) {\r\n    const uri = state.fileUrl + '&comp=blocklist';\r\n    const headers = new HttpHeaders({ 'x-ms-blob-content-type': state.file.type });\r\n    let requestBody = '<?xml version=\\'1.0\\' encoding=\\'utf-8\\'?><BlockList>';\r\n    for (let i = 0; i < state.blockIds.length; i++) {\r\n      requestBody += '<Latest>' + state.blockIds[i] + '</Latest>';\r\n    }\r\n    requestBody += '</BlockList>';\r\n\r\n    this.http.put(uri, requestBody, { headers, responseType: 'text' })\r\n      .subscribe(elem => {\r\n        if (state.complete) {\r\n          state.complete();\r\n        }\r\n      }, err => {\r\n        console.log({ error: err });\r\n        if (state.error) {\r\n          state.error(err);\r\n        }\r\n      });\r\n  }\r\n  private initializeState(config: UploadConfig) {\r\n    let blockSize = AzurestorageService.DefaultBlockSize;\r\n    if (config.blockSize) {\r\n      blockSize = config.blockSize;\r\n    }\r\n    let maxBlockSize = blockSize;\r\n    let numberOfBlocks = 1;\r\n    const file = config.file;\r\n    const fileSize = file.size;\r\n    if (fileSize < blockSize) {\r\n      maxBlockSize = fileSize;\r\n    }\r\n    if (fileSize % maxBlockSize === 0) {\r\n      numberOfBlocks = fileSize / maxBlockSize;\r\n    } else {\r\n      numberOfBlocks = fileSize / maxBlockSize + 1;\r\n    }\r\n\r\n\r\n\r\n    return {\r\n      maxBlockSize, // Each file will be split in 256 KB.\r\n      numberOfBlocks,\r\n      totalBytesRemaining: fileSize,\r\n      currentFilePointer: 0,\r\n      blockIds: new Array(),\r\n      blockIdPrefix: 'block-',\r\n      bytesUploaded: 0,\r\n      submitUri: null,\r\n      file,\r\n      baseUrl: config.baseUrl,\r\n      sasToken: config.sasToken,\r\n      fileUrl: `${config.baseUrl}?${config.sasToken}`,\r\n      progress: config.progress,\r\n      complete: config.complete,\r\n      error: config.error,\r\n      cancelled: false\r\n    };\r\n  }\r\n  upload(config: UploadConfig){\r\n      const state = this.initializeState(config);\r\n\r\n      const reader = new FileReader();\r\n      reader.onloadend = (evt: any) => {\r\n        if (evt.target.readyState === 2 && !state.cancelled) {\r\n          const uri = state.fileUrl + '&comp=block&blockid=' + state.blockIds[state.blockIds.length - 1];\r\n          const requestData = evt.target.result;\r\n          const requestData2 = new Uint8Array(evt.target.result);\r\n          const headers = new HttpHeaders({ 'x-ms-blob-type': 'BlockBlob', 'Content-Type': 'application/octet-stream' });\r\n          this.http.put(uri, requestData, { headers, responseType: 'text' })\r\n            .subscribe(elem => {\r\n              state.bytesUploaded += requestData2.length;\r\n              const percentComplete = Math.round((state.bytesUploaded / state.file.size) * 1000) / 10;\r\n              if (state.progress) {\r\n                state.progress(percentComplete);\r\n              }\r\n\r\n              this.uploadFileInBlocks(reader, state);\r\n            }, err => {\r\n              console.log({ error: err });\r\n              if (state.error) {\r\n                state.error(err);\r\n              }\r\n            });\r\n        }\r\n      };\r\n\r\n      this.uploadFileInBlocks(reader, state);\r\n\r\n      return {\r\n        cancel: () => {\r\n          state.cancelled = true;\r\n        }\r\n      };\r\n  }\r\n  private prependZeros(num: string, length: number) {\r\n    let str = '' + num;\r\n    while (str.length < length) {\r\n      str = '0' + str;\r\n    }\r\n    return str;\r\n  }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { AzurestorageService } from './azure-storage.service';\r\nimport { ApiBaseService } from '../../infrastructure/data/api-base.service';\r\nimport { Logger } from '../../infrastructure/logger';\r\nimport { UploadFileData } from '../services/update-entity.service';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class StorageService extends ApiBaseService implements OnDestroy {\r\n\r\n  uploadConfig!: UploadConfig;\r\n  percent!: number;\r\n  currentFileName!: string;\r\n  private subscriptions: Subscription[] = [];\r\n\r\n  constructor(protected override http: HttpClient,\r\n    protected override logger: Logger, protected override oauthService: OAuthService, private blobService: AzurestorageService, @Inject('env') protected override env: any) {\r\n    super(http, logger, oauthService, env);\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.subscriptions.forEach(subscription => {\r\n      if (subscription) {\r\n        subscription.unsubscribe();\r\n      }\r\n    });\r\n  }\r\n  public getSAS(fileName: string): Observable<string> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.baseUrl}/storage/GetSAS?fileName=${fileName}`;\r\n      //   const requestBody = entityForUpdate;\r\n      const options = {\r\n        responseType: 'text' as 'json',\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/text',\r\n        })\r\n      };\r\n      self.subscriptions.push(this.http.get<string>(url, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while get SAS token`, error);\r\n          observer.error(error);\r\n        }\r\n      ));\r\n    });\r\n  }\r\n\r\n  public getReadSASTokenURL(fileName: string): Observable<string> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const url = `${this.baseUrl}/storage/GetReadSASTokenURL?fileName=${fileName}`;\r\n      const options = {\r\n        responseType: 'text' as 'json',\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/text',\r\n        })\r\n      };\r\n      self.subscriptions.push(this.http.get<string>(url, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while get SAS token url`, error);\r\n          observer.error(error);\r\n        }\r\n      ));\r\n    });\r\n  }\r\n\r\n  public UploadFilesData(uploadFilesData: UploadFileData[])\r\n    : Observable<boolean> {\r\n    const self = this;\r\n    let filesUploadCounter = 0;\r\n    return new Observable(observer => {\r\n      for (const fileData of uploadFilesData) {\r\n        // const originalFileName = fileData.file.name;\r\n        // const fileName = getFileName(entityId, fileData.parameterMetadataId, originalFileName);\r\n        self.subscriptions.push(this.uploadFileByToken(fileData.file, fileData.storedFileName, fileData.file.type)\r\n          .subscribe(isUpload => {\r\n            if (isUpload) {\r\n              filesUploadCounter++;\r\n              if (filesUploadCounter == uploadFilesData.length) {\r\n                observer.next(true);\r\n                observer.complete();\r\n              }\r\n            } else {\r\n              observer.error();\r\n            }\r\n          }, error => {\r\n            observer.error();\r\n          }));\r\n      }\r\n\r\n    });\r\n  }\r\n\r\n  // upload(formData: FormData) {\r\n  //   return this.http.post<{ path: string }>(\r\n  //     'https://localhost:5001/api/storage/uploadfile',\r\n  //     formData\r\n  //   );\r\n  // }\r\n  // public uploadFile(fileName: string)\r\n  //   : Observable<any> {\r\n\r\n  //   const self = this;\r\n\r\n  //   return new Observable(observer => {\r\n  //     const url = `${this.baseUrl}/storage/GetSAS?fileName=` + fileName;\r\n  //     //   const requestBody = entityForUpdate;\r\n  //     const options = {\r\n  //       responseType: 'text',\r\n  //       headers: new HttpHeaders({\r\n  //         'Content-Type': 'application/text',\r\n  //       })\r\n  //     };\r\n  //     this.http.get<string>(url).subscribe(\r\n  //       response => {\r\n  //         observer.next(response);\r\n\r\n  //         observer.complete();\r\n  //       },\r\n  //       error => {\r\n  //         self.logger.error(`An error occurred while get SAS token`, error);\r\n  //         observer.error(error);\r\n  //       }\r\n  //     );\r\n  //   });\r\n  // }\r\n\r\n  uploadFileByToken(file: File, fileName: string, mimeType: string): Observable<boolean> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      // this.signalr.startConnection().then(connectionId => {\r\n      // console.log('SIGNALR ConnectionId', connectionId);\r\n      self.currentFileName = fileName;\r\n      const fileToSAS = { FileName: fileName, MimeType: mimeType };\r\n      // const fileToSAS: FileToToken = { FileName: fileName, MimeType: mimeType };\r\n      self.subscriptions.push(self.getSasTokenWrite(fileName).subscribe(sas => {\r\n        self.subscriptions.push(self.uploadFile(file, sas, fileName).subscribe(isUpload => {\r\n          observer.next(isUpload);\r\n          //observer.complete();\r\n        }));\r\n      },\r\n      ));\r\n\r\n      // }).catch(\r\n      //   err => {\r\n      //     this.showErrr(err);\r\n      //   }\r\n      // );\r\n    });\r\n  }\r\n\r\n  getSasTokenWrite(file: string): Observable<string> {\r\n    //  return this.azureFileUploadService.getSasTokenWrite(file);\r\n    return this.getSAS(file);\r\n  }\r\n\r\n  uploadFile(file: File, token: string, fileName?: string): Observable<boolean> {\r\n    const self = this;\r\n    return new Observable(observer => {\r\n      const Config: UploadParams = {\r\n        sas: token,\r\n        storageAccount: this.env.azureStorageConfig.storageAccount,\r\n        containerName: this.env.azureStorageConfig.containerName\r\n      };\r\n      const res = false;\r\n      if (file !== null) {\r\n        const fileTitle = fileName == null ? file.name : fileName;\r\n        const baseUrl = 'https://' + Config.storageAccount + '/' + Config.containerName + '/' + fileTitle;\r\n        this.uploadConfig = {\r\n          baseUrl,\r\n          blockSize: 1024 * 500,\r\n          sasToken: Config.sas,\r\n          file,\r\n          complete: () => {\r\n            console.log('Transfer completed !');\r\n            observer.next(true);\r\n            observer.complete();\r\n            // this.saveFileSuccess(isSave);\r\n          },\r\n          error: (err) => {\r\n            console.log('Transfer Error:', err);\r\n            this.saveFileError(err);\r\n            observer.next(false);\r\n            observer.error(err);\r\n          },\r\n          progress: (percent) => {\r\n            this.percent = percent;\r\n          }\r\n        };\r\n        this.blobService.upload(this.uploadConfig);\r\n      }\r\n    });\r\n  }\r\n  saveFileError(error: any) {\r\n    console.log('saveFileError', error);\r\n  }\r\n}\r\nexport class UploadParams {\r\n  sas!: string;\r\n  storageAccount!: string;\r\n  containerName!: string;\r\n}\r\nexport class UploadConfig {\r\n  baseUrl!: string;\r\n  blockSize!: number;\r\n  sasToken!: string;\r\n  file!: File;\r\n  complete!: () => void;\r\n  error!: (err: any) => void;\r\n  progress!: (percent: any) => void;\r\n}\r\n\r\n\r\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AnyParameter, EntityViewModelParameter } from '../model/entity-parameter';\r\n\r\nimport { EventEmitter, Output, ViewChild, ElementRef, OnChanges, HostListener, ChangeDetectorRef } from '@angular/core';\r\nimport { EntityDetailsViewModel } from '../model/entity-details.view-model';\r\nimport { DeviceTypeService } from '../services/device-type.service';\r\nimport { EntityService } from '../services/entity.service';\r\n\r\nimport { Inject } from '@angular/core';\r\nimport { SimpleParameter } from '../model/entity-parameter';\r\nimport { applyDownloadLink } from '../documents/documents.helper';\r\nimport { StorageService } from '../documents/storage.service';\r\n\r\n\r\nimport { ParametersGroup } from '../model/entity-details.view-model';\r\nimport { isSimpleParameter, isEntityParameter, getSimpleParameters } from '../model/view-model.helper';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { LongTextDialogComponent } from './long-text-dialog/long-text-dialog.component';\r\nimport { Entity } from '../model/entity';\r\n\r\nimport { AfterViewInit } from '@angular/core';\r\nimport { EntitiesGroup } from '../model/entities.group';\r\nimport { Parameter } from '../model/entity-parameter';\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'app-entities-collection-view',\r\n  templateUrl: 'entities-collection-view/entities-collection-view.component.html',\r\n  styleUrls: ['entities-collection-view/entities-collection-view.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nclass EntitiesCollectionViewComponent implements OnInit {\r\n\r\n  @Input()\r\n  public entityParameter!: EntityViewModelParameter | AnyParameter | undefined;\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n}\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'app-entities-list',\r\n  templateUrl: 'entities-list/entities-list.component.html',\r\n  styleUrls: ['entities-list/entities-list.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nclass EntitiesListComponent implements OnInit {\r\n\r\n  @Input() public displayEntitiesInline!: boolean;\r\n  @Input() public displayEntityBackground!: boolean;\r\n  @Input() public entities!: EntityDetailsViewModel[];\r\n  @Input() public columnsNumber!: number;\r\n  @Input() public index!: number;\r\n  @Input() public isProcess!: boolean;\r\n  @Output() entityClickEmitter = new EventEmitter();\r\n\r\n  @ViewChild('spanElement', { read: ElementRef, static: false }) elementView!: ElementRef;\r\n  viewHeight!: number;\r\n  isMobile!: boolean;\r\n\r\n\r\n  constructor(private entittService: EntityService,\r\n    private deviceTypeService: DeviceTypeService, private changeDetector: ChangeDetectorRef) { }\r\n\r\n  ngOnInit() {\r\n    this.deviceTypeService.isMobile$.subscribe(isMobile => {\r\n      this.isMobile = isMobile;\r\n      this.changeDetector.markForCheck();\r\n    });\r\n  }\r\n  ngAfterViewInit() {\r\n    if (this.isProcess && this.elementView && !this.isMobile) {\r\n      this.equalHeightEntitiesList();\r\n    }\r\n  }\r\n\r\n  entityClick(entityDetailsViewModel: EntityDetailsViewModel) {\r\n    console.log(`from entities list: ${entityDetailsViewModel.id}`);\r\n\r\n    this.entityClickEmitter.emit(entityDetailsViewModel);\r\n  }\r\n\r\n  equalHeightEntitiesList() {\r\n    this.viewHeight = this.elementView.nativeElement.offsetHeight;\r\n    this.index === 0 ? this.entittService.innerEntitiesProcessHeight = [] : null;\r\n    if ((this.index % 2) === 0) {\r\n      if (!(this.entittService.innerEntitiesProcessHeight[this.index + 1])) {\r\n        this.entittService.innerEntitiesProcessHeight[this.index] = this.viewHeight;\r\n        document.getElementById(`entitiesList${this.index}`)!.style.height = this.entittService.innerEntitiesProcessHeight[this.index] + 'px';\r\n      }\r\n      else {\r\n        document.getElementById(`entitiesList${this.index}`)!.style.height = this.entittService.innerEntitiesProcessHeight[this.index] + 'px';\r\n      }\r\n    }\r\n    else {\r\n      if (this.entittService.innerEntitiesProcessHeight[this.index - 1] > this.viewHeight) {\r\n        this.entittService.innerEntitiesProcessHeight[this.index] = this.entittService.innerEntitiesProcessHeight[this.index - 1];\r\n        document.getElementById(`entitiesList${this.index}`)!.style.height = this.entittService.innerEntitiesProcessHeight[this.index] + 'px';\r\n      }\r\n      else {\r\n        this.entittService.innerEntitiesProcessHeight[this.index] = this.viewHeight;\r\n        if (this.entittService.innerEntitiesProcessHeight[this.index - 1]) {\r\n          this.entittService.innerEntitiesProcessHeight[this.index - 1] = this.entittService.innerEntitiesProcessHeight[this.index];\r\n          document.getElementById(`entitiesList${this.index - 1}`)!.style.height = this.entittService.innerEntitiesProcessHeight[this.index - 1] + 'px'\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize() {\r\n    if (this.index === undefined) {\r\n      this.entittService.innerEntitiesProcessHeight = [];\r\n    }\r\n    else if (!this.isMobile) {\r\n      this.equalHeightEntitiesList();\r\n    }\r\n  }\r\n\r\n}\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'app-inner-entity-details',\r\n  templateUrl: 'inner-entity-details/inner-entity-details.component.html',\r\n  styleUrls: ['inner-entity-details/inner-entity-details.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nclass InnerEntityDetailsComponent implements OnInit {\r\n\r\n  @Input()\r\n  public entityDetailsViewModel!: EntityDetailsViewModel | null;\r\n  @Input() public currentPage?: number;\r\n  @Output() expantionOpened = new EventEmitter();\r\n  @Output() expantionClosed = new EventEmitter();\r\n\r\n\r\n\r\n  mobWidth: any;\r\n  isDisplayDevIndications: boolean = this.env.isDisplayDevIndications;\r\n\r\n  constructor(private storageService: StorageService, @Inject('env') protected env: any) {\r\n    this.mobWidth = (window.screen.width);\r\n  }\r\n\r\n  ngOnInit() {\r\n\r\n  }\r\n\r\n  getMoreClasses(): string {\r\n    const defaultClass = 'entity-container';\r\n    if (this.entityDetailsViewModel!.cssClasses) {\r\n      console.log(this.entityDetailsViewModel!.cssClasses);\r\n      return `${defaultClass} ${this.entityDetailsViewModel!.cssClasses}`;\r\n    } else {\r\n      return defaultClass;\r\n    }\r\n  }\r\n\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize() {\r\n    this.mobWidth = (window.screen.width);\r\n  }\r\n\r\n  public downloadDocument(parameter: SimpleParameter) {\r\n    this.storageService.getReadSASTokenURL(parameter.storedFileName).subscribe(url => {\r\n      applyDownloadLink(url, parameter.value, true);\r\n    });\r\n  }\r\n\r\n  groupCollectionOpen() {\r\n    console.log(\"expantion opened event2 in inner-entity-details\");\r\n    this.expantionOpened.emit();\r\n  }\r\n  groupCollectionClosed() {\r\n    this.expantionClosed.emit();\r\n  }\r\n\r\n  getIsDisplayGroup(group: any): boolean {\r\n    let isDisplayGroup: boolean = false;\r\n    let innerGroup: any = group;\r\n    if (innerGroup) {\r\n      for (let i = 0; i < innerGroup.parameters.length; i++) {\r\n        if ((innerGroup.parameters[i].hideWhenEmptyValue === null || innerGroup.parameters[i].hideWhenEmptyValue === false) || (innerGroup.parameters[i].value !== null && innerGroup.parameters[i].value !== '')) {\r\n          isDisplayGroup = true;\r\n          break;\r\n        }\r\n        else {\r\n          isDisplayGroup = false;\r\n        }\r\n      }\r\n    }\r\n    return isDisplayGroup;\r\n  }\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'app-parameters-group',\r\n  templateUrl: 'parameters-group/parameters-group.component.html',\r\n  styleUrls: ['parameters-group/parameters-group.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nclass ParametersGroupComponent implements OnInit {\r\n  isMobile!: boolean;\r\n  isDisplayDevIndications: boolean = this.env.isDisplayDevIndications;\r\n  private _group!: ParametersGroup;\r\n  @Input() set group(value: ParametersGroup) {\r\n    this._group = value;\r\n    this.cd.markForCheck();\r\n  }\r\n\r\n  get group(): ParametersGroup {\r\n    return this._group;\r\n  }\r\n  get parameters() {\r\n    return this.group.parameters.filter(p => !this.currentPage || p.page == this.currentPage);\r\n  }\r\n  @Input() public cssClasses: string[] | undefined;\r\n  @Input() public currentPage?: number;\r\n  @Output()\r\n  downloadDocument = new EventEmitter<SimpleParameter>();\r\n  @Output() expantionOpened = new EventEmitter();\r\n  @Output() expantionClosed = new EventEmitter();\r\n\r\n  public groups: Map<string, Entity[]> | undefined;\r\n  private counter = 0;\r\n  constructor(public cd: ChangeDetectorRef, public dialog: MatDialog,\r\n    private deviceTypeService: DeviceTypeService, private changeDetector: ChangeDetectorRef,\r\n    @Inject('env') protected env: any\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.deviceTypeService.isMobile$.subscribe(isMobile => {\r\n      this.isMobile = isMobile;\r\n      this.changeDetector.markForCheck();\r\n    });\r\n\r\n  }\r\n  public getValueCssClassName(parameter: any): string {\r\n    if (parameter.metadata.fieldType === 8 && parameter.value && (parameter.value.slice(parameter.value.length - 1) !== '%')) {\r\n      parameter.value = (parameter.value) + '%';\r\n    }\r\n    return parameter.valueCssClassName ? parameter.valueCssClassName : 'simple-parameter';\r\n  }\r\n  public getParameterValue(parameter: any): string {\r\n    if (parameter.isMulti) {\r\n      return parameter.value.join(',')\r\n    }\r\n    else if (parameter.value) {\r\n      if (parameter.charactersNumber && parameter.value.length > parameter.charactersNumber) {\r\n        return parameter.value.slice(0, parameter.charactersNumber) + '...';\r\n      }\r\n      else if (parameter.value.length > 40 && this.isMobile) {\r\n        return parameter.value.slice(0, 40) + '...'\r\n      }\r\n      else if (parameter.value.length > 70) {\r\n        return parameter.value.slice(0, 70) + '...'\r\n      }\r\n      return parameter.value === \"False\" ? \"לא\" : parameter.value === \"True\" ? \"כן\" : parameter.value;\r\n    }\r\n    return parameter.value;\r\n  }\r\n  isLongValue(parameter: any): boolean {\r\n    if (parameter.value === this.getParameterValue(parameter) || (parameter.isMulti)) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n  public getLabelCssClassName(parameter: any): string {\r\n    return parameter.labelCssClassName ? parameter.labelCssClassName : 'simple-parameter';\r\n  }\r\n  public valueClick(parameter: any): void {\r\n    if (this.isLongValue(parameter)) {\r\n      const dialogRef = this.dialog.open(LongTextDialogComponent, {\r\n        width: '60%',\r\n        data: { title: parameter.displayName ? parameter.displayName : parameter.metadata.name, longText: parameter.value },\r\n        direction: 'rtl',\r\n      });\r\n    }\r\n  }\r\n  public isSimpleParameter(parameter: AnyParameter): boolean {\r\n    return isSimpleParameter(parameter);\r\n  }\r\n  public isEntityParameter(parameter: AnyParameter): boolean {\r\n    return isEntityParameter(parameter);\r\n  }\r\n  public log(message: any) {\r\n    console.log(message);\r\n  }\r\n  public getIconColor(iconName: string): string {\r\n    // temporary....\r\n    return iconName.includes('warning') ? 'warn' : 'primary';\r\n  }\r\n  public getIconClass(iconName: string): string {\r\n    // temporary....\r\n    return iconName.includes('warning') ? 'warning' : 'standard-icon';\r\n  }\r\n  public getLabelLocation(parameter: any): any {\r\n    if ((window.screen.width < 700) && (parameter.labelLocation === 3)) {\r\n      return 1;\r\n    } else {\r\n      return parameter.labelLocation;\r\n    }\r\n  }\r\n\r\n  public downloadDocumentEmit(parameter: any) {\r\n    this.downloadDocument.emit(parameter);\r\n  }\r\n\r\n  groupCollectionOpen() {\r\n    console.log(\"open expantion event1 in parameters-group\");\r\n    this.expantionOpened.emit();\r\n  }\r\n  groupCollectionClosed() {\r\n    this.expantionClosed.emit();\r\n  }\r\n\r\n}\r\n\r\n\r\n\r\n@Component({\r\n  selector: 'app-groups-collection',\r\n  templateUrl: 'groups-collection/groups-collection.component.html',\r\n  styleUrls: ['groups-collection/groups-collection.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nclass GroupsCollectionComponent implements OnInit, AfterViewInit {\r\n\r\n  @Input()\r\n  public entityParameter!: EntityViewModelParameter | AnyParameter | Parameter | undefined;\r\n  public groups!: EntitiesGroup[];\r\n\r\n  @Output() expantionOpened = new EventEmitter();\r\n  @Output() expantionClosed = new EventEmitter();\r\n\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    // @ts-ignore\r\n    this.groups = this.getChildsGroups(this.entityParameter!.value, this.entityParameter!.groupByParameterId);\r\n  }\r\n  ngAfterViewInit(): void {\r\n    // console.log(this.groups.length);\r\n  }\r\n  public getChildsGroups(entities: EntityDetailsViewModel[], groupByParameterId: number)\r\n    : EntitiesGroup[] {\r\n    const groups = new Map<string, EntityDetailsViewModel[]>();\r\n    for (let i = 0, ntt = entities[0]; i < entities.length; i++, ntt = entities[i]) {\r\n\r\n      // atention: it return only the first value of 'groupByParameterId'\r\n      const parameterKey = getSimpleParameters(ntt.parametersGroups.flatMap(group => group.parameters))\r\n        .find(pr => pr.metadata.id === groupByParameterId);\r\n      let key: string;\r\n      let nttWithoutParameter: EntityDetailsViewModel;\r\n      if (parameterKey) {\r\n        key = (parameterKey as SimpleParameter).metadata.name + ' ' + parameterKey.value;\r\n        nttWithoutParameter = {\r\n          ...ntt\r\n          , parametersGroups: [...ntt.parametersGroups.map(g => ({\r\n            ...g\r\n            , parameters: g.parameters\r\n              .filter(p => isSimpleParameter(p) ? (p as SimpleParameter).metadata.id !== parameterKey.metadata.id : true)\r\n          }))]\r\n        };\r\n        const collection = groups.get(key);\r\n        if (!collection) {\r\n          groups.set(key, [nttWithoutParameter]);\r\n        } else {\r\n          collection.push(nttWithoutParameter);\r\n        }\r\n      } else {\r\n        // key = 'ללא';\r\n      }\r\n    }\r\n    // console.log('in time ' + (this.counter++) + ' keys:' + groups.size);\r\n    const x = [...groups.entries()];\r\n    const y = [...groups.values()];\r\n    const z = [...groups.keys()];\r\n    return [...groups.entries()].map(entry => ({\r\n      groupKey: entry[0], entities: entry[1].sort((a, b) =>\r\n        a.parametersGroups.flatMap(ntt => ntt.parameters)[0].value.localeCompare(\r\n          b.parametersGroups.flatMap(ntt => ntt.parameters)[0].value))\r\n    }));\r\n  }\r\n\r\n  onExpantionOpened() {\r\n    this.expantionOpened.emit();\r\n  }\r\n  onExpantionClosed() {\r\n    this.expantionClosed.emit();\r\n  }\r\n}\r\n\r\nexport { EntitiesCollectionViewComponent, EntitiesListComponent, InnerEntityDetailsComponent, ParametersGroupComponent, GroupsCollectionComponent };\r\n","<div *ngIf=\"entityParameter\" class=\"entities-collection\">\r\n  <app-inner-entity-details *ngIf=\"entityParameter.value.length === 1\"\r\n    [entityDetailsViewModel]=\"entityParameter.value[0]\">\r\n  </app-inner-entity-details>\r\n  <div *ngIf=\"entityParameter.value.length > 1\">\r\n    <mat-expansion-panel *ngIf=\"$any(entityParameter).enableExpansion\">\r\n      <mat-expansion-panel-header>\r\n        <mat-panel-title>\r\n          {{entityParameter.value[0].pluralEntitiesDescription}}\r\n        </mat-panel-title>\r\n        <mat-panel-description>\r\n          {{entityParameter.value.length}} {{entityParameter.value[0].pluralEntitiesDescription}}\r\n        </mat-panel-description>\r\n      </mat-expansion-panel-header>\r\n      <app-entities-list [entities]=\"entityParameter.value\"></app-entities-list>\r\n\r\n    </mat-expansion-panel>\r\n    <div *ngIf=\"$any(!entityParameter).enableExpansion\">\r\n      <app-entities-list [entities]=\"entityParameter.value\"></app-entities-list>\r\n    </div>\r\n  </div>\r\n</div>","<div *ngIf=\"entities\">\r\n  <div id=\"column-count\" [style.column-count]=\"columnsNumber\" #entitiesListElement id=\"{{'entitiesList'+index}}\"\r\n    [class.entities-background]=\"isProcess\">\r\n    <div #spanElement>\r\n      <div *ngFor=\"let entity of entities; index as i\" [class.entity-item-inline]=\"displayEntitiesInline\"\r\n        [class.entity-item-in-collection]=\"!displayEntitiesInline\"\r\n        [class.border-buttom]=\"i==entities.length-1 && isProcess\">\r\n        <div [class.entity-background]=\"displayEntityBackground\">\r\n          <app-inner-entity-details (click)=\"entityClick(entity)\" [entityDetailsViewModel]=\"entity\">\r\n          </app-inner-entity-details>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>","<div *ngIf=\"entityDetailsViewModel\" [class]=\"getMoreClasses()\"\r\n[matTooltip]=\"isDisplayDevIndications? this.entityDetailsViewModel.type + ', ' + entityDetailsViewModel.presentationEntityId + ' (' + entityDetailsViewModel.id + ', ' + entityDetailsViewModel.fixedId + ')': '' \" matTooltipPosition=\"above\">\r\n  <!-- <span dir=\"ltr\" *ngIf=\"isDisplayDevIndications\"\r\n    class=\"dev-indication\">{{entityDetailsViewModel.presentationEntityId}} ({{entityDetailsViewModel.id}}, {{entityDetailsViewModel.fixedId}})</span> -->\r\n  <div *ngFor=\"let group of entityDetailsViewModel.parametersGroups; let i = index\" class=\"parameters-group\">\r\n    <span *ngIf=\"entityDetailsViewModel.isDisplayDescription && i === 0 &&  mobWidth > 700\"\r\n      class=\"title-parameter bold entity-description\">{{entityDetailsViewModel.description}}</span>\r\n      <app-parameters-group *ngIf=\"getIsDisplayGroup(group)\" class=\"group-delimitation\" (expantionClosed)=\"groupCollectionClosed()\"\r\n        (expantionOpened)=\"groupCollectionOpen()\" [group]=\"group\" (downloadDocument)=\"downloadDocument($event)\"\r\n        [style.width.%]=\"100\" [currentPage]=\"currentPage\">\r\n      </app-parameters-group>\r\n  </div>\r\n</div>\r\n","<div *ngIf=\"group\" class=\"layout\">\r\n  <span *ngFor=\"let parameter of parameters\" [class.snap-left]=\"$any(parameter).snapLeft\" class=\"parameters-group-collection\">\r\n    <span *ngIf=\"isSimpleParameter(parameter) && !($any(parameter).hideWhenEmptyValue && !parameter.value)\"\r\n      class=\"parameter-container\" [matTooltip]=\"isDisplayDevIndications? $any(parameter).metadata.id: null\" matTooltipPosition=\"right\">\r\n      <!-- <span *ngIf=\"isDisplayDevIndications\" class=\"parameter-metadata-id\">{{parameter.metadata.id}}</span> -->\r\n      <mat-icon *ngIf=\"$any(parameter).iconName\" [color]=\"getIconColor($any(parameter).iconName)\" [inline]=\"true\">\r\n        {{$any(parameter).iconName}}</mat-icon>\r\n      <span [ngSwitch]=\"getLabelLocation(parameter)\">\r\n        <!-- [class]=\"getIconClass(parameter.iconName)\"  -->\r\n        <span *ngSwitchCase=\"3\" class=\"parameter-label-stack-container-span\" [class.snap-left]=\"$any(parameter).snapLeft\">\r\n          <div class=\"parameter-label-stack-container\">\r\n            <div class=\"parameter-label-stack first {{getValueCssClassName(parameter)}}\"\r\n              [class.long-text]=\"isLongValue(parameter)\" (click)=\"valueClick(parameter)\">\r\n              {{getParameterValue(parameter)}}</div>\r\n            <div class=\"parameter-label-stack second {{getLabelCssClassName(parameter)}}\">{{parameter.displayName? parameter.displayName: $any(parameter).metadata.name}}\r\n            </div>\r\n          </div>\r\n        </span>\r\n        <span *ngSwitchCase=\"4\" class=\"parameter-label-stack-container-span\" [class.snap-left]=\"$any(parameter).snapLeft\">\r\n          <div class=\"parameter-label-stack-container\">\r\n            <div class=\"parameter-label-stack first {{getValueCssClassName(parameter)}}\"\r\n              [class.long-text]=\"isLongValue(parameter)\" (click)=\"valueClick(parameter)\">\r\n              {{parameter.displayName? parameter.displayName: $any(parameter).metadata.name}}</div>\r\n            <div class=\"parameter-label-stack second {{getLabelCssClassName(parameter)}}\">{{getParameterValue(parameter)}}\r\n            </div>\r\n          </div>\r\n        </span>\r\n        <span *ngSwitchCase=\"0\" class=\"{{getLabelCssClassName(parameter)}}\" [class.snap-left]=\"$any(parameter).snapLeft\">\r\n          <span *ngIf=\" !$any(parameter).isLink\" class=\"simple-text {{getValueCssClassName(parameter)}}\"\r\n            [class.long-text]=\"isLongValue(parameter)\" (click)=\"valueClick(parameter)\">{{getParameterValue(parameter)}}\r\n          </span>\r\n          <a *ngIf=\"$any(parameter).isLink\" href=\"{{parameter.value}}\"\r\n            target=\"_blank\">{{$any(parameter).linkDescription ? $any(parameter).linkDescription : parameter.value}}</a>\r\n\r\n        </span>\r\n        <span *ngSwitchCase=\"1\" [class.snap-left]=\"$any(parameter).snapLeft\">\r\n          <span class=\"simple-label {{getLabelCssClassName(parameter)}}\">{{parameter.displayName? parameter.displayName: $any(parameter).metadata.name}}\r\n          </span>\r\n\r\n          <span *ngIf=\"$any(parameter).metadata.fieldType !== 11; else fileView\">\r\n            <span *ngIf=\"!$any(parameter).isLink\" class=\"simple-text {{getValueCssClassName(parameter)}}\"\r\n              [class.long-text]=\"isLongValue(parameter)\"\r\n              (click)=\"valueClick(parameter)\">{{getParameterValue(parameter)}}\r\n            </span>\r\n          </span>\r\n\r\n          <ng-template #fileView>\r\n            <a *ngIf=\"parameter.value\" (click)=\"downloadDocumentEmit(parameter)\" class=\"file-link\"\r\n              target=\"_blank\"><span>\r\n                {{parameter.value}}\r\n              </span></a>\r\n            <span *ngIf=\"!parameter.value\" class=\"no-doc\">אין מסמך</span>\r\n          </ng-template>\r\n\r\n          <a *ngIf=\"$any(parameter).isLink\" href=\"{{parameter.value}}\" target=\"_blank\">{{$any(parameter).linkDescription}}</a>\r\n        </span>\r\n\r\n        <span *ngSwitchCase=\"2\" [class.snap-left]=\"$any(parameter).snapLeft\">\r\n          <span *ngIf=\"!$any(parameter).isLink\" class=\"simple-label {{getValueCssClassName(parameter)}}\"\r\n            [class.long-text]=\"isLongValue(parameter)\" (click)=\"valueClick(parameter)\">{{getParameterValue(parameter)}}\r\n          </span>\r\n          <span class=\"simple-text {{getLabelCssClassName(parameter)}}\">{{parameter.displayName? parameter.displayName: $any(parameter).metadata.name}}\r\n          </span>\r\n\r\n          <a *ngIf=\"$any(parameter).isLink\" href=\"{{parameter.value}}\" target=\"_blank\">{{$any(parameter).linkDescription}}</a>\r\n        </span>\r\n      </span>\r\n\r\n    </span>\r\n\r\n    <span *ngIf=\"isEntityParameter(parameter)\" >\r\n\r\n     <app-groups-collection (expantionClosed)=\"groupCollectionClosed()\" (expantionOpened)=\"groupCollectionOpen()\"  *ngIf=\"$any(parameter).groupByParameterId\" [entityParameter]=\"parameter\" class=\"group-collection\">\r\n      </app-groups-collection>\r\n      <app-entities-collection-view *ngIf=\"!$any(parameter).groupByParameterId\" [entityParameter]=\"parameter\">\r\n      </app-entities-collection-view>\r\n    </span>\r\n  </span>\r\n\r\n</div>\r\n","<div *ngIf=\"groups\">\r\n  <mat-accordion>\r\n    <div *ngFor=\"let groupChild of groups\">\r\n      <mat-expansion-panel (closed)=\"onExpantionClosed()\" (opened)=\"onExpantionOpened()\" class=\"expantion-panel\" >\r\n        <mat-expansion-panel-header class=\"expantion-header\">\r\n          <mat-panel-title>{{groupChild.groupKey}}\r\n          </mat-panel-title>\r\n          <mat-panel-description>\r\n            {{groupChild.entities.length}} {{groupChild.entities[0].pluralEntitiesDescription}}\r\n          </mat-panel-description>\r\n        </mat-expansion-panel-header>\r\n        <app-entities-list [entities]=\"groupChild.entities\"></app-entities-list>\r\n      </mat-expansion-panel>\r\n    </div>\r\n  </mat-accordion>\r\n</div>\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\n\r\n@Component({\r\n  selector: 'app-user-account',\r\n  templateUrl: './user-account.component.html',\r\n  styleUrls: ['./user-account.component.css']\r\n})\r\nexport class UserAccountComponent implements OnInit {\r\n\r\n  constructor(private oauthService: OAuthService) {\r\n  }\r\n  ngOnInit() { }\r\n\r\n\r\n  login() {\r\n    this.oauthService.initImplicitFlow();\r\n  }\r\n\r\n  logout() {\r\n    this.oauthService.logOut();\r\n  }\r\n\r\n  get givenName() {\r\n    const claims = this.oauthService.getIdentityClaims() as { given_name: any };\r\n    if (!claims) {\r\n      return null;\r\n    }\r\n    return claims['given_name'];\r\n  }\r\n\r\n}\r\n\r\n\r\n","<!-- <div *ngIf=\"givenName\">\r\n    <div class=\"menu-icon\">\r\n        <mat-icon>smile</mat-icon>\r\n    </div>\r\n    <p>hi, {{givenName}}</p>\r\n    <!-- <button (click)=\"logout()\">Logout</button> \r\n</div>\r\n\r\n<div *ngIf=\"!givenName\">\r\n    <button (click)=\"login()\">Login</button>\r\n</div> -->\r\n<div class=\"user-menu\">\r\n    <div class=\"try\">\r\n        <button class=\"user-icon\" mat-icon-button [matMenuTriggerFor]=\"accountMenu\">\r\n            <span class=\"container\">\r\n                <div class=\"icon-wrapper\">\r\n                    <mat-icon svgIcon=\"user-account\"></mat-icon>\r\n                </div>\r\n                <div class=\"user-name\">\r\n                    <span class=\"user-name-realy\">{{givenName}}</span>\r\n                    <span>\r\n                        <mat-icon>expand_more</mat-icon>\r\n                    </span>\r\n                </div>\r\n            </span>\r\n        </button>\r\n        <a class=\"link\" (click)=\"logout()\">\r\n            <span>התנתק</span>\r\n        </a>\r\n    </div>\r\n    <mat-menu #accountMenu=\"matMenu\">\r\n        <button mat-menu-item (click)=\"logout()\">\r\n            <span>התנתק</span>\r\n        </button>\r\n\r\n    </mat-menu>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-buildings-animation',\r\n  templateUrl: './buildings-animation.component.html',\r\n  styleUrls: ['./buildings-animation.component.css']\r\n})\r\nexport class BuildingsAnimationComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<div class=\"dimming\">\r\n    <iframe class=\"building-animaion-frame\" src=\"assets/loading-animation/building.html\">\r\n           <!-- onload='javascript:(function(o){o.style.height=o.contentWindow.document.body.scrollHeight+\"px\";}(this));'    style=\"\"> -->\r\n        <p>Your browser does not support iframes.</p>\r\n    </iframe>\r\n</div>","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { Component, ElementRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\r\n// https://netbasal.com/how-to-implement-file-uploading-in-angular-reactive-forms-89a3fffa1a03\r\n\r\n@Component({\r\n  selector: 'app-file-upload',\r\n  templateUrl: './file-upload.component.html',\r\n  styleUrls: ['./file-upload.component.css'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: FileUploadComponent,\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class FileUploadComponent implements ControlValueAccessor, OnInit {\r\n  // @Input() progress;\r\n  @Input()\r\n  placeholder!: string;\r\n  @Input()\r\n  explanation!: string;\r\n  @Input()\r\n  existsFile!: string;\r\n  @Input()\r\n  control!: FormControl;\r\n  onChange!: Function;\r\n  private files: FileList | null = null;\r\n  filesNames: string[] = [];\r\n  fileRequired: any;\r\n  fileInputControl!: FormControl;\r\n  fileFormGroup!: FormGroup;\r\n  readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n  @HostListener('change', ['$event.target.files']) emitFiles(event: FileList) {\r\n    // const file = event && event.item(0);\r\n    // this.onChange(file);\r\n    // this.file = file;\r\n    if (event) {\r\n      this.files = event;\r\n      this.filesNames = [];\r\n      for (let index = 0; index < this.files.length; index++) {\r\n        this.filesNames.push(this.files.item(index)!.name);\r\n      }\r\n    }\r\n    this.onChange(this.files);\r\n  }\r\n\r\n  constructor(private host: ElementRef<HTMLInputElement>) {\r\n  }\r\n  ngOnInit(): void {\r\n    if (this.existsFile) {\r\n      this.filesNames.push(this.existsFile);\r\n    }\r\n    this.fileInputControl = new FormControl('', this.control.validator, this.control.asyncValidator);\r\n    this.fileRequired = this.control.hasError('required');\r\n    this.fileInputControl.markAllAsTouched();\r\n  }\r\n\r\n  writeValue(value: null) {\r\n    // clear file input\r\n    this.host.nativeElement.value = '';\r\n    this.files = null;\r\n  }\r\n\r\n  registerOnChange(fn: Function) {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: Function) {\r\n  }\r\n  removeFile(fileName: string) {\r\n    this.writeValue(null);\r\n  }\r\n}\r\n","<mat-form-field class=\"upload-file-area\" [hintLabel]=\"explanation\">\r\n  <mat-chip-list [formControl]=\"fileInputControl\" #chipListFile>\r\n    <mat-chip *ngFor=\"let fileName of filesNames\" [removable]=\"true\" (removed)=\"removeFile(fileName)\">\r\n      {{fileName}}\r\n      <!-- <mat-icon matChipRemove>cancel</mat-icon> -->\r\n    </mat-chip>\r\n  <!-- <mat-chip *ngFor=\"let file of fileInput.files\" [removable]=\"true\" (removed)=\"removeFile(file.name)\">\r\n      {{file.name}}\r\n      <mat-icon matChipRemove>cancel</mat-icon>\r\n    </mat-chip> -->\r\n      <input disabled [placeholder]=\"placeholder\" [matChipInputFor]=\"chipListFile\"\r\n        [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" [matChipInputAddOnBlur]=\"true\" >\r\n      <!-- (matChipInputTokenEnd)=\"addMultiParameter($event,parameter.metadata.id)\"> -->\r\n\r\n      <!-- <mat-hint *ngIf=\"parameter.isExplanationDisplayed\" align=\"start\">{{parameter.metadata.explanation}}</mat-hint>-->\r\n  <button mat-icon-button matSuffix (click)=\"fileInput.click()\">\r\n      <mat-icon color=\"primary\">attach_file</mat-icon>\r\n    </button>\r\n  </mat-chip-list>\r\n\r\n  <input hidden #fileInput type=\"file\" accept=\".pdf,.dwg,.shp\">\r\n</mat-form-field>\r\n<!-- <span *ngIf=\"fileRequired\" style=\"color: red;font-size: small;\" >מסמך זה הינו חובה</span> -->\r\n\r\n\r\n<!--<div>\r\n  <span>{{placeholder}}</span>\r\n  <span>{{file ? file.name : 'or drag and drop file here' }}</span>\r\n  <input class=\"file-input\" type=\"file\">\r\n</div>\r\n <app-progress [progress]=\"progress\"></app-progress> -->\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-unauthorized-page',\r\n  templateUrl: './unauthorized-page.component.html',\r\n  styleUrls: ['./unauthorized-page.component.css']\r\n})\r\nexport class UnauthorizedPageComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n}\r\n","<div class=\"menu-bar\">\r\n  <!-- <button class=\"button-menu user-mobile\"> -->\r\n  <app-user-account></app-user-account>\r\n<!-- </button> -->\r\n</div>\r\n<div class=\"unauthorized-message\">\r\n  <img class=\"hi-logo\" src=\".../../../../../../assets/HI_Full2.png\">\r\n<p ><mat-icon>block</mat-icon>\r\n  אינך מורשה לגשת לדף זה</p>\r\n\r\n</div>\r\n <div class=\"sub-message\">נא פנו לתמיכה בכתובת <a href=\"mailto:support-renew@moch.gov.il\">support-renew@moch.gov.il</a> </div>\r\n","import { AuthConfig } from \"angular-oauth2-oidc\";\r\n\r\n\r\n\r\nexport interface OAuthErrorEventParams {\r\n    error: string;\r\n    error_description: string;\r\n    state: string;\r\n  }\r\n\r\nexport class AuthConfigModel{\r\n\r\n    DiscoveryDocumentConfig!: {url: string};//object;\r\n    authConfig!: AuthConfig;\r\n    passwordResetUrl!: string;\r\n\r\n}","import { Inject, Injectable } from '@angular/core';\r\nimport { OAuthService, NullValidationHandler, OAuthErrorEvent } from 'angular-oauth2-oidc';\r\nimport { AuthConfigModel, OAuthErrorEventParams } from './auth.config.model';\r\n\r\n\r\nexport const initializerFactory: (\r\n  idInitializer: IdentityInitializer\r\n) => () => Promise<any> = (idInitializer: IdentityInitializer) =>\r\n    idInitializer.init.bind(idInitializer);\r\n\r\n@Injectable()\r\nexport class IdentityInitializer {\r\n  constructor(\r\n    private oauthService: OAuthService,\r\n    @Inject('authConfig') private authConfig: AuthConfigModel\r\n  ) { }\r\n\r\n  public init(): Promise<any> {\r\n    return this.configure();\r\n  }\r\n  private async configure(): Promise<any> {\r\n    this.oauthService.configure(this.authConfig.authConfig);\r\n    // this.oauthService.tokenValidationHandler = new JwksValidationHandler();\r\n    this.oauthService.tokenValidationHandler = new NullValidationHandler();\r\n    // Load Discovery Document and then try to login the user\r\n    //  this.oauthService.loadDiscoveryDocumentAndTryLogin();\r\n\r\n    //\r\n    await this.oauthService.loadDiscoveryDocument(this.authConfig.DiscoveryDocumentConfig.url);\r\n\r\n    this.oauthService.events.subscribe(e => {\r\n      if (e instanceof OAuthErrorEvent) {\r\n        const parm = e.params as OAuthErrorEventParams;\r\n        if (parm) {\r\n          if (parm.error === 'access_denied' && parm.error_description.includes('AADB2C90118')) {\r\n            // redirect to forgot password flow\r\n            const redir = this.authConfig.passwordResetUrl;\r\n            window.location.href = this.authConfig.passwordResetUrl;\r\n          } else if (parm.error === 'access_denied' && parm.error_description.includes('AADB2C90091')) {\r\n            // user has cancelled out of password reset\r\n            this.oauthService.initLoginFlow();\r\n          }\r\n        }\r\n      }\r\n      else if (e.type == 'token_expires') {\r\n        const encodedUri = encodeURIComponent(document.URL);\r\n        this.oauthService.initLoginFlow(encodedUri);\r\n      }\r\n    });\r\n    // this.oauthService.setupAutomaticSilentRefresh();\r\n    return this.oauthService.tryLoginImplicitFlow();\r\n  }\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BidiModule } from '@angular/cdk/bidi';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    MatAutocompleteModule,\r\n    BidiModule,\r\n    MatButtonModule,\r\n    MatCheckboxModule,\r\n    MatCardModule,\r\n    MatIconModule,\r\n    MatDividerModule,\r\n    MatSidenavModule,\r\n    MatToolbarModule,\r\n    MatGridListModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatDialogModule,\r\n    MatGridListModule,\r\n    MatListModule,\r\n    MatChipsModule,\r\n    MatBadgeModule,\r\n    MatProgressSpinnerModule,\r\n    MatExpansionModule,\r\n    MatSnackBarModule,\r\n    MatSelectModule,\r\n    MatDatepickerModule,\r\n    MatNativeDateModule,\r\n    MatMenuModule,\r\n    MatListModule,\r\n    MatProgressBarModule,\r\n    MatTabsModule,\r\n    MatSlideToggleModule,\r\n    MatTooltipModule,\r\n\r\n  ],\r\n  exports: [\r\n    MatAutocompleteModule,\r\n    BidiModule,\r\n    MatButtonModule,\r\n    MatCheckboxModule,\r\n    MatCardModule,\r\n    MatIconModule,\r\n    MatDividerModule,\r\n    MatSidenavModule,\r\n    MatToolbarModule,\r\n    MatGridListModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatDialogModule,\r\n    MatGridListModule,\r\n    MatListModule,\r\n    MatChipsModule,\r\n    MatBadgeModule,\r\n    MatProgressSpinnerModule,\r\n    MatExpansionModule,\r\n    MatSnackBarModule,\r\n    MatSelectModule,\r\n    MatDatepickerModule,\r\n    MatNativeDateModule,\r\n    MatMenuModule,\r\n    MatListModule,\r\n    MatProgressBarModule,\r\n    MatTabsModule,\r\n    MatSlideToggleModule,\r\n    MatTooltipModule,\r\n  ],\r\n\r\n})\r\nexport class CustomMaterialModule { }\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n// import { SignalRService } from './signal-r.service';\r\n// import { UploadParams, UploadConfig, IMessage, IServiceBusMessage } from 'src/app/interfaces';\r\n\r\n// import { AzureFileUploadService } from './azure-file-upload.service';\r\n// import { untilDestroyed } from 'ngx-take-until-destroy';\r\n// import { FileToToken, IAzureFile } from 'src/app/interfaces/File';\r\n// import { BaseViewModel } from 'src/app/interfaces/models/BaseViewModel';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n// import { ConfigurationService } from '../configuration/configuration.service';\r\n// import { LoaderService } from '../loader.service';\r\n// import { MessageService } from '../message.service';\r\nimport { AzurestorageService } from './azure-storage.service';\r\nimport { StorageService } from './storage.service';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AzureFileUploadBlService implements OnDestroy {\r\n\r\n  // private azureFileSubject: BehaviorSubject<IAzureFile> = new BehaviorSubject(null);\r\n  // public azureFile$: Observable<IAzureFile>;\r\n\r\n  signalrData$: any;\r\n  signalrError$: any;\r\n  uploadConfig!: UploadConfig;\r\n  percent!: number;\r\n  currentFileName!: string;\r\n\r\n  constructor(\r\n    // private azureFileUploadService: AzureFileUploadService,\r\n    private blobService: AzurestorageService,\r\n    // private configService: ConfigurationService,\r\n    // private signalr: SignalRService,\r\n    // private loaderService: LoaderService,\r\n    // private messageService: MessageService,\r\n    private storage: StorageService,\r\n    @Inject('env') protected env: any) {\r\n    // this.azureFile$ = this.azureFileSubject.asObservable();\r\n  }\r\n  ngOnDestroy() {\r\n    // need tis func because using untilDestroyed\r\n  }\r\n  // public startListenSignalrData() {\r\n  //   this.signalrData$ = this.signalr.data$.pipe(untilDestroyed(this)).subscribe(\r\n  //     (data => {\r\n  //       if (data != null) {\r\n  //         console.log('signalrData ', data);\r\n  //         const d: IServiceBusMessage = data;\r\n  //         if (this.currentFileName != null && this.currentFileName.indexOf(d.sourceFileName) !== -1) {\r\n  //           const file: IAzureFile = { FilePath: d.targetUrl, FileName: d.sourceFileName };\r\n  //           this.azureFileSubject.next(file);\r\n  //           this.signalr.removeReceiveMessageListener();\r\n  //         }\r\n  //       }\r\n  //     }));\r\n  //   this.signalrError$ = this.signalr.error$.subscribe(\r\n  //     (err => {\r\n  //       this.showErrr(err);\r\n  //     }));\r\n  // }\r\n  // showErrr(err) {\r\n  //   if (err != null && err !== '') {\r\n  //     this.loaderService.letHide = true;\r\n  //     this.loaderService.hide();\r\n  //     console.log('signalrError ', err);\r\n  //     const m: IMessage = { text: 'שגיאה בהעלאת הקובץ.' };\r\n  //     this.messageService.show(m);\r\n\r\n  //   }\r\n  // }\r\n\r\n  uploadFileByToken(file: File, fileName: string, mimeType: string) {\r\n    // this.signalr.startConnection().then(connectionId => {\r\n    // console.log('SIGNALR ConnectionId', connectionId);\r\n    this.currentFileName = fileName;\r\n    const fileToSAS = { FileName: fileName, MimeType: mimeType };\r\n    this.getSasTokenWrite(fileName).subscribe(sas => {\r\n      this.uploadFile(file, sas, fileName);\r\n    }, err => {\r\n      console.log(err);\r\n    }\r\n    );\r\n    // }).catch(\r\n    //   err => {\r\n    //     this.showErrr(err);\r\n    //   }\r\n    // );\r\n  }\r\n\r\n  getSasTokenWrite(file: string): Observable<string> {\r\n    //  return this.azureFileUploadService.getSasTokenWrite(file);\r\n    return this.storage.getSAS(file);\r\n  }\r\n\r\n  uploadFile(file: File, token: string, fileName?: string) {\r\n    const Config: UploadParams = {\r\n      sas: token,\r\n      storageAccount: this.env.azureStorageConfig.storageAccount,\r\n      containerName: this.env.azureStorageConfig.containerName\r\n    };\r\n    const res = false;\r\n    if (file !== null) {\r\n      const fileTitle = fileName == null ? file.name : fileName;\r\n      const baseUrl = 'https://' + Config.storageAccount + '/' + Config.containerName + '/' + fileTitle;\r\n      this.uploadConfig = {\r\n        baseUrl,\r\n        blockSize: 1024 * 500,\r\n        sasToken: Config.sas,\r\n        file,\r\n        complete: () => {\r\n          console.log('Transfer completed !');\r\n          // this.saveFileSuccess(isSave);\r\n        },\r\n        error: (err) => {\r\n          console.log('Transfer Error:', err);\r\n          this.saveFileError(err);\r\n        },\r\n        progress: (percent) => {\r\n          this.percent = percent;\r\n        }\r\n      };\r\n      this.blobService.upload(this.uploadConfig);\r\n    }\r\n  }\r\n  saveFileError(error: any) {\r\n    console.log('saveFileError', error);\r\n  }\r\n}\r\nexport class UploadParams {\r\n  sas!: string;\r\n  storageAccount!: string;\r\n  containerName!: string;\r\n}\r\nexport class UploadConfig {\r\n  baseUrl!: string;\r\n  blockSize!: number;\r\n  sasToken!: string;\r\n  file!: File;\r\n  complete!: () => void;\r\n  error!: (err: any) => void;\r\n  progress!: (percent: any) => void;\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ApiBaseService } from '../../infrastructure/data/api-base.service';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { Logger } from '../../infrastructure/logger';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport abstract class EntityBaseService extends ApiBaseService {\r\n\r\n  constructor(protected override http: HttpClient, protected override logger: Logger,protected override oauthService: OAuthService, @Inject('env') protected override env: any) {\r\n    super(http, logger,oauthService, env);\r\n  }\r\n  protected getUrl(): string {\r\n    return `${this.baseUrl}/entities`;\r\n  }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport const updateEntity = createAction(\r\n  '[EntityManagement] Update Entity',\r\n  props<{ entityId: number }>()\r\n);\r\n\r\nexport const updateEntitySuccess = createAction(\r\n  '[EntityManagement] Update Entit Success',\r\n  props<{ data: any }>()\r\n);\r\n\r\nexport const updateEntityFailure = createAction(\r\n  '[EntityManagement] Update Entity Failure',\r\n  props<{ error: any }>()\r\n);\r\n\r\nexport const addParameterForUpdate = createAction(\r\n  '[EntityManagement] Add ParameterForUpdate',\r\n  props<{ entityId: number }>()\r\n);\r\n\r\nexport const addBackgroundUpdateProcess = createAction(\r\n  '[EntityManagement] Add background update process'\r\n);\r\n\r\nexport const endBackgroundUpdateProcess = createAction(\r\n  '[EntityManagement] End background update process'\r\n);\r\n\r\nexport const editStatusesDialogOpened = createAction(\r\n  '[EntityManagement] Edit statuses dialog opened'\r\n);\r\n\r\nexport const editStatusesDialogClosed = createAction(\r\n  '[EntityManagement] Edit statuses dialog closed'\r\n);\r\n","export enum GroupNumberEnum {\r\n  admin = 1,\r\n  localAdministration = 2,\r\n  entrepreneur = 3,\r\n  residents = 5,\r\n  charts = 6,\r\n  planAdmin = 7,\r\n  external = 8,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { GroupNumberEnum } from './group-number.enum';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UserService {\r\n  administrativeCodeClaim = 'extension_Minhelet';\r\n  cityClaim = 'city';\r\n  postalCodeClaim = 'postalCode';\r\n  entrepreneurCodeClaim = 'extension_Yazam';\r\n  // usersGroupIdClaim = 'extension_UsersGroupId';\r\n  usersGroupNumberClaim = \"extension_GroupNumber\";\r\n  jobTitleClaim = \"jobTitle\";\r\n  constructor(private oauthService: OAuthService) {\r\n  }\r\n  // public get usersGroupId() {\r\n  //   const claims = this.oauthService.getIdentityClaims();\r\n  //   if (!claims) {\r\n  //     return null;\r\n  //   }\r\n  //   return claims[this.usersGroupIdClaim];\r\n  // }\r\n  public get usersGroupNumber(): any {\r\n    const claims = this.oauthService.getIdentityClaims() as { extension_GroupNumber: any, jobTitle: any };\r\n    if (!claims) {\r\n      return null;\r\n    }\r\n    if (claims['extension_GroupNumber']) {\r\n      return claims['extension_GroupNumber'] as GroupNumberEnum;\r\n    } else {\r\n      const jobTiltle = claims['jobTitle'];\r\n      return Number.isNaN(jobTiltle) ? null : Number(jobTiltle) as GroupNumberEnum;\r\n    }\r\n  }\r\n  public get administrativeCode() {\r\n    const claims = this.oauthService.getIdentityClaims() as { extension_Minhelet: any, city: any };\r\n    if (!claims) {\r\n      return null;\r\n    }\r\n    if (claims['extension_Minhelet']) {\r\n      return claims['extension_Minhelet'];\r\n    }\r\n    else {\r\n      const city = claims['city'];\r\n      return Number.isNaN(city) ? null : Number(city);\r\n    }\r\n  }\r\n\r\n  public get entrepreneurCode() {\r\n    const claims = this.oauthService.getIdentityClaims() as { extension_Yazam: any, postalCode: any };\r\n    if (!claims) {\r\n      return null;\r\n    }\r\n    if (claims['extension_Yazam']) {\r\n      return claims['extension_Yazam'];\r\n    }\r\n    else {\r\n      const postalCode = claims['postalCode'];\r\n      return Number.isNaN(postalCode) ? null : Number(postalCode);\r\n    }\r\n  }\r\n\r\n  public get isSystemUser() {\r\n    return (this.administrativeCode && this.usersGroupNumber === GroupNumberEnum.localAdministration)\r\n      || (this.usersGroupNumber === GroupNumberEnum.admin)\r\n      || (this.usersGroupNumber === GroupNumberEnum.planAdmin);\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { EntityBaseService } from './entity-base.service';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { Store } from '@ngrx/store';\r\nimport { EntityManagementState } from '../store/entity-management.reducer';\r\nimport { addBackgroundUpdateProcess, endBackgroundUpdateProcess } from '../store/entity-management.actions';\r\nimport { EntityStatus } from '../model/entity-status';\r\nimport { Entity } from '../model/entity';\r\nimport { UserService } from '../auth/user.service';\r\nimport { Logger } from '../../infrastructure/logger';\r\n\r\nexport class UploadFileData {\r\n  constructor(\r\n    // public entityId: number,\r\n    // public parameterMetadataId: number,\r\n    public storedFileName: string,\r\n    public file: File) {\r\n\r\n  }\r\n}\r\n\r\nexport class ParameterForUpdate {\r\n  constructor(\r\n    public parameterMetadataId: number,\r\n    public value: any,\r\n    public storedFileName: string) {\r\n\r\n  }\r\n}\r\nexport class EntityForUpdate {\r\n  id!: number;\r\n  entityMetadataId!: number;\r\n  presentationTypeId!: number;\r\n  presentationEntityId!: number;\r\n  createUser!: string;\r\n  entrepreneurId: number | null | undefined;\r\n  parameters!: ParameterForUpdate[];\r\n  relatedEntities!: EntityForUpdate[];\r\n  isSpecificPresentation!: boolean;\r\n}\r\n\r\nexport class EntitiesStatusForUpdate {\r\n  processId!: number;\r\n  statusId!: number;\r\n  entities!: EntityStatus[];\r\n}\r\nexport class BackgroundUpdateEntityParameters {\r\n  id!: number;\r\n  fixedId!: string;\r\n  presentationEntityId!: number;\r\n}\r\n\r\nexport class BackgroundUpdateStatus {\r\n  entityId!: number;\r\n  statusId!: number;\r\n}\r\nexport class UpdateResult {\r\n  updatedEntity!: Entity;\r\n  allUpdatdEntities!: BackgroundUpdateEntityParameters[];\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UpdateEntityService extends EntityBaseService {\r\n\r\n\r\n  constructor(protected override http: HttpClient, protected override logger: Logger, protected override oauthService: OAuthService, private store: Store<EntityManagementState>,\r\n    private userService: UserService,\r\n    @Inject('env') protected override env: any) {\r\n    super(http, logger, oauthService, env);\r\n    // this.subscriptions.push( this.store.pipe(select(selectBackgroundUpdateProcesses))\r\n    // .subscribe((x) => console.log(`'${x}' background update processees`)));\r\n  }\r\n  public updateEntity(entityForUpdate: EntityForUpdate)\r\n    : Observable<UpdateResult> {\r\n\r\n    const self = this;\r\n    entityForUpdate.createUser = this.givenName;\r\n    entityForUpdate.entrepreneurId = this.userService.entrepreneurCode;\r\n    // const entityForUpdate: EntityForUpdate = {\r\n    //   id: entity.id,\r\n    //   entityMetadataId: entity.type,\r\n    //   parameters: entity.parametersGroups.flatMap(grp => grp.parameters)\r\n    //     .filter(parameter => isSimpleParameter(parameter))\r\n    //     .map(parameter => parameter as SimpleParameter)\r\n    //     .map(parameter => ({\r\n    //       parameterMetadataId: parameter.metadata.id,\r\n    //       value: parameter.value\r\n    //     }))\r\n    // };\r\n    return new Observable(observer => {\r\n      const url = `${this.getUrl()}/Update`;\r\n      const requestBody = entityForUpdate;\r\n      const options = {\r\n        // responseType: 'text' as 'json',\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.http.post<UpdateResult>(url, requestBody, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Update entity '${entityForUpdate.id}' completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while update entity '${entityForUpdate.id}'`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public backgroundUpdate(backgroundUpdateEntityParameters: BackgroundUpdateEntityParameters[])\r\n    : Observable<boolean> {\r\n\r\n    const self = this;\r\n\r\n    return new Observable(observer => {\r\n      const url = `${this.getUrl()}/BackgroundUpdate`;///${fixedId}/${id}/${presentationEntityId}`;\r\n      const requestBody = backgroundUpdateEntityParameters;\r\n\r\n      const options = {\r\n        // responseType: 'text' as 'json',\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n      self.store.dispatch(addBackgroundUpdateProcess());\r\n\r\n      this.http.post<boolean>(url, requestBody, options).subscribe(\r\n        (response) => {\r\n          observer.next(response);\r\n          self.logger.info(`Background update entities completed`);\r\n          self.store.dispatch(endBackgroundUpdateProcess());\r\n\r\n          //observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while background update entities`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  public backgroundUpdateOfStatuses(backgroundUpdateStatus: BackgroundUpdateStatus[])\r\n  : Observable<boolean> {\r\n\r\n  const self = this;\r\n\r\n  return new Observable(observer => {\r\n    const url = `${this.getUrl()}/BackgroundUpdateOfStatus`;///${fixedId}/${id}/${presentationEntityId}`;\r\n    const requestBody = backgroundUpdateStatus;\r\n\r\n    const options = {\r\n      // responseType: 'text' as 'json',\r\n      headers: new HttpHeaders({\r\n        'Content-Type': 'application/json',\r\n      })\r\n    };\r\n    self.store.dispatch(addBackgroundUpdateProcess());\r\n\r\n    this.http.post<boolean>(url, requestBody, options).subscribe(\r\n      (response) => {\r\n        observer.next(response);\r\n        self.logger.info(`Background update entities completed`);\r\n        self.store.dispatch(endBackgroundUpdateProcess());\r\n\r\n        //observer.complete();\r\n      },\r\n      error => {\r\n        self.logger.error(`An error occurred while background update entities`, error);\r\n        observer.error(error);\r\n        self.store.dispatch(endBackgroundUpdateProcess());\r\n      }\r\n    );\r\n  });\r\n}\r\n\r\n\r\n  public updateEntitiesStatus(statusId: number, entitiesStatus: EntityStatus[])\r\n    : Observable<any> {\r\n\r\n    const self = this;\r\n    const updateUser = this.givenName;\r\n    return new Observable(observer => {\r\n      const url = `${this.getUrl()}/UpdateEntitiesStatus`;\r\n      const requestBody = { statusId, updateUser, entitiesStatus };\r\n      const options = {\r\n        responseType: 'text' as 'json',\r\n        headers: new HttpHeaders({\r\n          'Content-Type': 'application/json',\r\n        })\r\n      };\r\n\r\n      this.http.post<any>(url, requestBody, options).subscribe(\r\n        response => {\r\n          observer.next(response);\r\n          self.logger.info(`Update entity completed`);\r\n          observer.complete();\r\n        },\r\n        error => {\r\n          self.logger.error(`An error occurred while update entity`, error);\r\n          observer.error(error);\r\n        }\r\n      );\r\n    });\r\n  }\r\n\r\n  get givenName() {\r\n    const claims = this.oauthService.getIdentityClaims() as { given_name : any};\r\n    if (!claims) {\r\n      return null;\r\n    }\r\n    return claims['given_name'];\r\n  }\r\n\r\n}\r\n\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { EntitiesCollectionViewComponent, EntitiesListComponent, GroupsCollectionComponent, InnerEntityDetailsComponent, ParametersGroupComponent } from './components/recursive-components';\r\nimport { UserAccountComponent } from './components/user-account/user-account.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { BuildingsAnimationComponent } from './components/buildings-animation/buildings-animation.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\r\nimport { UnauthorizedPageComponent } from './components/unauthorized-page/unauthorized-page.component';\r\nimport { LongTextDialogComponent } from './components/long-text-dialog/long-text-dialog.component';\r\nimport { EntityService } from './services/entity.service';\r\nimport { IdentityInitializer } from './auth/identity-initializer';\r\nimport { AuthConfigModel } from './auth/auth.config.model';\r\nimport { CustomMaterialModule } from './custom-material-module.module';\r\nimport { AzureFileUploadBlService } from './documents/azure-file-upload-bl.service';\r\nimport { StorageService } from './documents/storage.service';\r\nimport { UpdateEntityService } from './services/update-entity.service';\r\n\r\n\r\n@NgModule({\r\n    declarations: [\r\n        ParametersGroupComponent,\r\n        InnerEntityDetailsComponent,\r\n        EntitiesListComponent,\r\n        EntitiesCollectionViewComponent,\r\n        UserAccountComponent,\r\n        BuildingsAnimationComponent,\r\n        FileUploadComponent,\r\n        UnauthorizedPageComponent,\r\n        LongTextDialogComponent,\r\n        GroupsCollectionComponent\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        ReactiveFormsModule,\r\n        CustomMaterialModule,\r\n        FlexLayoutModule,\r\n        RouterModule\r\n    ],\r\n    exports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        ReactiveFormsModule,\r\n        CustomMaterialModule,\r\n        ParametersGroupComponent,\r\n        InnerEntityDetailsComponent,\r\n        EntitiesListComponent,\r\n        EntitiesCollectionViewComponent,\r\n        UserAccountComponent,\r\n        BuildingsAnimationComponent,\r\n        FileUploadComponent,\r\n        UnauthorizedPageComponent,\r\n    ]\r\n})\r\nexport class SharedModule {\r\n    public static forRoot(environment: any, authConfig: AuthConfigModel): ModuleWithProviders<SharedModule> {\r\n\r\n        return {\r\n            ngModule: SharedModule,\r\n            providers: [\r\n                EntityService,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                InnerEntityDetailsComponent,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                ParametersGroupComponent,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                AzureFileUploadBlService,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                StorageService,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                UpdateEntityService,\r\n                {\r\n                    provide: 'env',\r\n                    useValue: environment\r\n                },\r\n                IdentityInitializer,\r\n                {\r\n                    provide: 'authConfig',\r\n                    useValue: authConfig\r\n                }\r\n            ]\r\n        };\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { Logger } from '../../infrastructure/logger';\r\nimport { EntityDetailsViewModel } from '../model/entity-details.view-model';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ActionNotifierService {\r\n\r\n  private saveEntityCompleteSubject: Subject<EntityDetailsViewModel | undefined> = new BehaviorSubject<EntityDetailsViewModel | undefined>(undefined);\r\n  public saveEntityComplete$: Observable<EntityDetailsViewModel | undefined> = this.saveEntityCompleteSubject.asObservable();\r\n\r\n  private deleteInnerEntitySubject: Subject<InnerEntityInfo | undefined> = new BehaviorSubject<InnerEntityInfo | undefined>(undefined);\r\n  public deleteInnerEntity$: Observable<InnerEntityInfo | undefined> = this.deleteInnerEntitySubject.asObservable();\r\n\r\n  private closeEditDialogSubject: Subject<boolean> = new BehaviorSubject<boolean>(false);\r\n  public closeEditDialog$: Observable<boolean> = this.closeEditDialogSubject.asObservable();\r\n\r\n  constructor(private logger: Logger) {\r\n\r\n  }\r\n  public deleteInnerEntity(info: InnerEntityInfo) {\r\n    this.deleteInnerEntitySubject.next(info);\r\n  }\r\n  public saveEntityComplete(entity: EntityDetailsViewModel) {\r\n    this.saveEntityCompleteSubject.next(entity);\r\n  }\r\n  public notifyCloseEditDialog() {\r\n    this.closeEditDialogSubject.next(true);\r\n  }\r\n}\r\n\r\nexport class InnerEntityInfo {\r\n  innerEntityId!: number;\r\n  entityTypeId!: number;\r\n}\r\n","export function deepClone<T>(value: T): any{\r\n    if (typeof value !== 'object' || value === null) {\r\n        return value\r\n    }\r\n    if (Array.isArray(value)) {\r\n        return deepArray(value)\r\n    }\r\n    return deepObject(value)\r\n}\r\n\r\nfunction deepObject<T>(source: T): any {\r\n    const result = {}\r\n    Object.keys(source).forEach((key) => {\r\n        // @ts-ignore\r\n        const value = source[key]\r\n        // @ts-ignore\r\n        result[key] = deepClone(value)\r\n    }, {})\r\n    return result as T\r\n}\r\n\r\nfunction deepArray<T extends any[]>(collection: T) {\r\n    return collection.map((value) => {\r\n        return deepClone(value)\r\n    })\r\n}","export function groupBy<T>(list: any[] | undefined, keyGetter: { (change: { groupNumber: any; }): any; (data: any): any; (header: any): any; (chart: any): any; (chart: any): any; (change: any): any; (change: any): string; (change: { groupNumber: any; }): any; (arg0: any): any; }): T[] {\r\n  return list!.reduce((groups, item, i, a, key = keyGetter(item)) => ((groups[key] || (groups[key] = [])).push(item), groups), {});\r\n}\r\n\r\n// export function groupBy(list, keyGetter) {\r\n//     const map = new Map();\r\n//     list.forEach((item) => {\r\n//          const key = keyGetter(item);\r\n//          const collection = map.get(key);\r\n//          if (!collection) {\r\n//              map.set(key, [item]);\r\n//          } else {\r\n//              collection.push(item);\r\n//          }\r\n//     });\r\n//     return map;\r\n// }\r\n\r\n// export const groupBy(items, key) => items.reduce(\r\n//     (result, item) => ({\r\n//         ...result,\r\n//         [item[key]]: [\r\n//             ...(result[item[key]] || []),\r\n//             item,\r\n//         ],\r\n//     }),\r\n//     {},\r\n// );\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n  constructor(public snackBar: MatSnackBar) { }\r\n\r\n  showSuccess(message: string, action: string): void {\r\n    this.snackBar.open(message, action, { duration: 6000, panelClass: ['message-snack-bar'], verticalPosition: 'bottom', horizontalPosition: 'left', direction: 'rtl' });\r\n  }\r\n  showInfo(message: string, action: string): void {\r\n    this.snackBar.open(message, action, { duration: 10000, panelClass: ['message-snack-bar'], verticalPosition: 'bottom', horizontalPosition: 'left', direction: 'rtl' });\r\n  }\r\n\r\n  showError(message: string): void {\r\n    // The second parameter is the text in the button.\r\n    // In the third, we send in the css class for the snack bar.\r\n    this.snackBar.open(message, 'X', { verticalPosition: 'bottom', horizontalPosition: 'left', direction: 'rtl' });\r\n  }\r\n}\r\n","\r\nexport function loadDynmicallyScript(url: string): Promise<{}> {\r\n  var script = document.createElement('script');\r\n  script.src = url;\r\n  script.async = false;\r\n  document.head.appendChild(script);\r\n  return new Promise((resolve, reject) => {\r\n    script.onload = resolve;\r\n  });\r\n}\r\n","\r\nexport const sortAlphaNum = (a: string, b: any) => a ? b ? a.localeCompare(b, 'en', { numeric: true }) : -1 : 1;\r\n\r\nexport const sortAlphaNumDesc = (a: string, b: any) => a ? b ? a.localeCompare(b, 'en', { numeric: true }) : 1 : -1;\r\n","export function getArrayFromString(str: string) {\r\n  return str.split(',').map(item => item.trim());\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n  name: 'safeUrl'\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n\r\n  constructor(private sanitizer: DomSanitizer) { }\r\n  transform(url: string, args?: any): any {\r\n    return this.sanitizer.bypassSecurityTrustUrl(url);\r\n  }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AdminGuard implements CanActivate {\r\n\r\n  constructor(private oauthService: OAuthService, private userService: UserService) { }\r\n\r\n  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n    if (this.oauthService.hasValidIdToken() && this.userService.usersGroupNumber === 1) {\r\n      return true;\r\n    } else {\r\n      this.oauthService.initLoginFlow();\r\n      return false;\r\n    }\r\n  }\r\n}\r\n","import { AbstractControl, FormControl } from '@angular/forms';\r\nimport { getFileExtension } from './documents.helper';\r\n\r\nexport function requiredFileType(types: Array<string>) {\r\n  return (control: FormControl) => {\r\n    const fileList = control.value as FileList;\r\n    if (fileList) {\r\n      const extension = getFileExtension(fileList[0].name).toLowerCase();\r\n      if (!types.some(type => type.toLowerCase().localeCompare(extension))) {\r\n        return {\r\n          requiredFileType: true\r\n        };\r\n      }\r\n      return null;\r\n    }\r\n\r\n    return null;\r\n  };\r\n}\r\nexport function requiredFileTypeV2(control: AbstractControl) {\r\n\r\n  const types = ['pdf', 'dwg', 'shp'];\r\n  if (control.value) {\r\n    let extension = '';\r\n    const fileList = control.value as FileList;\r\n\r\n    if (typeof control.value === 'string'/* || control.value instanceof String*/) {\r\n      extension = getFileExtension(control.value).toLowerCase();\r\n    } else {\r\n      extension = getFileExtension(fileList.item(0)!.name).toLowerCase();\r\n    }\r\n    if (!types.includes(extension)) {\r\n      return {\r\n        requiredFileType: true\r\n      };\r\n    }\r\n    return null;\r\n  }\r\n  return null;\r\n}\r\n\r\n","export function enableScroll(){\r\n  const element = document.querySelector('body');\r\n  element!.classList.remove('disable-scroll');\r\n}\r\n\r\nexport function disableScroll(){\r\n  const element = document.querySelector('body');\r\n  element!.classList.add('disable-scroll');\r\n}\r\n\r\n","export class ChartAcumulatedData {\r\n  public housingUnitsExists!: number;\r\n  public housingUnitsAdditional!: number;\r\n  public entitiesCount!: number;\r\n  public parentEntityCount!: number;\r\n}\r\nexport class AcumulatedData extends ChartAcumulatedData {\r\n  name!: string;\r\n\r\n}\r\nexport class CombinedAcumulatedData {\r\n  name!: string;\r\n  firstChart!: ChartAcumulatedData;\r\n  secondChart!: ChartAcumulatedData;\r\n}\r\n","export class Comment {\r\n    id!: number;\r\n    text!: string;\r\n    date!: Date;\r\n    user!: string;\r\n    entityId!: number;\r\n}\r\n","import { EntityDetailsViewModel } from './entity-details.view-model';\r\n\r\nexport class EntitiesGroup {\r\n    groupKey!: string;\r\n    entities!: EntityDetailsViewModel[];\r\n}\r\n","export class EntityChartColorPaltte {\r\n  existsColor!: string;\r\n  additionsColor!: string;\r\n}\r\nexport const defaultEntityChartColorPaltte: EntityChartColorPaltte = {\r\n  existsColor: '#89f3e7',\r\n  additionsColor: '#75ddd1'\r\n};\r\n\r\nexport const entityChartColorPlattes: { [entityTypeId: number]: EntityChartColorPaltte } = {\r\n  [1]: {\r\n    existsColor: '#468693',\r\n    additionsColor: '#62B0A7'\r\n  },\r\n  // [3]: {\r\n  //   existsColor: '#420039',\r\n  //   additionsColor: '#dbad6a'\r\n  // },\r\n  [3]: {\r\n    existsColor: '#9f3f6f',\r\n    additionsColor: '#dba1bd'\r\n  },\r\n  [16]: {\r\n    existsColor: '#b01b2c',\r\n    additionsColor: '#e05262'\r\n  },\r\n  [23]: {\r\n    existsColor: '#ece989',\r\n    additionsColor: '#fdff76'\r\n  },\r\n};\r\n\r\n","\r\nexport class EntityMetadata {\r\n    id!: number;\r\n    description!: string;\r\n    shortDescription!: string;\r\n    pluralEntitiesDescription!: string;\r\n    gisIdFieldName!: string;\r\n    gisLayers!: string;\r\n    gisBs!: string;\r\n    entityType!: number;\r\n    usersGroupId!: number;\r\n}\r\n","import { Entity } from './entity';\r\nimport { EntityDetailsViewModel } from './entity-details.view-model';\r\nimport { EntityParameterMetaData } from './entity-parameter-metadata';\r\n\r\nexport class Parameter {\r\n  value: any;\r\n  order!: number;\r\n  parametersGroupOrder!: number;\r\n  page!: number;\r\n  pageTitle!: string;\r\n  pageExplanation!: string;\r\n  required?: boolean;\r\n  displayName?: string;\r\n  // kind: ParameterKind;\r\n}\r\nexport class SimpleParameter extends Parameter {\r\n  id!: string;\r\n  labelCssClassName!: string;\r\n  valueCssClassName!: string;\r\n  labelLocation!: number;\r\n  metadata!: EntityParameterMetaData;\r\n  isLink!: boolean;\r\n  snapLeft!: boolean;\r\n  hideWhenEmptyValue!: boolean;\r\n  linkDescription!: string;\r\n  iconName: string | null | undefined;\r\n  enableUpdate?: boolean;\r\n  isMulti!: boolean;\r\n  isExplanationDisplayed!: boolean;\r\n  isFile!: boolean;\r\n  default!: string;\r\n  storedFileName!: string;\r\n  charactersNumber!: number;\r\n\r\n  conditionParameterMetadataId!: number;\r\n  conditionParameterValue!: string;\r\n  // getDisplayName() {\r\n  //   return this.displayName ? this.displayName : this.metadata.name;\r\n  // }\r\n\r\n}\r\nexport class EntityParameterBase extends Parameter {\r\n  isDisplayEntityType!: boolean;\r\n  enableExpansion!: boolean;\r\n  pluralEntitiesDescription!: string;\r\n  singleEntityDescription!: string;\r\n  innerEntityOrderParameterId!: number;\r\n  groupByParameterId!: number;\r\n  backgroundForInnerEntity!: boolean;\r\n  columnsNumber!: number;\r\n  entityTypeId!: number;\r\n}\r\nexport class EntityParameter extends EntityParameterBase {\r\n\r\n  override value!: Entity[];\r\n}\r\n\r\nexport class EntityViewModelParameter extends EntityParameterBase {\r\n\r\n  override value!: EntityDetailsViewModel[];\r\n}\r\nexport type AnyParameter = Parameter | SimpleParameter | EntityParameter | EntityViewModelParameter;\r\n","import { FieldType } from './field-type';\r\n\r\nexport class EntityParameterMetaData {\r\n    id!: number;\r\n    name!: string;\r\n    fieldType!: FieldType;\r\n    fieldName!: string;\r\n    lookUpTypeId!: number;\r\n    explanation!: string;\r\n}\r\n","export class EntityStatus {\r\n    id!: number;\r\n    date!: Date;\r\n    done!: number;\r\n    comment!: string;\r\n}\r\n","export enum FieldType {\r\n    int = 1,\r\n    varchar = 2,\r\n    boolean = 3,\r\n    foreignKey = 4,\r\n    dateTime = 5,\r\n    lookUpTable = 6,\r\n    decimal = 7,\r\n    percent = 8,\r\n    color = 9,\r\n    date = 10,\r\n    file = 11,\r\n    email = 12,\r\n    password = 15,\r\n    search = 16,\r\n    tel = 17,\r\n    url = 18,\r\n    longText = 19,\r\n    time = 20\r\n}\r\n","import { FilterData } from './filter-data';\r\n\r\nexport class FilterCategory {\r\n  id!: number;\r\n  order!: number;\r\n  parameterId!: number;\r\n  description!: string;\r\n  dependsEntity!: number;\r\n  sortMethodId!: number;\r\n  isRange?: boolean;\r\n  parameterType?: any;\r\n  data!: FilterData[];\r\n}\r\n","export class FilterData {\r\n    dataItem!: string;\r\n    count!: number;\r\n}\r\n","export enum KindRange {\r\n    onlyValueFrom = 1,\r\n    onlyValueTo = 2,\r\n    bothRange = 3\r\n}\r\n\r\nexport class FilterRangeParameter {\r\n\r\n    parameterMetadataId!: number;\r\n    parameterName!: string;\r\n    parameterType: any;\r\n\tvalueFrom?: any;\r\n\tvalueTo?: any;\r\n    kindRange?: KindRange;\r\n}","import { FilterCategory as FilterCategory } from './filter-category';\r\nimport { FilterRangeParameter } from './filter-range-parameter';\r\n\r\nexport class Filter {\r\n    filterTerm!: string;\r\n    categoriesFilter!: FilterCategory[];\r\n    categoriesRangeFilter!: FilterRangeParameter[];\r\n    sortId: number | null | undefined;\r\n}\r\n","import { AcumulatedData } from './acumulated-data';\r\n\r\nexport class HousingUnitsChart {\r\n  chartId!: number;\r\n  entityTypeId!: number;\r\n  pluralEntitiesDescription!: string;\r\n  chartName!: string;\r\n  categoriesParameterId!: number;\r\n  categoriesParameterName!: string;\r\n  acumulatedData!: AcumulatedData[];\r\n  chartOrder!: number;\r\n  chartOptionOrder!: number;\r\n  sortMethodId!: number;\r\n  hide?: boolean;\r\n  firstParameterName!: string;\r\n  secondParameterName!: string;\r\n  dataUpdateDate!: Date;\r\n}\r\n","export class HousingUnitsChartHeader {\r\n  entityTypeId!: number;\r\n  pluralEntitiesDescription!: string;\r\n  entitiesCount!: number;\r\n  housingUnitsName!: string;\r\n  housingUnitsType!: number;\r\n  housingUnits!: number;\r\n}\r\n","export class HousingUnitsChartCategory {\r\n    name!: string;\r\n    entitiesCount!: number;\r\n    pluralEntitiesDescription!: string;\r\n    parentEntityCount!: number;\r\n}\r\n","import { EntityStatus } from './entity-status';\r\n\r\nexport class ProcessStatus {\r\n    description!: string;\r\n    id!: number;\r\n    order!: number;\r\n    isStatus!: boolean;\r\n    toUpdate!: boolean;\r\n    entitiesStatus!: EntityStatus[];\r\n    entitiesTotalCount!: number;\r\n}\r\n","import { ProcessStatus } from './process-status';\r\nimport { Entity } from '../../shared/model/entity';\r\nimport { EntityDetailsViewModel } from './entity-details.view-model';\r\n\r\nexport class ProcessBase {\r\n  description!: string;\r\n  id!: number;\r\n  size!: number;\r\n  order!: number;\r\n  groupNumber!: number;\r\n  isDisplay!: boolean;\r\n  enableUpdate!: boolean;\r\n  exlPresenation!: number;\r\n  editPresenationId!: number;\r\n  statuses!: ProcessStatus[];\r\n  superRange!: boolean;\r\n  isNeedToFetchEditEntity!: boolean;\r\n\r\n}\r\nexport class Process extends ProcessBase {\r\n  entities!: Entity[];\r\n  editEntities!: Entity[] | null;\r\n  // resAppExpansionView: Entity | null;\r\n  resAppToggledView!: Entity | null;\r\n\r\n}\r\nexport class ProcessViewModel extends ProcessBase {\r\n  entities!: EntityDetailsViewModel[] | null;\r\n  editEntities!: EntityDetailsViewModel[] | null;\r\n  // resAppExpansionView: EntityDetailsViewModel | null;\r\n  resAppToggledView!: EntityDetailsViewModel | null;\r\n\r\n}\r\n\r\n","export class SortOption {\r\n  id!: number;\r\n  sortMethodId!: number;\r\n  defaultSortMethodId!: number;\r\n  entityMetadataId!: number;\r\n  parameterMetadataId!: number;\r\n  sortName!: string;\r\n}\r\n","import { entityChartColorPlattes } from \"./entity-chart-color-palette\";\r\nimport { HousingUnitsChart } from \"./housing-units-chart\";\r\nimport { HousingUnitsChartCategory } from \"./housing-units-chart-categoty\";\r\n\r\n\r\nexport class ChartBasicData {\r\n  public existsColor: string;\r\n  public additionsColor: string;\r\n  public exists: number[];\r\n  public additions: number[];\r\n  constructor(public chart: HousingUnitsChart) {\r\n\r\n    this.additions = this.getAdditions();\r\n    this.exists = this.getExists();\r\n    const colorPlatte = entityChartColorPlattes[chart.entityTypeId] ? entityChartColorPlattes[chart.entityTypeId] : entityChartColorPlattes[1];\r\n    this.existsColor = colorPlatte.existsColor;\r\n    this.additionsColor = colorPlatte.additionsColor;\r\n\r\n  }\r\n  getExists() {\r\n    return this.chart.acumulatedData.map(m => m.housingUnitsExists);\r\n  }\r\n\r\n\r\n  getAdditions() {\r\n    return this.chart.acumulatedData.map(m => m.housingUnitsAdditional);\r\n  }\r\n}\r\nexport class StackedColumnChartViewModel extends ChartBasicData {\r\n\r\n  public chartName: string;\r\n  public totalSeries: number[];\r\n  public categories: any[];\r\n  public firstParameterName: string;\r\n  public secondParameterName: string;\r\n\r\n  constructor(public override chart: HousingUnitsChart) {\r\n    super(chart);\r\n    this.chartName = this.getChartName();\r\n    this.categories = this.getCategories();\r\n    this.totalSeries = this.getTotalSeries();\r\n    this.firstParameterName = chart.firstParameterName;\r\n    this.secondParameterName = chart.secondParameterName;\r\n\r\n  }\r\n\r\n  getCategories(): HousingUnitsChartCategory[] {\r\n    return this.chart.acumulatedData.map(category => ({\r\n      name: category.name,\r\n      entitiesCount: category.entitiesCount,\r\n      pluralEntitiesDescription: this.chart.pluralEntitiesDescription,\r\n      parentEntityCount: category.parentEntityCount\r\n    }));\r\n  }\r\n  getChartName() {\r\n    return `${this.chart.chartName}\\n התפלגות ${this.chart.pluralEntitiesDescription} לפי ${this.chart.categoriesParameterName}`;\r\n  }\r\n  getTotalSeries() {\r\n    const totalSeries = [];\r\n    for (let i = 0; i < this.chart.acumulatedData.length; i++) {\r\n      totalSeries.push(0);\r\n    }\r\n    return totalSeries;\r\n  }\r\n\r\n\r\n\r\n}\r\n\r\n","import { StackedColumnChartViewModel } from \"./stacked-column-chart-view-model\";\r\nimport { YearTarget } from \"./year-target\";\r\n\r\nexport class TargetChart {\r\n  id!: number;\r\n  name!: string;\r\n  firstChartId!: number;\r\n  secondChartId!: number;\r\n  parameterMetadataId!: number;\r\n  yearTargets!: YearTarget[];\r\n}\r\nexport class TargetChartViewModel extends TargetChart {\r\n  firstChart!: StackedColumnChartViewModel;\r\n  secondChart!: StackedColumnChartViewModel;\r\n}\r\n","export class YearTarget {\r\n  id!: number;\r\n  targetChartId!: number;\r\n  year!: number;\r\n  target!: number;\r\n}\r\n","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({ name: 'toArray' })\r\nexport class ToArrayPipe implements PipeTransform {\r\n    transform(value: any ): object[] {\r\n        if (!Array.isArray(value)) {\r\n            console.log(`value: ${value} is not array. 'toArray' pipe support only arrays.`);\r\n        }\r\n        return value;\r\n    }\r\n}\r\n","import { APP_INITIALIZER, Injectable } from '@angular/core';\r\nimport { fromEvent, merge, Observable, Subject, Subscription, timer } from 'rxjs';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { MessagesConfig } from '../configs/messages.config';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class IdleService {\r\n\r\n  private idle: Observable<any> = new Observable();\r\n  private timer :Subscription = new Subscription();\r\n  private timeOutMilliSeconds: number = 1000;\r\n  private idleSubscription: Subscription = new Subscription();\r\n  public expired: Subject<boolean> = new Subject<boolean>();\r\n  constructor( private authService:OAuthService) { }\r\n  public startWatching(timeOutMinutes : number): Observable<any> {\r\n    this.idle = merge(\r\n      fromEvent(document, 'mousemove'),\r\n      fromEvent(document, 'click'),\r\n      fromEvent(document, 'mousedown'),\r\n      fromEvent(document, 'keypress'),\r\n      fromEvent(document, 'DOMMouseScroll'),\r\n      fromEvent(document, 'mousewheel'),\r\n      fromEvent(document, 'touchmove'),\r\n      fromEvent(document, 'MSPointerMove'),\r\n      fromEvent(window, 'mousemove'),\r\n      fromEvent(window, 'resize'),\r\n    );\r\n    this.timeOutMilliSeconds = timeOutMinutes * 60 * 1000;\r\n    this.idleSubscription = this.idle.subscribe((res) => {\r\n      this.resetTimer();\r\n    });\r\n    this.startTimer();\r\n    return this.expired;\r\n  }\r\n  private startTimer() {\r\n   this.timer = timer(this.timeOutMilliSeconds, this.timeOutMilliSeconds).subscribe((res) => {\r\n      this.expired.next(true);\r\n    });\r\n  }\r\n  public resetTimer() {\r\n    this.timer.unsubscribe();\r\n    this.startTimer();\r\n  }\r\n  public stopTimer() {\r\n    this.timer.unsubscribe();\r\n    this.idleSubscription.unsubscribe();\r\n  }\r\n  public initialIdleSettings(idleTimeInMinutes:number,message:string) {\r\n    this.startWatching(idleTimeInMinutes).subscribe((isTimeOut: boolean) => {\r\n      if (isTimeOut) {\r\n        //this.notificationService.showInfo(message,\"\");\r\n        alert(message);\r\n        this.authService.logOut();\r\n      }\r\n    });   \r\n}\r\n\r\n}\r\n\r\n\r\nexport function initIdle() {\r\n  return {\r\n      provide: APP_INITIALIZER,\r\n      useFactory: appInitIdleFactory,\r\n      deps: [IdleService],\r\n      multi: true\r\n  }\r\n}\r\nexport function appInitIdleFactory(idle: IdleService): boolean {//() => Promise<any> {\r\n  // return async () => idle.initialIdleSettings(environment.idleTimeInMinutes, MessagesConfig.RECONNECTED_ALERT);\r\n  return true;\r\n}\r\nexport const IdleModule = {\r\n  init: initIdle\r\n}","\r\nimport { Action, createReducer, on } from '@ngrx/store';\r\nimport * as EntityManagementActions from './entity-management.actions';\r\nimport { EntityForUpdate } from '../services/update-entity.service';\r\n\r\nexport const entityManagementFeatureKey = 'entityManagement';\r\n\r\nexport interface EntityManagementState {\r\n  entityForUpdate: EntityForUpdate | undefined;\r\n  backgroundUpdateProcesses: number;\r\n  isEditStatusesDialogOpened: boolean;\r\n}\r\n\r\nexport const initialState: EntityManagementState = {\r\n  entityForUpdate: undefined,\r\n  backgroundUpdateProcesses: 0,\r\n  isEditStatusesDialogOpened: false\r\n};\r\n\r\nconst entityManagementReducer = createReducer(\r\n  initialState,\r\n\r\n  // on(EntityManagementActions.loadEntityManagements, state => state),\r\n  // on(EntityManagementActions.loadEntityManagements, state => state),\r\n  // on(EntityManagementActions.loadEntityManagementsSuccess, (state, action) => state),\r\n  on(EntityManagementActions.addBackgroundUpdateProcess, (state) => {\r\n    return { ...state, backgroundUpdateProcesses: state.backgroundUpdateProcesses + 1 }\r\n  }),\r\n  on(EntityManagementActions.endBackgroundUpdateProcess, (state) => {\r\n    return { ...state, backgroundUpdateProcesses: state.backgroundUpdateProcesses - 1 }\r\n  }),\r\n  on(EntityManagementActions.editStatusesDialogOpened, (state) => {\r\n    return { ...state, isEditStatusesDialogOpened: true }\r\n  }),\r\n  on(EntityManagementActions.editStatusesDialogClosed, (state) => {\r\n    return { ...state, isEditStatusesDialogOpened: false }\r\n  }),\r\n\r\n);\r\n\r\nexport function reducer(state: EntityManagementState | undefined, action: Action) {\r\n  return entityManagementReducer(state, action);\r\n}\r\n","/*\n * Public API Surface of dynamic-display-shared\n */\n\nexport * from './lib/dynamic-display-shared.service';\nexport * from './lib/dynamic-display-shared.component';\nexport * from './lib/dynamic-display-shared.module';\n\nexport * from './lib/shared/shared.module';\nexport * from './lib/shared/custom-material-module.module'\nexport * from './lib/shared/components/long-text-dialog/long-text-dialog.component';\n\nexport * from './lib/shared/components/recursive-components';\nexport * from './lib/shared/components/user-account/user-account.component';\nexport * from './lib/shared/components/buildings-animation/buildings-animation.component';\nexport * from './lib/shared/components/file-upload/file-upload.component';\nexport * from './lib/shared/components/unauthorized-page/unauthorized-page.component';\n\nexport * from './lib/shared/services/action-notifier.service';\nexport * from './lib/shared/services/device-type.service';\nexport * from './lib/shared/services/entity-base.service';\nexport * from './lib/shared/services/entity.service';\nexport * from './lib/shared/services/update-entity.service';\n\nexport * from './lib/infrastructure/date.utility';\nexport * from './lib/infrastructure/deep-clone.utility';\nexport * from './lib/infrastructure/guid';\nexport * from './lib/infrastructure/group-by.utility';\nexport * from './lib/infrastructure/logger';\nexport * from './lib/infrastructure/notification.service';\nexport * from './lib/infrastructure/script-loader.utility';\nexport * from './lib/infrastructure/sort.utility';\nexport * from './lib/infrastructure/string.utility';\nexport * from './lib/infrastructure/data/api-base.service';\nexport * from './lib/infrastructure/pipes/safe-url.pipe';\nexport * from './lib/shared/auth/admin.guard.service';\nexport * from './lib/shared/auth/auth.config.model';\nexport * from './lib/shared/auth/group-number.enum';\nexport * from './lib/shared/auth/identity-initializer';\nexport * from './lib/shared/documents/azure-file-upload-bl.service';\nexport * from './lib/shared/documents/azure-storage.service';\nexport * from './lib/shared/documents/documents.helper';\nexport * from './lib/shared/documents/requiredFileType';\nexport * from './lib/shared/helpers/scroll-page.helper';\nexport * from './lib/shared/model/acumulated-data';\nexport * from './lib/shared/model/comment';\nexport * from './lib/shared/model/entities.group';\nexport * from './lib/shared/model/entity-chart-color-palette';\nexport * from './lib/shared/model/entity-details.view-model';\nexport * from './lib/shared/model/entity-metadata';\nexport * from './lib/shared/model/entity-parameter';\nexport * from './lib/shared/model/entity-parameter-metadata';\nexport * from './lib/shared/model/entity-status';\nexport * from './lib/shared/model/entity-type-instance';\nexport * from './lib/shared/model/entity';\nexport * from './lib/shared/model/field-type';\nexport * from './lib/shared/model/filter-category';\nexport * from './lib/shared/model/filter-data';\nexport * from './lib/shared/model/filter-range-parameter';\nexport * from './lib/shared/model/filter';\nexport * from './lib/shared/model/housing-units-chart';\nexport * from './lib/shared/model/housing-units-chart-header';\nexport * from './lib/shared/model/housing-units-chart-categoty';\nexport * from './lib/shared/model/process-status';\nexport * from './lib/shared/model/process';\nexport * from './lib/shared/model/sort-option';\nexport * from './lib/shared/model/stacked-column-chart-view-model';\nexport * from './lib/shared/model/target-chart';\nexport * from './lib/shared/model/view-model.helper';\nexport * from './lib/shared/model/year-target';\nexport * from './lib/shared/pipes/to-array.pipe';\nexport * from './lib/shared/services/idle.service';\nexport * from './lib/shared/store/entity-management.actions';\nexport * from './lib/shared/store/entity-management.reducer';\nexport * from './lib/shared/store/filter.actions';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","UploadParams","UploadConfig","i2","i3.EntityService","i4.DeviceTypeService","i8","i3","i4","i6","i2.UserAccountComponent","i1.Logger","i2.UserService","EntityManagementActions.addBackgroundUpdateProcess","EntityManagementActions.endBackgroundUpdateProcess","EntityManagementActions.editStatusesDialogOpened","EntityManagementActions.editStatusesDialogClosed"],"mappings":"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"}