@kms-ngx-ui/presentational 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"kms-ngx-ui-presentational.js","sources":["../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/actions.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/checkbox/checkbox.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form-control.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/is-value.function.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/integer-currency.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/decode-uri.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/encode-uri.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-style.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/typeof.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/trim.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/to-number.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/custom-pipes.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/services/viewport.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/map/map.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/salutation.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-dropdown/salutation-dropdown.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/nullable.type.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/attached-file-dto.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/button-with-confirm-dialog/button-response-types.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/generic-dialog/generic-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/mousewheel.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/tooltip.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/directives.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.module.ts","../../../../projects/kms-ngx-ui-presentational/src/public-api.ts","../../../../projects/kms-ngx-ui-presentational/src/kms-ngx-ui-presentational.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KmsUiPresentationalService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-kms-ngx-ui-presentational',\n template: `\n <p>\n kms-ngx-ui-presentational works!\n </p>\n `,\n styles: [\n ]\n})\nexport class KmsUiPresentationalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'kms-actions',\n template: '',\n})\nexport class ActionsParentComponent {\n /**\n * Defines the disabled property\n */\n @Input() disabled = false;\n\n /**\n * Set button as selected. F.e. in multiselect component\n */\n @Input() checked = false;\n\n /**\n * Displayed label.\n */\n @Input() label = '';\n\n /**\n * Link\n */\n @Input() link = '';\n\n /**\n * Internal value that will be send if a form is submitted.\n */\n @Input() initialValue = '';\n\n @Output() select = new EventEmitter();\n\n selectAction(id: string) {\n this.checked = !this.checked;\n this.select.emit(id);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\n\n\n@Component({\n selector: 'kms-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent extends ActionsParentComponent implements ControlValueAccessor {\n\n\n /**\n * Additional description text that will be shown below the checkbox.\n */\n @Input() infoText: NullAble<string>;\n\n /**\n * Internal description name. All checkboxes with the same name belong to the same group.\n * User can select none, one or all checkboxes with the same name.\n */\n @Input() name = '';\n\n @Output() select = new EventEmitter();\n selectAction(id: string) {\n this.select.emit(id);\n this.checked = !this.checked;\n }\n\n constructor() {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'kms-form',\n template: '',\n})\nexport class FormParentComponent implements OnInit {\n public form!: FormGroup;\n public formInitialized = false;\n private allowedCharsOnlyNumbers = new Set('0123456789'.split('').map(c => c.charCodeAt(0)));\n\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\n\n @Input() disabled = false;\n\n constructor(\n public formBuilder: FormBuilder\n ) {\n\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Returns if a number was pressed\n * @param e \n * @returns \n */\n checkIfKeyWasNumber(e: KeyboardEvent, allowDelete = true, allowArrows = true, allowCutCopyPaste = true){\n // returns if keycode of numbers-row or numberpad. Or if parameter set, allow delete/backspace key\n const isNumberRow = e.keyCode >= 48 && e.keyCode <= 57;\n const isNumberPad = e.keyCode >= 96 && e.keyCode <= 105;\n const isArrows = e.keyCode >= 37 && e.keyCode <= 40;\n const isDelete = e.keyCode == 8 || e.keyCode == 46;\n const isCutCopyOrPaste = (e.ctrlKey || e.metaKey) && (e.keyCode == 86 || e.keyCode == 88 || e.keyCode == 67);\n return (isNumberRow) || (isNumberPad) || (allowDelete && isDelete) || (allowArrows && isArrows) || (allowCutCopyPaste && isCutCopyOrPaste);\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Prevents to input other chars than numbers in input\n * @param event \n */\n removeNumbersOnType(event: KeyboardEvent) {\n // only allow keydown from numbers-row or numberpad of keybard and block other chars than numbers\n if (!this.checkIfKeyWasNumber(event) && !this.allowedCharsOnlyNumbers.has(event.keyCode)) {\n event.preventDefault();\n }\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Prevents input when pasting which is not number\n * @param event\n */\n removeNumbersOnPaste(event: ClipboardEvent){\n const clipboardData = event.clipboardData;\n if(clipboardData){\n const pastedText = clipboardData.getData('text');\n if(pastedText){\n const isnum = /^\\d+$/.test(pastedText);\n if(!isnum) {\n event.preventDefault();\n }\n }\n }\n }\n\n ngOnInit() {\n this.formDataChanged.emit(this.form);\n this.form.valueChanges.subscribe(() => {\n this.formDataChanged.emit(this.form);\n });\n }\n}\n","import { Component, ElementRef, Input, EventEmitter, Output, ViewChild, Renderer2 } from '@angular/core';\nimport { FormBuilder, FormControl } from '@angular/forms';\nimport { FormParentComponent } from './form.component';\n\n@Component({\n selector: 'kms-formControlParent',\n template: '',\n})\nexport class FormControlParentComponent extends FormParentComponent {\n @Input() defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually\n @Output() onSelectItemEmitter = new EventEmitter<string>();\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue = '';\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder);\n }\n\n ngOnInit(){\n super.ngOnInit();\n }\n\n change(value: string) {\n this.onChange(value);\n this.onTouched();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n\n get value(): string {\n return this.internalValue;\n }\n\n set value(value: string) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n if (!this.internalValue && this.defaultDataOverride) {\n this.internalValue = this.defaultDataOverride;\n }\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: string) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\n }\n }\n\n validate(_: FormControl) {\n return this.form.valid ? null : false;\n }\n\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-color-input',\n templateUrl: './color-input.component.html',\n styleUrls: ['./color-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n})\nexport class ColorInputComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n\n @Input() label = '';\n @Input() tooltipText = '';\n @Input() placeholder = '';\n valid: boolean | null | undefined;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n color: '',\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.color;\n this.onChange(value.color);\n });\n\n super.ngOnInit();\n }\n\n validate(_: FormControl) {\n // TODO fix to validate complete form\n this.valid = this.matchesHex(this.form.value) ? null : false;\n return this.valid && {\n invalid: !this.valid\n };\n }\n\n matchesHex(match?: string){\n if(match){\n const ret = match.match(/^#[0-9a-f]{6}$/i);\n this.valid = ret && ret.length>0;\n return ret;\n }\n return false;\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\n\n@Component({\n selector: 'kms-radiobutton',\n templateUrl: './radiobutton.component.html',\n styleUrls: ['./radiobutton.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButtonComponent),\n multi: true,\n },\n ],\n})\nexport class RadioButtonComponent extends ActionsParentComponent implements ControlValueAccessor {\n /**\n * Internal description name. All radio buttons with the same name belong to the same group.\n * User can select exactly one of the radio buttons from the same group.\n */\n @Input() name = '';\n\n /**\n * Internal description id. Will be send in the output event when the radio button is selected.\n */\n @Input() id = '';\n\n @Input() formControl: any;\n\n selectAction(id: string) {\n this.select.emit(id);\n this.checked = !this.checked;\n }\n\n constructor() {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n}\n","import { Component, forwardRef, OnInit } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n ],\n})\nexport class TimeInputComponent implements OnInit, ControlValueAccessor {\n public form!: FormGroup;\n h = '';\n m = '';\n\n constructor(public formBuilder: FormBuilder) {\n \n }\n\n get value(): string {\n return this.value;\n }\n \n set value(value: string) {\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: string) {\n if(value && value.length === 8){\n this.h = value.substr(0,2);\n this.m = value.substr(3,2);\n }else if(value && value.length === 5){\n this.h = value.substr(0,2);\n this.m = value.substr(-2);\n }\n \n //we need to also update the form value because angular has a problem reading it from first time when valuechanges subscription was fired.\n this.form.controls['h'].setValue(this.h);\n this.form.controls['m'].setValue(this.m);\n\n this.form.valueChanges.subscribe(value => {\n this.h = value.h;\n this.m = value.m;\n value = this.getNewOrDefault();\n this.value = value;\n this.onChange(value);\n });\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n h: '',\n m: '',\n });\n }\n\n getNewOrDefault(){\n //reset if user deletes everything\n if(this.h === '' && this.m === ''){\n return ''; \n }\n const ret = this.h.padStart(2, '0') + ':' + this.m.padStart(2, '0');\n return ret;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n}\n","import { Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\n@Component({\n selector: 'kms-yesno-radiogroup',\n templateUrl: './yes-no-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YesNoRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class YesNoRadiogroupComponent implements OnInit, ControlValueAccessor {\n \n @Input() header: NullAble<String>;\n @Input() disabled = false;\n @Input() textYes = '';\n @Input() textNo = '';\n public form!: FormGroup;\n \n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue: NullAble<boolean>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): NullAble<boolean> {\n return this.internalValue;\n }\n\n set value(value: NullAble<boolean>) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: any) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\n }\n }\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n \n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n yesno: [],\n });\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.yesno;\n this.onChange(value.yesno);\n });\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport enum IconSize {\n FULLSIZE = 'size-full',\n TINY = 'size-16',\n SMALLER = 'size-20',\n SMALL = 'size-32',\n MEDIUM = 'size-64',\n LARGE = 'size-128',\n XL = 'size-256',\n XXL = 'size-512',\n XXXL = 'size-1024',\n NONE = 'NONE',\n}\n\n","/**\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Check if null or undefined\n * @param value value that is being checked\n */\nexport function isValue<T>(value: NullAble<T>): value is T {\n if (value === null) {\n return false;\n }\n if (typeof value === 'undefined') {\n return false;\n }\n return true;\n}\n","import { Component, Input, forwardRef, OnInit, ViewChild, Renderer2, EventEmitter, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';\n\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n//import { TranslateService } from '@ngx-translate/core';\nimport { IconSize } from '../../models/iconSize.enum';\nimport { AttachedFileDTO } from '../../models/types/attached-file-dto.model';\nimport { isValue } from '../../models/is-value.function';\n\n// Max size in bytes of uploaded image\nconst MAX_SIZE_BYTES = 2097152;\n\n@Component({\n selector: 'kms-file-input',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n ],\n})\n\nexport class FileInputComponent implements ControlValueAccessor, OnInit {\n \n @ViewChild('fileInput') public fileInput: any;\n\n @Input() label = '';\n \n @Input() previewImage = true; \n @Input() allowRemove = true; \n @Input() previewImageText = ''; \n @Input() maxSizeBytes = MAX_SIZE_BYTES; \n @Input() resizePixels = 0; \n @Input() acceptedFileMimetypes = 'image/jpeg, image/jpg, image/png'; \n\n form= this.formBuilder.group({\n ImageIdent: new FormControl(''),\n ImageLink: new FormControl(''),\n Filename: new FormControl(''),\n ImageAsDataURL: new FormControl(''),\n Text: new FormControl(''),\n });\n\n subscriptions: Subscription[] = [];\n newImageLoading = false\n\n IconSize = IconSize;\n\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\n\n /**\n * Constructor\n * @param formBuilder \n * @param appRef \n * @param cd \n * @param translateService \n * @param renderer \n */\n constructor(\n public formBuilder: FormBuilder, \n public appRef: ApplicationRef,\n public cd: ChangeDetectorRef,\n //private translateService: TranslateService,\n public renderer: Renderer2\n ) {\n \n }\n\n /**\n * Click on button triggers file-input to open OS file dialog\n */\n selectImageOverlay() {\n this.fileInput.nativeElement.click();\n }\n\n /**\n * Function to manage the input image\n * Returns an error if the file exceeds maximum wanted filesize (Mb). \n * @param ev\n * @returns\n */\n selectImage(ev: any) {\n if (ev.target.files && ev.target.files[0]) {\n const file:File = ev.target.files[0];\n\n if (file.size > this.maxSizeBytes) {\n this.clearInputValue(ev);\n //alert(this.translateService.instant('errors.fileTooBig'));\n return;\n } else {\n this.newImageLoading = true;\n\n if(this.resizePixels > 0){\n const logoUrl = URL.createObjectURL(file);\n const imgEl = document.createElement('img');\n imgEl.addEventListener('load', () => {\n const resizedLogo = this.resizeImage(imgEl, this.resizePixels);\n const newFile = this.generateModel(file.name, resizedLogo, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\n this.value=newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n });\n imgEl.src = logoUrl;\n }else{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n const newFile = this.generateModel(file.name, e.target.result, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\n this.value=newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n };\n }\n \n }\n }else{\n console.warn(\"No file selected\");\n }\n }\n\n /**\n * Resize an image\n * @param imgEl\n * @param wantedWidth as number\n * @returns string \n */\n private resizeImage(imgEl: any, wantedWidth: number) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const aspect = imgEl.width / imgEl.height;\n canvas.width = wantedWidth;\n canvas.height = wantedWidth / aspect;\n if (isValue(ctx)) ctx.drawImage(imgEl, 0, 0, canvas.width, canvas.height);\n return canvas.toDataURL();\n }\n\n /**\n * Generate default object\n * @param name as string\n * @param content as string\n * @returns AttachedFileDTO\n */\n generateModel(name?: string, content?: string, ident?: string, imageLink?: string, text?: string){\n return {\n ImageIdent: ident ? ident : '',\n Filename: name ? name : '',\n ImageAsDataURL: content ? content : '',\n ImageLink: imageLink ? imageLink : '',\n Text: text ? text : ''\n } as AttachedFileDTO;\n }\n\n /**\n * Remove image \n */\n removeFromList(){\n this.value= this.generateModel('','', '', '');\n }\n\n /**\n * get value\n */\n get value(): AttachedFileDTO {\n return this.form.value;\n }\n\n /**\n * set value\n */\n set value(value: AttachedFileDTO) {\n this.form.setValue(value);\n this.onChange(value);\n this.formDataChanged.emit(this.form);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n } \n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: AttachedFileDTO | null) {\n if (value) {\n this.value = value;\n }\n\n if (value === null) {\n this.form.reset();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n validate(_: FormControl) {\n return this.form.valid ? null : { styles: { valid: false } };\n }\n\n /**\n * OnClick event listener of input#fileInput to clear his input value\n */\n clearInputValue(ev: any) {\n const element = ev.target as HTMLInputElement;\n element.value = '';\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kms-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnInit {\n @Input() loading=false;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor() {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { state, style, trigger } from '@angular/animations';\nimport {\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n \n selector: 'kms-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n animations: [\n trigger('dropdownAnimation', [\n state(\n 'true',\n style({\n height: '{{targetHeight}}',\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n animationTime: 3000,\n },\n },\n ),\n state(\n 'false',\n style({\n height: 0,\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n opacity: 0,\n animationTime: 3000,\n },\n },\n ),\n ]),\n ],\n})\nexport class FlyoutComponent {\n\n @Input() icon = 'filter';\n\n isDropdownOpened = false;\n targetHeight = '0';\n animationTime = 5000;\n\n @Input() headerCssClass = '';\n @Input() bodyCssClass = '';\n\n @Input() headerTitle = '';\n @Input() headerText = '';\n @Input() hasButtonForMore = false;\n @Input() moreText = '';\n @Input() lessText = '';\n\n \n @ViewChild('content') content: ElementRef | undefined;\n \n @ViewChild('flyoutHeader') flyoutHeader: ElementRef | undefined;\n\n /**\n * Open/close dropdown if click on header.\n * Except, if mode is set to hasButtonForMore. When there is a extra button to open/close\n */\n toggleDropdownHeader() {\n if (!this.hasButtonForMore) {\n this.toggleDropdown();\n }\n }\n\n /**\n * Open or close the dropdown\n */\n toggleDropdown() {\n this.isDropdownOpened = !this.isDropdownOpened;\n }\n\n /**\n * Set the height of the dropdown list items dynamic - needed for the animation\n */\n setDropdownListHeight(contentHeight: number) {\n this.targetHeight = `${contentHeight}px`;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsIntegerCurrency',\n})\nexport class IntegerCurrency implements PipeTransform {\n constructor(private cp: CurrencyPipe) {}\n transform(value: any, currencyCode?: string, display?: boolean, digitsInfo?: string): string | null {\n const currencyPipeValue = this.cp.transform(value, currencyCode, display, digitsInfo)\n if (currencyPipeValue) {\n const convertedValue = currencyPipeValue.split(',')[0] + ' ' + currencyPipeValue.slice(-1)\n return convertedValue\n } else {\n throw new Error(\"No value provided\");\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsDecodeUri',\n})\nexport class DecodeUriPipe implements PipeTransform {\n\n transform(value: any, _args?: any): any {\n return decodeURI(value);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsEncodeUri',\n})\nexport class EncodeUriPipe implements PipeTransform {\n transform(value: any, _args?: any): any {\n return encodeURI(value);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeStyle',\n})\nexport class SafeStylePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(style);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(style);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'kmsTrim' })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsToNumber',\n pure: false\n \n})\nexport class ToNumberPipe implements PipeTransform {\n transform(items: any): any {\n if (!items) {\n return 0;\n }\n return parseInt(items, 10);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\n import { CommonModule, CurrencyPipe } from '@angular/common';\n import { NgModule } from '@angular/core';\n \n import { IntegerCurrency } from './integer-currency.pipe';\n import { DecodeUriPipe } from './decode-uri.pipe';\n import { EncodeUriPipe } from './encode-uri.pipe';\n import { SafeHtmlPipe } from './safe-html.pipe';\n import { SafeStylePipe } from './safe-style.pipe';\n import { SafeUrlPipe } from './safe-url.pipe';\n import { TypeofPipe } from './typeof.pipe';\n import { TrimPipe } from './trim.pipe';\n import { ToNumberPipe } from './to-number.pipe';\n \n @NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n providers: [CurrencyPipe],\n })\n export class CustomPipesModule {}\n ","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport enum IconSize {\n FULLSIZE = 'size-full',\n TINY = 'size-16',\n SMALLER = 'size-20',\n SMALL = 'size-32',\n MEDIUM = 'size-64',\n LARGE = 'size-128',\n XL = 'size-256',\n XXL = 'size-512',\n XXXL = 'size-1024',\n NONE = 'NONE',\n}\n\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Input, OnInit, VERSION } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { IconSize } from './iconSize.enum';\n\n@Component({\n \n selector: 'kms-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n})\nexport class IconComponent implements OnInit {\n\n /**\n * Required: Name of the SVG icon inside your sprite sheet file with name 'icons.svg'.\n * Pass 'none' if no icon should be rendered.\n */\n @Input() icon!: string | '';\n\n /**\n * Optional: Different appearance via CSS class defined in this component´s style sheet.\n */\n @Input() iconClass!: string | '';\n\n /**\n * Optional: Different appearance via CSS inline style.\n */\n \n @Input() iconStyle: any;\n\n /**\n * Optional: Different size via CSS inline style.\n */\n @Input() iconSize: IconSize = IconSize.FULLSIZE;\n\n /**\n * Dont use icon sprite\n */\n \n @Input() dontUseSprite = false;\n\n IconSize = IconSize;\n Version = VERSION.full;\n\n public timestamp = 0;\n\n /**\n * Renders this icon from SVG sprite sheet\n */\n public iconToShow!: string | '';\n\n constructor(public sanitizer: DomSanitizer) {\n this.iconToShow = this.icon;\n }\n\n ngOnInit() {\n this.iconToShow = this.icon;\n const d = new Date();\n const n = d.getTime();\n this.timestamp = n;\n }\n\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-enum-radiogroup',\n templateUrl: './enum-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EnumRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class EnumRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n @Input() header: NullAble<String>;\n @Input() optionsEnum: any;\n @Input() translationPrefix = '';\n\n public optionValues: any;\n \n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit(){\n this.optionValues = Object.keys(this.optionsEnum).filter(x => !(parseInt(x) >= 0));\n this.form = this.formBuilder.group({\n enumData: [],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.enumData;\n this.onChange(value.enumData);\n });\n\n super.ngOnInit();\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n/**\n * A generic dialog component\n */\n@Component({\n \n selector: 'kms-accordion-item',\n templateUrl: './kms-accordion-item.component.html',\n styleUrls: ['./kms-accordion-item.component.scss'],\n})\nexport class KMSAccordionItemComponent implements OnInit {\n @Input() public itemTitle = '';\n \n public itemTitleTrustHtml: SafeHtml | undefined;\n @Input() public showAsCard = false;\n @Input() public isSmall = false;\n panelOpenState = false;\n\n constructor(public sanitizer: DomSanitizer) {\n\n }\n\n ngOnInit() {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(this.itemTitle);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { NullAble } from '../models';\n\n// needed for scrollToElement functionality\n\ndeclare const window: any;\n\ndeclare const document: any;\n\n/**\n * Service to get viewport\n */\n@Injectable()\nexport class ViewportService implements OnDestroy {\n public readonly viewports = [\n {\n name: 'xs',\n low: 420,\n high: 990,\n },\n {\n name: 's',\n low: 991,\n high: 1024,\n },\n {\n name: 'm',\n low: 1025,\n high: 1200,\n },\n {\n name: 'l',\n low: 12001,\n high: 1400,\n },\n {\n name: 'xl',\n low: 1401,\n high: 1600,\n },\n {\n name: 'xxl',\n low: 1601,\n high: 1920,\n },\n {\n name: 'xxxl',\n low: 1921,\n high: 99999,\n },\n ];\n\n private viewportChangedSubscriber: Subject<string> = new Subject<string>();\n private viewportResizedSubscriber: Subject<number> = new Subject<number>();\n private currentViewport!: string;\n\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n if (isPlatformBrowser(this.platformId)) {\n window.addEventListener('resize', this.documentSizeChanged.bind(this), { passive: true });\n }\n }\n\n /**\n * Get window height\n */\n public getDocumentHeight(): number {\n return isPlatformBrowser(this.platformId) ? document.body.clientHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getDocumentWidth(): number {\n return isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\n }\n\n /**\n * Get window height\n */\n public getWindowHeight(): number {\n return isPlatformBrowser(this.platformId) ? window.innerHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getWindowWidth(): number {\n return isPlatformBrowser(this.platformId) ? window.innerWidth : 1200;\n }\n\n /**\n * Returns the current viewport MQ as string\n * @returns string\n */\n getCurrentViewPort(): string {\n if (!this.currentViewport) {\n const currentWidth: number = isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\n this.currentViewport = this.convertWidthToMediaQuery(currentWidth);\n }\n\n return this.currentViewport;\n }\n\n /**\n * Provides mq´s as string\n */\n public getViewportChangedObserver(): Observable<string> {\n return this.viewportChangedSubscriber.asObservable();\n }\n\n /**\n * Provides the current window width as number\n */\n public getViewportResizedObserver(): Observable<number> {\n return this.viewportResizedSubscriber.asObservable();\n }\n\n public scrollToElementId(el: string, alignCenter = false) {\n if (isPlatformBrowser(this.platformId)) {\n this.scrollToElement(document.querySelector('#' + el), alignCenter);\n }\n }\n\n /**\n * Helper function that scrolls to the given markup element.\n * @param el - nativeElement from markup\n * @param alignCenter - defines if the element needs to be centered on window\n */\n\n public scrollToElement(el: HTMLElement, alignCenter = false) {\n if (isPlatformBrowser(this.platformId)) {\n let extraScrollTop = 0;\n\n if (alignCenter) {\n extraScrollTop = (window.innerHeight - el.clientHeight) / 2;\n }\n\n /*\n const elementPos: DOMRect = el.getBoundingClientRect();\n const scrollTopPosition = elementPos.x - extraScrollTop;\n */\n\n //let offsetLeft = 0;\n let offsetTop = 0;\n\n let elTemp: NullAble<HTMLElement> = el;\n\n while (elTemp) {\n //offsetLeft += elTemp.offsetLeft;\n offsetTop += elTemp.offsetTop;\n elTemp = elTemp.parentElement ? elTemp.parentElement : null;\n }\n\n window.scrollTo({ left: 0, top: offsetTop - extraScrollTop, behavior: 'smooth' });\n }\n }\n\n /**\n * Scroll to the top position\n * @param top - top position value\n */\n public scrollTop(top: number) {\n if (isPlatformBrowser(this.platformId)) {\n window.scrollTo({ left: 0, top: top, behavior: 'smooth' });\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n window.removeEventListener('resize', this.documentSizeChanged);\n }\n }\n\n /**\n * If viewport changed\n * @event\n */\n\n private documentSizeChanged(event: any) {\n const currentWindowWidth: number = event.target.innerWidth;\n // inform who´s interested\n this.viewportResizedSubscriber.next(currentWindowWidth);\n\n if (currentWindowWidth > 0) {\n for (const mqs of this.viewports) {\n if (currentWindowWidth > mqs.high) {\n continue;\n } else if (\n (currentWindowWidth >= mqs.low || currentWindowWidth <= mqs.high) &&\n this.currentViewport !== mqs.name\n ) {\n this.currentViewport = mqs.name;\n // inform who´s interested\n this.viewportChangedSubscriber.next(mqs.name);\n break;\n } else if (this.currentViewport === mqs.name) {\n break;\n } else {\n console.error('ERROR');\n }\n }\n }\n }\n\n /**\n * Get the Media Query for the given width\n * @param width Width to get the according MQ for\n */\n private convertWidthToMediaQuery(width: number) {\n let currentViewport = '';\n\n for (const mqs of this.viewports) {\n if (width <= mqs.high && width >= mqs.low) {\n currentViewport = mqs.name;\n break;\n }\n }\n\n return currentViewport;\n }\n\n isPortrait() {\n if (isPlatformBrowser(this.platformId)) return window.innerHeight > window.innerWidth;\n else return;\n }\n\n isLandscape() {\n if (isPlatformBrowser(this.platformId)) {\n const isLandscape = window.orientation === 90 || window.orientation === -90;\n return isLandscape;\n } else {\n return;\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Address } from '../../models/address.model';\nimport { ViewportService } from '../../services/viewport.service';\n\n/**\n * MarkerOptions class for Marker\n */\nexport class MarkerOptions {\n animation!: number;\n}\n\n/**\n * MarkerLabel class for Marker\n */\nexport class MarkerLabel {\n color!: string;\n text!: string;\n}\n\n/**\n * Marker class\n */\nexport class Marker {\n position!: google.maps.LatLngLiteral;\n label!: MarkerLabel;\n title!: string;\n options!: MarkerOptions;\n}\n\n/**\n * Component to show marker on google map for specific address\n */\n@Component({\n selector: 'kms-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent implements OnInit {\n\n @Input() data!: Address;\n\n public markers: Marker[] = [];\n public geoDataFoundForAddress = false;\n public widthSet = false;\n\n public width = '100%';\n public zoom = 15;\n public center: google.maps.LatLngLiteral = {\n \n lat: 52.097449,\n lng: 12.7436911,\n };\n\n public options: google.maps.MapOptions = {\n mapTypeId: 'roadmap',\n zoomControl: false,\n scrollwheel: false,\n disableDoubleClickZoom: true,\n maxZoom: 15,\n minZoom: 8,\n };\n\n \n public google: any;\n\n public geocoder: any;\n\n public viewportSubscription?: Subscription;\n\n //\n constructor(private viewPortService: ViewportService) { }\n\n ngOnInit() {\n this.findLocation(this.data.Street + ' ' + this.data.Zip + ' ' + this.data.City);\n\n\n }\n\n /**\n * Asks google for geocoordinates of a given address string\n * @input address as string\n */\n findLocation(address: string) {\n if (!this.geocoder) { this.geocoder = new google.maps.Geocoder(); }\n this.geocoder.geocode({\n 'address': address,\n \n }, (results: any, status: google.maps.GeocoderStatus) => {\n if (status === google.maps.GeocoderStatus.OK) {\n\n this.center.lat = results[0].geometry.location.lat();\n this.center.lng = results[0].geometry.location.lng();\n\n this.addMarker();\n this.geoDataFoundForAddress = true;\n\n // react to browser resize\n this.setMapWidth(this.viewPortService.getDocumentWidth());\n this.viewportSubscription = this.viewPortService.getViewportResizedObserver().subscribe(\n (val) => {\n this.setMapWidth(val);\n },\n (error) => {\n console.error('Get updated ViewPort failed', error);\n },\n );\n\n } else {\n console.error('Sorry, this search of map address produced no results.');\n }\n });\n }\n\n /**\n * Adds a marker to the map\n */\n addMarker() {\n this.markers.push({\n position: {\n lat: this.center.lat,\n lng: this.center.lng,\n },\n label: {\n color: 'blue',\n \n text: this.data.Name1 || '',\n },\n title: this.data.Name1 + ' ' + this.data.Street + ' ' + this.data.Zip,\n options: { animation: google.maps.Animation.DROP },\n });\n }\n\n /**\n * sets the width of map accodring to viewport\n */\n setMapWidth(val: number) {\n if (val < 991) {\n this.width = (val - 84) + 'px';\n }else{\n this.width = '100%';\n }\n this.widthSet = true;\n }\n\n /**\n * Zooms in into map\n */\n zoomIn() {\n if (this.options.maxZoom && this.zoom < this.options.maxZoom) { this.zoom++; }\n }\n\n /**\n * Zooms out from map\n */\n zoomOut() {\n if (this.options.minZoom && this.zoom > this.options.minZoom) { this.zoom--; }\n }\n}\n","// TODO change values after cleaned up database\nexport enum SalutationEnum {\n NOT_SPECIFIED = 'Keine Anrede',\n MALE = 'Herr',\n FEMALE = 'Frau',\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\nimport { SalutationEnum } from '../../models/salutation.enum';\n\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-salutation-dropdown',\n templateUrl: './salutation-dropdown.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationDropdownComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n @Input() placeholder: NullAble<String>;\n\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n salut: [],\n });\n this.formInitialized = true;\n \n //somehow for dropowns we have to set value manually with timeout for default value\n setTimeout(() => {\n this.form.controls['salut'].setValue(this.value ? this.value : '');\n }, 1000);\n\n\n this.form.valueChanges.subscribe((value) => {\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kms-tooltip-element',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss']\n})\nexport class TooltipComponent {\n @Input() tooltipTitle = \"\";\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport type NullAble<T> = T | null | undefined;\n","/**\n * Attached File DTO\n */\nexport class AttachedFileDTO {\n ImageIdent?: string;\n ImageLink?: string;\n Filename?: string;\n ImageAsDataURL?: string;\n CreateSmallImage?: boolean;\n Text?: string;\n}\n","import { Component, Input } from '@angular/core';\nimport { IconSize } from '../../models';\n\n@Component({\n selector: 'kms-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss']\n})\nexport class TooltipIconComponent {\n @Input() tooltipTitle = \"\";\n @Input() tooltipText = \"\";\n @Input() tooltipLinkText = \"\";\n @Input() tooltipLinkUrl = \"\";\n\n @Input() placement = \"\";\n @Input() delay = 1000;\n\n IconSize = IconSize;\n}\n","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isValue } from '../../models';\nimport { SalutationEnum } from '../../models/salutation.enum';\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-salutation-radiogroup',\n templateUrl: './salutation-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n \n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n salut: [isValue(this.value) ? this.value : '', null],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.salut;\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n selector: 'kms-back-to-top',\n templateUrl: './back-to-top.component.html',\n})\nexport class BackToTopComponent {\n windowScrolled?: boolean;\n\n constructor(@Inject(PLATFORM_ID) public platformId: Object) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (isPlatformBrowser(this.platformId)) {\n if (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop > 100) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 10\n ) {\n this.windowScrolled = false;\n }\n }\n }\n\n scrollToTop() {\n if (isPlatformBrowser(this.platformId)) {\n (function smoothscroll() {\n const currentScroll = document.documentElement.scrollTop || document.body.scrollTop;\n if (currentScroll > 0) {\n window.requestAnimationFrame(smoothscroll);\n window.scrollTo(0, currentScroll - currentScroll / 8);\n }\n })();\n }\n }\n}\n","export enum ButtonResponseType{\n primary = 'primary',\n secondary = 'secondary'\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Inject, NgZone } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { isValue } from '../../models';\nimport { ButtonResponseType } from '../button-with-confirm-dialog/button-response-types.enum';\nimport { DialogData, DialogDataButtons } from '../button-with-confirm-dialog/dialog-data.model';\n\n/**\n * A generic dialog component\n */\n@Component({\n selector: 'kms-generic-dialog',\n templateUrl: './generic-dialog.component.html',\n styleUrls: ['./generic-dialog.component.scss'],\n})\nexport class GenericDialogComponent {\n\n ButtonResponseType = ButtonResponseType;\n\n public buttons: DialogDataButtons\n\n public constructor(\n public dialogRef: MatDialogRef<GenericDialogComponent>,\n public zone: NgZone,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) {\n if (isValue(data.buttons)) {\n this.buttons = data.buttons;\n } else {\n this.buttons = { primary: 'Yes', secondary: 'No' } as DialogDataButtons;\n }\n }\n\n /**\n * Action called when clicked\n * @param clickedButton Whether the primary or secondary button was clicked\n */\n public onClickAction(clickedButton: ButtonResponseType): void {\n this.zone.run(() => {\n this.dialogRef.close(clickedButton);\n this.dialogRef.afterClosed().subscribe(() => {\n const buttonList = document.querySelectorAll('.mat-flat-button, .mat-button');\n let i = 0;\n for (i; i < buttonList.length; i++) {\n buttonList[i].classList.remove('cdk-focused');\n buttonList[i].classList.remove('cdk-program-focused');\n }\n });\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SubSink } from 'subsink';\nimport { NullAble } from '../../models';\nimport { GenericDialogComponent } from '../generic-dialog/generic-dialog.component';\nimport { ButtonResponseType } from './button-response-types.enum';\nimport { DialogData } from './dialog-data.model';\n\n@Component({\n selector: 'kms-button-with-confirm-dialog',\n templateUrl: './button-with-confirm-dialog.component.html',\n styleUrls: ['./button-with-confirm-dialog.component.scss'],\n})\nexport class ButtonWithConfirmDialogComponent implements OnInit {\n @Input() disabled: NullAble<boolean>;\n @Input() buttonText: NullAble<string>;\n @Input() confirmTitle: NullAble<string>;\n @Input() confirmTextYes: NullAble<string>;\n @Input() confirmTextNo: NullAble<string>;\n\n // Outputs when dialogue was closed. Returns true, if yes was clicked, false otherwise\n @Output() onConfirmClosed: EventEmitter<boolean> = new EventEmitter();\n\n private subs = new SubSink();\n \n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(\n public dialog: MatDialog,\n ) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n start(){\n const data: DialogData = {\n title: this.confirmTitle,\n buttons:{\n primary: this.confirmTextYes,\n secondary: this.confirmTextNo,\n }\n };\n const dialogRef = this.dialog.open(GenericDialogComponent, {\n data: data,\n });\n\n this.subs.sink = dialogRef.afterClosed().subscribe(result => {\n if (result === ButtonResponseType.primary) {\n this.onConfirmClosed.emit(true);\n }else{\n this.onConfirmClosed.emit(false);\n }\n dialogRef.close();\n });\n }\n}\n","import { Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EnumValues } from 'enum-values/src/enumValues';\n//import { EnumValues } from 'enum-values';\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\n\n/**\n * Dropdown from data component {@link https://leaseplan-dev.rentoffice.de/styleguide#ui-elements}\n */\n@Component({\n selector: 'kms-dropdown-from-data',\n templateUrl: './dropdown-from-data.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownFromDataComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownFromDataComponent extends FormControlParentComponent\n implements OnInit, ControlValueAccessor, OnChanges {\n // structured data as a enum set. Can be used in combination with 'optionsPlainArray' to set diferent values by index\n @Input() optionsEnum: any;\n\n // structured data as a simple array of elements\n @Input() optionsPlainArray: any;\n\n // structured data as an array of objects used in combination with the input 'mapKey' and 'mapValue'\n @Input() optionsObjArray: any;\n // key identifier of the obj. If mapValue doesnt exist, mapKey is also the value\n @Input() mapKey?: any;\n // value identifier of the obj\n @Input() mapValue?: any;\n\n // options for the dropdown have a null value at the beginning of the array\n @Input() hasNullOption = false;\n\n @Input() translation?: ITranslation;\n @Input() placeholder = '';\n @Input() label = '';\n @Input() required = false;\n @Input() useEnumIndexAsValue = false;\n\n public keys: any[] = [];\n public values: any[] = [];\n\n Object = Object;\n\n constructor(\n public formBuilder: FormBuilder,\n public renderer: Renderer2,\n ) {\n super(formBuilder, renderer);\n }\n\n /**\n * Hook used to sync changes on set Label and Type\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges) {\n if (changes.optionsPlainArray) {\n this.keys = this.optionsPlainArray;\n this.values = this.optionsPlainArray;\n }\n this.setKeyValues();\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n dropdownData: [],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe(value => {\n this.internalValue = value.dropdownData;\n this.onChange(value.dropdownData);\n });\n\n super.ngOnInit();\n }\n\n /**\n * transofrms the data values to the correct format for be used by the template\n * @param value\n */\n private setKeyValues(): void {\n if (this.optionsObjArray && this.mapKey && this.mapValue) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapValue}`]);\n } else if (this.optionsObjArray && this.mapKey) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n }\n if (this.optionsEnum) {\n this.keys = EnumValues.getNames(this.optionsEnum);\n if (this.optionsPlainArray) {\n this.values = this.optionsPlainArray;\n } else {\n const values = EnumValues.getValues(this.optionsEnum);\n\n // var who defines if enum is componed just with keys or keyValues. E.g enum KeyEnum { VALUE1, VALUE2 } or enum KeyValueEnum { VALUE4 = 'V4', VALUE5 = 'V5' }\n let keyValueEnum = false;\n\n for (let i = 0; i < this.keys.length; i++) {\n if (i !== values[i]) {\n keyValueEnum = true;\n }\n }\n if (keyValueEnum || this.useEnumIndexAsValue) {\n this.values = values;\n } else {\n this.values = EnumValues.getNames(this.optionsEnum);\n }\n }\n }\n if (this.hasNullOption === true) this.keys.unshift(null);\n if (this.hasNullOption === true) this.values.unshift(null);\n }\n\n /**\n * set the value of the dropdown based if translation is set\n * @param key \n */\n public setDisplayKey(key: any) {\n /*\n if (this.translation && key !== null) {\n if (this.translation.isPrefix) {\n return this.translationService.instant(this.translation.path + '.' + key);\n } else if (this.translation.useKey) {\n return this.translationService.instant(this.translation.path, { key: key });\n } else if (!this.translation?.useKey && !this.translation?.isPrefix) {\n return this.translationService.instant(this.translation.path);\n }\n } else if (key == null) {\n return '';\n } else if (!this.translation) {\n return key;\n }\n */\n return key;\n }\n\n valueChanged(value: any) {\n this.form.patchValue({\n dropdownData: value,\n });\n this.onSelectItemEmitter.emit(value);\n }\n}\n\n/**\n * Interface that defines the translation object in template\n */\ninterface ITranslation {\n path: string;\n useKey?: boolean;\n isPrefix?: boolean;\n}\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport {\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\n\r\nimport { SwiperComponent } from 'ngx-useful-swiper';\r\nimport { SwiperOptions } from 'swiper';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ImageSnippet } from '../../models/image-snippet.model';\r\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from '../../directives/swipe.model';\r\n\r\n\r\n@Component({\r\n selector: 'kms-image-slider',\r\n templateUrl: './image-slider.component.html',\r\n styleUrls: ['./image-slider.component.scss'],\r\n})\r\nexport class ImageSliderComponent implements OnInit, OnChanges {\r\n @Input() slides: string[] | undefined;\r\n @Input() editMode = false;\r\n @Input() imagesTOSave: ImageSnippet[] | undefined;\r\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\r\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\r\n\r\n /**\r\n * Optional: Define Swipe behaviour configuration.\r\n * Default is 10% for the threshold definition until a swipe triggers next/previous slide.\r\n */\r\n @Input() swipeConfig: SwipeOptions = {\r\n swipeThreshold: 5,\r\n swipeThresholdType: '%',\r\n swipeLocalPosition: true,\r\n };\r\n\r\n public selectedSlide = 0;\r\n public checkedImageIndex?: number;\r\n\r\n public selectedSlideImage: SafeStyle | undefined;\r\n public isLastClickedInSliderImage = false;\r\n\r\n @ViewChild('usefulSwiper') usefulSwiper: SwiperComponent | undefined;\r\n\r\n config: SwiperOptions = {\r\n initialSlide: 0,\r\n slidesPerView: 3,\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n },\r\n watchOverflow: true,\r\n autoHeight: true,\r\n allowTouchMove: false,\r\n spaceBetween: 30,\r\n on: {\r\n slideChange: () => {\r\n // do something\r\n },\r\n slideChangeTransitionEnd: () => {\r\n // do something\r\n },\r\n },\r\n };\r\n\r\n constructor(public sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n if (this.slides) {\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\r\n }\r\n }\r\n\r\n // !TODO\r\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if (event.key === 'ArrowRight') {\r\n this.nextSlide();\r\n }\r\n if (event.key === 'ArrowLeft') {\r\n this.previousSlide();\r\n }\r\n }\r\n\r\n /**\r\n * Slide follows the finger or mouse according to it´s move delta.\r\n * @param event SwipeMoveEvent\r\n */\r\n handleMoveEvent(event: SwipeMoveEvent) {\r\n // certain move threshold needs to be reached\r\n if (!event.thresholdWasReached) {\r\n return;\r\n }\r\n this.config.direction = event.direction === 1 ? 'horizontal' : 'vertical';\r\n }\r\n\r\n /**\r\n * Mouse up or slide container was left.\r\n * @param event SwipeReleaseEvent\r\n */\r\n handleReleaseEvent(event: SwipeReleaseEvent) {\r\n if (!event.thresholdWasReached) {\r\n return;\r\n }\r\n // Just do if user clicked to slide on image and not on arrow or other element\r\n if (!this.isLastClickedInSliderImage) {\r\n return;\r\n }\r\n if (event.direction === 1) {\r\n this.previousSlide();\r\n } else {\r\n this.nextSlide();\r\n }\r\n }\r\n\r\n lastClicked() {\r\n this.isLastClickedInSliderImage = true;\r\n }\r\n\r\n noLastClicked() {\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n scrollLeft() {\r\n this.previousSlide();\r\n }\r\n\r\n scrollRight() {\r\n this.nextSlide();\r\n }\r\n\r\n nextSlide() {\r\n if (this.slides && this.selectedSlide < this.slides.length - 1) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slideNext();\r\n }\r\n this.openSlide(this.selectedSlide + 1);\r\n }\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n previousSlide() {\r\n if (this.selectedSlide > 0) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slidePrev();\r\n }\r\n this.openSlide(this.selectedSlide - 1);\r\n }\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n slideTo(index: number) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slideTo(index);\r\n }\r\n }\r\n\r\n openSlide(number: number) {\r\n if (this.slides && number < this.slides.length && number >= 0) {\r\n this.selectedSlide = number;\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[number] || ')');\r\n }\r\n }\r\n\r\n ngOnChanges(_changes: SimpleChanges) {\r\n if (_changes.slides) {\r\n if (this.slides) {\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Re-order slides and notify parent component\r\n */\r\n drop(event: CdkDragDrop<string[]>) {\r\n if (this.slides && this.imagesTOSave) {\r\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\r\n moveItemInArray(this.imagesTOSave, event.previousIndex, event.currentIndex);\r\n this.orderChanged.emit(this.imagesTOSave);\r\n }\r\n }\r\n\r\n /**\r\n * Send image index to parent to perform delete\r\n */\r\n deleteImage(index: number) {\r\n this.deleteImageEvent.emit(index);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({ selector: '[mouseWheel]' })\r\nexport class MouseWheelDirective {\r\n @Output() mouseWheelUp = new EventEmitter();\r\n @Output() mouseWheelDown = new EventEmitter();\r\n\r\n \r\n @HostListener('mousewheel', ['$event']) onMouseWheelChrome(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n \r\n @HostListener('DOMMouseScroll', ['$event']) onMouseWheelFirefox(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n @HostListener('onmousewheel', ['$event']) onMouseWheelIE(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n \r\n mouseWheelFunc(event: any) {\r\n event = window.event || event; // old IE support\r\n \r\n const delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));\r\n if (delta > 0) {\r\n this.mouseWheelUp.emit(event);\r\n } else if (delta < 0) {\r\n this.mouseWheelDown.emit(event);\r\n }\r\n // for IE\r\n event.returnValue = false;\r\n // for Chrome and Firefox\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\n// ng\r\nimport { AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * Directive to calc the height of all inner elements\r\n */\r\n@Directive({\r\n \r\n selector: '[getMaxHeight]',\r\n})\r\nexport class GetMaxHeightDirective implements AfterContentChecked {\r\n /**\r\n * CSS class name of the child items (markup elements) that should be checked for their height.\r\n * This is mandatory.\r\n */\r\n @Input('getMaxHeight') cssClassName = '';\r\n\r\n /**\r\n * Event that will pass the height of the tallest child inside the container.\r\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\r\n */\r\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\r\n\r\n /**\r\n * Event that will pass the complete sum of all height values from each child.\r\n * Useful to calculate the full target height of a container (like dropdown) for animations.\r\n */\r\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngAfterContentChecked(): void {\r\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\r\n }\r\n\r\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\r\n if (!parent) {\r\n return;\r\n }\r\n\r\n // find all the child elements with the selected class name\r\n const children = parent.getElementsByClassName(cssClassName);\r\n\r\n // failsafe\r\n if (!children) {\r\n return;\r\n }\r\n\r\n // get all the child elements heights\r\n const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);\r\n\r\n // failsafe\r\n if (itemHeights.length === 0) {\r\n return;\r\n }\r\n\r\n // find out the tallest element\r\n const maxHeight = itemHeights.reduce((prev, curr) => {\r\n return curr > prev ? curr : prev;\r\n }, 0);\r\n\r\n // get sum of heights\r\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\r\n\r\n // inform\r\n this.maxHeightChanged.emit(maxHeight);\r\n this.sumOfHeight.emit(sumOfHeight);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\r\n\r\n@Directive({\r\n selector: '[swipeDirective]',\r\n})\r\nexport class SwipeDirective {\r\n /**\r\n * Output Event that is emitted during swipe process (mouse move or touch move event).\r\n * Can be used for calculation purposes.\r\n */\r\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\r\n\r\n /**\r\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\r\n * Can be used for calculation purposes.\r\n */\r\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\r\n\r\n private _swipeOptions: SwipeOptions | undefined;\r\n\r\n private _moveEventData: SwipeMoveEvent | undefined;\r\n private _startPosition = -1;\r\n\r\n private _lastPosX = 0;\r\n\r\n private _thresholdWasReached = false;\r\n\r\n private _isMobile: boolean | undefined;\r\n\r\n private _timeStart = 0;\r\n\r\n /**\r\n * Needed config that defines swipe behaviour.\r\n * @param options SwipeOptions\r\n */\r\n @Input('swipeDirective')\r\n set config(options: SwipeOptions) {\r\n if (options) {\r\n this._swipeOptions = options;\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n onMouseDown(event: any) {\r\n this.calculateStartPosition(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n @HostListener('touchmove', ['$event'])\r\n onMove(event: any) {\r\n this.move(event);\r\n }\r\n\r\n @HostListener('mouseup', ['$event'])\r\n @HostListener('mouseleave', ['$event'])\r\n @HostListener('touchend', ['$event'])\r\n onRelease(event: any) {\r\n this.release(event);\r\n this.reset();\r\n }\r\n\r\n // ** PRIVATE ** //\r\n\r\n /**\r\n * Function checks if the current moving delta is inside the defined threshold.\r\n * Sets the flag to true if the threshold was reached once.\r\n */\r\n private checkThreshold(moveEvent: SwipeMoveEvent) {\r\n const percentage = this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\r\n\r\n if (!percentage && this._swipeOptions && moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold) {\r\n return;\r\n } else if (\r\n percentage &&\r\n this._swipeOptions &&\r\n moveEvent.swipeDistancePercentage < this._swipeOptions.swipeThreshold / 100\r\n ) {\r\n return;\r\n } else {\r\n this._thresholdWasReached = true;\r\n }\r\n }\r\n\r\n private calculateStartPosition(event?: any) {\r\n // detect if touch or click\r\n this._isMobile = event.type === 'touchstart';\r\n\r\n // save start position\r\n\r\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\r\n if (this._isMobile) {\r\n const touch: Touch = event.touches[0];\r\n this._startPosition = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\r\n } else {\r\n this._startPosition = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\r\n }\r\n }\r\n\r\n this._lastPosX = this._startPosition;\r\n this._timeStart = event.timeStamp;\r\n this._thresholdWasReached = false;\r\n }\r\n\r\n private move(event: any) {\r\n // failsafe\r\n if (typeof event === 'undefined') {\r\n return;\r\n }\r\n\r\n let posX = 0;\r\n\r\n if (this._swipeOptions) {\r\n if (this._isMobile && event.type === 'touchmove') {\r\n const touch: Touch = event.touches[0];\r\n posX = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\r\n } else {\r\n posX = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\r\n }\r\n }\r\n\r\n const offsetPerFrame: number = posX - this._lastPosX;\r\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\r\n const swipeDistancePercentage: number = Math.abs(swipeDistanceTotal / event.target.clientWidth);\r\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\r\n\r\n let direction: number;\r\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\r\n speed = Math.max(0.1, speed);\r\n\r\n if (posX - this._startPosition > 0) {\r\n direction = 1; // a.k.a LTR\r\n } else {\r\n direction = -1; // a.k.a RTL\r\n }\r\n\r\n this._moveEventData = {\r\n position: posX,\r\n offsetPerFrame: offsetPerFrame,\r\n swipeDistanceTotal: swipeDistanceTotal,\r\n swipeDistancePercentage: swipeDistancePercentage,\r\n direction: direction,\r\n speed: speed,\r\n thresholdWasReached: this._thresholdWasReached,\r\n };\r\n\r\n this.checkThreshold(this._moveEventData);\r\n\r\n // update move delta\r\n this._lastPosX = posX;\r\n\r\n // inform\r\n this.moveEvent.emit(this._moveEventData);\r\n }\r\n\r\n private release(event: any) {\r\n // case: just a click/touch\r\n\r\n if (!this._moveEventData) {\r\n return;\r\n }\r\n\r\n const releaseEventData: SwipeReleaseEvent = {\r\n thresholdWasReached: this._thresholdWasReached,\r\n direction: this._moveEventData.direction,\r\n speed: this._moveEventData.speed,\r\n easingType: this.getEasingCurve(this._moveEventData.speed),\r\n target: event.currentTarget,\r\n };\r\n\r\n // inform\r\n this.releaseEvent.emit(releaseEventData);\r\n }\r\n\r\n private getEasingCurve(speed: number): string {\r\n return speed > 0.5 ? 'ease-in' : 'ease-out';\r\n }\r\n\r\n private reset() {\r\n this._startPosition = -1;\r\n this._thresholdWasReached = false;\r\n\r\n if (this._moveEventData) {\r\n this._moveEventData = undefined;\r\n }\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[kmsTooltip]'\r\n})\r\nexport class TooltipDirective {\r\n @Input('tooltipTitle') tooltipTitle = \"\";\r\n @Input('tooltipText') tooltipText = \"\";\r\n @Input('tooltipLinkText') tooltipLinkText = \"\";\r\n @Input('tooltipLinkUrl') tooltipLinkUrl = \"\";\r\n @Input('tooltipPlacement') tooltipPlacement = \"bottom\";\r\n @Input('tooltipDelay') tooltipDelay = 1000;\r\n @Input('tooltipPlaceIntoHost') tooltipPlaceIntoHost = false;\r\n @Input('tooltipOnlyonclick') tooltipOnlyonclick = false;\r\n\r\n tooltipElem?: HTMLElement | undefined;\r\n tooltipLinkElem?: HTMLElement | undefined;\r\n tooltipTitleElem?: HTMLElement | undefined;\r\n tooltipTextElem?: HTMLElement | undefined;\r\n offset = 0;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (!this.tooltipOnlyonclick) { this.show(); }\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.tooltipOnlyonclick) { this.show(); }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n if (this.tooltipElem) { this.hide(); }\r\n }\r\n\r\n show() {\r\n if (!this.tooltipElem){\r\n this.create();\r\n this.setPosition();\r\n }\r\n this.renderer.addClass(this.tooltipElem, 'tooltip-show');\r\n }\r\n\r\n hide() {\r\n this.renderer.removeClass(this.tooltipElem, 'tooltip-show');\r\n window.setTimeout(() => {\r\n }, this.tooltipDelay);\r\n }\r\n\r\n create() {\r\n this.tooltipElem = this.renderer.createElement('kms-tooltip-element');\r\n\r\n this.tooltipTitleElem = this.renderer.createElement('b');\r\n this.renderer.appendChild(this.tooltipTitleElem, this.renderer.createText(this.tooltipTitle));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipTitleElem);\r\n \r\n this.tooltipTextElem = this.renderer.createElement('div');\r\n this.renderer.appendChild(this.tooltipTextElem, this.renderer.createText(this.tooltipText));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipTextElem);\r\n \r\n this.tooltipLinkElem = this.renderer.createElement('a');\r\n this.renderer.setAttribute(this.tooltipLinkElem, 'href', this.tooltipLinkUrl);\r\n this.renderer.appendChild(this.tooltipLinkElem, this.renderer.createText(this.tooltipLinkText));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipLinkElem);\r\n\r\n if(this.tooltipPlaceIntoHost){\r\n this.renderer.appendChild(this.el.nativeElement, this.tooltipElem);\r\n }else{\r\n this.renderer.appendChild(document.body, this.tooltipElem);\r\n }\r\n\r\n this.renderer.addClass(this.tooltipElem, 'tooltip');\r\n this.renderer.addClass(this.tooltipElem, `tooltip-${this.tooltipPlacement}`);\r\n this.renderer.setStyle(this.tooltipElem, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n if(this.tooltipElem){\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltipElem.getBoundingClientRect();\r\n\r\n let top, left;\r\n\r\n if(this.tooltipPlaceIntoHost){\r\n left = 0;\r\n top = hostPos.height; \r\n } else {\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\r\n if (this.tooltipPlacement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (!this.tooltipPlacement || this.tooltipPlacement === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPlacement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPlacement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n top += scrollPos;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltipElem, 'top', `${top}px`);\r\n this.renderer.setStyle(this.tooltipElem, 'left', `${left}px`);\r\n }\r\n }\r\n}","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { MouseWheelDirective } from './mousewheel.directive';\r\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\r\nimport { SwipeDirective } from './swipe.directive';\r\nimport { TooltipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SwipeDirective,\r\n MouseWheelDirective,\r\n GetMaxHeightDirective,\r\n TooltipDirective,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n SwipeDirective,\r\n MouseWheelDirective,\r\n GetMaxHeightDirective,\r\n TooltipDirective,\r\n ],\r\n})\r\nexport class DirectivesModule {}\r\n","import { NgModule, } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\r\nimport { ActionsParentComponent } from './parent-components/actions.component';\r\nimport { CheckboxComponent } from './ui/checkbox/checkbox.component';\r\n\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { ColorInputComponent } from './ui/color-input/color-input.component';\r\nimport { RadioButtonComponent } from './ui/radiobutton/radiobutton.component';\r\nimport { TimeInputComponent } from './ui/time-input/time-input.component';\r\nimport { YesNoRadiogroupComponent } from './ui/yes-no-radiogroup/yes-no-radiogroup.component';\r\nimport { FileInputComponent } from './ui/file-input/file-input.component';\r\nimport { LoaderComponent } from './ui/loader/loader.component';\r\nimport { FlyoutComponent } from './ui/flyout/flyout.component';\r\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\r\nimport { IconComponent } from './ui/icon/icon.component';\r\nimport { EnumRadiogroupComponent } from './ui/enum-radiogroup/enum-radiogroup.component';\r\nimport { KMSAccordionItemComponent } from './ui/kms-accordion-item/kms-accordion-item.component';\r\nimport { MapComponent } from './ui/map/map.component';\r\nimport { SalutationDropdownComponent } from './ui/salutation-dropdown/salutation-dropdown.component';\r\nimport { TooltipComponent } from './ui/tooltip/tooltip.component';\r\nimport { TooltipIconComponent } from './ui/tooltip-icon/tooltip-icon.component';\r\n\r\nimport { SalutationRadiogroupComponent } from './ui/salutation-radiogroup/salutation-radiogroup.component';\r\nimport { BackToTopComponent } from './ui/back-to-top/back-to-top.component';\r\nimport { ButtonWithConfirmDialogComponent } from './ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { GenericDialogComponent } from './ui/generic-dialog/generic-dialog.component';\r\nimport { MatExpansionModule} from '@angular/material/expansion';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { DropdownFromDataComponent } from './ui/dropdown-from-data/dropdown-from-data.component';\r\nimport { ImageSliderComponent } from './ui/image-slider/image-slider.component';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ViewportService } from './services/viewport.service';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n ActionsParentComponent,\r\n BackToTopComponent,\r\n ButtonWithConfirmDialogComponent,\r\n CheckboxComponent,\r\n ColorInputComponent,\r\n DropdownFromDataComponent,\r\n EnumRadiogroupComponent,\r\n EnumRadiogroupComponent,\r\n FileInputComponent,\r\n FlyoutComponent,\r\n GenericDialogComponent,\r\n IconComponent,\r\n ImageSliderComponent,\r\n KMSAccordionItemComponent,\r\n KmsUiPresentationalComponent,\r\n LoaderComponent,\r\n MapComponent,\r\n RadioButtonComponent,\r\n SalutationDropdownComponent,\r\n SalutationRadiogroupComponent,\r\n TimeInputComponent,\r\n TooltipComponent,\r\n TooltipIconComponent,\r\n YesNoRadiogroupComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n CustomPipesModule,\r\n GoogleMapsModule,\r\n MatExpansionModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n DirectivesModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n ActionsParentComponent,\r\n BackToTopComponent,\r\n ButtonWithConfirmDialogComponent,\r\n CheckboxComponent,\r\n ColorInputComponent,\r\n DropdownFromDataComponent,\r\n EnumRadiogroupComponent,\r\n EnumRadiogroupComponent,\r\n FileInputComponent,\r\n FlyoutComponent,\r\n GenericDialogComponent,\r\n IconComponent,\r\n ImageSliderComponent,\r\n KMSAccordionItemComponent,\r\n KmsUiPresentationalComponent,\r\n LoaderComponent,\r\n MapComponent,\r\n RadioButtonComponent,\r\n SalutationDropdownComponent,\r\n SalutationRadiogroupComponent,\r\n TimeInputComponent,\r\n TooltipComponent,\r\n TooltipIconComponent,\r\n YesNoRadiogroupComponent,\r\n ],\r\n providers: [\r\n ViewportService\r\n ]\r\n})\r\nexport class KmsUiPresentationalModule { }\r\n","/*\r\n * Public API Surface of kms-ngx-ui-presentational\r\n */\r\n\r\nexport * from './lib/kms-ngx-ui-presentational.service';\r\nexport * from './lib/kms-ngx-ui-presentational.component';\r\nexport * from './lib/kms-ngx-ui-presentational.module';\r\nexport * from './lib/pipes/custom-pipes.module';\r\nexport * from './lib/directives/directives.module';\r\n\r\nexport * from './lib/models/iconSize.enum';\r\nexport * from './lib/models/salutation.enum';\r\n//export * from './lib/ui/checkbox/checkbox.component';\r\n//export * from './lib/parent-components/actions.component';\r\nexport * from './lib/ui/generic-dialog/generic-dialog.component';\r\nexport * from './lib/services/viewport.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MouseWheelDirective as ɵbi} from './lib/directives/mousewheel.directive';\nexport {GetMaxHeightDirective as ɵbj} from './lib/directives/sum-of-height.directive';\nexport {SwipeDirective as ɵbh} from './lib/directives/swipe.directive';\nexport {TooltipDirective as ɵbk} from './lib/directives/tooltip.directive';\nexport {ActionsParentComponent as ɵa} from './lib/parent-components/actions.component';\nexport {FormControlParentComponent as ɵf} from './lib/parent-components/form-control.component';\nexport {FormParentComponent as ɵg} from './lib/parent-components/form.component';\nexport {DecodeUriPipe as ɵbd} from './lib/pipes/decode-uri.pipe';\nexport {EncodeUriPipe as ɵbc} from './lib/pipes/encode-uri.pipe';\nexport {IntegerCurrency as ɵy} from './lib/pipes/integer-currency.pipe';\nexport {SafeHtmlPipe as ɵz} from './lib/pipes/safe-html.pipe';\nexport {SafeStylePipe as ɵba} from './lib/pipes/safe-style.pipe';\nexport {SafeUrlPipe as ɵbb} from './lib/pipes/safe-url.pipe';\nexport {ToNumberPipe as ɵbg} from './lib/pipes/to-number.pipe';\nexport {TrimPipe as ɵbf} from './lib/pipes/trim.pipe';\nexport {TypeofPipe as ɵbe} from './lib/pipes/typeof.pipe';\nexport {BackToTopComponent as ɵb} from './lib/ui/back-to-top/back-to-top.component';\nexport {ButtonWithConfirmDialogComponent as ɵc} from './lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nexport {DialogData as ɵl} from './lib/ui/button-with-confirm-dialog/dialog-data.model';\nexport {CheckboxComponent as ɵd} from './lib/ui/checkbox/checkbox.component';\nexport {ColorInputComponent as ɵe} from './lib/ui/color-input/color-input.component';\nexport {DropdownFromDataComponent as ɵh} from './lib/ui/dropdown-from-data/dropdown-from-data.component';\nexport {EnumRadiogroupComponent as ɵi} from './lib/ui/enum-radiogroup/enum-radiogroup.component';\nexport {FileInputComponent as ɵj} from './lib/ui/file-input/file-input.component';\nexport {FlyoutComponent as ɵk} from './lib/ui/flyout/flyout.component';\nexport {IconComponent as ɵm} from './lib/ui/icon/icon.component';\nexport {ImageSliderComponent as ɵn} from './lib/ui/image-slider/image-slider.component';\nexport {KMSAccordionItemComponent as ɵo} from './lib/ui/kms-accordion-item/kms-accordion-item.component';\nexport {LoaderComponent as ɵp} from './lib/ui/loader/loader.component';\nexport {MapComponent as ɵq} from './lib/ui/map/map.component';\nexport {RadioButtonComponent as ɵr} from './lib/ui/radiobutton/radiobutton.component';\nexport {SalutationDropdownComponent as ɵs} from './lib/ui/salutation-dropdown/salutation-dropdown.component';\nexport {SalutationRadiogroupComponent as ɵt} from './lib/ui/salutation-radiogroup/salutation-radiogroup.component';\nexport {TimeInputComponent as ɵu} from './lib/ui/time-input/time-input.component';\nexport {TooltipIconComponent as ɵw} from './lib/ui/tooltip-icon/tooltip-icon.component';\nexport {TooltipComponent as ɵv} from './lib/ui/tooltip/tooltip.component';\nexport {YesNoRadiogroupComponent as ɵx} from './lib/ui/yes-no-radiogroup/yes-no-radiogroup.component';"],"names":["IconSize"],"mappings":"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"}
1
+ {"version":3,"file":"kms-ngx-ui-presentational.js","sources":["../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/actions.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/checkbox/checkbox.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/parent-components/form-control.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/is-value.function.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/integer-currency.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/decode-uri.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/encode-uri.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-style.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-url.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/typeof.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/trim.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/to-number.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/custom-pipes.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/services/viewport.service.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/map/map.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/salutation.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-dropdown/salutation-dropdown.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/nullable.type.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/models/types/attached-file-dto.model.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/button-with-confirm-dialog/button-response-types.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/generic-dialog/generic-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/mousewheel.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/tooltip.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/directives.module.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/kms-ngx-ui-presentational.module.ts","../../../../projects/kms-ngx-ui-presentational/src/public-api.ts","../../../../projects/kms-ngx-ui-presentational/src/kms-ngx-ui-presentational.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KmsUiPresentationalService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-kms-ngx-ui-presentational',\n template: `\n <p>\n kms-ngx-ui-presentational works!\n </p>\n `,\n styles: [\n ]\n})\nexport class KmsUiPresentationalComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'kms-actions',\n template: '',\n})\nexport class ActionsParentComponent {\n /**\n * Defines the disabled property\n */\n @Input() disabled = false;\n\n /**\n * Set button as selected. F.e. in multiselect component\n */\n @Input() checked = false;\n\n /**\n * Displayed label.\n */\n @Input() label = '';\n\n /**\n * Link\n */\n @Input() link = '';\n\n /**\n * Internal value that will be send if a form is submitted.\n */\n @Input() initialValue = '';\n\n @Output() select = new EventEmitter();\n\n selectAction(id: string) {\n this.checked = !this.checked;\n this.select.emit(id);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\n\n\n@Component({\n selector: 'kms-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent extends ActionsParentComponent implements ControlValueAccessor {\n\n\n /**\n * Additional description text that will be shown below the checkbox.\n */\n @Input() infoText: NullAble<string>;\n\n /**\n * Internal description name. All checkboxes with the same name belong to the same group.\n * User can select none, one or all checkboxes with the same name.\n */\n @Input() name = '';\n\n @Output() select = new EventEmitter();\n selectAction(id: string) {\n this.select.emit(id);\n this.checked = !this.checked;\n }\n\n constructor() {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'kms-form',\n template: '',\n})\nexport class FormParentComponent implements OnInit {\n public form!: FormGroup;\n public formInitialized = false;\n private allowedCharsOnlyNumbers = new Set('0123456789'.split('').map(c => c.charCodeAt(0)));\n\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\n\n @Input() disabled = false;\n\n constructor(\n public formBuilder: FormBuilder\n ) {\n\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Returns if a number was pressed\n * @param e \n * @returns \n */\n checkIfKeyWasNumber(e: KeyboardEvent, allowDelete = true, allowArrows = true, allowCutCopyPaste = true){\n // returns if keycode of numbers-row or numberpad. Or if parameter set, allow delete/backspace key\n const isNumberRow = e.keyCode >= 48 && e.keyCode <= 57;\n const isNumberPad = e.keyCode >= 96 && e.keyCode <= 105;\n const isArrows = e.keyCode >= 37 && e.keyCode <= 40;\n const isDelete = e.keyCode == 8 || e.keyCode == 46;\n const isCutCopyOrPaste = (e.ctrlKey || e.metaKey) && (e.keyCode == 86 || e.keyCode == 88 || e.keyCode == 67);\n return (isNumberRow) || (isNumberPad) || (allowDelete && isDelete) || (allowArrows && isArrows) || (allowCutCopyPaste && isCutCopyOrPaste);\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Prevents to input other chars than numbers in input\n * @param event \n */\n removeNumbersOnType(event: KeyboardEvent) {\n // only allow keydown from numbers-row or numberpad of keybard and block other chars than numbers\n if (!this.checkIfKeyWasNumber(event) && !this.allowedCharsOnlyNumbers.has(event.keyCode)) {\n event.preventDefault();\n }\n }\n\n // TODO make a service or make own compoennt etc.\n /**\n * Prevents input when pasting which is not number\n * @param event\n */\n removeNumbersOnPaste(event: ClipboardEvent){\n const clipboardData = event.clipboardData;\n if(clipboardData){\n const pastedText = clipboardData.getData('text');\n if(pastedText){\n const isnum = /^\\d+$/.test(pastedText);\n if(!isnum) {\n event.preventDefault();\n }\n }\n }\n }\n\n ngOnInit() {\n this.formDataChanged.emit(this.form);\n this.form.valueChanges.subscribe(() => {\n this.formDataChanged.emit(this.form);\n });\n }\n}\n","import { Component, ElementRef, Input, EventEmitter, Output, ViewChild, Renderer2 } from '@angular/core';\nimport { FormBuilder, FormControl } from '@angular/forms';\nimport { FormParentComponent } from './form.component';\n\n@Component({\n selector: 'kms-formControlParent',\n template: '',\n})\nexport class FormControlParentComponent extends FormParentComponent {\n @Input() defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually\n @Output() onSelectItemEmitter = new EventEmitter<string>();\n\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue = '';\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder);\n }\n\n ngOnInit(){\n super.ngOnInit();\n }\n\n change(value: string) {\n this.onChange(value);\n this.onTouched();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n\n get value(): string {\n return this.internalValue;\n }\n\n set value(value: string) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n if (!this.internalValue && this.defaultDataOverride) {\n this.internalValue = this.defaultDataOverride;\n }\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: string) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\n }\n }\n\n validate(_: FormControl) {\n return this.form.valid ? null : false;\n }\n\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-color-input',\n templateUrl: './color-input.component.html',\n styleUrls: ['./color-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColorInputComponent),\n multi: true,\n },\n ],\n})\nexport class ColorInputComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n\n @Input() label = '';\n @Input() tooltipText = '';\n @Input() placeholder = '';\n valid: boolean | null | undefined;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n color: '',\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.color;\n this.onChange(value.color);\n });\n\n super.ngOnInit();\n }\n\n validate(_: FormControl) {\n // TODO fix to validate complete form\n this.valid = this.matchesHex(this.form.value) ? null : false;\n return this.valid && {\n invalid: !this.valid\n };\n }\n\n matchesHex(match?: string){\n if(match){\n const ret = match.match(/^#[0-9a-f]{6}$/i);\n this.valid = ret && ret.length>0;\n return ret;\n }\n return false;\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\n\n@Component({\n selector: 'kms-radiobutton',\n templateUrl: './radiobutton.component.html',\n styleUrls: ['./radiobutton.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButtonComponent),\n multi: true,\n },\n ],\n})\nexport class RadioButtonComponent extends ActionsParentComponent implements ControlValueAccessor {\n /**\n * Internal description name. All radio buttons with the same name belong to the same group.\n * User can select exactly one of the radio buttons from the same group.\n */\n @Input() name = '';\n\n /**\n * Internal description id. Will be send in the output event when the radio button is selected.\n */\n @Input() id = '';\n\n @Input() formControl: any;\n\n selectAction(id: string) {\n this.select.emit(id);\n this.checked = !this.checked;\n }\n\n constructor() {\n super();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): boolean {\n return this.checked;\n }\n\n set value(value: boolean) {\n this.checked = value;\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n}\n","import { Component, forwardRef, OnInit } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kms-time-input',\n templateUrl: './time-input.component.html',\n styleUrls: ['./time-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeInputComponent),\n multi: true,\n },\n ],\n})\nexport class TimeInputComponent implements OnInit, ControlValueAccessor {\n public form!: FormGroup;\n h = '';\n m = '';\n\n constructor(public formBuilder: FormBuilder) {\n \n }\n\n get value(): string {\n return this.value;\n }\n \n set value(value: string) {\n this.onChange(value);\n this.onTouch(value);\n }\n\n writeValue(value: string) {\n if(value && value.length === 8){\n this.h = value.substr(0,2);\n this.m = value.substr(3,2);\n }else if(value && value.length === 5){\n this.h = value.substr(0,2);\n this.m = value.substr(-2);\n }\n \n //we need to also update the form value because angular has a problem reading it from first time when valuechanges subscription was fired.\n this.form.controls['h'].setValue(this.h);\n this.form.controls['m'].setValue(this.m);\n\n this.form.valueChanges.subscribe(value => {\n this.h = value.h;\n this.m = value.m;\n value = this.getNewOrDefault();\n this.value = value;\n this.onChange(value);\n });\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n h: '',\n m: '',\n });\n }\n\n getNewOrDefault(){\n //reset if user deletes everything\n if(this.h === '' && this.m === ''){\n return ''; \n }\n const ret = this.h.padStart(2, '0') + ':' + this.m.padStart(2, '0');\n return ret;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched: any = () => {};\n}\n","import { Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\n@Component({\n selector: 'kms-yesno-radiogroup',\n templateUrl: './yes-no-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => YesNoRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class YesNoRadiogroupComponent implements OnInit, ControlValueAccessor {\n \n @Input() header: NullAble<String>;\n @Input() disabled = false;\n @Input() textYes = '';\n @Input() textNo = '';\n public form!: FormGroup;\n \n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\n\n public internalValue: NullAble<boolean>;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n get value(): NullAble<boolean> {\n return this.internalValue;\n }\n\n set value(value: NullAble<boolean>) {\n this.internalValue = value;\n if (value !== undefined && this.internalValue !== value) {\n this.onChange(value);\n this.onTouch(value);\n }\n }\n\n writeValue(value: any) {\n this.internalValue = value;\n this.value = value;\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n setDisabledState?(isDisabled: boolean) {\n if (this.child) {\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\n }\n }\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n \n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n yesno: [],\n });\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.yesno;\n this.onChange(value.yesno);\n });\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport enum IconSize {\n FULLSIZE = 'size-full',\n TINY = 'size-16',\n SMALLER = 'size-20',\n SMALL = 'size-32',\n MEDIUM = 'size-64',\n LARGE = 'size-128',\n XL = 'size-256',\n XXL = 'size-512',\n XXXL = 'size-1024',\n NONE = 'NONE',\n}\n\n","/**\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { NullAble } from \"./types/nullable.type\";\n\n\n/**\n * Check if null or undefined\n * @param value value that is being checked\n */\nexport function isValue<T>(value: NullAble<T>): value is T {\n if (value === null) {\n return false;\n }\n if (typeof value === 'undefined') {\n return false;\n }\n return true;\n}\n","import { Component, Input, forwardRef, OnInit, ViewChild, Renderer2, EventEmitter, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';\n\nimport {\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n//import { TranslateService } from '@ngx-translate/core';\nimport { IconSize } from '../../models/iconSize.enum';\nimport { AttachedFileDTO } from '../../models/types/attached-file-dto.model';\nimport { isValue } from '../../models/is-value.function';\n\n// Max size in bytes of uploaded image\nconst MAX_SIZE_BYTES = 2097152;\n\n@Component({\n selector: 'kms-file-input',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => FileInputComponent),\n multi: true,\n },\n ],\n})\n\nexport class FileInputComponent implements ControlValueAccessor, OnInit {\n \n @ViewChild('fileInput') public fileInput: any;\n\n @Input() label = '';\n \n @Input() previewImage = true; \n @Input() allowRemove = true; \n @Input() previewImageText = ''; \n @Input() maxSizeBytes = MAX_SIZE_BYTES; \n @Input() resizePixels = 0; \n @Input() acceptedFileMimetypes = 'image/jpeg, image/jpg, image/png'; \n\n form= this.formBuilder.group({\n ImageIdent: new FormControl(''),\n ImageLink: new FormControl(''),\n Filename: new FormControl(''),\n ImageAsDataURL: new FormControl(''),\n Text: new FormControl(''),\n });\n\n subscriptions: Subscription[] = [];\n newImageLoading = false\n\n IconSize = IconSize;\n\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\n\n /**\n * Constructor\n * @param formBuilder \n * @param appRef \n * @param cd \n * @param translateService \n * @param renderer \n */\n constructor(\n public formBuilder: FormBuilder, \n public appRef: ApplicationRef,\n public cd: ChangeDetectorRef,\n //private translateService: TranslateService,\n public renderer: Renderer2\n ) {\n \n }\n\n /**\n * Click on button triggers file-input to open OS file dialog\n */\n selectImageOverlay() {\n this.fileInput.nativeElement.click();\n }\n\n /**\n * Function to manage the input image\n * Returns an error if the file exceeds maximum wanted filesize (Mb). \n * @param ev\n * @returns\n */\n selectImage(ev: any) {\n if (ev.target.files && ev.target.files[0]) {\n const file:File = ev.target.files[0];\n\n if (file.size > this.maxSizeBytes) {\n this.clearInputValue(ev);\n //alert(this.translateService.instant('errors.fileTooBig'));\n return;\n } else {\n this.newImageLoading = true;\n\n if(this.resizePixels > 0){\n const logoUrl = URL.createObjectURL(file);\n const imgEl = document.createElement('img');\n imgEl.addEventListener('load', () => {\n const resizedLogo = this.resizeImage(imgEl, this.resizePixels);\n const newFile = this.generateModel(file.name, resizedLogo, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\n this.value=newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n });\n imgEl.src = logoUrl;\n }else{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e: any) => {\n const newFile = this.generateModel(file.name, e.target.result, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\n this.value=newFile;\n this.newImageLoading = false;\n this.cd.markForCheck();\n };\n }\n \n }\n }else{\n console.warn(\"No file selected\");\n }\n }\n\n /**\n * Resize an image\n * @param imgEl\n * @param wantedWidth as number\n * @returns string \n */\n private resizeImage(imgEl: any, wantedWidth: number) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const aspect = imgEl.width / imgEl.height;\n canvas.width = wantedWidth;\n canvas.height = wantedWidth / aspect;\n if (isValue(ctx)) ctx.drawImage(imgEl, 0, 0, canvas.width, canvas.height);\n return canvas.toDataURL();\n }\n\n /**\n * Generate default object\n * @param name as string\n * @param content as string\n * @returns AttachedFileDTO\n */\n generateModel(name?: string, content?: string, ident?: string, imageLink?: string, text?: string){\n return {\n ImageIdent: ident ? ident : '',\n Filename: name ? name : '',\n ImageAsDataURL: content ? content : '',\n ImageLink: imageLink ? imageLink : '',\n Text: text ? text : ''\n } as AttachedFileDTO;\n }\n\n /**\n * Remove image \n */\n removeFromList(){\n this.value= this.generateModel('','', '', '');\n }\n\n /**\n * get value\n */\n get value(): AttachedFileDTO {\n return this.form.value;\n }\n\n /**\n * set value\n */\n set value(value: AttachedFileDTO) {\n this.form.setValue(value);\n this.onChange(value);\n this.formDataChanged.emit(this.form);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouch: any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n } \n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n writeValue(value: AttachedFileDTO | null) {\n if (value) {\n this.value = value;\n }\n\n if (value === null) {\n this.form.reset();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n validate(_: FormControl) {\n return this.form.valid ? null : { styles: { valid: false } };\n }\n\n /**\n * OnClick event listener of input#fileInput to clear his input value\n */\n clearInputValue(ev: any) {\n const element = ev.target as HTMLInputElement;\n element.value = '';\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kms-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n})\nexport class LoaderComponent implements OnInit {\n @Input() loading=false;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor() {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { state, style, trigger } from '@angular/animations';\nimport {\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n \n selector: 'kms-flyout',\n templateUrl: './flyout.component.html',\n styleUrls: ['./flyout.component.scss'],\n animations: [\n trigger('dropdownAnimation', [\n state(\n 'true',\n style({\n height: '{{targetHeight}}',\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n animationTime: 3000,\n },\n },\n ),\n state(\n 'false',\n style({\n height: 0,\n transition: 'height {{animationTime}}ms ease-in-out',\n }),\n {\n params: {\n targetHeight: '300px',\n opacity: 0,\n animationTime: 3000,\n },\n },\n ),\n ]),\n ],\n})\nexport class FlyoutComponent {\n\n @Input() icon = 'filter';\n\n isDropdownOpened = false;\n targetHeight = '0';\n animationTime = 5000;\n\n @Input() headerCssClass = '';\n @Input() bodyCssClass = '';\n\n @Input() headerTitle = '';\n @Input() headerText = '';\n @Input() hasButtonForMore = false;\n @Input() moreText = '';\n @Input() lessText = '';\n\n \n @ViewChild('content') content: ElementRef | undefined;\n \n @ViewChild('flyoutHeader') flyoutHeader: ElementRef | undefined;\n\n /**\n * Open/close dropdown if click on header.\n * Except, if mode is set to hasButtonForMore. When there is a extra button to open/close\n */\n toggleDropdownHeader() {\n if (!this.hasButtonForMore) {\n this.toggleDropdown();\n }\n }\n\n /**\n * Open or close the dropdown\n */\n toggleDropdown() {\n this.isDropdownOpened = !this.isDropdownOpened;\n }\n\n /**\n * Set the height of the dropdown list items dynamic - needed for the animation\n */\n setDropdownListHeight(contentHeight: number) {\n this.targetHeight = `${contentHeight}px`;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsIntegerCurrency',\n})\nexport class IntegerCurrency implements PipeTransform {\n constructor(private cp: CurrencyPipe) {}\n transform(value: any, currencyCode?: string, display?: boolean, digitsInfo?: string): string | null {\n const currencyPipeValue = this.cp.transform(value, currencyCode, display, digitsInfo)\n if (currencyPipeValue) {\n const convertedValue = currencyPipeValue.split(',')[0] + ' ' + currencyPipeValue.slice(-1)\n return convertedValue\n } else {\n throw new Error(\"No value provided\");\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsDecodeUri',\n})\nexport class DecodeUriPipe implements PipeTransform {\n\n transform(value: any, _args?: any): any {\n return decodeURI(value);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsEncodeUri',\n})\nexport class EncodeUriPipe implements PipeTransform {\n transform(value: any, _args?: any): any {\n return encodeURI(value);\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(html);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeStyle',\n})\nexport class SafeStylePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(style);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(style);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'kmsTrim' })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsToNumber',\n pure: false\n \n})\nexport class ToNumberPipe implements PipeTransform {\n transform(items: any): any {\n if (!items) {\n return 0;\n }\n return parseInt(items, 10);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\n import { CommonModule, CurrencyPipe } from '@angular/common';\n import { NgModule } from '@angular/core';\n \n import { IntegerCurrency } from './integer-currency.pipe';\n import { DecodeUriPipe } from './decode-uri.pipe';\n import { EncodeUriPipe } from './encode-uri.pipe';\n import { SafeHtmlPipe } from './safe-html.pipe';\n import { SafeStylePipe } from './safe-style.pipe';\n import { SafeUrlPipe } from './safe-url.pipe';\n import { TypeofPipe } from './typeof.pipe';\n import { TrimPipe } from './trim.pipe';\n import { ToNumberPipe } from './to-number.pipe';\n \n @NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n providers: [CurrencyPipe],\n })\n export class CustomPipesModule {}\n ","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport enum IconSize {\n FULLSIZE = 'size-full',\n TINY = 'size-16',\n SMALLER = 'size-20',\n SMALL = 'size-32',\n MEDIUM = 'size-64',\n LARGE = 'size-128',\n XL = 'size-256',\n XXL = 'size-512',\n XXXL = 'size-1024',\n NONE = 'NONE',\n}\n\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Input, OnInit, VERSION } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { IconSize } from './iconSize.enum';\n\n@Component({\n \n selector: 'kms-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n})\nexport class IconComponent implements OnInit {\n\n /**\n * Required: Name of the SVG icon inside your sprite sheet file with name 'icons.svg'.\n * Pass 'none' if no icon should be rendered.\n */\n @Input() icon!: string | '';\n\n /**\n * Optional: Different appearance via CSS class defined in this component´s style sheet.\n */\n @Input() iconClass!: string | '';\n\n /**\n * Optional: Different appearance via CSS inline style.\n */\n \n @Input() iconStyle: any;\n\n /**\n * Optional: Different size via CSS inline style.\n */\n @Input() iconSize: IconSize = IconSize.FULLSIZE;\n\n /**\n * Dont use icon sprite\n */\n \n @Input() dontUseSprite = false;\n\n IconSize = IconSize;\n Version = VERSION.full;\n\n public timestamp = 0;\n\n /**\n * Renders this icon from SVG sprite sheet\n */\n public iconToShow!: string | '';\n\n constructor(public sanitizer: DomSanitizer) {\n this.iconToShow = this.icon;\n }\n\n ngOnInit() {\n this.iconToShow = this.icon;\n const d = new Date();\n const n = d.getTime();\n this.timestamp = n;\n }\n\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\n\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-enum-radiogroup',\n templateUrl: './enum-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EnumRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class EnumRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n @Input() header: NullAble<String>;\n @Input() optionsEnum: any;\n @Input() translationPrefix = '';\n\n public optionValues: any;\n \n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit(){\n this.optionValues = Object.keys(this.optionsEnum).filter(x => !(parseInt(x) >= 0));\n this.form = this.formBuilder.group({\n enumData: [],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.enumData;\n this.onChange(value.enumData);\n });\n\n super.ngOnInit();\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n/**\n * A generic dialog component\n */\n@Component({\n \n selector: 'kms-accordion-item',\n templateUrl: './kms-accordion-item.component.html',\n styleUrls: ['./kms-accordion-item.component.scss'],\n})\nexport class KMSAccordionItemComponent implements OnInit {\n @Input() public itemTitle = '';\n \n public itemTitleTrustHtml: SafeHtml | undefined;\n @Input() public showAsCard = false;\n @Input() public isSmall = false;\n panelOpenState = false;\n\n constructor(public sanitizer: DomSanitizer) {\n\n }\n\n ngOnInit() {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(this.itemTitle);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { NullAble } from '../models';\n\n// needed for scrollToElement functionality\n\ndeclare const window: any;\n\ndeclare const document: any;\n\n/**\n * Service to get viewport\n */\n@Injectable()\nexport class ViewportService implements OnDestroy {\n public readonly viewports = [\n {\n name: 'xs',\n low: 420,\n high: 990,\n },\n {\n name: 's',\n low: 991,\n high: 1024,\n },\n {\n name: 'm',\n low: 1025,\n high: 1200,\n },\n {\n name: 'l',\n low: 12001,\n high: 1400,\n },\n {\n name: 'xl',\n low: 1401,\n high: 1600,\n },\n {\n name: 'xxl',\n low: 1601,\n high: 1920,\n },\n {\n name: 'xxxl',\n low: 1921,\n high: 99999,\n },\n ];\n\n private viewportChangedSubscriber: Subject<string> = new Subject<string>();\n private viewportResizedSubscriber: Subject<number> = new Subject<number>();\n private currentViewport!: string;\n\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n if (isPlatformBrowser(this.platformId)) {\n window.addEventListener('resize', this.documentSizeChanged.bind(this), { passive: true });\n }\n }\n\n /**\n * Get window height\n */\n public getDocumentHeight(): number {\n return isPlatformBrowser(this.platformId) ? document.body.clientHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getDocumentWidth(): number {\n return isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\n }\n\n /**\n * Get window height\n */\n public getWindowHeight(): number {\n return isPlatformBrowser(this.platformId) ? window.innerHeight : 1200;\n }\n\n /**\n * Get window width\n */\n public getWindowWidth(): number {\n return isPlatformBrowser(this.platformId) ? window.innerWidth : 1200;\n }\n\n /**\n * Returns the current viewport MQ as string\n * @returns string\n */\n getCurrentViewPort(): string {\n if (!this.currentViewport) {\n const currentWidth: number = isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\n this.currentViewport = this.convertWidthToMediaQuery(currentWidth);\n }\n\n return this.currentViewport;\n }\n\n /**\n * Provides mq´s as string\n */\n public getViewportChangedObserver(): Observable<string> {\n return this.viewportChangedSubscriber.asObservable();\n }\n\n /**\n * Provides the current window width as number\n */\n public getViewportResizedObserver(): Observable<number> {\n return this.viewportResizedSubscriber.asObservable();\n }\n\n public scrollToElementId(el: string, alignCenter = false) {\n if (isPlatformBrowser(this.platformId)) {\n this.scrollToElement(document.querySelector('#' + el), alignCenter);\n }\n }\n\n /**\n * Helper function that scrolls to the given markup element.\n * @param el - nativeElement from markup\n * @param alignCenter - defines if the element needs to be centered on window\n */\n\n public scrollToElement(el: HTMLElement, alignCenter = false) {\n if (isPlatformBrowser(this.platformId)) {\n let extraScrollTop = 0;\n\n if (alignCenter) {\n extraScrollTop = (window.innerHeight - el.clientHeight) / 2;\n }\n\n /*\n const elementPos: DOMRect = el.getBoundingClientRect();\n const scrollTopPosition = elementPos.x - extraScrollTop;\n */\n\n //let offsetLeft = 0;\n let offsetTop = 0;\n\n let elTemp: NullAble<HTMLElement> = el;\n\n while (elTemp) {\n //offsetLeft += elTemp.offsetLeft;\n offsetTop += elTemp.offsetTop;\n elTemp = elTemp.parentElement ? elTemp.parentElement : null;\n }\n\n window.scrollTo({ left: 0, top: offsetTop - extraScrollTop, behavior: 'smooth' });\n }\n }\n\n /**\n * Scroll to the top position\n * @param top - top position value\n */\n public scrollTop(top: number) {\n if (isPlatformBrowser(this.platformId)) {\n window.scrollTo({ left: 0, top: top, behavior: 'smooth' });\n }\n }\n\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n window.removeEventListener('resize', this.documentSizeChanged);\n }\n }\n\n /**\n * If viewport changed\n * @event\n */\n\n private documentSizeChanged(event: any) {\n const currentWindowWidth: number = event.target.innerWidth;\n // inform who´s interested\n this.viewportResizedSubscriber.next(currentWindowWidth);\n\n if (currentWindowWidth > 0) {\n for (const mqs of this.viewports) {\n if (currentWindowWidth > mqs.high) {\n continue;\n } else if (\n (currentWindowWidth >= mqs.low || currentWindowWidth <= mqs.high) &&\n this.currentViewport !== mqs.name\n ) {\n this.currentViewport = mqs.name;\n // inform who´s interested\n this.viewportChangedSubscriber.next(mqs.name);\n break;\n } else if (this.currentViewport === mqs.name) {\n break;\n } else {\n console.error('ERROR');\n }\n }\n }\n }\n\n /**\n * Get the Media Query for the given width\n * @param width Width to get the according MQ for\n */\n private convertWidthToMediaQuery(width: number) {\n let currentViewport = '';\n\n for (const mqs of this.viewports) {\n if (width <= mqs.high && width >= mqs.low) {\n currentViewport = mqs.name;\n break;\n }\n }\n\n return currentViewport;\n }\n\n isPortrait() {\n if (isPlatformBrowser(this.platformId)) return window.innerHeight > window.innerWidth;\n else return;\n }\n\n isLandscape() {\n if (isPlatformBrowser(this.platformId)) {\n const isLandscape = window.orientation === 90 || window.orientation === -90;\n return isLandscape;\n } else {\n return;\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Address } from '../../models/address.model';\nimport { ViewportService } from '../../services/viewport.service';\n\n/**\n * MarkerOptions class for Marker\n */\nexport class MarkerOptions {\n animation!: number;\n}\n\n/**\n * MarkerLabel class for Marker\n */\nexport class MarkerLabel {\n color!: string;\n text!: string;\n}\n\n/**\n * Marker class\n */\nexport class Marker {\n position!: google.maps.LatLngLiteral;\n label!: MarkerLabel;\n title!: string;\n options!: MarkerOptions;\n}\n\n/**\n * Component to show marker on google map for specific address\n */\n@Component({\n selector: 'kms-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent implements OnInit {\n\n @Input() data!: Address;\n\n public markers: Marker[] = [];\n public geoDataFoundForAddress = false;\n public widthSet = false;\n\n public width = '100%';\n public zoom = 15;\n public center: google.maps.LatLngLiteral = {\n \n lat: 52.097449,\n lng: 12.7436911,\n };\n\n public options: google.maps.MapOptions = {\n mapTypeId: 'roadmap',\n zoomControl: false,\n scrollwheel: false,\n disableDoubleClickZoom: true,\n maxZoom: 15,\n minZoom: 8,\n };\n\n \n public google: any;\n\n public geocoder: any;\n\n public viewportSubscription?: Subscription;\n\n //\n constructor(private viewPortService: ViewportService) { }\n\n ngOnInit() {\n this.findLocation(this.data.Street + ' ' + this.data.Zip + ' ' + this.data.City);\n\n\n }\n\n /**\n * Asks google for geocoordinates of a given address string\n * @input address as string\n */\n findLocation(address: string) {\n if (!this.geocoder) { this.geocoder = new google.maps.Geocoder(); }\n this.geocoder.geocode({\n 'address': address,\n \n }, (results: any, status: google.maps.GeocoderStatus) => {\n if (status === google.maps.GeocoderStatus.OK) {\n\n this.center.lat = results[0].geometry.location.lat();\n this.center.lng = results[0].geometry.location.lng();\n\n this.addMarker();\n this.geoDataFoundForAddress = true;\n\n // react to browser resize\n this.setMapWidth(this.viewPortService.getDocumentWidth());\n this.viewportSubscription = this.viewPortService.getViewportResizedObserver().subscribe(\n (val) => {\n this.setMapWidth(val);\n },\n (error) => {\n console.error('Get updated ViewPort failed', error);\n },\n );\n\n } else {\n console.error('Sorry, this search of map address produced no results.');\n }\n });\n }\n\n /**\n * Adds a marker to the map\n */\n addMarker() {\n this.markers.push({\n position: {\n lat: this.center.lat,\n lng: this.center.lng,\n },\n label: {\n color: 'blue',\n \n text: this.data.Name1 || '',\n },\n title: this.data.Name1 + ' ' + this.data.Street + ' ' + this.data.Zip,\n options: { animation: google.maps.Animation.DROP },\n });\n }\n\n /**\n * sets the width of map accodring to viewport\n */\n setMapWidth(val: number) {\n if (val < 991) {\n this.width = (val - 84) + 'px';\n }else{\n this.width = '100%';\n }\n this.widthSet = true;\n }\n\n /**\n * Zooms in into map\n */\n zoomIn() {\n if (this.options.maxZoom && this.zoom < this.options.maxZoom) { this.zoom++; }\n }\n\n /**\n * Zooms out from map\n */\n zoomOut() {\n if (this.options.minZoom && this.zoom > this.options.minZoom) { this.zoom--; }\n }\n}\n","// TODO change values after cleaned up database\nexport enum SalutationEnum {\n NOT_SPECIFIED = 'Keine Anrede',\n MALE = 'Herr',\n FEMALE = 'Frau',\n}\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NullAble } from '../../models';\nimport { SalutationEnum } from '../../models/salutation.enum';\n\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-salutation-dropdown',\n templateUrl: './salutation-dropdown.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationDropdownComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationDropdownComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n @Input() placeholder: NullAble<String>;\n\n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n salut: [],\n });\n this.formInitialized = true;\n \n //somehow for dropowns we have to set value manually with timeout for default value\n setTimeout(() => {\n this.form.controls['salut'].setValue(this.value ? this.value : '');\n }, 1000);\n\n\n this.form.valueChanges.subscribe((value) => {\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kms-tooltip-element',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss']\n})\nexport class TooltipComponent {\n @Input() tooltipTitle = \"\";\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nexport type NullAble<T> = T | null | undefined;\n","/**\n * Attached File DTO\n */\nexport class AttachedFileDTO {\n ImageIdent?: string;\n ImageLink?: string;\n Filename?: string;\n ImageAsDataURL?: string;\n CreateSmallImage?: boolean;\n Text?: string;\n}\n","import { Component, Input } from '@angular/core';\nimport { IconSize } from '../../models';\n\n@Component({\n selector: 'kms-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss']\n})\nexport class TooltipIconComponent {\n @Input() tooltipTitle = \"\";\n @Input() tooltipText = \"\";\n @Input() tooltipLinkText = \"\";\n @Input() tooltipLinkUrl = \"\";\n\n @Input() placement = \"\";\n @Input() delay = 1000;\n\n IconSize = IconSize;\n}\n","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isValue } from '../../models';\nimport { SalutationEnum } from '../../models/salutation.enum';\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\n\n@Component({\n selector: 'kms-salutation-radiogroup',\n templateUrl: './salutation-radiogroup.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SalutationRadiogroupComponent),\n multi: true,\n },\n ],\n})\nexport class SalutationRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\n \n //For view\n SalutationEnum = SalutationEnum;\n Object = Object;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\n super(formBuilder, renderer);\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n salut: [isValue(this.value) ? this.value : '', null],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe((value) => {\n this.internalValue = value.salut;\n this.onChange(value.salut);\n });\n\n super.ngOnInit();\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n selector: 'kms-back-to-top',\n templateUrl: './back-to-top.component.html',\n})\nexport class BackToTopComponent {\n windowScrolled?: boolean;\n\n constructor(@Inject(PLATFORM_ID) public platformId: Object) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (isPlatformBrowser(this.platformId)) {\n if (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop > 100) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 10\n ) {\n this.windowScrolled = false;\n }\n }\n }\n\n scrollToTop() {\n if (isPlatformBrowser(this.platformId)) {\n (function smoothscroll() {\n const currentScroll = document.documentElement.scrollTop || document.body.scrollTop;\n if (currentScroll > 0) {\n window.requestAnimationFrame(smoothscroll);\n window.scrollTo(0, currentScroll - currentScroll / 8);\n }\n })();\n }\n }\n}\n","export enum ButtonResponseType{\n primary = 'primary',\n secondary = 'secondary'\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Component, Inject, NgZone } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { isValue } from '../../models';\nimport { ButtonResponseType } from '../button-with-confirm-dialog/button-response-types.enum';\nimport { DialogData, DialogDataButtons } from '../button-with-confirm-dialog/dialog-data.model';\n\n/**\n * A generic dialog component\n */\n@Component({\n selector: 'kms-generic-dialog',\n templateUrl: './generic-dialog.component.html',\n styleUrls: ['./generic-dialog.component.scss'],\n})\nexport class GenericDialogComponent {\n\n ButtonResponseType = ButtonResponseType;\n\n public buttons: DialogDataButtons\n\n public constructor(\n public dialogRef: MatDialogRef<GenericDialogComponent>,\n public zone: NgZone,\n @Inject(MAT_DIALOG_DATA) public data: DialogData\n ) {\n if (isValue(data.buttons)) {\n this.buttons = data.buttons;\n } else {\n this.buttons = { primary: 'Yes', secondary: 'No' } as DialogDataButtons;\n }\n }\n\n /**\n * Action called when clicked\n * @param clickedButton Whether the primary or secondary button was clicked\n */\n public onClickAction(clickedButton: ButtonResponseType): void {\n this.zone.run(() => {\n this.dialogRef.close(clickedButton);\n this.dialogRef.afterClosed().subscribe(() => {\n const buttonList = document.querySelectorAll('.mat-flat-button, .mat-button');\n let i = 0;\n for (i; i < buttonList.length; i++) {\n buttonList[i].classList.remove('cdk-focused');\n buttonList[i].classList.remove('cdk-program-focused');\n }\n });\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SubSink } from 'subsink';\nimport { NullAble } from '../../models';\nimport { GenericDialogComponent } from '../generic-dialog/generic-dialog.component';\nimport { ButtonResponseType } from './button-response-types.enum';\nimport { DialogData } from './dialog-data.model';\n\n@Component({\n selector: 'kms-button-with-confirm-dialog',\n templateUrl: './button-with-confirm-dialog.component.html',\n styleUrls: ['./button-with-confirm-dialog.component.scss'],\n})\nexport class ButtonWithConfirmDialogComponent implements OnInit {\n @Input() disabled: NullAble<boolean>;\n @Input() buttonText: NullAble<string>;\n @Input() confirmTitle: NullAble<string>;\n @Input() confirmTextYes: NullAble<string>;\n @Input() confirmTextNo: NullAble<string>;\n\n // Outputs when dialogue was closed. Returns true, if yes was clicked, false otherwise\n @Output() onConfirmClosed: EventEmitter<boolean> = new EventEmitter();\n\n private subs = new SubSink();\n \n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(\n public dialog: MatDialog,\n ) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit() {}\n\n start(){\n const data: DialogData = {\n title: this.confirmTitle,\n buttons:{\n primary: this.confirmTextYes,\n secondary: this.confirmTextNo,\n }\n };\n const dialogRef = this.dialog.open(GenericDialogComponent, {\n data: data,\n });\n\n this.subs.sink = dialogRef.afterClosed().subscribe(result => {\n if (result === ButtonResponseType.primary) {\n this.onConfirmClosed.emit(true);\n }else{\n this.onConfirmClosed.emit(false);\n }\n dialogRef.close();\n });\n }\n}\n","import { Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EnumValues } from 'enum-values/src/enumValues';\n//import { EnumValues } from 'enum-values';\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\n\n/**\n * Dropdown from data component {@link https://leaseplan-dev.rentoffice.de/styleguide#ui-elements}\n */\n@Component({\n selector: 'kms-dropdown-from-data',\n templateUrl: './dropdown-from-data.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownFromDataComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownFromDataComponent extends FormControlParentComponent\n implements OnInit, ControlValueAccessor, OnChanges {\n // structured data as a enum set. Can be used in combination with 'optionsPlainArray' to set diferent values by index\n @Input() optionsEnum: any;\n\n // structured data as a simple array of elements\n @Input() optionsPlainArray: any;\n\n // structured data as an array of objects used in combination with the input 'mapKey' and 'mapValue'\n @Input() optionsObjArray: any;\n // key identifier of the obj. If mapValue doesnt exist, mapKey is also the value\n @Input() mapKey?: any;\n // value identifier of the obj\n @Input() mapValue?: any;\n\n // options for the dropdown have a null value at the beginning of the array\n @Input() hasNullOption = false;\n\n @Input() translation?: ITranslation;\n @Input() placeholder = '';\n @Input() label = '';\n @Input() required = false;\n @Input() useEnumIndexAsValue = false;\n\n public keys: any[] = [];\n public values: any[] = [];\n\n Object = Object;\n\n constructor(\n public formBuilder: FormBuilder,\n public renderer: Renderer2,\n ) {\n super(formBuilder, renderer);\n }\n\n /**\n * Hook used to sync changes on set Label and Type\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges) {\n if (changes.optionsPlainArray) {\n this.keys = this.optionsPlainArray;\n this.values = this.optionsPlainArray;\n }\n this.setKeyValues();\n }\n\n ngOnInit() {\n this.form = this.formBuilder.group({\n dropdownData: [],\n });\n this.formInitialized = true;\n\n this.form.valueChanges.subscribe(value => {\n this.internalValue = value.dropdownData;\n this.onChange(value.dropdownData);\n });\n\n super.ngOnInit();\n }\n\n /**\n * transofrms the data values to the correct format for be used by the template\n * @param value\n */\n private setKeyValues(): void {\n if (this.optionsObjArray && this.mapKey && this.mapValue) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapValue}`]);\n } else if (this.optionsObjArray && this.mapKey) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n }\n if (this.optionsEnum) {\n this.keys = EnumValues.getNames(this.optionsEnum);\n if (this.optionsPlainArray) {\n this.values = this.optionsPlainArray;\n } else {\n const values = EnumValues.getValues(this.optionsEnum);\n\n // var who defines if enum is componed just with keys or keyValues. E.g enum KeyEnum { VALUE1, VALUE2 } or enum KeyValueEnum { VALUE4 = 'V4', VALUE5 = 'V5' }\n let keyValueEnum = false;\n\n for (let i = 0; i < this.keys.length; i++) {\n if (i !== values[i]) {\n keyValueEnum = true;\n }\n }\n if (keyValueEnum || this.useEnumIndexAsValue) {\n this.values = values;\n } else {\n this.values = EnumValues.getNames(this.optionsEnum);\n }\n }\n }\n if (this.hasNullOption === true) this.keys.unshift(null);\n if (this.hasNullOption === true) this.values.unshift(null);\n }\n\n /**\n * set the value of the dropdown based if translation is set\n * @param key \n */\n public setDisplayKey(key: any) {\n /*\n if (this.translation && key !== null) {\n if (this.translation.isPrefix) {\n return this.translationService.instant(this.translation.path + '.' + key);\n } else if (this.translation.useKey) {\n return this.translationService.instant(this.translation.path, { key: key });\n } else if (!this.translation?.useKey && !this.translation?.isPrefix) {\n return this.translationService.instant(this.translation.path);\n }\n } else if (key == null) {\n return '';\n } else if (!this.translation) {\n return key;\n }\n */\n return key;\n }\n\n valueChanged(value: any) {\n this.form.patchValue({\n dropdownData: value,\n });\n this.onSelectItemEmitter.emit(value);\n }\n}\n\n/**\n * Interface that defines the translation object in template\n */\ninterface ITranslation {\n path: string;\n useKey?: boolean;\n isPrefix?: boolean;\n}\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport {\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\r\n\r\nimport { SwiperComponent } from 'ngx-useful-swiper';\r\nimport { SwiperOptions } from 'swiper';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ImageSnippet } from '../../models/image-snippet.model';\r\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from '../../directives/swipe.model';\r\n\r\n\r\n@Component({\r\n selector: 'kms-image-slider',\r\n templateUrl: './image-slider.component.html',\r\n styleUrls: ['./image-slider.component.scss'],\r\n})\r\nexport class ImageSliderComponent implements OnInit, OnChanges {\r\n @Input() slides: string[] | undefined;\r\n @Input() editMode = false;\r\n @Input() imagesTOSave: ImageSnippet[] | undefined;\r\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\r\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\r\n\r\n /**\r\n * Optional: Define Swipe behaviour configuration.\r\n * Default is 10% for the threshold definition until a swipe triggers next/previous slide.\r\n */\r\n @Input() swipeConfig: SwipeOptions = {\r\n swipeThreshold: 5,\r\n swipeThresholdType: '%',\r\n swipeLocalPosition: true,\r\n };\r\n\r\n public selectedSlide = 0;\r\n public checkedImageIndex?: number;\r\n\r\n public selectedSlideImage: SafeStyle | undefined;\r\n public isLastClickedInSliderImage = false;\r\n\r\n @ViewChild('usefulSwiper') usefulSwiper: SwiperComponent | undefined;\r\n\r\n config: SwiperOptions = {\r\n initialSlide: 0,\r\n slidesPerView: 3,\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n },\r\n watchOverflow: true,\r\n autoHeight: true,\r\n allowTouchMove: false,\r\n spaceBetween: 30,\r\n on: {\r\n slideChange: () => {\r\n // do something\r\n },\r\n slideChangeTransitionEnd: () => {\r\n // do something\r\n },\r\n },\r\n };\r\n\r\n constructor(public sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n if (this.slides) {\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\r\n }\r\n }\r\n\r\n // !TODO\r\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n if (event.key === 'ArrowRight') {\r\n this.nextSlide();\r\n }\r\n if (event.key === 'ArrowLeft') {\r\n this.previousSlide();\r\n }\r\n }\r\n\r\n /**\r\n * Slide follows the finger or mouse according to it´s move delta.\r\n * @param event SwipeMoveEvent\r\n */\r\n handleMoveEvent(event: SwipeMoveEvent) {\r\n // certain move threshold needs to be reached\r\n if (!event.thresholdWasReached) {\r\n return;\r\n }\r\n this.config.direction = event.direction === 1 ? 'horizontal' : 'vertical';\r\n }\r\n\r\n /**\r\n * Mouse up or slide container was left.\r\n * @param event SwipeReleaseEvent\r\n */\r\n handleReleaseEvent(event: SwipeReleaseEvent) {\r\n if (!event.thresholdWasReached) {\r\n return;\r\n }\r\n // Just do if user clicked to slide on image and not on arrow or other element\r\n if (!this.isLastClickedInSliderImage) {\r\n return;\r\n }\r\n if (event.direction === 1) {\r\n this.previousSlide();\r\n } else {\r\n this.nextSlide();\r\n }\r\n }\r\n\r\n lastClicked() {\r\n this.isLastClickedInSliderImage = true;\r\n }\r\n\r\n noLastClicked() {\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n scrollLeft() {\r\n this.previousSlide();\r\n }\r\n\r\n scrollRight() {\r\n this.nextSlide();\r\n }\r\n\r\n nextSlide() {\r\n if (this.slides && this.selectedSlide < this.slides.length - 1) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slideNext();\r\n }\r\n this.openSlide(this.selectedSlide + 1);\r\n }\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n previousSlide() {\r\n if (this.selectedSlide > 0) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slidePrev();\r\n }\r\n this.openSlide(this.selectedSlide - 1);\r\n }\r\n this.isLastClickedInSliderImage = false;\r\n }\r\n\r\n slideTo(index: number) {\r\n if (this.usefulSwiper) {\r\n this.usefulSwiper.swiper.slideTo(index);\r\n }\r\n }\r\n\r\n openSlide(number: number) {\r\n if (this.slides && number < this.slides.length && number >= 0) {\r\n this.selectedSlide = number;\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[number] || ')');\r\n }\r\n }\r\n\r\n ngOnChanges(_changes: SimpleChanges) {\r\n if (_changes.slides) {\r\n if (this.slides) {\r\n // TODO use Pipe safeStyle\r\n\r\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Re-order slides and notify parent component\r\n */\r\n drop(event: CdkDragDrop<string[]>) {\r\n if (this.slides && this.imagesTOSave) {\r\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\r\n moveItemInArray(this.imagesTOSave, event.previousIndex, event.currentIndex);\r\n this.orderChanged.emit(this.imagesTOSave);\r\n }\r\n }\r\n\r\n /**\r\n * Send image index to parent to perform delete\r\n */\r\n deleteImage(index: number) {\r\n this.deleteImageEvent.emit(index);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({ selector: '[mouseWheel]' })\r\nexport class MouseWheelDirective {\r\n @Output() mouseWheelUp = new EventEmitter();\r\n @Output() mouseWheelDown = new EventEmitter();\r\n\r\n \r\n @HostListener('mousewheel', ['$event']) onMouseWheelChrome(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n \r\n @HostListener('DOMMouseScroll', ['$event']) onMouseWheelFirefox(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n @HostListener('onmousewheel', ['$event']) onMouseWheelIE(event: any) {\r\n this.mouseWheelFunc(event);\r\n }\r\n\r\n \r\n mouseWheelFunc(event: any) {\r\n event = window.event || event; // old IE support\r\n \r\n const delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));\r\n if (delta > 0) {\r\n this.mouseWheelUp.emit(event);\r\n } else if (delta < 0) {\r\n this.mouseWheelDown.emit(event);\r\n }\r\n // for IE\r\n event.returnValue = false;\r\n // for Chrome and Firefox\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\n// ng\r\nimport { AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * Directive to calc the height of all inner elements\r\n */\r\n@Directive({\r\n \r\n selector: '[getMaxHeight]',\r\n})\r\nexport class GetMaxHeightDirective implements AfterContentChecked {\r\n /**\r\n * CSS class name of the child items (markup elements) that should be checked for their height.\r\n * This is mandatory.\r\n */\r\n @Input('getMaxHeight') cssClassName = '';\r\n\r\n /**\r\n * Event that will pass the height of the tallest child inside the container.\r\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\r\n */\r\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\r\n\r\n /**\r\n * Event that will pass the complete sum of all height values from each child.\r\n * Useful to calculate the full target height of a container (like dropdown) for animations.\r\n */\r\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngAfterContentChecked(): void {\r\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\r\n }\r\n\r\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\r\n if (!parent) {\r\n return;\r\n }\r\n\r\n // find all the child elements with the selected class name\r\n const children = parent.getElementsByClassName(cssClassName);\r\n\r\n // failsafe\r\n if (!children) {\r\n return;\r\n }\r\n\r\n // get all the child elements heights\r\n const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);\r\n\r\n // failsafe\r\n if (itemHeights.length === 0) {\r\n return;\r\n }\r\n\r\n // find out the tallest element\r\n const maxHeight = itemHeights.reduce((prev, curr) => {\r\n return curr > prev ? curr : prev;\r\n }, 0);\r\n\r\n // get sum of heights\r\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\r\n\r\n // inform\r\n this.maxHeightChanged.emit(maxHeight);\r\n this.sumOfHeight.emit(sumOfHeight);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\r\n\r\n@Directive({\r\n selector: '[swipeDirective]',\r\n})\r\nexport class SwipeDirective {\r\n /**\r\n * Output Event that is emitted during swipe process (mouse move or touch move event).\r\n * Can be used for calculation purposes.\r\n */\r\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\r\n\r\n /**\r\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\r\n * Can be used for calculation purposes.\r\n */\r\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\r\n\r\n private _swipeOptions: SwipeOptions | undefined;\r\n\r\n private _moveEventData: SwipeMoveEvent | undefined;\r\n private _startPosition = -1;\r\n\r\n private _lastPosX = 0;\r\n\r\n private _thresholdWasReached = false;\r\n\r\n private _isMobile: boolean | undefined;\r\n\r\n private _timeStart = 0;\r\n\r\n /**\r\n * Needed config that defines swipe behaviour.\r\n * @param options SwipeOptions\r\n */\r\n @Input('swipeDirective')\r\n set config(options: SwipeOptions) {\r\n if (options) {\r\n this._swipeOptions = options;\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n onMouseDown(event: any) {\r\n this.calculateStartPosition(event);\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n @HostListener('touchmove', ['$event'])\r\n onMove(event: any) {\r\n this.move(event);\r\n }\r\n\r\n @HostListener('mouseup', ['$event'])\r\n @HostListener('mouseleave', ['$event'])\r\n @HostListener('touchend', ['$event'])\r\n onRelease(event: any) {\r\n this.release(event);\r\n this.reset();\r\n }\r\n\r\n // ** PRIVATE ** //\r\n\r\n /**\r\n * Function checks if the current moving delta is inside the defined threshold.\r\n * Sets the flag to true if the threshold was reached once.\r\n */\r\n private checkThreshold(moveEvent: SwipeMoveEvent) {\r\n const percentage = this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\r\n\r\n if (!percentage && this._swipeOptions && moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold) {\r\n return;\r\n } else if (\r\n percentage &&\r\n this._swipeOptions &&\r\n moveEvent.swipeDistancePercentage < this._swipeOptions.swipeThreshold / 100\r\n ) {\r\n return;\r\n } else {\r\n this._thresholdWasReached = true;\r\n }\r\n }\r\n\r\n private calculateStartPosition(event?: any) {\r\n // detect if touch or click\r\n this._isMobile = event.type === 'touchstart';\r\n\r\n // save start position\r\n\r\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\r\n if (this._isMobile) {\r\n const touch: Touch = event.touches[0];\r\n this._startPosition = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\r\n } else {\r\n this._startPosition = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\r\n }\r\n }\r\n\r\n this._lastPosX = this._startPosition;\r\n this._timeStart = event.timeStamp;\r\n this._thresholdWasReached = false;\r\n }\r\n\r\n private move(event: any) {\r\n // failsafe\r\n if (typeof event === 'undefined') {\r\n return;\r\n }\r\n\r\n let posX = 0;\r\n\r\n if (this._swipeOptions) {\r\n if (this._isMobile && event.type === 'touchmove') {\r\n const touch: Touch = event.touches[0];\r\n posX = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\r\n } else {\r\n posX = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\r\n }\r\n }\r\n\r\n const offsetPerFrame: number = posX - this._lastPosX;\r\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\r\n const swipeDistancePercentage: number = Math.abs(swipeDistanceTotal / event.target.clientWidth);\r\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\r\n\r\n let direction: number;\r\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\r\n speed = Math.max(0.1, speed);\r\n\r\n if (posX - this._startPosition > 0) {\r\n direction = 1; // a.k.a LTR\r\n } else {\r\n direction = -1; // a.k.a RTL\r\n }\r\n\r\n this._moveEventData = {\r\n position: posX,\r\n offsetPerFrame: offsetPerFrame,\r\n swipeDistanceTotal: swipeDistanceTotal,\r\n swipeDistancePercentage: swipeDistancePercentage,\r\n direction: direction,\r\n speed: speed,\r\n thresholdWasReached: this._thresholdWasReached,\r\n };\r\n\r\n this.checkThreshold(this._moveEventData);\r\n\r\n // update move delta\r\n this._lastPosX = posX;\r\n\r\n // inform\r\n this.moveEvent.emit(this._moveEventData);\r\n }\r\n\r\n private release(event: any) {\r\n // case: just a click/touch\r\n\r\n if (!this._moveEventData) {\r\n return;\r\n }\r\n\r\n const releaseEventData: SwipeReleaseEvent = {\r\n thresholdWasReached: this._thresholdWasReached,\r\n direction: this._moveEventData.direction,\r\n speed: this._moveEventData.speed,\r\n easingType: this.getEasingCurve(this._moveEventData.speed),\r\n target: event.currentTarget,\r\n };\r\n\r\n // inform\r\n this.releaseEvent.emit(releaseEventData);\r\n }\r\n\r\n private getEasingCurve(speed: number): string {\r\n return speed > 0.5 ? 'ease-in' : 'ease-out';\r\n }\r\n\r\n private reset() {\r\n this._startPosition = -1;\r\n this._thresholdWasReached = false;\r\n\r\n if (this._moveEventData) {\r\n this._moveEventData = undefined;\r\n }\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[kmsTooltip]'\r\n})\r\nexport class TooltipDirective {\r\n @Input('tooltipTitle') tooltipTitle = \"\";\r\n @Input('tooltipText') tooltipText = \"\";\r\n @Input('tooltipLinkText') tooltipLinkText = \"\";\r\n @Input('tooltipLinkUrl') tooltipLinkUrl = \"\";\r\n @Input('tooltipPlacement') tooltipPlacement = \"bottom\";\r\n @Input('tooltipDelay') tooltipDelay = 1000;\r\n @Input('tooltipPlaceIntoHost') tooltipPlaceIntoHost = false;\r\n @Input('tooltipOnlyonclick') tooltipOnlyonclick = false;\r\n\r\n tooltipElem?: HTMLElement | undefined;\r\n tooltipLinkElem?: HTMLElement | undefined;\r\n tooltipTitleElem?: HTMLElement | undefined;\r\n tooltipTextElem?: HTMLElement | undefined;\r\n offset = 0;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n if (!this.tooltipOnlyonclick) { this.show(); }\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.tooltipOnlyonclick) { this.show(); }\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n if (this.tooltipElem) { this.hide(); }\r\n }\r\n\r\n show() {\r\n if (!this.tooltipElem){\r\n this.create();\r\n this.setPosition();\r\n }\r\n this.renderer.addClass(this.tooltipElem, 'tooltip-show');\r\n }\r\n\r\n hide() {\r\n this.renderer.removeClass(this.tooltipElem, 'tooltip-show');\r\n window.setTimeout(() => {\r\n }, this.tooltipDelay);\r\n }\r\n\r\n create() {\r\n this.tooltipElem = this.renderer.createElement('kms-tooltip-element');\r\n\r\n this.tooltipTitleElem = this.renderer.createElement('b');\r\n this.renderer.appendChild(this.tooltipTitleElem, this.renderer.createText(this.tooltipTitle));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipTitleElem);\r\n \r\n this.tooltipTextElem = this.renderer.createElement('div');\r\n this.renderer.appendChild(this.tooltipTextElem, this.renderer.createText(this.tooltipText));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipTextElem);\r\n \r\n this.tooltipLinkElem = this.renderer.createElement('a');\r\n this.renderer.setAttribute(this.tooltipLinkElem, 'href', this.tooltipLinkUrl);\r\n this.renderer.appendChild(this.tooltipLinkElem, this.renderer.createText(this.tooltipLinkText));\r\n this.renderer.appendChild(this.tooltipElem, this.tooltipLinkElem);\r\n\r\n if(this.tooltipPlaceIntoHost){\r\n this.renderer.appendChild(this.el.nativeElement, this.tooltipElem);\r\n }else{\r\n this.renderer.appendChild(document.body, this.tooltipElem);\r\n }\r\n\r\n this.renderer.addClass(this.tooltipElem, 'tooltip');\r\n this.renderer.addClass(this.tooltipElem, `tooltip-${this.tooltipPlacement}`);\r\n this.renderer.setStyle(this.tooltipElem, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltipElem, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n if(this.tooltipElem){\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltipElem.getBoundingClientRect();\r\n\r\n let top, left;\r\n\r\n if(this.tooltipPlaceIntoHost){\r\n left = 0;\r\n top = hostPos.height; \r\n } else {\r\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\r\n if (this.tooltipPlacement === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (!this.tooltipPlacement || this.tooltipPlacement === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPlacement === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPlacement === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n top += scrollPos;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltipElem, 'top', `${top}px`);\r\n this.renderer.setStyle(this.tooltipElem, 'left', `${left}px`);\r\n }\r\n }\r\n}","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { MouseWheelDirective } from './mousewheel.directive';\r\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\r\nimport { SwipeDirective } from './swipe.directive';\r\nimport { TooltipDirective } from './tooltip.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SwipeDirective,\r\n MouseWheelDirective,\r\n GetMaxHeightDirective,\r\n TooltipDirective,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n SwipeDirective,\r\n MouseWheelDirective,\r\n GetMaxHeightDirective,\r\n TooltipDirective,\r\n ],\r\n})\r\nexport class DirectivesModule {}\r\n","import { NgModule, } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\r\nimport { ActionsParentComponent } from './parent-components/actions.component';\r\nimport { CheckboxComponent } from './ui/checkbox/checkbox.component';\r\n\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { ColorInputComponent } from './ui/color-input/color-input.component';\r\nimport { RadioButtonComponent } from './ui/radiobutton/radiobutton.component';\r\nimport { TimeInputComponent } from './ui/time-input/time-input.component';\r\nimport { YesNoRadiogroupComponent } from './ui/yes-no-radiogroup/yes-no-radiogroup.component';\r\nimport { FileInputComponent } from './ui/file-input/file-input.component';\r\nimport { LoaderComponent } from './ui/loader/loader.component';\r\nimport { FlyoutComponent } from './ui/flyout/flyout.component';\r\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\r\nimport { IconComponent } from './ui/icon/icon.component';\r\nimport { EnumRadiogroupComponent } from './ui/enum-radiogroup/enum-radiogroup.component';\r\nimport { KMSAccordionItemComponent } from './ui/kms-accordion-item/kms-accordion-item.component';\r\nimport { MapComponent } from './ui/map/map.component';\r\nimport { SalutationDropdownComponent } from './ui/salutation-dropdown/salutation-dropdown.component';\r\nimport { TooltipComponent } from './ui/tooltip/tooltip.component';\r\nimport { TooltipIconComponent } from './ui/tooltip-icon/tooltip-icon.component';\r\n\r\nimport { SalutationRadiogroupComponent } from './ui/salutation-radiogroup/salutation-radiogroup.component';\r\nimport { BackToTopComponent } from './ui/back-to-top/back-to-top.component';\r\nimport { ButtonWithConfirmDialogComponent } from './ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { GenericDialogComponent } from './ui/generic-dialog/generic-dialog.component';\r\nimport { MatExpansionModule} from '@angular/material/expansion';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { DropdownFromDataComponent } from './ui/dropdown-from-data/dropdown-from-data.component';\r\nimport { ImageSliderComponent } from './ui/image-slider/image-slider.component';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ViewportService } from './services/viewport.service';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n ActionsParentComponent,\r\n BackToTopComponent,\r\n ButtonWithConfirmDialogComponent,\r\n CheckboxComponent,\r\n ColorInputComponent,\r\n DropdownFromDataComponent,\r\n EnumRadiogroupComponent,\r\n EnumRadiogroupComponent,\r\n FileInputComponent,\r\n FlyoutComponent,\r\n GenericDialogComponent,\r\n IconComponent,\r\n ImageSliderComponent,\r\n KMSAccordionItemComponent,\r\n KmsUiPresentationalComponent,\r\n LoaderComponent,\r\n MapComponent,\r\n RadioButtonComponent,\r\n SalutationDropdownComponent,\r\n SalutationRadiogroupComponent,\r\n TimeInputComponent,\r\n TooltipComponent,\r\n TooltipIconComponent,\r\n YesNoRadiogroupComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n CustomPipesModule,\r\n GoogleMapsModule,\r\n MatExpansionModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n DirectivesModule,\r\n TranslateModule\r\n ],\r\n exports: [\r\n ActionsParentComponent,\r\n BackToTopComponent,\r\n ButtonWithConfirmDialogComponent,\r\n CheckboxComponent,\r\n ColorInputComponent,\r\n DropdownFromDataComponent,\r\n EnumRadiogroupComponent,\r\n EnumRadiogroupComponent,\r\n FileInputComponent,\r\n FlyoutComponent,\r\n GenericDialogComponent,\r\n IconComponent,\r\n ImageSliderComponent,\r\n KMSAccordionItemComponent,\r\n KmsUiPresentationalComponent,\r\n LoaderComponent,\r\n MapComponent,\r\n RadioButtonComponent,\r\n SalutationDropdownComponent,\r\n SalutationRadiogroupComponent,\r\n TimeInputComponent,\r\n TooltipComponent,\r\n TooltipIconComponent,\r\n YesNoRadiogroupComponent,\r\n ],\r\n providers: [\r\n ViewportService\r\n ]\r\n})\r\nexport class KmsUiPresentationalModule { }\r\n","/*\r\n * Public API Surface of kms-ngx-ui-presentational\r\n */\r\n\r\nexport * from './lib/kms-ngx-ui-presentational.service';\r\nexport * from './lib/kms-ngx-ui-presentational.component';\r\nexport * from './lib/kms-ngx-ui-presentational.module';\r\nexport * from './lib/pipes/custom-pipes.module';\r\nexport * from './lib/directives/directives.module';\r\n\r\nexport * from './lib/models/iconSize.enum';\r\nexport * from './lib/models/salutation.enum';\r\n//export * from './lib/ui/checkbox/checkbox.component';\r\n//export * from './lib/parent-components/actions.component';\r\nexport * from './lib/ui/generic-dialog/generic-dialog.component';\r\nexport * from './lib/services/viewport.service';\r\nexport * from './lib/parent-components/form.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MouseWheelDirective as ɵbh} from './lib/directives/mousewheel.directive';\nexport {GetMaxHeightDirective as ɵbi} from './lib/directives/sum-of-height.directive';\nexport {SwipeDirective as ɵbg} from './lib/directives/swipe.directive';\nexport {TooltipDirective as ɵbj} from './lib/directives/tooltip.directive';\nexport {ActionsParentComponent as ɵa} from './lib/parent-components/actions.component';\nexport {FormControlParentComponent as ɵf} from './lib/parent-components/form-control.component';\nexport {DecodeUriPipe as ɵbc} from './lib/pipes/decode-uri.pipe';\nexport {EncodeUriPipe as ɵbb} from './lib/pipes/encode-uri.pipe';\nexport {IntegerCurrency as ɵx} from './lib/pipes/integer-currency.pipe';\nexport {SafeHtmlPipe as ɵy} from './lib/pipes/safe-html.pipe';\nexport {SafeStylePipe as ɵz} from './lib/pipes/safe-style.pipe';\nexport {SafeUrlPipe as ɵba} from './lib/pipes/safe-url.pipe';\nexport {ToNumberPipe as ɵbf} from './lib/pipes/to-number.pipe';\nexport {TrimPipe as ɵbe} from './lib/pipes/trim.pipe';\nexport {TypeofPipe as ɵbd} from './lib/pipes/typeof.pipe';\nexport {BackToTopComponent as ɵb} from './lib/ui/back-to-top/back-to-top.component';\nexport {ButtonWithConfirmDialogComponent as ɵc} from './lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nexport {DialogData as ɵk} from './lib/ui/button-with-confirm-dialog/dialog-data.model';\nexport {CheckboxComponent as ɵd} from './lib/ui/checkbox/checkbox.component';\nexport {ColorInputComponent as ɵe} from './lib/ui/color-input/color-input.component';\nexport {DropdownFromDataComponent as ɵg} from './lib/ui/dropdown-from-data/dropdown-from-data.component';\nexport {EnumRadiogroupComponent as ɵh} from './lib/ui/enum-radiogroup/enum-radiogroup.component';\nexport {FileInputComponent as ɵi} from './lib/ui/file-input/file-input.component';\nexport {FlyoutComponent as ɵj} from './lib/ui/flyout/flyout.component';\nexport {IconComponent as ɵl} from './lib/ui/icon/icon.component';\nexport {ImageSliderComponent as ɵm} from './lib/ui/image-slider/image-slider.component';\nexport {KMSAccordionItemComponent as ɵn} from './lib/ui/kms-accordion-item/kms-accordion-item.component';\nexport {LoaderComponent as ɵo} from './lib/ui/loader/loader.component';\nexport {MapComponent as ɵp} from './lib/ui/map/map.component';\nexport {RadioButtonComponent as ɵq} from './lib/ui/radiobutton/radiobutton.component';\nexport {SalutationDropdownComponent as ɵr} from './lib/ui/salutation-dropdown/salutation-dropdown.component';\nexport {SalutationRadiogroupComponent as ɵs} from './lib/ui/salutation-radiogroup/salutation-radiogroup.component';\nexport {TimeInputComponent as ɵt} from './lib/ui/time-input/time-input.component';\nexport {TooltipIconComponent as ɵv} from './lib/ui/tooltip-icon/tooltip-icon.component';\nexport {TooltipComponent as ɵu} from './lib/ui/tooltip/tooltip.component';\nexport {YesNoRadiogroupComponent as ɵw} from './lib/ui/yes-no-radiogroup/yes-no-radiogroup.component';"],"names":["IconSize"],"mappings":"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"}