@rlucan/ui 14.2.3 → 14.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/action-button/action-button.component.mjs +7 -4
- package/esm2020/lib/autocomplete/autocomplete.component.mjs +1 -1
- package/esm2020/lib/currency/currency.component.mjs +1 -1
- package/esm2020/lib/date/date.component.mjs +10 -6
- package/esm2020/lib/file/file.component.mjs +61 -4
- package/esm2020/lib/file-uploader/ui-file-uploader.component.mjs +3 -3
- package/esm2020/lib/input/input.component.mjs +34 -34
- package/esm2020/lib/select/select.component.mjs +2 -2
- package/esm2020/lib/services/message-box.service.mjs +45 -9
- package/esm2020/lib/text-area/text-area.component.mjs +2 -2
- package/fesm2015/rlucan-ui.mjs +247 -148
- package/fesm2015/rlucan-ui.mjs.map +1 -1
- package/fesm2020/rlucan-ui.mjs +242 -146
- package/fesm2020/rlucan-ui.mjs.map +1 -1
- package/lib/action-button/action-button.component.d.ts +0 -1
- package/lib/date/date.component.d.ts +1 -0
- package/lib/file/file.component.d.ts +6 -0
- package/lib/input/input.component.d.ts +16 -4
- package/lib/services/message-box.service.d.ts +16 -0
- package/package.json +1 -1
- package/scss/ui-defaults.scss +18 -3
- package/ui.scss +36 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rlucan-ui.mjs","sources":["../../../projects/ui/src/lib/button/button.component.ts","../../../projects/ui/src/lib/button/button.component.html","../../../projects/ui/src/lib/base/ui-base.component.ts","../../../projects/ui/src/lib/simple/ui-simple.component.ts","../../../projects/ui/src/lib/services/ui-translate.service.ts","../../../projects/ui/src/lib/elements/validation-message/validation-message.component.ts","../../../projects/ui/src/lib/elements/validation-message/validation-message.component.html","../../../projects/ui/src/lib/base/ui-base-layout.component.ts","../../../projects/ui/src/lib/base/ui-base-layout.component.html","../../../projects/ui/src/lib/simple/ui-simple-layout.component.ts","../../../projects/ui/src/lib/simple/ui-simple-layout.component.html","../../../projects/ui/src/lib/input/input.component.ts","../../../projects/ui/src/lib/input/input.component.html","../../../projects/ui/src/lib/select/select.component.ts","../../../projects/ui/src/lib/select/select.component.html","../../../projects/ui/src/lib/services/ui-file.service.ts","../../../projects/ui/src/lib/file/file.component.ts","../../../projects/ui/src/lib/file/file.component.html","../../../projects/ui/src/lib/file-uploader/ui-file-uploader.component.ts","../../../projects/ui/src/lib/file-uploader/ui-file-uploader.component.html","../../../projects/ui/src/lib/elements/expander/expander.component.ts","../../../projects/ui/src/lib/elements/expander/expander.component.html","../../../projects/ui/src/lib/directives/force-visibility/force-visibility.directive.ts","../../../projects/ui/src/lib/action-icon/action-icon.component.ts","../../../projects/ui/src/lib/action-icon/action-icon.component.html","../../../projects/ui/src/lib/dialog/dialog.component.ts","../../../projects/ui/src/lib/dialog/dialog.component.html","../../../projects/ui/src/lib/services/message-box.service.ts","../../../projects/ui/src/lib/currency/currency.component.ts","../../../projects/ui/src/lib/currency/currency.component.html","../../../projects/ui/src/lib/checkbox/checkbox.component.ts","../../../projects/ui/src/lib/checkbox/checkbox.component.html","../../../projects/ui/src/lib/avatar/avatar.component.ts","../../../projects/ui/src/lib/avatar/avatar.component.html","../../../projects/ui/src/lib/submit-button/submit-button.component.ts","../../../projects/ui/src/lib/submit-button/submit-button.component.html","../../../projects/ui/src/lib/text-area/text-area.component.ts","../../../projects/ui/src/lib/text-area/text-area.component.html","../../../projects/ui/src/lib/date/date.component.ts","../../../projects/ui/src/lib/date/date.component.html","../../../projects/ui/src/lib/table/table.component.ts","../../../projects/ui/src/lib/table/table.component.html","../../../projects/ui/src/lib/elements/burger/burger.component.ts","../../../projects/ui/src/lib/elements/burger/burger.component.html","../../../projects/ui/src/lib/autocomplete/autocomplete.component.ts","../../../projects/ui/src/lib/autocomplete/autocomplete.component.html","../../../projects/ui/src/lib/action-button/action-button.component.ts","../../../projects/ui/src/lib/action-button/action-button.component.html","../../../projects/ui/src/lib/radio/radio.component.ts","../../../projects/ui/src/lib/radio/radio.component.html","../../../projects/ui/src/lib/checkbox-group/checkbox-group.component.ts","../../../projects/ui/src/lib/checkbox-group/checkbox-group.component.html","../../../projects/ui/src/lib/radio-group/radio-group.component.ts","../../../projects/ui/src/lib/radio-group/radio-group.component.html","../../../projects/ui/src/lib/ui.module.ts","../../../projects/ui/src/lib/services/toast.service.ts","../../../projects/ui/src/public-api.ts","../../../projects/ui/src/rlucan-ui.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\r\nimport { ControlColor, ControlSize } from '../ui.model';\r\n\r\n@Component({\r\n selector: 'ui-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent {\r\n\r\n @Input() type: 'submit' | 'button' = 'button';\r\n @Input() matIconPrefix: any;\r\n @Input() label: string | undefined;\r\n @Input() disabled = false;\r\n @Input() busy = false;\r\n @Input() kind: 'basic' | 'flat' | 'stroked' = 'flat';\r\n @Input() color: ControlColor = 'primary';\r\n @Input() size: ControlSize = 'normal';\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return this.kind +\r\n (this.color ? ' ' + this.color : '') +\r\n (this.size ? ' ' + this.size : '') +\r\n ((this.disabled || this.busy) ? ' disabled' : '');\r\n }\r\n\r\n @HostBinding('class.formInvalid')\r\n @Input() formInvalid = false;\r\n\r\n constructor() { }\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.busy;\r\n }\r\n\r\n}\r\n","<button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy}\" [class]=\"class\">\r\n <mat-icon *ngIf=\"matIconPrefix\">{{matIconPrefix}}</mat-icon>\r\n {{label}}\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n</button>\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { ValidationErrors } from '@angular/forms';\r\n\r\nexport interface UiValidators {\r\n required?: boolean;\r\n maxLength?: number\r\n}\r\n\r\n@Component({\r\n selector: 'ui-abstract-base-component',\r\n template: '** abstract **'\r\n})\r\nexport abstract class UiBaseComponent implements OnInit {\r\n\r\n @Input() placeholder = '';\r\n @Input() label: string | undefined;\r\n @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n @Input() inputMessagesPosition: 'absolute' | 'relative' = 'relative';\r\n @Input() hint?: string;\r\n\r\n @HostBinding('class')\r\n @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n\r\n // control = new FormControl();\r\n\r\n // controlFormGroup;\r\n\r\n required = false;\r\n\r\n // get control() {\r\n // return this.controlFormGroup.get('text');\r\n // }\r\n\r\n constructor() {\r\n // this.ngControl.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n // console.log(this.controlContainer);\r\n\r\n // this.controlFormGroup.valueChanges.subscribe(v => {\r\n // this.onChange(v);\r\n // });\r\n\r\n // this.ngControl.control.statusChanges.subscribe(v => console.log(v));\r\n //\r\n // this.ngControl.control.markAsTouched = (opts?: {\r\n // onlySelf?: boolean;\r\n // }) => {\r\n // if (!this.control.touched) {\r\n // console.log('marking as touched');\r\n // this.control.markAsTouched(opts);\r\n // }\r\n // this.control.updateValueAndValidity({onlySelf: opts?.onlySelf, emitEvent: false});\r\n // }\r\n\r\n // setTimeout(() => {\r\n // this.applyValidators(this.validators);\r\n // });\r\n }\r\n\r\n // bindValidators(validators: ValidatorFn[]): void {\r\n // this.control.setValidators(validators);\r\n // }\r\n\r\n\r\n\r\n get validationErrors(): ValidationErrors {\r\n return null;\r\n }\r\n\r\n get validationMessage(): string {\r\n return 'obsolete...';\r\n }\r\n\r\n get isInvalid(): boolean {\r\n return false;\r\n }\r\n\r\n // @HostBinding('class')\r\n // get class(): string {\r\n // return (this.isInvalid ? 'invalid ' : '') + this.size;\r\n // }\r\n\r\n\r\n}\r\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n ValidationErrors, Validator,\r\n ValidatorFn,\r\n Validators, FormControl, ControlContainer, FormGroupDirective\r\n} from '@angular/forms';\r\nimport { UiBaseComponent, UiValidators } from '../base/ui-base.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ui-abstract-simple-component',\r\n template: '** abstract **'\r\n})\r\nexport abstract class UiSimpleComponent extends UiBaseComponent\r\n implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator { // }, Validator {\r\n\r\n @Input() validators: UiValidators | undefined;\r\n @Input() formControl;\r\n @Input() formControlName;\r\n\r\n componentFormControl: UntypedFormControl;\r\n // tslint:disable-next-line:ban-types\r\n parentFormControl: UntypedFormControl & { _componentFormControl: FormControl; _markAsTouched: Function; _setErrors: Function };\r\n\r\n sub: Subscription = new Subscription();\r\n\r\n constructor(public ngControl: NgControl, // <-- obsolete\r\n protected controlContainer: ControlContainer = null) {\r\n super();\r\n\r\n if (ngControl) {\r\n ngControl.valueAccessor = this;\r\n } else {\r\n this.componentFormControl = new FormControl();\r\n// this.componentFormControl.markAsUntouched();\r\n this.sub.add(this.componentFormControl.valueChanges.subscribe(v => {\r\n try {\r\n // console.log(v, this.componentFormControl.value);\r\n this.onChange(v);\r\n } catch (e) { /*console.error(e);*/\r\n }\r\n } ));\r\n }\r\n // this.ngControl.valueAccessor = this;\r\n }\r\n\r\n get maxLenRequired(): boolean {\r\n return this.componentFormControl.value && (this.componentFormControl.value.length > (this.validators?.maxLength || 0));\r\n }\r\n\r\n get isInvalid(): boolean {\r\n // console.log(this.label, this.componentFormControl.touched);\r\n return this.componentFormControl.touched && !!this.componentFormControl.errors;\r\n }\r\n\r\n get validationErrors(): ValidationErrors {\r\n return this.componentFormControl?.errors;\r\n }\r\n\r\n onChange = (val) => {};\r\n\r\n onTouched = () => {};\r\n\r\n onValidatorChange = () => {};\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ngControl) {\r\n if (this.formControl) {\r\n this.componentFormControl = this.formControl;\r\n } else {\r\n this.componentFormControl = this.ngControl.control as UntypedFormControl;\r\n }\r\n setTimeout(() => this.applyTemplateValidators());\r\n } else {\r\n this.parentFormControl = this.formControlName ?\r\n (this.controlContainer as FormGroupDirective).control.get(this.formControlName) : this.formControl;\r\n if (this.parentFormControl) {\r\n this.componentFormControl.setValidators(this.parentFormControl.validator);\r\n this.parentFormControl._componentFormControl = this.componentFormControl;\r\n if (this.parentFormControl._markAsTouched === undefined) {\r\n this.parentFormControl._markAsTouched = this.parentFormControl.markAsTouched;\r\n this.parentFormControl._setErrors = this.parentFormControl.setErrors;\r\n this.parentFormControl.markAsTouched = ({onlySelf}: { onlySelf?: boolean } = {}): void => {\r\n this.parentFormControl._markAsTouched({onlySelf});\r\n this.parentFormControl._componentFormControl.markAsTouched({onlySelf});\r\n }\r\n this.parentFormControl.setErrors = (errors: any): void => {\r\n this.parentFormControl._setErrors(errors);\r\n this.parentFormControl._componentFormControl.setErrors(errors);\r\n }\r\n }\r\n setTimeout(() => this.applyTemplateValidators());\r\n }\r\n }\r\n }\r\n\r\n applyTemplateValidators(): void {\r\n const inputValidators = this.validators;\r\n if (inputValidators) {\r\n const validators: ValidatorFn[] = [];\r\n Object.keys(inputValidators).forEach(v => {\r\n switch (v) {\r\n case 'required':\r\n validators.push(Validators.required);\r\n this.required = true;\r\n break;\r\n case 'maxLength':\r\n validators.push(Validators.maxLength(inputValidators.maxLength || 0));\r\n break;\r\n }\r\n });\r\n if (this.parentFormControl) {\r\n this.parentFormControl.setValidators(validators);\r\n this.parentFormControl.updateValueAndValidity({ emitEvent: false });\r\n this.componentFormControl.setValidators(this.parentFormControl.validator);\r\n } else {\r\n this.componentFormControl.addValidators(validators);\r\n this.componentFormControl.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.validators && this.componentFormControl) {\r\n this.applyTemplateValidators(); // changes.validators.currentValue as UiValidators);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.componentFormControl) {\r\n isDisabled ? this.componentFormControl.disable({ emitEvent: false }) : this.componentFormControl.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!this.ngControl) {\r\n if (obj && obj.error) {\r\n console.log('setting error', obj, obj.error);\r\n this.componentFormControl.setErrors(obj.error === 'clear' ? null : { custom: obj.error }, { emitEvent: false });\r\n } else {\r\n this.componentFormControl.setValue(obj);\r\n }\r\n }\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n }\r\n}\r\n","import { Injectable, InjectionToken } from '@angular/core';\r\n\r\nexport interface IUiTranslateService {\r\n instant: (code: string, data?: any) => string;\r\n}\r\n\r\nexport const UI_TRANSLATESERVICE = new InjectionToken<IUiTranslateService>('IUiTranslateService');\r\n\r\n@Injectable()\r\nexport class UiTranslateService implements IUiTranslateService {\r\n instant(code: string, data: any): string {\r\n switch (code) {\r\n case 'ui.controls.ui-file-uploader.menu.change': return 'Změnit';\r\n case 'ui.controls.ui-file-uploader.menu.delete': return 'Smazat';\r\n case 'ui.controls.ui-file-uploader.uploadError': return 'Chyba při ukládání souboru';\r\n case 'ui.controls.validation.required': return 'Povinná položka';\r\n case 'ui.controls.validation.email': return 'Neplatný email';\r\n case 'ui.controls.validation.matDatepickerParse': return 'Neplatné datum';\r\n case 'ui.controls.validation.maxlength': return 'Zadej maximálně ' + data.requiredLength + ' znaků';\r\n case 'ui.controls.validation.minlength': return 'Zadej minimálně ' + data.requiredLength + ' znaků';\r\n case 'ui.controls.validation.invalidNumber': return 'Neplatné číslo';\r\n case 'ui.controls.validation.positive': return 'Musí být větší než 0';\r\n case 'ui.controls.validation.cbGroupRequired': return 'Zaškrtni alespoň jednu položku';\r\n case 'ui.controls.ui-select.clear-selection': return 'Zrušit výběr';\r\n case 'ui.controls.ui-select.all': return 'Vše';\r\n case 'ui.controls.ui-select.apply-selection': return 'Použít výběr';\r\n case 'ui.messagebox.button.cancel': return 'Zrušit';\r\n case 'ui.messagebox.button.delete': return 'Smazat';\r\n default: return code;\r\n }\r\n }\r\n}\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../../services/ui-translate.service';\r\n\r\n@Component({\r\n selector: 'ui-validation-message',\r\n templateUrl: './validation-message.component.html'\r\n})\r\nexport class ValidationMessageComponent implements OnInit {\r\n\r\n @Input() validationErrors;\r\n\r\n constructor(@Inject(UI_TRANSLATESERVICE) protected translateService: IUiTranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get errorMessage(): string {\r\n let e: any = {code: 'Neznámá chyba'};\r\n const errors = this.validationErrors;\r\n if (errors) {\r\n Object.keys(errors).find(a => {\r\n e = {code: a, data: errors[a]};\r\n return true;\r\n });\r\n switch (e.code) {\r\n case 'required':\r\n case 'cbGroupRequired':\r\n case 'email':\r\n case 'matDatepickerParse':\r\n case 'maxlength':\r\n case 'minlength':\r\n return this.translateService.instant('ui.controls.validation.' + e.code, e.data);\r\n case 'positive':\r\n return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');\r\n case 'custom':\r\n return this.translateService.instant(e.data);\r\n default:\r\n return this.translateService.instant(e.code);\r\n }\r\n }\r\n }\r\n}\r\n","{{ errorMessage }}\r\n","import { Component, Host, HostBinding, Input } from '@angular/core';\r\nimport { UiBaseComponent } from './ui-base.component';\r\n\r\n@Component({\r\n selector: 'ui-base-layout',\r\n templateUrl: './ui-base-layout.component.html',\r\n styleUrls: [ './ui-base-layout.component.scss' ]\r\n})\r\nexport class UiBaseLayoutComponent {\r\n\r\n @Input() ctx: UiBaseComponent;\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return `${this.ctx.isInvalid ? 'invalid ' : ''} ${this.ctx.inputMessagesPosition}`;\r\n }\r\n\r\n}\r\n","<div class=\"label\" *ngIf=\"ctx.label\">\r\n <div class=\"text-container\" [matTooltip]=\"false && ctx.required ? 'Povinná položka' : undefined\" [matTooltipPosition]=\"'above'\">\r\n <div class=\"text\" >{{ctx.label}}</div>\r\n <div *ngIf=\"false && ctx.required\" class=\"required\">*</div>\r\n </div>\r\n <ng-content select=\".counter-top\"></ng-content>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"hint-container\" *ngIf=\"ctx.useInputMessages === 'always' || (ctx.useInputMessages === 'ondemand' && (ctx.isInvalid || ctx.hint))\">\r\n <ui-validation-message class=\"invalid\" *ngIf=\"ctx.isInvalid\" [validationErrors]=\"ctx.validationErrors\"></ui-validation-message>\r\n <div class=\"hint\" *ngIf=\"!ctx.isInvalid && ctx.hint\" [innerHTML]=\"ctx.hint\"></div>\r\n <ng-container *ngIf=\"!ctx.label\">\r\n <ng-content select=\".counter-bottom\"></ng-content>\r\n </ng-container>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { UiSimpleComponent } from './ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-simple-layout',\r\n templateUrl: './ui-simple-layout.component.html'\r\n // styleUrls: [ './ui-simple-layout.component.scss' ]\r\n})\r\nexport class UiSimpleLayoutComponent {\r\n\r\n @Input() ctx: UiSimpleComponent;\r\n\r\n}\r\n","<ui-base-layout [ctx]=\"ctx\">\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-top\">\r\n {{ ctx.componentFormControl.value ? ctx.componentFormControl.value.length : 0 }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-bottom\">\r\n {{ ctx.componentFormControl.value ? ctx.componentFormControl.value.length : 0 }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n</ui-base-layout>\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SkipSelf,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-input',\r\n templateUrl: './input.component.html',\r\n// styleUrls: [ './input.component.scss' ],\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss' ],\r\n\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: InputComponent\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: InputComponent\r\n }\r\n ]\r\n})\r\nexport class InputComponent extends UiSimpleComponent\r\n implements OnInit { // }, ControlValueAccessor { // }, ControlValueAccessor, Validator { // }, AfterViewInit {\r\n\r\n // UiSimpleComponent = InputComponent;\r\n\r\n // @Input() placeholder = '';\r\n // @Input() label: string | undefined;\r\n // @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n // @Input() hint: string | undefined;\r\n // @Input() validators: UiValidators | undefined;\r\n // @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n // @Input() formControlName;\r\n\r\n // componentFormControl: UntypedFormControl;\r\n //\r\n // ngControl: NgControl;\r\n //\r\n // @Input() validators: UiValidators | undefined;\r\n // @Input() formControlName;\r\n //\r\n // @Input() placeholder = '';\r\n // @Input() label: string | undefined;\r\n // @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n // @Input() hint?: string;\r\n // @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n\r\n @Input() prefix = '';\r\n @Input() suffix = '';\r\n @Input() type: 'text' | 'number' | 'password' = 'text';\r\n @Input() clearButton = false;\r\n @Input() disableUserInput = false;\r\n\r\n // @HostBinding('class.centered')\r\n @Input() centered = false;\r\n\r\n @ViewChild('input') input: ElementRef | undefined;\r\n\r\n @Output() focusChanged = new EventEmitter<boolean>();\r\n @Output() keyPressed = new EventEmitter<KeyboardEvent>();\r\n\r\n // control = new FormControl();\r\n\r\n required = false;\r\n\r\n value: string;\r\n\r\n // control;\r\n\r\n\r\n // onTouched = () => {};\r\n // onChange = (value) => {};\r\n\r\n // get showInvalid(): boolean {\r\n // return true;\r\n // // return this.control.touched && !!this.control.errors;\r\n // }\r\n\r\n // get validationMessage(): string {\r\n // // console.log(this.control?.errors);\r\n // let e: any = {code: 'Neznámá chyba'};\r\n // const errors = this.control?.errors || {};\r\n // Object.keys(errors).find(a => {\r\n // e = {code: a, data: errors[a]};\r\n // return true;\r\n // });\r\n // switch (e.code) {\r\n // case 'required':\r\n // return this.translateService.instant('ui.controls.validation.required');\r\n // case 'email':\r\n // return this.translateService.instant('ui.controls.validation.email');\r\n // case 'matDatepickerParse':\r\n // return this.translateService.instant('ui.controls.validation.matDatepickerParse');\r\n // case 'maxlength':\r\n // return this.translateService.instant('ui.controls.validation.maxlength', e.data);\r\n // case 'minlength':\r\n // return this.translateService.instant('ui.controls.validation.minlength', e.data);\r\n // case 'positive':\r\n // return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');\r\n // case 'custom':\r\n // return this.translateService.instant(e.data);\r\n // default:\r\n // return this.translateService.instant(e.code);\r\n // }\r\n // }\r\n\r\n get maxLenRequired(): boolean {\r\n return true;\r\n // return this.control.value && (this.control.value.length > (this.validators?.maxLength || 0));\r\n }\r\n\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n /*\r\n bud pres @Optional() @Self() public control: NgControl a control.valueAccessor = this => ztratime ale custom validaci\r\n anebo pres DI jako providers a pak this.control = viz ngOnInit - pokud jej vubec potrebujem\r\n\r\n */\r\n // private injector: Injector,\r\n // @Optional() @Self() public control: NgControl,\r\n // @Self() private controlDirective: NgControl,\r\n ) {\r\n super(null, controlContainer);\r\n\r\n // this.componentFormControl = new FormControl();\r\n // super();\r\n // super(undefined, /*ngControl*/ translateService);\r\n // super(control);\r\n // console.log(control);\r\n // if (control) {\r\n // control.valueAccessor = this;\r\n // }\r\n\r\n // if (ngControl != null) {\r\n // // Setting the value accessor directly (instead of using\r\n // // the providers) to avoid running into a circular import.\r\n // ngControl.valueAccessor = this;\r\n // }\r\n }\r\n\r\n get showClearButton(): boolean {\r\n return false;\r\n // return this.clearButton && this.control?.value !== '';\r\n }\r\n\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n // console.log('probiha vubec oninit?');\r\n // if (this.ngControl) {\r\n // console.log('from ngControl....??');\r\n // if (this.formControl) {\r\n // this.componentFormControl = this.formControl;\r\n // } else {\r\n // this.componentFormControl = this.ngControl.control as UntypedFormControl;\r\n // }\r\n // setTimeout(() => {\r\n // this.applyValidators();\r\n // });\r\n // } else {\r\n // const control = this.formControlName ?\r\n // (this.controlContainer as FormGroupDirective).control.get(this.formControlName) : this.formControl;\r\n // this.componentFormControl.setValidators(control.validator);\r\n // this.componentFormControl.valueChanges.subscribe(v => console.log('onitin sub', v));\r\n // control._componentFormControl = this.componentFormControl;\r\n // if (control._markAsTouched === undefined) {\r\n // // control._componentFormControl = this.componentFormControl;\r\n // console.log('overriding markAsTouched for', this.formControlName);\r\n // control._markAsTouched = control.markAsTouched;\r\n // control.markAsTouched = ({onlySelf}: { onlySelf?: boolean } = {}): void => {\r\n // console.log('marking as touched', this.componentFormControl.value, control.value, this.xxx.value, control._componentFormControl.value);\r\n // control._markAsTouched({onlySelf});\r\n // setTimeout(() => control._componentFormControl.markAsTouched(), 1000);\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n clearValue(): void {\r\n // this.control?.setValue('');\r\n this.input?.nativeElement.focus();\r\n }\r\n\r\n focus(): void {\r\n this.input?.nativeElement.focus();\r\n }\r\n\r\n onFocus(focus: boolean): void {\r\n this.focusChanged.emit(focus);\r\n }\r\n\r\n onKeypressed($event: any): void {\r\n this.keyPressed.emit($event);\r\n }\r\n\r\n // registerOnChange(onChange: any): void {\r\n // this.onChange = onChange;\r\n // }\r\n //\r\n // registerOnTouched(onTouched: any): void {\r\n // this.onTouched = onTouched;\r\n // }\r\n\r\n // registerOnValidatorChange(fn: () => void): void {\r\n // }\r\n\r\n // setDisabledState(isDisabled: boolean): void {\r\n // // isDisabled ? this.control.disable() : this.control.enable();\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // // this.control = control;\r\n // // console.log(control, control.value, control.errors);\r\n // if (this.value === 'error') {\r\n // return { customError: 'muj error'}\r\n // } else {\r\n // return null;\r\n // }\r\n // // console.log('custom validate');\r\n // // return null;\r\n // }\r\n //\r\n // writeValue(obj: any): void {\r\n // console.log('writevalue: ', obj);\r\n // this.componentFormControl.setValue(obj);\r\n // // this.value = obj;\r\n // // this.control.setValue(obj);\r\n // }\r\n //\r\n // registerOnChange(fn: any): void {\r\n // }\r\n //\r\n // registerOnTouched(fn: any): void {\r\n // }\r\n //\r\n // setDisabledState(isDisabled: boolean): void {\r\n // }\r\n\r\n // modelChange($event: any) {\r\n // console.log($event);\r\n // this.onTouched();\r\n // this.onChange($event)\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // console.log(this.label, 'validate');\r\n // return this.componentFormControl.errors;\r\n // // return undefined;\r\n // }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (this.parentFormControl) {\r\n return this.parentFormControl._componentFormControl.errors;\r\n }\r\n // console.log('validate', this.componentFormControl.errors);\r\n // // this.componentFormControl.setErrors( { custom: 'xxx' });\r\n // this.componentFormControl.setErrors( this.componentFormControl.errors);\r\n // console.log('validate 2', this.componentFormControl.errors);\r\n // return this.componentFormControl.errors;\r\n // console.log(this.componentFormControl.errors, control.errors, this.parentFormControl.errors, this);\r\n // return this.componentFormControl.errors;\r\n }\r\n}\r\n\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\">\r\n <input #input [ngClass]=\"{centered: centered}\" [type]=\"type\" [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" (keydown)=\"onKeypressed($event)\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\" />\r\n <ng-content select=\"[slot=prefix]\"></ng-content>\r\n <ng-content select=\"[slot=suffix]\"></ng-content>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { Component, Inject, Input, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\n\r\n@Component({\r\n selector: 'ui-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss', './select.component.scss' ]\r\n})\r\n\r\nexport class SelectComponent extends UiSimpleComponent implements OnInit {\r\n\r\n @Input() multiple = false;\r\n @Input() triggerFormatter: any;\r\n @Input() valueAttribute: string | undefined;\r\n @Input() resetText: string | undefined;\r\n @Input() displayAttribute: string | undefined;\r\n\r\n @Input() options: any[] = [];\r\n @Input() optionFormatter: ((arg: any) => string | undefined) | undefined;\r\n @Input() optionTemplateRef?: TemplateRef<any>;\r\n @Input() triggerTemplateRef?: TemplateRef<any>;\r\n @Input() panelClass;\r\n @Input() allowEmptySelection = false;\r\n\r\n @ViewChild('select') select: MatSelect;\r\n\r\n lastCount = -1;\r\n overoption = false;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService) {\r\n super(ngControl);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.optionFormatter === undefined) {\r\n this.optionFormatter = o => this.displayAttribute ? o[this.displayAttribute] : o;\r\n }\r\n if (this.multiple && this.componentFormControl) {\r\n this.lastCount = this.componentFormControl.value.length;\r\n this.componentFormControl.valueChanges.subscribe(v => {\r\n if (v.length === 1 && this.lastCount === 0 && this.overoption) {\r\n this.select.selectionChange.emit(this.optionToValue(v));\r\n this.select.close();\r\n }\r\n this.lastCount = v.length;\r\n });\r\n }\r\n }\r\n\r\n optionToValue = (o: any) => this.valueAttribute ? o[this.valueAttribute] : o;\r\n\r\n selectOption(o: any, select: MatSelect) {\r\n select.selectionChange.emit(this.optionToValue(o));\r\n select.close();\r\n }\r\n\r\n selectAll() {\r\n this.componentFormControl.setValue(this.options.map(o => this.optionToValue(o)));\r\n }\r\n\r\n clearAll() {\r\n this.componentFormControl.setValue([]);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<mat-select class=\"control-container\" #select [panelClass]=\"panelClass\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" [multiple]=\"multiple\">\r\n\r\n <mat-select-trigger *ngIf=\"triggerTemplateRef\">\r\n <ng-template [ngTemplateOutlet]=\"triggerTemplateRef\" [ngTemplateOutletContext]=\"{option:componentFormControl?.value}\" ></ng-template>\r\n </mat-select-trigger>\r\n\r\n <mat-select-trigger *ngIf=\"triggerFormatter\">{{componentFormControl?.value ? triggerFormatter(componentFormControl?.value) : ''}}</mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"resetText\">{{resetText}}</mat-option>\r\n\r\n <mat-option *ngFor=\"let o of options\" [value]=\"optionToValue(o)\" >\r\n\r\n <div class=\"option-container\" (mouseenter)=\"overoption = true;\" (mouseleave)=\"overoption = false\">\r\n\r\n <ng-container *ngIf=\"optionTemplateRef\">\r\n <ng-template [ngTemplateOutlet]=\"optionTemplateRef\" [ngTemplateOutletContext]=\"{option:o}\" ></ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplateRef\">\r\n {{optionFormatter(o)}}\r\n </ng-container>\r\n\r\n <mat-icon class=\"select-one\" *ngIf=\"multiple && componentFormControl?.value?.length === 0\" (click)=\"selectOption(o, select)\">north_west</mat-icon>\r\n </div>\r\n\r\n </mat-option>\r\n\r\n <div class=\"buttons\" *ngIf=\"multiple\">\r\n <ui-button style=\"margin-right: auto;\" [kind]=\"'basic'\" [size]=\"'smaller'\" [label]=\"translateService.instant('ui.controls.ui-select.clear-selection')\" (click)=\"clearAll()\"></ui-button>\r\n <ui-button [size]=\"'smaller'\" [label]=\"translateService.instant('ui.controls.ui-select.all')\" (click)=\"selectAll()\"></ui-button>\r\n <ui-button [size]=\"'smaller'\" style=\"padding-left: 0.2em;\" [disabled]=\"componentFormControl?.value?.length === 0 && !allowEmptySelection\" [label]=\"translateService.instant('ui.controls.ui-select.apply-selection') + (componentFormControl?.value?.length > 0 ? ' (' + componentFormControl.value.length + ')' : '')\" (click)=\"select.close()\"></ui-button>\r\n </div>\r\n\r\n</mat-select>\r\n\r\n</ui-simple-layout>\r\n","import { EventEmitter, Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { UploadFile, UploadInput } from 'ngx-uploader';\r\nimport { Subject } from 'rxjs';\r\n// import { UiFileUploaderComponent } from '../file-uploader/ui-file-uploader.component';\r\n\r\n// export interface IGetAuthHeader {\r\n// getAuthHeader: () => { [key: string]: string };\r\n// }\r\n\r\nexport type IUiFileServiceMessages = 'cropInvalidFileType' | 'extensionNotAllowed' | 'fileAdded' | 'fileRemoved';\r\n\r\nexport interface IUiFileService {\r\n getAuthHeader: () => { [ key: string ]: string },\r\n uploadUrl: string;\r\n // // upload64Url: string;\r\n getMediaSrc: (size: string, data: any, options: any) => string,\r\n getPreviewUrl: (size: string, any) => string,\r\n addFileImgSrc: string;\r\n getMimeType: (data: any) => string;\r\n imageSizes: {\r\n [key: string]: [number, number]\r\n };\r\n concurrentUploads: number,\r\n useRetinaSrc: boolean,\r\n\r\n fileValidation?: (size: string, file: UploadFile) => Promise<boolean>\r\n}\r\n\r\nexport const UI_FILESERVICE = new InjectionToken<IUiFileService>('IUiFileService');\r\n\r\n// export const FileServiceConfigService = new InjectionToken<FileServiceConfig>('FileServiceConfig');\r\n\r\n@Injectable()\r\nexport class UiFileService {\r\n\r\n uploadInput: EventEmitter<UploadInput> = new EventEmitter<UploadInput>();\r\n\r\n uploadSubscription = new Subject();\r\n\r\n filesToRemove: string[] = [];\r\n controls = new Set<any>();\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) public fileServiceConfig: IUiFileService) {\r\n this.uploadSubscription.subscribe((v: any) => {\r\n switch (v.action) {\r\n case 'register': this.controls.add(v.data); return;\r\n case 'destroy': this.controls.delete(v.data); return;\r\n\r\n case 'uploadStarted':\r\n let cnt = 0;\r\n this.controls.forEach(c => cnt += c.hasFilesToUpload ? 1 : 0);\r\n if (cnt === 0) {\r\n this.uploadSubscription.next({action: 'uploadSuccess'});\r\n }\r\n break;\r\n\r\n case 'uploadControlFailed':\r\n case 'uploadControlSuccess':\r\n let cnt2 = 0;\r\n this.controls.forEach(c => cnt2 += c.hasFilesToUpload ? 1 : 0);\r\n if (cnt2 === 0) {\r\n this.uploadSubscription.next({action: v.action === 'uploadControlFailed' ? 'uploadFailed' : 'uploadSuccess'});\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n\r\n public upload(): Promise<'uploadSuccess' | 'uploadFailed'> {\r\n const promises = [];\r\n this.controls.forEach(c => promises.push(c.beforeSave()));\r\n\r\n return new Promise<'uploadSuccess' | 'uploadFailed'>((res, rej) => {\r\n\r\n this.uploadSubscription.subscribe((v: any) => {\r\n if (v.action === 'uploadSuccess' || v.action === 'uploadFailed') {\r\n res(v.action);\r\n }\r\n });\r\n\r\n this.uploadSubscription.next({action: 'uploadStarted'});\r\n\r\n Promise.all(promises).then((r) => {\r\n\r\n const event: UploadInput = {\r\n type: 'uploadAll',\r\n url: this.fileServiceConfig.uploadUrl,\r\n method: 'POST',\r\n headers: this.fileServiceConfig.getAuthHeader()\r\n };\r\n\r\n this.uploadInput.emit(event);\r\n\r\n })\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\r\nimport { IUiFileService, UI_FILESERVICE, UiFileService } from '../services/ui-file.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'ui-file',\r\n templateUrl: './file.component.html',\r\n styleUrls: ['./file.component.scss']\r\n})\r\nexport class FileComponent implements OnInit, OnChanges {\r\n\r\n @Input() fileSize = 'default';\r\n @Input() srcOptions;\r\n @Input() srcData: any;\r\n @Input() srcUrl: { src: string, mimeType?: string };\r\n\r\n visible = false;\r\n src;\r\n srcUrlMimeType;\r\n\r\n @HostBinding('style.width')\r\n get width(): string {\r\n // return '100%';\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px' : undefined;\r\n }\r\n\r\n @HostBinding('style.height')\r\n get height(): string {\r\n // return '100%';\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px' : undefined;\r\n }\r\n\r\n get isVideo() {\r\n return this.mime.startsWith('video/');\r\n }\r\n\r\n get mime() {\r\n if (this.srcUrlMimeType) {\r\n return this.srcUrlMimeType\r\n } else {\r\n if (this.srcData.nativeFile) {\r\n return this.srcData.nativeFile.type;\r\n }\r\n return this.fileServiceConfig.getMimeType(this.srcData);\r\n }\r\n }\r\n\r\n get useRetinaSrc() {\r\n return this.fileServiceConfig.useRetinaSrc\r\n }\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) private fileServiceConfig: IUiFileService,\r\n private domSanitizer: DomSanitizer,\r\n private fileService: UiFileService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.srcData) {\r\n if (changes.srcData.currentValue.nativeFile) {\r\n this.src = this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(changes.srcData.currentValue.nativeFile));\r\n } else {\r\n this.src = this.fileServiceConfig.getMediaSrc(this.fileSize, changes.srcData.currentValue, this.srcOptions);\r\n }\r\n }\r\n if (changes.srcUrl) {\r\n this.src = changes.srcUrl.currentValue?.src;\r\n if (this.src) {\r\n this.srcUrlMimeType = changes.srcUrl.currentValue?.mimeType || 'image/png';\r\n } else {\r\n this.srcUrlMimeType = undefined;\r\n }\r\n }\r\n }\r\n}\r\n","<mat-spinner *ngIf=\"visible\"></mat-spinner>\r\n<img *ngIf=\"!isVideo && useRetinaSrc\" [src]=\"src\" [srcset]=\"src + ' 2x'\"/>\r\n<img *ngIf=\"!isVideo && !useRetinaSrc\" [src]=\"src\"/>\r\n<video *ngIf=\"isVideo\" muted controls [src]=\"src\"></video>\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Host,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SkipSelf\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { UploaderOptions, UploadFile, UploadInput, UploadOutput } from 'ngx-uploader';\r\nimport { IUiFileService, IUiFileServiceMessages, UI_FILESERVICE, UiFileService } from '../services/ui-file.service';\r\nimport { Dimensions, ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\nimport { skip } from 'rxjs';\r\n\r\nexport interface UploadOutputEx extends UploadOutput {\r\n file: UploadFileEx;\r\n}\r\n\r\nexport interface UploadFileEx extends UploadFile {\r\n imagePreview?: any;\r\n base64?: any;\r\n}\r\n\r\nexport interface IUiUploaderUserMessage {\r\n message: IUiFileServiceMessages,\r\n data: any\r\n}\r\n\r\n@Component({\r\n selector: 'ui-file-uploader',\r\n templateUrl: './ui-file-uploader.component.html',\r\n styleUrls: [ './ui-file-uploader.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: UiFileUploaderComponent,\r\n }]\r\n})\r\nexport class UiFileUploaderComponent extends UiSimpleComponent implements OnInit, OnDestroy {\r\n\r\n @Input() maxFiles = 1;\r\n @Input() multiple = true;\r\n @Input() crop = false;\r\n @Input() cropRounded = false;\r\n @Input() cropMaxWidth;\r\n @Input() fileSize = 'default';\r\n @Input() customFileMenu = false;\r\n @Input() addHint;\r\n @Input() newFilePosition: 'first' | 'last' = 'last';\r\n\r\n @Input() templates: { menuTemplate?: any, addFileTemplate?: any, fileTemplate?: any } = {}\r\n\r\n get menuTemplate() {\r\n return this.templates?.menuTemplate;\r\n }\r\n\r\n get addFileTemplate() {\r\n return this.templates?.addFileTemplate;\r\n }\r\n\r\n get fileTemplate() {\r\n return this.templates?.fileTemplate;\r\n }\r\n\r\n @Input() previewPosition: 'left' | 'bottom' | 'above' = 'bottom';\r\n\r\n @Output() imageCropped = new EventEmitter();\r\n @Output() fileEvent = new EventEmitter<IUiUploaderUserMessage>();\r\n\r\n uploadOptions: UploaderOptions = {\r\n concurrency: this.fileServiceConfig.concurrentUploads\r\n };\r\n\r\n public uploading = false;\r\n\r\n changeFileIndex;\r\n\r\n showCropper = false;\r\n menuVisible: any;\r\n showCropPreview = {};\r\n cropPreviewTimeouts = {};\r\n cropSourceImages = {};\r\n cropperImageLoaded = {};\r\n imagesDone = {};\r\n transform: ImageTransform = {};\r\n canvasRotation = {}\r\n\r\n public files : { custom?: any, $newFile?: UploadFile }[];\r\n\r\n public responseFiles;\r\n\r\n refreshAddInput = false;\r\n\r\n fileMenuOpened;\r\n\r\n patchingValues = false;\r\n\r\n inputArray = false;\r\n dragging = false;\r\n\r\n uploaderId = Math.round(Math.random() * 1000000);\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) private fileServiceConfig: IUiFileService,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService,\r\n @Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n private fileService: UiFileService) {\r\n\r\n super(null, controlContainer);\r\n\r\n this.fileService.uploadSubscription.next({action: 'register', data: this});\r\n\r\n this.fileService.uploadSubscription.subscribe((v: any) => {\r\n switch (v.action) {\r\n case 'uploadStarted': this.uploading = true; break;\r\n case 'uploadFailed':\r\n case 'uploadSuccess':\r\n setTimeout(() => {\r\n this.uploading = false;\r\n });\r\n this.patchValues();\r\n }\r\n });\r\n }\r\n\r\n get uploadInput(): EventEmitter<UploadInput> {\r\n return this.fileService.uploadInput;\r\n }\r\n\r\n croppedImages = {};\r\n\r\n get editable() {\r\n return this.componentFormControl.enabled;\r\n }\r\n\r\n get ngAddStyle() {\r\n return {\r\n width: this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px',\r\n height: this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px',\r\n }\r\n }\r\n\r\n get aspectRatio() {\r\n return this.fileServiceConfig.imageSizes[this.fileSize][0] / this.fileServiceConfig.imageSizes[this.fileSize][1];\r\n }\r\n\r\n get addFileImgSrc() {\r\n return this.fileServiceConfig.addFileImgSrc;\r\n }\r\n\r\n cropDone(f) {\r\n return !f.$newFile || this.imagesDone[f.$newFile.id];\r\n }\r\n\r\n // ngOnInit(): void {\r\n // super.ngOnInit();\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n this.fileService.uploadSubscription.next({action: 'destroy', data: this});\r\n }\r\n\r\n remove(f: any): void {\r\n if (f.$newFile) {\r\n this.uploadInput.emit({type: 'remove', id: f.$newFile.id});\r\n }\r\n this.files.splice(this.files.indexOf(f), 1);\r\n this.prepareResponse();\r\n // this.onChange(this.inputArray ? this.files : (this.files.length > 0 ? this.files[0] : null));\r\n this.fileEvent.emit({ message: 'fileRemoved', data: f });\r\n// this.patchValues();\r\n }\r\n\r\n patchValues(): void {\r\n this.patchingValues = true;\r\n // if (this.inputArray) {\r\n // this.componentFormControl.setValue(this.files.map(f => f.custom));\r\n // } else {\r\n // this.componentFormControl.setValue(this.files.length === 0 ? null : this.files[0].custom);\r\n // }\r\n this.patchingValues = false;\r\n }\r\n\r\n get hasFilesToUpload(): boolean {\r\n return !!this.files.find(f => f.$newFile && f.$newFile.progress.status !== 2);\r\n }\r\n\r\n canImagePreview(type: string) {\r\n return type.startsWith('image/') || type.startsWith('video/');\r\n }\r\n\r\n onUploadOutput($event: UploadOutput, skipCustomValidation = false): void {\r\n // console.log($event);\r\n switch ($event.type) {\r\n case 'start':\r\n break;\r\n\r\n case 'dragOver':\r\n this.dragging = true;\r\n break;\r\n case 'dragOut':\r\n case 'drop':\r\n this.dragging = false;\r\n break;\r\n\r\n case 'addedToQueue':\r\n if (this.crop && !$event.file.type.startsWith('image/')) {\r\n this.uploadInput.emit({ type: 'remove', id: $event.file.id });\r\n this.fileEvent.emit({ message: 'cropInvalidFileType', data: $event.file });\r\n return;\r\n }\r\n\r\n if (!skipCustomValidation && this.fileServiceConfig.fileValidation) {\r\n this.fileServiceConfig.fileValidation(this.fileSize, $event.file).then(valid => {\r\n if (valid) {\r\n this.onUploadOutput($event, true)\r\n } else {\r\n this.uploadInput.emit({ type: 'remove', id: $event.file.id });\r\n // this.fileEvent.emit({ message: 'cropInvalidFileType', data: $event.file });\r\n }\r\n })\r\n } else {\r\n let f;\r\n if (this.changeFileIndex !== undefined) {\r\n f = this.files[this.changeFileIndex];\r\n if (f.$newFile) {\r\n this.uploadInput.emit({ type: 'remove', id: f.$newFile.id });\r\n }\r\n f.$newFile = $event.file;\r\n f.custom = $event.file;\r\n this.changeFileIndex = undefined;\r\n } else {\r\n f = { custom: $event.file, $newFile: $event.file };\r\n if (this.newFilePosition === 'last') {\r\n this.files.push(f);\r\n } else {\r\n this.files.unshift(f);\r\n }\r\n }\r\n if (this.canImagePreview($event.file.type)) {\r\n if (this.crop) {\r\n this.canvasRotation[$event.file.id] = 0;\r\n this.cropSourceImages[$event.file.id] = $event.file.nativeFile;\r\n this.cropperImageLoaded[$event.file.id] = false;\r\n }\r\n }\r\n this.prepareResponse();\r\n this.fileEvent.emit({ message: 'fileAdded', data: f });\r\n }\r\n break;\r\n\r\n case 'done':\r\n const df = this.files.find(f => f.$newFile === $event.file);\r\n if (df) {\r\n if (df.$newFile.responseStatus === 200) {\r\n this.files[this.files.indexOf(df)].custom = df.$newFile.response;\r\n df.$newFile = null;\r\n } else {\r\n // console.log('error on upload', df.$event);\r\n }\r\n }\r\n if (!this.hasFilesToUpload) {\r\n this.prepareResponse(false);\r\n this.fileService.uploadSubscription.next({\r\n action: this.files.find(f => !!f.$newFile) ? 'uploadControlFailed' : 'uploadControlSuccess'\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n\r\n prepareResponse(doemit = true) {\r\n if (this.inputArray) {\r\n if (!this.responseFiles) {\r\n this.responseFiles = [];\r\n }\r\n this.responseFiles.length = 0;\r\n this.files.forEach(f => this.responseFiles.push({...f.custom, $newFile: f.$newFile}));\r\n } else {\r\n if (this.files.length === 0) {\r\n this.responseFiles = null;\r\n } else {\r\n if (!this.responseFiles) {\r\n this.responseFiles = {};\r\n }\r\n Object.keys(this.files[0].custom).forEach(k => {\r\n this.responseFiles[k] = this.files[0].custom[k];\r\n });\r\n this.responseFiles.$newFile = this.files[0].$newFile;\r\n }\r\n }\r\n if (doemit) {\r\n this.onChange(this.responseFiles);\r\n }\r\n\r\n // console.log('emit', this.files[1], { ...this.files[1].custom, $newFile: this.files[1].$newFile });\r\n // this.onChange(this.inputArray ?\r\n // this.files.map(f => ({ ...f.custom, $newFile: f.$newFile})) :\r\n // (this.files.length > 0 ? { ...this.files[0].custom, $newFile: this.files[0].$newFile } : null));\r\n // this.onChange(this.inputArray ?\r\n // this.files :\r\n // (this.files.length > 0 ? this.files[0] : null));\r\n }\r\n\r\n beforeSave() {\r\n return new Promise((res, rej) => {\r\n this.files.forEach(f => {\r\n if (f.$newFile && f.$newFile.progress.status === 2) {\r\n f.$newFile.progress.status = 0;\r\n }\r\n if (this.crop && f.$newFile && !this.imagesDone[f.$newFile.id]) {\r\n this.cropperDone(f.$newFile.id);\r\n }\r\n })\r\n setTimeout(() => {\r\n res('done');\r\n }, 250);\r\n })\r\n }\r\n\r\n fileChangeEvent(event: any, f: any): void {\r\n this.changeFileIndex = this.files.indexOf(f);\r\n }\r\n\r\n startCropPreview(id) {\r\n clearTimeout(this.cropPreviewTimeouts[id]);\r\n this.showCropPreview[id] = !!this.cropSourceImages[id];\r\n }\r\n\r\n stopCropPreview(id) {\r\n this.cropPreviewTimeouts[id] = setTimeout(() => {\r\n this.showCropPreview[id] = false;\r\n }, 250);\r\n }\r\n\r\n zoomCroppedImage(dir, id) {\r\n let scale = this.transform[id].scale;\r\n scale += dir;\r\n if (scale < 0.1) {\r\n scale = 0.1;\r\n }\r\n this.transform[id] = {\r\n ...this.transform[id],\r\n scale\r\n };\r\n }\r\n\r\n rotateCroppedImage(dir, id) {\r\n this.canvasRotation[id] += dir;\r\n const flippedH = this.transform[id].flipH;\r\n const flippedV = this.transform[id].flipV;\r\n this.transform[id] = {\r\n ...this.transform[id],\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n }\r\n\r\n onImageCropped(event: ImageCroppedEvent, id) {\r\n this.croppedImages[id] = event.base64;\r\n this.imageCropped.emit(event.base64);\r\n }\r\n\r\n imageLoaded(id) {\r\n this.showCropper = true;\r\n setTimeout(() => {\r\n this.transform[id] = {\r\n scale: 1\r\n };\r\n });\r\n }\r\n\r\n cropperReady(sourceImageDimensions: Dimensions, id) {\r\n this.cropperImageLoaded[id] = true;\r\n }\r\n\r\n loadImageFailed() {\r\n }\r\n\r\n toggleMenuVisibility(f) {\r\n this.fileMenuOpened = f;\r\n }\r\n\r\n menuClick() {\r\n this.fileMenuOpened = undefined;\r\n }\r\n\r\n\r\n writeValue(obj: any): void {\r\n this.inputArray = obj instanceof Array;\r\n if (this.inputArray) {\r\n this.files = obj.map(f => ({ custom: f, $newFile: null }));\r\n } else {\r\n this.files = obj ? [ { custom:obj, $newFile: null} ] : [];\r\n }\r\n this.cropSourceImages = {};\r\n }\r\n\r\n cropperDone(id) {\r\n const f = this.files.find(fx => fx.$newFile && fx.$newFile.id === id);\r\n if (f) {\r\n const url = this.croppedImages[id];\r\n fetch(url)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n f.$newFile.nativeFile = new File([ blob ], 'crop.png', {\r\n type: 'image/png'\r\n });\r\n f.$newFile.name = 'crop.png';\r\n f.$newFile.size = f.$newFile.nativeFile.size;\r\n f.$newFile.type = f.$newFile.nativeFile.type;\r\n this.imagesDone[id] = true;\r\n })\r\n }\r\n }\r\n}\r\n","<div class=\"label\" *ngIf=\"label\">\r\n <div class=\"text-container\" [matTooltip]=\"required ? translateService.instant('ui.controls.validation.required') : undefined\" [matTooltipPosition]=\"'above'\">\r\n <div class=\"text\">{{label}}</div>\r\n <div *ngIf=\"required\" class=\"required\">*</div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"files-container\" [ngClass]=\"{dragging: dragging, disabled: uploading || !editable}\">\r\n\r\n <div class=\"existing-files\">\r\n\r\n <div class=\"file-container\" *ngFor=\"let f of files\">\r\n\r\n <div class=\"file-menu\" (click)=\"toggleMenuVisibility(f)\" *ngIf=\"!customFileMenu && editable && !uploading\">\r\n <mat-icon>menu</mat-icon>\r\n </div>\r\n <div class=\"file-menu-container mat-elevation-z2\" [ngClass]=\"{visible: f === fileMenuOpened}\" (click)=\"menuClick()\" (mouseleave)=\"menuClick()\">\r\n <ng-container *ngIf=\"!menuTemplate\">\r\n <label class=\"menu-item\">{{ translateService.instant('ui.controls.ui-file-uploader.menu.change') }}\r\n <input *ngIf=\"!refreshAddInput\" style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </label>\r\n <div class=\"menu-item\" (click)=\"remove(f)\">{{ translateService.instant('ui.controls.ui-file-uploader.menu.delete') }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{fileInput: fileInput}\"></ng-template>\r\n <ng-template #fileInput>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"crop && !cropDone(f)\" (mouseenter)=\"startCropPreview(f.$newFile.id)\" (mouseleave)=\"stopCropPreview(f.$newFile.id)\">\r\n <div class=\"crop-container\" [ngStyle]=\"ngAddStyle\">\r\n\r\n <ui-file *ngIf=\"false && files.length > 0 && !cropSourceImages\" [fileSize]=\"fileSize\" [srcData]=\"files[0].custom\" [ngClass]=\"{rounded: cropRounded}\"></ui-file>\r\n\r\n <mat-spinner *ngIf=\"!cropperImageLoaded[f.$newFile.id] && cropSourceImages[f.$newFile.id]\" [diameter]=\"75\"></mat-spinner>\r\n\r\n <image-cropper *ngIf=\"cropSourceImages[f.$newFile.id]\"\r\n [imageFile]=\"cropSourceImages[f.$newFile.id]\"\r\n [maintainAspectRatio]=\"true\"\r\n [containWithinAspectRatio]=\"false\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [resizeToWidth]=\"cropMaxWidth\"\r\n [onlyScaleDown]=\"false\"\r\n [roundCropper]=\"cropRounded\"\r\n [canvasRotation]=\"canvasRotation[f.$newFile.id]\"\r\n [transform]=\"transform[f.$newFile.id]\"\r\n [alignImage]=\"'center'\"\r\n [style.display]=\"showCropper ? null : 'none'\"\r\n [format]=\"'png'\"\r\n (imageCropped)=\"onImageCropped($event, f.$newFile.id)\"\r\n (imageLoaded)=\"imageLoaded(f.$newFile.id)\"\r\n (cropperReady)=\"cropperReady($event, f.$newFile.id)\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n ></image-cropper>\r\n\r\n <div class=\"crop-preview mat-elevation-z2\" [class]=\"previewPosition\" *ngIf=\"true || (showCropPreview[f.$newFile.id] && cropperImageLoaded[f.$newFile.id])\">\r\n <div class=\"crop-menu\">\r\n <mat-icon (click)=\"zoomCroppedImage(.1, f.$newFile.id)\">zoom_in</mat-icon>\r\n <mat-icon (click)=\"zoomCroppedImage(- .1, f.$newFile.id)\">zoom_out</mat-icon>\r\n <mat-icon (click)=\"rotateCroppedImage(-1, f.$newFile.id)\">rotate_left</mat-icon>\r\n <mat-icon (click)=\"rotateCroppedImage(1, f.$newFile.id)\">rotate_right</mat-icon>\r\n <div style=\"flex: 1 1 100%\"></div>\r\n <label class=\"menu-item\">\r\n <mat-icon>upload_file</mat-icon>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </label>\r\n <mat-icon (click)=\"remove(f)\">delete_outline</mat-icon>\r\n <div style=\"flex: 1 1 100%\"></div>\r\n <mat-icon (click)=\"cropperDone(f.$newFile.id)\">done</mat-icon>\r\n </div>\r\n <img [src]=\"croppedImages[f.$newFile.id]\" [ngClass]=\"{rounded: cropRounded}\"/>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <ng-container *ngIf=\"!crop || cropDone(f)\">\r\n <ng-container *ngIf=\"fileTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"fileTemplate\" [ngTemplateOutletContext]=\"{file: f, fileInput: fileInput2}\"></ng-template>\r\n <ng-template #fileInput2>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ui-file *ngIf=\"!fileTemplate\" [fileSize]=\"fileSize\" [srcData]=\"f.$newFile ? f.$newFile: f.custom\" [ngClass]=\"{rounded: crop && cropRounded}\">\r\n </ui-file>\r\n\r\n <ng-container *ngIf=\"f.$newFile\">\r\n <div *ngIf=\"f.$newFile.responseStatus && f.$newFile.responseStatus !== 200\" class=\"progress-container error\">\r\n {{ translateService.instant('ui.controls.ui-file-uploader.uploadError', f.$newFile.response) }}\r\n </div>\r\n <div *ngIf=\"!f.$newFile.responseStatus && f.$newFile.progress.status === 1\" class=\"progress-container\">\r\n <div class=\"progress\" [ngStyle]=\"{width: f.$newFile.progress.data.percentage + '%'}\"></div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"file-container add\" ngFileDrop [options]=\"uploadOptions\" (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\" [ngClass]=\"{visible: files.length < maxFiles || maxFiles === 0}\" [ngStyle]=\"addFileTemplate ? {} : ngAddStyle\">\r\n <label>\r\n <ng-container *ngIf=\"addFileTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"addFileTemplate\"></ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!addFileTemplate\">\r\n <div class=\"upload-image-container\"></div>\r\n <img [src]=\"addFileImgSrc\" [ngClass]=\"{'with-hint': addHint}\" />\r\n <div *ngIf=\"addHint\" class=\"add-hint\">{{addHint}}</div>\r\n </ng-container>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\" [multiple]=\"maxFiles === 0 && multiple\">\r\n </label>\r\n </div>\r\n\r\n</div>\r\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-expander',\r\n templateUrl: './expander.component.html',\r\n styleUrls: ['./expander.component.scss']\r\n})\r\nexport class ExpanderComponent implements OnInit {\r\n\r\n @HostBinding('class.expanded')\r\n @Input() expanded = false;\r\n\r\n @HostBinding('class')\r\n @Input() direction: 'right-down' | 'up-down' = 'right-down';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<mat-icon>keyboard_arrow_up</mat-icon>\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiForceVisibility]',\r\n exportAs: 'ForceVisibilityDirective'\r\n})\r\nexport class ForceVisibilityDirective implements OnInit {\r\n\r\n private static disabled = false;\r\n\r\n @Input() visibilityWithin: HTMLElement;\r\n @Input() visibilityPadding = 15;\r\n @Input() visibilityOnRequestOnly = false;\r\n @Input() visibilityEmitChange = false;\r\n @Input() visibilityFromTop = 0;\r\n\r\n @Output() visibilityChanged = new EventEmitter<boolean>();\r\n\r\n private visible;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n\r\n public static disableFor(timeoutMs: number): void {\r\n this.disabled = true;\r\n setTimeout(() => this.disabled = false, timeoutMs);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.visibilityOnRequestOnly && !this.visibilityEmitChange) {\r\n setTimeout(() => {\r\n this.forceVisibility();\r\n }, 125);\r\n }\r\n if (this.visibilityEmitChange) {\r\n if (!this.visibilityWithin) {\r\n throw Error('traceVisibilityChanged requires visibilityWithin')\r\n } else {\r\n this.visible = this.isVisible();\r\n this.visibilityWithin.onscroll = () => {\r\n const v = this.isVisible();\r\n if (v !== this.visible) {\r\n this.visible = v;\r\n this.visibilityChanged.emit(v);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isVisible() {\r\n const rect = (this.el.nativeElement as HTMLElement).getBoundingClientRect();\r\n const rectIn = this.visibilityWithin.getBoundingClientRect();\r\n return rect.top + +this.visibilityPadding - rectIn.bottom < 0;\r\n }\r\n\r\n public forceVisibility(): void {\r\n if (ForceVisibilityDirective.disabled) {\r\n return;\r\n }\r\n const rect = (this.el.nativeElement as HTMLElement).getBoundingClientRect();\r\n const padding = +this.visibilityPadding;\r\n if (this.visibilityWithin) {\r\n const rectIn = this.visibilityWithin.getBoundingClientRect();\r\n let diff = rect.top + rect.height + padding - rectIn.bottom;\r\n if (diff > 0) {\r\n this.visibilityWithin.scrollBy(0, diff);\r\n } else {\r\n diff = rect.top - rectIn.top - padding;\r\n if (diff < 0) {\r\n this.visibilityWithin.scrollBy(0, diff);\r\n }\r\n }\r\n } else {\r\n if (this.visibilityFromTop !== 0) {\r\n document.getElementsByTagName('app-root')[0].scrollTo(0, rect.top - +this.visibilityFromTop);\r\n } else {\r\n if (rect.bottom > window.innerHeight) {\r\n document.getElementsByTagName('app-root')[0].scrollBy(0, rect.bottom - window.innerHeight + 15);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { ControlColor, ControlSize } from '../ui.model';\r\n\r\n@Component({\r\n selector: 'ui-action-icon',\r\n templateUrl: './action-icon.component.html',\r\n styleUrls: ['./action-icon.component.scss']\r\n})\r\nexport class ActionIconComponent implements OnInit {\r\n\r\n @Input() size: ControlSize = 'normal';\r\n\r\n @Input() color: ControlColor = 'primary';\r\n\r\n @Input() disabled = false;\r\n\r\n @Input() busy = false;\r\n\r\n @Input() matIcon = 'close';\r\n\r\n @HostBinding('class')\r\n get class() {\r\n return `${this.size} ${this.color}${this.disabled ? ' disabled': ''}${this.busy ? ' busy' : ''}`;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<mat-icon>{{matIcon}}</mat-icon>\r\n","import {MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent {\r\n\r\n @Input() title = '';\r\n @Input() draggable = false; // true;\r\n @Input() hideCloseButton = false;\r\n\r\n @Input() close: (() => void) | undefined;\r\n\r\n constructor(public dialogRef: MatDialogRef<DialogComponent>) {\r\n }\r\n\r\n clickClose(): void {\r\n if (!this.close) {\r\n this.dialogRef.close();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n}\r\n","<ui-action-icon *ngIf=\"title && !hideCloseButton\" (click)=\"clickClose()\" class=\"close-icon\" [matIcon]=\"'close'\" [color]=\"'warn'\"></ui-action-icon>\r\n\r\n<ng-container *ngIf=\"title\">\r\n <h1 class=\"draggable\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle mat-dialog-title *ngIf=\"draggable\">\r\n {{title}}\r\n </h1>\r\n <h1 mat-dialog-title *ngIf=\"!draggable\">\r\n {{title}}\r\n </h1>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n","import {Component, Inject, Injectable} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE, UiTranslateService } from './ui-translate.service';\r\n\r\nexport interface MessageBoxButton {\r\n id: string;\r\n text: string;\r\n kind?: 'basic' | 'flat' | 'stroked';\r\n color?: 'primary' | 'accent' | 'warn';\r\n}\r\n\r\n@Component({\r\n selector: 'ui-message-box-modal',\r\n template: `\r\n <ui-dialog [title]=\"title\" [hideCloseButton]=\"hideCloseButton\">\r\n <div mat-dialog-content style=\"padding: 12px;\">\r\n <div [innerHTML]=\"message\" style=\"line-height: 24px;\"></div>\r\n <pre *ngIf=\"errorMessage\" [innerHTML]=\"errorMessage\"></pre>\r\n <pre *ngIf=\"errorDetail\" [innerHTML]=\"errorDetail\"></pre>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <div class=\"buttons\">\r\n <ui-button *ngFor=\"let b of buttons\" style=\"margin-left: 18px;\" [color]=\"b.color || 'primary'\" [tabIndex]=\"-1\"\r\n [kind]=\"b.kind || 'stroked'\" (click)=\"close(b.id)\" [label]=\"b.text\"></ui-button>\r\n </div>\r\n </div>\r\n </ui-dialog>\r\n `\r\n})\r\nexport class MessageBoxModalComponent {\r\n\r\n message;\r\n errorMessage;\r\n errorDetail;\r\n buttons: MessageBoxButton[] = [];\r\n title: string;\r\n hideCloseButton = false;\r\n\r\n constructor(public dialogRef: MatDialogRef<MessageBoxModalComponent>,\r\n public sanitizer: DomSanitizer,\r\n @Inject(MAT_DIALOG_DATA) private data: any) {\r\n\r\n this.message = this.sanitizer.bypassSecurityTrustHtml(data.message);\r\n\r\n if (this.data.options.errorMessage) {\r\n this.errorMessage = this.sanitizer.bypassSecurityTrustHtml(data.options.errorMessage);\r\n }\r\n if (this.data.options.errorDetail) {\r\n this.errorDetail = this.sanitizer.bypassSecurityTrustHtml(data.options.errorDetail);\r\n }\r\n if (this.data.options.hideCloseButton !== undefined) {\r\n this.hideCloseButton = this.data.options.hideCloseButton;\r\n }\r\n\r\n this.buttons = data.options.buttons ? data.options.buttons : [{id: 'close', text: 'Close'}];\r\n this.title = data.options.title;\r\n }\r\n\r\n close(result: any): void {\r\n this.dialogRef.close(result);\r\n }\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageBoxService {\r\n\r\n constructor(private dialog: MatDialog,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService,) {\r\n }\r\n\r\n confirm(message: string, options: {\r\n buttons?: MessageBoxButton[],\r\n title?: string,\r\n errorMessage?: string,\r\n errorDetail?: string,\r\n hideCloseButton?: boolean,\r\n maxWidth?: string\r\n } = {}): Observable<any> {\r\n const config = new MatDialogConfig();\r\n config.disableClose = true;\r\n config.minWidth = '340px';\r\n config.maxWidth = options.maxWidth || '600px';\r\n config.width = '40vw';\r\n config.data = {message, options};\r\n\r\n return this.dialog.open(MessageBoxModalComponent, config).afterClosed();\r\n }\r\n\r\n confirmDelete(title: string, message: string): Observable<any> {\r\n const options = {\r\n title,\r\n buttons: [\r\n { id: 'cancel', text: this.translateService.instant('ui.messagebox.button.cancel') },\r\n { id: 'delete', text: this.translateService.instant('ui.messagebox.button.delete'), color: 'warn', kind: 'flat' }\r\n ]\r\n };\r\n // @ts-ignore\r\n return this.confirm(message, options);\r\n }\r\n\r\n\r\n}\r\n","import { Component, Host, HostBinding, Input, OnInit, Optional, SkipSelf } from '@angular/core';\r\nimport { UiBaseComponent } from '../base/ui-base.component';\r\nimport {\r\n AbstractControl, ControlContainer,\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n UntypedFormGroup, FormGroupDirective,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ui-currency',\r\n templateUrl: './currency.component.html',\r\n styleUrls: [ './currency.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: CurrencyComponent\r\n }, {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: CurrencyComponent\r\n }\r\n ]\r\n})\r\nexport class CurrencyComponent extends UiBaseComponent implements OnInit, ControlValueAccessor, Validator {\r\n\r\n @Input() currencies: Partial<{ code: string; }>[] = [];\r\n @Input() currencyDisabled = false;\r\n @Input() formControlName: string;\r\n\r\n @HostBinding('class.amount-hidden')\r\n @Input() amountHidden = false;\r\n\r\n formGroup = new UntypedFormGroup({\r\n amount: new UntypedFormControl(),\r\n currency: new UntypedFormControl()\r\n });\r\n\r\n parentFormControl: AbstractControl;\r\n\r\n @HostBinding('class.focus')\r\n hasFocus = false;\r\n\r\n // @HostBinding('class')\r\n // get sizeClass(): string {\r\n // return this.size;\r\n // }\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer) {\r\n super();\r\n }\r\n\r\n onChange = (value) => {};\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.formGroup.valueChanges.subscribe(v => this.onChange(v));\r\n // this.formGroup = new FormGroup({\r\n // amount: new FormControl(this.control?.value.amount),\r\n // currency: new FormControl(this.currencies.find(c => c.code === this.control?.value.currency.code))\r\n // });\r\n // this.formGroup.valueChanges.subscribe(v => {\r\n // this.onChange(this.formGroup?.getRawValue());\r\n // });\r\n if (this.currencyDisabled) {\r\n this.formGroup.get('currency')?.disable();\r\n }\r\n // this.ngControl.control.statusChanges.subscribe(s => {\r\n // if (s === 'INVALID') {\r\n // // this.formGroup?.get('amount')?.setErrors(this.control?.errors || null);\r\n // this.formGroup?.get('currency')?.markAsTouched();\r\n // // this.formGroup?.get('currency')?.setErrors(this.control?.errors || null);\r\n // }\r\n // if (s === 'DISABLED') {\r\n // this.formGroup?.disable({emitEvent: false});\r\n // }\r\n // if (s === 'VALID') {\r\n // this.formGroup?.enable({emitEvent: false});\r\n // if (this.currencyDisabled) {\r\n // this.formGroup?.get('currency')?.disable({emitEvent: false});\r\n // }\r\n // }\r\n // });\r\n this.parentFormControl = (this.controlContainer as FormGroupDirective).control.get(this.formControlName);\r\n }\r\n\r\n // bindValidators(validators) {\r\n // console.log('binding validators', validators);\r\n // if (this.formGroup) {\r\n // this.formGroup.get('amount').setValidators(validators);\r\n // this.formGroup.get('currency').markAsTouched();\r\n // this.formGroup.get('currency').setErrors(validators);\r\n // }\r\n // }\r\n\r\n get isInvalid(): boolean {\r\n return this.parentFormControl.invalid;\r\n }\r\n\r\n get validationErrors(): ValidationErrors {\r\n return this.parentFormControl.errors;\r\n }\r\n\r\n focusChanged(hasFocus: boolean): void {\r\n this.hasFocus = hasFocus;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formGroup.get('amount').disable();\r\n if (!this.currencyDisabled) {\r\n this.formGroup.get('currency').disable();\r\n }\r\n } else {\r\n this.formGroup.get('amount').enable();\r\n if (!this.currencyDisabled) {\r\n this.formGroup.get('currency').enable();\r\n }\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return undefined;\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.formGroup.setValue(obj);\r\n }\r\n}\r\n","<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n","import { Component, Host, HostBinding, Input, OnInit, Optional, Self } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n // providers: [{\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => CheckboxComponent),\r\n // }]\r\n})\r\nexport class CheckboxComponent extends UiSimpleComponent implements OnInit {\r\n\r\n @Input() color: 'primary' | 'accent' | 'warn' = 'primary';\r\n @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'never';\r\n\r\n text;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl) {\r\n super(ngControl);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n if (this.label) {\r\n this.text = this.label;\r\n this.label = undefined;\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n <div class=\"control-container\">\r\n <mat-checkbox [formControl]=\"componentFormControl\" [color]=\"color\" [class]=\"size\">\r\n <div *ngIf=\"!text\"><ng-content></ng-content></div>\r\n <div *ngIf=\"text\" [innerHTML]=\"text\"></div>\r\n <div *ngIf=\"hint\" class=\"hint\" [innerHTML]=\"hint\"></div>\r\n </mat-checkbox>\r\n </div>\r\n</ui-simple-layout>\r\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() user: Partial<{ avatar: any, shortName: string, shortColour: string }> = {};\n\n @Input() srcOptions;\n\n @HostBinding('class')\n @Input() size: 'big' | 'bigger' | 'normal' | 'smaller' | 'small' | 'mini' = 'normal';\n\n get contrast(): string {\n const hexCode = this.user.shortColour.substring(1, 7);\n\n const hexR = parseInt(hexCode.substring(0, 2), 16);\n const hexG = parseInt(hexCode.substring(2, 4), 16);\n const hexB = parseInt(hexCode.substring(4, 6), 16);\n const contrastRatio = hexR * 0.299 + hexG * 0.587 + hexB * 0.114;\n\n return contrastRatio >= 200 ? 'black' : 'white';\n }\n\n constructor() { }\n\n}\n","<ui-file *ngIf=\"user.avatar || (!user.avatar && !user.shortName)\" [fileSize]=\"'avatar-' + size\" [srcData]=\"user.avatar || { mimeType: 'image/png'}\" [srcOptions]=\"srcOptions\" ></ui-file>\r\n<div *ngIf=\"!user.avatar && user.shortName\" [ngStyle]=\"{backgroundColor: user.shortColour, color: contrast}\">\r\n {{ user.shortName }}\r\n</div>\r\n","import {Component, Host, HostBinding, Input, OnInit, Optional, SkipSelf} from '@angular/core';\r\nimport {ControlContainer, UntypedFormGroup} from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'ui-submit-button',\r\n templateUrl: './submit-button.component.html',\r\n styleUrls: [ './submit-button.component.scss' ]\r\n})\r\nexport class SubmitButtonComponent implements OnInit {\r\n\r\n @Input() busy = false;\r\n @Input() disabled = false;\r\n @Input() formGroups: UntypedFormGroup | UntypedFormGroup[] = [];\r\n @Input() label = 'Save';\r\n @Input() submit: (() => void) | undefined;\r\n @Input() formInvalid: boolean | undefined;\r\n\r\n @HostBinding('class.with-close')\r\n @Input() prependCloseButton = true;\r\n\r\n constructor(public dialogRef: MatDialogRef<any>,\r\n @Optional() @Host() @SkipSelf()\r\n protected controlContainer: ControlContainer) { }\r\n\r\n ngOnInit(): void {\r\n if (this.formInvalid === undefined) {\r\n if (this.formGroups === undefined && this.controlContainer && this.controlContainer.control instanceof UntypedFormGroup) {\r\n this.formGroups = this.controlContainer.control;\r\n }\r\n if (!Array.isArray(this.formGroups)) {\r\n this.formGroups = [this.formGroups];\r\n }\r\n }\r\n }\r\n\r\n get formsValid(): boolean {\r\n if (this.formInvalid !== undefined) {\r\n return !this.formInvalid;\r\n } else {\r\n return !(this.formGroups as UntypedFormGroup[]).find(f => f.invalid);\r\n }\r\n }\r\n\r\n doSubmit(): void {\r\n (this.formGroups as UntypedFormGroup[]).forEach(f => f.markAllAsTouched());\r\n if (this.formsValid && this.submit) {\r\n this.submit();\r\n }\r\n }\r\n}\r\n","<ui-button *ngIf=\"prependCloseButton\" [label]=\"'Close'\" (click)=\"dialogRef.close()\"></ui-button>\r\n\r\n<ui-button [busy]=\"busy\"\r\n [disabled]=\"disabled || busy\" [type]=\"'submit'\"\r\n [formInvalid]=\"!formsValid\"\r\n [label]=\"label\" (click)=\"doSubmit()\"></ui-button>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { take } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ui-text-area',\r\n templateUrl: './text-area.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss'],\r\n // providers: [{\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => TextAreaComponent),\r\n // }]\r\n})\r\nexport class TextAreaComponent extends UiSimpleComponent {\r\n\r\n @Input() rows = 5;\r\n\r\n @Input() autoResize = false;\r\n\r\n lastClientHeight = -1;\r\n // height = -1;\r\n\r\n\r\n @ViewChild('textarea') textarea: ElementRef;\r\n\r\n @Output() focusChanged = new EventEmitter<boolean>();\r\n\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl/*, private _ngZone: NgZone, private cdr: ChangeDetectorRef*/) {\r\n super(ngControl);\r\n }\r\n\r\n focus(): void {\r\n this.textarea.nativeElement.focus();\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n\r\n onFocus(focus: boolean): void {\r\n this.focusChanged.emit(focus);\r\n }\r\n\r\n\r\n // onKeydown() {\r\n // // setTimeout(() => {\r\n // console.log('onkeydown');\r\n // // if (this.lastClientHeight !== this.textarea.nativeElement.clientHeight + 20) {\r\n // this.height = this.textarea.nativeElement.clientHeight + 20;\r\n // // this.textarea.nativeElement.setAttribute('style', 'color: white; background: red; height: ' + this.height + 'px;');\r\n // // this.cdr.detectChanges();\r\n // this.lastClientHeight = this.height;\r\n // console.log(this.height);\r\n // // }\r\n // // });\r\n // }\r\n\r\n // @ViewChild('autosize') autosize: CdkTextareaAutosize;\r\n //\r\n // triggerResize() {\r\n // // Wait for changes to be applied, then trigger textarea resize.\r\n // this._ngZone.onStable.pipe(take(1)).subscribe(() => {\r\n // console.log('xxx');\r\n // this.autosize.resizeToFitContent(true)\r\n // });\r\n // }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"input-wrapper\">\r\n <ng-container *ngIf=\"componentFormControl\">\r\n <textarea *ngIf=\"autoResize \"#textarea matInput\r\n cdkTextareaAutosize cdkAutosizeMinRows=\"rows\"\r\n class=\"autoresize\"\r\n [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" [rows]=\"rows\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\"></textarea>\r\n <textarea *ngIf=\"!autoResize \"#textarea matInput\r\n [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" [rows]=\"rows\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\"></textarea>\r\n </ng-container>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { Component, EventEmitter, Inject, Optional, Output, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss']\r\n // providers: [\r\n // {\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => DateComponent),\r\n // }\r\n // ]\r\n})\r\n\r\nexport class DateComponent extends UiSimpleComponent { // implements ControlValueAccessor {\r\n // @Input() placeholder: string | undefined;\r\n // @Input() control;\r\n // // @Input() controlName;\r\n // @Input() label;\r\n // @Input() type;\r\n // @Input() floatLabel;\r\n\r\n @Output() doKeyup = new EventEmitter();\r\n\r\n @ViewChild('picker') picker?: TemplateRef<any>;\r\n @ViewChild('input') input?: TemplateRef<any>;\r\n\r\n onChange: any;\r\n\r\n controlTypeName = 'date';\r\n\r\n opening = false;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl) {\r\n super(ngControl);\r\n }\r\n\r\n open(): void {\r\n // this.opening = true;\r\n // this.picker.open();\r\n // setTimeout(() => {\r\n // this.input.nativeElement.focus();\r\n // this.opening = false;\r\n // }); // , 150);\r\n }\r\n\r\n close(): void {\r\n // if (!this.opening) {\r\n // this.picker.close();h\r\n // }\r\n }\r\n\r\n keyup(): void {\r\n this.doKeyup.emit();\r\n // this.onChange(this.control.value);\r\n }\r\n\r\n writeValue(obj: any): void { }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void { }\r\n\r\n setDisabledState(isDisabled: boolean): void { }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\">\r\n <input #input class=\"has-suffix\" (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {MatSort, SortDirection} from '@angular/material/sort';\n// import {PersistService} from '../../services/persist.service';\nimport {DomSanitizer} from '@angular/platform-browser';\n\nexport interface TableColumn {\n name: string;\n sortable?: boolean | ((row: any, direction?: SortDirection) => number | string);\n label?: string;\n colSpan?: (row: any) => number;\n formatter?: (row: any) => string;\n cellClass?: (row: any) => string;\n}\n\nexport interface TableOptions {\n sticky?: boolean;\n}\n@Component({\n selector: 'ui-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent implements OnInit, AfterViewInit {\n\n @Input() columns: TableColumn[] = [];\n @Input() dataSource: any;\n @Input() options: TableOptions | undefined;\n @Input() rowTemplates: any = {};\n @Input() headerTemplates: any = {};\n @Input() stateStoreKey = '';\n @Input() rowAction: (row: any) => void;\n\n @Input() matSortActive;\n @Input() matSortDirection;\n\n @ViewChild(MatSort) matSort: MatSort | undefined;\n\n get columnList(): string[] {\n return this.columns.map(c => c.name);\n }\n\n constructor(/*private persistService: PersistService, */private domSanitizer: DomSanitizer) { }\n\n ngOnInit(): void {\n this.options = {...{sticky: false}, ...this.options};\n if (this.dataSource) {\n // if (this.stateStoreKey !== '') {\n // const storeKey = this.stateStoreKey + '.sort';\n // const ms = this.persistService.get(storeKey, { active: '', direction: ''});\n // this.matSort.active = ms.active;\n // this.matSort.direction = ms.direction;\n // this.matSort.sortChange.subscribe(sc => {\n // this.persistService.set(storeKey, sc.direction === '' ? { active: '', direction: ''} : sc);\n // });\n // }\n if (this.columns.find(c => c.sortable !== undefined)) {\n this.dataSource.sortData = (rows: any[], sort: MatSort) => {\n if (sort.direction) {\n const sortColumn = this.columns.find(c => c.name === sort.active);\n if (sortColumn) {\n const res = sort.direction === 'asc' ? 1 : -1;\n return rows.sort((r1: any, r2: any) => {\n if (sortColumn.sortable === true) {\n return r1[sortColumn.name] < r2[sortColumn.name] ? -res : res;\n }\n if (typeof sortColumn.sortable === 'function') {\n return sortColumn.sortable(r1, sort.direction) < sortColumn.sortable(r2, sort.direction) ? -res : res;\n }\n return 0;\n });\n }\n }\n return rows;\n };\n }\n }\n }\n\n ngAfterViewInit() {\n this.dataSource.sort = this.matSort;\n }\n\n display(row: any, col: TableColumn): any {\n if (col.formatter) {\n return this.domSanitizer.bypassSecurityTrustHtml(col.formatter(row));\n } else {\n return row[col.name];\n }\n }\n\n rowClicked(row) {\n if (this.rowAction) {\n this.rowAction( row);\n }\n }\n}\n","<table mat-table matSort [dataSource]=\"dataSource\" style=\"width: 100%\" [matSortActive]=\"matSortActive\" [matSortDirection]=\"matSortDirection\">\n\n <ng-container *ngFor=\"let c of columns\" [matColumnDef]=\"c.name\">\n\n <ng-container *ngIf=\"c.sortable\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label}}</th>\n </ng-container>\n\n <ng-container *ngIf=\"!c.sortable\">\n <ng-container *ngIf=\"!headerTemplates[c.name]\">\n <th mat-header-cell *matHeaderCellDef>{{c.label}}</th>\n </ng-container>\n\n <ng-container *ngIf=\"headerTemplates[c.name]\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-template [ngTemplateOutlet]=\"headerTemplates[c.name]\"></ng-template>\n </th>\n </ng-container>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\" [colSpan]=\"c.colSpan ? c.colSpan(element) : 1\" [class]=\"c.cellClass ? c.cellClass(element) : ''\">\n <ng-container *ngIf=\"!c.colSpan || c.colSpan(element) > 0\">\n <ng-container *ngIf=\"rowTemplates[c.name]\">\n <ng-template [ngTemplateOutlet]=\"rowTemplates[c.name]\" [ngTemplateOutletContext]=\"{row:element}\" ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!rowTemplates[c.name]\">\n <span [innerHTML]=\"display(element, c)\"></span>\n </ng-container>\n </ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnList; sticky: options?.sticky\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnList;\" (click)=\"rowClicked(row)\"></tr>\n</table>\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-burger',\r\n templateUrl: './burger.component.html',\r\n styleUrls: ['./burger.component.scss']\r\n})\r\nexport class BurgerComponent implements OnInit {\r\n\r\n @HostBinding('class.open')\r\n @Input() open = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n"," <span></span>\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, Optional, SkipSelf, ViewChild } from '@angular/core';\r\nimport { ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, UntypedFormControl } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { UiBaseComponent } from '../base/ui-base.component';\r\nimport { InputComponent } from '../input/input.component';\r\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: 'ui-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: AutocompleteComponent\r\n }]\r\n})\r\nexport class AutocompleteComponent extends UiBaseComponent implements OnInit, ControlValueAccessor {\r\n\r\n private SHOWN_USERS_DELTA = 10;\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n // @Optional() @Self() public ngControl: NgControl,\r\n private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n @Input() options?: any[];\r\n @Input() multiple = true;\r\n @Input() allowNew = false;\r\n @Input() displayAttribute = 'name';\r\n @Input() idAttribute = 'id';\r\n\r\n // value?: any;\r\n searchableOptions?: any[];\r\n filteredOptions: any[] = [];\r\n filteredMaxItemsShown = this.SHOWN_USERS_DELTA;\r\n\r\n // skipBlur = false;\r\n // typingStarted = false;\r\n messageShown = false;\r\n initialOption?: any;\r\n selectedOption?: any;\r\n lastEmittedId?: any;\r\n focusedOption?: any;\r\n alreadyAdded = false;\r\n optionsVisible = false;\r\n\r\n @ViewChild('input') input?: InputComponent;\r\n @ViewChild('trigger') optionsTrigger: CdkOverlayOrigin;\r\n\r\n inputFocused = false;\r\n inputControl = new UntypedFormControl('');\r\n checkboxSelection: Set<any> = new Set<any>();\r\n\r\n onChange: (value) => void;\r\n\r\n @Input() optionDisabled: (any) => boolean = () => false;\r\n @Input() optionFormatter: (any) => string = (o) => o[this.displayAttribute];\r\n\r\n protected buildSearchableOptions() {\r\n return this.options.map(o => ({\r\n ...o,\r\n unselectable: this.optionDisabled(o),\r\n searchString: `${this.optionFormatter(o)}`.toLowerCase()\r\n }));\r\n }\r\n\r\n protected filterOptions(text: string) {\r\n this.filteredMaxItemsShown = this.SHOWN_USERS_DELTA;\r\n return this.searchableOptions.filter(u => u.searchString.includes(text));\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // console.log('ngoninit');\r\n\r\n super.ngOnInit();\r\n\r\n // if (this.formControlName && this.controlContainer.control) {\r\n // this.control = this.controlContainer.control.get(this.formControlName) as FormControl;\r\n // }\r\n //\r\n // this.user = this.control.value;\r\n\r\n // this.value = this.control.value;\r\n\r\n this.searchableOptions = this.buildSearchableOptions();\r\n\r\n // if (this.control.disabled) {\r\n // this.inputControl.disable();\r\n // }\r\n\r\n // this.control.statusChanges.subscribe(v => {\r\n // if (v === 'DISABLED') {\r\n // this.inputControl.disable();\r\n // }\r\n // if (v === 'VALID') {\r\n // this.inputControl.enable();\r\n // }\r\n // });\r\n\r\n\r\n\r\n this.inputControl.valueChanges.pipe(debounceTime(200)).subscribe(v => {\r\n const lcv = v.toLowerCase();\r\n\r\n this.filteredOptions = this.filterOptions(lcv);\r\n\r\n if (this.filteredOptions.length > 0) {\r\n this.focusedOption = this.filteredOptions[0];\r\n } else {\r\n this.focusedOption = undefined;\r\n }\r\n\r\n if (v === '') {\r\n this.focusedOption = undefined;\r\n this.selectedOption = undefined;\r\n }\r\n\r\n // if (v !== '') {\r\n // if (this.newUsername === v) {\r\n // this.selectedUser = {id: null, fullName: v};\r\n // this.initialUser = this.selectedUser;\r\n // } else {\r\n // if (this.filteredGroupsAndUsers.length > 0) {\r\n // this.focusedGroup = this.filteredGroupsAndUsers[0];\r\n // this.focusedUser = this.focusedGroup.filteredUsers[0];\r\n // } else {\r\n // this.focusedGroup = null;\r\n // this.focusedUser = null;\r\n // }\r\n // if ((this.focusedUser && !this.focusedUser.unselectable) || this.focusedUser === this.initialUser) {\r\n // this.selectedUser = this.focusedUser;\r\n // } else {\r\n // this.selectedUser = null;\r\n // }\r\n // }\r\n // } else {\r\n // this.selectedUser = null;\r\n // this.focusedUser = null;\r\n // this.focusedGroup = null;\r\n // }\r\n\r\n // this.onChange(v);\r\n });\r\n\r\n // if (this.user !== null) {\r\n // let selectedUser = null;\r\n // this.groupsAndUsers.find(g => g.users.find(u => {\r\n // if (u.id === this.user.id) {\r\n // selectedUser = u;\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // }));\r\n //\r\n // if (selectedUser) {\r\n // this.inputControl.setValue(selectedUser.fullName);\r\n // this.selectedUser = selectedUser;\r\n // } else {\r\n // this.newUsername = this.user.fullName;\r\n // this.inputControl.setValue(this.user.fullName);\r\n // this.selectedUser = { id: null, fullName: this.newUsername };\r\n // }\r\n // } else {\r\n // this.selectedUser = null;\r\n // this.inputControl.setValue('');\r\n // }\r\n // this.initialUser = this.selectedUser;\r\n // }\r\n }\r\n\r\n inputFocusChanged(focused: boolean): void {\r\n if (focused) {\r\n this.optionsVisible = true;\r\n }\r\n }\r\n // setTimeout(() => {\r\n // if (!focused && this.skipBlur) {\r\n // this.skipBlur = false;\r\n // return;\r\n // }\r\n // if (!this.typingStarted && focused) {\r\n // this.inputControl.setValue(this.inputControl.value);\r\n // this.typingStarted = true;\r\n // }\r\n // if (!this.messageShown) {\r\n // this.inputFocused = focused;\r\n // if (!focused) {\r\n // this.emitSelection('focus lost');\r\n // }\r\n // }\r\n // }, 250);\r\n // }\r\n\r\n get hasCheckboxSelected(): boolean {\r\n return this.checkboxSelection.size > 0;\r\n }\r\n\r\n optionChecked(u: any): boolean {\r\n return this.checkboxSelection.has(u[this.idAttribute]);\r\n }\r\n\r\n select(u: any): void {\r\n if (this.hasCheckboxSelected || u.unselectable) {\r\n return;\r\n }\r\n if (!u.unselectable) {\r\n this.selectedOption = u;\r\n this.initialOption = u;\r\n this.toggleDropdown();\r\n }\r\n }\r\n\r\n toggleOptionCheckboxed(u: any): void {\r\n if (!u.unselectable) {\r\n this.checkboxSelection.has(u[this.idAttribute]) ?\r\n this.checkboxSelection.delete(u[this.idAttribute]) : this.checkboxSelection.add(u[this.idAttribute]);\r\n }\r\n this.input?.focus();\r\n }\r\n\r\n\r\n // get optionsVisible(): boolean {\r\n // return this.inputFocused && this.typingStarted;\r\n // }\r\n\r\n keyPressed(keyEvent: KeyboardEvent): void {\r\n this.lastEmittedId = -1;\r\n this.optionsVisible = true;\r\n // this.typingStarted = keyEvent.key !== 'Tab' && keyEvent.key !== 'Escape';\r\n if (keyEvent.key === 'Escape') {\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n this.optionsVisible = false;\r\n return;\r\n }\r\n if (keyEvent.key === 'Enter' && this.hasCheckboxSelected) {\r\n if (this.focusedOption && !this.focusedOption.unselectable) {\r\n this.toggleOptionCheckboxed(this.focusedOption);\r\n }\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n return;\r\n }\r\n // if (keyEvent.key === 'Enter' && this.filteredGroupsAndUsers.length === 0 && this.focusedUser === null && !this.alreadyAdded) {\r\n // this.newUser();\r\n // keyEvent.stopPropagation();\r\n // keyEvent.preventDefault();\r\n // return;\r\n // }\r\n if (keyEvent.key === 'Enter') {\r\n this.selectedOption = this.focusedOption;\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n this.toggleDropdown();\r\n return;\r\n }\r\n if ((keyEvent.key === 'ArrowDown' || keyEvent.key === 'ArrowUp') && !this.focusedOption) {\r\n if (this.filteredOptions.length > 0) {\r\n this.focusedOption = this.filteredOptions[0];\r\n // if (!this.focusedUser.unselectable || this.focusedUser === this.initialUser) {\r\n // this.selectedUser = this.focusedUser;\r\n // }\r\n this.selectedOption = this.focusedOption;\r\n return;\r\n }\r\n }\r\n if (keyEvent.key === 'ArrowDown' && this.focusedOption) {\r\n const idx = this.filteredOptions.indexOf(this.focusedOption);\r\n if (idx === this.filteredMaxItemsShown - 1) {\r\n this.filteredMaxItemsShown += this.SHOWN_USERS_DELTA;\r\n }\r\n if (idx < this.filteredOptions.length - 1) {\r\n this.focusedOption = this.filteredOptions[idx + 1];\r\n this.selectedOption = this.focusedOption;\r\n }\r\n }\r\n if (keyEvent.key === 'ArrowUp' && this.focusedOption) {\r\n const idx = this.filteredOptions.indexOf(this.focusedOption);\r\n if (idx > 0) {\r\n this.focusedOption = this.filteredOptions[idx - 1];\r\n this.selectedOption = this.focusedOption;\r\n }\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n toggleDropdown() {\r\n this.optionsVisible = false;\r\n this.emitSelection('toggle');\r\n }\r\n\r\n emitSelection(src?: string): void {\r\n this.initialOption = this.selectedOption;\r\n\r\n if (this.selectedOption) {\r\n const checkId = this.selectedOption.id === null ? 0 : this.selectedOption.id;\r\n if (this.lastEmittedId !== checkId) {\r\n this.lastEmittedId = checkId;\r\n this.onChange(this.options.find(o => o[this.idAttribute] === this.selectedOption[this.idAttribute]));\r\n this.inputControl.setValue(this.selectedOption[this.displayAttribute]);\r\n }\r\n } else {\r\n // this.control.setValue(null);\r\n this.onChange(null);\r\n this.inputControl.setValue('', {emitEvent: false});\r\n }\r\n\r\n\r\n\r\n // if (this.selectedOption) {\r\n // const checkId = this.selectedUser.id === null ? 0 : this.selectedUser.id;\r\n // if (this.lastEmittedId !== checkId) {\r\n // this.inputControl.setValue(this.selectedUser.fullName, {emitEvent: false});\r\n // if (this.selectedUser.id) {\r\n // this.groupsAndUsers.find(g => g.users.find(u => {\r\n // if (u.id === this.selectedUser.id) {\r\n // this.control.setValue(u);\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // }));\r\n // } else {\r\n // this.control.setValue(this.selectedUser);\r\n // }\r\n // this.lastEmittedId = checkId;\r\n // }\r\n // } else {\r\n // if (this.lastEmittedId !== null || this.lastEmittedId === -1/* || this.selectedUser?.unselectable*/) {\r\n // this.control?.setValue(null);\r\n // this.inputControl.setValue('', {emitEvent: false});\r\n // this.lastEmittedId = null;\r\n // }\r\n // }\r\n // this.typingStarted = false;\r\n }\r\n\r\n cancelCheckboxSelection(): void {\r\n this.checkboxSelection.clear();\r\n // this.skipBlur = true;\r\n // this.input?.focus();\r\n }\r\n\r\n useCheckboxSelection(): void {\r\n // this.newUsername = '';\r\n // const users = [];\r\n // this.groupsAndUsers.forEach(g => g.users.forEach(u => {\r\n // if (!users.includes(u) && this.checkboxSelection.has(u.id)) {\r\n // users.push(u);\r\n // }\r\n // }));\r\n const outputOptions = this.options.filter(o => this.checkboxSelection.has(o[this.idAttribute]) && !this.optionDisabled(o));\r\n if (outputOptions.length > 0) {\r\n this.selectedOption = outputOptions[0];\r\n this.inputControl.setValue(this.selectedOption[this.displayAttribute], {emitEvent: false});\r\n this.onChange(outputOptions);\r\n this.toggleDropdown();\r\n // this.control?.setValue(outputOptions);\r\n // this.typingStarted = false;\r\n // this.skipBlur = true;\r\n }\r\n this.checkboxSelection.clear();\r\n }\r\n\r\n newOption() {\r\n\r\n }\r\n\r\n loadMore(visible: boolean) {\r\n if (visible) {\r\n this.filteredMaxItemsShown += this.SHOWN_USERS_DELTA;\r\n }\r\n }\r\n\r\n public focus() {\r\n this.input?.focus();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n isDisabled ? this.inputControl.disable() : this.inputControl.enable();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n if (obj.id) {\r\n this.filteredOptions = this.searchableOptions.filter(so => so.id === obj.id);\r\n } else {\r\n this.filteredOptions = this.filterOptions(obj[this.displayAttribute].toLowerCase());\r\n }\r\n if (this.filteredOptions.length === 1) {\r\n this.selectedOption = this.filteredOptions[0];\r\n this.focusedOption = this.filteredOptions[0];\r\n }\r\n this.inputControl.setValue(obj[this.displayAttribute]);\r\n } else {\r\n this.filteredOptions = this.filterOptions('');\r\n }\r\n }\r\n}\r\n","<div class=\"wrapper\" #wrapper>\r\n <div *ngIf=\"optionsVisible\" (click)=\"toggleDropdown()\" class=\"overlay\"></div>\r\n <ui-input [formControl]=\"inputControl\" #input #trigger=\"cdkOverlayOrigin\" cdkOverlayOrigin (focusChanged)=\"inputFocusChanged($event)\" (keyPressed)=\"keyPressed($event)\" [placeholder]=\"placeholder\" [useInputMessages]=\"'never'\">\r\n <div slot=\"prefix\"><ng-content select=\"[slot=acprefix]\"></ng-content></div>\r\n </ui-input>\r\n\r\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"optionsVisible\">\r\n <div class=\"options-box\" style=\"display: flex; flex-direction: column\" [ngStyle]=\"{width: wrapper.offsetWidth + 'px'}\">\r\n <div class=\"options\" #options>\r\n\r\n <ng-container *ngFor=\"let option of filteredOptions; index as i\">\r\n <div *ngIf=\"i < filteredMaxItemsShown\" class=\"option-container\" [ngClass]=\"{selected: focusedOption === option}\">\r\n <mat-checkbox [checked]=\"optionChecked(option) || option.unselectable\" [disabled]=\"option.unselectable\" (change)=\"toggleOptionCheckboxed(option)\">\r\n <div class=\"option-container-inner\" (click)=\"select(option)\">\r\n <div class=\"option-option\" uiForceVisibility [visibilityWithin]=\"options\" [visibilityPadding]=\"4\" *ngIf=\"focusedOption === option\" [ngClass]=\"{unselectable: option.unselectable}\">\r\n {{optionFormatter(option)}}\r\n </div>\r\n <div class=\"option-option\" *ngIf=\"focusedOption !== option\" [ngClass]=\"{unselectable: option.unselectable}\">\r\n {{optionFormatter(option)}}\r\n </div>\r\n <mat-icon *ngIf=\"!hasCheckboxSelected && !option.unselectable\">north_west</mat-icon>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"filteredOptions.length >= filteredMaxItemsShown\" class=\"option-container\" uiForceVisibility [visibilityWithin]=\"options\" [visibilityEmitChange]=\"true\" (visibilityChanged)=\"loadMore($event)\">\r\n \r\n </div>\r\n\r\n\r\n <div *ngIf=\"filteredOptions.length === 0 && !focusedOption\" class=\"new-user\">\r\n <ng-container *ngIf=\"alreadyAdded\">\r\n <div style=\"text-align: center\">Uživatel {{inputControl.value}} už je mezi dlužníky</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!alreadyAdded\">\r\n <div style=\"text-align: center; padding: 1em 0\">Uživatele <strong>{{inputControl.value}}</strong> neznáme</div>\r\n <ui-button *ngIf=\"allowNew\" style=\"margin-top: 6px;\" [size]=\"'small'\" [label]=\"'Přidat jej?'\" (click)=\"newOption()\"></ui-button>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"filteredOptions.length === 0 && focusedOption\" class=\"new-user\">\r\n <div style=\"text-align: center\">Neznámý uživatel {{inputControl.value}}</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"hasCheckboxSelected && filteredOptions.length > 0\" class=\"checkbox-buttons\">\r\n <ui-button [size]=\"'small'\" [kind]=\"'basic'\" [label]=\"'Zrušit výběr'\" (click)=\"cancelCheckboxSelection()\"></ui-button>\r\n <ui-button [size]=\"'small'\" [label]=\"'Použít výběr (' + checkboxSelection.size + ')'\" (click)=\"useCheckboxSelection()\"></ui-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n","import { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'ui-action-button',\r\n templateUrl: './action-button.component.html',\r\n styleUrls: [ '../button/button.component.scss', './action-button.component.scss']\r\n})\r\nexport class ActionButtonComponent extends ButtonComponent implements OnInit {\r\n\r\n @Input() withPrimary = false;\r\n @Input() overlayAlignment: 'left' | 'right' = 'left';\r\n @Input() hasBackdrop = false;\r\n @Input() triggerTpl;\r\n @Input() autoClose = true;\r\n\r\n @Output() primaryClick = new EventEmitter<void>();\r\n @Output() overlayToggled = new EventEmitter<boolean>();\r\n\r\n @ViewChild('trigger1', { static: false }) trigger1;\r\n\r\n deferredRender = false;\r\n\r\n iconHover = false;\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return super.class + (this.withPrimary ? ' with-primary' : '');\r\n }\r\n\r\n private rightPositions = [\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'}\r\n ];\r\n\r\n private leftPositions = [\r\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\r\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'}\r\n ];\r\n\r\n openOverlay = false;\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(evt: KeyboardEvent) {\r\n if (this.openOverlay) {\r\n this.toggleOverlay(false);\r\n }\r\n }\r\n\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get positions() {\r\n switch (this.overlayAlignment) {\r\n case 'left': return this.leftPositions;\r\n default: return this.rightPositions;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.deferredRender = true;\r\n });\r\n }\r\n\r\n toggleOverlay(status) {\r\n if (status || this.autoClose) {\r\n this.openOverlay = status;\r\n this.overlayToggled.emit(status);\r\n }\r\n }\r\n\r\n closeOverlay() {\r\n this.openOverlay = false;\r\n }\r\n\r\n togglePrimaryOverlay(status, $event) {\r\n this.toggleOverlay(status);\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n }\r\n}\r\n","<ng-container *ngIf=\"triggerTpl\">\r\n <div style=\"display: flex;\" (click)=\"toggleOverlay(true)\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\">\r\n <ng-template [ngTemplateOutlet]=\"triggerTpl\"></ng-template>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!triggerTpl && withPrimary\">\r\n <button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy, 'icon-hover': iconHover}\" [class]=\"class\" (click)=\"primaryClick.emit()\">\r\n <div class=\"hover-container\"></div>\r\n {{label}}\r\n <div class=\"mat-icon-container\" (mouseenter)=\"iconHover = true\" (mouseleave)=\"iconHover = false\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\" (click)=\"togglePrimaryOverlay(true, $event)\">\r\n ▼\r\n </div>\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!triggerTpl && !withPrimary\">\r\n <button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy}\" [class]=\"class\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\" (click)=\"toggleOverlay(true)\">\r\n {{label}}\r\n <div class=\"mat-icon-container\">\r\n ▼\r\n </div>\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template *ngIf=\"deferredRender\" cdkConnectedOverlay [cdkConnectedOverlayPositions]=\"positions\" [cdkConnectedOverlayOrigin]=\"trigger1\" [cdkConnectedOverlayOpen]=\"openOverlay\" [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\" [cdkConnectedOverlayDisableClose]=\"!autoClose\" (overlayOutsideClick)=\"toggleOverlay(false)\">\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-radio',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss']\r\n})\r\nexport class RadioComponent { // extends UiSimpleComponent {\r\n\r\n @Input() value;\r\n @Input() label;\r\n @Input() color: 'primary' | 'accent' | 'warn' = 'primary'\r\n\r\n // constructor(@Optional() @Self() public ngControl: NgControl) {\r\n // super(ngControl);\r\n // }\r\n}\r\n","<mat-radio-button [value]=\"value\" [color]=\"color\">\r\n {{label}}\r\n</mat-radio-button>\r\n","import { Component, Input, OnChanges, Optional, Self, SimpleChanges } from '@angular/core';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { UntypedFormControl, NgControl, Validators } from '@angular/forms';\r\n\r\n// export interface CheckboxGroupOption {\r\n// value: any,\r\n// label: string,\r\n// hint?: string\r\n// }\r\n\r\n@Component({\r\n selector: 'ui-checkbox-group',\r\n templateUrl: './checkbox-group.component.html',\r\n styleUrls: ['./checkbox-group.component.scss'],\r\n // providers: [\r\n // {\r\n // provide: NG_VALIDATORS,\r\n // multi: true,\r\n // useExisting: CheckboxGroupComponent\r\n // }\r\n // ]\r\n})\r\nexport class CheckboxGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges { // }, Validator {\r\n\r\n cbxs: any;\r\n\r\n private valueMode: 'array' | 'object';\r\n\r\n @Input() valueAttribute: string | undefined;\r\n @Input() displayAttribute = 'label';\r\n @Input() hintAttribute = 'hint';\r\n\r\n @Input() options: any[];\r\n @Input() optionEnabled = (option: any) => true;\r\n\r\n constructor(@Optional() @Self() public control: NgControl) {\r\n super(control);\r\n }\r\n\r\n // ngOnInit(): void {\r\n // super.ngOnInit();\r\n // }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n if (changes.options) {\r\n this.cbxs = [];\r\n this.valueMode = Array.isArray(this.control.value) ? 'array' : 'object';\r\n Object.keys(changes.options.currentValue).forEach(k => {\r\n const v = changes.options.currentValue[k];\r\n const ct = new UntypedFormControl(this.valueMode === 'array' ? this.control.value.includes(v) : this.control.value[k] === true);\r\n if (!this.optionEnabled(v)) {\r\n ct.disable();\r\n }\r\n ct.valueChanges.subscribe(() => {\r\n const value = this.valueMode === 'array' ? [] : {};\r\n let hasChecked = false;\r\n this.cbxs.forEach((cbx) => {\r\n const checked = cbx.control.value;\r\n hasChecked = hasChecked || checked;\r\n if (this.valueMode === 'array') {\r\n if (checked) {\r\n (value as any[]).push(cbx.value.value);\r\n }\r\n } else {\r\n value[cbx.key] = checked;\r\n }\r\n });\r\n this.componentFormControl.markAsTouched();\r\n this.componentFormControl.setValue(value);\r\n if (this.componentFormControl.hasValidator(Validators.required) && !hasChecked) {\r\n this.componentFormControl.setErrors({cbGroupRequired: true});\r\n } else {\r\n this.componentFormControl.setErrors(null);\r\n }\r\n });\r\n this.cbxs.push({\r\n control: ct,\r\n value: this.valueAttribute ? v[this.valueAttribute] : v,\r\n label: this.displayAttribute ? v[this.displayAttribute] : v,\r\n hint: this.hintAttribute ? v[this.hintAttribute] : undefined,\r\n key: this.valueMode === 'object' ? k : undefined\r\n })\r\n });\r\n }\r\n }\r\n\r\n // registerOnValidatorChange(fn: () => void): void {\r\n // }\r\n //\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // console.log('validate');\r\n // return undefined;\r\n // }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<ui-checkbox *ngFor=\"let cbx of cbxs\" [formControl]=\"cbx.control\" [label]=\"cbx.label\" [hint]=\"cbx.hint\"></ui-checkbox>\r\n\r\n</ui-simple-layout>\r\n","import { Component, Input, OnChanges, OnInit, Optional, Self, SimpleChanges } from '@angular/core';\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ui-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n // providers: [\n // {\n // provide: NG_VALIDATORS,\n // multi: true,\n // useExisting: CheckboxGroupComponent\n // }\n // ]\n})\nexport class RadioGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges {\n\n cbxs: any;\n id = Math.round(Math.random() * 999999);\n\n @Input() options;\n @Input() displayAttribute = 'name';\n @Input() valueAttribute;\n\n @Input() groupName = 'radio-' + this.id;\n\n @Input() optionEnabled = (option: any) => true;\n\n constructor(@Optional() @Self() public control: NgControl) {\n super(control);\n }\n\n // ngOnInit(): void {\n // super.ngOnInit();\n // }\n\n ngOnChanges(changes: SimpleChanges) {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.cbxs = [];\n changes.options.currentValue.forEach(cv => {\n this.cbxs.push({\n value: this.valueAttribute ? cv[this.valueAttribute] : cv,\n label: cv[this.displayAttribute]\n })\n });\n }\n }\n\n // writeValue(obj: any): void {\n // if (this.componentFormControl) {\n // this.componentFormControl.setValue(obj);\n // }\n // }\n}\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n <mat-radio-group [formControl]=\"componentFormControl\" [name]=\"groupName\" [class]=\"size\">\r\n\r\n <mat-radio-button *ngFor=\"let cbx of cbxs\" [value]=\"cbx.value\" >{{cbx.label}}</mat-radio-button>\r\n\r\n </mat-radio-group>\r\n\r\n</ui-simple-layout>\r\n","import { NgModule } from '@angular/core';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_CHECKBOX_DEFAULT_OPTIONS, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { RouterModule } from '@angular/router';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MAT_DATE_LOCALE, MatRippleModule } from '@angular/material/core';\r\nimport { NgxUploaderModule } from 'ngx-uploader';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { InputComponent } from './input/input.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { FileComponent } from './file/file.component';\r\nimport { UiFileUploaderComponent } from './file-uploader/ui-file-uploader.component';\r\nimport { ExpanderComponent } from './elements/expander/expander.component';\r\nimport { ForceVisibilityDirective } from './directives/force-visibility/force-visibility.directive';\r\nimport { MessageBoxModalComponent } from './services/message-box.service';\r\nimport { DialogComponent } from './dialog/dialog.component';\r\nimport { CurrencyComponent } from './currency/currency.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { AvatarComponent } from './avatar/avatar.component';\r\nimport { SubmitButtonComponent } from './submit-button/submit-button.component';\r\nimport { TextAreaComponent } from './text-area/text-area.component';\r\nimport { DateComponent } from './date/date.component';\r\nimport { TableComponent } from './table/table.component';\r\nimport { BurgerComponent } from './elements/burger/burger.component';\r\nimport { AutocompleteComponent } from './autocomplete/autocomplete.component';\r\nimport { UiFileService } from './services/ui-file.service';\r\nimport { UI_TRANSLATESERVICE, UiTranslateService } from './services/ui-translate.service';\r\nimport { ActionButtonComponent } from './action-button/action-button.component';\r\nimport { UiSimpleLayoutComponent } from './simple/ui-simple-layout.component';\r\nimport { UiBaseLayoutComponent } from './base/ui-base-layout.component';\r\nimport { ValidationMessageComponent } from './elements/validation-message/validation-message.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { RadioComponent } from './radio/radio.component';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS, MatRadioModule } from '@angular/material/radio';\r\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\r\nimport { ActionIconComponent } from './action-icon/action-icon.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileComponent,\r\n UiFileUploaderComponent,\r\n ExpanderComponent,\r\n ForceVisibilityDirective,\r\n MessageBoxModalComponent,\r\n DialogComponent,\r\n CurrencyComponent,\r\n CheckboxComponent,\r\n AvatarComponent,\r\n SubmitButtonComponent,\r\n TextAreaComponent,\r\n DateComponent,\r\n TableComponent,\r\n BurgerComponent,\r\n AutocompleteComponent,\r\n ActionButtonComponent,\r\n UiBaseLayoutComponent,\r\n UiSimpleLayoutComponent,\r\n ValidationMessageComponent,\r\n RadioComponent,\r\n CheckboxGroupComponent,\r\n RadioGroupComponent,\r\n ActionIconComponent\r\n ],\r\n exports: [\r\n ActionButtonComponent,\r\n ActionIconComponent,\r\n AutocompleteComponent,\r\n AvatarComponent,\r\n BurgerComponent,\r\n ButtonComponent,\r\n CheckboxComponent,\r\n CheckboxGroupComponent,\r\n CurrencyComponent,\r\n DateComponent,\r\n DialogComponent,\r\n ExpanderComponent,\r\n FileComponent,\r\n ForceVisibilityDirective,\r\n InputComponent,\r\n MessageBoxModalComponent,\r\n RadioComponent,\r\n RadioGroupComponent,\r\n SelectComponent,\r\n SubmitButtonComponent,\r\n TableComponent,\r\n TextAreaComponent,\r\n UiFileUploaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n DragDropModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatSelectModule,\r\n NgxUploaderModule,\r\n MatProgressSpinnerModule,\r\n MatMenuModule,\r\n ImageCropperModule,\r\n RouterModule,\r\n OverlayModule,\r\n MatRippleModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSnackBarModule\r\n ],\r\n providers: [\r\n UiFileService,\r\n {provide: UI_TRANSLATESERVICE, useClass: UiTranslateService},\r\n {provide: MAT_DATE_LOCALE, useValue: 'cs-CZ'},\r\n {provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: {useUtc: false}},\r\n {provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'primary' }},\r\n {provide: MAT_CHECKBOX_DEFAULT_OPTIONS, useValue: { color: 'primary' }}\r\n ]\r\n})\r\nexport class UiModule {\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'fail';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n constructor(private snackService: MatSnackBar) { }\n\n public open(message: string, options: { duration?: number, type?: ToastType } = { duration: 2500, type: 'info'}) {\n this.snackService.open(message, null, {\n duration: options.duration || 2500,\n panelClass: [ options.type || 'message']\n });\n }\n}\n","/*\r\n * Public API Surface of ui\r\n */\r\n\r\n// export * from './lib/ui.service';\r\n// export * from './lib/ui.component';\r\nexport * from './lib/ui.module';\r\nexport * from './lib/action-button/action-button.component';\r\nexport * from './lib/action-icon/action-icon.component';\r\nexport * from './lib/autocomplete/autocomplete.component';\r\nexport * from './lib/avatar/avatar.component';\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/checkbox/checkbox.component';\r\nexport * from './lib/checkbox-group/checkbox-group.component';\r\nexport * from './lib/currency/currency.component';\r\nexport * from './lib/date/date.component';\r\nexport * from './lib/dialog/dialog.component';\r\nexport * from './lib/file/file.component';\r\nexport * from './lib/file-uploader/ui-file-uploader.component';\r\nexport * from './lib/input/input.component';\r\nexport * from './lib/radio/radio.component';\r\nexport * from './lib/radio-group/radio-group.component';\r\nexport * from './lib/select/select.component';\r\nexport * from './lib/submit-button/submit-button.component';\r\nexport * from './lib/table/table.component';\r\nexport * from './lib/text-area/text-area.component';\r\n\r\nexport * from './lib/directives/force-visibility/force-visibility.directive';\r\n\r\nexport * from './lib/elements/burger/burger.component';\r\nexport * from './lib/elements/expander/expander.component';\r\n\r\nexport * from './lib/services/message-box.service';\r\nexport * from './lib/services/toast.service';\r\nexport * from './lib/services/ui-file.service';\r\nexport * from './lib/services/ui-translate.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.ValidationMessageComponent","i2.UiBaseLayoutComponent","i3.UiSimpleLayoutComponent","i3","i4","i5","i6.ButtonComponent","i7.UiSimpleLayoutComponent","i2.UiFileService","i7","i9.FileComponent","i4.ActionIconComponent","i4.ButtonComponent","i5.DialogComponent","i3.InputComponent","i4.SelectComponent","i5.UiBaseLayoutComponent","i4.UiSimpleLayoutComponent","i2.FileComponent","i5.UiSimpleLayoutComponent","i7.InputComponent","i8.ForceVisibilityDirective","i3.CheckboxComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rlucan-ui.mjs","sources":["../../../projects/ui/src/lib/button/button.component.ts","../../../projects/ui/src/lib/button/button.component.html","../../../projects/ui/src/lib/base/ui-base.component.ts","../../../projects/ui/src/lib/simple/ui-simple.component.ts","../../../projects/ui/src/lib/services/ui-translate.service.ts","../../../projects/ui/src/lib/elements/validation-message/validation-message.component.ts","../../../projects/ui/src/lib/elements/validation-message/validation-message.component.html","../../../projects/ui/src/lib/base/ui-base-layout.component.ts","../../../projects/ui/src/lib/base/ui-base-layout.component.html","../../../projects/ui/src/lib/simple/ui-simple-layout.component.ts","../../../projects/ui/src/lib/simple/ui-simple-layout.component.html","../../../projects/ui/src/lib/action-icon/action-icon.component.ts","../../../projects/ui/src/lib/action-icon/action-icon.component.html","../../../projects/ui/src/lib/input/input.component.ts","../../../projects/ui/src/lib/input/input.component.html","../../../projects/ui/src/lib/select/select.component.ts","../../../projects/ui/src/lib/select/select.component.html","../../../projects/ui/src/lib/services/ui-file.service.ts","../../../projects/ui/src/lib/file/file.component.ts","../../../projects/ui/src/lib/file/file.component.html","../../../projects/ui/src/lib/file-uploader/ui-file-uploader.component.ts","../../../projects/ui/src/lib/file-uploader/ui-file-uploader.component.html","../../../projects/ui/src/lib/elements/expander/expander.component.ts","../../../projects/ui/src/lib/elements/expander/expander.component.html","../../../projects/ui/src/lib/directives/force-visibility/force-visibility.directive.ts","../../../projects/ui/src/lib/dialog/dialog.component.ts","../../../projects/ui/src/lib/dialog/dialog.component.html","../../../projects/ui/src/lib/services/message-box.service.ts","../../../projects/ui/src/lib/currency/currency.component.ts","../../../projects/ui/src/lib/currency/currency.component.html","../../../projects/ui/src/lib/checkbox/checkbox.component.ts","../../../projects/ui/src/lib/checkbox/checkbox.component.html","../../../projects/ui/src/lib/avatar/avatar.component.ts","../../../projects/ui/src/lib/avatar/avatar.component.html","../../../projects/ui/src/lib/submit-button/submit-button.component.ts","../../../projects/ui/src/lib/submit-button/submit-button.component.html","../../../projects/ui/src/lib/text-area/text-area.component.ts","../../../projects/ui/src/lib/text-area/text-area.component.html","../../../projects/ui/src/lib/date/date.component.ts","../../../projects/ui/src/lib/date/date.component.html","../../../projects/ui/src/lib/table/table.component.ts","../../../projects/ui/src/lib/table/table.component.html","../../../projects/ui/src/lib/elements/burger/burger.component.ts","../../../projects/ui/src/lib/elements/burger/burger.component.html","../../../projects/ui/src/lib/autocomplete/autocomplete.component.ts","../../../projects/ui/src/lib/autocomplete/autocomplete.component.html","../../../projects/ui/src/lib/action-button/action-button.component.ts","../../../projects/ui/src/lib/action-button/action-button.component.html","../../../projects/ui/src/lib/radio/radio.component.ts","../../../projects/ui/src/lib/radio/radio.component.html","../../../projects/ui/src/lib/checkbox-group/checkbox-group.component.ts","../../../projects/ui/src/lib/checkbox-group/checkbox-group.component.html","../../../projects/ui/src/lib/radio-group/radio-group.component.ts","../../../projects/ui/src/lib/radio-group/radio-group.component.html","../../../projects/ui/src/lib/ui.module.ts","../../../projects/ui/src/lib/services/toast.service.ts","../../../projects/ui/src/public-api.ts","../../../projects/ui/src/rlucan-ui.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\r\nimport { ControlColor, ControlSize } from '../ui.model';\r\n\r\n@Component({\r\n selector: 'ui-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent {\r\n\r\n @Input() type: 'submit' | 'button' = 'button';\r\n @Input() matIconPrefix: any;\r\n @Input() label: string | undefined;\r\n @Input() disabled = false;\r\n @Input() busy = false;\r\n @Input() kind: 'basic' | 'flat' | 'stroked' = 'flat';\r\n @Input() color: ControlColor = 'primary';\r\n @Input() size: ControlSize = 'normal';\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return this.kind +\r\n (this.color ? ' ' + this.color : '') +\r\n (this.size ? ' ' + this.size : '') +\r\n ((this.disabled || this.busy) ? ' disabled' : '');\r\n }\r\n\r\n @HostBinding('class.formInvalid')\r\n @Input() formInvalid = false;\r\n\r\n constructor() { }\r\n\r\n get isDisabled(): boolean {\r\n return this.disabled || this.busy;\r\n }\r\n\r\n}\r\n","<button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy}\" [class]=\"class\">\r\n <mat-icon *ngIf=\"matIconPrefix\">{{matIconPrefix}}</mat-icon>\r\n {{label}}\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n</button>\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { ValidationErrors } from '@angular/forms';\r\n\r\nexport interface UiValidators {\r\n required?: boolean;\r\n maxLength?: number\r\n}\r\n\r\n@Component({\r\n selector: 'ui-abstract-base-component',\r\n template: '** abstract **'\r\n})\r\nexport abstract class UiBaseComponent implements OnInit {\r\n\r\n @Input() placeholder = '';\r\n @Input() label: string | undefined;\r\n @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n @Input() inputMessagesPosition: 'absolute' | 'relative' = 'relative';\r\n @Input() hint?: string;\r\n\r\n @HostBinding('class')\r\n @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n\r\n // control = new FormControl();\r\n\r\n // controlFormGroup;\r\n\r\n required = false;\r\n\r\n // get control() {\r\n // return this.controlFormGroup.get('text');\r\n // }\r\n\r\n constructor() {\r\n // this.ngControl.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n // console.log(this.controlContainer);\r\n\r\n // this.controlFormGroup.valueChanges.subscribe(v => {\r\n // this.onChange(v);\r\n // });\r\n\r\n // this.ngControl.control.statusChanges.subscribe(v => console.log(v));\r\n //\r\n // this.ngControl.control.markAsTouched = (opts?: {\r\n // onlySelf?: boolean;\r\n // }) => {\r\n // if (!this.control.touched) {\r\n // console.log('marking as touched');\r\n // this.control.markAsTouched(opts);\r\n // }\r\n // this.control.updateValueAndValidity({onlySelf: opts?.onlySelf, emitEvent: false});\r\n // }\r\n\r\n // setTimeout(() => {\r\n // this.applyValidators(this.validators);\r\n // });\r\n }\r\n\r\n // bindValidators(validators: ValidatorFn[]): void {\r\n // this.control.setValidators(validators);\r\n // }\r\n\r\n\r\n\r\n get validationErrors(): ValidationErrors {\r\n return null;\r\n }\r\n\r\n get validationMessage(): string {\r\n return 'obsolete...';\r\n }\r\n\r\n get isInvalid(): boolean {\r\n return false;\r\n }\r\n\r\n // @HostBinding('class')\r\n // get class(): string {\r\n // return (this.isInvalid ? 'invalid ' : '') + this.size;\r\n // }\r\n\r\n\r\n}\r\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NgControl,\r\n ValidationErrors, Validator,\r\n ValidatorFn,\r\n Validators, FormControl, ControlContainer, FormGroupDirective\r\n} from '@angular/forms';\r\nimport { UiBaseComponent, UiValidators } from '../base/ui-base.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ui-abstract-simple-component',\r\n template: '** abstract **'\r\n})\r\nexport abstract class UiSimpleComponent extends UiBaseComponent\r\n implements OnInit, OnChanges, OnDestroy, ControlValueAccessor, Validator { // }, Validator {\r\n\r\n @Input() validators: UiValidators | undefined;\r\n @Input() formControl;\r\n @Input() formControlName;\r\n\r\n componentFormControl: UntypedFormControl;\r\n // tslint:disable-next-line:ban-types\r\n parentFormControl: UntypedFormControl & { _componentFormControl: FormControl; _markAsTouched: Function; _setErrors: Function };\r\n\r\n sub: Subscription = new Subscription();\r\n\r\n constructor(public ngControl: NgControl, // <-- obsolete\r\n protected controlContainer: ControlContainer = null) {\r\n super();\r\n\r\n if (ngControl) {\r\n ngControl.valueAccessor = this;\r\n } else {\r\n this.componentFormControl = new FormControl();\r\n// this.componentFormControl.markAsUntouched();\r\n this.sub.add(this.componentFormControl.valueChanges.subscribe(v => {\r\n try {\r\n // console.log(v, this.componentFormControl.value);\r\n this.onChange(v);\r\n } catch (e) { /*console.error(e);*/\r\n }\r\n } ));\r\n }\r\n // this.ngControl.valueAccessor = this;\r\n }\r\n\r\n get maxLenRequired(): boolean {\r\n return this.componentFormControl.value && (this.componentFormControl.value.length > (this.validators?.maxLength || 0));\r\n }\r\n\r\n get isInvalid(): boolean {\r\n // console.log(this.label, this.componentFormControl.touched);\r\n return this.componentFormControl.touched && !!this.componentFormControl.errors;\r\n }\r\n\r\n get validationErrors(): ValidationErrors {\r\n return this.componentFormControl?.errors;\r\n }\r\n\r\n onChange = (val) => {};\r\n\r\n onTouched = () => {};\r\n\r\n onValidatorChange = () => {};\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ngControl) {\r\n if (this.formControl) {\r\n this.componentFormControl = this.formControl;\r\n } else {\r\n this.componentFormControl = this.ngControl.control as UntypedFormControl;\r\n }\r\n setTimeout(() => this.applyTemplateValidators());\r\n } else {\r\n this.parentFormControl = this.formControlName ?\r\n (this.controlContainer as FormGroupDirective).control.get(this.formControlName) : this.formControl;\r\n if (this.parentFormControl) {\r\n this.componentFormControl.setValidators(this.parentFormControl.validator);\r\n this.parentFormControl._componentFormControl = this.componentFormControl;\r\n if (this.parentFormControl._markAsTouched === undefined) {\r\n this.parentFormControl._markAsTouched = this.parentFormControl.markAsTouched;\r\n this.parentFormControl._setErrors = this.parentFormControl.setErrors;\r\n this.parentFormControl.markAsTouched = ({onlySelf}: { onlySelf?: boolean } = {}): void => {\r\n this.parentFormControl._markAsTouched({onlySelf});\r\n this.parentFormControl._componentFormControl.markAsTouched({onlySelf});\r\n }\r\n this.parentFormControl.setErrors = (errors: any): void => {\r\n this.parentFormControl._setErrors(errors);\r\n this.parentFormControl._componentFormControl.setErrors(errors);\r\n }\r\n }\r\n setTimeout(() => this.applyTemplateValidators());\r\n }\r\n }\r\n }\r\n\r\n applyTemplateValidators(): void {\r\n const inputValidators = this.validators;\r\n if (inputValidators) {\r\n const validators: ValidatorFn[] = [];\r\n Object.keys(inputValidators).forEach(v => {\r\n switch (v) {\r\n case 'required':\r\n validators.push(Validators.required);\r\n this.required = true;\r\n break;\r\n case 'maxLength':\r\n validators.push(Validators.maxLength(inputValidators.maxLength || 0));\r\n break;\r\n }\r\n });\r\n if (this.parentFormControl) {\r\n this.parentFormControl.setValidators(validators);\r\n this.parentFormControl.updateValueAndValidity({ emitEvent: false });\r\n this.componentFormControl.setValidators(this.parentFormControl.validator);\r\n } else {\r\n this.componentFormControl.addValidators(validators);\r\n this.componentFormControl.updateValueAndValidity();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.validators && this.componentFormControl) {\r\n this.applyTemplateValidators(); // changes.validators.currentValue as UiValidators);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.componentFormControl) {\r\n isDisabled ? this.componentFormControl.disable({ emitEvent: false }) : this.componentFormControl.enable({ emitEvent: false });\r\n }\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (!this.ngControl) {\r\n if (obj && obj.error) {\r\n console.log('setting error', obj, obj.error);\r\n this.componentFormControl.setErrors(obj.error === 'clear' ? null : { custom: obj.error }, { emitEvent: false });\r\n } else {\r\n this.componentFormControl.setValue(obj);\r\n }\r\n }\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n }\r\n}\r\n","import { Injectable, InjectionToken } from '@angular/core';\r\n\r\nexport interface IUiTranslateService {\r\n instant: (code: string, data?: any) => string;\r\n}\r\n\r\nexport const UI_TRANSLATESERVICE = new InjectionToken<IUiTranslateService>('IUiTranslateService');\r\n\r\n@Injectable()\r\nexport class UiTranslateService implements IUiTranslateService {\r\n instant(code: string, data: any): string {\r\n switch (code) {\r\n case 'ui.controls.ui-file-uploader.menu.change': return 'Změnit';\r\n case 'ui.controls.ui-file-uploader.menu.delete': return 'Smazat';\r\n case 'ui.controls.ui-file-uploader.uploadError': return 'Chyba při ukládání souboru';\r\n case 'ui.controls.validation.required': return 'Povinná položka';\r\n case 'ui.controls.validation.email': return 'Neplatný email';\r\n case 'ui.controls.validation.matDatepickerParse': return 'Neplatné datum';\r\n case 'ui.controls.validation.maxlength': return 'Zadej maximálně ' + data.requiredLength + ' znaků';\r\n case 'ui.controls.validation.minlength': return 'Zadej minimálně ' + data.requiredLength + ' znaků';\r\n case 'ui.controls.validation.invalidNumber': return 'Neplatné číslo';\r\n case 'ui.controls.validation.positive': return 'Musí být větší než 0';\r\n case 'ui.controls.validation.cbGroupRequired': return 'Zaškrtni alespoň jednu položku';\r\n case 'ui.controls.ui-select.clear-selection': return 'Zrušit výběr';\r\n case 'ui.controls.ui-select.all': return 'Vše';\r\n case 'ui.controls.ui-select.apply-selection': return 'Použít výběr';\r\n case 'ui.messagebox.button.cancel': return 'Zrušit';\r\n case 'ui.messagebox.button.delete': return 'Smazat';\r\n default: return code;\r\n }\r\n }\r\n}\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../../services/ui-translate.service';\r\n\r\n@Component({\r\n selector: 'ui-validation-message',\r\n templateUrl: './validation-message.component.html'\r\n})\r\nexport class ValidationMessageComponent implements OnInit {\r\n\r\n @Input() validationErrors;\r\n\r\n constructor(@Inject(UI_TRANSLATESERVICE) protected translateService: IUiTranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get errorMessage(): string {\r\n let e: any = {code: 'Neznámá chyba'};\r\n const errors = this.validationErrors;\r\n if (errors) {\r\n Object.keys(errors).find(a => {\r\n e = {code: a, data: errors[a]};\r\n return true;\r\n });\r\n switch (e.code) {\r\n case 'required':\r\n case 'cbGroupRequired':\r\n case 'email':\r\n case 'matDatepickerParse':\r\n case 'maxlength':\r\n case 'minlength':\r\n return this.translateService.instant('ui.controls.validation.' + e.code, e.data);\r\n case 'positive':\r\n return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');\r\n case 'custom':\r\n return this.translateService.instant(e.data);\r\n default:\r\n return this.translateService.instant(e.code);\r\n }\r\n }\r\n }\r\n}\r\n","{{ errorMessage }}\r\n","import { Component, Host, HostBinding, Input } from '@angular/core';\r\nimport { UiBaseComponent } from './ui-base.component';\r\n\r\n@Component({\r\n selector: 'ui-base-layout',\r\n templateUrl: './ui-base-layout.component.html',\r\n styleUrls: [ './ui-base-layout.component.scss' ]\r\n})\r\nexport class UiBaseLayoutComponent {\r\n\r\n @Input() ctx: UiBaseComponent;\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return `${this.ctx.isInvalid ? 'invalid ' : ''} ${this.ctx.inputMessagesPosition}`;\r\n }\r\n\r\n}\r\n","<div class=\"label\" *ngIf=\"ctx.label\">\r\n <div class=\"text-container\" [matTooltip]=\"false && ctx.required ? 'Povinná položka' : undefined\" [matTooltipPosition]=\"'above'\">\r\n <div class=\"text\" >{{ctx.label}}</div>\r\n <div *ngIf=\"false && ctx.required\" class=\"required\">*</div>\r\n </div>\r\n <ng-content select=\".counter-top\"></ng-content>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"hint-container\" *ngIf=\"ctx.useInputMessages === 'always' || (ctx.useInputMessages === 'ondemand' && (ctx.isInvalid || ctx.hint))\">\r\n <ui-validation-message class=\"invalid\" *ngIf=\"ctx.isInvalid\" [validationErrors]=\"ctx.validationErrors\"></ui-validation-message>\r\n <div class=\"hint\" *ngIf=\"!ctx.isInvalid && ctx.hint\" [innerHTML]=\"ctx.hint\"></div>\r\n <ng-container *ngIf=\"!ctx.label\">\r\n <ng-content select=\".counter-bottom\"></ng-content>\r\n </ng-container>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { UiSimpleComponent } from './ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-simple-layout',\r\n templateUrl: './ui-simple-layout.component.html'\r\n // styleUrls: [ './ui-simple-layout.component.scss' ]\r\n})\r\nexport class UiSimpleLayoutComponent {\r\n\r\n @Input() ctx: UiSimpleComponent;\r\n\r\n}\r\n","<ui-base-layout [ctx]=\"ctx\">\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-top\">\r\n {{ ctx.componentFormControl.value ? ctx.componentFormControl.value.length : 0 }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-bottom\">\r\n {{ ctx.componentFormControl.value ? ctx.componentFormControl.value.length : 0 }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n</ui-base-layout>\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\nimport { ControlColor, ControlSize } from '../ui.model';\r\n\r\n@Component({\r\n selector: 'ui-action-icon',\r\n templateUrl: './action-icon.component.html',\r\n styleUrls: ['./action-icon.component.scss']\r\n})\r\nexport class ActionIconComponent implements OnInit {\r\n\r\n @Input() size: ControlSize = 'normal';\r\n\r\n @Input() color: ControlColor = 'primary';\r\n\r\n @Input() disabled = false;\r\n\r\n @Input() busy = false;\r\n\r\n @Input() matIcon = 'close';\r\n\r\n @HostBinding('class')\r\n get class() {\r\n return `${this.size} ${this.color}${this.disabled ? ' disabled': ''}${this.busy ? ' busy' : ''}`;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<mat-icon>{{matIcon}}</mat-icon>\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SkipSelf,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlContainer, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\ntype PrefixSuffix = { icon: string, tooltip?: string };\r\n@Component({\r\n selector: 'ui-input',\r\n templateUrl: './input.component.html',\r\n// styleUrls: [ './input.component.scss' ],\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss' ],\r\n\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: InputComponent\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: InputComponent\r\n }\r\n ]\r\n})\r\nexport class InputComponent extends UiSimpleComponent\r\n implements OnInit { // }, ControlValueAccessor { // }, ControlValueAccessor, Validator { // }, AfterViewInit {\r\n\r\n // UiSimpleComponent = InputComponent;\r\n\r\n // @Input() placeholder = '';\r\n // @Input() label: string | undefined;\r\n // @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n // @Input() hint: string | undefined;\r\n // @Input() validators: UiValidators | undefined;\r\n // @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n // @Input() formControlName;\r\n\r\n // componentFormControl: UntypedFormControl;\r\n //\r\n // ngControl: NgControl;\r\n //\r\n // @Input() validators: UiValidators | undefined;\r\n // @Input() formControlName;\r\n //\r\n // @Input() placeholder = '';\r\n // @Input() label: string | undefined;\r\n // @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'always';\r\n // @Input() hint?: string;\r\n // @Input() size: 'small' | 'smaller' | 'normal' | 'larger' | 'large' = 'normal';\r\n\r\n @Input() prefixIcon: PrefixSuffix;\r\n @Input() suffixIcon: PrefixSuffix;\r\n @Input() type: 'text' | 'number' | 'password' = 'text';\r\n @Input() clearButton = false;\r\n @Input() activeIcons = true;\r\n @Input() forceHasPrefix = false;\r\n @Input() forceHasSuffix = false;\r\n\r\n // @HostBinding('class.centered')\r\n @Input() centered = false;\r\n\r\n @ViewChild('input') input: ElementRef | undefined;\r\n @ViewChild('prefix', { static: true }) prefix: ElementRef | undefined;\r\n @ViewChild('suffix', { static: true }) suffix: ElementRef | undefined;\r\n\r\n @Output() focusChanged = new EventEmitter<boolean>();\r\n @Output() keyPressed = new EventEmitter<KeyboardEvent>();\r\n\r\n get hasPrefix() {\r\n return (this.prefixIcon && this.prefixIcon.icon !== '') || this.prefix?.nativeElement?.innerText !== '' || this.forceHasPrefix;\r\n }\r\n\r\n get hasSuffix() {\r\n return (this.suffixIcon && this.suffixIcon.icon !== '') || this.suffix?.nativeElement?.innerText !== '' || this.forceHasSuffix;\r\n }\r\n\r\n // control = new FormControl();\r\n\r\n required = false;\r\n hasFocus = false;\r\n\r\n value: string;\r\n\r\n // control;\r\n\r\n\r\n // onTouched = () => {};\r\n // onChange = (value) => {};\r\n\r\n // get showInvalid(): boolean {\r\n // return true;\r\n // // return this.control.touched && !!this.control.errors;\r\n // }\r\n\r\n // get validationMessage(): string {\r\n // // console.log(this.control?.errors);\r\n // let e: any = {code: 'Neznámá chyba'};\r\n // const errors = this.control?.errors || {};\r\n // Object.keys(errors).find(a => {\r\n // e = {code: a, data: errors[a]};\r\n // return true;\r\n // });\r\n // switch (e.code) {\r\n // case 'required':\r\n // return this.translateService.instant('ui.controls.validation.required');\r\n // case 'email':\r\n // return this.translateService.instant('ui.controls.validation.email');\r\n // case 'matDatepickerParse':\r\n // return this.translateService.instant('ui.controls.validation.matDatepickerParse');\r\n // case 'maxlength':\r\n // return this.translateService.instant('ui.controls.validation.maxlength', e.data);\r\n // case 'minlength':\r\n // return this.translateService.instant('ui.controls.validation.minlength', e.data);\r\n // case 'positive':\r\n // return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');\r\n // case 'custom':\r\n // return this.translateService.instant(e.data);\r\n // default:\r\n // return this.translateService.instant(e.code);\r\n // }\r\n // }\r\n\r\n get maxLenRequired(): boolean {\r\n return true;\r\n // return this.control.value && (this.control.value.length > (this.validators?.maxLength || 0));\r\n }\r\n\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n /*\r\n bud pres @Optional() @Self() public control: NgControl a control.valueAccessor = this => ztratime ale custom validaci\r\n anebo pres DI jako providers a pak this.control = viz ngOnInit - pokud jej vubec potrebujem\r\n\r\n */\r\n // private injector: Injector,\r\n // @Optional() @Self() public control: NgControl,\r\n // @Self() private controlDirective: NgControl,\r\n ) {\r\n super(null, controlContainer);\r\n\r\n // this.componentFormControl = new FormControl();\r\n // super();\r\n // super(undefined, /*ngControl*/ translateService);\r\n // super(control);\r\n // console.log(control);\r\n // if (control) {\r\n // control.valueAccessor = this;\r\n // }\r\n\r\n // if (ngControl != null) {\r\n // // Setting the value accessor directly (instead of using\r\n // // the providers) to avoid running into a circular import.\r\n // ngControl.valueAccessor = this;\r\n // }\r\n }\r\n\r\n get showClearButton(): boolean {\r\n return this.clearButton && this.componentFormControl?.value !== '';\r\n }\r\n\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n // console.log('probiha vubec oninit?');\r\n // if (this.ngControl) {\r\n // console.log('from ngControl....??');\r\n // if (this.formControl) {\r\n // this.componentFormControl = this.formControl;\r\n // } else {\r\n // this.componentFormControl = this.ngControl.control as UntypedFormControl;\r\n // }\r\n // setTimeout(() => {\r\n // this.applyValidators();\r\n // });\r\n // } else {\r\n // const control = this.formControlName ?\r\n // (this.controlContainer as FormGroupDirective).control.get(this.formControlName) : this.formControl;\r\n // this.componentFormControl.setValidators(control.validator);\r\n // this.componentFormControl.valueChanges.subscribe(v => console.log('onitin sub', v));\r\n // control._componentFormControl = this.componentFormControl;\r\n // if (control._markAsTouched === undefined) {\r\n // // control._componentFormControl = this.componentFormControl;\r\n // console.log('overriding markAsTouched for', this.formControlName);\r\n // control._markAsTouched = control.markAsTouched;\r\n // control.markAsTouched = ({onlySelf}: { onlySelf?: boolean } = {}): void => {\r\n // console.log('marking as touched', this.componentFormControl.value, control.value, this.xxx.value, control._componentFormControl.value);\r\n // control._markAsTouched({onlySelf});\r\n // setTimeout(() => control._componentFormControl.markAsTouched(), 1000);\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n clearValue(): void {\r\n this.componentFormControl?.setValue('');\r\n this.input?.nativeElement.focus();\r\n }\r\n\r\n focus(): void {\r\n this.input?.nativeElement.focus();\r\n }\r\n\r\n onFocus(focus: boolean): void {\r\n this.hasFocus = focus;\r\n this.focusChanged.emit(focus);\r\n }\r\n\r\n onKeypressed($event: any): void {\r\n this.keyPressed.emit($event);\r\n }\r\n\r\n // registerOnChange(onChange: any): void {\r\n // this.onChange = onChange;\r\n // }\r\n //\r\n // registerOnTouched(onTouched: any): void {\r\n // this.onTouched = onTouched;\r\n // }\r\n\r\n // registerOnValidatorChange(fn: () => void): void {\r\n // }\r\n\r\n // setDisabledState(isDisabled: boolean): void {\r\n // // isDisabled ? this.control.disable() : this.control.enable();\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // // this.control = control;\r\n // // console.log(control, control.value, control.errors);\r\n // if (this.value === 'error') {\r\n // return { customError: 'muj error'}\r\n // } else {\r\n // return null;\r\n // }\r\n // // console.log('custom validate');\r\n // // return null;\r\n // }\r\n //\r\n // writeValue(obj: any): void {\r\n // console.log('writevalue: ', obj);\r\n // this.componentFormControl.setValue(obj);\r\n // // this.value = obj;\r\n // // this.control.setValue(obj);\r\n // }\r\n //\r\n // registerOnChange(fn: any): void {\r\n // }\r\n //\r\n // registerOnTouched(fn: any): void {\r\n // }\r\n //\r\n // setDisabledState(isDisabled: boolean): void {\r\n // }\r\n\r\n // modelChange($event: any) {\r\n // console.log($event);\r\n // this.onTouched();\r\n // this.onChange($event)\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // console.log(this.label, 'validate');\r\n // return this.componentFormControl.errors;\r\n // // return undefined;\r\n // }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (this.parentFormControl) {\r\n return this.parentFormControl._componentFormControl.errors;\r\n }\r\n // console.log('validate', this.componentFormControl.errors);\r\n // // this.componentFormControl.setErrors( { custom: 'xxx' });\r\n // this.componentFormControl.setErrors( this.componentFormControl.errors);\r\n // console.log('validate 2', this.componentFormControl.errors);\r\n // return this.componentFormControl.errors;\r\n // console.log(this.componentFormControl.errors, control.errors, this.parentFormControl.errors, this);\r\n // return this.componentFormControl.errors;\r\n }\r\n}\r\n\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [ngClass]=\"{'has-suffix': hasSuffix, 'has-prefix': hasPrefix, 'has-clear-icon': showClearButton, 'active-icons': activeIcons, 'has-focus': hasFocus}\">\r\n <input #input [ngClass]=\"{centered: centered}\" [type]=\"type\" [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" (keydown)=\"onKeypressed($event)\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\" />\r\n <div #prefix><ng-content select=\"[slot=prefix]\"></ng-content></div>\r\n <div #suffix><ng-content select=\"[slot=suffix]\"></ng-content></div>\r\n <mat-icon *ngIf=\"prefixIcon\" class=\"prefix-icon\" [matTooltip]=\"prefixIcon.tooltip\">{{ prefixIcon.icon }}</mat-icon>\r\n <mat-icon *ngIf=\"suffixIcon\" class=\"suffix-icon\" [matTooltip]=\"suffixIcon.tooltip\">{{ suffixIcon.icon }}</mat-icon>\r\n <ui-action-icon [size]=\"'small'\" [color]=\"'warn'\" *ngIf=\"showClearButton\" (click)=\"clearValue()\" [matIcon]=\"'clear'\" class=\"clear-icon\"></ui-action-icon>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { Component, Inject, Input, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\n\r\n@Component({\r\n selector: 'ui-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss', './select.component.scss' ]\r\n})\r\n\r\nexport class SelectComponent extends UiSimpleComponent implements OnInit {\r\n\r\n @Input() multiple = false;\r\n @Input() triggerFormatter: any;\r\n @Input() valueAttribute: string | undefined;\r\n @Input() resetText: string | undefined;\r\n @Input() displayAttribute: string | undefined;\r\n\r\n @Input() options: any[] = [];\r\n @Input() optionFormatter: ((arg: any) => string | undefined) | undefined;\r\n @Input() optionTemplateRef?: TemplateRef<any>;\r\n @Input() triggerTemplateRef?: TemplateRef<any>;\r\n @Input() panelClass;\r\n @Input() allowEmptySelection = false;\r\n\r\n @ViewChild('select') select: MatSelect;\r\n\r\n lastCount = -1;\r\n overoption = false;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService) {\r\n super(ngControl);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n if (this.optionFormatter === undefined) {\r\n this.optionFormatter = o => this.displayAttribute ? o[this.displayAttribute] : o;\r\n }\r\n if (this.multiple && this.componentFormControl) {\r\n this.lastCount = this.componentFormControl.value.length;\r\n this.componentFormControl.valueChanges.subscribe(v => {\r\n if (v.length === 1 && this.lastCount === 0 && this.overoption) {\r\n this.select.selectionChange.emit(this.optionToValue(v));\r\n this.select.close();\r\n }\r\n this.lastCount = v.length;\r\n });\r\n }\r\n }\r\n\r\n optionToValue = (o: any) => this.valueAttribute ? o[this.valueAttribute] : o;\r\n\r\n selectOption(o: any, select: MatSelect) {\r\n select.selectionChange.emit(this.optionToValue(o));\r\n select.close();\r\n }\r\n\r\n selectAll() {\r\n this.componentFormControl.setValue(this.options.map(o => this.optionToValue(o)));\r\n }\r\n\r\n clearAll() {\r\n this.componentFormControl.setValue([]);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<mat-select class=\"control-container\" #select [panelClass]=\"panelClass\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" [multiple]=\"multiple\">\r\n\r\n <mat-select-trigger *ngIf=\"triggerTemplateRef\">\r\n <ng-template [ngTemplateOutlet]=\"triggerTemplateRef\" [ngTemplateOutletContext]=\"{option:componentFormControl?.value}\" ></ng-template>\r\n </mat-select-trigger>\r\n\r\n <mat-select-trigger *ngIf=\"triggerFormatter\">{{componentFormControl?.value ? triggerFormatter(componentFormControl?.value) : ''}}</mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"resetText\">{{resetText}}</mat-option>\r\n\r\n <mat-option *ngFor=\"let o of options\" [value]=\"optionToValue(o)\" >\r\n\r\n <div class=\"option-container\" (mouseenter)=\"overoption = true;\" (mouseleave)=\"overoption = false\">\r\n\r\n <ng-container *ngIf=\"optionTemplateRef\">\r\n <ng-template [ngTemplateOutlet]=\"optionTemplateRef\" [ngTemplateOutletContext]=\"{option:o}\" ></ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplateRef\">\r\n {{optionFormatter(o)}}\r\n </ng-container>\r\n\r\n <mat-icon class=\"select-one\" *ngIf=\"multiple && componentFormControl?.value?.length === 0\" (click)=\"selectOption(o, select)\">north_west</mat-icon>\r\n </div>\r\n\r\n </mat-option>\r\n\r\n <div class=\"buttons\" *ngIf=\"multiple\">\r\n <ui-button style=\"margin-right: auto;\" [kind]=\"'basic'\" [size]=\"'smaller'\" [label]=\"translateService.instant('ui.controls.ui-select.clear-selection')\" (click)=\"clearAll()\"></ui-button>\r\n <ui-button [size]=\"'smaller'\" [label]=\"translateService.instant('ui.controls.ui-select.all')\" (click)=\"selectAll()\"></ui-button>\r\n <ui-button [size]=\"'smaller'\" style=\"padding-left: 0.2em;\" [disabled]=\"componentFormControl?.value?.length === 0 && !allowEmptySelection\" [label]=\"translateService.instant('ui.controls.ui-select.apply-selection') + (componentFormControl?.value?.length > 0 ? ' (' + componentFormControl.value.length + ')' : '')\" (click)=\"select.close()\"></ui-button>\r\n </div>\r\n\r\n</mat-select>\r\n\r\n</ui-simple-layout>\r\n","import { EventEmitter, Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { UploadFile, UploadInput } from 'ngx-uploader';\r\nimport { Subject } from 'rxjs';\r\n// import { UiFileUploaderComponent } from '../file-uploader/ui-file-uploader.component';\r\n\r\n// export interface IGetAuthHeader {\r\n// getAuthHeader: () => { [key: string]: string };\r\n// }\r\n\r\nexport type IUiFileServiceMessages = 'cropInvalidFileType' | 'extensionNotAllowed' | 'fileAdded' | 'fileRemoved';\r\n\r\nexport interface IUiFileService {\r\n getAuthHeader: () => { [ key: string ]: string },\r\n uploadUrl: string;\r\n // // upload64Url: string;\r\n getMediaSrc: (size: string, data: any, options: any) => string,\r\n getPreviewUrl: (size: string, any) => string,\r\n addFileImgSrc: string;\r\n getMimeType: (data: any) => string;\r\n imageSizes: {\r\n [key: string]: [number, number]\r\n };\r\n concurrentUploads: number,\r\n useRetinaSrc: boolean,\r\n\r\n fileValidation?: (size: string, file: UploadFile) => Promise<boolean>\r\n}\r\n\r\nexport const UI_FILESERVICE = new InjectionToken<IUiFileService>('IUiFileService');\r\n\r\n// export const FileServiceConfigService = new InjectionToken<FileServiceConfig>('FileServiceConfig');\r\n\r\n@Injectable()\r\nexport class UiFileService {\r\n\r\n uploadInput: EventEmitter<UploadInput> = new EventEmitter<UploadInput>();\r\n\r\n uploadSubscription = new Subject();\r\n\r\n filesToRemove: string[] = [];\r\n controls = new Set<any>();\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) public fileServiceConfig: IUiFileService) {\r\n this.uploadSubscription.subscribe((v: any) => {\r\n switch (v.action) {\r\n case 'register': this.controls.add(v.data); return;\r\n case 'destroy': this.controls.delete(v.data); return;\r\n\r\n case 'uploadStarted':\r\n let cnt = 0;\r\n this.controls.forEach(c => cnt += c.hasFilesToUpload ? 1 : 0);\r\n if (cnt === 0) {\r\n this.uploadSubscription.next({action: 'uploadSuccess'});\r\n }\r\n break;\r\n\r\n case 'uploadControlFailed':\r\n case 'uploadControlSuccess':\r\n let cnt2 = 0;\r\n this.controls.forEach(c => cnt2 += c.hasFilesToUpload ? 1 : 0);\r\n if (cnt2 === 0) {\r\n this.uploadSubscription.next({action: v.action === 'uploadControlFailed' ? 'uploadFailed' : 'uploadSuccess'});\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n\r\n public upload(): Promise<'uploadSuccess' | 'uploadFailed'> {\r\n const promises = [];\r\n this.controls.forEach(c => promises.push(c.beforeSave()));\r\n\r\n return new Promise<'uploadSuccess' | 'uploadFailed'>((res, rej) => {\r\n\r\n this.uploadSubscription.subscribe((v: any) => {\r\n if (v.action === 'uploadSuccess' || v.action === 'uploadFailed') {\r\n res(v.action);\r\n }\r\n });\r\n\r\n this.uploadSubscription.next({action: 'uploadStarted'});\r\n\r\n Promise.all(promises).then((r) => {\r\n\r\n const event: UploadInput = {\r\n type: 'uploadAll',\r\n url: this.fileServiceConfig.uploadUrl,\r\n method: 'POST',\r\n headers: this.fileServiceConfig.getAuthHeader()\r\n };\r\n\r\n this.uploadInput.emit(event);\r\n\r\n })\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\r\nimport { IUiFileService, UI_FILESERVICE, UiFileService } from '../services/ui-file.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'ui-file',\r\n templateUrl: './file.component.html',\r\n styleUrls: ['./file.component.scss']\r\n})\r\nexport class FileComponent implements OnInit, OnChanges {\r\n\r\n @Input() fileSize = 'default';\r\n @Input() srcOptions;\r\n @Input() srcData: any;\r\n @Input() srcUrl: { src: string, mimeType?: string };\r\n get fitImageFileSize() {\r\n if (!this.fileServiceConfig.imageSizes[this.fileSize]) {\r\n console.error('Missing filesize for ' + this.fileSize);\r\n }\r\n return this.fileServiceConfig.imageSizes[this.fileSize][0] < 0 || this.fileServiceConfig.imageSizes[this.fileSize][1] < 0\r\n }\r\n\r\n visible = false;\r\n src;\r\n srcUrlMimeType;\r\n nativeFileSizeRatio = -1;\r\n nativeFileWidth;\r\n nativeFileHeight;\r\n\r\n @HostBinding('style.width')\r\n get width(): string {\r\n if (this.fitImageFileSize) {\r\n if (this.nativeFileSizeRatio === -1) {\r\n return '100%';\r\n } else {\r\n return this.nativeFileWidth + 'px'\r\n }\r\n } else {\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px' : undefined;\r\n }\r\n }\r\n\r\n @HostBinding('style.maxWidth')\r\n get maxWidth(): string {\r\n if (this.fileServiceConfig.imageSizes[this.fileSize][0] < 0) {\r\n return this.width;\r\n }\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][0] + 'px' : undefined;\r\n }\r\n\r\n @HostBinding('style.height')\r\n get height(): string {\r\n if (this.fitImageFileSize) {\r\n if (this.nativeFileSizeRatio === -1) {\r\n return '100%';\r\n } else {\r\n return this.nativeFileHeight + 'px';\r\n }\r\n } else {\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px' : undefined;\r\n }\r\n }\r\n\r\n @HostBinding('style.maxHeight')\r\n get maxHeight(): string {\r\n if (this.fileServiceConfig.imageSizes[this.fileSize][1] < 0) {\r\n return this.height;\r\n }\r\n return this.fileServiceConfig.imageSizes[this.fileSize] ? this.fileServiceConfig.imageSizes[this.fileSize][1] + 'px' : undefined;\r\n }\r\n\r\n get isVideo() {\r\n return this.mime.startsWith('video/');\r\n }\r\n\r\n get mime() {\r\n if (this.srcUrlMimeType) {\r\n return this.srcUrlMimeType\r\n } else {\r\n if (this.srcData.nativeFile) {\r\n return this.srcData.nativeFile.type;\r\n }\r\n return this.fileServiceConfig.getMimeType(this.srcData);\r\n }\r\n }\r\n\r\n get useRetinaSrc() {\r\n return this.fileServiceConfig.useRetinaSrc\r\n }\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) private fileServiceConfig: IUiFileService,\r\n private domSanitizer: DomSanitizer,\r\n private fileService: UiFileService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.srcData) {\r\n this.nativeFileSizeRatio = -1;\r\n if (changes.srcData.currentValue.nativeFile) {\r\n this.src = this.domSanitizer.bypassSecurityTrustUrl(URL.createObjectURL(changes.srcData.currentValue.nativeFile));\r\n\r\n const img = new Image();\r\n\r\n img.onload = () => {\r\n if (this.fitImageFileSize) {\r\n this.nativeFileSizeRatio = Math.max(img.width / this.fileServiceConfig.imageSizes[this.fileSize][0],\r\n img.height / this.fileServiceConfig.imageSizes[this.fileSize][1], 1);\r\n } else {\r\n this.nativeFileSizeRatio = 1;\r\n }\r\n this.nativeFileWidth = img.width / this.nativeFileSizeRatio;\r\n this.nativeFileHeight = img.height / this.nativeFileSizeRatio;\r\n URL.revokeObjectURL(img.src);\r\n };\r\n\r\n img.src = URL.createObjectURL(changes.srcData.currentValue.nativeFile);\r\n\r\n } else {\r\n this.src = this.fileServiceConfig.getMediaSrc(this.fileSize, changes.srcData.currentValue, this.srcOptions);\r\n }\r\n }\r\n if (changes.srcUrl) {\r\n this.src = changes.srcUrl.currentValue?.src;\r\n if (this.src) {\r\n this.srcUrlMimeType = changes.srcUrl.currentValue?.mimeType || 'image/png';\r\n } else {\r\n this.srcUrlMimeType = undefined;\r\n }\r\n }\r\n }\r\n}\r\n","<mat-spinner *ngIf=\"visible\"></mat-spinner>\r\n<img *ngIf=\"!isVideo && useRetinaSrc\" [src]=\"src\" [srcset]=\"src + ' 2x'\"/>\r\n<img *ngIf=\"!isVideo && !useRetinaSrc\" [src]=\"src\"/>\r\n<video *ngIf=\"isVideo\" muted controls [src]=\"src\"></video>\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Host,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SkipSelf\r\n} from '@angular/core';\r\nimport { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { UploaderOptions, UploadFile, UploadInput, UploadOutput } from 'ngx-uploader';\r\nimport { IUiFileService, IUiFileServiceMessages, UI_FILESERVICE, UiFileService } from '../services/ui-file.service';\r\nimport { Dimensions, ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\nimport { skip } from 'rxjs';\r\n\r\nexport interface UploadOutputEx extends UploadOutput {\r\n file: UploadFileEx;\r\n}\r\n\r\nexport interface UploadFileEx extends UploadFile {\r\n imagePreview?: any;\r\n base64?: any;\r\n}\r\n\r\nexport interface IUiUploaderUserMessage {\r\n message: IUiFileServiceMessages,\r\n data: any\r\n}\r\n\r\n@Component({\r\n selector: 'ui-file-uploader',\r\n templateUrl: './ui-file-uploader.component.html',\r\n styleUrls: [ './ui-file-uploader.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: UiFileUploaderComponent,\r\n }]\r\n})\r\nexport class UiFileUploaderComponent extends UiSimpleComponent implements OnInit, OnDestroy {\r\n\r\n @Input() maxFiles = 1;\r\n @Input() multiple = true;\r\n @Input() crop = false;\r\n @Input() cropRounded = false;\r\n @Input() cropMaxWidth;\r\n @Input() fileSize = 'default';\r\n @Input() customFileMenu = false;\r\n @Input() addHint;\r\n @Input() newFilePosition: 'first' | 'last' = 'last';\r\n\r\n @Input() templates: { menuTemplate?: any, addFileTemplate?: any, fileTemplate?: any } = {}\r\n\r\n get menuTemplate() {\r\n return this.templates?.menuTemplate;\r\n }\r\n\r\n get addFileTemplate() {\r\n return this.templates?.addFileTemplate;\r\n }\r\n\r\n get fileTemplate() {\r\n return this.templates?.fileTemplate;\r\n }\r\n\r\n @Input() previewPosition: 'left' | 'bottom' | 'above' = 'bottom';\r\n\r\n @Output() imageCropped = new EventEmitter();\r\n @Output() fileEvent = new EventEmitter<IUiUploaderUserMessage>();\r\n\r\n uploadOptions: UploaderOptions = {\r\n concurrency: this.fileServiceConfig.concurrentUploads\r\n };\r\n\r\n public uploading = false;\r\n\r\n changeFileIndex;\r\n\r\n showCropper = false;\r\n menuVisible: any;\r\n showCropPreview = {};\r\n cropPreviewTimeouts = {};\r\n cropSourceImages = {};\r\n cropperImageLoaded = {};\r\n imagesDone = {};\r\n transform: ImageTransform = {};\r\n canvasRotation = {}\r\n\r\n public files : { custom?: any, $newFile?: UploadFile }[];\r\n\r\n public responseFiles;\r\n\r\n refreshAddInput = false;\r\n\r\n fileMenuOpened;\r\n\r\n patchingValues = false;\r\n\r\n inputArray = false;\r\n dragging = false;\r\n\r\n uploaderId = Math.round(Math.random() * 1000000);\r\n\r\n constructor(@Optional() @Inject(UI_FILESERVICE) private fileServiceConfig: IUiFileService,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService,\r\n @Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n private fileService: UiFileService) {\r\n\r\n super(null, controlContainer);\r\n\r\n this.fileService.uploadSubscription.next({action: 'register', data: this});\r\n\r\n this.fileService.uploadSubscription.subscribe((v: any) => {\r\n switch (v.action) {\r\n case 'uploadStarted': this.uploading = true; break;\r\n case 'uploadFailed':\r\n case 'uploadSuccess':\r\n setTimeout(() => {\r\n this.uploading = false;\r\n });\r\n this.patchValues();\r\n }\r\n });\r\n }\r\n\r\n get uploadInput(): EventEmitter<UploadInput> {\r\n return this.fileService.uploadInput;\r\n }\r\n\r\n croppedImages = {};\r\n\r\n get editable() {\r\n return this.componentFormControl.enabled;\r\n }\r\n\r\n get ngAddStyle() {\r\n return {\r\n width: Math.abs(this.fileServiceConfig.imageSizes[this.fileSize][0]) + 'px',\r\n height: Math.abs(this.fileServiceConfig.imageSizes[this.fileSize][1]) + 'px',\r\n }\r\n }\r\n\r\n get aspectRatio() {\r\n return this.fileServiceConfig.imageSizes[this.fileSize][0] / this.fileServiceConfig.imageSizes[this.fileSize][1];\r\n }\r\n\r\n get addFileImgSrc() {\r\n return this.fileServiceConfig.addFileImgSrc;\r\n }\r\n\r\n cropDone(f) {\r\n return !f.$newFile || this.imagesDone[f.$newFile.id];\r\n }\r\n\r\n // ngOnInit(): void {\r\n // super.ngOnInit();\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n this.fileService.uploadSubscription.next({action: 'destroy', data: this});\r\n }\r\n\r\n remove(f: any): void {\r\n if (f.$newFile) {\r\n this.uploadInput.emit({type: 'remove', id: f.$newFile.id});\r\n }\r\n this.files.splice(this.files.indexOf(f), 1);\r\n this.prepareResponse();\r\n // this.onChange(this.inputArray ? this.files : (this.files.length > 0 ? this.files[0] : null));\r\n this.fileEvent.emit({ message: 'fileRemoved', data: f });\r\n// this.patchValues();\r\n }\r\n\r\n patchValues(): void {\r\n this.patchingValues = true;\r\n // if (this.inputArray) {\r\n // this.componentFormControl.setValue(this.files.map(f => f.custom));\r\n // } else {\r\n // this.componentFormControl.setValue(this.files.length === 0 ? null : this.files[0].custom);\r\n // }\r\n this.patchingValues = false;\r\n }\r\n\r\n get hasFilesToUpload(): boolean {\r\n return !!this.files.find(f => f.$newFile && f.$newFile.progress.status !== 2);\r\n }\r\n\r\n canImagePreview(type: string) {\r\n return type.startsWith('image/') || type.startsWith('video/');\r\n }\r\n\r\n onUploadOutput($event: UploadOutput, skipCustomValidation = false): void {\r\n // console.log($event);\r\n switch ($event.type) {\r\n case 'start':\r\n break;\r\n\r\n case 'dragOver':\r\n this.dragging = true;\r\n break;\r\n case 'dragOut':\r\n case 'drop':\r\n this.dragging = false;\r\n break;\r\n\r\n case 'addedToQueue':\r\n if (this.crop && !$event.file.type.startsWith('image/')) {\r\n this.uploadInput.emit({ type: 'remove', id: $event.file.id });\r\n this.fileEvent.emit({ message: 'cropInvalidFileType', data: $event.file });\r\n return;\r\n }\r\n\r\n if (!skipCustomValidation && this.fileServiceConfig.fileValidation) {\r\n this.fileServiceConfig.fileValidation(this.fileSize, $event.file).then(valid => {\r\n if (valid) {\r\n this.onUploadOutput($event, true)\r\n } else {\r\n this.uploadInput.emit({ type: 'remove', id: $event.file.id });\r\n // this.fileEvent.emit({ message: 'cropInvalidFileType', data: $event.file });\r\n }\r\n })\r\n } else {\r\n let f;\r\n if (this.changeFileIndex !== undefined) {\r\n f = this.files[this.changeFileIndex];\r\n if (f.$newFile) {\r\n this.uploadInput.emit({ type: 'remove', id: f.$newFile.id });\r\n }\r\n f.$newFile = $event.file;\r\n f.custom = $event.file;\r\n this.changeFileIndex = undefined;\r\n } else {\r\n f = { custom: $event.file, $newFile: $event.file };\r\n if (this.newFilePosition === 'last') {\r\n this.files.push(f);\r\n } else {\r\n this.files.unshift(f);\r\n }\r\n }\r\n if (this.canImagePreview($event.file.type)) {\r\n if (this.crop) {\r\n this.canvasRotation[$event.file.id] = 0;\r\n this.cropSourceImages[$event.file.id] = $event.file.nativeFile;\r\n this.cropperImageLoaded[$event.file.id] = false;\r\n }\r\n }\r\n this.prepareResponse();\r\n this.fileEvent.emit({ message: 'fileAdded', data: f });\r\n }\r\n break;\r\n\r\n case 'done':\r\n const df = this.files.find(f => f.$newFile === $event.file);\r\n if (df) {\r\n if (df.$newFile.responseStatus === 200) {\r\n this.files[this.files.indexOf(df)].custom = df.$newFile.response;\r\n df.$newFile = null;\r\n } else {\r\n // console.log('error on upload', df.$event);\r\n }\r\n }\r\n if (!this.hasFilesToUpload) {\r\n this.prepareResponse(false);\r\n this.fileService.uploadSubscription.next({\r\n action: this.files.find(f => !!f.$newFile) ? 'uploadControlFailed' : 'uploadControlSuccess'\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n\r\n prepareResponse(doemit = true) {\r\n if (this.inputArray) {\r\n if (!this.responseFiles) {\r\n this.responseFiles = [];\r\n }\r\n this.responseFiles.length = 0;\r\n this.files.forEach(f => this.responseFiles.push({...f.custom, $newFile: f.$newFile}));\r\n } else {\r\n if (this.files.length === 0) {\r\n this.responseFiles = null;\r\n } else {\r\n if (!this.responseFiles) {\r\n this.responseFiles = {};\r\n }\r\n Object.keys(this.files[0].custom).forEach(k => {\r\n this.responseFiles[k] = this.files[0].custom[k];\r\n });\r\n this.responseFiles.$newFile = this.files[0].$newFile;\r\n }\r\n }\r\n if (doemit) {\r\n this.onChange(this.responseFiles);\r\n }\r\n\r\n // console.log('emit', this.files[1], { ...this.files[1].custom, $newFile: this.files[1].$newFile });\r\n // this.onChange(this.inputArray ?\r\n // this.files.map(f => ({ ...f.custom, $newFile: f.$newFile})) :\r\n // (this.files.length > 0 ? { ...this.files[0].custom, $newFile: this.files[0].$newFile } : null));\r\n // this.onChange(this.inputArray ?\r\n // this.files :\r\n // (this.files.length > 0 ? this.files[0] : null));\r\n }\r\n\r\n beforeSave() {\r\n return new Promise((res, rej) => {\r\n this.files.forEach(f => {\r\n if (f.$newFile && f.$newFile.progress.status === 2) {\r\n f.$newFile.progress.status = 0;\r\n }\r\n if (this.crop && f.$newFile && !this.imagesDone[f.$newFile.id]) {\r\n this.cropperDone(f.$newFile.id);\r\n }\r\n })\r\n setTimeout(() => {\r\n res('done');\r\n }, 250);\r\n })\r\n }\r\n\r\n fileChangeEvent(event: any, f: any): void {\r\n this.changeFileIndex = this.files.indexOf(f);\r\n }\r\n\r\n startCropPreview(id) {\r\n clearTimeout(this.cropPreviewTimeouts[id]);\r\n this.showCropPreview[id] = !!this.cropSourceImages[id];\r\n }\r\n\r\n stopCropPreview(id) {\r\n this.cropPreviewTimeouts[id] = setTimeout(() => {\r\n this.showCropPreview[id] = false;\r\n }, 250);\r\n }\r\n\r\n zoomCroppedImage(dir, id) {\r\n let scale = this.transform[id].scale;\r\n scale += dir;\r\n if (scale < 0.1) {\r\n scale = 0.1;\r\n }\r\n this.transform[id] = {\r\n ...this.transform[id],\r\n scale\r\n };\r\n }\r\n\r\n rotateCroppedImage(dir, id) {\r\n this.canvasRotation[id] += dir;\r\n const flippedH = this.transform[id].flipH;\r\n const flippedV = this.transform[id].flipV;\r\n this.transform[id] = {\r\n ...this.transform[id],\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n }\r\n\r\n onImageCropped(event: ImageCroppedEvent, id) {\r\n this.croppedImages[id] = event.base64;\r\n this.imageCropped.emit(event.base64);\r\n }\r\n\r\n imageLoaded(id) {\r\n this.showCropper = true;\r\n setTimeout(() => {\r\n this.transform[id] = {\r\n scale: 1\r\n };\r\n });\r\n }\r\n\r\n cropperReady(sourceImageDimensions: Dimensions, id) {\r\n this.cropperImageLoaded[id] = true;\r\n }\r\n\r\n loadImageFailed() {\r\n }\r\n\r\n toggleMenuVisibility(f) {\r\n this.fileMenuOpened = f;\r\n }\r\n\r\n menuClick() {\r\n this.fileMenuOpened = undefined;\r\n }\r\n\r\n\r\n writeValue(obj: any): void {\r\n this.inputArray = obj instanceof Array;\r\n if (this.inputArray) {\r\n this.files = obj.map(f => ({ custom: f, $newFile: null }));\r\n } else {\r\n this.files = obj ? [ { custom:obj, $newFile: null} ] : [];\r\n }\r\n this.cropSourceImages = {};\r\n }\r\n\r\n cropperDone(id) {\r\n const f = this.files.find(fx => fx.$newFile && fx.$newFile.id === id);\r\n if (f) {\r\n const url = this.croppedImages[id];\r\n fetch(url)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n f.$newFile.nativeFile = new File([ blob ], 'crop.png', {\r\n type: 'image/png'\r\n });\r\n f.$newFile.name = 'crop.png';\r\n f.$newFile.size = f.$newFile.nativeFile.size;\r\n f.$newFile.type = f.$newFile.nativeFile.type;\r\n this.imagesDone[id] = true;\r\n })\r\n }\r\n }\r\n}\r\n","<div class=\"label\" *ngIf=\"label\">\r\n <div class=\"text-container\" [matTooltip]=\"required ? translateService.instant('ui.controls.validation.required') : undefined\" [matTooltipPosition]=\"'above'\">\r\n <div class=\"text\">{{label}}</div>\r\n <div *ngIf=\"required\" class=\"required\">*</div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"files-container\" [ngClass]=\"{dragging: dragging, disabled: uploading || !editable}\">\r\n\r\n <div class=\"existing-files\">\r\n\r\n <div class=\"file-container\" *ngFor=\"let f of files\">\r\n\r\n <div class=\"file-menu\" (click)=\"toggleMenuVisibility(f)\" *ngIf=\"!customFileMenu && editable && !uploading\">\r\n <mat-icon>menu</mat-icon>\r\n </div>\r\n <div class=\"file-menu-container mat-elevation-z2\" [ngClass]=\"{visible: f === fileMenuOpened}\" (click)=\"menuClick()\" (mouseleave)=\"menuClick()\">\r\n <ng-container *ngIf=\"!menuTemplate\">\r\n <label class=\"menu-item\">{{ translateService.instant('ui.controls.ui-file-uploader.menu.change') }}\r\n <input *ngIf=\"!refreshAddInput\" style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </label>\r\n <div class=\"menu-item\" (click)=\"remove(f)\">{{ translateService.instant('ui.controls.ui-file-uploader.menu.delete') }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{fileInput: fileInput}\"></ng-template>\r\n <ng-template #fileInput>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"crop && !cropDone(f)\" (mouseenter)=\"startCropPreview(f.$newFile.id)\" (mouseleave)=\"stopCropPreview(f.$newFile.id)\">\r\n <div class=\"crop-container\" [ngStyle]=\"ngAddStyle\">\r\n\r\n <ui-file *ngIf=\"false && files.length > 0 && !cropSourceImages\" [fileSize]=\"fileSize\" [srcData]=\"files[0].custom\" [ngClass]=\"{rounded: cropRounded}\"></ui-file>\r\n\r\n <mat-spinner *ngIf=\"!cropperImageLoaded[f.$newFile.id] && cropSourceImages[f.$newFile.id]\" [diameter]=\"75\"></mat-spinner>\r\n\r\n <image-cropper *ngIf=\"cropSourceImages[f.$newFile.id]\"\r\n [imageFile]=\"cropSourceImages[f.$newFile.id]\"\r\n [maintainAspectRatio]=\"true\"\r\n [containWithinAspectRatio]=\"false\"\r\n [aspectRatio]=\"aspectRatio\"\r\n [resizeToWidth]=\"cropMaxWidth\"\r\n [onlyScaleDown]=\"false\"\r\n [roundCropper]=\"cropRounded\"\r\n [canvasRotation]=\"canvasRotation[f.$newFile.id]\"\r\n [transform]=\"transform[f.$newFile.id]\"\r\n [alignImage]=\"'center'\"\r\n [style.display]=\"showCropper ? null : 'none'\"\r\n [format]=\"'png'\"\r\n (imageCropped)=\"onImageCropped($event, f.$newFile.id)\"\r\n (imageLoaded)=\"imageLoaded(f.$newFile.id)\"\r\n (cropperReady)=\"cropperReady($event, f.$newFile.id)\"\r\n (loadImageFailed)=\"loadImageFailed()\"\r\n ></image-cropper>\r\n\r\n <div class=\"crop-preview mat-elevation-z2\" [class]=\"previewPosition\" *ngIf=\"true || (showCropPreview[f.$newFile.id] && cropperImageLoaded[f.$newFile.id])\">\r\n <div class=\"crop-menu\">\r\n <mat-icon (click)=\"zoomCroppedImage(.1, f.$newFile.id)\">zoom_in</mat-icon>\r\n <mat-icon (click)=\"zoomCroppedImage(- .1, f.$newFile.id)\">zoom_out</mat-icon>\r\n <mat-icon (click)=\"rotateCroppedImage(-1, f.$newFile.id)\">rotate_left</mat-icon>\r\n <mat-icon (click)=\"rotateCroppedImage(1, f.$newFile.id)\">rotate_right</mat-icon>\r\n <div style=\"flex: 1 1 100%\"></div>\r\n <label class=\"menu-item\">\r\n <mat-icon>upload_file</mat-icon>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </label>\r\n <mat-icon (click)=\"remove(f)\">delete_outline</mat-icon>\r\n <div style=\"flex: 1 1 100%\"></div>\r\n <mat-icon (click)=\"cropperDone(f.$newFile.id)\">done</mat-icon>\r\n </div>\r\n <img [src]=\"croppedImages[f.$newFile.id]\" [ngClass]=\"{rounded: cropRounded}\"/>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <ng-container *ngIf=\"!crop || cropDone(f)\">\r\n <ng-container *ngIf=\"fileTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"fileTemplate\" [ngTemplateOutletContext]=\"{file: f, fileInput: fileInput2}\"></ng-template>\r\n <ng-template #fileInput2>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (change)=\"fileChangeEvent($event, f)\"\r\n (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\">\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ui-file *ngIf=\"!fileTemplate\" [fileSize]=\"fileSize\" [srcData]=\"f.$newFile ? f.$newFile: f.custom\" [ngClass]=\"{rounded: crop && cropRounded}\">\r\n </ui-file>\r\n\r\n <ng-container *ngIf=\"f.$newFile\">\r\n <div *ngIf=\"f.$newFile.responseStatus && f.$newFile.responseStatus !== 200\" class=\"progress-container error\">\r\n {{ translateService.instant('ui.controls.ui-file-uploader.uploadError', f.$newFile.response) }}\r\n </div>\r\n <div *ngIf=\"!f.$newFile.responseStatus && f.$newFile.progress.status === 1\" class=\"progress-container\">\r\n <div class=\"progress\" [ngStyle]=\"{width: f.$newFile.progress.data.percentage + '%'}\"></div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"file-container add\" ngFileDrop [options]=\"uploadOptions\" (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\" [ngClass]=\"{visible: files.length < maxFiles || maxFiles === 0}\" [ngStyle]=\"addFileTemplate ? {} : ngAddStyle\">\r\n <label>\r\n <ng-container *ngIf=\"addFileTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"addFileTemplate\"></ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"!addFileTemplate\">\r\n <div class=\"upload-image-container\"></div>\r\n <img [src]=\"addFileImgSrc\" [ngClass]=\"{'with-hint': addHint}\" />\r\n <div *ngIf=\"addHint\" class=\"add-hint\">{{addHint}}</div>\r\n </ng-container>\r\n <input style=\"display: none;\" type=\"file\" ngFileSelect [options]=\"uploadOptions\" (uploadOutput)=\"onUploadOutput($event)\" [uploadInput]=\"uploadInput\" [multiple]=\"maxFiles === 0 && multiple\">\r\n </label>\r\n </div>\r\n\r\n</div>\r\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-expander',\r\n templateUrl: './expander.component.html',\r\n styleUrls: ['./expander.component.scss']\r\n})\r\nexport class ExpanderComponent implements OnInit {\r\n\r\n @HostBinding('class.expanded')\r\n @Input() expanded = false;\r\n\r\n @HostBinding('class')\r\n @Input() direction: 'right-down' | 'up-down' = 'right-down';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<mat-icon>keyboard_arrow_up</mat-icon>\r\n","import { Directive, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiForceVisibility]',\r\n exportAs: 'ForceVisibilityDirective'\r\n})\r\nexport class ForceVisibilityDirective implements OnInit {\r\n\r\n private static disabled = false;\r\n\r\n @Input() visibilityWithin: HTMLElement;\r\n @Input() visibilityPadding = 15;\r\n @Input() visibilityOnRequestOnly = false;\r\n @Input() visibilityEmitChange = false;\r\n @Input() visibilityFromTop = 0;\r\n\r\n @Output() visibilityChanged = new EventEmitter<boolean>();\r\n\r\n private visible;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n\r\n public static disableFor(timeoutMs: number): void {\r\n this.disabled = true;\r\n setTimeout(() => this.disabled = false, timeoutMs);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.visibilityOnRequestOnly && !this.visibilityEmitChange) {\r\n setTimeout(() => {\r\n this.forceVisibility();\r\n }, 125);\r\n }\r\n if (this.visibilityEmitChange) {\r\n if (!this.visibilityWithin) {\r\n throw Error('traceVisibilityChanged requires visibilityWithin')\r\n } else {\r\n this.visible = this.isVisible();\r\n this.visibilityWithin.onscroll = () => {\r\n const v = this.isVisible();\r\n if (v !== this.visible) {\r\n this.visible = v;\r\n this.visibilityChanged.emit(v);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private isVisible() {\r\n const rect = (this.el.nativeElement as HTMLElement).getBoundingClientRect();\r\n const rectIn = this.visibilityWithin.getBoundingClientRect();\r\n return rect.top + +this.visibilityPadding - rectIn.bottom < 0;\r\n }\r\n\r\n public forceVisibility(): void {\r\n if (ForceVisibilityDirective.disabled) {\r\n return;\r\n }\r\n const rect = (this.el.nativeElement as HTMLElement).getBoundingClientRect();\r\n const padding = +this.visibilityPadding;\r\n if (this.visibilityWithin) {\r\n const rectIn = this.visibilityWithin.getBoundingClientRect();\r\n let diff = rect.top + rect.height + padding - rectIn.bottom;\r\n if (diff > 0) {\r\n this.visibilityWithin.scrollBy(0, diff);\r\n } else {\r\n diff = rect.top - rectIn.top - padding;\r\n if (diff < 0) {\r\n this.visibilityWithin.scrollBy(0, diff);\r\n }\r\n }\r\n } else {\r\n if (this.visibilityFromTop !== 0) {\r\n document.getElementsByTagName('app-root')[0].scrollTo(0, rect.top - +this.visibilityFromTop);\r\n } else {\r\n if (rect.bottom > window.innerHeight) {\r\n document.getElementsByTagName('app-root')[0].scrollBy(0, rect.bottom - window.innerHeight + 15);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import {MatDialogRef} from '@angular/material/dialog';\r\nimport {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent {\r\n\r\n @Input() title = '';\r\n @Input() draggable = false; // true;\r\n @Input() hideCloseButton = false;\r\n\r\n @Input() close: (() => void) | undefined;\r\n\r\n constructor(public dialogRef: MatDialogRef<DialogComponent>) {\r\n }\r\n\r\n clickClose(): void {\r\n if (!this.close) {\r\n this.dialogRef.close();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n}\r\n","<ui-action-icon *ngIf=\"title && !hideCloseButton\" (click)=\"clickClose()\" class=\"close-icon\" [matIcon]=\"'close'\" [color]=\"'warn'\"></ui-action-icon>\r\n\r\n<ng-container *ngIf=\"title\">\r\n <h1 class=\"draggable\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle mat-dialog-title *ngIf=\"draggable\">\r\n {{title}}\r\n </h1>\r\n <h1 mat-dialog-title *ngIf=\"!draggable\">\r\n {{title}}\r\n </h1>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n","import { Component, Inject, Injectable, TemplateRef } from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE, UiTranslateService } from './ui-translate.service';\r\n\r\nexport interface MessageBoxButton {\r\n id: string;\r\n text: string;\r\n kind?: 'basic' | 'flat' | 'stroked';\r\n color?: 'primary' | 'accent' | 'warn';\r\n process?: () => Promise<any>;\r\n disabled?: () => boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'ui-message-box-modal',\r\n template: `\r\n <ui-dialog [title]=\"title\" [hideCloseButton]=\"hideCloseButton\">\r\n <div mat-dialog-content *ngIf=\"message\" style=\"padding: 7px 16px 12px 16px;\">\r\n <div [innerHTML]=\"message\" style=\"line-height: 24px;\"></div>\r\n <pre *ngIf=\"errorMessage\" [innerHTML]=\"errorMessage\"></pre>\r\n <pre *ngIf=\"errorDetail\" [innerHTML]=\"errorDetail\"></pre>\r\n </div>\r\n \r\n <div mat-dialog-content *ngIf=\"template\" style=\"padding: 7px 16px 12px 16px;\">\r\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\r\n </div>\r\n\r\n <div mat-dialog-actions>\r\n <div class=\"buttons\">\r\n <ui-button *ngFor=\"let b of buttons\" [color]=\"b.color || 'primary'\" [tabIndex]=\"-1\"\r\n [kind]=\"b.kind || 'stroked'\" [busy]=\"processing === b\" [disabled]=\"!!processing || (b.disabled && b.disabled())\" (click)=\"buttonClick(b)\" [label]=\"b.text\"></ui-button>\r\n </div>\r\n </div>\r\n </ui-dialog>\r\n `\r\n})\r\nexport class MessageBoxModalComponent {\r\n\r\n message;\r\n errorMessage;\r\n errorDetail;\r\n buttons: MessageBoxButton[] = [];\r\n title: string;\r\n template: any;\r\n hideCloseButton = false;\r\n processing: MessageBoxButton = null;\r\n\r\n constructor(public dialogRef: MatDialogRef<MessageBoxModalComponent>,\r\n public sanitizer: DomSanitizer,\r\n @Inject(MAT_DIALOG_DATA) private data: any) {\r\n\r\n if (data.message) {\r\n this.message = this.sanitizer.bypassSecurityTrustHtml(data.message);\r\n }\r\n\r\n if (this.data.options.template) {\r\n this.template = this.data.options.template;\r\n }\r\n\r\n if (this.data.options.errorMessage) {\r\n this.errorMessage = this.sanitizer.bypassSecurityTrustHtml(data.options.errorMessage);\r\n }\r\n if (this.data.options.errorDetail) {\r\n this.errorDetail = this.sanitizer.bypassSecurityTrustHtml(data.options.errorDetail);\r\n }\r\n if (this.data.options.hideCloseButton !== undefined) {\r\n this.hideCloseButton = this.data.options.hideCloseButton;\r\n }\r\n\r\n this.buttons = data.options.buttons ? data.options.buttons : [{id: 'close', text: 'Close'}];\r\n this.title = data.options.title;\r\n }\r\n\r\n close(result: any): void {\r\n this.dialogRef.close(result);\r\n }\r\n\r\n buttonClick(b: MessageBoxButton) {\r\n if (b.process) {\r\n this.processing = b;\r\n b.process().then(r => {\r\n this.close(r);\r\n }).catch(e => {\r\n this.processing = null;\r\n })\r\n } else {\r\n this.close(b.id);\r\n }\r\n }\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageBoxService {\r\n\r\n constructor(private dialog: MatDialog,\r\n @Inject(UI_TRANSLATESERVICE) public translateService: IUiTranslateService,) {\r\n }\r\n\r\n confirm(message: string, options: {\r\n buttons?: MessageBoxButton[],\r\n title?: string,\r\n errorMessage?: string,\r\n errorDetail?: string,\r\n hideCloseButton?: boolean,\r\n maxWidth?: string\r\n } = {}): Observable<any> {\r\n const config = new MatDialogConfig();\r\n config.disableClose = true;\r\n config.minWidth = '340px';\r\n config.maxWidth = options.maxWidth || '600px';\r\n config.width = '40vw';\r\n config.data = {message, options};\r\n\r\n return this.dialog.open(MessageBoxModalComponent, config).afterClosed();\r\n }\r\n\r\n open(options: {\r\n buttons?: MessageBoxButton[],\r\n title?: string,\r\n errorMessage?: string,\r\n errorDetail?: string,\r\n hideCloseButton?: boolean,\r\n maxWidth?: string,\r\n message?: string,\r\n template?: TemplateRef<any>\r\n } = {}): Observable<any> {\r\n const config = new MatDialogConfig();\r\n config.disableClose = true;\r\n config.minWidth = '340px';\r\n config.maxWidth = options.maxWidth || '600px';\r\n config.width = '40vw';\r\n config.data = {message: options.message, options};\r\n\r\n return this.dialog.open(MessageBoxModalComponent, config).afterClosed();\r\n }\r\n\r\n confirmDelete(title: string, message: string): Observable<any> {\r\n const options = {\r\n title,\r\n buttons: [\r\n { id: 'cancel', text: this.translateService.instant('ui.messagebox.button.cancel') },\r\n { id: 'delete', text: this.translateService.instant('ui.messagebox.button.delete'), color: 'warn', kind: 'flat' }\r\n ]\r\n };\r\n // @ts-ignore\r\n return this.confirm(message, options);\r\n }\r\n\r\n\r\n}\r\n","import { Component, Host, HostBinding, Input, OnInit, Optional, SkipSelf } from '@angular/core';\r\nimport { UiBaseComponent } from '../base/ui-base.component';\r\nimport {\r\n AbstractControl, ControlContainer,\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n UntypedFormGroup, FormGroupDirective,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ui-currency',\r\n templateUrl: './currency.component.html',\r\n styleUrls: [ './currency.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: CurrencyComponent\r\n }, {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: CurrencyComponent\r\n }\r\n ]\r\n})\r\nexport class CurrencyComponent extends UiBaseComponent implements OnInit, ControlValueAccessor, Validator {\r\n\r\n @Input() currencies: Partial<{ code: string; }>[] = [];\r\n @Input() currencyDisabled = false;\r\n @Input() formControlName: string;\r\n\r\n @HostBinding('class.amount-hidden')\r\n @Input() amountHidden = false;\r\n\r\n formGroup = new UntypedFormGroup({\r\n amount: new UntypedFormControl(),\r\n currency: new UntypedFormControl()\r\n });\r\n\r\n parentFormControl: AbstractControl;\r\n\r\n @HostBinding('class.focus')\r\n hasFocus = false;\r\n\r\n // @HostBinding('class')\r\n // get sizeClass(): string {\r\n // return this.size;\r\n // }\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer) {\r\n super();\r\n }\r\n\r\n onChange = (value) => {};\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.formGroup.valueChanges.subscribe(v => this.onChange(v));\r\n // this.formGroup = new FormGroup({\r\n // amount: new FormControl(this.control?.value.amount),\r\n // currency: new FormControl(this.currencies.find(c => c.code === this.control?.value.currency.code))\r\n // });\r\n // this.formGroup.valueChanges.subscribe(v => {\r\n // this.onChange(this.formGroup?.getRawValue());\r\n // });\r\n if (this.currencyDisabled) {\r\n this.formGroup.get('currency')?.disable();\r\n }\r\n // this.ngControl.control.statusChanges.subscribe(s => {\r\n // if (s === 'INVALID') {\r\n // // this.formGroup?.get('amount')?.setErrors(this.control?.errors || null);\r\n // this.formGroup?.get('currency')?.markAsTouched();\r\n // // this.formGroup?.get('currency')?.setErrors(this.control?.errors || null);\r\n // }\r\n // if (s === 'DISABLED') {\r\n // this.formGroup?.disable({emitEvent: false});\r\n // }\r\n // if (s === 'VALID') {\r\n // this.formGroup?.enable({emitEvent: false});\r\n // if (this.currencyDisabled) {\r\n // this.formGroup?.get('currency')?.disable({emitEvent: false});\r\n // }\r\n // }\r\n // });\r\n this.parentFormControl = (this.controlContainer as FormGroupDirective).control.get(this.formControlName);\r\n }\r\n\r\n // bindValidators(validators) {\r\n // console.log('binding validators', validators);\r\n // if (this.formGroup) {\r\n // this.formGroup.get('amount').setValidators(validators);\r\n // this.formGroup.get('currency').markAsTouched();\r\n // this.formGroup.get('currency').setErrors(validators);\r\n // }\r\n // }\r\n\r\n get isInvalid(): boolean {\r\n return this.parentFormControl.invalid;\r\n }\r\n\r\n get validationErrors(): ValidationErrors {\r\n return this.parentFormControl.errors;\r\n }\r\n\r\n focusChanged(hasFocus: boolean): void {\r\n this.hasFocus = hasFocus;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formGroup.get('amount').disable();\r\n if (!this.currencyDisabled) {\r\n this.formGroup.get('currency').disable();\r\n }\r\n } else {\r\n this.formGroup.get('amount').enable();\r\n if (!this.currencyDisabled) {\r\n this.formGroup.get('currency').enable();\r\n }\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return undefined;\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.formGroup.setValue(obj);\r\n }\r\n}\r\n","<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n","import { Component, Host, HostBinding, Input, OnInit, Optional, Self } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n // providers: [{\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => CheckboxComponent),\r\n // }]\r\n})\r\nexport class CheckboxComponent extends UiSimpleComponent implements OnInit {\r\n\r\n @Input() color: 'primary' | 'accent' | 'warn' = 'primary';\r\n @Input() useInputMessages: 'never' | 'always' | 'ondemand' = 'never';\r\n\r\n text;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl) {\r\n super(ngControl);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n if (this.label) {\r\n this.text = this.label;\r\n this.label = undefined;\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n <div class=\"control-container\">\r\n <mat-checkbox [formControl]=\"componentFormControl\" [color]=\"color\" [class]=\"size\">\r\n <div *ngIf=\"!text\"><ng-content></ng-content></div>\r\n <div *ngIf=\"text\" [innerHTML]=\"text\"></div>\r\n <div *ngIf=\"hint\" class=\"hint\" [innerHTML]=\"hint\"></div>\r\n </mat-checkbox>\r\n </div>\r\n</ui-simple-layout>\r\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() user: Partial<{ avatar: any, shortName: string, shortColour: string }> = {};\n\n @Input() srcOptions;\n\n @HostBinding('class')\n @Input() size: 'big' | 'bigger' | 'normal' | 'smaller' | 'small' | 'mini' = 'normal';\n\n get contrast(): string {\n const hexCode = this.user.shortColour.substring(1, 7);\n\n const hexR = parseInt(hexCode.substring(0, 2), 16);\n const hexG = parseInt(hexCode.substring(2, 4), 16);\n const hexB = parseInt(hexCode.substring(4, 6), 16);\n const contrastRatio = hexR * 0.299 + hexG * 0.587 + hexB * 0.114;\n\n return contrastRatio >= 200 ? 'black' : 'white';\n }\n\n constructor() { }\n\n}\n","<ui-file *ngIf=\"user.avatar || (!user.avatar && !user.shortName)\" [fileSize]=\"'avatar-' + size\" [srcData]=\"user.avatar || { mimeType: 'image/png'}\" [srcOptions]=\"srcOptions\" ></ui-file>\r\n<div *ngIf=\"!user.avatar && user.shortName\" [ngStyle]=\"{backgroundColor: user.shortColour, color: contrast}\">\r\n {{ user.shortName }}\r\n</div>\r\n","import {Component, Host, HostBinding, Input, OnInit, Optional, SkipSelf} from '@angular/core';\r\nimport {ControlContainer, UntypedFormGroup} from '@angular/forms';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'ui-submit-button',\r\n templateUrl: './submit-button.component.html',\r\n styleUrls: [ './submit-button.component.scss' ]\r\n})\r\nexport class SubmitButtonComponent implements OnInit {\r\n\r\n @Input() busy = false;\r\n @Input() disabled = false;\r\n @Input() formGroups: UntypedFormGroup | UntypedFormGroup[] = [];\r\n @Input() label = 'Save';\r\n @Input() submit: (() => void) | undefined;\r\n @Input() formInvalid: boolean | undefined;\r\n\r\n @HostBinding('class.with-close')\r\n @Input() prependCloseButton = true;\r\n\r\n constructor(public dialogRef: MatDialogRef<any>,\r\n @Optional() @Host() @SkipSelf()\r\n protected controlContainer: ControlContainer) { }\r\n\r\n ngOnInit(): void {\r\n if (this.formInvalid === undefined) {\r\n if (this.formGroups === undefined && this.controlContainer && this.controlContainer.control instanceof UntypedFormGroup) {\r\n this.formGroups = this.controlContainer.control;\r\n }\r\n if (!Array.isArray(this.formGroups)) {\r\n this.formGroups = [this.formGroups];\r\n }\r\n }\r\n }\r\n\r\n get formsValid(): boolean {\r\n if (this.formInvalid !== undefined) {\r\n return !this.formInvalid;\r\n } else {\r\n return !(this.formGroups as UntypedFormGroup[]).find(f => f.invalid);\r\n }\r\n }\r\n\r\n doSubmit(): void {\r\n (this.formGroups as UntypedFormGroup[]).forEach(f => f.markAllAsTouched());\r\n if (this.formsValid && this.submit) {\r\n this.submit();\r\n }\r\n }\r\n}\r\n","<ui-button *ngIf=\"prependCloseButton\" [label]=\"'Close'\" (click)=\"dialogRef.close()\"></ui-button>\r\n\r\n<ui-button [busy]=\"busy\"\r\n [disabled]=\"disabled || busy\" [type]=\"'submit'\"\r\n [formInvalid]=\"!formsValid\"\r\n [label]=\"label\" (click)=\"doSubmit()\"></ui-button>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n Optional,\r\n Output,\r\n Self,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\r\nimport { take } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'ui-text-area',\r\n templateUrl: './text-area.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss'],\r\n // providers: [{\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => TextAreaComponent),\r\n // }]\r\n})\r\nexport class TextAreaComponent extends UiSimpleComponent {\r\n\r\n @Input() rows = 5;\r\n\r\n @Input() autoResize = false;\r\n\r\n lastClientHeight = -1;\r\n // height = -1;\r\n\r\n\r\n @ViewChild('textarea') textarea: ElementRef;\r\n\r\n @Output() focusChanged = new EventEmitter<boolean>();\r\n\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl/*, private _ngZone: NgZone, private cdr: ChangeDetectorRef*/) {\r\n super(ngControl);\r\n }\r\n\r\n focus(): void {\r\n this.textarea.nativeElement.focus();\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n\r\n onFocus(focus: boolean): void {\r\n this.focusChanged.emit(focus);\r\n }\r\n\r\n\r\n // onKeydown() {\r\n // // setTimeout(() => {\r\n // console.log('onkeydown');\r\n // // if (this.lastClientHeight !== this.textarea.nativeElement.clientHeight + 20) {\r\n // this.height = this.textarea.nativeElement.clientHeight + 20;\r\n // // this.textarea.nativeElement.setAttribute('style', 'color: white; background: red; height: ' + this.height + 'px;');\r\n // // this.cdr.detectChanges();\r\n // this.lastClientHeight = this.height;\r\n // console.log(this.height);\r\n // // }\r\n // // });\r\n // }\r\n\r\n // @ViewChild('autosize') autosize: CdkTextareaAutosize;\r\n //\r\n // triggerResize() {\r\n // // Wait for changes to be applied, then trigger textarea resize.\r\n // this._ngZone.onStable.pipe(take(1)).subscribe(() => {\r\n // console.log('xxx');\r\n // this.autosize.resizeToFitContent(true)\r\n // });\r\n // }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"input-wrapper\">\r\n <ng-container *ngIf=\"componentFormControl\">\r\n <textarea *ngIf=\"autoResize \"#textarea matInput\r\n cdkTextareaAutosize cdkAutosizeMinRows=\"rows\"\r\n class=\"autoresize\"\r\n [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" [rows]=\"rows\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\"></textarea>\r\n <textarea *ngIf=\"!autoResize \"#textarea matInput\r\n [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" [rows]=\"rows\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\"></textarea>\r\n </ng-container>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { Component, EventEmitter, Inject, Optional, Output, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { IUiTranslateService, UI_TRANSLATESERVICE } from '../services/ui-translate.service';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: [ '../simple/ui-simple-layout.component.scss']\r\n // providers: [\r\n // {\r\n // provide: NG_VALUE_ACCESSOR,\r\n // multi: true,\r\n // useExisting: forwardRef(() => DateComponent),\r\n // }\r\n // ]\r\n})\r\n\r\nexport class DateComponent extends UiSimpleComponent { // implements ControlValueAccessor {\r\n // @Input() placeholder: string | undefined;\r\n // @Input() control;\r\n // // @Input() controlName;\r\n // @Input() label;\r\n // @Input() type;\r\n // @Input() floatLabel;\r\n\r\n @Output() doKeyup = new EventEmitter();\r\n\r\n @ViewChild('picker') picker?: TemplateRef<any>;\r\n @ViewChild('input') input?: TemplateRef<any>;\r\n\r\n onChange: any;\r\n hasFocus = false;\r\n\r\n controlTypeName = 'date';\r\n\r\n opening = false;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl) {\r\n super(ngControl);\r\n }\r\n\r\n open(): void {\r\n this.hasFocus = true;\r\n // this.opening = true;\r\n // this.picker.open();\r\n // setTimeout(() => {\r\n // this.input.nativeElement.focus();\r\n // this.opening = false;\r\n // }); // , 150);\r\n }\r\n\r\n close(): void {\r\n this.hasFocus = false;\r\n // if (!this.opening) {\r\n // this.picker.close();h\r\n // }\r\n }\r\n\r\n keyup(): void {\r\n this.doKeyup.emit();\r\n // this.onChange(this.control.value);\r\n }\r\n\r\n writeValue(obj: any): void { }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void { }\r\n\r\n setDisabledState(isDisabled: boolean): void { }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container has-suffix active-icons\" [ngClass]=\"{'has-focus': hasFocus}\">\r\n <input #input (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\" [ngClass]=\"{disabled: componentFormControl.disabled}\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {MatSort, SortDirection} from '@angular/material/sort';\n// import {PersistService} from '../../services/persist.service';\nimport {DomSanitizer} from '@angular/platform-browser';\n\nexport interface TableColumn {\n name: string;\n sortable?: boolean | ((row: any, direction?: SortDirection) => number | string);\n label?: string;\n colSpan?: (row: any) => number;\n formatter?: (row: any) => string;\n cellClass?: (row: any) => string;\n}\n\nexport interface TableOptions {\n sticky?: boolean;\n}\n@Component({\n selector: 'ui-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent implements OnInit, AfterViewInit {\n\n @Input() columns: TableColumn[] = [];\n @Input() dataSource: any;\n @Input() options: TableOptions | undefined;\n @Input() rowTemplates: any = {};\n @Input() headerTemplates: any = {};\n @Input() stateStoreKey = '';\n @Input() rowAction: (row: any) => void;\n\n @Input() matSortActive;\n @Input() matSortDirection;\n\n @ViewChild(MatSort) matSort: MatSort | undefined;\n\n get columnList(): string[] {\n return this.columns.map(c => c.name);\n }\n\n constructor(/*private persistService: PersistService, */private domSanitizer: DomSanitizer) { }\n\n ngOnInit(): void {\n this.options = {...{sticky: false}, ...this.options};\n if (this.dataSource) {\n // if (this.stateStoreKey !== '') {\n // const storeKey = this.stateStoreKey + '.sort';\n // const ms = this.persistService.get(storeKey, { active: '', direction: ''});\n // this.matSort.active = ms.active;\n // this.matSort.direction = ms.direction;\n // this.matSort.sortChange.subscribe(sc => {\n // this.persistService.set(storeKey, sc.direction === '' ? { active: '', direction: ''} : sc);\n // });\n // }\n if (this.columns.find(c => c.sortable !== undefined)) {\n this.dataSource.sortData = (rows: any[], sort: MatSort) => {\n if (sort.direction) {\n const sortColumn = this.columns.find(c => c.name === sort.active);\n if (sortColumn) {\n const res = sort.direction === 'asc' ? 1 : -1;\n return rows.sort((r1: any, r2: any) => {\n if (sortColumn.sortable === true) {\n return r1[sortColumn.name] < r2[sortColumn.name] ? -res : res;\n }\n if (typeof sortColumn.sortable === 'function') {\n return sortColumn.sortable(r1, sort.direction) < sortColumn.sortable(r2, sort.direction) ? -res : res;\n }\n return 0;\n });\n }\n }\n return rows;\n };\n }\n }\n }\n\n ngAfterViewInit() {\n this.dataSource.sort = this.matSort;\n }\n\n display(row: any, col: TableColumn): any {\n if (col.formatter) {\n return this.domSanitizer.bypassSecurityTrustHtml(col.formatter(row));\n } else {\n return row[col.name];\n }\n }\n\n rowClicked(row) {\n if (this.rowAction) {\n this.rowAction( row);\n }\n }\n}\n","<table mat-table matSort [dataSource]=\"dataSource\" style=\"width: 100%\" [matSortActive]=\"matSortActive\" [matSortDirection]=\"matSortDirection\">\n\n <ng-container *ngFor=\"let c of columns\" [matColumnDef]=\"c.name\">\n\n <ng-container *ngIf=\"c.sortable\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label}}</th>\n </ng-container>\n\n <ng-container *ngIf=\"!c.sortable\">\n <ng-container *ngIf=\"!headerTemplates[c.name]\">\n <th mat-header-cell *matHeaderCellDef>{{c.label}}</th>\n </ng-container>\n\n <ng-container *ngIf=\"headerTemplates[c.name]\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-template [ngTemplateOutlet]=\"headerTemplates[c.name]\"></ng-template>\n </th>\n </ng-container>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\" [colSpan]=\"c.colSpan ? c.colSpan(element) : 1\" [class]=\"c.cellClass ? c.cellClass(element) : ''\">\n <ng-container *ngIf=\"!c.colSpan || c.colSpan(element) > 0\">\n <ng-container *ngIf=\"rowTemplates[c.name]\">\n <ng-template [ngTemplateOutlet]=\"rowTemplates[c.name]\" [ngTemplateOutletContext]=\"{row:element}\" ></ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"!rowTemplates[c.name]\">\n <span [innerHTML]=\"display(element, c)\"></span>\n </ng-container>\n </ng-container>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnList; sticky: options?.sticky\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnList;\" (click)=\"rowClicked(row)\"></tr>\n</table>\n","import {Component, HostBinding, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-burger',\r\n templateUrl: './burger.component.html',\r\n styleUrls: ['./burger.component.scss']\r\n})\r\nexport class BurgerComponent implements OnInit {\r\n\r\n @HostBinding('class.open')\r\n @Input() open = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n"," <span></span>\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n","import { ChangeDetectorRef, Component, Host, Input, OnInit, Optional, SkipSelf, ViewChild } from '@angular/core';\r\nimport { ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, UntypedFormControl } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { UiBaseComponent } from '../base/ui-base.component';\r\nimport { InputComponent } from '../input/input.component';\r\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\r\n\r\n@Component({\r\n selector: 'ui-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: AutocompleteComponent\r\n }]\r\n})\r\nexport class AutocompleteComponent extends UiBaseComponent implements OnInit, ControlValueAccessor {\r\n\r\n private SHOWN_USERS_DELTA = 10;\r\n\r\n constructor(@Optional() @Host() @SkipSelf() protected controlContainer: ControlContainer,\r\n // @Optional() @Self() public ngControl: NgControl,\r\n private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n @Input() options?: any[];\r\n @Input() multiple = true;\r\n @Input() allowNew = false;\r\n @Input() displayAttribute = 'name';\r\n @Input() idAttribute = 'id';\r\n\r\n // value?: any;\r\n searchableOptions?: any[];\r\n filteredOptions: any[] = [];\r\n filteredMaxItemsShown = this.SHOWN_USERS_DELTA;\r\n\r\n // skipBlur = false;\r\n // typingStarted = false;\r\n messageShown = false;\r\n initialOption?: any;\r\n selectedOption?: any;\r\n lastEmittedId?: any;\r\n focusedOption?: any;\r\n alreadyAdded = false;\r\n optionsVisible = false;\r\n\r\n @ViewChild('input') input?: InputComponent;\r\n @ViewChild('trigger') optionsTrigger: CdkOverlayOrigin;\r\n\r\n inputFocused = false;\r\n inputControl = new UntypedFormControl('');\r\n checkboxSelection: Set<any> = new Set<any>();\r\n\r\n onChange: (value) => void;\r\n\r\n @Input() optionDisabled: (any) => boolean = () => false;\r\n @Input() optionFormatter: (any) => string = (o) => o[this.displayAttribute];\r\n\r\n protected buildSearchableOptions() {\r\n return this.options.map(o => ({\r\n ...o,\r\n unselectable: this.optionDisabled(o),\r\n searchString: `${this.optionFormatter(o)}`.toLowerCase()\r\n }));\r\n }\r\n\r\n protected filterOptions(text: string) {\r\n this.filteredMaxItemsShown = this.SHOWN_USERS_DELTA;\r\n return this.searchableOptions.filter(u => u.searchString.includes(text));\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // console.log('ngoninit');\r\n\r\n super.ngOnInit();\r\n\r\n // if (this.formControlName && this.controlContainer.control) {\r\n // this.control = this.controlContainer.control.get(this.formControlName) as FormControl;\r\n // }\r\n //\r\n // this.user = this.control.value;\r\n\r\n // this.value = this.control.value;\r\n\r\n this.searchableOptions = this.buildSearchableOptions();\r\n\r\n // if (this.control.disabled) {\r\n // this.inputControl.disable();\r\n // }\r\n\r\n // this.control.statusChanges.subscribe(v => {\r\n // if (v === 'DISABLED') {\r\n // this.inputControl.disable();\r\n // }\r\n // if (v === 'VALID') {\r\n // this.inputControl.enable();\r\n // }\r\n // });\r\n\r\n\r\n\r\n this.inputControl.valueChanges.pipe(debounceTime(200)).subscribe(v => {\r\n const lcv = v.toLowerCase();\r\n\r\n this.filteredOptions = this.filterOptions(lcv);\r\n\r\n if (this.filteredOptions.length > 0) {\r\n this.focusedOption = this.filteredOptions[0];\r\n } else {\r\n this.focusedOption = undefined;\r\n }\r\n\r\n if (v === '') {\r\n this.focusedOption = undefined;\r\n this.selectedOption = undefined;\r\n }\r\n\r\n // if (v !== '') {\r\n // if (this.newUsername === v) {\r\n // this.selectedUser = {id: null, fullName: v};\r\n // this.initialUser = this.selectedUser;\r\n // } else {\r\n // if (this.filteredGroupsAndUsers.length > 0) {\r\n // this.focusedGroup = this.filteredGroupsAndUsers[0];\r\n // this.focusedUser = this.focusedGroup.filteredUsers[0];\r\n // } else {\r\n // this.focusedGroup = null;\r\n // this.focusedUser = null;\r\n // }\r\n // if ((this.focusedUser && !this.focusedUser.unselectable) || this.focusedUser === this.initialUser) {\r\n // this.selectedUser = this.focusedUser;\r\n // } else {\r\n // this.selectedUser = null;\r\n // }\r\n // }\r\n // } else {\r\n // this.selectedUser = null;\r\n // this.focusedUser = null;\r\n // this.focusedGroup = null;\r\n // }\r\n\r\n // this.onChange(v);\r\n });\r\n\r\n // if (this.user !== null) {\r\n // let selectedUser = null;\r\n // this.groupsAndUsers.find(g => g.users.find(u => {\r\n // if (u.id === this.user.id) {\r\n // selectedUser = u;\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // }));\r\n //\r\n // if (selectedUser) {\r\n // this.inputControl.setValue(selectedUser.fullName);\r\n // this.selectedUser = selectedUser;\r\n // } else {\r\n // this.newUsername = this.user.fullName;\r\n // this.inputControl.setValue(this.user.fullName);\r\n // this.selectedUser = { id: null, fullName: this.newUsername };\r\n // }\r\n // } else {\r\n // this.selectedUser = null;\r\n // this.inputControl.setValue('');\r\n // }\r\n // this.initialUser = this.selectedUser;\r\n // }\r\n }\r\n\r\n inputFocusChanged(focused: boolean): void {\r\n if (focused) {\r\n this.optionsVisible = true;\r\n }\r\n }\r\n // setTimeout(() => {\r\n // if (!focused && this.skipBlur) {\r\n // this.skipBlur = false;\r\n // return;\r\n // }\r\n // if (!this.typingStarted && focused) {\r\n // this.inputControl.setValue(this.inputControl.value);\r\n // this.typingStarted = true;\r\n // }\r\n // if (!this.messageShown) {\r\n // this.inputFocused = focused;\r\n // if (!focused) {\r\n // this.emitSelection('focus lost');\r\n // }\r\n // }\r\n // }, 250);\r\n // }\r\n\r\n get hasCheckboxSelected(): boolean {\r\n return this.checkboxSelection.size > 0;\r\n }\r\n\r\n optionChecked(u: any): boolean {\r\n return this.checkboxSelection.has(u[this.idAttribute]);\r\n }\r\n\r\n select(u: any): void {\r\n if (this.hasCheckboxSelected || u.unselectable) {\r\n return;\r\n }\r\n if (!u.unselectable) {\r\n this.selectedOption = u;\r\n this.initialOption = u;\r\n this.toggleDropdown();\r\n }\r\n }\r\n\r\n toggleOptionCheckboxed(u: any): void {\r\n if (!u.unselectable) {\r\n this.checkboxSelection.has(u[this.idAttribute]) ?\r\n this.checkboxSelection.delete(u[this.idAttribute]) : this.checkboxSelection.add(u[this.idAttribute]);\r\n }\r\n this.input?.focus();\r\n }\r\n\r\n\r\n // get optionsVisible(): boolean {\r\n // return this.inputFocused && this.typingStarted;\r\n // }\r\n\r\n keyPressed(keyEvent: KeyboardEvent): void {\r\n this.lastEmittedId = -1;\r\n this.optionsVisible = true;\r\n // this.typingStarted = keyEvent.key !== 'Tab' && keyEvent.key !== 'Escape';\r\n if (keyEvent.key === 'Escape') {\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n this.optionsVisible = false;\r\n return;\r\n }\r\n if (keyEvent.key === 'Enter' && this.hasCheckboxSelected) {\r\n if (this.focusedOption && !this.focusedOption.unselectable) {\r\n this.toggleOptionCheckboxed(this.focusedOption);\r\n }\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n return;\r\n }\r\n // if (keyEvent.key === 'Enter' && this.filteredGroupsAndUsers.length === 0 && this.focusedUser === null && !this.alreadyAdded) {\r\n // this.newUser();\r\n // keyEvent.stopPropagation();\r\n // keyEvent.preventDefault();\r\n // return;\r\n // }\r\n if (keyEvent.key === 'Enter') {\r\n this.selectedOption = this.focusedOption;\r\n keyEvent.stopPropagation();\r\n keyEvent.preventDefault();\r\n this.toggleDropdown();\r\n return;\r\n }\r\n if ((keyEvent.key === 'ArrowDown' || keyEvent.key === 'ArrowUp') && !this.focusedOption) {\r\n if (this.filteredOptions.length > 0) {\r\n this.focusedOption = this.filteredOptions[0];\r\n // if (!this.focusedUser.unselectable || this.focusedUser === this.initialUser) {\r\n // this.selectedUser = this.focusedUser;\r\n // }\r\n this.selectedOption = this.focusedOption;\r\n return;\r\n }\r\n }\r\n if (keyEvent.key === 'ArrowDown' && this.focusedOption) {\r\n const idx = this.filteredOptions.indexOf(this.focusedOption);\r\n if (idx === this.filteredMaxItemsShown - 1) {\r\n this.filteredMaxItemsShown += this.SHOWN_USERS_DELTA;\r\n }\r\n if (idx < this.filteredOptions.length - 1) {\r\n this.focusedOption = this.filteredOptions[idx + 1];\r\n this.selectedOption = this.focusedOption;\r\n }\r\n }\r\n if (keyEvent.key === 'ArrowUp' && this.focusedOption) {\r\n const idx = this.filteredOptions.indexOf(this.focusedOption);\r\n if (idx > 0) {\r\n this.focusedOption = this.filteredOptions[idx - 1];\r\n this.selectedOption = this.focusedOption;\r\n }\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n toggleDropdown() {\r\n this.optionsVisible = false;\r\n this.emitSelection('toggle');\r\n }\r\n\r\n emitSelection(src?: string): void {\r\n this.initialOption = this.selectedOption;\r\n\r\n if (this.selectedOption) {\r\n const checkId = this.selectedOption.id === null ? 0 : this.selectedOption.id;\r\n if (this.lastEmittedId !== checkId) {\r\n this.lastEmittedId = checkId;\r\n this.onChange(this.options.find(o => o[this.idAttribute] === this.selectedOption[this.idAttribute]));\r\n this.inputControl.setValue(this.selectedOption[this.displayAttribute]);\r\n }\r\n } else {\r\n // this.control.setValue(null);\r\n this.onChange(null);\r\n this.inputControl.setValue('', {emitEvent: false});\r\n }\r\n\r\n\r\n\r\n // if (this.selectedOption) {\r\n // const checkId = this.selectedUser.id === null ? 0 : this.selectedUser.id;\r\n // if (this.lastEmittedId !== checkId) {\r\n // this.inputControl.setValue(this.selectedUser.fullName, {emitEvent: false});\r\n // if (this.selectedUser.id) {\r\n // this.groupsAndUsers.find(g => g.users.find(u => {\r\n // if (u.id === this.selectedUser.id) {\r\n // this.control.setValue(u);\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // }));\r\n // } else {\r\n // this.control.setValue(this.selectedUser);\r\n // }\r\n // this.lastEmittedId = checkId;\r\n // }\r\n // } else {\r\n // if (this.lastEmittedId !== null || this.lastEmittedId === -1/* || this.selectedUser?.unselectable*/) {\r\n // this.control?.setValue(null);\r\n // this.inputControl.setValue('', {emitEvent: false});\r\n // this.lastEmittedId = null;\r\n // }\r\n // }\r\n // this.typingStarted = false;\r\n }\r\n\r\n cancelCheckboxSelection(): void {\r\n this.checkboxSelection.clear();\r\n // this.skipBlur = true;\r\n // this.input?.focus();\r\n }\r\n\r\n useCheckboxSelection(): void {\r\n // this.newUsername = '';\r\n // const users = [];\r\n // this.groupsAndUsers.forEach(g => g.users.forEach(u => {\r\n // if (!users.includes(u) && this.checkboxSelection.has(u.id)) {\r\n // users.push(u);\r\n // }\r\n // }));\r\n const outputOptions = this.options.filter(o => this.checkboxSelection.has(o[this.idAttribute]) && !this.optionDisabled(o));\r\n if (outputOptions.length > 0) {\r\n this.selectedOption = outputOptions[0];\r\n this.inputControl.setValue(this.selectedOption[this.displayAttribute], {emitEvent: false});\r\n this.onChange(outputOptions);\r\n this.toggleDropdown();\r\n // this.control?.setValue(outputOptions);\r\n // this.typingStarted = false;\r\n // this.skipBlur = true;\r\n }\r\n this.checkboxSelection.clear();\r\n }\r\n\r\n newOption() {\r\n\r\n }\r\n\r\n loadMore(visible: boolean) {\r\n if (visible) {\r\n this.filteredMaxItemsShown += this.SHOWN_USERS_DELTA;\r\n }\r\n }\r\n\r\n public focus() {\r\n this.input?.focus();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n isDisabled ? this.inputControl.disable() : this.inputControl.enable();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n if (obj.id) {\r\n this.filteredOptions = this.searchableOptions.filter(so => so.id === obj.id);\r\n } else {\r\n this.filteredOptions = this.filterOptions(obj[this.displayAttribute].toLowerCase());\r\n }\r\n if (this.filteredOptions.length === 1) {\r\n this.selectedOption = this.filteredOptions[0];\r\n this.focusedOption = this.filteredOptions[0];\r\n }\r\n this.inputControl.setValue(obj[this.displayAttribute]);\r\n } else {\r\n this.filteredOptions = this.filterOptions('');\r\n }\r\n }\r\n}\r\n","<div class=\"wrapper\" #wrapper>\r\n <div *ngIf=\"optionsVisible\" (click)=\"toggleDropdown()\" class=\"overlay\"></div>\r\n <ui-input [formControl]=\"inputControl\" #input #trigger=\"cdkOverlayOrigin\" cdkOverlayOrigin (focusChanged)=\"inputFocusChanged($event)\" (keyPressed)=\"keyPressed($event)\" [placeholder]=\"placeholder\" [useInputMessages]=\"'never'\">\r\n <div slot=\"prefix\"><ng-content select=\"[slot=acprefix]\"></ng-content></div>\r\n </ui-input>\r\n\r\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"optionsVisible\">\r\n <div class=\"options-box\" style=\"display: flex; flex-direction: column\" [ngStyle]=\"{width: wrapper.offsetWidth + 'px'}\">\r\n <div class=\"options\" #options>\r\n\r\n <ng-container *ngFor=\"let option of filteredOptions; index as i\">\r\n <div *ngIf=\"i < filteredMaxItemsShown\" class=\"option-container\" [ngClass]=\"{selected: focusedOption === option}\">\r\n <mat-checkbox [checked]=\"optionChecked(option) || option.unselectable\" [disabled]=\"option.unselectable\" (change)=\"toggleOptionCheckboxed(option)\">\r\n <div class=\"option-container-inner\" (click)=\"select(option)\">\r\n <div class=\"option-option\" uiForceVisibility [visibilityWithin]=\"options\" [visibilityPadding]=\"4\" *ngIf=\"focusedOption === option\" [ngClass]=\"{unselectable: option.unselectable}\">\r\n {{optionFormatter(option)}}\r\n </div>\r\n <div class=\"option-option\" *ngIf=\"focusedOption !== option\" [ngClass]=\"{unselectable: option.unselectable}\">\r\n {{optionFormatter(option)}}\r\n </div>\r\n <mat-icon *ngIf=\"!hasCheckboxSelected && !option.unselectable\">north_west</mat-icon>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"filteredOptions.length >= filteredMaxItemsShown\" class=\"option-container\" uiForceVisibility [visibilityWithin]=\"options\" [visibilityEmitChange]=\"true\" (visibilityChanged)=\"loadMore($event)\">\r\n \r\n </div>\r\n\r\n\r\n <div *ngIf=\"filteredOptions.length === 0 && !focusedOption\" class=\"new-user\">\r\n <ng-container *ngIf=\"alreadyAdded\">\r\n <div style=\"text-align: center\">Uživatel {{inputControl.value}} už je mezi dlužníky</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!alreadyAdded\">\r\n <div style=\"text-align: center; padding: 1em 0\">Uživatele <strong>{{inputControl.value}}</strong> neznáme</div>\r\n <ui-button *ngIf=\"allowNew\" style=\"margin-top: 6px;\" [size]=\"'small'\" [label]=\"'Přidat jej?'\" (click)=\"newOption()\"></ui-button>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"filteredOptions.length === 0 && focusedOption\" class=\"new-user\">\r\n <div style=\"text-align: center\">Neznámý uživatel {{inputControl.value}}</div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"hasCheckboxSelected && filteredOptions.length > 0\" class=\"checkbox-buttons\">\r\n <ui-button [size]=\"'small'\" [kind]=\"'basic'\" [label]=\"'Zrušit výběr'\" (click)=\"cancelCheckboxSelection()\"></ui-button>\r\n <ui-button [size]=\"'small'\" [label]=\"'Použít výběr (' + checkboxSelection.size + ')'\" (click)=\"useCheckboxSelection()\"></ui-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n","import { Component, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'ui-action-button',\r\n templateUrl: './action-button.component.html',\r\n styleUrls: [ '../button/button.component.scss', './action-button.component.scss']\r\n})\r\nexport class ActionButtonComponent extends ButtonComponent implements OnInit {\r\n\r\n @Input() withPrimary = false;\r\n @Input() overlayAlignment: 'left' | 'right' = 'left';\r\n @Input() hasBackdrop = false;\r\n @Input() triggerTpl;\r\n @Input() autoClose = true;\r\n\r\n @Output() primaryClick = new EventEmitter<void>();\r\n @Output() overlayToggled = new EventEmitter<boolean>();\r\n\r\n @ViewChild('trigger1', { static: false }) trigger1;\r\n\r\n deferredRender = false;\r\n\r\n iconHover = false;\r\n\r\n @HostBinding('class')\r\n get class(): string {\r\n return super.class + (this.withPrimary ? ' with-primary' : '');\r\n }\r\n\r\n private rightPositions = [\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'}\r\n ];\r\n\r\n private leftPositions = [\r\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top'},\r\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom'},\r\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top'}\r\n ];\r\n\r\n openOverlay = false;\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(evt: KeyboardEvent) {\r\n if (this.openOverlay) {\r\n this.toggleOverlay(false);\r\n }\r\n }\r\n\r\n\r\n // constructor() {\r\n // super();\r\n // }\r\n\r\n get positions() {\r\n switch (this.overlayAlignment) {\r\n case 'left': return this.leftPositions;\r\n default: return this.rightPositions;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.deferredRender = true;\r\n });\r\n }\r\n\r\n toggleOverlay(status) {\r\n if (status || this.autoClose) {\r\n this.openOverlay = status;\r\n this.overlayToggled.emit(status);\r\n }\r\n }\r\n\r\n closeOverlay() {\r\n this.openOverlay = false;\r\n }\r\n\r\n togglePrimaryOverlay(status, $event) {\r\n this.toggleOverlay(status);\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n }\r\n}\r\n","<ng-container *ngIf=\"triggerTpl\">\r\n <div style=\"display: flex;\" (click)=\"toggleOverlay(true)\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\">\r\n <ng-template [ngTemplateOutlet]=\"triggerTpl\"></ng-template>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!triggerTpl && withPrimary\">\r\n <button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy, 'icon-hover': iconHover}\" [class]=\"class\" (click)=\"primaryClick.emit()\">\r\n <div class=\"hover-container\"></div>\r\n {{label}}\r\n <div class=\"mat-icon-container\" (mouseenter)=\"iconHover = true\" (mouseleave)=\"iconHover = false\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\" (click)=\"togglePrimaryOverlay(true, $event)\">\r\n ▼\r\n </div>\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!triggerTpl && !withPrimary\">\r\n <button matRipple [type]=\"type\" [disabled]=\"isDisabled || busy\" [ngClass]=\"{busy: busy}\" [class]=\"class\" cdkOverlayOrigin #trigger1=\"cdkOverlayOrigin\" (click)=\"toggleOverlay(true)\">\r\n {{label}}\r\n <div class=\"mat-icon-container\">\r\n ▼\r\n </div>\r\n <mat-progress-bar *ngIf=\"busy\" mode=\"indeterminate\" [color]=\"color\"></mat-progress-bar>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template *ngIf=\"deferredRender\" cdkConnectedOverlay [cdkConnectedOverlayPositions]=\"positions\" [cdkConnectedOverlayOrigin]=\"trigger1\" [cdkConnectedOverlayOpen]=\"openOverlay\" [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\" [cdkConnectedOverlayDisableClose]=\"!autoClose\" (overlayOutsideClick)=\"toggleOverlay(false)\">\r\n <ng-content></ng-content>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-radio',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss']\r\n})\r\nexport class RadioComponent { // extends UiSimpleComponent {\r\n\r\n @Input() value;\r\n @Input() label;\r\n @Input() color: 'primary' | 'accent' | 'warn' = 'primary'\r\n\r\n // constructor(@Optional() @Self() public ngControl: NgControl) {\r\n // super(ngControl);\r\n // }\r\n}\r\n","<mat-radio-button [value]=\"value\" [color]=\"color\">\r\n {{label}}\r\n</mat-radio-button>\r\n","import { Component, Input, OnChanges, Optional, Self, SimpleChanges } from '@angular/core';\r\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\r\nimport { UntypedFormControl, NgControl, Validators } from '@angular/forms';\r\n\r\n// export interface CheckboxGroupOption {\r\n// value: any,\r\n// label: string,\r\n// hint?: string\r\n// }\r\n\r\n@Component({\r\n selector: 'ui-checkbox-group',\r\n templateUrl: './checkbox-group.component.html',\r\n styleUrls: ['./checkbox-group.component.scss'],\r\n // providers: [\r\n // {\r\n // provide: NG_VALIDATORS,\r\n // multi: true,\r\n // useExisting: CheckboxGroupComponent\r\n // }\r\n // ]\r\n})\r\nexport class CheckboxGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges { // }, Validator {\r\n\r\n cbxs: any;\r\n\r\n private valueMode: 'array' | 'object';\r\n\r\n @Input() valueAttribute: string | undefined;\r\n @Input() displayAttribute = 'label';\r\n @Input() hintAttribute = 'hint';\r\n\r\n @Input() options: any[];\r\n @Input() optionEnabled = (option: any) => true;\r\n\r\n constructor(@Optional() @Self() public control: NgControl) {\r\n super(control);\r\n }\r\n\r\n // ngOnInit(): void {\r\n // super.ngOnInit();\r\n // }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n if (changes.options) {\r\n this.cbxs = [];\r\n this.valueMode = Array.isArray(this.control.value) ? 'array' : 'object';\r\n Object.keys(changes.options.currentValue).forEach(k => {\r\n const v = changes.options.currentValue[k];\r\n const ct = new UntypedFormControl(this.valueMode === 'array' ? this.control.value.includes(v) : this.control.value[k] === true);\r\n if (!this.optionEnabled(v)) {\r\n ct.disable();\r\n }\r\n ct.valueChanges.subscribe(() => {\r\n const value = this.valueMode === 'array' ? [] : {};\r\n let hasChecked = false;\r\n this.cbxs.forEach((cbx) => {\r\n const checked = cbx.control.value;\r\n hasChecked = hasChecked || checked;\r\n if (this.valueMode === 'array') {\r\n if (checked) {\r\n (value as any[]).push(cbx.value.value);\r\n }\r\n } else {\r\n value[cbx.key] = checked;\r\n }\r\n });\r\n this.componentFormControl.markAsTouched();\r\n this.componentFormControl.setValue(value);\r\n if (this.componentFormControl.hasValidator(Validators.required) && !hasChecked) {\r\n this.componentFormControl.setErrors({cbGroupRequired: true});\r\n } else {\r\n this.componentFormControl.setErrors(null);\r\n }\r\n });\r\n this.cbxs.push({\r\n control: ct,\r\n value: this.valueAttribute ? v[this.valueAttribute] : v,\r\n label: this.displayAttribute ? v[this.displayAttribute] : v,\r\n hint: this.hintAttribute ? v[this.hintAttribute] : undefined,\r\n key: this.valueMode === 'object' ? k : undefined\r\n })\r\n });\r\n }\r\n }\r\n\r\n // registerOnValidatorChange(fn: () => void): void {\r\n // }\r\n //\r\n // validate(control: AbstractControl): ValidationErrors | null {\r\n // console.log('validate');\r\n // return undefined;\r\n // }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<ui-checkbox *ngFor=\"let cbx of cbxs\" [formControl]=\"cbx.control\" [label]=\"cbx.label\" [hint]=\"cbx.hint\"></ui-checkbox>\r\n\r\n</ui-simple-layout>\r\n","import { Component, Input, OnChanges, OnInit, Optional, Self, SimpleChanges } from '@angular/core';\nimport { UiSimpleComponent } from '../simple/ui-simple.component';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'ui-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n // providers: [\n // {\n // provide: NG_VALIDATORS,\n // multi: true,\n // useExisting: CheckboxGroupComponent\n // }\n // ]\n})\nexport class RadioGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges {\n\n cbxs: any;\n id = Math.round(Math.random() * 999999);\n\n @Input() options;\n @Input() displayAttribute = 'name';\n @Input() valueAttribute;\n\n @Input() groupName = 'radio-' + this.id;\n\n @Input() optionEnabled = (option: any) => true;\n\n constructor(@Optional() @Self() public control: NgControl) {\n super(control);\n }\n\n // ngOnInit(): void {\n // super.ngOnInit();\n // }\n\n ngOnChanges(changes: SimpleChanges) {\n super.ngOnChanges(changes);\n if (changes.options) {\n this.cbxs = [];\n changes.options.currentValue.forEach(cv => {\n this.cbxs.push({\n value: this.valueAttribute ? cv[this.valueAttribute] : cv,\n label: cv[this.displayAttribute]\n })\n });\n }\n }\n\n // writeValue(obj: any): void {\n // if (this.componentFormControl) {\n // this.componentFormControl.setValue(obj);\n // }\n // }\n}\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n <mat-radio-group [formControl]=\"componentFormControl\" [name]=\"groupName\" [class]=\"size\">\r\n\r\n <mat-radio-button *ngFor=\"let cbx of cbxs\" [value]=\"cbx.value\" >{{cbx.label}}</mat-radio-button>\r\n\r\n </mat-radio-group>\r\n\r\n</ui-simple-layout>\r\n","import { NgModule } from '@angular/core';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_CHECKBOX_DEFAULT_OPTIONS, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { RouterModule } from '@angular/router';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MAT_DATE_LOCALE, MatRippleModule } from '@angular/material/core';\r\nimport { NgxUploaderModule } from 'ngx-uploader';\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { InputComponent } from './input/input.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { FileComponent } from './file/file.component';\r\nimport { UiFileUploaderComponent } from './file-uploader/ui-file-uploader.component';\r\nimport { ExpanderComponent } from './elements/expander/expander.component';\r\nimport { ForceVisibilityDirective } from './directives/force-visibility/force-visibility.directive';\r\nimport { MessageBoxModalComponent } from './services/message-box.service';\r\nimport { DialogComponent } from './dialog/dialog.component';\r\nimport { CurrencyComponent } from './currency/currency.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { AvatarComponent } from './avatar/avatar.component';\r\nimport { SubmitButtonComponent } from './submit-button/submit-button.component';\r\nimport { TextAreaComponent } from './text-area/text-area.component';\r\nimport { DateComponent } from './date/date.component';\r\nimport { TableComponent } from './table/table.component';\r\nimport { BurgerComponent } from './elements/burger/burger.component';\r\nimport { AutocompleteComponent } from './autocomplete/autocomplete.component';\r\nimport { UiFileService } from './services/ui-file.service';\r\nimport { UI_TRANSLATESERVICE, UiTranslateService } from './services/ui-translate.service';\r\nimport { ActionButtonComponent } from './action-button/action-button.component';\r\nimport { UiSimpleLayoutComponent } from './simple/ui-simple-layout.component';\r\nimport { UiBaseLayoutComponent } from './base/ui-base-layout.component';\r\nimport { ValidationMessageComponent } from './elements/validation-message/validation-message.component';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { RadioComponent } from './radio/radio.component';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS, MatRadioModule } from '@angular/material/radio';\r\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\r\nimport { ActionIconComponent } from './action-icon/action-icon.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n InputComponent,\r\n SelectComponent,\r\n FileComponent,\r\n UiFileUploaderComponent,\r\n ExpanderComponent,\r\n ForceVisibilityDirective,\r\n MessageBoxModalComponent,\r\n DialogComponent,\r\n CurrencyComponent,\r\n CheckboxComponent,\r\n AvatarComponent,\r\n SubmitButtonComponent,\r\n TextAreaComponent,\r\n DateComponent,\r\n TableComponent,\r\n BurgerComponent,\r\n AutocompleteComponent,\r\n ActionButtonComponent,\r\n UiBaseLayoutComponent,\r\n UiSimpleLayoutComponent,\r\n ValidationMessageComponent,\r\n RadioComponent,\r\n CheckboxGroupComponent,\r\n RadioGroupComponent,\r\n ActionIconComponent\r\n ],\r\n exports: [\r\n ActionButtonComponent,\r\n ActionIconComponent,\r\n AutocompleteComponent,\r\n AvatarComponent,\r\n BurgerComponent,\r\n ButtonComponent,\r\n CheckboxComponent,\r\n CheckboxGroupComponent,\r\n CurrencyComponent,\r\n DateComponent,\r\n DialogComponent,\r\n ExpanderComponent,\r\n FileComponent,\r\n ForceVisibilityDirective,\r\n InputComponent,\r\n MessageBoxModalComponent,\r\n RadioComponent,\r\n RadioGroupComponent,\r\n SelectComponent,\r\n SubmitButtonComponent,\r\n TableComponent,\r\n TextAreaComponent,\r\n UiFileUploaderComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatMomentDateModule,\r\n DragDropModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatSelectModule,\r\n NgxUploaderModule,\r\n MatProgressSpinnerModule,\r\n MatMenuModule,\r\n ImageCropperModule,\r\n RouterModule,\r\n OverlayModule,\r\n MatRippleModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSnackBarModule\r\n ],\r\n providers: [\r\n UiFileService,\r\n {provide: UI_TRANSLATESERVICE, useClass: UiTranslateService},\r\n {provide: MAT_DATE_LOCALE, useValue: 'cs-CZ'},\r\n {provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: {useUtc: false}},\r\n {provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'primary' }},\r\n {provide: MAT_CHECKBOX_DEFAULT_OPTIONS, useValue: { color: 'primary' }}\r\n ]\r\n})\r\nexport class UiModule {\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nexport type ToastType = 'info' | 'success' | 'warning' | 'fail';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n constructor(private snackService: MatSnackBar) { }\n\n public open(message: string, options: { duration?: number, type?: ToastType } = { duration: 2500, type: 'info'}) {\n this.snackService.open(message, null, {\n duration: options.duration || 2500,\n panelClass: [ options.type || 'message']\n });\n }\n}\n","/*\r\n * Public API Surface of ui\r\n */\r\n\r\n// export * from './lib/ui.service';\r\n// export * from './lib/ui.component';\r\nexport * from './lib/ui.module';\r\nexport * from './lib/action-button/action-button.component';\r\nexport * from './lib/action-icon/action-icon.component';\r\nexport * from './lib/autocomplete/autocomplete.component';\r\nexport * from './lib/avatar/avatar.component';\r\nexport * from './lib/button/button.component';\r\nexport * from './lib/checkbox/checkbox.component';\r\nexport * from './lib/checkbox-group/checkbox-group.component';\r\nexport * from './lib/currency/currency.component';\r\nexport * from './lib/date/date.component';\r\nexport * from './lib/dialog/dialog.component';\r\nexport * from './lib/file/file.component';\r\nexport * from './lib/file-uploader/ui-file-uploader.component';\r\nexport * from './lib/input/input.component';\r\nexport * from './lib/radio/radio.component';\r\nexport * from './lib/radio-group/radio-group.component';\r\nexport * from './lib/select/select.component';\r\nexport * from './lib/submit-button/submit-button.component';\r\nexport * from './lib/table/table.component';\r\nexport * from './lib/text-area/text-area.component';\r\n\r\nexport * from './lib/directives/force-visibility/force-visibility.directive';\r\n\r\nexport * from './lib/elements/burger/burger.component';\r\nexport * from './lib/elements/expander/expander.component';\r\n\r\nexport * from './lib/services/message-box.service';\r\nexport * from './lib/services/toast.service';\r\nexport * from './lib/services/ui-file.service';\r\nexport * from './lib/services/ui-translate.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i3.ValidationMessageComponent","i2.UiBaseLayoutComponent","i4","i5.UiSimpleLayoutComponent","i6.ActionIconComponent","i5","i6.ButtonComponent","i7.UiSimpleLayoutComponent","i2.UiFileService","i7","i9.FileComponent","i4.ActionIconComponent","i4.ButtonComponent","i5.DialogComponent","i3.InputComponent","i4.SelectComponent","i5.UiBaseLayoutComponent","i4.UiSimpleLayoutComponent","i2.FileComponent","i7.InputComponent","i8.ForceVisibilityDirective","i3.CheckboxComponent"],"mappings":"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"}
|