@smartbit4all/ng-client 4.0.112 → 4.0.113

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.
@@ -10,4 +10,6 @@ export * from './smartform.form-model';
10
10
  export * from './services/smartform.layout-definition.service';
11
11
  export * from './api/model/models';
12
12
  export * from './highlightMacthingString-pipe';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3Byb2plY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc21hcnRmb3JtXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXRzL3NtYXJ0Zm9ybXdpZGdldC9zbWFydGZvcm13aWRnZXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0ZmlsZXVwbG9hZGVyL3NtYXJ0ZmlsZXVwbG9hZGVyLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zbWFydGZvcm0ubGF5b3V0LWRlZmluaXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21vZGVsL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaGlnaGxpZ2h0TWFjdGhpbmdTdHJpbmctcGlwZSc7XHJcbiJdfQ==
13
+ export * from './widgets/directives/comparable-dropdown.directive';
14
+ export * from './widgets/directives/comparable-multiselect.directive';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3Byb2plY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNtYXJ0Zm9ybVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRmb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9zbWFydGZvcm13aWRnZXQvc21hcnRmb3Jtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRmaWxldXBsb2FkZXIvc21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRmb3JtLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwaS9tb2RlbC9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2hpZ2hsaWdodE1hY3RoaW5nU3RyaW5nLXBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMvZGlyZWN0aXZlcy9jb21wYXJhYmxlLWRyb3Bkb3duLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0cy9kaXJlY3RpdmVzL2NvbXBhcmFibGUtbXVsdGlzZWxlY3QuZGlyZWN0aXZlJztcclxuIl19
@@ -0,0 +1,36 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { ObjectUtils } from 'primeng/utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/dropdown";
5
+ const EQUALITY_METHOD_NAME = 'isOptionValueEqualsModelValue';
6
+ export class ComparableDropdownDirective {
7
+ set compareWith(fn) {
8
+ console.log('foo');
9
+ if (fn) {
10
+ this.dropdown[EQUALITY_METHOD_NAME] = (option) => {
11
+ return (fn(this.dropdown.modelValue(), this.dropdown.getOptionValue(option)) ||
12
+ ObjectUtils.equals(this.dropdown.modelValue(), this.dropdown.getOptionValue(option), this.dropdown.equalityKey()));
13
+ };
14
+ }
15
+ else {
16
+ this.dropdown[EQUALITY_METHOD_NAME] = (option) => {
17
+ return ObjectUtils.equals(this.dropdown.modelValue(), this.dropdown.getOptionValue(option), this.dropdown.equalityKey());
18
+ };
19
+ }
20
+ }
21
+ constructor(dropdown) {
22
+ this.dropdown = dropdown;
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ComparableDropdownDirective, deps: [{ token: i1.Dropdown }], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ComparableDropdownDirective, selector: "p-dropdown", inputs: { compareWith: "compareWith" }, ngImport: i0 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ComparableDropdownDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: 'p-dropdown',
31
+ inputs: ['compareWith'],
32
+ }]
33
+ }], ctorParameters: () => [{ type: i1.Dropdown }], propDecorators: { compareWith: [{
34
+ type: Input
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYWJsZS1kcm9wZG93bi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3dpZGdldHMvZGlyZWN0aXZlcy9jb21wYXJhYmxlLWRyb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJNUMsTUFBTSxvQkFBb0IsR0FBRywrQkFBK0IsQ0FBQztBQU03RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLElBQWEsV0FBVyxDQUFDLEVBQXlCO1FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUNwRCxPQUFPLENBQ0wsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3BFLFdBQVcsQ0FBQyxNQUFNLENBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUM1QixDQUNGLENBQUM7WUFDSixDQUFDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUNwRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEVBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUM1QixDQUFDO1lBQ0osQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQzsrR0F6Qi9CLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ3hCOzZFQUVjLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XHJcblxyXG5leHBvcnQgdHlwZSBDb21wYXJlRm4gPSAoYTogYW55LCBiOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG5jb25zdCBFUVVBTElUWV9NRVRIT0RfTkFNRSA9ICdpc09wdGlvblZhbHVlRXF1YWxzTW9kZWxWYWx1ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ3AtZHJvcGRvd24nLFxyXG4gIGlucHV0czogWydjb21wYXJlV2l0aCddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcGFyYWJsZURyb3Bkb3duRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBzZXQgY29tcGFyZVdpdGgoZm46IENvbXBhcmVGbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgY29uc29sZS5sb2coJ2ZvbycpO1xyXG4gICAgaWYgKGZuKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25bRVFVQUxJVFlfTUVUSE9EX05BTUVdID0gKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIGZuKHRoaXMuZHJvcGRvd24ubW9kZWxWYWx1ZSgpLCB0aGlzLmRyb3Bkb3duLmdldE9wdGlvblZhbHVlKG9wdGlvbikpIHx8XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5lcXVhbHMoXHJcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ubW9kZWxWYWx1ZSgpLFxyXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLmdldE9wdGlvblZhbHVlKG9wdGlvbiksXHJcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24uZXF1YWxpdHlLZXkoKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duW0VRVUFMSVRZX01FVEhPRF9OQU1FXSA9IChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5lcXVhbHMoXHJcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duLm1vZGVsVmFsdWUoKSxcclxuICAgICAgICAgIHRoaXMuZHJvcGRvd24uZ2V0T3B0aW9uVmFsdWUob3B0aW9uKSxcclxuICAgICAgICAgIHRoaXMuZHJvcGRvd24uZXF1YWxpdHlLZXkoKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRyb3Bkb3duOiBEcm9wZG93bikge31cclxufVxyXG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { ObjectUtils } from 'primeng/utils';
3
+ import { DomHandler } from 'primeng/dom';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "primeng/multiselect";
6
+ export class ComparableMultiselectDirective {
7
+ // Because the equality check between the selected and possible option values are peppered
8
+ // throughout the component everywhere, we must override four(!) methods on it.
9
+ set compareWith(fn) {
10
+ const eq = !!fn
11
+ ? fn
12
+ : (a, b) => ObjectUtils.equals(a, b, this.multiSelect.equalityKey());
13
+ this.multiSelect.onOptionSelect = (event, isFocus = false, index = -1) => {
14
+ const { originalEvent, option } = event;
15
+ if (this.multiSelect.disabled || this.multiSelect.isOptionDisabled(option)) {
16
+ return;
17
+ }
18
+ let selected = this.multiSelect.isSelected(option);
19
+ let value = null;
20
+ if (selected) {
21
+ value = this.multiSelect
22
+ .modelValue()
23
+ .filter((val) => !eq(val, this.multiSelect.getOptionValue(option)));
24
+ this.multiSelect.onRemove.emit({
25
+ newValue: this.multiSelect.value,
26
+ removed: this.multiSelect.getOptionValue(option),
27
+ });
28
+ }
29
+ else {
30
+ value = [...(this.multiSelect.modelValue() || []), this.multiSelect.getOptionValue(option)];
31
+ }
32
+ this.multiSelect.updateModel(value, originalEvent);
33
+ index !== -1 && this.multiSelect.focusedOptionIndex.set(index);
34
+ isFocus && DomHandler.focus(this.multiSelect.focusInputViewChild?.nativeElement);
35
+ this.multiSelect.onChange.emit({
36
+ originalEvent: { ...event, selected: !event.selected },
37
+ value: value,
38
+ itemValue: option,
39
+ });
40
+ };
41
+ this.multiSelect.isSelected = (option) => {
42
+ const optionValue = this.multiSelect.getOptionValue(option);
43
+ return (this.multiSelect.modelValue() || []).some((value) => eq(value, optionValue));
44
+ };
45
+ this.multiSelect.getLabelByValue = (value) => {
46
+ const options = this.multiSelect.group
47
+ ? this.multiSelect.flatOptions(this.multiSelect._options())
48
+ : this.multiSelect._options() || [];
49
+ const matchedOption = options.find((option) => !this.multiSelect.isOptionGroup(option) &&
50
+ eq(this.multiSelect.getOptionValue(option), value));
51
+ return matchedOption ? this.multiSelect.getOptionLabel(matchedOption) : null;
52
+ };
53
+ this.multiSelect.removeOption = (optionValue, event) => {
54
+ let value = this.multiSelect.modelValue().filter((val) => !eq(val, optionValue));
55
+ this.multiSelect.updateModel(value, event);
56
+ this.multiSelect.onChange.emit({
57
+ originalEvent: event,
58
+ value: value,
59
+ itemValue: optionValue,
60
+ });
61
+ event && event.stopPropagation();
62
+ };
63
+ }
64
+ constructor(multiSelect) {
65
+ this.multiSelect = multiSelect;
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ComparableMultiselectDirective, deps: [{ token: i1.MultiSelect }], target: i0.ɵɵFactoryTarget.Directive }); }
68
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ComparableMultiselectDirective, selector: "p-multiSelect", inputs: { compareWith: "compareWith" }, ngImport: i0 }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ComparableMultiselectDirective, decorators: [{
71
+ type: Directive,
72
+ args: [{
73
+ selector: 'p-multiSelect',
74
+ inputs: ['compareWith'],
75
+ }]
76
+ }], ctorParameters: () => [{ type: i1.MultiSelect }], propDecorators: { compareWith: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyYWJsZS1tdWx0aXNlbGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3dpZGdldHMvZGlyZWN0aXZlcy9jb21wYXJhYmxlLW11bHRpc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQU16QyxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLDBGQUEwRjtJQUMxRiwrRUFBK0U7SUFDL0UsSUFBYSxXQUFXLENBQUMsRUFBeUI7UUFDaEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDYixDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1RSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN4QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsT0FBTztZQUNULENBQUM7WUFFRCxJ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QyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvRSxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxDQUFDLFdBQWdCLEVBQUUsS0FBVSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBRXRGLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQzdCLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixLQUFLLEVBQUUsS0FBSztnQkFDWixTQUFTLEVBQUUsV0FBVzthQUN2QixDQUFDLENBQUM7WUFFSCxLQUFLLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7K0dBdEVyQyw4QkFBOEI7bUdBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN4QjtnRkFJYyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNdWx0aVNlbGVjdCB9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xyXG5pbXBvcnQgeyBDb21wYXJlRm4gfSBmcm9tICcuL2NvbXBhcmFibGUtZHJvcGRvd24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcclxuaW1wb3J0IHsgRG9tSGFuZGxlciB9IGZyb20gJ3ByaW1lbmcvZG9tJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAncC1tdWx0aVNlbGVjdCcsXHJcbiAgaW5wdXRzOiBbJ2NvbXBhcmVXaXRoJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wYXJhYmxlTXVsdGlzZWxlY3REaXJlY3RpdmUge1xyXG4gIC8vIEJlY2F1c2UgdGhlIGVxdWFsaXR5IGNoZWNrIGJldHdlZW4gdGhlIHNlbGVjdGVkIGFuZCBwb3NzaWJsZSBvcHRpb24gdmFsdWVzIGFyZSBwZXBwZXJlZFxyXG4gIC8vIHRocm91Z2hvdXQgdGhlIGNvbXBvbmVudCBldmVyeXdoZXJlLCB3ZSBtdXN0IG92ZXJyaWRlIGZvdXIoISkgbWV0aG9kcyBvbiBpdC5cclxuICBASW5wdXQoKSBzZXQgY29tcGFyZVdpdGgoZm46IENvbXBhcmVGbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgY29uc3QgZXEgPSAhIWZuXHJcbiAgICAgID8gZm5cclxuICAgICAgOiAoYTogYW55LCBiOiBhbnkpID0+IE9iamVjdFV0aWxzLmVxdWFscyhhLCBiLCB0aGlzLm11bHRpU2VsZWN0LmVxdWFsaXR5S2V5KCkpO1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdC5vbk9wdGlvblNlbGVjdCA9IChldmVudDogYW55LCBpc0ZvY3VzID0gZmFsc2UsIGluZGV4ID0gLTEpID0+IHtcclxuICAgICAgY29uc3QgeyBvcmlnaW5hbEV2ZW50LCBvcHRpb24gfSA9IGV2ZW50O1xyXG4gICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdC5kaXNhYmxlZCB8fCB0aGlzLm11bHRpU2VsZWN0LmlzT3B0aW9uRGlzYWJsZWQob3B0aW9uKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHNlbGVjdGVkID0gdGhpcy5tdWx0aVNlbGVjdC5pc1NlbGVjdGVkKG9wdGlvbik7XHJcbiAgICAgIGxldCB2YWx1ZSA9IG51bGw7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5tdWx0aVNlbGVjdFxyXG4gICAgICAgICAgLm1vZGVsVmFsdWUoKVxyXG4gICAgICAgICAgLmZpbHRlcigodmFsOiBhbnkpID0+ICFlcSh2YWwsIHRoaXMubXVsdGlTZWxlY3QuZ2V0T3B0aW9uVmFsdWUob3B0aW9uKSkpO1xyXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3Qub25SZW1vdmUuZW1pdCh7XHJcbiAgICAgICAgICBuZXdWYWx1ZTogdGhpcy5tdWx0aVNlbGVjdC52YWx1ZSxcclxuICAgICAgICAgIHJlbW92ZWQ6IHRoaXMubXVsdGlTZWxlY3QuZ2V0T3B0aW9uVmFsdWUob3B0aW9uKSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IFsuLi4odGhpcy5tdWx0aVNlbGVjdC5tb2RlbFZhbHVlKCkgfHwgW10pLCB0aGlzLm11bHRpU2VsZWN0LmdldE9wdGlvblZhbHVlKG9wdGlvbildO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0LnVwZGF0ZU1vZGVsKHZhbHVlLCBvcmlnaW5hbEV2ZW50KTtcclxuICAgICAgaW5kZXggIT09IC0xICYmIHRoaXMubXVsdGlTZWxlY3QuZm9jdXNlZE9wdGlvbkluZGV4LnNldChpbmRleCk7XHJcblxyXG4gICAgICBpc0ZvY3VzICYmIERvbUhhbmRsZXIuZm9jdXModGhpcy5tdWx0aVNlbGVjdC5mb2N1c0lucHV0Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KTtcclxuXHJcbiAgICAgIHRoaXMubXVsdGlTZWxlY3Qub25DaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgb3JpZ2luYWxFdmVudDogeyAuLi5ldmVudCwgc2VsZWN0ZWQ6ICFldmVudC5zZWxlY3RlZCB9LFxyXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICBpdGVtVmFsdWU6IG9wdGlvbixcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubXVsdGlTZWxlY3QuaXNTZWxlY3RlZCA9IChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IHRoaXMubXVsdGlTZWxlY3QuZ2V0T3B0aW9uVmFsdWUob3B0aW9uKTtcclxuICAgICAgcmV0dXJuICh0aGlzLm11bHRpU2VsZWN0Lm1vZGVsVmFsdWUoKSB8fCBbXSkuc29tZSgodmFsdWU6IGFueSkgPT4gZXEodmFsdWUsIG9wdGlvblZhbHVlKSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubXVsdGlTZWxlY3QuZ2V0TGFiZWxCeVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3QuZ3JvdXBcclxuICAgICAgICA/IHRoaXMubXVsdGlTZWxlY3QuZmxhdE9wdGlvbnModGhpcy5tdWx0aVNlbGVjdC5fb3B0aW9ucygpKVxyXG4gICAgICAgIDogdGhpcy5tdWx0aVNlbGVjdC5fb3B0aW9ucygpIHx8IFtdO1xyXG4gICAgICBjb25zdCBtYXRjaGVkT3B0aW9uID0gb3B0aW9ucy5maW5kKFxyXG4gICAgICAgIChvcHRpb246IGFueSkgPT5cclxuICAgICAgICAgICF0aGlzLm11bHRpU2VsZWN0LmlzT3B0aW9uR3JvdXAob3B0aW9uKSAmJlxyXG4gICAgICAgICAgZXEodGhpcy5tdWx0aVNlbGVjdC5nZXRPcHRpb25WYWx1ZShvcHRpb24pLCB2YWx1ZSlcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIG1hdGNoZWRPcHRpb24gPyB0aGlzLm11bHRpU2VsZWN0LmdldE9wdGlvbkxhYmVsKG1hdGNoZWRPcHRpb24pIDogbnVsbDtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5tdWx0aVNlbGVjdC5yZW1vdmVPcHRpb24gPSAob3B0aW9uVmFsdWU6IGFueSwgZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLm11bHRpU2VsZWN0Lm1vZGVsVmFsdWUoKS5maWx0ZXIoKHZhbDogYW55KSA9PiAhZXEodmFsLCBvcHRpb25WYWx1ZSkpO1xyXG5cclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdC51cGRhdGVNb2RlbCh2YWx1ZSwgZXZlbnQpO1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0Lm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICBpdGVtVmFsdWU6IG9wdGlvblZhbHVlLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50ICYmIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbXVsdGlTZWxlY3Q6IE11bHRpU2VsZWN0KSB7fVxyXG59XHJcbiJdfQ==