@kms-ngx-ui/presentational 0.0.18 → 0.0.20

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.
Files changed (51) hide show
  1. package/bundles/kms-ngx-ui-presentational.umd.js +19 -19
  2. package/bundles/kms-ngx-ui-presentational.umd.js.map +1 -1
  3. package/esm2015/lib/kms-ngx-ui-presentational.component.js +5 -5
  4. package/esm2015/lib/kms-ngx-ui-presentational.service.js +1 -1
  5. package/esm2015/lib/models/address.model.js +1 -1
  6. package/esm2015/lib/models/iconSize.enum.js +1 -1
  7. package/esm2015/lib/models/index.js +1 -1
  8. package/esm2015/lib/models/is-value.function.js +1 -1
  9. package/esm2015/lib/models/salutation.enum.js +1 -1
  10. package/esm2015/lib/models/types/attached-file-dto.model.js +1 -1
  11. package/esm2015/lib/models/types/nullable.type.js +1 -1
  12. package/esm2015/lib/parent-components/actions.component.js +1 -1
  13. package/esm2015/lib/parent-components/form-control.component.js +1 -1
  14. package/esm2015/lib/parent-components/form.component.js +1 -1
  15. package/esm2015/lib/pipes/decode-uri.pipe.js +1 -1
  16. package/esm2015/lib/pipes/encode-uri.pipe.js +1 -1
  17. package/esm2015/lib/pipes/integer-currency.pipe.js +1 -1
  18. package/esm2015/lib/pipes/safe-html.pipe.js +1 -1
  19. package/esm2015/lib/pipes/safe-style.pipe.js +1 -1
  20. package/esm2015/lib/pipes/to-number.pipe.js +1 -1
  21. package/esm2015/lib/pipes/trim.pipe.js +1 -1
  22. package/esm2015/lib/pipes/typeof.pipe.js +1 -1
  23. package/esm2015/lib/services/viewport.service.js +1 -1
  24. package/esm2015/lib/ui/back-to-top/back-to-top.component.js +2 -2
  25. package/esm2015/lib/ui/button-with-confirm-dialog/button-response-types.enum.js +1 -1
  26. package/esm2015/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.js +2 -2
  27. package/esm2015/lib/ui/button-with-confirm-dialog/dialog-data.model.js +1 -1
  28. package/esm2015/lib/ui/checkbox/checkbox.component.js +2 -2
  29. package/esm2015/lib/ui/color-input/color-input.component.js +2 -2
  30. package/esm2015/lib/ui/dropdown-from-data/dropdown-from-data.component.js +2 -2
  31. package/esm2015/lib/ui/enum-radiogroup/enum-radiogroup.component.js +2 -2
  32. package/esm2015/lib/ui/file-input/file-input.component.js +2 -2
  33. package/esm2015/lib/ui/flyout/flyout.component.js +2 -2
  34. package/esm2015/lib/ui/generic-dialog/generic-dialog.component.js +2 -2
  35. package/esm2015/lib/ui/icon/icon.component.js +2 -2
  36. package/esm2015/lib/ui/icon/iconSize.enum.js +1 -1
  37. package/esm2015/lib/ui/kms-accordion-item/kms-accordion-item.component.js +2 -2
  38. package/esm2015/lib/ui/loader/loader.component.js +2 -2
  39. package/esm2015/lib/ui/map/map.component.js +2 -2
  40. package/esm2015/lib/ui/radiobutton/radiobutton.component.js +2 -2
  41. package/esm2015/lib/ui/salutation-dropdown/salutation-dropdown.component.js +2 -2
  42. package/esm2015/lib/ui/salutation-radiogroup/salutation-radiogroup.component.js +2 -2
  43. package/esm2015/lib/ui/time-input/time-input.component.js +2 -2
  44. package/esm2015/lib/ui/tooltip/tooltip.component.js +1 -1
  45. package/esm2015/lib/ui/tooltip-icon/tooltip-icon.component.js +2 -2
  46. package/esm2015/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.js +2 -2
  47. package/fesm2015/kms-ngx-ui-presentational.js +23 -23
  48. package/fesm2015/kms-ngx-ui-presentational.js.map +1 -1
  49. package/kms-ngx-ui-presentational.metadata.json +1 -1
  50. package/package.json +1 -1
  51. package/src/styles/mixins.scss +8 -8
