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