{"version":3,"file":"main.js","mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/components/autocomplete/autocomplete.component.ts","./src/app/components/autocomplete/autocomplete.component.html","./src/app/components/avatar/avatar.component.ts","./src/app/components/avatar/avatar.component.html","./src/app/components/button/button.component.ts","./src/app/components/button/button.component.html","./src/app/components/card/card.component.ts","./src/app/components/card/card.component.html","./src/app/components/checkbox/checkbox.component.ts","./src/app/components/checkbox/checkbox.component.html","./src/app/components/code-input/code-input.component.ts","./src/app/components/code-input/code-input.component.html","./src/app/components/console/console.component.ts","./src/app/components/console/console.component.html","./src/app/components/content/content.component.ts","./src/app/components/content/content.component.html","./src/app/components/data-row/data-row.component.ts","./src/app/components/data-row/data-row.component.html","./src/app/components/date-picker/date-picker.component.ts","./src/app/components/date-picker/date-picker.component.html","./src/app/components/dialog/dialog.component.ts","./src/app/components/dialog/dialog.component.html","./src/app/components/file-upload/file-upload.component.ts","./src/app/components/file-upload/file-upload.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/headline/headline.component.ts","./src/app/components/headline/headline.component.html","./src/app/components/icon/icon.component.ts","./src/app/components/icon/icon.component.html","./src/app/components/input-file/input-file.component.ts","./src/app/components/input-file/input-file.component.html","./src/app/components/input/input.component.ts","./src/app/components/input/input.component.html","./src/app/components/legend/legend.component.ts","./src/app/components/legend/legend.component.html","./src/app/components/menu/menu.component.ts","./src/app/components/menu/menu.component.html","./src/app/components/new-password/new-password.component.ts","./src/app/components/new-password/new-password.component.html","./src/app/components/paginator/paginator.component.ts","./src/app/components/paginator/paginator.component.html","./src/app/components/photo-editor/photo-editor.component.ts","./src/app/components/photo-editor/photo-editor.component.html","./src/app/components/photo-set/photo-set.component.ts","./src/app/components/photo-set/photo-set.component.html","./src/app/components/photo-tile/photo-tile.component.ts","./src/app/components/photo-tile/photo-tile.component.html","./src/app/components/photo/photo.component.ts","./src/app/components/photo/photo.component.html","./src/app/components/photos-overview/photos-overview.component.ts","./src/app/components/photos-overview/photos-overview.component.html","./src/app/components/photos-upload/photos-upload.component.ts","./src/app/components/photos-upload/photos-upload.component.html","./src/app/components/search/search.component.ts","./src/app/components/search/search.component.html","./src/app/components/select/select.component.ts","./src/app/components/select/select.component.html","./src/app/components/sidenav/sidenav.component.ts","./src/app/components/sidenav/sidenav.component.html","./src/app/components/slider/slider.component.ts","./src/app/components/slider/slider.component.html","./src/app/components/studio/studio.component.ts","./src/app/components/studio/studio.component.html","./src/app/components/table/table.component.ts","./src/app/components/table/table.component.html","./src/app/components/toggle/toggle.component.ts","./src/app/components/toggle/toggle.component.html","./src/app/components/welcome/welcome.component.ts","./src/app/components/welcome/welcome.component.html","./src/app/models/administration.model.ts","./src/app/models/autocomplete.model.ts","./src/app/models/checkbox.model.ts","./src/app/models/date-picker.model.ts","./src/app/models/dialog.model.ts","./src/app/models/file-upload.model.ts","./src/app/models/input.model.ts","./src/app/models/security.model.ts","./src/app/models/select.model.ts","./src/app/models/slider.model.ts","./src/app/models/store.model.ts","./src/app/models/toggle.model.ts","./src/app/modules/app.module.ts","./src/app/modules/components.module.ts","./src/app/modules/material.module.ts","./src/app/modules/routing.module.ts","./src/app/routing/api.interceptor.ts","./src/app/routing/auth.guard.ts","./src/app/routing/editor.guard.ts","./src/app/routing/navigation-items.ts","./src/app/routing/role.guard.ts","./src/app/routing/routes.ts","./src/app/services/api.service.ts","./src/app/services/auth.service.ts","./src/app/services/config.service.ts","./src/app/services/console.service.ts","./src/app/services/editor/editor.service.ts","./src/app/services/icon.service.ts","./src/app/services/photos.service.ts","./src/app/services/register/hardware.service.ts","./src/app/services/register/photostudio.service.ts","./src/app/services/register/user.service.ts","./src/app/services/snackbar.service.ts","./src/app/store/account/account.actions.ts","./src/app/store/account/account.state.ts","./src/app/store/administration/administration.actions.ts","./src/app/store/administration/administration.state.ts","./src/app/store/security/security.actions.ts","./src/app/store/security/security.state.ts","./src/app/utilities/canvas.ts","./src/app/utilities/garbage-collector.ts","./src/app/utilities/helper.ts","./src/app/views/account-view/account-view.component.ts","./src/app/views/account-view/account-view.component.html","./src/app/views/analytics-view/analytics-view.component.ts","./src/app/views/analytics-view/analytics-view.component.html","./src/app/views/application-view/application-view.component.ts","./src/app/views/application-view/application-view.component.html","./src/app/views/applications-view/applications-view.component.ts","./src/app/views/applications-view/applications-view.component.html","./src/app/views/archive-view/archive-view.component.ts","./src/app/views/archive-view/archive-view.component.html","./src/app/views/cameras-view/cameras-view.component.ts","./src/app/views/cameras-view/cameras-view.component.html","./src/app/views/companies-view/companies-view.component.ts","./src/app/views/companies-view/companies-view.component.html","./src/app/views/company-view/company-view.component.ts","./src/app/views/company-view/company-view.component.html","./src/app/views/editor-view/editor-view.component.ts","./src/app/views/editor-view/editor-view.component.html","./src/app/views/employees-view/employees-view.component.ts","./src/app/views/employees-view/employees-view.component.html","./src/app/views/error-view/error-view.component.ts","./src/app/views/error-view/error-view.component.html","./src/app/views/handout-view/handout-view.component.ts","./src/app/views/handout-view/handout-view.component.html","./src/app/views/hardware-provider-view/hardware-provider-view.component.ts","./src/app/views/hardware-provider-view/hardware-provider-view.component.html","./src/app/views/hardware-providers-view/hardware-providers-view.component.ts","./src/app/views/hardware-providers-view/hardware-providers-view.component.html","./src/app/views/login-view/login-view.component.ts","./src/app/views/login-view/login-view.component.html","./src/app/views/overview-view/overview-view.component.ts","./src/app/views/overview-view/overview-view.component.html","./src/app/views/password-view/password-view.component.ts","./src/app/views/password-view/password-view.component.html","./src/app/views/register-view/register-view.component.ts","./src/app/views/register-view/register-view.component.html","./src/app/views/uig-employee-view/uig-employee-view.component.ts","./src/app/views/uig-employee-view/uig-employee-view.component.html","./src/app/views/uig-employees-view/uig-employees-view.component.ts","./src/app/views/uig-employees-view/uig-employees-view.component.html","./src/app/views/user-view/user-view.component.ts","./src/app/views/user-view/user-view.component.html","./src/app/views/users-view/users-view.component.ts","./src/app/views/users-view/users-view.component.html","./src/environments/environment.ts","./src/main.ts","/usr/src/app/node_modules/moment/locale|sync|/^\\.\\/.*$/"],"sourcesContent":["import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { LocalizationService } from '@tallence/localization';\nimport { StateModel } from './models/store.model';\nimport { AuthService } from './services/auth.service';\nimport { IconService } from './services/icon.service';\nimport { GarbageCollectorComponent } from './utilities/garbage-collector';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent extends GarbageCollectorComponent {\n\n public ready = false;\n public auth = false;\n\n constructor(\n private _iconService: IconService,\n private _localizationService: LocalizationService,\n private _router: Router,\n private _store: Store,\n private _authService: AuthService,\n ) {\n super();\n this._iconService.init();\n this._initLocalization();\n this._initSecurity();\n }\n\n\n private _initLocalization(): void {\n const path = '../assets/translations/';\n const modules: string[] = [\n 'general',\n 'forms',\n 'views'\n ];\n const languages: string[] = ['de'];\n const language = 'de';\n\n this.addSubscription(\n this._localizationService.init(path, modules, languages, language).subscribe((loaded: boolean) => {\n if (loaded) {\n this.ready = true;\n } else {\n this._router.navigate(['error', '404']);\n }\n })\n );\n }\n\n private _initSecurity(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.auth).subscribe((auth: boolean) => {\n this.auth = auth;\n })\n );\n this._authService.restoreAuth();\n }\n\n\n}\n","\n
\n
\n \n
\n \n \n
\n
\n
\n \n
\n\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { LocalizationService } from '@tallence/localization';\nimport { Observable, of } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { AutocompleteConfig, AutocompleteOption } from 'src/app/models/autocomplete.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss']\n})\nexport class AutocompleteComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: AutocompleteConfig = new AutocompleteConfig();\n @Input()\n public required?: string;\n\n public filteredOptions: Observable = of([]);\n\n constructor(\n private _localizationService: LocalizationService,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this.config.options.length === 0) {\n const optionsKey: string = this.config.label.replace(/label$/, 'options');\n this.config.options = this._localizationService.getArrayFromKey(optionsKey).map((subkey: string) => {\n return new AutocompleteOption(`${optionsKey}.${subkey}`);\n });\n }\n this.config.options = this.config.options.map((option: AutocompleteOption) => {\n return new AutocompleteOption(\n this._localizationService.getTranslation(option.value),\n option.disabled\n );\n });\n if (this.required !== undefined) {\n this.config.control.setValidators(Validators.required);\n }\n this.filteredOptions = this.config.control.valueChanges.pipe(\n startWith(''),\n map((value: string) => {\n return this.config.options.filter((option: any) => {\n return `${option.value}`.toLowerCase().includes(value.toLowerCase());\n });\n })\n );\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n return '';\n }\n\n}\n","\n {{ config.label | translate }}\n \n \n \n {{option.value}}\n \n \n {{ config.hint | translate }}\n \n {{ getErrorMessage() }}\n \n\n","import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { fromEvent } from 'rxjs';\nimport { StateModel } from 'src/app/models/store.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent extends GarbageCollectorComponent implements OnInit, AfterViewInit {\n\n @ViewChild('dropboxElement')\n public dropboxRef!: ElementRef;\n\n @Output()\n public changed: EventEmitter = new EventEmitter();\n\n public fileInput = '';\n public highlighted = false;\n public image = '';\n\n constructor(\n private _store: Store\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.account.image).subscribe((image) => {\n if (image) {\n this.image = `url(${image})`;\n }\n })\n );\n }\n\n public ngAfterViewInit(): void {\n this._initDropbox();\n }\n\n private _initDropbox(): void {\n const dropbox: HTMLElement = this.dropboxRef.nativeElement as HTMLElement;\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe((event) => {\n event.preventDefault();\n event.stopPropagation();\n })\n );\n });\n ['dragenter', 'dragover'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe(() => {\n this.highlighted = true;\n })\n );\n });\n ['dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe((event) => {\n if (eventName === 'drop') {\n const data: DataTransfer | null = (event as DragEvent).dataTransfer;\n const files: FileList | undefined = data?.files;\n this._handleFiles(files);\n this.highlighted = false;\n }\n })\n );\n });\n }\n\n public onFileChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target?.files?.length) {\n const files: FileList = target.files;\n this._handleFiles(files);\n }\n this.fileInput = '';\n this.highlighted = false;\n }\n\n private _handleFiles(files: FileList | undefined): void {\n if (files && files[0]) {\n const reader = new FileReader();\n const file = files[0];\n\n reader.onload = (src) => {\n const source = `${src.target?.result}`;\n if (source.startsWith('data:image')) {\n const image = new Image();\n image.onload = () => {\n this._createAvatar(image);\n };\n image.src = source;\n }\n };\n reader.readAsDataURL(file);\n }\n }\n\n private _createAvatar(img: HTMLImageElement): void {\n const size = 96;\n const canvas = document.createElement('canvas');\n canvas.width = size;\n canvas.height = size;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n if (img.height > img.width) {\n ctx.drawImage(img, 0, (img.height - img.width) / 2, img.width, img.width, 0, 0, size, size);\n } else {\n ctx.drawImage(img, (img.width - img.height) / 2, 0, img.height, img.height, 0, 0, size, size);\n }\n }\n const image = canvas.toDataURL('image/jpeg', 0.75);\n this.changed.emit(image);\n this.image = `url(${image})`;\n }\n\n}\n","
\n {{ 'profileImage.label' | translate }}\n \n \n \n
\n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent {\n\n @Input()\n public icon?: string;\n @Input()\n public disabled?: string | boolean;\n @Input()\n public primary?: string;\n @Input()\n public secondary?: string;\n @Input()\n public simple?: string;\n @Input()\n public light?: string;\n\n @Output()\n public action: EventEmitter = new EventEmitter();\n\n constructor() { }\n\n public doAction(): void {\n if (this.disabled === undefined || this.disabled === false) {\n this.action.emit();\n }\n }\n\n}\n","\n \n \n \n \n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent {\n\n @Input()\n public headline?: string;\n @Input()\n public icon?: string;\n\n constructor() { }\n\n}\n","
\n
\n \n
{{ headline | translate }}
\n
\n
\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CheckboxConfig } from 'src/app/models/checkbox.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss']\n})\nexport class CheckboxComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: CheckboxConfig = new CheckboxConfig('');\n @Input()\n public required?: string;\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n if (this.required !== undefined) {\n this.config.control.setErrors({missing: true});\n this.addSubscription(\n this.config.control.valueChanges.subscribe((value: boolean) => {\n this.config.control.setErrors(value ? null : {missing: value});\n })\n );\n }\n }\n\n}\n","
\n \n {{ config.label | translate }}\n *\n\n
\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-code-input',\n templateUrl: './code-input.component.html',\n styleUrls: ['./code-input.component.scss']\n})\nexport class CodeInputComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public size = 6;\n\n @Output()\n public enter: EventEmitter = new EventEmitter();\n\n public inputForm: FormGroup = this._fb.group({});\n public inputNames: string[] = [];\n\n constructor(\n private _fb: FormBuilder,\n private _elRef: ElementRef\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const el: HTMLElement = this._elRef.nativeElement as HTMLElement;\n for (let size = 0; size < this.size; size++) {\n const name = `input${size}`;\n const control = new FormControl('', Validators.required);\n this.inputForm.addControl(name, control);\n this.inputNames.push(name);\n this.addSubscription(\n control.valueChanges.subscribe((value: string) => {\n if (value) {\n if (value.length > 1) {\n control.setValue(value.charAt(0));\n } else if (value.match(/\\D/)) {\n control.setValue(value.replace(/\\D/g, ''));\n } else {\n const index = this.inputNames.indexOf(name);\n if ((index + 1) < this.inputNames.length) {\n el.querySelectorAll('input')[index + 1].focus();\n } else {\n el.querySelectorAll('input')[index].blur();\n }\n }\n }\n })\n );\n }\n this.addSubscription(\n this.inputForm.valueChanges.subscribe((value: string) => {\n if (this.inputForm.valid) {\n const code = Object.values(this.inputForm.value).join('');\n this.enter.emit(code);\n }\n })\n );\n }\n\n public getControl(name: string): FormControl {\n return this.inputForm.get(name) as FormControl || new FormControl('');\n }\n\n public clearInput(name: string): void {\n const index = this.inputNames.indexOf(name);\n this.inputForm.controls[name].setValue('');\n }\n\n public previousInput(name: string): void {\n const el: HTMLElement = this._elRef.nativeElement as HTMLElement;\n const index = this.inputNames.indexOf(name);\n el.querySelectorAll('input')[Math.max(index - 1, 0)].focus();\n }\n\n public pasteCode(event: ClipboardEvent): void {\n const code = event.clipboardData?.getData('text') || '';\n if (code.length >= this.size) {\n this.inputNames.forEach((name, index) => {\n this.inputForm.controls[name].setValue(code[index]);\n });\n }\n event.preventDefault();\n }\n\n}\n\n","
\n \n
\n","import {\n Component, OnInit, ViewChild, ElementRef\n} from '@angular/core';\nimport { ConsoleService, Message } from 'src/app/services/console.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-console',\n templateUrl: './console.component.html',\n styleUrls: ['./console.component.scss']\n})\nexport class ConsoleComponent extends GarbageCollectorComponent implements OnInit {\n\n public messages: Message[] = [];\n @ViewChild('body')\n public bodyRef!: ElementRef;\n\n constructor(\n private _consoleService: ConsoleService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._consoleService.message.subscribe(message => {\n const matches: RegExpMatchArray | null = message.text.match(/\\*\\w*\\*/g);\n if (matches) {\n matches.forEach((match: string) => {\n const bold = match.replace(/\\*/g, '');\n message.text = message.text.replace(match, `${bold}`);\n });\n }\n\n this.messages.push(message);\n\n if (message.duration) {\n setTimeout(() => {\n this.clearMessage(message);\n }, message.duration * 1000);\n }\n\n if (this.bodyRef) {\n setTimeout(() => {\n const el = this.bodyRef.nativeElement as HTMLElement;\n if (el && el.children.length) {\n el.children[el.childElementCount - 1].scrollIntoView({ block: 'start', behavior: 'smooth' });\n }\n }, 1);\n }\n })\n );\n }\n\n public clearMessage(message: Message): void {\n const index = this.messages.indexOf(message);\n if (index !== -1) {\n this.messages.splice(this.messages.indexOf(message), 1);\n }\n }\n\n public clearAll(): void {\n this.messages = [];\n }\n\n}\n","
\n
\n
{{ 'console.headline' | translate }}
\n delete_sweep\n
\n
\n
\n error\n
{{ message.time }}
\n
\n
\n
{{ message.subText }}
\n
\n
\n \n \n \n \n
\n clear\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-content',\n templateUrl: './content.component.html',\n styleUrls: ['./content.component.scss']\n})\nexport class ContentComponent {\n\n constructor() { }\n\n}\n","
\n \n
\n","import { Component, Input } from '@angular/core';\nimport { Studio } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { FileUploadConfig } from 'src/app/models/file-upload.model';\nimport { InputConfig } from 'src/app/models/input.model';\nimport { SelectConfig } from 'src/app/models/select.model';\n\n@Component({\n selector: 'app-data-row',\n templateUrl: './data-row.component.html',\n styleUrls: ['./data-row.component.scss']\n})\nexport class DataRowComponent {\n\n @Input()\n public configs?: (InputConfig | AutocompleteConfig | SelectConfig)[];\n @Input()\n public studio?: [Studio, number];\n @Input()\n public files?: FileUploadConfig;\n\n constructor() { }\n\n public getStudioValues(): string {\n if (this.studio) {\n const values: string[] = Object.values(this.studio[0]);\n return `${values[0]}, ${values[1]}, ${values[2]} ${values[3]}`;\n }\n return '';\n }\n\n public getFileNames(): string[] {\n return this.files?.control?.value ? this.files.control.value.map((value: File) => value.name) : [];\n }\n\n}\n","
\n
\n \n {{ config.label | translate }}\n /\n \n {{ 'register.studio.label' | translate:[studio[1]] }}\n {{ 'fileUpload.label' | translate }}\n
\n
\n \n {{ config.control.value || '-' }}\n /\n \n {{ getStudioValues() }}\n \n
{{ name }}
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport {\n MomentDateAdapter,\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n} from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { LocalizationService } from '@tallence/localization';\nimport { DatePickerConfig } from 'src/app/models/date-picker.model';\nimport * as moment from 'moment';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\nexport const CUSTOM_FORMATS = {\n parse: {\n dateInput: 'DD.MM.YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'app-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [\n { provide: MAT_DATE_LOCALE, useValue: 'de-DE' },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n { provide: MAT_DATE_FORMATS, useValue: CUSTOM_FORMATS },\n ],\n})\nexport class DatePickerComponent extends GarbageCollectorComponent implements OnInit {\n\n public minDate: moment.Moment | null = null;\n public maxDate: moment.Moment | null = null;\n\n @Input()\n public config: DatePickerConfig = new DatePickerConfig('');\n @Input()\n public required?: string;\n @Input()\n public set min(date: string | undefined){\n if (moment(date).isValid()) {\n this.minDate = moment(date);\n }\n }\n @Input()\n public set max(date: string | undefined){\n if (moment(date).isValid()) {\n this.maxDate = moment(date);\n }\n }\n\n public dateControl: FormControl = new FormControl('');\n\n constructor(\n private _localizationService: LocalizationService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this.required !== undefined) {\n this.config.control.setValidators(Validators.required);\n this.dateControl.setValidators(Validators.required);\n this.config.control.updateValueAndValidity();\n }\n this.addSubscription(\n this.dateControl.valueChanges.subscribe((value: any) => {\n if (moment(value).isValid()) {\n this.config.control.setValue(moment(value).format('YYYY-MM-DD'));\n }\n })\n );\n this.addSubscription(\n this.dateControl.statusChanges.subscribe(() => {\n this.config.control.setErrors(this.dateControl.errors);\n })\n );\n const date = this.config.control.value;\n if (moment(date).isValid()) {\n this.dateControl.setValue(moment(date));\n }\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n if (this.config.control.hasError('matDatepickerMin')) {\n return this._localizationService.getTranslation('input.error.minDate');\n }\n return '';\n }\n\n}\n","\n {{ config.label | translate }}\n \n \n \n \n {{ getErrorMessage() }}\n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { LocalizationService } from '@tallence/localization';\nimport * as moment from 'moment';\nimport { Camera, HardwareProvider, ResponseStatus, SearchQuery, Studio, TableActionType, TableConfig, UigEmployee } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { CheckboxConfig } from 'src/app/models/checkbox.model';\nimport { DatePickerConfig } from 'src/app/models/date-picker.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { HardwareService } from 'src/app/services/register/hardware.service';\nimport { PhotostudioService } from 'src/app/services/register/photostudio.service';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { Helper } from 'src/app/utilities/helper';\n\n@Component({\n selector: 'app-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss']\n})\nexport class DialogComponent extends GarbageCollectorComponent implements OnInit{\n\n public description?: string;\n public error?: string;\n\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public birthDateConfig: InputConfig = new InputConfig(InputType.DATE, 'input.birthDate.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public passwordConfig: InputConfig = new InputConfig(InputType.PASSWORD, 'input.password.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone1.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.companyLegalForm.label');\n // public licenseNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.licenseNumber.label');\n public addressConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.address.label');\n public zipConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.zip.label');\n public locationConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.location.label');\n\n public cameraManufacturerConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.cameraManufacturer.label');\n public cameraModelConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.cameraModel.label');\n public cameraIdConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.cameraId.label');\n public publicKeyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.publicKey.label');\n public licenseBeginDateConfig: DatePickerConfig = new DatePickerConfig('input.licenseBeginDate.label');\n public licenseEndDateConfig: DatePickerConfig = new DatePickerConfig('input.licenseEndDate.label');\n\n public studioNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.studioName.label');\n public forceSaveConfig: CheckboxConfig = new CheckboxConfig('checkbox.forceSave.label');\n\n public reasonControl: FormControl = new FormControl('');\n\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchCompany.label');\n public tableConfig: TableConfig = new TableConfig();\n public maxDate?: string;\n public searched = false;\n\n private _dialogForm: FormGroup = this._fb.group({});\n\n public minDate?: string;\n public confirmLocked = true;\n public loading = false;\n private _originData: DialogConfig;\n\n public authentificator = false;\n public clickDelay = '';\n\n public validationErrors: string[] = [];\n\n public publicKeyInput = '';\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogConfig,\n private _localizationService: LocalizationService,\n private _fb: FormBuilder,\n private _photostudioService: PhotostudioService,\n private _userService: UserService,\n private _hardwareService: HardwareService,\n private _router: Router\n ) {\n super();\n this._originData = this.data.clone();\n }\n\n public ngOnInit(): void {\n this.description = this._localizationService.getTranslation(this.data.description[0], this.data.description.slice(1));\n switch (this.data.type) {\n case DialogType.ADD_EMPLOYEE:\n this._dialogForm.addControl('firstName', this.firstNameConfig.control);\n this._dialogForm.addControl('lastName', this.lastNameConfig.control);\n this._dialogForm.addControl('email', this.emailConfig.control);\n break;\n case DialogType.DELETE_ACCOUNT:\n this._dialogForm.addControl('passsword', this.passwordConfig.control);\n break;\n case DialogType.ADD_UIG_EMPLOYEE:\n this._dialogForm.addControl('salutation', this.salutationConfig.control);\n this._dialogForm.addControl('firstName', this.firstNameConfig.control);\n this._dialogForm.addControl('lastName', this.lastNameConfig.control);\n this._dialogForm.addControl('birthDate', this.birthDateConfig.control);\n this._dialogForm.addControl('email', this.emailConfig.control);\n this._dialogForm.addControl('phone1', this.phone1Config.control);\n this.maxDate = moment().subtract(15, 'years').format('YYYY-MM-DD');\n break;\n case DialogType.ADD_HARDWARE_PROVIDER:\n this._dialogForm.addControl('salutation', this.salutationConfig.control);\n this._dialogForm.addControl('firstName', this.firstNameConfig.control);\n this._dialogForm.addControl('lastName', this.lastNameConfig.control);\n this._dialogForm.addControl('email', this.emailConfig.control);\n this._dialogForm.addControl('phone1', this.phone1Config.control);\n this._dialogForm.addControl('company', this.companyConfig.control);\n this._dialogForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this._dialogForm.addControl('birthDate', this.birthDateConfig.control);\n this._dialogForm.addControl('address', this.addressConfig.control);\n this._dialogForm.addControl('zip', this.zipConfig.control);\n this._dialogForm.addControl('location', this.locationConfig.control);\n this.maxDate = moment().subtract(15, 'years').format('YYYY-MM-DD');\n break;\n case DialogType.ADD_CAMERA:\n this._dialogForm.addControl('cameraManufacturer', this.cameraManufacturerConfig.control);\n this._dialogForm.addControl('cameraModel', this.cameraModelConfig.control);\n this._dialogForm.addControl('cameraId', this.cameraIdConfig.control);\n this._dialogForm.addControl('publicKey', this.publicKeyConfig.control);\n this._dialogForm.addControl('licenseBeginDate', this.licenseBeginDateConfig.control);\n this._dialogForm.addControl('licenseEndDate', this.licenseEndDateConfig.control);\n this.addSubscription(\n this.licenseBeginDateConfig.control.valueChanges.subscribe((value: any) => {\n this.minDate = moment(value).add(1, 'days').format('YYYY-MM-DD');\n })\n );\n this.licenseBeginDateConfig.control.setValue(new Date());\n break;\n case DialogType.UPDATE_CAMERA:\n this._dialogForm.addControl('licenseBeginDate', this.licenseBeginDateConfig.control);\n this._dialogForm.addControl('licenseEndDate', this.licenseEndDateConfig.control);\n this.addSubscription(\n this.licenseBeginDateConfig.control.valueChanges.subscribe((value: any) => {\n this.minDate = moment(value).add(2, 'days').format('YYYY-MM-DD');\n })\n );\n const camera: Camera = {\n ...new Camera(),\n ...this.data.values\n };\n this.licenseBeginDateConfig.control.setValue(moment(camera.licenseBeginDate, 'DD.MM.YYYY').toDate());\n this.licenseEndDateConfig.control.setValue(moment(camera.licenseEndDate, 'DD.MM.YYYY').toDate());\n break;\n case DialogType.UPDATE_STUDIO:\n this._dialogForm.addControl('studioName', this.studioNameConfig.control);\n // this._dialogForm.addControl('licenseNumber', this.licenseNumberConfig.control);\n this._dialogForm.addControl('address', this.addressConfig.control);\n this._dialogForm.addControl('zip', this.zipConfig.control);\n this._dialogForm.addControl('location', this.locationConfig.control);\n Helper.mergeForm(this._dialogForm, this.data.values);\n break;\n case DialogType.ADD_STUDIO:\n this._dialogForm.addControl('studioName', this.studioNameConfig.control);\n // this._dialogForm.addControl('licenseNumber', this.licenseNumberConfig.control);\n this._dialogForm.addControl('address', this.addressConfig.control);\n this._dialogForm.addControl('zip', this.zipConfig.control);\n this._dialogForm.addControl('location', this.locationConfig.control);\n break;\n case DialogType.REJECT_APPLICATION:\n this.reasonControl.setValidators(Validators.required);\n this._dialogForm.addControl('reason', this.reasonControl);\n break;\n case DialogType.SEARCH_COMPANY:\n this._dialogForm.addControl('search', this.searchConfig.control);\n this.tableConfig.header = ['company', 'companyLegalForm'];\n this.tableConfig.actionId = 'email';\n break;\n case DialogType.CODE:\n this.authentificator = this.data.values.secret !== undefined;\n this.error = this.data.values.error;\n let delay = 15;\n this.clickDelay = ` (${delay})`;\n const timer = setInterval(() => {\n if (delay > 0) {\n delay--;\n this.clickDelay = ` (${delay})`;\n } else {\n this.clickDelay = '';\n clearInterval(timer);\n }\n }, 1000);\n break;\n case DialogType.FORCE_SAVE:\n this._dialogForm.addControl('forceSave', this.forceSaveConfig.control);\n break;\n case DialogType.VALIDATION_ERRORS:\n this.validationErrors = (this.data.values || []).map((error: string) => `editor.validationErrors.${error}`);;\n break;\n case DialogType.PASSWORD:\n this._dialogForm.addControl('password', this.passwordConfig.control);\n break;\n default:\n break;\n }\n this.addSubscription(\n this._dialogForm.statusChanges.subscribe(() => {\n this.confirmLocked = this._dialogForm.invalid;\n })\n );\n }\n\n public confirm(): void {\n this.dialogRef.close(true);\n }\n\n public inviteEmployee(): void {\n this.addSubscription(\n this._photostudioService.inviteEmployee(this._dialogForm.value).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n const email = `${this._dialogForm.value.email}`;\n if (response === ResponseStatus.SUCCESS) {\n this._showSuccess(['dialog.inviteEmployee.success', email]);\n }\n if (response === ResponseStatus.CONFLICT) {\n this._showConflict(['dialog.inviteEmployee.conflict', email]);\n }\n if (response === ResponseStatus.ERROR) {\n this._showError(['dialog.inviteEmployee.error']);\n }\n })\n );\n }\n\n public deleteAccount(): void {\n this.loading = true;\n this.dialogRef.disableClose = true;\n this.addSubscription(\n this._userService.deleteAccount(this.passwordConfig.control.value).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n this.loading = false;\n if (response === ResponseStatus.SUCCESS) {\n this.data.type = DialogType.ACCOUNT_DELETED;\n this.data.okButton = 'button.ok';\n this.description = this._localizationService.getTranslation('dialog.deleteAccount.success');\n } else {\n this.passwordConfig.control.setErrors({incorrectPassword: true});\n this.dialogRef.disableClose = false;\n }\n })\n );\n }\n\n public addUigEmployee(): void {\n this.dialogRef.disableClose = true;\n this.addSubscription(\n this._userService.addUigEmployee({\n ...new UigEmployee(),\n role: Role.UIG,\n ...this._dialogForm.value\n }).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n const name = `${this._dialogForm.value.firstName} ${this._dialogForm.value.lastName}`;\n const email = `${this._dialogForm.value.email}`;\n if (response === ResponseStatus.SUCCESS) {\n this._showSuccess(['dialog.addUigEmployee.success', name]);\n }\n if (response === ResponseStatus.CONFLICT) {\n this._showConflict(['dialog.addUigEmployee.conflict', email]);\n }\n if (response === ResponseStatus.ERROR) {\n this._showError(['dialog.addUigEmployee.error', name]);\n }\n })\n );\n }\n\n public addHardwareProvider(): void {\n this.dialogRef.disableClose = true;\n this.addSubscription(\n this._userService.addHardwareProvider({\n ...new HardwareProvider(),\n ...this._dialogForm.value\n }).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n const name = `${this._dialogForm.value.firstName} ${this._dialogForm.value.lastName}`;\n const email = `${this._dialogForm.value.email}`;\n if (response === ResponseStatus.SUCCESS) {\n this._showSuccess(['dialog.addHardwareProvider.success', name]);\n }\n if (response === ResponseStatus.CONFLICT) {\n this._showConflict(['dialog.addHardwareProvider.conflict', email]);\n }\n if (response === ResponseStatus.ERROR) {\n this._showError(['dialog.addUigEmployee.error']);\n }\n })\n );\n }\n\n public addCamera(): void {\n this.dialogRef.disableClose = true;\n const camera: Camera = {\n ...new Camera(),\n ...this._dialogForm.value,\n publicKey: btoa(this._dialogForm.value.publicKey),\n };\n this.addSubscription(\n this._hardwareService.addCamera(camera).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n const name = `${this._dialogForm.value.cameraManufacturer}: ${this._dialogForm.value.cameraModel}`;\n if (response === ResponseStatus.SUCCESS) {\n this._showSuccess(['dialog.addCamera.success', name]);\n }\n if (response === ResponseStatus.CONFLICT) {\n this._showConflict(['dialog.addCamera.conflict', this._dialogForm.value.cameraId]);\n }\n if (response === ResponseStatus.ERROR) {\n this._showError(['dialog.addCamera.error']);\n }\n })\n );\n }\n\n public updateCamera(): void {\n this.dialogRef.disableClose = true;\n const update: any = {\n cameraId: this.data.values.cameraId,\n cameraManufacturer: this.data.values.cameraManufacturer,\n ...this._dialogForm.value\n };\n this.addSubscription(\n this._hardwareService.updateCamera(update).subscribe((response: ResponseStatus) => {\n this.confirmLocked = false;\n if (response === ResponseStatus.SUCCESS) {\n this._showSuccess(['dialog.updateCamera.success']);\n }\n if (response === ResponseStatus.ERROR) {\n this._showError(['dialog.updateCamera.error']);\n }\n })\n );\n }\n\n public addStudio(): void {\n this.dialogRef.close({\n ...new Studio(),\n ...this._dialogForm.value\n });\n }\n\n public updateStudio(): void {\n this.dialogRef.close({\n ...new Studio(),\n ...this._dialogForm.value\n });\n }\n\n public rejectApplication(): void {\n this.dialogRef.close(this.reasonControl.value);\n }\n\n public searchCompany(): void {\n const search: SearchQuery = new SearchQuery();\n search.text = this._dialogForm.value.search;\n this.addSubscription(\n this._photostudioService.searchCompany(search).subscribe(\n (companies: any[]) =>\n {\n this.searched = true;\n this.tableConfig.items = companies;\n this.tableConfig.actions = [TableActionType.ADD_COMPANY];\n this.tableConfig.click = TableActionType.ADD_COMPANY;\n this.tableConfig.paginator.size = 5;\n this.tableConfig.paginator.total = companies.length;\n this.tableConfig = {...this.tableConfig};\n })\n );\n }\n\n public addCompany(company: any): void {\n this._photostudioService.addCompany(company.id).subscribe((response: ResponseStatus) => {\n this.dialogRef.close(response === ResponseStatus.SUCCESS);\n });\n }\n\n private _showSuccess(description: string[]): void {\n this.dialogRef.updateSize(DialogConfig.smallSize());\n this.dialogRef.disableClose = false;\n this.data.type = DialogType.SUCCESS;\n this.data.okButton = 'button.ok';\n this.description = this._localizationService.getTranslation(description[0], description.slice(1));\n }\n\n private _showConflict(description: string[]): void {\n this.dialogRef.updateSize(DialogConfig.smallSize());\n this.data.type = DialogType.CONFLICT;\n this.data.okButton = 'button.ok';\n this.description = this._localizationService.getTranslation(description[0], description.slice(1));\n }\n\n private _showError(description: string[]): void {\n this.dialogRef.updateSize(DialogConfig.smallSize());\n this.data.type = DialogType.FAIL;\n this.data.okButton = 'button.ok';\n this.description = this._localizationService.getTranslation(description[0], description.slice(1));\n }\n\n public backToForm(): void {\n this.dialogRef.updateSize(DialogConfig.largeSize());\n this.data = this._originData.clone();\n this.description = this._localizationService.getTranslation(this.data.description[0], this.data.description.slice(1));\n this.dialogRef.disableClose = false;\n }\n\n public codeEntered(code: string): void {\n this.dialogRef.close(code);\n }\n\n public submitPassword(): void {\n if (this.passwordConfig.control.valid) {\n this.dialogRef.close(this.passwordConfig.control.value);\n }\n }\n\n public showRequiredHint(): boolean {\n return [\n DialogType.ADD_CAMERA,\n DialogType.ADD_EMPLOYEE,\n DialogType.ADD_HARDWARE_PROVIDER,\n DialogType.ADD_STUDIO,\n DialogType.ADD_UIG_EMPLOYEE,\n DialogType.UPDATE_CAMERA,\n DialogType.UPDATE_STUDIO\n ].includes(this.data.type);\n }\n\n}\n","
\n
{{ data.headline | translate }}
\n\n
\n
\n done_outline\n
\n
\n cancel\n
\n
\n warning_amber\n
\n
\n {{ data.values.icon }}\n
\n

{{ description }}

