@rlucan/ui 14.2.5 → 14.2.6

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 (105) hide show
  1. package/{esm2020 → esm2022}/lib/action-button/action-button.component.mjs +99 -99
  2. package/esm2022/lib/action-icon/action-icon.component.mjs +37 -0
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +391 -0
  4. package/esm2022/lib/avatar/avatar.component.mjs +34 -0
  5. package/esm2022/lib/button/button.component.mjs +57 -0
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +39 -0
  7. package/{esm2020 → esm2022}/lib/checkbox-group/checkbox-group.component.mjs +91 -91
  8. package/esm2022/lib/currency/currency.component.mjs +151 -0
  9. package/esm2022/lib/date/date.component.mjs +68 -0
  10. package/{esm2020 → esm2022}/lib/dialog/dialog.component.mjs +37 -37
  11. package/esm2022/lib/directives/force-visibility/force-visibility.directive.mjs +104 -0
  12. package/esm2022/lib/editor/editor.component.mjs +119 -0
  13. package/{esm2020 → esm2022}/lib/elements/burger/burger.component.mjs +21 -21
  14. package/{esm2020 → esm2022}/lib/elements/expander/expander.component.mjs +28 -28
  15. package/{esm2020 → esm2022}/lib/elements/validation-message/validation-message.component.mjs +47 -47
  16. package/esm2022/lib/file/file.component.mjs +145 -0
  17. package/esm2022/lib/file-uploader/ui-file-uploader.component.mjs +405 -0
  18. package/esm2022/lib/input/input.component.mjs +265 -0
  19. package/esm2022/lib/input-autocomplete/input-autocomplete.component.mjs +277 -0
  20. package/esm2022/lib/layouts/base/ui-base-layout.component.mjs +22 -0
  21. package/esm2022/lib/layouts/base/ui-base.component.mjs +74 -0
  22. package/esm2022/lib/layouts/simple/ui-simple-layout.component.mjs +18 -0
  23. package/esm2022/lib/layouts/simple/ui-simple.component.mjs +166 -0
  24. package/{esm2020 → esm2022}/lib/radio/radio.component.mjs +21 -21
  25. package/esm2022/lib/radio-group/radio-group.component.mjs +53 -0
  26. package/esm2022/lib/select/select.component.mjs +115 -0
  27. package/{esm2020 → esm2022}/lib/services/message-box.service.mjs +112 -112
  28. package/{esm2020 → esm2022}/lib/services/toast.service.mjs +23 -23
  29. package/{esm2020 → esm2022}/lib/services/ui-file.service.mjs +71 -71
  30. package/{esm2020 → esm2022}/lib/services/ui-translate.service.mjs +32 -32
  31. package/{esm2020 → esm2022}/lib/submit-button/submit-button.component.mjs +72 -72
  32. package/esm2022/lib/table/table.component.mjs +97 -0
  33. package/esm2022/lib/text-area/text-area.component.mjs +46 -0
  34. package/{esm2020 → esm2022}/lib/ui.model.mjs +1 -1
  35. package/esm2022/lib/ui.module.mjs +269 -0
  36. package/esm2022/public-api.mjs +35 -0
  37. package/{esm2020 → esm2022}/rlucan-ui.mjs +4 -4
  38. package/fesm2022/rlucan-ui.mjs +3442 -0
  39. package/fesm2022/rlucan-ui.mjs.map +1 -0
  40. package/index.d.ts +5 -5
  41. package/lib/action-button/action-button.component.d.ts +32 -32
  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 -30
  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 -20
  52. package/lib/editor/editor.component.d.ts +24 -0
  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 -41
  59. package/lib/input-autocomplete/input-autocomplete.component.d.ts +44 -0
  60. package/lib/{base → layouts/base}/ui-base-layout.component.d.ts +8 -8
  61. package/lib/{base → layouts/base}/ui-base.component.d.ts +23 -23
  62. package/lib/{simple → layouts/simple}/ui-simple-layout.component.d.ts +8 -7
  63. package/lib/{simple → layouts/simple}/ui-simple.component.d.ts +40 -39
  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 +35 -33
  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 -56
  76. package/package.json +22 -24
  77. package/public-api.d.ts +29 -27
  78. package/scss/ui-defaults.scss +1 -1
  79. package/src/js/editorjs.mjs +9634 -0
  80. package/ui.scss +41 -14
  81. package/esm2020/lib/action-icon/action-icon.component.mjs +0 -37
  82. package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -391
  83. package/esm2020/lib/avatar/avatar.component.mjs +0 -34
  84. package/esm2020/lib/base/ui-base-layout.component.mjs +0 -22
  85. package/esm2020/lib/base/ui-base.component.mjs +0 -74
  86. package/esm2020/lib/button/button.component.mjs +0 -57
  87. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -39
  88. package/esm2020/lib/currency/currency.component.mjs +0 -148
  89. package/esm2020/lib/date/date.component.mjs +0 -68
  90. package/esm2020/lib/directives/force-visibility/force-visibility.directive.mjs +0 -96
  91. package/esm2020/lib/file/file.component.mjs +0 -145
  92. package/esm2020/lib/file-uploader/ui-file-uploader.component.mjs +0 -394
  93. package/esm2020/lib/input/input.component.mjs +0 -258
  94. package/esm2020/lib/radio-group/radio-group.component.mjs +0 -53
  95. package/esm2020/lib/select/select.component.mjs +0 -91
  96. package/esm2020/lib/simple/ui-simple-layout.component.mjs +0 -15
  97. package/esm2020/lib/simple/ui-simple.component.mjs +0 -154
  98. package/esm2020/lib/table/table.component.mjs +0 -97
  99. package/esm2020/lib/text-area/text-area.component.mjs +0 -46
  100. package/esm2020/lib/ui.module.mjs +0 -255
  101. package/esm2020/public-api.mjs +0 -33
  102. package/fesm2015/rlucan-ui.mjs +0 -3017
  103. package/fesm2015/rlucan-ui.mjs.map +0 -1
  104. package/fesm2020/rlucan-ui.mjs +0 -2982
  105. package/fesm2020/rlucan-ui.mjs.map +0 -1
