taxtank-core 0.16.10 → 0.16.13

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.
@@ -59,6 +59,21 @@ export class CollectionDictionary {
59
59
  length() {
60
60
  return this.keys.length;
61
61
  }
62
+ /**
63
+ * @Todo find a better solution to get list of the sorted keys
64
+ * Get array of the "keys" by provided order
65
+ */
66
+ getSortedKeys(isDesc = false) {
67
+ return this.keys.sort((a, b) => {
68
+ if (a > b) {
69
+ return !isDesc ? 1 : -1;
70
+ }
71
+ if (a < b) {
72
+ return !isDesc ? -1 : 1;
73
+ }
74
+ return 0;
75
+ });
76
+ }
62
77
  /**
63
78
  * Group collection items by passed path into items object
64
79
  */
@@ -83,4 +98,4 @@ export class CollectionDictionary {
83
98
  });
84
99
  }
85
100
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBR2pDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQW9CLEVBQUUsS0FBaUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVUsQ0FBQyxVQUFzQixFQUFFLElBQVk7UUFDckQseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFxQyxFQUFFLENBQUM7UUFFakQseUJBQXlCO1FBQ3pCLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFRLEVBQUU7WUFDOUMsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVsQyw4RUFBOEU7WUFDOUUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO2dCQUNyQixHQUFHLEdBQUcsT0FBTyxDQUFDO2FBQ2Y7WUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDZjtZQUVELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQ0FBaUM7UUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgaGFzSW4gZnJvbSAnbG9kYXNoL2hhc0luJztcbmltcG9ydCB7IENvbGxlY3Rpb24gYXMgQmFzZUNvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIExpc3Qgb2YgY29sbGVjdGlvbnMgZ3JvdXBlZCBieSBwYXNzZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25EaWN0aW9uYXJ5PENvbGxlY3Rpb24gZXh0ZW5kcyBCYXNlQ29sbGVjdGlvbjxvYmplY3Q+PiB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGdyb3VwZWQgY29sbGVjdGlvbnNcbiAgICovXG4gIGl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IENvbGxlY3Rpb24gfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBwYXNzZWQgY29sbGVjdGlvbiBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0aW9uQ29uc3RydWN0b3I6IG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBUaGUgQ29sbGVjdGlvbiBpbnN0YW5jZSB0byBiZSBncm91cGVkXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIHByb3BlcnR5IHRvIGJlIGdyb3VwZWQgKEV4YW1wbGVzOiAndHJhbnNhY3Rpb24nLCAncHJvcGVydHkuY2F0ZWdvcnknKVxuICAgKiBAcGFyYW0gcHJvcCBPcHRpb25hbDogRmllbGQgdG8gZ3JvdXAgYnkgKERlZmF1bHQgJ2lkJywgRXhhbXBsZXM6ICdpZCcsICdhbW91bnQnLCAnZGF0ZScpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLFxuICAgIHBhdGg6IHN0cmluZyA9ICdpZCdcbiAgKSB7XG4gICAgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IgPSBjb2xsZWN0aW9uLmNvbnN0cnVjdG9yIGFzIG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gICAgLy8gTm90aGluZyB0byBncm91cCB3aGVuIGNvbGxlY3Rpb24gaXMgZW1wdHlcbiAgICBpZiAoIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRG8gbm90aGluZyBpZiBwcm92aWRlZCBwYXRoIHdhcyBub3QgZm91bmQgaW4gdGhlIDFzdCBjb2xsZWN0aW9uJ3MgaXRlbVxuICAgIGlmICghaGFzSW4oY29sbGVjdGlvbi5pdGVtc1swXSwgcGF0aC5zcGxpdCgnLicpWzBdKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBJdGVtcyhjb2xsZWN0aW9uLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbGxlY3Rpb25zIGtleXNcbiAgICovXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gYnkga2V5IG9yIHJldHVybiBlbXB0eSBjb2xsZWN0aW9uIGlmIGtleSBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgZ2V0KGtleTogc3RyaW5nIHwgbnVtYmVyKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNba2V5XSA/IHRoaXMuaXRlbXNba2V5XSA6IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihbXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBpdGVtIGJ5IGtleVxuICAgKi9cbiAgYWRkKGtleTogc3RyaW5nIHwgbnVtYmVyLCB2YWx1ZTogQ29sbGVjdGlvbikge1xuICAgIHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvaW4gc2V2ZXJhbCBjb2xsZWN0aW9ucyBieSBpZHNcbiAgICovXG4gIG1lcmdlKGtleXM6IG51bWJlcltdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgIGZsYXR0ZW4oXG4gICAgICAgIGtleXMubWFwKChpZDogbnVtYmVyKTogb2JqZWN0W10gPT4gdGhpcy5nZXQoaWQudG9TdHJpbmcoKSkuaXRlbXMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5zdGFuY2Ugb2YgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvbihpdGVtczogb2JqZWN0W10gPSBbXSk6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IoaXRlbXMpO1xuICB9XG5cbiAgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogR3JvdXAgY29sbGVjdGlvbiBpdGVtcyBieSBwYXNzZWQgcGF0aCBpbnRvIGl0ZW1zIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBncm91cEl0ZW1zKGNvbGxlY3Rpb246IENvbGxlY3Rpb24sIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXG4gICAgY29uc3Qgb2JqOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PG9iamVjdD4gfSA9IHt9O1xuXG4gICAgLy8gR3JvdXAgY29sbGVjdGlvbiBpdGVtc1xuICAgIGNvbGxlY3Rpb24uaXRlbXMuZm9yRWFjaCgoaXRlbTogb2JqZWN0KTogdm9pZCA9PiB7XG4gICAgICBsZXQga2V5OiBzdHJpbmcgPSBnZXQoaXRlbSwgcGF0aCk7XG5cbiAgICAgIC8vIGlmIG9iamVjdCBkb2VzIG5vdCBoYXZlIHByb3BlcnR5IGZvciBncm91cGluZyBpdCB3aWxsIGJlIGdyb3VwZWQgYXMgJ290aGVyJ1xuICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGtleSA9ICdvdGhlcic7XG4gICAgICB9XG5cbiAgICAgIGlmICghb2JqW2tleV0pIHtcbiAgICAgICAgb2JqW2tleV0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgb2JqW2tleV0ucHVzaChpdGVtKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBjb2xsZWN0aW9ucyBmcm9tIGdyb3Vwc1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuaXRlbXNba2V5XSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihvYmpba2V5XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBR2pDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQW9CLEVBQUUsS0FBaUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBa0IsS0FBSztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBVSxFQUFFO1lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQUU7WUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFBRTtZQUN2QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLFVBQXNCLEVBQUUsSUFBWTtRQUNyRCx5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQXFDLEVBQUUsQ0FBQztRQUVqRCx5QkFBeUI7UUFDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUM5QyxJQUFJLEdBQUcsR0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWxDLDhFQUE4RTtZQUM5RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDZjtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNmO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCBoYXNJbiBmcm9tICdsb2Rhc2gvaGFzSW4nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiBhcyBCYXNlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5cbi8qKlxuICogTGlzdCBvZiBjb2xsZWN0aW9ucyBncm91cGVkIGJ5IHBhc3NlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkRpY3Rpb25hcnk8Q29sbGVjdGlvbiBleHRlbmRzIEJhc2VDb2xsZWN0aW9uPG9iamVjdD4+IHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgZ3JvdXBlZCBjb2xsZWN0aW9uc1xuICAgKi9cbiAgaXRlbXM6IHsgW2tleTogc3RyaW5nXTogQ29sbGVjdGlvbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIG9mIHBhc3NlZCBjb2xsZWN0aW9uIGZvciBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4gICAqL1xuICBwcml2YXRlIGNvbGxlY3Rpb25Db25zdHJ1Y3RvcjogbmV3IChpdGVtczogb2JqZWN0W10pID0+IENvbGxlY3Rpb247XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIFRoZSBDb2xsZWN0aW9uIGluc3RhbmNlIHRvIGJlIGdyb3VwZWRcbiAgICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgcHJvcGVydHkgdG8gYmUgZ3JvdXBlZCAoRXhhbXBsZXM6ICd0cmFuc2FjdGlvbicsICdwcm9wZXJ0eS5jYXRlZ29yeScpXG4gICAqIEBwYXJhbSBwcm9wIE9wdGlvbmFsOiBGaWVsZCB0byBncm91cCBieSAoRGVmYXVsdCAnaWQnLCBFeGFtcGxlczogJ2lkJywgJ2Ftb3VudCcsICdkYXRlJylcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb24sXG4gICAgcGF0aDogc3RyaW5nID0gJ2lkJ1xuICApIHtcbiAgICB0aGlzLmNvbGxlY3Rpb25Db25zdHJ1Y3RvciA9IGNvbGxlY3Rpb24uY29uc3RydWN0b3IgYXMgbmV3IChpdGVtczogb2JqZWN0W10pID0+IENvbGxlY3Rpb247XG5cbiAgICAvLyBOb3RoaW5nIHRvIGdyb3VwIHdoZW4gY29sbGVjdGlvbiBpcyBlbXB0eVxuICAgIGlmICghY29sbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEbyBub3RoaW5nIGlmIHByb3ZpZGVkIHBhdGggd2FzIG5vdCBmb3VuZCBpbiB0aGUgMXN0IGNvbGxlY3Rpb24ncyBpdGVtXG4gICAgaWYgKCFoYXNJbihjb2xsZWN0aW9uLml0ZW1zWzBdLCBwYXRoLnNwbGl0KCcuJylbMF0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cEl0ZW1zKGNvbGxlY3Rpb24sIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY29sbGVjdGlvbnMga2V5c1xuICAgKi9cbiAgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLml0ZW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBieSBrZXkgb3IgcmV0dXJuIGVtcHR5IGNvbGxlY3Rpb24gaWYga2V5IGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBnZXQoa2V5OiBzdHJpbmcgfCBudW1iZXIpOiBDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1trZXldID8gdGhpcy5pdGVtc1trZXldIDogdGhpcy5jcmVhdGVDb2xsZWN0aW9uKFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IGl0ZW0gYnkga2V5XG4gICAqL1xuICBhZGQoa2V5OiBzdHJpbmcgfCBudW1iZXIsIHZhbHVlOiBDb2xsZWN0aW9uKSB7XG4gICAgdGhpcy5pdGVtc1trZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSm9pbiBzZXZlcmFsIGNvbGxlY3Rpb25zIGJ5IGlkc1xuICAgKi9cbiAgbWVyZ2Uoa2V5czogbnVtYmVyW10pOiBDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2xsZWN0aW9uKFxuICAgICAgZmxhdHRlbihcbiAgICAgICAga2V5cy5tYXAoKGlkOiBudW1iZXIpOiBvYmplY3RbXSA9PiB0aGlzLmdldChpZC50b1N0cmluZygpKS5pdGVtcylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBpbnN0YW5jZSBvZiBjb2xsZWN0aW9uXG4gICAqL1xuICBjcmVhdGVDb2xsZWN0aW9uKGl0ZW1zOiBvYmplY3RbXSA9IFtdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyB0aGlzLmNvbGxlY3Rpb25Db25zdHJ1Y3RvcihpdGVtcyk7XG4gIH1cblxuICBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVG9kbyBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uIHRvIGdldCBsaXN0IG9mIHRoZSBzb3J0ZWQga2V5c1xuICAgKiBHZXQgYXJyYXkgb2YgdGhlIFwia2V5c1wiIGJ5IHByb3ZpZGVkIG9yZGVyXG4gICAqL1xuICBnZXRTb3J0ZWRLZXlzKGlzRGVzYzogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmtleXMuc29ydCgoYTogYW55LCBiOiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgaWYgKGEgPiBiKSB7IHJldHVybiAhaXNEZXNjID8gMSA6IC0xOyB9XG4gICAgICBpZiAoYSA8IGIpIHsgcmV0dXJuICFpc0Rlc2MgPyAtMSA6IDE7IH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIGNvbGxlY3Rpb24gaXRlbXMgYnkgcGFzc2VkIHBhdGggaW50byBpdGVtcyBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JvdXBJdGVtcyhjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgZW1wdHkgaW5pdGlhbCBvYmplY3QgZm9yIGdyb3Vwc1xuICAgIGNvbnN0IG9iajogeyBba2V5OiBzdHJpbmddOiBBcnJheTxvYmplY3Q+IH0gPSB7fTtcblxuICAgIC8vIEdyb3VwIGNvbGxlY3Rpb24gaXRlbXNcbiAgICBjb2xsZWN0aW9uLml0ZW1zLmZvckVhY2goKGl0ZW06IG9iamVjdCk6IHZvaWQgPT4ge1xuICAgICAgbGV0IGtleTogc3RyaW5nID0gZ2V0KGl0ZW0sIHBhdGgpO1xuXG4gICAgICAvLyBpZiBvYmplY3QgZG9lcyBub3QgaGF2ZSBwcm9wZXJ0eSBmb3IgZ3JvdXBpbmcgaXQgd2lsbCBiZSBncm91cGVkIGFzICdvdGhlcidcbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBrZXkgPSAnb3RoZXInO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9ialtrZXldKSB7XG4gICAgICAgIG9ialtrZXldID0gW107XG4gICAgICB9XG5cbiAgICAgIG9ialtrZXldLnB1c2goaXRlbSk7XG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgY29sbGVjdGlvbnMgZnJvbSBncm91cHNcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goKGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLml0ZW1zW2tleV0gPSB0aGlzLmNyZWF0ZUNvbGxlY3Rpb24ob2JqW2tleV0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -21,6 +21,9 @@ export class IncomeSourceCollection extends Collection {
21
21
  filterByTypes(types) {
22
22
  return this.items.filter((incomeSource) => types.includes(incomeSource.type));
23
23
  }
24
+ getSalary() {
25
+ return this.items.filter((incomeSource) => incomeSource.isSalaryIncome());
26
+ }
24
27
  /**
25
28
  * Get income sources list of forecasts
26
29
  */
@@ -28,4 +31,4 @@ export class IncomeSourceCollection extends Collection {
28
31
  return this.items.map((incomeSource) => incomeSource.forecasts).flat();
29
32
  }
30
33
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2luY29tZS1zb3VyY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUNsRSxZQUFZLENBQUMsSUFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUN0RCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLFlBQVksQ0FBQyxLQUFLO29CQUNyQixPQUFPLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdEM7b0JBQ0UsT0FBTyxZQUFZLENBQUMsY0FBYyxFQUFFLElBQUksWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3ZFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEtBQTZCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IEluY29tZVNvdXJjZVR5cGVFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUluY29tZVNvdXJjZUZvcmVjYXN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmNvbWUtc291cmNlLWZvcmVjYXN0LmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBpbmNvbWUgc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248SW5jb21lU291cmNlPiB7XG4gIGZpbHRlckJ5VGFuayh0YW5rOiBUYW5rVHlwZUVudW0pOiBJbmNvbWVTb3VyY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4ge1xuICAgICAgc3dpdGNoICh0YW5rKSB7XG4gICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLk9USEVSOlxuICAgICAgICAgIHJldHVybiBpbmNvbWVTb3VyY2UuaXNPdGhlckluY29tZSgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSB8fCBpbmNvbWVTb3VyY2UuaXNXb3JrSW5jb21lKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGluY29tZSBzb3VyY2VzIGJ5IHByb3ZpZGVkIHR5b2VzXG4gICAqIEBwYXJhbSB0eXBlc1xuICAgKi9cbiAgZmlsdGVyQnlUeXBlcyh0eXBlczogSW5jb21lU291cmNlVHlwZUVudW1bXSk6IEluY29tZVNvdXJjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiB0eXBlcy5pbmNsdWRlcyhpbmNvbWVTb3VyY2UudHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmNvbWUgc291cmNlcyBsaXN0IG9mIGZvcmVjYXN0c1xuICAgKi9cbiAgZ2V0IGZvcmVjYXN0cygpOiBJSW5jb21lU291cmNlRm9yZWNhc3RbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gaW5jb21lU291cmNlLmZvcmVjYXN0cykuZmxhdCgpO1xuICB9XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2luY29tZS1zb3VyY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUNsRSxZQUFZLENBQUMsSUFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUN0RCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLFlBQVksQ0FBQyxLQUFLO29CQUNyQixPQUFPLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdEM7b0JBQ0UsT0FBTyxZQUFZLENBQUMsY0FBYyxFQUFFLElBQUksWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3ZFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEtBQTZCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IEluY29tZVNvdXJjZVR5cGVFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgSUluY29tZVNvdXJjZUZvcmVjYXN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbmNvbWUtc291cmNlLWZvcmVjYXN0LmludGVyZmFjZSc7XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiBpbmNvbWUgc291cmNlc1xuICovXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248SW5jb21lU291cmNlPiB7XG4gIGZpbHRlckJ5VGFuayh0YW5rOiBUYW5rVHlwZUVudW0pOiBJbmNvbWVTb3VyY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4ge1xuICAgICAgc3dpdGNoICh0YW5rKSB7XG4gICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLk9USEVSOlxuICAgICAgICAgIHJldHVybiBpbmNvbWVTb3VyY2UuaXNPdGhlckluY29tZSgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSB8fCBpbmNvbWVTb3VyY2UuaXNXb3JrSW5jb21lKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGluY29tZSBzb3VyY2VzIGJ5IHByb3ZpZGVkIHR5b2VzXG4gICAqIEBwYXJhbSB0eXBlc1xuICAgKi9cbiAgZmlsdGVyQnlUeXBlcyh0eXBlczogSW5jb21lU291cmNlVHlwZUVudW1bXSk6IEluY29tZVNvdXJjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiB0eXBlcy5pbmNsdWRlcyhpbmNvbWVTb3VyY2UudHlwZSkpO1xuICB9XG5cbiAgZ2V0U2FsYXJ5KCk6IEluY29tZVNvdXJjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiBpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluY29tZSBzb3VyY2VzIGxpc3Qgb2YgZm9yZWNhc3RzXG4gICAqL1xuICBnZXQgZm9yZWNhc3RzKCk6IElJbmNvbWVTb3VyY2VGb3JlY2FzdFtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiBpbmNvbWVTb3VyY2UuZm9yZWNhc3RzKS5mbGF0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -5,4 +5,4 @@ export var IncomeSourceTypeListOtherEnum;
5
5
  IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["PARTNERSHIPS_AND_TRUSTS"] = 9] = "PARTNERSHIPS_AND_TRUSTS";
