myrta-ui 1.1.100 → 13.0.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.
- package/README.md +1 -1
- package/esm2020/lib/components/form/select/enums/index.mjs +2 -0
- package/esm2020/lib/components/form/select/enums/select-size.enum.mjs +6 -0
- package/esm2020/lib/components/form/select/helpers/clean-selected-items.helper.mjs +3 -0
- package/esm2020/lib/components/form/select/helpers/get-inner-items.helper.mjs +13 -0
- package/esm2020/lib/components/form/select/helpers/get-inner-selected.helper.mjs +13 -0
- package/esm2020/lib/components/form/select/helpers/get-selected-items.helper.mjs +6 -0
- package/esm2020/lib/components/form/select/helpers/modify-origin-items.helper.mjs +21 -0
- package/esm2020/lib/components/form/select/models/index.mjs +4 -0
- package/esm2020/lib/components/form/select/models/select-inner-item.model.mjs +2 -0
- package/esm2020/lib/components/form/select/models/select-item.model.mjs +2 -0
- package/esm2020/lib/components/form/select/models/template-output.model.mjs +2 -0
- package/esm2020/lib/components/form/select/select.component.mjs +339 -0
- package/esm2020/lib/components/form/select/select.enum.mjs +2 -0
- package/esm2020/lib/components/form/select/select.module.mjs +67 -0
- package/esm2020/lib/components/popup/components/popup/popup.component.mjs +26 -8
- package/esm2020/lib/components/popup/components/popup-item/popup-item.component.mjs +19 -5
- package/esm2020/lib/components/popup/directives/popup-trigger.directive.mjs +83 -16
- package/esm2020/lib/components/popup/popup.module.mjs +10 -5
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/myrta-ui.mjs +694 -158
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +691 -158
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/form/select/enums/index.d.ts +1 -0
- package/lib/components/form/select/enums/select-size.enum.d.ts +5 -0
- package/lib/components/form/select/helpers/clean-selected-items.helper.d.ts +3 -0
- package/lib/components/form/select/helpers/get-inner-items.helper.d.ts +3 -0
- package/lib/components/form/select/helpers/get-inner-selected.helper.d.ts +2 -0
- package/lib/components/form/select/helpers/get-selected-items.helper.d.ts +2 -0
- package/lib/components/form/select/helpers/modify-origin-items.helper.d.ts +2 -0
- package/lib/components/form/select/models/index.d.ts +3 -0
- package/lib/components/form/select/models/select-inner-item.model.d.ts +6 -0
- package/lib/components/form/select/models/select-item.model.d.ts +5 -0
- package/lib/components/form/select/models/template-output.model.d.ts +8 -0
- package/lib/components/form/select/select.component.d.ts +96 -0
- package/lib/components/form/select/select.enum.d.ts +5 -0
- package/lib/components/form/select/select.module.d.ts +17 -0
- package/lib/components/popup/components/popup/popup.component.d.ts +9 -3
- package/lib/components/popup/components/popup-item/popup-item.component.d.ts +5 -1
- package/lib/components/popup/directives/popup-trigger.directive.d.ts +22 -9
- package/lib/components/popup/popup.module.d.ts +4 -3
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { SelectSizeEnum } from './enums';
|
|
4
|
+
import { getSelectedItems } from './helpers/get-selected-items.helper';
|
|
5
|
+
import { getInnerItems } from './helpers/get-inner-items.helper';
|
|
6
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
7
|
+
import { PositionEnum } from '../../../enums/overlay';
|
|
8
|
+
import { getInnerSelected } from './helpers/get-inner-selected.helper';
|
|
9
|
+
import { MrxFormValidator } from '../../../services';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../loader/loader.component";
|
|
12
|
+
import * as i2 from "../../popup/components/popup/popup.component";
|
|
13
|
+
import * as i3 from "../../popup/components/popup-item/popup-item.component";
|
|
14
|
+
import * as i4 from "../input-search/input-search.component";
|
|
15
|
+
import * as i5 from "../input-text/input-text.component";
|
|
16
|
+
import * as i6 from "../../button/button.component";
|
|
17
|
+
import * as i7 from "../../error-message/error-message.component";
|
|
18
|
+
import * as i8 from "../../save-state/save-state.component";
|
|
19
|
+
import * as i9 from "@angular/common";
|
|
20
|
+
import * as i10 from "../../popup/directives/popup-trigger.directive";
|
|
21
|
+
import * as i11 from "@angular/forms";
|
|
22
|
+
export class SelectComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.searchValue = '';
|
|
25
|
+
this.isOpen = false;
|
|
26
|
+
this.originSelected = [];
|
|
27
|
+
this.originItems = [];
|
|
28
|
+
this.selected = [];
|
|
29
|
+
this.innerItems = [];
|
|
30
|
+
this.form = new MrxFormValidator();
|
|
31
|
+
this.model = {
|
|
32
|
+
label: '',
|
|
33
|
+
};
|
|
34
|
+
// SAVE STATE
|
|
35
|
+
this.uuid = uuidv4();
|
|
36
|
+
this.fields = [];
|
|
37
|
+
this.multiple = false;
|
|
38
|
+
this.isLoading = false;
|
|
39
|
+
this.searchable = false;
|
|
40
|
+
this.clearable = true;
|
|
41
|
+
this.closable = true;
|
|
42
|
+
this.size = 'large';
|
|
43
|
+
this.bindValue = null;
|
|
44
|
+
this.bindLabel = null;
|
|
45
|
+
this.bindIcon = null;
|
|
46
|
+
this.emptyText = 'Не найдено';
|
|
47
|
+
this.placeholder = 'Выберите значение';
|
|
48
|
+
this.searchPlaceholder = 'Введите значение';
|
|
49
|
+
this.multiCollapseCount = null;
|
|
50
|
+
this.optionValidation = null;
|
|
51
|
+
this.extraOptionPlaceholder = 'Введите значение';
|
|
52
|
+
this.use = 'default';
|
|
53
|
+
this.sortIcon = null;
|
|
54
|
+
this.sortPlaceholder = '';
|
|
55
|
+
this.isFullWidthDropdown = true;
|
|
56
|
+
this.withoutSelected = false;
|
|
57
|
+
this.hideSelected = false;
|
|
58
|
+
this.disabled = false;
|
|
59
|
+
this.readonly = false;
|
|
60
|
+
this.invalid = false;
|
|
61
|
+
this.invalidMessage = '';
|
|
62
|
+
this.checkInvalid = null;
|
|
63
|
+
this.popupPosition = PositionEnum.BottomStart;
|
|
64
|
+
this.singleChange = false;
|
|
65
|
+
this.scrollStrategy = 'close';
|
|
66
|
+
this.changed = new EventEmitter();
|
|
67
|
+
this.modelChange = new EventEmitter();
|
|
68
|
+
this.onChange = (value) => {
|
|
69
|
+
};
|
|
70
|
+
this.onTouched = () => {
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
set items(items) {
|
|
74
|
+
this.originItems = items;
|
|
75
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
if (this.optionValidation) {
|
|
79
|
+
this.form.initFields(this.model, this.optionValidation);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
get readonlyClass() {
|
|
83
|
+
return this.readonly ? 'mrx-input__readonly' : '';
|
|
84
|
+
}
|
|
85
|
+
get checkValidClasses() {
|
|
86
|
+
return this.checkInvalid === false ?
|
|
87
|
+
'mrx-input-checked-success' :
|
|
88
|
+
this.checkInvalid === true ? 'mrx-input-checked-error' : '';
|
|
89
|
+
}
|
|
90
|
+
get getClasses() {
|
|
91
|
+
return `${SelectSizeEnum[this.size]} ${this.readonlyClass} ${this.checkValidClasses}`;
|
|
92
|
+
}
|
|
93
|
+
get getSelectedLabels() {
|
|
94
|
+
if (this.withoutSelected) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return this.innerItems.filter(i => i.__selected);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
get filteredItems() {
|
|
102
|
+
if (this.customSearchFn) {
|
|
103
|
+
return this.innerItems.filter(item => {
|
|
104
|
+
return this.customSearchFn?.(this.searchValue, item.__origin) ?? false;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return this.innerItems.filter(i => {
|
|
109
|
+
if (this.hideSelected) {
|
|
110
|
+
if (this.bindLabel) {
|
|
111
|
+
return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
if (i.__origin['label']) {
|
|
115
|
+
return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase()) && !i.__selected;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
if (this.bindLabel) {
|
|
124
|
+
return String(i.__origin[this.bindLabel]).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
if (i.__origin['label']) {
|
|
128
|
+
return String(i.__origin['label']).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return String(i.__origin).toLowerCase().includes(this.searchValue.toLocaleLowerCase());
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
get isInvalidMessage() {
|
|
139
|
+
return !!this.invalidMessage || !!this.invalidMessage?.length;
|
|
140
|
+
}
|
|
141
|
+
get getIconSize() {
|
|
142
|
+
return this.size === 'medium' ? 'icon-font-16' : 'icon-font-24';
|
|
143
|
+
}
|
|
144
|
+
onSelect(item) {
|
|
145
|
+
if (!this.multiple) {
|
|
146
|
+
this.innerItems = this.innerItems.map(i => {
|
|
147
|
+
if (this.singleChange) {
|
|
148
|
+
return { ...i, __selected: i.__id === item.__id };
|
|
149
|
+
}
|
|
150
|
+
if (this.use === 'default') {
|
|
151
|
+
return { ...i, __selected: i.__id === item.__id ? !i.__selected : false };
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return { ...i, __selected: i.__id === item.__id };
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.innerItems = this.innerItems.map(i => {
|
|
160
|
+
return { ...i, __selected: i.__id === item.__id ? !i.__selected : i.__selected };
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
this.dropdown.updatePopup();
|
|
164
|
+
this._updateValue(this.innerItems);
|
|
165
|
+
}
|
|
166
|
+
clearItem(item) {
|
|
167
|
+
this.onUnselect(item);
|
|
168
|
+
}
|
|
169
|
+
onUnselect(item) {
|
|
170
|
+
this.innerItems.forEach(i => {
|
|
171
|
+
if (i.__id === item.__id) {
|
|
172
|
+
i.__selected = false;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
this._updateValue(this.innerItems);
|
|
176
|
+
}
|
|
177
|
+
onClear(event) {
|
|
178
|
+
event.stopPropagation();
|
|
179
|
+
this.innerItems = this.innerItems.map(item => ({ ...item, __selected: false }));
|
|
180
|
+
this.dropdown.togglePopup(false);
|
|
181
|
+
this._updateValue([]);
|
|
182
|
+
}
|
|
183
|
+
togglePopup(isOpen) {
|
|
184
|
+
this.isOpen = isOpen;
|
|
185
|
+
}
|
|
186
|
+
asOption(option) {
|
|
187
|
+
return option;
|
|
188
|
+
}
|
|
189
|
+
asLabel(label) {
|
|
190
|
+
return label;
|
|
191
|
+
}
|
|
192
|
+
writeValue(selected = []) {
|
|
193
|
+
this.originSelected = selected;
|
|
194
|
+
this._updateSelected(this.originItems, this.originSelected);
|
|
195
|
+
}
|
|
196
|
+
changeTextValueEmpty() {
|
|
197
|
+
this.form.initModelChanged(this.model);
|
|
198
|
+
}
|
|
199
|
+
onAddNewCustomOption() {
|
|
200
|
+
if (this.form.isValid()) {
|
|
201
|
+
this.addOption(this.model.label);
|
|
202
|
+
this.model.label = '';
|
|
203
|
+
this.changeTextValueEmpty();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
_updateSelected(items = [], selected = []) {
|
|
207
|
+
if (this.multiple && Array.isArray(this.originSelected)) {
|
|
208
|
+
this.selected = getInnerSelected(items, selected, this.bindValue);
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
this.selected = getInnerSelected(items, [selected], this.bindValue);
|
|
212
|
+
}
|
|
213
|
+
this.innerItems = getInnerItems(items, this.selected, this.bindValue);
|
|
214
|
+
}
|
|
215
|
+
_updateValue(selectedItems) {
|
|
216
|
+
const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
|
|
217
|
+
const outputSelected = this.multiple ? clearedSelected : clearedSelected.length ? clearedSelected[0] : null;
|
|
218
|
+
this.changed.emit(outputSelected);
|
|
219
|
+
this.modelChange.emit({ value: outputSelected, id: this.uuid });
|
|
220
|
+
this.onChange(outputSelected);
|
|
221
|
+
this.onTouched();
|
|
222
|
+
}
|
|
223
|
+
registerOnChange(fn) {
|
|
224
|
+
this.onChange = fn;
|
|
225
|
+
}
|
|
226
|
+
registerOnTouched(fn) {
|
|
227
|
+
this.onTouched = fn;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", hideSelected: "hideSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange", scrollContainer: "scrollContainer", scrollStrategy: "scrollStrategy" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
|
|
232
|
+
{
|
|
233
|
+
provide: NG_VALUE_ACCESSOR,
|
|
234
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
235
|
+
multi: true,
|
|
236
|
+
},
|
|
237
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "labelTemplate", first: true, predicate: ["labelTemplate"], descendants: true }, { propertyName: "popupHeaderTemplate", first: true, predicate: ["popupHeaderTemplate"], descendants: true }, { propertyName: "popupFooterTemplate", first: true, predicate: ["popupFooterTemplate"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"], components: [{ type: i1.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: i2.PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { type: i3.PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { type: i4.InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }, { type: i5.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: i6.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { type: i7.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i8.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "maxWidthDropdown", "scrollContainerRef", "scrollStrategy"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
239
|
+
type: Component,
|
|
240
|
+
args: [{ selector: 'mrx-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
241
|
+
{
|
|
242
|
+
provide: NG_VALUE_ACCESSOR,
|
|
243
|
+
useExisting: forwardRef(() => SelectComponent),
|
|
244
|
+
multi: true,
|
|
245
|
+
},
|
|
246
|
+
], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
|
|
247
|
+
}], propDecorators: { fields: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], items: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], multiple: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], isLoading: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], searchable: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], clearable: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], closable: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], size: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], bindValue: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], bindLabel: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], bindIcon: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], emptyText: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], placeholder: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], searchPlaceholder: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], multiCollapseCount: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], optionValidation: [{
|
|
278
|
+
type: Input,
|
|
279
|
+
args: ['isExtraOption']
|
|
280
|
+
}], extraOptionPlaceholder: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], use: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], sortIcon: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], sortPlaceholder: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], isFullWidthDropdown: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], withoutSelected: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], hideSelected: [{
|
|
293
|
+
type: Input
|
|
294
|
+
}], addOption: [{
|
|
295
|
+
type: Input
|
|
296
|
+
}], customSearchFn: [{
|
|
297
|
+
type: Input
|
|
298
|
+
}], disabled: [{
|
|
299
|
+
type: Input
|
|
300
|
+
}], readonly: [{
|
|
301
|
+
type: Input
|
|
302
|
+
}], invalid: [{
|
|
303
|
+
type: Input
|
|
304
|
+
}], invalidMessage: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], checkInvalid: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], popupPosition: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], singleChange: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], scrollContainer: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], scrollStrategy: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], dropdown: [{
|
|
317
|
+
type: ViewChild,
|
|
318
|
+
args: ['dropdown']
|
|
319
|
+
}], optionTemplate: [{
|
|
320
|
+
type: ContentChild,
|
|
321
|
+
args: ['optionTemplate']
|
|
322
|
+
}], labelTemplate: [{
|
|
323
|
+
type: ContentChild,
|
|
324
|
+
args: ['labelTemplate']
|
|
325
|
+
}], popupHeaderTemplate: [{
|
|
326
|
+
type: ContentChild,
|
|
327
|
+
args: ['popupHeaderTemplate']
|
|
328
|
+
}], popupFooterTemplate: [{
|
|
329
|
+
type: ContentChild,
|
|
330
|
+
args: ['popupFooterTemplate']
|
|
331
|
+
}], contentTemplate: [{
|
|
332
|
+
type: ContentChild,
|
|
333
|
+
args: ['contentTemplate']
|
|
334
|
+
}], changed: [{
|
|
335
|
+
type: Output
|
|
336
|
+
}], modelChange: [{
|
|
337
|
+
type: Output
|
|
338
|
+
}] } });
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFHMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFpQnJELE1BQU0sT0FBTyxlQUFlO0lBYjVCO1FBY1MsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFnQixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQ3BDLGFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBQ2pDLGVBQVUsR0FBMkIsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUIsVUFBSyxHQUFHO1lBQ2IsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBRUYsYUFBYTtRQUNOLFNBQUksR0FBVyxNQUFNLEVBQUUsQ0FBQztRQUNmLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFPNUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLFNBQUksR0FBb0IsT0FBTyxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLGNBQVMsR0FBVyxZQUFZLENBQUM7UUFDakMsZ0JBQVcsR0FBVyxtQkFBbUIsQ0FBQztRQUMxQyxzQkFBaUIsR0FBVyxrQkFBa0IsQ0FBQztRQUMvQyx1QkFBa0IsR0FBa0IsSUFBSSxDQUFDO1FBQzFCLHFCQUFnQixHQUErRCxJQUFJLENBQUM7UUFDbkcsMkJBQXNCLEdBQVcsa0JBQWtCLENBQUM7UUFDcEQsUUFBRyxHQUF1QixTQUFTLENBQUM7UUFDcEMsYUFBUSxHQUEwQixJQUFJLENBQUM7UUFDdkMsb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0Isd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBQ3BDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBS3ZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUN2QyxpQkFBWSxHQUF3QixJQUFJLENBQUM7UUFFaEQsa0JBQWEsR0FBaUIsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUV2RCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixtQkFBYyxHQUEyQixPQUFPLENBQUM7UUFVekMsWUFBTyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUMvRSxnQkFBVyxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQXNLOUYsYUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDbEMsQ0FBQyxDQUFDO1FBQ00sY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUN6QixDQUFDLENBQUM7S0FTSDtJQXZPQyxJQUFhLEtBQUssQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQW9ERCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbEMsMkJBQTJCLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixPQUFPLEVBQUUsQ0FBQTtTQUNWO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFBO1lBQ3hFLENBQUMsQ0FBQyxDQUFBO1NBQ0g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNsQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7cUJBQ3pIO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDdkIsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7eUJBQ2xIOzZCQUFNOzRCQUNMLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO3lCQUN6RztxQkFDRjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7d0JBQ2xCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO3FCQUN4Rzt5QkFBTTt3QkFDTCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7NEJBQ3ZCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7eUJBQ2pHOzZCQUFNOzRCQUNMLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7eUJBQ3hGO3FCQUNGO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBMEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNyQixPQUFPLEVBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDO2lCQUNqRDtnQkFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO29CQUMxQixPQUFPLEVBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsQ0FBQztpQkFDekU7cUJBQU07b0JBQ0wsT0FBTyxFQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQztpQkFDakQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN4QyxPQUFPLEVBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFDLENBQUM7WUFDakYsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUEwQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBMEI7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hCLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWlCO1FBQzlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQWU7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUE0QjtRQUMxQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQTJCO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxXQUF3QixFQUFFO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRXRCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFlLEVBQUUsRUFBRSxXQUFrQixFQUFFO1FBQzdELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyRTtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sWUFBWSxDQUFDLGFBQXFDO1FBQ3hELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU1RyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFPTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFZO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRHQXRQVSxlQUFlO2dHQUFmLGVBQWUsNmpDQVJmO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQzlDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiw4b0JDcENILHM0U0FnT0E7MkZEMUxhLGVBQWU7a0JBYjNCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFnQmUsTUFBTTtzQkFBckIsS0FBSztnQkFFTyxLQUFLO3NCQUFqQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ2tCLGdCQUFnQjtzQkFBdkMsS0FBSzt1QkFBQyxlQUFlO2dCQUNiLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRVcsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBQ0MsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUNRLG1CQUFtQjtzQkFBdkQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBQ0UsbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRixlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFZCxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RTaXplRW51bSwgU2VsZWN0U2l6ZVR5cGVzIH0gZnJvbSAnLi9lbnVtcyc7XHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcG9wdXAvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RJbm5lckl0ZW1Nb2RlbCwgQWRkT3B0aW9uRm4sIEN1c3RvbVNlYXJjaEZuLCBTZWxlY3RJdGVtTW9kZWwsIFRlbXBsYXRlT3V0cHV0TW9kZWwgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGdldFNlbGVjdGVkSXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LXNlbGVjdGVkLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IGdldElubmVySXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkVudW0sIFBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL292ZXJsYXknO1xyXG5pbXBvcnQgeyBnZXRJbm5lclNlbGVjdGVkIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1pbm5lci1zZWxlY3RlZC5oZWxwZXInO1xyXG5pbXBvcnQgeyBNcnhGb3JtVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZVR5cGVzLCBTZWxlY3RWYWx1ZVdpdGhJZCB9IGZyb20gJy4vc2VsZWN0LmVudW0nO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmlnaW5TZWxlY3RlZDogYW55IHwgYW55W10gPSBbXTtcclxuICBwdWJsaWMgb3JpZ2luSXRlbXM6IFNlbGVjdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBpbm5lckl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIGZvcm0gPSBuZXcgTXJ4Rm9ybVZhbGlkYXRvcigpO1xyXG4gIHB1YmxpYyBtb2RlbCA9IHtcclxuICAgIGxhYmVsOiAnJyxcclxuICB9O1xyXG5cclxuICAvLyBTQVZFIFNUQVRFXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgdGhpcy5vcmlnaW5JdGVtcyA9IGl0ZW1zO1xyXG4gICAgdGhpcy5fdXBkYXRlU2VsZWN0ZWQodGhpcy5vcmlnaW5JdGVtcywgdGhpcy5vcmlnaW5TZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNsb3NhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaXplOiBTZWxlY3RTaXplVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBiaW5kSWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZW1wdHlUZXh0OiBzdHJpbmcgPSAn0J3QtSDQvdCw0LnQtNC10L3Qvic7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktGL0LHQtdGA0LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgbXVsdGlDb2xsYXBzZUNvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoJ2lzRXh0cmFPcHRpb24nKSBvcHRpb25WYWxpZGF0aW9uOiB7IGxhYmVsOiB7IHJlcXVpcmVkOiBib29sZWFuLCBtaW5MZW5ndGg6IG51bWJlciB9IH0gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBleHRyYU9wdGlvblBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgdXNlOiAnZGVmYXVsdCcgfCAnbGluaycgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgc29ydEljb246ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgc29ydFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpc0Z1bGxXaWR0aERyb3Bkb3duOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB3aXRob3V0U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBoaWRlU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYWRkT3B0aW9uITogQWRkT3B0aW9uRm47XHJcbiAgQElucHV0KCkgY3VzdG9tU2VhcmNoRm4/OiBDdXN0b21TZWFyY2hGbjtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwb3B1cFBvc2l0aW9uOiBQb3NpdGlvblR5cGUgPSBQb3NpdGlvbkVudW0uQm90dG9tU3RhcnQ7XHJcblxyXG4gIEBJbnB1dCgpIHNpbmdsZUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzY3JvbGxDb250YWluZXI/OiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNjcm9sbFN0cmF0ZWd5OiAncmVwb3NpdGlvbicgfCAnY2xvc2UnID0gJ2Nsb3NlJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IFBvcHVwQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUZW1wbGF0ZScpIGxhYmVsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdwb3B1cEhlYWRlclRlbXBsYXRlJykgcG9wdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwRm9vdGVyVGVtcGxhdGUnKSBwb3B1cEZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnY29udGVudFRlbXBsYXRlJykgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9uVmFsaWRhdGlvbikge1xyXG4gICAgICB0aGlzLmZvcm0uaW5pdEZpZWxkcyh0aGlzLm1vZGVsLCB0aGlzLm9wdGlvblZhbGlkYXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWFkb25seUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA/ICdtcngtaW5wdXRfX3JlYWRvbmx5JyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/XHJcbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XHJcbiAgICAgIHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7U2VsZWN0U2l6ZUVudW1bdGhpcy5zaXplXX0gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRTZWxlY3RlZExhYmVscygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIGlmICh0aGlzLndpdGhvdXRTZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm4gW11cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4gaS5fX3NlbGVjdGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRJdGVtcygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNlYXJjaEZuKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbVNlYXJjaEZuPy4odGhpcy5zZWFyY2hWYWx1ZSwgaXRlbS5fX29yaWdpbikgPz8gZmFsc2VcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGVTZWxlY3RlZCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYmluZExhYmVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblt0aGlzLmJpbmRMYWJlbF0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSAmJiAhaS5fX3NlbGVjdGVkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGkuX19vcmlnaW5bJ2xhYmVsJ10pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bJ2xhYmVsJ10pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSAmJiAhaS5fX3NlbGVjdGVkO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpbikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpICYmICFpLl9fc2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYmluZExhYmVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblt0aGlzLmJpbmRMYWJlbF0pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpLl9fb3JpZ2luWydsYWJlbCddKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luWydsYWJlbCddKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCAhIXRoaXMuaW52YWxpZE1lc3NhZ2U/Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0SWNvblNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICdtZWRpdW0nID8gJ2ljb24tZm9udC0xNicgOiAnaWNvbi1mb250LTI0JztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdChpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlQ2hhbmdlKSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudXNlID09PSAnZGVmYXVsdCcpIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWQgPyAhaS5fX3NlbGVjdGVkIDogZmFsc2V9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpID0+IHtcclxuICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkID8gIWkuX19zZWxlY3RlZCA6IGkuX19zZWxlY3RlZH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJvcGRvd24udXBkYXRlUG9wdXAoKTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLmlubmVySXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFySXRlbShpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5vblVuc2VsZWN0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVW5zZWxlY3QoaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMuaW5uZXJJdGVtcy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBpZiAoaS5fX2lkID09PSBpdGVtLl9faWQpIHtcclxuICAgICAgICBpLl9fc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodGhpcy5pbm5lckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsZWFyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGl0ZW0gPT4gKHsuLi5pdGVtLCBfX3NlbGVjdGVkOiBmYWxzZX0pKTtcclxuXHJcbiAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZVBvcHVwKGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZShbXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlUG9wdXAoaXNPcGVuOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGlzT3BlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc09wdGlvbihvcHRpb246IFNlbGVjdElubmVySXRlbU1vZGVsKTogU2VsZWN0SW5uZXJJdGVtTW9kZWwge1xyXG4gICAgcmV0dXJuIG9wdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc0xhYmVsKGxhYmVsOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCk6IFNlbGVjdElubmVySXRlbU1vZGVsIHtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHNlbGVjdGVkOiBhbnkgfCBhbnlbXSA9IFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLm9yaWdpblNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLl91cGRhdGVTZWxlY3RlZCh0aGlzLm9yaWdpbkl0ZW1zLCB0aGlzLm9yaWdpblNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VUZXh0VmFsdWVFbXB0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5pbml0TW9kZWxDaGFuZ2VkKHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQWRkTmV3Q3VzdG9tT3B0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24odGhpcy5tb2RlbC5sYWJlbCk7XHJcbiAgICAgIHRoaXMubW9kZWwubGFiZWwgPSAnJztcclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlVGV4dFZhbHVlRW1wdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGVkKGl0ZW1zOiBhbnlbXSA9IFtdLCBzZWxlY3RlZDogYW55W10gPSBbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLm9yaWdpblNlbGVjdGVkKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gZ2V0SW5uZXJTZWxlY3RlZChpdGVtcywgc2VsZWN0ZWQsIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBnZXRJbm5lclNlbGVjdGVkKGl0ZW1zLCBbc2VsZWN0ZWRdLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlubmVySXRlbXMgPSBnZXRJbm5lckl0ZW1zKGl0ZW1zLCB0aGlzLnNlbGVjdGVkLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVWYWx1ZShzZWxlY3RlZEl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdKSB7XHJcbiAgICBjb25zdCBjbGVhcmVkU2VsZWN0ZWQgPSBnZXRTZWxlY3RlZEl0ZW1zKHNlbGVjdGVkSXRlbXMsIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIGNvbnN0IG91dHB1dFNlbGVjdGVkID0gdGhpcy5tdWx0aXBsZSA/IGNsZWFyZWRTZWxlY3RlZCA6IGNsZWFyZWRTZWxlY3RlZC5sZW5ndGggPyBjbGVhcmVkU2VsZWN0ZWRbMF0gOiBudWxsO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KG91dHB1dFNlbGVjdGVkKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IG91dHB1dFNlbGVjdGVkLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG91dHB1dFNlbGVjdGVkKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImludmFsaWRcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuICBjbGFzcz1cIm1yeC1zZWxlY3RcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX3dyYXBwZXJcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInVzZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVmYXVsdCdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0XCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgW3BvcHVwUG9zaXRpb25dPVwicG9wdXBQb3NpdGlvblwiXHJcbiAgICAgICAgICBbc2Nyb2xsQ29udGFpbmVyUmVmXT1cInNjcm9sbENvbnRhaW5lclwiXHJcbiAgICAgICAgICBbc2Nyb2xsU3RyYXRlZ3ldPVwic2Nyb2xsU3RyYXRlZ3lcIlxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3ZhbHVlc1wiICpuZ0lmPVwibXVsdGlwbGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlDb2xsYXBzZUNvdW50ICYmIGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCA+PSBtdWx0aUNvbGxhcHNlQ291bnQ7IGVsc2UgbXVsdGlwbGVOb3RDb2xsYXBzZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19iYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cD7QktGL0LHRgNCw0L3Qvjoge3sgZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFkaXNhYmxlZCAmJiAhcmVhZG9ubHlcIiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTE2XCIgKGNsaWNrKT1cIm9uQ2xlYXIoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVOb3RDb2xsYXBzZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0U2VsZWN0ZWRMYWJlbHM7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsVGVtcGxhdGU7IGVsc2UgZGVmYXVsdExhYmVsVHBsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0LCBjbGVhcjogY2xlYXJJdGVtLmJpbmQodGhpcyl9XCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYWJlbFRwbD5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3ZhbHVlXCIgKm5nSWY9XCIhbXVsdGlwbGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBiaW5kTGFiZWwgPyBpdGVtLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBpdGVtLl9fb3JpZ2luWydsYWJlbCddIHx8IGl0ZW0uX19vcmlnaW4gfX1cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3BsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHNcIj5cclxuICAgICAgICAgICAgPG1yeC1sb2FkZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwic2l6ZSA9PT0gJ2xhcmdlJyA/ICdzbWFsbCcgOiAnZXh0cmEtc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY29sb3JdPVwiJ2JyYW5kJ1wiXHJcbiAgICAgICAgICAgID48L21yeC1sb2FkZXI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggJiYgY2xlYXJhYmxlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZXZyb24tZG93biBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5vcGVuZWRdPVwiaXNPcGVuXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGluaydcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtcIlxyXG4gICAgICAgICAgW21yeFBvcHVwVHJpZ2dlcl09XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBbcG9wdXBQb3NpdGlvbl09XCJwb3B1cFBvc2l0aW9uXCJcclxuICAgICAgICAgIFtpc0Z1bGxXaWR0aERyb3Bkb3duXT1cImlzRnVsbFdpZHRoRHJvcGRvd25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8cCAqbmdJZj1cInNvcnRQbGFjZWhvbGRlclwiPnt7IHNvcnRQbGFjZWhvbGRlciB9fTwvcD5cclxuXHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzb3J0SWNvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiB7e3NvcnRJY29uID09PSAnYXNjJyA/ICdpY29uLXNvcnRpbmctdXAnIDogJ2ljb24tc29ydGluZy1kb3duJ319XCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRTZWxlY3RlZExhYmVscy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0U2VsZWN0ZWRMYWJlbHNcIj5cclxuICAgICAgICAgICAgICAgICAge3sgYmluZExhYmVsID8gaXRlbS5fX29yaWdpbltiaW5kTGFiZWxdIDogaXRlbS5fX29yaWdpblsnbGFiZWwnXSB8fCBpdGVtLl9fb3JpZ2luIH19XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hldnJvbi1kb3duIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm9wZW5lZF09XCJpc09wZW5cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxtcngtcG9wdXAgI2Ryb3Bkb3duIFtjbG9zZUFmdGVyQ2xpY2tdPVwiY2xvc2FibGVcIiAodG9nZ2xlKT1cInRvZ2dsZVBvcHVwKCRldmVudClcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmVkSXRlbXMubGVuZ3RoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZEl0ZW1zOyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgICA8bXJ4LXBvcHVwLWl0ZW0gW2N1c3RvbV09XCJ0cnVlXCIgW2lkXT1cIml0ZW0uX19pZFwiIChjbGlja2VkKT1cIm9uU2VsZWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvcHRpb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRPcHRpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0fVwiXHJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbXJ4LXBvcHVwLWl0ZW0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmaWx0ZXJlZEl0ZW1zLmxlbmd0aFwiPlxyXG4gICAgICAgIDxtcngtcG9wdXAtaXRlbSBbY3VzdG9tXT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fZW1wdHlcIj57eyBlbXB0eVRleHQgfX08L2Rpdj5cclxuICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaGFibGVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxtcngtaW5wdXQtc2VhcmNoXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgICAgID48L21yeC1pbnB1dC1zZWFyY2g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9wdXBIZWFkZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3B1cEhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWFkZE9wdGlvblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19leHRyYS1vcHRpb25cIj5cclxuICAgICAgICAgICAgPG1yeC1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJleHRyYU9wdGlvblBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmxhYmVsXCJcclxuICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjMwMFwiXHJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiISFmb3JtLmVycm9yc1snbGFiZWwnXVwiXHJcbiAgICAgICAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImZvcm0uZXJyb3JzWydsYWJlbCddXCJcclxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VUZXh0VmFsdWVFbXB0eSgpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWlucHV0LXRleHQ+XHJcblxyXG4gICAgICAgICAgICA8bXJ4LWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBpY29uPVwiPHNwYW4gY2xhc3M9J21yeC1pY29uIGljb24tcGx1cyBpY29uLWZvbnQtMjQnPjwvc3Bhbj5cIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkFkZE5ld0N1c3RvbU9wdGlvbigpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9wdXBGb290ZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3B1cEZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21yeC1wb3B1cD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImludmFsaWQgJiYgaXNJbnZhbGlkTWVzc2FnZVwiPlxyXG4gICAgPG1yeC1lcnJvci1tZXNzYWdlIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSBbZmllbGRzXT1cImZpZWxkc1wiIFtpZF09XCJ1dWlkXCIgW3R5cGVdPVwiJ2lucHV0J1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFiZWxUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNMYWJlbChpdGVtKSBhcyBsYWJlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19iYWRnZVwiPlxyXG4gICAgICA8cD57eyBiaW5kTGFiZWwgPyBsYWJlbC5fX29yaWdpbltiaW5kTGFiZWxdIDogbGFiZWwuX19vcmlnaW5bJ2xhYmVsJ10gfHwgbGFiZWwuX19vcmlnaW4gfX08L3A+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMTZcIiAoY2xpY2spPVwib25VbnNlbGVjdChsYWJlbClcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc09wdGlvbihpdGVtKSBhcyBvcHRpb25cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9faXRlbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2l0ZW0tLWNvbnRlbnRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYmluZEljb24gJiYgb3B0aW9uLl9fb3JpZ2luW2JpbmRJY29uXVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWZvbnQtMjRcIiBbY2xhc3NdPVwib3B0aW9uW2JpbmRJY29uXVwiPjwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPHA+e3sgYmluZExhYmVsID8gb3B0aW9uLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBvcHRpb24uX19vcmlnaW5bJ2xhYmVsJ10gfHwgb3B0aW9uLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb24uX19zZWxlY3RlZFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGVjayBpY29uLWZvbnQtMjRcIj48L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9zZWxlY3Qvc2VsZWN0LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNlbGVjdFZhbHVlVHlwZXMgPSBhbnkgfCBhbnlbXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0VmFsdWVXaXRoSWQge1xyXG4gIHZhbHVlOiBTZWxlY3RWYWx1ZVR5cGVzLFxyXG4gIGlkOiBzdHJpbmdcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { PopupModule } from '../../popup/popup.module';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
5
|
+
import { SelectComponent } from './select.component';
|
|
6
|
+
import { LoaderModule } from '../../loader/loader.module';
|
|
7
|
+
import { InputTextModule } from '../input-text/input-text.module';
|
|
8
|
+
import { ErrorMessageModule } from '../../error-message/error-message.module';
|
|
9
|
+
import { SaveStateModule } from '../../save-state/save-state.module';
|
|
10
|
+
import { NgxMaskModule } from 'ngx-mask';
|
|
11
|
+
import { ButtonModule } from "../../button/button.module";
|
|
12
|
+
import { InputSearchModule } from "../input-search/input-search.module";
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "ngx-mask";
|
|
15
|
+
const maskConfigFunction = () => {
|
|
16
|
+
return {
|
|
17
|
+
validation: false,
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export class SelectModule {
|
|
21
|
+
}
|
|
22
|
+
SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, declarations: [SelectComponent], imports: [CommonModule,
|
|
24
|
+
FormsModule,
|
|
25
|
+
PopupModule,
|
|
26
|
+
LoaderModule,
|
|
27
|
+
InputTextModule,
|
|
28
|
+
ErrorMessageModule,
|
|
29
|
+
SaveStateModule,
|
|
30
|
+
ButtonModule,
|
|
31
|
+
InputSearchModule, i1.NgxMaskModule], exports: [SelectComponent] });
|
|
32
|
+
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, imports: [[
|
|
33
|
+
CommonModule,
|
|
34
|
+
FormsModule,
|
|
35
|
+
PopupModule,
|
|
36
|
+
LoaderModule,
|
|
37
|
+
InputTextModule,
|
|
38
|
+
ErrorMessageModule,
|
|
39
|
+
SaveStateModule,
|
|
40
|
+
ButtonModule,
|
|
41
|
+
InputSearchModule,
|
|
42
|
+
NgxMaskModule.forRoot(maskConfigFunction)
|
|
43
|
+
]] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectModule, decorators: [{
|
|
45
|
+
type: NgModule,
|
|
46
|
+
args: [{
|
|
47
|
+
declarations: [
|
|
48
|
+
SelectComponent
|
|
49
|
+
],
|
|
50
|
+
imports: [
|
|
51
|
+
CommonModule,
|
|
52
|
+
FormsModule,
|
|
53
|
+
PopupModule,
|
|
54
|
+
LoaderModule,
|
|
55
|
+
InputTextModule,
|
|
56
|
+
ErrorMessageModule,
|
|
57
|
+
SaveStateModule,
|
|
58
|
+
ButtonModule,
|
|
59
|
+
InputSearchModule,
|
|
60
|
+
NgxMaskModule.forRoot(maskConfigFunction)
|
|
61
|
+
],
|
|
62
|
+
exports: [
|
|
63
|
+
SelectComponent
|
|
64
|
+
]
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFFeEUsTUFBTSxrQkFBa0IsR0FBMkIsR0FBRyxFQUFFO0lBQ3RELE9BQU87UUFDTCxVQUFVLEVBQUUsS0FBSztLQUNsQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBc0JGLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksaUJBbEJyQixlQUFlLGFBR2YsWUFBWTtRQUNaLFdBQVc7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLFlBQVk7UUFDWixpQkFBaUIsK0JBSWpCLGVBQWU7MEdBR04sWUFBWSxZQWhCZDtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLFlBQVk7WUFDWixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGFBQWEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7U0FDMUM7MkZBS1UsWUFBWTtrQkFwQnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO3FCQUMxQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQb3B1cE1vZHVsZSB9IGZyb20gJy4uLy4uL3BvcHVwL3BvcHVwLm1vZHVsZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9sb2FkZXIvbG9hZGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJy4uL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VNb2R1bGUgfSBmcm9tICcuLi8uLi9lcnJvci1tZXNzYWdlL2Vycm9yLW1lc3NhZ2UubW9kdWxlJztcclxuaW1wb3J0IHsgU2F2ZVN0YXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2F2ZS1zdGF0ZS9zYXZlLXN0YXRlLm1vZHVsZSc7XHJcbmltcG9ydCB7IElDb25maWcsIE5neE1hc2tNb2R1bGUgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi8uLi9idXR0b24vYnV0dG9uLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBJbnB1dFNlYXJjaE1vZHVsZSB9IGZyb20gXCIuLi9pbnB1dC1zZWFyY2gvaW5wdXQtc2VhcmNoLm1vZHVsZVwiO1xyXG5cclxuY29uc3QgbWFza0NvbmZpZ0Z1bmN0aW9uOiAoKSA9PiBQYXJ0aWFsPElDb25maWc+ID0gKCkgPT4ge1xyXG4gIHJldHVybiB7XHJcbiAgICB2YWxpZGF0aW9uOiBmYWxzZSxcclxuICB9O1xyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNlbGVjdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBQb3B1cE1vZHVsZSxcclxuICAgIExvYWRlck1vZHVsZSxcclxuICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgIEVycm9yTWVzc2FnZU1vZHVsZSxcclxuICAgIFNhdmVTdGF0ZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIElucHV0U2VhcmNoTW9kdWxlLFxyXG4gICAgTmd4TWFza01vZHVsZS5mb3JSb290KG1hc2tDb25maWdGdW5jdGlvbilcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNlbGVjdENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdE1vZHVsZSB7XHJcbn1cclxuIl19
|