@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,126 +1,126 @@
1
- import { Component, Inject, Input, Optional, Self, ViewChild } from '@angular/core';
2
- import { UiSimpleComponent } from '../layouts/simple/ui-simple.component';
3
- import { UI_TRANSLATESERVICE } from '../services/ui-translate.service';
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/select";
9
- import * as i5 from "@angular/material/core";
10
- import * as i6 from "../button/button.component";
11
- import * as i7 from "../layouts/simple/ui-simple-layout.component";
12
- export class SelectComponent extends UiSimpleComponent {
13
- constructor(ngControl, translateService) {
14
- super(ngControl);
15
- this.ngControl = ngControl;
16
- this.translateService = translateService;
17
- this.multiple = false;
18
- this.options = [];
19
- this.allowEmptySelection = false;
20
- this.lastCount = -1;
21
- this.overoption = false;
22
- this.optionToValue = (o) => this.valueAttribute ? o[this.valueAttribute] : o;
23
- }
24
- ngOnInit() {
25
- super.ngOnInit();
26
- if (this.optionFormatter === undefined) {
27
- this.optionFormatter = o => this.displayAttribute ? o[this.displayAttribute] : o;
28
- }
29
- if (this.multiple && this.componentFormControl) {
30
- this.lastCount = this.componentFormControl.value.length;
31
- this.componentFormControl.valueChanges.subscribe(v => {
32
- if (v.length === 1 && this.lastCount === 0 && this.overoption) {
33
- this.select.selectionChange.emit(this.optionToValue(v));
34
- this.select.close();
35
- }
36
- this.lastCount = v.length;
37
- });
38
- }
39
- if (this.trackBy && this.componentFormControl && this.componentFormControl.value) {
40
- this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });
41
- }
42
- }
43
- ngOnChanges(changes) {
44
- super.ngOnChanges(changes);
45
- if (changes.options && this.componentFormControl && this.trackBy) {
46
- this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });
47
- }
48
- }
49
- mapValues(src) {
50
- if (src && this.trackBy && this.options) {
51
- if (this.multiple) {
52
- return this.options.filter(o => src.find(v => v[this.trackBy] === o[this.trackBy]));
53
- }
54
- else {
55
- return this.options.find(o => o[this.trackBy] === src[this.trackBy]);
56
- }
57
- }
58
- else {
59
- return src;
60
- }
61
- }
62
- selectOption(o, select) {
63
- select.selectionChange.emit(this.optionToValue(o));
64
- select.close();
65
- }
66
- selectAll() {
67
- this.componentFormControl.setValue(this.options.map(o => this.optionToValue(o)));
68
- }
69
- clearAll() {
70
- this.componentFormControl.setValue([]);
71
- }
72
- setDisabledState(isDisabled) {
73
- }
74
- writeValue(obj) {
75
- if (!this.ngControl) {
76
- if (obj && obj.error) {
77
- console.log('setting error', obj, obj.error);
78
- this.componentFormControl.setErrors(obj.error === 'clear' ? null : { custom: obj.error }, { emitEvent: false });
79
- }
80
- else {
81
- this.componentFormControl.setValue(this.mapValues(obj));
82
- }
83
- }
84
- }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SelectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: UI_TRANSLATESERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SelectComponent, selector: "ui-select", inputs: { multiple: "multiple", triggerFormatter: "triggerFormatter", valueAttribute: "valueAttribute", resetText: "resetText", displayAttribute: "displayAttribute", options: "options", optionFormatter: "optionFormatter", optionTemplateRef: "optionTemplateRef", triggerTemplateRef: "triggerTemplateRef", panelClass: "panelClass", allowEmptySelection: "allowEmptySelection", trackBy: "trackBy" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<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", 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;-webkit-user-select:none;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;-webkit-user-select:none;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", "::ng-deep .mat-mdc-select-panel{padding:0!important}::ng-deep .mat-mdc-select-arrow-wrapper{height:1px!important}::ng-deep .mat-select-panel .select-one,::ng-deep .mat-mdc-select-panel .select-one{position:absolute;right:0;top:.3em;display:none}::ng-deep .mat-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-select-panel .mat-mdc-option:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover .select-one{display:block}::ng-deep .mat-select-panel .buttons,::ng-deep .mat-mdc-select-panel .buttons{padding:.2em;background-color:#fff;display:flex;position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.ButtonComponent, selector: "ui-button", inputs: ["type", "matIconPrefix", "label", "disabled", "busy", "kind", "color", "size", "formInvalid"] }, { kind: "component", type: i7.UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: ["ctx"] }] }); }
87
- }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SelectComponent, decorators: [{
89
- type: Component,
90
- args: [{ selector: 'ui-select', template: "<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", 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;-webkit-user-select:none;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;-webkit-user-select:none;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", "::ng-deep .mat-mdc-select-panel{padding:0!important}::ng-deep .mat-mdc-select-arrow-wrapper{height:1px!important}::ng-deep .mat-select-panel .select-one,::ng-deep .mat-mdc-select-panel .select-one{position:absolute;right:0;top:.3em;display:none}::ng-deep .mat-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-select-panel .mat-mdc-option:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover .select-one{display:block}::ng-deep .mat-select-panel .buttons,::ng-deep .mat-mdc-select-panel .buttons{padding:.2em;background-color:#fff;display:flex;position:sticky;bottom:0}\n"] }]
91
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
92
- type: Optional
93
- }, {
94
- type: Self
95
- }] }, { type: undefined, decorators: [{
96
- type: Inject,
97
- args: [UI_TRANSLATESERVICE]
98
- }] }]; }, propDecorators: { multiple: [{
99
- type: Input
100
- }], triggerFormatter: [{
101
- type: Input
102
- }], valueAttribute: [{
103
- type: Input
104
- }], resetText: [{
105
- type: Input
106
- }], displayAttribute: [{
107
- type: Input
108
- }], options: [{
109
- type: Input
110
- }], optionFormatter: [{
111
- type: Input
112
- }], optionTemplateRef: [{
113
- type: Input
114
- }], triggerTemplateRef: [{
115
- type: Input
116
- }], panelClass: [{
117
- type: Input
118
- }], allowEmptySelection: [{
119
- type: Input
120
- }], trackBy: [{
121
- type: Input
122
- }], select: [{
123
- type: ViewChild,
124
- args: ['select']
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFMUUsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFRNUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBcUJwRCxZQUF1QyxTQUFvQixFQUNYLGdCQUFxQztRQUNuRixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFGb0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNYLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFwQjVFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNakIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUtwQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLckMsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLEtBQUssQ0FBQztRQThDbkIsa0JBQWEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBekM3RSxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUks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QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRWUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3B0aW9uYWwsIFNlbGYsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBJVWlUcmFuc2xhdGVTZXJ2aWNlLCBVSV9UUkFOU0xBVEVTRVJWSUNFIH0gZnJvbSAnLi4vc2VydmljZXMvdWktdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyAnLi4vbGF5b3V0cy9zaW1wbGUvdWktc2ltcGxlLWxheW91dC5jb21wb25lbnQuc2NzcycsICcuL3NlbGVjdC5jb21wb25lbnQuc2NzcycgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFVpU2ltcGxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRyaWdnZXJGb3JtYXR0ZXI6IGFueTtcclxuICBASW5wdXQoKSB2YWx1ZUF0dHJpYnV0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHJlc2V0VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBvcHRpb25Gb3JtYXR0ZXI6ICgoYXJnOiBhbnkpID0+IHN0cmluZyB8IHVuZGVmaW5lZCkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgb3B0aW9uVGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHRyaWdnZXJUZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcGFuZWxDbGFzcztcclxuICBASW5wdXQoKSBhbGxvd0VtcHR5U2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHJhY2tCeTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBNYXRTZWxlY3Q7XHJcblxyXG4gIGxhc3RDb3VudCA9IC0xO1xyXG4gIG92ZXJvcHRpb24gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICAgICAgICAgICAgQEluamVjdChVSV9UUkFOU0xBVEVTRVJWSUNFKSBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogSVVpVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgc3VwZXIobmdDb250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbkZvcm1hdHRlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub3B0aW9uRm9ybWF0dGVyID0gbyA9PiB0aGlzLmRpc3BsYXlBdHRyaWJ1dGUgPyBvW3RoaXMuZGlzcGxheUF0dHJpYnV0ZV0gOiBvO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmxhc3RDb3VudCA9IHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wudmFsdWUubGVuZ3RoO1xyXG4gICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgaWYgKHYubGVuZ3RoID09PSAxICYmIHRoaXMubGFzdENvdW50ID09PSAwICYmIHRoaXMub3Zlcm9wdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3Quc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25Ub1ZhbHVlKHYpKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0LmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvdW50ID0gdi5sZW5ndGg7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudHJhY2tCeSAmJiB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sICYmIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm1hcFZhbHVlcyh0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICBpZiAoY2hhbmdlcy5vcHRpb25zICYmIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wgJiYgdGhpcy50cmFja0J5KSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5tYXBWYWx1ZXModGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC52YWx1ZSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcFZhbHVlcyhzcmMpIHtcclxuICAgIGlmIChzcmMgJiYgdGhpcy50cmFja0J5ICYmIHRoaXMub3B0aW9ucykge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyKG8gPT4gc3JjLmZpbmQodiA9PiB2W3RoaXMudHJhY2tCeV0gPT09IG9bdGhpcy50cmFja0J5XSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZChvID0+IG9bdGhpcy50cmFja0J5XSA9PT0gc3JjW3RoaXMudHJhY2tCeV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3B0aW9uVG9WYWx1ZSA9IChvOiBhbnkpID0+IHRoaXMudmFsdWVBdHRyaWJ1dGUgPyBvW3RoaXMudmFsdWVBdHRyaWJ1dGVdIDogbztcclxuXHJcbiAgc2VsZWN0T3B0aW9uKG86IGFueSwgc2VsZWN0OiBNYXRTZWxlY3QpIHtcclxuICAgIHNlbGVjdC5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLm9wdGlvblRvVmFsdWUobykpO1xyXG4gICAgc2VsZWN0LmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5tYXAobyA9PiB0aGlzLm9wdGlvblRvVmFsdWUobykpKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgaWYgKG9iaiAmJiBvYmouZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBlcnJvcicsIG9iaiwgb2JqLmVycm9yKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldEVycm9ycyhvYmouZXJyb3IgPT09ICdjbGVhcicgPyBudWxsIDogeyBjdXN0b206IG9iai5lcnJvciB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm1hcFZhbHVlcyhvYmopKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8dWktc2ltcGxlLWxheW91dCBbY3R4XT1cInRoaXNcIj5cclxuXHJcbjxtYXQtc2VsZWN0IGNsYXNzPVwiY29udHJvbC1jb250YWluZXJcIiAjc2VsZWN0IFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiY29tcG9uZW50Rm9ybUNvbnRyb2xcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIj5cclxuXHJcbiAgPG1hdC1zZWxlY3QtdHJpZ2dlciAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZVJlZlwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7b3B0aW9uOmNvbXBvbmVudEZvcm1Db250cm9sPy52YWx1ZX1cIiA+PC9uZy10ZW1wbGF0ZT5cclxuICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuXHJcbiAgPG1hdC1zZWxlY3QtdHJpZ2dlciAqbmdJZj1cInRyaWdnZXJGb3JtYXR0ZXJcIiBbaW5uZXJIVE1MXT1cImNvbXBvbmVudEZvcm1Db250cm9sPy52YWx1ZSA/IHRyaWdnZXJGb3JtYXR0ZXIoY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlKSA6ICcnXCI+PC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG4gIDxtYXQtb3B0aW9uICpuZ0lmPVwicmVzZXRUZXh0XCI+e3tyZXNldFRleHR9fTwvbWF0LW9wdGlvbj5cclxuXHJcbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25Ub1ZhbHVlKG8pXCIgPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tY29udGFpbmVyXCIgKG1vdXNlZW50ZXIpPVwib3Zlcm9wdGlvbiA9IHRydWU7XCIgKG1vdXNlbGVhdmUpPVwib3Zlcm9wdGlvbiA9IGZhbHNlXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVSZWZcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie29wdGlvbjpvfVwiID48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGVSZWZcIj5cclxuICAgICAgICB7e29wdGlvbkZvcm1hdHRlcihvKX19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VsZWN0LW9uZVwiICpuZ0lmPVwibXVsdGlwbGUgJiYgY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPT09IDBcIiAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG8sIHNlbGVjdClcIj5ub3J0aF93ZXN0PC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L21hdC1vcHRpb24+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgKm5nSWY9XCJtdWx0aXBsZVwiPlxyXG4gICAgPHVpLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogYXV0bztcIiBba2luZF09XCInYmFzaWMnXCIgW3NpemVdPVwiJ3NtYWxsZXInXCIgW2xhYmVsXT1cInRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndWkuY29udHJvbHMudWktc2VsZWN0LmNsZWFyLXNlbGVjdGlvbicpXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj48L3VpLWJ1dHRvbj5cclxuICAgIDx1aS1idXR0b24gW3NpemVdPVwiJ3NtYWxsZXInXCIgW2xhYmVsXT1cInRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndWkuY29udHJvbHMudWktc2VsZWN0LmFsbCcpXCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCI+PC91aS1idXR0b24+XHJcbiAgICA8dWktYnV0dG9uIFtzaXplXT1cIidzbWFsbGVyJ1wiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwLjJlbTtcIiBbZGlzYWJsZWRdPVwiY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPT09IDAgJiYgIWFsbG93RW1wdHlTZWxlY3Rpb25cIiBbbGFiZWxdPVwidHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy51aS1zZWxlY3QuYXBwbHktc2VsZWN0aW9uJykgKyAoY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPiAwID8gJyAoJyArIGNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlLmxlbmd0aCArICcpJyA6ICcnKVwiIChjbGljayk9XCJzZWxlY3QuY2xvc2UoKVwiPjwvdWktYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9tYXQtc2VsZWN0PlxyXG5cclxuPC91aS1zaW1wbGUtbGF5b3V0PlxyXG4iXX0=
1
+ import { Component, Inject, Input, Optional, Self, ViewChild } from '@angular/core';
2
+ import { UiSimpleComponent } from '../layouts/simple/ui-simple.component';
3
+ import { UI_TRANSLATESERVICE } from '../services/ui-translate.service';
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/select";
9
+ import * as i5 from "@angular/material/core";
10
+ import * as i6 from "../button/button.component";
11
+ import * as i7 from "../layouts/simple/ui-simple-layout.component";
12
+ export class SelectComponent extends UiSimpleComponent {
13
+ constructor(ngControl, translateService) {
14
+ super(ngControl);
15
+ this.ngControl = ngControl;
16
+ this.translateService = translateService;
17
+ this.multiple = false;
18
+ this.options = [];
19
+ this.allowEmptySelection = false;
20
+ this.lastCount = -1;
21
+ this.overoption = false;
22
+ this.optionToValue = (o) => this.valueAttribute ? o[this.valueAttribute] : o;
23
+ }
24
+ ngOnInit() {
25
+ super.ngOnInit();
26
+ if (this.optionFormatter === undefined) {
27
+ this.optionFormatter = o => this.displayAttribute ? o[this.displayAttribute] : o;
28
+ }
29
+ if (this.multiple && this.componentFormControl) {
30
+ this.lastCount = this.componentFormControl.value.length;
31
+ this.componentFormControl.valueChanges.subscribe(v => {
32
+ if (v.length === 1 && this.lastCount === 0 && this.overoption) {
33
+ this.select.selectionChange.emit(this.optionToValue(v));
34
+ this.select.close();
35
+ }
36
+ this.lastCount = v.length;
37
+ });
38
+ }
39
+ if (this.trackBy && this.componentFormControl && this.componentFormControl.value) {
40
+ this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });
41
+ }
42
+ }
43
+ ngOnChanges(changes) {
44
+ super.ngOnChanges(changes);
45
+ if (changes.options && this.componentFormControl && this.trackBy) {
46
+ this.componentFormControl.setValue(this.mapValues(this.componentFormControl.value), { emitEvent: false });
47
+ }
48
+ }
49
+ mapValues(src) {
50
+ if (src && this.trackBy && this.options) {
51
+ if (this.multiple) {
52
+ return this.options.filter(o => src.find(v => v[this.trackBy] === o[this.trackBy]));
53
+ }
54
+ else {
55
+ return this.options.find(o => o[this.trackBy] === src[this.trackBy]);
56
+ }
57
+ }
58
+ else {
59
+ return src;
60
+ }
61
+ }
62
+ selectOption(o, select) {
63
+ select.selectionChange.emit(this.optionToValue(o));
64
+ select.close();
65
+ }
66
+ selectAll() {
67
+ this.componentFormControl.setValue(this.options.map(o => this.optionToValue(o)));
68
+ }
69
+ clearAll() {
70
+ this.componentFormControl.setValue([]);
71
+ }
72
+ setDisabledState(isDisabled) {
73
+ }
74
+ writeValue(obj) {
75
+ if (!this.ngControl) {
76
+ if (obj && obj.error) {
77
+ console.log('setting error', obj, obj.error);
78
+ this.componentFormControl.setErrors(obj.error === 'clear' ? null : { custom: obj.error }, { emitEvent: false });
79
+ }
80
+ else {
81
+ this.componentFormControl.setValue(this.mapValues(obj));
82
+ }
83
+ }
84
+ }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: UI_TRANSLATESERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SelectComponent, selector: "ui-select", inputs: { multiple: "multiple", triggerFormatter: "triggerFormatter", valueAttribute: "valueAttribute", resetText: "resetText", displayAttribute: "displayAttribute", options: "options", optionFormatter: "optionFormatter", optionTemplateRef: "optionTemplateRef", triggerTemplateRef: "triggerTemplateRef", panelClass: "panelClass", allowEmptySelection: "allowEmptySelection", trackBy: "trackBy" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<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", 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;-webkit-user-select:none;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;-webkit-user-select:none;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", "::ng-deep .mat-mdc-select-panel{padding:0!important}::ng-deep .mat-mdc-select-arrow-wrapper{height:1px!important}::ng-deep .mat-select-panel .select-one,::ng-deep .mat-mdc-select-panel .select-one{position:absolute;right:0;top:.3em;display:none}::ng-deep .mat-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-select-panel .mat-mdc-option:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover .select-one{display:block}::ng-deep .mat-select-panel .buttons,::ng-deep .mat-mdc-select-panel .buttons{padding:.2em;background-color:#fff;display:flex;position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6.ButtonComponent, selector: "ui-button", inputs: ["type", "matIconPrefix", "label", "disabled", "busy", "kind", "color", "size", "formInvalid"] }, { kind: "component", type: i7.UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: ["ctx"] }] }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'ui-select', template: "<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", 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;-webkit-user-select:none;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;-webkit-user-select:none;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", "::ng-deep .mat-mdc-select-panel{padding:0!important}::ng-deep .mat-mdc-select-arrow-wrapper{height:1px!important}::ng-deep .mat-select-panel .select-one,::ng-deep .mat-mdc-select-panel .select-one{position:absolute;right:0;top:.3em;display:none}::ng-deep .mat-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-select-panel .mat-mdc-option:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-option-text:hover .select-one,::ng-deep .mat-mdc-select-panel .mat-mdc-option:hover .select-one{display:block}::ng-deep .mat-select-panel .buttons,::ng-deep .mat-mdc-select-panel .buttons{padding:.2em;background-color:#fff;display:flex;position:sticky;bottom:0}\n"] }]
91
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
92
+ type: Optional
93
+ }, {
94
+ type: Self
95
+ }] }, { type: undefined, decorators: [{
96
+ type: Inject,
97
+ args: [UI_TRANSLATESERVICE]
98
+ }] }], propDecorators: { multiple: [{
99
+ type: Input
100
+ }], triggerFormatter: [{
101
+ type: Input
102
+ }], valueAttribute: [{
103
+ type: Input
104
+ }], resetText: [{
105
+ type: Input
106
+ }], displayAttribute: [{
107
+ type: Input
108
+ }], options: [{
109
+ type: Input
110
+ }], optionFormatter: [{
111
+ type: Input
112
+ }], optionTemplateRef: [{
113
+ type: Input
114
+ }], triggerTemplateRef: [{
115
+ type: Input
116
+ }], panelClass: [{
117
+ type: Input
118
+ }], allowEmptySelection: [{
119
+ type: Input
120
+ }], trackBy: [{
121
+ type: Input
122
+ }], select: [{
123
+ type: ViewChild,
124
+ args: ['select']
125
+ }] } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsSUFBSSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFMUUsT0FBTyxFQUF1QixtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFRNUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBcUJwRCxZQUF1QyxTQUFvQixFQUNYLGdCQUFxQztRQUNuRixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFGb0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNYLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7UUFwQjVFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNakIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUtwQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLckMsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLEtBQUssQ0FBQztRQThDbkIsa0JBQWEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBekM3RSxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUks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QWU7a0JBTjNCLFNBQVM7K0JBQ0UsV0FBVzs7MEJBMEJSLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixNQUFNOzJCQUFDLG1CQUFtQjt5Q0FwQjlCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRWUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3B0aW9uYWwsIFNlbGYsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBJVWlUcmFuc2xhdGVTZXJ2aWNlLCBVSV9UUkFOU0xBVEVTRVJWSUNFIH0gZnJvbSAnLi4vc2VydmljZXMvdWktdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyAnLi4vbGF5b3V0cy9zaW1wbGUvdWktc2ltcGxlLWxheW91dC5jb21wb25lbnQuc2NzcycsICcuL3NlbGVjdC5jb21wb25lbnQuc2NzcycgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFVpU2ltcGxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRyaWdnZXJGb3JtYXR0ZXI6IGFueTtcclxuICBASW5wdXQoKSB2YWx1ZUF0dHJpYnV0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHJlc2V0VGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBvcHRpb25Gb3JtYXR0ZXI6ICgoYXJnOiBhbnkpID0+IHN0cmluZyB8IHVuZGVmaW5lZCkgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgb3B0aW9uVGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHRyaWdnZXJUZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcGFuZWxDbGFzcztcclxuICBASW5wdXQoKSBhbGxvd0VtcHR5U2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHJhY2tCeTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBNYXRTZWxlY3Q7XHJcblxyXG4gIGxhc3RDb3VudCA9IC0xO1xyXG4gIG92ZXJvcHRpb24gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICAgICAgICAgICAgQEluamVjdChVSV9UUkFOU0xBVEVTRVJWSUNFKSBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogSVVpVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgc3VwZXIobmdDb250cm9sKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIGlmICh0aGlzLm9wdGlvbkZvcm1hdHRlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMub3B0aW9uRm9ybWF0dGVyID0gbyA9PiB0aGlzLmRpc3BsYXlBdHRyaWJ1dGUgPyBvW3RoaXMuZGlzcGxheUF0dHJpYnV0ZV0gOiBvO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmxhc3RDb3VudCA9IHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wudmFsdWUubGVuZ3RoO1xyXG4gICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgaWYgKHYubGVuZ3RoID09PSAxICYmIHRoaXMubGFzdENvdW50ID09PSAwICYmIHRoaXMub3Zlcm9wdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3Quc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25Ub1ZhbHVlKHYpKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0LmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvdW50ID0gdi5sZW5ndGg7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudHJhY2tCeSAmJiB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sICYmIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm1hcFZhbHVlcyh0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICBpZiAoY2hhbmdlcy5vcHRpb25zICYmIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wgJiYgdGhpcy50cmFja0J5KSB7XHJcbiAgICAgIHRoaXMuY29tcG9uZW50Rm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5tYXBWYWx1ZXModGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC52YWx1ZSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcFZhbHVlcyhzcmMpIHtcclxuICAgIGlmIChzcmMgJiYgdGhpcy50cmFja0J5ICYmIHRoaXMub3B0aW9ucykge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyKG8gPT4gc3JjLmZpbmQodiA9PiB2W3RoaXMudHJhY2tCeV0gPT09IG9bdGhpcy50cmFja0J5XSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZChvID0+IG9bdGhpcy50cmFja0J5XSA9PT0gc3JjW3RoaXMudHJhY2tCeV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3B0aW9uVG9WYWx1ZSA9IChvOiBhbnkpID0+IHRoaXMudmFsdWVBdHRyaWJ1dGUgPyBvW3RoaXMudmFsdWVBdHRyaWJ1dGVdIDogbztcclxuXHJcbiAgc2VsZWN0T3B0aW9uKG86IGFueSwgc2VsZWN0OiBNYXRTZWxlY3QpIHtcclxuICAgIHNlbGVjdC5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLm9wdGlvblRvVmFsdWUobykpO1xyXG4gICAgc2VsZWN0LmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5tYXAobyA9PiB0aGlzLm9wdGlvblRvVmFsdWUobykpKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgaWYgKG9iaiAmJiBvYmouZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBlcnJvcicsIG9iaiwgb2JqLmVycm9yKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudEZvcm1Db250cm9sLnNldEVycm9ycyhvYmouZXJyb3IgPT09ICdjbGVhcicgPyBudWxsIDogeyBjdXN0b206IG9iai5lcnJvciB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLm1hcFZhbHVlcyhvYmopKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8dWktc2ltcGxlLWxheW91dCBbY3R4XT1cInRoaXNcIj5cclxuXHJcbjxtYXQtc2VsZWN0IGNsYXNzPVwiY29udHJvbC1jb250YWluZXJcIiAjc2VsZWN0IFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiY29tcG9uZW50Rm9ybUNvbnRyb2xcIiBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIj5cclxuXHJcbiAgPG1hdC1zZWxlY3QtdHJpZ2dlciAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZVJlZlwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7b3B0aW9uOmNvbXBvbmVudEZvcm1Db250cm9sPy52YWx1ZX1cIiA+PC9uZy10ZW1wbGF0ZT5cclxuICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cclxuXHJcbiAgPG1hdC1zZWxlY3QtdHJpZ2dlciAqbmdJZj1cInRyaWdnZXJGb3JtYXR0ZXJcIiBbaW5uZXJIVE1MXT1cImNvbXBvbmVudEZvcm1Db250cm9sPy52YWx1ZSA/IHRyaWdnZXJGb3JtYXR0ZXIoY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlKSA6ICcnXCI+PC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG4gIDxtYXQtb3B0aW9uICpuZ0lmPVwicmVzZXRUZXh0XCI+e3tyZXNldFRleHR9fTwvbWF0LW9wdGlvbj5cclxuXHJcbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25Ub1ZhbHVlKG8pXCIgPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tY29udGFpbmVyXCIgKG1vdXNlZW50ZXIpPVwib3Zlcm9wdGlvbiA9IHRydWU7XCIgKG1vdXNlbGVhdmUpPVwib3Zlcm9wdGlvbiA9IGZhbHNlXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVSZWZcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie29wdGlvbjpvfVwiID48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGVSZWZcIj5cclxuICAgICAgICB7e29wdGlvbkZvcm1hdHRlcihvKX19XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VsZWN0LW9uZVwiICpuZ0lmPVwibXVsdGlwbGUgJiYgY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPT09IDBcIiAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG8sIHNlbGVjdClcIj5ub3J0aF93ZXN0PC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L21hdC1vcHRpb24+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgKm5nSWY9XCJtdWx0aXBsZVwiPlxyXG4gICAgPHVpLWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogYXV0bztcIiBba2luZF09XCInYmFzaWMnXCIgW3NpemVdPVwiJ3NtYWxsZXInXCIgW2xhYmVsXT1cInRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndWkuY29udHJvbHMudWktc2VsZWN0LmNsZWFyLXNlbGVjdGlvbicpXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj48L3VpLWJ1dHRvbj5cclxuICAgIDx1aS1idXR0b24gW3NpemVdPVwiJ3NtYWxsZXInXCIgW2xhYmVsXT1cInRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgndWkuY29udHJvbHMudWktc2VsZWN0LmFsbCcpXCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCI+PC91aS1idXR0b24+XHJcbiAgICA8dWktYnV0dG9uIFtzaXplXT1cIidzbWFsbGVyJ1wiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwLjJlbTtcIiBbZGlzYWJsZWRdPVwiY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPT09IDAgJiYgIWFsbG93RW1wdHlTZWxlY3Rpb25cIiBbbGFiZWxdPVwidHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd1aS5jb250cm9scy51aS1zZWxlY3QuYXBwbHktc2VsZWN0aW9uJykgKyAoY29tcG9uZW50Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggPiAwID8gJyAoJyArIGNvbXBvbmVudEZvcm1Db250cm9sLnZhbHVlLmxlbmd0aCArICcpJyA6ICcnKVwiIChjbGljayk9XCJzZWxlY3QuY2xvc2UoKVwiPjwvdWktYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9tYXQtc2VsZWN0PlxyXG5cclxuPC91aS1zaW1wbGUtbGF5b3V0PlxyXG4iXX0=