6
6
  IncomeSourceTypeListOtherEnum[IncomeSourceTypeListOtherEnum["OTHER_INCOME"] = 10] = "OTHER_INCOME";
7
7
  })(IncomeSourceTypeListOtherEnum || (IncomeSourceTypeListOtherEnum = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtb3RoZXIuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUtbGlzdC1vdGhlci5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDZCQUtYO0FBTEQsV0FBWSw2QkFBNkI7SUFDeEMsK0VBQU8sQ0FBQTtJQUNQLCtGQUFlLENBQUE7SUFDZix1SEFBMkIsQ0FBQTtJQUMzQixrR0FBaUIsQ0FBQTtBQUNsQixDQUFDLEVBTFcsNkJBQTZCLEtBQTdCLDZCQUE2QixRQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEluY29tZVNvdXJjZVR5cGVMaXN0T3RoZXJFbnVtIHtcblx0UFNJID0gNixcblx0U09MRV9UUkFERVIgPSA3LFxuXHRQQVJUTkVSU0hJUFNfQU5EX1RSVVNUUyA9IDksXG5cdE9USEVSX0lOQ09NRSA9IDEwLFxufSJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtb3RoZXIuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUtbGlzdC1vdGhlci5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDZCQUtYO0FBTEQsV0FBWSw2QkFBNkI7SUFDdkMsK0VBQU8sQ0FBQTtJQUNQLCtGQUFlLENBQUE7SUFDZix1SEFBMkIsQ0FBQTtJQUMzQixrR0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsNkJBQTZCLEtBQTdCLDZCQUE2QixRQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEluY29tZVNvdXJjZVR5cGVMaXN0T3RoZXJFbnVtIHtcbiAgUFNJID0gNixcbiAgU09MRV9UUkFERVIgPSA3LFxuICBQQVJUTkVSU0hJUFNfQU5EX1RSVVNUUyA9IDksXG4gIE9USEVSX0lOQ09NRSA9IDEwLFxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  export var IncomeSourceTypeListWorkEnum;
2
2
  (function (IncomeSourceTypeListWorkEnum) {
3
+ IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["BONUSES"] = 1] = "BONUSES";
3
4
  IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["DIRECTOR_FEES"] = 2] = "DIRECTOR_FEES";
4
5
  IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["DIVIDENDS"] = 3] = "DIVIDENDS";
5
6
  IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["INTEREST"] = 4] = "INTEREST";
@@ -7,4 +8,4 @@ export var IncomeSourceTypeListWorkEnum;
7
8
  IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["SUPERANNUATION"] = 8] = "SUPERANNUATION";
8
9
  IncomeSourceTypeListWorkEnum[IncomeSourceTypeListWorkEnum["ATTRIBUTED_P_S_I"] = 11] = "ATTRIBUTED_P_S_I";