\n\n
\n
\n \n \n
\n \n
\n\n
\n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n\n
\n \n \n \n
\n\n
\n
\n \n
\n
0\">\n \n
\n
\n {{ 'dialog.searchAddCompany.empty' | translate }}\n
\n
\n\n
\n
\n \n
\n
\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n \n {{ validationError | translate }}\n
\n
\n\n
\n
\n \n
\n
\n\n {{ error | translate }}\n\n
\n\n
\n {{ 'required-fields' | translate }}\n \n {{ data.okButton | translate }}\n {{ data.cancelButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.okButton | translate }}\n {{ data.cancelButton | translate }}\n \n \n {{ data.okButton | translate }}\n \n \n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}{{ clickDelay }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}{{ clickDelay }}\n \n \n {{ data.okButton | translate }}{{ clickDelay }}\n \n \n {{ data.cancelButton | translate }}\n {{ data.okButton | translate }}\n \n
\n\n
\n \n
\n
\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { LocalizationService } from '@tallence/localization';\nimport { fromEvent } from 'rxjs';\nimport { TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { FileUploadConfig } from 'src/app/models/file-upload.model';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss']\n})\nexport class FileUploadComponent extends GarbageCollectorComponent implements OnInit, AfterViewInit {\n\n @Input()\n public config: FileUploadConfig = new FileUploadConfig('');\n @Input()\n public required?: string;\n @Input()\n public multiple?: string;\n @Input()\n public accept?: string;\n\n @ViewChild('inputElement')\n public inputRef!: ElementRef;\n @ViewChild('dropboxElement')\n public dropboxRef!: ElementRef;\n\n public fileInput = '';\n private _files: File[] = [];\n public highlighted = false;\n private _accept: string[] = ['.jpg', '.JPG', '.jpeg', '.png', '.PNG', '.pdf', '.PDF'];\n public attachmentsConfig: TableConfig = new TableConfig();\n private _maxFileSize = 2 * 1024 * 1024; // MB\n\n constructor(\n private _localizationService: LocalizationService,\n private _snackbarService: SnackbarService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this.required !== undefined) {\n this.config.control.setValidators(Validators.required);\n }\n if (this.accept !== undefined) {\n this.accept.split(',').forEach((type: string) => {\n this._accept.push(`.${type.replace(/^\\./, '')}`);\n });\n }\n this.attachmentsConfig.header = ['attachment'];\n this.attachmentsConfig.actions = [TableActionType.DELETE];\n this.attachmentsConfig.actionId = 'id';\n }\n\n public ngAfterViewInit(): void {\n if (this.multiple !== undefined) {\n this.inputRef.nativeElement.setAttribute('multiple', 'true');\n }\n if (this.accept !== undefined) {\n this.inputRef.nativeElement.setAttribute('accept', this._accept.join(','));\n }\n this._initDropbox();\n }\n\n private _initDropbox(): void {\n const dropbox: HTMLElement = this.dropboxRef.nativeElement as HTMLElement;\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe((event) => {\n event.preventDefault();\n event.stopPropagation();\n })\n );\n });\n ['dragenter', 'dragover'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe(() => {\n this.highlighted = true;\n })\n );\n });\n ['dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(dropbox, eventName).subscribe((event) => {\n if (eventName === 'drop') {\n const data: DataTransfer | null = (event as DragEvent).dataTransfer;\n const files: FileList | undefined = data?.files;\n this._handleFiles(files);\n this.highlighted = false;\n }\n })\n );\n });\n }\n\n public onFileChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target?.files?.length) {\n const files: FileList = target.files;\n this._handleFiles(files);\n }\n this.fileInput = '';\n }\n\n private _handleFiles(files: FileList | undefined): void {\n Array.from(files || []).forEach((file: File) => {\n const match = this._files.find(f => f.name === file.name);\n const type: string = file.name.match(/\\.[a-zA-Z0-9]+$/)?.[0] || 'none';\n console.log('type. ', type, file.name.match(/\\.[a-zA-Z0-9]+$/)?.[0]);\n const oversize = file.size > this._maxFileSize;\n if (oversize) {\n this._snackbarService.showWarning(['snackbar.oversize', file.name]);\n }\n if (!this._accept.includes(type)) {\n this._snackbarService.showWarning(['snackbar.type']);\n }\n if (!match && !oversize && (this._accept.includes(type) || this._accept.length === 0)) {\n if (this.multiple !== undefined) {\n this._files.push(file);\n } else {\n this._files = [file];\n }\n }\n this._updateControl();\n });\n }\n\n private _updateControl(): void {\n this.attachmentsConfig.items = this._files.map((file) => {\n return {\n attachment: file.name,\n id: file.name\n };\n });\n this.config.control.setValue(this._files);\n this.attachmentsConfig = {...this.attachmentsConfig};\n }\n\n public onAction(action: TableAction): void {\n switch (action.name) {\n case TableActionType.DELETE:\n this._files = this._files.filter(f => f.name !== action.id);\n this._updateControl();\n break;\n default:\n break;\n }\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n return '';\n }\n\n}\n","
\n
\n \n \n \n
\n \n {{ getErrorMessage() }}\n \n
\n
\n \n
\n\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent {\n\n public currentYear = new Date().getFullYear();\n\n constructor() { }\n\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport * as moment from 'moment';\nimport { CookieService } from 'ngx-cookie-service';\nimport { interval } from 'rxjs';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { AccountModel, StateModel } from 'src/app/models/store.model';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { Helper } from 'src/app/utilities/helper';\nimport { DialogComponent } from '../dialog/dialog.component';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent extends GarbageCollectorComponent implements OnInit {\n\n public auth = false;\n public showPrint = false;\n public name?: string;\n public image?: string;\n public timeout = 0;\n public warningTime = 5 * 60 * 1000;\n public formattedTime = '';\n private _hours = 12;\n\n constructor(\n private _store: Store,\n private _router: Router,\n private _authService: AuthService,\n private _cookieService: CookieService,\n private _dialog: MatDialog\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.auth).subscribe((auth: boolean) => {\n this.auth = auth;\n })\n );\n this.addSubscription(\n this._store.select((state: StateModel) => state.account).subscribe((account: AccountModel) => {\n this.name = `${account.firstName} ${account.lastName}`.trim();\n this.image = account.image ? `url(${account.image})` : '';\n })\n );\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.timeout).subscribe((timeout: number) => {\n if (timeout) {\n this.timeout = timeout;\n }\n })\n );\n this.addSubscription(\n interval(1000).subscribe(() => {\n this.timeout -= 1000;\n this.formattedTime = moment(this.timeout).format('mm:ss');\n })\n );\n this.showPrint = this._router.url.includes('handout');\n }\n\n public goTo(path: string): void {\n this._router.navigate([path]);\n }\n\n public extendTime(): void {\n this._authService.resetAutoLogout();\n }\n\n public lock(): void {\n if (this._cookieService.check('secret')) {\n this.goTo('logout');\n } else {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CODE,\n 'dialog.createPin.headline',\n ['dialog.createPin.description', `${this._hours}`],\n );\n dialogData.values = {\n codeSize: 4,\n icon: 'lock'\n };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((code: string) => {\n const token = this._authService.getRefreshToken() || '';\n if (code && token !== '') {\n const encrypted = Helper.encrypt(code, token);\n this._cookieService.set('secret', encrypted, {\n expires: moment().add(this._hours, 'h').toDate(),\n sameSite: 'Strict'\n });\n this.goTo('logout');\n }\n })\n );\n }\n }\n\n public logout(): void {\n this._cookieService.delete('secret');\n this.goTo('logout');\n }\n\n public print(): void {\n window.print();\n }\n\n}\n","
\n
\n
\n
0 && timeout < warningTime\" class=\"header__timeout\" (click)=\"extendTime()\">\n running_with_errors\n
{{ formattedTime }}
\n
\n
\n \n
{{name}}
\n
\n \n \n
\n {{ 'button.print' | translate }}\n
\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-headline',\n templateUrl: './headline.component.html',\n styleUrls: ['./headline.component.scss']\n})\nexport class HeadlineComponent {\n\n @Input()\n public headline?: string;\n @Input()\n public icon?: string;\n\n constructor() { }\n\n}\n","
\n \n
\n \n
\n
\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { IconService } from 'src/app/services/icon.service';\n\n@Component({\n selector: 'app-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss']\n})\nexport class IconComponent implements OnInit {\n\n @Input()\n public icon!: string;\n\n public isOwn = false;\n public style: any = {};\n\n constructor(\n private _iconService: IconService,\n private _elRef: ElementRef\n ) { }\n\n public ngOnInit(): void {\n if (this.icon !== undefined) {\n this.isOwn = this._iconService.isOwnIcon(this.icon);\n }\n const el: HTMLElement = this._elRef.nativeElement as HTMLElement;\n const size = window.getComputedStyle(el).fontSize;\n el.style.height = size;\n el.style.width = size;\n el.style.minWidth = size;\n this.style = {\n fontSize: size,\n width: size,\n height: size\n };\n }\n\n}\n","\n \n {{ icon }}\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ValidatorFn, Validators } from '@angular/forms';\nimport { LocalizationService } from '@tallence/localization';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-input-file',\n templateUrl: './input-file.component.html',\n styleUrls: ['./input-file.component.scss']\n})\nexport class InputFileComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: InputConfig = new InputConfig(InputType.NONE, '');\n @Input()\n public required?: string;\n @Input()\n public readonly?: string;\n @Input()\n public pattern?: string;\n @Input()\n public whitelist?: string;\n @Input()\n public autocomplete = 'off';\n public publicKeyInput = '';\n public focusState = false;\n\n constructor(\n private _localizationService: LocalizationService,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this._setValidation();\n }\n\n private _setValidation(): void {\n const validators: ValidatorFn[] = [];\n\n if (this.required !== undefined) {\n validators.push(Validators.required);\n }\n if (this.pattern !== undefined) {\n validators.push(Validators.pattern(this.pattern));\n }\n this.config.control.setValidators(validators);\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n return '';\n }\n public getHintMessage(): string {\n return this._localizationService.getTranslation('input.hint.publicKey');\n }\n\n public onPublicKeyChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target?.files?.length) {\n const file: File = target.files[0];\n const reader = new FileReader();\n reader.onload = (src) => {\n const source = `${src.target?.result}`;\n if (source) {\n this.config.control.setValue(source);\n }\n };\n reader.readAsText(file);\n }\n this.publicKeyInput = '';\n }\n\n}\n","\n {{ config.label | translate }}\n \n\n
\n \n \n
\n \n {{ getErrorMessage() }}\n \n \n {{ getHintMessage() }}\n \n\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ValidatorFn, Validators } from '@angular/forms';\nimport { LocalizationService } from '@tallence/localization';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { IconService } from 'src/app/services/icon.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss']\n})\nexport class InputComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: InputConfig = new InputConfig(InputType.NONE, '');\n @Input()\n public required?: string;\n @Input()\n public readonly?: string;\n @Input()\n public pattern?: string;\n @Input()\n public whitelist?: string;\n @Input()\n public autocomplete = 'off';\n @Input()\n public preIcon?: string;\n @Input()\n public postIcon?: string;\n\n public hidePassword = true;\n public isPassword = false;\n\n constructor(\n private _localizationService: LocalizationService,\n private _iconService: IconService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.isPassword = this.config.type === InputType.PASSWORD;\n if (this.whitelist !== undefined) {\n this.addSubscription(\n this.config.control.valueChanges.subscribe((value: string) => {\n const match: any = `${value}`.match(new RegExp(`${this.whitelist}`));\n if (value !== '' && match?.[0] !== value) {\n this.config.control.setValue(match?.[0] || '');\n }\n })\n );\n }\n this._setValidation();\n }\n\n private _setValidation(): void {\n const validators: ValidatorFn[] = [];\n\n switch (this.config.type) {\n case InputType.EMAIL:\n validators.push(Validators.pattern('^[a-zA-Z0-9]+[._+\\\\-a-zA-Z0-9]*@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,10}$'));\n break;\n case InputType.PHONE:\n validators.push(Validators.pattern('^[+0]{1}[1-9]{1}\\\\d{2,14}$'));\n this.config.hint = 'input.phone.validation'\n break;\n default:\n break;\n }\n\n if (this.required !== undefined) {\n validators.push(Validators.required);\n }\n if (this.pattern !== undefined) {\n validators.push(Validators.pattern(this.pattern));\n }\n this.config.control.setValidators(validators);\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n if (this.config.control.hasError('passwordRules')) {\n return this._localizationService.getTranslation('input.error.password.rules');\n }\n if (this.config.control.hasError('passwordRepeat')) {\n return this._localizationService.getTranslation('input.error.password.repeat');\n }\n if (this.config.control.hasError('incorrectPassword')) {\n return this._localizationService.getTranslation('input.error.password.incorrect');\n }\n return '';\n }\n\n public toggleVisibility(): void {\n this.hidePassword = !this.hidePassword;\n this.config.type = this.hidePassword ? InputType.PASSWORD : InputType.TEXT;\n }\n\n public isOwnIcon(icon: string): boolean {\n return this._iconService.isOwnIcon(icon);\n }\n\n}\n","\n {{ config.label | translate }}\n {{ preIcon }}\n \n \n \n \n {{ postIcon }}\n locked\n {{ config.hint | translate }}\n \n {{ getErrorMessage() }}\n \n\n","import { Component, Input } from '@angular/core';\nimport { TableActionType } from 'src/app/models/administration.model';\n\n@Component({\n selector: 'app-legend',\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.scss']\n})\nexport class LegendComponent {\n\n @Input()\n public actions: TableActionType[] = [];\n\n constructor() { }\n\n public getKeyFromType(action: TableActionType): string {\n let key = 'tableAction.';\n switch (action) {\n case TableActionType.EDIT:\n key += 'edit';\n break;\n case TableActionType.UPDATE:\n key += 'update';\n break;\n case TableActionType.DELETE:\n key += 'delete';\n break;\n case TableActionType.DEACTIVATE:\n key += 'deactivate';\n break;\n case TableActionType.REACTIVATE:\n key += 'reactivate';\n break;\n case TableActionType.PUBLIC_KEY:\n key += 'publicKey';\n break;\n case TableActionType.VIEW_APPLICATION:\n key += 'viewApplication';\n break;\n case TableActionType.DOWNLAOD:\n key += 'download';\n break;\n case TableActionType.REMOVE_STUDIO:\n key += 'removeStudio';\n break;\n case TableActionType.STUDIOS:\n key += 'studios';\n break;\n case TableActionType.LICENSE:\n key += 'license';\n break;\n case TableActionType.ADD_COMPANY:\n key += 'addCompany';\n break;\n default:\n break;\n }\n return key;\n }\n\n}\n","
\n
\n {{ getKeyFromType(action) | translate }}\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { NavigationItem, NavigationType, Role } from 'src/app/models/security.model';\nimport { AccountModel, StateModel } from 'src/app/models/store.model';\nimport { navigationItems } from 'src/app/routing/navigation-items';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss']\n})\nexport class MenuComponent extends GarbageCollectorComponent implements OnInit {\n\n public avaibleItems: NavigationItem[] = [];\n public name?: string;\n public image?: string;\n\n constructor(\n private _store: Store,\n private _router: Router\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this.avaibleItems = navigationItems.filter((item: NavigationItem) => {\n return item.authorized.includes(role) && item.type.includes(NavigationType.MENU);\n });\n this.avaibleItems.sort((a, b) => {\n return a.order - b.order;\n });\n })\n );\n this.addSubscription(\n this._store.select((state: StateModel) => state.account).subscribe((account: AccountModel) => {\n this.name = `${account.firstName} ${account.lastName}`.trim();\n this.image = account.image ? `url(${account.image})` : '';\n })\n );\n }\n\n public routeTo(route: string[]): void {\n this._router.navigate(route);\n }\n\n}\n","
\n \n \n
{{ name }}
\n \n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-new-password',\n templateUrl: './new-password.component.html',\n styleUrls: ['./new-password.component.scss']\n})\nexport class NewPasswordComponent extends GarbageCollectorComponent implements OnInit {\n\n public password1Config: InputConfig = new InputConfig(InputType.PASSWORD, 'input.password1.label', '', 'input.password1.hint');\n public password2Config: InputConfig = new InputConfig(InputType.PASSWORD, 'input.password2.label');\n\n @Input()\n public set disabled(state: boolean) {\n if (state === true && this.password1Config.control.enabled && this.password2Config.control.enabled) {\n this.password1Config.control.disable();\n this.password2Config.control.disable();\n } else {\n this.password1Config.control.enable();\n this.password2Config.control.enable();\n }\n }\n\n @Input()\n public empty?: string;\n\n @Output()\n public password: EventEmitter = new EventEmitter();\n\n public rules = [\n {\n text: 'password.rules.length',\n pattern: '.{8,}',\n valid: false\n },\n {\n text: 'password.rules.capital',\n pattern: '[A-ZÄÖÜ]+',\n valid: false\n },\n {\n text: 'password.rules.number',\n pattern: '\\\\d+',\n valid: false\n },\n {\n text: 'password.rules.special',\n pattern: '[!\"§$%&/()=?]+',\n valid: false\n }\n ];\n private _passwordForm: FormGroup = this._fb.group({});\n\n constructor(\n private _fb: FormBuilder,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this.password1Config.control.valueChanges.subscribe((password: string) => {\n this.rules.forEach((rule: any) => {\n const regex = new RegExp(rule.pattern);\n rule.valid = regex.test(password);\n });\n this.password1Config.control.setErrors(this.rules.filter((rule => !rule.valid)).length ? {passwordRules: true} : null);\n })\n );\n this.addSubscription(\n this.password2Config.control.valueChanges.subscribe((password: string) => {\n this.password2Config.control.setErrors(this.password1Config.control.value === password ? null : {passwordRepeat: true});\n })\n );\n this._passwordForm.addControl('password1', this.password1Config.control);\n this._passwordForm.addControl('password2', this.password2Config.control);\n this.addSubscription(\n this._passwordForm.valueChanges.subscribe(() => {\n const newPassword: boolean = this._passwordForm.valid && this.password1Config.control.value === this.password2Config.control.value;\n this.password.emit(newPassword ? this.password1Config.control.value : '');\n })\n );\n if (this.empty !== undefined) {\n this.password1Config.control.setValue('***');\n this.password2Config.control.setValue('***');\n setTimeout(() => {\n this.password1Config.control.reset();\n this.password2Config.control.reset();\n }, 500);\n }\n }\n\n}\n","
\n
\n
\n \n
\n
\n {{rule.valid ? 'check_circle' : 'cancel'}}\n {{ rule.text | translate }}\n
\n
\n
\n \n
\n
\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PaginatorConfig } from 'src/app/models/administration.model';\nimport {SelectConfig, SelectOption} from '../../models/select.model';\nimport {LocalizationService} from '@tallence/localization';\n\n@Component({\n selector: 'app-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent {\n\n public paginator!: PaginatorConfig;\n public templateConfig: SelectConfig = new SelectConfig('pageRows.template.label');\n\n @Input()\n public set config(cfg: PaginatorConfig) {\n this.paginator = cfg;\n this.paginator.last = Math.max(Math.ceil(cfg.total / cfg.size), 1);\n if (cfg.current > cfg.last) {\n this.paginator.current = cfg.last;\n }\n if (cfg.current < 1) {\n this.paginator.current = 1;\n }\n this._localizationService.getArrayFromKey('pageRows.template.options').forEach(key => {\n this.templateConfig.options.push(new SelectOption(`pageRows.template.options.${key}`, key));\n });\n this.templateConfig.control.setValue(cfg.size.toString());\n this.templateConfig.control.valueChanges.subscribe(() => {\n if (cfg.size.toString() !== this.templateConfig.control.value) {\n localStorage.setItem('pageRows', this.templateConfig.control.value);\n window.location.reload();\n }\n });\n }\n\n @Output()\n public changed: EventEmitter = new EventEmitter();\n\n constructor(\n private _localizationService: LocalizationService\n ) { }\n\n public changePage(page: number): void {\n this.paginator.current = page;\n this.changed.emit(this.paginator);\n }\n\n}\n","
\n
\n \n
\n
\n \n \n\n
\n {{ paginator.current }} - {{ paginator.last }}\n
\n\n \n \n
\n
\n
\n","import { Component, ElementRef, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { LocalizationService } from '@tallence/localization';\nimport { combineLatest, fromEvent, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ResponseStatus } from 'src/app/models/administration.model';\nimport { PhotoUpload, ProcessingAction, ProcessingActionType, CropValue, Movement } from 'src/app/models/file-upload.model';\nimport { SelectConfig, SelectOption } from 'src/app/models/select.model';\nimport { SliderConfig } from 'src/app/models/slider.model';\nimport { EditorService } from 'src/app/services/editor/editor.service';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { Canvas } from 'src/app/utilities/canvas';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-photo-editor',\n templateUrl: './photo-editor.component.html',\n styleUrls: ['./photo-editor.component.scss']\n})\nexport class PhotoEditorComponent extends GarbageCollectorComponent implements OnInit, OnDestroy {\n\n @ViewChild('canvas')\n public canvasRef!: ElementRef;\n @ViewChild('image')\n public imageRef!: ElementRef;\n @ViewChild('imageFrame')\n public imageFrameRef!: ElementRef;\n @ViewChild('boundaries')\n public boundariesRef!: ElementRef;\n @ViewChild('overlay')\n public overlayRef!: ElementRef;\n @ViewChild('shadowMask')\n public shadowMaskRef!: ElementRef;\n\n public photo?: PhotoUpload;\n\n public rotationConfig: SliderConfig = new SliderConfig('slider.rotation.label', '°');\n public zoomConfig: SliderConfig = new SliderConfig('slider.zoom.label', 'x');\n public brightnessConfig: SliderConfig = new SliderConfig('slider.brightness.label', '%');\n public contrastConfig: SliderConfig = new SliderConfig('slider.contrast.label', '%');\n public templateConfig: SelectConfig = new SelectConfig('select.template.label');\n\n public invalidMask: boolean[] = [false, false, false, false];\n public locked = false;\n public showTemplate = false;\n public mouseover = false;\n\n private _movement: Movement | null = null;\n private _rotation = 0;\n private _rotationStartValue = 0;\n private _rotationValue = 0;\n private _zoomValue = 0;\n private _tranformationEnabled = false;\n private _transformAction = '';\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: PhotoUpload,\n private _localizationService: LocalizationService,\n private _snackbarService: SnackbarService,\n private _editorService: EditorService,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n\n this.rotationConfig.step = 0.1;\n this.rotationConfig.min = -15;\n this.rotationConfig.max = 15;\n this.zoomConfig.step = 0.01;\n this.zoomConfig.min = 1;\n this.zoomConfig.max = 2;\n this.brightnessConfig.step = 1;\n this.brightnessConfig.min = -25;\n this.brightnessConfig.max = 25;\n this.contrastConfig.step = 1;\n this.contrastConfig.min = -25;\n this.contrastConfig.max = 25;\n\n this.addSubscription(\n this.dialogRef.afterOpened().subscribe(() => {\n this._initEditor();\n })\n );\n\n this.photo = this.data;\n\n this.addSubscription(\n combineLatest([\n this.zoomConfig.control.valueChanges,\n this.rotationConfig.control.valueChanges,\n ]).subscribe(values => {\n if (this.imageRef) {\n const image: HTMLElement = this.imageRef.nativeElement as HTMLElement;\n const zoom = parseFloat(`${values[0]}`.replace(',', '.'));\n const rotation = parseFloat(`${values[1]}`.replace(',', '.'));\n if (image && !isNaN(rotation)) {\n image.style.transform = `rotate(${rotation}deg) scale(${zoom})`;\n this.checkMask();\n }\n }\n })\n );\n this.addSubscription(\n combineLatest([\n this.brightnessConfig.control.valueChanges,\n this.contrastConfig.control.valueChanges\n ]).subscribe(values => {\n if (this.imageRef) {\n const image: HTMLElement = this.imageRef.nativeElement as HTMLElement;\n let brightness = parseFloat(`${values[0]}`.replace(',', '.'));\n brightness = !isNaN(brightness) ? brightness : 0;\n let contrast = parseFloat(`${values[1]}`.replace(',', '.'));\n contrast = !isNaN(contrast) ? contrast : 0;\n image.style.filter = `brightness(${100 + brightness}%) contrast(${100 + contrast}%)`;\n }\n })\n );\n this._localizationService.getArrayFromKey('select.template.options').forEach(key => {\n this.templateConfig.options.push(new SelectOption(`select.template.options.${key}`, key));\n });\n this.templateConfig.control.setValue('adult');\n }\n\n private _initEditor(): void {\n if (this.overlayRef && this.canvasRef) {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const canvas: HTMLElement = this.canvasRef.nativeElement as HTMLElement;\n\n this.zoomConfig.control.updateValueAndValidity();\n this.rotationConfig.control.updateValueAndValidity();\n this.brightnessConfig.control.updateValueAndValidity();\n this.contrastConfig.control.updateValueAndValidity();\n canvas.style.height = `${window.innerHeight - (2 * canvas.offsetTop)}px`;\n overlay.style.top = '10%';\n overlay.style.left = '15%';\n\n if (this.photo) {\n if (this.photo.width < this.photo.height) {\n overlay.style.width = '70%';\n } else {\n overlay.style.width = `${(80 / (4.5 / 3.5)) * (this.photo.height / this.photo.width)}%`;\n }\n }\n\n this.addSubscription(\n fromEvent(window, 'resize').subscribe(() => {\n canvas.style.height = `${window.innerHeight - (2 * canvas.offsetTop)}px`;\n this._fitBoundaries();\n this.checkMask();\n })\n );\n this._fitBoundaries();\n }\n }\n\n public moveOnCanvas(e: any): void {\n if (this._movement) {\n const move: Movement = {\n x: e.srcEvent.pageX - this._movement.x,\n y: e.srcEvent.pageY - this._movement.y\n };\n if (this._transformAction === 'drag') {\n this._drag(move);\n }\n if (['tl', 'tr', 'bl', 'br'].includes(this._transformAction)) {\n this._resize(move);\n }\n }\n this._movement = {x: e.srcEvent.pageX, y: e.srcEvent.pageY};\n }\n\n public startTransformation(e: any): void {\n this._rotation = e.rotation;\n this._rotationStartValue = this.rotationConfig.control.value;\n this._tranformationEnabled = true;\n }\n\n public endTransformation(e: any): void {\n const rotation = Math.round(this._rotationValue * 10) / 10;\n const zoom = Math.round(this._zoomValue * 100) / 100;\n this.rotationConfig.control.setValue(rotation);\n this.zoomConfig.control.setValue(zoom);\n this._tranformationEnabled = false;\n }\n\n public transform(e: any): void {\n if (this._tranformationEnabled) {\n let rotation = this._rotationStartValue + ((e.rotation - this._rotation) * 0.5);\n rotation = Math.min(Math.max(rotation, this.rotationConfig.min), this.rotationConfig.max);\n let zoom = this.zoomConfig.control.value;\n if (e.scale < 1) {\n zoom = Math.max(zoom - ((1 - e.scale) * 0.4), this.zoomConfig.min);\n } else {\n zoom = Math.min(zoom + ((e.scale - 1) * 0.3), this.zoomConfig.max);\n }\n this._zoomValue = zoom;\n\n if (this.imageRef) {\n const image: HTMLElement = this.imageRef.nativeElement as HTMLElement;\n if (image && !isNaN(rotation)) {\n this._rotationValue = rotation;\n image.style.transform = `rotate(${rotation}deg) scale(${zoom})`;\n }\n }\n }\n }\n\n private _fitBoundaries(): void {\n if (this.photo) {\n const canvas: HTMLElement = this.canvasRef.nativeElement as HTMLElement;\n const image: HTMLElement = this.imageRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n const imageFrame: HTMLElement = this.imageFrameRef.nativeElement as HTMLElement;\n imageFrame.style.width = '';\n imageFrame.style.height = '';\n\n const pRatio = this.photo.height / this.photo.width;\n const cRatio = image.clientHeight / image.clientWidth;\n\n if (pRatio > cRatio) {\n const bWidth = image.clientHeight / pRatio;\n boundaries.style.height = `${(100 / canvas.clientHeight) * image.clientHeight}%`;\n boundaries.style.width = `${(100 / canvas.clientWidth) * bWidth}%`;\n boundaries.style.left = `${(100 / canvas.clientWidth) * ((canvas.clientWidth - bWidth) / 2)}%`;\n boundaries.style.top = `${(100 / canvas.clientHeight) * ((canvas.clientHeight - image.clientHeight) / 2)}%`;\n } else {\n const bHeight = image.clientWidth * pRatio;\n boundaries.style.width = `${(100 / canvas.clientWidth) * image.clientWidth}%`;\n boundaries.style.height = `${(100 / canvas.clientHeight) * bHeight}%`;\n boundaries.style.left = `${(100 / canvas.clientWidth) * ((canvas.clientWidth - image.clientWidth) / 2)}%`;\n boundaries.style.top = `${(100 / canvas.clientHeight) * ((canvas.clientHeight - bHeight) / 2)}%`;\n }\n imageFrame.style.width = `${boundaries.offsetWidth}px`;\n imageFrame.style.height = `${boundaries.offsetHeight}px`;\n this._checkBoundaries();\n }\n }\n\n private _drag(move: Movement): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n overlay.style.top = `${overlay.offsetTop + move.y}px`;\n overlay.style.left = `${overlay.offsetLeft + move.x}px`;\n this._checkBoundaries();\n }\n\n private _resize(move: Movement): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n\n switch (this._transformAction) {\n case 'tl':\n if (overlay.offsetLeft + move.x > 0) {\n overlay.style.width = `${overlay.clientWidth - move.x}px`;\n }\n break;\n case 'tr':\n if ((overlay.offsetLeft + overlay.clientWidth + move.x) < boundaries.clientWidth) {\n overlay.style.width = `${overlay.clientWidth + move.x}px`;\n }\n break;\n case 'br':\n if ((overlay.offsetLeft + overlay.clientWidth + move.x) < boundaries.clientWidth) {\n overlay.style.width = `${overlay.clientWidth + move.x}px`;\n }\n break;\n case 'bl':\n if (overlay.offsetLeft + move.x > 0) {\n overlay.style.width = `${overlay.clientWidth - move.x}px`;\n }\n break;\n default:\n break;\n }\n this._checkBoundaries();\n }\n\n public lookCorner(corner: string): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n\n const top = `${overlay.offsetTop}px`;\n const left = `${overlay.offsetLeft}px`;\n const right = `${boundaries.clientWidth - (overlay.offsetLeft + overlay.clientWidth)}px`;\n const bottom = `${boundaries.clientHeight - (overlay.offsetTop + overlay.clientHeight)}px`;\n\n switch (corner) {\n case 'tl':\n overlay.style.top = 'auto';\n overlay.style.right = right;\n overlay.style.bottom = bottom;\n overlay.style.left = 'auto';\n break;\n case 'tr':\n overlay.style.top = 'auto';\n overlay.style.bottom = bottom;\n overlay.style.right = 'auto';\n overlay.style.left = left;\n break;\n case 'br':\n overlay.style.top = top;\n overlay.style.right = 'auto';\n overlay.style.bottom = 'auto';\n overlay.style.left = left;\n break;\n case 'bl':\n overlay.style.top = top;\n overlay.style.right = right;\n overlay.style.bottom = 'auto';\n overlay.style.left = 'auto';\n break;\n default:\n break;\n }\n this._transformAction = corner;\n\n }\n\n public unlookCorner(): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n\n overlay.style.top = `${(100 / boundaries.clientHeight) * overlay.offsetTop}%`;\n overlay.style.left = `${(100 / boundaries.clientWidth) * overlay.offsetLeft}%`;\n overlay.style.right = 'auto';\n overlay.style.bottom = 'auto';\n overlay.style.width = `${(100 / boundaries.clientWidth) * overlay.offsetWidth}%`;\n\n this._transformAction = '';\n }\n\n public startDragging(): void {\n this._transformAction = 'drag';\n }\n\n public stopDragging(): void {\n this._transformAction = '';\n }\n\n public checkMask(): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n\n this.invalidMask = [\n {x: overlay.offsetLeft, y: overlay.offsetTop},\n {x: overlay.offsetLeft + overlay.clientWidth - 1, y: overlay.offsetTop},\n {x: overlay.offsetLeft + overlay.clientWidth - 1, y: overlay.offsetTop + overlay.clientHeight - 1},\n {x: overlay.offsetLeft, y: overlay.offsetTop + overlay.clientHeight - 1},\n ].map(cap => {\n return !Canvas.checkBoundaries(\n boundaries.clientWidth,\n boundaries.clientHeight,\n this.rotationConfig.control.value,\n cap.x,\n cap.y,\n this.zoomConfig.control.value\n );\n });\n this.locked = this.invalidMask.includes(true);\n }\n\n private _checkBoundaries(): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n const boundaries: HTMLElement = this.boundariesRef.nativeElement as HTMLElement;\n const shadowMask: HTMLCanvasElement = this.shadowMaskRef.nativeElement as HTMLCanvasElement;\n\n if (overlay.offsetTop < 0) {\n overlay.style.top = '0px';\n }\n if (overlay.offsetLeft < 0) {\n overlay.style.left = '0px';\n }\n if (overlay.offsetTop > (boundaries.clientHeight - overlay.clientHeight)) {\n overlay.style.top = `${boundaries.clientHeight - overlay.clientHeight}px`;\n }\n if (overlay.offsetLeft > (boundaries.clientWidth - overlay.clientWidth)) {\n overlay.style.left = `${boundaries.clientWidth - overlay.clientWidth}px`;\n }\n Canvas.drawShadow(shadowMask, overlay);\n }\n\n public goBack(): void {\n this.dialogRef.close();\n }\n\n public applyChanges(): void {\n const overlay: HTMLElement = this.overlayRef.nativeElement as HTMLElement;\n if (this.photo) {\n this.photo.actions = [];\n if (`${this.rotationConfig.control.value}` !== '0') {\n const value = this.rotationConfig.control.value\n + (Number(this.rotationConfig.control.value) !== parseInt(this.rotationConfig.control.value, 10) ? 0 : 0.0001);\n this.photo.actions.push(\n new ProcessingAction(ProcessingActionType.ROTATION, value)\n );\n }\n if (`${this.brightnessConfig.control.value}` !== '0') {\n const value = 1 + (this.brightnessConfig.control.value / 100);\n this.photo.actions.push(new ProcessingAction(\n ProcessingActionType.BRIGHTNESS, value)\n );\n }\n if (`${this.contrastConfig.control.value}` !== '0') {\n const value = 1 + (this.contrastConfig.control.value / 100);\n this.photo.actions.push(new ProcessingAction(\n ProcessingActionType.CONTRAST, value)\n );\n }\n\n this.unlookCorner();\n\n const scale = parseFloat(this.zoomConfig.control.value);\n const offX = (this.photo.width * scale - this.photo.width) / 2 / scale;\n const offY = (this.photo.height * scale - this.photo.height) / 2 / scale;\n const x = Math.round((this.photo.width / 100 * parseFloat(overlay.style.left) / scale) + offX);\n const y = Math.round((this.photo.height / 100 * parseFloat(overlay.style.top) / scale) + offY);\n const w = Math.floor(this.photo.width / 100 * (parseFloat(overlay.style.width) / scale));\n const h = Math.floor((w / 3.5) * 4.5);\n this.photo.actions.push(new ProcessingAction(ProcessingActionType.CROP, new CropValue(x, y, w, h)));\n\n this._editorService.processingMessage.next('editor.step.processing.overlay');\n\n this.addSubscription(\n this._editorService.applyPhotoActions(this.photo).pipe(\n switchMap((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS && this.photo) {\n return this._editorService.getPhoto(this.photo);\n }\n return of(response);\n })\n ).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this.dialogRef.close();\n } else {\n this._snackbarService.showError(['snackbar.modifyError']);\n }\n this._editorService.processingMessage.next('');\n })\n );\n }\n }\n\n}\n","\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n \n
\n \n \n
\n
\n
\n {{'button.cancel' | translate}}\n
\n
\n {{'button.apply' | translate}}\n
\n
\n
\n \n\n\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { PhotoState, PhotoUpload } from 'src/app/models/file-upload.model';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { Canvas } from 'src/app/utilities/canvas';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-photo-set',\n templateUrl: './photo-set.component.html',\n styleUrls: ['./photo-set.component.scss']\n})\nexport class PhotoSetComponent extends GarbageCollectorComponent implements OnInit {\n\n @ViewChild('canvas')\n public canvasRef!: ElementRef;\n\n private _dpi = 300;\n private _res = this._dpi / 25.4;\n private _pWidth = 152;\n private _pHeight = 102;\n\n public selectedSet = 0;\n public photos: PhotoUpload[] = [];\n public set4: number[] = [0, 0, 0, 0, 0];\n public set6: number[] = [0, 0, 0, 0, 0, 0];\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: PhotoUpload,\n private _photosService: PhotosService,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this.data.state === PhotoState.ARCHIVED) {\n this.addSubscription(\n this._photosService.getArchive().subscribe((photos: PhotoUpload[]) => {\n this.photos = photos;\n const index = photos.indexOf(this.data);\n this.set4 = this.set4.map(x => index || 0);\n this.set6 = this.set6.map(x => index || 0);\n })\n );\n } else {\n this.addSubscription(\n this._photosService.getPhotos().subscribe((photos: PhotoUpload[]) => {\n this.photos = photos;\n const index = photos.indexOf(this.data);\n this.set4 = this.set4.map(x => index || 0);\n this.set6 = this.set6.map(x => index || 0);\n })\n );\n }\n }\n\n public changeSet(set: number): void {\n this.selectedSet = set;\n }\n\n public changePhoto(e: any, set: number[], index: number): void {\n const current = set[index];\n if (e.deltaX && Math.abs(e.deltaX) > 75) {\n if (e.deltaX > 0) {\n set[index] = current + 1 < this.photos.length ? current + 1 : 0;\n } else {\n set[index] = current - 1 >= 0 ? current - 1 : this.photos.length - 1;\n }\n }\n }\n\n\n public nextPhoto(e: any, set: number[], index: number): void {\n const current = set[index];\n if (e.pointerType === 'mouse' && e.type === 'tap') {\n set[index] = current + 1 < this.photos.length ? current + 1 : 0;\n }\n }\n\n public print(): void {\n const width = Math.round(this._res * this._pWidth);\n const height = Math.round(this._res * this._pHeight);\n\n const smallWidth = Math.round(this._res * 35);\n const smallHeight = Math.round(this._res * 45);\n const bigWidth = Math.round(this._res * 70);\n const bigHeight = Math.round(this._res * this._pHeight);\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (ctx) {\n if (this.selectedSet === 0) {\n const c1 = Canvas.createPhotoTile(this.photos[this.set4[0]].image, smallWidth, smallHeight);\n const c2 = Canvas.createPhotoTile(this.photos[this.set4[1]].image, smallWidth, smallHeight);\n const c3 = Canvas.createPhotoTile(this.photos[this.set4[2]].image, smallWidth, smallHeight);\n const c4 = Canvas.createPhotoTile(this.photos[this.set4[3]].image, smallWidth, smallHeight);\n const c5 = Canvas.createPhotoTile(this.photos[this.set4[4]].image, bigWidth, bigHeight);\n ctx.drawImage(c1, Math.round(this._res * 3), Math.round(this._res * 4));\n ctx.drawImage(c2, Math.round(this._res * 3), Math.round(this._res * 53));\n ctx.drawImage(c3, Math.round(this._res * 41), Math.round(this._res * 4));\n ctx.drawImage(c4, Math.round(this._res * 41), Math.round(this._res * 53));\n ctx.drawImage(c5, Math.round(this._res * 79), Math.round(this._res * 0));\n }\n if (this.selectedSet === 1) {\n const c1 = Canvas.createPhotoTile(this.photos[this.set6[0]].image, smallWidth, smallHeight);\n const c2 = Canvas.createPhotoTile(this.photos[this.set6[1]].image, smallWidth, smallHeight);\n const c3 = Canvas.createPhotoTile(this.photos[this.set6[2]].image, smallWidth, smallHeight);\n const c4 = Canvas.createPhotoTile(this.photos[this.set6[3]].image, smallWidth, smallHeight);\n const c5 = Canvas.createPhotoTile(this.photos[this.set6[4]].image, smallWidth, smallHeight);\n const c6 = Canvas.createPhotoTile(this.photos[this.set6[5]].image, smallWidth, smallHeight);\n ctx.drawImage(c1, Math.round(this._res * 19.5), Math.round(this._res * 4));\n ctx.drawImage(c2, Math.round(this._res * 19.5), Math.round(this._res * 53));\n ctx.drawImage(c3, Math.round(this._res * 58.5), Math.round(this._res * 4));\n ctx.drawImage(c4, Math.round(this._res * 58.5), Math.round(this._res * 53));\n ctx.drawImage(c5, Math.round(this._res * 97.5), Math.round(this._res * 4));\n ctx.drawImage(c6, Math.round(this._res * 97.5), Math.round(this._res * 53));\n }\n\n const oHideFrame = document.createElement('iframe');\n if (oHideFrame) {\n oHideFrame.onload = () => {\n if (oHideFrame.contentWindow) {\n oHideFrame.contentWindow.onbeforeunload = () => {\n document.body.removeChild(oHideFrame);\n };\n oHideFrame.contentWindow.onafterprint = () => {\n document.body.removeChild(oHideFrame);\n };\n oHideFrame.contentWindow.focus();\n oHideFrame.contentWindow.print();\n }\n\n };\n oHideFrame.style.position = 'fixed';\n oHideFrame.style.right = '0';\n oHideFrame.style.bottom = '0';\n oHideFrame.style.width = '0';\n oHideFrame.style.height = '0';\n oHideFrame.style.border = '0';\n oHideFrame.srcdoc = ``;\n document.body.appendChild(oHideFrame);\n }\n }\n }\n\n}\n","
\n {{ 'editor.step.set.headline' | translate }}\n
\n

{{ 'editor.step.set.description' | translate }}

\n\n
\n
\n\n
\n\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n\n
\n
\n\n\n
\n
\n {{'button.set4' | translate}}\n {{'button.set6' | translate}}\n
\n {{'button.cancel' | translate}}\n {{'button.print' | translate}}\n
\n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-photo-tile',\n templateUrl: './photo-tile.component.html',\n styleUrls: ['./photo-tile.component.scss']\n})\nexport class PhotoTileComponent {\n\n @Input()\n public src?: string;\n\n constructor() { }\n\n}\n","
\n
\n
\n
\n
\n","import { HttpErrorResponse, HttpEvent, HttpEventType } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport * as moment from 'moment';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { Handout, ResponseStatus } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { PhotoAction, PhotoState, PhotoUpload, PhotoUploadResponse } from 'src/app/models/file-upload.model';\nimport { AccountModel, StateModel } from 'src/app/models/store.model';\nimport { EditorService } from 'src/app/services/editor/editor.service';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { DialogComponent } from '../dialog/dialog.component';\nimport { PhotoEditorComponent } from '../photo-editor/photo-editor.component';\nimport { PhotoSetComponent } from '../photo-set/photo-set.component';\n\n@Component({\n selector: 'app-photo',\n templateUrl: './photo.component.html',\n styleUrls: ['./photo.component.scss']\n})\nexport class PhotoComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public photo!: PhotoUpload;\n\n public date = '';\n public preview = false;\n public progress = 0;\n public actionItems: any[] = [];\n private _actions: PhotoAction[] = [];\n\n constructor(\n private _photosService: PhotosService,\n private _editorService: EditorService,\n private _snackbarService: SnackbarService,\n private _dialog: MatDialog,\n private _store: Store,\n private _router: Router,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this.photo) {\n this.date = moment(this.photo.file.lastModified).format('DD.MM.YYYY HH:mm');\n switch (this.photo.state) {\n case PhotoState.IMPORTED:\n this._actions = [PhotoAction.REMOVE, PhotoAction.UPLOAD];\n break;\n case PhotoState.INVALID:\n this._actions = [PhotoAction.REMOVE];\n break;\n case PhotoState.EDITABLE:\n this._actions = [PhotoAction.EDIT];\n if (Math.floor((this.photo.height / this.photo.width) * 1000) === Math.floor((4.5 / 3.5) * 1000)) {\n this._actions.push(PhotoAction.CONTINUE);\n }\n this.photo.success = '';\n break;\n case PhotoState.EDITED:\n this._actions = [PhotoAction.CHECK, PhotoAction.STORE];\n break;\n case PhotoState.REJECTED:\n this._actions = [PhotoAction.CHECK, PhotoAction.FORCE_SAVE];\n this.photo.fail = 'editor.status.rejected';\n break;\n case PhotoState.APPROVED:\n this._actions = [PhotoAction.SET, PhotoAction.HANDOUT];\n break;\n case PhotoState.ARCHIVED:\n this._actions = [PhotoAction.RESUME];\n if (this.photo.verification.token) {\n this._actions.push(...[PhotoAction.SET, PhotoAction.HANDOUT]);\n }\n break;\n default:\n break;\n }\n this.actionItems = this._actions.map(action => {\n return this._getAction(action);\n });\n }\n }\n\n private _getAction(action: PhotoAction): any {\n let item: any = {};\n switch (action) {\n case PhotoAction.REMOVE:\n item = {\n label: 'editor.action.remove',\n icon: 'delete',\n action\n };\n break;\n case PhotoAction.UPLOAD:\n item = {\n label: 'editor.action.upload',\n icon: 'upload',\n action\n };\n break;\n case PhotoAction.EDIT:\n item = {\n label: 'editor.action.edit',\n icon: 'edit',\n action\n };\n break;\n case PhotoAction.CHECK:\n item = {\n label: 'editor.action.check',\n icon: 'flaky',\n action\n };\n break;\n case PhotoAction.STORE:\n item = {\n label: 'editor.action.store',\n icon: 'cloud_upload',\n action\n };\n break;\n case PhotoAction.HANDOUT:\n item = {\n label: 'editor.action.handout',\n icon: 'qr_code',\n action\n };\n break;\n case PhotoAction.SET:\n item = {\n label: 'editor.action.set',\n icon: 'auto_awesome_mosaic',\n action\n };\n break;\n case PhotoAction.FORCE_SAVE:\n item = {\n label: 'editor.action.forceSave',\n icon: 'publish',\n action\n };\n break;\n case PhotoAction.RESUME:\n item = {\n label: 'editor.action.resume',\n icon: 'edit',\n action\n };\n break;\n case PhotoAction.CONTINUE:\n item = {\n label: 'editor.action.continue',\n icon: 'thumb_up_alt',\n action\n };\n break;\n default:\n break;\n }\n return item;\n }\n\n public doAction(action: PhotoAction): void {\n switch (action) {\n case PhotoAction.REMOVE:\n this._remove();\n break;\n case PhotoAction.UPLOAD:\n this._upload();\n break;\n case PhotoAction.EDIT:\n this._edit();\n break;\n case PhotoAction.CHECK:\n this._check();\n break;\n case PhotoAction.STORE:\n this._sendToCognitec();\n break;\n case PhotoAction.HANDOUT:\n this._getHandout();\n break;\n case PhotoAction.SET:\n this._createSet();\n break;\n case PhotoAction.FORCE_SAVE:\n this._forceSave();\n break;\n case PhotoAction.RESUME:\n this._resumeProcessing();\n break;\n case PhotoAction.CONTINUE:\n this._continue();\n break;\n default:\n break;\n }\n }\n\n public successAction(): void {\n if (this.photo.state === PhotoState.UPLOADED) {\n this._photosService.nextStepTrigger.next();\n }\n }\n public failAction(): void {\n if (this.photo.fail === 'editor.status.rejected') {\n this._showValidationErrors();\n }\n }\n\n private _upload(): void {\n this.progress = 1;\n this.addSubscription(\n this._editorService.uploadPhotos([this.photo.file]).subscribe({\n next: (event: HttpEvent) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n this.progress = Math.round(event.loaded / (event.total || 1) * 100);\n break;\n case HttpEventType.Response:\n if (event.body) {\n const response: PhotoUploadResponse[] = event.body;\n const uploaded = response.find(success => {\n return this.photo.file.name.replace(/,/g, ' ') === success.fileName.replace(/,/g, ' ');\n });\n if (uploaded) {\n this.photo.id = uploaded.imageId,\n this.photo.state = PhotoState.UPLOADED;\n this.photo.success = 'editor.status.uploaded';\n this.photo.fail = '';\n this.photo.uploaded = true;\n }\n }\n this.progress = 0;\n this._photosService.updatePhoto(this.photo);\n break;\n default:\n break;\n }\n },\n error: (error: any) => {\n this.photo.success = '';\n this.photo.fail = 'editor.status.fail';\n this.actionItems = this.actionItems.filter(item => item.action !== PhotoAction.UPLOAD);\n this.progress = 0;\n if (error instanceof HttpErrorResponse) {\n if (error.status === 422) {\n this.photo.fail = 'editor.status.noSignature';\n this.photo.state = PhotoState.INVALID;\n } else {\n this._snackbarService.showError(['snackbar.uploadError']);\n }\n } else {\n this._snackbarService.showError(['snackbar.uploadError']);\n }\n this._photosService.updatePhoto(this.photo);\n }\n })\n );\n\n }\n\n private _remove(): void {\n this._photosService.removePhoto(this.photo);\n }\n\n private _edit(): void {\n this._dialog.open(PhotoEditorComponent, {\n disableClose: true,\n width: '100%',\n height: '100%',\n panelClass: 'photo-editor-dialog',\n data: this.photo\n });\n }\n\n private _showValidationErrors(): void {\n\n const errors: boolean = this.photo.validationErrors.length > 0;\n const noFace: boolean = this.photo.verification.hasNoFace;\n const multipleFaces: boolean = this.photo.verification.hasMultipleFaces;\n\n let dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.validationErrors.headline',\n ['dialog.validationErrors.failed']\n );\n\n if (noFace) {\n dialogData = new DialogConfig(\n DialogType.FAIL,\n 'dialog.validationErrors.headline',\n ['dialog.validationErrors.noFace']\n );\n } else if (multipleFaces) {\n dialogData = new DialogConfig(\n DialogType.FAIL,\n 'dialog.validationErrors.headline',\n ['dialog.validationErrors.multipleFaces', `${this.photo.verification.faceCount}`]\n );\n } else if (errors) {\n dialogData = new DialogConfig(\n DialogType.VALIDATION_ERRORS,\n 'dialog.validationErrors.headline',\n ['dialog.validationErrors.description'],\n );\n }\n\n\n dialogData.values = this.photo.validationErrors;\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n }\n\n private _check(): void {\n let dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.photoCheck.headline',\n ['dialog.photoCheck.description'],\n );\n dialogData.values = {\n icon: 'payments'\n };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n this._editorService.processingMessage.next('editor.step.storage.overlay');\n return this._editorService.validatePhoto(this.photo);\n }\n return of(ResponseStatus.NONE);\n })\n ).subscribe((response: ResponseStatus) => {\n this._editorService.processingMessage.next('');\n if (response === ResponseStatus.SUCCESS) {\n if (this.photo.verification.cognitecApproved) {\n dialogData = new DialogConfig(\n DialogType.SUCCESS,\n 'dialog.validationSuccess.headline',\n ['dialog.validationSuccess.description'],\n );\n dialogData.values = this.photo.validationResult;\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n } else {\n this._showValidationErrors();\n }\n }\n })\n );\n\n }\n\n private _sendToCognitec(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.cognitecUpload.headline',\n ['dialog.cognitecUpload.description'],\n );\n dialogData.values = {\n icon: 'payments'\n };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n this._editorService.processingMessage.next('editor.step.storage.overlay');\n return this._editorService.sendToCognitec(this.photo);\n }\n return of(ResponseStatus.NONE);\n })\n ).subscribe((response: ResponseStatus) => {\n if (response !== ResponseStatus.NONE) {\n this._photosService.updatePhoto(this.photo);\n if (this.photo.state === PhotoState.APPROVED) {\n this._photosService.nextStepTrigger.next();\n } else {\n this._showValidationErrors();\n }\n }\n this._editorService.processingMessage.next('');\n })\n );\n }\n\n private _forceSave(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FORCE_SAVE,\n 'dialog.forceSave.headline',\n ['dialog.forceSave.description'],\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n this._editorService.processingMessage.next('editor.step.storage.forceSaveOverlay');\n return this._editorService.sendToCognitec(this.photo, true);\n }\n return of(ResponseStatus.NONE);\n })\n ).subscribe((response: ResponseStatus) => {\n if (response !== ResponseStatus.NONE) {\n this._photosService.updatePhoto(this.photo);\n if (this.photo.state === PhotoState.APPROVED) {\n this._photosService.nextStepTrigger.next();\n }\n }\n this._editorService.processingMessage.next('');\n })\n );\n }\n\n private _createSet(): void {\n this._dialog.open(PhotoSetComponent, {\n disableClose: true,\n width: '100%',\n height: '100%',\n panelClass: 'photo-editor-dialog',\n data: this.photo\n });\n }\n\n private _getHandout(): void {\n const account: AccountModel = this._store.selectSnapshot((state: StateModel) => state.account);\n const handout = new Handout();\n handout.studio = `${account.company} ${account.companyLegalForm}`;\n handout.date = moment(this.photo.verification.createdDateTime).format('DD.MM.YYYY');\n handout.expiryDate = moment(this.photo.verification.expiryDate, 'YYYY-MM-DD').format('DD.MM.YYYY');\n handout.token = this.photo.verification.token;\n handout.secretKey = this.photo.verification.secretKey;\n handout.url = this.photo.verification.url;\n handout.id = this.photo.id;\n handout.validationResult = this.photo.validationResult;\n handout.preview = this.photo.preview;\n localStorage.setItem('handout', JSON.stringify(handout));\n const url = `${location.origin}/handout`;\n\n const link = document.createElement('a');\n link.target = '_blank';\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n private _continue(): void {\n this.photo.state = PhotoState.EDITED;\n this.photo.fail = '';\n this._photosService.updatePhoto(this.photo);\n this._photosService.nextStepTrigger.next();\n }\n\n private _resumeProcessing(): void {\n this._photosService.addPhoto({\n ...this.photo,\n state: PhotoState.EDITABLE\n });\n this._router.navigate(['editor', this.photo.id]);\n }\n\n}\n","
\n \n
\n \n
\n
\n 0}\"\n (click)=\"doAction(item.action)\"\n >\n \n
{{ item.label | translate }}
\n
\n \n \n
{{ photo.success | translate }}
\n
\n \n \n
{{ photo.fail | translate }}
\n \n\n
0\" class=\"photo__upload\">\n
\n
{{ 'editor.uploading' | translate }}
\n
\n\n \n\n\n
\n
\n
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PhotoUpload, PhotoState } from 'src/app/models/file-upload.model';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-photos-overview',\n templateUrl: './photos-overview.component.html',\n styleUrls: ['./photos-overview.component.scss']\n})\nexport class PhotosOverviewComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public states: PhotoState[] = [];\n\n public photos: PhotoUpload[] = [];\n\n constructor(\n private _photosService: PhotosService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n\n const collection: Observable = this.states.includes(PhotoState.ARCHIVED) ?\n this._photosService.getArchive() : this._photosService.getPhotos();\n\n this.addSubscription(\n collection.subscribe((photos: PhotoUpload[]) => {\n this.photos = photos.filter((photo: PhotoUpload) => {\n return this.states.includes(photo.state);\n });\n })\n );\n }\n\n}\n","
\n
\n \n
\n
\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { PhotoState, PhotoUpload } from 'src/app/models/file-upload.model';\nimport { EditorService } from 'src/app/services/editor/editor.service';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-photos-upload',\n templateUrl: './photos-upload.component.html',\n styleUrls: ['./photos-upload.component.scss']\n})\nexport class PhotosUploadComponent extends GarbageCollectorComponent implements OnInit {\n\n @ViewChild('dropboxElement')\n public overlayRef!: ElementRef;\n public dragging = false;\n public photos: PhotoUpload[] = [];\n public allPhotos: PhotoUpload[] = [];\n public preview: PhotoUpload | undefined;\n public verifiedCount = 0;\n public uploadStates: PhotoState[] = [PhotoState.IMPORTED, PhotoState.INVALID, PhotoState.UPLOADED];\n\n public fileInput = '';\n private _accept: string[] = ['.jpg', '.JPG', '.jepg'];\n private _maxFileSize = 16 * 1024 * 1024; // MB\n private _count = 0;\n\n constructor(\n private _photosService: PhotosService,\n private _snackbarService: SnackbarService,\n private _editorService: EditorService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._photosService.getPhotos().subscribe((photos: PhotoUpload[]) => {\n this.allPhotos = photos;\n this.photos = photos.filter((photo: PhotoUpload) => {\n return [PhotoState.IMPORTED, PhotoState.INVALID, PhotoState.UPLOADED].includes(photo.state);\n });\n })\n );\n this._initOverlay();\n }\n\n private _initOverlay(): void {\n const document: Document = window.document;\n\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(document, eventName).subscribe((event) => {\n this.preview = undefined;\n event.preventDefault();\n event.stopPropagation();\n })\n );\n });\n ['dragenter', 'dragover'].forEach(eventName => {\n this.addSubscription(\n fromEvent(document, eventName).subscribe(() => {\n this.dragging = true;\n })\n );\n });\n this.addSubscription(\n fromEvent(document, 'mouseleave').subscribe(() => {\n this.dragging = false;\n })\n );\n ['dragleave', 'drop'].forEach(eventName => {\n this.addSubscription(\n fromEvent(document, eventName).subscribe((event) => {\n if (eventName === 'drop') {\n const data: DataTransfer | null = (event as DragEvent).dataTransfer;\n const files: FileList | undefined = data?.files;\n this._handleFiles(files);\n this.dragging = false;\n }\n })\n );\n });\n }\n\n public onFileChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n if (target?.files?.length) {\n const files: FileList = target.files;\n this._handleFiles(files);\n }\n this.fileInput = '';\n }\n\n private _handleFiles(files: FileList | undefined): void {\n if (files && files.length) {\n this._count = files.length;\n this._editorService.processingMessage.next('editor.step.upload.overlay.importing');\n }\n Array.from(files || []).forEach((file: File) => {\n const match = this.allPhotos.find(f => f.file.name === file.name);\n const type: string = file.name.match(/\\.[a-zA-Z0-9]+$/)?.[0] || 'none';\n const oversize = file.size > this._maxFileSize;\n if (match) {\n this._snackbarService.showWarning(['snackbar.alreadyExists', file.name]);\n }\n if (oversize) {\n this._snackbarService.showWarning(['snackbar.oversize', file.name]);\n }\n if (!match && !oversize && (this._accept.includes(type) || this._accept.length === 0)) {\n this._createPreview(file);\n } else {\n this._count--;\n if (this._count <= 0) {\n this._editorService.processingMessage.next('');\n }\n }\n });\n }\n\n private _createPreview(file: File): void {\n const reader = new FileReader();\n reader.onload = (src) => {\n const source = `${src.target?.result}`;\n if (source.startsWith('data:image')) {\n const image = new Image();\n image.onload = () => {\n this._photosService.addPhoto(new PhotoUpload(file, image));\n this._count--;\n if (this._count <= 0) {\n this._editorService.processingMessage.next('');\n }\n };\n image.src = source;\n }\n };\n reader.readAsDataURL(file);\n }\n\n}\n","
\n
\n {{ 'editor.step.upload.description' | translate }}\n
\n\n \n\n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
{{ 'editor.step.upload.overlay.drop-files' | translate }}
\n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss']\n})\nexport class SearchComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: InputConfig = new InputConfig(InputType.NONE, '');\n\n public searched = false;\n\n @Output()\n public action: EventEmitter = new EventEmitter();\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this.config.control.valueChanges.subscribe((value) => {\n if (value === null || (this.searched && value === '')) {\n this.searched = false;\n }\n })\n );\n }\n\n public search(): void {\n this.searched = this.config.control.value !== '' && this.config.control.value !== null;\n if (this.searched) {\n this.action.emit(this.config.control.value || '');\n }\n }\n public reset(): void {\n this.action.emit('');\n this.config.control.reset();\n }\n\n}\n","
\n \n \n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { LocalizationService } from '@tallence/localization';\nimport { SelectConfig } from 'src/app/models/select.model';\n\n@Component({\n selector: 'app-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss']\n})\nexport class SelectComponent implements OnInit {\n\n @Input()\n public config: SelectConfig = new SelectConfig();\n @Input()\n public required?: string;\n @Input()\n public multiple?: string;\n\n constructor(\n private _localizationService: LocalizationService\n ) { }\n\n public ngOnInit(): void {\n this.config.multiple = this.multiple !== undefined;\n if (this.required !== undefined) {\n this.config.control.setValidators(Validators.required);\n }\n }\n\n public getErrorMessage(): string {\n if (this.config.control.hasError('required')) {\n if (this.required) {\n return this._localizationService.getTranslation(this.required);\n } else {\n return this._localizationService.getTranslation('input.error.required', [this.config.label]);\n }\n }\n return '';\n }\n\n}\n","\n {{ config.label | translate }}\n \n {{ option.name | translate }}\n \n {{ config.hint | translate }}\n \n {{ getErrorMessage() }}\n \n\n","import { Component, OnInit } from '@angular/core';\nimport { Event, NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { NavigationItem, NavigationType, Role } from 'src/app/models/security.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { navigationItems } from 'src/app/routing/navigation-items';\nimport { UpdateSmallSidenav } from 'src/app/store/security/security.actions';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-sidenav',\n templateUrl: './sidenav.component.html',\n styleUrls: ['./sidenav.component.scss']\n})\nexport class SidenavComponent extends GarbageCollectorComponent implements OnInit {\n\n public small = true;\n private _route = '';\n public avaibleItems: NavigationItem[] = [];\n\n constructor(\n private _store: Store,\n private _router: Router,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n\n this._route = this._router.url.split('/').find(path => path) || '';\n this.addSubscription(\n this._router.events.subscribe((event: Event) => {\n if (event instanceof NavigationEnd) {\n this._route = event.url.split('/').find(path => path) || '';\n }\n })\n );\n\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.smallSidenav).subscribe((smallSidenav: boolean) => {\n this.small = smallSidenav;\n })\n );\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this.avaibleItems = navigationItems.filter((item: NavigationItem) => {\n return item.authorized.includes(role) && item.type.includes(NavigationType.SIDENAV);\n });\n this.avaibleItems.sort((a, b) => {\n return a.order - b.order;\n });\n })\n );\n }\n\n public toggleSize(): void {\n this._store.dispatch(new UpdateSmallSidenav(!this.small));\n }\n\n public routeTo(route: string[]): void {\n this._router.navigate(route);\n }\n\n public isActive(route: string): boolean {\n return route.includes(this._route);\n }\n\n}\n","
\n
\n {{small ? 'unfold_less' : 'unfold_more'}}\n
\n\n
\n \n
\n \n
{{ item.label | translate }}
\n
\n
\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MatSliderChange } from '@angular/material/slider';\nimport { SliderConfig } from 'src/app/models/slider.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss']\n})\nexport class SliderComponent extends GarbageCollectorComponent implements OnInit {\n\n @Input()\n public config: SliderConfig = new SliderConfig('');\n\n public current = 0;\n private _initValue = 0;\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.current = Number(this.config.control.value);\n this._initValue = Number(this.config.control.value);\n this.addSubscription(\n this.config.control.valueChanges.subscribe(value => {\n const factor: number = 1 / this.config.step;\n if (value !== '' && value !== '-') {\n let val: number = Math.round(parseFloat(value) * factor) / factor;\n if (!isNaN(val)) {\n if (Number(value) === val) {\n if (val < this.config.min) {\n this.config.control.setValue(this.config.min);\n val = this.config.min;\n }\n if (val > this.config.max) {\n this.config.control.setValue(this.config.max);\n val = this.config.max;\n }\n this.current = val;\n } else {\n this.config.control.setValue(val);\n }\n } else {\n this.config.control.setValue(this.current);\n }\n }\n })\n );\n }\n\n public reset(): void {\n this.config.control.setValue(this._initValue);\n }\n\n public changeValue(change: MatSliderChange): void {\n this.config.control.setValue(change.value);\n }\n\n public cleanUpValue(): void {\n this.config.control.setValue(Number(this.config.control.value));\n }\n\n}\n","
\n \n
\n \n
\n
\n {{config.control.value}}\n {{config.unit}}\n
\n \n
\n \n
\n
\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\n\n@Component({\n selector: 'app-studio',\n templateUrl: './studio.component.html',\n styleUrls: ['./studio.component.scss']\n})\nexport class StudioComponent implements OnInit {\n\n @Input()\n public form: FormGroup = this._fb.group({});\n @Input()\n public label?: [string, number];\n\n public studioNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.studioName.label');\n public licenseNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.licenseNumber.label');\n public addressConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.address.label');\n public zipConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.zip.label');\n public locationConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.location.label');\n\n constructor(\n private _fb: FormBuilder,\n ) { }\n\n public ngOnInit(): void {\n this.form.addControl('name', this.studioNameConfig.control);\n this.form.addControl('name', this.licenseNumberConfig.control);\n this.form.addControl('address', this.addressConfig.control);\n this.form.addControl('zip', this.zipConfig.control);\n this.form.addControl('location', this.locationConfig.control);\n }\n\n}\n","
\n
{{ label[0] | translate:[label[1]] }}
\n \n \n \n \n \n \n
\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Sort } from '@angular/material/sort';\nimport { LocalizationService } from '@tallence/localization';\nimport { PaginatorConfig, TableAction, TableActionType, TableConfig, UserStatus } from 'src/app/models/administration.model';\nimport { Role } from 'src/app/models/security.model';\nimport { IconService } from 'src/app/services/icon.service';\n\n@Component({\n selector: 'app-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent {\n\n public tableConfig = new TableConfig();\n private _items: any[] = [];\n private _sortedItems: any[] = [];\n\n @Input()\n public set config(cfg: TableConfig) {\n this._items = cfg.items.map(item => {\n const role = item.role || Role.NONE;\n const status = item.status || UserStatus.UNKNOWN;\n return {\n ...item,\n userRole: role,\n role: this._localizationService.getTranslation(`role.${role}`),\n userStatus: status,\n status: this._localizationService.getTranslation(`status.${status}`)\n };\n });\n this.tableConfig = {\n ...cfg,\n items: [...this._items]\n };\n this._sortedItems = [...this._items];\n if (cfg.paginator.total === 0) {\n this.tableConfig.paginator.total = this._items.length;\n }\n if (this.paginator !== undefined && this.paginator !== 'true') {\n this.pageChanged(this.tableConfig.paginator);\n }\n if (this.paginator === 'true' && cfg.paginator.total > cfg.paginator.size) {\n this.tableConfig.items = this._sortedItems.slice(0, cfg.paginator.size);\n }\n }\n @Input()\n public paginator?: string;\n @Input()\n public sortable?: string;\n\n @Output()\n public changed: EventEmitter = new EventEmitter();\n @Output()\n public action: EventEmitter = new EventEmitter();\n\n constructor(\n private _iconService: IconService,\n private _localizationService: LocalizationService,\n ) { }\n\n public doAction(name: TableActionType, item: any): void {\n if (name !== TableActionType.NONE) {\n this.action.emit(new TableAction(name, item[this.tableConfig.actionId]));\n }\n }\n\n public sortData(sort: Sort, localSort: boolean = false): void {\n this.tableConfig.sort = sort;\n if (this.sortable === 'true' && !localSort) {\n this.changed.emit(this.tableConfig);\n } else {\n this.tableConfig.items = [...this._items];\n if (this.tableConfig.sort.direction !== '' && this.tableConfig.items.length) {\n this.tableConfig.items.sort((a, b) => {\n const itemA = a[this.tableConfig.sort.active].toUpperCase();\n const itemB = b[this.tableConfig.sort.active].toUpperCase();\n if (this.tableConfig.sort.direction === 'asc') {\n return (itemA < itemB) ? -1 : (itemA > itemB) ? 1 : 0;\n } else {\n return (itemA > itemB) ? -1 : (itemA < itemB) ? 1 : 0;\n }\n });\n }\n this._sortedItems = [...this.tableConfig.items];\n this.tableConfig.paginator.current = 1;\n if (this.paginator !== undefined && this.paginator !== 'true') {\n this.pageChanged(this.tableConfig.paginator);\n }\n }\n }\n\n public pageChanged(paginator: PaginatorConfig): void {\n this.tableConfig.paginator = paginator;\n if (this.paginator === 'false') {\n this.changed.emit(this.tableConfig);\n } else {\n const from = Math.max(paginator.current - 1, 0) * paginator.size;\n this.tableConfig.items = this._sortedItems.slice(from, from + paginator.size);\n }\n }\n\n public isOwn(action: string): boolean {\n return this._iconService.isOwnIcon(action);\n }\n\n public enableAction(item: any, action: TableActionType): boolean {\n if (Reflect.has(item, 'userRole') && Reflect.has(item, 'userStatus')) {\n const isAdmin = Reflect.get(item, 'userRole') === Role.ADMIN;\n const isActive = Reflect.get(item, 'userStatus') === UserStatus.ACTIVE;\n const isDeleted = Reflect.get(item, 'userStatus') === UserStatus.DELETED;\n const isDeactivated = Reflect.get(item, 'userStatus') === UserStatus.DEACTIVATED;\n switch (action) {\n case TableActionType.DELETE:\n if (isDeleted || isDeactivated) {\n return false;\n }\n break;\n case TableActionType.DEACTIVATE:\n if (isAdmin || !isActive) {\n return false;\n }\n break;\n case TableActionType.REACTIVATE:\n if (isAdmin || !isDeleted && !isDeactivated) {\n return false;\n }\n break;\n case TableActionType.EDIT:\n if (!isActive) {\n return false;\n }\n break;\n default:\n break;\n }\n }\n return true;\n }\n\n}\n","
\n \n \n \n {{ 'table.' + key | translate }}\n \n \n \n \n \n \n \n \n \n
\n \n {{ item[key] }}\n \n \n \n \n
\n \n
\n \n
\n
\n","import { Component, Input } from '@angular/core';\nimport { ToggleConfig } from 'src/app/models/toggle.model';\n\n@Component({\n selector: 'app-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss']\n})\nexport class ToggleComponent {\n\n @Input()\n public config: ToggleConfig = new ToggleConfig('');\n\n constructor() { }\n\n}\n","
\n {{config.label | translate}}\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-welcome',\n templateUrl: './welcome.component.html',\n styleUrls: ['./welcome.component.scss']\n})\nexport class WelcomeComponent {\n\n constructor() { }\n\n}\n","
\n \"\"\n
{{ 'overview.welcome.headline' | translate }}
\n
\n
\n","import { Sort } from '@angular/material/sort';\nimport { Role } from './security.model';\n\nexport enum UserStatus {\n UNKNOWN = 'UNKNOWN',\n DELETED = 'DELETED',\n PENDING = 'PENDING',\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n APPROVED = 'APPROVED',\n DEACTIVATED = 'DEACTIVATED',\n BLACKLISTED = 'BLACKLISTED'\n}\n\nexport enum ResponseStatus {\n NONE,\n PENDING,\n SUCCESS,\n ERROR,\n CONFLICT,\n UNAUTHORIZED\n}\n\nexport class Employee {\n public image = '';\n public salutation = '';\n public nationality = '';\n public firstName: string;\n public lastName: string;\n public email: string;\n public phone1 = '';\n public phone2 = '';\n public status: UserStatus = UserStatus.UNKNOWN;\n constructor(firstName: string = '', lastName: string = '', email: string = '') {\n this.firstName = firstName;\n this.lastName = lastName;\n this.email = email;\n }\n}\n\nexport class Photographer {\n public image = '';\n public salutation = '';\n public firstName = '';\n public lastName = '';\n public nationality = '';\n public idCardNumber = '';\n public company = '';\n public companyLegalForm = '';\n public email = '';\n public website = '';\n public phone1 = '';\n public phone2 = '';\n public status: UserStatus = UserStatus.UNKNOWN;\n constructor(firstName: string = '', lastName: string = '', email: string = '') {\n this.firstName = firstName;\n this.lastName = lastName;\n this.email = email;\n }\n}\n\nexport class User {\n public role: Role = Role.NONE;\n public salutation = '';\n public firstName = '';\n public lastName = '';\n public email = '';\n public status: UserStatus = UserStatus.UNKNOWN;\n}\n\nexport class Camera {\n public cameraManufacturer: string;\n public cameraModel: string;\n public cameraId: string;\n public publicKey: string;\n public licenseBeginDate: string;\n public licenseEndDate: string;\n constructor(\n cameraManufacturer: string = '',\n cameraModel: string = '',\n cameraId: string = '',\n publicKey: string = '',\n licenseBeginDate: string = '',\n licenseEndDate: string = ''\n ) {\n this.cameraManufacturer = cameraManufacturer;\n this.cameraModel = cameraModel;\n this.cameraId = cameraId;\n this.publicKey = publicKey;\n this.licenseBeginDate = licenseBeginDate;\n this.licenseEndDate = licenseEndDate;\n }\n}\n\nexport class UigEmployee {\n public role: Role = Role.NONE;\n public salutation: string;\n public firstName: string;\n public lastName: string;\n public email: string;\n public phone1 = '';\n public status: UserStatus = UserStatus.UNKNOWN;\n constructor(salutation: string = '', firstName: string = '', lastName: string = '', email: string = '') {\n this.salutation = salutation;\n this.firstName = firstName;\n this.lastName = lastName;\n this.email = email;\n }\n}\n\nexport class HardwareProvider {\n public salutation: string;\n public firstName: string;\n public lastName: string;\n public company: string;\n public companyLegalForm: string;\n public address = '';\n public zip = '';\n public location = '';\n public email: string;\n public phone1 = '';\n public status: UserStatus = UserStatus.UNKNOWN;\n constructor(\n salutation: string = '',\n firstName: string = '',\n lastName: string = '',\n company: string = '',\n companyLegalForm: string = '',\n email: string = '')\n {\n this.salutation = salutation;\n this.firstName = firstName;\n this.lastName = lastName;\n this.company = company;\n this.companyLegalForm = companyLegalForm;\n this.email = email;\n }\n}\n\nexport class Studio {\n public studioName = '';\n public licenseNumber = '';\n public address = '';\n public zip = '';\n public location = '';\n}\n\nexport class Attachment {\n public name = '';\n public url = '';\n}\n\nexport class Application extends User {\n public created = '';\n public documents: Attachment[] = [];\n public studios: Studio[] = [];\n constructor() {\n super();\n }\n}\n\nexport class ApplicationReply {\n public role: Role;\n public email: string;\n public salutation: string;\n public firstName: string;\n public lastName: string;\n public company: string;\n public approvalGranted: boolean;\n public rejectReason: string;\n\n constructor(role: Role, email: string, salutation: string, firstName: string, lastName: string, company: string, approvalGranted: boolean, rejectReason: string = '') {\n this.role = role;\n this.email = email;\n this.salutation = salutation;\n this.firstName = firstName;\n this.lastName = lastName;\n this.company = company;\n this.approvalGranted = approvalGranted;\n this.rejectReason = rejectReason;\n }\n}\n\nexport class PaginatorConfig {\n public size = localStorage.getItem('pageRows') ? Number(localStorage.getItem('pageRows')) : 10;\n public current = 1;\n public last = 1;\n public total = 0;\n public disabled = false;\n}\n\nexport class SearchQuery {\n public offset = 0;\n public limit = 99999;\n public pageLimit = localStorage.getItem('pageRows') ? Number(localStorage.getItem('pageRows')) : 10;\n public roles: Role[];\n public sort: Sort = {active: '', direction: ''};\n public text = '';\n public invitor = ''; // TODO: Change to inviter when it will be fixed by the BE\n\n constructor(roles: Role[] = []) {\n this.roles = roles;\n }\n\n public params(): string[] {\n\n let params = `offset=${this.offset}&limit=${this.limit}`;\n if (this.sort.active !== '' && this.sort.direction !== '') {\n params += `&sortAttribute=${this.sort.active}&sortDirection=${this.sort.direction.replace('desc', 'dsc').toUpperCase()}`;\n }\n if (this.text !== '') {\n params += `&text=${this.text}`;\n }\n if (this.invitor !== '') {\n params += `&invitor=${this.invitor}`;\n }\n if (this.roles.length === 0) {\n return [params];\n } else {\n return this.roles.map((role) => {\n return params + `&role=${role}`;\n });\n }\n }\n}\n\nexport class TableConfig {\n public header: string[] = [];\n public items: any[] = [];\n public actions: TableActionType[] = [];\n public click: TableActionType = TableActionType.NONE;\n public sort: Sort = {active: '', direction: ''};\n public sortDisabled = false;\n public actionId = 'email';\n public paginator: PaginatorConfig = new PaginatorConfig();\n}\n\nexport class TableAction {\n public name: TableActionType;\n public id: string;\n constructor(name: TableActionType = TableActionType.NONE, id: string = '') {\n this.name = name;\n this.id = id;\n }\n}\n\nexport enum TableActionType {\n NONE = '',\n EDIT = 'edit-outline',\n UPDATE = 'update-outline',\n DELETE = 'delete-outline',\n DEACTIVATE = 'block',\n REACTIVATE = 'account-reactivate-outline',\n PUBLIC_KEY = 'shield-key-outline',\n VIEW_APPLICATION = 'card-search-outline',\n DOWNLAOD = 'download-circle-outline',\n REMOVE_STUDIO = 'home-minus-outline',\n STUDIOS = 'holiday_village',\n LICENSE = 'calendar-edit',\n ADD_COMPANY = 'home-plus-outline'\n}\n\nexport class Handout {\n public studio = '';\n public date = '';\n public token = '';\n public url = '';\n public id = '';\n public expiryDate = '';\n public validationResult: object = [];\n public preview = '';\n public secretKey = '';\n}\n\nexport class Company {\n public company = '';\n public companyLegalForm = '';\n public email = '';\n}\n","import { FormControl } from '@angular/forms';\n\nexport class AutocompleteOption {\n public value: string;\n public disabled: boolean;\n\n constructor(value: any, disabled: boolean = false) {\n this.value = `${value}`;\n this.disabled = disabled;\n }\n}\n\nexport class AutocompleteConfig {\n public control: FormControl;\n public label: string;\n public placeholder: string;\n public hint: string;\n public options: AutocompleteOption[];\n public multiple: boolean;\n\n constructor(label: string = '', placeholder: string = '', hint: string = '') {\n this.control = new FormControl('');\n this.label = label;\n this.placeholder = placeholder;\n this.hint = hint;\n this.options = [];\n this.multiple = false;\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport class CheckboxConfig {\n public control: FormControl;\n public label: string;\n\n constructor(label: string) {\n this.control = new FormControl(false);\n this.label = label;\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport class DatePickerConfig {\n public control: FormControl;\n public label: string;\n\n constructor(label: string) {\n this.control = new FormControl('');\n this.label = label;\n }\n}\n","export enum DialogType {\n CONFIRM = 'confirm',\n CONFLICT = 'conflict',\n ADD_EMPLOYEE = 'add_employee',\n ADD_UIG_EMPLOYEE = 'add_uig_employee',\n ADD_HARDWARE_PROVIDER = 'add_hardware_provider',\n ADD_CAMERA = 'add_camera',\n UPDATE_CAMERA = 'update_camera',\n ADD_STUDIO = 'add_studio',\n UPDATE_STUDIO = 'update_studio',\n DELETE_ACCOUNT = 'delete_account',\n ACCOUNT_DELETED = 'account_deleted',\n REJECT_APPLICATION = 'reject_application',\n SUCCESS = 'success',\n FAIL = 'fail',\n SEARCH_COMPANY = 'search_company',\n CODE = 'code',\n FORCE_SAVE = 'force_save',\n VALIDATION_ERRORS = 'validation_errors',\n PASSWORD = 'password',\n BLOCK = 'block'\n}\n\nexport class DialogConfig {\n public type: DialogType;\n public headline: string;\n public description: string[];\n public okButton: string;\n public cancelButton: string;\n public values: any = {};\n constructor(\n type: DialogType,\n headline: string = '',\n description: string[] = [],\n okButton: string = 'button.ok',\n cancelButton: string = 'button.cancel'\n ) {\n this.type = type;\n this.headline = headline;\n this.description = description;\n this.okButton = okButton;\n this.cancelButton = cancelButton;\n }\n\n public static smallSize(): string {\n return '500px';\n }\n public static largeSize(): string {\n return '800px';\n }\n\n public clone(): DialogConfig {\n const config = new DialogConfig(\n this.type,\n this.headline,\n this.description,\n this.okButton,\n this.cancelButton\n );\n return config;\n }\n\n public layout(): any {\n const layout: any = {\n minWidth: '200px',\n width: '100%',\n maxWidth: '500px',\n };\n switch (this.type) {\n case DialogType.ADD_STUDIO:\n case DialogType.UPDATE_STUDIO:\n case DialogType.ADD_CAMERA:\n case DialogType.ADD_EMPLOYEE:\n case DialogType.ADD_UIG_EMPLOYEE:\n case DialogType.ADD_HARDWARE_PROVIDER:\n case DialogType.REJECT_APPLICATION:\n case DialogType.SEARCH_COMPANY:\n layout.maxWidth = '800px';\n break;\n default:\n break;\n }\n return layout;\n }\n\n}\n","import { FormControl } from '@angular/forms';\nimport { Canvas } from '../utilities/canvas';\n\nexport class FileUploadConfig {\n public control: FormControl;\n public label: string;\n\n constructor(label: string) {\n this.control = new FormControl([]);\n this.label = label;\n }\n}\n\nexport enum PhotoState {\n NONE = 'none',\n IMPORTED = 'imported',\n UPLOADED = 'uploaded',\n INVALID = 'invalid',\n EDITABLE = 'editable',\n EDITED = 'edited',\n REJECTED = 'rejected',\n APPROVED = 'approved',\n ARCHIVED = 'archived',\n}\n\nexport enum PhotoAction {\n UPLOAD = 'upload',\n DOWNLAOD = 'download',\n REMOVE = 'remove',\n EDIT = 'edit',\n STORE = 'store',\n HANDOUT = 'handout',\n CHECK = 'check',\n SET = 'set',\n FORCE_SAVE = 'forceSave',\n RESUME = 'resume',\n CONTINUE = 'continue',\n}\n\nexport enum ProcessingActionType {\n CONTRAST = 'CONTRAST',\n BRIGHTNESS = 'BRIGHTNESS',\n ROTATION = 'ROTATION',\n CROP = 'CROP'\n}\n\nexport class CropValue {\n public origin: { x: number; y: number } = {x: 0, y: 0};\n public size: { w: number; h: number } = {w: 0, h: 0};\n constructor(x: number, y: number, w: number, h: number) {\n this.origin.x = x;\n this.origin.y = y;\n this.size.w = w;\n this.size.h = h;\n }\n}\n\nexport class ProcessingAction {\n public type: ProcessingActionType;\n public value: number | CropValue;\n constructor(type: ProcessingActionType, value: number | CropValue) {\n this.type = type;\n this.value = value;\n }\n}\n\nexport interface PhotoUploadResponse {\n imageId: string;\n fileName: string;\n}\n\nexport interface Movement {\n x: number;\n y: number;\n}\n\nexport class PhotoVerification {\n public createdDateTime = '';\n public expiryDate = '';\n public token = '';\n public url = '';\n public authorityData: any = {};\n public secretKey = '';\n\n get hasNoFace(): boolean {\n return this.authorityData.faceCaptureCount === 0;\n }\n\n get hasMultipleFaces(): boolean {\n return this.authorityData.faceCaptureCount > 1;\n }\n\n get faceCount(): number {\n return Number(this.authorityData.faceCaptureCount);\n }\n\n get cognitecApproved(): boolean {\n return this.authorityData.result === \"Success\";\n }\n}\n\nexport class ValidationResult {\n public onlyOneFaceVisible: boolean | undefined = false;\n public goodVerticalPosition: boolean | undefined = false;\n public goodHorizontalPosition: boolean | undefined = false;\n public widthOfHead: boolean | undefined = false;\n public lengthOfHead: boolean | undefined = false;\n public resolution: boolean | undefined = false;\n public goodExposure: boolean | undefined = false;\n public goodGrayScaleProfile: boolean | undefined = false;\n public hasNaturalSkinColor: boolean | undefined = false;\n public noHotSpots: boolean | undefined = false;\n public isFrontal: boolean | undefined = false;\n public isLightningUniform: boolean | undefined = false;\n public noTintedGlasses: boolean | undefined = false;\n public isSharp: boolean | undefined = false;\n public imageWidthToHeight: boolean | undefined = false;\n public isBackGroundUniform: boolean | undefined = false;\n public eyesOpen: boolean | undefined = false;\n public eyesGazeFrontal: boolean | undefined = false;\n public eyesNotRed: boolean | undefined = false;\n public mouthClosed: boolean | undefined = false;\n}\n\nexport interface QualityAssurance {\n identifier: string;\n result: number;\n}\n\nexport class PhotoUpload {\n public file: File;\n public image: HTMLImageElement;\n public state: PhotoState;\n public id = '';\n public preview: string;\n public actions: ProcessingAction[] = [];\n public width: number;\n public height: number;\n public verification: PhotoVerification = new PhotoVerification();\n public validationResult: ValidationResult = new ValidationResult();\n public validationErrors: string[] = [];\n public success = '';\n public fail = '';\n public uploaded = false;\n public savedState: PhotoState = PhotoState.NONE;\n constructor(file: File, image: HTMLImageElement) {\n this.file = file;\n this.image = image;\n this.preview = Canvas.getPreview(image);\n this.state = PhotoState.IMPORTED;\n this.width = image.width;\n this.height = image.height;\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport enum InputType {\n NONE = 'none',\n TEXT = 'text',\n EMAIL = 'email',\n PASSWORD = 'password',\n PHONE = 'tel',\n DATE = 'date',\n}\n\nexport class InputConfig {\n public control: FormControl;\n public type: InputType;\n public label: string;\n public placeholder: string;\n public hint: string;\n\n constructor(type: InputType, label: string, placeholder: string = '', hint: string = '') {\n this.control = new FormControl('');\n this.type = type;\n this.label = label;\n this.placeholder = placeholder;\n this.hint = hint;\n }\n}\n","export enum Role {\n NONE = 'NONE',\n ADMIN = 'UIG_ADMIN',\n PHOTOGRAPHER = 'PHOTOGRAPHER',\n EMPLOYEE = 'STUDIO_EMPLOYEE',\n HARDWARE_PROVIDER = 'HARDWARE_PROVIDER',\n HARDWARE_PROVIDER_ADMIN = 'HARDWARE_PROVIDER_ADMIN',\n UIG = 'UIG_EMPLOYEE',\n}\n\nexport enum NavigationType {\n SIDENAV = 'sidenav',\n MENU = 'menu'\n}\n\nexport interface NewPassword {\n jwToken: string;\n password: string;\n}\n\nexport interface NavigationItem {\n authorized: Role[];\n type: NavigationType[];\n icon: string;\n label: string;\n route: string[];\n order: number;\n}\n","import { FormControl } from '@angular/forms';\n\nexport class SelectOption {\n public name: string;\n public value: string;\n public disabled: boolean;\n\n constructor(name: string, value: any, disabled: boolean = false) {\n this.name = name;\n this.value = `${value}`;\n this.disabled = disabled;\n }\n}\n\nexport class SelectConfig {\n public control: FormControl;\n public label: string;\n public hint: string;\n public options: SelectOption[];\n public multiple: boolean;\n\n constructor(label: string = '', hint: string = '') {\n this.control = new FormControl();\n this.label = label;\n this.hint = hint;\n this.options = [];\n this.multiple = false;\n }\n}\n","import { FormControl } from '@angular/forms';\n\nexport class SliderConfig {\n public control: FormControl;\n public label: string;\n public unit: string;\n public min = -100;\n public max = 100;\n public step = 1;\n public id: string;\n\n constructor(label: string, unit: string = '') {\n this.control = new FormControl('0');\n this.label = label;\n this.unit = unit;\n this.id = `id${label.replace(/\\./g, '')}${Math.round(+new Date() * Math.random())}`;\n }\n}\n","import { Application, Camera, Company, Employee, HardwareProvider, Photographer, Studio, User } from './administration.model';\nimport { Role } from './security.model';\n\nexport interface SecurityModel {\n auth: boolean;\n role: Role;\n smallSidenav: boolean;\n timeout: number;\n licenseToken: string;\n otpSecret: string;\n}\n\nexport class AccountModel {\n public loaded = false;\n public image = '';\n public salutation = '';\n public firstName = '';\n public lastName = '';\n public nationality = '';\n public idCardNumber = '';\n public company = '';\n public companyLegalForm = '';\n public email = '';\n public website = '';\n public phone1 = '';\n public phone2 = '';\n public address = '';\n public zip = '';\n public location = '';\n}\n\nexport interface StateModel {\n security: SecurityModel;\n account: AccountModel;\n administration: AdministrationModel;\n}\n\nexport interface UserItems {\n items: User[];\n total: number;\n}\n\nexport interface CameraItems {\n items: Camera[];\n total: number;\n}\n\nexport interface CompanyItems {\n items: Company[];\n total: number;\n}\n\nexport interface StudioItems {\n items: Studio[];\n total: number;\n}\n\nexport interface AdministrationModel {\n employees: Employee[];\n photographer: Photographer[];\n cameras: CameraItems;\n hardwareProviders: HardwareProvider[];\n applications: Application[];\n users: UserItems;\n companies: CompanyItems;\n studios: StudioItems;\n}\n","import { FormControl } from '@angular/forms';\n\nexport class ToggleConfig {\n public control: FormControl;\n public label: string;\n\n constructor(label: string) {\n this.control = new FormControl(false);\n this.label = label;\n }\n}\n","import { APP_INITIALIZER, Injectable, NgModule } from '@angular/core';\nimport { BrowserModule, HammerGestureConfig, HammerModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { AppComponent } from '../app.component';\nimport { RoutingModule } from './routing.module';\nimport { NgxsModule } from '@ngxs/store';\nimport { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin';\nimport { environment } from 'src/environments/environment';\nimport { SecurityState } from '../store/security/security.state';\nimport { LocalizationModule } from '@tallence/localization';\nimport { AccountState } from '../store/account/account.state';\nimport { AdministrationState } from '../store/administration/administration.state';\nimport { MaterialModule } from './material.module';\nimport { ComponentsModule } from './components.module';\nimport { ConfigService } from '../services/config.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport * as Hammer from 'hammerjs';\n\nexport function appInit(configService: ConfigService): any {\n return () => configService.loadApi();\n}\n\n@Injectable()\nexport class HammerConfig extends HammerGestureConfig {\n overrides = {\n rotate: {\n direction: Hammer.DIRECTION_ALL,\n enable: true,\n },\n pinch: {\n direction: Hammer.DIRECTION_ALL,\n enable: true,\n },\n pan: {\n direction: Hammer.DIRECTION_ALL,\n requireFailure: ['rotate, pinch']\n }\n };\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n ],\n imports: [\n BrowserModule,\n RoutingModule,\n BrowserAnimationsModule,\n NgxsModule.forRoot([\n SecurityState,\n AccountState,\n AdministrationState\n ], { developmentMode: !environment.production }),\n NgxsReduxDevtoolsPluginModule.forRoot(),\n HttpClientModule,\n MaterialModule,\n ComponentsModule,\n LocalizationModule,\n HammerModule\n ],\n providers: [\n {\n provide: APP_INITIALIZER, useFactory: appInit, deps: [ConfigService], multi: true\n },\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: HammerConfig,\n },\n CookieService\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { NgModule } from '@angular/core';\nimport { InputComponent } from '../components/input/input.component';\nimport { InputFileComponent } from '../components/input-file/input-file.component';\nimport { MaterialModule } from '../modules/material.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { LocalizationModule } from '@tallence/localization';\nimport { SelectComponent } from '../components/select/select.component';\nimport { AutocompleteComponent } from '../components/autocomplete/autocomplete.component';\nimport { FileUploadComponent } from '../components/file-upload/file-upload.component';\nimport { StudioComponent } from '../components/studio/studio.component';\nimport { IconComponent } from '../components/icon/icon.component';\nimport { CheckboxComponent } from '../components/checkbox/checkbox.component';\nimport { DataRowComponent } from '../components/data-row/data-row.component';\nimport { NewPasswordComponent } from '../components/new-password/new-password.component';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { ContentComponent } from '../components/content/content.component';\nimport { MenuComponent } from '../components/menu/menu.component';\nimport { ConsoleComponent } from '../components/console/console.component';\nimport { HeaderComponent } from '../components/header/header.component';\nimport { FooterComponent } from '../components/footer/footer.component';\nimport { SidenavComponent } from '../components/sidenav/sidenav.component';\nimport { PaginatorComponent } from '../components/paginator/paginator.component';\nimport { TableComponent } from '../components/table/table.component';\nimport { CardComponent } from '../components/card/card.component';\nimport { ButtonComponent } from '../components/button/button.component';\nimport { AvatarComponent } from '../components/avatar/avatar.component';\nimport { DatePickerComponent } from '../components/date-picker/date-picker.component';\nimport { HeadlineComponent } from '../components/headline/headline.component';\nimport { PhotoTileComponent } from '../components/photo-tile/photo-tile.component';\nimport { SliderComponent } from '../components/slider/slider.component';\nimport { ToggleComponent } from '../components/toggle/toggle.component';\nimport { WelcomeComponent } from '../components/welcome/welcome.component';\nimport { SearchComponent } from '../components/search/search.component';\nimport { LegendComponent } from '../components/legend/legend.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { CodeInputComponent } from '../components/code-input/code-input.component';\nimport { PhotosUploadComponent } from '../components/photos-upload/photos-upload.component';\nimport { PhotoComponent } from '../components/photo/photo.component';\nimport { PhotoEditorComponent } from '../components/photo-editor/photo-editor.component';\nimport { PhotosOverviewComponent } from '../components/photos-overview/photos-overview.component';\nimport { PhotoSetComponent } from '../components/photo-set/photo-set.component';\n\n@NgModule({\n declarations: [\n InputComponent,\n InputFileComponent,\n SelectComponent,\n AutocompleteComponent,\n FileUploadComponent,\n StudioComponent,\n IconComponent,\n CheckboxComponent,\n DataRowComponent,\n NewPasswordComponent,\n DialogComponent,\n ContentComponent,\n MenuComponent,\n ConsoleComponent,\n HeaderComponent,\n FooterComponent,\n SidenavComponent,\n PaginatorComponent,\n TableComponent,\n CardComponent,\n ButtonComponent,\n AvatarComponent,\n DatePickerComponent,\n HeadlineComponent,\n PhotoTileComponent,\n SliderComponent,\n ToggleComponent,\n WelcomeComponent,\n SearchComponent,\n LegendComponent,\n CodeInputComponent,\n PhotosUploadComponent,\n PhotoComponent,\n PhotoEditorComponent,\n PhotosOverviewComponent,\n PhotoSetComponent\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n MaterialModule,\n CommonModule,\n LocalizationModule,\n QRCodeModule\n ],\n exports: [\n InputComponent,\n InputFileComponent,\n SelectComponent,\n AutocompleteComponent,\n FileUploadComponent,\n StudioComponent,\n IconComponent,\n CheckboxComponent,\n DataRowComponent,\n NewPasswordComponent,\n DialogComponent,\n ContentComponent,\n ConsoleComponent,\n HeaderComponent,\n FooterComponent,\n SidenavComponent,\n PaginatorComponent,\n TableComponent,\n CardComponent,\n ButtonComponent,\n AvatarComponent,\n DatePickerComponent,\n HeadlineComponent,\n PhotoTileComponent,\n SliderComponent,\n ToggleComponent,\n WelcomeComponent,\n SearchComponent,\n LegendComponent,\n CodeInputComponent,\n PhotosUploadComponent,\n PhotoComponent,\n PhotoEditorComponent,\n PhotosOverviewComponent,\n PhotoSetComponent\n ]\n})\nexport class ComponentsModule { }\n","import { NgModule } from '@angular/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\n\n@NgModule({\n exports: [\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n MatAutocompleteModule,\n MatCheckboxModule,\n MatStepperModule,\n MatCardModule,\n MatDialogModule,\n MatProgressSpinnerModule,\n MatMenuModule,\n MatSortModule,\n MatRippleModule,\n MatDatepickerModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatTabsModule\n ]\n})\nexport class MaterialModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { routes } from 'src/app/routing/routes';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ApiInterceptor } from 'src/app/routing/api.interceptor';\nimport { Store } from '@ngxs/store';\n\nimport { ErrorViewComponent } from '../views/error-view/error-view.component';\nimport { LoginViewComponent } from '../views/login-view/login-view.component';\nimport { OverviewViewComponent } from '../views/overview-view/overview-view.component';\nimport { PasswordViewComponent } from '../views/password-view/password-view.component';\nimport { RegisterViewComponent } from '../views/register-view/register-view.component';\nimport { ComponentsModule } from './components.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MaterialModule } from './material.module';\nimport { LocalizationModule, LocalizationService } from '@tallence/localization';\nimport { AccountViewComponent } from '../views/account-view/account-view.component';\nimport { EmployeesViewComponent } from '../views/employees-view/employees-view.component';\nimport { UigEmployeesViewComponent } from '../views/uig-employees-view/uig-employees-view.component';\nimport { HardwareProvidersViewComponent } from '../views/hardware-providers-view/hardware-providers-view.component';\nimport { UsersViewComponent } from '../views/users-view/users-view.component';\nimport { UigEmployeeViewComponent } from '../views/uig-employee-view/uig-employee-view.component';\nimport { HardwareProviderViewComponent } from '../views/hardware-provider-view/hardware-provider-view.component';\nimport { UserViewComponent } from '../views/user-view/user-view.component';\nimport { CamerasViewComponent } from '../views/cameras-view/cameras-view.component';\nimport { ApplicationsViewComponent } from '../views/applications-view/applications-view.component';\nimport { ApplicationViewComponent } from '../views/application-view/application-view.component';\nimport { AuthService } from '../services/auth.service';\nimport { ConsoleService } from '../services/console.service';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { HandoutViewComponent } from '../views/handout-view/handout-view.component';\nimport { CompaniesViewComponent } from '../views/companies-view/companies-view.component';\nimport { CompanyViewComponent } from '../views/company-view/company-view.component';\nimport { ConfigService } from '../services/config.service';\nimport { EditorViewComponent } from '../views/editor-view/editor-view.component';\nimport { AnalyticsViewComponent } from '../views/analytics-view/analytics-view.component';\nimport { ArchiveViewComponent } from '../views/archive-view/archive-view.component';\n\n@NgModule({\n declarations: [\n ErrorViewComponent,\n LoginViewComponent,\n OverviewViewComponent,\n PasswordViewComponent,\n RegisterViewComponent,\n AccountViewComponent,\n EmployeesViewComponent,\n UigEmployeesViewComponent,\n HardwareProvidersViewComponent,\n UsersViewComponent,\n UigEmployeeViewComponent,\n HardwareProviderViewComponent,\n UserViewComponent,\n CamerasViewComponent,\n ApplicationsViewComponent,\n ApplicationViewComponent,\n HandoutViewComponent,\n CompaniesViewComponent,\n CompanyViewComponent,\n EditorViewComponent,\n AnalyticsViewComponent,\n ArchiveViewComponent,\n ],\n imports: [\n RouterModule.forRoot(routes),\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ComponentsModule,\n LocalizationModule,\n MaterialModule,\n QRCodeModule\n ],\n exports: [\n RouterModule,\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiInterceptor,\n multi: true,\n deps: [Store, AuthService, ConsoleService, LocalizationService, ConfigService]\n },\n ]\n})\nexport class RoutingModule { }\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { Store } from '@ngxs/store';\nimport { AuthService } from '../services/auth.service';\nimport { StateModel } from '../models/store.model';\nimport { ConsoleService } from '../services/console.service';\nimport { LocalizationService } from '@tallence/localization';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable()\nexport class ApiInterceptor implements HttpInterceptor {\n\n private _api: any = { register: {}, editor: {} };\n private _auth = false;\n private _wildcards: string[] = [\n 'token',\n '.json'\n ];\n\n constructor(\n private _store: Store,\n private _authService: AuthService,\n private _consoleService: ConsoleService,\n private _localizationService: LocalizationService,\n private _configService: ConfigService\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._api = data;\n });\n this._store.select((state: StateModel) => state.security.auth).subscribe((auth: boolean) => {\n this._auth = auth;\n });\n }\n\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n const registerRegex = new RegExp(`^.+\\\\${this._api.register.version}/`);\n const editorRegex = new RegExp(`^.+\\\\${this._api.editor.version}/`);\n const passthrough: boolean = this._wildcards.filter(wildcard => {\n return req.url.includes(wildcard);\n }).length !== 0;\n\n if (\n this._auth &&\n registerRegex.test(req.url) &&\n editorRegex.test(req.url) &&\n !passthrough &&\n !this._isBasic(req)\n ) {\n return this._handleRequest(req, next);\n }\n\n return next.handle(req);\n }\n\n private _handleRequest(req: HttpRequest, next: HttpHandler, retry: boolean = false): Observable> {\n\n const token: string | null = this._authService.getAccessToken();\n const request: HttpRequest = req.clone({ setHeaders: { Authorization: 'Bearer ' + token } });\n\n return next.handle(request).pipe(\n map((response: HttpEvent) => {\n this._authService.resetAutoLogout();\n return response;\n }),\n catchError(error => {\n return this._handleError(req, next, error, retry);\n })\n );\n }\n\n private _refreshToken(req: HttpRequest, next: HttpHandler): Observable> {\n return this._authService.refreshToken().pipe(\n switchMap(success => {\n if (success) {\n return this._handleRequest(req, next, true);\n }\n return throwError('');\n })\n );\n }\n\n private _handleError(req: HttpRequest, next: HttpHandler, error: any, retry: boolean = false): Observable> {\n if (error instanceof HttpErrorResponse) {\n switch (error.status) {\n case 401:\n if (this._auth && !this._isBasic(req) && !retry) {\n return this._refreshToken(req, next);\n }\n break;\n case 404:\n break;\n case 500:\n this._consoleService.add(\n `*${req.method}* ${req.url}`,\n this._localizationService.getTranslation('console.500'),\n 0\n );\n break;\n default:\n break;\n }\n }\n return throwError(error);\n }\n\n private _isBasic(req: HttpRequest): boolean {\n return `${req.headers.get('Authorization')}`.includes('Basic');\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { StateModel } from '../models/store.model';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n private _auth = false;\n private _wildcards: string[] = ['/login', '/password', '/register'];\n\n constructor(\n private _router: Router,\n private _store: Store,\n private _authService: AuthService\n ) {\n this._store.select((state: StateModel) => state.security.auth).subscribe((auth) => {\n this._auth = auth;\n });\n }\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n const wildcard: boolean = this._wildcards.find((path: string) => {\n return state.url.includes(path);\n }) !== undefined;\n if (this._auth) {\n if (wildcard) {\n this._router.navigate(['overview']);\n }\n if (state.url.includes('/logout')) {\n this._authService.logout();\n }\n return true;\n }\n if (wildcard) {\n return true;\n } else {\n this._router.navigate(['login']);\n return false;\n }\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface ComponentCanDeactivate {\n canDeactivate: () => boolean | Observable;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditorGuard implements CanDeactivate {\n\n public canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n return component.canDeactivate();\n }\n\n}\n","import { NavigationItem, NavigationType, Role } from '../models/security.model';\n\nexport const navigationItems: NavigationItem[] = [\n {\n authorized: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN, Role.PHOTOGRAPHER, Role.EMPLOYEE, Role.NONE],\n type: [NavigationType.SIDENAV],\n icon: 'dashboard',\n label: 'navigation.overview',\n route: ['overview'],\n order: 0\n },\n {\n authorized: [Role.PHOTOGRAPHER],\n type: [NavigationType.SIDENAV],\n icon: 'group',\n label: 'navigation.employees',\n route: ['employees'],\n order: 5\n },\n {\n authorized: [Role.ADMIN],\n type: [NavigationType.SIDENAV],\n icon: 'card-account-details',\n label: 'navigation.uigEmployees',\n route: ['uig-employees'],\n order: 2\n },\n {\n authorized: [Role.ADMIN, Role.HARDWARE_PROVIDER_ADMIN],\n type: [NavigationType.SIDENAV],\n icon: 'camera-account',\n label: 'navigation.hardwareProvider',\n route: ['hardware-providers'],\n order: 3\n },\n {\n authorized: [Role.ADMIN, Role.UIG],\n type: [NavigationType.SIDENAV],\n icon: 'groups',\n label: 'navigation.users',\n route: ['users'],\n order: 4\n },\n {\n authorized: [Role.ADMIN, Role.UIG],\n type: [NavigationType.SIDENAV],\n icon: 'text-box-check-outline',\n label: 'navigation.applications',\n route: ['applications'],\n order: 6\n },\n {\n authorized: [Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN],\n type: [NavigationType.SIDENAV],\n icon: 'photo_camera',\n label: 'navigation.cameras',\n route: ['cameras'],\n order: 6\n },\n {\n authorized: [Role.PHOTOGRAPHER],\n type: [NavigationType.SIDENAV],\n icon: 'holiday_village',\n label: 'navigation.studios',\n route: ['company'],\n order: 7\n },\n {\n authorized: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN],\n type: [NavigationType.SIDENAV],\n icon: 'home_work',\n label: 'navigation.companies',\n route: ['companies'],\n order: 5\n },\n {\n authorized: [Role.PHOTOGRAPHER, Role.EMPLOYEE],\n type: [NavigationType.SIDENAV],\n icon: 'add_photo_alternate',\n label: 'navigation.upload',\n route: ['editor'],\n // route: ['photos', 'upload'],\n order: 4\n },\n {\n authorized: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN, Role.PHOTOGRAPHER, Role.EMPLOYEE],\n type: [NavigationType.MENU],\n icon: 'face',\n label: 'navigation.account',\n route: ['account'],\n order: 0\n },\n {\n authorized: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN, Role.PHOTOGRAPHER, Role.EMPLOYEE, Role.NONE],\n type: [NavigationType.MENU],\n icon: 'logout',\n label: 'navigation.logout',\n route: ['logout'],\n order: 1\n },\n {\n authorized: [Role.ADMIN, Role.UIG],\n type: [NavigationType.SIDENAV],\n icon: 'analytics',\n label: 'navigation.analytics',\n route: ['analytics'],\n order: 7\n },\n {\n authorized: [Role.PHOTOGRAPHER, Role.EMPLOYEE],\n type: [NavigationType.SIDENAV],\n icon: 'photo_album',\n label: 'navigation.archive',\n route: ['archive'],\n order: 4\n },\n];\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Role } from '../models/security.model';\nimport { StateModel } from '../models/store.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleGuard implements CanActivate {\n\n private _role: Role = Role.NONE;\n\n constructor(\n private _router: Router,\n private _store: Store,\n ) {\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this._role = role;\n });\n }\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n const roles: Role[] = route.data.roles || [];\n if (roles.includes(this._role)) {\n return true;\n } else {\n this._router.navigate(['overview']);\n return false;\n }\n }\n}\n","import { Route } from '@angular/router';\nimport { Role } from '../models/security.model';\nimport { AccountViewComponent } from '../views/account-view/account-view.component';\nimport { AnalyticsViewComponent } from '../views/analytics-view/analytics-view.component';\nimport { ApplicationViewComponent } from '../views/application-view/application-view.component';\nimport { ApplicationsViewComponent } from '../views/applications-view/applications-view.component';\nimport { ArchiveViewComponent } from '../views/archive-view/archive-view.component';\nimport { CamerasViewComponent } from '../views/cameras-view/cameras-view.component';\nimport { CompaniesViewComponent } from '../views/companies-view/companies-view.component';\nimport { CompanyViewComponent } from '../views/company-view/company-view.component';\nimport { EditorViewComponent } from '../views/editor-view/editor-view.component';\nimport { EmployeesViewComponent } from '../views/employees-view/employees-view.component';\nimport { ErrorViewComponent } from '../views/error-view/error-view.component';\nimport { HandoutViewComponent } from '../views/handout-view/handout-view.component';\nimport { HardwareProviderViewComponent } from '../views/hardware-provider-view/hardware-provider-view.component';\nimport { HardwareProvidersViewComponent } from '../views/hardware-providers-view/hardware-providers-view.component';\nimport { LoginViewComponent } from '../views/login-view/login-view.component';\nimport { OverviewViewComponent } from '../views/overview-view/overview-view.component';\nimport { PasswordViewComponent } from '../views/password-view/password-view.component';\nimport { RegisterViewComponent } from '../views/register-view/register-view.component';\nimport { UigEmployeeViewComponent } from '../views/uig-employee-view/uig-employee-view.component';\nimport { UigEmployeesViewComponent } from '../views/uig-employees-view/uig-employees-view.component';\nimport { UserViewComponent } from '../views/user-view/user-view.component';\nimport { UsersViewComponent } from '../views/users-view/users-view.component';\nimport { AuthGuard } from './auth.guard';\nimport { EditorGuard } from './editor.guard';\nimport { RoleGuard } from './role.guard';\n\nexport const routes: Route[] = [\n {\n path: '',\n redirectTo: '/overview',\n pathMatch: 'full'\n },\n {\n path: 'overview',\n canActivate: [AuthGuard],\n component: OverviewViewComponent,\n },\n {\n path: 'login',\n canActivate: [AuthGuard],\n component: LoginViewComponent,\n },\n {\n path: 'password',\n canActivate: [AuthGuard],\n children: [\n {\n path: 'new/:token',\n component: PasswordViewComponent\n },\n {\n path: 'reset/:token',\n component: PasswordViewComponent\n },\n {\n path: 'forgotten',\n component: PasswordViewComponent\n },\n {\n path: '',\n redirectTo: '/login',\n pathMatch: 'prefix'\n }\n ]\n },\n {\n path: 'register',\n canActivate: [AuthGuard],\n children: [\n {\n path: '',\n component: RegisterViewComponent,\n data: {role: Role.PHOTOGRAPHER}\n },\n {\n path: 'employee',\n children: [\n {\n path: '',\n component: RegisterViewComponent,\n data: {role: Role.EMPLOYEE}\n },\n {\n path: ':token',\n component: RegisterViewComponent,\n data: {role: Role.EMPLOYEE}\n },\n ]\n },\n ]\n },\n {\n path: 'account',\n canActivate: [AuthGuard],\n component: AccountViewComponent,\n },\n {\n path: 'employees',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.PHOTOGRAPHER]},\n component: EmployeesViewComponent,\n },\n {\n path: 'uig-employees',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN]},\n component: UigEmployeesViewComponent,\n },\n {\n path: 'uig-employee',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN]},\n children: [\n {\n path: ':email',\n component: UigEmployeeViewComponent\n },\n {\n path: '',\n redirectTo: '/uig-employees',\n pathMatch: 'prefix'\n }\n ]\n },\n {\n path: 'hardware-providers',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.HARDWARE_PROVIDER_ADMIN]},\n component: HardwareProvidersViewComponent,\n },\n {\n path: 'hardware-provider',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.HARDWARE_PROVIDER_ADMIN]},\n children: [\n {\n path: ':email',\n component: HardwareProviderViewComponent\n },\n {\n path: '',\n redirectTo: '/hardware-providers',\n pathMatch: 'prefix'\n }\n ]\n },\n {\n path: 'users',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG]},\n component: UsersViewComponent,\n },\n {\n path: 'user',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG]},\n children: [\n {\n path: ':email',\n component: UserViewComponent\n },\n {\n path: '',\n redirectTo: '/users',\n pathMatch: 'prefix'\n }\n ]\n },\n {\n path: 'cameras',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN]},\n component: CamerasViewComponent,\n },\n {\n path: 'applications',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG]},\n component: ApplicationsViewComponent,\n },\n {\n path: 'application',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG]},\n children: [\n {\n path: ':email',\n component: ApplicationViewComponent\n },\n {\n path: '',\n redirectTo: '/applications',\n pathMatch: 'prefix'\n }\n ]\n },\n {\n path: 'editor',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.PHOTOGRAPHER, Role.EMPLOYEE]},\n children: [\n {\n path: '',\n component: EditorViewComponent,\n canDeactivate: [EditorGuard],\n },\n {\n path: ':id',\n component: EditorViewComponent,\n canDeactivate: [EditorGuard],\n }\n ]\n },\n {\n path: 'archive',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.PHOTOGRAPHER, Role.EMPLOYEE]},\n component: ArchiveViewComponent,\n },\n {\n path: 'companies',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN]},\n component: CompaniesViewComponent,\n },\n {\n path: 'company',\n children: [\n {\n path: ':email',\n component: CompanyViewComponent,\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN]},\n },\n {\n path: '',\n component: CompanyViewComponent,\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.PHOTOGRAPHER]},\n },\n ]\n },\n {\n path: 'error/:code',\n component: ErrorViewComponent,\n },\n {\n path: 'logout',\n canActivate: [AuthGuard],\n component: LoginViewComponent\n },\n {\n path: 'analytics',\n canActivate: [AuthGuard, RoleGuard],\n data: {roles: [Role.ADMIN, Role.UIG]},\n component: AnalyticsViewComponent\n },\n {\n path: 'handout',\n component: HandoutViewComponent\n },\n {\n path: '**',\n redirectTo: 'error/404',\n }\n];\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport {\n ResponseStatus,\n} from '../models/administration.model';\nimport { Role } from '../models/security.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n private _api: any = {};\n\n constructor() { }\n\n public handleError(error: any): Observable {\n if (error instanceof HttpErrorResponse) {\n if (error.status === 401) {\n return of(ResponseStatus.UNAUTHORIZED);\n }\n if (error.status === 409) {\n return of(ResponseStatus.CONFLICT);\n }\n }\n return of(ResponseStatus.ERROR);\n }\n\n public handleResponse(response: Observable): Observable {\n return response.pipe(\n map(() => {\n return ResponseStatus.SUCCESS;\n }),\n catchError(error => {\n return this.handleError(error);\n })\n );\n }\n\n public handleResponseSimple(response: Observable): Observable {\n return response.pipe(\n map(() => {\n return true;\n }),\n catchError(() => {\n return of(false);\n })\n );\n }\n\n public getEndpointFromRole(role: Role): string {\n let endpoint = '';\n switch (role) {\n case Role.EMPLOYEE:\n endpoint = this._api.register.endpoint.employee;\n break;\n case Role.PHOTOGRAPHER:\n endpoint = this._api.register.endpoint.photographer;\n break;\n case Role.UIG:\n endpoint = this._api.register.endpoint.uig;\n break;\n case Role.HARDWARE_PROVIDER:\n endpoint = this._api.register.endpoint.hardwareProvider;\n break;\n default:\n break;\n }\n return endpoint;\n }\n\n /* public getHealth(): void {\n this._http.get(`${this._url.editor}/health`).subscribe((result: any) => {\n console.log(result);\n });\n } */\n\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { StateModel } from '../models/store.model';\nimport { UpdateAuth, UpdateRole, UpdateTimeout } from '../store/security/security.actions';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { Role } from '../models/security.model';\nimport { UpdateAccountProperty } from '../store/account/account.actions';\nimport { Router } from '@angular/router';\nimport { PhotosService } from './photos.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DialogConfig, DialogType } from '../models/dialog.model';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { ConfigService } from './config.service';\nimport { UserService } from './register/user.service';\nimport { ResponseStatus } from '../models/administration.model';\nimport { Helper } from '../utilities/helper';\nimport { ApiService } from './api.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n private _api: any = {};\n private _url: any = {};\n private _jwt: JwtHelperService = new JwtHelperService();\n private _timeout = 0;\n private _auth = false;\n private _time = 30 * 60 * 1000;\n private _secondFactorToken = '';\n private _basicLogin = '';\n\n constructor(\n private _store: Store,\n private _http: HttpClient,\n private _router: Router,\n private _photosService: PhotosService,\n private _dialog: MatDialog,\n private _configService: ConfigService,\n private _userService: UserService,\n private _apiService: ApiService\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._api = data;\n this._url = `${this._api.register.origin}${this._api.register.port}${this._api.register.version}`;\n });\n this._store.select((state: StateModel) => state.security.auth).subscribe((auth: boolean) => {\n this._auth = auth;\n });\n if (sessionStorage.getItem('forceLogout')) {\n this.logout();\n }\n }\n\n public restoreAuth(): void {\n if (this.getAccessToken() && this.getRefreshToken()) {\n if (this.checkToken()) {\n this._store.dispatch(new UpdateAuth(true));\n this.getDataFromToken();\n this._userService.getAccount();\n this._userService.getHardwareLicenseToken();\n } else {\n this.refreshToken().subscribe((success: boolean) => {\n if (success) {\n this._router.navigate(['overview']);\n }\n });\n }\n }\n }\n\n public login(email: string, password: string): Observable {\n this._basicLogin = btoa(`${email}:${password}`);\n\n let headers: HttpHeaders = new HttpHeaders();\n headers = headers.append('Authorization', `Basic ${this._basicLogin}`);\n\n return this._http.get(`${this._url}/login`, { headers }).pipe(\n map((auth: any) => {\n if (auth && auth.secondFactorToken) {\n this._secondFactorToken = auth.secondFactorToken;\n return true;\n }\n return false;\n }),\n catchError(error => {\n console.log(error);\n return of(false);\n })\n );\n }\n\n public getAuthentication(code: string): Observable {\n const request = this._http.post(`${this._url}/login`, {\n secondFactorToken: this._secondFactorToken,\n otpCode: code\n }).pipe(\n tap((auth: any) => {\n if (auth && auth.accessToken && auth.refreshToken) {\n sessionStorage.setItem('access_token', auth.accessToken);\n sessionStorage.setItem('refresh_token', auth.refreshToken);\n this._store.dispatch(new UpdateAuth(true));\n this.getDataFromToken();\n const role: Role = this._store.selectSnapshot((state: StateModel) => state.security.role);\n if (role === Role.ADMIN || Role.UIG) {\n const basic = Helper.encrypt('auth', this._basicLogin);\n sessionStorage.setItem('basic', basic);\n }\n this._userService.getAccount();\n this._userService.getHardwareLicenseToken();\n return true;\n }\n return false;\n }),\n );\n\n return this._apiService.handleResponse(request);\n\n }\n\n public refreshToken(): Observable {\n const refreshToken = this.getRefreshToken();\n if (refreshToken) {\n return this._http.post(`${this._url}/token`, { refreshToken }).pipe(\n map((response: any) => {\n if (Reflect.has(response, 'accessToken')) {\n sessionStorage.setItem('access_token', response.accessToken);\n if (this.checkToken()) {\n this._store.dispatch(new UpdateAuth(true));\n this.getDataFromToken();\n }\n return true;\n }\n this.logout();\n return false;\n }),\n catchError(() => {\n this.logout();\n return of(false);\n })\n );\n }\n return of(false);\n }\n\n public getAccessToken(): string | null {\n return sessionStorage.getItem('access_token');\n }\n\n public getRefreshToken(): string | null {\n return sessionStorage.getItem('refresh_token');\n }\n\n public checkToken(token: string = ''): boolean {\n const jwt = this.getAccessToken() || token;\n try {\n if (jwt) {\n return !this._jwt.isTokenExpired(jwt);\n }\n return false;\n } catch (error) {\n return false;\n }\n }\n\n public getDataFromToken(token: string = ''): void {\n const jwt = this.getAccessToken() || token;\n if (jwt) {\n const decodedToken = this._jwt.decodeToken(jwt);\n const email: string = decodedToken.email || decodedToken.username;\n const role: Role = decodedToken.role;\n this._store.dispatch(new UpdateAccountProperty('email', email));\n if (role) {\n this._store.dispatch(new UpdateRole(role));\n }\n }\n }\n\n public logout(): void {\n this._photosService.clear();\n sessionStorage.clear();\n this._store.dispatch(new UpdateAuth(false));\n }\n\n public resetAutoLogout(): void {\n sessionStorage.removeItem('forceLogout');\n if (this._auth) {\n this._store.dispatch([new UpdateTimeout(0), new UpdateTimeout(this._time)]);\n window.clearTimeout(this._timeout);\n this._timeout = window.setTimeout(() => {\n if (this._dialog.openDialogs.length === 0) {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.autoLogout.headline',\n ['dialog.autoLogout.description'],\n 'button.ok',\n ''\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n disableClose: true\n });\n sessionStorage.setItem('forceLogout', 'true');\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this.logout();\n }\n });\n }\n }, this._time);\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n\n private _data: any = null;\n private _api: BehaviorSubject = new BehaviorSubject(this._data);\n\n constructor(\n private _http: HttpClient\n ) { }\n\n public loadApi(): Observable {\n return this._http.get('./api.config.json').pipe(\n tap((data) => {\n this._data = data;\n this._api.next(this._data);\n })\n );\n }\n\n public getApi(): Observable {\n return this._api.pipe(\n filter((data) => {\n return data !== null;\n })\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { SnackbarService } from './snackbar.service';\n\nexport class Message {\n public time: string;\n public text: string;\n public subText: string;\n public duration: number;\n\n constructor(text: string = '', subText: string = '', duration: number) {\n this.time = (new Date()).toLocaleTimeString('de');\n this.text = text;\n this.subText = subText;\n this.duration = duration;\n }\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsoleService {\n\n public message: Subject = new Subject();\n\n constructor(\n private _snackbarService: SnackbarService\n ) { }\n\n public add(text: string, subText: string = '', duration: number = 30): void {\n if (environment.production) {\n this._snackbarService.showError(['snackbar.consoleError']);\n } else {\n this.message.next(new Message(text, subText, duration));\n }\n }\n}\n","import {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {Store} from '@ngxs/store';\nimport {BehaviorSubject, Observable, of} from 'rxjs';\nimport {map, tap} from 'rxjs/operators';\nimport {ResponseStatus} from 'src/app/models/administration.model';\nimport {PhotoState, PhotoUpload, PhotoVerification, QualityAssurance, ValidationResult} from 'src/app/models/file-upload.model';\nimport {StateModel} from 'src/app/models/store.model';\nimport {Canvas} from 'src/app/utilities/canvas';\nimport {Helper} from 'src/app/utilities/helper';\nimport {ApiService} from '../api.service';\nimport {ConfigService} from '../config.service';\nimport {PhotosService} from '../photos.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditorService {\n\n private _url = '';\n private _licenseHeader: HttpHeaders = new HttpHeaders();\n public processingMessage: BehaviorSubject = new BehaviorSubject('');\n\n constructor(\n private _configService: ConfigService,\n private _http: HttpClient,\n private _photosService: PhotosService,\n private _apiService: ApiService,\n private _store: Store\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._url = `${data.editor.origin}${data.editor.port}${data.editor.version}/image`;\n });\n this._store.select((state: StateModel) => state.security.licenseToken).subscribe((licenseToken: string) => {\n this._licenseHeader = new HttpHeaders();\n this._licenseHeader = this._licenseHeader.append('licenseToken', `${licenseToken}`);\n });\n }\n\n public uploadPhotos(files: File[]): Observable {\n const formData: any = new FormData();\n files.forEach((file: File) => {\n formData.append('uploads', file);\n });\n\n return this._http.post(`${this._url}/upload`, formData, {\n reportProgress: true,\n observe: 'events',\n headers: this._licenseHeader\n });\n }\n\n public applyPhotoActions(photo: PhotoUpload): Observable {\n const request = this._http.patch(`${this._url}/${photo.id}`, { actions: photo.actions }, { headers: this._licenseHeader });\n\n return this._apiService.handleResponse(request);\n }\n\n public sendToCognitec(photo: PhotoUpload, forceSave: boolean = false): Observable {\n const query = forceSave ? '?forceSave=true' : '';\n const request = this._http.put(`${this._url}/${photo.id}${query}`, {}, { headers: this._licenseHeader }).pipe(\n tap((response: any) => {\n photo.verification = new PhotoVerification();\n Helper.mergeData(photo.verification, response);\n\n if (response.token && (photo.verification.cognitecApproved || forceSave)) {\n photo.state = PhotoState.APPROVED;\n photo.fail = '';\n } else {\n photo.state = PhotoState.REJECTED;\n photo.validationResult = this._getResultFromValidation(response);\n }\n })\n );\n return this._apiService.handleResponse(request);\n }\n\n public validatePhoto(photo: PhotoUpload): Observable {\n const request = this._http.get(`${this._url}/verify/${photo.id}`, { headers: this._licenseHeader }).pipe(\n tap((response: any) => {\n photo.verification = new PhotoVerification();\n Helper.mergeData(photo.verification, response);\n if (!photo.verification.cognitecApproved) {\n photo.fail = 'editor.status.rejected';\n photo.validationResult = this._getResultFromValidation(response);\n photo.validationErrors = this._getErrorsFromValidation(response);\n }\n })\n );\n\n return this._apiService.handleResponse(request);\n }\n\n public getPhoto(photo: PhotoUpload): Observable {\n const request = this._http.get(`${this._url}/${photo.id}`, {\n responseType: 'blob',\n headers: this._licenseHeader\n }).pipe(\n map((blob: Blob) => {\n photo.file = Helper.blobToFile(blob, photo.file.name);\n const reader = new FileReader();\n reader.onload = (src) => {\n const source = `${src.target?.result}`;\n if (source.startsWith('data:image')) {\n const image = new Image();\n image.onload = () => {\n photo.preview = Canvas.getPreview(image);\n photo.actions = [];\n photo.image = image;\n photo.width = image.width;\n photo.height = image.height;\n photo.state = PhotoState.EDITED;\n photo.fail = '';\n this._photosService.updatePhoto(photo);\n this._photosService.nextStepTrigger.next();\n };\n image.src = source;\n }\n };\n reader.readAsDataURL(photo.file);\n return ResponseStatus.SUCCESS;\n })\n );\n\n return this._apiService.handleResponse(request);\n }\n\n public loadArchive(password: string): Observable {\n return of(ResponseStatus.SUCCESS);\n }\n\n private _getErrorsFromValidation(response: any): string[] {\n const qualityAssurances: QualityAssurance[] = response?.authorityData?.faceQualities[0].qualityAssurances || [];\n const isoTypes: string[] = ['iso197945ComplianceInformation'];\n\n return qualityAssurances.filter((item: QualityAssurance) => {\n return isoTypes.some((identifier: string) => item.identifier.startsWith(identifier));\n }).filter((item: QualityAssurance) => item.result === 0).map((item: QualityAssurance) => {\n const pattern = new RegExp(isoTypes.map((type: string) => `(${type}).`).join('|'));\n const identifier: string = item.identifier.replace(pattern, '');\n return identifier;\n });\n }\n\n private _getResultFromValidation(response: any): ValidationResult {\n // we now try to extract the face quality information from the result\n // first check that the necessary information exists, otherwise\n // just return an all-false response.\n const faceQualities: any[] | undefined = response?.authorityData?.faceQualities;\n if (!faceQualities) {\n return new ValidationResult();\n }\n\n const qualityAssurances: any[] | undefined = faceQualities[0].qualityAssurances;\n if (!qualityAssurances) {\n return new ValidationResult();\n }\n\n const isoTypes: string[] = ['iso197945ComplianceInformation'];\n const validationResult: any = {};\n\n qualityAssurances.filter((item: QualityAssurance) => {\n return isoTypes.some((identifier: string) => item.identifier.startsWith(identifier));\n }).forEach((item: QualityAssurance) => {\n const pattern = new RegExp(isoTypes.map((type: string) => `(${type}).`).join('|'));\n const identifier: string = item.identifier.replace(pattern, '');\n const value: boolean = item.result !== 0;\n return Reflect.set(validationResult, identifier, value);\n });\n\n return {\n ...new ValidationResult(),\n ...validationResult\n };\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n\n private _svgPath = '../assets/icons/';\n\n private _icons: string[] = [\n 'account-star',\n 'edit-outline',\n 'update-outline',\n 'delete-outline',\n 'camera-account',\n 'card-account-details',\n 'account-circle-outline',\n 'home-plus-outline',\n 'home-minus-outline',\n 'account-off-outline',\n 'account-reactivate-outline',\n 'shield-key-outline',\n 'text-box-check-outline',\n 'card-search-outline',\n 'download-circle-outline',\n 'arrow-up-bold',\n 'account-box',\n 'account-edit',\n 'drag-and-drop',\n 'account-cancel',\n 'calendar-edit',\n 'home-search-outline'\n ];\n\n constructor(\n private _matIconRegistry: MatIconRegistry,\n private _domSanitizer: DomSanitizer\n ) {}\n\n public init(): void {\n this._icons.forEach((icon) => {\n this._matIconRegistry.addSvgIcon(\n icon,\n this._domSanitizer.bypassSecurityTrustResourceUrl(`${this._svgPath}${icon}.svg`)\n );\n });\n }\n\n public isOwnIcon(icon: string): boolean {\n return this._icons.includes(icon);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, takeWhile } from 'rxjs/operators';\nimport { PhotoState, PhotoUpload } from '../models/file-upload.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhotosService {\n\n private _photoUploads: PhotoUpload[] = [];\n private _photos: BehaviorSubject = new BehaviorSubject(this._photoUploads);\n private _archive: BehaviorSubject = new BehaviorSubject(this._photoUploads);\n private _subscribtion: Subscription = new Subscription();\n private _beforeunload = false;\n public nextStepTrigger: Subject = new Subject();\n\n constructor(\n private _router: Router,\n ) {\n this._photos.pipe(\n filter(photos => {\n return photos.find(photo => photo.uploaded) !== undefined;\n }),\n takeWhile(photos => {\n return photos.length === 1;\n })\n ).subscribe(() => {\n this._beforeunload = true;\n this._subscribtion.add(fromEvent(window, 'beforeunload').subscribe((e: any) => {\n if (this._beforeunload) {\n // Cancel the event\n e.preventDefault(); // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n // Chrome requires returnValue to be set\n e.returnValue = '';\n }\n }));\n });\n }\n\n public getPhotos(): Observable {\n return this._photos.asObservable();\n }\n\n public getArchive(): Observable {\n return this._archive.asObservable();\n }\n\n public getPhotosSnapshot(): PhotoUpload[] {\n return this._photoUploads;\n }\n\n public addPhoto(photo: PhotoUpload): void {\n this._photoUploads.push({...photo});\n this._photos.next(this._photoUploads);\n }\n\n public updatePhoto(photo: PhotoUpload): void {\n this._photoUploads = this._photoUploads.map(p => {\n return ((photo.id && p.id === photo.id ) || p.file.name === photo.file.name) ? {...photo} : p;\n });\n this._photos.next(this._photoUploads);\n }\n\n public updatePhotos(photos: PhotoUpload[]): void {\n this._photoUploads = photos;\n this._photos.next(this._photoUploads);\n }\n\n public removePhoto(photo: PhotoUpload): void {\n this._photoUploads = this._photoUploads.filter(p => p.file.name !== photo.file.name);\n this._photos.next(this._photoUploads);\n }\n\n public clearState(): void {\n const archive: PhotoUpload[] = this._photoUploads\n .filter(p => p.state !== PhotoState.IMPORTED && p.state !== PhotoState.INVALID)\n .map(p => {\n return {\n ...p,\n state: PhotoState.ARCHIVED,\n success: '',\n fail: ''\n };\n });\n this._archive.next(archive);\n this._photoUploads = this._photoUploads.filter(p => p.state === PhotoState.IMPORTED);\n this._photos.next(this._photoUploads);\n }\n\n public clear(): void {\n this._photoUploads = [];\n this._photos.next(this._photoUploads);\n this._beforeunload = false;\n this._subscribtion.unsubscribe();\n this._router.navigate(['logout']);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { of, Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { SearchQuery, Camera, ResponseStatus } from 'src/app/models/administration.model';\nimport { UpdateCameras } from 'src/app/store/administration/administration.actions';\nimport { Helper } from 'src/app/utilities/helper';\nimport { ApiService } from '../api.service';\nimport { ConfigService } from '../config.service';\nimport { SnackbarService } from '../snackbar.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HardwareService {\n\n private _url = '';\n\n constructor(\n private _store: Store,\n private _http: HttpClient,\n private _snackbarService: SnackbarService,\n private _configService: ConfigService,\n private _apiService: ApiService,\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._url = `${data.register.origin}${data.register.port}${data.register.version}/hardware`;\n });\n }\n\n /* CAMERAS */\n\n public getCameras(query: SearchQuery): void {\n const request = this._http.get(`${this._url}/listcamera?${query.params()}`);\n\n request.pipe(\n catchError(() => {\n this._snackbarService.showError();\n return of(null);\n })\n ).subscribe((results: any) => {\n if (results) {\n const items: Camera[] = [];\n let total = 0;\n items.push(...results.cameras.map((data: any) => {\n const camera = new Camera();\n Helper.mergeData(camera, data);\n return camera;\n }));\n total = results.count;\n this._store.dispatch(new UpdateCameras({\n items,\n total\n }));\n }\n });\n }\n\n public addCamera(camera: Camera): Observable {\n const request = this._http.post(`${this._url}/camera`, camera);\n\n return this._apiService.handleResponse(request);\n }\n\n public updateCamera(update: any): Observable {\n const request = this._http.patch(`${this._url}/camera`, update);\n return this._apiService.handleResponse(request);\n }\n\n public removeCamera(camera: Camera): Observable {\n const request = this._http.delete(`${this._url}/camera?cameraId=${camera.cameraId}&cameraManufacturer=${camera.cameraManufacturer}`);\n return this._apiService.handleResponse(request);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Company, Employee, ResponseStatus, SearchQuery, Studio } from 'src/app/models/administration.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { UpdateCompanies, UpdateEmployees, UpdateStudios } from 'src/app/store/administration/administration.actions';\nimport { Helper } from 'src/app/utilities/helper';\nimport { ApiService } from '../api.service';\nimport { ConfigService } from '../config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhotostudioService {\n\n private _url = '';\n private _endpoint = '';\n private _role: Role = Role.NONE;\n\n constructor(\n private _apiService: ApiService,\n private _configService: ConfigService,\n private _http: HttpClient,\n private _store: Store,\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._url = `${data.register.origin}${data.register.port}${data.register.version}`;\n });\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this._role = role;\n switch (role) {\n case Role.PHOTOGRAPHER:\n this._endpoint = '/photostudio/photographer';\n break;\n case Role.EMPLOYEE:\n this._endpoint = '/photostudio/employee';\n break;\n case Role.HARDWARE_PROVIDER:\n this._endpoint = '/hardware/provider/studios';\n break;\n default:\n break;\n }\n });\n }\n\n /* APPLICATION */\n\n public sendApplication(formData: FormData): Observable {\n const request = this._http.post(`${this._url}${this._endpoint}`, formData, {\n reportProgress: true,\n observe: 'events'\n });\n return request;\n }\n\n /* PHOTOSTUDIO EMPLOYEES */\n\n public getEmployees(): void {\n const request = this._http.get(`${this._url}${this._endpoint}/employees`);\n\n request.subscribe((employees: any) => {\n this._store.dispatch(new UpdateEmployees(employees.map((data: any) => {\n const employee = new Employee();\n Helper.mergeData(employee, data);\n return employee;\n })));\n });\n }\n\n public inviteEmployee(employee: any): Observable {\n const request = this._http.post(`${this._url}${this._endpoint}/employee`, employee);\n\n return this._apiService.handleResponse(request);\n }\n\n public removeEmployee(employee: Employee): Observable {\n const email: string = encodeURIComponent(employee.email);\n const request = this._http.delete(`${this._url}${this._endpoint}/employee/${email}`);\n\n return this._apiService.handleResponseSimple(request);\n }\n\n /* COMPANY AND STUDIOS */\n\n public getCompanies(query: SearchQuery): void {\n let request = this._http.get(`${this._url}/photostudio?${query.params()}`);\n if (this._role === Role.HARDWARE_PROVIDER) {\n request = this._http.get(`${this._url}${this._endpoint}?${query.params()}`);\n }\n\n request.subscribe((companies: any) => {\n const items: Company[] = [];\n let total = 0;\n items.push(...companies.studios.map((data: any) => {\n const company = new Company();\n Helper.mergeData(company, data);\n return company;\n }));\n total = companies.count;\n this._store.dispatch(new UpdateCompanies({\n items,\n total\n }));\n });\n }\n\n public searchCompany(query: SearchQuery): Observable {\n const request = this._http.get(`${this._url}/photostudio?${query.params()}`);\n return request.pipe(\n map((response: any) => {\n return response.studios || [];\n })\n );\n }\n\n public addCompany(email: string): Observable {\n const request = this._http.post(`${this._url}${this._endpoint}`, {\n studiosEmails: [\n email\n ]\n });\n return this._apiService.handleResponse(request);\n }\n\n public removeCompany(company: Company): Observable {\n const email: string = encodeURIComponent(company.email);\n const request = this._http.delete(`${this._url}${this._endpoint}/${email}`);\n\n return this._apiService.handleResponseSimple(request);\n }\n\n public getStudios(email: string): void {\n email = encodeURIComponent(email || '');\n const request = this._http.get(`${this._url}/photostudio/stores/${email}`);\n\n request.subscribe((data: any) => {\n const studios: Studio[] = data.map((studio: Studio) => {\n const s = new Studio();\n Helper.mergeData(s, studio);\n return s;\n });\n this._store.dispatch(new UpdateStudios({\n items: studios,\n total: studios.length\n }));\n }\n );\n }\n\n public updateStudios(studios: Studio[]): Observable {\n let email = this._store.selectSnapshot((state: StateModel) => state.account.email);\n email = encodeURIComponent(email || '');\n const request = this._http.patch(`${this._url}/photostudio/stores/${email}`, {studios});\n return this._apiService.handleResponse(request);\n }\n\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { LocalizationService } from '@tallence/localization';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { tap, catchError, map, take } from 'rxjs/operators';\nimport {\n Application,\n ApplicationReply,\n Attachment,\n Employee,\n HardwareProvider,\n Photographer,\n ResponseStatus,\n SearchQuery,\n Studio,\n UigEmployee,\n User\n} from 'src/app/models/administration.model';\nimport { NewPassword, Role } from 'src/app/models/security.model';\nimport { AccountModel, StateModel } from 'src/app/models/store.model';\nimport { UpdateAccount } from 'src/app/store/account/account.actions';\nimport { UpdateApplications, UpdateUsers } from 'src/app/store/administration/administration.actions';\nimport { Helper } from 'src/app/utilities/helper';\nimport { ApiService } from '../api.service';\nimport { ConfigService } from '../config.service';\nimport { ConsoleService } from '../console.service';\nimport { SnackbarService } from '../snackbar.service';\nimport { saveAs } from 'file-saver';\nimport * as moment from 'moment';\nimport { UpdateLicenseToken, UpdateOtpSecret } from 'src/app/store/security/security.actions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n\n private _url = '';\n private _endpoint = '';\n private _role: Role = Role.NONE;\n\n constructor(\n private _apiService: ApiService,\n private _configService: ConfigService,\n private _http: HttpClient,\n private _store: Store,\n private _localizationService: LocalizationService,\n private _consoleService: ConsoleService,\n private _snackbarService: SnackbarService,\n ) {\n this._configService.getApi().subscribe((data: any) => {\n this._url = `${data.register.origin}${data.register.port}${data.register.version}`;\n });\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this._endpoint = this._getEndpointFromRole(role);\n this._role = role;\n });\n }\n\n /* ACCOUNT */\n\n public getAccount(): void {\n this._http.get(`${this._url}${this._endpoint}/me`).pipe(\n tap((account: any) => {\n this._store.dispatch(new UpdateAccount({\n ...new AccountModel(),\n ...account,\n loaded: true\n }));\n }),\n catchError((error: any) => {\n if (error instanceof HttpErrorResponse) {\n const text: string = this._localizationService.getTranslation('account.error.failure');\n this._consoleService.add(`*${error.status}* ${text}`, '', 0);\n }\n return of(false);\n })\n ).subscribe();\n }\n\n public updateAccount(update: any): Observable {\n const request = this._http.patch(`${this._url}${this._endpoint}/me`, update);\n\n return this._apiService.handleResponse(request);\n }\n\n public deleteAccount(password: string): Observable {\n const headers: HttpHeaders = this._getBasicAuth(password);\n const request = this._http.delete(`${this._url}${this._endpoint}/me`, { headers });\n\n return this._apiService.handleResponse(request);\n }\n\n public updatePassword(oldPassword: string, newPassword: string): Observable {\n const update: any = {\n username: this._store.selectSnapshot((state: StateModel) => state.account.email),\n password: newPassword\n };\n const headers: HttpHeaders = this._getBasicAuth(oldPassword);\n const request = this._http.patch(`${this._url}${this._endpoint}/change/password`, update, { headers });\n\n return this._apiService.handleResponse(request);\n }\n\n public setPassword(newPassword: NewPassword): Observable {\n const request = this._http.patch(`${this._url}/user/activation`, newPassword).pipe(\n tap((secret: any) => {\n this._store.dispatch(new UpdateOtpSecret(secret.otpSecret || ''));\n })\n );\n\n return this._apiService.handleResponse(request);\n }\n\n public setNewPassword(newPassword: NewPassword): Observable {\n const request = this._http.post(`${this._url}/user/password/forgotten/reset`, newPassword);\n\n return this._apiService.handleResponse(request);\n }\n\n public resetPassword(email: string): Observable {\n email = encodeURIComponent(email);\n const request = this._http.get(`${this._url}/user/password/forgotten/${email}`);\n\n return this._apiService.handleResponse(request);\n }\n\n /* USERS */\n\n public getUsers(query: SearchQuery): void {\n forkJoin(\n query.params().map(params => {\n return this._http.get(`${this._url}/user?${params}`);\n })\n ).pipe(\n catchError(() => {\n this._snackbarService.showError();\n return of(null);\n })\n ).subscribe((results: any) => {\n if (results) {\n const items: User[] = [];\n let total = 0;\n results.forEach((result: any) => {\n items.push(...result.users.map((data: any) => {\n const user = new User();\n Helper.mergeData(user, data);\n return user;\n }));\n total += result.count;\n });\n this._store.dispatch(new UpdateUsers({\n items,\n total\n }));\n }\n });\n }\n\n public getUsersCsv(): void {\n\n const query = new SearchQuery();\n query.limit = 99999;\n\n this._http.get(`${this._url}/user/studiostaff?${query.params()[0]}`).pipe(\n take(1),\n catchError(() => {\n this._snackbarService.showError();\n return of(null);\n })\n ).subscribe((results: any) => {\n if (results) {\n\n const users: any[] = results.users || [];\n\n const userWithMaxStudios = users.reduce((prev, current) => {\n if ((current.studios?.length || 0) > (prev.studios?.length || 0)) {\n return current;\n } else {\n return prev;\n }\n });\n\n const headers = [\n 'salutation',\n 'firstName',\n 'lastName',\n 'member',\n 'birthDate',\n 'email',\n 'phone1',\n 'phone2',\n 'company',\n 'companyLegalForm',\n 'website',\n 'role',\n 'status',\n ...(userWithMaxStudios?.studios || []).map((studio: any) => 'studio')\n ];\n\n const studioOffset: number = headers.indexOf('studio');\n\n let csv = '\\uFEFF';\n headers.forEach(header => {\n const hedaerItem = this._localizationService.getTranslation(`table.${header}`);\n csv += `\"${hedaerItem}\";`;\n });\n csv = csv.replace(/;$/, '\\n');\n users.forEach((user: any) => {\n headers.forEach((header: string, index: number) => {\n if (header === 'status') {\n const status: string = this._localizationService.getTranslation(`status.${user[header]}`);\n csv += `\"${status || ''}\";`;\n } else if (header === 'studio') {\n const i: number = index - studioOffset;\n if (user.studios) {\n csv += this._studioToExportString(user.studios[i]);\n } else {\n csv += `\"\";`;\n }\n } else {\n csv += `\"${user[header] || ''}\";`;\n }\n });\n csv = csv.replace(/;$/, '\\n');\n });\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8' });\n const fileName = `${this._localizationService.getTranslation('users.csvFilename')}_${moment().format('DDMMYYYY')}.csv`;\n saveAs(blob, fileName);\n }\n });\n\n }\n\n private _studioToExportString(studio?: Studio): string {\n return studio ? `\"${studio.studioName}: ${studio.address}, ${studio.zip} ${studio.location}\";` : `\"\";`;\n }\n\n /* USER HANDLING BY EMAIL */\n\n public getUser(user: User): Observable {\n const email = encodeURIComponent(user.email);\n const endpoint = this._getEndpointFromRole(user.role);\n const request = this._http.get(`${this._url}${endpoint}/${email}`);\n\n return request.pipe(\n map((data: any) => {\n let userData: Photographer | Employee | UigEmployee | HardwareProvider = new Photographer();\n if (user.role === Role.EMPLOYEE) {\n userData = new Employee();\n }\n if (user.role === Role.UIG || user.role === Role.ADMIN) {\n userData = new UigEmployee();\n }\n if (user.role === Role.HARDWARE_PROVIDER) {\n userData = new HardwareProvider();\n }\n Helper.mergeData(userData, data);\n return userData;\n }),\n catchError(error => {\n return of(null);\n })\n );\n }\n\n public updateUser(update: any, user: User): Observable {\n const email = encodeURIComponent(user.email);\n const endpoint = this._getEndpointFromRole(user.role);\n const request = this._http.patch(`${this._url}${endpoint}/${email}`, update).pipe(\n tap((data: any) => {\n this._snackbarService.showSuccess();\n })\n );\n\n return this._apiService.handleResponseSimple(request);\n }\n\n public updateRole(role: Role, email: string): Observable {\n const update = {\n uigUserEmail: email,\n uigUserRole: role\n };\n const request = this._http.patch(`${this._url}${this._endpoint}/role`, update);\n\n return this._apiService.handleResponseSimple(request);\n }\n\n public updateHardwareProviderRole(role: Role, email: string): Observable {\n const update = {\n hardwareProviderEmail: email,\n hardwareProviderRole: role\n };\n const request = this._http.patch(`${this._url}${this._endpoint}/role`, update);\n\n return this._apiService.handleResponseSimple(request);\n }\n\n public deleteUser(user: User): Observable {\n const email: string = encodeURIComponent(user.email);\n const endpoint = this._getEndpointFromRole(user.role);\n let headers: HttpHeaders = new HttpHeaders();\n const basic = sessionStorage.getItem('basic') || '';\n const auth = Helper.decrypt('auth', basic);\n headers = headers.append('Authorization', `Basic ${auth}`);\n const request = this._http.delete(`${this._url}${endpoint}/${email}`, { headers });\n\n return this._apiService.handleResponseSimple(request);\n }\n\n public reactivateUser(email: string, query: SearchQuery): Observable {\n email = encodeURIComponent(email);\n\n return this._apiService.handleResponse(this._http.patch(`${this._url}/user/reactivation/${email}`, {}).pipe(\n tap(() => {\n this.getUsers(query);\n })\n ));\n }\n\n public deactivateUser(user: User): Observable {\n const email: string = encodeURIComponent(user.email);\n const request = this._http.patch(`${this._url}/user/deactivate/${email}`, {});\n\n return this._apiService.handleResponseSimple(request);\n }\n\n /* ADD USER */\n\n public addUigEmployee(employee: UigEmployee): Observable {\n const uigEmployee: any = {...employee};\n Reflect.deleteProperty(uigEmployee, 'status');\n Reflect.deleteProperty(uigEmployee, 'role');\n const request = this._http.post(`${this._url}${this._getEndpointFromRole(employee.role)}`, uigEmployee);\n\n return this._apiService.handleResponse(request);\n }\n\n public addHardwareProvider(provider: HardwareProvider): Observable {\n const hardwareProvider: any = {...provider};\n Reflect.deleteProperty(hardwareProvider, 'status');\n const request = this._http.post(`${this._url}${this._getEndpointFromRole(Role.HARDWARE_PROVIDER)}`, hardwareProvider);\n\n return this._apiService.handleResponse(request);\n }\n\n private _getBasicAuth(password: string): HttpHeaders {\n const email: string = this._store.selectSnapshot((state: StateModel) => state.account.email);\n const login: string = btoa(`${email}:${password}`);\n let headers: HttpHeaders = new HttpHeaders();\n headers = headers.append('Authorization', `Basic ${login}`);\n return headers;\n }\n\n /* APPLICATIONS */\n\n public getApplications(): void {\n this._http.get(`${this._url}${this._endpoint}/applications`).subscribe((response: any) => {\n const applications: Application[] = response.map((application: any) => {\n return {\n ...new Application(),\n ...application\n };\n });\n this._store.dispatch(new UpdateApplications(applications));\n });\n }\n\n public replyApplication(reply: ApplicationReply): Observable {\n const request = this._http.post(`${this._url}${this._endpoint}/applications`, reply);\n\n return this._apiService.handleResponse(request);\n }\n\n public getAttachment(attachment: Attachment): void {\n this._http.get(attachment.url, {\n responseType: 'blob'\n }).subscribe((blob: Blob) => {\n saveAs(blob, `${attachment.name}`);\n });\n }\n\n /* HARDWARE LICENSE */\n\n public getHardwareLicenseToken(): void {\n if (this._role === Role.PHOTOGRAPHER || this._role === Role.EMPLOYEE) {\n const request = this._http.get(`${this._url}/license`);\n request.subscribe((response: any) => {\n this._store.dispatch(new UpdateLicenseToken(response.licenseToken || ''));\n });\n }\n }\n\n /* FUNCTIONS */\n\n private _getEndpointFromRole(role: Role): string {\n let endpoint = '';\n switch (role) {\n case Role.PHOTOGRAPHER:\n endpoint = '/photostudio/photographer';\n break;\n case Role.EMPLOYEE:\n endpoint = '/photostudio/employee';\n break;\n case Role.ADMIN:\n case Role.UIG:\n endpoint = '/uig/employee';\n break;\n case Role.HARDWARE_PROVIDER_ADMIN:\n case Role.HARDWARE_PROVIDER:\n endpoint = '/hardware/provider';\n break;\n default:\n break;\n }\n return endpoint;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { LocalizationService } from '@tallence/localization';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarService {\n\n constructor(\n private _snackBar: MatSnackBar,\n private _localizationService: LocalizationService\n ) { }\n\n public showSuccess(translationKey: string[] = ['snackbar.success']): void {\n const button = this._localizationService.getTranslation('button.ok');\n const message = this._localizationService.getTranslation(translationKey[0], translationKey.slice(1));\n this._snackBar.open(message, button, {\n horizontalPosition: 'end',\n verticalPosition: 'top',\n panelClass: 'snackbar--success',\n duration: 3000\n });\n }\n\n public showWarning(translationKey: string[] = ['snackbar.warning']): void {\n const button = this._localizationService.getTranslation('button.ok');\n const message = this._localizationService.getTranslation(translationKey[0], translationKey.slice(1));\n this._snackBar.open(message, button, {\n horizontalPosition: 'end',\n verticalPosition: 'top',\n panelClass: 'snackbar--warning',\n duration: 5000\n });\n }\n\n public showError(translationKey: string[] = ['snackbar.error']): void {\n const button = this._localizationService.getTranslation('button.ok');\n const message = this._localizationService.getTranslation(translationKey[0], translationKey.slice(1));\n this._snackBar.open(message, button, {\n horizontalPosition: 'end',\n verticalPosition: 'top',\n panelClass: 'snackbar--error',\n duration: 5000\n });\n }\n}\n","import { AccountModel } from 'src/app/models/store.model';\n\nconst name = 'Account';\nconst update = `${name} Update`;\n\nexport class ResetAccount {\n public static readonly type: string = `${name} Reset`;\n constructor() { }\n}\n\nexport class UpdateAccount {\n public static readonly type: string = `${update}`;\n constructor(public account: AccountModel) { }\n}\n\nexport class UpdateAccountProperty {\n public static readonly type: string = `${update} Property`;\n constructor(public property: string, public value: string) { }\n}\n\n","import { Injectable } from '@angular/core';\nimport { State, Action, StateContext } from '@ngxs/store';\nimport { AccountModel } from 'src/app/models/store.model';\nimport { ResetAccount, UpdateAccount, UpdateAccountProperty } from './account.actions';\n\nconst initState: AccountModel = new AccountModel();\n\n@State({\n name: 'account',\n defaults: initState,\n})\n@Injectable()\nexport class AccountState {\n\n @Action(ResetAccount)\n public resetSecurity(ctx: StateContext, { }: ResetAccount): void {\n ctx.setState(initState);\n }\n\n @Action(UpdateAccount)\n public updateAccount(ctx: StateContext, { account }: UpdateAccount): void {\n ctx.setState(account);\n }\n\n @Action(UpdateAccountProperty)\n public updateAuth(ctx: StateContext, { property, value }: UpdateAccountProperty): void {\n const state = ctx.getState();\n const patch = {};\n if (Reflect.has(state, property)) {\n Reflect.set(patch, property, value);\n ctx.patchState(patch);\n }\n }\n\n}\n","import { Application, Employee, HardwareProvider, Photographer } from 'src/app/models/administration.model';\nimport { CameraItems, CompanyItems, StudioItems, UserItems } from 'src/app/models/store.model';\n\nconst name = 'Administration';\nconst update = `${name} Update`;\nconst add = `${name} Add`;\nconst remove = `${name} Remove`;\n\nexport class ResetAdministration {\n public static readonly type: string = `${name} Reset`;\n constructor() { }\n}\n\nexport class UpdateEmployees {\n public static readonly type: string = `${update} Employees`;\n constructor(public employees: Employee[]) { }\n}\n\nexport class UpdateHardwareProviders {\n public static readonly type: string = `${update} Hardware Providers`;\n constructor(public hardwareProviders: HardwareProvider[]) { }\n}\n\nexport class UpdateHardwareProvider {\n public static readonly type: string = `${update} Hardware Provider`;\n constructor(public hardwareProvider: HardwareProvider) { }\n}\n\nexport class AddHardwareProvider {\n public static readonly type: string = `${add} Hardware Provider`;\n constructor(public hardwareProvider: HardwareProvider) { }\n}\n\nexport class RemoveHardwareProvider {\n public static readonly type: string = `${remove} Hardware Provider`;\n constructor(public hardwareProvider: HardwareProvider) { }\n}\n\nexport class UpdatePhotographer {\n public static readonly type: string = `${update} Photographer`;\n constructor(public photographer: Photographer[]) { }\n}\n\nexport class UpdateCameras {\n public static readonly type: string = `${add} Cameras`;\n constructor(public cameras: CameraItems) { }\n}\n\nexport class UpdateApplications {\n public static readonly type: string = `${update} Applications`;\n constructor(public applications: Application[]) { }\n}\n\nexport class UpdateUsers {\n public static readonly type: string = `${update} Users`;\n constructor(public users: UserItems) { }\n}\n\nexport class UpdateCompanies {\n public static readonly type: string = `${update} Companies`;\n constructor(public companies: CompanyItems) { }\n}\n\nexport class UpdateStudios {\n public static readonly type: string = `${update} Studios`;\n constructor(public studios: StudioItems) { }\n}\n","import { Injectable } from '@angular/core';\nimport { State, Action, StateContext } from '@ngxs/store';\nimport { HardwareProvider } from 'src/app/models/administration.model';\nimport { AdministrationModel } from 'src/app/models/store.model';\nimport {\n AddHardwareProvider,\n RemoveHardwareProvider,\n ResetAdministration,\n UpdateApplications,\n UpdateCameras,\n UpdateCompanies,\n UpdateEmployees,\n UpdateHardwareProvider,\n UpdateHardwareProviders,\n UpdatePhotographer,\n UpdateStudios,\n UpdateUsers\n} from './administration.actions';\n\nconst initState: AdministrationModel = {\n employees: [],\n photographer: [],\n cameras: {\n items: [],\n total: 0\n },\n hardwareProviders: [],\n applications: [],\n users: {\n items: [],\n total: 0\n },\n companies: {\n items: [],\n total: 0\n },\n studios: {\n items: [],\n total: 0\n },\n};\n\n@State({\n name: 'administration',\n defaults: initState,\n})\n@Injectable()\nexport class AdministrationState {\n\n @Action(ResetAdministration)\n public resetAdministration(ctx: StateContext, { }: ResetAdministration): void {\n ctx.setState(initState);\n }\n\n @Action(UpdateEmployees)\n public updateEmployees(ctx: StateContext, { employees }: UpdateEmployees): void {\n ctx.setState({\n ...ctx.getState(),\n employees\n });\n }\n\n @Action(UpdateHardwareProviders)\n public updateHardwareProviders(ctx: StateContext, { hardwareProviders }: UpdateHardwareProviders): void {\n ctx.setState({\n ...ctx.getState(),\n hardwareProviders\n });\n }\n\n @Action(UpdateHardwareProvider)\n public updateHardwareProvider(ctx: StateContext, { hardwareProvider }: UpdateHardwareProvider): void {\n const state = ctx.getState();\n ctx.patchState({\n hardwareProviders: state.hardwareProviders.map((e: HardwareProvider) => e.email === hardwareProvider.email ? hardwareProvider : e)\n });\n }\n\n @Action(AddHardwareProvider)\n public addHardwareProvider(ctx: StateContext, { hardwareProvider }: AddHardwareProvider): void {\n const state = ctx.getState();\n ctx.patchState({\n hardwareProviders: [...state.hardwareProviders, hardwareProvider]\n });\n }\n\n @Action(RemoveHardwareProvider)\n public removeHardwareProvider(ctx: StateContext, { hardwareProvider }: RemoveHardwareProvider): void {\n const state = ctx.getState();\n ctx.patchState({\n hardwareProviders: state.hardwareProviders.filter(e => e !== hardwareProvider)\n });\n }\n\n @Action(UpdatePhotographer)\n public updatePhotographer(ctx: StateContext, { photographer }: UpdatePhotographer): void {\n ctx.setState({\n ...ctx.getState(),\n photographer\n });\n }\n\n @Action(UpdateCameras)\n public updateCameras(ctx: StateContext, { cameras }: UpdateCameras): void {\n const state = ctx.getState();\n ctx.setState({\n ...ctx.getState(),\n cameras\n });\n }\n\n @Action(UpdateApplications)\n public updateApplications(ctx: StateContext, { applications }: UpdateApplications): void {\n ctx.setState({\n ...ctx.getState(),\n applications\n });\n }\n\n @Action(UpdateUsers)\n public updateUsers(ctx: StateContext, { users }: UpdateUsers): void {\n ctx.setState({\n ...ctx.getState(),\n users\n });\n }\n\n @Action(UpdateCompanies)\n public updateCompanies(ctx: StateContext, { companies }: UpdateCompanies): void {\n ctx.setState({\n ...ctx.getState(),\n companies\n });\n }\n\n @Action(UpdateStudios)\n public updateStudios(ctx: StateContext, { studios }: UpdateStudios): void {\n ctx.setState({\n ...ctx.getState(),\n studios\n });\n }\n\n}\n","import { Role } from 'src/app/models/security.model';\n\nconst name = 'Security';\nconst update = `${name} Update`;\n\nexport class ResetSecurity {\n public static readonly type: string = `${name} Reset`;\n constructor() { }\n}\n\nexport class UpdateAuth {\n public static readonly type: string = `${update} Auth`;\n constructor(public auth: boolean) {}\n}\n\nexport class UpdateRole {\n public static readonly type: string = `${update} Role`;\n constructor(public role: Role) {}\n}\n\nexport class UpdateSmallSidenav {\n public static readonly type: string = `${update} Small Sidenav`;\n constructor(public smallSidenav: boolean) {}\n}\n\nexport class UpdateTimeout {\n public static readonly type: string = `${update} Timeout`;\n constructor(public timeout: number) {}\n}\n\nexport class UpdateLicenseToken {\n public static readonly type: string = `${update} License Token`;\n constructor(public licenseToken: string) {}\n}\n\nexport class UpdateOtpSecret {\n public static readonly type: string = `${update} Otp Secret`;\n constructor(public otpSecret: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { State, Action, StateContext } from '@ngxs/store';\nimport { Role } from 'src/app/models/security.model';\nimport { SecurityModel } from 'src/app/models/store.model';\nimport { ResetAccount } from '../account/account.actions';\nimport { ResetAdministration } from '../administration/administration.actions';\nimport {\n ResetSecurity, UpdateAuth, UpdateLicenseToken, UpdateOtpSecret, UpdateRole, UpdateSmallSidenav, UpdateTimeout,\n} from './security.actions';\n\nconst initState: SecurityModel = {\n auth: false,\n role: Role.NONE,\n smallSidenav: false,\n timeout: 0,\n licenseToken: '',\n otpSecret: ''\n};\n\n@State({\n name: 'security',\n defaults: initState,\n})\n@Injectable()\nexport class SecurityState {\n\n @Action(ResetSecurity)\n public resetSecurity(ctx: StateContext, { }: ResetSecurity): void {\n ctx.setState(initState);\n }\n\n @Action(UpdateAuth)\n public updateAuth(ctx: StateContext, { auth }: UpdateAuth): void {\n const oldAuth: boolean = ctx.getState().auth;\n if (oldAuth && !auth) {\n ctx.dispatch([\n new ResetSecurity(),\n new ResetAccount(),\n new ResetAdministration()\n ]);\n }\n ctx.setState({\n ...ctx.getState(),\n auth\n });\n }\n\n @Action(UpdateRole)\n public updateRole(ctx: StateContext, { role }: UpdateRole): void {\n ctx.setState({\n ...ctx.getState(),\n role\n });\n }\n\n @Action(UpdateSmallSidenav)\n public updateSmallSidenav(ctx: StateContext, { smallSidenav }: UpdateSmallSidenav): void {\n ctx.setState({\n ...ctx.getState(),\n smallSidenav\n });\n }\n\n @Action(UpdateTimeout)\n public updateTimeout(ctx: StateContext, { timeout }: UpdateTimeout): void {\n ctx.setState({\n ...ctx.getState(),\n timeout\n });\n }\n\n @Action(UpdateLicenseToken)\n public updateLicenseToken(ctx: StateContext, { licenseToken }: UpdateLicenseToken): void {\n ctx.setState({\n ...ctx.getState(),\n licenseToken\n });\n }\n\n @Action(UpdateOtpSecret)\n public updateOtpSecret(ctx: StateContext, { otpSecret }: UpdateOtpSecret): void {\n ctx.setState({\n ...ctx.getState(),\n otpSecret\n });\n }\n\n}\n","export abstract class Canvas {\n\n public static checkBoundaries(cw: number, ch: number, rotation: number, x: number, y: number, scale: number = 1): boolean {\n const canvas = document.createElement('canvas');\n canvas.width = cw;\n canvas.height = ch;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.translate(canvas.width / 2, canvas.height / 2);\n ctx.rotate(rotation * (Math.PI / 180));\n ctx.scale(scale, scale);\n ctx.rect(-canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);\n ctx.fill();\n return ctx.getImageData(x, y, 1, 1).data[3] !== 0;\n }\n return false;\n }\n\n public static drawShadow(canvas: HTMLCanvasElement, overlay: HTMLElement): void {\n canvas.width = canvas.clientWidth;\n canvas.height = canvas.clientHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.clearRect(overlay.offsetLeft, overlay.offsetTop, overlay.clientWidth, overlay.clientHeight);\n }\n }\n\n public static getPreview(image: HTMLImageElement): string {\n const canvas = document.createElement('canvas');\n canvas.width = (image.width / image.height) * window.innerHeight;\n canvas.height = window.innerHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(image, 0, 0, canvas.width, canvas.height);\n return canvas.toDataURL('image/jpeg', 0.95);\n }\n return '';\n }\n\n public static createPhotoTile(image: HTMLImageElement, width: number, height: number): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n if ((canvas.width / canvas.height ) > (image.width / image.height)) {\n const newHeight = (canvas.height / canvas.width) * image.width;\n const offset = (image.height - newHeight) / 2;\n ctx.drawImage(image, 0, offset, image.width, newHeight, 0, 0, canvas.width, canvas.height);\n } else {\n const newWidth = (image.height / canvas.height) * canvas.width;\n const offset = (image.width - newWidth) / 2;\n ctx.drawImage(image, offset, 0, newWidth, image.height, 0, 0, canvas.width, canvas.height);\n }\n }\n return canvas;\n }\n\n}\n","import { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n template: ''\n})\nexport abstract class GarbageCollectorComponent implements OnDestroy {\n private _gc$: Subscription = new Subscription();\n\n constructor() {}\n\n public addSubscription(sub: Subscription): void {\n this._gc$.add(sub);\n }\n\n public ngOnDestroy(): void {\n this._gc$.unsubscribe();\n }\n}\n","import { FormGroup } from '@angular/forms';\nimport * as CryptoJS from 'crypto-js';\n\nexport abstract class Helper {\n public static mergeForm(form: FormGroup, data: any): void {\n Object.keys(form.value).forEach(key => {\n if (data[key]) {\n form.controls[key].setValue(data[key]);\n }\n });\n }\n public static fillEmpty(form: FormGroup, placeholder: string = '---'): void {\n Object.keys(form.value).forEach(key => {\n if (form.controls[key].value === '') {\n form.controls[key].setValue(placeholder);\n }\n });\n }\n public static mergeData(dst: any, src: any): void {\n Object.keys(dst).forEach(key => {\n if (src[key]) {\n dst[key] = src[key];\n }\n });\n }\n public static diffData(oldObj: any, newObj: any): any {\n const diff: any = {};\n Object.keys(oldObj).forEach(key => {\n if (Reflect.has(oldObj, key) && Reflect.has(newObj, key) && oldObj[key] !== newObj[key]) {\n Reflect.set(diff, key, newObj[key]);\n }\n });\n return diff;\n }\n\n public static blobToFile = (theBlob: Blob, fileName: string): File => {\n const b: any = theBlob;\n // A Blob() is almost a File() - it's just missing the two properties below which we will add\n b.lastModifiedDate = new Date();\n b.name = fileName;\n return b as File;\n }\n\n\n public static encrypt(secret: string, message: string): string {\n const key = CryptoJS.enc.Utf8.parse(secret);\n const iv = CryptoJS.enc.Utf8.parse(secret);\n const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(message.toString()), key,\n {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n\n return encrypted.toString();\n }\n\n public static decrypt(secret: string, message: string): string {\n const key = CryptoJS.enc.Utf8.parse(secret);\n const iv = CryptoJS.enc.Utf8.parse(secret);\n const decrypted = CryptoJS.AES.decrypt(message, key, {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n try {\n return decrypted.toString(CryptoJS.enc.Utf8);\n } catch (error) {\n return '';\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { ResponseStatus } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { AccountModel, StateModel } from 'src/app/models/store.model';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { UpdateAccount } from 'src/app/store/account/account.actions';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { Helper } from 'src/app/utilities/helper';\n\n@Component({\n selector: 'app-account-view',\n templateUrl: './account-view.component.html',\n styleUrls: ['./account-view.component.scss']\n})\nexport class AccountViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _account?: AccountModel;\n public accountForm: FormGroup = this._fb.group({});\n private _image: FormControl = this._fb.control({});\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public nationalityConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.nationality.label');\n public idCardNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.idCardNumber.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.companyLegalForm.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public websiteConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.website.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone.label');\n public phone2Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone2.label');\n public passwordConfig: InputConfig = new InputConfig(InputType.PASSWORD, 'input.passwordOld.label', '', 'input.passwordOld.hint');\n public addressConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.address.label');\n public zipConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.zip.label');\n public locationConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.location.label');\n\n public role?: Role;\n public profileLoaded = true;\n\n public newPassword = '';\n public passwordLocked = true;\n public profileLocked = true;\n public passwordError = '';\n public newPasswordInput = true;\n\n constructor(\n private _fb: FormBuilder,\n private _store: Store,\n private _dialog: MatDialog,\n private _router: Router,\n private _authService: AuthService,\n private _snackbarService: SnackbarService,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.role = this._store.selectSnapshot((state: StateModel) => state.security.role);\n\n // this.accountForm.addControl('image', this._image);\n this.accountForm.addControl('salutation', this.salutationConfig.control);\n this.accountForm.addControl('firstName', this.firstNameConfig.control);\n this.accountForm.addControl('lastName', this.lastNameConfig.control);\n this.accountForm.addControl('email', this.emailConfig.control);\n this.accountForm.addControl('phone1', this.phone1Config.control);\n\n if (this.role === Role.PHOTOGRAPHER || this.role === Role.EMPLOYEE) {\n this.phone1Config.label = 'input.phone1.label';\n this.accountForm.addControl('nationality', this.nationalityConfig.control);\n this.accountForm.addControl('phone2', this.phone2Config.control);\n }\n\n if (this.role === Role.PHOTOGRAPHER) {\n this.accountForm.addControl('idCardNumber', this.idCardNumberConfig.control);\n this.accountForm.addControl('company', this.companyConfig.control);\n this.accountForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this.accountForm.addControl('website', this.websiteConfig.control);\n }\n\n if (this.role === Role.PHOTOGRAPHER || this.role === Role.HARDWARE_PROVIDER) {\n this.accountForm.addControl('company', this.companyConfig.control);\n this.accountForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n }\n\n if (this.role === Role.HARDWARE_PROVIDER) {\n this.accountForm.addControl('address', this.addressConfig.control);\n this.accountForm.addControl('zip', this.zipConfig.control);\n this.accountForm.addControl('location', this.locationConfig.control);\n }\n\n this.addSubscription(\n this._store.select((state: StateModel) => state.account).subscribe((account: AccountModel | any) => {\n if (account) {\n Object.keys(this.accountForm.value).forEach(key => {\n this.accountForm.controls[key].setValue(account[key]);\n });\n this._image.setValue(account.image);\n this._account = {...account};\n this.profileLoaded = account.loaded;\n this.profileLocked = true;\n }\n })\n );\n this.addSubscription(\n this.passwordConfig.control.valueChanges.subscribe((value: string) => {\n this.passwordLocked = (value || '').trim() === '';\n this.passwordError = '';\n })\n );\n this.addSubscription(\n this.accountForm.valueChanges.subscribe(() => {\n this.profileLocked = this.accountForm.invalid;\n })\n );\n }\n\n public changeProfile(): void {\n const update: any = Helper.diffData(this._account || {}, this.accountForm.value);\n this.addSubscription(\n this._userService.updateAccount(update).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this._snackbarService.showSuccess();\n this._store.dispatch(new UpdateAccount({\n ...new AccountModel(),\n ...this.accountForm.value,\n loaded: true\n }));\n }\n })\n );\n }\n\n public getNewPassword(password: string): void {\n this.newPassword = password;\n this.passwordError = '';\n }\n\n public changePassword(): void {\n this.addSubscription(\n this._userService.updatePassword(this.passwordConfig.control.value, this.newPassword).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this.passwordConfig.control.reset();\n this.newPasswordInput = false;\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.SUCCESS,\n 'dialog.passwordChanged.headline',\n ['dialog.passwordChanged.description'],\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n setTimeout(() => {\n this.newPasswordInput = true;\n }, 100);\n }\n if (response === ResponseStatus.UNAUTHORIZED) {\n this.passwordError = 'account.password.error.auth';\n }\n if (response === ResponseStatus.ERROR) {\n this.passwordError = 'account.password.error.internal';\n }\n })\n );\n }\n\n public avatarChanged(image: string): void {\n this._image.setValue(image);\n }\n\n public deleteAccount(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.DELETE_ACCOUNT,\n 'dialog.deleteAccount.headline',\n ['dialog.deleteAccount.description'],\n 'button.deleteAccount'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this._authService.logout();\n this._router.navigate(['login']);\n }\n })\n );\n }\n\n public reloadProfile(): void {\n this._userService.getAccount();\n }\n\n}\n","\n
\n {{ 'account.headline' | translate }}\n \n
\n {{ 'button.reload' | translate }}\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n \n
\n\n \n
\n \n \n
\n
\n\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n {{ 'required-fields' | translate }}\n {{ 'button.applyChanges' | translate }}\n
\n
\n\n \n
\n
\n \n
\n
\n \n
\n
\n {{ passwordError | translate }}\n
\n
\n {{ 'required-fields' | translate }}\n {{ 'button.changePassword' | translate }}\n
\n
\n\n
\n {{ 'button.deleteAccount' | translate }}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ConfigService } from 'src/app/services/config.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-analytics-view',\n templateUrl: './analytics-view.component.html',\n styleUrls: ['./analytics-view.component.scss']\n})\nexport class AnalyticsViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public url?: SafeResourceUrl;\n\n constructor(\n private _configService: ConfigService,\n private _domSanitizer: DomSanitizer\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._configService.getApi().subscribe((data: any) => {\n this.url = this._domSanitizer.bypassSecurityTrustResourceUrl(data.kibana.origin + data.kibana.port + data.kibana.path);\n })\n );\n }\n\n}\n","\n
\n {{ 'analytics.headline' | translate }}\n \n \n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Application, ApplicationReply, Attachment, ResponseStatus, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { Helper } from 'src/app/utilities/helper';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { LocalizationService } from '@tallence/localization';\nimport { UserService } from 'src/app/services/register/user.service';\n\n@Component({\n selector: 'app-application-view',\n templateUrl: './application-view.component.html',\n styleUrls: ['./application-view.component.scss']\n})\nexport class ApplicationViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public application?: Application;\n public _applicationForm: FormGroup = this._fb.group({});\n public name = '';\n\n public salutationConfig: InputConfig = new InputConfig(InputType.TEXT, 'autocomplete.salutation.label');\n public roleConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.role.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public nationalityConfig: InputConfig = new InputConfig(InputType.TEXT, 'autocomplete.nationality.label');\n public idCardNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.idCardNumber.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: InputConfig = new InputConfig(InputType.TEXT, 'autocomplete.companyLegalForm.label');\n public emailConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.email.label');\n public websiteConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.website.label');\n public phone1Config: InputConfig = new InputConfig(InputType.TEXT, 'input.phone1.label');\n public phone2Config: InputConfig = new InputConfig(InputType.TEXT, 'input.phone2.label');\n public memberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.member.label');\n\n public attachmentsConfig: TableConfig = new TableConfig();\n public studiosConfig: TableConfig = new TableConfig();\n\n constructor(\n private _store: Store,\n private _route: ActivatedRoute,\n private _router: Router,\n private _fb: FormBuilder,\n private _dialog: MatDialog,\n private _localizationService: LocalizationService,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const email: string = this._route.snapshot.params.email;\n\n this._applicationForm.addControl('salutation', this.salutationConfig.control);\n this._applicationForm.addControl('role', this.roleConfig.control);\n this._applicationForm.addControl('firstName', this.firstNameConfig.control);\n this._applicationForm.addControl('lastName', this.lastNameConfig.control);\n this._applicationForm.addControl('nationality', this.nationalityConfig.control);\n this._applicationForm.addControl('email', this.emailConfig.control);\n this._applicationForm.addControl('phone1', this.phone1Config.control);\n this._applicationForm.addControl('phone2', this.phone2Config.control);\n this._applicationForm.addControl('idCardNumber', this.idCardNumberConfig.control);\n this._applicationForm.addControl('company', this.companyConfig.control);\n this._applicationForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this._applicationForm.addControl('website', this.websiteConfig.control);\n this._applicationForm.addControl('member', this.memberConfig.control);\n\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.applications).subscribe((applications: Application[]) => {\n this.application = applications.find((application: Application) => application.email === email);\n if (this.application === undefined) {\n this._router.navigate(['applications']);\n } else {\n Helper.mergeForm(this._applicationForm, {\n ...this.application,\n role: this._localizationService.getTranslation(`role.${this.application.role}`)\n });\n Helper.fillEmpty(this._applicationForm, '-/-');\n this.name = `${this.application.firstName} ${this.application.lastName}`;\n\n this.attachmentsConfig.header = ['attachment'];\n this.attachmentsConfig.items = this.application.documents.map((attachment) => {\n return {\n attachment: attachment.name,\n id: attachment.url\n };\n });\n this.attachmentsConfig.actions = [TableActionType.DOWNLAOD];\n this.attachmentsConfig.click = TableActionType.DOWNLAOD;\n this.attachmentsConfig.actionId = 'id';\n\n this.studiosConfig.items = this.application.studios;\n this.studiosConfig.header = ['studioName', 'licenseNumber', 'address', 'zip', 'location'];\n }\n })\n );\n }\n\n public onAction(action: TableAction): void {\n switch (action.name) {\n case TableActionType.DOWNLAOD:\n const tableItem = this.attachmentsConfig.items.find((item) => item.id === action.id);\n if (tableItem) {\n const attachment: Attachment = {\n name: tableItem.attachment,\n url: tableItem.id\n };\n this._userService.getAttachment(attachment);\n }\n break;\n default:\n break;\n }\n }\n\n public reject(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.REJECT_APPLICATION,\n 'dialog.rejectApplication.headline',\n ['dialog.rejectApplication.description'],\n 'button.reject'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(reason => {\n if (reason !== undefined && reason !== '') {\n this._reply(false, reason);\n }\n })\n );\n }\n\n public accept(): void {\n this._reply(true);\n }\n\n private _reply(granted: boolean, reason: string = ''): void {\n if (this.application) {\n const reply = new ApplicationReply(\n this.application.role,\n this.application.email,\n this.application.salutation,\n this.application.firstName,\n this.application.lastName,\n (this.companyConfig.control.value || '').replace('-/-', ''),\n granted,\n reason\n );\n this.addSubscription(\n this._userService.replyApplication(reply).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this.back();\n }\n })\n );\n }\n }\n\n public back(): void {\n this._router.navigate(['applications']);\n }\n\n}\n","\n
\n {{ 'application.headline' | translate: [name] }}\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n {{ 'button.back' | translate }}\n
\n {{ 'button.reject' | translate }}\n {{ 'button.accept' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { Application, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport * as moment from 'moment';\nimport { Router } from '@angular/router';\nimport { UserService } from 'src/app/services/register/user.service';\n\n@Component({\n selector: 'app-applications-view',\n templateUrl: './applications-view.component.html',\n styleUrls: ['./applications-view.component.scss']\n})\nexport class ApplicationsViewComponent extends GarbageCollectorComponent implements OnInit {\n\n constructor(\n private _store: Store,\n private _router: Router,\n private _userService: UserService\n ) {\n super();\n }\n\n public _applications: Application[] = [];\n public tableConfig: TableConfig = new TableConfig();\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.applications).subscribe((applications: Application[]) => {\n this._applications = applications.map((application: Application) => {\n return {\n ...application,\n created: moment(application.created).locale('de').format('L')\n };\n });\n this.tableConfig.header = ['created', 'role', 'firstName', 'lastName', 'email'];\n this.tableConfig.items = this._applications;\n this.tableConfig.actions = [TableActionType.VIEW_APPLICATION];\n this.tableConfig.click = TableActionType.VIEW_APPLICATION;\n this.tableConfig = {...this.tableConfig};\n })\n );\n this._userService.getApplications();\n }\n\n public configChanged(config: TableConfig): void {\n console.log(config);\n }\n\n public onAction(action: TableAction): void {\n switch (action.name) {\n case TableActionType.VIEW_APPLICATION:\n this._router.navigate(['application', action.id]);\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n {{ 'applications.headline' | translate }}\n 0\">\n \n \n \n {{ 'applications.empty' | translate }}\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { switchMap, takeWhile } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { ResponseStatus } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { PhotoState, PhotoUpload } from 'src/app/models/file-upload.model';\nimport { EditorService } from 'src/app/services/editor/editor.service';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-archive-view',\n templateUrl: './archive-view.component.html',\n styleUrls: ['./archive-view.component.scss']\n})\nexport class ArchiveViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public locked = true;\n public archiveStates: PhotoState[] = [PhotoState.ARCHIVED];\n public available = false;\n\n constructor(\n private _photosService: PhotosService,\n private _editorService: EditorService,\n private _dialog: MatDialog,\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._photosService.getArchive().subscribe((photos: PhotoUpload[]) => {\n this.available = photos.length > 0;\n })\n );\n }\n\n public unlock(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.PASSWORD,\n 'dialog.password.headline',\n ['dialog.password.description'],\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n takeWhile(password => password),\n switchMap((password: string) => {\n return this._editorService.loadArchive(password);\n })\n ).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this.locked = false;\n }\n })\n );\n }\n\n}\n","
\n
\n
\n {{ 'archive.headline' | translate }}\n
\n {{ 'button.unlock' | translate }}\n
\n
\n \n\n

{{ 'archive.locked' | translate }}

\n

{{ 'archive.description' | translate }}

\n

{{ 'archive.empty' | translate }}

\n\n \n\n
\n
\n\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Store } from '@ngxs/store';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Camera, PaginatorConfig, ResponseStatus, SearchQuery, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { CameraItems, StateModel } from 'src/app/models/store.model';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport * as moment from 'moment';\nimport { map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { HardwareService } from 'src/app/services/register/hardware.service';\n\n@Component({\n selector: 'app-cameras-view',\n templateUrl: './cameras-view.component.html',\n styleUrls: ['./cameras-view.component.scss']\n})\nexport class CamerasViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _cameras: Camera[] = [];\n private _searchQuery: SearchQuery = new SearchQuery();\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchCamera.label');\n public tableConfig: TableConfig = new TableConfig();\n\n constructor(\n private _store: Store,\n private _dialog: MatDialog,\n private _hardwareService: HardwareService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.tableConfig.header = ['cameraManufacturer', 'cameraModel', 'cameraId', 'licenseBeginDate', 'licenseEndDate'];\n this.tableConfig.actions = [TableActionType.PUBLIC_KEY, TableActionType.LICENSE, TableActionType.DELETE];\n this.tableConfig.actionId = 'cameraId';\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.cameras).subscribe(\n (cameras: CameraItems) =>\n {\n if (cameras) {\n this._cameras = cameras.items.map((camera: Camera) => {\n return {\n ...camera,\n licenseBeginDate: moment(camera.licenseBeginDate).locale('de').format('L'),\n licenseEndDate: moment(camera.licenseEndDate).locale('de').format('L'),\n };\n });\n this.tableConfig.paginator.total = cameras.total;\n this.tableConfig.paginator.size = this._searchQuery.pageLimit;\n this.tableConfig.items = this._cameras;\n this.tableConfig = {...this.tableConfig};\n }\n })\n );\n this._hardwareService.getCameras(this._searchQuery);\n }\n\n public addCamera(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_CAMERA,\n 'dialog.addCamera.headline',\n ['dialog.addCamera.description'],\n 'button.add'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n this.addSubscription(\n dialogRef.afterClosed().subscribe((success) => {\n if (success === true) {\n this.searchConfig.control.reset();\n this._searchQuery = new SearchQuery();\n this.tableConfig.paginator = new PaginatorConfig();\n this.tableConfig.sort = {active: '', direction: ''};\n this._hardwareService.getCameras(this._searchQuery);\n }\n })\n );\n }\n\n private _showPublicKey(key: string): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.cameraInfo.headline',\n ['dialog.cameraInfo.description', atob(key)],\n 'button.ok',\n ''\n );\n dialogData.values = {\n publicKey: true\n };\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n private _changeLicense(camera: Camera): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.UPDATE_CAMERA,\n 'dialog.updateCamera.headline',\n ['dialog.updateCamera.description', `${camera.cameraManufacturer} ${camera.cameraModel}`],\n 'button.applyChanges'\n );\n dialogData.values = camera;\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((success) => {\n if (success) {\n this._hardwareService.getCameras(this._searchQuery);\n }\n })\n );\n }\n\n private _removeCamera(camera: Camera): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.removeCamera.headline',\n ['dialog.removeCamera.description', `${camera.cameraManufacturer} ${camera.cameraModel}`]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap(result => {\n if (result === true) {\n return this._hardwareService.removeCamera(camera).pipe(\n map((response: ResponseStatus) => {\n return response === ResponseStatus.SUCCESS;\n })\n );\n }\n return of(result);\n })\n ).subscribe((success) => {\n if (success === false) {\n this._removeFailed(camera);\n } else {\n this._hardwareService.getCameras(this._searchQuery);\n }\n })\n );\n }\n\n private _removeFailed(camera: Camera): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.removeCamera.headline',\n ['dialog.removeCamera.failed', `${camera.cameraManufacturer} ${camera.cameraModel}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n public configChanged(config: TableConfig): void {\n this._searchQuery.offset = (config.paginator.current - 1) * config.paginator.size;\n this._searchQuery.sort = config.sort;\n this.tableConfig = config;\n this._hardwareService.getCameras(this._searchQuery);\n }\n\n public search(value: string): void {\n this._searchQuery = new SearchQuery();\n this._searchQuery.text = value;\n this.tableConfig.paginator = new PaginatorConfig();\n this.tableConfig.sort = {active: '', direction: ''};\n this._hardwareService.getCameras(this._searchQuery);\n }\n\n public onAction(action: TableAction): void {\n const selectedCamera = this._cameras.find(camera => camera.cameraId === action.id);\n switch (action.name) {\n case TableActionType.LICENSE:\n if (selectedCamera) {\n this._changeLicense(selectedCamera);\n }\n break;\n case TableActionType.PUBLIC_KEY:\n const publicKey = selectedCamera?.publicKey || '';\n this._showPublicKey(publicKey);\n break;\n case TableActionType.DELETE:\n if (selectedCamera) {\n this._removeCamera(selectedCamera);\n }\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ 'cameras.headline' | translate }}\n
\n {{ 'button.addCamera' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator=\"true\"\n sortable=\"true\"\n [config]=\"tableConfig\"\n (changed)=\"configChanged($event)\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'cameras.empty' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Company, PaginatorConfig, SearchQuery, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { CompanyItems, StateModel } from 'src/app/models/store.model';\nimport { PhotostudioService } from 'src/app/services/register/photostudio.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-companies-view',\n templateUrl: './companies-view.component.html',\n styleUrls: ['./companies-view.component.scss']\n})\nexport class CompaniesViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _companies: Company[] = [];\n private _searchQuery: SearchQuery = new SearchQuery([]);\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchStudio.label');\n public tableConfig: TableConfig = new TableConfig();\n public isHardwareProvider = false;\n\n constructor(\n private _store: Store,\n private _router: Router,\n private _dialog: MatDialog,\n private _photostudioService: PhotostudioService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.isHardwareProvider = this._store.selectSnapshot((state: StateModel) => state.security.role) === Role.HARDWARE_PROVIDER;\n this.tableConfig.header = ['company', 'companyLegalForm'];\n this.tableConfig.actionId = 'email';\n if (!this.isHardwareProvider) {\n this.tableConfig.click = TableActionType.STUDIOS;\n } else {\n this.tableConfig.actions.push(TableActionType.DELETE);\n }\n this.tableConfig.actions.push(TableActionType.STUDIOS);\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.companies).subscribe(\n (companies: CompanyItems) =>\n {\n this._companies = companies.items;\n this.tableConfig.items = this._companies;\n this.tableConfig.paginator.size = this._searchQuery.pageLimit;\n this.tableConfig.paginator.total = companies.total;\n this.tableConfig = {...this.tableConfig};\n })\n );\n this._photostudioService.getCompanies(this._searchQuery);\n }\n\n public configChanged(config: TableConfig): void {\n this._searchQuery.offset = (config.paginator.current - 1) * config.paginator.size;\n this._searchQuery.sort = config.sort;\n this.tableConfig = config;\n this._photostudioService.getCompanies(this._searchQuery);\n }\n\n public search(value: string): void {\n this._searchQuery = new SearchQuery();\n this._searchQuery.text = value;\n this.tableConfig.paginator = new PaginatorConfig();\n this.tableConfig.sort = {active: '', direction: ''};\n this._photostudioService.getCompanies(this._searchQuery);\n }\n\n public searchAddCompany(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.SEARCH_COMPANY,\n 'dialog.searchAddCompany.headline',\n ['dialog.searchAddCompany.description'],\n 'button.searchCompanies'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((added: boolean | undefined) => {\n if (added === true) {\n this._photostudioService.getCompanies(this._searchQuery);\n }\n })\n );\n }\n\n private _removeCompany(company: Company): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.removeCompany.headline',\n ['dialog.removeCompany.description', `${company.company} ${company.companyLegalForm}`]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap(result => {\n if (result === true) {\n return this._photostudioService.removeCompany(company);\n }\n return of(result);\n })\n ).subscribe((success) => {\n if (success === false) {\n this._removeFailed(company);\n } else {\n this._photostudioService.getCompanies(this._searchQuery);\n }\n })\n );\n }\n\n private _removeFailed(company: Company): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.removeCompany.headline',\n ['dialog.removeCompany.failed', `${company.company} ${company.companyLegalForm}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n public onAction(action: TableAction): void {\n const company: Company | undefined = this._companies.find((comp: Company) => comp.email === action.id);\n\n switch (action.name) {\n case TableActionType.STUDIOS:\n if (company) {\n this._router.navigate(['company', company.email]);\n }\n break;\n case TableActionType.DELETE:\n if (company) {\n this._removeCompany(company);\n }\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ 'companies.headline' | translate }}\n
\n {{ 'button.searchAddCompany' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator=\"true\"\n sortable=\"true\"\n [config]=\"tableConfig\"\n (changed)=\"configChanged($event)\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'companies.empty' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Company, ResponseStatus, Studio, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { AccountModel, StateModel, StudioItems } from 'src/app/models/store.model';\nimport { PhotostudioService } from 'src/app/services/register/photostudio.service';\nimport { SnackbarService } from 'src/app/services/snackbar.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-company-view',\n templateUrl: './company-view.component.html',\n styleUrls: ['./company-view.component.scss']\n})\nexport class CompanyViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchStudio.label');\n public tableConfig: TableConfig = new TableConfig();\n private _studios: Studio[] = [];\n public email = '';\n public company = '';\n public isPhographer = false;\n public showSearch = false;\n\n constructor(\n private _router: Router,\n private _route: ActivatedRoute,\n private _store: Store,\n private _dialog: MatDialog,\n private _snackbarService: SnackbarService,\n private _photostudioService: PhotostudioService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const role: Role = this._store.selectSnapshot((state: StateModel) => state.security.role);\n this.isPhographer = role === Role.PHOTOGRAPHER;\n this.email = this._route.snapshot.params.email;\n if (this.isPhographer) {\n this.email = this._store.selectSnapshot((state: StateModel) => state.account.email);\n this.addSubscription(\n this._store.select((state: StateModel) => state.account).subscribe((account: AccountModel) => {\n this.company = `${account.company} ${account.companyLegalForm}`.trim();\n })\n );\n } else {\n const company: Company = this._store.selectSnapshot((state: StateModel) => state.administration.companies.items)\n .find(c => c.email === this.email) || new Company();\n this.company = `${company.company} ${company.companyLegalForm}`.trim();\n }\n\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.studios).subscribe((studios: StudioItems) => {\n this.tableConfig.header = ['studioName', 'address', 'zip', 'location'];\n if (this.isPhographer) {\n this.tableConfig.actions = [];\n if (studios.items.length > 1) {\n this.tableConfig.actions.push(TableActionType.DELETE);\n }\n this.tableConfig.actions.push(TableActionType.UPDATE);\n }\n this.tableConfig.actionId = 'studioName';\n this._studios = studios.items;\n this.tableConfig.items = this._studios;\n this.tableConfig.paginator.current = 1;\n this.tableConfig.paginator.total = this._studios.length;\n this.tableConfig = {...this.tableConfig};\n this.showSearch = this._studios.length > this.tableConfig.paginator.size;\n })\n );\n\n this._photostudioService.getStudios(this.email);\n }\n\n public addStudio(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_STUDIO,\n 'dialog.addStudio.headline',\n ['dialog.addStudio.description'],\n 'button.add'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((studio: Studio | undefined) => {\n if (studio !== undefined) {\n this._studios = [...this._studios, studio];\n this._updateData();\n }\n })\n );\n }\n\n public search(value: string): void {\n this.tableConfig.items = this._studios.filter((studio: Studio) => {\n return Object.values(studio).find(studioValue => `${studioValue}`.toLowerCase().includes(value.toLowerCase())) !== undefined;\n });\n this.tableConfig.paginator.current = 1;\n this.tableConfig.paginator.total = this.tableConfig.items.length;\n this.tableConfig.paginator = {...this.tableConfig.paginator};\n this.tableConfig = {...this.tableConfig};\n }\n\n public back(): void {\n this._router.navigate(['companies']);\n }\n\n private _deleteStudio(studio: Studio): void {\n const index = this._studios.indexOf(studio);\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.removeStudio.headline',\n ['dialog.removeStudio.description', `${studio.studioName}`]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n this._studios = this._studios.filter((item, i) => i !== index);\n this._updateData();\n }\n })\n );\n }\n\n private _updateStudio(studio: Studio): void {\n const index = this._studios.indexOf(studio);\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.UPDATE_STUDIO,\n 'dialog.updateStudio.headline',\n ['dialog.updateStudio.description'],\n 'button.applyChanges'\n );\n dialogData.values = studio;\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((s: Studio | undefined) => {\n if (s !== undefined) {\n this._studios = this._studios.map((item, i) => {\n return index === i ? {...s} : {...item};\n });\n this._updateData();\n }\n })\n );\n }\n\n private _updateData(): void {\n this._photostudioService.updateStudios(this._studios).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n this._photostudioService.getStudios(this.email);\n } else {\n this._studios = [...this.tableConfig.items];\n this._snackbarService.showError(['company.error']);\n }\n });\n }\n\n public onAction(action: TableAction): void {\n const studio: Studio | undefined = this._studios.find((s: Studio) => s.studioName === action.id);\n\n switch (action.name) {\n case TableActionType.DELETE:\n if (studio) {\n this._deleteStudio(studio);\n }\n break;\n case TableActionType.UPDATE:\n if (studio) {\n this._updateStudio(studio);\n }\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ company }}\n {{ 'company.headline' | translate }}\n
\n {{ 'button.addStudio' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator\n sortable\n [config]=\"tableConfig\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'company.empty' | translate }}\n
\n
\n {{ 'button.back' | translate }}\n
\n
\n
\n
\n","import { StepperSelectionEvent } from '@angular/cdk/stepper';\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { Location } from '@angular/common';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatStepper } from '@angular/material/stepper';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { PhotoState, PhotoUpload } from 'src/app/models/file-upload.model';\nimport { ComponentCanDeactivate } from 'src/app/routing/editor.guard';\nimport { EditorService } from 'src/app/services/editor/editor.service';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-editor-view',\n templateUrl: './editor-view.component.html',\n styleUrls: ['./editor-view.component.scss']\n})\nexport class EditorViewComponent extends GarbageCollectorComponent implements OnInit, AfterViewInit, ComponentCanDeactivate {\n\n @ViewChild('stepper')\n public stepper!: MatStepper;\n\n public uploadControl: FormControl = new FormControl(false, Validators.requiredTrue);\n public processingControl: FormControl = new FormControl(false, Validators.requiredTrue);\n public storageControl: FormControl = new FormControl(false, Validators.requiredTrue);\n public handoutControl: FormControl = new FormControl(false, Validators.requiredTrue);\n private _editedCount = 0;\n private _approvededCount = 0;\n\n public processingStates: PhotoState[] = [PhotoState.EDITABLE, PhotoState.EDITED, PhotoState.REJECTED];\n public storageStates: PhotoState[] = [PhotoState.EDITED, PhotoState.REJECTED];\n public handoutStates: PhotoState[] = [PhotoState.APPROVED];\n public processingMessage = '';\n public maximized = false;\n\n constructor(\n private _photosService: PhotosService,\n private _editorService: EditorService,\n private _dialog: MatDialog,\n private _router: Router,\n private _route: ActivatedRoute,\n private _location: Location\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._photosService.getPhotos().subscribe((photos: PhotoUpload[]) => {\n this.uploadControl.setValue(\n photos.filter(photo => photo.state !== PhotoState.IMPORTED && photo.state !== PhotoState.INVALID).length > 0\n );\n const editedCount = photos.filter(photo => photo.state === PhotoState.EDITED).length;\n const approvedCount = photos.filter(photo => photo.state === PhotoState.APPROVED).length;\n\n if (this._editedCount < editedCount) {\n this.processingControl.setValue(true);\n } else if (this._approvededCount < approvedCount) {\n this.storageControl.setValue(true);\n } else if (this._approvededCount < approvedCount) {\n this.storageControl.setValue(true);\n this.handoutControl.setValue(true);\n }\n this._editedCount = editedCount;\n this._approvededCount = approvedCount;\n this.maximized = photos.length > 0;\n })\n );\n this.addSubscription(\n this._photosService.nextStepTrigger.subscribe(() => {\n this.stepper.next();\n })\n );\n this.addSubscription(\n this._editorService.processingMessage.subscribe((message) => {\n this.processingMessage = message;\n })\n );\n }\n\n public ngAfterViewInit(): void {\n const id = this._route.snapshot.params.id;\n if (id) {\n this._location.replaceState('editor');\n setTimeout(() => {\n this.stepper.selectedIndex = 1;\n }, 1);\n }\n }\n\n public stepChanged(step: StepperSelectionEvent): void {\n if (step.selectedIndex === 1) {\n this._setEditState();\n }\n if (step.previouslySelectedIndex === 1) {\n this._restoreState();\n }\n if (step.selectedIndex === 0 && this.uploadControl.valid) {\n this._confirmLeave(step.previouslySelectedIndex);\n }\n }\n\n private _restoreState(): void {\n const photos: PhotoUpload[] = this._photosService.getPhotosSnapshot();\n photos.forEach((photo: PhotoUpload) => {\n if (photo.state === PhotoState.EDITABLE && photo.savedState !== PhotoState.NONE) {\n this._photosService.updatePhoto({\n ...photo,\n state: photo.savedState,\n savedState: PhotoState.NONE\n });\n }\n });\n }\n\n private _setEditState(): void {\n const photos: PhotoUpload[] = this._photosService.getPhotosSnapshot();\n photos.forEach((photo: PhotoUpload) => {\n if (photo.state === PhotoState.EDITED || photo.state === PhotoState.REJECTED) {\n this._photosService.updatePhoto({\n ...photo,\n state: PhotoState.EDITABLE,\n savedState: photo.state,\n });\n }\n if (photo.state === PhotoState.UPLOADED) {\n this._photosService.updatePhoto({\n ...photo,\n state: PhotoState.EDITABLE\n });\n }\n });\n }\n\n public toArchive(): void {\n this._router.navigate(['archive']);\n }\n\n private _clearController(): void {\n this.uploadControl.reset();\n this.processingControl.reset();\n this.storageControl.reset();\n this.handoutControl.reset();\n }\n\n private _confirmLeave(previous: number): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.discardProcess.headline',\n ['dialog.discardProcess.description'],\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((response: boolean) => {\n if (response === true) {\n this._clearController();\n this._photosService.clearState();\n } else {\n this.stepper.selectedIndex = previous;\n }\n })\n );\n }\n\n public finishProcess(): void {\n this._clearController();\n this._photosService.clearState();\n this.stepper.selectedIndex = 0;\n }\n\n public canDeactivate(): Observable {\n if (this.uploadControl.invalid) {\n return of(true);\n }\n // return false;\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.discardProcess.headline',\n ['dialog.discardProcess.description'],\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n return dialogRef.afterClosed().pipe(\n map((response: any) => {\n if (response === true) {\n this._photosService.clearState();\n return true;\n }\n return false;\n })\n );\n }\n\n}\n","
\n
\n
\n {{ 'editor.headline' | translate }}\n
\n {{ 'button.archive' | translate }}\n
\n
\n \n \n\n \n \n {{ 'editor.step.upload.headline' | translate }}\n\n \n\n
\n
\n {{ 'button.next' | translate }}\n
\n
\n\n \n \n {{ 'editor.step.processing.headline' | translate }}\n\n \n\n \n\n \n \n {{ 'editor.step.storage.headline' | translate }}\n

{{ 'editor.step.storage.description' | translate }}

\n\n \n\n
\n\n \n \n {{ 'editor.step.handout.headline' | translate }}\n

{{ 'editor.step.handout.description' | translate }}

\n\n \n\n
\n {{ 'button.done' | translate }}\n
\n
\n\n
\n\n
\n
\n\n
\n\n
\n \n
{{ processingMessage | translate }}
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Employee, TableAction, TableActionType, TableConfig, UserStatus } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { PhotostudioService } from 'src/app/services/register/photostudio.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-employees-view',\n templateUrl: './employees-view.component.html',\n styleUrls: ['./employees-view.component.scss']\n})\nexport class EmployeesViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchEmployee.label');\n private _employees: Employee[] = [];\n public tableConfig: TableConfig = new TableConfig();\n public showLegend = false;\n\n constructor(\n private _store: Store,\n private _dialog: MatDialog,\n private _router: Router,\n private _photostudioService: PhotostudioService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.employees).subscribe((employees: Employee[]) => {\n this._employees = employees.map((employee: Employee) => {\n return {\n ...employee,\n status: employee.status === UserStatus.DEACTIVATED ? UserStatus.BLACKLISTED : employee.status\n };\n });\n this.tableConfig.header = ['firstName', 'lastName', 'email'];\n this.tableConfig.items = this._employees;\n this.tableConfig.actions = [TableActionType.DELETE];\n this.tableConfig = {...this.tableConfig};\n this.showLegend = this.tableConfig.items.find(employee => employee.status === UserStatus.BLACKLISTED) !== undefined;\n })\n );\n this._photostudioService.getEmployees();\n }\n\n public inviteEmployee(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_EMPLOYEE,\n 'dialog.inviteEmployee.headline',\n ['dialog.inviteEmployee.description'],\n 'button.invite'\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n private _removeEmployee(employee: Employee): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.removeEmployee.headline',\n ['dialog.removeEmployee.description', employee.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap(result => {\n if (result === true) {\n return this._photostudioService.removeEmployee(employee);\n }\n return of(result);\n })\n ).subscribe((success) => {\n if (success === false) {\n this._removeFailed(employee);\n } else {\n this._photostudioService.getEmployees();\n }\n })\n );\n }\n\n private _removeFailed(employee: Employee): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.removeEmployee.headline',\n ['dialog.removeEmployee.failed', `${employee.firstName} ${employee.lastName}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n public configChanged(config: TableConfig): void {\n console.log(config);\n }\n\n public onAction(action: TableAction): void {\n const employee: Employee | undefined = this._employees.find((e: Employee) => e.email === action.id);\n switch (action.name) {\n case TableActionType.DELETE:\n if (employee) {\n this._removeEmployee(employee);\n }\n break;\n case TableActionType.EDIT:\n this._router.navigate(['employee', action.id]);\n break;\n\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ 'employees.headline' | translate }}\n
\n {{ 'button.inviteEmployee' | translate }}\n
\n
\n 0\">\n
\n \n
\n \n
\n \n {{ 'employees.empty' | translate }}\n \n
\n {{ 'employees.blacklisted' | translate }}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-error-view',\n templateUrl: './error-view.component.html',\n styleUrls: ['./error-view.component.scss']\n})\nexport class ErrorViewComponent implements OnInit {\n\n public errorText = '';\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ) { }\n\n public ngOnInit(): void {\n const code: string = this._route.snapshot.params.code;\n this.errorText = `error.${code}`;\n }\n\n public goBack(): void {\n this._router.navigate(['overview']);\n }\n\n}\n","
\n \n
\n \n
\n \n
\n
{{ errorText | translate }}
\n
\n {{ 'button.back' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Handout } from 'src/app/models/administration.model';\n\n@Component({\n selector: 'app-handout-view',\n templateUrl: './handout-view.component.html',\n styleUrls: ['./handout-view.component.scss']\n})\nexport class HandoutViewComponent implements OnInit {\n\n public handout: Handout = new Handout();\n public qrCode = '';\n public licenseToken = '';\n public preview = '';\n public url = '';\n\n constructor(\n private _router: Router\n ) { }\n\n public ngOnInit(): void {\n const local = localStorage.getItem('handout');\n if (local) {\n sessionStorage.setItem('handout', local);\n localStorage.removeItem('handout');\n }\n const session = sessionStorage.getItem('handout');\n if (session) {\n try {\n this.handout = JSON.parse(session);\n this.qrCode = this.getQrCode();\n this.preview = this.handout.preview;\n this.url = this.handout.url + '?imageType=register';\n } catch (error) {\n this._router.navigate(['error', '404']);\n }\n } else {\n this._router.navigate(['error', '404']);\n }\n }\n getQrCode(): string {\n if (this.handout) {\n const qr = {\n 'url': this.handout.url,\n 'private-key': this.handout.secretKey,\n 'biometric-passed': Object.values(this.handout.validationResult).every((v) => v !== false),\n 'date': this.handout.date,\n 'expiry date': this.handout.expiryDate,\n 'additional info': ''\n };\n return JSON.stringify(qr);\n }\n return '';\n }\n}\n","
\n
\n
\n
\n {{ 'handout.headline' | translate }}\n
\n
\n
{{ handout.studio }}
\n
{{ handout.date }}
\n
\n
\n
\n {{ 'handout.description' | translate:[handout.expiryDate] }}\n
\n
\n \"\"\n
\n \n
\n {{ handout.secretKey }}\n
\n
\n
\n
\n
\n \"Ihr\n
\n {{ url }}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HardwareProvider, User } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Helper } from 'src/app/utilities/helper';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { Role } from 'src/app/models/security.model';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { CheckboxConfig } from 'src/app/models/checkbox.model';\nimport { Store } from '@ngxs/store';\nimport { StateModel } from 'src/app/models/store.model';\n\n@Component({\n selector: 'app-hardware-provider-view',\n templateUrl: './hardware-provider-view.component.html',\n styleUrls: ['./hardware-provider-view.component.scss']\n})\nexport class HardwareProviderViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _hardwareProvider: HardwareProvider = new HardwareProvider();\n public updateError = '';\n public isAdmin = false;\n\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public passwordConfig: InputConfig = new InputConfig(InputType.PASSWORD, 'input.password.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone1.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.companyLegalForm.label');\n public addressConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.address.label');\n public zipConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.zip.label');\n public locationConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.location.label');\n public adminConfig: CheckboxConfig = new CheckboxConfig('checkbox.admin.label');\n\n public providerForm: FormGroup = this._fb.group({});\n public locked = true;\n private _isHardwareProviderAdmin = false;\n\n constructor(\n private _route: ActivatedRoute,\n private _fb: FormBuilder,\n private _router: Router,\n private _userService: UserService,\n private _store: Store\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const email: string = this._route.snapshot.params.email;\n const hardwareProviderUser: User = new User();\n hardwareProviderUser.role = Role.HARDWARE_PROVIDER;\n hardwareProviderUser.email = email;\n\n this.providerForm.addControl('salutation', this.salutationConfig.control);\n this.providerForm.addControl('firstName', this.firstNameConfig.control);\n this.providerForm.addControl('lastName', this.lastNameConfig.control);\n this.providerForm.addControl('email', this.emailConfig.control);\n this.providerForm.addControl('phone1', this.phone1Config.control);\n this.providerForm.addControl('company', this.companyConfig.control);\n this.providerForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this.providerForm.addControl('address', this.addressConfig.control);\n this.providerForm.addControl('zip', this.zipConfig.control);\n this.providerForm.addControl('location', this.locationConfig.control);\n\n this.addSubscription(\n this._userService.getUser(hardwareProviderUser).subscribe((hardwareProvider: any) => {\n if (hardwareProvider) {\n Helper.mergeForm(this.providerForm, hardwareProvider);\n this._hardwareProvider = {\n ...new HardwareProvider(),\n ...this.providerForm.value\n };\n\n const hardware = this._store.selectSnapshot((state: StateModel) => state.administration.users)\n .items.find((user: User) => user.email === email);\n if (hardware) {\n this.isAdmin = this._store.selectSnapshot((state: StateModel) => state.security.role) === Role.HARDWARE_PROVIDER_ADMIN;\n this._isHardwareProviderAdmin = hardware.role === Role.HARDWARE_PROVIDER_ADMIN\n }\n this.adminConfig.control.setValue(this._isHardwareProviderAdmin);\n\n } else {\n this.back();\n }\n })\n );\n\n this.addSubscription(\n this.providerForm.statusChanges.subscribe(() => {\n this.locked = this.providerForm.invalid;\n })\n );\n }\n\n public update(): void {\n const update = Helper.diffData(this._hardwareProvider, this.providerForm.value);\n const user: User = new User();\n user.role = Role.HARDWARE_PROVIDER;\n Helper.mergeData(user, this._hardwareProvider);\n this.addSubscription(\n this._userService.updateUser(update, user).subscribe(success => {\n if (!success) {\n this.updateError = 'hardware-provider.error.update';\n }\n })\n );\n if (this.isAdmin && (this._isHardwareProviderAdmin !== this.adminConfig.control.value)) {\n const newRole: Role = this.adminConfig.control.value ? Role.HARDWARE_PROVIDER_ADMIN : Role.HARDWARE_PROVIDER;\n this.addSubscription(\n this._userService.updateHardwareProviderRole(newRole, this._hardwareProvider.email).subscribe(success => {\n if (!success) {\n this.adminConfig.control.setValue(!this.adminConfig.control.value);\n }\n })\n );\n }\n }\n\n public back(): void {\n this._router.navigate(['hardware-providers']);\n }\n\n}\n","\n
\n {{ 'hardware-provider.headline' | translate }}\n \n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{ updateError | translate }}\n
\n {{ 'required-fields' | translate }}\n {{ 'button.back' | translate }}\n {{ 'button.applyChanges' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { SearchQuery, TableAction, TableActionType, TableConfig, User } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel, UserItems } from 'src/app/models/store.model';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-hardware-providers-view',\n templateUrl: './hardware-providers-view.component.html',\n styleUrls: ['./hardware-providers-view.component.scss']\n})\nexport class HardwareProvidersViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _hardwareProviders: User[] = [];\n private _searchQuery: SearchQuery = new SearchQuery([Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN]);\n public tableConfig: TableConfig = new TableConfig();\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchProvider.label');\n private _email: string = '';\n\n constructor(\n private _store: Store,\n private _dialog: MatDialog,\n private _router: Router,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.tableConfig.header = ['role', 'firstName', 'lastName', 'email', 'status'];\n this.tableConfig.actions = [TableActionType.DEACTIVATE, TableActionType.REACTIVATE, TableActionType.EDIT];\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.users).subscribe((users: UserItems) => {\n this._hardwareProviders = users.items;\n this.tableConfig.items = this._hardwareProviders;\n this.tableConfig.paginator.total = users.total;\n this.tableConfig.paginator.size = this._searchQuery.pageLimit;\n this.tableConfig = {...this.tableConfig};\n })\n );\n const role: Role = this._store.selectSnapshot((state: StateModel) => state.security.role);\n if (role === Role.HARDWARE_PROVIDER_ADMIN) {\n this._email = this._store.selectSnapshot((state: StateModel) => state.account.email);\n this._searchQuery.invitor = this._email;\n }\n this._userService.getUsers(this._searchQuery);\n }\n\n public addProvider(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_HARDWARE_PROVIDER,\n 'dialog.addHardwareProvider.headline',\n ['dialog.addHardwareProvider.description'],\n 'button.add'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n this.addSubscription(\n dialogRef.afterClosed().subscribe(success => {\n if (success === true) {\n this._userService.getUsers(this._searchQuery);\n }\n })\n );\n }\n\n private _deactivateProvider(provider: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.deactivateHardwareProvider.headline',\n ['dialog.deactivateHardwareProvider.description', `${provider.firstName} ${provider.lastName}`]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap(result => {\n if (result === true) {\n return this._userService.deleteUser(provider);\n }\n return of(result);\n })\n ).subscribe(success => {\n if (success === false) {\n this._removeFailed(provider);\n } else {\n this._userService.getUsers(this._searchQuery);\n }\n })\n );\n }\n\n private _removeFailed(provider: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.deactivateHardwareProvider.headline',\n ['dialog.deactivateHardwareProvider.failed', `${provider.firstName} ${provider.lastName}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n private _reactivateProvider(provider: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.reactivateHardwareProvider.headline',\n ['dialog.reactivateHardwareProvider.description', `${provider.firstName} ${provider.lastName}`]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n return this._userService.reactivateUser(provider.email, this._searchQuery);\n }\n return of(result);\n })\n ).subscribe()\n );\n }\n\n public configChanged(config: TableConfig): void {\n this.searchConfig.control.reset();\n this._searchQuery.offset = (config.paginator.current - 1) * config.paginator.size;\n this._searchQuery.sort = config.sort;\n this.tableConfig = config;\n this._userService.getUsers(this._searchQuery);\n }\n\n public search(value: string): void {\n this._searchQuery = new SearchQuery([Role.HARDWARE_PROVIDER, Role.HARDWARE_PROVIDER_ADMIN]);\n this._searchQuery.text = value;\n this._searchQuery.invitor = this._email;\n this._userService.getUsers(this._searchQuery);\n }\n\n public onAction(action: TableAction): void {\n const hardwareProvider: User | undefined = this._hardwareProviders.find((provider: User) => provider.email === action.id);\n\n switch (action.name) {\n case TableActionType.DEACTIVATE:\n if (hardwareProvider) {\n this._deactivateProvider(hardwareProvider);\n }\n break;\n case TableActionType.EDIT:\n this._router.navigate(['hardware-provider', action.id]);\n break;\n case TableActionType.REACTIVATE:\n if (hardwareProvider) {\n this._reactivateProvider(hardwareProvider);\n }\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ 'hardware-providers.headline' | translate }}\n
\n {{ 'button.addHardwareProvider' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator=\"true\"\n sortable=\"true\"\n [config]=\"tableConfig\"\n (changed)=\"configChanged($event)\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'hardware-providers.empty' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CookieService } from 'ngx-cookie-service';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { ResponseStatus } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { PhotosService } from 'src/app/services/photos.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { Helper } from 'src/app/utilities/helper';\n\n@Component({\n selector: 'app-login-view',\n templateUrl: './login-view.component.html',\n styleUrls: ['./login-view.component.scss']\n})\nexport class LoginViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public locked = false;\n public loginForm: FormGroup = this._fb.group({});\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public passwordConfig: InputConfig = new InputConfig(InputType.PASSWORD, 'input.password.label');\n public secret = '';\n private tries = 0;\n\n constructor(\n private _fb: FormBuilder,\n private _authService: AuthService,\n private _router: Router,\n private _photosService: PhotosService,\n private _dialog: MatDialog,\n private _cookieService: CookieService,\n private _route: ActivatedRoute\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.loginForm.addControl('email', this.emailConfig.control);\n this.loginForm.addControl('password', this.passwordConfig.control);\n this.addSubscription(\n this.loginForm.valueChanges.subscribe(() => {\n this.locked = this.loginForm.invalid;\n })\n );\n this._photosService.clear();\n if (this._cookieService.check('secret')) {\n this.secret = this._cookieService.get('secret');\n this.enterPin();\n }\n if (this._route.snapshot.queryParams.joined !== undefined) {\n this._successfulJoined();\n }\n }\n\n public login(): void {\n this.loginForm.updateValueAndValidity();\n if (this.loginForm.valid) {\n this._doLogin();\n }\n }\n\n private _doLogin(): void {\n this.addSubscription(\n this._authService.login(this.loginForm.value.email, this.loginForm.value.password).subscribe((success: boolean) => {\n if (success) {\n this.loginForm.disable();\n this._showAuthenticator();\n } else {\n this.loginForm.setErrors({invalid: true});\n }\n })\n );\n }\n\n private _showAuthenticator(error: string = ''): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CODE,\n 'dialog.authenticate.headline',\n ['dialog.authenticate.description2'],\n );\n dialogData.values = { error };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n disableClose: true\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((code: string) => {\n if (code) {\n return this._authService.getAuthentication(code);\n } else {\n return of(ResponseStatus.NONE);\n }\n })\n ).subscribe((response: ResponseStatus) => {\n if (response !== ResponseStatus.NONE) {\n if (response === ResponseStatus.SUCCESS) {\n this._cookieService.delete('secret');\n this._router.navigate(['overview']);\n } else {\n this._showAuthenticator('dialog.authenticate.failed');\n }\n } else {\n this.loginForm.enable();\n }\n })\n );\n }\n\n public toReset(): void {\n this._router.navigate(['password', 'forgotten']);\n }\n\n public register(path: string = ''): void {\n if (path) {\n this._router.navigate(['register', path]);\n } else {\n this._router.navigate(['register']);\n }\n }\n\n public enterPin(error: string = ''): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CODE,\n 'dialog.enterPin.headline',\n ['dialog.enterPin.description'],\n );\n dialogData.values = {\n codeSize: 4,\n error,\n icon: 'lock_open'\n };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((code: string) => {\n const token = Helper.decrypt(code, this.secret);\n if (code) {\n if (token !== '') {\n sessionStorage.setItem('refresh_token', token);\n this.addSubscription(\n this._authService.refreshToken().subscribe(success => {\n this._authService.restoreAuth();\n this._router.navigate(['overview']);\n })\n );\n } else {\n this.tries++;\n if (this.tries >= 3) {\n this._cookieService.delete('secret');\n this.secret = '';\n this._tooManyTries();\n } else {\n this.enterPin('dialog.enterPin.failed');\n }\n }\n }\n })\n );\n }\n\n private _tooManyTries(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.enterPin.headline',\n ['dialog.enterPin.tooManyTries']\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n private _successfulJoined(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.SUCCESS,\n 'dialog.joined.headline',\n ['dialog.joined.description']\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n}\n","
\n \n
\n \n {{ 'login.headline' | translate }}\n {{ 'login.note' | translate }}\n \n \n \n {{ 'login.error.invalid' | translate }}\n
\n {{ 'button.passwordForgotten' | translate }}\n
\n {{ 'button.login' | translate }}\n
\n
\n \n
\n {{ 'button.returnPin' | translate }}\n
\n
\n \n
\n

{{ 'login.register' | translate }}

\n
\n {{ 'button.newApplicationPhotographer' | translate }}\n {{ 'button.newApplicationEmployee' | translate }}\n
\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { Application } from 'src/app/models/administration.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-overview-view',\n templateUrl: './overview-view.component.html',\n styleUrls: ['./overview-view.component.scss']\n})\nexport class OverviewViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public cards: any[] = [];\n private _cards: any[] = [\n {\n label: 'profile',\n icon: 'account-edit',\n route: 'account',\n roles: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER, Role.PHOTOGRAPHER, Role.EMPLOYEE]\n },\n {\n label: 'employees',\n icon: 'group',\n route: 'employees',\n roles: [Role.PHOTOGRAPHER]\n },\n {\n label: 'cameras',\n icon: 'photo_camera',\n route: 'cameras',\n roles: [Role.HARDWARE_PROVIDER]\n },\n {\n label: 'users',\n icon: 'groups',\n route: 'users',\n roles: [Role.ADMIN, Role.UIG]\n },\n {\n label: 'applications',\n icon: 'text-box-check-outline',\n route: 'applications',\n roles: [Role.ADMIN, Role.UIG]\n },\n {\n label: 'uig-employees',\n icon: 'card-account-details',\n route: 'uig-employees',\n roles: [Role.ADMIN]\n },\n {\n label: 'hardware-providers',\n icon: 'camera-account',\n route: 'hardware-providers',\n roles: [Role.ADMIN]\n },\n {\n label: 'photos',\n icon: 'add_photo_alternate',\n route: 'editor',\n roles: [Role.PHOTOGRAPHER, Role.EMPLOYEE]\n },\n {\n label: 'archive',\n icon: 'photo_album',\n route: 'archive',\n roles: [Role.PHOTOGRAPHER, Role.EMPLOYEE]\n },\n {\n label: 'companies',\n icon: 'home_work',\n route: 'companies',\n roles: [Role.ADMIN, Role.UIG, Role.HARDWARE_PROVIDER]\n },\n {\n label: 'studios',\n icon: 'holiday_village',\n route: 'company',\n roles: [Role.PHOTOGRAPHER]\n },\n {\n label: 'analytics',\n icon: 'analytics',\n route: 'analytics',\n roles: [Role.ADMIN, Role.UIG]\n }\n ];\n public applicationCount = 0;\n\n constructor(\n private _router: Router,\n private _store: Store,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.addSubscription(\n this._store.select((state: StateModel) => state.security.role).subscribe((role: Role) => {\n this.cards = this._cards.filter(card => {\n return card.roles.includes(role);\n });\n if (role === Role.ADMIN || role === Role.UIG) {\n this._userService.getApplications();\n }\n })\n );\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.applications).subscribe((applications: Application[]) => {\n this.applicationCount = applications.length;\n })\n );\n }\n\n public goTo(route: string): void {\n this._router.navigate([route]);\n }\n\n}\n","
\n \n
\n \n \n
0\" class=\"overview__applications\" (click)=\"goTo('applications')\">\n notifications\n {{ 'overview.applications.one' | translate }}\n 1\" >{{ 'overview.applications.many' | translate: [applicationCount] }}\n
\n
\n
\n \n
{{'overview.card.' + card.label + '.headline' | translate }}
\n
{{'overview.card.' + card.label + '.description' | translate }}
\n
\n
\n
\n
\n
\n
\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { ResponseStatus } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { NewPassword } from 'src/app/models/security.model';\nimport { StateModel } from 'src/app/models/store.model';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-password-view',\n templateUrl: './password-view.component.html',\n styleUrls: ['./password-view.component.scss']\n})\nexport class PasswordViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public newPassword: NewPassword = {\n jwToken: '',\n password: ''\n };\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public invalidEmail = true;\n public view = '';\n\n public passwordError = '';\n\n constructor(\n private _route: ActivatedRoute,\n private _authService: AuthService,\n private _router: Router,\n private _store: Store,\n private _dialog: MatDialog,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n if (this._router.url.includes('forgotten')) {\n this.addSubscription(\n this.emailConfig.control.valueChanges.subscribe(() => {\n this.invalidEmail = this.emailConfig.control.invalid;\n })\n );\n this.view = 'forgotten';\n } else {\n const token: string = this._route.snapshot.params.token;\n if (token && this._authService.checkToken(token)) {\n this.newPassword.jwToken = token;\n this._authService.getDataFromToken(token);\n } else {\n this._router.navigate(['error', '498']);\n }\n this.view = 'new';\n }\n }\n\n public getNewPassword(password: string): void {\n this.newPassword.password = password;\n this.passwordError = '';\n }\n\n public setPassword(): void {\n if (this._router.url.includes('reset')) {\n this._setNewPassword();\n } else {\n this.addSubscription(\n this._userService.setPassword(this.newPassword).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n const secret = this._store.selectSnapshot((state: StateModel) => state.security.otpSecret);\n const authName = 'Fotografenregister';\n const otpauth = `otpauth://totp/${authName}?secret=${secret}`;\n this._showAuthenticator(otpauth);\n } else {\n this.passwordError = 'password.new.error';\n }\n })\n );\n }\n }\n\n private _showAuthenticator(secret: string): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CODE,\n 'dialog.authenticate.headline',\n ['dialog.authenticate.description1'],\n 'button.done'\n );\n dialogData.values = { secret };\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n disableClose: true\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(() => {\n if (location.host.includes('frontend.imagesign.link')) {\n this._showFinalInformation();\n } else {\n this._doLogin();\n }\n })\n );\n }\n\n private _showFinalInformation(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.SUCCESS,\n 'dialog.finalInformation.headline',\n ['dialog.finalInformation.description']\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n disableClose: true\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(() => {\n location.href = 'https://www.e-passfoto.de/';\n })\n );\n }\n\n private _doLogin(): void {\n this._router.navigate(['login']);\n\n // Autologin currently disabled\n\n /* const email: string = this._store.selectSnapshot((state: StateModel) => state.account.email);\n this.addSubscription(\n this._authService.login(email, this.newPassword.password).subscribe((success: boolean) => {\n if (success) {\n this._router.navigate(['overview']);\n } else {\n this._router.navigate(['login']);\n }\n })\n ); */\n }\n\n private _setNewPassword(): void {\n this.addSubscription(\n this._userService.setNewPassword(this.newPassword).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.passwordResetted.headline',\n ['dialog.passwordResetted.description'],\n 'button.ok',\n ''\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n dialogRef.afterClosed().subscribe(() => {\n this._router.navigate(['overview']);\n });\n } else {\n this.passwordError = 'password.forgotten.failed';\n }\n })\n );\n }\n\n public requestNewPassword(): void {\n this.addSubscription(\n this._userService.resetPassword(this.emailConfig.control.value).subscribe((response: ResponseStatus) => {\n if (response === ResponseStatus.SUCCESS) {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.passwordReset.headline',\n ['dialog.passwordReset.description'],\n 'button.ok',\n ''\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData\n });\n dialogRef.afterClosed().subscribe(() => {\n this._router.navigate(['overview']);\n });\n } else {\n this.passwordError = 'password.forgotten.error';\n }\n })\n );\n }\n\n}\n","
\n \n
\n \n
\n {{ 'password.new.headline' | translate }}\n \n \n {{ passwordError | translate }}\n
\n {{ 'required-fields' | translate }}\n {{ 'button.confirm' | translate }}\n
\n
\n
\n
\n {{ 'password.forgotten.headline' | translate }}\n \n {{ 'password.forgotten.description' | translate }}\n \n {{ passwordError | translate }}\n
\n {{ 'required-fields' | translate }}\n {{ 'button.resetPassword' | translate }}\n
\n
\n
\n
\n
\n
\n","import { HttpEvent, HttpEventType } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { LocalizationService } from '@tallence/localization';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { Studio, TableAction, TableActionType, TableConfig } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { CheckboxConfig } from 'src/app/models/checkbox.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { FileUploadConfig } from 'src/app/models/file-upload.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { PhotostudioService } from 'src/app/services/register/photostudio.service';\nimport { UpdateRole } from 'src/app/store/security/security.actions';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport * as moment from 'moment';\n\ninterface Step {\n valid: boolean;\n enabled: boolean;\n}\ninterface Steps {\n register: Step;\n studios: Step;\n files: Step;\n confirm: Step;\n}\n\n@Component({\n selector: 'app-register-view',\n templateUrl: './register-view.component.html',\n styleUrls: ['./register-view.component.scss']\n})\nexport class RegisterViewComponent extends GarbageCollectorComponent implements OnInit {\n\n public registerForm: FormGroup = this._fb.group({});\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public birthDateConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.birthDate.label');\n // public nationalityConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.nationality.label');\n // public idCardNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.idCardNumber.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.companyLegalForm.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public websiteConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.website.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone1.label');\n public phone2Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone2.label');\n\n public studiosConfig: TableConfig = new TableConfig();\n public studios: Studio[] = [];\n public studiosControl: FormControl = new FormControl(this.studios);\n\n public fileConfig: FileUploadConfig = new FileUploadConfig('fileUpload.label');\n public memberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.member.label');\n\n public confirmForm: FormGroup = this._fb.group({});\n public dsgvoConfirmConfig: CheckboxConfig = new CheckboxConfig('checkbox.dsgvo.label');\n public uigConfirmConfig: CheckboxConfig = new CheckboxConfig('checkbox.uig.label');\n public bmiConfirmConfig: CheckboxConfig = new CheckboxConfig('checkbox.bmi.label');\n public legalNoteConfirmConfig: CheckboxConfig = new CheckboxConfig('checkbox.legalNote.label');\n public maxDate?: string;\n public role: Role = Role.NONE;\n public headline = '';\n public description = '';\n public registerError = '';\n public photographerEmail = '';\n public uploadProgress = 0;\n\n public steps: Steps = {\n register: {\n valid: false,\n enabled: true\n },\n studios: {\n valid: false,\n enabled: true\n },\n files: {\n valid: false,\n enabled: true\n },\n confirm: {\n valid: false,\n enabled: true\n }\n };\n\n constructor(\n private _fb: FormBuilder,\n private _localizationService: LocalizationService,\n private _route: ActivatedRoute,\n private _dialog: MatDialog,\n private _store: Store,\n private _photostudioService: PhotostudioService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.role = this._route.snapshot.data.role;\n this._store.dispatch(new UpdateRole(this.role));\n this.headline = this._localizationService.getTranslation(`register.step.${this.role.toLowerCase()}.headline`);\n this.description = this._localizationService.getTranslation(`register.step.${this.role.toLowerCase()}.description`);\n switch (this.role) {\n case Role.PHOTOGRAPHER:\n this.studiosConfig.header = ['studioName', 'licenseNumber', 'address', 'zip', 'location'];\n this.studiosConfig.actions = [TableActionType.DELETE];\n this.studiosConfig.actionId = 'id';\n break;\n case Role.EMPLOYEE:\n this.steps.studios.enabled = false;\n this.steps.studios.valid = true;\n let token: string = this._route.snapshot.params.token;\n if (token) {\n token = decodeURIComponent(token);\n token = atob(token);\n const invite = token.split(':');\n this.photographerEmail = invite[0] || '';\n this.emailConfig.control.setValue(invite[1] || '');\n this.description = this._localizationService.getTranslation(`register.step.${this.role.toLowerCase()}.description`, [`${invite[2]} ${invite[3]}`]);\n } else {\n this.headline = this._localizationService.getTranslation(`register.step.employee.headline`);\n this.description = this._localizationService.getTranslation(`register.step.employee.description`);\n }\n break;\n default:\n break;\n }\n\n this._setupRegisterForm();\n this._setupConfirmForm();\n }\n\n private _setupRegisterForm(): void {\n this.registerForm.addControl('salutation', this.salutationConfig.control);\n this.registerForm.addControl('firstName', this.firstNameConfig.control);\n this.registerForm.addControl('lastName', this.lastNameConfig.control);\n this.registerForm.addControl('birthDate', this.birthDateConfig.control);\n // this.registerForm.addControl('nationality', this.nationalityConfig.control);\n this.registerForm.addControl('email', this.emailConfig.control);\n this.registerForm.addControl('phone1', this.phone1Config.control);\n this.registerForm.addControl('phone2', this.phone2Config.control);\n this.maxDate = moment().subtract(15, 'years').format('YYYY-MM-DD');\n\n if (this.role === Role.PHOTOGRAPHER) {\n // this.registerForm.addControl('idCardNumber', this.idCardNumberConfig.control);\n this.registerForm.addControl('company', this.companyConfig.control);\n this.registerForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this.registerForm.addControl('website', this.websiteConfig.control);\n this.registerForm.addControl('member', this.memberConfig.control);\n this.studiosControl.setValidators(Validators.required);\n }\n\n this.addSubscription(\n this.registerForm.statusChanges.subscribe(() => {\n this.steps.register.valid = this.registerForm.valid;\n this.registerError = '';\n })\n );\n }\n\n private _setupConfirmForm(): void {\n this.confirmForm.addControl('dsvgo', this.dsgvoConfirmConfig.control);\n this.confirmForm.addControl('uig', this.uigConfirmConfig.control);\n this.confirmForm.addControl('bmi', this.bmiConfirmConfig.control);\n this.confirmForm.addControl('legalNote', this.legalNoteConfirmConfig.control);\n this.addSubscription(\n this.confirmForm.statusChanges.subscribe(() => {\n if (this.steps.register.valid) {\n const values: boolean[] = Object.values(this.confirmForm.value);\n this.steps.confirm.valid = values.filter(((v: boolean) => !v)).length === 0 && this.steps.register.valid;\n this.registerError = '';\n }\n })\n );\n }\n\n public addStudio(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_STUDIO,\n 'dialog.addStudio.headline',\n ['dialog.addStudio.description'],\n 'button.add'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe((studio: Studio | undefined) => {\n if (studio !== undefined) {\n this.studios = [...this.studios, studio];\n this.studiosControl.setValue(this.studios);\n this.studiosConfig.items = [...this.studiosConfig.items, {\n ...studio,\n id: +new Date()\n }];\n this.studiosConfig = {...this.studiosConfig};\n }\n })\n );\n }\n\n public onAction(action: TableAction): void {\n switch (action.name) {\n case TableActionType.DELETE:\n this.studiosConfig.items = this.studiosConfig.items.filter(studio => studio.id !== action.id);\n this.studios = this.studiosConfig.items.map(studio => {\n return {\n studioName: studio.studioName,\n licenseNumber: studio.licenseNumber,\n address: studio.address,\n zip: studio.zip,\n location: studio.location\n };\n });\n this.studiosControl.setValue(this.studios);\n this.studiosConfig = {...this.studiosConfig};\n break;\n default:\n break;\n }\n }\n\n public register(): void {\n this.steps.confirm.valid = false;\n const formData = new FormData();\n const salutation =\n this.registerForm.value.salutation === this._localizationService.getTranslation('autocomplete.salutation.options.2') ?\n '' : this.registerForm.value.salutation;\n const data = {\n ...this.registerForm.value,\n salutation,\n };\n if (this.role === Role.PHOTOGRAPHER) {\n this.studios.forEach(s => {\n const studio = {\n name: s.studioName,\n licenseNumber: s.licenseNumber,\n address: s.address,\n zip: s.zip,\n location: s.location\n };\n formData.append('studios', JSON.stringify(studio));\n });\n }\n if (this.role === Role.EMPLOYEE && this.photographerEmail !== '') {\n formData.append('photographerEmail', this.photographerEmail);\n }\n Object.keys(data).forEach(key => {\n formData.append(key, data[key]);\n });\n this.fileConfig.control.value.forEach((file: File) => {\n formData.append('upload', file);\n });\n this.addSubscription(\n this._photostudioService.sendApplication(formData).pipe(\n catchError((error: any) => {\n this.uploadProgress = 0;\n this.steps.confirm.valid = true;\n switch (error.status) {\n case 400:\n this.registerError = this._localizationService.getTranslation('register.error.400');\n break;\n case 409:\n this.registerError = this._localizationService.getTranslation('register.error.409', [this.emailConfig.control.value]);\n break;\n default:\n this.registerError = this._localizationService.getTranslation('register.error.unknown');\n break;\n }\n return throwError(error);\n })\n ).subscribe((event: HttpEvent) => {\n if (event.type === HttpEventType.UploadProgress) {\n this.uploadProgress = Math.round((event.loaded || 1) / (event.total || 1) * 100);\n }\n if (event.type === HttpEventType.Response) {\n this.uploadProgress = 0;\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.SUCCESS,\n 'dialog.registerDone.headline',\n ['dialog.registerDone.description']\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n disableClose: true\n });\n this.addSubscription(\n dialogRef.afterClosed().subscribe(() => {\n location.href = 'https://www.e-passfoto.de/';\n })\n );\n }\n })\n );\n }\n\n}\n","
\n \n
\n \n {{ 'register.headline' | translate }}\n \n \n\n \n \n {{ headline }}\n

{{ description }}

\n\n
\n
\n \n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n\n
\n {{ 'required-fields' | translate }}\n {{ 'button.next' | translate }}\n
\n
\n\n \n \n {{ 'register.step.studio.headline' | translate }}\n

{{ 'register.step.studio.description' | translate }}

\n\n \n\n
\n {{ 'button.addStudio' | translate }}\n
\n {{ 'button.back' | translate }}\n {{ 'button.next' | translate }}\n
\n
\n\n \n \n {{ 'register.step.upload.headline' | translate }}\n\n \n

{{ 'register.step.upload.description.member' | translate }}

\n
\n \n
\n
\n
\n\n

{{ 'register.step.upload.description.file' | translate }}

\n

{{ 'register.step.upload.description.exception' | translate }}

\n

{{ 'register.step.upload.description.employee' | translate }}

\n\n \n
\n {{ 'button.back' | translate }}\n {{ 'button.next' | translate }}\n
\n
\n\n \n \n {{ 'register.step.confirm.headline' | translate }}\n

{{ 'register.step.confirm.description' | translate }}

\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
{{ 'register.step.confirm.explanation' | translate }}
\n \n \n \n \n \n
\n {{ registerError }}\n
\n
\n {{ 'required-fields' | translate }}\n 0\" (action)=\"stepper.previous()\">{{ 'button.back' | translate }}\n {{ 'button.register' | translate }}\n 0\" [disabled]=\"true\">{{ 'button.sendProgress' | translate: [uploadProgress] }}\n
\n
\n
\n\n
\n\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { UigEmployee, User } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Helper } from 'src/app/utilities/helper';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { CheckboxConfig } from 'src/app/models/checkbox.model';\nimport { Role } from 'src/app/models/security.model';\nimport { Store } from '@ngxs/store';\nimport { StateModel } from 'src/app/models/store.model';\nimport { UserService } from 'src/app/services/register/user.service';\n\n@Component({\n selector: 'app-uig-employee-view',\n templateUrl: './uig-employee-view.component.html',\n styleUrls: ['./uig-employee-view.component.scss']\n})\nexport class UigEmployeeViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _uigEmployee: UigEmployee = new UigEmployee();\n public updateError = '';\n public isAdmin = false;\n\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone1.label');\n public adminConfig: CheckboxConfig = new CheckboxConfig('checkbox.admin.label');\n public uigForm: FormGroup = this._fb.group({});\n public locked = true;\n\n constructor(\n private _route: ActivatedRoute,\n private _fb: FormBuilder,\n private _router: Router,\n private _store: Store,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const email: string = this._route.snapshot.params.email;\n const uigUser: User = new User();\n uigUser.role = Role.UIG;\n uigUser.email = email;\n\n this.uigForm.addControl('salutation', this.salutationConfig.control);\n this.uigForm.addControl('firstName', this.firstNameConfig.control);\n this.uigForm.addControl('lastName', this.lastNameConfig.control);\n this.uigForm.addControl('email', this.emailConfig.control);\n this.uigForm.addControl('phone1', this.phone1Config.control);\n\n this.addSubscription(\n this._userService.getUser(uigUser).subscribe((uigEmployee: any) => {\n if (uigEmployee) {\n this._uigEmployee = {...uigEmployee};\n Helper.mergeForm(this.uigForm, uigEmployee);\n } else {\n this.back();\n }\n })\n );\n\n const uig = this._store.selectSnapshot((state: StateModel) => state.administration.users)\n .items.find((user: User) => user.email === email);\n if (uig) {\n this.isAdmin = this._store.selectSnapshot((state: StateModel) => state.security.role) === Role.ADMIN;\n this.adminConfig.control.setValue(uig.role === Role.ADMIN);\n this._uigEmployee.role = uig.role;\n }\n\n this.addSubscription(\n this.uigForm.statusChanges.subscribe(() => {\n this.locked = this.uigForm.invalid;\n })\n );\n }\n\n public update(): void {\n const update = Helper.diffData(this._uigEmployee, this.uigForm.value);\n const user: User = new User();\n Helper.mergeData(user, this._uigEmployee);\n user.role = Role.UIG;\n this.addSubscription(\n this._userService.updateUser(update, user).subscribe(success => {\n if (!success) {\n this.updateError = 'uig-employee.error.update';\n }\n })\n );\n if (this.isAdmin) {\n const newRole: Role = this.adminConfig.control.value ? Role.ADMIN : Role.UIG;\n if (newRole !== this._uigEmployee.role) {\n this.addSubscription(\n this._userService.updateRole(newRole, this._uigEmployee.email).subscribe(success => {\n if (!success) {\n this.adminConfig.control.setValue(!this.adminConfig.control.value);\n }\n })\n );\n }\n }\n }\n\n public back(): void {\n this._router.navigate(['uig-employees']);\n }\n\n}\n","\n
\n {{ 'uig-employee.headline' | translate }}\n \n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {{ updateError | translate }}\n
\n {{ 'required-fields' | translate }}\n {{ 'button.back' | translate }}\n {{ 'button.applyChanges' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { SearchQuery, TableAction, TableActionType, TableConfig, User } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel, UserItems } from 'src/app/models/store.model';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-uig-employees-view',\n templateUrl: './uig-employees-view.component.html',\n styleUrls: ['./uig-employees-view.component.scss']\n})\nexport class UigEmployeesViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _uigEmployees: User[] = [];\n private _searchQuery: SearchQuery = new SearchQuery([Role.ADMIN, Role.UIG]);\n public tableConfig: TableConfig = new TableConfig();\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchEmployee.label');\n\n constructor(\n private _store: Store,\n private _dialog: MatDialog,\n private _router: Router,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.tableConfig.header = ['role', 'firstName', 'lastName', 'email', 'status'];\n this.tableConfig.actions = [TableActionType.DEACTIVATE, TableActionType.REACTIVATE, TableActionType.EDIT];\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.users).subscribe((users: UserItems) => {\n this._uigEmployees = users.items;\n this.tableConfig.items = this._uigEmployees;\n this.tableConfig.paginator.total = users.total;\n this.tableConfig.paginator.size = this._searchQuery.pageLimit;\n this.tableConfig = {...this.tableConfig};\n })\n );\n this._userService.getUsers(this._searchQuery);\n }\n\n public addEmployee(): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.ADD_UIG_EMPLOYEE,\n 'dialog.addUigEmployee.headline',\n ['dialog.addUigEmployee.description'],\n 'button.add'\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().subscribe(result => {\n if (result === true) {\n const params = new SearchQuery([Role.ADMIN, Role.UIG]);\n this._userService.getUsers(params);\n }\n })\n );\n }\n\n private _deactivateUser(employee: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.deactivateEmployee.headline',\n ['dialog.deactivateEmployee.description', employee.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result: any) => {\n if (result === true) {\n return this._userService.deleteUser(employee);\n }\n return of(result);\n })\n ).subscribe(success => {\n if (success === false) {\n this._removeFailed(employee);\n } else {\n const params = new SearchQuery([Role.ADMIN, Role.UIG]);\n this._userService.getUsers(params);\n }\n })\n );\n }\n\n private _reactivateEmployee(employee: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.reactivateEmployee.headline',\n ['dialog.reactivateEmployee.description', employee.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap(result => {\n if (result === true) {\n const params = new SearchQuery([Role.ADMIN, Role.UIG]);\n return this._userService.reactivateUser(employee.email, params);\n }\n return of(result);\n })\n ).subscribe()\n );\n }\n\n private _removeFailed(employee: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.removeEmployee.headline',\n ['dialog.removeEmployee.failed', `${employee.firstName} ${employee.lastName}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n public configChanged(config: TableConfig): void {\n this.searchConfig.control.reset();\n this._searchQuery.offset = (config.paginator.current - 1) * config.paginator.size;\n this._searchQuery.sort = config.sort;\n this.tableConfig = config;\n this._userService.getUsers(this._searchQuery);\n }\n\n public search(value: string): void {\n this._searchQuery = new SearchQuery([Role.ADMIN, Role.UIG]);\n this._searchQuery.text = value;\n this._userService.getUsers(this._searchQuery);\n }\n\n public onAction(action: TableAction): void {\n const uigEmployee: User | undefined = this._uigEmployees.find((employee: User) => employee.email === action.id);\n switch (action.name) {\n case TableActionType.DEACTIVATE:\n if (uigEmployee) {\n this._deactivateUser(uigEmployee);\n }\n break;\n case TableActionType.EDIT:\n this._router.navigate(['uig-employee', action.id]);\n break;\n case TableActionType.REACTIVATE:\n if (uigEmployee) {\n this._reactivateEmployee(uigEmployee);\n }\n break;\n default:\n break;\n }\n }\n\n}\n","\n
\n
\n {{ 'uig-employees.headline' | translate }}\n
\n {{ 'button.addUigEmployee' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator=\"true\"\n sortable=\"true\"\n [config]=\"tableConfig\"\n (changed)=\"configChanged($event)\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'uig-employees.empty' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { User } from 'src/app/models/administration.model';\nimport { AutocompleteConfig } from 'src/app/models/autocomplete.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel, UserItems } from 'src/app/models/store.model';\nimport { Helper } from 'src/app/utilities/helper';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\nimport { switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { UserService } from 'src/app/services/register/user.service';\n\n@Component({\n selector: 'app-user-view',\n templateUrl: './user-view.component.html',\n styleUrls: ['./user-view.component.scss']\n})\nexport class UserViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _user: any = {};\n public updateError = '';\n\n public salutationConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.salutation.label');\n public firstNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.firstName.label');\n public lastNameConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.lastName.label');\n public nationalityConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.nationality.label');\n public idCardNumberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.idCardNumber.label');\n public companyConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.company.label');\n public companyLegalFormConfig: AutocompleteConfig = new AutocompleteConfig('autocomplete.companyLegalForm.label');\n public emailConfig: InputConfig = new InputConfig(InputType.EMAIL, 'input.email.label');\n public websiteConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.website.label');\n public phone1Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone1.label');\n public phone2Config: InputConfig = new InputConfig(InputType.PHONE, 'input.phone2.label');\n public memberConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.member.label');\n\n public userForm: FormGroup = this._fb.group({});\n public locked = true;\n public role?: Role;\n\n constructor(\n private _route: ActivatedRoute,\n private _fb: FormBuilder,\n private _store: Store,\n private _router: Router,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n const email: string = this._route.snapshot.params.email;\n\n this.userForm.addControl('salutation', this.salutationConfig.control);\n this.userForm.addControl('firstName', this.firstNameConfig.control);\n this.userForm.addControl('lastName', this.lastNameConfig.control);\n this.userForm.addControl('nationality', this.nationalityConfig.control);\n this.userForm.addControl('email', this.emailConfig.control);\n this.userForm.addControl('phone1', this.phone1Config.control);\n this.userForm.addControl('phone2', this.phone2Config.control);\n\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.users).pipe(\n switchMap((users: UserItems) => {\n const user: User | undefined = users.items.find(u => u.email === email);\n if (user === undefined) {\n this.back();\n } else {\n this.role = user.role;\n if (this.role === Role.PHOTOGRAPHER) {\n this.userForm.addControl('idCardNumber', this.idCardNumberConfig.control);\n this.userForm.addControl('company', this.companyConfig.control);\n this.userForm.addControl('companyLegalForm', this.companyLegalFormConfig.control);\n this.userForm.addControl('website', this.websiteConfig.control);\n this.userForm.addControl('member', this.memberConfig.control);\n }\n return this._userService.getUser(user);\n }\n return of(null);\n })\n ).subscribe((user: any) => {\n if (user) {\n Helper.mergeForm(this.userForm, user);\n this._user = {\n ...this.userForm.value,\n role: this.role\n };\n } else {\n this.back();\n }\n })\n );\n this.addSubscription(\n this.userForm.statusChanges.subscribe(() => {\n this.locked = this.userForm.invalid;\n })\n );\n }\n\n public update(): void {\n const update = Helper.diffData(this._user, this.userForm.value);\n const user: User = new User();\n Helper.mergeData(user, this._user);\n this.addSubscription(\n this._userService.updateUser(update, user).subscribe(success => {\n if (!success) {\n this.updateError = 'user.error.update';\n }\n })\n );\n }\n\n public back(): void {\n this._router.navigate(['users']);\n }\n\n}\n","\n
\n {{ 'user.headline' | translate }}\n \n
\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n {{ updateError | translate }}\n
\n {{ 'required-fields' | translate }}\n {{ 'button.back' | translate }}\n {{ 'button.applyChanges' | translate }}\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { Store } from '@ngxs/store';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogComponent } from 'src/app/components/dialog/dialog.component';\nimport { PaginatorConfig, SearchQuery, TableAction, TableActionType, TableConfig, User } from 'src/app/models/administration.model';\nimport { DialogConfig, DialogType } from 'src/app/models/dialog.model';\nimport { InputConfig, InputType } from 'src/app/models/input.model';\nimport { Role } from 'src/app/models/security.model';\nimport { StateModel, UserItems } from 'src/app/models/store.model';\nimport { UserService } from 'src/app/services/register/user.service';\nimport { GarbageCollectorComponent } from 'src/app/utilities/garbage-collector';\n\n@Component({\n selector: 'app-users-view',\n templateUrl: './users-view.component.html',\n styleUrls: ['./users-view.component.scss']\n})\nexport class UsersViewComponent extends GarbageCollectorComponent implements OnInit {\n\n private _users: User[] = [];\n private _searchQuery: SearchQuery = new SearchQuery([Role.PHOTOGRAPHER, Role.EMPLOYEE]);\n public tableConfig: TableConfig = new TableConfig();\n public searchConfig: InputConfig = new InputConfig(InputType.TEXT, 'input.searchUser.label');\n\n constructor(\n private _store: Store,\n private _router: Router,\n private _dialog: MatDialog,\n private _userService: UserService\n ) {\n super();\n }\n\n public ngOnInit(): void {\n this.tableConfig.header = ['firstName', 'lastName', 'email', 'role', 'status'];\n this.tableConfig.actions = [TableActionType.DELETE, TableActionType.DEACTIVATE, TableActionType.REACTIVATE, TableActionType.EDIT];\n this.addSubscription(\n this._store.select((state: StateModel) => state.administration.users).subscribe((users: UserItems) => {\n this._users = users.items;\n this.tableConfig.paginator.total = users.total;\n this.tableConfig.paginator.size = this._searchQuery.pageLimit;\n this.tableConfig.items = this._users;\n this.tableConfig = {...this.tableConfig};\n })\n );\n this._userService.getUsers(this._searchQuery);\n }\n\n private _deactivateUser(user: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.deactivateUser.headline',\n ['dialog.deactivateUser.description', user.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n return this._userService.deactivateUser(user);\n }\n return of(result);\n })\n ).subscribe(success => {\n if (success === false) {\n this._removeFailed(user);\n } else {\n this._userService.getUsers(this._searchQuery);\n }\n })\n );\n }\n\n private _deleteUser(user: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.removeUser.headline',\n ['dialog.removeUser.description', user.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n return this._userService.deleteUser(user);\n }\n return of(result);\n })\n ).subscribe(success => {\n if (success === false) {\n this._removeFailed(user);\n } else {\n this._userService.getUsers(this._searchQuery);\n }\n })\n );\n }\n\n private _removeFailed(provider: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.FAIL,\n 'dialog.removeUser.headline',\n ['dialog.removeUser.failed', `${provider.firstName} ${provider.lastName}`]\n );\n this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n }\n\n private _reactivateUser(user: User): void {\n const dialogData: DialogConfig = new DialogConfig(\n DialogType.CONFIRM,\n 'dialog.reactivateUser.headline',\n ['dialog.reactivateUser.description', user.email]\n );\n const dialogRef = this._dialog.open(DialogComponent, {\n ...dialogData.layout(),\n data: dialogData,\n });\n\n this.addSubscription(\n dialogRef.afterClosed().pipe(\n switchMap((result) => {\n if (result === true) {\n return this._userService.reactivateUser(user.email, this._searchQuery);\n }\n return of(result);\n })\n ).subscribe()\n );\n }\n\n public configChanged(config: TableConfig): void {\n this._searchQuery.offset = (config.paginator.current - 1) * config.paginator.size;\n this._searchQuery.sort = config.sort;\n this.tableConfig = config;\n this._userService.getUsers(this._searchQuery);\n }\n\n public search(value: string): void {\n this._searchQuery = new SearchQuery([Role.PHOTOGRAPHER, Role.EMPLOYEE]);\n this._searchQuery.text = value;\n this.tableConfig.paginator = new PaginatorConfig();\n this.tableConfig.sort = {active: '', direction: ''};\n this._userService.getUsers(this._searchQuery);\n }\n\n public onAction(action: TableAction): void {\n const user: User | undefined = this._users.find((u: User) => u.email === action.id);\n\n switch (action.name) {\n case TableActionType.EDIT:\n this._router.navigate(['user', action.id]);\n break;\n case TableActionType.DELETE:\n if (user) {\n this._deleteUser(user);\n }\n break;\n case TableActionType.DEACTIVATE:\n if (user) {\n this._deactivateUser(user);\n }\n break;\n case TableActionType.REACTIVATE:\n if (user) {\n this._reactivateUser(user);\n }\n break;\n default:\n break;\n }\n }\n\n public exportCSV(): void {\n this._userService.getUsersCsv();\n }\n\n}\n","\n
\n
\n {{ 'users.headline' | translate }}\n
0\" class=\"headline-action\">\n {{ 'button.exportCSV' | translate }}\n
\n
\n \n
\n \n
\n 0\"\n paginator=\"true\"\n sortable=\"true\"\n [config]=\"tableConfig\"\n (changed)=\"configChanged($event)\"\n (action)=\"onAction($event)\"\n >\n
\n {{ 'users.empty' | translate }}\n
\n
\n
\n
\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/modules/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 8685,\n\t\"./af.js\": 8685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 2614,\n\t\"./ar-kw.js\": 2614,\n\t\"./ar-ly\": 8630,\n\t\"./ar-ly.js\": 8630,\n\t\"./ar-ma\": 8674,\n\t\"./ar-ma.js\": 8674,\n\t\"./ar-sa\": 9032,\n\t\"./ar-sa.js\": 9032,\n\t\"./ar-tn\": 4730,\n\t\"./ar-tn.js\": 4730,\n\t\"./ar.js\": 254,\n\t\"./az\": 3052,\n\t\"./az.js\": 3052,\n\t\"./be\": 150,\n\t\"./be.js\": 150,\n\t\"./bg\": 3069,\n\t\"./bg.js\": 3069,\n\t\"./bm\": 3466,\n\t\"./bm.js\": 3466,\n\t\"./bn\": 8516,\n\t\"./bn-bd\": 557,\n\t\"./bn-bd.js\": 557,\n\t\"./bn.js\": 8516,\n\t\"./bo\": 6273,\n\t\"./bo.js\": 6273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 9815,\n\t\"./bs.js\": 9815,\n\t\"./ca\": 3331,\n\t\"./ca.js\": 3331,\n\t\"./cs\": 1320,\n\t\"./cs.js\": 1320,\n\t\"./cv\": 2219,\n\t\"./cv.js\": 2219,\n\t\"./cy\": 8266,\n\t\"./cy.js\": 8266,\n\t\"./da\": 6427,\n\t\"./da.js\": 6427,\n\t\"./de\": 7435,\n\t\"./de-at\": 2871,\n\t\"./de-at.js\": 2871,\n\t\"./de-ch\": 2994,\n\t\"./de-ch.js\": 2994,\n\t\"./de.js\": 7435,\n\t\"./dv\": 2357,\n\t\"./dv.js\": 2357,\n\t\"./el\": 5649,\n\t\"./el.js\": 5649,\n\t\"./en-au\": 9961,\n\t\"./en-au.js\": 9961,\n\t\"./en-ca\": 9878,\n\t\"./en-ca.js\": 9878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 864,\n\t\"./en-ie.js\": 864,\n\t\"./en-il\": 1579,\n\t\"./en-il.js\": 1579,\n\t\"./en-in\": 940,\n\t\"./en-in.js\": 940,\n\t\"./en-nz\": 6181,\n\t\"./en-nz.js\": 6181,\n\t\"./en-sg\": 4301,\n\t\"./en-sg.js\": 4301,\n\t\"./eo\": 5291,\n\t\"./eo.js\": 5291,\n\t\"./es\": 4529,\n\t\"./es-do\": 3764,\n\t\"./es-do.js\": 3764,\n\t\"./es-mx\": 2584,\n\t\"./es-mx.js\": 2584,\n\t\"./es-us\": 3425,\n\t\"./es-us.js\": 3425,\n\t\"./es.js\": 4529,\n\t\"./et\": 5203,\n\t\"./et.js\": 5203,\n\t\"./eu\": 678,\n\t\"./eu.js\": 678,\n\t\"./fa\": 3483,\n\t\"./fa.js\": 3483,\n\t\"./fi\": 6262,\n\t\"./fi.js\": 6262,\n\t\"./fil\": 2521,\n\t\"./fil.js\": 2521,\n\t\"./fo\": 4555,\n\t\"./fo.js\": 4555,\n\t\"./fr\": 3131,\n\t\"./fr-ca\": 8239,\n\t\"./fr-ca.js\": 8239,\n\t\"./fr-ch\": 1702,\n\t\"./fr-ch.js\": 1702,\n\t\"./fr.js\": 3131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 3821,\n\t\"./ga.js\": 3821,\n\t\"./gd\": 1753,\n\t\"./gd.js\": 1753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 2762,\n\t\"./gom-deva.js\": 2762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 2809,\n\t\"./gu.js\": 2809,\n\t\"./he\": 5402,\n\t\"./he.js\": 5402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 410,\n\t\"./hr.js\": 410,\n\t\"./hu\": 8288,\n\t\"./hu.js\": 8288,\n\t\"./hy-am\": 8999,\n\t\"./hy-am.js\": 8999,\n\t\"./id\": 1334,\n\t\"./id.js\": 1334,\n\t\"./is\": 6959,\n\t\"./is.js\": 6959,\n\t\"./it\": 4864,\n\t\"./it-ch\": 1124,\n\t\"./it-ch.js\": 1124,\n\t\"./it.js\": 4864,\n\t\"./ja\": 6141,\n\t\"./ja.js\": 6141,\n\t\"./jv\": 9187,\n\t\"./jv.js\": 9187,\n\t\"./ka\": 2136,\n\t\"./ka.js\": 2136,\n\t\"./kk\": 4332,\n\t\"./kk.js\": 4332,\n\t\"./km\": 8607,\n\t\"./km.js\": 8607,\n\t\"./kn\": 4305,\n\t\"./kn.js\": 4305,\n\t\"./ko\": 234,\n\t\"./ko.js\": 234,\n\t\"./ku\": 6003,\n\t\"./ku.js\": 6003,\n\t\"./ky\": 5061,\n\t\"./ky.js\": 5061,\n\t\"./lb\": 2786,\n\t\"./lb.js\": 2786,\n\t\"./lo\": 6183,\n\t\"./lo.js\": 6183,\n\t\"./lt\": 29,\n\t\"./lt.js\": 29,\n\t\"./lv\": 4169,\n\t\"./lv.js\": 4169,\n\t\"./me\": 8577,\n\t\"./me.js\": 8577,\n\t\"./mi\": 8177,\n\t\"./mi.js\": 8177,\n\t\"./mk\": 337,\n\t\"./mk.js\": 337,\n\t\"./ml\": 5260,\n\t\"./ml.js\": 5260,\n\t\"./mn\": 2325,\n\t\"./mn.js\": 2325,\n\t\"./mr\": 4695,\n\t\"./mr.js\": 4695,\n\t\"./ms\": 5334,\n\t\"./ms-my\": 7151,\n\t\"./ms-my.js\": 7151,\n\t\"./ms.js\": 5334,\n\t\"./mt\": 3570,\n\t\"./mt.js\": 3570,\n\t\"./my\": 7963,\n\t\"./my.js\": 7963,\n\t\"./nb\": 8028,\n\t\"./nb.js\": 8028,\n\t\"./ne\": 6638,\n\t\"./ne.js\": 6638,\n\t\"./nl\": 302,\n\t\"./nl-be\": 6782,\n\t\"./nl-be.js\": 6782,\n\t\"./nl.js\": 302,\n\t\"./nn\": 3501,\n\t\"./nn.js\": 3501,\n\t\"./oc-lnc\": 563,\n\t\"./oc-lnc.js\": 563,\n\t\"./pa-in\": 869,\n\t\"./pa-in.js\": 869,\n\t\"./pl\": 5302,\n\t\"./pl.js\": 5302,\n\t\"./pt\": 9687,\n\t\"./pt-br\": 4884,\n\t\"./pt-br.js\": 4884,\n\t\"./pt.js\": 9687,\n\t\"./ro\": 9107,\n\t\"./ro.js\": 9107,\n\t\"./ru\": 3627,\n\t\"./ru.js\": 3627,\n\t\"./sd\": 355,\n\t\"./sd.js\": 355,\n\t\"./se\": 3427,\n\t\"./se.js\": 3427,\n\t\"./si\": 1848,\n\t\"./si.js\": 1848,\n\t\"./sk\": 4590,\n\t\"./sk.js\": 4590,\n\t\"./sl\": 184,\n\t\"./sl.js\": 184,\n\t\"./sq\": 6361,\n\t\"./sq.js\": 6361,\n\t\"./sr\": 8965,\n\t\"./sr-cyrl\": 1287,\n\t\"./sr-cyrl.js\": 1287,\n\t\"./sr.js\": 8965,\n\t\"./ss\": 5456,\n\t\"./ss.js\": 5456,\n\t\"./sv\": 451,\n\t\"./sv.js\": 451,\n\t\"./sw\": 7558,\n\t\"./sw.js\": 7558,\n\t\"./ta\": 2702,\n\t\"./ta.js\": 2702,\n\t\"./te\": 3693,\n\t\"./te.js\": 3693,\n\t\"./tet\": 1243,\n\t\"./tet.js\": 1243,\n\t\"./tg\": 2500,\n\t\"./tg.js\": 2500,\n\t\"./th\": 5768,\n\t\"./th.js\": 5768,\n\t\"./tk\": 7761,\n\t\"./tk.js\": 7761,\n\t\"./tl-ph\": 5780,\n\t\"./tl-ph.js\": 5780,\n\t\"./tlh\": 9590,\n\t\"./tlh.js\": 9590,\n\t\"./tr\": 3807,\n\t\"./tr.js\": 3807,\n\t\"./tzl\": 3857,\n\t\"./tzl.js\": 3857,\n\t\"./tzm\": 654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 654,\n\t\"./ug-cn\": 845,\n\t\"./ug-cn.js\": 845,\n\t\"./uk\": 9232,\n\t\"./uk.js\": 9232,\n\t\"./ur\": 7052,\n\t\"./ur.js\": 7052,\n\t\"./uz\": 7967,\n\t\"./uz-latn\": 2233,\n\t\"./uz-latn.js\": 2233,\n\t\"./uz.js\": 7967,\n\t\"./vi\": 8615,\n\t\"./vi.js\": 8615,\n\t\"./x-pseudo\": 2320,\n\t\"./x-pseudo.js\": 2320,\n\t\"./yo\": 1313,\n\t\"./yo.js\": 1313,\n\t\"./zh-cn\": 4490,\n\t\"./zh-cn.js\": 4490,\n\t\"./zh-hk\": 5910,\n\t\"./zh-hk.js\": 5910,\n\t\"./zh-mo\": 8262,\n\t\"./zh-mo.js\": 8262,\n\t\"./zh-tw\": 4223,\n\t\"./zh-tw.js\": 4223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"names":[],"sourceRoot":"webpack:///"}