taxtank-core 0.32.6 → 0.32.7
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/lib/db/Enums/chart-accounts/chart-accounts-list.enum.mjs +3 -1
- package/esm2022/lib/forms/transaction/allocation-rule.form.mjs +2 -2
- package/esm2022/lib/models/chart-accounts/chart-accounts.mjs +21 -6
- package/fesm2022/taxtank-core.mjs +22 -5
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/lib/db/Enums/chart-accounts/chart-accounts-list.enum.d.ts +3 -1
- package/lib/models/chart-accounts/chart-accounts.d.ts +7 -1
- package/package.json +1 -1
|
@@ -95,5 +95,7 @@ export var ChartAccountsListEnum;
|
|
|
95
95
|
ChartAccountsListEnum[ChartAccountsListEnum["PSI_DEDUCTION_OTHER"] = 860] = "PSI_DEDUCTION_OTHER";
|
|
96
96
|
ChartAccountsListEnum[ChartAccountsListEnum["AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS"] = 871] = "AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS";
|
|
97
97
|
ChartAccountsListEnum[ChartAccountsListEnum["FHSS"] = 872] = "FHSS";
|
|
98
|
+
ChartAccountsListEnum[ChartAccountsListEnum["PROGRESS_PAYMENTS"] = 884] = "PROGRESS_PAYMENTS";
|
|
99
|
+
ChartAccountsListEnum[ChartAccountsListEnum["LOAN_PAYMENT"] = 885] = "LOAN_PAYMENT";
|
|
98
100
|
})(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFrR1g7QUFsR0QsV0FBWSxxQkFBcUI7SUFDL0IsdUdBQTRCLENBQUE7SUFDNUIsbUdBQTBCLENBQUE7SUFDMUIsdUZBQW9CLENBQUE7SUFDcEIseUdBQTZCLENBQUE7SUFDN0IsMkZBQXNCLENBQUE7SUFDdEIsNkdBQStCLENBQUE7SUFDL0IsaUpBQWlELENBQUE7SUFDakQsMkdBQThCLENBQUE7SUFDOUIsbUZBQWtCLENBQUE7SUFDbEIsbUdBQTBCLENBQUE7SUFDMUIsK0ZBQXdCLENBQUE7SUFDeEIsMkdBQThCLENBQUE7SUFDOUIseUdBQTZCLENBQUE7SUFDN0IscUZBQW1CLENBQUE7SUFDbkIsaUdBQXlCLENBQUE7SUFDekIsMkZBQXNCLENBQUE7SUFDdEIsK0ZBQXdCLENBQUE7SUFDeEIsNkVBQWUsQ0FBQTtJQUNmLDJFQUFjLENBQUE7SUFDZCwyRkFBc0IsQ0FBQTtJQUN0Qix3R0FBNEIsQ0FBQTtJQUM1QixtRkFBaUIsQ0FBQTtJQUNqQix1RkFBbUIsQ0FBQTtJQUNuQixvRkFBa0IsQ0FBQTtJQUNsQixxRkFBbUIsQ0FBQTtJQUNuQixnR0FBd0IsQ0FBQTtJQUN4QixvR0FBMEIsQ0FBQTtJQUMxQixzR0FBMkIsQ0FBQTtJQUMzQix5RkFBcUIsQ0FBQTtJQUNyQix3RkFBb0IsQ0FBQTtJQUNwQiwrRkFBd0IsQ0FBQTtJQUN4QixtRkFBa0IsQ0FBQTtJQUNsQixpR0FBeUIsQ0FBQTtJQUN6QixtSEFBaUMsQ0FBQTtJQUNqQyxvSEFBa0MsQ0FBQTtJQUNsQyw4RUFBZSxDQUFBO0lBQ2YsMEZBQXFCLENBQUE7SUFDckIsbUhBQWtDLENBQUE7SUFDbEMsbUdBQTBCLENBQUE7SUFDMUIsaUlBQXlDLENBQUE7SUFDekMsNkVBQWUsQ0FBQTtJQUNmLHFJQUEyQyxDQUFBO0lBQzNDLDZHQUErQixDQUFBO0lBQy9CLHVKQUFvRCxDQUFBO0lBQ3BELDZGQUF1QixDQUFBO0lBQ3ZCLHlJQUE2QyxDQUFBO0lBQzdDLHFHQUEyQixDQUFBO0lBQzNCLGlIQUFpQyxDQUFBO0lBQ2pDLHVIQUFvQyxDQUFBO0lBQ3BDLG1IQUFrQyxDQUFBO0lBQ2xDLCtJQUFnRCxDQUFBO0lBQ2hELHFKQUFtRCxDQUFBO0lBQ25ELDJJQUE4QyxDQUFBO0lBQzlDLHlKQUFxRCxDQUFBO0lBQ3JELCtJQUFnRCxDQUFBO0lBQ2hELHFFQUFXLENBQUE7SUFDWCx1RUFBWSxDQUFBO0lBQ1osaUZBQWlCLENBQUE7SUFDakIsK0VBQWdCLENBQUE7SUFDaEIsNkZBQXVCLENBQUE7SUFDdkIscUdBQTJCLENBQUE7SUFDM0IsdUhBQW9DLENBQUE7SUFDcEMsaUhBQWlDLENBQUE7SUFDakMsK0hBQXdDLENBQUE7SUFDeEMsdUtBQTRELENBQUE7SUFDNUQsNkdBQStCLENBQUE7SUFDL0IsK0dBQWdDLENBQUE7SUFDaEMsdUZBQW9CLENBQUE7SUFDcEIsMkVBQWMsQ0FBQTtJQUNkLDZHQUErQixDQUFBO0lBQy9CLDZIQUF1QyxDQUFBO0lBQ3ZDLGlIQUFpQyxDQUFBO0lBQ2pDLCtHQUFnQyxDQUFBO0lBQ2hDLHVGQUFvQixDQUFBO0lBQ3BCLDJFQUFjLENBQUE7SUFDZCxtR0FBMEIsQ0FBQTtJQUMxQixtRkFBa0IsQ0FBQTtJQUNsQix5R0FBNkIsQ0FBQTtJQUM3QiwrR0FBZ0MsQ0FBQTtJQUNoQyxpSEFBaUMsQ0FBQTtJQUNqQyw2RUFBZSxDQUFBO0lBQ2YscUVBQVcsQ0FBQTtJQUNYLDZFQUFlLENBQUE7SUFDZiwyRUFBYyxDQUFBO0lBQ2QscUZBQW1CLENBQUE7SUFDbkIsaUdBQXlCLENBQUE7SUFDekIsK0ZBQXdCLENBQUE7SUFDeEIsNkZBQXVCLENBQUE7SUFDdkIseUZBQXFCLENBQUE7SUFDckIscUZBQW1CLENBQUE7SUFDbkIsNkVBQWUsQ0FBQTtJQUNmLDJHQUE4QixDQUFBO0lBQzlCLGlHQUF5QixDQUFBO0lBQ3pCLHVJQUE0QyxDQUFBO0lBQzVDLG1FQUFVLENBQUE7SUFDViw2RkFBc0IsQ0FBQTtJQUN0QixtRkFBa0IsQ0FBQTtBQUNwQixDQUFDLEVBbEdXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFrR2hDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtIHtcbiAgSE9NRV9PRkZJQ0VfV09SS19IT1VSUyA9IDEwMyxcbiAgUEFSVE5FUlNISVBfRVhQRU5TRVMgPSAxNTYsXG4gIFRSVVNUX0VYUEVOU0VTID0gMTU3LFxuICBJTlRFUkVTVF9DSEFSR0VEX0JZX0FUTyA9IDI3OCxcbiAgTElUSUdBVElPTl9DT1NUUyA9IDI4MCxcbiAgQUNDT1VOVEFOVF9UQVhfQUdFTlRfRkVFUyA9IDI4MixcbiAgVFJBVkVMX0NPU1RTX1RPX1NFRV9ZT1VSX0FDQ09VTlRBTlRfQURWSVNPUiA9IDI4NCxcbiAgQUNDT1VOVElOR19TT0ZUV0FSRV9GRUVTID0gMjg1LFxuICBBRFZJU09SX0ZFRVMgPSAyODYsXG4gIElOQ09NRV9UQVhfVkFSSUFUSU9OID0gMjkyLFxuICBQU0lfQUJOX05PVF9RVU9URUQgPSAyOTQsXG4gIFBTSV9MQUJPVVJfSElSRV9PUl9PVEhFUiA9IDI5NCxcbiAgUFNJX1ZPTFVOVEFSWV9BR1JFRU1FTlQgPSAyOTYsXG4gIFJFTlRBTF9JTkNPTUUgPSAyOTgsXG4gIE9USEVSX1JFTlRBTF9JTkNPTUUgPSAzMDAsXG4gIElOVEVSRVNUX09OX0xPQU4gPSAzMDIsXG4gIEJPUlJPV0lOR19FWFBFTlNFUyA9IDMxNSxcbiAgRElWSURFTkRTID0gNTQyLFxuICBUUkFOU0ZFUiA9IDYxNSxcbiAgQlVJTERJTkdfQVRfQ09TVCA9IDMwNCxcbiAgS0xNU19UUkFWRUxMRURfRk9SX1dPUksgPSAyNCxcbiAgRElSRUNUT1JfRkVFUyA9IDYsXG4gIFNBTEFSWV9PUl9XQUdFUyA9IDIsXG4gIFdPUktfVkVISUNMRVMgPSAyNSxcbiAgU09MRV9WRUhJQ0xFUyA9IDcyMSxcbiAgQ09NTUVSQ0lBTF9WRUhJQ0xFUyA9IDI2LFxuICBWRUhJQ0xFX0xPQU5fSU5URVJFU1QgPSAzNyxcbiAgVkVISUNMRV9MT0FOX1BSSU5DSVBBTCA9IDM4LFxuICBUQVhfSU5TVEFMTUVOVFMgPSA2NjIsXG4gIElOVEVSRVNUX0VBUk5FRCA9IDIyLFxuICBQQVJUTkVSU0hJUF9JTkNPTUUgPSA1NjYsXG4gIFRSVVNUX0lOQ09NRSA9IDU2NyxcbiAgVEFYX09GRlNFVFNfTl9SX0FfUyA9IDU3MSxcbiAgTFVNUF9TVU1fQV9HRU5VSU5FX1JFRFVOREFOQ1kgPSA5LFxuICBMVU1QX1NVTV9BX0FMTF9PVEhFUl9QQVlNRU5UUyA9IDEwLFxuICBMVU1QX1NVTV9CID0gMTEsXG4gIEFUVFJJQlVUQUJMRV9QU0kgPSAyMCxcbiAgTFVNUF9TVU1fUEFZTUVOVFNfSU5fQVJSRUFSUyA9IDUxOSxcbiAgSlVSWV9BVFRFTkRBTkNFX0ZFRVMgPSA1MTksXG4gIEZPUkVJR05fRVhDSEFOR0VfR0FJTlNfTk9OX0JVU0lORVNTID0gNTIzLFxuICBST1lBTFRJRVMgPSA1MjUsXG4gIFRBWEFCTEVfU0NIT0xBUlNISVBTX0JVUlNBUklFU19HUkFOVFMgPSA1MjcsXG4gIFNQRUNJQUxfUFJPRkVTU0lPTl9JTkNPTUUgPSA1MjksXG4gIEdBSU5fT05fU0FMRV9PRl9WRUhJQ0xFX1BSRVZJT1VTTFlfREVQUkVDSUFURUQgPSA1MzEsXG4gIEFUT19JTlRFUkVTVF9QQUlEID0gNTMzLFxuICBQRVJTT05BTF9TVVBFUl9DT05UUklCVVRJT05TX0RFRFVDVElCTEUgPSA1MzYsXG4gIFNPRlRXQVJFX0ZFRVNfVEFYVEFOSyA9IDU0MSxcbiAgQVVTVFJBTElBTl9BTk5VSVRZX1BBWU1FTlRTID0gNTU5LFxuICBDT0RFX01fU1VQRVJBTk5VQVRJT05fTFVNUF9TVU0gPSA1NjEsXG4gIEVNUExPWUVFX1NIQVJFX1NDSEVNRV9JTkNPTUUgPSA1NjQsXG4gIEZPUkVTVFJZX01BTkFHRURfSU5WRVNUTUVOVF9TQ0hFTUVTX0lOQ09NRSA9IDU5MCxcbiAgRk9SRVNUUllfTUFOQUdFRF9JTlZFU1RNRU5UX1NDSEVNRVNfREVEVUNUSU9OID0gNTkzLFxuICBBU1NFU1NBQkxFX0FNT1VOVF9DQVBQRURfREVGSU5FRF9CRU5FRklUID0gNjM5LFxuICBDT0RFX0JfU1VQRVJBTk5VQVRJT05fSU5DT01FX1NUUkVBTVNfRElTQUJJTElUWSA9IDU1OCxcbiAgQ09ERV9BX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RFQVRIID0gNjQwLFxuICBTQUxFUyA9IDY2NSxcbiAgTEFCT1VSID0gNjY2LFxuICBVQkVSX0lOQ09NRSA9IDY2NyxcbiAgQ09NTUlTU0lPTiA9IDY2OCxcbiAgUEFSVFNfQ09OU1VNQUJMRVMgPSA2NjksXG4gIE9USEVSX0JVU0lORVNTX0lOQ09NRSA9IDY3MCxcbiAgQVNTRVNTSUJMRV9HT1ZFUk5NRU5UX1BBWU1FTlRTID0gNjcxLFxuICBHUk9TU19QQVlNRU5UU19OT19BQk5fR0lWRU4gPSA2NzIsXG4gIEdST1NTX1BBWU1FTlRTX1ZPTFVOVEFSWV9BR1JFRU1FTlQgPSA2NzMsXG4gIEdST1NTX1BBWU1FTlRTX0xBQk9VUl9ISVJFX09SX09USEVSX1NQRUNJRklFRF9QQVlNRU5UUyA9IDY3NCxcbiAgUFVSQ0hBU0VTX1NUT0NLX0lOVkVOVE9SWSA9IDY3NSxcbiAgQ09OVFJBQ1RPUlNfQU5EX0NPTU1JU1NJT04gPSA2NzYsXG4gIFNVUEVSQU5OVUFUSU9OID0gNjc3LFxuICBCQURfREVCVCA9IDY3OCxcbiAgTEVBU0VfRVhQRU5TRVNfQ09NTUVSQ0lBTCA9IDY3OSxcbiAgUkVOVF9FWFBFTlNFU19DT01NRVJDSUFMX1BSRU1JU0VTID0gNjgwLFxuICBJTlRFUkVTVF9FWFBFTlNFU19BVVNUUkFMSUEgPSA2ODEsXG4gIElOVEVSRVNUX0VYUEVOU0VTX09WRVJTRUFTID0gNjgyLFxuICBLTE1TX1RSQVZFTExFRCA9IDY4MyxcbiAgRlVFTF9PSUwgPSA2ODQsXG4gIFNFUlZJQ0VTX01BSU5URU5BTkNFID0gNjg1LFxuICBSRUdJU1RSQVRJT04gPSA2ODYsXG4gIExFQVNFX0lOVEVSRVNUX1BBWU1FTlRTID0gNjg3LFxuICBTT0xFX1ZFSElDTEVfTE9BTl9JTlRFUkVTVCA9IDY4OCxcbiAgU09MRV9WRUhJQ0xFX0xPQU5fUFJJTkNJUEFMID0gODU1LFxuICBJTlNVUkFOQ0UgPSA2ODksXG4gIFRZUkVTID0gNjkwLFxuICBCQVRURVJJRVMgPSA2OTEsXG4gIENBUl9XQVNIID0gNjkyLFxuICBQQVJLSU5HX1RPTExTID0gNjkzLFxuICBPVEhFUl9TT0xFX0VYUEVOU0VTID0gNjk0LFxuICBTT0xFX0VOVEVSVEFJTk1FTlQgPSA2OTgsXG4gIFBFUlNPTkFMX0VYUEVOU0VTID0gNjI4LFxuICBQRVJTT05BTF9JTkNPTUUgPSA2MzAsXG4gIFBMQVRGT1JNX0ZFRVMgPSA4NTcsXG4gIFBTSV9PVEhFUiA9IDg1OCxcbiAgUFNJX0RFRFVDVElPTl9BU1NPQ0lBVEVTID0gODU5LFxuICBQU0lfREVEVUNUSU9OX09USEVSID0gODYwLFxuICBBVVNUUkFMSUFOX0dPVkVSTk1FTlRfU1BFQ0lBTF9QQVlNRU5UUyA9IDg3MSxcbiAgRkhTUyA9IDg3MixcbiAgUFJPR1JFU1NfUEFZTUVOVFM9IDg4NCxcbiAgTE9BTl9QQVlNRU5UID0gODg1LFxufVxuIl19
|
|
@@ -51,7 +51,7 @@ export class AllocationRuleForm extends AbstractForm {
|
|
|
51
51
|
}
|
|
52
52
|
isTaxFieldHidden() {
|
|
53
53
|
const chartAccounts = this.transactionFormGroup.get('chartAccounts').value;
|
|
54
|
-
return !chartAccounts || !chartAccounts.
|
|
54
|
+
return !chartAccounts || !chartAccounts.hasTaxField();
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
57
57
|
* TODO Alex: disable sole tank in form control when income selected
|
|
@@ -160,4 +160,4 @@ export class AllocationRuleForm extends AbstractForm {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBa0IseUJBQXlCLEVBQUUseUJBQXlCLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUE2QixNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBNEI7SUFHbEU7SUFDRSxpRUFBaUU7SUFDakUsSUFBb0I7SUFDcEIsdUNBQXVDO0lBQy9CLEtBQWM7UUFFdEIsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzVELElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZ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b250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGUsIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24sIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0gfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24uZm9ybSc7XG5pbXBvcnQgeyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSB9IGZyb20gJy4vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUeXBlRW51bSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgQWxsb2NhdGlvblJ1bGVGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEFsbG9jYXRpb25SdWxlPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY2hhcnRBY2NvdW50c0NhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBydWxlIGlzIHJlcXVpcmVkIGJlY2F1c2Ugd2UgaGF2ZSB0byBrZWVwIGJhbmsgYWNjb3VudCByZWxhdGlvblxuICAgIHJ1bGU6IEFsbG9jYXRpb25SdWxlLFxuICAgIC8vIEZsYWcgdG8gZW5hYmxlIHRyYW5zYWN0aW9uIEdTVCBmaWVsZFxuICAgIHByaXZhdGUgaXNHU1Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLnR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgbmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29uZGl0aW9uT3BlcmF0b3I6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocnVsZS5jb25kaXRpb25PcGVyYXRvciwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBjb25kaXRpb25zOiBuZXcgVW50eXBlZEZvcm1BcnJheShcbiAgICAgICAgKHJ1bGUuY29uZGl0aW9ucyB8fCBbcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uLCB7fSldKVxuICAgICAgICAgIC5tYXAoKGNvbmRpdGlvbjogQWxsb2NhdGlvblJ1bGVDb25kaXRpb24pID0+IG5ldyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0oY29uZGl0aW9uKSlcbiAgICAgICksXG4gICAgICB0cmFuc2FjdGlvbjogbmV3IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtKHJ1bGUudHJhbnNhY3Rpb24gfHwgcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24sIHt9KSwgaXNHU1QpLFxuICAgICAgdHJhbnNmZXJCYW5rQWNjb3VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLnRyYW5zZmVyQmFua0FjY291bnQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgYXV0b0FsbG9jYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJ1bGUuYXV0b0FsbG9jYXRlIHx8IGZhbHNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9LCBydWxlKTtcblxuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5zZXR1cEZpZWxkc0J5VHlwZShydWxlLnR5cGUpO1xuICAgIHRoaXMuc2V0dXBGaWVsZHNCeVRhbmtUeXBlKHJ1bGUudHJhbnNhY3Rpb24/LnRhbmtUeXBlKTtcbiAgICB0aGlzLnVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk7XG5cbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWU/LmlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NsYWltUGVyY2VudCcpLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlIHRyYW5zYWN0aW9uIGFtb3VudCBmaWVsZCB3aGVuIHRyYW5zYWN0aW9uIGhhcyBubyBhbW91bnQgKG5vbi1zcGxpdClcbiAgICBpZiAoIXJ1bGUudHJhbnNhY3Rpb24/LmlzU3BsaXQoKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoWydhbW91bnRQZXJjZW50J10pLmRpc2FibGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uZGl0aW9uc0FycmF5KCk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmdldCgnY29uZGl0aW9ucycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgY2hpbGRUcmFuc2FjdGlvbnNBcnJheSgpOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NoaWxkVHJhbnNhY3Rpb25zJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbkZvcm1Hcm91cCgpOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbicpIGFzIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtO1xuICB9XG5cbiAgYWRkQ29uZGl0aW9uRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmRpdGlvbnNBcnJheS5wdXNoKG5ldyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0oKSk7XG4gIH1cblxuICBpc1RheEZpZWxkSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMgPSB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlO1xuXG4gICAgcmV0dXJuICFjaGFydEFjY291bnRzIHx8ICFjaGFydEFjY291bnRzLmlzVGF4YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8gQWxleDogZGlzYWJsZSBzb2xlIHRhbmsgaW4gZm9ybSBjb250cm9sIHdoZW4gaW5jb21lIHNlbGVjdGVkXG4gICAqL1xuICBpc1RyYW5zYWN0aW9uRmllbGRzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgndGFua1R5cGUnKS52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmN1cnJlbnRWYWx1ZS5pc1NvbGVJbmNvbWUoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpOiBBbGxvY2F0aW9uUnVsZSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGNvbmRpdGlvbnM6IHRoaXMuY29uZGl0aW9uc0FycmF5LmNvbnRyb2xzLm1hcCgoY29uZGl0aW9uRm9ybTogQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Gb3JtKSA9PiBjb25kaXRpb25Gb3JtLnN1Ym1pdCgpKSxcbiAgICAgIHRyYW5zYWN0aW9uOiBudWxsLFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlLmlzVHJhbnNmZXIoKSkge1xuICAgICAgZGF0YS50cmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuc3VibWl0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdChkYXRhKTtcbiAgfVxuXG4gIGlzU3BsaXR0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ3R5cGUnKS52YWx1ZSA9PT0gQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5FWFBFTlNFIHx8IHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuaXNQZXJzb25hbCgpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVGFua1R5cGVDaGFuZ2VzKCk7XG4gICAgdGhpcy5saXN0ZW5UeXBlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5UeXBlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgndHlwZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHR5cGU6IEFsbG9jYXRpb25SdWxlVHlwZUVudW0pID0+IHtcbiAgICAgIHRoaXMuc2V0dXBGaWVsZHNCeVR5cGUodHlwZSk7XG4gICAgICB0aGlzLnVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk7XG5cbiAgICAgIC8vIHdlIGhhdmUgZGlmZmVyZW50IGZpZWxkcyBmb3IgZGlmZmVyZW50IHR5cGVzXG4gICAgICAvLyBAVE9ETyBzZXBhcmF0ZWQgcmVpbml0IG1ldGhvZCBpZiB3ZSBuZWVkIGl0IGFueXdoZXJlIGVsc2VcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuc2V0VmFsdWUoXG4gICAgICAgIG5ldyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybShwbGFpblRvQ2xhc3MoQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbiwge30pLCB0aGlzLmlzR1NUKS5nZXRSYXdWYWx1ZSgpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5UYW5rVHlwZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ3RhbmtUeXBlJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodGFua1R5cGU6IFRhbmtUeXBlRW51bSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDaGFydEFjY291bnRzQ2F0ZWdvcmllcygpO1xuICAgICAgdGhpcy5zZXR1cEZpZWxkc0J5VGFua1R5cGUodGFua1R5cGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBsaXN0IG9mIGNoYXJ0IGFjY291bnRzIGNhdGVnb3JpZXMgYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25cbiAgICogRGVwZW5kcyBvbiB0cmFuc2FjdGlvbiB0eXBlIGFuZCB0YW5rIHR5cGVcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlQ2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoKTogdm9pZCB7XG4gICAgLy8gV2UgdXNlIHVuaXF1ZSBvbmUgQ2hhcnQgQWNjb3VudHMgZm9yIHRyYW5zZmVyXG4gICAgaWYgKHRoaXMuY3VycmVudFZhbHVlLmlzVHJhbnNmZXIoKSkge1xuICAgICAgdGhpcy5jaGFydEFjY291bnRzQ2F0ZWdvcmllcyA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhjbHVkZWRDYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10gPSBbLi4uQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5kZXByZWNpYXRpb25dO1xuXG4gICAgdGhpcy5jaGFydEFjY291bnRzQ2F0ZWdvcmllcyA9IGludGVyc2VjdGlvbihDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTW3RoaXMuY3VycmVudFZhbHVlLnR5cGVMYWJlbF0sIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVNbdGhpcy50YW5rVHlwZUxhYmVsXSlcbiAgICAgIC5maWx0ZXIoKGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKSA9PiAhZXhjbHVkZWRDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3J5KSk7XG4gIH1cblxuICBnZXQgdGFua1R5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ3RhbmtUeXBlJykudmFsdWUpIHtcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgIHJldHVybiAnd29yayc7XG5cbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICByZXR1cm4gJ3Byb3BlcnR5JztcblxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgcmV0dXJuICdzb2xlJztcblxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uSE9MRElORzpcbiAgICAgICAgcmV0dXJuICdob2xkaW5nJztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdwZXJzb25hbCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEZpZWxkc0J5VHlwZSh0eXBlOiBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtKTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEFsbG9jYXRpb25SdWxlVHlwZUVudW0uRVhQRU5TRTpcbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5JTkNPTUU6XG4gICAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbicpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0KCd0cmFuc2ZlckJhbmtBY2NvdW50JykuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgICAgLy8gZGlzYWJsZSB0cmFuc2FjdGlvbiBhbW91bnQgZmllbGQgd2hlbiB2YWx1ZSBpcyBlbXB0eVxuICAgICAgICAvLyBkaXNhYmxlIG1hbnVhbGx5IGJlY2F1c2UgY29kZSBhYm92ZSBlbmFibGVzIHRoaXMgZmllbGRcbiAgICAgICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldChbJ2Ftb3VudFBlcmNlbnQnXSkudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldChbJ2Ftb3VudFBlcmNlbnQnXSkuZGlzYWJsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLlRSQU5TRkVSOlxuICAgICAgICB0aGlzLmdldCgndHJhbnNhY3Rpb24nKS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zZmVyQmFua0FjY291bnQnKS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEZpZWxkc0J5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHZvaWQge1xuICAgIC8vIEZpcnN0IGRpc2FibGUgdGFua1R5cGUtcmVsYXRlZCBmaWVsZHMsIHNlY29uZCBlbmFibGUgZm9yIHNlbGVjdGVkIHRhbmsgdHlwZVxuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdwcm9wZXJ0eScpLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdidXNpbmVzcycpLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpc0dTVCcpLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpbmNvbWVTb3VyY2UnKS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgIHN3aXRjaCAodGFua1R5cGUpIHtcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpbmNvbWVTb3VyY2UnKS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgncHJvcGVydHknKS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdidXNpbmVzcycpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNHU1QpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnaXNHU1QnKS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpc0dTVCcpLnNldFZhbHVlKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBa0IseUJBQXlCLEVBQUUseUJBQXlCLEVBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUE2QixNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUUvQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBNEI7SUFHbEU7SUFDRSxpRUFBaUU7SUFDakUsSUFBb0I7SUFDcEIsdUNBQXVDO0lBQy9CLEtBQWM7UUFFdEIsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzVELElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZ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b250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Rm9ybSB9IGZyb20gJy4uL2Fic3RyYWN0LmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGUsIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24sIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0gfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24uZm9ybSc7XG5pbXBvcnQgeyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSB9IGZyb20gJy4vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmZvcm0nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUeXBlRW51bSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgQWxsb2NhdGlvblJ1bGVGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEFsbG9jYXRpb25SdWxlPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY2hhcnRBY2NvdW50c0NhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBydWxlIGlzIHJlcXVpcmVkIGJlY2F1c2Ugd2UgaGF2ZSB0byBrZWVwIGJhbmsgYWNjb3VudCByZWxhdGlvblxuICAgIHJ1bGU6IEFsbG9jYXRpb25SdWxlLFxuICAgIC8vIEZsYWcgdG8gZW5hYmxlIHRyYW5zYWN0aW9uIEdTVCBmaWVsZFxuICAgIHByaXZhdGUgaXNHU1Q6IGJvb2xlYW5cbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgdHlwZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLnR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgbmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLm5hbWUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgY29uZGl0aW9uT3BlcmF0b3I6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocnVsZS5jb25kaXRpb25PcGVyYXRvciwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBjb25kaXRpb25zOiBuZXcgVW50eXBlZEZvcm1BcnJheShcbiAgICAgICAgKHJ1bGUuY29uZGl0aW9ucyB8fCBbcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uLCB7fSldKVxuICAgICAgICAgIC5tYXAoKGNvbmRpdGlvbjogQWxsb2NhdGlvblJ1bGVDb25kaXRpb24pID0+IG5ldyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0oY29uZGl0aW9uKSlcbiAgICAgICksXG4gICAgICB0cmFuc2FjdGlvbjogbmV3IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtKHJ1bGUudHJhbnNhY3Rpb24gfHwgcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24sIHt9KSwgaXNHU1QpLFxuICAgICAgdHJhbnNmZXJCYW5rQWNjb3VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbChydWxlLnRyYW5zZmVyQmFua0FjY291bnQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgYXV0b0FsbG9jYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJ1bGUuYXV0b0FsbG9jYXRlIHx8IGZhbHNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICB9LCBydWxlKTtcblxuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5zZXR1cEZpZWxkc0J5VHlwZShydWxlLnR5cGUpO1xuICAgIHRoaXMuc2V0dXBGaWVsZHNCeVRhbmtUeXBlKHJ1bGUudHJhbnNhY3Rpb24/LnRhbmtUeXBlKTtcbiAgICB0aGlzLnVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk7XG5cbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWU/LmlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NsYWltUGVyY2VudCcpLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlIHRyYW5zYWN0aW9uIGFtb3VudCBmaWVsZCB3aGVuIHRyYW5zYWN0aW9uIGhhcyBubyBhbW91bnQgKG5vbi1zcGxpdClcbiAgICBpZiAoIXJ1bGUudHJhbnNhY3Rpb24/LmlzU3BsaXQoKSkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoWydhbW91bnRQZXJjZW50J10pLmRpc2FibGUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uZGl0aW9uc0FycmF5KCk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmdldCgnY29uZGl0aW9ucycpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgY2hpbGRUcmFuc2FjdGlvbnNBcnJheSgpOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2NoaWxkVHJhbnNhY3Rpb25zJykgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbkZvcm1Hcm91cCgpOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uRm9ybSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbicpIGFzIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtO1xuICB9XG5cbiAgYWRkQ29uZGl0aW9uRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmRpdGlvbnNBcnJheS5wdXNoKG5ldyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0oKSk7XG4gIH1cblxuICBpc1RheEZpZWxkSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMgPSB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlO1xuXG4gICAgcmV0dXJuICFjaGFydEFjY291bnRzIHx8ICFjaGFydEFjY291bnRzLmhhc1RheEZpZWxkKCk7XG4gIH1cblxuICAvKipcbiAgICogVE9ETyBBbGV4OiBkaXNhYmxlIHNvbGUgdGFuayBpbiBmb3JtIGNvbnRyb2wgd2hlbiBpbmNvbWUgc2VsZWN0ZWRcbiAgICovXG4gIGlzVHJhbnNhY3Rpb25GaWVsZHNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCd0YW5rVHlwZScpLnZhbHVlID09PSBudWxsIHx8IHRoaXMuY3VycmVudFZhbHVlLmlzU29sZUluY29tZSgpO1xuICB9XG5cbiAgc3VibWl0KCk6IEFsbG9jYXRpb25SdWxlIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgY29uZGl0aW9uczogdGhpcy5jb25kaXRpb25zQXJyYXkuY29udHJvbHMubWFwKChjb25kaXRpb25Gb3JtOiBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkZvcm0pID0+IGNvbmRpdGlvbkZvcm0uc3VibWl0KCkpLFxuICAgICAgdHJhbnNhY3Rpb246IG51bGwsXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUuaXNUcmFuc2ZlcigpKSB7XG4gICAgICBkYXRhLnRyYW5zYWN0aW9uID0gdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuc3VibWl0KGRhdGEpO1xuICB9XG5cbiAgaXNTcGxpdHRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldCgndHlwZScpLnZhbHVlID09PSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLkVYUEVOU0UgfHwgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5pc1BlcnNvbmFsKCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5UYW5rVHlwZUNoYW5nZXMoKTtcbiAgICB0aGlzLmxpc3RlblR5cGVDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblR5cGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCd0eXBlJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodHlwZTogQWxsb2NhdGlvblJ1bGVUeXBlRW51bSkgPT4ge1xuICAgICAgdGhpcy5zZXR1cEZpZWxkc0J5VHlwZSh0eXBlKTtcbiAgICAgIHRoaXMudXBkYXRlQ2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoKTtcblxuICAgICAgLy8gd2UgaGF2ZSBkaWZmZXJlbnQgZmllbGRzIGZvciBkaWZmZXJlbnQgdHlwZXNcbiAgICAgIC8vIEBUT0RPIHNlcGFyYXRlZCByZWluaXQgbWV0aG9kIGlmIHdlIG5lZWQgaXQgYW55d2hlcmUgZWxzZVxuICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5zZXRWYWx1ZShcbiAgICAgICAgbmV3IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25Gb3JtKHBsYWluVG9DbGFzcyhBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uLCB7fSksIHRoaXMuaXNHU1QpLmdldFJhd1ZhbHVlKClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRhbmtUeXBlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgndGFua1R5cGUnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh0YW5rVHlwZTogVGFua1R5cGVFbnVtKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKCk7XG4gICAgICB0aGlzLnNldHVwRmllbGRzQnlUYW5rVHlwZSh0YW5rVHlwZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGxpc3Qgb2YgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcmllcyBhbGxvd2VkIGZvciB0cmFuc2FjdGlvblxuICAgKiBEZXBlbmRzIG9uIHRyYW5zYWN0aW9uIHR5cGUgYW5kIHRhbmsgdHlwZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDaGFydEFjY291bnRzQ2F0ZWdvcmllcygpOiB2b2lkIHtcbiAgICAvLyBXZSB1c2UgdW5pcXVlIG9uZSBDaGFydCBBY2NvdW50cyBmb3IgdHJhbnNmZXJcbiAgICBpZiAodGhpcy5jdXJyZW50VmFsdWUuaXNUcmFuc2ZlcigpKSB7XG4gICAgICB0aGlzLmNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGNsdWRlZENhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXSA9IFsuLi5DSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmRlcHJlY2lhdGlvbl07XG5cbiAgICB0aGlzLmNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzID0gaW50ZXJzZWN0aW9uKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVNbdGhpcy5jdXJyZW50VmFsdWUudHlwZUxhYmVsXSwgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFU1t0aGlzLnRhbmtUeXBlTGFiZWxdKVxuICAgICAgLmZpbHRlcigoY2F0ZWdvcnk6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0pID0+ICFleGNsdWRlZENhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcnkpKTtcbiAgfVxuXG4gIGdldCB0YW5rVHlwZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnRyYW5zYWN0aW9uRm9ybUdyb3VwLmdldCgndGFua1R5cGUnKS52YWx1ZSkge1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgcmV0dXJuICd3b3JrJztcblxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uUFJPUEVSVFk6XG4gICAgICAgIHJldHVybiAncHJvcGVydHknO1xuXG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5TT0xFOlxuICAgICAgICByZXR1cm4gJ3NvbGUnO1xuXG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5IT0xESU5HOlxuICAgICAgICByZXR1cm4gJ2hvbGRpbmcnO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3BlcnNvbmFsJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwRmllbGRzQnlUeXBlKHR5cGU6IEFsbG9jYXRpb25SdWxlVHlwZUVudW0pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5FWFBFTlNFOlxuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLklOQ09NRTpcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9uJykuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zZmVyQmFua0FjY291bnQnKS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICAvLyBkaXNhYmxlIHRyYW5zYWN0aW9uIGFtb3VudCBmaWVsZCB3aGVuIHZhbHVlIGlzIGVtcHR5XG4gICAgICAgIC8vIGRpc2FibGUgbWFudWFsbHkgYmVjYXVzZSBjb2RlIGFib3ZlIGVuYWJsZXMgdGhpcyBmaWVsZFxuICAgICAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KFsnYW1vdW50UGVyY2VudCddKS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KFsnYW1vdW50UGVyY2VudCddKS5kaXNhYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFsbG9jYXRpb25SdWxlVHlwZUVudW0uVFJBTlNGRVI6XG4gICAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbicpLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmdldCgndHJhbnNmZXJCYW5rQWNjb3VudCcpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwRmllbGRzQnlUYW5rVHlwZSh0YW5rVHlwZTogVGFua1R5cGVFbnVtKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgZGlzYWJsZSB0YW5rVHlwZS1yZWxhdGVkIGZpZWxkcywgc2Vjb25kIGVuYWJsZSBmb3Igc2VsZWN0ZWQgdGFuayB0eXBlXG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ3Byb3BlcnR5JykuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2J1c2luZXNzJykuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2lzR1NUJykuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2luY29tZVNvdXJjZScpLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2luY29tZVNvdXJjZScpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uUFJPUEVSVFk6XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdwcm9wZXJ0eScpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2J1c2luZXNzJykuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICBpZiAodGhpcy5pc0dTVCkge1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Gb3JtR3JvdXAuZ2V0KCdpc0dTVCcpLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkZvcm1Hcm91cC5nZXQoJ2lzR1NUJykuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { ChartAccounts as ChartAccountsBase } from '../../db/Models/chart-accoun
|
|
|
3
3
|
import { Expose, Transform, Type } from 'class-transformer';
|
|
4
4
|
import { ChartAccountsHeading } from './chart-accounts-heading';
|
|
5
5
|
import { ChartAccountsMetaField } from './chart-accounts-meta-field';
|
|
6
|
-
import { ChartAccountsCategoryEnum, ChartAccountsHeadingListEnum,
|
|
6
|
+
import { ChartAccountsCategoryEnum, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsSalaryIncludedListEnum } from '../../db/Enums';
|
|
7
7
|
import { CHART_ACCOUNTS_CATEGORIES } from './chart-accounts-categories.const';
|
|
8
8
|
import { FinancialYear } from '../financial-year';
|
|
9
9
|
import { ChartAccountsValue } from './chart-accounts-value';
|
|
@@ -98,6 +98,12 @@ export class ChartAccounts extends ChartAccountsBase {
|
|
|
98
98
|
isProperty() {
|
|
99
99
|
return CHART_ACCOUNTS_CATEGORIES.property.includes(this.category);
|
|
100
100
|
}
|
|
101
|
+
isWork() {
|
|
102
|
+
return CHART_ACCOUNTS_CATEGORIES.work.includes(this.category);
|
|
103
|
+
}
|
|
104
|
+
isSole() {
|
|
105
|
+
return CHART_ACCOUNTS_CATEGORIES.soleIncome.includes(this.category);
|
|
106
|
+
}
|
|
101
107
|
isWorkExpense() {
|
|
102
108
|
return [ChartAccountsCategoryEnum.WORK_EXPENSE, ChartAccountsCategoryEnum.OTHER_EXPENSE, ChartAccountsCategoryEnum.WORK_DEPRECIATION]
|
|
103
109
|
.includes(this.category);
|
|
@@ -130,9 +136,6 @@ export class ChartAccounts extends ChartAccountsBase {
|
|
|
130
136
|
isDepreciation() {
|
|
131
137
|
return CHART_ACCOUNTS_CATEGORIES.depreciation.includes(this.category);
|
|
132
138
|
}
|
|
133
|
-
isSoleIncome() {
|
|
134
|
-
return CHART_ACCOUNTS_CATEGORIES.soleIncome.includes(this.category);
|
|
135
|
-
}
|
|
136
139
|
/**
|
|
137
140
|
* Check if transaction chart account is work related car expenses
|
|
138
141
|
*/
|
|
@@ -206,9 +209,12 @@ export class ChartAccounts extends ChartAccountsBase {
|
|
|
206
209
|
isPropertyCapitalWorks() {
|
|
207
210
|
return this.category === ChartAccountsCategoryEnum.PROPERTY_CAPITAL_WORKS;
|
|
208
211
|
}
|
|
209
|
-
|
|
212
|
+
hasTaxField() {
|
|
210
213
|
return !this.isNRAS() && this.isWorkIncome();
|
|
211
214
|
}
|
|
215
|
+
isTaxable() {
|
|
216
|
+
return this.taxablePercent > 0;
|
|
217
|
+
}
|
|
212
218
|
isTransfer() {
|
|
213
219
|
return this.id === ChartAccountsListEnum.TRANSFER;
|
|
214
220
|
}
|
|
@@ -218,6 +224,15 @@ export class ChartAccounts extends ChartAccountsBase {
|
|
|
218
224
|
isHomeOfficeWorkHours() {
|
|
219
225
|
return this.id === ChartAccountsListEnum.HOME_OFFICE_WORK_HOURS;
|
|
220
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* income requiring extra data like adjustments/payer/etc
|
|
229
|
+
*/
|
|
230
|
+
isIncomeWithMeta() {
|
|
231
|
+
if (!this.isIncome() || this.isSole()) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
return this.isWork() || this.isTaxable();
|
|
235
|
+
}
|
|
221
236
|
}
|
|
222
237
|
__decorate([
|
|
223
238
|
Type(() => ChartAccountsHeading)
|
|
@@ -231,4 +246,4 @@ __decorate([
|
|
|
231
246
|
Transform(() => null, { toPlainOnly: true }),
|
|
232
247
|
Expose()
|
|
233
248
|
], ChartAccounts.prototype, "values", void 0);
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLHFDQUFxQyxFQUNyQyxtQ0FBbUMsRUFDbkMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNwQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFDbEQ7O09BRUc7YUFDSSxhQUFRLEdBQUcsR0FBRyxDQUFDO2FBQ2YsbUJBQWMsR0FBRyxHQUFHLENBQUM7YUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQWF2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LElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUM5QixTQUFTLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ3RGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDMUMsTUFBTSxFQUFFOzZDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0QWNjb3VudHMgYXMgQ2hhcnRBY2NvdW50c0Jhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xyXG5pbXBvcnQgeyBFeHBvc2UsIFRyYW5zZm9ybSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmcgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWhlYWRpbmcnO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzTWV0YUZpZWxkIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy1tZXRhLWZpZWxkJztcclxuaW1wb3J0IHtcclxuICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSxcclxuICBDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcclxuICBDaGFydEFjY291bnRzU2FsYXJ5SW5jbHVkZWRMaXN0RW51bVxyXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XHJcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNWYWx1ZSB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdmFsdWUnO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bSB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdGF4LWxhYmVscy5lbnVtJztcclxuaW1wb3J0IHsgZW51bVRvTGlzdCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9lbnVtLXRvLWxpc3QnO1xyXG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19WQUxVRVMgfSBmcm9tICcuLi8uLi9kYi1zdGF0aWMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdmFsdWVzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFydEFjY291bnRzIGV4dGVuZHMgQ2hhcnRBY2NvdW50c0Jhc2Uge1xyXG4gIC8qKlxyXG4gICAqIEF1c3RyYWxpYW4gR1NUIHBlcmNlbnQgdmFsdWUgKFZBVClcclxuICAgKi9cclxuICBzdGF0aWMgR1NUUmF0aW8gPSAwLjE7XHJcbiAgc3RhdGljIEdTVENvZWZmaWNpZW50ID0gMS4xO1xyXG4gIHN0YXRpYyBHU1RQZXJjZW50ID0gMTA7XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNIZWFkaW5nKVxyXG4gIGhlYWRpbmc6IENoYXJ0QWNjb3VudHNIZWFkaW5nO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzTWV0YUZpZWxkKVxyXG4gIG1ldGFGaWVsZHM6IENoYXJ0QWNjb3VudHNNZXRhRmllbGRbXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50c1ZhbHVlKVxyXG4gIEBUcmFuc2Zvcm0oKHtvYmp9KSA9PiBDSEFSVF9BQ0NPVU5UU19WQUxVRVMuZ2V0KG9iai5pZCkudG9BcnJheSgpLCB7dG9DbGFzc09ubHk6IHRydWV9KVxyXG4gIEBUcmFuc2Zvcm0oKCkgPT4gbnVsbCwge3RvUGxhaW5Pbmx5OiB0cnVlfSlcclxuICBARXhwb3NlKCkgdmFsdWVzOiBDaGFydEFjY291bnRzVmFsdWVbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIG5hbWUgYXMgc3RyaW5nXHJcbiAgICovXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnS21zIHRyYXZlbGxlZCBmb3Igd29yaycgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ttc0ZvcldvcmsoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ttcyB0cmF2ZWxsZWQgZm9yIHNvbGUnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNLbXNGb3JTb2xlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRDtcclxuICB9XHJcblxyXG4gIGlzS21zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURfRk9SX1dPUkssIENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF0uaW5jbHVkZXModGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBzcGVjaWFsIHR5cGUgdXNlZCBmb3IganVzdCBwcmUtcGF5aW5nIHRheCB0byB0aGUgQVRPLCB1c2VzIG9uIHRheCBzdW1tYXJ5XHJcbiAgICovXHJcbiAgaXNOUkFTKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UQVhfT0ZGU0VUU19OX1JfQV9TO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ludGVyZXN0IG9uIExvYW4nIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNJbnRlcmVzdE9uTG9hbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfT05fTE9BTjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdNb3RvciBWZWhpY2xlcycgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc1ZlaGljbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzTGlzdEVudW0uV09SS19WRUhJQ0xFUywgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlNPTEVfVkVISUNMRVNdLmluY2x1ZGVzKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ludGVyZXN0IEVhcm5lZCcgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ludGVyZXN0RWFybmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9FQVJORUQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnVHJ1c3QgSW5jb21lJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzVHJ1c3RJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlRSVVNUX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdNb3RvciB2ZWhpY2xlcyAoY29tbWVyY2lhbCBjYXJzKScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0NvbW1lcmNpYWxWZWhpY2xlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uQ09NTUVSQ0lBTF9WRUhJQ0xFUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHdvcmsgaW5jb21lXHJcbiAgICovXHJcbiAgaXNXb3JrSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW1bdGhpcy5oZWFkaW5nPy5pZF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBvdGhlciBpbmNvbWVcclxuICAgKi9cclxuICBpc090aGVySW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5pbmNvbWUuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5leHBlbnNlLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNQcm9wZXJ0eSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5LmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNXb3JrRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0RFUFJFQ0lBVElPTl1cclxuICAgICAgLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNTb2xlRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05dXHJcbiAgICAgIC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHByb3BlcnR5IGV4cGVuc2VcclxuICAgKi9cclxuICBpc1Byb3BlcnR5RXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzUHJvcGVydHkoKSAmJiB0aGlzLmlzRXhwZW5zZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgcHJvcGVydHkgaW5jb21lXHJcbiAgICovXHJcbiAgaXNQcm9wZXJ0eUluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wZXJzb25hbC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzUGVyc29uYWxFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUEVSU09OQUxfRVhQRU5TRTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGNhdGVnb3J5IGlzIGRlcHJlY2lhdGlvblxyXG4gICAqL1xyXG4gIGlzRGVwcmVjaWF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZGVwcmVjaWF0aW9uLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNTb2xlSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuc29sZUluY29tZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIGNoYXJ0IGFjY291bnQgaXMgd29yayByZWxhdGVkIGNhciBleHBlbnNlc1xyXG4gICAqL1xyXG4gIGlzVmVoaWNsZUxvYW5FeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNWZWhpY2xlTG9hbkludGVyZXN0KCkgfHwgdGhpcy5pc1ZlaGljbGVMb2FuUHJpbmNpcGxlKCk7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVMb2FuUHJpbmNpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRV9MT0FOX1BSSU5DSVBBTCwgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlNPTEVfVkVISUNMRV9MT0FOX1BSSU5DSVBBTF0uaW5jbHVkZXModGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVMb2FuSW50ZXJlc3QoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFX0xPQU5fSU5URVJFU1QsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5TT0xFX1ZFSElDTEVfTE9BTl9JTlRFUkVTVF0uaW5jbHVkZXModGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY2hhcnQgYWNjb3VudHMgdmFsdWUgZm9yIGN1cnJlbnQgZmluYW5jaWFsIHllYXJcclxuICAgKi9cclxuICBnZXRDdXJyZW50WWVhclZhbHVlKCk6IENoYXJ0QWNjb3VudHNWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUJ5WWVhcihuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIHZhbHVlIGJ5IGZpbmFuY2lhbCB5ZWFyXHJcbiAgICovXHJcbiAgZ2V0VmFsdWVCeVllYXIoeWVhcjogbnVtYmVyKTogQ2hhcnRBY2NvdW50c1ZhbHVlIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5maW5kKCh2YWx1ZTogQ2hhcnRBY2NvdW50c1ZhbHVlKTogYm9vbGVhbiA9PiB2YWx1ZS5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5vIHdheSB0byBjaGVjayBob3cgbXVjaCB1c2VkIGZvciB3b3JrL3NvbGUsIHNvIHdlIGxldCB1c2VyIGFkanVzdCBpdFxyXG4gICAqIGV4Y2VwdCB2ZWhpY2xlIGV4cGVuc2UsIHdoaWNoIGlzIGVxdWFsIHRvIHZlaGljbGVDbGFpbS53b3JrVXNhZ2VcclxuICAgKiBleGNlcHQgd2hlbiB0YXhhYmxlUGVyY2VudD0wLCBidXQgbm90IFNPTEVfRU5URVJUQUlOTUVOVFxyXG4gICAqL1xyXG4gIGlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCh0aGlzLmlzV29ya0V4cGVuc2UoKSB8fCB0aGlzLmlzU29sZUV4cGVuc2UoKSkgJiYgIXRoaXMuaXNWZWhpY2xlRXhwZW5zZSgpICYmIHRoaXMudGF4YWJsZVBlcmNlbnQgPiAwKVxyXG4gICAgICB8fCB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uU09MRV9FTlRFUlRBSU5NRU5UO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGxhYmVsIGZvciB0cmFuc2FjdGlvbiB0YXggZmllbGQgZGVwZW5kZWQgb24gc2VsZWN0ZWQgY2hhcnQgYWNjb3VudC5cclxuICAgKiB0YXggdHlwZSBkZXBlbmRzIG9uIGNoYXJ0IGFjY291bnQgaGVhZGluZyBvciBjYXRlZ29yeS5cclxuICAgKi9cclxuICBnZXRUYXhMYWJlbCgpOiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bSB7XHJcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXhhYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCB0YXhhYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4YWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheC1kZWR1Y3RpYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCBkZWR1Y3RpYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBvbmUgb2YgaWRzIGFycmF5cyBpbmNsdWRlcyBjdXJyZW50IGNoYXJ0IGFjY291bnRzIGhlYWRpbmcgaWQgYW5kIHNldCB0YXggbGFiZWxcclxuICAgIC8vIG90aGVyd2lzZSBsYWJlbCBpcyBlbXB0eSBmb3IgdGhpcyBjbGFzc1xyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIGNhc2UgdGF4YWJsZUNBSGVhZGluZ3NJZHMuaW5jbHVkZXModGhpcy5oZWFkaW5nPy5pZCk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9QQUlEO1xyXG4gICAgICBjYXNlIGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKHRoaXMuaGVhZGluZz8uaWQpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfREVEVUNURUQ7XHJcbiAgICAgIGNhc2UgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy53b3JrSW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpOlxyXG4gICAgICBjYXNlIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uSE9MRElOR19JTkNPTUU6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9XSVRISEVMRDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRVRQKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGluZy5pZCA9PT0gQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5FVFBcclxuICB9XHJcblxyXG4gIGlzU2FsYXJ5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5TQUxBUllfT1JfV0FHRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGFydCBhY2NvdW50cyBpbmNsdWRlZCBpbiBzYWxhcnksIGxpa2UgdGlwcyBvciBhbGxvd2FuY2VcclxuICAgKi9cclxuICBpc1NhbGFyeUluY2x1ZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgaW4gQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW07XHJcbiAgfVxyXG5cclxuICBpc1Byb3BlcnR5Q2FwaXRhbFdvcmtzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfQ0FQSVRBTF9XT1JLU1xyXG4gIH1cclxuXHJcbiAgaXNUYXhhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmlzTlJBUygpICYmIHRoaXMuaXNXb3JrSW5jb21lKCk7XHJcbiAgfVxyXG5cclxuICBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UUkFOU0ZFUjtcclxuICB9XHJcblxyXG4gIGlzRGl2aWRlbmRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5ESVZJREVORFM7XHJcbiAgfVxyXG5cclxuICBpc0hvbWVPZmZpY2VXb3JrSG91cnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkhPTUVfT0ZGSUNFX1dPUktfSE9VUlM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIscUNBQXFDLEVBQ3JDLCtCQUErQixFQUMvQixtQ0FBbUMsRUFDbkMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNwQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFDbEQ7O09BRUc7YUFDSSxhQUFRLEdBQUcsR0FBRyxDQUFDO2FBQ2YsbUJBQWMsR0FBRyxHQUFHLENBQUM7YUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQWF2Qjs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLGNBQWMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsbUJBQW1CLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDUixPQUFPLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLGVBQWUsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLFlBQVksQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUsseUJBQXlCLENBQUMsV0FBVyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUsseUJBQXlCLENBQUMsWUFBWSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8seUJBQXlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8seUJBQXlCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUdELGFBQWE7UUFDWCxPQUFPLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQzthQUNsSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQzthQUN6RixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUsseUJBQXlCLENBQUMsZUFBZSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixFQUFFLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUF5QixFQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsc0JBQXNCO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO2VBQ3pHLElBQUksQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsa0JBQWtCLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCx5RUFBeUU7UUFDekUsTUFBTSxvQkFBb0IsR0FBYSxVQUFVLENBQUMsK0JBQStCLENBQUM7YUFDL0UsR0FBRyxDQUFDLENBQUMsSUFBc0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELGdGQUFnRjtRQUNoRixNQUFNLHVCQUF1QixHQUFhLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQzthQUN4RixHQUFHLENBQUMsQ0FBQyxJQUFzQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsMEZBQTBGO1FBQzFGLDBDQUEwQztRQUMxQyxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNsRCxPQUFPLDBCQUEwQixDQUFDLFFBQVEsQ0FBQztZQUM3QyxLQUFLLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDckQsT0FBTywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7WUFDakQsS0FBSyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRSxLQUFLLElBQUksQ0FBQyxRQUFRLEtBQUsseUJBQXlCLENBQUMsY0FBYztnQkFDN0QsT0FBTywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7WUFDakQ7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyw0QkFBNEIsQ0FBQyxHQUFHLENBQUE7SUFDN0QsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsZUFBZSxDQUFDO0lBQzNELENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsSUFBSSxtQ0FBbUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7SUFDcEQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7QUE3UUQ7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7OENBQ0g7QUFHOUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aURBQ0U7QUFLM0I7SUFIVCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDOUIsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVDLE1BQU0sRUFBRTs2Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydEFjY291bnRzIGFzIENoYXJ0QWNjb3VudHNCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcclxuaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNIZWFkaW5nIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy1oZWFkaW5nJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c01ldGFGaWVsZCB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YS1maWVsZCc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSxcclxuICBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSxcclxuICBDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bSxcclxuICBDaGFydEFjY291bnRzTGlzdEVudW0sXHJcbiAgQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW1cclxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XHJcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xyXG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzVmFsdWUgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXZhbHVlJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0gfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXRheC1sYWJlbHMuZW51bSc7XHJcbmltcG9ydCB7IGVudW1Ub0xpc3QgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZW51bS10by1saXN0JztcclxuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfVkFMVUVTIH0gZnJvbSAnLi4vLi4vZGItc3RhdGljL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLXZhbHVlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hhcnRBY2NvdW50cyBleHRlbmRzIENoYXJ0QWNjb3VudHNCYXNlIHtcclxuICAvKipcclxuICAgKiBBdXN0cmFsaWFuIEdTVCBwZXJjZW50IHZhbHVlIChWQVQpXHJcbiAgICovXHJcbiAgc3RhdGljIEdTVFJhdGlvID0gMC4xO1xyXG4gIHN0YXRpYyBHU1RDb2VmZmljaWVudCA9IDEuMTtcclxuICBzdGF0aWMgR1NUUGVyY2VudCA9IDEwO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzSGVhZGluZylcclxuICBoZWFkaW5nOiBDaGFydEFjY291bnRzSGVhZGluZztcclxuXHJcbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50c01ldGFGaWVsZClcclxuICBtZXRhRmllbGRzOiBDaGFydEFjY291bnRzTWV0YUZpZWxkW107XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNWYWx1ZSlcclxuICBAVHJhbnNmb3JtKCh7IG9iaiB9KSA9PiBDSEFSVF9BQ0NPVU5UU19WQUxVRVMuZ2V0KG9iai5pZCkudG9BcnJheSgpLCB7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pXHJcbiAgQFRyYW5zZm9ybSgoKSA9PiBudWxsLCB7IHRvUGxhaW5Pbmx5OiB0cnVlIH0pXHJcbiAgQEV4cG9zZSgpIHZhbHVlczogQ2hhcnRBY2NvdW50c1ZhbHVlW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBuYW1lIGFzIHN0cmluZ1xyXG4gICAqL1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ttcyB0cmF2ZWxsZWQgZm9yIHdvcmsnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNLbXNGb3JXb3JrKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF9GT1JfV09SSztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdLbXMgdHJhdmVsbGVkIGZvciBzb2xlJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzS21zRm9yU29sZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRUQ7XHJcbiAgfVxyXG5cclxuICBpc0ttcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLLCBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURdLmluY2x1ZGVzKHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc3BlY2lhbCB0eXBlIHVzZWQgZm9yIGp1c3QgcHJlLXBheWluZyB0YXggdG8gdGhlIEFUTywgdXNlcyBvbiB0YXggc3VtbWFyeVxyXG4gICAqL1xyXG4gIGlzTlJBUygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVEFYX09GRlNFVFNfTl9SX0FfUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdJbnRlcmVzdCBvbiBMb2FuJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzSW50ZXJlc3RPbkxvYW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnTW90b3IgVmVoaWNsZXMnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNWZWhpY2xlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0xpc3RFbnVtLldPUktfVkVISUNMRVMsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5TT0xFX1ZFSElDTEVTXS5pbmNsdWRlcyh0aGlzLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdJbnRlcmVzdCBFYXJuZWQnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNJbnRlcmVzdEVhcm5lZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfRUFSTkVEO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ1RydXN0IEluY29tZScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc1RydXN0SW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UUlVTVF9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnTW90b3IgdmVoaWNsZXMgKGNvbW1lcmNpYWwgY2FycyknIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNDb21tZXJjaWFsVmVoaWNsZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPTU1FUkNJQUxfVkVISUNMRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyB3b3JrIGluY29tZVxyXG4gICAqL1xyXG4gIGlzV29ya0luY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNWZWhpY2xlRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIUNoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtW3RoaXMuaGVhZGluZz8uaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgb3RoZXIgaW5jb21lXHJcbiAgICovXHJcbiAgaXNPdGhlckluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuaW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZXhwZW5zZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzUHJvcGVydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzV29yaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcmsuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1NvbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5zb2xlSW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGlzV29ya0V4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19ERVBSRUNJQVRJT05dXHJcbiAgICAgIC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzU29sZUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OXVxyXG4gICAgICAuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBwcm9wZXJ0eSBleHBlbnNlXHJcbiAgICovXHJcbiAgaXNQcm9wZXJ0eUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Byb3BlcnR5KCkgJiYgdGhpcy5pc0V4cGVuc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHByb3BlcnR5IGluY29tZVxyXG4gICAqL1xyXG4gIGlzUHJvcGVydHlJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc1BlcnNvbmFsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1BlcnNvbmFsRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0VYUEVOU0U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBjYXRlZ29yeSBpcyBkZXByZWNpYXRpb25cclxuICAgKi9cclxuICBpc0RlcHJlY2lhdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmRlcHJlY2lhdGlvbi5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIGNoYXJ0IGFjY291bnQgaXMgd29yayByZWxhdGVkIGNhciBleHBlbnNlc1xyXG4gICAqL1xyXG4gIGlzVmVoaWNsZUxvYW5FeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNWZWhpY2xlTG9hbkludGVyZXN0KCkgfHwgdGhpcy5pc1ZlaGljbGVMb2FuUHJpbmNpcGxlKCk7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVMb2FuUHJpbmNpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFtDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRV9MT0FOX1BSSU5DSVBBTCwgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlNPTEVfVkVISUNMRV9MT0FOX1BSSU5DSVBBTF0uaW5jbHVkZXModGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVMb2FuSW50ZXJlc3QoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFX0xPQU5fSU5URVJFU1QsIENoYXJ0QWNjb3VudHNMaXN0RW51bS5TT0xFX1ZFSElDTEVfTE9BTl9JTlRFUkVTVF0uaW5jbHVkZXModGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY2hhcnQgYWNjb3VudHMgdmFsdWUgZm9yIGN1cnJlbnQgZmluYW5jaWFsIHllYXJcclxuICAgKi9cclxuICBnZXRDdXJyZW50WWVhclZhbHVlKCk6IENoYXJ0QWNjb3VudHNWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUJ5WWVhcihuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIHZhbHVlIGJ5IGZpbmFuY2lhbCB5ZWFyXHJcbiAgICovXHJcbiAgZ2V0VmFsdWVCeVllYXIoeWVhcjogbnVtYmVyKTogQ2hhcnRBY2NvdW50c1ZhbHVlIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5maW5kKCh2YWx1ZTogQ2hhcnRBY2NvdW50c1ZhbHVlKTogYm9vbGVhbiA9PiB2YWx1ZS5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5vIHdheSB0byBjaGVjayBob3cgbXVjaCB1c2VkIGZvciB3b3JrL3NvbGUsIHNvIHdlIGxldCB1c2VyIGFkanVzdCBpdFxyXG4gICAqIGV4Y2VwdCB2ZWhpY2xlIGV4cGVuc2UsIHdoaWNoIGlzIGVxdWFsIHRvIHZlaGljbGVDbGFpbS53b3JrVXNhZ2VcclxuICAgKiBleGNlcHQgd2hlbiB0YXhhYmxlUGVyY2VudD0wLCBidXQgbm90IFNPTEVfRU5URVJUQUlOTUVOVFxyXG4gICAqL1xyXG4gIGlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCh0aGlzLmlzV29ya0V4cGVuc2UoKSB8fCB0aGlzLmlzU29sZUV4cGVuc2UoKSkgJiYgIXRoaXMuaXNWZWhpY2xlRXhwZW5zZSgpICYmIHRoaXMudGF4YWJsZVBlcmNlbnQgPiAwKVxyXG4gICAgICB8fCB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uU09MRV9FTlRFUlRBSU5NRU5UO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZ2V0IGxhYmVsIGZvciB0cmFuc2FjdGlvbiB0YXggZmllbGQgZGVwZW5kZWQgb24gc2VsZWN0ZWQgY2hhcnQgYWNjb3VudC5cclxuICAgKiB0YXggdHlwZSBkZXBlbmRzIG9uIGNoYXJ0IGFjY291bnQgaGVhZGluZyBvciBjYXRlZ29yeS5cclxuICAgKi9cclxuICBnZXRUYXhMYWJlbCgpOiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bSB7XHJcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXhhYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCB0YXhhYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4YWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheC1kZWR1Y3RpYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXHJcbiAgICBjb25zdCBkZWR1Y3RpYmxlQ0FIZWFkaW5nc0lkczogbnVtYmVyW10gPSBlbnVtVG9MaXN0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0pXHJcbiAgICAgIC5tYXAoKGl0ZW06IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciB9KSA9PiBpdGVtLnZhbHVlKTtcclxuXHJcbiAgICAvLyBjaGVjayBpZiBvbmUgb2YgaWRzIGFycmF5cyBpbmNsdWRlcyBjdXJyZW50IGNoYXJ0IGFjY291bnRzIGhlYWRpbmcgaWQgYW5kIHNldCB0YXggbGFiZWxcclxuICAgIC8vIG90aGVyd2lzZSBsYWJlbCBpcyBlbXB0eSBmb3IgdGhpcyBjbGFzc1xyXG4gICAgc3dpdGNoICh0cnVlKSB7XHJcbiAgICAgIGNhc2UgdGF4YWJsZUNBSGVhZGluZ3NJZHMuaW5jbHVkZXModGhpcy5oZWFkaW5nPy5pZCk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9QQUlEO1xyXG4gICAgICBjYXNlIGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKHRoaXMuaGVhZGluZz8uaWQpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfREVEVUNURUQ7XHJcbiAgICAgIGNhc2UgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy53b3JrSW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpOlxyXG4gICAgICBjYXNlIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uSE9MRElOR19JTkNPTUU6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9XSVRISEVMRDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRVRQKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGluZy5pZCA9PT0gQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5FVFBcclxuICB9XHJcblxyXG4gIGlzU2FsYXJ5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5TQUxBUllfT1JfV0FHRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGFydCBhY2NvdW50cyBpbmNsdWRlZCBpbiBzYWxhcnksIGxpa2UgdGlwcyBvciBhbGxvd2FuY2VcclxuICAgKi9cclxuICBpc1NhbGFyeUluY2x1ZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgaW4gQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW07XHJcbiAgfVxyXG5cclxuICBpc1Byb3BlcnR5Q2FwaXRhbFdvcmtzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfQ0FQSVRBTF9XT1JLU1xyXG4gIH1cclxuXHJcbiAgaGFzVGF4RmllbGQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuaXNOUkFTKCkgJiYgdGhpcy5pc1dvcmtJbmNvbWUoKTtcclxuICB9XHJcblxyXG4gIGlzVGF4YWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRheGFibGVQZXJjZW50ID4gMDtcclxuICB9XHJcblxyXG4gIGlzVHJhbnNmZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlRSQU5TRkVSO1xyXG4gIH1cclxuXHJcbiAgaXNEaXZpZGVuZHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkRJVklERU5EUztcclxuICB9XHJcblxyXG4gIGlzSG9tZU9mZmljZVdvcmtIb3VycygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSE9NRV9PRkZJQ0VfV09SS19IT1VSUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGluY29tZSByZXF1aXJpbmcgZXh0cmEgZGF0YSBsaWtlIGFkanVzdG1lbnRzL3BheWVyL2V0Y1xyXG4gICAqL1xyXG4gIGlzSW5jb21lV2l0aE1ldGEoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNJbmNvbWUoKSB8fCB0aGlzLmlzU29sZSgpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5pc1dvcmsoKSB8fCB0aGlzLmlzVGF4YWJsZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1180,6 +1180,8 @@ var ChartAccountsListEnum;
|
|
|
1180
1180
|
ChartAccountsListEnum[ChartAccountsListEnum["PSI_DEDUCTION_OTHER"] = 860] = "PSI_DEDUCTION_OTHER";
|
|
1181
1181
|
ChartAccountsListEnum[ChartAccountsListEnum["AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS"] = 871] = "AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS";
|
|
1182
1182
|
ChartAccountsListEnum[ChartAccountsListEnum["FHSS"] = 872] = "FHSS";
|
|
1183
|
+
ChartAccountsListEnum[ChartAccountsListEnum["PROGRESS_PAYMENTS"] = 884] = "PROGRESS_PAYMENTS";
|
|
1184
|
+
ChartAccountsListEnum[ChartAccountsListEnum["LOAN_PAYMENT"] = 885] = "LOAN_PAYMENT";
|
|
1183
1185
|
})(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
|
|
1184
1186
|
|
|
1185
1187
|
var ChartAccountsMetaFieldListEnum;
|
|
@@ -3148,6 +3150,12 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
3148
3150
|
isProperty() {
|
|
3149
3151
|
return CHART_ACCOUNTS_CATEGORIES.property.includes(this.category);
|
|
3150
3152
|
}
|
|
3153
|
+
isWork() {
|
|
3154
|
+
return CHART_ACCOUNTS_CATEGORIES.work.includes(this.category);
|
|
3155
|
+
}
|
|
3156
|
+
isSole() {
|
|
3157
|
+
return CHART_ACCOUNTS_CATEGORIES.soleIncome.includes(this.category);
|
|
3158
|
+
}
|
|
3151
3159
|
isWorkExpense() {
|
|
3152
3160
|
return [ChartAccountsCategoryEnum.WORK_EXPENSE, ChartAccountsCategoryEnum.OTHER_EXPENSE, ChartAccountsCategoryEnum.WORK_DEPRECIATION]
|
|
3153
3161
|
.includes(this.category);
|
|
@@ -3180,9 +3188,6 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
3180
3188
|
isDepreciation() {
|
|
3181
3189
|
return CHART_ACCOUNTS_CATEGORIES.depreciation.includes(this.category);
|
|
3182
3190
|
}
|
|
3183
|
-
isSoleIncome() {
|
|
3184
|
-
return CHART_ACCOUNTS_CATEGORIES.soleIncome.includes(this.category);
|
|
3185
|
-
}
|
|
3186
3191
|
/**
|
|
3187
3192
|
* Check if transaction chart account is work related car expenses
|
|
3188
3193
|
*/
|
|
@@ -3256,9 +3261,12 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
3256
3261
|
isPropertyCapitalWorks() {
|
|
3257
3262
|
return this.category === ChartAccountsCategoryEnum.PROPERTY_CAPITAL_WORKS;
|
|
3258
3263
|
}
|
|
3259
|
-
|
|
3264
|
+
hasTaxField() {
|
|
3260
3265
|
return !this.isNRAS() && this.isWorkIncome();
|
|
3261
3266
|
}
|
|
3267
|
+
isTaxable() {
|
|
3268
|
+
return this.taxablePercent > 0;
|
|
3269
|
+
}
|
|
3262
3270
|
isTransfer() {
|
|
3263
3271
|
return this.id === ChartAccountsListEnum.TRANSFER;
|
|
3264
3272
|
}
|
|
@@ -3268,6 +3276,15 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
3268
3276
|
isHomeOfficeWorkHours() {
|
|
3269
3277
|
return this.id === ChartAccountsListEnum.HOME_OFFICE_WORK_HOURS;
|
|
3270
3278
|
}
|
|
3279
|
+
/**
|
|
3280
|
+
* income requiring extra data like adjustments/payer/etc
|
|
3281
|
+
*/
|
|
3282
|
+
isIncomeWithMeta() {
|
|
3283
|
+
if (!this.isIncome() || this.isSole()) {
|
|
3284
|
+
return false;
|
|
3285
|
+
}
|
|
3286
|
+
return this.isWork() || this.isTaxable();
|
|
3287
|
+
}
|
|
3271
3288
|
}
|
|
3272
3289
|
__decorate([
|
|
3273
3290
|
Type(() => ChartAccountsHeading)
|
|
@@ -22919,7 +22936,7 @@ class AllocationRuleForm extends AbstractForm {
|
|
|
22919
22936
|
}
|
|
22920
22937
|
isTaxFieldHidden() {
|
|
22921
22938
|
const chartAccounts = this.transactionFormGroup.get('chartAccounts').value;
|
|
22922
|
-
return !chartAccounts || !chartAccounts.
|
|
22939
|
+
return !chartAccounts || !chartAccounts.hasTaxField();
|
|
22923
22940
|
}
|
|
22924
22941
|
/**
|
|
22925
22942
|
* TODO Alex: disable sole tank in form control when income selected
|