@rlucan/ui 16.2.2 → 17.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/esm2022/lib/action-button/action-button.component.mjs +99 -99
  2. package/esm2022/lib/action-icon/action-icon.component.mjs +37 -37
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +391 -391
  4. package/esm2022/lib/avatar/avatar.component.mjs +34 -34
  5. package/esm2022/lib/button/button.component.mjs +57 -57
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +39 -39
  7. package/esm2022/lib/checkbox-group/checkbox-group.component.mjs +91 -91
  8. package/esm2022/lib/currency/currency.component.mjs +151 -151
  9. package/esm2022/lib/date/date.component.mjs +68 -68
  10. package/esm2022/lib/dialog/dialog.component.mjs +37 -37
  11. package/esm2022/lib/directives/force-visibility/force-visibility.directive.mjs +104 -104
  12. package/esm2022/lib/editor/editor.component.mjs +119 -119
  13. package/esm2022/lib/elements/burger/burger.component.mjs +21 -21
  14. package/esm2022/lib/elements/expander/expander.component.mjs +28 -28
  15. package/esm2022/lib/elements/validation-message/validation-message.component.mjs +47 -47
  16. package/esm2022/lib/file/file.component.mjs +145 -145
  17. package/esm2022/lib/file-uploader/ui-file-uploader.component.mjs +405 -405
  18. package/esm2022/lib/input/input.component.mjs +265 -265
  19. package/esm2022/lib/input-autocomplete/input-autocomplete.component.mjs +277 -277
  20. package/esm2022/lib/layouts/base/ui-base-layout.component.mjs +22 -22
  21. package/esm2022/lib/layouts/base/ui-base.component.mjs +74 -74
  22. package/esm2022/lib/layouts/simple/ui-simple-layout.component.mjs +18 -18
  23. package/esm2022/lib/layouts/simple/ui-simple.component.mjs +166 -166
  24. package/esm2022/lib/radio/radio.component.mjs +21 -21
  25. package/esm2022/lib/radio-group/radio-group.component.mjs +53 -53
  26. package/esm2022/lib/select/select.component.mjs +126 -126
  27. package/esm2022/lib/services/message-box.service.mjs +112 -112
  28. package/esm2022/lib/services/toast.service.mjs +23 -23
  29. package/esm2022/lib/services/ui-file.service.mjs +71 -71
  30. package/esm2022/lib/services/ui-translate.service.mjs +32 -32
  31. package/esm2022/lib/submit-button/submit-button.component.mjs +72 -72
  32. package/esm2022/lib/table/table.component.mjs +97 -97
  33. package/esm2022/lib/text-area/text-area.component.mjs +46 -46
  34. package/esm2022/lib/ui.model.mjs +1 -1
  35. package/esm2022/lib/ui.module.mjs +269 -269
  36. package/esm2022/public-api.mjs +34 -34
  37. package/esm2022/rlucan-ui.mjs +4 -4
  38. package/fesm2022/rlucan-ui.mjs +3289 -3289
  39. package/fesm2022/rlucan-ui.mjs.map +1 -1
  40. package/index.d.ts +5 -5
  41. package/lib/action-button/action-button.component.d.ts +28 -28
  42. package/lib/action-icon/action-icon.component.d.ts +15 -15
  43. package/lib/autocomplete/autocomplete.component.d.ts +57 -57
  44. package/lib/avatar/avatar.component.d.ts +14 -14
  45. package/lib/button/button.component.d.ts +18 -18
  46. package/lib/checkbox/checkbox.component.d.ts +15 -15
  47. package/lib/checkbox-group/checkbox-group.component.d.ts +18 -18
  48. package/lib/currency/currency.component.d.ts +31 -31
  49. package/lib/date/date.component.d.ts +24 -24
  50. package/lib/dialog/dialog.component.d.ts +13 -13
  51. package/lib/directives/force-visibility/force-visibility.directive.d.ts +22 -22
  52. package/lib/editor/editor.component.d.ts +24 -24
  53. package/lib/elements/burger/burger.component.d.ts +9 -9
  54. package/lib/elements/expander/expander.component.d.ts +10 -10
  55. package/lib/elements/validation-message/validation-message.component.d.ts +12 -12
  56. package/lib/file/file.component.d.ts +35 -35
  57. package/lib/file-uploader/ui-file-uploader.component.d.ts +102 -102
  58. package/lib/input/input.component.d.ts +42 -42
  59. package/lib/input-autocomplete/input-autocomplete.component.d.ts +44 -44
  60. package/lib/layouts/base/ui-base-layout.component.d.ts +8 -8
  61. package/lib/layouts/base/ui-base.component.d.ts +23 -23
  62. package/lib/layouts/simple/ui-simple-layout.component.d.ts +8 -8
  63. package/lib/layouts/simple/ui-simple.component.d.ts +40 -40
  64. package/lib/radio/radio.component.d.ts +8 -8
  65. package/lib/radio-group/radio-group.component.d.ts +18 -18
  66. package/lib/select/select.component.d.ts +37 -37
  67. package/lib/services/message-box.service.d.ts +58 -58
  68. package/lib/services/toast.service.d.ts +13 -13
  69. package/lib/services/ui-file.service.d.ts +33 -33
  70. package/lib/services/ui-translate.service.d.ts +11 -11
  71. package/lib/submit-button/submit-button.component.d.ts +21 -21
  72. package/lib/table/table.component.d.ts +36 -36
  73. package/lib/text-area/text-area.component.d.ts +18 -18
  74. package/lib/ui.model.d.ts +2 -2
  75. package/lib/ui.module.d.ts +59 -59
  76. package/package.json +14 -14
  77. package/public-api.d.ts +29 -29