9
10
  })(IncomeSourceTypeListWorkEnum || (IncomeSourceTypeListWorkEnum = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtd29yay5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw0QkFPWDtBQVBELFdBQVksNEJBQTRCO0lBQ3RDLGlHQUFpQixDQUFBO0lBQ2pCLHlGQUFhLENBQUE7SUFDYix1RkFBWSxDQUFBO0lBQ1oscUhBQTJCLENBQUE7SUFDM0IsbUdBQWtCLENBQUE7SUFDbEIsd0dBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVBXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFPdkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBJbmNvbWVTb3VyY2VUeXBlTGlzdFdvcmtFbnVtIHtcbiAgRElSRUNUT1JfRkVFUyA9IDIsXG4gIERJVklERU5EUyA9IDMsXG4gIElOVEVSRVNUID0gNCxcbiAgUEVOU0lPTlNfQU5EX0FMTE9XQU5DRVMgPSA1LFxuICBTVVBFUkFOTlVBVElPTiA9IDgsXG4gIEFUVFJJQlVURURfUF9TX0kgPSAxMSxcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtd29yay5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw0QkFRWDtBQVJELFdBQVksNEJBQTRCO0lBQ3RDLHFGQUFXLENBQUE7SUFDWCxpR0FBaUIsQ0FBQTtJQUNqQix5RkFBYSxDQUFBO0lBQ2IsdUZBQVksQ0FBQTtJQUNaLHFIQUEyQixDQUFBO0lBQzNCLG1HQUFrQixDQUFBO0lBQ2xCLHdHQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFSVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBUXZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSW5jb21lU291cmNlVHlwZUxpc3RXb3JrRW51bSB7XG4gIEJPTlVTRVMgPSAxLFxuICBESVJFQ1RPUl9GRUVTID0gMixcbiAgRElWSURFTkRTID0gMyxcbiAgSU5URVJFU1QgPSA0LFxuICBQRU5TSU9OU19BTkRfQUxMT1dBTkNFUyA9IDUsXG4gIFNVUEVSQU5OVUFUSU9OID0gOCxcbiAgQVRUUklCVVRFRF9QX1NfSSA9IDExLFxufVxuIl19
@@ -1,8 +1,7 @@
1
1
  export var IncomeSourceTypeEnum;
2
2
  (function (IncomeSourceTypeEnum) {
3
- IncomeSourceTypeEnum[IncomeSourceTypeEnum["SALARY"] = 1] = "SALARY";
4
- IncomeSourceTypeEnum[IncomeSourceTypeEnum["WORK"] = 2] = "WORK";
3
+ IncomeSourceTypeEnum[IncomeSourceTypeEnum["WORK"] = 1] = "WORK";
4
+ IncomeSourceTypeEnum[IncomeSourceTypeEnum["SOLE"] = 2] = "SOLE";
5
5
  IncomeSourceTypeEnum[IncomeSourceTypeEnum["OTHER"] = 3] = "OTHER";
6
- IncomeSourceTypeEnum[IncomeSourceTypeEnum["SOLE"] = 4] = "SOLE";
7
6
  })(IncomeSourceTypeEnum || (IncomeSourceTypeEnum = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5QixtRUFBVSxDQUFBO0lBQ1YsK0RBQVEsQ0FBQTtJQUNSLGlFQUFTLENBQUE7SUFDVCwrREFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUxXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFLL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBJbmNvbWVTb3VyY2VUeXBlRW51bSB7XG4gIFNBTEFSWSA9IDEsXG4gIFdPUksgPSAyLFxuICBPVEhFUiA9IDMsXG4gIFNPTEUgPSA0XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QiwrREFBUSxDQUFBO0lBQ1IsK0RBQVEsQ0FBQTtJQUNSLGlFQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEluY29tZVNvdXJjZVR5cGVFbnVtIHtcbiAgV09SSyA9IDEsXG4gIFNPTEUgPSAyLFxuICBPVEhFUiA9IDMsXG59XG4iXX0=
@@ -1,11 +1,10 @@
1
1
  import { IncomeSourceType as IncomeSourceTypeBase } from '../../db/Models/incomeSource/income-source-type';
2
- import { IncomeSourceTypeListSalaryEnum } from '../../db/Enums/income-source-type-list-salary.enum';
3
2
  import { IncomeSourceTypeListWorkEnum } from '../../db/Enums/income-source-type-list-work.enum';
4
3
  import { IncomeSourceTypeListOtherEnum } from '../../db/Enums/income-source-type-list-other.enum';
5
4
  import { IncomeSourceTypeEnum } from '../../db/Enums/income-source-type.enum';
6
5
  export class IncomeSourceType extends IncomeSourceTypeBase {
7
- isSalary() {
8
- return !!IncomeSourceTypeListSalaryEnum[this.id];
6
+ isBonuses() {
7
+ return this.id === IncomeSourceTypeListWorkEnum.BONUSES;
9
8
  }
10
9
  isWork() {
11
10
  return !!IncomeSourceTypeListWorkEnum[this.id];
@@ -14,12 +13,11 @@ export class IncomeSourceType extends IncomeSourceTypeBase {
14
13
  return !!IncomeSourceTypeListOtherEnum[this.id];
15
14
  }
16
15
  isSole() {
16
+ // @TODO use IncomeSourceTypeListSoleEnum when sole tank ready
17
17
  return !!IncomeSourceTypeListOtherEnum[this.id];
18
18
  }
19
19
  get type() {
20
20
  switch (true) {
21
- case this.isSalary():
22
- return IncomeSourceTypeEnum.SALARY;
23
21
  case this.isWork():
24
22
  return IncomeSourceTypeEnum.WORK;
25
23
  case this.isSole():
@@ -29,4 +27,4 @@ export class IncomeSourceType extends IncomeSourceTypeBase {
29
27
  }
30
28
  }
31
29
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLElBQUksb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ3hELFFBQVE7UUFDTixPQUFPLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUNyQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ25DLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDbkM7Z0JBQ0UsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7U0FDckM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlIGFzIEluY29tZVNvdXJjZVR5cGVCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2luY29tZVNvdXJjZS9pbmNvbWUtc291cmNlLXR5cGUnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUxpc3RTYWxhcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtc2FsYXJ5LmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUxpc3RXb3JrRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlTGlzdE90aGVyRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LW90aGVyLmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBJbmNvbWVTb3VyY2VUeXBlIGV4dGVuZHMgSW5jb21lU291cmNlVHlwZUJhc2Uge1xuICBpc1NhbGFyeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFJbmNvbWVTb3VyY2VUeXBlTGlzdFNhbGFyeUVudW1bdGhpcy5pZF07XG4gIH1cblxuICBpc1dvcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhSW5jb21lU291cmNlVHlwZUxpc3RXb3JrRW51bVt0aGlzLmlkXTtcbiAgfVxuXG4gIGlzT3RoZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhSW5jb21lU291cmNlVHlwZUxpc3RPdGhlckVudW1bdGhpcy5pZF07XG4gIH1cblxuICBpc1NvbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhSW5jb21lU291cmNlVHlwZUxpc3RPdGhlckVudW1bdGhpcy5pZF07XG4gIH1cblxuICBnZXQgdHlwZSgpOiBJbmNvbWVTb3VyY2VUeXBlRW51bSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMuaXNTYWxhcnkoKTpcbiAgICAgICAgcmV0dXJuIEluY29tZVNvdXJjZVR5cGVFbnVtLlNBTEFSWTtcbiAgICAgIGNhc2UgdGhpcy5pc1dvcmsoKTpcbiAgICAgICAgcmV0dXJuIEluY29tZVNvdXJjZVR5cGVFbnVtLldPUks7XG4gICAgICBjYXNlIHRoaXMuaXNTb2xlKCk6XG4gICAgICAgIHJldHVybiBJbmNvbWVTb3VyY2VUeXBlRW51bS5TT0xFO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIEluY29tZVNvdXJjZVR5cGVFbnVtLk9USEVSO1xuICAgIH1cbiAgfVxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLElBQUksb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBQ3hELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssNEJBQTRCLENBQUMsT0FBTyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUFDLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxDQUFDLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNO1FBQ0osOERBQThEO1FBQzlELE9BQU8sQ0FBQyxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ25DLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDbkM7Z0JBQ0UsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7U0FDckM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlIGFzIEluY29tZVNvdXJjZVR5cGVCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2luY29tZVNvdXJjZS9pbmNvbWUtc291cmNlLXR5cGUnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUxpc3RXb3JrRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlTGlzdE90aGVyRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LW90aGVyLmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBJbmNvbWVTb3VyY2VUeXBlIGV4dGVuZHMgSW5jb21lU291cmNlVHlwZUJhc2Uge1xuICBpc0JvbnVzZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IEluY29tZVNvdXJjZVR5cGVMaXN0V29ya0VudW0uQk9OVVNFUztcbiAgfVxuXG4gIGlzV29yaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFJbmNvbWVTb3VyY2VUeXBlTGlzdFdvcmtFbnVtW3RoaXMuaWRdO1xuICB9XG5cbiAgaXNPdGhlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFJbmNvbWVTb3VyY2VUeXBlTGlzdE90aGVyRW51bVt0aGlzLmlkXTtcbiAgfVxuXG4gIGlzU29sZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyB1c2UgSW5jb21lU291cmNlVHlwZUxpc3RTb2xlRW51bSB3aGVuIHNvbGUgdGFuayByZWFkeVxuICAgIHJldHVybiAhIUluY29tZVNvdXJjZVR5cGVMaXN0T3RoZXJFbnVtW3RoaXMuaWRdO1xuICB9XG5cbiAgZ2V0IHR5cGUoKTogSW5jb21lU291cmNlVHlwZUVudW0ge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzV29yaygpOlxuICAgICAgICByZXR1cm4gSW5jb21lU291cmNlVHlwZUVudW0uV09SSztcbiAgICAgIGNhc2UgdGhpcy5pc1NvbGUoKTpcbiAgICAgICAgcmV0dXJuIEluY29tZVNvdXJjZVR5cGVFbnVtLlNPTEU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gSW5jb21lU291cmNlVHlwZUVudW0uT1RIRVI7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -8,7 +8,9 @@ import { IncomeSourceForecast } from './income-source-forecast';
8
8
  import { FinancialYear } from '../financial-year/financial-year';
9
9
  export class IncomeSource extends IncomeSourceBase {
10
10
  isSalaryIncome() {
11
- return this.type === IncomeSourceTypeEnum.SALARY;
11
+ return !!this.salaryForecasts.length;
12
+ // @TODO Vik: old code
13
+ // return this.type === IncomeSourceTypeEnum.SALARY;
12
14
  }
13
15
  isSoleIncome() {
14
16
  return this.type === IncomeSourceTypeEnum.SOLE;
@@ -55,4 +57,4 @@ __decorate([
55
57
  __decorate([
56
58
  Type(() => Date)
57
59
  ], IncomeSource.prototype, "dateTo", void 0);
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBZ0JoRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxNQUFNLFNBQVMsR0FBUyxJQUFJLGFBQWEsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRyxDQUFDO0NBQ0Y7QUFwREM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO3FEQUNPO0FBR2xDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQzttREFDSztBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsyREFDYTtBQUc5QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0Y7QUFHZjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NENBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWVTb3VyY2UgYXMgSW5jb21lU291cmNlQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9pbmNvbWVTb3VyY2UvaW5jb21lLXNvdXJjZSc7XHJcbmltcG9ydCB7IEluY29tZVNvdXJjZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBJSW5jb21lU291cmNlRm9yZWNhc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2luY29tZS1zb3VyY2UtZm9yZWNhc3QuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuaW1wb3J0IHsgU2FsYXJ5Rm9yZWNhc3QgfSBmcm9tICcuL3NhbGFyeS1mb3JlY2FzdCc7XHJcbmltcG9ydCB7IFNvbGVGb3JlY2FzdCB9IGZyb20gJy4vc29sZS1mb3JlY2FzdCc7XHJcbmltcG9ydCB7IEluY29tZVNvdXJjZUZvcmVjYXN0IH0gZnJvbSAnLi9pbmNvbWUtc291cmNlLWZvcmVjYXN0JztcclxuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBJbmNvbWVTb3VyY2UgZXh0ZW5kcyBJbmNvbWVTb3VyY2VCYXNlIHtcclxuICBAVHlwZSgoKSA9PiBTYWxhcnlGb3JlY2FzdClcclxuICBzYWxhcnlGb3JlY2FzdHM6IFNhbGFyeUZvcmVjYXN0W107XHJcblxyXG4gIEBUeXBlKCgpID0+IFNvbGVGb3JlY2FzdClcclxuICBzb2xlRm9yZWNhc3RzOiBTb2xlRm9yZWNhc3RbXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlRm9yZWNhc3QpXHJcbiAgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBEYXRlKVxyXG4gIGRhdGVGcm9tOiBEYXRlO1xyXG5cclxuICBAVHlwZSgoKSA9PiBEYXRlKVxyXG4gIGRhdGVUbzogRGF0ZTtcclxuXHJcbiAgaXNTYWxhcnlJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5TQUxBUlk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGVJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5TT0xFO1xyXG4gIH1cclxuXHJcbiAgaXNXb3JrSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSW5jb21lU291cmNlVHlwZUVudW0uV09SSztcclxuICB9XHJcblxyXG4gIGlzT3RoZXJJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5PVEhFUjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBzYWxhcnkgYW5kIG90aGVyIGluY29tZSBmb3JlY2FzdHNcclxuICAgKi9cclxuICBnZXQgZm9yZWNhc3RzKCk6IElJbmNvbWVTb3VyY2VGb3JlY2FzdFtdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy5zYWxhcnlGb3JlY2FzdHMsIC4uLnRoaXMuaW5jb21lU291cmNlRm9yZWNhc3RzLCAuLi50aGlzLnNvbGVGb3JlY2FzdHNdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFjdHVhbCAoMXN0IGZyb20gdGhlIGxpc3QpIGZvcmVjYXN0XHJcbiAgICovXHJcbiAgZ2V0IGFjdHVhbEZvcmVjYXN0KCk6IElJbmNvbWVTb3VyY2VGb3JlY2FzdCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHNbMF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB1c2VyIHdhcyB3b3JraW5nIGluIG1vbnRoIHRha2VuIGJ5IHRoZSBpbmRleFxyXG4gICAqIEBwYXJhbSBtb250aEluZGV4IGJ5IHdoaWNoIG1vbnRoIHNob3VsZCBiZSB0YWtlblxyXG4gICAqL1xyXG4gIGlzV29ya2VkSW5Nb250aChtb250aEluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1vbnRoRGF0ZTogRGF0ZSA9IG5ldyBGaW5hbmNpYWxZZWFyKCkuZ2V0TW9udGhEYXRlKG1vbnRoSW5kZXgpO1xyXG4gICAgcmV0dXJuICghdGhpcy5kYXRlRnJvbSB8fCBtb250aERhdGUgPj0gdGhpcy5kYXRlRnJvbSkgJiYgKCF0aGlzLmRhdGVUbyB8fCBtb250aERhdGUgPCB0aGlzLmRhdGVUbyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBZ0JoRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDckMsc0JBQXNCO1FBQ3RCLG9EQUFvRDtJQUN0RCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxVQUFrQjtRQUNoQyxNQUFNLFNBQVMsR0FBUyxJQUFJLGFBQWEsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRyxDQUFDO0NBQ0Y7QUF0REM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO3FEQUNPO0FBR2xDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQzttREFDSztBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsyREFDYTtBQUc5QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0Y7QUFHZjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NENBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmNvbWVTb3VyY2UgYXMgSW5jb21lU291cmNlQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9pbmNvbWVTb3VyY2UvaW5jb21lLXNvdXJjZSc7XHJcbmltcG9ydCB7IEluY29tZVNvdXJjZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBJSW5jb21lU291cmNlRm9yZWNhc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2luY29tZS1zb3VyY2UtZm9yZWNhc3QuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuaW1wb3J0IHsgU2FsYXJ5Rm9yZWNhc3QgfSBmcm9tICcuL3NhbGFyeS1mb3JlY2FzdCc7XHJcbmltcG9ydCB7IFNvbGVGb3JlY2FzdCB9IGZyb20gJy4vc29sZS1mb3JlY2FzdCc7XHJcbmltcG9ydCB7IEluY29tZVNvdXJjZUZvcmVjYXN0IH0gZnJvbSAnLi9pbmNvbWUtc291cmNlLWZvcmVjYXN0JztcclxuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBJbmNvbWVTb3VyY2UgZXh0ZW5kcyBJbmNvbWVTb3VyY2VCYXNlIHtcclxuICBAVHlwZSgoKSA9PiBTYWxhcnlGb3JlY2FzdClcclxuICBzYWxhcnlGb3JlY2FzdHM6IFNhbGFyeUZvcmVjYXN0W107XHJcblxyXG4gIEBUeXBlKCgpID0+IFNvbGVGb3JlY2FzdClcclxuICBzb2xlRm9yZWNhc3RzOiBTb2xlRm9yZWNhc3RbXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlRm9yZWNhc3QpXHJcbiAgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBEYXRlKVxyXG4gIGRhdGVGcm9tOiBEYXRlO1xyXG5cclxuICBAVHlwZSgoKSA9PiBEYXRlKVxyXG4gIGRhdGVUbzogRGF0ZTtcclxuXHJcbiAgaXNTYWxhcnlJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnNhbGFyeUZvcmVjYXN0cy5sZW5ndGg7XHJcbiAgICAvLyBAVE9ETyBWaWs6IG9sZCBjb2RlXHJcbiAgICAvLyByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5TQUxBUlk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGVJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5TT0xFO1xyXG4gIH1cclxuXHJcbiAgaXNXb3JrSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSW5jb21lU291cmNlVHlwZUVudW0uV09SSztcclxuICB9XHJcblxyXG4gIGlzT3RoZXJJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJbmNvbWVTb3VyY2VUeXBlRW51bS5PVEhFUjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBzYWxhcnkgYW5kIG90aGVyIGluY29tZSBmb3JlY2FzdHNcclxuICAgKi9cclxuICBnZXQgZm9yZWNhc3RzKCk6IElJbmNvbWVTb3VyY2VGb3JlY2FzdFtdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy5zYWxhcnlGb3JlY2FzdHMsIC4uLnRoaXMuaW5jb21lU291cmNlRm9yZWNhc3RzLCAuLi50aGlzLnNvbGVGb3JlY2FzdHNdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFjdHVhbCAoMXN0IGZyb20gdGhlIGxpc3QpIGZvcmVjYXN0XHJcbiAgICovXHJcbiAgZ2V0IGFjdHVhbEZvcmVjYXN0KCk6IElJbmNvbWVTb3VyY2VGb3JlY2FzdCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHNbMF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB1c2VyIHdhcyB3b3JraW5nIGluIG1vbnRoIHRha2VuIGJ5IHRoZSBpbmRleFxyXG4gICAqIEBwYXJhbSBtb250aEluZGV4IGJ5IHdoaWNoIG1vbnRoIHNob3VsZCBiZSB0YWtlblxyXG4gICAqL1xyXG4gIGlzV29ya2VkSW5Nb250aChtb250aEluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG1vbnRoRGF0ZTogRGF0ZSA9IG5ldyBGaW5hbmNpYWxZZWFyKCkuZ2V0TW9udGhEYXRlKG1vbnRoSW5kZXgpO1xyXG4gICAgcmV0dXJuICghdGhpcy5kYXRlRnJvbSB8fCBtb250aERhdGUgPj0gdGhpcy5kYXRlRnJvbSkgJiYgKCF0aGlzLmRhdGVUbyB8fCBtb250aERhdGUgPCB0aGlzLmRhdGVUbyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -3,7 +3,6 @@ import { ACCOUNT_SETUP_ITEMS } from '../../models/account-setup/account-setup-it
3
3
  import { AccountSetupItemsEnum } from '../../models/account-setup/account-setup-items.enum';
4
4
  import { ClientIncomeTypes } from '../../models/client/client-income-types';
5
5
  import { IncomeSourceCollection } from '../../collections/income-source.collection';
6
- import { IncomeSourceTypeEnum } from '../../db/Enums/income-source-type.enum';
7
6
  import { combineLatest, of, ReplaySubject } from 'rxjs';
8
7
  import { filter, map, mergeMap } from 'rxjs/operators';
9
8
  import { AccountSetupItemCollection } from '../../collections/account-setup-item.collection';
@@ -88,11 +87,11 @@ export class AccountSetupService {
88
87
  const batch = [];
89
88
  // Salary item is completed when user added salary income source
90
89
  if (incomeTypes.salary) {
91
- batch.push(this.create(AccountSetupItemsEnum.SALARY, this.getIncomeSourcesByType(IncomeSourceTypeEnum.WORK)));
90
+ batch.push(this.create(AccountSetupItemsEnum.SALARY, this.getIncomeSources(true)));
92
91
  }
93
92
  // Other income item is completed when user added at least one other income source
94
93
  if (incomeTypes.dividends || incomeTypes.other) {
95
- batch.push(this.create(AccountSetupItemsEnum.OTHER_INCOME, this.getIncomeSourcesByType(IncomeSourceTypeEnum.OTHER)));
94
+ batch.push(this.create(AccountSetupItemsEnum.OTHER_INCOME, this.getIncomeSources()));
96
95
  }
97
96
  // Rental income item is completed when user added at least one property
98
97
  if (incomeTypes.property) {
@@ -117,11 +116,16 @@ export class AccountSetupService {
117
116
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
118
117
  }
119
118
  /**
120
- * @TODO work with collection when services refactored
119
+ * @TODO Alex: work with collection when services refactored
120
+ * @TODO Vik: waiting for income sources refactoring
121
121
  */
122
- getIncomeSourcesByType(type) {
122
+ getIncomeSources(isSalary = false) {
123
123
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
124
- return new IncomeSourceCollection(incomeSources).getBy('type', type).toArray();
124
+ const collection = new IncomeSourceCollection(incomeSources);
125
+ if (isSalary) {
126
+ return collection.getSalary();
127
+ }
128
+ return collection.items.filter((incomeSource) => !incomeSource.isSalaryIncome() && !incomeSource.isSoleIncome());
125
129
  }));
126
130
  }
127
131
  /**
@@ -147,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
147
151
  providedIn: 'root'
148
152
  }]
149
153
  }], ctorParameters: function () { return [{ type: i1.ClientIncomeTypesService }, { type: i2.PropertyService }, { type: i3.IncomeSourceService }, { type: i4.BankAccountService }, { type: i5.TransactionAllocationService }, { type: i6.VehicleClaimService }, { type: i7.TransactionService }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHOUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTdGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7O0FBRWpGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFLOUIsWUFDVSx3QkFBa0QsRUFDbEQsZUFBZ0MsRUFDaEMsbUJBQXdDLEVBQ3hDLG1CQUF1QyxFQUN2Qyw0QkFBMEQsRUFDMUQsbUJB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LENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOztpSEE5SlUsbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUNDT1VOVF9TRVRVUF9JVEVNUyB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbXMuY29uc3QnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5pbXBvcnQgeyBBY2NvdW50U2V0dXBJdGVtc0VudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmVudW0nO1xuaW1wb3J0IHsgQmFua0FjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRJbmNvbWVUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWluY29tZS10eXBlcyc7XG5pbXBvcnQgeyBDbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UgfSBmcm9tICcuLi9odHRwL2Zpcm0vY2xpZW50LWluY29tZS9jbGllbnQtaW5jb21lLXR5cGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEluY29tZVNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9odHRwL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2FjY291bnQtc2V0dXAtaXRlbS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi9odHRwL3ZlaGljbGUvdmVoaWNsZS1jbGFpbS5zZXJ2aWNlJztcbmltcG9ydCBmcm9tUGFpcnMgZnJvbSAnbG9kYXNoL2Zyb21QYWlycyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIFNlcnZpY2UgaGFuZGxpbmcgdXNlcidzIGFjY291bnQgc2V0dXAgcHJvY2Vzcy5cbiAqIENoZWNrcyByZXF1aXJlZCBzdGVwcyBhbmQgdGhlaXIgY29tcGxldGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0dXBTZXJ2aWNlIHtcbiAgY2FjaGU6IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uO1xuICBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+ID0gbmV3IFJlcGxheVN1YmplY3Q8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+KDEpO1xuICBjbGllbnRJbmNvbWVUeXBlc0lkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjbGllbnRJbmNvbWVUeXBlc1NlcnZpY2U6IENsaWVudEluY29tZVR5cGVzU2VydmljZSxcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5jb21lU291cmNlU2VydmljZTogSW5jb21lU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIGJhbmtBY2NvdW50c1NlcnZpY2U6IEJhbmtBY2NvdW50U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2ZWhpY2xlQ2xhaW1TZXJ2aWNlOiBWZWhpY2xlQ2xhaW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYWNjb3VudCBzZXR1cCBpdGVtcyBmb3IgY3VycmVudCB1c2VyXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZSA9IG5ldyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbihbXSk7XG5cbiAgICAgIHRoaXMuY2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlLmdldCgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIHdlIG5lZWQgYWNjb3VudCBzZXR1cCBvbmx5IHdoZW4gdXNlciBzZWxlY3RlZCBhdCBsZWFzdCBvbmUgaW5jb21lIHR5cGVcbiAgICAgICAgICBmaWx0ZXIoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcykgPT4gISFpbmNvbWVUeXBlcy5sZW5ndGgpLFxuICAgICAgICAgIG1lcmdlTWFwKChpbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xpZW50SW5jb21lVHlwZXNJZCA9IGluY29tZVR5cGVzLmlkO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVCYXRjaChpbmNvbWVUeXBlcyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChpdGVtczogQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIGNhc2UgIXRoaXMuY2FjaGU6XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2FjaGUuZ2V0QnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoICE9PSBpdGVtcy5nZXRCeSgnaXNDb21wbGV0ZWQnLCB0cnVlKS5sZW5ndGg6XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2FjaGUubGVuZ3RoICE9PSBpdGVtcy5sZW5ndGg6XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBjbG9uZURlZXAoaXRlbXMpO1xuICAgICAgICAgICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgY2xpZW50IGluY29tZSB0eXBlcyB0byB1cGRhdGUgdG8gaGlkZSBkZXBlbmRlZCBhY2NvdW50IHNldHVwIGl0ZW1zXG4gICAqL1xuICBwcmVwYXJlSW5jb21lVHlwZXMoaXRlbTogQWNjb3VudFNldHVwSXRlbSk6IENsaWVudEluY29tZVR5cGVzIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFxuICAgICAgQ2xpZW50SW5jb21lVHlwZXMsXG4gICAgICBPYmplY3QuYXNzaWduKHtpZDogdGhpcy5jbGllbnRJbmNvbWVUeXBlc0lkfSwgZnJvbVBhaXJzKGl0ZW0uY2xpZW50SW5jb21lVHlwZXMubWFwKCh0eXBlOiBzdHJpbmcpID0+IFt0eXBlLCBmYWxzZV0pKSlcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc2luZ2xlIEFjY291bnRTZXR1cEl0ZW0gYW5kIGNoZWNrIGl0J3MgY29tcGxldGlvblxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGUoaXRlbVR5cGU6IEFjY291bnRTZXR1cEl0ZW1zRW51bSwgcmVxdWVzdDogT2JzZXJ2YWJsZTxvYmplY3RbXT4pOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IG9iamVjdFtdKTogQWNjb3VudFNldHVwSXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW06IEFjY291bnRTZXR1cEl0ZW0gPSBBQ0NPVU5UX1NFVFVQX0lURU1TW2l0ZW1UeXBlXTtcblxuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBiYXRjaCBvZiByZXF1ZXN0cyB0byBnZXQgbGlzdCBvZiByZXF1aXJlZCBBY2NvdW50U2V0dXBJdGVtJ3MuXG4gICAqIFNvbWUgaXRlbXMgYXJlIG9wdGlvbmFsIGFuZCBkZXBlbmRzIG9mIHVzZXIncyBjbGllbnQgaW5jb21lIHR5cGVzXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUJhdGNoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcyk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBiYXRjaDogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPltdID0gW107XG5cbiAgICAvLyBTYWxhcnkgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIHNhbGFyeSBpbmNvbWUgc291cmNlXG4gICAgaWYgKGluY29tZVR5cGVzLnNhbGFyeSkge1xuICAgICAgYmF0Y2gucHVzaChcbiAgICAgICAgdGhpcy5jcmVhdGUoXG4gICAgICAgICAgQWNjb3VudFNldHVwSXRlbXNFbnVtLlNBTEFSWSxcbiAgICAgICAgICB0aGlzLmdldEluY29tZVNvdXJjZXNCeVR5cGUoSW5jb21lU291cmNlVHlwZUVudW0uV09SSylcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBPdGhlciBpbmNvbWUgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBvdGhlciBpbmNvbWUgc291cmNlXG4gICAgaWYgKGluY29tZVR5cGVzLmRpdmlkZW5kcyB8fCBpbmNvbWVUeXBlcy5vdGhlcikge1xuICAgICAgYmF0Y2gucHVzaChcbiAgICAgICAgdGhpcy5jcmVhdGUoXG4gICAgICAgICAgQWNjb3VudFNldHVwSXRlbXNFbnVtLk9USEVSX0lOQ09NRSxcbiAgICAgICAgICB0aGlzLmdldEluY29tZVNvdXJjZXNCeVR5cGUoSW5jb21lU291cmNlVHlwZUVudW0uT1RIRVIpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUmVudGFsIGluY29tZSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHByb3BlcnR5XG4gICAgaWYgKGluY29tZVR5cGVzLnByb3BlcnR5KSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5QUk9QRVJUWSwgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0KCkpKTtcbiAgICB9XG5cbiAgICAvLyBCYW5rIGZlZWRzIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgYmFuayBhY2NvdW50IChiYXNpcSBvciBtYW51YWwpXG4gICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uQkFOS19GRUVEUywgdGhpcy5iYW5rQWNjb3VudHNTZXJ2aWNlLmdldCgpKSk7XG5cbiAgICAvLyBMb2dib29rIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBoYXMgYXQgbGVhc3Qgb25lIHZlaGljbGUgY2xhaW0gd2l0aCBhbnkgbWV0aG9kIChrbG1zIG9yIGxvZ2Jvb2spXG4gICAgYmF0Y2gucHVzaCh0aGlzLmdldExvZ2Jvb2tJdGVtKCkpO1xuXG4gICAgLy8gQFRPRE8gd2FpdGluZyBmb3Igc29sZSB0YW5rIGZvcmVjYXN0IHBhZ2VcbiAgICAvLyBTb2xlIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgc29sZSBpbmNvbWUgc291cmNlXG4gICAgLy8gaWYgKGluY29tZVR5cGVzLnNvbGVUcmFkZXIpIHtcbiAgICAvLyAgIGJhdGNoLnB1c2goXG4gICAgLy8gICAgIHRoaXMucHJlcGFyZUl0ZW0oXG4gICAgLy8gICAgICAgQWNjb3VudFNldHVwSXRlbXNFbnVtLlNPTEVfSU5DT01FLFxuICAgIC8vICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlc0J5VHlwZShJbmNvbWVTb3VyY2VUeXBlRW51bS5TT0xFKVxuICAgIC8vICAgICApXG4gICAgLy8gICApO1xuICAgIC8vIH1cblxuICAgIC8vIEFsbG9jYXRpb24gaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSB0cmFuc2FjdGlvbiBhbGxvY2F0aW9uXG4gICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uVFJBTlNBQ1RJT04sIHRoaXMudHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZS5nZXQoKSkpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoYmF0Y2gpLnBpcGUobWFwKChpdGVtczogQWNjb3VudFNldHVwSXRlbVtdKSA9PiBuZXcgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24oaXRlbXMpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gd29yayB3aXRoIGNvbGxlY3Rpb24gd2hlbiBzZXJ2aWNlcyByZWZhY3RvcmVkXG4gICAqL1xuICBwcml2YXRlIGdldEluY29tZVNvdXJjZXNCeVR5cGUodHlwZTogSW5jb21lU291cmNlVHlwZUVudW0pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21lU291cmNlU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSk6IEluY29tZVNvdXJjZVtdID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uKGluY29tZVNvdXJjZXMpLmdldEJ5KCd0eXBlJywgdHlwZSkudG9BcnJheSgpO1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogU2hvdyBsb2dib29rIGl0ZW0gd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCAxIHZlaGljbGUgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgZ2V0TG9nYm9va0l0ZW0oKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gQFRPRE8gQWxleDogcmVtb3ZlIG1hcCB3aGVuIHNlcnZpY2VzIHN0YXJ0IHdvcmsgd2l0aCBjb2xsZWN0aW9uc1xuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSkgPT4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9ucy5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLldPUktfTE9HQk9PSywgdGhpcy52ZWhpY2xlQ2xhaW1TZXJ2aWNlLmdldCgpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFLcEYsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTdGLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7O0FBRWpGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFLOUIsWUFDVSx3QkFBa0QsRUFDbEQsZUFBZ0MsRUFDaEMsbUJBQXdDLEVBQ3hDLG1CQUF1QyxFQUN2Qyw0QkFBMEQsRUFDMUQsbUJBQXdDLEVBQ3hDLGtCQUFzQztRQU50Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUMxRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFWaEQsaUJBQVksR0FBOEMsSUFBSSxhQUFhLENBQTZCLENBQUMsQ0FBQyxDQUFDO0lBWTNHLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFO2lCQUNoQyxJQUFJO1lBQ0gseUVBQXlFO1lBQ3pFLE1BQU0sQ0FBQyxDQUFDLFdBQThCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQ2hFLFFBQVEsQ0FBQyxDQUFDLFdBQThCLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBRTFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQyxFQUFFLEVBQUU7Z0JBQy9DLFFBQVEsSUFBSSxFQUFFO29CQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNqQixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUM5RixLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNO3dCQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN0QztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsSUFBc0I7UUFDdkMsT0FBTyxZQUFZLENBQ2pCLGlCQUFpQixFQUNqQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEgsQ0FBQTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxRQUErQixFQUFFLE9BQTZCO1FBQzNFLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUFDLENBQUMsTUFBZ0IsRUFBb0IsRUFBRTtZQUN6QyxNQUFNLElBQUksR0FBcUIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFN0QsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUMxQjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXLENBQUMsV0FBOEI7UUFDaEQsTUFBTSxLQUFLLEdBQW1DLEVBQUUsQ0FBQztRQUVqRCxnRUFBZ0U7UUFDaEUsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3RCLEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FDVCxxQkFBcUIsQ0FBQyxNQUFNLEVBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDNUIsQ0FDRixDQUFDO1NBQ0g7UUFFRCxrRkFBa0Y7UUFDbEYsSUFBSSxXQUFXLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDOUMsS0FBSyxDQUFDLElBQUksQ0FDUixJQUFJLENBQUMsTUFBTSxDQUNULHFCQUFxQixDQUFDLFlBQVksRUFDbEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQ3hCLENBQ0YsQ0FBQztTQUNIO1FBRUQsd0VBQXdFO1FBQ3hFLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JGO1FBRUQsMkZBQTJGO1FBQzNGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRix1R0FBdUc7UUFDdkcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsQyw0Q0FBNEM7UUFDNUMseUVBQXlFO1FBQ3pFLGdDQUFnQztRQUNoQyxnQkFBZ0I7UUFDaEIsd0JBQXdCO1FBQ3hCLDJDQUEyQztRQUMzQywrREFBK0Q7UUFDL0QsUUFBUTtRQUNSLE9BQU87UUFDUCxJQUFJO1FBRUosbUZBQW1GO1FBQ25GLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLFdBQW9CLEtBQUs7UUFDaEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxhQUE2QixFQUFrQixFQUFFO1lBQ3BELE1BQU0sVUFBVSxHQUEyQixJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQy9CO1lBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDakksQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFO2FBQ2pDLElBQUk7UUFDSCxtRUFBbUU7UUFDbkUsR0FBRyxDQUFDLENBQUMsWUFBMkIsRUFBRSxFQUFFLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUM3RSxRQUFRLENBQUMsQ0FBQyxZQUFtQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDeEY7WUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7aUhBcEtVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDQ09VTlRfU0VUVVBfSVRFTVMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmNvbnN0JztcbmltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW0nO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbXNFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtcy5lbnVtJztcbmltcG9ydCB7IEJhbmtBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2h0dHAvYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9maXJtL2NsaWVudC1pbmNvbWUvY2xpZW50LWluY29tZS10eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2luY29tZS1zb3VyY2UuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5U2VydmljZSB9IGZyb20gJy4uL2h0dHAvcHJvcGVydHkvcHJvcGVydHkuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9hY2NvdW50LXNldHVwLWl0ZW0uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vaHR0cC92ZWhpY2xlL3ZlaGljbGUtY2xhaW0uc2VydmljZSc7XG5pbXBvcnQgZnJvbVBhaXJzIGZyb20gJ2xvZGFzaC9mcm9tUGFpcnMnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBTZXJ2aWNlIGhhbmRsaW5nIHVzZXIncyBhY2NvdW50IHNldHVwIHByb2Nlc3MuXG4gKiBDaGVja3MgcmVxdWlyZWQgc3RlcHMgYW5kIHRoZWlyIGNvbXBsZXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldHVwU2VydmljZSB7XG4gIGNhY2hlOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbjtcbiAgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPigxKTtcbiAgY2xpZW50SW5jb21lVHlwZXNJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlOiBDbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICBwcml2YXRlIGluY29tZVNvdXJjZVNlcnZpY2U6IEluY29tZVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYW5rQWNjb3VudHNTZXJ2aWNlOiBCYW5rQWNjb3VudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdmVoaWNsZUNsYWltU2VydmljZTogVmVoaWNsZUNsYWltU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFjY291bnQgc2V0dXAgaXRlbXMgZm9yIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSBuZXcgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24oW10pO1xuXG4gICAgICB0aGlzLmNsaWVudEluY29tZVR5cGVzU2VydmljZS5nZXQoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyB3ZSBuZWVkIGFjY291bnQgc2V0dXAgb25seSB3aGVuIHVzZXIgc2VsZWN0ZWQgYXQgbGVhc3Qgb25lIGluY29tZSB0eXBlXG4gICAgICAgICAgZmlsdGVyKChpbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMpID0+ICEhaW5jb21lVHlwZXMubGVuZ3RoKSxcbiAgICAgICAgICBtZXJnZU1hcCgoaW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsaWVudEluY29tZVR5cGVzSWQgPSBpbmNvbWVUeXBlcy5pZDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQmF0Y2goaW5jb21lVHlwZXMpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlICF0aGlzLmNhY2hlOlxuICAgICAgICAgICAgY2FzZSB0aGlzLmNhY2hlLmdldEJ5KCdpc0NvbXBsZXRlZCcsIHRydWUpLmxlbmd0aCAhPT0gaXRlbXMuZ2V0QnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoOlxuICAgICAgICAgICAgY2FzZSB0aGlzLmNhY2hlLmxlbmd0aCAhPT0gaXRlbXMubGVuZ3RoOlxuICAgICAgICAgICAgICB0aGlzLmNhY2hlID0gY2xvbmVEZWVwKGl0ZW1zKTtcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGNsaWVudCBpbmNvbWUgdHlwZXMgdG8gdXBkYXRlIHRvIGhpZGUgZGVwZW5kZWQgYWNjb3VudCBzZXR1cCBpdGVtc1xuICAgKi9cbiAgcHJlcGFyZUluY29tZVR5cGVzKGl0ZW06IEFjY291bnRTZXR1cEl0ZW0pOiBDbGllbnRJbmNvbWVUeXBlcyB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhcbiAgICAgIENsaWVudEluY29tZVR5cGVzLFxuICAgICAgT2JqZWN0LmFzc2lnbih7aWQ6IHRoaXMuY2xpZW50SW5jb21lVHlwZXNJZH0sIGZyb21QYWlycyhpdGVtLmNsaWVudEluY29tZVR5cGVzLm1hcCgodHlwZTogc3RyaW5nKSA9PiBbdHlwZSwgZmFsc2VdKSkpXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZSBBY2NvdW50U2V0dXBJdGVtIGFuZCBjaGVjayBpdCdzIGNvbXBsZXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlKGl0ZW1UeXBlOiBBY2NvdW50U2V0dXBJdGVtc0VudW0sIHJlcXVlc3Q6IE9ic2VydmFibGU8b2JqZWN0W10+KTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBvYmplY3RbXSk6IEFjY291bnRTZXR1cEl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBpdGVtOiBBY2NvdW50U2V0dXBJdGVtID0gQUNDT1VOVF9TRVRVUF9JVEVNU1tpdGVtVHlwZV07XG5cbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYmF0Y2ggb2YgcmVxdWVzdHMgdG8gZ2V0IGxpc3Qgb2YgcmVxdWlyZWQgQWNjb3VudFNldHVwSXRlbSdzLlxuICAgKiBTb21lIGl0ZW1zIGFyZSBvcHRpb25hbCBhbmQgZGVwZW5kcyBvZiB1c2VyJ3MgY2xpZW50IGluY29tZSB0eXBlc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYXRjaChpbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYmF0Y2g6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT5bXSA9IFtdO1xuXG4gICAgLy8gU2FsYXJ5IGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBzYWxhcnkgaW5jb21lIHNvdXJjZVxuICAgIGlmIChpbmNvbWVUeXBlcy5zYWxhcnkpIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5TQUxBUlksXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKHRydWUpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXIgaW5jb21lIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgb3RoZXIgaW5jb21lIHNvdXJjZVxuICAgIGlmIChpbmNvbWVUeXBlcy5kaXZpZGVuZHMgfHwgaW5jb21lVHlwZXMub3RoZXIpIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5PVEhFUl9JTkNPTUUsXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBSZW50YWwgaW5jb21lIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgcHJvcGVydHlcbiAgICBpZiAoaW5jb21lVHlwZXMucHJvcGVydHkpIHtcbiAgICAgIGJhdGNoLnB1c2godGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLlBST1BFUlRZLCB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQoKSkpO1xuICAgIH1cblxuICAgIC8vIEJhbmsgZmVlZHMgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBiYW5rIGFjY291bnQgKGJhc2lxIG9yIG1hbnVhbClcbiAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5CQU5LX0ZFRURTLCB0aGlzLmJhbmtBY2NvdW50c1NlcnZpY2UuZ2V0KCkpKTtcblxuICAgIC8vIExvZ2Jvb2sgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCBvbmUgdmVoaWNsZSBjbGFpbSB3aXRoIGFueSBtZXRob2QgKGtsbXMgb3IgbG9nYm9vaylcbiAgICBiYXRjaC5wdXNoKHRoaXMuZ2V0TG9nYm9va0l0ZW0oKSk7XG5cbiAgICAvLyBAVE9ETyB3YWl0aW5nIGZvciBzb2xlIHRhbmsgZm9yZWNhc3QgcGFnZVxuICAgIC8vIFNvbGUgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBzb2xlIGluY29tZSBzb3VyY2VcbiAgICAvLyBpZiAoaW5jb21lVHlwZXMuc29sZVRyYWRlcikge1xuICAgIC8vICAgYmF0Y2gucHVzaChcbiAgICAvLyAgICAgdGhpcy5wcmVwYXJlSXRlbShcbiAgICAvLyAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uU09MRV9JTkNPTUUsXG4gICAgLy8gICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzQnlUeXBlKEluY29tZVNvdXJjZVR5cGVFbnVtLlNPTEUpXG4gICAgLy8gICAgIClcbiAgICAvLyAgICk7XG4gICAgLy8gfVxuXG4gICAgLy8gQWxsb2NhdGlvbiBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uIGFsbG9jYXRpb25cbiAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5UUkFOU0FDVElPTiwgdGhpcy50cmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlLmdldCgpKSk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChiYXRjaCkucGlwZShtYXAoKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtW10pID0+IG5ldyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbihpdGVtcykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4OiB3b3JrIHdpdGggY29sbGVjdGlvbiB3aGVuIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAgICogQFRPRE8gVmlrOiB3YWl0aW5nIGZvciBpbmNvbWUgc291cmNlcyByZWZhY3RvcmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbmNvbWVTb3VyY2VzKGlzU2FsYXJ5OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jb21lU291cmNlU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSk6IEluY29tZVNvdXJjZVtdID0+IHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbjogSW5jb21lU291cmNlQ29sbGVjdGlvbiA9IG5ldyBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uKGluY29tZVNvdXJjZXMpO1xuICAgICAgICBpZiAoaXNTYWxhcnkpIHtcbiAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5nZXRTYWxhcnkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLml0ZW1zLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+ICFpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSAmJiAhaW5jb21lU291cmNlLmlzU29sZUluY29tZSgpKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbG9nYm9vayBpdGVtIHdoZW4gdXNlciBoYXMgYXQgbGVhc3QgMSB2ZWhpY2xlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldExvZ2Jvb2tJdGVtKCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIEBUT0RPIEFsZXg6IHJlbW92ZSBtYXAgd2hlbiBzZXJ2aWNlcyBzdGFydCB3b3JrIHdpdGggY29sbGVjdGlvbnNcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKSksXG4gICAgICAgIG1lcmdlTWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbnMuZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5XT1JLX0xPR0JPT0ssIHRoaXMudmVoaWNsZUNsYWltU2VydmljZS5nZXQoKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -1,21 +1,13 @@
1
+ // @TODO Basiq 1.0 remove if we will use basiq 2.0 or refactor if we stay with basiq 1.0
1
2
  import { Injectable } from '@angular/core';
2
3
  import { ReplaySubject } from 'rxjs';
3
- import { map, take } from 'rxjs/operators';
4
- import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
5
- import { RestService } from '../../rest/rest.service';
4
+ import { map } from 'rxjs/operators';
6
5
  import { BankAccount } from '../../../../models/bank/bank-account';
6
+ import { RestService } from '../../rest/rest.service';
7
7
  import { BasiqToken } from '../../../../models/bank/basiq-token';
8
8
  import { AppEventTypeEnum } from '../../../../models/event/app-event-type.enum';
9
- import { AppEvent } from '../../../../models/event/app-event';
9
+ import { UserEventTypeClientTypeEnum } from '../../../../db/Enums/user-event-type-client-type.enum';
10
10
  import * as i0 from "@angular/core";
11
- /**
12
- * Basiq consent UI initial URL. Replace USER_ID and TOKEN by user data + handle action parameter
13
- */
14
- const BASIQ_CONSENT_URL = 'https://consent.basiq.io/home?userId=USER_ID&token=TOKEN&action=connect';
15
- /**
16
- * Event message name we listen to handle basiq UI result
17
- */
18
- const FINISH_BASIQ_EVENT = 'finish-basiq';
19
11
  /**
20
12
  * basiq is a middleman between bank and user
21
13
  * service is responsible for fetching bank related information
@@ -33,23 +25,6 @@ export class BasiqService extends RestService {
33
25
  listenEvents() {
34
26
  this.listenToBankConnectionAdded();
35
27
  this.listenNotifications();
36
- this.listenBasiqConcentUpdated();
37
- }
38
- /**
39
- * Update user's basiq consents data on backend
40
- */
41
- confirmConsents() {
42
- return this.http.put(`${this.environment.apiV2}/basiq/consents`, {}).pipe(map((isConfirmed) => {
43
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONSENT_UPDATED, isConfirmed));
44
- }));
45
- }
46
- /**
47
- * Notify backend to update connections
48
- */
49
- updateConnections() {
50
- return this.http.post(`${this.environment.apiV2}/basiq/connections`, {}).pipe(map((connections) => {
51
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_CONNECTION_UPDATED, !!connections));
52
- }));
53
28
  }
54
29
  /**
55
30
  * access token to use basiq connect ui iframe
@@ -62,15 +37,11 @@ export class BasiqService extends RestService {
62
37
  return new BasiqToken(response['access_token'], new Date(now + response['expires_in'] * 1000));
63
38
  }))
64
39
  .subscribe((token) => {
65
- this.token = token;
66
40
  this.tokenSubject.next(token);
67
41
  });
68
42
  }
69
43
  return this.tokenSubject.asObservable();
70
44
  }
71
- /**
72
- * Get list of user's bank conections
73
- */
74
45
  getConnections() {
75
46
  return this.get().pipe(map((bankAccounts) => {
76
47
  // get all connections
@@ -81,40 +52,6 @@ export class BasiqService extends RestService {
81
52
  return [...new Map(connections.map((connection) => [connection.id, connection])).values()];
82
53
  }));
83
54
  }
84
- /**
85
- * Listen response from basiq UI to handle result.
86
- * @param isBasiqConsentExist flag from User.ClientDetails - true if user confirmed basiq consent
87
- * @param callback function we run after basiq UI work is finished
88
- */
89
- listenBasiqResponse(isBasiqConsentExist, callback) {
90
- window.addEventListener('message', (message) => {
91
- if (message.data !== FINISH_BASIQ_EVENT) {
92
- return;
93
- }
94
- // update user's basiq consent confirmation status for the first basiq ui run
95
- if (isBasiqConsentExist) {
96
- this.updateConnections().pipe(take(1)).subscribe();
97
- }
98
- else {
99
- this.confirmConsents().pipe(take(1)).subscribe();
100
- }
101
- callback();
102
- }, { once: true });
103
- }
104
- /**
105
- * Get URL with filled params to run basiq UI iframe
106
- */
107
- generateBasiqConsentUrl(user) {
108
- return this.getToken().pipe(map((token) => {
109
- let url = BASIQ_CONSENT_URL;
110
- url = url.replace('USER_ID', user.basiqId);
111
- url = url.replace('TOKEN', token.value);
112
- if (!user.clientDetails.basiqConsentExist) {
113
- url = url.split('&action')[0];
114
- }
115
- return url;
116
- }));
117
- }
118
55
  /**
119
56
  * Listen to EventDispatcherService event related to added Bank connection
120
57
  */
@@ -137,17 +74,6 @@ export class BasiqService extends RestService {
137
74
  }
138
75
  });
139
76
  }
140
- /**
141
- * Update user's basiq connections when user confirmed basiq consent
142
- */
143
- listenBasiqConcentUpdated() {
144
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_CONSENT_UPDATED).subscribe((isConfirmed) => {
145
- if (!isConfirmed) {
146
- return;
147
- }
148
- this.updateConnections().pipe(take(1)).subscribe();
149
- });
150
- }
151
77
  }
152
78
  BasiqService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
153
79
  BasiqService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqService, providedIn: 'root' });
@@ -157,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
157
83
  providedIn: 'root'
158
84
  }]
