@kms-ngx-ui/presentational 13.0.0 → 14.0.1
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.
- package/esm2020/lib/directives/directives.module.mjs +5 -5
- package/esm2020/lib/directives/mousewheel.directive.mjs +3 -3
- package/esm2020/lib/directives/sum-of-height.directive.mjs +3 -3
- package/esm2020/lib/directives/swipe.directive.mjs +3 -3
- package/esm2020/lib/directives/tooltip.directive.mjs +3 -3
- package/esm2020/lib/kms-ngx-ui-presentational.component.mjs +6 -10
- package/esm2020/lib/kms-ngx-ui-presentational.module.mjs +24 -26
- package/esm2020/lib/kms-ngx-ui-presentational.service.mjs +3 -3
- package/esm2020/lib/parent-components/actions.component.mjs +3 -3
- package/esm2020/lib/parent-components/form-control.component.mjs +5 -5
- package/esm2020/lib/parent-components/form.component.mjs +5 -5
- package/esm2020/lib/pipes/custom-pipes.module.mjs +5 -5
- package/esm2020/lib/pipes/decode-uri.pipe.mjs +3 -3
- package/esm2020/lib/pipes/encode-uri.pipe.mjs +3 -3
- package/esm2020/lib/pipes/integer-currency.pipe.mjs +3 -3
- package/esm2020/lib/pipes/safe-html.pipe.mjs +3 -3
- package/esm2020/lib/pipes/safe-resource-url.pipe.mjs +3 -3
- package/esm2020/lib/pipes/safe-style.pipe.mjs +3 -3
- package/esm2020/lib/pipes/safe-url.pipe.mjs +3 -3
- package/esm2020/lib/pipes/to-number.pipe.mjs +3 -3
- package/esm2020/lib/pipes/trim.pipe.mjs +3 -3
- package/esm2020/lib/pipes/typeof.pipe.mjs +3 -3
- package/esm2020/lib/services/viewport.service.mjs +4 -4
- package/esm2020/lib/ui/back-to-top/back-to-top.component.mjs +6 -6
- package/esm2020/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.mjs +4 -4
- package/esm2020/lib/ui/checkbox/checkbox.component.mjs +8 -8
- package/esm2020/lib/ui/color-input/color-input.component.mjs +11 -11
- package/esm2020/lib/ui/dropdown-from-data/dropdown-from-data.component.mjs +10 -10
- package/esm2020/lib/ui/enum-radiogroup/enum-radiogroup.component.mjs +8 -8
- package/esm2020/lib/ui/file-input/file-input.component.mjs +15 -15
- package/esm2020/lib/ui/flyout/flyout.component.mjs +8 -8
- package/esm2020/lib/ui/generic-dialog/generic-dialog.component.mjs +4 -4
- package/esm2020/lib/ui/icon/icon.component.mjs +4 -4
- package/esm2020/lib/ui/image-slider/image-slider.component.mjs +9 -9
- package/esm2020/lib/ui/kms-accordion-item/kms-accordion-item.component.mjs +7 -7
- package/esm2020/lib/ui/loader/loader.component.mjs +6 -6
- package/esm2020/lib/ui/map/map.component.mjs +6 -6
- package/esm2020/lib/ui/radiobutton/radiobutton.component.mjs +7 -7
- package/esm2020/lib/ui/salutation-dropdown/salutation-dropdown.component.mjs +6 -6
- package/esm2020/lib/ui/salutation-radiogroup/salutation-radiogroup.component.mjs +6 -6
- package/esm2020/lib/ui/time-input/time-input.component.mjs +7 -7
- package/esm2020/lib/ui/tooltip/tooltip.component.mjs +3 -3
- package/esm2020/lib/ui/tooltip-icon/tooltip-icon.component.mjs +6 -6
- package/esm2020/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.mjs +6 -6
- package/fesm2015/kms-ngx-ui-presentational.mjs +276 -282
- package/fesm2015/kms-ngx-ui-presentational.mjs.map +1 -1
- package/fesm2020/kms-ngx-ui-presentational.mjs +276 -282
- package/fesm2020/kms-ngx-ui-presentational.mjs.map +1 -1
- package/lib/directives/mousewheel.directive.d.ts +1 -1
- package/lib/directives/sum-of-height.directive.d.ts +1 -1
- package/lib/directives/swipe.directive.d.ts +1 -1
- package/lib/directives/tooltip.directive.d.ts +1 -1
- package/lib/kms-ngx-ui-presentational.component.d.ts +1 -1
- package/lib/parent-components/actions.component.d.ts +1 -1
- package/lib/parent-components/form-control.component.d.ts +5 -5
- package/lib/parent-components/form.component.d.ts +6 -6
- package/lib/pipes/decode-uri.pipe.d.ts +1 -1
- package/lib/pipes/encode-uri.pipe.d.ts +1 -1
- package/lib/pipes/integer-currency.pipe.d.ts +1 -1
- package/lib/pipes/safe-html.pipe.d.ts +1 -1
- package/lib/pipes/safe-resource-url.pipe.d.ts +1 -1
- package/lib/pipes/safe-style.pipe.d.ts +1 -1
- package/lib/pipes/safe-url.pipe.d.ts +1 -1
- package/lib/pipes/to-number.pipe.d.ts +1 -1
- package/lib/pipes/trim.pipe.d.ts +1 -1
- package/lib/pipes/typeof.pipe.d.ts +1 -1
- package/lib/ui/back-to-top/back-to-top.component.d.ts +1 -1
- package/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.d.ts +1 -1
- package/lib/ui/checkbox/checkbox.component.d.ts +1 -1
- package/lib/ui/color-input/color-input.component.d.ts +5 -5
- package/lib/ui/dropdown-from-data/dropdown-from-data.component.d.ts +4 -4
- package/lib/ui/enum-radiogroup/enum-radiogroup.component.d.ts +4 -4
- package/lib/ui/file-input/file-input.component.d.ts +7 -7
- package/lib/ui/flyout/flyout.component.d.ts +1 -1
- package/lib/ui/generic-dialog/generic-dialog.component.d.ts +1 -1
- package/lib/ui/icon/icon.component.d.ts +1 -1
- package/lib/ui/image-slider/image-slider.component.d.ts +1 -1
- package/lib/ui/kms-accordion-item/kms-accordion-item.component.d.ts +1 -1
- package/lib/ui/loader/loader.component.d.ts +1 -1
- package/lib/ui/map/map.component.d.ts +2 -1
- package/lib/ui/radiobutton/radiobutton.component.d.ts +1 -1
- package/lib/ui/salutation-dropdown/salutation-dropdown.component.d.ts +4 -4
- package/lib/ui/salutation-radiogroup/salutation-radiogroup.component.d.ts +4 -4
- package/lib/ui/time-input/time-input.component.d.ts +5 -5
- package/lib/ui/tooltip/tooltip.component.d.ts +1 -1
- package/lib/ui/tooltip-icon/tooltip-icon.component.d.ts +1 -1
- package/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.d.ts +5 -5
- package/package.json +9 -9
- /package/{kms-ngx-ui-presentational.d.ts → index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kms-ngx-ui-presentational.mjs","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/ui/checkbox/checkbox.component.html","../../../../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/models/types/attached-file-dto.model.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/icon/iconSize.enum.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/icon/icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/tooltip.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.html","../../../../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-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/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/enum-radiogroup/enum-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.html","../../../../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/ui/map/map.component.html","../../../../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/salutation-dropdown/salutation-dropdown.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.html","../../../../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/generic-dialog/generic-dialog.component.html","../../../../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/button-with-confirm-dialog/button-with-confirm-dialog.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/mousewheel.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","<!-- <label class=\"wrapper ui-copy-text\"\n [ngClass]=\"{'disabled' : disabled}\">{{label}}\n <input type=\"checkbox\" \n [checked]=\"checked\"\n [value]=\"value\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"selectAction($event)\">\n\n</label> -->\n<mat-checkbox class=\"example-margin\" [disabled]=\"disabled\" [name]=\"name\" [(ngModel)]=\"checked\"></mat-checkbox>\n<span *ngIf=\"infoText && infoText.length > 0\" \n class=\"\"\n [ngClass]=\"{'disabled' : disabled}\">{{infoText}}\n</span>","/*!\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","/**\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","/*!\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","/*!\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","<ng-container *ngIf=\"icon !== 'none' && dontUseSprite === false\">\n <span class=\"icon {{ iconSize }}\" [ngClass]=\"iconClass\" [ngStyle]=\"iconStyle\">\n <svg>\n <use\n [attr.xlink:href]=\"\n 'assets/sprite.svg?Version=' + Version + '#' + iconToShow\n \"\n ></use>\n </svg>\n </span>\n</ng-container>\n<ng-container *ngIf=\"icon !== 'none' && dontUseSprite === true\">\n <object\n [data]=\"\n sanitizer.bypassSecurityTrustResourceUrl('assets/icons/' + icon + '')\n \"\n type=\"image/svg+xml\"\n class=\"icon {{ iconSize }}\"\n [ngClass]=\"iconClass\"\n [ngStyle]=\"iconStyle\"\n ></object>\n</ng-container>\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[kmsTooltip]'\n})\nexport class TooltipDirective {\n @Input('tooltipTitle') tooltipTitle = \"\";\n @Input('tooltipText') tooltipText = \"\";\n @Input('tooltipLinkText') tooltipLinkText = \"\";\n @Input('tooltipLinkUrl') tooltipLinkUrl = \"\";\n @Input('tooltipPlacement') tooltipPlacement = \"bottom\";\n @Input('tooltipDelay') tooltipDelay = 1000;\n @Input('tooltipPlaceIntoHost') tooltipPlaceIntoHost = false;\n @Input('tooltipOnlyonclick') tooltipOnlyonclick = false;\n\n tooltipElem?: HTMLElement | undefined;\n tooltipLinkElem?: HTMLElement | undefined;\n tooltipTitleElem?: HTMLElement | undefined;\n tooltipTextElem?: HTMLElement | undefined;\n offset = 0;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n if (!this.tooltipOnlyonclick) { this.show(); }\n }\n\n @HostListener('click') onClick() {\n if (this.tooltipOnlyonclick) { this.show(); }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.tooltipElem) { this.hide(); }\n }\n\n show() {\n if (!this.tooltipElem){\n this.create();\n this.setPosition();\n }\n this.renderer.addClass(this.tooltipElem, 'tooltip-show');\n }\n\n hide() {\n this.renderer.removeClass(this.tooltipElem, 'tooltip-show');\n window.setTimeout(() => {\n }, this.tooltipDelay);\n }\n\n create() {\n this.tooltipElem = this.renderer.createElement('kms-tooltip-element');\n\n this.tooltipTitleElem = this.renderer.createElement('b');\n this.renderer.appendChild(this.tooltipTitleElem, this.renderer.createText(this.tooltipTitle));\n this.renderer.appendChild(this.tooltipElem, this.tooltipTitleElem);\n \n this.tooltipTextElem = this.renderer.createElement('div');\n this.renderer.appendChild(this.tooltipTextElem, this.renderer.createText(this.tooltipText));\n this.renderer.appendChild(this.tooltipElem, this.tooltipTextElem);\n \n this.tooltipLinkElem = this.renderer.createElement('a');\n this.renderer.setAttribute(this.tooltipLinkElem, 'href', this.tooltipLinkUrl);\n this.renderer.appendChild(this.tooltipLinkElem, this.renderer.createText(this.tooltipLinkText));\n this.renderer.appendChild(this.tooltipElem, this.tooltipLinkElem);\n\n if(this.tooltipPlaceIntoHost){\n this.renderer.appendChild(this.el.nativeElement, this.tooltipElem);\n }else{\n this.renderer.appendChild(document.body, this.tooltipElem);\n }\n\n this.renderer.addClass(this.tooltipElem, 'tooltip');\n this.renderer.addClass(this.tooltipElem, `tooltip-${this.tooltipPlacement}`);\n this.renderer.setStyle(this.tooltipElem, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n if(this.tooltipElem){\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltipElem.getBoundingClientRect();\n\n let top, left;\n\n if(this.tooltipPlaceIntoHost){\n left = 0;\n top = hostPos.height; \n } else {\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n if (this.tooltipPlacement === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (!this.tooltipPlacement || this.tooltipPlacement === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPlacement === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPlacement === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n top += scrollPos;\n }\n\n this.renderer.setStyle(this.tooltipElem, 'top', `${top}px`);\n this.renderer.setStyle(this.tooltipElem, 'left', `${left}px`);\n }\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","<span\n kmsTooltip\n [tooltipTitle]=\"tooltipTitle\"\n [tooltipText]=\"tooltipText\"\n [tooltipPlacement]=\"placement\"\n [tooltipDelay]=\"delay\"\n [tooltipLinkText]=\"tooltipLinkText\"\n [tooltipLinkUrl]=\"tooltipLinkUrl\"\n>\n <kms-icon icon=\"ic_info\" [iconSize]=\"IconSize.SMALLER\" [iconClass]=\"'color-primary'\"></kms-icon>\n</span>\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<form [formGroup]=\"form\" *ngIf=\"formInitialized\">\n <div>\n <mat-form-field class=\"colorInput\">\n <kms-tooltip-icon [tooltipText]=\"tooltipText\" *ngIf=\"tooltipText\"></kms-tooltip-icon>\n <mat-label>{{ label }}</mat-label>\n <input type=\"text\" [(ngModel)]=\"value\" matInput formControlName=\"color\" [placeholder]=\"placeholder\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n <input type=\"color\" [value]=\"value && matchesHex(value) ? value : '#ffffff'\" (change)=\"updateSelectedColor($event)\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n </mat-form-field>\n </div>\n</form>","/*!\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","<label class=\"wrapper ui-small-text\"\n [ngClass]=\"{'disabled' : disabled}\">\n <input type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n (change)=\"selectAction($event)\">{{label}}\n\n <kms-icon\n class=\"checkmark\" \n aria-hidden=\"true\"\n *ngIf=\"checked\"\n [ngClass]=\"{\n 'disabled' : disabled\n }\"\n [iconClass]=\"{\n 'disabled' : disabled, \n 'color-primary': true,\n 'size-16': true\n }\"\n [icon]=\"'ic_radiobutton_active'\"\n >\n </kms-icon>\n <kms-icon\n class=\"checkmark\" \n aria-hidden=\"true\"\n *ngIf=\"!checked\"\n [ngClass]=\"{\n 'disabled' : disabled\n }\"\n [iconClass]=\"{\n 'disabled' : disabled, \n 'color-primary': true,\n 'size-16': true\n }\"\n [icon]=\"'ic_radiobutton_inactive'\"\n >\n </kms-icon>\n <ng-content></ng-content>\n</label>\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","<form [formGroup]=\"form\" class=\"timeInput\">\n <input type=\"text\" formControlName=\"h\" [value]=\"h\" maxlength=\"2\" pattern=\"(0?[0-9]|1[0-9]|2[0-3])\"/>\n <span>:</span>\n <input type=\"text\" formControlName=\"m\" [value]=\"m\" maxlength=\"2\" pattern=\"(0?[0-9]|[1-5][0-9])\"/>\n</form>","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","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group [formControl]=\"form.controls['yesno']\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"true\" [checked]=\"internalValue === true\"> {{ textYes }}</mat-radio-button>\n <mat-radio-button [value]=\"false\" [checked]=\"internalValue === false\"> {{ textNo }}</mat-radio-button>\n </mat-radio-group>\n</form>\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","<form [formGroup]=\"form\" (change)=\"newImageLoading=true\" class=\"fileInput\"> \n\n <div *ngIf=\"form.value.Filename && previewImage\">\n <div *ngIf=\"newImageLoading\">\n {{ 'file-input.loading' | translate }}\n </div>\n <div *ngIf=\"!newImageLoading\">\n <div class=\"\">\n <div class=\"\">\n <img *ngIf=\"form.value.ImageLink && form.value.ImageLink !== '' && !(form.value.ImageAsDataURL && form.value.ImageAsDataURL !== '')\" [src]=\"form.value.ImageAsDataURL\" [src]=\"form.value.ImageLink\" style=\"height: 40px; width: fit-content;\" />\n <img *ngIf=\"form.value.ImageAsDataURL && form.value.ImageAsDataURL !== ''\" [src]=\"form.value.ImageAsDataURL\" style=\"height: 40px; width: fit-content;\" />\n </div>\n <div class=\"\">{{form.value.Filename}}</div>\n <div class=\"\">\n <div (click)=\"removeFromList()\" *ngIf=\"allowRemove\">\n <kms-icon icon=\"trash\" [iconSize]=\"IconSize.TINY\" iconClass=\"color-black\"></kms-icon> \n {{ 'file-input.remove' }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!previewImage\">\n <div class=\"\">{{form.value.Filename}}</div>\n </div>\n\n <button (click)=\"selectImageOverlay()\" class=\"button-primary-font-color\" mat-stroked-button>\n <span>{{ label }}</span>\n </button>\n <input\n type=\"file\"\n [accept]=\"acceptedFileMimetypes\"\n style=\"display: none\"\n #fileInput\n (click)=\"clearInputValue($event)\"\n (change)=\"selectImage($event)\"\n />\n\n <input type=\"hidden\" [formControl]=\"form.controls['ImageIdent']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['ImageLink']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['Filename']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['ImageAsDataURL']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['Text']\" />\n\n</form>","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","<div class=\"loading-spinner-shade\" *ngIf=\"loading\">\n <mat-spinner class=\"spinnerMargin\" color=\"accent\" diameter=\"44\"></mat-spinner>\n</div>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\n// ng\nimport { AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * Directive to calc the height of all inner elements\n */\n@Directive({\n \n selector: '[getMaxHeight]',\n})\nexport class GetMaxHeightDirective implements AfterContentChecked {\n /**\n * CSS class name of the child items (markup elements) that should be checked for their height.\n * This is mandatory.\n */\n @Input('getMaxHeight') cssClassName = '';\n\n /**\n * Event that will pass the height of the tallest child inside the container.\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\n */\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\n\n /**\n * Event that will pass the complete sum of all height values from each child.\n * Useful to calculate the full target height of a container (like dropdown) for animations.\n */\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterContentChecked(): void {\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\n }\n\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\n if (!parent) {\n return;\n }\n\n // find all the child elements with the selected class name\n const children = parent.getElementsByClassName(cssClassName);\n\n // failsafe\n if (!children) {\n return;\n }\n\n // get all the child elements heights\n const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);\n\n // failsafe\n if (itemHeights.length === 0) {\n return;\n }\n\n // find out the tallest element\n const maxHeight = itemHeights.reduce((prev, curr) => {\n return curr > prev ? curr : prev;\n }, 0);\n\n // get sum of heights\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\n\n // inform\n this.maxHeightChanged.emit(maxHeight);\n this.sumOfHeight.emit(sumOfHeight);\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 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","<div class=\"flyout\"\n [ngClass]=\"{'is-active': isDropdownOpened}\"\n>\n <div class=\"flyout-header\" (click)=\"toggleDropdownHeader()\" [ngClass]=\"headerCssClass\">\n <span [innerHtml]=\"headerTitle | kmsSafeHtml\"></span>\n <span [innerHtml]=\"headerText | kmsSafeHtml\"></span>\n\n <ng-content select=\"[header]\"></ng-content>\n\n <div *ngIf=\"hasButtonForMore\" (click)=\"toggleDropdown()\" class=\"flyout-header-more\">\n <span *ngIf=\"!isDropdownOpened\">\n {{ moreText }}\n </span>\n <span *ngIf=\"isDropdownOpened\">\n {{ lessText }}\n </span>\n <kms-icon [icon]=\"'chevron-down'\"\n [iconClass]=\"{'size-16': true, 'is-rotating180': isDropdownOpened}\" >\n </kms-icon>\n </div>\n </div>\n <div \n class=\"flyout-body\"\n [ngClass]=\"bodyCssClass\"\n tabindex=\"0\"\n [@dropdownAnimation]=\"{value: isDropdownOpened, params: {targetHeight: targetHeight, animationTime: '500'}}\"\n getMaxHeight=\"inner\"\n (sumOfHeight)=\"setDropdownListHeight($event)\"\n #flyoutHeader>\n <div class=\"inner\" #content>\n <ng-content ></ng-content>\n </div>\n </div>\n\n</div>\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 KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeStyle',\n})\nexport class SafeStylePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(style);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeResourceSUrl',\n})\nexport class SafeResourceUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeResourceUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'kmsTrim' })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsToNumber',\n pure: false\n \n})\nexport class ToNumberPipe implements PipeTransform {\n transform(items: any): any {\n if (!items) {\n return 0;\n }\n return parseInt(items, 10);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\n import { CommonModule, CurrencyPipe } from '@angular/common';\n import { NgModule } from '@angular/core';\n \n import { IntegerCurrency } from './integer-currency.pipe';\n import { DecodeUriPipe } from './decode-uri.pipe';\n import { EncodeUriPipe } from './encode-uri.pipe';\n import { SafeHtmlPipe } from './safe-html.pipe';\n import { SafeStylePipe } from './safe-style.pipe';\n import { SafeUrlPipe } from './safe-url.pipe';\n import { SafeResourceUrlPipe } from './safe-resource-url.pipe';\n import { TypeofPipe } from './typeof.pipe';\n import { TrimPipe } from './trim.pipe';\n import { ToNumberPipe } from './to-number.pipe';\n \n @NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeResourceUrlPipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeResourceUrlPipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n providers: [CurrencyPipe],\n })\n export class CustomPipesModule {}\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","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group [formControl]=\"form.controls['enumData']\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"choice\" [checked]=\"value === choice\" *ngFor=\"let choice of optionValues\">{{ translationPrefix + '.' + choice | translate }}</mat-radio-button>\n </mat-radio-group>\n</form>","/*!\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 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 @Input() public expanded = false;\n panelOpenState = false;\n\n constructor(public sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(\n this.itemTitle\n );\n }\n}\n","<mat-expansion-panel\n class=\"accordion-item\"\n [ngClass]=\"{showAsCard: showAsCard, showFlat: !showAsCard, isSmall: isSmall}\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [expanded] = \"expanded\"\n hideToggle=\"true\">\n <mat-expansion-panel-header class=\"accordion-item-header\">\n <mat-panel-title class=\"mat-subheading-2 accordion-item-title\">\n <div [innerHtml]=\"itemTitleTrustHtml\"></div>\n <ng-content select=\"[itemTitleElement]\"></ng-content>\n </mat-panel-title>\n <div class=\"accordion-item-header-icon-wrapper\">\n <kms-icon *ngIf=\"!panelOpenState\" icon=\"ic_plus\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-desktop\"></kms-icon>\n <kms-icon *ngIf=\"panelOpenState\" icon=\"ic_minus\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-desktop\"></kms-icon>\n\n <kms-icon *ngIf=\"!panelOpenState\" icon=\"chevron-down\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-mobile\"></kms-icon>\n <kms-icon *ngIf=\"panelOpenState\" icon=\"chevron-top\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-mobile\"></kms-icon>\n </div>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n</mat-expansion-panel>\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 } 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 * 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","<div *ngIf=\"geoDataFoundForAddress && widthSet\">\n <google-map\n height=\"415px\"\n [width]=\"width\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options\"\n >\n <map-marker\n *ngFor=\"let marker of markers\"\n [position]=\"marker.position\"\n [label]=\"marker.label\"\n [title]=\"marker.title\"\n [options]=\"marker.options\"\n >\n </map-marker>\n </google-map>\n</div>","// 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","<form [formGroup]=\"form\" class=\"row\">\n <mat-form-field class=\"col\">\n <mat-select disableOptionCentering [formControl]=\"form.controls['salut']\" [placeholder]=\"placeholder\" [value]=\"value\" #child>\n <mat-option [value]=\"SalutationEnum.NOT_SPECIFIED\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase() | translate }}</mat-option>\n <mat-option [value]=\"SalutationEnum.MALE\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase() | translate }}</mat-option>\n <mat-option [value]=\"SalutationEnum.FEMALE\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase() | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n</form>","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","<ng-content></ng-content>","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","<form [formGroup]=\"form\" >\n <mat-radio-group [formControl]=\"form.controls['salut']\" [disabled]=\"disabled\" #radioGroup>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.NOT_SPECIFIED\" [checked]=\"value === SalutationEnum.NOT_SPECIFIED\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase() | translate }}\n </mat-radio-button>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.MALE\" [checked]=\"value === SalutationEnum.MALE\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase() | translate }}\n </mat-radio-button>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.FEMALE\" [checked]=\"value === SalutationEnum.FEMALE\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase() | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</form>","/**\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","<div class=\"scrollToTop\"\n [ngClass]=\"{'show': windowScrolled}\"\n (click)=\"scrollToTop()\">\n <div class=\"scrollToTop-inner\">\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\n </div>\n</div>","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","<div mat-dialog-title class=\"mat-dialog-title\">\n <h3>{{ data.title }}</h3>\n</div>\n<div mat-dialog-content class=\"mat-dialog-content\">\n {{ data.message }}\n</div>\n<div mat-dialog-actions class=\"custom-dialog-actions\">\n <button\n mat-flat-button\n class=\"test_secondary_button\"\n color=\"accent\"\n (click)=\"onClickAction(ButtonResponseType.secondary)\"\n >\n {{ buttons.secondary }}\n </button>\n <button\n mat-flat-button\n class=\"test_primary_button\"\n color=\"primary\"\n (click)=\"onClickAction(ButtonResponseType.primary)\"\n >\n {{ buttons.primary }}\n </button>\n</div>\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","<button\n type=\"button\"\n (click)=\"start()\"\n mat-stroked-button\n [disabled]=\"disabled\"\n>\n {{ buttonText }}\n</button>\n","import {\n Component,\n forwardRef,\n Input,\n OnInit,\n OnChanges,\n SimpleChanges,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormBuilder,\n NG_VALUE_ACCESSOR,\n} 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\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor, OnChanges\n{\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 // multiple selection\n @Input() multiple = false;\n\n public keys: any[] = [];\n public values: any[] = [];\n\n Object = Object;\n\n constructor(public formBuilder: FormBuilder, public renderer: Renderer2) {\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(\n (obj: any) => obj[`${this.mapValue}`]\n );\n } else if (this.optionsObjArray && this.mapKey) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map(\n (obj: any) => obj[`${this.mapKey}`]\n );\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","<form [formGroup]=\"form\">\n <mat-form-field [attr.required]=\"required\" [floatLabel]=\"placeholder ? 'always' : 'auto'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n placeholder=\"{{ placeholder }}\"\n disableOptionCentering\n [(value)]=\"value\"\n (selectionChange)=\"valueChanged($event?.value)\"\n #child\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngFor=\"let key of keys; let i = index\" [value]=\"values[i]\">\n <span>{{ setDisplayKey(key) }}</span>\n </mat-option>\n </mat-select>\n </mat-form-field>\n</form>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\n\n@Directive({\n selector: '[swipeDirective]',\n})\nexport class SwipeDirective {\n /**\n * Output Event that is emitted during swipe process (mouse move or touch move event).\n * Can be used for calculation purposes.\n */\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\n\n /**\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\n * Can be used for calculation purposes.\n */\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\n\n private _swipeOptions: SwipeOptions | undefined;\n\n private _moveEventData: SwipeMoveEvent | undefined;\n private _startPosition = -1;\n\n private _lastPosX = 0;\n\n private _thresholdWasReached = false;\n\n private _isMobile: boolean | undefined;\n\n private _timeStart = 0;\n\n /**\n * Needed config that defines swipe behaviour.\n * @param options SwipeOptions\n */\n @Input('swipeDirective')\n set config(options: SwipeOptions) {\n if (options) {\n this._swipeOptions = options;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMouseDown(event: any) {\n this.calculateStartPosition(event);\n }\n\n @HostListener('mousemove', ['$event'])\n @HostListener('touchmove', ['$event'])\n onMove(event: any) {\n this.move(event);\n }\n\n @HostListener('mouseup', ['$event'])\n @HostListener('mouseleave', ['$event'])\n @HostListener('touchend', ['$event'])\n onRelease(event: any) {\n this.release(event);\n this.reset();\n }\n\n // ** PRIVATE ** //\n\n /**\n * Function checks if the current moving delta is inside the defined threshold.\n * Sets the flag to true if the threshold was reached once.\n */\n private checkThreshold(moveEvent: SwipeMoveEvent) {\n const percentage = this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\n\n if (!percentage && this._swipeOptions && moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold) {\n return;\n } else if (\n percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistancePercentage < this._swipeOptions.swipeThreshold / 100\n ) {\n return;\n } else {\n this._thresholdWasReached = true;\n }\n }\n\n private calculateStartPosition(event?: any) {\n // detect if touch or click\n this._isMobile = event.type === 'touchstart';\n\n // save start position\n\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\n if (this._isMobile) {\n const touch: Touch = event.touches[0];\n this._startPosition = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\n } else {\n this._startPosition = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\n }\n }\n\n this._lastPosX = this._startPosition;\n this._timeStart = event.timeStamp;\n this._thresholdWasReached = false;\n }\n\n private move(event: any) {\n // failsafe\n if (typeof event === 'undefined') {\n return;\n }\n\n let posX = 0;\n\n if (this._swipeOptions) {\n if (this._isMobile && event.type === 'touchmove') {\n const touch: Touch = event.touches[0];\n posX = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\n } else {\n posX = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\n }\n }\n\n const offsetPerFrame: number = posX - this._lastPosX;\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\n const swipeDistancePercentage: number = Math.abs(swipeDistanceTotal / event.target.clientWidth);\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\n\n let direction: number;\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\n speed = Math.max(0.1, speed);\n\n if (posX - this._startPosition > 0) {\n direction = 1; // a.k.a LTR\n } else {\n direction = -1; // a.k.a RTL\n }\n\n this._moveEventData = {\n position: posX,\n offsetPerFrame: offsetPerFrame,\n swipeDistanceTotal: swipeDistanceTotal,\n swipeDistancePercentage: swipeDistancePercentage,\n direction: direction,\n speed: speed,\n thresholdWasReached: this._thresholdWasReached,\n };\n\n this.checkThreshold(this._moveEventData);\n\n // update move delta\n this._lastPosX = posX;\n\n // inform\n this.moveEvent.emit(this._moveEventData);\n }\n\n private release(event: any) {\n // case: just a click/touch\n\n if (!this._moveEventData) {\n return;\n }\n\n const releaseEventData: SwipeReleaseEvent = {\n thresholdWasReached: this._thresholdWasReached,\n direction: this._moveEventData.direction,\n speed: this._moveEventData.speed,\n easingType: this.getEasingCurve(this._moveEventData.speed),\n target: event.currentTarget,\n };\n\n // inform\n this.releaseEvent.emit(releaseEventData);\n }\n\n private getEasingCurve(speed: number): string {\n return speed > 0.5 ? 'ease-in' : 'ease-out';\n }\n\n private reset() {\n this._startPosition = -1;\n this._thresholdWasReached = false;\n\n if (this._moveEventData) {\n this._moveEventData = undefined;\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\nimport { SwiperComponent } from 'ngx-useful-swiper';\nimport { SwiperOptions } from 'swiper';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ImageSnippet } from '../../models/image-snippet.model';\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from '../../directives/swipe.model';\n\n\n@Component({\n selector: 'kms-image-slider',\n templateUrl: './image-slider.component.html',\n styleUrls: ['./image-slider.component.scss'],\n})\nexport class ImageSliderComponent implements OnInit, OnChanges {\n @Input() slides: string[] | undefined;\n @Input() editMode = false;\n @Input() imagesTOSave: ImageSnippet[] | undefined;\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\n\n /**\n * Optional: Define Swipe behaviour configuration.\n * Default is 10% for the threshold definition until a swipe triggers next/previous slide.\n */\n @Input() swipeConfig: SwipeOptions = {\n swipeThreshold: 5,\n swipeThresholdType: '%',\n swipeLocalPosition: true,\n };\n\n public selectedSlide = 0;\n public checkedImageIndex?: number;\n\n public selectedSlideImage: SafeStyle | undefined;\n public isLastClickedInSliderImage = false;\n\n @ViewChild('usefulSwiper') usefulSwiper: SwiperComponent | undefined;\n\n config: SwiperOptions = {\n initialSlide: 0,\n slidesPerView: 3,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n watchOverflow: true,\n autoHeight: true,\n allowTouchMove: false,\n spaceBetween: 30,\n on: {\n slideChange: () => {\n // do something\n },\n slideChangeTransitionEnd: () => {\n // do something\n },\n },\n };\n\n constructor(public sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n if (this.slides) {\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\n }\n }\n\n // !TODO\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (event.key === 'ArrowRight') {\n this.nextSlide();\n }\n if (event.key === 'ArrowLeft') {\n this.previousSlide();\n }\n }\n\n /**\n * Slide follows the finger or mouse according to it´s move delta.\n * @param event SwipeMoveEvent\n */\n handleMoveEvent(event: SwipeMoveEvent) {\n // certain move threshold needs to be reached\n if (!event.thresholdWasReached) {\n return;\n }\n this.config.direction = event.direction === 1 ? 'horizontal' : 'vertical';\n }\n\n /**\n * Mouse up or slide container was left.\n * @param event SwipeReleaseEvent\n */\n handleReleaseEvent(event: SwipeReleaseEvent) {\n if (!event.thresholdWasReached) {\n return;\n }\n // Just do if user clicked to slide on image and not on arrow or other element\n if (!this.isLastClickedInSliderImage) {\n return;\n }\n if (event.direction === 1) {\n this.previousSlide();\n } else {\n this.nextSlide();\n }\n }\n\n lastClicked() {\n this.isLastClickedInSliderImage = true;\n }\n\n noLastClicked() {\n this.isLastClickedInSliderImage = false;\n }\n\n scrollLeft() {\n this.previousSlide();\n }\n\n scrollRight() {\n this.nextSlide();\n }\n\n nextSlide() {\n if (this.slides && this.selectedSlide < this.slides.length - 1) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slideNext();\n }\n this.openSlide(this.selectedSlide + 1);\n }\n this.isLastClickedInSliderImage = false;\n }\n\n previousSlide() {\n if (this.selectedSlide > 0) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slidePrev();\n }\n this.openSlide(this.selectedSlide - 1);\n }\n this.isLastClickedInSliderImage = false;\n }\n\n slideTo(index: number) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slideTo(index);\n }\n }\n\n openSlide(number: number) {\n if (this.slides && number < this.slides.length && number >= 0) {\n this.selectedSlide = number;\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[number] || ')');\n }\n }\n\n ngOnChanges(_changes: SimpleChanges) {\n if (_changes.slides) {\n if (this.slides) {\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\n }\n }\n }\n\n /**\n * Re-order slides and notify parent component\n */\n drop(event: CdkDragDrop<string[]>) {\n if (this.slides && this.imagesTOSave) {\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\n moveItemInArray(this.imagesTOSave, event.previousIndex, event.currentIndex);\n this.orderChanged.emit(this.imagesTOSave);\n }\n }\n\n /**\n * Send image index to parent to perform delete\n */\n deleteImage(index: number) {\n this.deleteImageEvent.emit(index);\n }\n}\n","<div class=\"all-wrapper\">\n <!--(swiperight)=\"previousSlide()\" (swipeleft)=\"nextSlide()\"-->\n <div \n class=\"swiper-bigImage\"\n [style.backgroundImage]=\"selectedSlideImage\"\n [swipeDirective]=\"swipeConfig\"\n (moveEvent)=\"handleMoveEvent($event)\"\n (releaseEvent)=\"handleReleaseEvent($event)\"\n (mouseup)=\"lastClicked()\"\n (mouseout)=\"noLastClicked()\" >\n </div>\n\n <ng-content select=\"[description]\"></ng-content>\n\n <div class=\"swiper-holder\">\n <!--\n (mouseWheelUp)=\"scrollLeft($event)\"\n (mouseWheelDown)=\"scrollRight($event)\"\n -->\n\n <swiper [config]=\"config\" #usefulSwiper>\n <div class=\"swiper-wrapper\" \n cdkDropList (cdkDropListDropped)=\"drop($event)\" \n cdkDropListOrientation=\"horizontal\"> \n <div class=\"swiper-slide\" \n *ngFor=\"let slide of slides; let index = index\" \n cdkDrag [cdkDragDisabled]=\"!editMode\">\n <button mat-menu-item *ngIf=\"editMode\" (click)=\"deleteImage(index)\"> \n <kms-icon icon=\"trash\"></kms-icon>\n </button>\n <div class=\"img\" (click)=\"openSlide(index)\"\n [style.backgroundImage]=\"sanitizer.bypassSecurityTrustStyle('url(' + slide + ')')\"\n [ngClass]=\"{'active': index === selectedSlide}\">\n </div>\n \n <div class=\"default-image\">{{\"common.defaultImage\" | translate}} </div>\n </div>\n </div>\n </swiper>\n\n <div class=\"swiper-button-next\" *ngIf=\"slides?.length > 3\"></div>\n <div class=\"swiper-button-prev\" *ngIf=\"slides?.length > 3\"></div>\n\n <div class=\"swiper-button-next2\" *ngIf=\"slides?.length > 1\" (click)=\"nextSlide()\">\n <kms-icon icon=\"chevron-right\" [iconClass]=\"{'color-disabled': selectedSlide == slides?.length - 1, 'color-primary': true}\"></kms-icon>\n </div>\n <div class=\"swiper-button-prev2\" *ngIf=\"slides?.length > 1\" (click)=\"previousSlide()\">\n <kms-icon icon=\"chevron-left\" [iconClass]=\"{'color-disabled': selectedSlide == 0, 'color-primary': true}\"></kms-icon>\n </div>\n\n </div>\n\n <ng-content></ng-content>\n</div>","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({ selector: '[mouseWheel]' })\nexport class MouseWheelDirective {\n @Output() mouseWheelUp = new EventEmitter();\n @Output() mouseWheelDown = new EventEmitter();\n\n \n @HostListener('mousewheel', ['$event']) onMouseWheelChrome(event: any) {\n this.mouseWheelFunc(event);\n }\n\n \n @HostListener('DOMMouseScroll', ['$event']) onMouseWheelFirefox(event: any) {\n this.mouseWheelFunc(event);\n }\n\n @HostListener('onmousewheel', ['$event']) onMouseWheelIE(event: any) {\n this.mouseWheelFunc(event);\n }\n\n \n mouseWheelFunc(event: any) {\n event = window.event || event; // old IE support\n \n const delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));\n if (delta > 0) {\n this.mouseWheelUp.emit(event);\n } else if (delta < 0) {\n this.mouseWheelDown.emit(event);\n }\n // for IE\n event.returnValue = false;\n // for Chrome and Firefox\n if (event.preventDefault) {\n event.preventDefault();\n }\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MouseWheelDirective } from './mousewheel.directive';\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\nimport { SwipeDirective } from './swipe.directive';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [\n SwipeDirective,\n MouseWheelDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n ],\n imports: [CommonModule],\n exports: [\n SwipeDirective,\n MouseWheelDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n ],\n})\nexport class DirectivesModule {}\n","import { NgModule, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\nimport { ActionsParentComponent } from './parent-components/actions.component';\nimport { CheckboxComponent } from './ui/checkbox/checkbox.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { ColorInputComponent } from './ui/color-input/color-input.component';\nimport { RadioButtonComponent } from './ui/radiobutton/radiobutton.component';\nimport { TimeInputComponent } from './ui/time-input/time-input.component';\nimport { YesNoRadiogroupComponent } from './ui/yes-no-radiogroup/yes-no-radiogroup.component';\nimport { FileInputComponent } from './ui/file-input/file-input.component';\nimport { LoaderComponent } from './ui/loader/loader.component';\nimport { FlyoutComponent } from './ui/flyout/flyout.component';\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\nimport { IconComponent } from './ui/icon/icon.component';\nimport { EnumRadiogroupComponent } from './ui/enum-radiogroup/enum-radiogroup.component';\nimport { KMSAccordionItemComponent } from './ui/kms-accordion-item/kms-accordion-item.component';\nimport { MapComponent } from './ui/map/map.component';\nimport { SalutationDropdownComponent } from './ui/salutation-dropdown/salutation-dropdown.component';\nimport { TooltipComponent } from './ui/tooltip/tooltip.component';\nimport { TooltipIconComponent } from './ui/tooltip-icon/tooltip-icon.component';\n\nimport { SalutationRadiogroupComponent } from './ui/salutation-radiogroup/salutation-radiogroup.component';\nimport { BackToTopComponent } from './ui/back-to-top/back-to-top.component';\nimport { ButtonWithConfirmDialogComponent } from './ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GenericDialogComponent } from './ui/generic-dialog/generic-dialog.component';\nimport { MatExpansionModule} from '@angular/material/expansion';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DropdownFromDataComponent } from './ui/dropdown-from-data/dropdown-from-data.component';\nimport { ImageSliderComponent } from './ui/image-slider/image-slider.component';\nimport { DirectivesModule } from './directives/directives.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ViewportService } from './services/viewport.service';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { NgxUsefulSwiperModule } from 'ngx-useful-swiper';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@NgModule({\n declarations: [\n ActionsParentComponent,\n BackToTopComponent,\n ButtonWithConfirmDialogComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n GenericDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n TimeInputComponent,\n TooltipComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatCheckboxModule,\n MatButtonModule,\n MatRadioModule,\n MatDialogModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n CustomPipesModule,\n GoogleMapsModule,\n MatExpansionModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n DirectivesModule,\n TranslateModule,\n NgxUsefulSwiperModule,\n ],\n exports: [\n ActionsParentComponent,\n BackToTopComponent,\n ButtonWithConfirmDialogComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n GenericDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n TimeInputComponent,\n TooltipComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n ],\n providers: [\n ViewportService\n ]\n})\nexport class KmsUiPresentationalModule { }\n","/*\n * Public API Surface of kms-ngx-ui-presentational\n */\n\nexport * from './lib/kms-ngx-ui-presentational.service';\nexport * from './lib/kms-ngx-ui-presentational.component';\nexport * from './lib/kms-ngx-ui-presentational.module';\nexport * from './lib/pipes/custom-pipes.module';\nexport * from './lib/directives/directives.module';\n\nexport * from './lib/models/iconSize.enum';\nexport * from './lib/models/salutation.enum';\nexport * from './lib/ui/checkbox/checkbox.component';\nexport * from './lib/ui/color-input/color-input.component';\nexport * from './lib/ui/radiobutton/radiobutton.component';\nexport * from './lib/ui/time-input/time-input.component';\nexport * from './lib/ui/yes-no-radiogroup/yes-no-radiogroup.component';\nexport * from './lib/ui/file-input/file-input.component';\nexport * from './lib/ui/loader/loader.component';\nexport * from './lib/ui/flyout/flyout.component';\nexport * from './lib/ui/icon/icon.component';\nexport * from './lib/ui/enum-radiogroup/enum-radiogroup.component';\nexport * from './lib/ui/kms-accordion-item/kms-accordion-item.component';\nexport * from './lib/ui/map/map.component';\nexport * from './lib/ui/salutation-dropdown/salutation-dropdown.component';\nexport * from './lib/ui/tooltip/tooltip.component';\nexport * from './lib/ui/tooltip-icon/tooltip-icon.component';\nexport * from './lib/ui/salutation-radiogroup/salutation-radiogroup.component';\nexport * from './lib/ui/back-to-top/back-to-top.component';\nexport * from './lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nexport * from './lib/ui/dropdown-from-data/dropdown-from-data.component';\nexport * from './lib/ui/image-slider/image-slider.component';\n\nexport * from './lib/directives/mousewheel.directive';\nexport * from './lib/directives/sum-of-height.directive';\nexport * from './lib/directives/swipe.directive';\nexport * from './lib/directives/tooltip.directive';\n\nexport * from './lib/pipes/integer-currency.pipe';\nexport * from './lib/pipes/decode-uri.pipe';\nexport * from './lib/pipes/encode-uri.pipe';\nexport * from './lib/pipes/safe-html.pipe';\nexport * from './lib/pipes/safe-url.pipe';\nexport * from './lib/pipes/safe-resource-url.pipe';\nexport * from './lib/pipes/typeof.pipe';\nexport * from './lib/pipes/trim.pipe';\nexport * from './lib/pipes/to-number.pipe';\nexport * from './lib/pipes/safe-style.pipe';\n\nexport * from './lib/parent-components/actions.component';\nexport * from './lib/ui/generic-dialog/generic-dialog.component';\nexport * from './lib/services/viewport.service';\nexport * from './lib/parent-components/form.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1","IconSize","i1.IconComponent","i2.TooltipDirective","i3.TooltipIconComponent","i4","i2.IconComponent","i5","i3.GetMaxHeightDirective","i4.SafeHtmlPipe","i3.IconComponent","i1.ViewportService","i4.IconComponent","i5.SwipeDirective","i7","i8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kms-ngx-ui-presentational.mjs","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/ui/checkbox/checkbox.component.html","../../../../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/models/types/attached-file-dto.model.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/directives/tooltip.directive.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/icon/icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip-icon/tooltip-icon.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/color-input/color-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/radiobutton/radiobutton.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/time-input/time-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/file-input/file-input.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/loader/loader.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/sum-of-height.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/pipes/safe-html.pipe.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/flyout/flyout.component.html","../../../../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-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/enum-radiogroup/enum-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/enum-radiogroup/enum-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/kms-accordion-item/kms-accordion-item.component.html","../../../../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/ui/map/map.component.html","../../../../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/salutation-dropdown/salutation-dropdown.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/tooltip/tooltip.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/salutation-radiogroup/salutation-radiogroup.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/back-to-top/back-to-top.component.html","../../../../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/generic-dialog/generic-dialog.component.html","../../../../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/button-with-confirm-dialog/button-with-confirm-dialog.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/dropdown-from-data/dropdown-from-data.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/swipe.directive.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.ts","../../../../projects/kms-ngx-ui-presentational/src/lib/ui/image-slider/image-slider.component.html","../../../../projects/kms-ngx-ui-presentational/src/lib/directives/mousewheel.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","<!-- <label class=\"wrapper ui-copy-text\"\n [ngClass]=\"{'disabled' : disabled}\">{{label}}\n <input type=\"checkbox\" \n [checked]=\"checked\"\n [value]=\"value\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"selectAction($event)\">\n\n</label> -->\n<mat-checkbox class=\"example-margin\" [disabled]=\"disabled\" [name]=\"name\" [(ngModel)]=\"checked\"></mat-checkbox>\n<span *ngIf=\"infoText && infoText.length > 0\" \n class=\"\"\n [ngClass]=\"{'disabled' : disabled}\">{{infoText}}\n</span>","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\n\n@Component({\n selector: 'kms-form',\n template: '',\n})\nexport class FormParentComponent implements OnInit {\n public form!: UntypedFormGroup;\n public formInitialized = false;\n private allowedCharsOnlyNumbers = new Set('0123456789'.split('').map(c => c.charCodeAt(0)));\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> = new EventEmitter();\n\n @Input() disabled = false;\n\n constructor(\n public formBuilder: UntypedFormBuilder\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 { UntypedFormBuilder, UntypedFormControl } 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: UntypedFormBuilder, 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(_: UntypedFormControl) {\n return this.form.valid ? null : false;\n }\n\n}\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","/*!\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 { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[kmsTooltip]'\n})\nexport class TooltipDirective {\n @Input('tooltipTitle') tooltipTitle = \"\";\n @Input('tooltipText') tooltipText = \"\";\n @Input('tooltipLinkText') tooltipLinkText = \"\";\n @Input('tooltipLinkUrl') tooltipLinkUrl = \"\";\n @Input('tooltipPlacement') tooltipPlacement = \"bottom\";\n @Input('tooltipDelay') tooltipDelay = 1000;\n @Input('tooltipPlaceIntoHost') tooltipPlaceIntoHost = false;\n @Input('tooltipOnlyonclick') tooltipOnlyonclick = false;\n\n tooltipElem?: HTMLElement | undefined;\n tooltipLinkElem?: HTMLElement | undefined;\n tooltipTitleElem?: HTMLElement | undefined;\n tooltipTextElem?: HTMLElement | undefined;\n offset = 0;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n if (!this.tooltipOnlyonclick) { this.show(); }\n }\n\n @HostListener('click') onClick() {\n if (this.tooltipOnlyonclick) { this.show(); }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.tooltipElem) { this.hide(); }\n }\n\n show() {\n if (!this.tooltipElem){\n this.create();\n this.setPosition();\n }\n this.renderer.addClass(this.tooltipElem, 'tooltip-show');\n }\n\n hide() {\n this.renderer.removeClass(this.tooltipElem, 'tooltip-show');\n window.setTimeout(() => {\n }, this.tooltipDelay);\n }\n\n create() {\n this.tooltipElem = this.renderer.createElement('kms-tooltip-element');\n\n this.tooltipTitleElem = this.renderer.createElement('b');\n this.renderer.appendChild(this.tooltipTitleElem, this.renderer.createText(this.tooltipTitle));\n this.renderer.appendChild(this.tooltipElem, this.tooltipTitleElem);\n \n this.tooltipTextElem = this.renderer.createElement('div');\n this.renderer.appendChild(this.tooltipTextElem, this.renderer.createText(this.tooltipText));\n this.renderer.appendChild(this.tooltipElem, this.tooltipTextElem);\n \n this.tooltipLinkElem = this.renderer.createElement('a');\n this.renderer.setAttribute(this.tooltipLinkElem, 'href', this.tooltipLinkUrl);\n this.renderer.appendChild(this.tooltipLinkElem, this.renderer.createText(this.tooltipLinkText));\n this.renderer.appendChild(this.tooltipElem, this.tooltipLinkElem);\n\n if(this.tooltipPlaceIntoHost){\n this.renderer.appendChild(this.el.nativeElement, this.tooltipElem);\n }else{\n this.renderer.appendChild(document.body, this.tooltipElem);\n }\n\n this.renderer.addClass(this.tooltipElem, 'tooltip');\n this.renderer.addClass(this.tooltipElem, `tooltip-${this.tooltipPlacement}`);\n this.renderer.setStyle(this.tooltipElem, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, '-o-transition', `opacity ${this.tooltipDelay}ms`);\n this.renderer.setStyle(this.tooltipElem, 'transition', `opacity ${this.tooltipDelay}ms`);\n }\n\n setPosition() {\n if(this.tooltipElem){\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltipElem.getBoundingClientRect();\n\n let top, left;\n\n if(this.tooltipPlaceIntoHost){\n left = 0;\n top = hostPos.height; \n } else {\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n if (this.tooltipPlacement === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (!this.tooltipPlacement || this.tooltipPlacement === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.tooltipPlacement === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.tooltipPlacement === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n top += scrollPos;\n }\n\n this.renderer.setStyle(this.tooltipElem, 'top', `${top}px`);\n this.renderer.setStyle(this.tooltipElem, 'left', `${left}px`);\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 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","<ng-container *ngIf=\"icon !== 'none' && dontUseSprite === false\">\n <span class=\"icon {{ iconSize }}\" [ngClass]=\"iconClass\" [ngStyle]=\"iconStyle\">\n <svg>\n <use\n [attr.xlink:href]=\"\n 'assets/sprite.svg?Version=' + Version + '#' + iconToShow\n \"\n ></use>\n </svg>\n </span>\n</ng-container>\n<ng-container *ngIf=\"icon !== 'none' && dontUseSprite === true\">\n <object\n [data]=\"\n sanitizer.bypassSecurityTrustResourceUrl('assets/icons/' + icon + '')\n \"\n type=\"image/svg+xml\"\n class=\"icon {{ iconSize }}\"\n [ngClass]=\"iconClass\"\n [ngStyle]=\"iconStyle\"\n ></object>\n</ng-container>\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","<span\n kmsTooltip\n [tooltipTitle]=\"tooltipTitle\"\n [tooltipText]=\"tooltipText\"\n [tooltipPlacement]=\"placement\"\n [tooltipDelay]=\"delay\"\n [tooltipLinkText]=\"tooltipLinkText\"\n [tooltipLinkUrl]=\"tooltipLinkUrl\"\n>\n <kms-icon icon=\"ic_info\" [iconSize]=\"IconSize.SMALLER\" [iconClass]=\"'color-primary'\"></kms-icon>\n</span>\n","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, UntypedFormBuilder, UntypedFormControl, 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: UntypedFormBuilder, 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(_: UntypedFormControl) {\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<form [formGroup]=\"form\" *ngIf=\"formInitialized\">\n <div>\n <mat-form-field class=\"colorInput\">\n <kms-tooltip-icon [tooltipText]=\"tooltipText\" *ngIf=\"tooltipText\"></kms-tooltip-icon>\n <mat-label>{{ label }}</mat-label>\n <input type=\"text\" [(ngModel)]=\"value\" matInput formControlName=\"color\" [placeholder]=\"placeholder\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n <input type=\"color\" [value]=\"value && matchesHex(value) ? value : '#ffffff'\" (change)=\"updateSelectedColor($event)\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\n </mat-form-field>\n </div>\n</form>","/*!\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","<label class=\"wrapper ui-small-text\"\n [ngClass]=\"{'disabled' : disabled}\">\n <input type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n (change)=\"selectAction($event)\">{{label}}\n\n <kms-icon\n class=\"checkmark\" \n aria-hidden=\"true\"\n *ngIf=\"checked\"\n [ngClass]=\"{\n 'disabled' : disabled\n }\"\n [iconClass]=\"{\n 'disabled' : disabled, \n 'color-primary': true,\n 'size-16': true\n }\"\n [icon]=\"'ic_radiobutton_active'\"\n >\n </kms-icon>\n <kms-icon\n class=\"checkmark\" \n aria-hidden=\"true\"\n *ngIf=\"!checked\"\n [ngClass]=\"{\n 'disabled' : disabled\n }\"\n [iconClass]=\"{\n 'disabled' : disabled, \n 'color-primary': true,\n 'size-16': true\n }\"\n [icon]=\"'ic_radiobutton_inactive'\"\n >\n </kms-icon>\n <ng-content></ng-content>\n</label>\n","import { Component, forwardRef, OnInit } from '@angular/core';\nimport { ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup, 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!: UntypedFormGroup;\n h = '';\n m = '';\n\n constructor(public formBuilder: UntypedFormBuilder) {\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","<form [formGroup]=\"form\" class=\"timeInput\">\n <input type=\"text\" formControlName=\"h\" [value]=\"h\" maxlength=\"2\" pattern=\"(0?[0-9]|1[0-9]|2[0-3])\"/>\n <span>:</span>\n <input type=\"text\" formControlName=\"m\" [value]=\"m\" maxlength=\"2\" pattern=\"(0?[0-9]|[1-5][0-9])\"/>\n</form>","import { Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup, 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!: UntypedFormGroup;\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: UntypedFormBuilder, 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","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group [formControl]=\"form.controls['yesno']\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"true\" [checked]=\"internalValue === true\"> {{ textYes }}</mat-radio-button>\n <mat-radio-button [value]=\"false\" [checked]=\"internalValue === false\"> {{ textNo }}</mat-radio-button>\n </mat-radio-group>\n</form>\n","import { Component, Input, forwardRef, OnInit, ViewChild, Renderer2, EventEmitter, Output, ApplicationRef, ChangeDetectorRef } from '@angular/core';\n\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\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 UntypedFormControl(''),\n ImageLink: new UntypedFormControl(''),\n Filename: new UntypedFormControl(''),\n ImageAsDataURL: new UntypedFormControl(''),\n Text: new UntypedFormControl(''),\n });\n\n subscriptions: Subscription[] = [];\n newImageLoading = false\n\n IconSize = IconSize;\n\n @Output() formDataChanged: EventEmitter<UntypedFormGroup> = 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: UntypedFormBuilder, \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(_: UntypedFormControl) {\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","<form [formGroup]=\"form\" (change)=\"newImageLoading=true\" class=\"fileInput\"> \n\n <div *ngIf=\"form.value.Filename && previewImage\">\n <div *ngIf=\"newImageLoading\">\n {{ 'file-input.loading' | translate }}\n </div>\n <div *ngIf=\"!newImageLoading\">\n <div class=\"\">\n <div class=\"\">\n <img *ngIf=\"form.value.ImageLink && form.value.ImageLink !== '' && !(form.value.ImageAsDataURL && form.value.ImageAsDataURL !== '')\" [src]=\"form.value.ImageAsDataURL\" [src]=\"form.value.ImageLink\" style=\"height: 40px; width: fit-content;\" />\n <img *ngIf=\"form.value.ImageAsDataURL && form.value.ImageAsDataURL !== ''\" [src]=\"form.value.ImageAsDataURL\" style=\"height: 40px; width: fit-content;\" />\n </div>\n <div class=\"\">{{form.value.Filename}}</div>\n <div class=\"\">\n <div (click)=\"removeFromList()\" *ngIf=\"allowRemove\">\n <kms-icon icon=\"trash\" [iconSize]=\"IconSize.TINY\" iconClass=\"color-black\"></kms-icon> \n {{ 'file-input.remove' }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!previewImage\">\n <div class=\"\">{{form.value.Filename}}</div>\n </div>\n\n <button (click)=\"selectImageOverlay()\" class=\"button-primary-font-color\" mat-stroked-button>\n <span>{{ label }}</span>\n </button>\n <input\n type=\"file\"\n [accept]=\"acceptedFileMimetypes\"\n style=\"display: none\"\n #fileInput\n (click)=\"clearInputValue($event)\"\n (change)=\"selectImage($event)\"\n />\n\n <input type=\"hidden\" [formControl]=\"form.controls['ImageIdent']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['ImageLink']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['Filename']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['ImageAsDataURL']\" />\n <input type=\"hidden\" [formControl]=\"form.controls['Text']\" />\n\n</form>","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","<div class=\"loading-spinner-shade\" *ngIf=\"loading\">\n <mat-spinner class=\"spinnerMargin\" color=\"accent\" diameter=\"44\"></mat-spinner>\n</div>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\n// ng\nimport { AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * Directive to calc the height of all inner elements\n */\n@Directive({\n \n selector: '[getMaxHeight]',\n})\nexport class GetMaxHeightDirective implements AfterContentChecked {\n /**\n * CSS class name of the child items (markup elements) that should be checked for their height.\n * This is mandatory.\n */\n @Input('getMaxHeight') cssClassName = '';\n\n /**\n * Event that will pass the height of the tallest child inside the container.\n * Useful to calculate the target height of containers with different content (like accordion) for animations.\n */\n @Output() public maxHeightChanged: EventEmitter<number> = new EventEmitter();\n\n /**\n * Event that will pass the complete sum of all height values from each child.\n * Useful to calculate the full target height of a container (like dropdown) for animations.\n */\n @Output() public sumOfHeight: EventEmitter<number> = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterContentChecked(): void {\n this.checkHeightOfChildren(this.el.nativeElement, this.cssClassName);\n }\n\n private checkHeightOfChildren(parent: HTMLElement, cssClassName: string) {\n if (!parent) {\n return;\n }\n\n // find all the child elements with the selected class name\n const children = parent.getElementsByClassName(cssClassName);\n\n // failsafe\n if (!children) {\n return;\n }\n\n // get all the child elements heights\n const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);\n\n // failsafe\n if (itemHeights.length === 0) {\n return;\n }\n\n // find out the tallest element\n const maxHeight = itemHeights.reduce((prev, curr) => {\n return curr > prev ? curr : prev;\n }, 0);\n\n // get sum of heights\n const sumOfHeight = itemHeights.reduce((pv, cv) => pv + cv, 0);\n\n // inform\n this.maxHeightChanged.emit(maxHeight);\n this.sumOfHeight.emit(sumOfHeight);\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 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","<div class=\"flyout\"\n [ngClass]=\"{'is-active': isDropdownOpened}\"\n>\n <div class=\"flyout-header\" (click)=\"toggleDropdownHeader()\" [ngClass]=\"headerCssClass\">\n <span [innerHtml]=\"headerTitle | kmsSafeHtml\"></span>\n <span [innerHtml]=\"headerText | kmsSafeHtml\"></span>\n\n <ng-content select=\"[header]\"></ng-content>\n\n <div *ngIf=\"hasButtonForMore\" (click)=\"toggleDropdown()\" class=\"flyout-header-more\">\n <span *ngIf=\"!isDropdownOpened\">\n {{ moreText }}\n </span>\n <span *ngIf=\"isDropdownOpened\">\n {{ lessText }}\n </span>\n <kms-icon [icon]=\"'chevron-down'\"\n [iconClass]=\"{'size-16': true, 'is-rotating180': isDropdownOpened}\" >\n </kms-icon>\n </div>\n </div>\n <div \n class=\"flyout-body\"\n [ngClass]=\"bodyCssClass\"\n tabindex=\"0\"\n [@dropdownAnimation]=\"{value: isDropdownOpened, params: {targetHeight: targetHeight, animationTime: '500'}}\"\n getMaxHeight=\"inner\"\n (sumOfHeight)=\"setDropdownListHeight($event)\"\n #flyoutHeader>\n <div class=\"inner\" #content>\n <ng-content ></ng-content>\n </div>\n </div>\n\n</div>\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 KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeStyle',\n})\nexport class SafeStylePipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(style: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustStyle(style);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeSUrl',\n})\nexport class SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeUrl {\n return this.sanitizer.bypassSecurityTrustUrl(url);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'kmsSafeResourceSUrl',\n})\nexport class SafeResourceUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(url: string): SafeResourceUrl {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsTypeOf',\n})\nexport class TypeofPipe implements PipeTransform {\n transform(value: any): any {\n return typeof value;\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'kmsTrim' })\nexport class TrimPipe implements PipeTransform {\n transform(value: any) {\n if (!value) {\n return '';\n }\n\n return value.trim();\n }\n}","/**\n * @copyright KMS GmbH\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'kmsToNumber',\n pure: false\n \n})\nexport class ToNumberPipe implements PipeTransform {\n transform(items: any): any {\n if (!items) {\n return 0;\n }\n return parseInt(items, 10);\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\n import { CommonModule, CurrencyPipe } from '@angular/common';\n import { NgModule } from '@angular/core';\n \n import { IntegerCurrency } from './integer-currency.pipe';\n import { DecodeUriPipe } from './decode-uri.pipe';\n import { EncodeUriPipe } from './encode-uri.pipe';\n import { SafeHtmlPipe } from './safe-html.pipe';\n import { SafeStylePipe } from './safe-style.pipe';\n import { SafeUrlPipe } from './safe-url.pipe';\n import { SafeResourceUrlPipe } from './safe-resource-url.pipe';\n import { TypeofPipe } from './typeof.pipe';\n import { TrimPipe } from './trim.pipe';\n import { ToNumberPipe } from './to-number.pipe';\n \n @NgModule({\n declarations: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeResourceUrlPipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n imports: [CommonModule],\n exports: [\n IntegerCurrency,\n SafeHtmlPipe,\n SafeStylePipe,\n SafeResourceUrlPipe,\n SafeUrlPipe,\n EncodeUriPipe,\n DecodeUriPipe,\n TypeofPipe,\n TrimPipe,\n ToNumberPipe,\n ],\n providers: [CurrencyPipe],\n })\n export class CustomPipesModule {}\n ","import { Component, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, UntypedFormBuilder, 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: UntypedFormBuilder, 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","<form [formGroup]=\"form\">\n <div>{{ header }}</div>\n <mat-radio-group [formControl]=\"form.controls['enumData']\" [disabled]=\"disabled\" #child>\n <mat-radio-button [value]=\"choice\" [checked]=\"value === choice\" *ngFor=\"let choice of optionValues\">{{ translationPrefix + '.' + choice | translate }}</mat-radio-button>\n </mat-radio-group>\n</form>","/*!\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 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 @Input() public expanded = false;\n panelOpenState = false;\n\n constructor(public sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n this.itemTitleTrustHtml = this.sanitizer.bypassSecurityTrustHtml(\n this.itemTitle\n );\n }\n}\n","<mat-expansion-panel\n class=\"accordion-item\"\n [ngClass]=\"{showAsCard: showAsCard, showFlat: !showAsCard, isSmall: isSmall}\"\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [expanded] = \"expanded\"\n hideToggle=\"true\">\n <mat-expansion-panel-header class=\"accordion-item-header\">\n <mat-panel-title class=\"mat-subheading-2 accordion-item-title\">\n <div [innerHtml]=\"itemTitleTrustHtml\"></div>\n <ng-content select=\"[itemTitleElement]\"></ng-content>\n </mat-panel-title>\n <div class=\"accordion-item-header-icon-wrapper\">\n <kms-icon *ngIf=\"!panelOpenState\" icon=\"ic_plus\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-desktop\"></kms-icon>\n <kms-icon *ngIf=\"panelOpenState\" icon=\"ic_minus\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-desktop\"></kms-icon>\n\n <kms-icon *ngIf=\"!panelOpenState\" icon=\"chevron-down\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-mobile\"></kms-icon>\n <kms-icon *ngIf=\"panelOpenState\" icon=\"chevron-top\" iconClass=\"color-red\" class=\"accordion-item-header-icon-wrapper-mobile\"></kms-icon>\n </div>\n </mat-expansion-panel-header>\n <ng-content></ng-content>\n</mat-expansion-panel>\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 } 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 * 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","<div *ngIf=\"geoDataFoundForAddress && widthSet\">\n <google-map\n height=\"415px\"\n [width]=\"width\"\n [zoom]=\"zoom\"\n [center]=\"center\"\n [options]=\"options\"\n >\n <map-marker\n *ngFor=\"let marker of markers\"\n [position]=\"marker.position\"\n [label]=\"marker.label\"\n [title]=\"marker.title\"\n [options]=\"marker.options\"\n >\n </map-marker>\n </google-map>\n</div>","// 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, UntypedFormBuilder, 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: UntypedFormBuilder, 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","<form [formGroup]=\"form\" class=\"row\">\n <mat-form-field class=\"col\">\n <mat-select disableOptionCentering [formControl]=\"form.controls['salut']\" [placeholder]=\"placeholder\" [value]=\"value\" #child>\n <mat-option [value]=\"SalutationEnum.NOT_SPECIFIED\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase() | translate }}</mat-option>\n <mat-option [value]=\"SalutationEnum.MALE\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase() | translate }}</mat-option>\n <mat-option [value]=\"SalutationEnum.FEMALE\">{{ 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase() | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n</form>","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","<ng-content></ng-content>","import { Component, forwardRef, OnInit, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, UntypedFormBuilder, 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: UntypedFormBuilder, 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","<form [formGroup]=\"form\" >\n <mat-radio-group [formControl]=\"form.controls['salut']\" [disabled]=\"disabled\" #radioGroup>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.NOT_SPECIFIED\" [checked]=\"value === SalutationEnum.NOT_SPECIFIED\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[0]?.toLowerCase() | translate }}\n </mat-radio-button>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.MALE\" [checked]=\"value === SalutationEnum.MALE\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[1]?.toLowerCase() | translate }}\n </mat-radio-button>\n <mat-radio-button color=\"primary\" [value]=\"SalutationEnum.FEMALE\" [checked]=\"value === SalutationEnum.FEMALE\">\n {{ 'general.salutation.' + Object.keys(SalutationEnum)[2]?.toLowerCase() | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</form>","/**\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","<div class=\"scrollToTop\"\n [ngClass]=\"{'show': windowScrolled}\"\n (click)=\"scrollToTop()\">\n <div class=\"scrollToTop-inner\">\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\n </div>\n</div>","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","<div mat-dialog-title class=\"mat-dialog-title\">\n <h3>{{ data.title }}</h3>\n</div>\n<div mat-dialog-content class=\"mat-dialog-content\">\n {{ data.message }}\n</div>\n<div mat-dialog-actions class=\"custom-dialog-actions\">\n <button\n mat-flat-button\n class=\"test_secondary_button\"\n color=\"accent\"\n (click)=\"onClickAction(ButtonResponseType.secondary)\"\n >\n {{ buttons.secondary }}\n </button>\n <button\n mat-flat-button\n class=\"test_primary_button\"\n color=\"primary\"\n (click)=\"onClickAction(ButtonResponseType.primary)\"\n >\n {{ buttons.primary }}\n </button>\n</div>\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","<button\n type=\"button\"\n (click)=\"start()\"\n mat-stroked-button\n [disabled]=\"disabled\"\n>\n {{ buttonText }}\n</button>\n","import {\n Component,\n forwardRef,\n Input,\n OnInit,\n OnChanges,\n SimpleChanges,\n Renderer2,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n NG_VALUE_ACCESSOR,\n} 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\n extends FormControlParentComponent\n implements OnInit, ControlValueAccessor, OnChanges\n{\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 // multiple selection\n @Input() multiple = false;\n\n public keys: any[] = [];\n public values: any[] = [];\n\n Object = Object;\n\n constructor(public formBuilder: UntypedFormBuilder, public renderer: Renderer2) {\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(\n (obj: any) => obj[`${this.mapValue}`]\n );\n } else if (this.optionsObjArray && this.mapKey) {\n this.keys = this.optionsObjArray.map((obj: any) => obj[`${this.mapKey}`]);\n this.values = this.optionsObjArray.map(\n (obj: any) => obj[`${this.mapKey}`]\n );\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","<form [formGroup]=\"form\">\n <mat-form-field [attr.required]=\"required\" [floatLabel]=\"placeholder ? 'always' : 'auto'\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n placeholder=\"{{ placeholder }}\"\n disableOptionCentering\n [(value)]=\"value\"\n (selectionChange)=\"valueChanged($event?.value)\"\n #child\n [disabled]=\"disabled\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngFor=\"let key of keys; let i = index\" [value]=\"values[i]\">\n <span>{{ setDisplayKey(key) }}</span>\n </mat-option>\n </mat-select>\n </mat-form-field>\n</form>\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from './swipe.model';\n\n@Directive({\n selector: '[swipeDirective]',\n})\nexport class SwipeDirective {\n /**\n * Output Event that is emitted during swipe process (mouse move or touch move event).\n * Can be used for calculation purposes.\n */\n @Output() public moveEvent = new EventEmitter<SwipeMoveEvent>();\n\n /**\n * Output Event that is emitted when swipe process end (mouse up or touch end event).\n * Can be used for calculation purposes.\n */\n @Output() public releaseEvent = new EventEmitter<SwipeReleaseEvent>();\n\n private _swipeOptions: SwipeOptions | undefined;\n\n private _moveEventData: SwipeMoveEvent | undefined;\n private _startPosition = -1;\n\n private _lastPosX = 0;\n\n private _thresholdWasReached = false;\n\n private _isMobile: boolean | undefined;\n\n private _timeStart = 0;\n\n /**\n * Needed config that defines swipe behaviour.\n * @param options SwipeOptions\n */\n @Input('swipeDirective')\n set config(options: SwipeOptions) {\n if (options) {\n this._swipeOptions = options;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMouseDown(event: any) {\n this.calculateStartPosition(event);\n }\n\n @HostListener('mousemove', ['$event'])\n @HostListener('touchmove', ['$event'])\n onMove(event: any) {\n this.move(event);\n }\n\n @HostListener('mouseup', ['$event'])\n @HostListener('mouseleave', ['$event'])\n @HostListener('touchend', ['$event'])\n onRelease(event: any) {\n this.release(event);\n this.reset();\n }\n\n // ** PRIVATE ** //\n\n /**\n * Function checks if the current moving delta is inside the defined threshold.\n * Sets the flag to true if the threshold was reached once.\n */\n private checkThreshold(moveEvent: SwipeMoveEvent) {\n const percentage = this._swipeOptions && this._swipeOptions.swipeThresholdType === '%';\n\n if (!percentage && this._swipeOptions && moveEvent.swipeDistanceTotal < this._swipeOptions.swipeThreshold) {\n return;\n } else if (\n percentage &&\n this._swipeOptions &&\n moveEvent.swipeDistancePercentage < this._swipeOptions.swipeThreshold / 100\n ) {\n return;\n } else {\n this._thresholdWasReached = true;\n }\n }\n\n private calculateStartPosition(event?: any) {\n // detect if touch or click\n this._isMobile = event.type === 'touchstart';\n\n // save start position\n\n if (this._swipeOptions && this._swipeOptions.swipeLocalPosition) {\n if (this._isMobile) {\n const touch: Touch = event.touches[0];\n this._startPosition = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\n } else {\n this._startPosition = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\n }\n }\n\n this._lastPosX = this._startPosition;\n this._timeStart = event.timeStamp;\n this._thresholdWasReached = false;\n }\n\n private move(event: any) {\n // failsafe\n if (typeof event === 'undefined') {\n return;\n }\n\n let posX = 0;\n\n if (this._swipeOptions) {\n if (this._isMobile && event.type === 'touchmove') {\n const touch: Touch = event.touches[0];\n posX = this._swipeOptions.swipeLocalPosition ? touch.clientX : touch.pageX;\n } else {\n posX = this._swipeOptions.swipeLocalPosition ? event.offsetX : event.pageX;\n }\n }\n\n const offsetPerFrame: number = posX - this._lastPosX;\n const swipeDistanceTotal: number = Math.abs(posX - this._startPosition);\n const swipeDistancePercentage: number = Math.abs(swipeDistanceTotal / event.target.clientWidth);\n const timeDuration: number = Math.abs(event.timeStamp - this._timeStart);\n\n let direction: number;\n let speed: number = 1 - swipeDistanceTotal / timeDuration;\n speed = Math.max(0.1, speed);\n\n if (posX - this._startPosition > 0) {\n direction = 1; // a.k.a LTR\n } else {\n direction = -1; // a.k.a RTL\n }\n\n this._moveEventData = {\n position: posX,\n offsetPerFrame: offsetPerFrame,\n swipeDistanceTotal: swipeDistanceTotal,\n swipeDistancePercentage: swipeDistancePercentage,\n direction: direction,\n speed: speed,\n thresholdWasReached: this._thresholdWasReached,\n };\n\n this.checkThreshold(this._moveEventData);\n\n // update move delta\n this._lastPosX = posX;\n\n // inform\n this.moveEvent.emit(this._moveEventData);\n }\n\n private release(event: any) {\n // case: just a click/touch\n\n if (!this._moveEventData) {\n return;\n }\n\n const releaseEventData: SwipeReleaseEvent = {\n thresholdWasReached: this._thresholdWasReached,\n direction: this._moveEventData.direction,\n speed: this._moveEventData.speed,\n easingType: this.getEasingCurve(this._moveEventData.speed),\n target: event.currentTarget,\n };\n\n // inform\n this.releaseEvent.emit(releaseEventData);\n }\n\n private getEasingCurve(speed: number): string {\n return speed > 0.5 ? 'ease-in' : 'ease-out';\n }\n\n private reset() {\n this._startPosition = -1;\n this._thresholdWasReached = false;\n\n if (this._moveEventData) {\n this._moveEventData = undefined;\n }\n }\n}\n","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\nimport { SwiperComponent } from 'ngx-useful-swiper';\nimport { SwiperOptions } from 'swiper';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ImageSnippet } from '../../models/image-snippet.model';\nimport { SwipeMoveEvent, SwipeOptions, SwipeReleaseEvent } from '../../directives/swipe.model';\n\n\n@Component({\n selector: 'kms-image-slider',\n templateUrl: './image-slider.component.html',\n styleUrls: ['./image-slider.component.scss'],\n})\nexport class ImageSliderComponent implements OnInit, OnChanges {\n @Input() slides: string[] | undefined;\n @Input() editMode = false;\n @Input() imagesTOSave: ImageSnippet[] | undefined;\n @Output() orderChanged: EventEmitter<ImageSnippet[]> = new EventEmitter();\n @Output() deleteImageEvent: EventEmitter<number> = new EventEmitter();\n\n /**\n * Optional: Define Swipe behaviour configuration.\n * Default is 10% for the threshold definition until a swipe triggers next/previous slide.\n */\n @Input() swipeConfig: SwipeOptions = {\n swipeThreshold: 5,\n swipeThresholdType: '%',\n swipeLocalPosition: true,\n };\n\n public selectedSlide = 0;\n public checkedImageIndex?: number;\n\n public selectedSlideImage: SafeStyle | undefined;\n public isLastClickedInSliderImage = false;\n\n @ViewChild('usefulSwiper') usefulSwiper: SwiperComponent | undefined;\n\n config: SwiperOptions = {\n initialSlide: 0,\n slidesPerView: 3,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n watchOverflow: true,\n autoHeight: true,\n allowTouchMove: false,\n spaceBetween: 30,\n on: {\n slideChange: () => {\n // do something\n },\n slideChangeTransitionEnd: () => {\n // do something\n },\n },\n };\n\n constructor(public sanitizer: DomSanitizer) {}\n\n ngOnInit() {\n if (this.slides) {\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\n }\n }\n\n // !TODO\n @HostListener('document:keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (event.key === 'ArrowRight') {\n this.nextSlide();\n }\n if (event.key === 'ArrowLeft') {\n this.previousSlide();\n }\n }\n\n /**\n * Slide follows the finger or mouse according to it´s move delta.\n * @param event SwipeMoveEvent\n */\n handleMoveEvent(event: SwipeMoveEvent) {\n // certain move threshold needs to be reached\n if (!event.thresholdWasReached) {\n return;\n }\n this.config.direction = event.direction === 1 ? 'horizontal' : 'vertical';\n }\n\n /**\n * Mouse up or slide container was left.\n * @param event SwipeReleaseEvent\n */\n handleReleaseEvent(event: SwipeReleaseEvent) {\n if (!event.thresholdWasReached) {\n return;\n }\n // Just do if user clicked to slide on image and not on arrow or other element\n if (!this.isLastClickedInSliderImage) {\n return;\n }\n if (event.direction === 1) {\n this.previousSlide();\n } else {\n this.nextSlide();\n }\n }\n\n lastClicked() {\n this.isLastClickedInSliderImage = true;\n }\n\n noLastClicked() {\n this.isLastClickedInSliderImage = false;\n }\n\n scrollLeft() {\n this.previousSlide();\n }\n\n scrollRight() {\n this.nextSlide();\n }\n\n nextSlide() {\n if (this.slides && this.selectedSlide < this.slides.length - 1) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slideNext();\n }\n this.openSlide(this.selectedSlide + 1);\n }\n this.isLastClickedInSliderImage = false;\n }\n\n previousSlide() {\n if (this.selectedSlide > 0) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slidePrev();\n }\n this.openSlide(this.selectedSlide - 1);\n }\n this.isLastClickedInSliderImage = false;\n }\n\n slideTo(index: number) {\n if (this.usefulSwiper) {\n this.usefulSwiper.swiper.slideTo(index);\n }\n }\n\n openSlide(number: number) {\n if (this.slides && number < this.slides.length && number >= 0) {\n this.selectedSlide = number;\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[number] || ')');\n }\n }\n\n ngOnChanges(_changes: SimpleChanges) {\n if (_changes.slides) {\n if (this.slides) {\n // TODO use Pipe safeStyle\n\n this.selectedSlideImage = this.sanitizer.bypassSecurityTrustStyle('url(' + this.slides[0] + ')');\n }\n }\n }\n\n /**\n * Re-order slides and notify parent component\n */\n drop(event: CdkDragDrop<string[]>) {\n if (this.slides && this.imagesTOSave) {\n moveItemInArray(this.slides, event.previousIndex, event.currentIndex);\n moveItemInArray(this.imagesTOSave, event.previousIndex, event.currentIndex);\n this.orderChanged.emit(this.imagesTOSave);\n }\n }\n\n /**\n * Send image index to parent to perform delete\n */\n deleteImage(index: number) {\n this.deleteImageEvent.emit(index);\n }\n}\n","<div class=\"all-wrapper\">\n <!--(swiperight)=\"previousSlide()\" (swipeleft)=\"nextSlide()\"-->\n <div \n class=\"swiper-bigImage\"\n [style.backgroundImage]=\"selectedSlideImage\"\n [swipeDirective]=\"swipeConfig\"\n (moveEvent)=\"handleMoveEvent($event)\"\n (releaseEvent)=\"handleReleaseEvent($event)\"\n (mouseup)=\"lastClicked()\"\n (mouseout)=\"noLastClicked()\" >\n </div>\n\n <ng-content select=\"[description]\"></ng-content>\n\n <div class=\"swiper-holder\">\n <!--\n (mouseWheelUp)=\"scrollLeft($event)\"\n (mouseWheelDown)=\"scrollRight($event)\"\n -->\n\n <swiper [config]=\"config\" #usefulSwiper>\n <div class=\"swiper-wrapper\" \n cdkDropList (cdkDropListDropped)=\"drop($event)\" \n cdkDropListOrientation=\"horizontal\"> \n <div class=\"swiper-slide\" \n *ngFor=\"let slide of slides; let index = index\" \n cdkDrag [cdkDragDisabled]=\"!editMode\">\n <button mat-menu-item *ngIf=\"editMode\" (click)=\"deleteImage(index)\"> \n <kms-icon icon=\"trash\"></kms-icon>\n </button>\n <div class=\"img\" (click)=\"openSlide(index)\"\n [style.backgroundImage]=\"sanitizer.bypassSecurityTrustStyle('url(' + slide + ')')\"\n [ngClass]=\"{'active': index === selectedSlide}\">\n </div>\n \n <div class=\"default-image\">{{\"common.defaultImage\" | translate}} </div>\n </div>\n </div>\n </swiper>\n\n <div class=\"swiper-button-next\" *ngIf=\"slides?.length > 3\"></div>\n <div class=\"swiper-button-prev\" *ngIf=\"slides?.length > 3\"></div>\n\n <div class=\"swiper-button-next2\" *ngIf=\"slides?.length > 1\" (click)=\"nextSlide()\">\n <kms-icon icon=\"chevron-right\" [iconClass]=\"{'color-disabled': selectedSlide == slides?.length - 1, 'color-primary': true}\"></kms-icon>\n </div>\n <div class=\"swiper-button-prev2\" *ngIf=\"slides?.length > 1\" (click)=\"previousSlide()\">\n <kms-icon icon=\"chevron-left\" [iconClass]=\"{'color-disabled': selectedSlide == 0, 'color-primary': true}\"></kms-icon>\n </div>\n\n </div>\n\n <ng-content></ng-content>\n</div>","/*!\n * @copyright FLYACTS GmbH 2019\n */\n\nimport { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({ selector: '[mouseWheel]' })\nexport class MouseWheelDirective {\n @Output() mouseWheelUp = new EventEmitter();\n @Output() mouseWheelDown = new EventEmitter();\n\n \n @HostListener('mousewheel', ['$event']) onMouseWheelChrome(event: any) {\n this.mouseWheelFunc(event);\n }\n\n \n @HostListener('DOMMouseScroll', ['$event']) onMouseWheelFirefox(event: any) {\n this.mouseWheelFunc(event);\n }\n\n @HostListener('onmousewheel', ['$event']) onMouseWheelIE(event: any) {\n this.mouseWheelFunc(event);\n }\n\n \n mouseWheelFunc(event: any) {\n event = window.event || event; // old IE support\n \n const delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));\n if (delta > 0) {\n this.mouseWheelUp.emit(event);\n } else if (delta < 0) {\n this.mouseWheelDown.emit(event);\n }\n // for IE\n event.returnValue = false;\n // for Chrome and Firefox\n if (event.preventDefault) {\n event.preventDefault();\n }\n }\n}\n","/**\n * @copyright KMS GmbH\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MouseWheelDirective } from './mousewheel.directive';\nimport { GetMaxHeightDirective } from './sum-of-height.directive';\nimport { SwipeDirective } from './swipe.directive';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [\n SwipeDirective,\n MouseWheelDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n ],\n imports: [CommonModule],\n exports: [\n SwipeDirective,\n MouseWheelDirective,\n GetMaxHeightDirective,\n TooltipDirective,\n ],\n})\nexport class DirectivesModule {}\n","import { NgModule, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KmsUiPresentationalComponent } from './kms-ngx-ui-presentational.component';\nimport { ActionsParentComponent } from './parent-components/actions.component';\nimport { CheckboxComponent } from './ui/checkbox/checkbox.component';\n\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { ColorInputComponent } from './ui/color-input/color-input.component';\nimport { RadioButtonComponent } from './ui/radiobutton/radiobutton.component';\nimport { TimeInputComponent } from './ui/time-input/time-input.component';\nimport { YesNoRadiogroupComponent } from './ui/yes-no-radiogroup/yes-no-radiogroup.component';\nimport { FileInputComponent } from './ui/file-input/file-input.component';\nimport { LoaderComponent } from './ui/loader/loader.component';\nimport { FlyoutComponent } from './ui/flyout/flyout.component';\nimport { CustomPipesModule } from './pipes/custom-pipes.module';\nimport { IconComponent } from './ui/icon/icon.component';\nimport { EnumRadiogroupComponent } from './ui/enum-radiogroup/enum-radiogroup.component';\nimport { KMSAccordionItemComponent } from './ui/kms-accordion-item/kms-accordion-item.component';\nimport { MapComponent } from './ui/map/map.component';\nimport { SalutationDropdownComponent } from './ui/salutation-dropdown/salutation-dropdown.component';\nimport { TooltipComponent } from './ui/tooltip/tooltip.component';\nimport { TooltipIconComponent } from './ui/tooltip-icon/tooltip-icon.component';\n\nimport { SalutationRadiogroupComponent } from './ui/salutation-radiogroup/salutation-radiogroup.component';\nimport { BackToTopComponent } from './ui/back-to-top/back-to-top.component';\nimport { ButtonWithConfirmDialogComponent } from './ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GenericDialogComponent } from './ui/generic-dialog/generic-dialog.component';\nimport { MatExpansionModule} from '@angular/material/expansion';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DropdownFromDataComponent } from './ui/dropdown-from-data/dropdown-from-data.component';\nimport { ImageSliderComponent } from './ui/image-slider/image-slider.component';\nimport { DirectivesModule } from './directives/directives.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ViewportService } from './services/viewport.service';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { NgxUsefulSwiperModule } from 'ngx-useful-swiper';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n@NgModule({\n declarations: [\n ActionsParentComponent,\n BackToTopComponent,\n ButtonWithConfirmDialogComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n GenericDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n TimeInputComponent,\n TooltipComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n MatCheckboxModule,\n MatButtonModule,\n MatRadioModule,\n MatDialogModule,\n FormsModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatMenuModule,\n CustomPipesModule,\n GoogleMapsModule,\n MatExpansionModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n DirectivesModule,\n TranslateModule,\n NgxUsefulSwiperModule,\n ],\n exports: [\n ActionsParentComponent,\n BackToTopComponent,\n ButtonWithConfirmDialogComponent,\n CheckboxComponent,\n ColorInputComponent,\n DropdownFromDataComponent,\n EnumRadiogroupComponent,\n EnumRadiogroupComponent,\n FileInputComponent,\n FlyoutComponent,\n GenericDialogComponent,\n IconComponent,\n ImageSliderComponent,\n KMSAccordionItemComponent,\n KmsUiPresentationalComponent,\n LoaderComponent,\n MapComponent,\n RadioButtonComponent,\n SalutationDropdownComponent,\n SalutationRadiogroupComponent,\n TimeInputComponent,\n TooltipComponent,\n TooltipIconComponent,\n YesNoRadiogroupComponent,\n ],\n providers: [\n ViewportService\n ]\n})\nexport class KmsUiPresentationalModule { }\n","/*\n * Public API Surface of kms-ngx-ui-presentational\n */\n\nexport * from './lib/kms-ngx-ui-presentational.service';\nexport * from './lib/kms-ngx-ui-presentational.component';\nexport * from './lib/kms-ngx-ui-presentational.module';\nexport * from './lib/pipes/custom-pipes.module';\nexport * from './lib/directives/directives.module';\n\nexport * from './lib/models/iconSize.enum';\nexport * from './lib/models/salutation.enum';\nexport * from './lib/ui/checkbox/checkbox.component';\nexport * from './lib/ui/color-input/color-input.component';\nexport * from './lib/ui/radiobutton/radiobutton.component';\nexport * from './lib/ui/time-input/time-input.component';\nexport * from './lib/ui/yes-no-radiogroup/yes-no-radiogroup.component';\nexport * from './lib/ui/file-input/file-input.component';\nexport * from './lib/ui/loader/loader.component';\nexport * from './lib/ui/flyout/flyout.component';\nexport * from './lib/ui/icon/icon.component';\nexport * from './lib/ui/enum-radiogroup/enum-radiogroup.component';\nexport * from './lib/ui/kms-accordion-item/kms-accordion-item.component';\nexport * from './lib/ui/map/map.component';\nexport * from './lib/ui/salutation-dropdown/salutation-dropdown.component';\nexport * from './lib/ui/tooltip/tooltip.component';\nexport * from './lib/ui/tooltip-icon/tooltip-icon.component';\nexport * from './lib/ui/salutation-radiogroup/salutation-radiogroup.component';\nexport * from './lib/ui/back-to-top/back-to-top.component';\nexport * from './lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component';\nexport * from './lib/ui/dropdown-from-data/dropdown-from-data.component';\nexport * from './lib/ui/image-slider/image-slider.component';\n\nexport * from './lib/directives/mousewheel.directive';\nexport * from './lib/directives/sum-of-height.directive';\nexport * from './lib/directives/swipe.directive';\nexport * from './lib/directives/tooltip.directive';\n\nexport * from './lib/pipes/integer-currency.pipe';\nexport * from './lib/pipes/decode-uri.pipe';\nexport * from './lib/pipes/encode-uri.pipe';\nexport * from './lib/pipes/safe-html.pipe';\nexport * from './lib/pipes/safe-url.pipe';\nexport * from './lib/pipes/safe-resource-url.pipe';\nexport * from './lib/pipes/typeof.pipe';\nexport * from './lib/pipes/trim.pipe';\nexport * from './lib/pipes/to-number.pipe';\nexport * from './lib/pipes/safe-style.pipe';\n\nexport * from './lib/parent-components/actions.component';\nexport * from './lib/ui/generic-dialog/generic-dialog.component';\nexport * from './lib/services/viewport.service';\nexport * from './lib/parent-components/form.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","IconSize","i1.TooltipDirective","i2.IconComponent","i5.TooltipIconComponent","i4.IconComponent","i2.GetMaxHeightDirective","i3.IconComponent","i4.SafeHtmlPipe","i4","i1.ViewportService","i5","i5.SwipeDirective","i7.IconComponent","i8"],"mappings":"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"}
|