@arsedizioni/ars-utils 18.2.9 → 18.2.10

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.
@@ -20,8 +20,9 @@ export class SelectableModel {
20
20
  */
21
21
  updateCurrent(item, lookupValue) {
22
22
  const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
23
- if (p != -1)
23
+ if (p != -1) {
24
24
  this._current.toggle(item);
25
+ }
25
26
  }
26
27
  /**
27
28
  * Select an item
@@ -29,12 +30,16 @@ export class SelectableModel {
29
30
  * @param lookupValue : the value
30
31
  */
31
32
  toggle(item, lookupValue) {
32
- const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
33
- if (p == -1)
34
- this._all.push(item);
35
- else
36
- this._all.splice(p, 1);
37
- this._current.toggle(item);
33
+ if (lookupValue) {
34
+ const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
35
+ if (p == -1) {
36
+ this._all.push(item);
37
+ }
38
+ else {
39
+ this._all.splice(p, 1);
40
+ }
41
+ this._current.toggle(item);
42
+ }
38
43
  }
39
44
  /**
40
45
  * Select an item
@@ -42,10 +47,15 @@ export class SelectableModel {
42
47
  * @param lookupValue : the value
43
48
  */
44
49
  select(item, lookupValue) {
45
- const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
46
- if (p == -1)
47
- this._all.push(item);
48
- this._current.select(item);
50
+ if (lookupValue) {
51
+ const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
52
+ if (p == -1) {
53
+ this._all.push(item);
54
+ }
55
+ else {
56
+ this._current.select(item);
57
+ }
58
+ }
49
59
  }
50
60
  /**
51
61
  * Deselect an item
@@ -53,10 +63,12 @@ export class SelectableModel {
53
63
  * @param lookupValue : the value
54
64
  */
55
65
  deselect(item, lookupValue) {
56
- const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
57
- if (p != -1) {
58
- this._all.splice(p, 1);
59
- this._current.deselect(item);
66
+ if (lookupValue) {
67
+ const p = SystemUtils.arrayFindIndexByKey(this._all, this._lookupFieldName, lookupValue);
68
+ if (p != -1) {
69
+ this._all.splice(p, 1);
70
+ this._current.deselect(item);
71
+ }
60
72
  }
61
73
  }
62
74
  /**
@@ -109,4 +121,4 @@ export class SelectableModel {
109
121
  return this._all.length > 0;
110
122
  }
111
123
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3NlbGVjdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxPQUFPLGVBQWU7SUFFMUIsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUdELFlBQ0UsbUJBQTRCLElBQUksRUFDaEMsa0JBQTBCLElBQUk7UUFaeEIsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQWNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFJLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFPLEVBQUUsV0FBYztRQUNuQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQ3ZDLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQU8sRUFBRSxXQUFjO1FBQzVCLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsQ0FDdkMsSUFB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QkFBZ0IsRUFDckIsV0FBVyxDQUNaLElBQUksQ0FBQyxDQUFDLENBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XHJcbmltcG9ydCB7IFN5c3RlbVV0aWxzIH0gZnJvbSBcIi4vc3lzdGVtXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZU1vZGVsPFQsVj4ge1xyXG4gIHByaXZhdGUgX2FsbDogVFtdID0gW107XHJcbiAgZ2V0IGFsbCgpOiBUW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3VycmVudDogU2VsZWN0aW9uTW9kZWw8VD47XHJcbiAgZ2V0IGN1cnJlbnQoKTogU2VsZWN0aW9uTW9kZWw8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xvb2t1cEZpZWxkTmFtZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGFsbG93TXVsdGlTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgbG9va3VwRmllbGROYW1lOiBzdHJpbmcgPSBcImlkXCJcclxuICApIHtcclxuICAgIHRoaXMuX2N1cnJlbnQgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VD4oYWxsb3dNdWx0aVNlbGVjdCwgW10pO1xyXG4gICAgdGhpcy5fYWxsID0gW107XHJcbiAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUgPSBsb29rdXBGaWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIHZpZXcgb2YgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICB1cGRhdGVDdXJyZW50KGl0ZW06IFQsIGxvb2t1cFZhbHVlOiBWKSB7XHJcbiAgICBjb25zdCBwID0gU3lzdGVtVXRpbHMuYXJyYXlGaW5kSW5kZXhCeUtleShcclxuICAgICAgdGhpcy5fYWxsLFxyXG4gICAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUsXHJcbiAgICAgIGxvb2t1cFZhbHVlXHJcbiAgICApO1xyXG4gICAgaWYgKHAgIT0gLTEpIHRoaXMuX2N1cnJlbnQudG9nZ2xlKGl0ZW0pOyAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3QgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICB0b2dnbGUoaXRlbTogVCwgbG9va3VwVmFsdWU6IFYpIHtcclxuICAgIGNvbnN0IHAgPSBTeXN0ZW1VdGlscy5hcnJheUZpbmRJbmRleEJ5S2V5KFxyXG4gICAgICB0aGlzLl9hbGwsXHJcbiAgICAgIHRoaXMuX2xvb2t1cEZpZWxkTmFtZSxcclxuICAgICAgbG9va3VwVmFsdWVcclxuICAgICk7XHJcbiAgICBpZiAocCA9PSAtMSkgdGhpcy5fYWxsLnB1c2goaXRlbSk7XHJcbiAgICBlbHNlIHRoaXMuX2FsbC5zcGxpY2UocCwgMSk7XHJcbiAgICB0aGlzLl9jdXJyZW50LnRvZ2dsZShpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCBhbiBpdGVtXHJcbiAgICogQHBhcmFtIGl0ZW0gICAgICAgICAgOiB0aGUgaXRlbSB0byB1cGRhdGVcclxuICAgKiBAcGFyYW0gbG9va3VwVmFsdWUgICA6IHRoZSB2YWx1ZVxyXG4gICAqL1xyXG4gIHNlbGVjdChpdGVtOiBULCBsb29rdXBWYWx1ZTogVikge1xyXG4gICAgY29uc3QgcCA9IFN5c3RlbVV0aWxzLmFycmF5RmluZEluZGV4QnlLZXkoXHJcbiAgICAgIHRoaXMuX2FsbCxcclxuICAgICAgdGhpcy5fbG9va3VwRmllbGROYW1lLFxyXG4gICAgICBsb29rdXBWYWx1ZVxyXG4gICAgKTtcclxuICAgIGlmIChwID09IC0xKSB0aGlzLl9hbGwucHVzaChpdGVtKTtcclxuICAgIHRoaXMuX2N1cnJlbnQuc2VsZWN0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzZWxlY3QgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICBkZXNlbGVjdChpdGVtOiBULCBsb29rdXBWYWx1ZTogVikge1xyXG4gICAgY29uc3QgcCA9IFN5c3RlbVV0aWxzLmFycmF5RmluZEluZGV4QnlLZXkoXHJcbiAgICAgIHRoaXMuX2FsbCxcclxuICAgICAgdGhpcy5fbG9va3VwRmllbGROYW1lLFxyXG4gICAgICBsb29rdXBWYWx1ZVxyXG4gICAgKTtcclxuICAgIGlmIChwICE9IC0xKSB7XHJcbiAgICAgIHRoaXMuX2FsbC5zcGxpY2UocCwgMSk7XHJcbiAgICAgIHRoaXMuX2N1cnJlbnQuZGVzZWxlY3QoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXNlbGVjdCBhbGwgc3BlY2lmaWVkIGl0ZW0gbG9va3VwIHZhbHVlc1xyXG4gICAqIEBwYXJhbSBsb29rdXBWYWx1ZXMgOiB0aGUgdmFsdWVzXHJcbiAgICovXHJcbiAgZGVzZWxlY3RCeVZhbHVlcyhsb29rdXBWYWx1ZXM6IFZbXSkge1xyXG4gICAgaWYgKCFsb29rdXBWYWx1ZXMgfHwgbG9va3VwVmFsdWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgbG9va3VwVmFsdWVzLmZvckVhY2goKG46IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBwID0gU3lzdGVtVXRpbHMuYXJyYXlGaW5kSW5kZXhCeUtleShcclxuICAgICAgICB0aGlzLl9hbGwsXHJcbiAgICAgICAgdGhpcy5fbG9va3VwRmllbGROYW1lLFxyXG4gICAgICAgIG4uaWQgfHwgblxyXG4gICAgICApO1xyXG4gICAgICBpZiAocCAhPSAtMSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5fYWxsW3BdO1xyXG4gICAgICAgIHRoaXMuX2FsbC5zcGxpY2UocCwgMSk7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudC5kZXNlbGVjdChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBjdXJyZW50IHZpZXdcclxuICAgKiBAcGFyYW0gY2xlYXJGdW5jIDogdGhlIGZ1bmN0aW9uIHVzZWQgdG8gY2xlYXJcclxuICAgKi9cclxuICBjbGVhckN1cnJlbnQoY2xlYXJGdW5jOiBhbnkpIHtcclxuICAgIHRoaXMuX2N1cnJlbnQuc2VsZWN0ZWQuZm9yRWFjaCgobikgPT4ge1xyXG4gICAgICBjbGVhckZ1bmMobik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2N1cnJlbnQuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2VsZWN0IGFsbCBpdGVtc1xyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5fYWxsID0gW107XHJcbiAgICB0aGlzLl9jdXJyZW50LmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgaWYgYW4gaXRlbSBpcyBzZWxlY3RlZCB1c2luZyBpdHMgbG9va3VwIHZhbHVlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlIDogdGhlIHZhbHVlXHJcbiAgICogQHJldHVybnMgICAgICAgICAgIDogdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBpc1NlbGVjdGVkKGxvb2t1cFZhbHVlOiBWIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChsb29rdXBWYWx1ZSAmJlxyXG4gICAgICBTeXN0ZW1VdGlscy5hcnJheUZpbmRJbmRleEJ5S2V5KFxyXG4gICAgICAgIHRoaXMuX2FsbCxcclxuICAgICAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUsXHJcbiAgICAgICAgbG9va3VwVmFsdWVcclxuICAgICAgKSAhPSAtMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiBhIHNlbGVjdGlvbiBleGlzdHNcclxuICAgKiBAcmV0dXJucyA6IHRydWUgaWYgYXQgbGVhc3Qgb25lIHNlbGVjdGlvbiBleGlzdHNcclxuICAgKi9cclxuICBoYXNWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGwubGVuZ3RoID4gMDtcclxuICB9XHJcbn1cclxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy9jb3JlL3NlbGVjdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxPQUFPLGVBQWU7SUFFMUIsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUdELFlBQ0UsbUJBQTRCLElBQUksRUFDaEMsa0JBQTBCLElBQUk7UUFaeEIsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQWNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFJLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFPLEVBQUUsV0FBYztRQUNuQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQ3ZDLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsSUFBTyxFQUFFLFdBQWlDO1FBQy9DLElBQUksV0FBVyxFQUFFLENBQUM7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OztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxXQUFpQztRQUMxQyxPQUFPLENBQUMsV0FBVztZQUNqQixXQUFXLENBQUMsbUJBQW1CLENBQzdCLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixXQUFXLENBQ1osSUFBSSxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcclxuaW1wb3J0IHsgU3lzdGVtVXRpbHMgfSBmcm9tIFwiLi9zeXN0ZW1cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RhYmxlTW9kZWw8VCwgVj4ge1xyXG4gIHByaXZhdGUgX2FsbDogVFtdID0gW107XHJcbiAgZ2V0IGFsbCgpOiBUW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3VycmVudDogU2VsZWN0aW9uTW9kZWw8VD47XHJcbiAgZ2V0IGN1cnJlbnQoKTogU2VsZWN0aW9uTW9kZWw8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xvb2t1cEZpZWxkTmFtZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGFsbG93TXVsdGlTZWxlY3Q6IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgbG9va3VwRmllbGROYW1lOiBzdHJpbmcgPSBcImlkXCJcclxuICApIHtcclxuICAgIHRoaXMuX2N1cnJlbnQgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VD4oYWxsb3dNdWx0aVNlbGVjdCwgW10pO1xyXG4gICAgdGhpcy5fYWxsID0gW107XHJcbiAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUgPSBsb29rdXBGaWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIHZpZXcgb2YgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICB1cGRhdGVDdXJyZW50KGl0ZW06IFQsIGxvb2t1cFZhbHVlOiBWKSB7XHJcbiAgICBjb25zdCBwID0gU3lzdGVtVXRpbHMuYXJyYXlGaW5kSW5kZXhCeUtleShcclxuICAgICAgdGhpcy5fYWxsLFxyXG4gICAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUsXHJcbiAgICAgIGxvb2t1cFZhbHVlXHJcbiAgICApO1xyXG4gICAgaWYgKHAgIT0gLTEpIHtcclxuICAgICAgdGhpcy5fY3VycmVudC50b2dnbGUoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3QgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICB0b2dnbGUoaXRlbTogVCwgbG9va3VwVmFsdWU6IFYgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAobG9va3VwVmFsdWUpIHtcclxuICAgICAgY29uc3QgcCA9IFN5c3RlbVV0aWxzLmFycmF5RmluZEluZGV4QnlLZXkoXHJcbiAgICAgICAgdGhpcy5fYWxsLFxyXG4gICAgICAgIHRoaXMuX2xvb2t1cEZpZWxkTmFtZSxcclxuICAgICAgICBsb29rdXBWYWx1ZVxyXG4gICAgICApO1xyXG4gICAgICBpZiAocCA9PSAtMSkge1xyXG4gICAgICAgIHRoaXMuX2FsbC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2FsbC5zcGxpY2UocCwgMSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fY3VycmVudC50b2dnbGUoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3QgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBpdGVtICAgICAgICAgIDogdGhlIGl0ZW0gdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlICAgOiB0aGUgdmFsdWVcclxuICAgKi9cclxuICBzZWxlY3QoaXRlbTogVCwgbG9va3VwVmFsdWU6IFYgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAobG9va3VwVmFsdWUpIHtcclxuICAgICAgY29uc3QgcCA9IFN5c3RlbVV0aWxzLmFycmF5RmluZEluZGV4QnlLZXkoXHJcbiAgICAgICAgdGhpcy5fYWxsLFxyXG4gICAgICAgIHRoaXMuX2xvb2t1cEZpZWxkTmFtZSxcclxuICAgICAgICBsb29rdXBWYWx1ZVxyXG4gICAgICApO1xyXG4gICAgICBpZiAocCA9PSAtMSkge1xyXG4gICAgICAgIHRoaXMuX2FsbC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnQuc2VsZWN0KGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXNlbGVjdCBhbiBpdGVtXHJcbiAgICogQHBhcmFtIGl0ZW0gICAgICAgICAgOiB0aGUgaXRlbSB0byB1cGRhdGVcclxuICAgKiBAcGFyYW0gbG9va3VwVmFsdWUgICA6IHRoZSB2YWx1ZVxyXG4gICAqL1xyXG4gIGRlc2VsZWN0KGl0ZW06IFQsIGxvb2t1cFZhbHVlOiBWIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKGxvb2t1cFZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHAgPSBTeXN0ZW1VdGlscy5hcnJheUZpbmRJbmRleEJ5S2V5KFxyXG4gICAgICAgIHRoaXMuX2FsbCxcclxuICAgICAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUsXHJcbiAgICAgICAgbG9va3VwVmFsdWVcclxuICAgICAgKTtcclxuICAgICAgaWYgKHAgIT0gLTEpIHtcclxuICAgICAgICB0aGlzLl9hbGwuc3BsaWNlKHAsIDEpO1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnQuZGVzZWxlY3QoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc2VsZWN0IGFsbCBzcGVjaWZpZWQgaXRlbSBsb29rdXAgdmFsdWVzXHJcbiAgICogQHBhcmFtIGxvb2t1cFZhbHVlcyA6IHRoZSB2YWx1ZXNcclxuICAgKi9cclxuICBkZXNlbGVjdEJ5VmFsdWVzKGxvb2t1cFZhbHVlczogVltdKSB7XHJcbiAgICBpZiAoIWxvb2t1cFZhbHVlcyB8fCBsb29rdXBWYWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm47XHJcbiAgICBsb29rdXBWYWx1ZXMuZm9yRWFjaCgobjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHAgPSBTeXN0ZW1VdGlscy5hcnJheUZpbmRJbmRleEJ5S2V5KFxyXG4gICAgICAgIHRoaXMuX2FsbCxcclxuICAgICAgICB0aGlzLl9sb29rdXBGaWVsZE5hbWUsXHJcbiAgICAgICAgbi5pZCB8fCBuXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChwICE9IC0xKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLl9hbGxbcF07XHJcbiAgICAgICAgdGhpcy5fYWxsLnNwbGljZShwLCAxKTtcclxuICAgICAgICB0aGlzLl9jdXJyZW50LmRlc2VsZWN0KGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGN1cnJlbnQgdmlld1xyXG4gICAqIEBwYXJhbSBjbGVhckZ1bmMgOiB0aGUgZnVuY3Rpb24gdXNlZCB0byBjbGVhclxyXG4gICAqL1xyXG4gIGNsZWFyQ3VycmVudChjbGVhckZ1bmM6IGFueSkge1xyXG4gICAgdGhpcy5fY3VycmVudC5zZWxlY3RlZC5mb3JFYWNoKChuKSA9PiB7XHJcbiAgICAgIGNsZWFyRnVuYyhuKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY3VycmVudC5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9hbGwgPSBbXTtcclxuICAgIHRoaXMuX2N1cnJlbnQuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiBhbiBpdGVtIGlzIHNlbGVjdGVkIHVzaW5nIGl0cyBsb29rdXAgdmFsdWVcclxuICAgKiBAcGFyYW0gbG9va3VwVmFsdWUgOiB0aGUgdmFsdWVcclxuICAgKiBAcmV0dXJucyAgICAgICAgICAgOiB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIGlzU2VsZWN0ZWQobG9va3VwVmFsdWU6IFYgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKGxvb2t1cFZhbHVlICYmXHJcbiAgICAgIFN5c3RlbVV0aWxzLmFycmF5RmluZEluZGV4QnlLZXkoXHJcbiAgICAgICAgdGhpcy5fYWxsLFxyXG4gICAgICAgIHRoaXMuX2xvb2t1cEZpZWxkTmFtZSxcclxuICAgICAgICBsb29rdXBWYWx1ZVxyXG4gICAgICApICE9IC0xXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIGEgc2VsZWN0aW9uIGV4aXN0c1xyXG4gICAqIEByZXR1cm5zIDogdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgc2VsZWN0aW9uIGV4aXN0c1xyXG4gICAqL1xyXG4gIGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbC5sZW5ndGggPiAwO1xyXG4gIH1cclxufVxyXG4iXX0=