taxtank-core 0.33.103 → 0.33.105
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.
- package/esm2022/src/lib/collections/bank-account.collection.mjs +2 -2
- package/esm2022/src/lib/collections/property/property-category-movement.collection.mjs +2 -1
- package/esm2022/src/lib/db/Models/property/property-forecast.mjs +1 -1
- package/esm2022/src/lib/forms/property/property-add.form.mjs +25 -38
- package/esm2022/src/lib/forms/property/property-forecast.form.mjs +1 -2
- package/esm2022/src/lib/models/client/sharesight/sharesight-details-messages.enum.mjs +3 -2
- package/esm2022/src/lib/models/client/sharesight/sharesight-details.mjs +5 -1
- package/esm2022/src/lib/models/property/property-forecast.mjs +6 -11
- package/esm2022/src/lib/models/property/property.mjs +3 -3
- package/esm2022/src/lib/models/report/property/property-report-item-depreciation.mjs +1 -2
- package/esm2022/src/lib/services/http/property/property-valuation/property-valuation.service.mjs +2 -1
- package/esm2022/src/lib/services/http/property/property.service.mjs +5 -2
- package/fesm2022/taxtank-core.mjs +40 -50
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/db/Models/property/property-forecast.d.ts +3 -3
- package/src/lib/forms/property/property-add.form.d.ts +5 -7
- package/src/lib/models/client/sharesight/sharesight-details-messages.enum.d.ts +2 -1
- package/src/lib/models/client/sharesight/sharesight-details.d.ts +1 -0
- package/src/lib/models/property/property-forecast.d.ts +0 -6
- package/src/lib/services/http/property/property-valuation/property-valuation.service.d.ts +1 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
2
|
-
import { throwError } from 'rxjs';
|
2
|
+
import { of, throwError } from 'rxjs';
|
3
3
|
import { catchError, map } from 'rxjs/operators';
|
4
4
|
import { plainToClass } from 'class-transformer';
|
5
5
|
import { AppEvent, AppEventTypeEnum, Property, PropertyCategoryMovement, PropertySale, PropertyShare, PropertySubscription, PropertyValuation } from '../../../models';
|
@@ -116,6 +116,9 @@ export class PropertyService extends RestService {
|
|
116
116
|
updatedProperty.corelogicLastRequest = new Date();
|
117
117
|
this.updateCache([updatedProperty], 'put');
|
118
118
|
return stats;
|
119
|
+
}), catchError((error) => {
|
120
|
+
this.handleError(error);
|
121
|
+
return of({ growthPercent: 0, lowMarketValue: 0, marketValue: 0, highMarketValue: 0 });
|
119
122
|
}));
|
120
123
|
}
|
121
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PropertyService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
@@ -130,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
130
133
|
type: Inject,
|
131
134
|
args: ['environment']
|
132
135
|
}] }] });
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixRQUFRLEVBQUUsd0JBQXdCLEVBQ2xDLFlBQVksRUFDWixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBRXBGOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUF1RDtJQU0xRixZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMN0QsZUFBVSxHQUFvQixRQUFRLENBQUM7UUFDdkMsb0JBQWUsR0FBOEIsa0JBQWtCLENBQUM7UUFDaEUsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFDM0Isb0JBQWUsR0FBaUIs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QyxDQUFDO1lBQ2xFLGVBQWUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOytHQXBJVSxlQUFlLGtCQU1OLGFBQWE7bUhBTnRCLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT2MsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQcm9wZXJ0eSBhcyBQcm9wZXJ0eUJhc2UsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uIGFzIFByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZVxufSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sIE5vdGlmaWNhdGlvbixcbiAgUHJvcGVydHksIFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudCxcbiAgUHJvcGVydHlTYWxlLFxuICBQcm9wZXJ0eVNoYXJlLFxuICBQcm9wZXJ0eVN1YnNjcmlwdGlvbixcbiAgUHJvcGVydHlWYWx1YXRpb25cbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQcm9wZXJ0eU1lc3NhZ2VzRW51bSB9IGZyb20gJy4vcHJvcGVydHktbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvcmVsb2dpY1N0YXRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWNvcmVsb2dpYy1zdGF0cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5cbi8qKlxuICogQFRvZG8gQWxleCByZW1vdmUgZnVuY3Rpb25hbGl0eSByZWxhdGVkIHRvIFByb3BlcnR5U2hhcmVcbiAqIEBUT0RPIEFsZXggKFRULTE3NzcpOiByZXBsYWNlIGFsbCBldmVudCBsaXN0ZW5lcnMgd2l0aCB0aGUgbmV3IHRoaXMubGlzdGVuKClcbiAqIFNlcnZpY2UgZm9yIHdvcmsgd2l0aCBQcm9wZXJ0eVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxQcm9wZXJ0eUJhc2UsIFByb3BlcnR5LCBQcm9wZXJ0eUNvbGxlY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgUHJvcGVydHkgPSBQcm9wZXJ0eTtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgUHJvcGVydHlDb2xsZWN0aW9uID0gUHJvcGVydHlDb2xsZWN0aW9uO1xuICBlbmRwb2ludFVyaSA9ICdwcm9wZXJ0aWVzJztcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ2RlbGV0ZUJhdGNoJ107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgZ2V0KCk6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCgpLnBpcGUobWFwKChwcm9wZXJ0aWVzKSA9PiBwcm9wZXJ0aWVzLmdldEFjdGl2ZSgpKSk7XG4gIH1cblxuICBnZXRBbGwoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlIHdoZW4gZm9yZWNhc3QgbW92ZWQgdG8gc2VwYXJhdGVkIGFwaVxuICAgKi9cbiAgcHV0KHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8UHJvcGVydHk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KHByb3BlcnR5KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZFByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5ID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRCwgcHJvcGVydHkpKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkUHJvcGVydHk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgc2hhcmVzaWdodENvbm5lY3QocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHksIGAke3RoaXMuYXBpVXJsfS8ke3Byb3BlcnR5LmlkfS9zaGFyZXNpZ2h0LWNvbm5lY3RgKTtcbiAgfVxuXG4gIHNoYXJlc2lnaHREaXNjb25uZWN0KHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8UHJvcGVydHk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KHByb3BlcnR5LCBgJHt0aGlzLmFwaVVybH0vJHtwcm9wZXJ0eS5pZH0vc2hhcmVzaWdodC1kaXNjb25uZWN0YCk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbm8gcmVmcmVzaCBjYWNoZSB3aXRoIHRoaXMudXBkYXRlQ2FjaGUoW3RoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgY2hhbmdlLm1vZGVsLnByb3BlcnR5LmlkKV0sICdwdXQnKTtcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICAvLyBzaGFyZSBpbnZpdGUgYWNjZXB0ZWQgZXZlbnQgZ2l2ZXMgYWNjZXNzIHRvIG5ldyBwcm9wZXJ0eVxuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5U2hhcmUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3B1dCddKTtcbiAgICAvLyBAVE9ETyBnZXQgZnJvbSBzZXBhcmF0ZWQgYXBpP1xuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5U2FsZSwgdGhpcy5yZWZyZXNoQ2FjaGUsIFsncG9zdCcsICdwdXQnLCAnZGVsZXRlJ10pO1xuICAgIC8vIHByb3BlcnR5IGNhY2hlcyBjaGlsZCBlbnRpdGllcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlWYWx1YXRpb24sICh2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbltdKSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgdmFsdWF0aW9uc1swXS5wcm9wZXJ0eS5pZCk7XG4gICAgICBpZiAocHJvcGVydHkudmFsdWF0aW9uLmRhdGUgPCB2YWx1YXRpb25zWzBdLmRhdGUpIHtcbiAgICAgICAgcHJvcGVydHkudmFsdWF0aW9uID0gdmFsdWF0aW9uc1swXTtcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbcHJvcGVydHldLCAncHV0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LCB0aGlzLnJlZnJlc2hDYWNoZSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgbm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZVR5cGVFbnVtLlNIQVJFU0lHSFRfSU1QT1JUKSB7XG4gICAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEZXByZWNpYXRpb25DYWxjdWxhdGlvbihwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9wZXJ0eVRvVXBkYXRlOiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgeyBpZDogcHJvcGVydHkuaWQsIGRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uOiBwcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiB9KVxuXG4gICAgcmV0dXJuIHRoaXMucHV0KHByb3BlcnR5VG9VcGRhdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX0RFUFJFQ0lBVElPTl9DQUxDVUxBVElPTl9VUERBVEVELCB1cGRhdGVkUHJvcGVydHkpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIEFjdGl2YXRlIGRlYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydHktc3Vic2NyaXB0aW9uc2AsIHsgcHJvcGVydHkgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHsgc3Vic2NyaXB0aW9uczogW25ld1Byb3BlcnR5U3Vic2NyaXB0aW9uXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFthY3RpdmF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIERlYWN0aXZhdGUgYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBkZWFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnR5LXN1YnNjcmlwdGlvbnMvJHtwcm9wZXJ0eS5nZXRDdXJyZW50U3Vic2NyaXB0aW9uKCkuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFtkZWFjdGl2YXRlZFByb3BlcnR5XSwgJ3B1dCcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHByb3BlcnR5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKFByb3BlcnR5TWVzc2FnZXNFbnVtLkRFTEVURV81MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgZ2V0Q29yZWxvZ2ljU3RhdHMocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvcmVsb2dpY1N0YXRzSW50ZXJmYWNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvcGVydHlDb3JlbG9naWNTdGF0c0ludGVyZmFjZT4oYCR7dGhpcy5hcGlVcmx9LyR7cHJvcGVydHkuaWR9L2NvcmVsb2dpYy1zdGF0c2ApXG4gICAgICAucGlwZShtYXAoKHN0YXRzKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRQcm9wZXJ0eSA9IHRoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgcHJvcGVydHkuaWQpO1xuICAgICAgICB1cGRhdGVkUHJvcGVydHkuY29yZWxvZ2ljTGFzdFJlcXVlc3QgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFt1cGRhdGVkUHJvcGVydHldLCAncHV0Jyk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXRzO1xuICAgICAgfSkpO1xuICB9XG59XG4iXX0=
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsUUFBUSxFQUFFLHdCQUF3QixFQUNsQyxZQUFZLEVBQ1osYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUVwRjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBdUQ7SUFNMUYsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTDdELGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQThCLGtCQUFrQixDQUFDO1FBQ2hFLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLG9C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LEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLGVBQWUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0EzSVUsZUFBZSxrQkFNTixhQUFhO21IQU50QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHkgYXMgUHJvcGVydHlCYXNlLFxuICBQcm9wZXJ0eVN1YnNjcmlwdGlvbiBhcyBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2Vcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1xuICBBcHBFdmVudCxcbiAgQXBwRXZlbnRUeXBlRW51bSwgTm90aWZpY2F0aW9uLFxuICBQcm9wZXJ0eSwgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LFxuICBQcm9wZXJ0eVNhbGUsXG4gIFByb3BlcnR5U2hhcmUsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uLFxuICBQcm9wZXJ0eVZhbHVhdGlvblxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAndGF4dGFuay1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFByb3BlcnR5TWVzc2FnZXNFbnVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1tZXNzYWdlcy5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5Q29yZWxvZ2ljU3RhdHNJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktY29yZWxvZ2ljLXN0YXRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBAVG9kbyBBbGV4IHJlbW92ZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gUHJvcGVydHlTaGFyZVxuICogQFRPRE8gQWxleCAoVFQtMTc3Nyk6IHJlcGxhY2UgYWxsIGV2ZW50IGxpc3RlbmVycyB3aXRoIHRoZSBuZXcgdGhpcy5saXN0ZW4oKVxuICogU2VydmljZSBmb3Igd29yayB3aXRoIFByb3BlcnR5XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFByb3BlcnR5QmFzZSwgUHJvcGVydHksIFByb3BlcnR5Q29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eSA9IFByb3BlcnR5O1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSBQcm9wZXJ0eUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ3Byb3BlcnRpZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KCkucGlwZShtYXAoKHByb3BlcnRpZXMpID0+IHByb3BlcnRpZXMuZ2V0QWN0aXZlKCkpKTtcbiAgfVxuXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUgd2hlbiBmb3JlY2FzdCBtb3ZlZCB0byBzZXBhcmF0ZWQgYXBpXG4gICAqL1xuICBwdXQocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVELCBwcm9wZXJ0eSkpO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRQcm9wZXJ0eTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBzaGFyZXNpZ2h0Q29ubmVjdChwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5PiB7XG4gICAgcmV0dXJuIHN1cGVyLnB1dChwcm9wZXJ0eSwgYCR7dGhpcy5hcGlVcmx9LyR7cHJvcGVydHkuaWR9L3NoYXJlc2lnaHQtY29ubmVjdGApO1xuICB9XG5cbiAgc2hhcmVzaWdodERpc2Nvbm5lY3QocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHksIGAke3RoaXMuYXBpVXJsfS8ke3Byb3BlcnR5LmlkfS9zaGFyZXNpZ2h0LWRpc2Nvbm5lY3RgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBubyByZWZyZXNoIGNhY2hlIHdpdGggdGhpcy51cGRhdGVDYWNoZShbdGhpcy5nZXRDYWNoZSgpLmZpbmRCeSgnaWQnLCBjaGFuZ2UubW9kZWwucHJvcGVydHkuaWQpXSwgJ3B1dCcpO1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIC8vIHNoYXJlIGludml0ZSBhY2NlcHRlZCBldmVudCBnaXZlcyBhY2Nlc3MgdG8gbmV3IHByb3BlcnR5XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlTaGFyZSwgdGhpcy5yZWZyZXNoQ2FjaGUsIFsncHV0J10pO1xuICAgIC8vIEBUT0RPIGdldCBmcm9tIHNlcGFyYXRlZCBhcGk/XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlTYWxlLCB0aGlzLnJlZnJlc2hDYWNoZSwgWydwb3N0JywgJ3B1dCcsICdkZWxldGUnXSk7XG4gICAgLy8gcHJvcGVydHkgY2FjaGVzIGNoaWxkIGVudGl0aWVzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2VcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVZhbHVhdGlvbiwgKHZhbHVhdGlvbnM6IFByb3BlcnR5VmFsdWF0aW9uW10pID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5nZXRDYWNoZSgpLmZpbmRCeSgnaWQnLCB2YWx1YXRpb25zWzBdLnByb3BlcnR5LmlkKTtcbiAgICAgIGlmIChwcm9wZXJ0eS52YWx1YXRpb24uZGF0ZSA8IHZhbHVhdGlvbnNbMF0uZGF0ZSkge1xuICAgICAgICBwcm9wZXJ0eS52YWx1YXRpb24gPSB2YWx1YXRpb25zWzBdO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFtwcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQsIHRoaXMucmVmcmVzaENhY2hlKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQpLnN1YnNjcmliZSgobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCAmJiBub3RpZmljYXRpb24uZXZlbnRUeXBlID09PSBVc2VyRXZlbnRUeXBlVHlwZUVudW0uU0hBUkVTSUdIVF9JTVBPUlQpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZURlcHJlY2lhdGlvbkNhbGN1bGF0aW9uKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHByb3BlcnR5VG9VcGRhdGU6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCB7IGlkOiBwcm9wZXJ0eS5pZCwgZGVwcmVjaWF0aW9uQ2FsY3VsYXRpb246IHByb3BlcnR5LmRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uIH0pXG5cbiAgICByZXR1cm4gdGhpcy5wdXQocHJvcGVydHlUb1VwZGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfREVQUkVDSUFUSU9OX0NBTENVTEFUSU9OX1VQREFURUQsIHVwZGF0ZWRQcm9wZXJ0eSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIHNlcGFyYXRlZCBhcGlcbiAgICogQWN0aXZhdGUgZGVhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zYCwgeyBwcm9wZXJ0eSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocHJvcGVydHlTdWJzY3JpcHRpb25CYXNlOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdQcm9wZXJ0eVN1YnNjcmlwdGlvbjogUHJvcGVydHlTdWJzY3JpcHRpb24gPSBwbGFpblRvQ2xhc3MoUHJvcGVydHlTdWJzY3JpcHRpb24sIHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZSk7XG4gICAgICAgICAgY29uc3QgYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbbmV3UHJvcGVydHlTdWJzY3JpcHRpb25dIH0pKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoW2FjdGl2YXRlZFByb3BlcnR5XSwgJ3B1dCcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIHNlcGFyYXRlZCBhcGlcbiAgICogRGVhY3RpdmF0ZSBhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGRlYWN0aXZhdGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydHktc3Vic2NyaXB0aW9ucy8ke3Byb3BlcnR5LmdldEN1cnJlbnRTdWJzY3JpcHRpb24oKS5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVhY3RpdmF0ZWRQcm9wZXJ0eTogUHJvcGVydHkgPSBwbGFpblRvQ2xhc3MoUHJvcGVydHksIE9iamVjdC5hc3NpZ24oe30sIHByb3BlcnR5LCB7IHN1YnNjcmlwdGlvbnM6IFtdIH0pKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoW2RlYWN0aXZhdGVkUHJvcGVydHldLCAncHV0Jyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZGVsZXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBzdXBlci5kZWxldGUocHJvcGVydHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoUHJvcGVydHlNZXNzYWdlc0VudW0uREVMRVRFXzUwMCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBnZXRDb3JlbG9naWNTdGF0cyhwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29yZWxvZ2ljU3RhdHNJbnRlcmZhY2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9wZXJ0eUNvcmVsb2dpY1N0YXRzSW50ZXJmYWNlPihgJHt0aGlzLmFwaVVybH0vJHtwcm9wZXJ0eS5pZH0vY29yZWxvZ2ljLXN0YXRzYClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHN0YXRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFByb3BlcnR5ID0gdGhpcy5nZXRDYWNoZSgpLmZpbmRCeSgnaWQnLCBwcm9wZXJ0eS5pZCk7XG4gICAgICAgICAgdXBkYXRlZFByb3BlcnR5LmNvcmVsb2dpY0xhc3RSZXF1ZXN0ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFt1cGRhdGVkUHJvcGVydHldLCAncHV0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gc3RhdHM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgcmV0dXJuIG9mKHsgZ3Jvd3RoUGVyY2VudDogMCwgbG93TWFya2V0VmFsdWU6IDAsIG1hcmtldFZhbHVlOiAwLCBoaWdoTWFya2V0VmFsdWU6IDAgfSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
|
@@ -2311,6 +2311,7 @@ class PropertyCategoryMovementCollection extends Collection {
|
|
2311
2311
|
* @TODO TT-2355 Alex refactor propertyForecast, use separated api (then I can remove property from param)
|
2312
2312
|
*/
|
2313
2313
|
filterByForecast(property, forecast) {
|
2314
|
+
console.log(property, forecast);
|
2314
2315
|
return this.filterBy('property.id', property.id)
|
2315
2316
|
.filterByFinancialYear('fromDate', 'toDate', new FinancialYear(forecast.financialYear));
|
2316
2317
|
}
|
@@ -4387,7 +4388,8 @@ __decorate([
|
|
4387
4388
|
|
4388
4389
|
var SharesightDetailsMessagesEnum;
|
4389
4390
|
(function (SharesightDetailsMessagesEnum) {
|
4390
|
-
SharesightDetailsMessagesEnum["
|
4391
|
+
SharesightDetailsMessagesEnum["HOLDING_CONNECTED"] = "We're syncing your ShareSight trades, which might take a few minutes.";
|
4392
|
+
SharesightDetailsMessagesEnum["PROPERTY_CONNECTED"] = "We're syncing your properties, which might take a few minutes.";
|
4391
4393
|
SharesightDetailsMessagesEnum["DISCONNECTED"] = "Sharesight disconnected";
|
4392
4394
|
SharesightDetailsMessagesEnum["DISCONNECT_CONFIRM"] = "Disconnecting ShareSight means we can no longer sync data. Any trades already imported will become editable in TaxTank.";
|
4393
4395
|
SharesightDetailsMessagesEnum["ERROR"] = "Sharesight connection error";
|
@@ -4403,6 +4405,9 @@ class SharesightDetails extends AbstractModel {
|
|
4403
4405
|
isHolding() {
|
4404
4406
|
return this.redirectUri.includes('holdings-tank');
|
4405
4407
|
}
|
4408
|
+
get connectedMessage() {
|
4409
|
+
return this.isHolding() ? SharesightDetailsMessagesEnum.HOLDING_CONNECTED : SharesightDetailsMessagesEnum.PROPERTY_CONNECTED;
|
4410
|
+
}
|
4406
4411
|
}
|
4407
4412
|
__decorate([
|
4408
4413
|
Type(() => Date)
|
@@ -5663,6 +5668,11 @@ __decorate([
|
|
5663
5668
|
class PropertyForecast extends PropertyForecast$1 {
|
5664
5669
|
constructor() {
|
5665
5670
|
super(...arguments);
|
5671
|
+
this.income = 0;
|
5672
|
+
this.expense = 0;
|
5673
|
+
this.interest = 0;
|
5674
|
+
this.depreciation = 0;
|
5675
|
+
this.loanBalance = 0;
|
5666
5676
|
this.financialYear = new FinancialYear(new Date()).year;
|
5667
5677
|
}
|
5668
5678
|
/**
|
@@ -5679,13 +5689,6 @@ class PropertyForecast extends PropertyForecast$1 {
|
|
5679
5689
|
get taxPosition() {
|
5680
5690
|
return this.cashPosition + this.depreciation;
|
5681
5691
|
}
|
5682
|
-
/**
|
5683
|
-
* Get rental return percent
|
5684
|
-
* Rental Return = Income / Market Value
|
5685
|
-
*/
|
5686
|
-
get rentalReturn() {
|
5687
|
-
return this.income / this.marketValue;
|
5688
|
-
}
|
5689
5692
|
}
|
5690
5693
|
__decorate([
|
5691
5694
|
Transform(({ value }) => +value)
|
@@ -5702,9 +5705,6 @@ __decorate([
|
|
5702
5705
|
__decorate([
|
5703
5706
|
Transform(({ value }) => +value)
|
5704
5707
|
], PropertyForecast.prototype, "loanBalance", void 0);
|
5705
|
-
__decorate([
|
5706
|
-
Transform(({ value }) => +value)
|
5707
|
-
], PropertyForecast.prototype, "marketValue", void 0);
|
5708
5708
|
|
5709
5709
|
/**
|
5710
5710
|
* propertySale docs - https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4209508353/Property+Sold+button
|
@@ -5749,7 +5749,7 @@ class Property extends Property$1 {
|
|
5749
5749
|
?? plainToClass(PropertyForecast, {});
|
5750
5750
|
}
|
5751
5751
|
get forecastedRentalReturn() {
|
5752
|
-
return this.currentYearForecast?.
|
5752
|
+
return (this.currentYearForecast?.income ?? 0) / this.valuation.marketValue;
|
5753
5753
|
}
|
5754
5754
|
get forecastedTaxPosition() {
|
5755
5755
|
return this.currentYearForecast?.taxPosition || 0;
|
@@ -5777,7 +5777,7 @@ class Property extends Property$1 {
|
|
5777
5777
|
return this.subscriptions[0];
|
5778
5778
|
}
|
5779
5779
|
getForecastByYear(year) {
|
5780
|
-
return this.forecasts.find((forecast) => forecast.financialYear === year);
|
5780
|
+
return this.forecasts.find((forecast) => forecast.financialYear === year) ?? plainToClass(PropertyForecast, {});
|
5781
5781
|
}
|
5782
5782
|
get isShared() {
|
5783
5783
|
return this.shares.length > 1;
|
@@ -8101,7 +8101,6 @@ class PropertyReportItemDepreciation extends PropertyReportItem {
|
|
8101
8101
|
constructor(depreciations, property, chartAccounts) {
|
8102
8102
|
super(property, chartAccounts);
|
8103
8103
|
this.amount = Math.abs(depreciations.getCurrentYearForecastAmount());
|
8104
|
-
console.log(depreciations.first.type);
|
8105
8104
|
this.description = DEPRECIATION_TYPE_LABELS[depreciations.first.type];
|
8106
8105
|
}
|
8107
8106
|
}
|
@@ -9072,7 +9071,7 @@ class BankAccountCollection extends Collection {
|
|
9072
9071
|
return this.getLoanAccounts().reduce((sum, bankAccount) => sum + bankAccount.getMonthlyRepaymentAmount(propertyId), 0);
|
9073
9072
|
}
|
9074
9073
|
getLVR(property) {
|
9075
|
-
return this.getPropertyBalanceAmount(property.id) / property.
|
9074
|
+
return this.getPropertyBalanceAmount(property.id) / property.valuation.marketValue;
|
9076
9075
|
}
|
9077
9076
|
/**
|
9078
9077
|
* @TODO Alex/Vik: maybe we should get it from jwtToken or think about some localStorageService?
|
@@ -14397,6 +14396,7 @@ class PropertyValuationService extends RestService$1 {
|
|
14397
14396
|
this.modelClass = PropertyValuation;
|
14398
14397
|
this.collectionClass = PropertyValuationCollection;
|
14399
14398
|
this.disabledMethods = ['postBatch', 'putBatch'];
|
14399
|
+
this.useBackendError = true;
|
14400
14400
|
}
|
14401
14401
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PropertyValuationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
14402
14402
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PropertyValuationService, providedIn: 'root' }); }
|
@@ -14534,6 +14534,9 @@ class PropertyService extends RestService$1 {
|
|
14534
14534
|
updatedProperty.corelogicLastRequest = new Date();
|
14535
14535
|
this.updateCache([updatedProperty], 'put');
|
14536
14536
|
return stats;
|
14537
|
+
}), catchError((error) => {
|
14538
|
+
this.handleError(error);
|
14539
|
+
return of({ growthPercent: 0, lowMarketValue: 0, marketValue: 0, highMarketValue: 0 });
|
14537
14540
|
}));
|
14538
14541
|
}
|
14539
14542
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PropertyService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
@@ -23310,7 +23313,6 @@ class PropertyForecastForm extends AbstractForm {
|
|
23310
23313
|
const noIncome = movements.filterBy('propertyCategory.id', noIncomeCategories).length === movements.length;
|
23311
23314
|
super({
|
23312
23315
|
financialYear: new UntypedFormControl({ value: forecast.financialYear, disabled: true }),
|
23313
|
-
marketValue: new UntypedFormControl(forecast.marketValue, Validators.required),
|
23314
23316
|
income: new UntypedFormControl({ value: forecast.income, disabled: noIncome }, Validators.required),
|
23315
23317
|
expense: new UntypedFormControl(forecast.expense, Validators.required),
|
23316
23318
|
interest: new UntypedFormControl(forecast.interest, Validators.required),
|
@@ -23326,30 +23328,33 @@ class PropertyForecastForm extends AbstractForm {
|
|
23326
23328
|
class PropertyAddForm extends AbstractForm {
|
23327
23329
|
constructor() {
|
23328
23330
|
super({
|
23329
|
-
address: new
|
23330
|
-
purchasePrice: new
|
23331
|
-
contractDate: new
|
23331
|
+
address: new FormControl(null, Validators.required),
|
23332
|
+
purchasePrice: new FormControl(null, Validators.required),
|
23333
|
+
contractDate: new FormControl(null, [
|
23332
23334
|
Validators.required,
|
23333
23335
|
maxDateValidator(new FinancialYear().endDate, 'You cannot add a property with a contract date in future financial years.')
|
23334
23336
|
]),
|
23335
|
-
settlementDate: new
|
23336
|
-
|
23337
|
-
|
23338
|
-
|
23339
|
-
shares: new UntypedFormArray([
|
23340
|
-
new PropertyShareForm()
|
23341
|
-
]),
|
23342
|
-
categoryMovements: new UntypedFormArray([
|
23343
|
-
new PropertyCategoryMovementForm()
|
23344
|
-
])
|
23337
|
+
settlementDate: new FormControl(null, Validators.required),
|
23338
|
+
share: new PropertyShareForm(),
|
23339
|
+
forecast: new PropertyForecastForm(),
|
23340
|
+
category: new FormControl(null, Validators.required)
|
23345
23341
|
}, plainToClass(Property, {}));
|
23346
|
-
|
23347
|
-
|
23348
|
-
|
23349
|
-
this.get('
|
23350
|
-
|
23342
|
+
this.listenEvents();
|
23343
|
+
}
|
23344
|
+
get forecastForm() {
|
23345
|
+
return this.get('forecast');
|
23346
|
+
}
|
23347
|
+
submit() {
|
23348
|
+
return super.submit({
|
23349
|
+
shares: [this.value.share],
|
23350
|
+
forecasts: [this.forecastForm.submit()]
|
23351
23351
|
});
|
23352
|
-
|
23352
|
+
}
|
23353
|
+
listenEvents() {
|
23354
|
+
this.listenCategoryChanges();
|
23355
|
+
}
|
23356
|
+
listenCategoryChanges() {
|
23357
|
+
this.get('category').valueChanges.subscribe((category) => {
|
23353
23358
|
if (category.isShared()) {
|
23354
23359
|
this.forecastForm.get('claimPercent').enable();
|
23355
23360
|
}
|
@@ -23366,21 +23371,6 @@ class PropertyAddForm extends AbstractForm {
|
|
23366
23371
|
}
|
23367
23372
|
});
|
23368
23373
|
}
|
23369
|
-
get valuationForm() {
|
23370
|
-
return this.categoryMovementForm.get('valuation');
|
23371
|
-
}
|
23372
|
-
get forecastForm() {
|
23373
|
-
// [0] because for property add form we have always 1 forecast form inside
|
23374
|
-
return this.get('forecasts').controls[0];
|
23375
|
-
}
|
23376
|
-
get shareForm() {
|
23377
|
-
// [0] because for property add form we have always 1 forecast form inside
|
23378
|
-
return this.get('shares').controls[0];
|
23379
|
-
}
|
23380
|
-
get categoryMovementForm() {
|
23381
|
-
// [0] because for property add form we always have 1 category movement form inside
|
23382
|
-
return this.get('categoryMovements').controls[0];
|
23383
|
-
}
|
23384
23374
|
}
|
23385
23375
|
|
23386
23376
|
class MyTaxBusinessDetailsForm extends AbstractForm {
|