@elderbyte/ngx-starter 16.4.7 → 16.5.0

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,5 +1,6 @@
1
1
  import { Directive, Optional } from '@angular/core';
2
2
  import { ParseUtil } from '../../../common/utils/parse-util';
3
+ import { LoggerFactory } from '@elderbyte/ts-logger';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/material/checkbox";
5
6
  import * as i2 from "@angular/forms";
@@ -18,6 +19,7 @@ export class ElderTripleStateCheckboxDirective {
18
19
  constructor(checkbox, ngModel) {
19
20
  this.checkbox = checkbox;
20
21
  this.ngModel = ngModel;
22
+ this.log = LoggerFactory.getLogger(this.constructor.name);
21
23
  }
22
24
  /***************************************************************************
23
25
  * *
@@ -34,14 +36,7 @@ export class ElderTripleStateCheckboxDirective {
34
36
  * *
35
37
  **************************************************************************/
36
38
  get state() {
37
- switch (ParseUtil.parseBoolean(this.getModelValOrFallback())) {
38
- case false:
39
- return ElderCheckboxState.UNCHECKED;
40
- case true:
41
- return ElderCheckboxState.CHECKED;
42
- case undefined:
43
- return ElderCheckboxState.INDETERMINATE;
44
- }
39
+ return this.controlValueToState(this.readControlValue());
45
40
  }
46
41
  set state(newState) {
47
42
  switch (newState) {
@@ -61,6 +56,16 @@ export class ElderTripleStateCheckboxDirective {
61
56
  * Private methods *
62
57
  * *
63
58
  **************************************************************************/
59
+ controlValueToState(value) {
60
+ switch (ParseUtil.parseBoolOrUndefined(value)) {
61
+ case false:
62
+ return ElderCheckboxState.UNCHECKED;
63
+ case true:
64
+ return ElderCheckboxState.CHECKED;
65
+ case undefined:
66
+ return ElderCheckboxState.INDETERMINATE;
67
+ }
68
+ }
64
69
  toggleNextState() {
65
70
  this.state = (this.state + 1) % 3;
66
71
  }
@@ -81,8 +86,8 @@ export class ElderTripleStateCheckboxDirective {
81
86
  this.checkbox.indeterminate = true;
82
87
  this.updateModelIfPresent(undefined);
83
88
  }
84
- getModelValOrFallback() {
85
- if (this.ngModel !== null) {
89
+ readControlValue() {
90
+ if (this.ngModel) {
86
91
  return this.ngModel.viewModel;
87
92
  }
88
93
  else {
@@ -91,7 +96,12 @@ export class ElderTripleStateCheckboxDirective {
91
96
  }
92
97
  updateModelIfPresent(val) {
93
98
  if (this.ngModel !== null) {
94
- this.ngModel.viewToModelUpdate(val);
99
+ this.ngModel.control.setValue(val, {
100
+ onlySelf: false,
101
+ emitEvent: true,
102
+ emitModelToViewChange: true,
103
+ emitViewToModelChange: true
104
+ });
95
105
  }
96
106
  }
97
107
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderTripleStateCheckboxDirective, deps: [{ token: i1.MatCheckbox }, { token: i2.NgModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -105,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
105
115
  }], ctorParameters: function () { return [{ type: i1.MatCheckbox }, { type: i2.NgModel, decorators: [{
106
116
  type: Optional
107
117
  }] }]; } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdHJpcGxlLXN0YXRlLWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGlyZWN0aXZlcy9lbGRlci10cmlwbGUtc3RhdGUtY2hlY2tib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUczRCxNQUFNLENBQU4sSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzVCLHFFQUFhLENBQUE7SUFDYixpRUFBVyxDQUFBO0lBQ1gsNkVBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFLRCxNQUFNLE9BQU8saUNBQWlDO0lBRTVDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLFFBQXFCLEVBQ1QsT0FBZ0I7UUFENUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNULFlBQU8sR0FBUCxPQUFPLENBQVM7SUFFdEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFZLEtBQUs7UUFDZixRQUFRLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsRUFBRTtZQUM1RCxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7WUFDdEMsS0FBSyxJQUFJO2dCQUNQLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDO1lBQ3BDLEtBQUssU0FBUztnQkFDWixPQUFPLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRCxJQUFZLEtBQUssQ0FBQyxRQUE0QjtRQUM1QyxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLGtCQUFrQixDQUFDLFNBQVM7Z0JBQy9CLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUM1QixNQUFNO1lBRVIsS0FBSyxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM3QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUIsTUFBTTtZQUVSLEtBQUssa0JBQWtCLENBQUMsYUFBYTtnQkFDbkMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2hDLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZUFBZTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxHQUFRO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7K0dBcEdVLGlDQUFpQzttR0FBakMsaUNBQWlDOzs0RkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3Q0FBd0M7aUJBQ25EOzswQkFXSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRDaGVja2JveH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHtOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1BhcnNlVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3BhcnNlLXV0aWwnO1xuXG5cbmV4cG9ydCBlbnVtIEVsZGVyQ2hlY2tib3hTdGF0ZSB7XG4gIFVOQ0hFQ0tFRCA9IDAsXG4gIENIRUNLRUQgPSAxLFxuICBJTkRFVEVSTUlOQVRFID0gMlxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdtYXQtY2hlY2tib3hbZWxkZXJUcmlwbGVTdGF0ZUNoZWNrYm94XSdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUcmlwbGVTdGF0ZUNoZWNrYm94RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoZWNrYm94OiBNYXRDaGVja2JveCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG5nTW9kZWw6IE5nTW9kZWxcbiAgKSB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5jaGVja2JveC5yZWdpc3Rlck9uQ2hhbmdlKCgpID0+IHRoaXMudG9nZ2xlTmV4dFN0YXRlKCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGUoKTogRWxkZXJDaGVja2JveFN0YXRlIHtcbiAgICBzd2l0Y2ggKFBhcnNlVXRpbC5wYXJzZUJvb2xlYW4odGhpcy5nZXRNb2RlbFZhbE9yRmFsbGJhY2soKSkpIHtcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiBFbGRlckNoZWNrYm94U3RhdGUuVU5DSEVDS0VEO1xuICAgICAgY2FzZSB0cnVlOlxuICAgICAgICByZXR1cm4gRWxkZXJDaGVja2JveFN0YXRlLkNIRUNLRUQ7XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgcmV0dXJuIEVsZGVyQ2hlY2tib3hTdGF0ZS5JTkRFVEVSTUlOQVRFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0IHN0YXRlKG5ld1N0YXRlOiBFbGRlckNoZWNrYm94U3RhdGUpIHtcbiAgICBzd2l0Y2ggKG5ld1N0YXRlKSB7XG4gICAgICBjYXNlIEVsZGVyQ2hlY2tib3hTdGF0ZS5VTkNIRUNLRUQ6XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tib3hVbmNoZWNrZWQoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRWxkZXJDaGVja2JveFN0YXRlLkNIRUNLRUQ6XG4gICAgICAgIHRoaXMuc2V0Q2hlY2tib3hDaGVja2VkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEVsZGVyQ2hlY2tib3hTdGF0ZS5JTkRFVEVSTUlOQVRFOlxuICAgICAgICB0aGlzLnNldENoZWNrYm94SW5kZXRlcm1pbmF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHRvZ2dsZU5leHRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gKHRoaXMuc3RhdGUgKyAxKSAlIDM7XG4gIH1cblxuICBwcml2YXRlIHNldENoZWNrYm94VW5jaGVja2VkKCkge1xuICAgIHRoaXMuY2hlY2tib3gudmFsdWUgPSAnZmFsc2UnO1xuICAgIHRoaXMuY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgIHRoaXMudXBkYXRlTW9kZWxJZlByZXNlbnQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGVja2JveENoZWNrZWQoKSB7XG4gICAgdGhpcy5jaGVja2JveC52YWx1ZSA9ICd0cnVlJztcbiAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgIHRoaXMudXBkYXRlTW9kZWxJZlByZXNlbnQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldENoZWNrYm94SW5kZXRlcm1pbmF0ZSgpIHtcbiAgICB0aGlzLmNoZWNrYm94LnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVNb2RlbElmUHJlc2VudCh1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2RlbFZhbE9yRmFsbGJhY2soKTogYW55IHtcbiAgICBpZiAodGhpcy5uZ01vZGVsICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5uZ01vZGVsLnZpZXdNb2RlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tib3gudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNb2RlbElmUHJlc2VudCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLm5nTW9kZWwgIT09IG51bGwpIHtcbiAgICAgIHRoaXMubmdNb2RlbC52aWV3VG9Nb2RlbFVwZGF0ZSh2YWwpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdHJpcGxlLXN0YXRlLWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZGlyZWN0aXZlcy9lbGRlci10cmlwbGUtc3RhdGUtY2hlY2tib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFHbkQsTUFBTSxDQUFOLElBQVksa0JBSVg7QUFKRCxXQUFZLGtCQUFrQjtJQUM1QixxRUFBYSxDQUFBO0lBQ2IsaUVBQVcsQ0FBQTtJQUNYLDZFQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSTdCO0FBS0QsTUFBTSxPQUFPLGlDQUFpQztJQUk1Qzs7OztnRkFJNEU7SUFFNUUsWUFDVSxRQUFxQixFQUNULE9BQWdCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDVCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBVnJCLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFZdEUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O2dGQUk0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WyJpbXBvcnQge0RpcmVjdGl2ZSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdENoZWNrYm94fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQge05nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UGFyc2VVdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvcGFyc2UtdXRpbCc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuXG5leHBvcnQgZW51bSBFbGRlckNoZWNrYm94U3RhdGUge1xuICBVTkNIRUNLRUQgPSAwLFxuICBDSEVDS0VEID0gMSxcbiAgSU5ERVRFUk1JTkFURSA9IDJcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbWF0LWNoZWNrYm94W2VsZGVyVHJpcGxlU3RhdGVDaGVja2JveF0nXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVHJpcGxlU3RhdGVDaGVja2JveERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hlY2tib3g6IE1hdENoZWNrYm94LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbFxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLmNoZWNrYm94LnJlZ2lzdGVyT25DaGFuZ2UoKCkgPT4gdGhpcy50b2dnbGVOZXh0U3RhdGUoKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGdldCBzdGF0ZSgpOiBFbGRlckNoZWNrYm94U3RhdGUge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xWYWx1ZVRvU3RhdGUoXG4gICAgICB0aGlzLnJlYWRDb250cm9sVmFsdWUoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldCBzdGF0ZShuZXdTdGF0ZTogRWxkZXJDaGVja2JveFN0YXRlKSB7XG4gICAgc3dpdGNoIChuZXdTdGF0ZSkge1xuICAgICAgY2FzZSBFbGRlckNoZWNrYm94U3RhdGUuVU5DSEVDS0VEOlxuICAgICAgICB0aGlzLnNldENoZWNrYm94VW5jaGVja2VkKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEVsZGVyQ2hlY2tib3hTdGF0ZS5DSEVDS0VEOlxuICAgICAgICB0aGlzLnNldENoZWNrYm94Q2hlY2tlZCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBFbGRlckNoZWNrYm94U3RhdGUuSU5ERVRFUk1JTkFURTpcbiAgICAgICAgdGhpcy5zZXRDaGVja2JveEluZGV0ZXJtaW5hdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb250cm9sVmFsdWVUb1N0YXRlKHZhbHVlOiBhbnkpOiBFbGRlckNoZWNrYm94U3RhdGUge1xuICAgIHN3aXRjaCAoUGFyc2VVdGlsLnBhcnNlQm9vbE9yVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgICAgY2FzZSBmYWxzZTpcbiAgICAgICAgcmV0dXJuIEVsZGVyQ2hlY2tib3hTdGF0ZS5VTkNIRUNLRUQ7XG4gICAgICBjYXNlIHRydWU6XG4gICAgICAgIHJldHVybiBFbGRlckNoZWNrYm94U3RhdGUuQ0hFQ0tFRDtcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gRWxkZXJDaGVja2JveFN0YXRlLklOREVURVJNSU5BVEU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVOZXh0U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICh0aGlzLnN0YXRlICsgMSkgJSAzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGVja2JveFVuY2hlY2tlZCgpIHtcbiAgICB0aGlzLmNoZWNrYm94LnZhbHVlID0gJ2ZhbHNlJztcbiAgICB0aGlzLmNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsSWZQcmVzZW50KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hlY2tib3hDaGVja2VkKCkge1xuICAgIHRoaXMuY2hlY2tib3gudmFsdWUgPSAndHJ1ZSc7XG4gICAgdGhpcy5jaGVja2JveC5jaGVja2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsSWZQcmVzZW50KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGVja2JveEluZGV0ZXJtaW5hdGUoKSB7XG4gICAgdGhpcy5jaGVja2JveC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlTW9kZWxJZlByZXNlbnQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZENvbnRyb2xWYWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLm5nTW9kZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5nTW9kZWwudmlld01vZGVsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja2JveC52YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsSWZQcmVzZW50KHZhbDogYW55KSB7XG4gICAgaWYgKHRoaXMubmdNb2RlbCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5uZ01vZGVsLmNvbnRyb2wuc2V0VmFsdWUodmFsLCB7XG4gICAgICAgIG9ubHlTZWxmOiBmYWxzZSxcbiAgICAgICAgZW1pdEV2ZW50OiB0cnVlLFxuICAgICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IHRydWUsXG4gICAgICAgIGVtaXRWaWV3VG9Nb2RlbENoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==