@wizishop/angular-components 14.3.17 → 14.3.19

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.
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { merge, Subject } from 'rxjs';
3
- import { map, takeUntil } from 'rxjs/operators';
3
+ import { filter, map, takeUntil } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ValueChangeService {
6
6
  constructor(changeDetectorRef) {
@@ -50,6 +50,10 @@ export class ValueChangeService {
50
50
  this.updateSelectPlaceholder();
51
51
  this.changeDetectorRef.markForCheck();
52
52
  }
53
+ setDisabledState(isDisabled) {
54
+ this.disabled = isDisabled;
55
+ this.optionChildren?.forEach((option) => option.setDisabledState(isDisabled));
56
+ }
53
57
  selectNextOption() {
54
58
  if (this.indexSelectedOption + 1 >= this.optionChildren.length) {
55
59
  return;
@@ -91,6 +95,9 @@ export class ValueChangeService {
91
95
  this.findInitialSelectedOption();
92
96
  return;
93
97
  }
98
+ if (this.disabled) {
99
+ this.optionChildren.forEach((option) => option.setDisabledState(true));
100
+ }
94
101
  this.handleValueChange();
95
102
  }, 0);
96
103
  }
@@ -119,13 +126,13 @@ export class ValueChangeService {
119
126
  }
120
127
  optionSelectedChangeListeners() {
121
128
  const selectedChange$ = this.optionChildren.map((option) => {
122
- return option.selectedChange.pipe(map((selected) => option.getValue()));
129
+ return option.selectedChange.pipe(filter(() => !this.disabled), map((selected) => option.getValue()));
123
130
  });
124
131
  return merge(...selectedChange$).pipe(takeUntil(this.resetListeners$));
125
132
  }
126
133
  changeSelectedOption() {
127
134
  this.optionChildren.forEach((optionComponent, index) => {
128
- optionComponent.selected = this.value == undefined ? false : optionComponent.value === this.value;
135
+ optionComponent.setSelected(this.value == undefined ? false : optionComponent.value === this.value);
129
136
  if (optionComponent.selected) {
130
137
  this.indexSelectedOption = index;
131
138
  }
@@ -141,4 +148,4 @@ ValueChangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
141
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: ValueChangeService, decorators: [{
142
149
  type: Injectable
143
150
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtY2hhbmdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdHMvc2VsZWN0LXRlc3QvdmFsdWUtY2hhbmdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUWhELE1BQU0sT0FBTyxrQkFBa0I7SUF3QjNCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBdEJ4RCxpQkFBWSxHQUEwQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBa0JwRCx3QkFBbUIsR0FBVyxJQUFJLENBQUM7UUFFbkMsb0JBQWUsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQXdFdkMseUJBQW9CLEdBQUcsQ0FBQyxNQUFxQyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsRUFBRTtZQUNwRyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6RixPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELENBQUMsQ0FBQTtRQUVLLGNBQVMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUN6QyxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRU8sMkJBQXNCLEdBQUcs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QUFLLENBQUM7WUFFbEcsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzsrR0FqTFEsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuXG50eXBlIFNlbGVjdGVkRXZlbnQgPSB7XG4gICAgdmFsdWU6IGFueVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVmFsdWVDaGFuZ2VTZXJ2aWNlPFRPcHRpb25WYWx1ZT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgdmFsdWVDaGFuZ2UkOiBTdWJqZWN0PFRPcHRpb25WYWx1ZT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUT3B0aW9uVmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZSgpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogVE9wdGlvblZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlOiBUT3B0aW9uVmFsdWU7XG5cbiAgICBvcHRpb25DaGlsZHJlbjogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUT3B0aW9uVmFsdWU+PjtcblxuICAgIHNlbGVjdGVkT3B0aW9uQ29udGVudDogYW55O1xuXG4gICAgaW5kZXhTZWxlY3RlZE9wdGlvbjogbnVtYmVyID0gbnVsbDtcblxuICAgIHJlc2V0TGlzdGVuZXJzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICB9XG5cbiAgICBoYW5kbGVTZWxlY3RPcHRpb25zQ2hhbmdlKG9wdGlvbkNoaWxkcmVuOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFRPcHRpb25WYWx1ZT4+LCB2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMucmVzZXRMaXN0ZW5lcnMkLm5leHQoKTtcblxuICAgICAgICB0aGlzLm9wdGlvbkNoaWxkcmVuID0gb3B0aW9uQ2hpbGRyZW47XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5oYW5kbGVJbml0aWFsU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RlZE9wdGlvbnNFdmVudCgpO1xuICAgIH1cblxuICAgIGFzc2lnblZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZSgpO1xuICAgIH1cblxuICAgIGhhbmRsZVZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0UGxhY2Vob2xkZXIoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZWxlY3ROZXh0T3B0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uICsxID49IHRoaXMub3B0aW9uQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID0gdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHNlbGVjdFByZXZpb3VzT3B0aW9uKCkge1xuXG4gICAgICAgIGlmICghdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiAtIDE7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHNlYXJjaE9wdGlvbkJ5Rmlyc3RMZXR0ZXIobGV0dGVyOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZE9wdGlvbnNJbmRleCA9IHRoaXMub3B0aW9uQ2hpbGRyZW5cbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHRoaXMuaW5kZXhPZk1hdGNoZWRPcHRpb24ob3B0aW9uLCBpbmRleCwgbGV0dGVyKSlcbiAgICAgICAgICAgIC5maWx0ZXIodGhpcy5pc05vdE51bGwpO1xuXG4gICAgICAgIGlmICghbWF0Y2hlZE9wdGlvbnNJbmRleC5sZW5ndGgpIHsgLy8gcmVzZXQgdGhlIHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmluZCB0aGUgbmV4dCBvcHRpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9uLCBvciB0aGUgZmlyc3Qgb3B0aW9uXG5cbiAgICAgICAgY29uc3QgdmFsaWRPcHRpb25JbmRleCA9IG1hdGNoZWRPcHRpb25zSW5kZXguZmluZCh0aGlzLmhpZ2hlc3RBbmRDbG9zZXN0SW5kZXgpO1xuXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IGlzTmFOKHZhbGlkT3B0aW9uSW5kZXgpID8gbWF0Y2hlZE9wdGlvbnNJbmRleFswXSA6IHZhbGlkT3B0aW9uSW5kZXg7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5kZXhPZk1hdGNoZWRPcHRpb24gPSAob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VE9wdGlvblZhbHVlPiwgaW5kZXg6IG51bWJlciwgbGV0dGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dE9wdGlvbiA9IG9wdGlvbi5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRleHRPcHRpb24uc3RhcnRzV2l0aChsZXR0ZXIpID8gaW5kZXggOiBudWxsO1xuICAgICAgfVxuXG4gICAgcHJpdmF0ZSBpc05vdE51bGwgPSAoaW5kZXg6IG51bWJlciB8IG51bGwpID0+IHtcbiAgICAgICAgcmV0dXJuIGluZGV4ICE9PSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlnaGVzdEFuZENsb3Nlc3RJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpc05hTih0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPiB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW5pdGlhbFNlbGVjdGVkT3B0aW9uKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgLy8gISBBdm9pZCBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkLi4uXG4gICAgICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5maW5kSW5pdGlhbFNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRJbml0aWFsU2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIGlmICghc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2VsZWN0ZWRPcHRpb25zRXZlbnQoKSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWRDaGFuZ2VMaXN0ZW5lcnMoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlbGVjdFBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25Db250ZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uQ29udGVudCA9IHNlbGVjdGVkT3B0aW9uPy5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgfHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRPcHRpb25Db21wb25lbnQoKTogT3B0aW9uQ29tcG9uZW50PFRPcHRpb25WYWx1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25DaGlsZHJlbi5maW5kKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3B0aW9uU2VsZWN0ZWRDaGFuZ2VMaXN0ZW5lcnMoKTogT2JzZXJ2YWJsZTxUT3B0aW9uVmFsdWU+IHtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZENoYW5nZSQgPSAgdGhpcy5vcHRpb25DaGlsZHJlbi5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5zZWxlY3RlZENoYW5nZS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoc2VsZWN0ZWQ6IGFueSkgPT4gb3B0aW9uLmdldFZhbHVlKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbWVyZ2UoLi4uc2VsZWN0ZWRDaGFuZ2UkKS5waXBlKHRha2VVbnRpbCh0aGlzLnJlc2V0TGlzdGVuZXJzJCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlU2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgICAgIHRoaXMub3B0aW9uQ2hpbGRyZW4uZm9yRWFjaCgob3B0aW9uQ29tcG9uZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgb3B0aW9uQ29tcG9uZW50LnNlbGVjdGVkID0gdGhpcy52YWx1ZSA9PSB1bmRlZmluZWQgPyBmYWxzZSA6IG9wdGlvbkNvbXBvbmVudC52YWx1ZSA9PT0gdGhpcy52YWx1ZTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbkNvbXBvbmVudC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5yZXNldExpc3RlbmVycyQubmV4dCgpO1xuICAgICAgICB0aGlzLnJlc2V0TGlzdGVuZXJzJC5jb21wbGV0ZSgpO1xuICAgIH1cbn0iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtY2hhbmdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdHMvc2VsZWN0LXRlc3QvdmFsdWUtY2hhbmdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUl4RCxNQUFNLE9BQU8sa0JBQWtCO0lBMEIzQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXhCeEQsaUJBQVksR0FBMEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQW9CcEQsd0JBQW1CLEdBQVcsSUFBSSxDQUFDO1FBRW5DLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUE2RXZDLHlCQUFvQixHQUFHLENBQUMsTUFBcUMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLEVBQUU7WUFDcEcsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekYsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RCxDQUFDLENBQUE7UUFFSyxjQUFTLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDekMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO1FBQzFCLENBQUMsQ0FBQTtRQUVPLDJC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QyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzVDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25ELGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFcEcsSUFBSSxlQUFlLENBQUMsUUFBUSxFQUFFO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzsrR0EzTFEsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWYWx1ZUNoYW5nZVNlcnZpY2U8VE9wdGlvblZhbHVlPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICB2YWx1ZUNoYW5nZSQ6IFN1YmplY3Q8VE9wdGlvblZhbHVlPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IFRPcHRpb25WYWx1ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKCk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpOiBUT3B0aW9uVmFsdWUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IFRPcHRpb25WYWx1ZTtcblxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgb3B0aW9uQ2hpbGRyZW46IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VE9wdGlvblZhbHVlPj47XG5cbiAgICBzZWxlY3RlZE9wdGlvbkNvbnRlbnQ6IGFueTtcblxuICAgIGluZGV4U2VsZWN0ZWRPcHRpb246IG51bWJlciA9IG51bGw7XG5cbiAgICByZXNldExpc3RlbmVycyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0T3B0aW9uc0NoYW5nZShvcHRpb25DaGlsZHJlbjogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUT3B0aW9uVmFsdWU+PiwgdmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0TGlzdGVuZXJzJC5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25DaGlsZHJlbiA9IG9wdGlvbkNoaWxkcmVuO1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuXG4gICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbFNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0ZWRPcHRpb25zRXZlbnQoKTtcbiAgICB9XG5cbiAgICBhc3NpZ25WYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVWYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdFBsYWNlaG9sZGVyKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLm9wdGlvbkNoaWxkcmVuPy5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpKTtcbiAgICB9XG5cbiAgICBzZWxlY3ROZXh0T3B0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uICsxID49IHRoaXMub3B0aW9uQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID0gdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHNlbGVjdFByZXZpb3VzT3B0aW9uKCkge1xuXG4gICAgICAgIGlmICghdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5hc3NpZ25WYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiAtIDE7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHNlYXJjaE9wdGlvbkJ5Rmlyc3RMZXR0ZXIobGV0dGVyOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZE9wdGlvbnNJbmRleCA9IHRoaXMub3B0aW9uQ2hpbGRyZW5cbiAgICAgICAgICAgIC5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHRoaXMuaW5kZXhPZk1hdGNoZWRPcHRpb24ob3B0aW9uLCBpbmRleCwgbGV0dGVyKSlcbiAgICAgICAgICAgIC5maWx0ZXIodGhpcy5pc05vdE51bGwpO1xuXG4gICAgICAgIGlmICghbWF0Y2hlZE9wdGlvbnNJbmRleC5sZW5ndGgpIHsgLy8gcmVzZXQgdGhlIHNlbGVjdGlvblxuICAgICAgICAgICAgdGhpcy5pbmRleFNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZmluZCB0aGUgbmV4dCBvcHRpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgb3B0aW9uLCBvciB0aGUgZmlyc3Qgb3B0aW9uXG5cbiAgICAgICAgY29uc3QgdmFsaWRPcHRpb25JbmRleCA9IG1hdGNoZWRPcHRpb25zSW5kZXguZmluZCh0aGlzLmhpZ2hlc3RBbmRDbG9zZXN0SW5kZXgpO1xuXG4gICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IGlzTmFOKHZhbGlkT3B0aW9uSW5kZXgpID8gbWF0Y2hlZE9wdGlvbnNJbmRleFswXSA6IHZhbGlkT3B0aW9uSW5kZXg7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbkNoaWxkcmVuLmdldCh0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pLnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5kZXhPZk1hdGNoZWRPcHRpb24gPSAob3B0aW9uOiBPcHRpb25Db21wb25lbnQ8VE9wdGlvblZhbHVlPiwgaW5kZXg6IG51bWJlciwgbGV0dGVyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dE9wdGlvbiA9IG9wdGlvbi5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHRleHRPcHRpb24uc3RhcnRzV2l0aChsZXR0ZXIpID8gaW5kZXggOiBudWxsO1xuICAgICAgfVxuXG4gICAgcHJpdmF0ZSBpc05vdE51bGwgPSAoaW5kZXg6IG51bWJlciB8IG51bGwpID0+IHtcbiAgICAgICAgcmV0dXJuIGluZGV4ICE9PSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlnaGVzdEFuZENsb3Nlc3RJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpc05hTih0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPiB0aGlzLmluZGV4U2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW5pdGlhbFNlbGVjdGVkT3B0aW9uKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgLy8gISBBdm9pZCBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkLi4uXG4gICAgICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5maW5kSW5pdGlhbFNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25DaGlsZHJlbi5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5zZXREaXNhYmxlZFN0YXRlKHRydWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRJbml0aWFsU2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIGlmICghc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlU2VsZWN0ZWRPcHRpb25zRXZlbnQoKSB7XG4gICAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWRDaGFuZ2VMaXN0ZW5lcnMoKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlbGVjdFBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25Db250ZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5nZXRTZWxlY3RlZE9wdGlvbkNvbXBvbmVudCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uQ29udGVudCA9IHNlbGVjdGVkT3B0aW9uPy5nZXRDb250ZW50UmVmKCkubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgfHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRPcHRpb25Db21wb25lbnQoKTogT3B0aW9uQ29tcG9uZW50PFRPcHRpb25WYWx1ZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25DaGlsZHJlbi5maW5kKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3B0aW9uU2VsZWN0ZWRDaGFuZ2VMaXN0ZW5lcnMoKTogT2JzZXJ2YWJsZTxUT3B0aW9uVmFsdWU+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDaGFuZ2UkID0gIHRoaXMub3B0aW9uQ2hpbGRyZW4ubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24uc2VsZWN0ZWRDaGFuZ2UucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQgKSxcbiAgICAgICAgICAgICAgICBtYXAoKHNlbGVjdGVkOiBhbnkpID0+IG9wdGlvbi5nZXRWYWx1ZSgpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnNlbGVjdGVkQ2hhbmdlJCkucGlwZSh0YWtlVW50aWwodGhpcy5yZXNldExpc3RlbmVycyQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZVNlbGVjdGVkT3B0aW9uKCkge1xuICAgICAgICB0aGlzLm9wdGlvbkNoaWxkcmVuLmZvckVhY2goKG9wdGlvbkNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIG9wdGlvbkNvbXBvbmVudC5zZXRTZWxlY3RlZCh0aGlzLnZhbHVlID09IHVuZGVmaW5lZCA/IGZhbHNlIDogb3B0aW9uQ29tcG9uZW50LnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbkNvbXBvbmVudC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhTZWxlY3RlZE9wdGlvbiA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5yZXNldExpc3RlbmVycyQubmV4dCgpO1xuICAgICAgICB0aGlzLnJlc2V0TGlzdGVuZXJzJC5jb21wbGV0ZSgpO1xuICAgIH1cbn0iXX0=