@acorex/components 4.2.21 → 4.2.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/form-group/form-group.component.mjs +3 -3
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +31 -21
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +3 -3
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +72 -0
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +2 -1
- package/esm2020/lib/property-editor/property-editor.module.mjs +33 -20
- package/esm2020/lib/search-bar/search-bar.component.mjs +30 -32
- package/esm2020/lib/selection-list/selection-list.component.mjs +5 -5
- package/fesm2015/acorex-components.mjs +748 -647
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +748 -647
- package/fesm2020/acorex-components.mjs.map +1 -1
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +3 -2
- package/lib/property-editor/editors/check-editor/check.module.d.ts +1 -1
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +24 -0
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -0
- package/lib/property-editor/property-editor.module.d.ts +3 -2
- package/lib/search-bar/search-bar.component.d.ts +4 -3
- package/lib/selection-list/selection-list.component.d.ts +2 -2
- package/package.json +1 -1
|
@@ -5,25 +5,40 @@ import { AXDropdownComponent } from '../dropdown/dropdown.component';
|
|
|
5
5
|
import { AXPropertyEditorRendererDirective } from '../property-editor/property-editor-renderer.directive';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../dropdown/dropdown.component";
|
|
8
|
-
import * as i2 from "../
|
|
9
|
-
import * as i3 from "../
|
|
10
|
-
import * as i4 from "
|
|
11
|
-
import * as i5 from "
|
|
12
|
-
import * as i6 from "
|
|
13
|
-
import * as i7 from "@acorex/core";
|
|
8
|
+
import * as i2 from "../label/label.component";
|
|
9
|
+
import * as i3 from "../button/button.component";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "../property-editor/property-editor-renderer.directive";
|
|
12
|
+
import * as i6 from "@acorex/core";
|
|
14
13
|
export class AXSearchBarComponent {
|
|
15
14
|
constructor(ref) {
|
|
16
15
|
this.ref = ref;
|
|
17
16
|
this.size = 'md';
|
|
18
17
|
this.disabled = false;
|
|
19
|
-
this.items = [];
|
|
20
18
|
this.rtl = AXConfig.get('layout.rtl');
|
|
19
|
+
this.onValueChange = new EventEmitter();
|
|
21
20
|
this.onSearchValue = new EventEmitter();
|
|
22
21
|
this._items = [];
|
|
23
22
|
this._filterItems = [];
|
|
24
23
|
this._filterItemsClone = [];
|
|
25
24
|
this._context = {};
|
|
26
25
|
}
|
|
26
|
+
set items(v) {
|
|
27
|
+
debugger;
|
|
28
|
+
v.forEach((el) => {
|
|
29
|
+
if (el.value != null) {
|
|
30
|
+
this._filterItems.push({
|
|
31
|
+
name: el.property.name,
|
|
32
|
+
title: el.property.title,
|
|
33
|
+
value: el.value
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
this._items = _.chain(v).groupBy(x => x.property.row).map((value, key) => ({ row: key, items: value })).value();
|
|
38
|
+
}
|
|
39
|
+
clearItem(name) {
|
|
40
|
+
this._editors.find(e => e.property.property.name == name).clear();
|
|
41
|
+
}
|
|
27
42
|
handleButtonClick() {
|
|
28
43
|
this.dropdown.toggle();
|
|
29
44
|
}
|
|
@@ -38,6 +53,7 @@ export class AXSearchBarComponent {
|
|
|
38
53
|
value: e.value
|
|
39
54
|
});
|
|
40
55
|
}
|
|
56
|
+
this.onValueChange.emit(e);
|
|
41
57
|
}
|
|
42
58
|
handleItemRemoveClick(item) {
|
|
43
59
|
this._editors.forEach(e => {
|
|
@@ -48,7 +64,7 @@ export class AXSearchBarComponent {
|
|
|
48
64
|
this._filterItems = this._filterItems.filter((el) => el.name != item.name);
|
|
49
65
|
}
|
|
50
66
|
search() {
|
|
51
|
-
this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone));
|
|
67
|
+
this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value != null && el.value != '')));
|
|
52
68
|
this.handleButtonClick();
|
|
53
69
|
this.onSearchValue.emit(this._filterItems);
|
|
54
70
|
}
|
|
@@ -87,34 +103,14 @@ export class AXSearchBarComponent {
|
|
|
87
103
|
return className.toString().replace(/,/, ' ');
|
|
88
104
|
}
|
|
89
105
|
ngOnInit() {
|
|
90
|
-
this.items.forEach((el) => {
|
|
91
|
-
if (el.value != null) {
|
|
92
|
-
this._filterItems.push({
|
|
93
|
-
name: el.property.name,
|
|
94
|
-
title: el.property.title,
|
|
95
|
-
value: el.value
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
if (this.rtl == null) {
|
|
100
|
-
this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
|
|
101
|
-
}
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
this.ref.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');
|
|
104
|
-
this.el.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');
|
|
105
|
-
}, 5);
|
|
106
|
-
this._items = _.chain(this.items).groupBy(x => x.property.row).map((value, key) => ({ row: key, items: value })).value();
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
108
|
AXSearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
AXSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { size: "size", disabled: "disabled", items: "items", rtl: "rtl" }, outputs: {
|
|
109
|
+
AXSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { size: "size", disabled: "disabled", items: "items", rtl: "rtl" }, outputs: { onValueChange: "onValueChange", onSearchValue: "onSearchValue" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "_editors", predicate: AXPropertyEditorRendererDirective, descendants: true }], ngImport: i0, template: "<ax-drop-down [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\" icon=\"far fa-sliders-h\" #dropdown\r\n maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\">\r\n <b>{{item.title}} :</b> {{item.value}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n <i class=\"far fa-times close\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <div *ngFor=\"let item of _items\" class=\"row\">\r\n <div *ngFor=\"let prop of item.items\" class=\"{{renderCol(prop.property.col)}}\">\r\n <!-- <ax-form-group> -->\r\n <div *ngIf=\"prop.property.visible != false\">\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n <!-- </ax-form-group> -->\r\n </div>\r\n </div>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n</ax-drop-down>\r\n", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"], components: [{ type: i1.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading"], outputs: ["dropdownToggle", "onButtonClick"] }, { type: i2.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { type: i3.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: ["property", "validationForm", "context", "host", "groupId"], outputs: ["onValueChange"] }], pipes: { "trans": i6.AXTranslatorPipe } });
|
|
111
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSearchBarComponent, decorators: [{
|
|
112
111
|
type: Component,
|
|
113
|
-
args: [{ selector: 'ax-search-bar', template: "<ax-drop-down [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\" icon=\"far fa-sliders-h\" #dropdown\r\n maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\">\r\n <b>{{item.title}} :</b> {{item.value}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n <i class=\"far fa-times close\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <div *ngFor=\"let item of _items\" class=\"row\">\r\n <div *ngFor=\"let prop of item.items\" class=\"{{renderCol(prop.property.col)}}\">\r\n <ax-form-group
|
|
114
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: {
|
|
115
|
-
type: ViewChild,
|
|
116
|
-
args: ['dropdown', { static: true }]
|
|
117
|
-
}], dropdown: [{
|
|
112
|
+
args: [{ selector: 'ax-search-bar', template: "<ax-drop-down [fitParent]=\"true\" [size]=\"size\" [showDropDownButton]=\"false\" icon=\"far fa-sliders-h\" #dropdown\r\n maxHeight=\"unset\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\">\r\n <div class=\"chips\" *ngFor=\"let item of _filterItems\">\r\n <span class=\"chips-text\">\r\n <b>{{item.title}} :</b> {{item.value}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\">\r\n <i class=\"far fa-times close\"></i>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container panel>\r\n <div class=\"panel-box\">\r\n <div *ngFor=\"let item of _items\" class=\"row\">\r\n <div *ngFor=\"let prop of item.items\" class=\"{{renderCol(prop.property.col)}}\">\r\n <!-- <ax-form-group> -->\r\n <div *ngIf=\"prop.property.visible != false\">\r\n <ax-label>{{prop.property.title}}</ax-label>\r\n <ng-container ax-property-editor-renderer [property]=\"prop\" [context]=\"_context\"\r\n (onValueChange)=\"handleValueChange($event)\"></ng-container>\r\n </div>\r\n <!-- </ax-form-group> -->\r\n </div>\r\n </div>\r\n <div class=\"footer-button\">\r\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\r\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'dataGrid.clearFilter' | trans}}</ax-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ax-button end icon=\"far fa-sliders-h icon\" type=\"light blank\" [disabled]=\"disabled\" [size]=\"size\"\r\n [tabIndex]=\"-1\" (click)=\"handleButtonClick()\">{{'common.search' | trans}}</ax-button>\r\n </ng-container>\r\n\r\n</ax-drop-down>\r\n", styles: [".ax.chips-container{height:100%}.panel-box{padding:1rem}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}\n"] }]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dropdown: [{
|
|
118
114
|
type: ViewChild,
|
|
119
115
|
args: ['dropdown', { static: true }]
|
|
120
116
|
}], _editors: [{
|
|
@@ -128,7 +124,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
128
124
|
type: Input
|
|
129
125
|
}], rtl: [{
|
|
130
126
|
type: Input
|
|
127
|
+
}], onValueChange: [{
|
|
128
|
+
type: Output
|
|
131
129
|
}], onSearchValue: [{
|
|
132
130
|
type: Output
|
|
133
131
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7Ozs7QUFZMUcsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNZLEdBQStCO1FBQS9CLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBTzNDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBRzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHL0IsUUFBRyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFHMUMsa0JBQWEsR0FBeUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6RSxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLGlCQUFZLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxzQkFBaUIsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLGFBQVEsR0FBUSxF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cmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFYUHJvcGVydHlDb2xEZWYsIEFYUHJvcGVydHlDb25maWcsIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLmNsYXNzJztcclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJUZXh0SXRlbXNNb2RlbCB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdmFsdWU6IGFueTtcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtc2VhcmNoLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VhcmNoQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxyXG4gICAgKSB7IH1cclxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wZG93bjogQVhEcm9wZG93bkNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGRyZW4oQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlKSBfZWRpdG9yczogUXVlcnlMaXN0PEFYUHJvcGVydHlFZGl0b3JSZW5kZXJlckRpcmVjdGl2ZT47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNpemU6IEFYRWxlbWVudFNpemUgPSAnbWQnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBpdGVtczogQVhQcm9wZXJ0eUNvbmZpZ1tdID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHJ0bDogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25TZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPEZpbHRlclRleHRJdGVtc01vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIF9pdGVtczogYW55W10gPSBbXTtcclxuICAgIF9maWx0ZXJJdGVtczogRmlsdGVyVGV4dEl0ZW1zTW9kZWxbXSA9IFtdO1xyXG4gICAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcclxuICAgIF9jb250ZXh0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBoYW5kbGVCdXR0b25DbGljaygpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVZhbHVlQ2hhbmdlKGU6IEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5fZmlsdGVySXRlbXNDbG9uZS5maW5kKChlbCkgPT4gZWwubmFtZSA9PSBlLnByb3BlcnR5Lm5hbWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUuZmluZCgoZWwpID0+IGVsLm5hbWUgPT0gZS5wcm9wZXJ0eS5uYW1lKS52YWx1ZSA9IGUudmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlLnZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IGUucHJvcGVydHkubmFtZSxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBlLnByb3BlcnR5LnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUudmFsdWVcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUl0ZW1SZW1vdmVDbGljayhpdGVtOiBGaWx0ZXJUZXh0SXRlbXNNb2RlbCkge1xyXG4gICAgICAgIHRoaXMuX2VkaXRvcnMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgICAgaWYgKGUucHJvcGVydHkucHJvcGVydHkubmFtZSA9PSBpdGVtLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGUuY2xlYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyKChlbCkgPT4gZWwubmFtZSAhPSBpdGVtLm5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLl9maWx0ZXJJdGVtcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fZmlsdGVySXRlbXNDbG9uZSkpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQnV0dG9uQ2xpY2soKTtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoVmFsdWUuZW1pdCh0aGlzLl9maWx0ZXJJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgICBlLmNsZWFyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fZmlsdGVySXRlbXMgPSBbXTtcclxuICAgICAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lID0gW107XHJcbiAgICAgICAgdGhpcy5oYW5kbGVCdXR0b25DbGljaygpO1xyXG4gICAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJDb2woZTogbnVtYmVyIHwgQVhQcm9wZXJ0eUNvbERlZikge1xyXG4gICAgICAgIGxldCBjbGFzc05hbWU6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiBlID09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtJHtlfWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGUpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGcnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLWxnLSR7ZVtrZXldfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbWQtJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NtJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1zbS0ke2Vba2V5XX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAneHMnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLXhzLSR7ZVtrZXldfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lLnRvU3RyaW5nKCkucmVwbGFjZSgvLC8sICcgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWwudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVySXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZWwucHJvcGVydHkubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZWwucHJvcGVydHkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVsLnZhbHVlXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMucnRsID8gJ3J0bCcgOiAnbHRyJyk7XHJcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMucnRsID8gJ3J0bCcgOiAnbHRyJyk7XHJcbiAgICAgICAgfSwgNSk7XHJcbiAgICAgICAgdGhpcy5faXRlbXMgPSBfLmNoYWluKHRoaXMuaXRlbXMpLmdyb3VwQnkoeCA9PiB4LnByb3BlcnR5LnJvdykubWFwKCh2YWx1ZSwga2V5KSA9PiAoeyByb3c6IGtleSwgaXRlbXM6IHZhbHVlIH0pKS52YWx1ZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxheC1kcm9wLWRvd24gW2ZpdFBhcmVudF09XCJ0cnVlXCIgW3NpemVdPVwic2l6ZVwiIFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIiBpY29uPVwiZmFyIGZhLXNsaWRlcnMtaFwiICNkcm9wZG93blxyXG4gICAgbWF4SGVpZ2h0PVwidW5zZXRcIj5cclxuICAgIDxuZy1jb250YWluZXIgc3RhcnQ+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxyXG4gICAgICAgIDwvbmctY29udGVudD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4IGNoaXBzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcHNcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfZmlsdGVySXRlbXNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcHMtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxiPnt7aXRlbS50aXRsZX19IDo8L2I+IHt7aXRlbS52YWx1ZX19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNsb3NlLWljb25cIiAoY2xpY2spPVwiaGFuZGxlSXRlbVJlbW92ZUNsaWNrKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXMgY2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyIHBhbmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib3hcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaXRlbXNcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcHJvcCBvZiBpdGVtLml0ZW1zXCIgY2xhc3M9XCJ7e3JlbmRlckNvbChwcm9wLnByb3BlcnR5LmNvbCl9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3twcm9wLnByb3BlcnR5LnRpdGxlfX08L2F4LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbcHJvcGVydHldPVwicHJvcFwiIFtjb250ZXh0XT1cIl9jb250ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZWFyY2goKVwiPnt7J2NvbW1vbi5zZWFyY2gnIHwgdHJhbnN9fTwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwiYmxhbmsgZGFuZ2VyXCIgKGNsaWNrKT1cImNsZWFyKClcIj57eydkYXRhR3JpZC5jbGVhckZpbHRlcicgfCB0cmFuc319PC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyIGVuZD5cclxuICAgICAgICA8YXgtYnV0dG9uIGVuZCBpY29uPVwiZmFyIGZhLXNsaWRlcnMtaCBpY29uXCIgdHlwZT1cImxpZ2h0IGJsYW5rXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygpXCI+e3snY29tbW9uLnNlYXJjaCcgfCB0cmFuc319PC9heC1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvYXgtZHJvcC1kb3duPlxyXG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7OztBQVkxRyxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQ1ksR0FBK0I7UUFBL0IsUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFNM0MsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFHM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQWtCMUIsUUFBRyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFHMUMsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RCxrQkFBYSxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpFLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBMkIsRUFBRSxDQUFDO1FBQzFDLHNCQUFpQixHQUEyQixFQUFFLENBQUM7UUFDL0Ms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QUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ25DLE1BQU07b0JBQ1YsS0FBSyxJQUFJO3dCQUNMLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNuQyxNQUFNO29CQUNWLEtBQUssSUFBSTt3QkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDbkMsTUFBTTtpQkFDYjthQUNKO1NBQ0o7UUFDRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7a0hBbkhRLG9CQUFvQjtzR0FBcEIsb0JBQW9CLGdWQUtmLGlDQUFpQyxnREN0Qm5ELGtvRUEyQ0E7NEZEMUJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxlQUFlO2lHQVFnQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1UsUUFBUTtzQkFBeEQsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBRy9DLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQWdCTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci1yZW5kZXJlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnR5Q29sRGVmLCBBWFByb3BlcnR5Q29uZmlnLCBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi4vcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci5jbGFzcyc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyVGV4dEl0ZW1zTW9kZWwge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHZhbHVlOiBhbnk7XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LXNlYXJjaC1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cclxuICAgICkgeyB9XHJcbiAgICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGRyb3Bkb3duOiBBWERyb3Bkb3duQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZHJlbihBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUpIF9lZGl0b3JzOiBRdWVyeUxpc3Q8QVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlPjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgaXRlbXModjogQVhQcm9wZXJ0eUNvbmZpZ1tdKSB7XHJcbiAgICAgICAgZGVidWdnZXJcclxuICAgICAgICB2LmZvckVhY2goKGVsKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbC52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9maWx0ZXJJdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBlbC5wcm9wZXJ0eS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBlbC5wcm9wZXJ0eS50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWwudmFsdWVcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5faXRlbXMgPSBfLmNoYWluKHYpLmdyb3VwQnkoeCA9PiB4LnByb3BlcnR5LnJvdykubWFwKCh2YWx1ZSwga2V5KSA9PiAoeyByb3c6IGtleSwgaXRlbXM6IHZhbHVlIH0pKS52YWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBydGw6IGJvb2xlYW4gPSBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25TZWFyY2hWYWx1ZTogRXZlbnRFbWl0dGVyPEZpbHRlclRleHRJdGVtc01vZGVsW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIF9pdGVtczogYW55W10gPSBbXTtcclxuICAgIF9maWx0ZXJJdGVtczogRmlsdGVyVGV4dEl0ZW1zTW9kZWxbXSA9IFtdO1xyXG4gICAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcclxuICAgIF9jb250ZXh0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBwdWJsaWMgY2xlYXJJdGVtKG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2VkaXRvcnMuZmluZChlID0+IGUucHJvcGVydHkucHJvcGVydHkubmFtZSA9PSBuYW1lKS5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUJ1dHRvbkNsaWNrKCkge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbmQoKGVsKSA9PiBlbC5uYW1lID09IGUucHJvcGVydHkubmFtZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZS5maW5kKChlbCkgPT4gZWwubmFtZSA9PSBlLnByb3BlcnR5Lm5hbWUpLnZhbHVlID0gZS52YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGUudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogZS5wcm9wZXJ0eS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGUucHJvcGVydHkudGl0bGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS52YWx1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSXRlbVJlbW92ZUNsaWNrKGl0ZW06IEZpbHRlclRleHRJdGVtc01vZGVsKSB7XHJcbiAgICAgICAgdGhpcy5fZWRpdG9ycy5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZS5wcm9wZXJ0eS5wcm9wZXJ0eS5uYW1lID09IGl0ZW0ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZS5jbGVhcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fZmlsdGVySXRlbXMgPSB0aGlzLl9maWx0ZXJJdGVtcy5maWx0ZXIoKGVsKSA9PiBlbC5uYW1lICE9IGl0ZW0ubmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoKCkge1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbHRlcigoZWwpID0+IGVsLnZhbHVlICE9IG51bGwgJiYgZWwudmFsdWUgIT0gJycpKSk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVCdXR0b25DbGljaygpO1xyXG4gICAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLl9lZGl0b3JzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICAgIGUuY2xlYXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWx0ZXJJdGVtcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zQ2xvbmUgPSBbXTtcclxuICAgICAgICB0aGlzLmhhbmRsZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaFZhbHVlLmVtaXQodGhpcy5fZmlsdGVySXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlckNvbChlOiBudW1iZXIgfCBBWFByb3BlcnR5Q29sRGVmKSB7XHJcbiAgICAgICAgbGV0IGNsYXNzTmFtZTogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICBpZiAodHlwZW9mIGUgPT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC0ke2V9YCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZSkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbGctJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21kJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1tZC0ke2Vba2V5XX1gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc20nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLXNtLSR7ZVtrZXldfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4cyc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wteHMtJHtlW2tleV19YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbGFzc05hbWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sLywgJyAnKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIiwiPGF4LWRyb3AtZG93biBbZml0UGFyZW50XT1cInRydWVcIiBbc2l6ZV09XCJzaXplXCIgW3Nob3dEcm9wRG93bkJ1dHRvbl09XCJmYWxzZVwiIGljb249XCJmYXIgZmEtc2xpZGVycy1oXCIgI2Ryb3Bkb3duXHJcbiAgICBtYXhIZWlnaHQ9XCJ1bnNldFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBzdGFydD5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+XHJcbiAgICAgICAgPC9uZy1jb250ZW50PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyIGhlYWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXggY2hpcHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwc1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9maWx0ZXJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwcy10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGI+e3tpdGVtLnRpdGxlfX0gOjwvYj4ge3tpdGVtLnZhbHVlfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2xvc2UtaWNvblwiIChjbGljayk9XCJoYW5kbGVJdGVtUmVtb3ZlQ2xpY2soaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lcyBjbG9zZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgcGFuZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWJveFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9pdGVtc1wiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwcm9wIG9mIGl0ZW0uaXRlbXNcIiBjbGFzcz1cInt7cmVuZGVyQ29sKHByb3AucHJvcGVydHkuY29sKX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YXgtZm9ybS1ncm91cD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9wLnByb3BlcnR5LnZpc2libGUgIT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57e3Byb3AucHJvcGVydHkudGl0bGV9fTwvYXgtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbcHJvcGVydHldPVwicHJvcFwiIFtjb250ZXh0XT1cIl9jb250ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPC9heC1mb3JtLWdyb3VwPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gKGNsaWNrKT1cInNlYXJjaCgpXCI+e3snY29tbW9uLnNlYXJjaCcgfCB0cmFuc319PC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJibGFuayBkYW5nZXJcIiAoY2xpY2spPVwiY2xlYXIoKVwiPnt7J2RhdGFHcmlkLmNsZWFyRmlsdGVyJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgZW5kPlxyXG4gICAgICAgIDxheC1idXR0b24gZW5kIGljb249XCJmYXIgZmEtc2xpZGVycy1oIGljb25cIiB0eXBlPVwibGlnaHQgYmxhbmtcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIj57eydjb21tb24uc2VhcmNoJyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuPC9heC1kcm9wLWRvd24+XHJcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, EventEmitter } from '@angular/core';
|
|
2
2
|
import { Output } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { AXValidatableComponent } from '../base/element.class';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../checkbox/checkbox.component";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
-
export class AXSelectionListComponent extends
|
|
7
|
+
export class AXSelectionListComponent extends AXValidatableComponent {
|
|
8
8
|
constructor(cdr) {
|
|
9
9
|
super();
|
|
10
10
|
this.cdr = cdr;
|
|
@@ -67,10 +67,10 @@ export class AXSelectionListComponent extends AXBaseComponent {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
AXSelectionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSelectionListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
|
-
AXSelectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { readonly: "readonly", value: "value", disabled: "disabled", size: "size", direction: "direction", items: "items", mode: "mode", textField: "textField", valueField: "valueField", selectedItems: "selectedItems", selectedValues: "selectedValues" }, outputs: { selectedItemsChange: "selectedItemsChange", selectedValuesChange: "selectedValuesChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"
|
|
70
|
+
AXSelectionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSelectionListComponent, selector: "ax-selection-list", inputs: { readonly: "readonly", value: "value", disabled: "disabled", size: "size", direction: "direction", items: "items", mode: "mode", textField: "textField", valueField: "valueField", selectedItems: "selectedItems", selectedValues: "selectedValues" }, outputs: { selectedItemsChange: "selectedItemsChange", selectedValuesChange: "selectedValuesChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n *ngFor=\"let item of items\" (click)=\"onvalueChanged(item)\">\r\n {{ item[textField] }}\r\n <input type=\"radio\" (change)=\"onCheckValueChange(item[valueField],true)\" [value]=\"item[valueField]\"\r\n [checked]=\"selectedValues==item[valueField]\" [name]=\"uid\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" />\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n</ng-template>", components: [{ type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSelectionListComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
|
-
args: [{ selector: 'ax-selection-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"
|
|
73
|
+
args: [{ selector: 'ax-selection-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n *ngFor=\"let item of items\" (click)=\"onvalueChanged(item)\">\r\n {{ item[textField] }}\r\n <input type=\"radio\" (change)=\"onCheckValueChange(item[valueField],true)\" [value]=\"item[valueField]\"\r\n [checked]=\"selectedValues==item[valueField]\" [name]=\"uid\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" />\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n</ng-template>" }]
|
|
74
74
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { readonly: [{
|
|
75
75
|
type: Input
|
|
76
76
|
}], value: [{
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
98
98
|
}], selectedValues: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9zZWxlY3Rpb24tbGlzdC9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL3NlbGVjdGlvbi1saXN0L3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBZ0Ysc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVE3SSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsc0JBQXNCO0lBaUVsRSxZQUFvQixHQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBaEVsQyxtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQVluQyxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUczQixjQUFTLEdBQVcsWUFBWSxDQUFDO1FBR2pDLFVBQUssR0FBMkIsRUFBRSxDQUFDO1FBR25DLFNBQUksR0FBVyxRQUFRLENBQUM7UUFHeEIsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUczQixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBRzdCLHdCQUFtQixHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBYXJFLHlCQUFvQixHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO0lBdUJ0RSxDQUFDO0lBbENELElBQ1csYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxj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QVU7c0JBRFQsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBSUksYUFBYTtzQkFEdkIsS0FBSztnQkFXTixvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSUksY0FBYztzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0IH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VWYWx1ZUNvbXBvbmVudCwgQVhFbGVtZW50U2l6ZSwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXNlbGVjdGlvbi1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudCBleHRlbmRzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VDb21wb25lbnQge1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdmFsdWU6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlyZWN0aW9uOiBzdHJpbmcgPSAnaG9yaXpvbnRhbCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXRlbXM6IEFycmF5PEFYU2VsZWN0aW9uTGlzdD4gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBtb2RlOiBzdHJpbmcgPSAnc2luZ2xlJztcclxuXHJcbiAgQElucHV0KClcclxuICB0ZXh0RmllbGQ6IHN0cmluZyA9ICd0ZXh0JztcclxuXHJcbiAgQElucHV0KClcclxuICB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAndmFsdWUnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3RlZEl0ZW1zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSXRlbXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMgfHwgW107XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtcyh2OiBhbnlbXSkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtcyA9IHY7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0ZWRWYWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRWYWx1ZXMoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMubWFwKChjKSA9PiBjW3RoaXMudmFsdWVGaWVsZF0pIHx8IFtdO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkVmFsdWVzKHY6IGFueVtdKSB7XHJcbiAgICBjb25zdCBvbGQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzO1xyXG4gICAgaWYgKHYgPT0gbnVsbCkge1xyXG4gICAgICB2ID0gW107XHJcbiAgICB9XHJcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2xkKSAhPSBKU09OLnN0cmluZ2lmeSh2KSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoYykgPT4gdi5pbmNsdWRlcyhjW3RoaXMudmFsdWVGaWVsZF0pKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgb25DaGVja1ZhbHVlQ2hhbmdlKHZhbHVlOiBhbnksIGNoZWNrZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbdmFsdWVdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbLi4udGhpcy5zZWxlY3RlZFZhbHVlcywgLi4uW3ZhbHVlXV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzLmZpbHRlcigoYykgPT4gYyAhPT0gdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBmb2N1cygpOiB2b2lkIHsgfVxyXG5cclxuICBvbnZhbHVlQ2hhbmdlZChlKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQoW2VdKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiBtb2RlID09ICdtdWx0aXBsZSc7IHRoZW4gY2hlY2tib3hMaXN0OyBlbHNlIHJhZGlvQnV0dG9uTGlzdFwiPjwvbmctY29udGFpbmVyPlxyXG48bmctdGVtcGxhdGUgI2NoZWNrYm94TGlzdD5cclxuICAgIDxkaXYgY2xhc3M9XCJheCBzZWxlY3Rpb24tbGlzdCB7e3NpemV9fVwiIFtuZ0NsYXNzXT1cImRpcmVjdGlvblwiPlxyXG4gICAgICAgIDxheC1jaGVjay1ib3ggbGFiZWw9XCJ7e2l0ZW1bdGV4dEZpZWxkXX19XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlIHx8IGRpc2FibGVkXCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cIml0ZW0ucmVhZG9ubHkgfHwgcmVhZG9ubHlcIiBbdmFsdWVdPVwic2VsZWN0ZWRWYWx1ZXMuaW5kZXhPZihpdGVtW3ZhbHVlRmllbGRdKT4tMVwiXHJcbiAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbkNoZWNrVmFsdWVDaGFuZ2UoaXRlbVt2YWx1ZUZpZWxkXSwkZXZlbnQudmFsdWUpXCI+XHJcbiAgICAgICAgPC9heC1jaGVjay1ib3g+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyYWRpb0J1dHRvbkxpc3Q+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXggc2VsZWN0aW9uLWxpc3Qge3tzaXplfX1cIiBbbmdDbGFzc109XCJkaXJlY3Rpb25cIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJheCByYWRpb1wiIGZvcj1cInt7dWlkfX1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIChjbGljayk9XCJvbnZhbHVlQ2hhbmdlZChpdGVtKVwiPlxyXG4gICAgICAgICAgICB7eyBpdGVtW3RleHRGaWVsZF0gfX1cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIChjaGFuZ2UpPVwib25DaGVja1ZhbHVlQ2hhbmdlKGl0ZW1bdmFsdWVGaWVsZF0sdHJ1ZSlcIiBbdmFsdWVdPVwiaXRlbVt2YWx1ZUZpZWxkXVwiXHJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlcz09aXRlbVt2YWx1ZUZpZWxkXVwiIFtuYW1lXT1cInVpZFwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGUgfHwgZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIml0ZW0ucmVhZG9ubHkgfHwgcmVhZG9ubHlcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbWFya1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|