159
85
  }] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUloRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBSTlEOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyx5RUFBeUUsQ0FBQztBQUVwRzs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDO0FBRTFDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxZQUFhLFNBQVEsV0FBeUM7SUFIM0U7O1FBS0UsaUJBQVksR0FBOEIsSUFBSSxhQUFhLEVBQWMsQ0FBQztRQUMxRSxRQUFHLEdBQVcsZ0JBQWdCLENBQUM7UUFDL0IsZUFBVSxHQUFHLFdBQVcsQ0FBQztLQXFKMUI7SUFuSkM7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixFQUFF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RUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IGFzIEJhbmtBY2NvdW50QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QvcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEJhc2lxVG9rZW4gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYXNpcS10b2tlbic7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy91c2VyL3VzZXInO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gYXMgQmFua0Nvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcblxuLyoqXG4gKiBCYXNpcSBjb25zZW50IFVJIGluaXRpYWwgVVJMLiBSZXBsYWNlIFVTRVJfSUQgYW5kIFRPS0VOIGJ5IHVzZXIgZGF0YSArIGhhbmRsZSBhY3Rpb24gcGFyYW1ldGVyXG4gKi9cbmNvbnN0IEJBU0lRX0NPTlNFTlRfVVJMID0gJ2h0dHBzOi8vY29uc2VudC5iYXNpcS5pby9ob21lP3VzZXJJZD1VU0VSX0lEJnRva2VuPVRPS0VOJmFjdGlvbj1jb25uZWN0JztcblxuLyoqXG4gKiBFdmVudCBtZXNzYWdlIG5hbWUgd2UgbGlzdGVuIHRvIGhhbmRsZSBiYXNpcSBVSSByZXN1bHRcbiAqL1xuY29uc3QgRklOSVNIX0JBU0lRX0VWRU5UID0gJ2ZpbmlzaC1iYXNpcSc7XG5cbi8qKlxuICogYmFzaXEgaXMgYSBtaWRkbGVtYW4gYmV0d2VlbiBiYW5rIGFuZCB1c2VyXG4gKiBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBmZXRjaGluZyBiYW5rIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHRva2VuOiBCYXNpcVRva2VuO1xuICB0b2tlblN1YmplY3Q6IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxCYXNpcVRva2VuPigpO1xuICB1cmw6IHN0cmluZyA9ICdiYXNpcS9hY2NvdW50cyc7XG4gIG1vZGVsQ2xhc3MgPSBCYW5rQWNjb3VudDtcblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gICAgdGhpcy5saXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXIncyBiYXNpcSBjb25zZW50cyBkYXRhIG9uIGJhY2tlbmRcbiAgICovXG4gIGNvbmZpcm1Db25zZW50cygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS9jb25zZW50c2AsIHt9KS5waXBlKFxuICAgICAgbWFwKChpc0NvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OU0VOVF9VUERBVEVELCBpc0NvbmZpcm1lZCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBiYWNrZW5kIHRvIHVwZGF0ZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbnMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL2Nvbm5lY3Rpb25zYCwge30pLnBpcGUoXG4gICAgICBtYXAoKGNvbm5lY3Rpb25zOiBCYW5rQ29ubmVjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uQkFTSVFfQ09OTkVDVElPTl9VUERBVEVELCAhIWNvbm5lY3Rpb25zKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuICAgKi9cbiAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4gICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogQmFzaXFUb2tlbiA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhc2lxVG9rZW4ocmVzcG9uc2VbJ2FjY2Vzc190b2tlbiddLCBuZXcgRGF0ZShub3cgKyByZXNwb25zZVsnZXhwaXJlc19pbiddICogMTAwMCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgodG9rZW46IEJhc2lxVG9rZW4pID0+IHtcbiAgICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47XG4gICAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiB1c2VyJ3MgYmFuayBjb25lY3Rpb25zXG4gICAqL1xuICBnZXRDb25uZWN0aW9ucygpOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgLy8gZ2V0IGFsbCBjb25uZWN0aW9uc1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25bXSA9IGJhbmtBY2NvdW50cy5tYXAoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudC5iYW5rQ29ubmVjdGlvbjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gcmV0dXJuIHdpdGhvdXQgZHVwbGljYXRlc1xuICAgICAgICByZXR1cm4gWy4uLm5ldyBNYXAoY29ubmVjdGlvbnMubWFwKChjb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbikgPT4gW2Nvbm5lY3Rpb24uaWQsIGNvbm5lY3Rpb25dKSkudmFsdWVzKCldO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiByZXNwb25zZSBmcm9tIGJhc2lxIFVJIHRvIGhhbmRsZSByZXN1bHQuXG4gICAqIEBwYXJhbSBpc0Jhc2lxQ29uc2VudEV4aXN0IGZsYWcgZnJvbSBVc2VyLkNsaWVudERldGFpbHMgLSB0cnVlIGlmIHVzZXIgY29uZmlybWVkIGJhc2lxIGNvbnNlbnRcbiAgICogQHBhcmFtIGNhbGxiYWNrIGZ1bmN0aW9uIHdlIHJ1biBhZnRlciBiYXNpcSBVSSB3b3JrIGlzIGZpbmlzaGVkXG4gICAqL1xuICBsaXN0ZW5CYXNpcVJlc3BvbnNlKGlzQmFzaXFDb25zZW50RXhpc3Q6IGJvb2xlYW4sIGNhbGxiYWNrOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIChtZXNzYWdlOiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgIGlmIChtZXNzYWdlLmRhdGEgIT09IEZJTklTSF9CQVNJUV9FVkVOVCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHVwZGF0ZSB1c2VyJ3MgYmFzaXEgY29uc2VudCBjb25maXJtYXRpb24gc3RhdHVzIGZvciB0aGUgZmlyc3QgYmFzaXEgdWkgcnVuXG4gICAgICBpZiAoaXNCYXNpcUNvbnNlbnRFeGlzdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uZmlybUNvbnNlbnRzKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCB7b25jZTogdHJ1ZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBVUkwgd2l0aCBmaWxsZWQgcGFyYW1zIHRvIHJ1biBiYXNpcSBVSSBpZnJhbWVcbiAgICovXG4gIGdlbmVyYXRlQmFzaXFDb25zZW50VXJsKHVzZXI6IFVzZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmdldFRva2VuKCkucGlwZShcbiAgICAgIG1hcCgodG9rZW46IEJhc2lxVG9rZW4pOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgdXJsOiBzdHJpbmcgPSBCQVNJUV9DT05TRU5UX1VSTDtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ1VTRVJfSUQnLCB1c2VyLmJhc2lxSWQpO1xuICAgICAgICB1cmwgPSB1cmwucmVwbGFjZSgnVE9LRU4nLCB0b2tlbi52YWx1ZSk7XG5cbiAgICAgICAgaWYgKCF1c2VyLmNsaWVudERldGFpbHMuYmFzaXFDb25zZW50RXhpc3QpIHtcbiAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZhY3Rpb24nKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBCYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gYmFua0FjY291bnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHVzZXIncyBiYXNpcSBjb25uZWN0aW9ucyB3aGVuIHVzZXIgY29uZmlybWVkIGJhc2lxIGNvbnNlbnRcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuQmFzaXFDb25jZW50VXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05TRU5UX1VQREFURUQpLnN1YnNjcmliZSgoaXNDb25maXJtZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICghaXNDb25maXJtZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RkFBd0Y7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVoRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFFcEc7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUF5QztJQUgzRTs7UUFLRSxpQkFBWSxHQUE4QixJQUFJLGFBQWEsRUFBYyxDQUFDO1FBQzFFLFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztRQUMvQixlQUFVLEdBQUcsV0FBVyxDQUFDO0tBb0UxQjtJQWxFQzs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUM7aUJBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sR0FBRyxHQUFXLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBRXpDLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRyxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3BCLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtZQUNsQyxzQkFBc0I7WUFDdEIsTUFBTSxXQUFXLEdBQXFCLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7Z0JBQ2xGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUVILDRCQUE0QjtZQUM1QixPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBMEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFRLEVBQUU7WUFDakgsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDckcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQXZFVSxZQUFZOzhHQUFaLFlBQVksY0FGWCxNQUFNOzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQmFzaXEgMS4wIHJlbW92ZSBpZiB3ZSB3aWxsIHVzZSBiYXNpcSAyLjAgb3IgcmVmYWN0b3IgaWYgd2Ugc3RheSB3aXRoIGJhc2lxIDEuMFxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgYXMgQmFua0FjY291bnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdC9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlQ2xpZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogYmFzaXEgaXMgYSBtaWRkbGVtYW4gYmV0d2VlbiBiYW5rIGFuZCB1c2VyXG4gKiBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBmZXRjaGluZyBiYW5rIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFzaXFTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0FjY291bnRCYXNlLCBCYW5rQWNjb3VudD4ge1xuICB0b2tlbjogQmFzaXFUb2tlbjtcbiAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbiAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFjY2VzcyB0b2tlbiB0byB1c2UgYmFzaXEgY29ubmVjdCB1aSBpZnJhbWVcbiAgICovXG4gIGdldFRva2VuKCk6IE9ic2VydmFibGU8QmFzaXFUb2tlbj4ge1xuICAgIGlmICghdGhpcy50b2tlbiB8fCB0aGlzLnRva2VuLmlzRXhwaXJlZCgpKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL3Rva2Vuc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYXNpcVRva2VuKHJlc3BvbnNlWydhY2Nlc3NfdG9rZW4nXSwgbmV3IERhdGUobm93ICsgcmVzcG9uc2VbJ2V4cGlyZXNfaW4nXSAqIDEwMDApKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHRva2VuOiBCYXNpcVRva2VuKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2tlblN1YmplY3QubmV4dCh0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICAvLyBnZXQgYWxsIGNvbm5lY3Rpb25zXG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zOiBCYW5rQ29ubmVjdGlvbltdID0gYmFua0FjY291bnRzLm1hcCgoYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGJhbmtBY2NvdW50LmJhbmtDb25uZWN0aW9uO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4gICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBCYW5rIGNvbm5lY3Rpb25cbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQ09OTkVDVElPTl9BRERFRCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2goKS5zdWJzY3JpYmUoKGJhbmtBY2NvdW50czogQmFua0FjY291bnRbXSkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gYmFua0FjY291bnRzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuXG4vLyBAVE9ETyBCYXNpcSAzLjAgZnVuY3Rpb25hbGl0eSByZW1vdmUgd2hlbiB3ZSBkZWNpZGUgd2hhdCBiYXNpcSB2ZXJzaW9uIHdlIHdpbGwgdXNlICgxIG9yIDIpXG4vLyBpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vLyBpbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCBhcyBCYW5rQWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuLy8gaW1wb3J0IHsgVXNlckV2ZW50VHlwZUNsaWVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWNsaWVudC10eXBlLmVudW0nO1xuLy8gaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0L3Jlc3Quc2VydmljZSc7XG4vLyBpbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG4vLyBpbXBvcnQgeyBCYXNpcVRva2VuIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFzaXEtdG9rZW4nO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbi8vIGltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbi8vIGltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuLy8gaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50Jztcbi8vIGltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvdXNlci91c2VyJztcbi8vIGltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscy9iYW5rL2JhbmstY29ubmVjdGlvbic7XG4vL1xuLy8gLyoqXG4vLyAgKiBCYXNpcSBjb25zZW50IFVJIGluaXRpYWwgVVJMLiBSZXBsYWNlIFVTRVJfSUQgYW5kIFRPS0VOIGJ5IHVzZXIgZGF0YSArIGhhbmRsZSBhY3Rpb24gcGFyYW1ldGVyXG4vLyAgKi9cbi8vIGNvbnN0IEJBU0lRX0NPTlNFTlRfVVJMID0gJ2h0dHBzOi8vY29uc2VudC5iYXNpcS5pby9ob21lP3VzZXJJZD1VU0VSX0lEJnRva2VuPVRPS0VOJmFjdGlvbj1jb25uZWN0Jztcbi8vXG4vLyAvKipcbi8vICAqIEV2ZW50IG1lc3NhZ2UgbmFtZSB3ZSBsaXN0ZW4gdG8gaGFuZGxlIGJhc2lxIFVJIHJlc3VsdFxuLy8gICovXG4vLyBjb25zdCBGSU5JU0hfQkFTSVFfRVZFTlQgPSAnZmluaXNoLWJhc2lxJztcbi8vXG4vLyAvKipcbi8vICAqIGJhc2lxIGlzIGEgbWlkZGxlbWFuIGJldHdlZW4gYmFuayBhbmQgdXNlclxuLy8gICogc2VydmljZSBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgYmFuayByZWxhdGVkIGluZm9ybWF0aW9uXG4vLyAgKi9cbi8vIEBJbmplY3RhYmxlKHtcbi8vICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4vLyB9KVxuLy8gZXhwb3J0IGNsYXNzIEJhc2lxU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtBY2NvdW50QmFzZSwgQmFua0FjY291bnQ+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuLy8gICB0b2tlbjogQmFzaXFUb2tlbjtcbi8vICAgdG9rZW5TdWJqZWN0OiBSZXBsYXlTdWJqZWN0PEJhc2lxVG9rZW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8QmFzaXFUb2tlbj4oKTtcbi8vICAgdXJsOiBzdHJpbmcgPSAnYmFzaXEvYWNjb3VudHMnO1xuLy8gICBtb2RlbENsYXNzID0gQmFua0FjY291bnQ7XG4vL1xuLy8gICAvKipcbi8vICAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZVxuLy8gICAgKi9cbi8vICAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuLy8gICAgIHRoaXMubGlzdGVuVG9CYW5rQ29ubmVjdGlvbkFkZGVkKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4vLyAgICAgdGhpcy5saXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbnNlbnRzIGRhdGEgb24gYmFja2VuZFxuLy8gICAgKi9cbi8vICAgY29uZmlybUNvbnNlbnRzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2Jhc2lxL2NvbnNlbnRzYCwge30pLnBpcGUoXG4vLyAgICAgICBtYXAoKGlzQ29uZmlybWVkOiBib29sZWFuKSA9PiB7XG4vLyAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9DT05TRU5UX1VQREFURUQsIGlzQ29uZmlybWVkKSk7XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBOb3RpZnkgYmFja2VuZCB0byB1cGRhdGUgY29ubmVjdGlvbnNcbi8vICAgICovXG4vLyAgIHVwZGF0ZUNvbm5lY3Rpb25zKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuLy8gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9iYXNpcS9jb25uZWN0aW9uc2AsIHt9KS5waXBlKFxuLy8gICAgICAgbWFwKChjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25CYXNlW10pID0+IHtcbi8vICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTk5FQ1RJT05fVVBEQVRFRCwgISFjb25uZWN0aW9ucykpO1xuLy8gICAgICAgfSlcbi8vICAgICApO1xuLy8gICB9XG4vL1xuLy8gICAvKipcbi8vICAgICogYWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBjb25uZWN0IHVpIGlmcmFtZVxuLy8gICAgKi9cbi8vICAgZ2V0VG9rZW4oKTogT2JzZXJ2YWJsZTxCYXNpcVRva2VuPiB7XG4vLyAgICAgaWYgKCF0aGlzLnRva2VuIHx8IHRoaXMudG9rZW4uaXNFeHBpcmVkKCkpIHtcbi8vICAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vYmFzaXEvdG9rZW5zYClcbi8vICAgICAgICAgLnBpcGUoXG4vLyAgICAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KTogQmFzaXFUb2tlbiA9PiB7XG4vL1xuLy8gICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbi8vICAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZVsnYWNjZXNzX3Rva2VuJ10sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlWydleHBpcmVzX2luJ10gKiAxMDAwKSk7XG4vLyAgICAgICAgICAgfSlcbi8vICAgICAgICAgKVxuLy8gICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuLy8gICAgICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbi8vICAgICAgICAgICB0aGlzLnRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbi8vICAgICAgICAgfSk7XG4vLyAgICAgfVxuLy9cbi8vICAgICByZXR1cm4gdGhpcy50b2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgbGlzdCBvZiB1c2VyJ3MgYmFuayBjb25lY3Rpb25zXG4vLyAgICAqL1xuLy8gICBnZXRDb25uZWN0aW9ucygpOiBPYnNlcnZhYmxlPEJhbmtDb25uZWN0aW9uW10+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuLy8gICAgICAgbWFwKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgLy8gZ2V0IGFsbCBjb25uZWN0aW9uc1xuLy8gICAgICAgICBjb25zdCBjb25uZWN0aW9uczogQmFua0Nvbm5lY3Rpb25bXSA9IGJhbmtBY2NvdW50cy5tYXAoKGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCkgPT4ge1xuLy8gICAgICAgICAgIHJldHVybiBiYW5rQWNjb3VudC5iYW5rQ29ubmVjdGlvbjtcbi8vICAgICAgICAgfSk7XG4vL1xuLy8gICAgICAgICAvLyByZXR1cm4gd2l0aG91dCBkdXBsaWNhdGVzXG4vLyAgICAgICAgIHJldHVybiBbLi4ubmV3IE1hcChjb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKSA9PiBbY29ubmVjdGlvbi5pZCwgY29ubmVjdGlvbl0pKS52YWx1ZXMoKV07XG4vLyAgICAgICB9KVxuLy8gICAgICk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBMaXN0ZW4gcmVzcG9uc2UgZnJvbSBiYXNpcSBVSSB0byBoYW5kbGUgcmVzdWx0LlxuLy8gICAgKiBAcGFyYW0gaXNCYXNpcUNvbnNlbnRFeGlzdCBmbGFnIGZyb20gVXNlci5DbGllbnREZXRhaWxzIC0gdHJ1ZSBpZiB1c2VyIGNvbmZpcm1lZCBiYXNpcSBjb25zZW50XG4vLyAgICAqIEBwYXJhbSBjYWxsYmFjayBmdW5jdGlvbiB3ZSBydW4gYWZ0ZXIgYmFzaXEgVUkgd29yayBpcyBmaW5pc2hlZFxuLy8gICAgKi9cbi8vICAgbGlzdGVuQmFzaXFSZXNwb25zZShpc0Jhc2lxQ29uc2VudEV4aXN0OiBib29sZWFuLCBjYWxsYmFjazogKCkgPT4gYW55KTogdm9pZCB7XG4vLyAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAobWVzc2FnZTogTWVzc2FnZUV2ZW50KSA9PiB7XG4vLyAgICAgICBpZiAobWVzc2FnZS5kYXRhICE9PSBGSU5JU0hfQkFTSVFfRVZFTlQpIHtcbi8vICAgICAgICAgcmV0dXJuO1xuLy8gICAgICAgfVxuLy9cbi8vICAgICAgIC8vIHVwZGF0ZSB1c2VyJ3MgYmFzaXEgY29uc2VudCBjb25maXJtYXRpb24gc3RhdHVzIGZvciB0aGUgZmlyc3QgYmFzaXEgdWkgcnVuXG4vLyAgICAgICBpZiAoaXNCYXNpcUNvbnNlbnRFeGlzdCkge1xuLy8gICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25zKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgIHRoaXMuY29uZmlybUNvbnNlbnRzKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcbi8vICAgICAgIH1cbi8vXG4vLyAgICAgICBjYWxsYmFjaygpO1xuLy8gICAgIH0sIHtvbmNlOiB0cnVlfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBHZXQgVVJMIHdpdGggZmlsbGVkIHBhcmFtcyB0byBydW4gYmFzaXEgVUkgaWZyYW1lXG4vLyAgICAqL1xuLy8gICBnZW5lcmF0ZUJhc2lxQ29uc2VudFVybCh1c2VyOiBVc2VyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbi8vICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbigpLnBpcGUoXG4vLyAgICAgICBtYXAoKHRva2VuOiBCYXNpcVRva2VuKTogc3RyaW5nID0+IHtcbi8vICAgICAgICAgbGV0IHVybDogc3RyaW5nID0gQkFTSVFfQ09OU0VOVF9VUkw7XG4vLyAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCdVU0VSX0lEJywgdXNlci5iYXNpcUlkKTtcbi8vICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ1RPS0VOJywgdG9rZW4udmFsdWUpO1xuLy9cbi8vICAgICAgICAgaWYgKCF1c2VyLmNsaWVudERldGFpbHMuYmFzaXFDb25zZW50RXhpc3QpIHtcbi8vICAgICAgICAgICB1cmwgPSB1cmwuc3BsaXQoJyZhY3Rpb24nKVswXTtcbi8vICAgICAgICAgfVxuLy9cbi8vICAgICAgICAgcmV0dXJuIHVybDtcbi8vICAgICAgIH0pXG4vLyAgICAgKTtcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gYWRkZWQgQmFuayBjb25uZWN0aW9uXG4vLyAgICAqL1xuLy8gICBwcml2YXRlIGxpc3RlblRvQmFua0Nvbm5lY3Rpb25BZGRlZCgpOiB2b2lkIHtcbi8vICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERUQpLnN1YnNjcmliZSgoKSA9PiB7XG4vLyAgICAgICB0aGlzLmZldGNoKCkuc3Vic2NyaWJlKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbi8vICAgICAgICAgdGhpcy5jYWNoZSA9IGJhbmtBY2NvdW50cztcbi8vICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuLy8gICAgICAgfSk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgYmFzaXEgYWNjb3VudHMgbGlzdFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuLy8gICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVDbGllbnRUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMpIHtcbi8vICAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4vLyAgICAgICAgIHRoaXMuZ2V0KCkuc3Vic2NyaWJlKCk7XG4vLyAgICAgICB9XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBVcGRhdGUgdXNlcidzIGJhc2lxIGNvbm5lY3Rpb25zIHdoZW4gdXNlciBjb25maXJtZWQgYmFzaXEgY29uc2VudFxuLy8gICAgKi9cbi8vICAgcHJpdmF0ZSBsaXN0ZW5CYXNpcUNvbmNlbnRVcGRhdGVkKCk6IHZvaWQge1xuLy8gICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0NPTlNFTlRfVVBEQVRFRCkuc3Vic2NyaWJlKChpc0NvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuLy8gICAgICAgaWYgKCFpc0NvbmZpcm1lZCkge1xuLy8gICAgICAgICByZXR1cm47XG4vLyAgICAgICB9XG4vL1xuLy8gICAgICAgdGhpcy51cGRhdGVDb25uZWN0aW9ucygpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCk7XG4vLyAgICAgfSk7XG4vLyAgIH1cbi8vIH1cbiJdfQ==