@@ -0,0 +1,277 @@
1
+ import { Component, EventEmitter, Host, HostBinding, Input, Optional, Output, SkipSelf, ViewChild } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { UiSimpleComponent } from '../layouts/simple/ui-simple.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/icon";
8
+ import * as i4 from "@angular/material/tooltip";
9
+ import * as i5 from "@angular/material/core";
10
+ import * as i6 from "@angular/material/input";
11
+ import * as i7 from "@angular/material/autocomplete";
12
+ import * as i8 from "../layouts/simple/ui-simple-layout.component";
13
+ import * as i9 from "../action-icon/action-icon.component";
14
+ export class InputAutocompleteComponent extends UiSimpleComponent {
15
+ get textAlignClass() {
16
+ return `text-align-${this.textAlign}`;
17
+ }
18
+ get hasPrefix() {
19
+ return (this.prefixIcon && this.prefixIcon.icon !== '') || this.prefix?.nativeElement?.innerText !== '' || this.forceHasPrefix;
20
+ }
21
+ get hasSuffix() {
22
+ return (this.suffixIcon && this.suffixIcon.icon !== '') || this.suffix?.nativeElement?.innerText !== '' || this.forceHasSuffix;
23
+ }
24
+ // control;
25
+ // onTouched = () => {};
26
+ // onChange = (value) => {};
27
+ // get showInvalid(): boolean {
28
+ // return true;
29
+ // // return this.control.touched && !!this.control.errors;
30
+ // }
31
+ // get validationMessage(): string {
32
+ // // console.log(this.control?.errors);
33
+ // let e: any = {code: 'Neznámá chyba'};
34
+ // const errors = this.control?.errors || {};
35
+ // Object.keys(errors).find(a => {
36
+ // e = {code: a, data: errors[a]};
37
+ // return true;
38
+ // });
39
+ // switch (e.code) {
40
+ // case 'required':
41
+ // return this.translateService.instant('ui.controls.validation.required');
42
+ // case 'email':
43
+ // return this.translateService.instant('ui.controls.validation.email');
44
+ // case 'matDatepickerParse':
45
+ // return this.translateService.instant('ui.controls.validation.matDatepickerParse');
46
+ // case 'maxlength':
47
+ // return this.translateService.instant('ui.controls.validation.maxlength', e.data);
48
+ // case 'minlength':
49
+ // return this.translateService.instant('ui.controls.validation.minlength', e.data);
50
+ // case 'positive':
51
+ // return this.translateService.instant(isNaN(Number(e.data)) ? 'ui.controls.validation.invalidNumber' : 'ui.controls.validation.positive');
52
+ // case 'custom':
53
+ // return this.translateService.instant(e.data);
54
+ // default:
55
+ // return this.translateService.instant(e.code);
56
+ // }
57
+ // }
58
+ get maxLenRequired() {
59
+ return true;
60
+ // return this.control.value && (this.control.value.length > (this.validators?.maxLength || 0));
61
+ }
62
+ constructor(controlContainer) {
63
+ super(null, controlContainer);
64
+ this.controlContainer = controlContainer;
65
+ this.type = 'text';
66
+ this.clearButton = false;
67
+ this.activeIcons = true;
68
+ this.forceHasPrefix = false;
69
+ this.forceHasSuffix = false;
70
+ this.options = [];
71
+ this.textAlign = 'left';
72
+ this.focusChanged = new EventEmitter();
73
+ this.keyPressed = new EventEmitter();
74
+ this.filteredOptions = [];
75
+ // control = new FormControl();
76
+ this.required = false;
77
+ this.hasFocus = false;
78
+ // this.componentFormControl = new FormControl();
79
+ // super();
80
+ // super(undefined, /*ngControl*/ translateService);
81
+ // super(control);
82
+ // console.log(control);
83
+ // if (control) {
84
+ // control.valueAccessor = this;
85
+ // }
86
+ // if (ngControl != null) {
87
+ // // Setting the value accessor directly (instead of using
88
+ // // the providers) to avoid running into a circular import.
89
+ // ngControl.valueAccessor = this;
90
+ // }
91
+ }
92
+ get showClearButton() {
93
+ return this.clearButton && this.componentFormControl?.value !== '';
94
+ }
95
+ ngOnInit() {
96
+ super.ngOnInit();
97
+ this.filteredOptions = this.options;
98
+ this.componentFormControl?.valueChanges.subscribe((v) => {
99
+ const vl = v.toLowerCase();
100
+ this.filteredOptions = this.options.filter(o => vl === '' || o.toLowerCase().includes(vl));
101
+ });
102
+ // console.log('probiha vubec oninit?');
103
+ // if (this.ngControl) {
104
+ // console.log('from ngControl....??');
105
+ // if (this.formControl) {
106
+ // this.componentFormControl = this.formControl;
107
+ // } else {
108
+ // this.componentFormControl = this.ngControl.control as UntypedFormControl;
109
+ // }
110
+ // setTimeout(() => {
111
+ // this.applyValidators();
112
+ // });
113
+ // } else {
114
+ // const control = this.formControlName ?
115
+ // (this.controlContainer as FormGroupDirective).control.get(this.formControlName) : this.formControl;
116
+ // this.componentFormControl.setValidators(control.validator);
117
+ // this.componentFormControl.valueChanges.subscribe(v => console.log('onitin sub', v));
118
+ // control._componentFormControl = this.componentFormControl;
119
+ // if (control._markAsTouched === undefined) {
120
+ // // control._componentFormControl = this.componentFormControl;
121
+ // console.log('overriding markAsTouched for', this.formControlName);
122
+ // control._markAsTouched = control.markAsTouched;
123
+ // control.markAsTouched = ({onlySelf}: { onlySelf?: boolean } = {}): void => {
124
+ // console.log('marking as touched', this.componentFormControl.value, control.value, this.xxx.value, control._componentFormControl.value);
125
+ // control._markAsTouched({onlySelf});
126
+ // setTimeout(() => control._componentFormControl.markAsTouched(), 1000);
127
+ // }
128
+ // }
129
+ // }
130
+ }
131
+ clearValue() {
132
+ this.componentFormControl?.setValue('');
133
+ this.input?.nativeElement.focus();
134
+ }
135
+ focus() {
136
+ this.input?.nativeElement.focus();
137
+ }
138
+ onFocus(focus) {
139
+ setTimeout(() => {
140
+ this.hasFocus = focus;
141
+ this.focusChanged.emit(focus);
142
+ });
143
+ }
144
+ onKeypressed($event) {
145
+ this.keyPressed.emit($event);
146
+ }
147
+ // registerOnChange(onChange: any): void {
148
+ // this.onChange = onChange;
149
+ // }
150
+ //
151
+ // registerOnTouched(onTouched: any): void {
152
+ // this.onTouched = onTouched;
153
+ // }
154
+ // registerOnValidatorChange(fn: () => void): void {
155
+ // }
156
+ // setDisabledState(isDisabled: boolean): void {
157
+ // // isDisabled ? this.control.disable() : this.control.enable();
158
+ // }
159
+ // validate(control: AbstractControl): ValidationErrors | null {
160
+ // // this.control = control;
161
+ // // console.log(control, control.value, control.errors);
162
+ // if (this.value === 'error') {
163
+ // return { customError: 'muj error'}
164
+ // } else {
165
+ // return null;
166
+ // }
167
+ // // console.log('custom validate');
168
+ // // return null;
169
+ // }
170
+ //
171
+ // writeValue(obj: any): void {
172
+ // console.log('writevalue: ', obj);
173
+ // this.componentFormControl.setValue(obj);
174
+ // // this.value = obj;
175
+ // // this.control.setValue(obj);
176
+ // }
177
+ //
178
+ // registerOnChange(fn: any): void {
179
+ // }
180
+ //
181
+ // registerOnTouched(fn: any): void {
182
+ // }
183
+ //
184
+ // setDisabledState(isDisabled: boolean): void {
185
+ // }
186
+ // modelChange($event: any) {
187
+ // console.log($event);
188
+ // this.onTouched();
189
+ // this.onChange($event)
190
+ // }
191
+ // validate(control: AbstractControl): ValidationErrors | null {
192
+ // console.log(this.label, 'validate');
193
+ // return this.componentFormControl.errors;
194
+ // // return undefined;
195
+ // }
196
+ validate(control) {
197
+ if (this.parentFormControl) {
198
+ return this.parentFormControl._componentFormControl.errors;
199
+ }
200
+ // console.log('validate', this.componentFormControl.errors);
201
+ // // this.componentFormControl.setErrors( { custom: 'xxx' });
202
+ // this.componentFormControl.setErrors( this.componentFormControl.errors);
203
+ // console.log('validate 2', this.componentFormControl.errors);
204
+ // return this.componentFormControl.errors;
205
+ // console.log(this.componentFormControl.errors, control.errors, this.parentFormControl.errors, this);
206
+ // return this.componentFormControl.errors;
207
+ }
208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputAutocompleteComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: InputAutocompleteComponent, selector: "ui-input-autocomplete", inputs: { prefixIcon: "prefixIcon", suffixIcon: "suffixIcon", type: "type", clearButton: "clearButton", activeIcons: "activeIcons", forceHasPrefix: "forceHasPrefix", forceHasSuffix: "forceHasSuffix", options: "options", textAlign: "textAlign" }, outputs: { focusChanged: "focusChanged", keyPressed: "keyPressed" }, host: { properties: { "class": "this.textAlignClass" } }, providers: [
210
+ {
211
+ provide: NG_VALUE_ACCESSOR,
212
+ multi: true,
213
+ useExisting: InputAutocompleteComponent
214
+ },
215
+ {
216
+ provide: NG_VALIDATORS,
217
+ multi: true,
218
+ useExisting: InputAutocompleteComponent
219
+ }
220
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "prefix", first: true, predicate: ["prefix"], descendants: true, static: true }, { propertyName: "suffix", first: true, predicate: ["suffix"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<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", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n", ":host.text-align-left ::ng-deep input{text-align:left}:host.text-align-right ::ng-deep input{text-align:right}:host.text-align-center ::ng-deep input{text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: ["ctx"] }, { kind: "component", type: i9.ActionIconComponent, selector: "ui-action-icon", inputs: ["size", "color", "disabled", "busy", "matIcon"] }] }); }
221
+ }
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: InputAutocompleteComponent, decorators: [{
223
+ type: Component,
224
+ args: [{ selector: 'ui-input-autocomplete', providers: [
225
+ {
226
+ provide: NG_VALUE_ACCESSOR,
227
+ multi: true,
228
+ useExisting: InputAutocompleteComponent
229
+ },
230
+ {
231
+ provide: NG_VALIDATORS,
232
+ multi: true,
233
+ useExisting: InputAutocompleteComponent
234
+ }
235
+ ], template: "<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", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n", ":host.text-align-left ::ng-deep input{text-align:left}:host.text-align-right ::ng-deep input{text-align:right}:host.text-align-center ::ng-deep input{text-align:center}\n"] }]
236
+ }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
237
+ type: Optional
238
+ }, {
239
+ type: Host
240
+ }, {
241
+ type: SkipSelf
242
+ }] }]; }, propDecorators: { prefixIcon: [{
243
+ type: Input
244
+ }], suffixIcon: [{
245
+ type: Input
246
+ }], type: [{
247
+ type: Input
248
+ }], clearButton: [{
249
+ type: Input
250
+ }], activeIcons: [{
251
+ type: Input
252
+ }], forceHasPrefix: [{
253
+ type: Input
254
+ }], forceHasSuffix: [{
255
+ type: Input
256
+ }], options: [{
257
+ type: Input
258
+ }], textAlignClass: [{
259
+ type: HostBinding,
260
+ args: ['class']
261
+ }], textAlign: [{
262
+ type: Input
263
+ }], input: [{
264
+ type: ViewChild,
265
+ args: ['input']
266
+ }], prefix: [{
267
+ type: ViewChild,
268
+ args: ['prefix', { static: true }]
269
+ }], suffix: [{
270
+ type: ViewChild,
271
+ args: ['suffix', { static: true }]
272
+ }], focusChanged: [{
273
+ type: Output
274
+ }], keyPressed: [{
275
+ type: Output
276
+ }] } });
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXQtYXV0b2NvbXBsZXRlL2lucHV0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0LWF1dG9jb21wbGV0ZS9pbnB1dC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osSUFBSSxFQUFFLFdBQVcsRUFDakIsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFvQjFFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBaUI7SUFtQy9ELElBQ0ksY0FBYztRQUNoQixPQUFPLGNBQWMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFXRCxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDakksQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FB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QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGOzswQkFpSFksUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTs0Q0FyRmhDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxPQUFPO2dCQUtYLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRWMsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNxQixNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBNUMsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0LCBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNraXBTZWxmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS5jb21wb25lbnQnO1xyXG5cclxudHlwZSBQcmVmaXhTdWZmaXggPSB7IGljb246IHN0cmluZywgdG9vbHRpcD86IHN0cmluZyB9O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWlucHV0LWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuLi9sYXlvdXRzL3NpbXBsZS91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5zY3NzJywgJy4uL2lucHV0L2lucHV0LmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0QXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgVWlTaW1wbGVDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7IC8vIH0sIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHsgLy8gfSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7IC8vIH0sIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAvLyBVaVNpbXBsZUNvbXBvbmVudCA9IElucHV0Q29tcG9uZW50O1xyXG5cclxuICAvLyBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIC8vIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgLy8gQElucHV0KCkgdXNlSW5wdXRNZXNzYWdlczogJ25ldmVyJyB8ICdhbHdheXMnIHwgJ29uZGVtYW5kJyA9ICdhbHdheXMnO1xyXG4gIC8vIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyBASW5wdXQoKSB2YWxpZGF0b3JzOiBVaVZhbGlkYXRvcnMgfCB1bmRlZmluZWQ7XHJcbiAgLy8gQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdzbWFsbGVyJyB8ICdub3JtYWwnIHwgJ2xhcmdlcicgfCAnbGFyZ2UnID0gJ25vcm1hbCc7XHJcbiAgLy8gQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lO1xyXG5cclxuICAvLyBjb21wb25lbnRGb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIC8vXHJcbiAgLy8gbmdDb250cm9sOiBOZ0NvbnRyb2w7XHJcbiAgLy9cclxuICAvLyBASW5wdXQoKSB2YWxpZGF0b3JzOiBVaVZhbGlkYXRvcnMgfCB1bmRlZmluZWQ7XHJcbiAgLy8gQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lO1xyXG4gIC8vXHJcbiAgLy8gQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICAvLyBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIC8vIEBJbnB1dCgpIHVzZUlucHV0TWVzc2FnZXM6ICduZXZlcicgfCAnYWx3YXlzJyB8ICdvbmRlbWFuZCcgPSAnYWx3YXlzJztcclxuICAvLyBASW5wdXQoKSBoaW50Pzogc3RyaW5nO1xyXG4gIC8vIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnc21hbGxlcicgfCAnbm9ybWFsJyB8ICdsYXJnZXInIHwgJ2xhcmdlJyA9ICdub3JtYWwnO1xyXG5cclxuICBASW5wdXQoKSBwcmVmaXhJY29uOiBQcmVmaXhTdWZmaXg7XHJcbiAgQElucHV0KCkgc3VmZml4SWNvbjogUHJlZml4U3VmZml4O1xyXG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBjbGVhckJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGl2ZUljb25zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmb3JjZUhhc1ByZWZpeCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZvcmNlSGFzU3VmZml4ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgZ2V0IHRleHRBbGlnbkNsYXNzKCkge1xyXG4gICAgcmV0dXJuIGB0ZXh0LWFsaWduLSR7dGhpcy50ZXh0QWxpZ259YDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHRleHRBbGlnbjogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3ByZWZpeCcsIHsgc3RhdGljOiB0cnVlIH0pIHByZWZpeDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdzdWZmaXgnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWZmaXg6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBmb2N1c0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIGtleVByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcblxyXG4gIGdldCBoYXNQcmVmaXgoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMucHJlZml4SWNvbiAmJiB0aGlzLnByZWZpeEljb24uaWNvbiAhPT0gJycpIHx8IHRoaXMucHJlZml4Py5uYXRpdmVFbGVtZW50Py5pbm5lclRleHQgIT09ICcnIHx8IHRoaXMuZm9yY2VIYXNQcmVmaXg7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU3VmZml4KCkge1xyXG4gICAgcmV0dXJuICh0aGlzLnN1ZmZpeEljb24gJiYgdGhpcy5zdWZmaXhJY29uLmljb24gIT09ICcnKSB8fCB0aGlzLnN1ZmZpeD8ubmF0aXZlRWxlbWVudD8uaW5uZXJUZXh0ICE9PSAnJyB8fCB0aGlzLmZvcmNlSGFzU3VmZml4O1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAvLyBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgdmFsdWU6IHN0cmluZztcclxuXHJcbiAgLy8gY29udHJvbDtcclxuXHJcblxyXG4gIC8vIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG4gIC8vIG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7fTtcclxuXHJcbiAgLy8gZ2V0IHNob3dJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gIC8vICAgcmV0dXJuIHRydWU7XHJcbiAgLy8gICAvLyByZXR1cm4gdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgISF0aGlzLmNvbnRyb2wuZXJyb3JzO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0IHZhbGlkYXRpb25NZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgLy8gICAvLyBjb25zb2xlLmxvZyh0aGlzLmNvbnRyb2w/LmVycm9ycyk7XHJcbiAgLy8gICBsZXQgZTogYW55ID0ge2NvZGU6ICdOZXpuw6Ftw6EgY2h5YmEnfTtcclxuICAvLyAgIGNvbnN0IGVycm9ycyA9IHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IHt9O1xyXG4gIC8vICAgT2JqZWN0LmtleXMoZXJyb3JzKS5maW5kKGEgPT4ge1xyXG4gIC8vICAgICBlID0ge2NvZGU6IGEsIGRhdGE6IGVycm9yc1thXX07XHJcbiAgLy8gICAgIHJldHVybiB0cnVlO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gICBzd2l0Y2ggKGUuY29kZSkge1xyXG4gIC8vICAgICBjYXNlICdyZXF1aXJlZCc6XHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy52YWxpZGF0aW9uLnJlcXVpcmVkJyk7XHJcbiAgLy8gICAgIGNhc2UgJ2VtYWlsJzpcclxuICAvLyAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3VpLmNvbnRyb2xzLnZhbGlkYXRpb24uZW1haWwnKTtcclxuICAvLyAgICAgY2FzZSAnbWF0RGF0ZXBpY2tlclBhcnNlJzpcclxuICAvLyAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3VpLmNvbnRyb2xzLnZhbGlkYXRpb24ubWF0RGF0ZXBpY2tlclBhcnNlJyk7XHJcbiAgLy8gICAgIGNhc2UgJ21heGxlbmd0aCc6XHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy52YWxpZGF0aW9uLm1heGxlbmd0aCcsIGUuZGF0YSk7XHJcbiAgLy8gICAgIGNhc2UgJ21pbmxlbmd0aCc6XHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy52YWxpZGF0aW9uLm1pbmxlbmd0aCcsIGUuZGF0YSk7XHJcbiAgLy8gICAgIGNhc2UgJ3Bvc2l0aXZlJzpcclxuICAvLyAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoaXNOYU4oTnVtYmVyKGUuZGF0YSkpID8gJ3VpLmNvbnRyb2xzLnZhbGlkYXRpb24uaW52YWxpZE51bWJlcicgOiAndWkuY29udHJvbHMudmFsaWRhdGlvbi5wb3NpdGl2ZScpO1xyXG4gIC8vICAgICBjYXNlICdjdXN0b20nOlxyXG4gIC8vICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlLmRhdGEpO1xyXG4gIC8vICAgICBkZWZhdWx0OlxyXG4gIC8vICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlLmNvZGUpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IG1heExlblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlICYmICh0aGlzLmNvbnRyb2wudmFsdWUubGVuZ3RoID4gKHRoaXMudmFsaWRhdG9ycz8ubWF4TGVuZ3RoIHx8IDApKTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIEBTa2lwU2VsZigpIHByb3RlY3RlZCBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgLypcclxuICAgIGJ1ZCBwcmVzIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIGNvbnRyb2w6IE5nQ29udHJvbCBhIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXMgPT4genRyYXRpbWUgYWxlIGN1c3RvbSB2YWxpZGFjaVxyXG4gICAgYW5lYm8gcHJlcyBESSBqYWtvIHByb3ZpZGVycyBhIHBhayB0aGlzLmNvbnRyb2wgPSB2aXogbmdPbkluaXQgLSBwb2t1ZCBqZWogdnViZWMgcG90cmVidWplbVxyXG5cclxuICAgICAqL1xyXG4gICAgLy8gcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgIC8vIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIGNvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIC8vIEBTZWxmKCkgcHJpdmF0ZSBjb250cm9sRGlyZWN0aXZlOiBOZ0NvbnRyb2wsXHJcbiAgICkge1xyXG4gICAgc3VwZXIobnVsbCwgY29udHJvbENvbnRhaW5lcik7XHJcblxyXG4gICAgLy8gdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgLy8gc3VwZXIoKTtcclxuICAvLyAgc3VwZXIodW5kZWZpbmVkLCAvKm5nQ29udHJvbCovIHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgLy8gc3VwZXIoY29udHJvbCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhjb250cm9sKTtcclxuICAgIC8vIGlmIChjb250cm9sKSB7XHJcbiAgICAvLyAgIGNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gaWYgKG5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAvLyAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXHJcbiAgICAvLyAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cclxuICAgIC8vICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dDbGVhckJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNsZWFyQnV0dG9uICYmIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlICE9PSAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcclxuICAgIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHYpID0+IHtcclxuICAgICAgY29uc3QgdmwgPSB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihvID0+IHZsID09PSAnJyB8fCBvLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmwpKVxyXG4gICAgfSlcclxuICAgIC8vIGNvbnNvbGUubG9nKCdwcm9iaWhhIHZ1YmVjIG9uaW5pdD8nKTtcclxuICAgIC8vIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgLy8gICBjb25zb2xlLmxvZygnZnJvbSBuZ0NvbnRyb2wuLi4uPz8nKTtcclxuICAgIC8vICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcclxuICAgIC8vICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbDtcclxuICAgIC8vICAgfSBlbHNlIHtcclxuICAgIC8vICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5hcHBseVZhbGlkYXRvcnMoKTtcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtQ29udHJvbE5hbWUgP1xyXG4gICAgLy8gICAgICh0aGlzLmNvbnRyb2xDb250YWluZXIgYXMgRm9ybUdyb3VwRGlyZWN0aXZlKS5jb250cm9sLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSkgOiB0aGlzLmZvcm1Db250cm9sO1xyXG4gICAgLy8gICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoY29udHJvbC52YWxpZGF0b3IpO1xyXG4gICAgLy8gICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiBjb25zb2xlLmxvZygnb25pdGluIHN1YicsIHYpKTtcclxuICAgIC8vICAgY29udHJvbC5fY29tcG9uZW50Rm9ybUNvbnRyb2wgPSB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sO1xyXG4gICAgLy8gICBpZiAoY29udHJvbC5fbWFya0FzVG91Y2hlZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyAgICAgLy8gY29udHJvbC5fY29tcG9uZW50Rm9ybUNvbnRyb2wgPSB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCdvdmVycmlkaW5nIG1hcmtBc1RvdWNoZWQgZm9yJywgdGhpcy5mb3JtQ29udHJvbE5hbWUpO1xyXG4gICAgLy8gICAgIGNvbnRyb2wuX21hcmtBc1RvdWNoZWQgPSBjb250cm9sLm1hcmtBc1RvdWNoZWQ7XHJcbiAgICAvLyAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkID0gKHtvbmx5U2VsZn06IHsgb25seVNlbGY/OiBib29sZWFuIH0gPSB7fSk6IHZvaWQgPT4ge1xyXG4gICAgLy8gICAgICAgY29uc29sZS5sb2coJ21hcmtpbmcgYXMgdG91Y2hlZCcsIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wudmFsdWUsIGNvbnRyb2wudmFsdWUsIHRoaXMueHh4LnZhbHVlLCBjb250cm9sLl9jb21wb25lbnRGb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgICAvLyAgICAgICBjb250cm9sLl9tYXJrQXNUb3VjaGVkKHtvbmx5U2VsZn0pO1xyXG4gICAgLy8gICAgICAgc2V0VGltZW91dCgoKSA9PiBjb250cm9sLl9jb21wb25lbnRGb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCksIDEwMDApO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJWYWx1ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhmb2N1czogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGFzRm9jdXMgPSBmb2N1cztcclxuICAgICAgdGhpcy5mb2N1c0NoYW5nZWQuZW1pdChmb2N1cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uS2V5cHJlc3NlZCgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5rZXlQcmVzc2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8vIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xyXG4gIC8vIH1cclxuICAvL1xyXG4gIC8vIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcclxuICAvLyB9XHJcblxyXG4gIC8vIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAvLyB9XHJcblxyXG4gIC8vIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gIC8vICAgLy8gaXNEaXNhYmxlZCA/IHRoaXMuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgLy8gICAvLyB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xyXG4gIC8vICAgLy8gY29uc29sZS5sb2coY29udHJvbCwgY29udHJvbC52YWx1ZSwgY29udHJvbC5lcnJvcnMpO1xyXG4gIC8vICAgaWYgKHRoaXMudmFsdWUgPT09ICdlcnJvcicpIHtcclxuICAvLyAgICAgcmV0dXJuIHsgY3VzdG9tRXJyb3I6ICdtdWogZXJyb3InfVxyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgcmV0dXJuIG51bGw7XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvLyBjb25zb2xlLmxvZygnY3VzdG9tIHZhbGlkYXRlJyk7XHJcbiAgLy8gICAvLyByZXR1cm4gbnVsbDtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnd3JpdGV2YWx1ZTogJywgb2JqKTtcclxuICAvLyAgIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuc2V0VmFsdWUob2JqKTtcclxuICAvLyAgIC8vIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgLy8gICAvLyB0aGlzLmNvbnRyb2wuc2V0VmFsdWUob2JqKTtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAvLyB9XHJcbiAgLy9cclxuICAvLyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgLy8gfVxyXG4gIC8vXHJcbiAgLy8gc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBtb2RlbENoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJGV2ZW50KTtcclxuICAvLyAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgLy8gICB0aGlzLm9uQ2hhbmdlKCRldmVudClcclxuICAvLyB9XHJcblxyXG4gIC8vIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKHRoaXMubGFiZWwsICd2YWxpZGF0ZScpO1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuZXJyb3JzO1xyXG4gIC8vICAgLy8gcmV0dXJuIHVuZGVmaW5lZDtcclxuICAvLyB9XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGlmICh0aGlzLnBhcmVudEZvcm1Db250cm9sKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudEZvcm1Db250cm9sLl9jb21wb25lbnRGb3JtQ29udHJvbC5lcnJvcnM7XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygndmFsaWRhdGUnLCB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLmVycm9ycyk7XHJcbiAgICAvLyAvLyB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldEVycm9ycyggeyBjdXN0b206ICd4eHgnIH0pO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRFcnJvcnMoIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuZXJyb3JzKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCd2YWxpZGF0ZSAyJywgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5lcnJvcnMpO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuZXJyb3JzO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5lcnJvcnMsIGNvbnRyb2wuZXJyb3JzLCB0aGlzLnBhcmVudEZvcm1Db250cm9sLmVycm9ycywgdGhpcyk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5lcnJvcnM7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8dWktc2ltcGxlLWxheW91dCBbY3R4XT1cInRoaXNcIj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250cm9sLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnaGFzLXN1ZmZpeCc6IGhhc1N1ZmZpeCwgJ2hhcy1wcmVmaXgnOiBoYXNQcmVmaXgsICdoYXMtY2xlYXItaWNvbic6IHNob3dDbGVhckJ1dHRvbiwgJ2FjdGl2ZS1pY29ucyc6IGFjdGl2ZUljb25zLCAnaGFzLWZvY3VzJzogaGFzRm9jdXN9XCI+XHJcbiAgPGlucHV0ICNpbnB1dCBtYXRJbnB1dCBbdHlwZV09XCJ0eXBlXCIgW2Zvcm1Db250cm9sXT1cImNvbXBvbmVudEZvcm1Db250cm9sXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGtleWRvd24pPVwib25LZXlwcmVzc2VkKCRldmVudClcIiAoZm9jdXMpPVwib25Gb2N1cyh0cnVlKVwiIChibHVyKT1cIm9uRm9jdXMoZmFsc2UpXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIvPlxyXG5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPnt7b3B0aW9ufX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgPGRpdiAjcHJlZml4PjxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PXByZWZpeF1cIj48L25nLWNvbnRlbnQ+PC9kaXY+XHJcbiAgPGRpdiAjc3VmZml4PjxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PXN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+PC9kaXY+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwicHJlZml4SWNvblwiIGNsYXNzPVwicHJlZml4LWljb25cIiBbbWF0VG9vbHRpcF09XCJwcmVmaXhJY29uLnRvb2x0aXBcIj57eyBwcmVmaXhJY29uLmljb24gfX08L21hdC1pY29uPlxyXG4gIDxtYXQtaWNvbiAqbmdJZj1cInN1ZmZpeEljb25cIiBjbGFzcz1cInN1ZmZpeC1pY29uXCIgW21hdFRvb2x0aXBdPVwic3VmZml4SWNvbi50b29sdGlwXCI+e3sgc3VmZml4SWNvbi5pY29uIH19PC9tYXQtaWNvbj5cclxuICA8dWktYWN0aW9uLWljb24gW3NpemVdPVwiJ3NtYWxsJ1wiIFtjb2xvcl09XCInd2FybidcIiAqbmdJZj1cInNob3dDbGVhckJ1dHRvblwiIChjbGljayk9XCJjbGVhclZhbHVlKClcIiBbbWF0SWNvbl09XCInY2xlYXInXCIgY2xhc3M9XCJjbGVhci1pY29uXCI+PC91aS1hY3Rpb24taWNvbj5cclxuPC9kaXY+XHJcblxyXG48L3VpLXNpbXBsZS1sYXlvdXQ+XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/tooltip";
5
+ import * as i3 from "../../elements/validation-message/validation-message.component";
6
+ export class UiBaseLayoutComponent {
7
+ get class() {
8
+ return `${this.ctx.isInvalid ? 'invalid ' : ''} ${this.ctx.inputMessagesPosition}`;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiBaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: UiBaseLayoutComponent, selector: "ui-base-layout", inputs: { ctx: "ctx" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"label\" *ngIf=\"ctx.label\">\r\n <div class=\"text-container\" [matTooltip]=\"false && ctx.required ? 'Povinn\u00E1 polo\u017Eka' : 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", styles: [":host{width:100%;display:flex;flex-direction:column}:host .label{display:flex;align-items:center}:host .label .text-container{display:flex;align-items:center}:host .label .text-container .text{font-size:.9em;line-height:1em;padding:6px 0 4px}:host .label .text-container .required{align-self:baseline;padding:0 4px;font-size:1.2em}:host ::ng-deep .counter{margin-left:auto;padding-right:.4em}:host ::ng-deep .counter.counter-top{font-size:.8em}:host.absolute{position:relative}:host.absolute .hint-container{position:absolute;bottom:-1.2em;width:100vw}:host .hint-container{display:flex;height:1.2em;text-align:left;font-size:.8em;margin-top:.1em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.ValidationMessageComponent, selector: "ui-validation-message", inputs: ["validationErrors"] }] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiBaseLayoutComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'ui-base-layout', template: "<div class=\"label\" *ngIf=\"ctx.label\">\r\n <div class=\"text-container\" [matTooltip]=\"false && ctx.required ? 'Povinn\u00E1 polo\u017Eka' : 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", styles: [":host{width:100%;display:flex;flex-direction:column}:host .label{display:flex;align-items:center}:host .label .text-container{display:flex;align-items:center}:host .label .text-container .text{font-size:.9em;line-height:1em;padding:6px 0 4px}:host .label .text-container .required{align-self:baseline;padding:0 4px;font-size:1.2em}:host ::ng-deep .counter{margin-left:auto;padding-right:.4em}:host ::ng-deep .counter.counter-top{font-size:.8em}:host.absolute{position:relative}:host.absolute .hint-container{position:absolute;bottom:-1.2em;width:100vw}:host .hint-container{display:flex;height:1.2em;text-align:left;font-size:.8em;margin-top:.1em}\n"] }]
16
+ }], propDecorators: { ctx: [{
17
+ type: Input
18
+ }], class: [{
19
+ type: HostBinding,
20
+ args: ['class']
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9sYXlvdXRzL2Jhc2UvdWktYmFzZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9sYXlvdXRzL2Jhc2UvdWktYmFzZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVE5RCxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLElBQ0ksS0FBSztRQUNQLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JGLENBQUM7K0dBUFUscUJBQXFCO21HQUFyQixxQkFBcUIsK0hDUmxDLGk3QkFpQkE7OzRGRFRhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQkFBZ0I7OEJBTWpCLEdBQUc7c0JBQVgsS0FBSztnQkFHRixLQUFLO3NCQURSLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vdWktYmFzZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1iYXNlLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWJhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdWktYmFzZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQmFzZUxheW91dENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGN0eDogVWlCYXNlQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBnZXQgY2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmN0eC5pc0ludmFsaWQgPyAnaW52YWxpZCAnIDogJyd9ICR7dGhpcy5jdHguaW5wdXRNZXNzYWdlc1Bvc2l0aW9ufWA7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGFiZWxcIiAqbmdJZj1cImN0eC5sYWJlbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNvbnRhaW5lclwiIFttYXRUb29sdGlwXT1cImZhbHNlICYmIGN0eC5yZXF1aXJlZCA/ICdQb3Zpbm7DoSBwb2xvxb5rYScgOiB1bmRlZmluZWRcIiBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhYm92ZSdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCIgPnt7Y3R4LmxhYmVsfX08L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJmYWxzZSAmJiBjdHgucmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCI+KjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5jb3VudGVyLXRvcFwiPjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcblxyXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48ZGl2IGNsYXNzPVwiaGludC1jb250YWluZXJcIiAqbmdJZj1cImN0eC51c2VJbnB1dE1lc3NhZ2VzID09PSAnYWx3YXlzJyB8fCAoY3R4LnVzZUlucHV0TWVzc2FnZXMgPT09ICdvbmRlbWFuZCcgJiYgKGN0eC5pc0ludmFsaWQgfHwgY3R4LmhpbnQpKVwiPlxyXG4gIDx1aS12YWxpZGF0aW9uLW1lc3NhZ2UgY2xhc3M9XCJpbnZhbGlkXCIgKm5nSWY9XCJjdHguaXNJbnZhbGlkXCIgW3ZhbGlkYXRpb25FcnJvcnNdPVwiY3R4LnZhbGlkYXRpb25FcnJvcnNcIj48L3VpLXZhbGlkYXRpb24tbWVzc2FnZT5cclxuICA8ZGl2IGNsYXNzPVwiaGludFwiICpuZ0lmPVwiIWN0eC5pc0ludmFsaWQgJiYgY3R4LmhpbnRcIiBbaW5uZXJIVE1MXT1cImN0eC5oaW50XCI+PC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdHgubGFiZWxcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5jb3VudGVyLWJvdHRvbVwiPjwvbmctY29udGVudD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,74 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UiBaseComponent {
4
+ // get control() {
5
+ // return this.controlFormGroup.get('text');
6
+ // }
7
+ constructor() {
8
+ this.placeholder = '';
9
+ this.useInputMessages = 'always';
10
+ this.inputMessagesPosition = 'relative';
11
+ this.size = 'normal';
12
+ // control = new FormControl();
13
+ // controlFormGroup;
14
+ this.required = false;
15
+ // this.ngControl.valueAccessor = this;
16
+ }
17
+ ngOnInit() {
18
+ // console.log(this.controlContainer);
19
+ // this.controlFormGroup.valueChanges.subscribe(v => {
20
+ // this.onChange(v);
21
+ // });
22
+ // this.ngControl.control.statusChanges.subscribe(v => console.log(v));
23
+ //
24
+ // this.ngControl.control.markAsTouched = (opts?: {
25
+ // onlySelf?: boolean;
26
+ // }) => {
27
+ // if (!this.control.touched) {
28
+ // console.log('marking as touched');
29
+ // this.control.markAsTouched(opts);
30
+ // }
31
+ // this.control.updateValueAndValidity({onlySelf: opts?.onlySelf, emitEvent: false});
32
+ // }
33
+ // setTimeout(() => {
34
+ // this.applyValidators(this.validators);
35
+ // });
36
+ }
37
+ // bindValidators(validators: ValidatorFn[]): void {
38
+ // this.control.setValidators(validators);
39
+ // }
40
+ get validationErrors() {
41
+ return null;
42
+ }
43
+ get validationMessage() {
44
+ return 'obsolete...';
45
+ }
46
+ get isInvalid() {
47
+ return false;
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: UiBaseComponent, selector: "ui-abstract-base-component", inputs: { placeholder: "placeholder", label: "label", useInputMessages: "useInputMessages", inputMessagesPosition: "inputMessagesPosition", hint: "hint", size: "size" }, host: { properties: { "class": "this.size" } }, ngImport: i0, template: '** abstract **', isInline: true }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiBaseComponent, decorators: [{
53
+ type: Component,
54
+ args: [{
55
+ selector: 'ui-abstract-base-component',
56
+ template: '** abstract **'
57
+ }]
58
+ }], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
59
+ type: Input
60
+ }], label: [{
61
+ type: Input
62
+ }], useInputMessages: [{
63
+ type: Input
64
+ }], inputMessagesPosition: [{
65
+ type: Input
66
+ }], hint: [{
67
+ type: Input
68
+ }], size: [{
69
+ type: HostBinding,
70
+ args: ['class']
71
+ }, {
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2xheW91dHMvYmFzZS91aS1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBWXRFLE1BQU0sT0FBZ0IsZUFBZTtJQWlCbkMsa0JBQWtCO0lBQ2xCLDhDQUE4QztJQUM5QyxJQUFJO0lBRUo7UUFuQlMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFakIscUJBQWdCLEdBQW9DLFFBQVEsQ0FBQztRQUM3RCwwQkFBcUIsR0FBNEIsVUFBVSxDQUFDO1FBSTVELFNBQUksR0FBd0QsUUFBUSxDQUFDO1FBRTlFLCtCQUErQjtRQUUvQixvQkFBb0I7UUFFcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU9mLHVDQUF1QztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLHNDQUFzQztRQUV0QyxzREFBc0Q7UUFDdEQsc0JBQXNCO1FBQ3RCLE1BQU07UUFFTix1RUFBdUU7UUFDdkUsRUFBRTtRQUNGLG1EQUFtRDtRQUNuRCx3QkFBd0I7UUFDeEIsVUFBVTtRQUNWLGlDQUFpQztRQUNqQyx5Q0FBeUM7UUFDekMsd0NBQXdDO1FBQ3hDLE1BQU07UUFDTix1RkFBdUY7UUFDdkYsSUFBSTtRQUVKLHFCQUFxQjtRQUNyQiwyQ0FBMkM7UUFDM0MsTUFBTTtJQUNSLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsNENBQTRDO0lBQzVDLElBQUk7SUFJSixJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQWpFbUIsZUFBZTttR0FBZixlQUFlLDRSQUZ6QixnQkFBZ0I7OzRGQUVOLGVBQWU7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7MEVBR1UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csSUFBSTtzQkFEWixXQUFXO3VCQUFDLE9BQU87O3NCQUNuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVaVZhbGlkYXRvcnMge1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBtYXhMZW5ndGg/OiBudW1iZXJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1hYnN0cmFjdC1iYXNlLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGU6ICcqKiBhYnN0cmFjdCAqKidcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFVpQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSB1c2VJbnB1dE1lc3NhZ2VzOiAnbmV2ZXInIHwgJ2Fsd2F5cycgfCAnb25kZW1hbmQnID0gJ2Fsd2F5cyc7XHJcbiAgQElucHV0KCkgaW5wdXRNZXNzYWdlc1Bvc2l0aW9uOiAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJyA9ICdyZWxhdGl2ZSc7XHJcbiAgQElucHV0KCkgaGludD86IHN0cmluZztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtYWxsJyB8ICdzbWFsbGVyJyB8ICdub3JtYWwnIHwgJ2xhcmdlcicgfCAnbGFyZ2UnID0gJ25vcm1hbCc7XHJcblxyXG4gIC8vIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgLy8gY29udHJvbEZvcm1Hcm91cDtcclxuXHJcbiAgcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgLy8gZ2V0IGNvbnRyb2woKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5jb250cm9sRm9ybUdyb3VwLmdldCgndGV4dCcpO1xyXG4gIC8vIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAvLyB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jb250cm9sQ29udGFpbmVyKTtcclxuXHJcbiAgICAvLyB0aGlzLmNvbnRyb2xGb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHtcclxuICAgIC8vICAgdGhpcy5vbkNoYW5nZSh2KTtcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiBjb25zb2xlLmxvZyh2KSk7XHJcbiAgICAvL1xyXG4gICAgLy8gdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkID0gKG9wdHM/OiB7XHJcbiAgICAvLyAgIG9ubHlTZWxmPzogYm9vbGVhbjtcclxuICAgIC8vIH0pID0+IHtcclxuICAgIC8vICAgaWYgKCF0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCdtYXJraW5nIGFzIHRvdWNoZWQnKTtcclxuICAgIC8vICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZChvcHRzKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6IG9wdHM/Lm9ubHlTZWxmLCBlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuYXBwbHlWYWxpZGF0b3JzKHRoaXMudmFsaWRhdG9ycyk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIC8vIGJpbmRWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10pOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gIC8vIH1cclxuXHJcblxyXG5cclxuICBnZXQgdmFsaWRhdGlvbkVycm9ycygpOiBWYWxpZGF0aW9uRXJyb3JzIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbGlkYXRpb25NZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ29ic29sZXRlLi4uJztcclxuICB9XHJcblxyXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICAvLyBnZXQgY2xhc3MoKTogc3RyaW5nIHtcclxuICAvLyAgIHJldHVybiAodGhpcy5pc0ludmFsaWQgPyAnaW52YWxpZCAnIDogJycpICsgdGhpcy5zaXplO1xyXG4gIC8vIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../base/ui-base-layout.component";
5
+ export class UiSimpleLayoutComponent {
6
+ length() {
7
+ return this.ctx.inputLength();
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiSimpleLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: { ctx: "ctx" }, ngImport: i0, template: "<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", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UiBaseLayoutComponent, selector: "ui-base-layout", inputs: ["ctx"] }] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UiSimpleLayoutComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'ui-simple-layout', template: "<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" }]
15
+ }], propDecorators: { ctx: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktc2ltcGxlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9sYXlvdXRzL3NpbXBsZS91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpELE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDOytHQU5VLHVCQUF1QjttR0FBdkIsdUJBQXVCLGdGQ1JwQyw2WUFhQTs7NEZETGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFNbkIsR0FBRztzQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vdWktc2ltcGxlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLXNpbXBsZS1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG4gIC8vIHN0eWxlVXJsczogWyAnLi91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVNpbXBsZUxheW91dENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGN0eDogVWlTaW1wbGVDb21wb25lbnQ7XHJcblxyXG4gIGxlbmd0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLmN0eC5pbnB1dExlbmd0aCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHVpLWJhc2UtbGF5b3V0IFtjdHhdPVwiY3R4XCI+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJjdHgudmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCIgY2xhc3M9XCJjb3VudGVyIGNvdW50ZXItdG9wXCI+XHJcbiAgICB7eyBsZW5ndGgoKSB9fSAvIHt7IGN0eC52YWxpZGF0b3JzPy5tYXhMZW5ndGggfX1cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImN0eC52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIiBjbGFzcz1cImNvdW50ZXIgY291bnRlci1ib3R0b21cIj5cclxuICAgIHt7IGxlbmd0aCgpIH19IC8ge3sgY3R4LnZhbGlkYXRvcnM/Lm1heExlbmd0aCB9fVxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48L3VpLWJhc2UtbGF5b3V0PlxyXG4iXX0=