taxtank-core 0.28.36 → 0.28.38
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/bundles/taxtank-core.umd.js +313 -118
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/transaction/transaction-base.collection.js +2 -2
- package/esm2015/lib/forms/address/address.form.js +149 -0
- package/esm2015/lib/forms/address/index.js +2 -0
- package/esm2015/lib/forms/index.js +3 -1
- package/esm2015/lib/forms/phone/index.js +2 -0
- package/esm2015/lib/forms/phone/phone.form.js +15 -0
- package/esm2015/lib/forms/sole/sole-contact.form.js +7 -5
- package/esm2015/lib/interceptors/corelogic-interceptor.js +19 -20
- package/esm2015/lib/models/address/address.js +2 -2
- package/esm2015/lib/models/address/country.js +3 -1
- package/esm2015/lib/models/endpoint/endpoints.const.js +2 -1
- package/esm2015/lib/models/phone/phone.js +8 -1
- package/esm2015/lib/models/report/my-tax/my-tax-estimate/my-tax-estimate.js +3 -3
- package/esm2015/lib/validators/address-corelogic.validator.js +17 -0
- package/esm2015/lib/validators/phone-number.validator.js +11 -0
- package/fesm2015/taxtank-core.js +288 -110
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/forms/address/address.form.d.ts +58 -0
- package/lib/forms/address/index.d.ts +1 -0
- package/lib/forms/index.d.ts +2 -0
- package/lib/forms/phone/index.d.ts +1 -0
- package/lib/forms/phone/phone.form.d.ts +5 -0
- package/lib/interceptors/corelogic-interceptor.d.ts +1 -5
- package/lib/models/address/country.d.ts +1 -0
- package/lib/models/phone/phone.d.ts +2 -0
- package/lib/validators/address-corelogic.validator.d.ts +5 -0
- package/lib/validators/phone-number.validator.d.ts +6 -0
- package/package.json +1 -1
|
@@ -29,12 +29,12 @@ export class MyTaxEstimate {
|
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
static getLowMiddleIncomeTaxOffsets(taxOffsetsReportItem) {
|
|
32
|
-
const taxOffsetLowIncome = taxOffsetsReportItem.
|
|
33
|
-
const taxOffsetLowMiddleIncome = taxOffsetsReportItem.
|
|
32
|
+
const taxOffsetLowIncome = taxOffsetsReportItem.items.findBy('title', 'Tax Offset Low Income');
|
|
33
|
+
const taxOffsetLowMiddleIncome = taxOffsetsReportItem.items.findBy('title', 'Tax Offset Low and Middle Income');
|
|
34
34
|
return taxOffsetLowIncome.amount + taxOffsetLowMiddleIncome.amount;
|
|
35
35
|
}
|
|
36
36
|
static getTaxOffsets(taxOffsetsReportItemAmount, lowMiddleIncomeTaxOffsets) {
|
|
37
37
|
return taxOffsetsReportItemAmount - lowMiddleIncomeTaxOffsets;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWVzdGltYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1lc3RpbWF0ZS9teS10YXgtZXN0aW1hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2pEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFZeEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFzQjtRQUMxQyxNQUFNLGNBQWMsR0FBc0IsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUM3RCxNQUFNLHlCQUF5QixHQUFlLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0ksTUFBTSxrQkFBa0IsR0FBZSx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFJLE1BQU0sb0JBQW9CLEdBQWUsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEksTUFBTSx5QkFBeUIsR0FBVyxJQUFJLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRyxNQUFNLFVBQVUsR0FBVyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xKLE1BQU0sWUFBWSxHQUFXLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2pILE1BQU0scUJBQXFCLEdBQVcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbEgsTUFBTSxVQUFVLEdBQVcsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzdILE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFdEcsT0FBTyxZQUFZLENBQUMsYUFBYSxFQUFFO1lBQ2pDLGFBQWEsRUFBRSxjQUFjLENBQUMsU0FBUztZQUN2QyxlQUFlLEVBQUUseUJBQXlCLENBQUMsTUFBTTtZQUNqRCx5QkFBeUI7WUFDekIsVUFBVTtZQUNWLFlBQVk7WUFDWixxQkFBcUI7WUFDckIsVUFBVTtZQUNWLFVBQVU7WUFDVixTQUFTLEVBQUUsVUFBVSxDQUFDLG9CQUFvQjtZQUMxQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsVUFBVTtTQUMzQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLG9CQUFnQztRQUNsRSxNQUFNLGtCQUFrQixHQUFlLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDM0csTUFBTSx3QkFBd0IsR0FBZSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1FBRTVILE9BQU8sa0JBQWtCLENBQUMsTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQywwQkFBa0MsRUFBRSx5QkFBaUM7UUFDeEYsT0FBTywwQkFBMEIsR0FBRyx5QkFBeUIsQ0FBQTtJQUMvRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXhTdW1tYXJ5U2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LXNlY3Rpb24nO1xuaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3RheC1yZXR1cm4tY2F0ZWdvcnktbGlzdC5lbnVtJztcbmltcG9ydCB7IFJlcG9ydEl0ZW0gfSBmcm9tICcuLi8uLi8uLi90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbSc7XG5pbXBvcnQgeyBUYXhTdW1tYXJ5IH0gZnJvbSAnLi4vLi4vLi4vdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnknO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUmVwb3J0SXRlbURldGFpbHMgfSBmcm9tICcuLi8uLi8uLi90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbS1kZXRhaWxzJztcblxuLyoqXG4gKiBAVG9kbyBhZGQgbGluayB0byBkb2N1bWVudGF0aW9uIGFib3V0IHJlbGF0ZWQgZmllbGRzLCBhZGQgY29tbWVudHMgdG8gbWV0aG9kc1xuICovXG5leHBvcnQgY2xhc3MgTXlUYXhFc3RpbWF0ZSB7XG4gIHRheGFibGVJbmNvbWU6IG51bWJlcjtcbiAgdGF4UGF5YWJsZTogbnVtYmVyO1xuICBncm9zc1RheFBheWFibGU6IG51bWJlcjtcbiAgbWVkaWNhcmVMZXZ5OiBudW1iZXI7XG4gIG1lZGljYXJlTGV2eVN1cmNoYXJnZTogbnVtYmVyO1xuICB0YXhDcmVkaXRzOiBudW1iZXI7XG4gIGxvd01pZGRsZUluY29tZVRheE9mZnNldHM6IG51bWJlcjtcbiAgcGVyY2VudGFnZU9mVGF4UGFpZDogbnVtYmVyO1xuICB0YXhPZmZzZXRzOiBudW1iZXI7XG4gIG5ldFJlZnVuZDogbnVtYmVyO1xuXG4gIHN0YXRpYyBmcm9tVGF4U3VtbWFyeSh0YXhTdW1tYXJ5OiBUYXhTdW1tYXJ5KTogTXlUYXhFc3RpbWF0ZSB7XG4gICAgY29uc3Qgc3VtbWFyeVNlY3Rpb246IFRheFN1bW1hcnlTZWN0aW9uID0gdGF4U3VtbWFyeS5zdW1tYXJ5O1xuICAgIGNvbnN0IGdyb3NzVGF4UGF5YWJsZVJlcG9ydEl0ZW06IFJlcG9ydEl0ZW0gPSBzdW1tYXJ5U2VjdGlvbi5pdGVtcy5maW5kQnkoJ3RheFJldHVybkNhdGVnb3J5LmlkJywgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HUk9TU19UQVhfUEFZQUJMRSk7XG4gICAgY29uc3QgbWVkaWNhcmVSZXBvcnRJdGVtOiBSZXBvcnRJdGVtID0gZ3Jvc3NUYXhQYXlhYmxlUmVwb3J0SXRlbS5pdGVtcy5maW5kQnkoJ3RheFJldHVybkNhdGVnb3J5LmlkJywgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5NRURJQ0FSRSk7XG4gICAgY29uc3QgdGF4T2Zmc2V0c1JlcG9ydEl0ZW06IFJlcG9ydEl0ZW0gPSBzdW1tYXJ5U2VjdGlvbi5pdGVtcy5maW5kQnkoJ3RheFJldHVybkNhdGVnb3J5LmlkJywgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfT0ZGU0VUUyk7XG4gICAgY29uc3QgbG93TWlkZGxlSW5jb21lVGF4T2Zmc2V0czogbnVtYmVyID0gdGhpcy5nZXRMb3dNaWRkbGVJbmNvbWVUYXhPZmZzZXRzKHRheE9mZnNldHNSZXBvcnRJdGVtKTtcbiAgICBjb25zdCB0YXhQYXlhYmxlOiBudW1iZXIgPSBncm9zc1RheFBheWFibGVSZXBvcnRJdGVtLml0ZW1zLmZpbmRCeSgndGF4UmV0dXJuQ2F0ZWdvcnkuaWQnLCBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PTl9UQVhBQkxFX0lOQ09NRSkuYW1vdW50O1xuICAgIGNvbnN0IG1lZGljYXJlTGV2eTogbnVtYmVyID0gbWVkaWNhcmVSZXBvcnRJdGVtLmRldGFpbHMuZmluZEJ5KCduYW1lJywgJ01lZGljYXJlIExldnkgKGJhc2VkIG9uIHNpbmdsZSknKS5hbW91bnQ7XG4gICAgY29uc3QgbWVkaWNhcmVMZXZ5U3VyY2hhcmdlOiBudW1iZXIgPSBtZWRpY2FyZVJlcG9ydEl0ZW0uZGV0YWlscy5maW5kQnkoJ25hbWUnLCAnTWVkaWNhcmUgTGV2eSBTdXJjaGFyZ2UnKS5hbW91bnQ7XG4gICAgY29uc3QgdGF4Q3JlZGl0czogbnVtYmVyID0gc3VtbWFyeVNlY3Rpb24uaXRlbXMuZmluZEJ5KCd0YXhSZXR1cm5DYXRlZ29yeS5pZCcsIFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0NSRURJVFMpLmFtb3VudDtcbiAgICBjb25zdCB0YXhPZmZzZXRzOiBudW1iZXIgPSB0aGlzLmdldFRheE9mZnNldHModGF4T2Zmc2V0c1JlcG9ydEl0ZW0uYW1vdW50LCBsb3dNaWRkbGVJbmNvbWVUYXhPZmZzZXRzKTtcblxuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoTXlUYXhFc3RpbWF0ZSwge1xuICAgICAgdGF4YWJsZUluY29tZTogc3VtbWFyeVNlY3Rpb24ubmV0QW1vdW50LFxuICAgICAgZ3Jvc3NUYXhQYXlhYmxlOiBncm9zc1RheFBheWFibGVSZXBvcnRJdGVtLmFtb3VudCxcbiAgICAgIGxvd01pZGRsZUluY29tZVRheE9mZnNldHMsXG4gICAgICB0YXhQYXlhYmxlLFxuICAgICAgbWVkaWNhcmVMZXZ5LFxuICAgICAgbWVkaWNhcmVMZXZ5U3VyY2hhcmdlLFxuICAgICAgdGF4Q3JlZGl0cyxcbiAgICAgIHRheE9mZnNldHMsXG4gICAgICBuZXRSZWZ1bmQ6IHRheFN1bW1hcnkucHJvamVjdGVkVGF4UG9zaXRpb24sXG4gICAgICBwZXJjZW50YWdlT2ZUYXhQYWlkOiB0YXhTdW1tYXJ5LnRheFBlcmNlbnRcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGdldExvd01pZGRsZUluY29tZVRheE9mZnNldHModGF4T2Zmc2V0c1JlcG9ydEl0ZW06IFJlcG9ydEl0ZW0pOiBudW1iZXIge1xuICAgIGNvbnN0IHRheE9mZnNldExvd0luY29tZTogUmVwb3J0SXRlbSA9IHRheE9mZnNldHNSZXBvcnRJdGVtLml0ZW1zLmZpbmRCeSgndGl0bGUnLCAnVGF4IE9mZnNldCBMb3cgSW5jb21lJyk7XG4gICAgY29uc3QgdGF4T2Zmc2V0TG93TWlkZGxlSW5jb21lOiBSZXBvcnRJdGVtID0gdGF4T2Zmc2V0c1JlcG9ydEl0ZW0uaXRlbXMuZmluZEJ5KCd0aXRsZScsICdUYXggT2Zmc2V0IExvdyBhbmQgTWlkZGxlIEluY29tZScpO1xuXG4gICAgcmV0dXJuIHRheE9mZnNldExvd0luY29tZS5hbW91bnQgKyB0YXhPZmZzZXRMb3dNaWRkbGVJbmNvbWUuYW1vdW50O1xuICB9XG5cbiAgc3RhdGljIGdldFRheE9mZnNldHModGF4T2Zmc2V0c1JlcG9ydEl0ZW1BbW91bnQ6IG51bWJlciwgbG93TWlkZGxlSW5jb21lVGF4T2Zmc2V0czogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGF4T2Zmc2V0c1JlcG9ydEl0ZW1BbW91bnQgLSBsb3dNaWRkbGVJbmNvbWVUYXhPZmZzZXRzXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator for address, check if corelogic suggestion selected correctly
|
|
3
|
+
*/
|
|
4
|
+
export function addressCorelogicValidator() {
|
|
5
|
+
return (form) => {
|
|
6
|
+
if (form.isCorelogicRequired) {
|
|
7
|
+
if (form.get('corelogicLocId').hasError('required')) {
|
|
8
|
+
return { address: 'Street, city, state or postal code not specified' };
|
|
9
|
+
}
|
|
10
|
+
if (form.get('corelogicRefId').hasError('required')) {
|
|
11
|
+
return { address: 'Unit/House number not specified' };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb3JlbG9naWMudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvYWRkcmVzcy1jb3JlbG9naWMudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLENBQUMsSUFBaUIsRUFBb0IsRUFBRTtRQUM3QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ25ELE9BQU8sRUFBQyxPQUFPLEVBQUUsa0RBQWtELEVBQUMsQ0FBQzthQUN0RTtZQUVELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFkZHJlc3NGb3JtIH0gZnJvbSAnLi4vZm9ybXMnO1xuXG4vKipcbiAqIFZhbGlkYXRvciBmb3IgYWRkcmVzcywgY2hlY2sgaWYgY29yZWxvZ2ljIHN1Z2dlc3Rpb24gc2VsZWN0ZWQgY29ycmVjdGx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRyZXNzQ29yZWxvZ2ljVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChmb3JtOiBBZGRyZXNzRm9ybSk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xuICAgIGlmIChmb3JtLmlzQ29yZWxvZ2ljUmVxdWlyZWQpIHtcbiAgICAgIGlmIChmb3JtLmdldCgnY29yZWxvZ2ljTG9jSWQnKS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICByZXR1cm4ge2FkZHJlc3M6ICdTdHJlZXQsIGNpdHksIHN0YXRlIG9yIHBvc3RhbCBjb2RlIG5vdCBzcGVjaWZpZWQnfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZvcm0uZ2V0KCdjb3JlbG9naWNSZWZJZCcpLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIHJldHVybiB7YWRkcmVzczogJ1VuaXQvSG91c2UgbnVtYmVyIG5vdCBzcGVjaWZpZWQnfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const phonePattern = /^(((\s*)?([- ()]?\d[- ()]?){0,30}(\s*)?)|)$/;
|
|
2
|
+
/**
|
|
3
|
+
* Validator for phone number
|
|
4
|
+
* Allowed special symbols"-", "(", ")"
|
|
5
|
+
*/
|
|
6
|
+
export function phoneNumberValidator() {
|
|
7
|
+
return (control) => {
|
|
8
|
+
return phonePattern.test(control.value) ? null : { phoneInvalid: true };
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi92YWxpZGF0b3JzL3Bob25lLW51bWJlci52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxZQUFZLEdBQVcsNkNBQTZDLENBQUM7QUFFM0U7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLENBQUMsT0FBb0IsRUFBRSxFQUFFO1FBQzlCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgcGhvbmVQYXR0ZXJuOiBSZWdFeHAgPSAvXigoKFxccyopPyhbLSAoKV0/XFxkWy0gKCldPyl7MCwzMH0oXFxzKik/KXwpJC87XG5cbi8qKlxuICogVmFsaWRhdG9yIGZvciBwaG9uZSBudW1iZXJcbiAqIEFsbG93ZWQgc3BlY2lhbCBzeW1ib2xzXCItXCIsIFwiKFwiLCBcIilcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGhvbmVOdW1iZXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEZvcm1Db250cm9sKSA9PiB7XG4gICAgcmV0dXJuIHBob25lUGF0dGVybi50ZXN0KGNvbnRyb2wudmFsdWUpID8gbnVsbCA6IHtwaG9uZUludmFsaWQ6IHRydWV9O1xuICB9O1xufVxuIl19
|
package/fesm2015/taxtank-core.js
CHANGED
|
@@ -4,8 +4,8 @@ import * as i1$1 from '@angular/common';
|
|
|
4
4
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
6
6
|
import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
7
|
+
import { map, mergeMap, filter, catchError, take, switchMap, finalize, skip, distinctUntilChanged, debounceTime } from 'rxjs/operators';
|
|
7
8
|
import { ReplaySubject, Subject, BehaviorSubject, throwError, Observable, of, combineLatest, forkJoin, from } from 'rxjs';
|
|
8
|
-
import { map, filter, catchError, take, switchMap, finalize, mergeMap, skip, distinctUntilChanged } from 'rxjs/operators';
|
|
9
9
|
import { plainToClass, classToPlain, Type, Transform, Expose, Exclude } from 'class-transformer';
|
|
10
10
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
11
11
|
import get from 'lodash/get';
|
|
@@ -92,28 +92,26 @@ class CorelogicInterceptor {
|
|
|
92
92
|
this.corelogicService = corelogicService;
|
|
93
93
|
this.environment = environment;
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
addToken(req) {
|
|
100
|
-
// don't need token for this endpoint
|
|
101
|
-
if (req.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
|
|
102
|
-
return req;
|
|
95
|
+
intercept(request, next) {
|
|
96
|
+
// skip non-corelogic requests
|
|
97
|
+
if (!request.url.includes(this.environment.coreLogicUrl)) {
|
|
98
|
+
return next.handle(request);
|
|
103
99
|
}
|
|
104
|
-
//
|
|
105
|
-
if (
|
|
106
|
-
return
|
|
107
|
-
setHeaders: {
|
|
108
|
-
Authorization: 'Bearer ' + this.corelogicService._accessToken
|
|
109
|
-
}
|
|
110
|
-
});
|
|
100
|
+
// don't need token for this endpoint
|
|
101
|
+
if (request.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
|
|
102
|
+
return next.handle(request);
|
|
111
103
|
}
|
|
112
|
-
|
|
113
|
-
|
|
104
|
+
return this.corelogicService.getAccessToken()
|
|
105
|
+
.pipe(mergeMap((token) => {
|
|
106
|
+
return next.handle(this.addToken(request, token));
|
|
107
|
+
}));
|
|
114
108
|
}
|
|
115
|
-
|
|
116
|
-
return
|
|
109
|
+
addToken(request, token) {
|
|
110
|
+
return request.clone({
|
|
111
|
+
setHeaders: {
|
|
112
|
+
Authorization: 'Bearer ' + token
|
|
113
|
+
}
|
|
114
|
+
});
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
117
|
CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -610,6 +608,7 @@ const ENDPOINTS = {
|
|
|
610
608
|
CLIENT_MOVEMENTS_GET: new Endpoint('GET', '\\/client-movements'),
|
|
611
609
|
CLIENT_MOVEMENTS_POST: new Endpoint('POST', '\\/client-movements'),
|
|
612
610
|
COUNTRIES_GET: new Endpoint('GET', '\\/countries'),
|
|
611
|
+
CORELOGIC_TOKEN_GET: new Endpoint('GET', '/access\\/oauth\\/token.*$'),
|
|
613
612
|
DEPRECIATIONS_OPENING_GET: new Endpoint('GET', '\\/depreciations\\/\\opening-balance\.\*'),
|
|
614
613
|
DEPRECIATIONS_GET: new Endpoint('GET', '\\/depreciations'),
|
|
615
614
|
DEPRECIATIONS_POST: new Endpoint('POST', '\\/depreciations'),
|
|
@@ -1973,6 +1972,7 @@ class Country extends Country$1 {
|
|
|
1973
1972
|
return this.callingCode === '61';
|
|
1974
1973
|
}
|
|
1975
1974
|
}
|
|
1975
|
+
Country.australia = plainToClass(Country, { id: 14, name: 'Australia', callingCode: '61' });
|
|
1976
1976
|
|
|
1977
1977
|
var AddressTypeEnum;
|
|
1978
1978
|
(function (AddressTypeEnum) {
|
|
@@ -1992,7 +1992,7 @@ class Address extends Address$1 {
|
|
|
1992
1992
|
return `${this.unitNumber ? this.unitNumber + '/' : ''}${this.address}`;
|
|
1993
1993
|
}
|
|
1994
1994
|
get nameLong() {
|
|
1995
|
-
return `${this.name}
|
|
1995
|
+
return `${this.name} ${this.city} ${this.state} ${this.postcode}`;
|
|
1996
1996
|
}
|
|
1997
1997
|
}
|
|
1998
1998
|
__decorate([
|
|
@@ -2029,12 +2029,16 @@ var PhoneTypeEnum;
|
|
|
2029
2029
|
class Phone extends Phone$1 {
|
|
2030
2030
|
constructor() {
|
|
2031
2031
|
super(...arguments);
|
|
2032
|
+
this.country = Country.australia;
|
|
2032
2033
|
this.type = PhoneTypeEnum.MOBILE;
|
|
2033
2034
|
}
|
|
2034
2035
|
toString() {
|
|
2035
2036
|
return `+${this.country.callingCode} ${this.number}`;
|
|
2036
2037
|
}
|
|
2037
2038
|
}
|
|
2039
|
+
__decorate([
|
|
2040
|
+
Type(() => Country)
|
|
2041
|
+
], Phone.prototype, "country", void 0);
|
|
2038
2042
|
|
|
2039
2043
|
class Firm extends Firm$1 {
|
|
2040
2044
|
/**
|
|
@@ -6213,7 +6217,7 @@ class TransactionAllocationCollection extends Collection {
|
|
|
6213
6217
|
|
|
6214
6218
|
class TransactionBaseCollection extends Collection {
|
|
6215
6219
|
getClaimAmountByBusiness(business) {
|
|
6216
|
-
return +this.filterBy('business.id', business.id).items.map((transaction) => transaction instanceof Depreciation ? -transaction.claimAmount : transaction['claimAmount']).reduce((sum, claimAmount) => sum + claimAmount).toFixed(2);
|
|
6220
|
+
return +this.filterBy('business.id', business.id).items.map((transaction) => transaction instanceof Depreciation ? -transaction.claimAmount : transaction['claimAmount']).reduce((sum, claimAmount) => sum + claimAmount, 0).toFixed(2);
|
|
6217
6221
|
}
|
|
6218
6222
|
}
|
|
6219
6223
|
|
|
@@ -9042,8 +9046,8 @@ class MyTaxEstimate {
|
|
|
9042
9046
|
});
|
|
9043
9047
|
}
|
|
9044
9048
|
static getLowMiddleIncomeTaxOffsets(taxOffsetsReportItem) {
|
|
9045
|
-
const taxOffsetLowIncome = taxOffsetsReportItem.
|
|
9046
|
-
const taxOffsetLowMiddleIncome = taxOffsetsReportItem.
|
|
9049
|
+
const taxOffsetLowIncome = taxOffsetsReportItem.items.findBy('title', 'Tax Offset Low Income');
|
|
9050
|
+
const taxOffsetLowMiddleIncome = taxOffsetsReportItem.items.findBy('title', 'Tax Offset Low and Middle Income');
|
|
9047
9051
|
return taxOffsetLowIncome.amount + taxOffsetLowMiddleIncome.amount;
|
|
9048
9052
|
}
|
|
9049
9053
|
static getTaxOffsets(taxOffsetsReportItemAmount, lowMiddleIncomeTaxOffsets) {
|
|
@@ -14749,87 +14753,6 @@ class AbstractForm extends FormGroup {
|
|
|
14749
14753
|
}
|
|
14750
14754
|
}
|
|
14751
14755
|
|
|
14752
|
-
/**
|
|
14753
|
-
* Form with loan details.
|
|
14754
|
-
* Loan could be created from bank account (Bank Loan) or directly from loan page (Vehicle Loan)
|
|
14755
|
-
*/
|
|
14756
|
-
class LoanForm extends AbstractForm {
|
|
14757
|
-
constructor(loan = plainToClass(Loan, {})) {
|
|
14758
|
-
super({
|
|
14759
|
-
type: new FormControl(loan.type, Validators.required),
|
|
14760
|
-
amount: new FormControl(loan.amount, Validators.required),
|
|
14761
|
-
interestRate: new FormControl(loan.interestRate, [Validators.required, Validators.min(0), Validators.max(100)]),
|
|
14762
|
-
commencementDate: new FormControl(loan.commencementDate, Validators.required),
|
|
14763
|
-
repaymentAmount: new FormControl(loan.repaymentAmount, Validators.required),
|
|
14764
|
-
repaymentFrequency: new FormControl(loan.repaymentFrequency, Validators.required),
|
|
14765
|
-
term: new FormControl(loan.term, Validators.required),
|
|
14766
|
-
// interestType is predefined for vehicle loans
|
|
14767
|
-
interestType: new FormControl({ value: loan.interestType, disabled: !loan.bankAccount }, Validators.required),
|
|
14768
|
-
// availableRedraw is predefined for vehicle loans
|
|
14769
|
-
availableRedraw: new FormControl({ value: loan.availableRedraw, disabled: !loan.bankAccount }, Validators.required),
|
|
14770
|
-
// repaymentType is predefined for vehicle loans
|
|
14771
|
-
repaymentType: new FormControl({ value: loan.repaymentType, disabled: !loan.bankAccount }, Validators.required),
|
|
14772
|
-
}, loan);
|
|
14773
|
-
this.loan = loan;
|
|
14774
|
-
// Set data which always the same for vehicle loans
|
|
14775
|
-
if (!loan.bankAccount) {
|
|
14776
|
-
Object.assign(this.model, {
|
|
14777
|
-
repaymentType: LoanRepaymentTypeEnum.PRINCIPAL_AND_INTEREST,
|
|
14778
|
-
availableRedraw: 0,
|
|
14779
|
-
interestType: LoanInterestTypeEnum.FIXED_RATE
|
|
14780
|
-
});
|
|
14781
|
-
}
|
|
14782
|
-
this.updateTermValidation();
|
|
14783
|
-
this.listenEvents();
|
|
14784
|
-
}
|
|
14785
|
-
listenEvents() {
|
|
14786
|
-
// We need to set term automatically only for bank loans.
|
|
14787
|
-
// For vehicle loans user should fill it manually with validation depended of frequency
|
|
14788
|
-
if (!!this.loan.bankAccount) {
|
|
14789
|
-
this.listenTypeChanges();
|
|
14790
|
-
}
|
|
14791
|
-
else {
|
|
14792
|
-
this.listenRepaymentFrequencyChanges();
|
|
14793
|
-
}
|
|
14794
|
-
}
|
|
14795
|
-
/**
|
|
14796
|
-
* Set term automatically by loan type changes
|
|
14797
|
-
*/
|
|
14798
|
-
listenTypeChanges() {
|
|
14799
|
-
this.get('type').valueChanges.subscribe((type) => {
|
|
14800
|
-
this.get('term').setValue(LoanForm.mortgageLoanTypes.includes(type) ? Loan.mortgageDefaultTerm : Loan.loanDefaultTerm);
|
|
14801
|
-
});
|
|
14802
|
-
}
|
|
14803
|
-
/**
|
|
14804
|
-
* term validation depends on selected repaymentFrequency
|
|
14805
|
-
*/
|
|
14806
|
-
listenRepaymentFrequencyChanges() {
|
|
14807
|
-
this.get('repaymentFrequency').valueChanges.subscribe(() => {
|
|
14808
|
-
this.updateTermValidation();
|
|
14809
|
-
});
|
|
14810
|
-
}
|
|
14811
|
-
/**
|
|
14812
|
-
* For vehicle loans term has a maximum value depended of repayment frequency
|
|
14813
|
-
*/
|
|
14814
|
-
updateTermValidation() {
|
|
14815
|
-
// no need terms for bank loans
|
|
14816
|
-
if (!!this.loan.bankAccount) {
|
|
14817
|
-
return;
|
|
14818
|
-
}
|
|
14819
|
-
const currentRepaymentFrequency = this.get('repaymentFrequency').value;
|
|
14820
|
-
// term validation depends on selected repayment frequency, so can not validate when frequency is empty
|
|
14821
|
-
// repaymentType is required field, so we don't need to clear validation
|
|
14822
|
-
if (!currentRepaymentFrequency) {
|
|
14823
|
-
return;
|
|
14824
|
-
}
|
|
14825
|
-
const termControl = this.get('term');
|
|
14826
|
-
const maxTermValue = LoanMaxNumberOfPaymentsEnum[LoanRepaymentFrequencyEnum[currentRepaymentFrequency]];
|
|
14827
|
-
termControl.setValidators([Validators.max(maxTermValue)]);
|
|
14828
|
-
termControl.updateValueAndValidity();
|
|
14829
|
-
}
|
|
14830
|
-
}
|
|
14831
|
-
LoanForm.mortgageLoanTypes = [LoanTypeEnum.MORTGAGE, LoanTypeEnum.HOME_EQUITY_LINE_OF_CREDIT, LoanTypeEnum.HOME_LOAN];
|
|
14832
|
-
|
|
14833
14756
|
/**
|
|
14834
14757
|
* Check if at least one form field is true, otherwise form is invalid.
|
|
14835
14758
|
* Use with groups of boolean form controls (checkbox, toggle, etc.)
|
|
@@ -14960,6 +14883,242 @@ function fieldsSumValidator(field, summary = 100, fieldAlias) {
|
|
|
14960
14883
|
};
|
|
14961
14884
|
}
|
|
14962
14885
|
|
|
14886
|
+
/**
|
|
14887
|
+
* Validator for address, check if corelogic suggestion selected correctly
|
|
14888
|
+
*/
|
|
14889
|
+
function addressCorelogicValidator() {
|
|
14890
|
+
return (form) => {
|
|
14891
|
+
if (form.isCorelogicRequired) {
|
|
14892
|
+
if (form.get('corelogicLocId').hasError('required')) {
|
|
14893
|
+
return { address: 'Street, city, state or postal code not specified' };
|
|
14894
|
+
}
|
|
14895
|
+
if (form.get('corelogicRefId').hasError('required')) {
|
|
14896
|
+
return { address: 'Unit/House number not specified' };
|
|
14897
|
+
}
|
|
14898
|
+
}
|
|
14899
|
+
return null;
|
|
14900
|
+
};
|
|
14901
|
+
}
|
|
14902
|
+
|
|
14903
|
+
/**
|
|
14904
|
+
* Address form. Works with corelogic or manual address
|
|
14905
|
+
*/
|
|
14906
|
+
class AddressForm extends AbstractForm {
|
|
14907
|
+
/**
|
|
14908
|
+
* @param address instance which should be created/edited
|
|
14909
|
+
* @param isCorelogicRequired for example, for property we need corelogic location even for manual address,
|
|
14910
|
+
* so we have to search corelogic location based on manual fields values
|
|
14911
|
+
*/
|
|
14912
|
+
constructor(address = plainToClass(Address, {}), isCorelogicRequired = false) {
|
|
14913
|
+
super({
|
|
14914
|
+
// prefill search input with address string for edit case
|
|
14915
|
+
searchQuery: new FormControl(address.address ? address.nameLong : null, Validators.required),
|
|
14916
|
+
type: new FormControl(address.type | AddressTypeEnum.STREET, Validators.required),
|
|
14917
|
+
// Corelogic fields
|
|
14918
|
+
corelogicLocId: new FormControl(address.corelogicLocId, conditionalValidator(() => isCorelogicRequired, Validators.required)),
|
|
14919
|
+
corelogicRefId: new FormControl(address.corelogicRefId, conditionalValidator(() => isCorelogicRequired, Validators.required)),
|
|
14920
|
+
// manual fields
|
|
14921
|
+
unitNumber: new FormControl({ value: address.unitNumber, disabled: true }),
|
|
14922
|
+
address: new FormControl({ value: address.address, disabled: true }, Validators.required),
|
|
14923
|
+
city: new FormControl({ value: address.city, disabled: true }, Validators.required),
|
|
14924
|
+
state: new FormControl({ value: address.state, disabled: true }, Validators.required),
|
|
14925
|
+
postcode: new FormControl({ value: address.postcode, disabled: true }, Validators.required),
|
|
14926
|
+
country: new FormControl({ value: address.country || Country.australia, disabled: true }, conditionalValidator(() => !isCorelogicRequired, Validators.required))
|
|
14927
|
+
}, address, addressCorelogicValidator());
|
|
14928
|
+
this.isCorelogicRequired = isCorelogicRequired;
|
|
14929
|
+
/**
|
|
14930
|
+
* Emit event to search address in corelogic when user filled enough data for corelogic
|
|
14931
|
+
*/
|
|
14932
|
+
this.onSearch = new EventEmitter();
|
|
14933
|
+
this.listenEvents();
|
|
14934
|
+
}
|
|
14935
|
+
/**
|
|
14936
|
+
* Get search query for corelogic location search based on manual fields values
|
|
14937
|
+
*/
|
|
14938
|
+
get manualSearchQuery() {
|
|
14939
|
+
if (!this.isManualSearchAvailable()) {
|
|
14940
|
+
return '';
|
|
14941
|
+
}
|
|
14942
|
+
return this.currentValue.nameLong;
|
|
14943
|
+
}
|
|
14944
|
+
listenEvents() {
|
|
14945
|
+
this.listenSearchQueryChanges();
|
|
14946
|
+
// no need to search corelogic locality when corelogic is not required
|
|
14947
|
+
if (this.isCorelogicRequired) {
|
|
14948
|
+
this.listenManualFieldsChanges();
|
|
14949
|
+
}
|
|
14950
|
+
}
|
|
14951
|
+
/**
|
|
14952
|
+
* Handle corelogic suggestion select
|
|
14953
|
+
*/
|
|
14954
|
+
onSelectSuggestion(suggestion) {
|
|
14955
|
+
// if no suggestion then 'Add manually' option selected
|
|
14956
|
+
if (!suggestion) {
|
|
14957
|
+
this.switchToManual();
|
|
14958
|
+
return;
|
|
14959
|
+
}
|
|
14960
|
+
this.patchValue({
|
|
14961
|
+
corelogicLocId: suggestion.localityId,
|
|
14962
|
+
corelogicRefId: suggestion.propertyId
|
|
14963
|
+
});
|
|
14964
|
+
}
|
|
14965
|
+
/**
|
|
14966
|
+
* Enable manual mode
|
|
14967
|
+
*/
|
|
14968
|
+
switchToManual() {
|
|
14969
|
+
this.isManual = true;
|
|
14970
|
+
this.get('searchQuery').disable();
|
|
14971
|
+
this.get('address').enable();
|
|
14972
|
+
this.get('unitNumber').enable();
|
|
14973
|
+
this.get('city').enable();
|
|
14974
|
+
this.get('state').enable();
|
|
14975
|
+
this.get('postcode').enable();
|
|
14976
|
+
if (!this.isCorelogicRequired) {
|
|
14977
|
+
this.get('country').enable();
|
|
14978
|
+
this.get('corelogicLocId').disable();
|
|
14979
|
+
this.get('corelogicRefId').disable();
|
|
14980
|
+
}
|
|
14981
|
+
}
|
|
14982
|
+
/**
|
|
14983
|
+
* Emit event to search address in corelogic when search field changes
|
|
14984
|
+
*/
|
|
14985
|
+
listenSearchQueryChanges() {
|
|
14986
|
+
this.get('searchQuery').valueChanges
|
|
14987
|
+
.pipe(
|
|
14988
|
+
// delay to avoid search request for each value change
|
|
14989
|
+
debounceTime(AddressForm.searchDelay),
|
|
14990
|
+
// skip when value not changed
|
|
14991
|
+
distinctUntilChanged(),
|
|
14992
|
+
// value could be a string when user search and suggestion when user select option from autocomplete
|
|
14993
|
+
map((value) => {
|
|
14994
|
+
// no need to search when value is not actually search string
|
|
14995
|
+
if (!value || value instanceof CorelogicSuggestion) {
|
|
14996
|
+
return '';
|
|
14997
|
+
}
|
|
14998
|
+
// trim to avoid spaces in searchQuery, we should not send request started or finished with spaces
|
|
14999
|
+
// uppercase to make search string similar to corelogic format
|
|
15000
|
+
return value.trim();
|
|
15001
|
+
}),
|
|
15002
|
+
// do nothing when query is too short
|
|
15003
|
+
filter((searchQuery) => searchQuery.length >= AddressForm.minSearchLength))
|
|
15004
|
+
.subscribe((searchQuery) => {
|
|
15005
|
+
this.onSearch.emit(searchQuery);
|
|
15006
|
+
});
|
|
15007
|
+
}
|
|
15008
|
+
/**
|
|
15009
|
+
* Check if all fields required for manual corelogic search are filled before request sending
|
|
15010
|
+
*/
|
|
15011
|
+
isManualSearchAvailable() {
|
|
15012
|
+
return this.get('address').valid && this.get('city').valid && this.get('state').valid && this.get('postcode').valid;
|
|
15013
|
+
}
|
|
15014
|
+
/**
|
|
15015
|
+
* When corelogic is required we have to search address even for manual address
|
|
15016
|
+
*/
|
|
15017
|
+
listenManualFieldsChanges() {
|
|
15018
|
+
// subscribe to whole form because no other fields may be changed in this case except manual address fields we need
|
|
15019
|
+
this.valueChanges
|
|
15020
|
+
.pipe(
|
|
15021
|
+
// delay to avoid search request for each value change
|
|
15022
|
+
debounceTime(AddressForm.searchDelay),
|
|
15023
|
+
// do nothing when not all required fields filled
|
|
15024
|
+
filter(() => this.isManualSearchAvailable()), map(() => this.manualSearchQuery),
|
|
15025
|
+
// skip when value not changed
|
|
15026
|
+
distinctUntilChanged())
|
|
15027
|
+
.subscribe(() => {
|
|
15028
|
+
this.onSearch.emit(this.manualSearchQuery);
|
|
15029
|
+
});
|
|
15030
|
+
}
|
|
15031
|
+
}
|
|
15032
|
+
/**
|
|
15033
|
+
* Min search query required length
|
|
15034
|
+
*/
|
|
15035
|
+
AddressForm.minSearchLength = 3;
|
|
15036
|
+
/**
|
|
15037
|
+
* Delay before corelogic request
|
|
15038
|
+
*/
|
|
15039
|
+
AddressForm.searchDelay = 500;
|
|
15040
|
+
|
|
15041
|
+
/**
|
|
15042
|
+
* Form with loan details.
|
|
15043
|
+
* Loan could be created from bank account (Bank Loan) or directly from loan page (Vehicle Loan)
|
|
15044
|
+
*/
|
|
15045
|
+
class LoanForm extends AbstractForm {
|
|
15046
|
+
constructor(loan = plainToClass(Loan, {})) {
|
|
15047
|
+
super({
|
|
15048
|
+
type: new FormControl(loan.type, Validators.required),
|
|
15049
|
+
amount: new FormControl(loan.amount, Validators.required),
|
|
15050
|
+
interestRate: new FormControl(loan.interestRate, [Validators.required, Validators.min(0), Validators.max(100)]),
|
|
15051
|
+
commencementDate: new FormControl(loan.commencementDate, Validators.required),
|
|
15052
|
+
repaymentAmount: new FormControl(loan.repaymentAmount, Validators.required),
|
|
15053
|
+
repaymentFrequency: new FormControl(loan.repaymentFrequency, Validators.required),
|
|
15054
|
+
term: new FormControl(loan.term, Validators.required),
|
|
15055
|
+
// interestType is predefined for vehicle loans
|
|
15056
|
+
interestType: new FormControl({ value: loan.interestType, disabled: !loan.bankAccount }, Validators.required),
|
|
15057
|
+
// availableRedraw is predefined for vehicle loans
|
|
15058
|
+
availableRedraw: new FormControl({ value: loan.availableRedraw, disabled: !loan.bankAccount }, Validators.required),
|
|
15059
|
+
// repaymentType is predefined for vehicle loans
|
|
15060
|
+
repaymentType: new FormControl({ value: loan.repaymentType, disabled: !loan.bankAccount }, Validators.required),
|
|
15061
|
+
}, loan);
|
|
15062
|
+
this.loan = loan;
|
|
15063
|
+
// Set data which always the same for vehicle loans
|
|
15064
|
+
if (!loan.bankAccount) {
|
|
15065
|
+
Object.assign(this.model, {
|
|
15066
|
+
repaymentType: LoanRepaymentTypeEnum.PRINCIPAL_AND_INTEREST,
|
|
15067
|
+
availableRedraw: 0,
|
|
15068
|
+
interestType: LoanInterestTypeEnum.FIXED_RATE
|
|
15069
|
+
});
|
|
15070
|
+
}
|
|
15071
|
+
this.updateTermValidation();
|
|
15072
|
+
this.listenEvents();
|
|
15073
|
+
}
|
|
15074
|
+
listenEvents() {
|
|
15075
|
+
// We need to set term automatically only for bank loans.
|
|
15076
|
+
// For vehicle loans user should fill it manually with validation depended of frequency
|
|
15077
|
+
if (!!this.loan.bankAccount) {
|
|
15078
|
+
this.listenTypeChanges();
|
|
15079
|
+
}
|
|
15080
|
+
else {
|
|
15081
|
+
this.listenRepaymentFrequencyChanges();
|
|
15082
|
+
}
|
|
15083
|
+
}
|
|
15084
|
+
/**
|
|
15085
|
+
* Set term automatically by loan type changes
|
|
15086
|
+
*/
|
|
15087
|
+
listenTypeChanges() {
|
|
15088
|
+
this.get('type').valueChanges.subscribe((type) => {
|
|
15089
|
+
this.get('term').setValue(LoanForm.mortgageLoanTypes.includes(type) ? Loan.mortgageDefaultTerm : Loan.loanDefaultTerm);
|
|
15090
|
+
});
|
|
15091
|
+
}
|
|
15092
|
+
/**
|
|
15093
|
+
* term validation depends on selected repaymentFrequency
|
|
15094
|
+
*/
|
|
15095
|
+
listenRepaymentFrequencyChanges() {
|
|
15096
|
+
this.get('repaymentFrequency').valueChanges.subscribe(() => {
|
|
15097
|
+
this.updateTermValidation();
|
|
15098
|
+
});
|
|
15099
|
+
}
|
|
15100
|
+
/**
|
|
15101
|
+
* For vehicle loans term has a maximum value depended of repayment frequency
|
|
15102
|
+
*/
|
|
15103
|
+
updateTermValidation() {
|
|
15104
|
+
// no need terms for bank loans
|
|
15105
|
+
if (!!this.loan.bankAccount) {
|
|
15106
|
+
return;
|
|
15107
|
+
}
|
|
15108
|
+
const currentRepaymentFrequency = this.get('repaymentFrequency').value;
|
|
15109
|
+
// term validation depends on selected repayment frequency, so can not validate when frequency is empty
|
|
15110
|
+
// repaymentType is required field, so we don't need to clear validation
|
|
15111
|
+
if (!currentRepaymentFrequency) {
|
|
15112
|
+
return;
|
|
15113
|
+
}
|
|
15114
|
+
const termControl = this.get('term');
|
|
15115
|
+
const maxTermValue = LoanMaxNumberOfPaymentsEnum[LoanRepaymentFrequencyEnum[currentRepaymentFrequency]];
|
|
15116
|
+
termControl.setValidators([Validators.max(maxTermValue)]);
|
|
15117
|
+
termControl.updateValueAndValidity();
|
|
15118
|
+
}
|
|
15119
|
+
}
|
|
15120
|
+
LoanForm.mortgageLoanTypes = [LoanTypeEnum.MORTGAGE, LoanTypeEnum.HOME_EQUITY_LINE_OF_CREDIT, LoanTypeEnum.HOME_LOAN];
|
|
15121
|
+
|
|
14963
15122
|
/**
|
|
14964
15123
|
* Form array with bank account properties
|
|
14965
15124
|
* @TODO create AbstractFormArray
|
|
@@ -15167,6 +15326,27 @@ class SoleBusinessLossForm extends AbstractForm {
|
|
|
15167
15326
|
}
|
|
15168
15327
|
}
|
|
15169
15328
|
|
|
15329
|
+
const phonePattern = /^(((\s*)?([- ()]?\d[- ()]?){0,30}(\s*)?)|)$/;
|
|
15330
|
+
/**
|
|
15331
|
+
* Validator for phone number
|
|
15332
|
+
* Allowed special symbols"-", "(", ")"
|
|
15333
|
+
*/
|
|
15334
|
+
function phoneNumberValidator() {
|
|
15335
|
+
return (control) => {
|
|
15336
|
+
return phonePattern.test(control.value) ? null : { phoneInvalid: true };
|
|
15337
|
+
};
|
|
15338
|
+
}
|
|
15339
|
+
|
|
15340
|
+
class PhoneForm extends AbstractForm {
|
|
15341
|
+
constructor(phone = plainToClass(Phone, {})) {
|
|
15342
|
+
super({
|
|
15343
|
+
type: new FormControl(phone.type, Validators.required),
|
|
15344
|
+
country: new FormControl(phone.country, Validators.required),
|
|
15345
|
+
number: new FormControl(phone.number, [Validators.required, phoneNumberValidator()])
|
|
15346
|
+
}, phone);
|
|
15347
|
+
}
|
|
15348
|
+
}
|
|
15349
|
+
|
|
15170
15350
|
class SoleContactForm extends AbstractForm {
|
|
15171
15351
|
constructor(contact = plainToClass(SoleContact, {})) {
|
|
15172
15352
|
super({
|
|
@@ -15175,10 +15355,8 @@ class SoleContactForm extends AbstractForm {
|
|
|
15175
15355
|
firstName: new FormControl(contact.firstName, Validators.required),
|
|
15176
15356
|
lastName: new FormControl(contact.lastName, Validators.required),
|
|
15177
15357
|
email: new FormControl(contact.email, [Validators.required, Validators.email]),
|
|
15178
|
-
|
|
15179
|
-
|
|
15180
|
-
// @TODO Alex: create address form and address form control
|
|
15181
|
-
address: new FormControl(contact.address)
|
|
15358
|
+
phone: new PhoneForm(contact.phone || plainToClass(Phone, {})),
|
|
15359
|
+
address: new AddressForm(contact.address || plainToClass(Address, {}))
|
|
15182
15360
|
}, contact);
|
|
15183
15361
|
}
|
|
15184
15362
|
}
|
|
@@ -16303,5 +16481,5 @@ VehicleLogbookForm.maxDescriptionLength = 60;
|
|
|
16303
16481
|
* Generated bundle index. Do not edit.
|
|
16304
16482
|
*/
|
|
16305
16483
|
|
|
16306
|
-
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqService, BasiqToken, BasiqTokenService, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatCollection, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteCollection, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReceiptService, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookBestPeriodService, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfOrientationEnum, PdfSettings, Phone, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertySaleTaxExemptionMetadataCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RewardfulService, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, TutorialVideoService, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserInviteForm, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, minDateValidator, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
|
|
16484
|
+
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressForm, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqService, BasiqToken, BasiqTokenService, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatCollection, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteCollection, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReceiptService, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookBestPeriodService, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfOrientationEnum, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertySaleTaxExemptionMetadataCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RewardfulService, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, TutorialVideoService, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserInviteForm, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, minDateValidator, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
|
|
16307
16485
|
//# sourceMappingURL=taxtank-core.js.map
|