@@ -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/layouts/base/ui-base.component.ts","../../../projects/ui/src/lib/layouts/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/layouts/base/ui-base-layout.component.ts","../../../projects/ui/src/lib/layouts/base/ui-base-layout.component.html","../../../projects/ui/src/lib/layouts/simple/ui-simple-layout.component.ts","../../../projects/ui/src/lib/layouts/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/editor/editor.component.ts","../../../projects/ui/src/lib/editor/editor.component.html","../../../projects/ui/src/lib/input-autocomplete/input-autocomplete.component.ts","../../../projects/ui/src/lib/input-autocomplete/input-autocomplete.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 this.componentFormControl.setErrors(this.parentFormControl.errors);\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((c) => {\r\n const requiredLength = inputValidators.maxLength || 0;\r\n if (this.inputLength() > requiredLength) {\r\n return { maxlength: { requiredLength }}\r\n } else {\r\n return null\r\n }\r\n }); // 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 inputLength() {\r\n return this.componentFormControl.value ? this.componentFormControl.value.length : 0;\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, 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 length() {\r\n return this.ctx.inputLength();\r\n }\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 {{ length() }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-bottom\">\r\n {{ length() }} / {{ 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, HostBinding,\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 '../layouts/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: [ '../layouts/simple/ui-simple-layout.component.scss', './input.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')\r\n get textAlignClass() {\r\n return `text-align-${this.textAlign}`;\r\n }\r\n\r\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\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 setTimeout(() => {\r\n this.hasFocus = focus;\r\n this.focusChanged.emit(focus);\r\n });\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 [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, OnChanges, OnInit, Optional, Self, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/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: [ '../layouts/simple/ui-simple-layout.component.scss', './select.component.scss' ]\r\n})\r\n\r\nexport class SelectComponent extends UiSimpleComponent implements OnInit, OnChanges {\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 @Input() trackBy;\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 if (this.trackBy && this.componentFormControl && this.componentFormControl.value) {\r\n this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n if (changes.options && this.componentFormControl && this.trackBy) {\r\n this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });\r\n }\r\n }\r\n\r\n mapValues(src) {\r\n if (src && this.trackBy && this.options) {\r\n if (this.multiple) {\r\n return this.options.filter(o => src.find(v => v[this.trackBy] === o[this.trackBy]));\r\n } else {\r\n return this.options.find(o => o[this.trackBy] === src[this.trackBy]);\r\n }\r\n } else {\r\n return src;\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 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(this.mapValues(obj));\r\n }\r\n }\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\" [innerHTML]=\"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 '../layouts/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;\r\n this.imageCropped.emit(event);\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 // console.log(url);\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 // console.log(f);\r\n // })\r\n const croppedImage = this.croppedImages[id];\r\n f.$newFile.nativeFile = new File([ croppedImage.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 console.log(f);\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 *ngIf=\"croppedImages[f.$newFile.id]\" [src]=\"croppedImages[f.$newFile.id].objectUrl\" [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, OnChanges, OnInit, Output, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiForceVisibility]',\r\n exportAs: 'ForceVisibilityDirective'\r\n})\r\nexport class ForceVisibilityDirective implements OnInit, OnChanges {\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 @Input() visibilityCheckEnabled = true;\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 ngOnChanges(changes: SimpleChanges) {\r\n if (changes.visibilityCheckEnabled && changes.visibilityCheckEnabled.currentValue !== changes.visibilityCheckEnabled.previousValue) {\r\n this.forceVisibility();\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 || !this.visibilityCheckEnabled) {\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 = false;\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 '../layouts/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 @Input() panelClass = 'ui-currency';\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\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [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 '../layouts/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 </mat-checkbox>\r\n <div *ngIf=\"hint\" class=\"hint\" [innerHTML]=\"hint\"></div>\r\n </div>\r\n</ui-simple-layout>\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss']\r\n})\r\nexport class AvatarComponent {\r\n\r\n @Input() user: Partial<{ avatar: any, shortName: string, shortColour: string }> = {};\r\n\r\n @Input() srcOptions;\r\n\r\n @HostBinding('class')\r\n @Input() size: 'big' | 'bigger' | 'normal' | 'smaller' | 'small' | 'mini' = 'normal';\r\n\r\n get contrast(): string {\r\n const hexCode = this.user.shortColour.substring(1, 7);\r\n\r\n const hexR = parseInt(hexCode.substring(0, 2), 16);\r\n const hexG = parseInt(hexCode.substring(2, 4), 16);\r\n const hexB = parseInt(hexCode.substring(4, 6), 16);\r\n const contrastRatio = hexR * 0.299 + hexG * 0.587 + hexB * 0.114;\r\n\r\n return contrastRatio >= 200 ? 'black' : 'white';\r\n }\r\n\r\n constructor() { }\r\n\r\n}\r\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 '../layouts/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: [ '../layouts/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, Optional, Output, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: [ '../layouts/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';\r\nimport {MatSort, SortDirection} from '@angular/material/sort';\r\n// import {PersistService} from '../../services/persist.service';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\nexport interface TableColumn {\r\n name: string;\r\n sortable?: boolean | ((row: any, direction?: SortDirection) => number | string);\r\n label?: string;\r\n colSpan?: (row: any) => number;\r\n formatter?: (row: any) => string;\r\n cellClass?: (row: any) => string;\r\n}\r\n\r\nexport interface TableOptions {\r\n sticky?: boolean;\r\n}\r\n@Component({\r\n selector: 'ui-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss']\r\n})\r\nexport class TableComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() columns: TableColumn[] = [];\r\n @Input() dataSource: any;\r\n @Input() options: TableOptions | undefined;\r\n @Input() rowTemplates: any = {};\r\n @Input() headerTemplates: any = {};\r\n @Input() stateStoreKey = '';\r\n @Input() rowAction: (row: any) => void;\r\n\r\n @Input() matSortActive;\r\n @Input() matSortDirection;\r\n\r\n @ViewChild(MatSort) matSort: MatSort | undefined;\r\n\r\n get columnList(): string[] {\r\n return this.columns.map(c => c.name);\r\n }\r\n\r\n constructor(/*private persistService: PersistService, */private domSanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n this.options = {...{sticky: false}, ...this.options};\r\n if (this.dataSource) {\r\n // if (this.stateStoreKey !== '') {\r\n // const storeKey = this.stateStoreKey + '.sort';\r\n // const ms = this.persistService.get(storeKey, { active: '', direction: ''});\r\n // this.matSort.active = ms.active;\r\n // this.matSort.direction = ms.direction;\r\n // this.matSort.sortChange.subscribe(sc => {\r\n // this.persistService.set(storeKey, sc.direction === '' ? { active: '', direction: ''} : sc);\r\n // });\r\n // }\r\n if (this.columns.find(c => c.sortable !== undefined)) {\r\n this.dataSource.sortData = (rows: any[], sort: MatSort) => {\r\n if (sort.direction) {\r\n const sortColumn = this.columns.find(c => c.name === sort.active);\r\n if (sortColumn) {\r\n const res = sort.direction === 'asc' ? 1 : -1;\r\n return rows.sort((r1: any, r2: any) => {\r\n if (sortColumn.sortable === true) {\r\n return r1[sortColumn.name] < r2[sortColumn.name] ? -res : res;\r\n }\r\n if (typeof sortColumn.sortable === 'function') {\r\n return sortColumn.sortable(r1, sort.direction) < sortColumn.sortable(r2, sort.direction) ? -res : res;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n return rows;\r\n };\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.matSort;\r\n }\r\n\r\n display(row: any, col: TableColumn): any {\r\n if (col.formatter) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(col.formatter(row));\r\n } else {\r\n return row[col.name];\r\n }\r\n }\r\n\r\n rowClicked(row) {\r\n if (this.rowAction) {\r\n this.rowAction( row);\r\n }\r\n }\r\n}\r\n","<table mat-table matSort [dataSource]=\"dataSource\" style=\"width: 100%\" [matSortActive]=\"matSortActive\" [matSortDirection]=\"matSortDirection\">\r\n\r\n <ng-container *ngFor=\"let c of columns\" [matColumnDef]=\"c.name\">\r\n\r\n <ng-container *ngIf=\"c.sortable\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label}}</th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!c.sortable\">\r\n <ng-container *ngIf=\"!headerTemplates[c.name]\">\r\n <th mat-header-cell *matHeaderCellDef>{{c.label}}</th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"headerTemplates[c.name]\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-template [ngTemplateOutlet]=\"headerTemplates[c.name]\"></ng-template>\r\n </th>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <td mat-cell *matCellDef=\"let element\" [colSpan]=\"c.colSpan ? c.colSpan(element) : 1\" [class]=\"c.cellClass ? c.cellClass(element) : ''\">\r\n <ng-container *ngIf=\"!c.colSpan || c.colSpan(element) > 0\">\r\n <ng-container *ngIf=\"rowTemplates[c.name]\">\r\n <ng-template [ngTemplateOutlet]=\"rowTemplates[c.name]\" [ngTemplateOutletContext]=\"{row:element}\" ></ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!rowTemplates[c.name]\">\r\n <span [innerHTML]=\"display(element, c)\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnList; sticky: options?.sticky\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columnList;\" (click)=\"rowClicked(row)\"></tr>\r\n</table>\r\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 '../layouts/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 &nbsp;\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\nimport { ConnectedPosition } from '@angular/cdk/overlay';\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: ConnectedPosition[] = [\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: ConnectedPosition[] = [\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 '../layouts/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';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ui-radio-group',\r\n templateUrl: './radio-group.component.html',\r\n styleUrls: ['./radio-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 RadioGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges {\r\n\r\n cbxs: any;\r\n id = Math.round(Math.random() * 999999);\r\n\r\n @Input() options;\r\n @Input() displayAttribute = 'name';\r\n @Input() valueAttribute;\r\n\r\n @Input() groupName = 'radio-' + this.id;\r\n\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 changes.options.currentValue.forEach(cv => {\r\n this.cbxs.push({\r\n value: this.valueAttribute ? cv[this.valueAttribute] : cv,\r\n label: cv[this.displayAttribute]\r\n })\r\n });\r\n }\r\n }\r\n\r\n // writeValue(obj: any): void {\r\n // if (this.componentFormControl) {\r\n // this.componentFormControl.setValue(obj);\r\n // }\r\n // }\r\n}\r\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 { AfterViewInit, Component, ElementRef, HostListener, Input, Optional, Self } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\nimport EditorJS from '@editorjs/editorjs';\r\nimport List from '@editorjs/list';\r\nimport Header from '@editorjs/header';\r\n\r\n@Component({\r\n selector: 'ui-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: [ '../layouts/simple/ui-simple-layout.component.scss', './editor.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 EditorComponent extends UiSimpleComponent implements AfterViewInit {\r\n\r\n @Input() rows = 5;\r\n\r\n @Input() autoResize = false;\r\n\r\n focused = false;\r\n\r\n editor: EditorJS;\r\n\r\n data: any;\r\n\r\n editorId = `editorJs${Math.round(Math.random() * 10000000)}`;\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event) {\r\n const cr = this.el.nativeElement.getBoundingClientRect();\r\n const outside = event.x < cr.x || event.x > cr.x + cr.width || event.y < cr.y || event.y > cr.y + cr.height;\r\n this.focused = !outside;\r\n if (!this.focused) {\r\n this.componentFormControl.markAsTouched();\r\n }\r\n }\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl/*, private _ngZone: NgZone, private cdr: ChangeDetectorRef*/,\r\n private el:ElementRef) {\r\n super(ngControl);\r\n }\r\n\r\n focus(): void {\r\n this.focused = true;\r\n this.editor.focus();\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.editor = new EditorJS({\r\n holder: this.editorId,\r\n inlineToolbar: ['bold', 'italic'],\r\n tools: {\r\n header: {\r\n class: Header,\r\n inlineToolbar: true,\r\n config: {\r\n levels: [ 1, 2 ],\r\n defaultLevel: 1\r\n }\r\n },\r\n list: {\r\n class: List,\r\n inlineToolbar: true,\r\n config: {\r\n defaultStyle: 'unordered'\r\n },\r\n },\r\n },\r\n i18n: {\r\n messages: {\r\n ui: {\r\n \"inlineToolbar\": {\r\n \"converter\": {\r\n \"Convert to\": \"Odstavec změnit na\"\r\n }\r\n }\r\n },\r\n toolNames: {\r\n \"Heading\": \"Nadpis\",\r\n \"List\": \"Seznam\"\r\n }\r\n }\r\n },\r\n minHeight: 90,\r\n placeholder: 'Něco napiš...',\r\n onChange: () => { this.focused = true; this.editor.save().then((r) => this.onChange(r)) },\r\n onReady: () => {\r\n const editorElement = document.getElementById(this.editorId) // your \"holder\" ID\r\n editorElement.addEventListener('focusin', () => {\r\n this.focused = true;\r\n });\r\n },\r\n data: this.data\r\n });\r\n }\r\n\r\n inputLength(): any {\r\n let len = 0;\r\n if (this.componentFormControl && this.componentFormControl.value && this.componentFormControl.value.blocks) {\r\n this.componentFormControl.value.blocks.forEach(b => {\r\n if (b.type === 'paragraph' || b.type === 'header') {\r\n len += b.data.text.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&nbsp;/, '').length;\r\n }\r\n if (b.type === 'list') {\r\n b.data.items.forEach(i => {\r\n len += i.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&nbsp;/, '').length;\r\n })\r\n }\r\n })\r\n }\r\n return len;\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.data = obj;\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"editor-wrapper\" [ngClass]=\"{focus: focused}\">\r\n <ng-container *ngIf=\"componentFormControl\">\r\n\r\n <p [id]=editorId></p>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host, HostBinding,\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 '../layouts/simple/ui-simple.component';\r\n\r\ntype PrefixSuffix = { icon: string, tooltip?: string };\r\n@Component({\r\n selector: 'ui-input-autocomplete',\r\n templateUrl: './input-autocomplete.component.html',\r\n styleUrls: [ '../layouts/simple/ui-simple-layout.component.scss', '../input/input.component.scss' ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: InputAutocompleteComponent\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: InputAutocompleteComponent\r\n }\r\n ]\r\n})\r\nexport class InputAutocompleteComponent 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 @Input() options: any[] = [];\r\n\r\n @HostBinding('class')\r\n get textAlignClass() {\r\n return `text-align-${this.textAlign}`;\r\n }\r\n\r\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\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 filteredOptions: any[] = [];\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 this.filteredOptions = this.options;\r\n this.componentFormControl?.valueChanges.subscribe((v) => {\r\n const vl = v.toLowerCase();\r\n this.filteredOptions = this.options.filter(o => vl === '' || o.toLowerCase().includes(vl))\r\n })\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 setTimeout(() => {\r\n this.hasFocus = focus;\r\n this.focusChanged.emit(focus);\r\n });\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 matInput [type]=\"type\" [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" (keydown)=\"onKeypressed($event)\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\" [matAutocomplete]=\"auto\"/>\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\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 { 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 './layouts/simple/ui-simple-layout.component';\r\nimport { UiBaseLayoutComponent } from './layouts/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\nimport { EditorComponent } from './editor/editor.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { InputAutocompleteComponent } from './input-autocomplete/input-autocomplete.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n InputComponent,\r\n InputAutocompleteComponent,\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 EditorComponent\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 InputAutocompleteComponent,\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 EditorComponent\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 MatAutocompleteModule\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';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nexport type ToastType = 'info' | 'success' | 'warning' | 'fail';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(private snackService: MatSnackBar) { }\r\n\r\n public open(message: string, options: { duration?: number, type?: ToastType } = { duration: 2500, type: 'info'}) {\r\n this.snackService.open(message, null, {\r\n duration: options.duration || 2500,\r\n panelClass: [ options.type || 'message']\r\n });\r\n }\r\n}\r\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/input-autocomplete/input-autocomplete.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\nexport * from './lib/editor/editor.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","i3.UiSimpleLayoutComponent","i6","i8.UiSimpleLayoutComponent","i9.ActionIconComponent"],"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/layouts/base/ui-base.component.ts","../../../projects/ui/src/lib/layouts/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/layouts/base/ui-base-layout.component.ts","../../../projects/ui/src/lib/layouts/base/ui-base-layout.component.html","../../../projects/ui/src/lib/layouts/simple/ui-simple-layout.component.ts","../../../projects/ui/src/lib/layouts/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/editor/editor.component.ts","../../../projects/ui/src/lib/editor/editor.component.html","../../../projects/ui/src/lib/input-autocomplete/input-autocomplete.component.ts","../../../projects/ui/src/lib/input-autocomplete/input-autocomplete.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 this.componentFormControl.setErrors(this.parentFormControl.errors);\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((c) => {\r\n const requiredLength = inputValidators.maxLength || 0;\r\n if (this.inputLength() > requiredLength) {\r\n return { maxlength: { requiredLength }}\r\n } else {\r\n return null\r\n }\r\n }); // 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 inputLength() {\r\n return this.componentFormControl.value ? this.componentFormControl.value.length : 0;\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, 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 length() {\r\n return this.ctx.inputLength();\r\n }\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 {{ length() }} / {{ ctx.validators?.maxLength }}\r\n </div>\r\n\r\n <div *ngIf=\"ctx.validators?.maxLength\" class=\"counter counter-bottom\">\r\n {{ length() }} / {{ 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, HostBinding,\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 '../layouts/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: [ '../layouts/simple/ui-simple-layout.component.scss', './input.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')\r\n get textAlignClass() {\r\n return `text-align-${this.textAlign}`;\r\n }\r\n\r\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\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 setTimeout(() => {\r\n this.hasFocus = focus;\r\n this.focusChanged.emit(focus);\r\n });\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 [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, OnChanges, OnInit, Optional, Self, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/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: [ '../layouts/simple/ui-simple-layout.component.scss', './select.component.scss' ]\r\n})\r\n\r\nexport class SelectComponent extends UiSimpleComponent implements OnInit, OnChanges {\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 @Input() trackBy;\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 if (this.trackBy && this.componentFormControl && this.componentFormControl.value) {\r\n this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n super.ngOnChanges(changes);\r\n if (changes.options && this.componentFormControl && this.trackBy) {\r\n this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });\r\n }\r\n }\r\n\r\n mapValues(src) {\r\n if (src && this.trackBy && this.options) {\r\n if (this.multiple) {\r\n return this.options.filter(o => src.find(v => v[this.trackBy] === o[this.trackBy]));\r\n } else {\r\n return this.options.find(o => o[this.trackBy] === src[this.trackBy]);\r\n }\r\n } else {\r\n return src;\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 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(this.mapValues(obj));\r\n }\r\n }\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\" [innerHTML]=\"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 '../layouts/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;\r\n this.imageCropped.emit(event);\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 // console.log(url);\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 // console.log(f);\r\n // })\r\n const croppedImage = this.croppedImages[id];\r\n f.$newFile.nativeFile = new File([ croppedImage.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 console.log(f);\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 *ngIf=\"croppedImages[f.$newFile.id]\" [src]=\"croppedImages[f.$newFile.id].objectUrl\" [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, OnChanges, OnInit, Output, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiForceVisibility]',\r\n exportAs: 'ForceVisibilityDirective'\r\n})\r\nexport class ForceVisibilityDirective implements OnInit, OnChanges {\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 @Input() visibilityCheckEnabled = true;\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 ngOnChanges(changes: SimpleChanges) {\r\n if (changes.visibilityCheckEnabled && changes.visibilityCheckEnabled.currentValue !== changes.visibilityCheckEnabled.previousValue) {\r\n this.forceVisibility();\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 || !this.visibilityCheckEnabled) {\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 = false;\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 '../layouts/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 @Input() panelClass = 'ui-currency';\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\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [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 '../layouts/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 </mat-checkbox>\r\n <div *ngIf=\"hint\" class=\"hint\" [innerHTML]=\"hint\"></div>\r\n </div>\r\n</ui-simple-layout>\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss']\r\n})\r\nexport class AvatarComponent {\r\n\r\n @Input() user: Partial<{ avatar: any, shortName: string, shortColour: string }> = {};\r\n\r\n @Input() srcOptions;\r\n\r\n @HostBinding('class')\r\n @Input() size: 'big' | 'bigger' | 'normal' | 'smaller' | 'small' | 'mini' = 'normal';\r\n\r\n get contrast(): string {\r\n const hexCode = this.user.shortColour.substring(1, 7);\r\n\r\n const hexR = parseInt(hexCode.substring(0, 2), 16);\r\n const hexG = parseInt(hexCode.substring(2, 4), 16);\r\n const hexB = parseInt(hexCode.substring(4, 6), 16);\r\n const contrastRatio = hexR * 0.299 + hexG * 0.587 + hexB * 0.114;\r\n\r\n return contrastRatio >= 200 ? 'black' : 'white';\r\n }\r\n\r\n constructor() { }\r\n\r\n}\r\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 '../layouts/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: [ '../layouts/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, Optional, Output, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\n\r\n@Component({\r\n selector: 'ui-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: [ '../layouts/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';\r\nimport {MatSort, SortDirection} from '@angular/material/sort';\r\n// import {PersistService} from '../../services/persist.service';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\nexport interface TableColumn {\r\n name: string;\r\n sortable?: boolean | ((row: any, direction?: SortDirection) => number | string);\r\n label?: string;\r\n colSpan?: (row: any) => number;\r\n formatter?: (row: any) => string;\r\n cellClass?: (row: any) => string;\r\n}\r\n\r\nexport interface TableOptions {\r\n sticky?: boolean;\r\n}\r\n@Component({\r\n selector: 'ui-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss']\r\n})\r\nexport class TableComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() columns: TableColumn[] = [];\r\n @Input() dataSource: any;\r\n @Input() options: TableOptions | undefined;\r\n @Input() rowTemplates: any = {};\r\n @Input() headerTemplates: any = {};\r\n @Input() stateStoreKey = '';\r\n @Input() rowAction: (row: any) => void;\r\n\r\n @Input() matSortActive;\r\n @Input() matSortDirection;\r\n\r\n @ViewChild(MatSort) matSort: MatSort | undefined;\r\n\r\n get columnList(): string[] {\r\n return this.columns.map(c => c.name);\r\n }\r\n\r\n constructor(/*private persistService: PersistService, */private domSanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n this.options = {...{sticky: false}, ...this.options};\r\n if (this.dataSource) {\r\n // if (this.stateStoreKey !== '') {\r\n // const storeKey = this.stateStoreKey + '.sort';\r\n // const ms = this.persistService.get(storeKey, { active: '', direction: ''});\r\n // this.matSort.active = ms.active;\r\n // this.matSort.direction = ms.direction;\r\n // this.matSort.sortChange.subscribe(sc => {\r\n // this.persistService.set(storeKey, sc.direction === '' ? { active: '', direction: ''} : sc);\r\n // });\r\n // }\r\n if (this.columns.find(c => c.sortable !== undefined)) {\r\n this.dataSource.sortData = (rows: any[], sort: MatSort) => {\r\n if (sort.direction) {\r\n const sortColumn = this.columns.find(c => c.name === sort.active);\r\n if (sortColumn) {\r\n const res = sort.direction === 'asc' ? 1 : -1;\r\n return rows.sort((r1: any, r2: any) => {\r\n if (sortColumn.sortable === true) {\r\n return r1[sortColumn.name] < r2[sortColumn.name] ? -res : res;\r\n }\r\n if (typeof sortColumn.sortable === 'function') {\r\n return sortColumn.sortable(r1, sort.direction) < sortColumn.sortable(r2, sort.direction) ? -res : res;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n return rows;\r\n };\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.sort = this.matSort;\r\n }\r\n\r\n display(row: any, col: TableColumn): any {\r\n if (col.formatter) {\r\n return this.domSanitizer.bypassSecurityTrustHtml(col.formatter(row));\r\n } else {\r\n return row[col.name];\r\n }\r\n }\r\n\r\n rowClicked(row) {\r\n if (this.rowAction) {\r\n this.rowAction( row);\r\n }\r\n }\r\n}\r\n","<table mat-table matSort [dataSource]=\"dataSource\" style=\"width: 100%\" [matSortActive]=\"matSortActive\" [matSortDirection]=\"matSortDirection\">\r\n\r\n <ng-container *ngFor=\"let c of columns\" [matColumnDef]=\"c.name\">\r\n\r\n <ng-container *ngIf=\"c.sortable\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label}}</th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!c.sortable\">\r\n <ng-container *ngIf=\"!headerTemplates[c.name]\">\r\n <th mat-header-cell *matHeaderCellDef>{{c.label}}</th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"headerTemplates[c.name]\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <ng-template [ngTemplateOutlet]=\"headerTemplates[c.name]\"></ng-template>\r\n </th>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <td mat-cell *matCellDef=\"let element\" [colSpan]=\"c.colSpan ? c.colSpan(element) : 1\" [class]=\"c.cellClass ? c.cellClass(element) : ''\">\r\n <ng-container *ngIf=\"!c.colSpan || c.colSpan(element) > 0\">\r\n <ng-container *ngIf=\"rowTemplates[c.name]\">\r\n <ng-template [ngTemplateOutlet]=\"rowTemplates[c.name]\" [ngTemplateOutletContext]=\"{row:element}\" ></ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!rowTemplates[c.name]\">\r\n <span [innerHTML]=\"display(element, c)\"></span>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columnList; sticky: options?.sticky\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columnList;\" (click)=\"rowClicked(row)\"></tr>\r\n</table>\r\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 '../layouts/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 &nbsp;\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\nimport { ConnectedPosition } from '@angular/cdk/overlay';\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: ConnectedPosition[] = [\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: ConnectedPosition[] = [\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 '../layouts/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';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ui-radio-group',\r\n templateUrl: './radio-group.component.html',\r\n styleUrls: ['./radio-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 RadioGroupComponent extends UiSimpleComponent implements /*OnInit, */OnChanges {\r\n\r\n cbxs: any;\r\n id = Math.round(Math.random() * 999999);\r\n\r\n @Input() options;\r\n @Input() displayAttribute = 'name';\r\n @Input() valueAttribute;\r\n\r\n @Input() groupName = 'radio-' + this.id;\r\n\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 changes.options.currentValue.forEach(cv => {\r\n this.cbxs.push({\r\n value: this.valueAttribute ? cv[this.valueAttribute] : cv,\r\n label: cv[this.displayAttribute]\r\n })\r\n });\r\n }\r\n }\r\n\r\n // writeValue(obj: any): void {\r\n // if (this.componentFormControl) {\r\n // this.componentFormControl.setValue(obj);\r\n // }\r\n // }\r\n}\r\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 { AfterViewInit, Component, ElementRef, HostListener, Input, Optional, Self } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { UiSimpleComponent } from '../layouts/simple/ui-simple.component';\r\nimport EditorJS from '@editorjs/editorjs';\r\nimport List from '@editorjs/list';\r\nimport Header from '@editorjs/header';\r\n\r\n@Component({\r\n selector: 'ui-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: [ '../layouts/simple/ui-simple-layout.component.scss', './editor.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 EditorComponent extends UiSimpleComponent implements AfterViewInit {\r\n\r\n @Input() rows = 5;\r\n\r\n @Input() autoResize = false;\r\n\r\n focused = false;\r\n\r\n editor: EditorJS;\r\n\r\n data: any;\r\n\r\n editorId = `editorJs${Math.round(Math.random() * 10000000)}`;\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event) {\r\n const cr = this.el.nativeElement.getBoundingClientRect();\r\n const outside = event.x < cr.x || event.x > cr.x + cr.width || event.y < cr.y || event.y > cr.y + cr.height;\r\n this.focused = !outside;\r\n if (!this.focused) {\r\n this.componentFormControl.markAsTouched();\r\n }\r\n }\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl/*, private _ngZone: NgZone, private cdr: ChangeDetectorRef*/,\r\n private el:ElementRef) {\r\n super(ngControl);\r\n }\r\n\r\n focus(): void {\r\n this.focused = true;\r\n this.editor.focus();\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.editor = new EditorJS({\r\n holder: this.editorId,\r\n inlineToolbar: ['bold', 'italic'],\r\n tools: {\r\n header: {\r\n class: Header,\r\n inlineToolbar: true,\r\n config: {\r\n levels: [ 1, 2 ],\r\n defaultLevel: 1\r\n }\r\n },\r\n list: {\r\n class: List,\r\n inlineToolbar: true,\r\n config: {\r\n defaultStyle: 'unordered'\r\n },\r\n },\r\n },\r\n i18n: {\r\n messages: {\r\n ui: {\r\n \"inlineToolbar\": {\r\n \"converter\": {\r\n \"Convert to\": \"Odstavec změnit na\"\r\n }\r\n }\r\n },\r\n toolNames: {\r\n \"Heading\": \"Nadpis\",\r\n \"List\": \"Seznam\"\r\n }\r\n }\r\n },\r\n minHeight: 90,\r\n placeholder: 'Něco napiš...',\r\n onChange: () => { this.focused = true; this.editor.save().then((r) => this.onChange(r)) },\r\n onReady: () => {\r\n const editorElement = document.getElementById(this.editorId) // your \"holder\" ID\r\n editorElement.addEventListener('focusin', () => {\r\n this.focused = true;\r\n });\r\n },\r\n data: this.data\r\n });\r\n }\r\n\r\n inputLength(): any {\r\n let len = 0;\r\n if (this.componentFormControl && this.componentFormControl.value && this.componentFormControl.value.blocks) {\r\n this.componentFormControl.value.blocks.forEach(b => {\r\n if (b.type === 'paragraph' || b.type === 'header') {\r\n len += b.data.text.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&nbsp;/, '').length;\r\n }\r\n if (b.type === 'list') {\r\n b.data.items.forEach(i => {\r\n len += i.replace(/<\\/?[^>]+(>|$)/g, '').replace(/&nbsp;/, '').length;\r\n })\r\n }\r\n })\r\n }\r\n return len;\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.data = obj;\r\n }\r\n}\r\n","<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"editor-wrapper\" [ngClass]=\"{focus: focused}\">\r\n <ng-container *ngIf=\"componentFormControl\">\r\n\r\n <p [id]=editorId></p>\r\n\r\n </ng-container>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host, HostBinding,\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 '../layouts/simple/ui-simple.component';\r\n\r\ntype PrefixSuffix = { icon: string, tooltip?: string };\r\n@Component({\r\n selector: 'ui-input-autocomplete',\r\n templateUrl: './input-autocomplete.component.html',\r\n styleUrls: [ '../layouts/simple/ui-simple-layout.component.scss', '../input/input.component.scss' ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: InputAutocompleteComponent\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n multi: true,\r\n useExisting: InputAutocompleteComponent\r\n }\r\n ]\r\n})\r\nexport class InputAutocompleteComponent 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 @Input() options: any[] = [];\r\n\r\n @HostBinding('class')\r\n get textAlignClass() {\r\n return `text-align-${this.textAlign}`;\r\n }\r\n\r\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\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 filteredOptions: any[] = [];\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 this.filteredOptions = this.options;\r\n this.componentFormControl?.valueChanges.subscribe((v) => {\r\n const vl = v.toLowerCase();\r\n this.filteredOptions = this.options.filter(o => vl === '' || o.toLowerCase().includes(vl))\r\n })\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 setTimeout(() => {\r\n this.hasFocus = focus;\r\n this.focusChanged.emit(focus);\r\n });\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 matInput [type]=\"type\" [formControl]=\"componentFormControl\" [placeholder]=\"placeholder\" (keydown)=\"onKeypressed($event)\" (focus)=\"onFocus(true)\" (blur)=\"onFocus(false)\" [matAutocomplete]=\"auto\"/>\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of filteredOptions\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-autocomplete>\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 { 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 './layouts/simple/ui-simple-layout.component';\r\nimport { UiBaseLayoutComponent } from './layouts/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\nimport { EditorComponent } from './editor/editor.component';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { InputAutocompleteComponent } from './input-autocomplete/input-autocomplete.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ButtonComponent,\r\n InputComponent,\r\n InputAutocompleteComponent,\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 EditorComponent\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 InputAutocompleteComponent,\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 EditorComponent\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 MatAutocompleteModule\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';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nexport type ToastType = 'info' | 'success' | 'warning' | 'fail';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(private snackService: MatSnackBar) { }\r\n\r\n public open(message: string, options: { duration?: number, type?: ToastType } = { duration: 2500, type: 'info'}) {\r\n this.snackService.open(message, null, {\r\n duration: options.duration || 2500,\r\n panelClass: [ options.type || 'message']\r\n });\r\n }\r\n}\r\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/input-autocomplete/input-autocomplete.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\nexport * from './lib/editor/editor.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","i3.UiSimpleLayoutComponent","i6","i8.UiSimpleLayoutComponent","i9.ActionIconComponent"],"mappings":"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"}