@@ -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/safe-resource-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 \n super.ngOnInit();\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 }\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 updateSelectedColor(value: any){\n const color = value.target.value;\n this.value = color;\n this.internalValue = color;\n this.change(color);\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","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeSUrl',\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url: string): SafeUrl {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeResourceSUrl',\r\n})\r\nexport class SafeResourceUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\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","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\n import { CommonModule, CurrencyPipe } from '@angular/common';\r\n import { NgModule } from '@angular/core';\r\n \r\n import { IntegerCurrency } from './integer-currency.pipe';\r\n import { DecodeUriPipe } from './decode-uri.pipe';\r\n import { EncodeUriPipe } from './encode-uri.pipe';\r\n import { SafeHtmlPipe } from './safe-html.pipe';\r\n import { SafeStylePipe } from './safe-style.pipe';\r\n import { SafeUrlPipe } from './safe-url.pipe';\r\n import { SafeResourceUrlPipe } from './safe-resource-url.pipe';\r\n import { TypeofPipe } from './typeof.pipe';\r\n import { TrimPipe } from './trim.pipe';\r\n import { ToNumberPipe } from './to-number.pipe';\r\n \r\n @NgModule({\r\n declarations: [\r\n IntegerCurrency,\r\n SafeHtmlPipe,\r\n SafeStylePipe,\r\n SafeResourceUrlPipe,\r\n SafeUrlPipe,\r\n EncodeUriPipe,\r\n DecodeUriPipe,\r\n TypeofPipe,\r\n TrimPipe,\r\n ToNumberPipe,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n IntegerCurrency,\r\n SafeHtmlPipe,\r\n SafeStylePipe,\r\n SafeResourceUrlPipe,\r\n SafeUrlPipe,\r\n EncodeUriPipe,\r\n DecodeUriPipe,\r\n TypeofPipe,\r\n TrimPipe,\r\n ToNumberPipe,\r\n ],\r\n providers: [CurrencyPipe],\r\n })\r\n export class CustomPipesModule {}\r\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 { MatMenuModule } from '@angular/material/menu';\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\nimport { NgxUsefulSwiperModule } from 'ngx-useful-swiper';\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 MatMenuModule,\r\n CustomPipesModule,\r\n GoogleMapsModule,\r\n MatExpansionModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n DirectivesModule,\r\n TranslateModule,\r\n NgxUsefulSwiperModule,\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 ɵ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 {DecodeUriPipe as ɵbd} from './lib/pipes/decode-uri.pipe';\nexport {EncodeUriPipe as ɵbc} 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 {SafeResourceUrlPipe as ɵba} from './lib/pipes/safe-resource-url.pipe';\nexport {SafeStylePipe as ɵz} 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 ɵ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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"}
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/safe-resource-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';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KmsUiPresentationalService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kms-ngx-ui-presentational',\r\n template: `\r\n <p>\r\n kms-ngx-ui-presentational works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class KmsUiPresentationalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'kms-actions',\r\n template: '',\r\n})\r\nexport class ActionsParentComponent {\r\n /**\r\n * Defines the disabled property\r\n */\r\n @Input() disabled = false;\r\n\r\n /**\r\n * Set button as selected. F.e. in multiselect component\r\n */\r\n @Input() checked = false;\r\n\r\n /**\r\n * Displayed label.\r\n */\r\n @Input() label = '';\r\n\r\n /**\r\n * Link\r\n */\r\n @Input() link = '';\r\n\r\n /**\r\n * Internal value that will be send if a form is submitted.\r\n */\r\n @Input() initialValue = '';\r\n\r\n @Output() select = new EventEmitter();\r\n\r\n selectAction(id: string) {\r\n this.checked = !this.checked;\r\n this.select.emit(id);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NullAble } from '../../models';\r\n\r\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\r\n\r\n\r\n@Component({\r\n selector: 'kms-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CheckboxComponent extends ActionsParentComponent implements ControlValueAccessor {\r\n\r\n\r\n /**\r\n * Additional description text that will be shown below the checkbox.\r\n */\r\n @Input() infoText: NullAble<string>;\r\n\r\n /**\r\n * Internal description name. All checkboxes with the same name belong to the same group.\r\n * User can select none, one or all checkboxes with the same name.\r\n */\r\n @Input() name = '';\r\n\r\n @Output() select = new EventEmitter();\r\n selectAction(id: string) {\r\n this.select.emit(id);\r\n this.checked = !this.checked;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n get value(): boolean {\r\n return this.checked;\r\n }\r\n\r\n set value(value: boolean) {\r\n this.checked = value;\r\n this.onChange(value);\r\n this.onTouch(value);\r\n }\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'kms-form',\r\n template: '',\r\n})\r\nexport class FormParentComponent implements OnInit {\r\n public form!: FormGroup;\r\n public formInitialized = false;\r\n private allowedCharsOnlyNumbers = new Set('0123456789'.split('').map(c => c.charCodeAt(0)));\r\n\r\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\r\n\r\n @Input() disabled = false;\r\n\r\n constructor(\r\n public formBuilder: FormBuilder\r\n ) {\r\n\r\n }\r\n\r\n // TODO make a service or make own compoennt etc.\r\n /**\r\n * Returns if a number was pressed\r\n * @param e \r\n * @returns \r\n */\r\n checkIfKeyWasNumber(e: KeyboardEvent, allowDelete = true, allowArrows = true, allowCutCopyPaste = true){\r\n // returns if keycode of numbers-row or numberpad. Or if parameter set, allow delete/backspace key\r\n const isNumberRow = e.keyCode >= 48 && e.keyCode <= 57;\r\n const isNumberPad = e.keyCode >= 96 && e.keyCode <= 105;\r\n const isArrows = e.keyCode >= 37 && e.keyCode <= 40;\r\n const isDelete = e.keyCode == 8 || e.keyCode == 46;\r\n const isCutCopyOrPaste = (e.ctrlKey || e.metaKey) && (e.keyCode == 86 || e.keyCode == 88 || e.keyCode == 67);\r\n return (isNumberRow) || (isNumberPad) || (allowDelete && isDelete) || (allowArrows && isArrows) || (allowCutCopyPaste && isCutCopyOrPaste);\r\n }\r\n\r\n // TODO make a service or make own compoennt etc.\r\n /**\r\n * Prevents to input other chars than numbers in input\r\n * @param event \r\n */\r\n removeNumbersOnType(event: KeyboardEvent) {\r\n // only allow keydown from numbers-row or numberpad of keybard and block other chars than numbers\r\n if (!this.checkIfKeyWasNumber(event) && !this.allowedCharsOnlyNumbers.has(event.keyCode)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n // TODO make a service or make own compoennt etc.\r\n /**\r\n * Prevents input when pasting which is not number\r\n * @param event\r\n */\r\n removeNumbersOnPaste(event: ClipboardEvent){\r\n const clipboardData = event.clipboardData;\r\n if(clipboardData){\r\n const pastedText = clipboardData.getData('text');\r\n if(pastedText){\r\n const isnum = /^\\d+$/.test(pastedText);\r\n if(!isnum) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.formDataChanged.emit(this.form);\r\n this.form.valueChanges.subscribe(() => {\r\n this.formDataChanged.emit(this.form);\r\n });\r\n }\r\n}\r\n","import { Component, ElementRef, Input, EventEmitter, Output, ViewChild, Renderer2 } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { FormParentComponent } from './form.component';\r\n\r\n@Component({\r\n selector: 'kms-formControlParent',\r\n template: '',\r\n})\r\nexport class FormControlParentComponent extends FormParentComponent {\r\n @Input() defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually\r\n @Output() onSelectItemEmitter = new EventEmitter<string>();\r\n\r\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\r\n\r\n public internalValue = '';\r\n\r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n super(formBuilder);\r\n }\r\n\r\n ngOnInit(){\r\n super.ngOnInit();\r\n }\r\n\r\n change(value: string) {\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n public onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched: any = () => {};\r\n\r\n get value(): string {\r\n return this.internalValue;\r\n }\r\n\r\n set value(value: string) {\r\n this.internalValue = value;\r\n if (value !== undefined && this.internalValue !== value) {\r\n if (!this.internalValue && this.defaultDataOverride) {\r\n this.internalValue = this.defaultDataOverride;\r\n }\r\n this.onChange(value);\r\n this.onTouch(value);\r\n }\r\n }\r\n\r\n writeValue(value: string) {\r\n this.internalValue = value;\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean) {\r\n if (this.child) {\r\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\r\n }\r\n }\r\n\r\n validate(_: FormControl) {\r\n return this.form.valid ? null : false;\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\r\n\r\n@Component({\r\n selector: 'kms-color-input',\r\n templateUrl: './color-input.component.html',\r\n styleUrls: ['./color-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ColorInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ColorInputComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() label = '';\r\n @Input() tooltipText = '';\r\n @Input() placeholder = '';\r\n valid: boolean | null | undefined;\r\n\r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n super(formBuilder, renderer);\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n color: '',\r\n });\r\n \r\n super.ngOnInit();\r\n \r\n this.formInitialized = true;\r\n\r\n this.form.valueChanges.subscribe((value) => {\r\n this.internalValue = value.color;\r\n this.onChange(value.color);\r\n });\r\n\r\n }\r\n\r\n validate(_: FormControl) {\r\n // TODO fix to validate complete form\r\n this.valid = this.matchesHex(this.form.value) ? null : false;\r\n return this.valid && {\r\n invalid: !this.valid\r\n };\r\n }\r\n\r\n matchesHex(match?: string){\r\n if(match){\r\n const ret = match.match(/^#[0-9a-f]{6}$/i);\r\n this.valid = ret && ret.length>0;\r\n return ret;\r\n }\r\n return false;\r\n }\r\n\r\n updateSelectedColor(value: any){\r\n const color = value.target.value;\r\n this.value = color;\r\n this.internalValue = color;\r\n this.change(color);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\nimport { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { ActionsParentComponent } from '../../parent-components/actions.component';\r\n\r\n@Component({\r\n selector: 'kms-radiobutton',\r\n templateUrl: './radiobutton.component.html',\r\n styleUrls: ['./radiobutton.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioButtonComponent extends ActionsParentComponent implements ControlValueAccessor {\r\n /**\r\n * Internal description name. All radio buttons with the same name belong to the same group.\r\n * User can select exactly one of the radio buttons from the same group.\r\n */\r\n @Input() name = '';\r\n\r\n /**\r\n * Internal description id. Will be send in the output event when the radio button is selected.\r\n */\r\n @Input() id = '';\r\n\r\n @Input() formControl: any;\r\n\r\n selectAction(id: string) {\r\n this.select.emit(id);\r\n this.checked = !this.checked;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n get value(): boolean {\r\n return this.checked;\r\n }\r\n\r\n set value(value: boolean) {\r\n this.checked = value;\r\n this.onChange(value);\r\n this.onTouch(value);\r\n }\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n}\r\n","import { Component, forwardRef, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'kms-time-input',\r\n templateUrl: './time-input.component.html',\r\n styleUrls: ['./time-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimeInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TimeInputComponent implements OnInit, ControlValueAccessor {\r\n public form!: FormGroup;\r\n h = '';\r\n m = '';\r\n\r\n constructor(public formBuilder: FormBuilder) {\r\n \r\n }\r\n\r\n get value(): string {\r\n return this.value;\r\n }\r\n \r\n set value(value: string) {\r\n this.onChange(value);\r\n this.onTouch(value);\r\n }\r\n\r\n writeValue(value: string) {\r\n if(value && value.length === 8){\r\n this.h = value.substr(0,2);\r\n this.m = value.substr(3,2);\r\n }else if(value && value.length === 5){\r\n this.h = value.substr(0,2);\r\n this.m = value.substr(-2);\r\n }\r\n \r\n //we need to also update the form value because angular has a problem reading it from first time when valuechanges subscription was fired.\r\n this.form.controls['h'].setValue(this.h);\r\n this.form.controls['m'].setValue(this.m);\r\n\r\n this.form.valueChanges.subscribe(value => {\r\n this.h = value.h;\r\n this.m = value.m;\r\n value = this.getNewOrDefault();\r\n this.value = value;\r\n this.onChange(value);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n h: '',\r\n m: '',\r\n });\r\n }\r\n\r\n getNewOrDefault(){\r\n //reset if user deletes everything\r\n if(this.h === '' && this.m === ''){\r\n return ''; \r\n }\r\n const ret = this.h.padStart(2, '0') + ':' + this.m.padStart(2, '0');\r\n return ret;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n public onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched: any = () => {};\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NullAble } from '../../models';\r\n\r\n@Component({\r\n selector: 'kms-yesno-radiogroup',\r\n templateUrl: './yes-no-radiogroup.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => YesNoRadiogroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class YesNoRadiogroupComponent implements OnInit, ControlValueAccessor {\r\n \r\n @Input() header: NullAble<String>;\r\n @Input() disabled = false;\r\n @Input() textYes = '';\r\n @Input() textNo = '';\r\n public form!: FormGroup;\r\n \r\n @ViewChild('child') public child?: ElementRef<HTMLInputElement>;\r\n\r\n public internalValue: NullAble<boolean>;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n public onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n get value(): NullAble<boolean> {\r\n return this.internalValue;\r\n }\r\n\r\n set value(value: NullAble<boolean>) {\r\n this.internalValue = value;\r\n if (value !== undefined && this.internalValue !== value) {\r\n this.onChange(value);\r\n this.onTouch(value);\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n this.internalValue = value;\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean) {\r\n if (this.child) {\r\n this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);\r\n }\r\n }\r\n\r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n yesno: [],\r\n });\r\n\r\n this.form.valueChanges.subscribe((value) => {\r\n this.internalValue = value.yesno;\r\n this.onChange(value.yesno);\r\n });\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nexport enum IconSize {\r\n FULLSIZE = 'size-full',\r\n TINY = 'size-16',\r\n SMALLER = 'size-20',\r\n SMALL = 'size-32',\r\n MEDIUM = 'size-64',\r\n LARGE = 'size-128',\r\n XL = 'size-256',\r\n XXL = 'size-512',\r\n XXXL = 'size-1024',\r\n NONE = 'NONE',\r\n}\r\n\r\n","/**\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { NullAble } from \"./types/nullable.type\";\r\n\r\n\r\n/**\r\n * Check if null or undefined\r\n * @param value value that is being checked\r\n */\r\nexport function isValue<T>(value: NullAble<T>): value is T {\r\n if (value === null) {\r\n return false;\r\n }\r\n if (typeof value === 'undefined') {\r\n return false;\r\n }\r\n return true;\r\n}\r\n","import { Component, Input, forwardRef, OnInit, ViewChild, Renderer2, EventEmitter, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport {\r\n ControlValueAccessor,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n//import { TranslateService } from '@ngx-translate/core';\r\nimport { IconSize } from '../../models/iconSize.enum';\r\nimport { AttachedFileDTO } from '../../models/types/attached-file-dto.model';\r\nimport { isValue } from '../../models/is-value.function';\r\n\r\n// Max size in bytes of uploaded image\r\nconst MAX_SIZE_BYTES = 2097152;\r\n\r\n@Component({\r\n selector: 'kms-file-input',\r\n templateUrl: './file-input.component.html',\r\n styleUrls: ['./file-input.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FileInputComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => FileInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\n\r\nexport class FileInputComponent implements ControlValueAccessor, OnInit {\r\n \r\n @ViewChild('fileInput') public fileInput: any;\r\n\r\n @Input() label = '';\r\n \r\n @Input() previewImage = true; \r\n @Input() allowRemove = true; \r\n @Input() previewImageText = ''; \r\n @Input() maxSizeBytes = MAX_SIZE_BYTES; \r\n @Input() resizePixels = 0; \r\n @Input() acceptedFileMimetypes = 'image/jpeg, image/jpg, image/png'; \r\n\r\n form= this.formBuilder.group({\r\n ImageIdent: new FormControl(''),\r\n ImageLink: new FormControl(''),\r\n Filename: new FormControl(''),\r\n ImageAsDataURL: new FormControl(''),\r\n Text: new FormControl(''),\r\n });\r\n\r\n subscriptions: Subscription[] = [];\r\n newImageLoading = false\r\n\r\n IconSize = IconSize;\r\n\r\n @Output() formDataChanged: EventEmitter<FormGroup> = new EventEmitter();\r\n\r\n /**\r\n * Constructor\r\n * @param formBuilder \r\n * @param appRef \r\n * @param cd \r\n * @param translateService \r\n * @param renderer \r\n */\r\n constructor(\r\n public formBuilder: FormBuilder, \r\n public appRef: ApplicationRef,\r\n public cd: ChangeDetectorRef,\r\n //private translateService: TranslateService,\r\n public renderer: Renderer2\r\n ) {\r\n \r\n }\r\n\r\n /**\r\n * Click on button triggers file-input to open OS file dialog\r\n */\r\n selectImageOverlay() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n /**\r\n * Function to manage the input image\r\n * Returns an error if the file exceeds maximum wanted filesize (Mb). \r\n * @param ev\r\n * @returns\r\n */\r\n selectImage(ev: any) {\r\n if (ev.target.files && ev.target.files[0]) {\r\n const file:File = ev.target.files[0];\r\n\r\n if (file.size > this.maxSizeBytes) {\r\n this.clearInputValue(ev);\r\n //alert(this.translateService.instant('errors.fileTooBig'));\r\n return;\r\n } else {\r\n this.newImageLoading = true;\r\n\r\n if(this.resizePixels > 0){\r\n const logoUrl = URL.createObjectURL(file);\r\n const imgEl = document.createElement('img');\r\n imgEl.addEventListener('load', () => {\r\n const resizedLogo = this.resizeImage(imgEl, this.resizePixels);\r\n const newFile = this.generateModel(file.name, resizedLogo, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\r\n this.value=newFile;\r\n this.newImageLoading = false;\r\n this.cd.markForCheck();\r\n });\r\n imgEl.src = logoUrl;\r\n }else{\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (e: any) => {\r\n const newFile = this.generateModel(file.name, e.target.result, this.value.ImageIdent, this.value.ImageLink, this.value.Text);\r\n this.value=newFile;\r\n this.newImageLoading = false;\r\n this.cd.markForCheck();\r\n };\r\n }\r\n \r\n }\r\n }else{\r\n console.warn(\"No file selected\");\r\n }\r\n }\r\n\r\n /**\r\n * Resize an image\r\n * @param imgEl\r\n * @param wantedWidth as number\r\n * @returns string \r\n */\r\n private resizeImage(imgEl: any, wantedWidth: number) {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n const aspect = imgEl.width / imgEl.height;\r\n canvas.width = wantedWidth;\r\n canvas.height = wantedWidth / aspect;\r\n if (isValue(ctx)) ctx.drawImage(imgEl, 0, 0, canvas.width, canvas.height);\r\n return canvas.toDataURL();\r\n }\r\n\r\n /**\r\n * Generate default object\r\n * @param name as string\r\n * @param content as string\r\n * @returns AttachedFileDTO\r\n */\r\n generateModel(name?: string, content?: string, ident?: string, imageLink?: string, text?: string){\r\n return {\r\n ImageIdent: ident ? ident : '',\r\n Filename: name ? name : '',\r\n ImageAsDataURL: content ? content : '',\r\n ImageLink: imageLink ? imageLink : '',\r\n Text: text ? text : ''\r\n } as AttachedFileDTO;\r\n }\r\n\r\n /**\r\n * Remove image \r\n */\r\n removeFromList(){\r\n this.value= this.generateModel('','', '', '');\r\n }\r\n\r\n /**\r\n * get value\r\n */\r\n get value(): AttachedFileDTO {\r\n return this.form.value;\r\n }\r\n\r\n /**\r\n * set value\r\n */\r\n set value(value: AttachedFileDTO) {\r\n this.form.setValue(value);\r\n this.onChange(value);\r\n this.formDataChanged.emit(this.form);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onChange: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouch: any = () => {};\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n ngOnInit() {}\r\n\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n } \r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: AttachedFileDTO | null) {\r\n if (value) {\r\n this.value = value;\r\n }\r\n\r\n if (value === null) {\r\n this.form.reset();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\r\n validate(_: FormControl) {\r\n return this.form.valid ? null : { styles: { valid: false } };\r\n }\r\n\r\n /**\r\n * OnClick event listener of input#fileInput to clear his input value\r\n */\r\n clearInputValue(ev: any) {\r\n const element = ev.target as HTMLInputElement;\r\n element.value = '';\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'kms-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss'],\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n @Input() loading=false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n constructor() {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n ngOnInit() {}\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { state, style, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ElementRef,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n \r\n selector: 'kms-flyout',\r\n templateUrl: './flyout.component.html',\r\n styleUrls: ['./flyout.component.scss'],\r\n animations: [\r\n trigger('dropdownAnimation', [\r\n state(\r\n 'true',\r\n style({\r\n height: '{{targetHeight}}',\r\n transition: 'height {{animationTime}}ms ease-in-out',\r\n }),\r\n {\r\n params: {\r\n targetHeight: '300px',\r\n animationTime: 3000,\r\n },\r\n },\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: 0,\r\n transition: 'height {{animationTime}}ms ease-in-out',\r\n }),\r\n {\r\n params: {\r\n targetHeight: '300px',\r\n opacity: 0,\r\n animationTime: 3000,\r\n },\r\n },\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class FlyoutComponent {\r\n\r\n @Input() icon = 'filter';\r\n\r\n isDropdownOpened = false;\r\n targetHeight = '0';\r\n animationTime = 5000;\r\n\r\n @Input() headerCssClass = '';\r\n @Input() bodyCssClass = '';\r\n\r\n @Input() headerTitle = '';\r\n @Input() headerText = '';\r\n @Input() hasButtonForMore = false;\r\n @Input() moreText = '';\r\n @Input() lessText = '';\r\n\r\n \r\n @ViewChild('content') content: ElementRef | undefined;\r\n \r\n @ViewChild('flyoutHeader') flyoutHeader: ElementRef | undefined;\r\n\r\n /**\r\n * Open/close dropdown if click on header.\r\n * Except, if mode is set to hasButtonForMore. When there is a extra button to open/close\r\n */\r\n toggleDropdownHeader() {\r\n if (!this.hasButtonForMore) {\r\n this.toggleDropdown();\r\n }\r\n }\r\n\r\n /**\r\n * Open or close the dropdown\r\n */\r\n toggleDropdown() {\r\n this.isDropdownOpened = !this.isDropdownOpened;\r\n }\r\n\r\n /**\r\n * Set the height of the dropdown list items dynamic - needed for the animation\r\n */\r\n setDropdownListHeight(contentHeight: number) {\r\n this.targetHeight = `${contentHeight}px`;\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'kmsIntegerCurrency',\r\n})\r\nexport class IntegerCurrency implements PipeTransform {\r\n constructor(private cp: CurrencyPipe) {}\r\n transform(value: any, currencyCode?: string, display?: boolean, digitsInfo?: string): string | null {\r\n const currencyPipeValue = this.cp.transform(value, currencyCode, display, digitsInfo)\r\n if (currencyPipeValue) {\r\n const convertedValue = currencyPipeValue.split(',')[0] + ' ' + currencyPipeValue.slice(-1)\r\n return convertedValue\r\n } else {\r\n throw new Error(\"No value provided\");\r\n }\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'kmsDecodeUri',\r\n})\r\nexport class DecodeUriPipe implements PipeTransform {\r\n\r\n transform(value: any, _args?: any): any {\r\n return decodeURI(value);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'kmsEncodeUri',\r\n})\r\nexport class EncodeUriPipe implements PipeTransform {\r\n transform(value: any, _args?: any): any {\r\n return encodeURI(value);\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeStyle',\r\n})\r\nexport class SafeStylePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(style: string): SafeUrl {\r\n return this.sanitizer.bypassSecurityTrustStyle(style);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeSUrl',\r\n})\r\nexport class SafeUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url: string): SafeUrl {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'kmsSafeResourceSUrl',\r\n})\r\nexport class SafeResourceUrlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'kmsTypeOf',\r\n})\r\nexport class TypeofPipe implements PipeTransform {\r\n transform(value: any): any {\r\n return typeof value;\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'kmsTrim' })\r\nexport class TrimPipe implements PipeTransform {\r\n transform(value: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n return value.trim();\r\n }\r\n}","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'kmsToNumber',\r\n pure: false\r\n \r\n})\r\nexport class ToNumberPipe implements PipeTransform {\r\n transform(items: any): any {\r\n if (!items) {\r\n return 0;\r\n }\r\n return parseInt(items, 10);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\n import { CommonModule, CurrencyPipe } from '@angular/common';\r\n import { NgModule } from '@angular/core';\r\n \r\n import { IntegerCurrency } from './integer-currency.pipe';\r\n import { DecodeUriPipe } from './decode-uri.pipe';\r\n import { EncodeUriPipe } from './encode-uri.pipe';\r\n import { SafeHtmlPipe } from './safe-html.pipe';\r\n import { SafeStylePipe } from './safe-style.pipe';\r\n import { SafeUrlPipe } from './safe-url.pipe';\r\n import { SafeResourceUrlPipe } from './safe-resource-url.pipe';\r\n import { TypeofPipe } from './typeof.pipe';\r\n import { TrimPipe } from './trim.pipe';\r\n import { ToNumberPipe } from './to-number.pipe';\r\n \r\n @NgModule({\r\n declarations: [\r\n IntegerCurrency,\r\n SafeHtmlPipe,\r\n SafeStylePipe,\r\n SafeResourceUrlPipe,\r\n SafeUrlPipe,\r\n EncodeUriPipe,\r\n DecodeUriPipe,\r\n TypeofPipe,\r\n TrimPipe,\r\n ToNumberPipe,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n IntegerCurrency,\r\n SafeHtmlPipe,\r\n SafeStylePipe,\r\n SafeResourceUrlPipe,\r\n SafeUrlPipe,\r\n EncodeUriPipe,\r\n DecodeUriPipe,\r\n TypeofPipe,\r\n TrimPipe,\r\n ToNumberPipe,\r\n ],\r\n providers: [CurrencyPipe],\r\n })\r\n export class CustomPipesModule {}\r\n ","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nexport enum IconSize {\r\n FULLSIZE = 'size-full',\r\n TINY = 'size-16',\r\n SMALLER = 'size-20',\r\n SMALL = 'size-32',\r\n MEDIUM = 'size-64',\r\n LARGE = 'size-128',\r\n XL = 'size-256',\r\n XXL = 'size-512',\r\n XXXL = 'size-1024',\r\n NONE = 'NONE',\r\n}\r\n\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Component, Input, OnInit, VERSION } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { IconSize } from './iconSize.enum';\r\n\r\n@Component({\r\n \r\n selector: 'kms-icon',\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./icon.component.scss'],\r\n})\r\nexport class IconComponent implements OnInit {\r\n\r\n /**\r\n * Required: Name of the SVG icon inside your sprite sheet file with name 'icons.svg'.\r\n * Pass 'none' if no icon should be rendered.\r\n */\r\n @Input() icon!: string | '';\r\n\r\n /**\r\n * Optional: Different appearance via CSS class defined in this component´s style sheet.\r\n */\r\n @Input() iconClass!: string | '';\r\n\r\n /**\r\n * Optional: Different appearance via CSS inline style.\r\n */\r\n \r\n @Input() iconStyle: any;\r\n\r\n /**\r\n * Optional: Different size via CSS inline style.\r\n */\r\n @Input() iconSize: IconSize = IconSize.FULLSIZE;\r\n\r\n /**\r\n * Dont use icon sprite\r\n */\r\n \r\n @Input() dontUseSprite = false;\r\n\r\n IconSize = IconSize;\r\n Version = VERSION.full;\r\n\r\n public timestamp = 0;\r\n\r\n /**\r\n * Renders this icon from SVG sprite sheet\r\n */\r\n public iconToShow!: string | '';\r\n\r\n constructor(public sanitizer: DomSanitizer) {\r\n this.iconToShow = this.icon;\r\n }\r\n\r\n ngOnInit() {\r\n this.iconToShow = this.icon;\r\n const d = new Date();\r\n const n = d.getTime();\r\n this.timestamp = n;\r\n }\r\n\r\n}\r\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NullAble } from '../../models';\r\n\r\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\r\n\r\n@Component({\r\n selector: 'kms-enum-radiogroup',\r\n templateUrl: './enum-radiogroup.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EnumRadiogroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EnumRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\r\n @Input() header: NullAble<String>;\r\n @Input() optionsEnum: any;\r\n @Input() translationPrefix = '';\r\n\r\n public optionValues: any;\r\n \r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n super(formBuilder, renderer);\r\n }\r\n\r\n ngOnInit(){\r\n this.optionValues = Object.keys(this.optionsEnum).filter(x => !(parseInt(x) >= 0));\r\n this.form = this.formBuilder.group({\r\n enumData: [],\r\n });\r\n this.formInitialized = true;\r\n\r\n this.form.valueChanges.subscribe((value) => {\r\n this.internalValue = value.enumData;\r\n this.onChange(value.enumData);\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n/**\r\n * A generic dialog component\r\n */\r\n@Component({\r\n \r\n selector: 'kms-accordion-item',\r\n templateUrl: './kms-accordion-item.component.html',\r\n styleUrls: ['./kms-accordion-item.component.scss'],\r\n})\r\nexport class KMSAccordionItemComponent implements OnInit {\r\n @Input() public itemTitle = '';\r\n \r\n public itemTitleTrustHtml: SafeHtml | undefined;\r\n @Input() public showAsCard = false;\r\n @Input() public isSmall = false;\r\n panelOpenState = false;\r\n\r\n constructor(public sanitizer: DomSanitizer) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(this.itemTitle);\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, OnDestroy, PLATFORM_ID } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { NullAble } from '../models';\r\n\r\n// needed for scrollToElement functionality\r\n\r\ndeclare const window: any;\r\n\r\ndeclare const document: any;\r\n\r\n/**\r\n * Service to get viewport\r\n */\r\n@Injectable()\r\nexport class ViewportService implements OnDestroy {\r\n public readonly viewports = [\r\n {\r\n name: 'xs',\r\n low: 420,\r\n high: 990,\r\n },\r\n {\r\n name: 's',\r\n low: 991,\r\n high: 1024,\r\n },\r\n {\r\n name: 'm',\r\n low: 1025,\r\n high: 1200,\r\n },\r\n {\r\n name: 'l',\r\n low: 12001,\r\n high: 1400,\r\n },\r\n {\r\n name: 'xl',\r\n low: 1401,\r\n high: 1600,\r\n },\r\n {\r\n name: 'xxl',\r\n low: 1601,\r\n high: 1920,\r\n },\r\n {\r\n name: 'xxxl',\r\n low: 1921,\r\n high: 99999,\r\n },\r\n ];\r\n\r\n private viewportChangedSubscriber: Subject<string> = new Subject<string>();\r\n private viewportResizedSubscriber: Subject<number> = new Subject<number>();\r\n private currentViewport!: string;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n window.addEventListener('resize', this.documentSizeChanged.bind(this), { passive: true });\r\n }\r\n }\r\n\r\n /**\r\n * Get window height\r\n */\r\n public getDocumentHeight(): number {\r\n return isPlatformBrowser(this.platformId) ? document.body.clientHeight : 1200;\r\n }\r\n\r\n /**\r\n * Get window width\r\n */\r\n public getDocumentWidth(): number {\r\n return isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\r\n }\r\n\r\n /**\r\n * Get window height\r\n */\r\n public getWindowHeight(): number {\r\n return isPlatformBrowser(this.platformId) ? window.innerHeight : 1200;\r\n }\r\n\r\n /**\r\n * Get window width\r\n */\r\n public getWindowWidth(): number {\r\n return isPlatformBrowser(this.platformId) ? window.innerWidth : 1200;\r\n }\r\n\r\n /**\r\n * Returns the current viewport MQ as string\r\n * @returns string\r\n */\r\n getCurrentViewPort(): string {\r\n if (!this.currentViewport) {\r\n const currentWidth: number = isPlatformBrowser(this.platformId) ? document.body.clientWidth : 1200;\r\n this.currentViewport = this.convertWidthToMediaQuery(currentWidth);\r\n }\r\n\r\n return this.currentViewport;\r\n }\r\n\r\n /**\r\n * Provides mq´s as string\r\n */\r\n public getViewportChangedObserver(): Observable<string> {\r\n return this.viewportChangedSubscriber.asObservable();\r\n }\r\n\r\n /**\r\n * Provides the current window width as number\r\n */\r\n public getViewportResizedObserver(): Observable<number> {\r\n return this.viewportResizedSubscriber.asObservable();\r\n }\r\n\r\n public scrollToElementId(el: string, alignCenter = false) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.scrollToElement(document.querySelector('#' + el), alignCenter);\r\n }\r\n }\r\n\r\n /**\r\n * Helper function that scrolls to the given markup element.\r\n * @param el - nativeElement from markup\r\n * @param alignCenter - defines if the element needs to be centered on window\r\n */\r\n\r\n public scrollToElement(el: HTMLElement, alignCenter = false) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n let extraScrollTop = 0;\r\n\r\n if (alignCenter) {\r\n extraScrollTop = (window.innerHeight - el.clientHeight) / 2;\r\n }\r\n\r\n /*\r\n const elementPos: DOMRect = el.getBoundingClientRect();\r\n const scrollTopPosition = elementPos.x - extraScrollTop;\r\n */\r\n\r\n //let offsetLeft = 0;\r\n let offsetTop = 0;\r\n\r\n let elTemp: NullAble<HTMLElement> = el;\r\n\r\n while (elTemp) {\r\n //offsetLeft += elTemp.offsetLeft;\r\n offsetTop += elTemp.offsetTop;\r\n elTemp = elTemp.parentElement ? elTemp.parentElement : null;\r\n }\r\n\r\n window.scrollTo({ left: 0, top: offsetTop - extraScrollTop, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n /**\r\n * Scroll to the top position\r\n * @param top - top position value\r\n */\r\n public scrollTop(top: number) {\r\n if (isPlatformBrowser(this.platformId)) {\r\n window.scrollTo({ left: 0, top: top, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n window.removeEventListener('resize', this.documentSizeChanged);\r\n }\r\n }\r\n\r\n /**\r\n * If viewport changed\r\n * @event\r\n */\r\n\r\n private documentSizeChanged(event: any) {\r\n const currentWindowWidth: number = event.target.innerWidth;\r\n // inform who´s interested\r\n this.viewportResizedSubscriber.next(currentWindowWidth);\r\n\r\n if (currentWindowWidth > 0) {\r\n for (const mqs of this.viewports) {\r\n if (currentWindowWidth > mqs.high) {\r\n continue;\r\n } else if (\r\n (currentWindowWidth >= mqs.low || currentWindowWidth <= mqs.high) &&\r\n this.currentViewport !== mqs.name\r\n ) {\r\n this.currentViewport = mqs.name;\r\n // inform who´s interested\r\n this.viewportChangedSubscriber.next(mqs.name);\r\n break;\r\n } else if (this.currentViewport === mqs.name) {\r\n break;\r\n } else {\r\n console.error('ERROR');\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get the Media Query for the given width\r\n * @param width Width to get the according MQ for\r\n */\r\n private convertWidthToMediaQuery(width: number) {\r\n let currentViewport = '';\r\n\r\n for (const mqs of this.viewports) {\r\n if (width <= mqs.high && width >= mqs.low) {\r\n currentViewport = mqs.name;\r\n break;\r\n }\r\n }\r\n\r\n return currentViewport;\r\n }\r\n\r\n isPortrait() {\r\n if (isPlatformBrowser(this.platformId)) return window.innerHeight > window.innerWidth;\r\n else return;\r\n }\r\n\r\n isLandscape() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n const isLandscape = window.orientation === 90 || window.orientation === -90;\r\n return isLandscape;\r\n } else {\r\n return;\r\n }\r\n }\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Address } from '../../models/address.model';\r\nimport { ViewportService } from '../../services/viewport.service';\r\n\r\n/**\r\n * MarkerOptions class for Marker\r\n */\r\nexport class MarkerOptions {\r\n animation!: number;\r\n}\r\n\r\n/**\r\n * MarkerLabel class for Marker\r\n */\r\nexport class MarkerLabel {\r\n color!: string;\r\n text!: string;\r\n}\r\n\r\n/**\r\n * Marker class\r\n */\r\nexport class Marker {\r\n position!: google.maps.LatLngLiteral;\r\n label!: MarkerLabel;\r\n title!: string;\r\n options!: MarkerOptions;\r\n}\r\n\r\n/**\r\n * Component to show marker on google map for specific address\r\n */\r\n@Component({\r\n selector: 'kms-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.scss']\r\n})\r\nexport class MapComponent implements OnInit {\r\n\r\n @Input() data!: Address;\r\n\r\n public markers: Marker[] = [];\r\n public geoDataFoundForAddress = false;\r\n public widthSet = false;\r\n\r\n public width = '100%';\r\n public zoom = 15;\r\n public center: google.maps.LatLngLiteral = {\r\n \r\n lat: 52.097449,\r\n lng: 12.7436911,\r\n };\r\n\r\n public options: google.maps.MapOptions = {\r\n mapTypeId: 'roadmap',\r\n zoomControl: false,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n maxZoom: 15,\r\n minZoom: 8,\r\n };\r\n\r\n \r\n public google: any;\r\n\r\n public geocoder: any;\r\n\r\n public viewportSubscription?: Subscription;\r\n\r\n //\r\n constructor(private viewPortService: ViewportService) { }\r\n\r\n ngOnInit() {\r\n this.findLocation(this.data.Street + ' ' + this.data.Zip + ' ' + this.data.City);\r\n\r\n\r\n }\r\n\r\n /**\r\n * Asks google for geocoordinates of a given address string\r\n * @input address as string\r\n */\r\n findLocation(address: string) {\r\n if (!this.geocoder) { this.geocoder = new google.maps.Geocoder(); }\r\n this.geocoder.geocode({\r\n 'address': address,\r\n \r\n }, (results: any, status: google.maps.GeocoderStatus) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n\r\n this.center.lat = results[0].geometry.location.lat();\r\n this.center.lng = results[0].geometry.location.lng();\r\n\r\n this.addMarker();\r\n this.geoDataFoundForAddress = true;\r\n\r\n // react to browser resize\r\n this.setMapWidth(this.viewPortService.getDocumentWidth());\r\n this.viewportSubscription = this.viewPortService.getViewportResizedObserver().subscribe(\r\n (val) => {\r\n this.setMapWidth(val);\r\n },\r\n (error) => {\r\n console.error('Get updated ViewPort failed', error);\r\n },\r\n );\r\n\r\n } else {\r\n console.error('Sorry, this search of map address produced no results.');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Adds a marker to the map\r\n */\r\n addMarker() {\r\n this.markers.push({\r\n position: {\r\n lat: this.center.lat,\r\n lng: this.center.lng,\r\n },\r\n label: {\r\n color: 'blue',\r\n \r\n text: this.data.Name1 || '',\r\n },\r\n title: this.data.Name1 + ' ' + this.data.Street + ' ' + this.data.Zip,\r\n options: { animation: google.maps.Animation.DROP },\r\n });\r\n }\r\n\r\n /**\r\n * sets the width of map accodring to viewport\r\n */\r\n setMapWidth(val: number) {\r\n if (val < 991) {\r\n this.width = (val - 84) + 'px';\r\n }else{\r\n this.width = '100%';\r\n }\r\n this.widthSet = true;\r\n }\r\n\r\n /**\r\n * Zooms in into map\r\n */\r\n zoomIn() {\r\n if (this.options.maxZoom && this.zoom < this.options.maxZoom) { this.zoom++; }\r\n }\r\n\r\n /**\r\n * Zooms out from map\r\n */\r\n zoomOut() {\r\n if (this.options.minZoom && this.zoom > this.options.minZoom) { this.zoom--; }\r\n }\r\n}\r\n","// TODO change values after cleaned up database\r\nexport enum SalutationEnum {\r\n NOT_SPECIFIED = 'Keine Anrede',\r\n MALE = 'Herr',\r\n FEMALE = 'Frau',\r\n}\r\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { NullAble } from '../../models';\r\nimport { SalutationEnum } from '../../models/salutation.enum';\r\n\r\nimport { FormControlParentComponent } from './../../parent-components/form-control.component';\r\n\r\n@Component({\r\n selector: 'kms-salutation-dropdown',\r\n templateUrl: './salutation-dropdown.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SalutationDropdownComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SalutationDropdownComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\r\n @Input() placeholder: NullAble<String>;\r\n\r\n //For view\r\n SalutationEnum = SalutationEnum;\r\n Object = Object;\r\n\r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n super(formBuilder, renderer);\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n salut: [],\r\n });\r\n this.formInitialized = true;\r\n \r\n //somehow for dropowns we have to set value manually with timeout for default value\r\n setTimeout(() => {\r\n this.form.controls['salut'].setValue(this.value ? this.value : '');\r\n }, 1000);\r\n\r\n\r\n this.form.valueChanges.subscribe((value) => {\r\n this.onChange(value.salut);\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'kms-tooltip-element',\r\n templateUrl: './tooltip.component.html',\r\n styleUrls: ['./tooltip.component.scss']\r\n})\r\nexport class TooltipComponent {\r\n @Input() tooltipTitle = \"\";\r\n}\r\n","/*!\r\n * @copyright FLYACTS GmbH 2019\r\n */\r\n\r\nexport type NullAble<T> = T | null | undefined;\r\n","/**\r\n * Attached File DTO\r\n */\r\nexport class AttachedFileDTO {\r\n ImageIdent?: string;\r\n ImageLink?: string;\r\n Filename?: string;\r\n ImageAsDataURL?: string;\r\n CreateSmallImage?: boolean;\r\n Text?: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { IconSize } from '../../models';\r\n\r\n@Component({\r\n selector: 'kms-tooltip-icon',\r\n templateUrl: './tooltip-icon.component.html',\r\n styleUrls: ['./tooltip-icon.component.scss']\r\n})\r\nexport class TooltipIconComponent {\r\n @Input() tooltipTitle = \"\";\r\n @Input() tooltipText = \"\";\r\n @Input() tooltipLinkText = \"\";\r\n @Input() tooltipLinkUrl = \"\";\r\n\r\n @Input() placement = \"\";\r\n @Input() delay = 1000;\r\n\r\n IconSize = IconSize;\r\n}\r\n","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { isValue } from '../../models';\r\nimport { SalutationEnum } from '../../models/salutation.enum';\r\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\r\n\r\n@Component({\r\n selector: 'kms-salutation-radiogroup',\r\n templateUrl: './salutation-radiogroup.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SalutationRadiogroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SalutationRadiogroupComponent extends FormControlParentComponent implements OnInit, ControlValueAccessor {\r\n \r\n //For view\r\n SalutationEnum = SalutationEnum;\r\n Object = Object;\r\n\r\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\r\n super(formBuilder, renderer);\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n salut: [isValue(this.value) ? this.value : '', null],\r\n });\r\n this.formInitialized = true;\r\n\r\n this.form.valueChanges.subscribe((value) => {\r\n this.internalValue = value.salut;\r\n this.onChange(value.salut);\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n}\r\n","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'kms-back-to-top',\r\n templateUrl: './back-to-top.component.html',\r\n})\r\nexport class BackToTopComponent {\r\n windowScrolled?: boolean;\r\n\r\n constructor(@Inject(PLATFORM_ID) public platformId: Object) {}\r\n\r\n @HostListener('window:scroll', [])\r\n onWindowScroll() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop > 100) {\r\n this.windowScrolled = true;\r\n } else if (\r\n (this.windowScrolled && window.pageYOffset) ||\r\n document.documentElement.scrollTop ||\r\n document.body.scrollTop < 10\r\n ) {\r\n this.windowScrolled = false;\r\n }\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n (function smoothscroll() {\r\n const currentScroll = document.documentElement.scrollTop || document.body.scrollTop;\r\n if (currentScroll > 0) {\r\n window.requestAnimationFrame(smoothscroll);\r\n window.scrollTo(0, currentScroll - currentScroll / 8);\r\n }\r\n })();\r\n }\r\n }\r\n}\r\n","export enum ButtonResponseType{\r\n primary = 'primary',\r\n secondary = 'secondary'\r\n}","/**\r\n * @copyright KMS GmbH\r\n */\r\n\r\nimport { Component, Inject, NgZone } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { isValue } from '../../models';\r\nimport { ButtonResponseType } from '../button-with-confirm-dialog/button-response-types.enum';\r\nimport { DialogData, DialogDataButtons } from '../button-with-confirm-dialog/dialog-data.model';\r\n\r\n/**\r\n * A generic dialog component\r\n */\r\n@Component({\r\n selector: 'kms-generic-dialog',\r\n templateUrl: './generic-dialog.component.html',\r\n styleUrls: ['./generic-dialog.component.scss'],\r\n})\r\nexport class GenericDialogComponent {\r\n\r\n ButtonResponseType = ButtonResponseType;\r\n\r\n public buttons: DialogDataButtons\r\n\r\n public constructor(\r\n public dialogRef: MatDialogRef<GenericDialogComponent>,\r\n public zone: NgZone,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n if (isValue(data.buttons)) {\r\n this.buttons = data.buttons;\r\n } else {\r\n this.buttons = { primary: 'Yes', secondary: 'No' } as DialogDataButtons;\r\n }\r\n }\r\n\r\n /**\r\n * Action called when clicked\r\n * @param clickedButton Whether the primary or secondary button was clicked\r\n */\r\n public onClickAction(clickedButton: ButtonResponseType): void {\r\n this.zone.run(() => {\r\n this.dialogRef.close(clickedButton);\r\n this.dialogRef.afterClosed().subscribe(() => {\r\n const buttonList = document.querySelectorAll('.mat-flat-button, .mat-button');\r\n let i = 0;\r\n for (i; i < buttonList.length; i++) {\r\n buttonList[i].classList.remove('cdk-focused');\r\n buttonList[i].classList.remove('cdk-program-focused');\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SubSink } from 'subsink';\r\nimport { NullAble } from '../../models';\r\nimport { GenericDialogComponent } from '../generic-dialog/generic-dialog.component';\r\nimport { ButtonResponseType } from './button-response-types.enum';\r\nimport { DialogData } from './dialog-data.model';\r\n\r\n@Component({\r\n selector: 'kms-button-with-confirm-dialog',\r\n templateUrl: './button-with-confirm-dialog.component.html',\r\n styleUrls: ['./button-with-confirm-dialog.component.scss'],\r\n})\r\nexport class ButtonWithConfirmDialogComponent implements OnInit {\r\n @Input() disabled: NullAble<boolean>;\r\n @Input() buttonText: NullAble<string>;\r\n @Input() confirmTitle: NullAble<string>;\r\n @Input() confirmTextYes: NullAble<string>;\r\n @Input() confirmTextNo: NullAble<string>;\r\n\r\n // Outputs when dialogue was closed. Returns true, if yes was clicked, false otherwise\r\n @Output() onConfirmClosed: EventEmitter<boolean> = new EventEmitter();\r\n\r\n private subs = new SubSink();\r\n \r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n constructor(\r\n public dialog: MatDialog,\r\n ) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n ngOnInit() {}\r\n\r\n start(){\r\n const data: DialogData = {\r\n title: this.confirmTitle,\r\n buttons:{\r\n primary: this.confirmTextYes,\r\n secondary: this.confirmTextNo,\r\n }\r\n };\r\n const dialogRef = this.dialog.open(GenericDialogComponent, {\r\n data: data,\r\n });\r\n\r\n this.subs.sink = dialogRef.afterClosed().subscribe(result => {\r\n if (result === ButtonResponseType.primary) {\r\n this.onConfirmClosed.emit(true);\r\n }else{\r\n this.onConfirmClosed.emit(false);\r\n }\r\n dialogRef.close();\r\n });\r\n }\r\n}\r\n","import { Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { EnumValues } from 'enum-values/src/enumValues';\r\n//import { EnumValues } from 'enum-values';\r\nimport { FormControlParentComponent } from '../../parent-components/form-control.component';\r\n\r\n/**\r\n * Dropdown from data component {@link https://leaseplan-dev.rentoffice.de/styleguide#ui-elements}\r\n */\r\n@Component({\r\n selector: 'kms-dropdown-from-data',\r\n templateUrl: './dropdown-from-data.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DropdownFromDataComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DropdownFromDataComponent extends FormControlParentComponent\r\n implements OnInit, ControlValueAccessor, OnChanges {\r\n // structured data as a enum set. Can be used in combination with 'optionsPlainArray' to set diferent values by index\r\n @Input() optionsEnum: any;\r\n\r\n // structured data as a simple array of elements\r\n @Input() optionsPlainArray: any;\r\n\r\n // structured data as an array of objects used in combination with the input 'mapKey' and 'mapValue'\r\n @Input() optionsObjArray: any;\r\n // key identifier of the obj. If mapValue doesnt exist, mapKey is also the value\r\n @Input() mapKey?: any;\r\n // value identifier of the obj\r\n @Input() mapValue?: any;\r\n\r\n // options for the dropdown have a null value at the beginning of the array\r\n @Input() hasNullOption = false;\r\n\r\n @Input() translation?: ITranslation;\r\n @Input() placeholder = '';\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() useEnumIndexAsValue = false;\r\n\r\n public keys: any[] = [];\r\n public values: any[] = [];\r\n\r\n Object = Object;\r\n\r\n constructor(\r\n public formBuilder: FormBuilder,\r\n public renderer: Renderer2,\r\n ) {\r\n super(formBuilder, renderer);\r\n }\r\n\r\n /**\r\n * Hook used to sync changes on set Label and Type\r\n * @param changes\r\n */\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.optionsPlainArray) {\r\n this.keys = this.optionsPlainArray;\r\n this.values = this.optionsPlainArray;\r\n }\r\n this.setKeyValues();\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.formBuilder.group({\r\n dropdownData: [],\r\n });\r\n this.formInitialized = true;\r\n\r\n this.form.valueChanges.subscribe(value => {\r\n this.internalValue = value.dropdownData;\r\n this.onChange(value.dropdownData);\r\n });\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n /**\r\n * transofrms the data values to the correct format for be used by the template\r\n * @param value\r\n */\r\n private setKeyValues(): void {\r\n if (this.optionsObjArray && this.mapKey && this.mapValue) {\r\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\r\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapValue}`]);\r\n } else if (this.optionsObjArray && this.mapKey) {\r\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\r\n this.values = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\r\n }\r\n if (this.optionsEnum) {\r\n this.keys = EnumValues.getNames(this.optionsEnum);\r\n if (this.optionsPlainArray) {\r\n this.values = this.optionsPlainArray;\r\n } else {\r\n const values = EnumValues.getValues(this.optionsEnum);\r\n\r\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' }\r\n let keyValueEnum = false;\r\n\r\n for (let i = 0; i < this.keys.length; i++) {\r\n if (i !== values[i]) {\r\n keyValueEnum = true;\r\n }\r\n }\r\n if (keyValueEnum || this.useEnumIndexAsValue) {\r\n this.values = values;\r\n } else {\r\n this.values = EnumValues.getNames(this.optionsEnum);\r\n }\r\n }\r\n }\r\n if (this.hasNullOption === true) this.keys.unshift(null);\r\n if (this.hasNullOption === true) this.values.unshift(null);\r\n }\r\n\r\n /**\r\n * set the value of the dropdown based if translation is set\r\n * @param key \r\n */\r\n public setDisplayKey(key: any) {\r\n /*\r\n if (this.translation && key !== null) {\r\n if (this.translation.isPrefix) {\r\n return this.translationService.instant(this.translation.path + '.' + key);\r\n } else if (this.translation.useKey) {\r\n return this.translationService.instant(this.translation.path, { key: key });\r\n } else if (!this.translation?.useKey && !this.translation?.isPrefix) {\r\n return this.translationService.instant(this.translation.path);\r\n }\r\n } else if (key == null) {\r\n return '';\r\n } else if (!this.translation) {\r\n return key;\r\n }\r\n */\r\n return key;\r\n }\r\n\r\n valueChanged(value: any) {\r\n this.form.patchValue({\r\n dropdownData: value,\r\n });\r\n this.onSelectItemEmitter.emit(value);\r\n }\r\n}\r\n\r\n/**\r\n * Interface that defines the translation object in template\r\n */\r\ninterface ITranslation {\r\n path: string;\r\n useKey?: boolean;\r\n isPrefix?: boolean;\r\n}\r\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 { MatMenuModule } from '@angular/material/menu';\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\nimport { NgxUsefulSwiperModule } from 'ngx-useful-swiper';\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 MatMenuModule,\r\n CustomPipesModule,\r\n GoogleMapsModule,\r\n MatExpansionModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n DirectivesModule,\r\n TranslateModule,\r\n NgxUsefulSwiperModule,\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 ɵ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 {DecodeUriPipe as ɵbd} from './lib/pipes/decode-uri.pipe';\nexport {EncodeUriPipe as ɵbc} 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 {SafeResourceUrlPipe as ɵba} from './lib/pipes/safe-resource-url.pipe';\nexport {SafeStylePipe as ɵz} 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 ɵ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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"}