taxtank-core 0.30.18 → 0.30.20

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.
Files changed (80) hide show
  1. package/esm2020/lib/collections/allocation-rule.collection.mjs +14 -1
  2. package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-category.enum.mjs +3 -1
  3. package/esm2020/lib/db/Enums/chart-accounts/chart-accounts-list.enum.mjs +3 -1
  4. package/esm2020/lib/db/Enums/holding/holding-type-category.enum.mjs +10 -0
  5. package/esm2020/lib/db/Enums/subscription/service-product-id.enum.mjs +2 -1
  6. package/esm2020/lib/db/Enums/tank-type.enum.mjs +2 -1
  7. package/esm2020/lib/db/Enums/user-roles.enum.mjs +2 -1
  8. package/esm2020/lib/db/Models/holding/holding-sale.mjs +3 -0
  9. package/esm2020/lib/db/Models/holding/holding-type.mjs +3 -0
  10. package/esm2020/lib/db/Models/holding/holding.mjs +3 -0
  11. package/esm2020/lib/db/Models/holding/index.mjs +4 -0
  12. package/esm2020/lib/db/Models/index.mjs +2 -1
  13. package/esm2020/lib/db/Models/transaction/transaction-base.mjs +14 -1
  14. package/esm2020/lib/forms/client/client-income-types.form.mjs +2 -2
  15. package/esm2020/lib/forms/report/my-tax/my-tax-income-statements.form.mjs +17 -1
  16. package/esm2020/lib/models/account-setup/account-setup-item.mjs +2 -2
  17. package/esm2020/lib/models/account-setup/account-setup-items.const.mjs +14 -4
  18. package/esm2020/lib/models/account-setup/account-setup-items.enum.mjs +2 -1
  19. package/esm2020/lib/models/chart-accounts/chart-accounts-categories.const.mjs +16 -2
  20. package/esm2020/lib/models/chart-accounts/chart-accounts.mjs +4 -1
  21. package/esm2020/lib/models/client/client-income-types.mjs +1 -15
  22. package/esm2020/lib/models/holding/holding-sale.mjs +10 -0
  23. package/esm2020/lib/models/holding/holding-type.mjs +10 -0
  24. package/esm2020/lib/models/holding/holding.mjs +27 -0
  25. package/esm2020/lib/models/holding/index.mjs +4 -0
  26. package/esm2020/lib/models/index.mjs +2 -1
  27. package/esm2020/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.mjs +10 -1
  28. package/esm2020/lib/models/service-subscription/service-product.mjs +4 -1
  29. package/esm2020/lib/models/transaction/allocation-rule-condition.mjs +32 -1
  30. package/esm2020/lib/models/transaction/allocation-rule-transaction.mjs +48 -9
  31. package/esm2020/lib/models/transaction/allocation-rule.mjs +64 -3
  32. package/esm2020/lib/models/transaction/transaction.mjs +5 -2
  33. package/esm2020/lib/models/user/user-roles.const.mjs +3 -1
  34. package/esm2020/lib/services/account-setup/account-setup.service.mjs +19 -14
  35. package/esm2020/lib/services/http/holding/holding-sale.service.mjs +27 -0
  36. package/esm2020/lib/services/http/holding/holding-type.service.mjs +27 -0
  37. package/esm2020/lib/services/http/holding/holding.service.mjs +27 -0
  38. package/esm2020/lib/services/http/holding/index.mjs +4 -0
  39. package/esm2020/lib/services/http/index.mjs +2 -1
  40. package/esm2020/lib/services/http/rest/rest.service.mjs +1 -1
  41. package/fesm2015/taxtank-core.mjs +363 -46
  42. package/fesm2015/taxtank-core.mjs.map +1 -1
  43. package/fesm2020/taxtank-core.mjs +362 -46
  44. package/fesm2020/taxtank-core.mjs.map +1 -1
  45. package/lib/collections/allocation-rule.collection.d.ts +8 -0
  46. package/lib/db/Enums/chart-accounts/chart-accounts-category.enum.d.ts +3 -1
  47. package/lib/db/Enums/chart-accounts/chart-accounts-list.enum.d.ts +3 -1
  48. package/lib/db/Enums/holding/holding-type-category.enum.d.ts +8 -0
  49. package/lib/db/Enums/subscription/service-product-id.enum.d.ts +2 -1
  50. package/lib/db/Enums/tank-type.enum.d.ts +2 -1
  51. package/lib/db/Enums/user-roles.enum.d.ts +1 -0
  52. package/lib/db/Models/holding/holding-sale.d.ts +12 -0
  53. package/lib/db/Models/holding/holding-type.d.ts +12 -0
  54. package/lib/db/Models/holding/holding.d.ts +16 -0
  55. package/lib/db/Models/holding/index.d.ts +3 -0
  56. package/lib/db/Models/index.d.ts +1 -0
  57. package/lib/db/Models/transaction/transaction-base.d.ts +1 -0
  58. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts +2 -2
  59. package/lib/models/account-setup/account-setup-item.d.ts +1 -1
  60. package/lib/models/account-setup/account-setup-items.enum.d.ts +2 -1
  61. package/lib/models/chart-accounts/chart-accounts.d.ts +1 -0
  62. package/lib/models/client/client-income-types.d.ts +0 -9
  63. package/lib/models/holding/holding-sale.d.ts +12 -0
  64. package/lib/models/holding/holding-type.d.ts +12 -0
  65. package/lib/models/holding/holding.d.ts +17 -0
  66. package/lib/models/holding/index.d.ts +3 -0
  67. package/lib/models/index.d.ts +1 -0
  68. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +4 -0
  69. package/lib/models/service-subscription/service-product.d.ts +1 -0
  70. package/lib/models/transaction/allocation-rule-condition.d.ts +4 -0
  71. package/lib/models/transaction/allocation-rule-transaction.d.ts +5 -1
  72. package/lib/models/transaction/allocation-rule.d.ts +19 -1
  73. package/lib/services/account-setup/account-setup.service.d.ts +3 -2
  74. package/lib/services/http/holding/holding-sale.service.d.ts +17 -0
  75. package/lib/services/http/holding/holding-type.service.d.ts +17 -0
  76. package/lib/services/http/holding/holding.service.d.ts +17 -0
  77. package/lib/services/http/holding/index.d.ts +3 -0
  78. package/lib/services/http/index.d.ts +1 -0
  79. package/lib/services/http/rest/rest.service.d.ts +1 -1
  80. package/package.json +1 -1
@@ -202,6 +202,9 @@ export class ChartAccounts extends ChartAccountsBase {
202
202
  isTaxable() {
203
203
  return !this.isNRAS() && this.isWorkIncome();
204
204
  }
205
+ isTransfer() {
206
+ return this.id === ChartAccountsListEnum.TRANSFER;
207
+ }
205
208
  }
206
209
  /**
207
210
  * Australian GST percent value (VAT)
@@ -221,4 +224,4 @@ __decorate([
221
224
  Transform(() => null, { toPlainOnly: true }),
222
225
  Expose()
223
226
  ], ChartAccounts.prototype, "values", void 0);
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUNMLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLG1DQUFtQyxFQUNyRiwrQkFBK0IsRUFBRSxxQ0FBcUMsRUFBRSxtQ0FBbUMsRUFDM0csNEJBQTRCLEVBQzdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFtQmxEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJ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QXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7O0FBaFBEOztHQUVHO0FBQ0ksc0JBQVEsR0FBRyxHQUFHLENBQUM7QUFDZiw0QkFBYyxHQUFHLEdBQUcsQ0FBQztBQUNyQix3QkFBVSxHQUFHLEVBQUUsQ0FBQztBQUd2QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs4Q0FDSDtBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpREFDRTtBQUszQjtJQUhULElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUM5QixTQUFTLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsTUFBTSxFQUFFOzZDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0QWNjb3VudHMgYXMgQ2hhcnRBY2NvdW50c0Jhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xyXG5pbXBvcnQgeyBUeXBlLCBUcmFuc2Zvcm0sIEV4cG9zZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmcgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWhlYWRpbmcnO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzTWV0YUZpZWxkIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy1tZXRhLWZpZWxkJztcclxuaW1wb3J0IHtcclxuICBDaGFydEFjY291bnRzTGlzdEVudW0sIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0sIENoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4YWJsZUVudW0sIENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0sIENoYXJ0QWNjb3VudHNTYWxhcnlJbmNsdWRlZExpc3RFbnVtLFxyXG4gIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW1cclxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XHJcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xyXG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNWYWx1ZSB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdmFsdWUnO1xyXG5pbXBvcnQge0NoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXRheC1sYWJlbHMuZW51bSc7XHJcbmltcG9ydCB7ZW51bVRvTGlzdH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2VudW0tdG8tbGlzdCc7XHJcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX1ZBTFVFUyB9IGZyb20gJy4uLy4uL2RiLXN0YXRpYy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy12YWx1ZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIENoYXJ0QWNjb3VudHMgZXh0ZW5kcyBDaGFydEFjY291bnRzQmFzZSB7XHJcbiAgLyoqXHJcbiAgICogQXVzdHJhbGlhbiBHU1QgcGVyY2VudCB2YWx1ZSAoVkFUKVxyXG4gICAqL1xyXG4gIHN0YXRpYyBHU1RSYXRpbyA9IDAuMTtcclxuICBzdGF0aWMgR1NUQ29lZmZpY2llbnQgPSAxLjE7XHJcbiAgc3RhdGljIEdTVFBlcmNlbnQgPSAxMDtcclxuXHJcbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50c0hlYWRpbmcpXHJcbiAgaGVhZGluZzogQ2hhcnRBY2NvdW50c0hlYWRpbmc7XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNNZXRhRmllbGQpXHJcbiAgbWV0YUZpZWxkczogQ2hhcnRBY2NvdW50c01ldGFGaWVsZFtdO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzVmFsdWUpXHJcbiAgQFRyYW5zZm9ybSgoe29ian0pID0+IENIQVJUX0FDQ09VTlRTX1ZBTFVFUy5nZXQob2JqLmlkKS50b0FycmF5KCksIHsgdG9DbGFzc09ubHk6IHRydWUgfSlcclxuICBAVHJhbnNmb3JtKCgpID0+IG51bGwsIHsgdG9QbGFpbk9ubHk6IHRydWUgfSlcclxuICBARXhwb3NlKCkgdmFsdWVzOiBDaGFydEFjY291bnRzVmFsdWVbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIG5hbWUgYXMgc3RyaW5nXHJcbiAgICovXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm5hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnS21zIHRyYXZlbGxlZCBmb3Igd29yaycgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ttc0ZvcldvcmsoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ttcyB0cmF2ZWxsZWQgZm9yIHNvbGUnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNLbXNGb3JTb2xlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yIEtNcyBjYXRlZ29yeSByZWxhdGVkIHRvIHBhc3NlZCB0YW5rIHR5cGVcclxuICAgKi9cclxuICBpc0tNc0J5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0YW5rVHlwZSkge1xyXG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5XT1JLOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzS21zRm9yV29yaygpO1xyXG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5TT0xFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmlzS21zRm9yU29sZSgpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNwZWNpYWwgdHlwZSB1c2VkIGZvciBqdXN0IHByZS1wYXlpbmcgdGF4IHRvIHRoZSBBVE8sIHVzZXMgb24gdGF4IHN1bW1hcnlcclxuICAgKi9cclxuICBpc05SQVMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlRBWF9PRkZTRVRTX05fUl9BX1M7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnSW50ZXJlc3Qgb24gTG9hbicgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ludGVyZXN0T25Mb2FuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9PTl9MT0FOO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ01vdG9yIFZlaGljbGVzJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzVmVoaWNsZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlZFSElDTEVTO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ludGVyZXN0IEVhcm5lZCcgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0ludGVyZXN0RWFybmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9FQVJORUQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnVHJ1c3QgSW5jb21lJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzVHJ1c3RJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlRSVVNUX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdNb3RvciB2ZWhpY2xlcyAoY29tbWVyY2lhbCBjYXJzKScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc0NvbW1lcmNpYWxWZWhpY2xlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uQ09NTUVSQ0lBTF9WRUhJQ0xFUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHdvcmsgaW5jb21lXHJcbiAgICovXHJcbiAgaXNXb3JrSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc1ZlaGljbGVFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhQ2hhcnRBY2NvdW50c0hlYWRpbmdWZWhpY2xlTGlzdEVudW1bdGhpcy5oZWFkaW5nPy5pZF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBvdGhlciBpbmNvbWVcclxuICAgKi9cclxuICBpc090aGVySW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5pbmNvbWUuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5leHBlbnNlLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNQcm9wZXJ0eSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5LmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNXb3JrRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfRVhQRU5TRSwgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0RFUFJFQ0lBVElPTl1cclxuICAgICAgLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNTb2xlRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBbQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5TT0xFX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05dXHJcbiAgICAgIC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHByb3BlcnR5IGV4cGVuc2VcclxuICAgKi9cclxuICBpc1Byb3BlcnR5RXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzUHJvcGVydHkoKSAmJiB0aGlzLmlzRXhwZW5zZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgcHJvcGVydHkgaW5jb21lXHJcbiAgICovXHJcbiAgaXNQcm9wZXJ0eUluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wZXJzb25hbC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzUGVyc29uYWxFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUEVSU09OQUxfRVhQRU5TRTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGNhdGVnb3J5IGlzIGRlcHJlY2lhdGlvblxyXG4gICAqL1xyXG4gIGlzRGVwcmVjaWF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZGVwcmVjaWF0aW9uLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gY2hhcnQgYWNjb3VudCBpcyB3b3JrIHJlbGF0ZWQgY2FyIGV4cGVuc2VzXHJcbiAgICovXHJcbiAgaXNWZWhpY2xlTG9hbkV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlZFSElDTEVfTE9BTl9JTlRFUkVTVCB8fCB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVkVISUNMRV9MT0FOX1BSSU5DSVBBTDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjaGFydCBhY2NvdW50cyB2YWx1ZSBmb3IgY3VycmVudCBmaW5hbmNpYWwgeWVhclxyXG4gICAqL1xyXG4gIGdldEN1cnJlbnRZZWFyVmFsdWUoKTogQ2hhcnRBY2NvdW50c1ZhbHVlIHtcclxuICAgIHJldHVybiB0aGlzLmdldFZhbHVlQnlZZWFyKG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY2hhcnQgYWNjb3VudHMgdmFsdWUgYnkgZmluYW5jaWFsIHllYXJcclxuICAgKi9cclxuICBnZXRWYWx1ZUJ5WWVhcih5ZWFyOiBudW1iZXIpOiBDaGFydEFjY291bnRzVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmZpbmQoKHZhbHVlOiBDaGFydEFjY291bnRzVmFsdWUpOiBib29sZWFuID0+IHZhbHVlLmZpbmFuY2lhbFllYXIgPT09IHllYXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogbm8gd2F5IHRvIGNoZWNrIGhvdyBtdWNoIHVzZWQgZm9yIHdvcmsvc29sZSwgc28gd2UgbGV0IHVzZXIgYWRqdXN0IGl0XHJcbiAgICogZXhjZXB0IHZlaGljbGUgZXhwZW5zZSwgd2hpY2ggaXMgZXF1YWwgdG8gdmVoaWNsZUNsYWltLndvcmtVc2FnZSBhbmQgcGVyc29uYWwsIHdoaWNoIGlzIGVxdWFsIHRvIDBcclxuICAgKi9cclxuICBpc0NsYWltUGVyY2VudEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmlzV29ya0V4cGVuc2UoKSB8fCB0aGlzLmlzU29sZUV4cGVuc2UoKSkgJiYgKCF0aGlzLmlzVmVoaWNsZUV4cGVuc2UoKSAmJiAhdGhpcy5pc1BlcnNvbmFsRXhwZW5zZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGdldCBsYWJlbCBmb3IgdHJhbnNhY3Rpb24gdGF4IGZpZWxkIGRlcGVuZGVkIG9uIHNlbGVjdGVkIGNoYXJ0IGFjY291bnQuXHJcbiAgICogdGF4IHR5cGUgZGVwZW5kcyBvbiBjaGFydCBhY2NvdW50IGhlYWRpbmcgb3IgY2F0ZWdvcnkuXHJcbiAgICovXHJcbiAgZ2V0VGF4TGFiZWwoKTogQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0ge1xyXG4gICAgLy8gZ2V0IHNpbXBsZSBhcnJheSBvZiBpZHMgZnJvbSBlbnVtIHdpdGggdGF4YWJsZSBjaGFydCBhY2NvdW50cyBoZWFkaW5nc1xyXG4gICAgY29uc3QgdGF4YWJsZUNBSGVhZGluZ3NJZHM6IG51bWJlcltdID0gZW51bVRvTGlzdChDaGFydEFjY291bnRzSGVhZGluZ1RheGFibGVFbnVtKVxyXG4gICAgICAubWFwKChpdGVtOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkgPT4gaXRlbS52YWx1ZSk7XHJcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXgtZGVkdWN0aWJsZSBjaGFydCBhY2NvdW50cyBoZWFkaW5nc1xyXG4gICAgY29uc3QgZGVkdWN0aWJsZUNBSGVhZGluZ3NJZHM6IG51bWJlcltdID0gZW51bVRvTGlzdChDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtKVxyXG4gICAgICAubWFwKChpdGVtOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkgPT4gaXRlbS52YWx1ZSk7XHJcblxyXG4gICAgLy8gY2hlY2sgaWYgb25lIG9mIGlkcyBhcnJheXMgaW5jbHVkZXMgY3VycmVudCBjaGFydCBhY2NvdW50cyBoZWFkaW5nIGlkIGFuZCBzZXQgdGF4IGxhYmVsXHJcbiAgICAvLyBvdGhlcndpc2UgbGFiZWwgaXMgZW1wdHkgZm9yIHRoaXMgY2xhc3NcclxuICAgIHN3aXRjaCAodHJ1ZSkge1xyXG4gICAgICBjYXNlIHRheGFibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKHRoaXMuaGVhZGluZz8uaWQpOlxyXG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfUEFJRDtcclxuICAgICAgY2FzZSBkZWR1Y3RpYmxlQ0FIZWFkaW5nc0lkcy5pbmNsdWRlcyh0aGlzLmhlYWRpbmc/LmlkKTpcclxuICAgICAgICByZXR1cm4gQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0uVEFYX0RFRFVDVEVEO1xyXG4gICAgICBjYXNlIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMud29ya0luY29tZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTpcclxuICAgICAgICByZXR1cm4gQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0uVEFYX1dJVEhIRUxEO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNFVFAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkaW5nLmlkID09PSBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkVUUFxyXG4gIH1cclxuXHJcbiAgaXNTYWxhcnkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlNBTEFSWV9PUl9XQUdFUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoYXJ0IGFjY291bnRzIGluY2x1ZGVkIGluIHNhbGFyeSwgbGlrZSB0aXBzIG9yIGFsbG93YW5jZVxyXG4gICAqL1xyXG4gIGlzU2FsYXJ5SW5jbHVkZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCBpbiBDaGFydEFjY291bnRzU2FsYXJ5SW5jbHVkZWRMaXN0RW51bTtcclxuICB9XHJcblxyXG4gIGlzUHJvcGVydHlDYXBpdGFsV29ya3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9DQVBJVEFMX1dPUktTXHJcbiAgfVxyXG5cclxuICBpc1RheGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gICF0aGlzLmlzTlJBUygpICYmIHRoaXMuaXNXb3JrSW5jb21lKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUNMLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLG1DQUFtQyxFQUNyRiwrQkFBK0IsRUFBRSxxQ0FBcUMsRUFBRSxtQ0FBbUMsRUFDM0csNEJBQTRCLEVBQzdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFtQmxEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJ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QXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxzQkFBc0IsQ0FBQTtJQUMzRSxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDOztBQXBQRDs7R0FFRztBQUNJLHNCQUFRLEdBQUcsR0FBRyxDQUFDO0FBQ2YsNEJBQWMsR0FBRyxHQUFHLENBQUM7QUFDckIsd0JBQVUsR0FBRyxFQUFFLENBQUM7QUFHdkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7OENBQ0g7QUFHOUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aURBQ0U7QUFLM0I7SUFIVCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDOUIsU0FBUyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4RixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVDLE1BQU0sRUFBRTs2Q0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydEFjY291bnRzIGFzIENoYXJ0QWNjb3VudHNCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcclxuaW1wb3J0IHsgVHlwZSwgVHJhbnNmb3JtLCBFeHBvc2UgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XHJcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNIZWFkaW5nIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy1oZWFkaW5nJztcclxuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c01ldGFGaWVsZCB9IGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YS1maWVsZCc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLCBDaGFydEFjY291bnRzSGVhZGluZ1ZlaGljbGVMaXN0RW51bSxcclxuICBDaGFydEFjY291bnRzSGVhZGluZ1RheGFibGVFbnVtLCBDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtLCBDaGFydEFjY291bnRzU2FsYXJ5SW5jbHVkZWRMaXN0RW51bSxcclxuICBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtXHJcbn0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xyXG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy1jYXRlZ29yaWVzLmNvbnN0JztcclxuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xyXG5pbXBvcnQgeyBDaGFydEFjY291bnRzVmFsdWUgfSBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXZhbHVlJztcclxuaW1wb3J0IHtDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bX0gZnJvbSAnLi9jaGFydC1hY2NvdW50cy10YXgtbGFiZWxzLmVudW0nO1xyXG5pbXBvcnQge2VudW1Ub0xpc3R9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9lbnVtLXRvLWxpc3QnO1xyXG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19WQUxVRVMgfSBmcm9tICcuLi8uLi9kYi1zdGF0aWMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdmFsdWVzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFydEFjY291bnRzIGV4dGVuZHMgQ2hhcnRBY2NvdW50c0Jhc2Uge1xyXG4gIC8qKlxyXG4gICAqIEF1c3RyYWxpYW4gR1NUIHBlcmNlbnQgdmFsdWUgKFZBVClcclxuICAgKi9cclxuICBzdGF0aWMgR1NUUmF0aW8gPSAwLjE7XHJcbiAgc3RhdGljIEdTVENvZWZmaWNpZW50ID0gMS4xO1xyXG4gIHN0YXRpYyBHU1RQZXJjZW50ID0gMTA7XHJcblxyXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHNIZWFkaW5nKVxyXG4gIGhlYWRpbmc6IENoYXJ0QWNjb3VudHNIZWFkaW5nO1xyXG5cclxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzTWV0YUZpZWxkKVxyXG4gIG1ldGFGaWVsZHM6IENoYXJ0QWNjb3VudHNNZXRhRmllbGRbXTtcclxuXHJcbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50c1ZhbHVlKVxyXG4gIEBUcmFuc2Zvcm0oKHtvYmp9KSA9PiBDSEFSVF9BQ0NPVU5UU19WQUxVRVMuZ2V0KG9iai5pZCkudG9BcnJheSgpLCB7IHRvQ2xhc3NPbmx5OiB0cnVlIH0pXHJcbiAgQFRyYW5zZm9ybSgoKSA9PiBudWxsLCB7IHRvUGxhaW5Pbmx5OiB0cnVlIH0pXHJcbiAgQEV4cG9zZSgpIHZhbHVlczogQ2hhcnRBY2NvdW50c1ZhbHVlW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBuYW1lIGFzIHN0cmluZ1xyXG4gICAqL1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ttcyB0cmF2ZWxsZWQgZm9yIHdvcmsnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNLbXNGb3JXb3JrKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF9GT1JfV09SSztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdLbXMgdHJhdmVsbGVkIGZvciBzb2xlJyBjYXRlZ29yeVxyXG4gICAqL1xyXG4gIGlzS21zRm9yU29sZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRUQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciBLTXMgY2F0ZWdvcnkgcmVsYXRlZCB0byBwYXNzZWQgdGFuayB0eXBlXHJcbiAgICovXHJcbiAgaXNLTXNCeVRhbmtUeXBlKHRhbmtUeXBlOiBUYW5rVHlwZUVudW0pOiBib29sZWFuIHtcclxuICAgIHN3aXRjaCAodGFua1R5cGUpIHtcclxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ttc0ZvcldvcmsoKTtcclxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0ttc0ZvclNvbGUoKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBzcGVjaWFsIHR5cGUgdXNlZCBmb3IganVzdCBwcmUtcGF5aW5nIHRheCB0byB0aGUgQVRPLCB1c2VzIG9uIHRheCBzdW1tYXJ5XHJcbiAgICovXHJcbiAgaXNOUkFTKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UQVhfT0ZGU0VUU19OX1JfQV9TO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ0ludGVyZXN0IG9uIExvYW4nIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNJbnRlcmVzdE9uTG9hbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfT05fTE9BTjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdNb3RvciBWZWhpY2xlcycgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc1ZlaGljbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlkIGlzIHJlbGF0ZWQgZm9yICdJbnRlcmVzdCBFYXJuZWQnIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNJbnRlcmVzdEVhcm5lZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfRUFSTkVEO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaWQgaXMgcmVsYXRlZCBmb3IgJ1RydXN0IEluY29tZScgY2F0ZWdvcnlcclxuICAgKi9cclxuICBpc1RydXN0SW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UUlVTVF9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpZCBpcyByZWxhdGVkIGZvciAnTW90b3IgdmVoaWNsZXMgKGNvbW1lcmNpYWwgY2FycyknIGNhdGVnb3J5XHJcbiAgICovXHJcbiAgaXNDb21tZXJjaWFsVmVoaWNsZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPTU1FUkNJQUxfVkVISUNMRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyB3b3JrIGluY29tZVxyXG4gICAqL1xyXG4gIGlzV29ya0luY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfSU5DT01FO1xyXG4gIH1cclxuXHJcbiAgaXNWZWhpY2xlRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIUNoYXJ0QWNjb3VudHNIZWFkaW5nVmVoaWNsZUxpc3RFbnVtW3RoaXMuaGVhZGluZz8uaWRdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgY2hhcnQgYWNjb3VudHMgaXMgb3RoZXIgaW5jb21lXHJcbiAgICovXHJcbiAgaXNPdGhlckluY29tZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0lOQ09NRTtcclxuICB9XHJcblxyXG4gIGlzSW5jb21lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuaW5jb21lLmluY2x1ZGVzKHRoaXMuY2F0ZWdvcnkpO1xyXG4gIH1cclxuXHJcbiAgaXNFeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuZXhwZW5zZS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzUHJvcGVydHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzV29ya0V4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0VYUEVOU0UsIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19ERVBSRUNJQVRJT05dXHJcbiAgICAgIC5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIGlzU29sZUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gW0NoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9FWFBFTlNFLCBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OXVxyXG4gICAgICAuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBpcyBwcm9wZXJ0eSBleHBlbnNlXHJcbiAgICovXHJcbiAgaXNQcm9wZXJ0eUV4cGVuc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Byb3BlcnR5KCkgJiYgdGhpcy5pc0V4cGVuc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGNoYXJ0IGFjY291bnRzIGlzIHByb3BlcnR5IGluY29tZVxyXG4gICAqL1xyXG4gIGlzUHJvcGVydHlJbmNvbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeSA9PT0gQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9JTkNPTUU7XHJcbiAgfVxyXG5cclxuICBpc1BlcnNvbmFsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBpc1BlcnNvbmFsRXhwZW5zZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5ID09PSBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0VYUEVOU0U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBjaGFydCBhY2NvdW50cyBjYXRlZ29yeSBpcyBkZXByZWNpYXRpb25cclxuICAgKi9cclxuICBpc0RlcHJlY2lhdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmRlcHJlY2lhdGlvbi5pbmNsdWRlcyh0aGlzLmNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIGNoYXJ0IGFjY291bnQgaXMgd29yayByZWxhdGVkIGNhciBleHBlbnNlc1xyXG4gICAqL1xyXG4gIGlzVmVoaWNsZUxvYW5FeHBlbnNlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5WRUhJQ0xFX0xPQU5fSU5URVJFU1QgfHwgdGhpcy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlZFSElDTEVfTE9BTl9QUklOQ0lQQUw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgY2hhcnQgYWNjb3VudHMgdmFsdWUgZm9yIGN1cnJlbnQgZmluYW5jaWFsIHllYXJcclxuICAgKi9cclxuICBnZXRDdXJyZW50WWVhclZhbHVlKCk6IENoYXJ0QWNjb3VudHNWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZUJ5WWVhcihuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIHZhbHVlIGJ5IGZpbmFuY2lhbCB5ZWFyXHJcbiAgICovXHJcbiAgZ2V0VmFsdWVCeVllYXIoeWVhcjogbnVtYmVyKTogQ2hhcnRBY2NvdW50c1ZhbHVlIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5maW5kKCh2YWx1ZTogQ2hhcnRBY2NvdW50c1ZhbHVlKTogYm9vbGVhbiA9PiB2YWx1ZS5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG5vIHdheSB0byBjaGVjayBob3cgbXVjaCB1c2VkIGZvciB3b3JrL3NvbGUsIHNvIHdlIGxldCB1c2VyIGFkanVzdCBpdFxyXG4gICAqIGV4Y2VwdCB2ZWhpY2xlIGV4cGVuc2UsIHdoaWNoIGlzIGVxdWFsIHRvIHZlaGljbGVDbGFpbS53b3JrVXNhZ2UgYW5kIHBlcnNvbmFsLCB3aGljaCBpcyBlcXVhbCB0byAwXHJcbiAgICovXHJcbiAgaXNDbGFpbVBlcmNlbnRFZGl0YWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5pc1dvcmtFeHBlbnNlKCkgfHwgdGhpcy5pc1NvbGVFeHBlbnNlKCkpICYmICghdGhpcy5pc1ZlaGljbGVFeHBlbnNlKCkgJiYgIXRoaXMuaXNQZXJzb25hbEV4cGVuc2UoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXQgbGFiZWwgZm9yIHRyYW5zYWN0aW9uIHRheCBmaWVsZCBkZXBlbmRlZCBvbiBzZWxlY3RlZCBjaGFydCBhY2NvdW50LlxyXG4gICAqIHRheCB0eXBlIGRlcGVuZHMgb24gY2hhcnQgYWNjb3VudCBoZWFkaW5nIG9yIGNhdGVnb3J5LlxyXG4gICAqL1xyXG4gIGdldFRheExhYmVsKCk6IENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtIHtcclxuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheGFibGUgY2hhcnQgYWNjb3VudHMgaGVhZGluZ3NcclxuICAgIGNvbnN0IHRheGFibGVDQUhlYWRpbmdzSWRzOiBudW1iZXJbXSA9IGVudW1Ub0xpc3QoQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSlcclxuICAgICAgLm1hcCgoaXRlbTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIH0pID0+IGl0ZW0udmFsdWUpO1xyXG4gICAgLy8gZ2V0IHNpbXBsZSBhcnJheSBvZiBpZHMgZnJvbSBlbnVtIHdpdGggdGF4LWRlZHVjdGlibGUgY2hhcnQgYWNjb3VudHMgaGVhZGluZ3NcclxuICAgIGNvbnN0IGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzOiBudW1iZXJbXSA9IGVudW1Ub0xpc3QoQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhEZWR1Y3RpYmxlRW51bSlcclxuICAgICAgLm1hcCgoaXRlbTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIH0pID0+IGl0ZW0udmFsdWUpO1xyXG5cclxuICAgIC8vIGNoZWNrIGlmIG9uZSBvZiBpZHMgYXJyYXlzIGluY2x1ZGVzIGN1cnJlbnQgY2hhcnQgYWNjb3VudHMgaGVhZGluZyBpZCBhbmQgc2V0IHRheCBsYWJlbFxyXG4gICAgLy8gb3RoZXJ3aXNlIGxhYmVsIGlzIGVtcHR5IGZvciB0aGlzIGNsYXNzXHJcbiAgICBzd2l0Y2ggKHRydWUpIHtcclxuICAgICAgY2FzZSB0YXhhYmxlQ0FIZWFkaW5nc0lkcy5pbmNsdWRlcyh0aGlzLmhlYWRpbmc/LmlkKTpcclxuICAgICAgICByZXR1cm4gQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0uVEFYX1BBSUQ7XHJcbiAgICAgIGNhc2UgZGVkdWN0aWJsZUNBSGVhZGluZ3NJZHMuaW5jbHVkZXModGhpcy5oZWFkaW5nPy5pZCk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9ERURVQ1RFRDtcclxuICAgICAgY2FzZSBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcmtJbmNvbWUuaW5jbHVkZXModGhpcy5jYXRlZ29yeSk6XHJcbiAgICAgICAgcmV0dXJuIENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtLlRBWF9XSVRISEVMRDtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRVRQKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGluZy5pZCA9PT0gQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5FVFBcclxuICB9XHJcblxyXG4gIGlzU2FsYXJ5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5TQUxBUllfT1JfV0FHRVM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGFydCBhY2NvdW50cyBpbmNsdWRlZCBpbiBzYWxhcnksIGxpa2UgdGlwcyBvciBhbGxvd2FuY2VcclxuICAgKi9cclxuICBpc1NhbGFyeUluY2x1ZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgaW4gQ2hhcnRBY2NvdW50c1NhbGFyeUluY2x1ZGVkTGlzdEVudW07XHJcbiAgfVxyXG5cclxuICBpc1Byb3BlcnR5Q2FwaXRhbFdvcmtzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnkgPT09IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfQ0FQSVRBTF9XT1JLU1xyXG4gIH1cclxuXHJcbiAgaXNUYXhhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICAhdGhpcy5pc05SQVMoKSAmJiB0aGlzLmlzV29ya0luY29tZSgpO1xyXG4gIH1cclxuXHJcbiAgaXNUcmFuc2ZlcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uVFJBTlNGRVI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,18 +1,4 @@
1
1
  import { ClientIncomeTypes as ClientIncomeTypesBase } from '../../db/Models/user/client-income-types';
2
2
  export class ClientIncomeTypes extends ClientIncomeTypesBase {
3
- constructor() {
4
- super(...arguments);
5
- this.salary = false;
6
- this.property = false;
7
- this.sole = false;
8
- this.dividends = false;
9
- this.other = false;
10
- }
11
- /**
12
- * Get count of selected income types
13
- */
14
- get length() {
15
- return Object.values(this).filter((value) => typeof value === 'boolean' && value).length;
16
- }
17
3
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdEcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFxQjtJQUE1RDs7UUFDRSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixVQUFLLEdBQUcsS0FBSyxDQUFDO0lBUWhCLENBQUM7SUFOQzs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFjLEVBQVcsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0csQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50SW5jb21lVHlwZXMgYXMgQ2xpZW50SW5jb21lVHlwZXNCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3VzZXIvY2xpZW50LWluY29tZS10eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBDbGllbnRJbmNvbWVUeXBlcyBleHRlbmRzIENsaWVudEluY29tZVR5cGVzQmFzZSB7XG4gIHNhbGFyeSA9IGZhbHNlO1xuICBwcm9wZXJ0eSA9IGZhbHNlO1xuICBzb2xlID0gZmFsc2U7XG4gIGRpdmlkZW5kcyA9IGZhbHNlO1xuICBvdGhlciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBHZXQgY291bnQgb2Ygc2VsZWN0ZWQgaW5jb21lIHR5cGVzXG4gICAqL1xuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcykuZmlsdGVyKCh2YWx1ZTogYm9vbGVhbik6IGJvb2xlYW4gPT4gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgJiYgdmFsdWUpLmxlbmd0aDtcbiAgfVxufVxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWluY29tZS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdEcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFxQjtDQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudEluY29tZVR5cGVzIGFzIENsaWVudEluY29tZVR5cGVzQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy91c2VyL2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQ2xpZW50SW5jb21lVHlwZXMgZXh0ZW5kcyBDbGllbnRJbmNvbWVUeXBlc0Jhc2Uge1xufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { Type } from 'class-transformer';
3
+ import { AppFile } from '../file';
4
+ import { AbstractModel } from '../../db/Models';
5
+ export class HoldingSale extends AbstractModel {
6
+ }
7
+ __decorate([
8
+ Type(() => AppFile)
9
+ ], HoldingSale.prototype, "file", void 0);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy1zYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ob2xkaW5nL2hvbGRpbmctc2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxXQUFZLFNBQVEsYUFBYTtDQVU3QztBQURDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzt5Q0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge0hvbGRpbmd9IGZyb20gJy4vaG9sZGluZyc7XG5pbXBvcnQge0FwcEZpbGV9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgSG9sZGluZ1NhbGUgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgcHJpY2U6IG51bWJlcjtcbiAgZmVlOiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHByb2ZpdDogbnVtYmVyO1xuICBob2xkaW5nPzogSG9sZGluZztcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { __decorate } from "tslib";
2
+ import { Type } from 'class-transformer';
3
+ import { User } from '../user';
4
+ import { AbstractModel } from '../../db/Models';
5
+ export class HoldingType extends AbstractModel {
6
+ }
7
+ __decorate([
8
+ Type(() => User)
9
+ ], HoldingType.prototype, "user", void 0);
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ob2xkaW5nL2hvbGRpbmctdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxXQUFZLFNBQVEsYUFBYTtDQVU3QztBQURDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge0hvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9ob2xkaW5nL2hvbGRpbmctdHlwZS1jYXRlZ29yeS5lbnVtJztcbmltcG9ydCB7VXNlcn0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nVHlwZSBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICBjYXRlZ29yeTogSG9sZGluZ1R5cGVDYXRlZ29yeUVudW07XG4gIG5hbWU6IHN0cmluZztcbiAgdGlja2VyOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHByaWNlOiBudW1iZXI7XG4gIGRpdmlkZW5kUGVyY2VudDogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { __decorate } from "tslib";
2
+ import { Type, Transform } from 'class-transformer';
3
+ import { User } from '../user';
4
+ import { HoldingType } from './holding-type';
5
+ import { AppFile } from '../file';
6
+ import { HoldingSale } from './holding-sale';
7
+ import { Collection } from '../../collections';
8
+ import { AbstractModel } from '../../db/Models';
9
+ export class Holding extends AbstractModel {
10
+ }
11
+ __decorate([
12
+ Type(() => Date)
13
+ ], Holding.prototype, "date", void 0);
14
+ __decorate([
15
+ Type(() => User)
16
+ ], Holding.prototype, "user", void 0);
17
+ __decorate([
18
+ Type(() => HoldingType)
19
+ ], Holding.prototype, "type", void 0);
20
+ __decorate([
21
+ Type(() => AppFile)
22
+ ], Holding.prototype, "file", void 0);
23
+ __decorate([
24
+ Type(() => HoldingSale),
25
+ Transform(({ value }) => new Collection(value))
26
+ ], Holding.prototype, "sales", void 0);
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDN0IsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0NBc0J6QztBQWxCQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7cUNBQ047QUFPWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7cUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7cUNBQ047QUFHbEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3FDQUNOO0FBSWQ7SUFGQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBQ3ZCLFNBQVMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFjLEtBQUssQ0FBQyxDQUFDO3NDQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIFRyYW5zZm9ybSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7VXNlcn0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQge0hvbGRpbmdUeXBlfSBmcm9tICcuL2hvbGRpbmctdHlwZSc7XG5pbXBvcnQge0FwcEZpbGV9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHtIb2xkaW5nU2FsZX0gZnJvbSAnLi9ob2xkaW5nLXNhbGUnO1xuaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBIb2xkaW5nIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlzVGF4RnJlZTogYm9vbGVhbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHByaWNlOiBudW1iZXI7XG4gIGZlZTogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIHR5cGU6IEhvbGRpbmdUeXBlO1xuXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXG4gIGZpbGU6IEFwcEZpbGU7XG5cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1NhbGUpXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZX0pID0+IG5ldyBDb2xsZWN0aW9uPEhvbGRpbmdTYWxlPih2YWx1ZSkpXG4gIHNhbGVzOiBDb2xsZWN0aW9uPEhvbGRpbmdTYWxlPjtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './holding';
2
+ export * from './holding-type';
3
+ export * from './holding-sale';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2hvbGRpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZy10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZy1zYWxlJztcbiJdfQ==
@@ -17,4 +17,5 @@ export * from './document';
17
17
  export * from './property';
18
18
  export * from './transaction';
19
19
  export * from './user';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuayc7XG5leHBvcnQgKiBmcm9tICcuL2JvcnJvd2luZy1leHBlbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vZGVwcmVjaWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZGljdGlvbmFyeSc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbmFuY2lhbC15ZWFyJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hbic7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyJztcbiJdfQ==
20
+ export * from './holding';
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuayc7XG5leHBvcnQgKiBmcm9tICcuL2JvcnJvd2luZy1leHBlbnNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vZGVwcmVjaWF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZGljdGlvbmFyeSc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbmFuY2lhbC15ZWFyJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hbic7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vaG9sZGluZyc7XG4iXX0=
@@ -61,6 +61,15 @@ export class MyTaxIncomeStatements {
61
61
  .get(ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('grossAmount');
62
62
  this.attributablePsiTransactionsTotalTax = this.transactionsByChartAccounts
63
63
  .get(ChartAccountsListEnum.ATTRIBUTABLE_PSI).sumBy('tax');
64
+ this.fhssTransactionsTotalAmount = this.transactionsByChartAccounts
65
+ .get(ChartAccountsListEnum.FHSS).sumBy('grossAmount');
66
+ this.fhssTransactionsTotalTax = this.transactionsByChartAccounts
67
+ .get(ChartAccountsListEnum.FHSS).sumBy('tax');
68
+ // Australian Government Special Payments
69
+ this.australianSpecialPaymentsTotalAmount = this.transactionsByChartAccounts
70
+ .get(ChartAccountsListEnum.AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS).sumBy('grossAmount');
71
+ this.australianSpecialPaymentsTotalTax = this.transactionsByChartAccounts
72
+ .get(ChartAccountsListEnum.AUSTRALIAN_GOVERNMENT_SPECIAL_PAYMENTS).sumBy('tax');
64
73
  }
65
74
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWluY29tZS1zdGF0ZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1pbmNvbWUtc3RhdGVtZW50cy9teS10YXgtaW5jb21lLXN0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEksTUFBTSxPQUFPLHFCQUFxQjtJQTZCaEMsWUFDRSxZQUFtQztRQUVuQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFNUYsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQywyQkFBMkI7YUFDckUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQzthQUMxQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLG1DQUFtQzthQUMxRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDO2FBQ3JDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQywrQ0FBK0MsR0FBRyxJQUFJLENBQUMsbUNBQW1DO2FBQzVGLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyx1QkFBdUIsQ0FBQzthQUNsRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1DQUFtQzthQUNqRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsc0NBQXNDLENBQUM7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QyxDQUFDO1FBQ2xGLElBQUksQ0FBQyx5Q0FBeUMsR0FBRyxJQUFJLENBQUMsMkJBQTJCO2FBQzlFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMscUNBQXFDLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQztZQUNsRixxQkFBcUIsQ0FBQywrQ0FBK0M7WUFDckUscUJBQXFCLENBQUMsMENBQTBDO1NBQ2pFLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLHVDQUF1QyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUM7WUFDcEYscUJBQXFCLENBQUMsK0NBQStDO1lBQ3JFLHFCQUFxQixDQUFDLDBDQUEwQztTQUNqRSxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLHNDQUFzQyxHQUFHLElBQUksQ0FBQywyQkFBMkI7YUFDM0UsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxJQUFJLENBQUMsMkJBQTJCO2FBQ3hFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0sIENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0sIENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeSc7XG5cbmV4cG9ydCBjbGFzcyBNeVRheEluY29tZVN0YXRlbWVudHMge1xuICB0cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHM6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj47XG4gIHRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+O1xuXG4gIHNhbGFyeVRyYW5zYWN0aW9uc0J5SW5jb21lU291cmNlOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+O1xuICBldHBUcmFuc2FjdGlvbnNCeUluY29tZVNvdXJjZTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPjtcbiAgc3VwZXJhbm51YXRpb25MdW1wU3VtVHJhbnNhY3Rpb25zQnlJbmNvbWVTb3VyY2U6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj47XG5cbiAgYWxsb3dhbmNlVG90YWxBbW91bnQ6IG51bWJlcjtcbiAgYWxsb3dhbmNlVG90YWxUYXg6IG51bWJlcjtcbiAgbHVtcEFUcmFuc2FjdGlvbnNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBsdW1wQVRyYW5zYWN0aW9uc1RvdGFsVGF4OiBudW1iZXI7XG4gIGhhc0dlbnVpbmVMdW1wQVRyYW5zYWN0aW9uczogYm9vbGVhbjtcbiAgaGFzT3RoZXJMdW1wQVRyYW5zYWN0aW9uczogYm9vbGVhbjtcbiAgbHVtcEJUcmFuc2FjdGlvbnNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBsdW1wQlRyYW5zYWN0aW9uc1RvdGFsVGF4OiBudW1iZXI7XG4gIGF1c3RyYWxpYW5BbGxvd2FuY2VzQW5kUGF5bWVudHNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBhdXN0cmFsaWFuQWxsb3dhbmNlc0FuZFBheW1lbnRzVG90YWxUYXg6IG51bWJlcjtcbiAgYXVzdHJhbGlhblBlbnNpb25zQW5kQWxsb3dhbmNlc1RvdGFsQW1vdW50OiBudW1iZXI7XG4gIGF1c3RyYWxpYW5QZW5zaW9uc0FuZEFsbG93YW5jZXNUb3RhbFRheDogbnVtYmVyO1xuICBhdXN0cmFsaWFuQW5udWl0aWVzU3VwZXJhbm51YXRpb25JbmNvbWVzVG90YWxUYXg6IG51bWJlcjtcbiAgYXVzdHJhbGlhbkFubnVpdHlQYXltZW50c1RheGVkOiBudW1iZXI7XG4gIGF1c3RyYWxpYW5Bbm51aXR5UGF5bWVudHNVbnRheGVkOiBudW1iZXI7XG4gIGFzc2Vzc2FibGVDYXBwZWREZWZpbmVkQmVuZWZpdFRvdGFsQW1vdW50OiBudW1iZXI7XG4gIHN1cGVyYW5udWF0aW9uSW5jb21lU3RyZWFtc1RvdGFsVGF4ZWQ6IG51bWJlcjtcbiAgc3VwZXJhbm51YXRpb25JbmNvbWVTdHJlYW1zVG90YWxVbnRheGVkOiBudW1iZXI7XG4gIGF0dHJpYnV0YWJsZVBzaVRyYW5zYWN0aW9uc1RvdGFsQW1vdW50OiBudW1iZXI7XG4gIGF0dHJpYnV0YWJsZVBzaVRyYW5zYWN0aW9uc1RvdGFsVGF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb25cbiAgKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMgPSB0cmFuc2FjdGlvbnMuZ3JvdXBCeSgnY2hhcnRBY2NvdW50cy5pZCcpO1xuICAgIHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3MgPSB0cmFuc2FjdGlvbnMuZ3JvdXBCeSgnY2hhcnRBY2NvdW50cy5oZWFkaW5nLmlkJyk7XG5cbiAgICB0aGlzLnNhbGFyeVRyYW5zYWN0aW9uc0J5SW5jb21lU291cmNlID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlNBTEFSWV9PUl9XQUdFUylcbiAgICAgIC5ncm91cEJ5KCdpbmNvbWVTb3VyY2UubmFtZScpO1xuXG4gICAgdGhpcy5ldHBUcmFuc2FjdGlvbnNCeUluY29tZVNvdXJjZSA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5FVFApXG4gICAgICAuZ3JvdXBCeSgnaW5jb21lU291cmNlLm5hbWUnKTtcblxuICAgIHRoaXMuc3VwZXJhbm51YXRpb25MdW1wU3VtVHJhbnNhY3Rpb25zQnlJbmNvbWVTb3VyY2UgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0uU1VQRVJBTk5VQVRJT05fTFVNUF9TVU0pXG4gICAgICAuZ3JvdXBCeSgnaW5jb21lU291cmNlLm5hbWUnKTtcblxuICAgIHRoaXMuYWxsb3dhbmNlVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uQUxMT1dBTkNFU19FQVJOSU5HU19USVBTX0RJUkVDVE9SX0ZFRVMpXG4gICAgICAuc3VtQnkoJ2dyb3NzQW1vdW50Jyk7XG5cbiAgICB0aGlzLmFsbG93YW5jZVRvdGFsVGF4ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkFMTE9XQU5DRVNfRUFSTklOR1NfVElQU19ESVJFQ1RPUl9GRUVTKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcblxuICAgIHRoaXMubHVtcEFUcmFuc2FjdGlvbnNUb3RhbEFtb3VudCA9XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0FfR0VOVUlORV9SRURVTkRBTkNZKS5zdW1CeSgnY2xhaW1BbW91bnQnKSArXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0FfQUxMX09USEVSX1BBWU1FTlRTKS5zdW1CeSgnY2xhaW1BbW91bnQnKTtcblxuICAgIHRoaXMubHVtcEFUcmFuc2FjdGlvbnNUb3RhbFRheCA9XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0FfR0VOVUlORV9SRURVTkRBTkNZKS5zdW1CeSgndGF4JykgK1xuICAgICAgdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5MVU1QX1NVTV9BX0FMTF9PVEhFUl9QQVlNRU5UUykuc3VtQnkoJ3RheCcpO1xuXG4gICAgdGhpcy5oYXNHZW51aW5lTHVtcEFUcmFuc2FjdGlvbnMgPSAhIXRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uTFVNUF9TVU1fQV9HRU5VSU5FX1JFRFVOREFOQ1kpLmxlbmd0aDtcbiAgICB0aGlzLmhhc090aGVyTHVtcEFUcmFuc2FjdGlvbnMgPSAhIXRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uTFVNUF9TVU1fQV9BTExfT1RIRVJfUEFZTUVOVFMpLmxlbmd0aDtcbiAgICB0aGlzLmx1bXBCVHJhbnNhY3Rpb25zVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0IpLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMubHVtcEJUcmFuc2FjdGlvbnNUb3RhbFRheCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uTFVNUF9TVU1fQikuc3VtQnkoJ3RheCcpO1xuICAgIHRoaXMuYXVzdHJhbGlhbkFsbG93YW5jZXNBbmRQYXltZW50c1RvdGFsQW1vdW50ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkFVU1RSQUxJQU5fR09WRVJOTUVOVF9BTExPV0FOQ0VTX1BBWU1FTlRTKVxuICAgICAgLnN1bUJ5KCdncm9zc0Ftb3VudCcpO1xuICAgIHRoaXMuYXVzdHJhbGlhbkFsbG93YW5jZXNBbmRQYXltZW50c1RvdGFsVGF4ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkFVU1RSQUxJQU5fR09WRVJOTUVOVF9BTExPV0FOQ0VTX1BBWU1FTlRTKVxuICAgICAgLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLmF1c3RyYWxpYW5QZW5zaW9uc0FuZEFsbG93YW5jZXNUb3RhbEFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5BVVNUUkFMSUFOX0dPVkVSTk1FTlRfUEVOU0lPTlNfQUxMT1dBTkNFUylcbiAgICAgIC5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgICB0aGlzLmF1c3RyYWxpYW5QZW5zaW9uc0FuZEFsbG93YW5jZXNUb3RhbFRheCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5BVVNUUkFMSUFOX0dPVkVSTk1FTlRfUEVOU0lPTlNfQUxMT1dBTkNFUylcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5hdXN0cmFsaWFuQW5udWl0aWVzU3VwZXJhbm51YXRpb25JbmNvbWVzVG90YWxUYXggPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0uQU5OVUlUSUVTX0FORF9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNUylcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5hdXN0cmFsaWFuQW5udWl0eVBheW1lbnRzVGF4ZWQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uQVVTVFJBTElBTl9BTk5VSVRZX1BBWU1FTlRTKS5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLmF1c3RyYWxpYW5Bbm51aXR5UGF5bWVudHNVbnRheGVkID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFVU1RSQUxJQU5fQU5OVUlUWV9QQVlNRU5UUykuc3VtQnkoJ3VudGF4ZWRFbGVtZW50Jyk7XG4gICAgdGhpcy5hc3Nlc3NhYmxlQ2FwcGVkRGVmaW5lZEJlbmVmaXRUb3RhbEFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5BU1NFU1NBQkxFX0FNT1VOVF9DQVBQRURfREVGSU5FRF9CRU5FRklUKS5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLnN1cGVyYW5udWF0aW9uSW5jb21lU3RyZWFtc1RvdGFsVGF4ZWQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5tZXJnZShbXG4gICAgICBDaGFydEFjY291bnRzTGlzdEVudW0uQ09ERV9CX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RJU0FCSUxJVFksXG4gICAgICBDaGFydEFjY291bnRzTGlzdEVudW0uQ09ERV9BX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RFQVRIXG4gICAgXSkuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5zdXBlcmFubnVhdGlvbkluY29tZVN0cmVhbXNUb3RhbFVudGF4ZWQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5tZXJnZShbXG4gICAgICBDaGFydEFjY291bnRzTGlzdEVudW0uQ09ERV9CX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RJU0FCSUxJVFksXG4gICAgICBDaGFydEFjY291bnRzTGlzdEVudW0uQ09ERV9BX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RFQVRIXG4gICAgXSkuc3VtQnkoJ3VudGF4ZWRFbGVtZW50Jyk7XG4gICAgdGhpcy5hdHRyaWJ1dGFibGVQc2lUcmFuc2FjdGlvbnNUb3RhbEFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5BVFRSSUJVVEFCTEVfUFNJKS5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgICB0aGlzLmF0dHJpYnV0YWJsZVBzaVRyYW5zYWN0aW9uc1RvdGFsVGF4ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFUVFJJQlVUQUJMRV9QU0kpLnN1bUJ5KCd0YXgnKTtcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktdGF4LWluY29tZS1zdGF0ZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1pbmNvbWUtc3RhdGVtZW50cy9teS10YXgtaW5jb21lLXN0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEksTUFBTSxPQUFPLHFCQUFxQjtJQWtDaEMsWUFDRSxZQUFtQztRQUVuQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxtQ0FBbUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFNUYsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQywyQkFBMkI7YUFDckUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQzthQUMxQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLG1DQUFtQzthQUMxRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDO2FBQ3JDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQywrQ0FBK0MsR0FBRyxJQUFJLENBQUMsbUNBQW1DO2FBQzVGLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyx1QkFBdUIsQ0FBQzthQUNsRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG1DQUFtQzthQUNqRSxHQUFHLENBQUMsNEJBQTRCLENBQUMsc0NBQXNDLENBQUM7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LElBQUksQ0FBQyxvQ0FBb0MsR0FBRyxJQUFJLENBQUMsMkJBQTJCO2FBQ3pFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDLDJCQUEyQjthQUN0RSxHQUFHLENBQUMscUJBQXFCLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLCBDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLCBDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY2xhc3MgTXlUYXhJbmNvbWVTdGF0ZW1lbnRzIHtcbiAgdHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+O1xuICB0cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nczogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPjtcblxuICBzYWxhcnlUcmFuc2FjdGlvbnNCeUluY29tZVNvdXJjZTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPjtcbiAgZXRwVHJhbnNhY3Rpb25zQnlJbmNvbWVTb3VyY2U6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFRyYW5zYWN0aW9uQ29sbGVjdGlvbj47XG4gIHN1cGVyYW5udWF0aW9uTHVtcFN1bVRyYW5zYWN0aW9uc0J5SW5jb21lU291cmNlOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+O1xuXG4gIGFsbG93YW5jZVRvdGFsQW1vdW50OiBudW1iZXI7XG4gIGFsbG93YW5jZVRvdGFsVGF4OiBudW1iZXI7XG4gIGx1bXBBVHJhbnNhY3Rpb25zVG90YWxBbW91bnQ6IG51bWJlcjtcbiAgbHVtcEFUcmFuc2FjdGlvbnNUb3RhbFRheDogbnVtYmVyO1xuICBoYXNHZW51aW5lTHVtcEFUcmFuc2FjdGlvbnM6IGJvb2xlYW47XG4gIGhhc090aGVyTHVtcEFUcmFuc2FjdGlvbnM6IGJvb2xlYW47XG4gIGx1bXBCVHJhbnNhY3Rpb25zVG90YWxBbW91bnQ6IG51bWJlcjtcbiAgbHVtcEJUcmFuc2FjdGlvbnNUb3RhbFRheDogbnVtYmVyO1xuICBhdXN0cmFsaWFuQWxsb3dhbmNlc0FuZFBheW1lbnRzVG90YWxBbW91bnQ6IG51bWJlcjtcbiAgYXVzdHJhbGlhbkFsbG93YW5jZXNBbmRQYXltZW50c1RvdGFsVGF4OiBudW1iZXI7XG4gIGF1c3RyYWxpYW5QZW5zaW9uc0FuZEFsbG93YW5jZXNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBhdXN0cmFsaWFuUGVuc2lvbnNBbmRBbGxvd2FuY2VzVG90YWxUYXg6IG51bWJlcjtcbiAgYXVzdHJhbGlhbkFubnVpdGllc1N1cGVyYW5udWF0aW9uSW5jb21lc1RvdGFsVGF4OiBudW1iZXI7XG4gIGF1c3RyYWxpYW5Bbm51aXR5UGF5bWVudHNUYXhlZDogbnVtYmVyO1xuICBhdXN0cmFsaWFuQW5udWl0eVBheW1lbnRzVW50YXhlZDogbnVtYmVyO1xuICBhc3Nlc3NhYmxlQ2FwcGVkRGVmaW5lZEJlbmVmaXRUb3RhbEFtb3VudDogbnVtYmVyO1xuICBzdXBlcmFubnVhdGlvbkluY29tZVN0cmVhbXNUb3RhbFRheGVkOiBudW1iZXI7XG4gIHN1cGVyYW5udWF0aW9uSW5jb21lU3RyZWFtc1RvdGFsVW50YXhlZDogbnVtYmVyO1xuICBhdHRyaWJ1dGFibGVQc2lUcmFuc2FjdGlvbnNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBhdHRyaWJ1dGFibGVQc2lUcmFuc2FjdGlvbnNUb3RhbFRheDogbnVtYmVyO1xuICAvLyBGaXJzdCBob21lIHN1cGVyIHNhdmVyXG4gIGZoc3NUcmFuc2FjdGlvbnNUb3RhbEFtb3VudDogbnVtYmVyO1xuICBmaHNzVHJhbnNhY3Rpb25zVG90YWxUYXg6IG51bWJlcjtcbiAgYXVzdHJhbGlhblNwZWNpYWxQYXltZW50c1RvdGFsQW1vdW50OiBudW1iZXI7XG4gIGF1c3RyYWxpYW5TcGVjaWFsUGF5bWVudHNUb3RhbFRheDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG4gICkge1xuICAgIHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzID0gdHJhbnNhY3Rpb25zLmdyb3VwQnkoJ2NoYXJ0QWNjb3VudHMuaWQnKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzID0gdHJhbnNhY3Rpb25zLmdyb3VwQnkoJ2NoYXJ0QWNjb3VudHMuaGVhZGluZy5pZCcpO1xuXG4gICAgdGhpcy5zYWxhcnlUcmFuc2FjdGlvbnNCeUluY29tZVNvdXJjZSA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5TQUxBUllfT1JfV0FHRVMpXG4gICAgICAuZ3JvdXBCeSgnaW5jb21lU291cmNlLm5hbWUnKTtcblxuICAgIHRoaXMuZXRwVHJhbnNhY3Rpb25zQnlJbmNvbWVTb3VyY2UgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uRVRQKVxuICAgICAgLmdyb3VwQnkoJ2luY29tZVNvdXJjZS5uYW1lJyk7XG5cbiAgICB0aGlzLnN1cGVyYW5udWF0aW9uTHVtcFN1bVRyYW5zYWN0aW9uc0J5SW5jb21lU291cmNlID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtLlNVUEVSQU5OVUFUSU9OX0xVTVBfU1VNKVxuICAgICAgLmdyb3VwQnkoJ2luY29tZVNvdXJjZS5uYW1lJyk7XG5cbiAgICB0aGlzLmFsbG93YW5jZVRvdGFsQW1vdW50ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ0xpc3RFbnVtLkFMTE9XQU5DRVNfRUFSTklOR1NfVElQU19ESVJFQ1RPUl9GRUVTKVxuICAgICAgLnN1bUJ5KCdncm9zc0Ftb3VudCcpO1xuXG4gICAgdGhpcy5hbGxvd2FuY2VUb3RhbFRheCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5BTExPV0FOQ0VTX0VBUk5JTkdTX1RJUFNfRElSRUNUT1JfRkVFUylcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG5cbiAgICB0aGlzLmx1bXBBVHJhbnNhY3Rpb25zVG90YWxBbW91bnQgPVxuICAgICAgdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5MVU1QX1NVTV9BX0dFTlVJTkVfUkVEVU5EQU5DWSkuc3VtQnkoJ2NsYWltQW1vdW50JykgK1xuICAgICAgdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5MVU1QX1NVTV9BX0FMTF9PVEhFUl9QQVlNRU5UUykuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG5cbiAgICB0aGlzLmx1bXBBVHJhbnNhY3Rpb25zVG90YWxUYXggPVxuICAgICAgdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5MVU1QX1NVTV9BX0dFTlVJTkVfUkVEVU5EQU5DWSkuc3VtQnkoJ3RheCcpICtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uTFVNUF9TVU1fQV9BTExfT1RIRVJfUEFZTUVOVFMpLnN1bUJ5KCd0YXgnKTtcblxuICAgIHRoaXMuaGFzR2VudWluZUx1bXBBVHJhbnNhY3Rpb25zID0gISF0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0FfR0VOVUlORV9SRURVTkRBTkNZKS5sZW5ndGg7XG4gICAgdGhpcy5oYXNPdGhlckx1bXBBVHJhbnNhY3Rpb25zID0gISF0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0FfQUxMX09USEVSX1BBWU1FTlRTKS5sZW5ndGg7XG4gICAgdGhpcy5sdW1wQlRyYW5zYWN0aW9uc1RvdGFsQW1vdW50ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5MVU1QX1NVTV9CKS5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgICB0aGlzLmx1bXBCVHJhbnNhY3Rpb25zVG90YWxUYXggPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkxVTVBfU1VNX0IpLnN1bUJ5KCd0YXgnKTtcbiAgICB0aGlzLmF1c3RyYWxpYW5BbGxvd2FuY2VzQW5kUGF5bWVudHNUb3RhbEFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5BVVNUUkFMSUFOX0dPVkVSTk1FTlRfQUxMT1dBTkNFU19QQVlNRU5UUylcbiAgICAgIC5zdW1CeSgnZ3Jvc3NBbW91bnQnKTtcbiAgICB0aGlzLmF1c3RyYWxpYW5BbGxvd2FuY2VzQW5kUGF5bWVudHNUb3RhbFRheCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzSGVhZGluZ3NcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0hlYWRpbmdMaXN0RW51bS5BVVNUUkFMSUFOX0dPVkVSTk1FTlRfQUxMT1dBTkNFU19QQVlNRU5UUylcbiAgICAgIC5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5hdXN0cmFsaWFuUGVuc2lvbnNBbmRBbGxvd2FuY2VzVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uQVVTVFJBTElBTl9HT1ZFUk5NRU5UX1BFTlNJT05TX0FMTE9XQU5DRVMpXG4gICAgICAuc3VtQnkoJ2dyb3NzQW1vdW50Jyk7XG4gICAgdGhpcy5hdXN0cmFsaWFuUGVuc2lvbnNBbmRBbGxvd2FuY2VzVG90YWxUYXggPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c0hlYWRpbmdzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNIZWFkaW5nTGlzdEVudW0uQVVTVFJBTElBTl9HT1ZFUk5NRU5UX1BFTlNJT05TX0FMTE9XQU5DRVMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuICAgIHRoaXMuYXVzdHJhbGlhbkFubnVpdGllc1N1cGVyYW5udWF0aW9uSW5jb21lc1RvdGFsVGF4ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNIZWFkaW5nc1xuICAgICAgLmdldChDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtLkFOTlVJVElFU19BTkRfU1VQRVJBTk5VQVRJT05fSU5DT01FX1NUUkVBTVMpXG4gICAgICAuc3VtQnkoJ3RheCcpO1xuICAgIHRoaXMuYXVzdHJhbGlhbkFubnVpdHlQYXltZW50c1RheGVkID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFVU1RSQUxJQU5fQU5OVUlUWV9QQVlNRU5UUykuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5hdXN0cmFsaWFuQW5udWl0eVBheW1lbnRzVW50YXhlZCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5BVVNUUkFMSUFOX0FOTlVJVFlfUEFZTUVOVFMpLnN1bUJ5KCd1bnRheGVkRWxlbWVudCcpO1xuICAgIHRoaXMuYXNzZXNzYWJsZUNhcHBlZERlZmluZWRCZW5lZml0VG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uQVNTRVNTQUJMRV9BTU9VTlRfQ0FQUEVEX0RFRklORURfQkVORUZJVCkuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gICAgdGhpcy5zdXBlcmFubnVhdGlvbkluY29tZVN0cmVhbXNUb3RhbFRheGVkID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMubWVyZ2UoW1xuICAgICAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPREVfQl9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ESVNBQklMSVRZLFxuICAgICAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPREVfQV9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ERUFUSFxuICAgIF0pLnN1bUJ5KCdjbGFpbUFtb3VudCcpO1xuICAgIHRoaXMuc3VwZXJhbm51YXRpb25JbmNvbWVTdHJlYW1zVG90YWxVbnRheGVkID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMubWVyZ2UoW1xuICAgICAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPREVfQl9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ESVNBQklMSVRZLFxuICAgICAgQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkNPREVfQV9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ERUFUSFxuICAgIF0pLnN1bUJ5KCd1bnRheGVkRWxlbWVudCcpO1xuICAgIHRoaXMuYXR0cmlidXRhYmxlUHNpVHJhbnNhY3Rpb25zVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uQVRUUklCVVRBQkxFX1BTSSkuc3VtQnkoJ2dyb3NzQW1vdW50Jyk7XG4gICAgdGhpcy5hdHRyaWJ1dGFibGVQc2lUcmFuc2FjdGlvbnNUb3RhbFRheCA9IHRoaXMudHJhbnNhY3Rpb25zQnlDaGFydEFjY291bnRzXG4gICAgICAuZ2V0KENoYXJ0QWNjb3VudHNMaXN0RW51bS5BVFRSSUJVVEFCTEVfUFNJKS5zdW1CeSgndGF4Jyk7XG4gICAgdGhpcy5maHNzVHJhbnNhY3Rpb25zVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uRkhTUykuc3VtQnkoJ2dyb3NzQW1vdW50Jyk7XG4gICAgdGhpcy5maHNzVHJhbnNhY3Rpb25zVG90YWxUYXggPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uRkhTUykuc3VtQnkoJ3RheCcpO1xuICAgIC8vIEF1c3RyYWxpYW4gR292ZXJubWVudCBTcGVjaWFsIFBheW1lbnRzXG4gICAgdGhpcy5hdXN0cmFsaWFuU3BlY2lhbFBheW1lbnRzVG90YWxBbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50c1xuICAgICAgLmdldChDaGFydEFjY291bnRzTGlzdEVudW0uQVVTVFJBTElBTl9HT1ZFUk5NRU5UX1NQRUNJQUxfUEFZTUVOVFMpLnN1bUJ5KCdncm9zc0Ftb3VudCcpO1xuICAgIHRoaXMuYXVzdHJhbGlhblNwZWNpYWxQYXltZW50c1RvdGFsVGF4ID0gdGhpcy50cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHNcbiAgICAgIC5nZXQoQ2hhcnRBY2NvdW50c0xpc3RFbnVtLkFVU1RSQUxJQU5fR09WRVJOTUVOVF9TUEVDSUFMX1BBWU1FTlRTKS5zdW1CeSgndGF4Jyk7XG4gIH1cbn1cbiJdfQ==
@@ -11,6 +11,9 @@ export class ServiceProduct extends BaseServiceProduct {
11
11
  isSoleTank() {
12
12
  return this.id === ServiceProductIdEnum.SOLE_TANK;
13
13
  }
14
+ isHoldingsTank() {
15
+ return this.id === ServiceProductIdEnum.HOLDINGS_TANK;
16
+ }
14
17
  isArchived() {
15
18
  return this.status === ServiceProductStatusEnum.ARCHIVED;
16
19
  }
@@ -21,4 +24,4 @@ ServiceProduct.quantity = 3;
21
24
  // 5: 7,
22
25
  // 6: 6
23
26
  // }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcm9kdWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBR3BELFlBQVk7UUFDVixPQUFPLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztJQUMzRCxDQUFDOztBQWhCTSx1QkFBUSxHQUFHLENBQUMsQ0FBQztBQStCdEIscUJBQXFCO0FBQ3JCLFVBQVU7QUFDVixVQUFVO0FBQ1YsU0FBUztBQUNULElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NlcnZpY2VQcm9kdWN0IGFzIEJhc2VTZXJ2aWNlUHJvZHVjdH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QnO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdFN0YXR1c0VudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3Qtc3RhdHVzLmVudW0nO1xuaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdElkRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdC1pZC5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQcm9kdWN0IGV4dGVuZHMgQmFzZVNlcnZpY2VQcm9kdWN0IHtcbiAgc3RhdGljIHF1YW50aXR5ID0gMztcblxuICBpc1Byb3BlcnRpZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUWV9PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLlBST1BFUlRJRVNdLmluY2x1ZGVzKHRoaXMuaWQpO1xuICB9XG5cbiAgaXNXb3JrVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1NlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS19PTEQsIFNlcnZpY2VQcm9kdWN0SWRFbnVtLldPUktfVEFOS10uaW5jbHVkZXModGhpcy5pZCk7XG4gIH1cblxuICBpc1NvbGVUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlkID09PSBTZXJ2aWNlUHJvZHVjdElkRW51bS5TT0xFX1RBTks7XG4gIH1cblxuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU2VydmljZVByb2R1Y3RTdGF0dXNFbnVtLkFSQ0hJVkVEO1xuICB9XG5cbiAgLy8gbWFrZVRyaWFsKCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAvLyAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge1xuICAvLyAgICAgaXRlbXM6IFtcbiAgLy8gICAgICAgcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7XG4gIC8vICAgICAgICAgcHJpY2U6IHtcbiAgLy8gICAgICAgICAgIGlkOiBUZXN0RW51bVt0aGlzLmlkXVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIF1cbiAgLy8gICB9KTtcbiAgLy8gfVxufVxuXG4vLyBjb25zdCBUZXN0RW51bSA9IHtcbi8vICAgNDogNCxcbi8vICAgNTogNyxcbi8vICAgNjogNlxuLy8gfVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wcm9kdWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBR3BELFlBQVk7UUFDVixPQUFPLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztJQUN4RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQzs7QUFwQk0sdUJBQVEsR0FBRyxDQUFDLENBQUM7QUFtQ3RCLHFCQUFxQjtBQUNyQixVQUFVO0FBQ1YsVUFBVTtBQUNWLFNBQVM7QUFDVCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXJ2aWNlUHJvZHVjdCBhcyBCYXNlU2VydmljZVByb2R1Y3R9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zdWJzY3JpcHRpb24vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7U2VydmljZVByb2R1Y3RTdGF0dXNFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcm9kdWN0LXN0YXR1cy5lbnVtJztcbmltcG9ydCB7U2VydmljZVByb2R1Y3RJZEVudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QtaWQuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUHJvZHVjdCBleHRlbmRzIEJhc2VTZXJ2aWNlUHJvZHVjdCB7XG4gIHN0YXRpYyBxdWFudGl0eSA9IDM7XG5cbiAgaXNQcm9wZXJ0aWVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbU2VydmljZVByb2R1Y3RJZEVudW0uUFJPUEVSVFlfT0xELCBTZXJ2aWNlUHJvZHVjdElkRW51bS5QUk9QRVJUSUVTXS5pbmNsdWRlcyh0aGlzLmlkKTtcbiAgfVxuXG4gIGlzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtTZXJ2aWNlUHJvZHVjdElkRW51bS5XT1JLX1RBTktfT0xELCBTZXJ2aWNlUHJvZHVjdElkRW51bS5XT1JLX1RBTktdLmluY2x1ZGVzKHRoaXMuaWQpO1xuICB9XG5cbiAgaXNTb2xlVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gU2VydmljZVByb2R1Y3RJZEVudW0uU09MRV9UQU5LO1xuICB9XG5cbiAgaXNIb2xkaW5nc1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPT09IFNlcnZpY2VQcm9kdWN0SWRFbnVtLkhPTERJTkdTX1RBTks7XG4gIH1cblxuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU2VydmljZVByb2R1Y3RTdGF0dXNFbnVtLkFSQ0hJVkVEO1xuICB9XG5cbiAgLy8gbWFrZVRyaWFsKCk6IFNlcnZpY2VTdWJzY3JpcHRpb24ge1xuICAvLyAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge1xuICAvLyAgICAgaXRlbXM6IFtcbiAgLy8gICAgICAgcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7XG4gIC8vICAgICAgICAgcHJpY2U6IHtcbiAgLy8gICAgICAgICAgIGlkOiBUZXN0RW51bVt0aGlzLmlkXVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfSlcbiAgLy8gICAgIF1cbiAgLy8gICB9KTtcbiAgLy8gfVxufVxuXG4vLyBjb25zdCBUZXN0RW51bSA9IHtcbi8vICAgNDogNCxcbi8vICAgNTogNyxcbi8vICAgNjogNlxuLy8gfVxuIl19
@@ -1,4 +1,35 @@
1
1
  import { AllocationRuleCondition as AllocationRuleConditionBase } from '../../db/Models/transaction/allocation-rule-condition';
2
+ import { AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum } from '../../db/Enums';
2
3
  export class AllocationRuleCondition extends AllocationRuleConditionBase {
4
+ matchBankTransaction(bankTransaction) {
5
+ return this.field === AllocationRuleConditionFieldEnum.AMOUNT ? this.matchBankTransactionByAmount(bankTransaction) : this.matchBankTransactionByDescription(bankTransaction);
6
+ }
7
+ matchBankTransactionByAmount(bankTransaction) {
8
+ // Amount should be compared as number
9
+ const value = +this.value;
10
+ switch (this.comparisonOperator) {
11
+ case AllocationRuleConditionComparisonOperatorEnum.EQUALS:
12
+ return bankTransaction.amount === value;
13
+ case AllocationRuleConditionComparisonOperatorEnum.EQUALS_OR_LESS:
14
+ return bankTransaction.amount <= value;
15
+ case AllocationRuleConditionComparisonOperatorEnum.EQUALS_OR_GREATER:
16
+ return bankTransaction.amount >= value;
17
+ }
18
+ return false;
19
+ }
20
+ matchBankTransactionByDescription(bankTransaction) {
21
+ // Prepare value and description for comparison
22
+ const description = bankTransaction.description.toLowerCase();
23
+ const value = this.value.trim().toLowerCase();
24
+ switch (this.comparisonOperator) {
25
+ case AllocationRuleConditionComparisonOperatorEnum.EQUALS:
26
+ return description === value;
27
+ case AllocationRuleConditionComparisonOperatorEnum.CONTAINS:
28
+ return description.includes(value);
29
+ case AllocationRuleConditionComparisonOperatorEnum.STARTS:
30
+ return description.startsWith(value);
31
+ }
32
+ return false;
33
+ }
3
34
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLElBQUksMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUvSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0NBQ3ZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gYXMgQWxsb2NhdGlvblJ1bGVDb25kaXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24nO1xuXG5leHBvcnQgY2xhc3MgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gZXh0ZW5kcyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkJhc2Uge1xufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLElBQUksMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUvSCxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQTJCO0lBQ3RFLG9CQUFvQixDQUFDLGVBQWdDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9LLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxlQUFnQztRQUMzRCxzQ0FBc0M7UUFDdEMsTUFBTSxLQUFLLEdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRWxDLFFBQVEsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQy9CLEtBQUssNkNBQTZDLENBQUMsTUFBTTtnQkFDdkQsT0FBTyxlQUFlLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQztZQUMxQyxLQUFLLDZDQUE2QyxDQUFDLGNBQWM7Z0JBQy9ELE9BQU8sZUFBZSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7WUFDekMsS0FBSyw2Q0FBNkMsQ0FBQyxpQkFBaUI7Z0JBQ2xFLE9BQU8sZUFBZSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7U0FDMUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQ0FBaUMsQ0FBQyxlQUFnQztRQUNoRSwrQ0FBK0M7UUFDL0MsTUFBTSxXQUFXLEdBQVcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RSxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXRELFFBQVEsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQy9CLEtBQUssNkNBQTZDLENBQUMsTUFBTTtnQkFDdkQsT0FBTyxXQUFXLEtBQUssS0FBSyxDQUFDO1lBQy9CLEtBQUssNkNBQTZDLENBQUMsUUFBUTtnQkFDekQsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLEtBQUssNkNBQTZDLENBQUMsTUFBTTtnQkFDdkQsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbiBhcyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBCYW5rVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9iYW5rJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uQ29tcGFyaXNvbk9wZXJhdG9yRW51bSwgQWxsb2NhdGlvblJ1bGVDb25kaXRpb25GaWVsZEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbiBleHRlbmRzIEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uQmFzZSB7XG4gIG1hdGNoQmFua1RyYW5zYWN0aW9uKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQgPT09IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uRmllbGRFbnVtLkFNT1VOVCA/IHRoaXMubWF0Y2hCYW5rVHJhbnNhY3Rpb25CeUFtb3VudChiYW5rVHJhbnNhY3Rpb24pIDogdGhpcy5tYXRjaEJhbmtUcmFuc2FjdGlvbkJ5RGVzY3JpcHRpb24oYmFua1RyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIG1hdGNoQmFua1RyYW5zYWN0aW9uQnlBbW91bnQoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBib29sZWFuIHtcbiAgICAvLyBBbW91bnQgc2hvdWxkIGJlIGNvbXBhcmVkIGFzIG51bWJlclxuICAgIGNvbnN0IHZhbHVlOiBudW1iZXIgPSArdGhpcy52YWx1ZTtcblxuICAgIHN3aXRjaCAodGhpcy5jb21wYXJpc29uT3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Db21wYXJpc29uT3BlcmF0b3JFbnVtLkVRVUFMUzpcbiAgICAgICAgcmV0dXJuIGJhbmtUcmFuc2FjdGlvbi5hbW91bnQgPT09IHZhbHVlO1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkNvbXBhcmlzb25PcGVyYXRvckVudW0uRVFVQUxTX09SX0xFU1M6XG4gICAgICAgIHJldHVybiBiYW5rVHJhbnNhY3Rpb24uYW1vdW50IDw9IHZhbHVlO1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkNvbXBhcmlzb25PcGVyYXRvckVudW0uRVFVQUxTX09SX0dSRUFURVI6XG4gICAgICAgIHJldHVybiBiYW5rVHJhbnNhY3Rpb24uYW1vdW50ID49IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG1hdGNoQmFua1RyYW5zYWN0aW9uQnlEZXNjcmlwdGlvbihiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIC8vIFByZXBhcmUgdmFsdWUgYW5kIGRlc2NyaXB0aW9uIGZvciBjb21wYXJpc29uXG4gICAgY29uc3QgZGVzY3JpcHRpb246IHN0cmluZyA9IGJhbmtUcmFuc2FjdGlvbi5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB0aGlzLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoICh0aGlzLmNvbXBhcmlzb25PcGVyYXRvcikge1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkNvbXBhcmlzb25PcGVyYXRvckVudW0uRVFVQUxTOlxuICAgICAgICByZXR1cm4gZGVzY3JpcHRpb24gPT09IHZhbHVlO1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkNvbXBhcmlzb25PcGVyYXRvckVudW0uQ09OVEFJTlM6XG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbi5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgICBjYXNlIEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uQ29tcGFyaXNvbk9wZXJhdG9yRW51bS5TVEFSVFM6XG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbi5zdGFydHNXaXRoKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,13 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { AllocationRuleTransaction as AllocationRuleTransactionBase } from '../../db/Models/transaction/allocation-rule-transaction';
3
3
  import { ChartAccounts } from '../chart-accounts';
4
- import { Type, Transform } from 'class-transformer';
4
+ import { Type, Transform, plainToClass } from 'class-transformer';
5
5
  import { AllocationRuleTransactionMetaField } from './allocation-rule-transaction-meta-field';
6
- import { Loan, Property, SoleBusiness } from '../../models';
6
+ import { Loan, Property, SoleBusiness, Transaction, TransactionAllocation } from '../../models';
7
7
  import { IncomeSource } from '../income-source/income-source';
8
8
  import { ChartAccountsListEnum } from '../../db/Enums';
9
+ import { TransactionOperationEnum } from '../../db/Enums/transaction-operation.enum';
10
+ import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
9
11
  export class AllocationRuleTransaction extends AllocationRuleTransactionBase {
10
12
  calculateClaimPercent() {
11
13
  if (!this.chartAccounts) {
@@ -20,26 +22,63 @@ export class AllocationRuleTransaction extends AllocationRuleTransactionBase {
20
22
  }
21
23
  return claimPercent;
22
24
  }
25
+ /**
26
+ * Create Transaction instance based on passed bank transaction and rule transaction
27
+ */
28
+ toTransaction(bankTransaction) {
29
+ return plainToClass(Transaction, {
30
+ amount: bankTransaction.amount,
31
+ description: bankTransaction.description,
32
+ type: bankTransaction.type,
33
+ date: bankTransaction.date,
34
+ source: TransactionSourceEnum.BANK_TRANSACTION,
35
+ tax: this.tax,
36
+ claimPercent: this.claimPercent,
37
+ isGST: this.isGST,
38
+ chartAccounts: this.chartAccounts,
39
+ property: this.property,
40
+ loan: this.loan,
41
+ incomeSource: this.incomeSource,
42
+ metaFields: this.metaFields,
43
+ parentTransaction: this.parentTransaction,
44
+ childTransactions: this.childTransactions,
45
+ business: this.business,
46
+ operation: TransactionOperationEnum.ALLOCATE,
47
+ allocations: [TransactionAllocation.create(bankTransaction.amount, bankTransaction)],
48
+ });
49
+ }
23
50
  }
24
51
  __decorate([
25
- Type(() => ChartAccounts),
26
- Transform(({ value }) => { return { id: value.id }; }, { toPlainOnly: true })
52
+ Type(() => ChartAccounts)
53
+ // @TODO Alex: Create custom decorator for this transform
54
+ ,
55
+ Transform(({ value }) => {
56
+ return { id: value.id };
57
+ }, { toPlainOnly: true })
27
58
  ], AllocationRuleTransaction.prototype, "chartAccounts", void 0);
28
59
  __decorate([
29
60
  Type(() => Property),
30
- Transform(({ value }) => { return value ? { id: value.id } : null; }, { toPlainOnly: true })
61
+ Transform(({ value }) => {
62
+ return value ? { id: value.id } : null;
63
+ }, { toPlainOnly: true })
31
64
  ], AllocationRuleTransaction.prototype, "property", void 0);
32
65
  __decorate([
33
66
  Type(() => Loan),
34
- Transform(({ value }) => { return value ? { id: value.id } : null; }, { toPlainOnly: true })
67
+ Transform(({ value }) => {
68
+ return value ? { id: value.id } : null;
69
+ }, { toPlainOnly: true })
35
70
  ], AllocationRuleTransaction.prototype, "loan", void 0);
36
71
  __decorate([
37
72
  Type(() => IncomeSource),
38
- Transform(({ value }) => { return value ? { id: value.id } : null; }, { toPlainOnly: true })
73
+ Transform(({ value }) => {
74
+ return value ? { id: value.id } : null;
75
+ }, { toPlainOnly: true })
39
76
  ], AllocationRuleTransaction.prototype, "incomeSource", void 0);
40
77
  __decorate([
41
78
  Type(() => SoleBusiness),
42
- Transform(({ value }) => { return value ? { id: value.id } : null; }, { toPlainOnly: true })
79
+ Transform(({ value }) => {
80
+ return value ? { id: value.id } : null;
81
+ }, { toPlainOnly: true })
43
82
  ], AllocationRuleTransaction.prototype, "business", void 0);
44
83
  __decorate([
45
84
  Type(() => AllocationRuleTransactionMetaField)
@@ -53,4 +92,4 @@ __decorate([
53
92
  __decorate([
54
93
  Type(() => Number)
55
94
  ], AllocationRuleTransaction.prototype, "claimPercent", void 0);
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy90cmFuc2FjdGlvbi9hbGxvY2F0aW9uLXJ1bGUtdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSw2QkFBNkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDZCQUE2QjtJQWlDMUUscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUVyRCwwRkFBMEY7UUFDMUYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFFckQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsYUFBYSxFQUFFO2dCQUMzRyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQzthQUNqRDtTQUNGO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBL0NDO0lBRkMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QixTQUFTLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsR0FBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQztnRUFDeEM7QUFJN0I7SUFGQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ3BCLFNBQVMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxHQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQzsyREFDakU7QUFJbkI7SUFGQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2hCLFNBQVMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxHQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQzt1REFDekU7QUFJWDtJQUZDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDeEIsU0FBUyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLEdBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDOytEQUN4RDtBQUk1QjtJQUZDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDeEIsU0FBUyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLEdBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUEsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDOzJEQUM3RDtBQUd2QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzs2REFDRTtBQUdqRDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvRUFDTztBQUc3QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvRUFDUztBQUcvQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7K0RBQ0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uIGFzIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZS10cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgVHlwZSwgVHJhbnNmb3JtIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZCB9IGZyb20gJy4vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLW1ldGEtZmllbGQnO1xuaW1wb3J0IHsgTG9hbiwgUHJvcGVydHksIFNvbGVCdXNpbmVzcyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuXG5leHBvcnQgY2xhc3MgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbiBleHRlbmRzIEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25CYXNlIHtcbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge3JldHVybiB7aWQ6IHZhbHVlLmlkfX0sIHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHkpXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZX0pID0+IHtyZXR1cm4gdmFsdWUgPyB7aWQ6IHZhbHVlLmlkfSA6IG51bGx9LCB7dG9QbGFpbk9ubHk6IHRydWV9KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge3JldHVybiB2YWx1ZSA/IHtpZDogdmFsdWUuaWR9IDogbnVsbH0sIHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGxvYW46IExvYW47XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBAVHJhbnNmb3JtKCh7dmFsdWV9KSA9PiB7cmV0dXJuIHZhbHVlID8ge2lkOiB2YWx1ZS5pZH0gOiBudWxsfSwge3RvUGxhaW5Pbmx5OiB0cnVlfSlcbiAgaW5jb21lU291cmNlPzogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge3JldHVybiB2YWx1ZSA/IHtpZDogdmFsdWUuaWR9IDogbnVsbH0sIHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGJ1c2luZXNzOiBTb2xlQnVzaW5lc3M7XG5cbiAgQFR5cGUoKCkgPT4gQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZClcbiAgbWV0YUZpZWxkczogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbk1ldGFGaWVsZFtdO1xuXG4gIEBUeXBlKCgpID0+IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24pXG4gIHBhcmVudFRyYW5zYWN0aW9uOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24pXG4gIGNoaWxkVHJhbnNhY3Rpb25zOiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uW107XG5cbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxuICBjbGFpbVBlcmNlbnQ6IG51bWJlcjtcblxuICBjYWxjdWxhdGVDbGFpbVBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGNsYWltUGVyY2VudCA9IHRoaXMuY2hhcnRBY2NvdW50cy50YXhhYmxlUGVyY2VudDtcblxuICAgIC8vIFByb3BlcnR5IGNsYWltIChvd25lcnNoaXAlIHggc2hhcmVkJSkgZm9yIHByb3BlcnR5IGV4cGVuc2VzLCB0YXhhYmxlIHBlcmNlbnQgZm9yIG90aGVyc1xuICAgIGlmICh0aGlzLmNoYXJ0QWNjb3VudHM/LmlzUHJvcGVydHkoKSAmJiB0aGlzLnByb3BlcnR5KSB7XG5cbiAgICAgIGlmICh0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUV4cGVuc2UoKSAmJiB0aGlzLmNoYXJ0QWNjb3VudHMuaWQgIT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5QTEFURk9STV9GRUVTKSB7XG4gICAgICAgIGNsYWltUGVyY2VudCAqPSB0aGlzLnByb3BlcnR5Py5jbGFpbUNvZWZmaWNpZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFpbVBlcmNlbnQ7XG4gIH1cbn1cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy90cmFuc2FjdGlvbi9hbGxvY2F0aW9uLXJ1bGUtdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSw2QkFBNkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQW1CLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDZCQUE2QjtJQTRDMUUscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUVyRCwwRkFBMEY7UUFDMUYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxR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QUUsSUFBSSxFQUFDLENBQUM7K0RBQ0s7QUFNNUI7SUFKQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQ3hCLFNBQVMsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRTtRQUNyQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDOzJEQUNBO0FBR3ZCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFrQyxDQUFDOzZEQUNFO0FBR2pEO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29FQUNPO0FBRzdDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29FQUNTO0FBRy9DO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQzsrREFDRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24gYXMgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBUeXBlLCBUcmFuc2Zvcm0sIHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGQgfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS10cmFuc2FjdGlvbi1tZXRhLWZpZWxkJztcbmltcG9ydCB7IEJhbmtUcmFuc2FjdGlvbiwgTG9hbiwgUHJvcGVydHksIFNvbGVCdXNpbmVzcywgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uIGV4dGVuZHMgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbkJhc2Uge1xuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzKVxuICAvLyBAVE9ETyBBbGV4OiBDcmVhdGUgY3VzdG9tIGRlY29yYXRvciBmb3IgdGhpcyB0cmFuc2Zvcm1cbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge1xuICAgIHJldHVybiB7aWQ6IHZhbHVlLmlkfTtcbiAgfSwge3RvUGxhaW5Pbmx5OiB0cnVlfSlcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eSlcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge1xuICAgIHJldHVybiB2YWx1ZSA/IHtpZDogdmFsdWUuaWR9IDogbnVsbDtcbiAgfSwge3RvUGxhaW5Pbmx5OiB0cnVlfSlcbiAgcHJvcGVydHk6IFByb3BlcnR5O1xuXG4gIEBUeXBlKCgpID0+IExvYW4pXG4gIEBUcmFuc2Zvcm0oKHt2YWx1ZX0pID0+IHtcbiAgICByZXR1cm4gdmFsdWUgPyB7aWQ6IHZhbHVlLmlkfSA6IG51bGw7XG4gIH0sIHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGxvYW46IExvYW47XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBAVHJhbnNmb3JtKCh7dmFsdWV9KSA9PiB7XG4gICAgcmV0dXJuIHZhbHVlID8ge2lkOiB2YWx1ZS5pZH0gOiBudWxsO1xuICB9LCB7dG9QbGFpbk9ubHk6IHRydWV9KVxuICBpbmNvbWVTb3VyY2U/OiBJbmNvbWVTb3VyY2U7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBAVHJhbnNmb3JtKCh7dmFsdWV9KSA9PiB7XG4gICAgcmV0dXJuIHZhbHVlID8ge2lkOiB2YWx1ZS5pZH0gOiBudWxsO1xuICB9LCB7dG9QbGFpbk9ubHk6IHRydWV9KVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUeXBlKCgpID0+IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGQpXG4gIG1ldGFGaWVsZHM6IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb25NZXRhRmllbGRbXTtcblxuICBAVHlwZSgoKSA9PiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uKVxuICBwYXJlbnRUcmFuc2FjdGlvbjogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uKVxuICBjaGlsZFRyYW5zYWN0aW9uczogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgY2xhaW1QZXJjZW50OiBudW1iZXI7XG5cbiAgY2FsY3VsYXRlQ2xhaW1QZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBjbGFpbVBlcmNlbnQgPSB0aGlzLmNoYXJ0QWNjb3VudHMudGF4YWJsZVBlcmNlbnQ7XG5cbiAgICAvLyBQcm9wZXJ0eSBjbGFpbSAob3duZXJzaGlwJSB4IHNoYXJlZCUpIGZvciBwcm9wZXJ0eSBleHBlbnNlcywgdGF4YWJsZSBwZXJjZW50IGZvciBvdGhlcnNcbiAgICBpZiAodGhpcy5jaGFydEFjY291bnRzPy5pc1Byb3BlcnR5KCkgJiYgdGhpcy5wcm9wZXJ0eSkge1xuXG4gICAgICBpZiAodGhpcy5jaGFydEFjY291bnRzLmlzUHJvcGVydHlFeHBlbnNlKCkgJiYgdGhpcy5jaGFydEFjY291bnRzLmlkICE9PSBDaGFydEFjY291bnRzTGlzdEVudW0uUExBVEZPUk1fRkVFUykge1xuICAgICAgICBjbGFpbVBlcmNlbnQgKj0gdGhpcy5wcm9wZXJ0eT8uY2xhaW1Db2VmZmljaWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xhaW1QZXJjZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBUcmFuc2FjdGlvbiBpbnN0YW5jZSBiYXNlZCBvbiBwYXNzZWQgYmFuayB0cmFuc2FjdGlvbiBhbmQgcnVsZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgdG9UcmFuc2FjdGlvbihiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKFxuICAgICAgVHJhbnNhY3Rpb24sXG4gICAgICB7XG4gICAgICAgIGFtb3VudDogYmFua1RyYW5zYWN0aW9uLmFtb3VudCxcbiAgICAgICAgZGVzY3JpcHRpb246IGJhbmtUcmFuc2FjdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgICAgdHlwZTogYmFua1RyYW5zYWN0aW9uLnR5cGUsXG4gICAgICAgIGRhdGU6IGJhbmtUcmFuc2FjdGlvbi5kYXRlLFxuICAgICAgICBzb3VyY2U6IFRyYW5zYWN0aW9uU291cmNlRW51bS5CQU5LX1RSQU5TQUNUSU9OLFxuICAgICAgICB0YXg6IHRoaXMudGF4LFxuICAgICAgICBjbGFpbVBlcmNlbnQ6IHRoaXMuY2xhaW1QZXJjZW50LFxuICAgICAgICBpc0dTVDogdGhpcy5pc0dTVCxcbiAgICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgICAgbG9hbjogdGhpcy5sb2FuLFxuICAgICAgICBpbmNvbWVTb3VyY2U6IHRoaXMuaW5jb21lU291cmNlLFxuICAgICAgICBtZXRhRmllbGRzOiB0aGlzLm1ldGFGaWVsZHMsXG4gICAgICAgIHBhcmVudFRyYW5zYWN0aW9uOiB0aGlzLnBhcmVudFRyYW5zYWN0aW9uLFxuICAgICAgICBjaGlsZFRyYW5zYWN0aW9uczogdGhpcy5jaGlsZFRyYW5zYWN0aW9ucyxcbiAgICAgICAgYnVzaW5lc3M6IHRoaXMuYnVzaW5lc3MsXG4gICAgICAgIG9wZXJhdGlvbjogVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLkFMTE9DQVRFLFxuICAgICAgICBhbGxvY2F0aW9uczogW1RyYW5zYWN0aW9uQWxsb2NhdGlvbi5jcmVhdGUoYmFua1RyYW5zYWN0aW9uLmFtb3VudCwgYmFua1RyYW5zYWN0aW9uKV0sXG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,13 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { AllocationRule as AllocationRuleBase } from '../../db/Models/transaction/allocation-rule';
3
3
  import { BankAccount } from '../bank';
4
- import { Transform, Type } from 'class-transformer';
4
+ import { plainToClass, Transform, Type } from 'class-transformer';
5
5
  import { AllocationRuleCondition } from './allocation-rule-condition';
6
6
  import { AllocationRuleTransaction } from './allocation-rule-transaction';
7
- import { AllocationRuleConditionOperatorEnum, AllocationRuleTypeEnum } from '../../db/Enums';
7
+ import { AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleTypeEnum, ChartAccountsListEnum } from '../../db/Enums';
8
8
  import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
9
+ import { TransactionOperationEnum } from '../../db/Enums/transaction-operation.enum';
10
+ import { ChartAccounts } from '../chart-accounts';
9
11
  export class AllocationRule extends AllocationRuleBase {
10
12
  constructor() {
11
13
  super(...arguments);
@@ -61,6 +63,65 @@ export class AllocationRule extends AllocationRuleBase {
61
63
  isSoleIncome() {
62
64
  return this.isIncome() && this.isSoleTank();
63
65
  }
66
+ /**
67
+ * @TODO Alex: move to collection
68
+ */
69
+ matchBankTransaction(bankTransaction) {
70
+ return this.conditionOperator === AllocationRuleConditionOperatorEnum.AND ? this.checkAnd(bankTransaction) : this.checkOr(bankTransaction);
71
+ }
72
+ createTransaction(bankTransaction) {
73
+ if (this.isTransfer()) {
74
+ const transaction = bankTransaction.toTransaction();
75
+ transaction.operation = TransactionOperationEnum.TRANSFER;
76
+ transaction.chartAccounts = plainToClass(ChartAccounts, { id: ChartAccountsListEnum.TRANSFER });
77
+ return transaction;
78
+ }
79
+ return this.transaction.toTransaction(bankTransaction);
80
+ }
81
+ /**
82
+ * Rule is matched when all conditions matched
83
+ */
84
+ checkAnd(bankTransaction) {
85
+ for (let condition of this.conditions) {
86
+ if (!condition.matchBankTransaction(bankTransaction)) {
87
+ return false;
88
+ }
89
+ }
90
+ return true;
91
+ }
92
+ /**
93
+ * Rule is matched when at least one condition matched
94
+ */
95
+ checkOr(bankTransaction) {
96
+ for (let condition of this.conditions) {
97
+ if (condition.matchBankTransaction(bankTransaction)) {
98
+ return true;
99
+ }
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Create allocation rule based on bank transaction (just prefill rule fields with bank transaction values)
105
+ */
106
+ static fromBankTransaction(bankTransaction) {
107
+ return plainToClass(AllocationRule, {
108
+ type: bankTransaction.isDebit() ? AllocationRuleTypeEnum.EXPENSE : AllocationRuleTypeEnum.INCOME,
109
+ bankAccount: bankTransaction.bankAccount,
110
+ conditionOperator: AllocationRuleConditionOperatorEnum.AND,
111
+ conditions: [
112
+ plainToClass(AllocationRuleCondition, {
113
+ field: AllocationRuleConditionFieldEnum.AMOUNT,
114
+ comparisonOperator: AllocationRuleConditionComparisonOperatorEnum.EQUALS,
115
+ value: bankTransaction.amount
116
+ }),
117
+ plainToClass(AllocationRuleCondition, {
118
+ field: AllocationRuleConditionFieldEnum.DESCRIPTION,
119
+ comparisonOperator: AllocationRuleConditionComparisonOperatorEnum.EQUALS,
120
+ value: bankTransaction.description
121
+ })
122
+ ]
123
+ });
124
+ }
64
125
  }
65
126
  __decorate([
66
127
  Type(() => BankAccount),
@@ -75,4 +136,4 @@ __decorate([
75
136
  __decorate([
76
137
  Type(() => BankAccount)
77
138
  ], AllocationRule.prototype, "transferBankAccount", void 0);
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy90cmFuc2FjdGlvbi9hbGxvY2F0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLElBQUksa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLHNCQUFzQixFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUk3RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQUF0RDs7UUFjRSxTQUFJLEdBQTJCLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQUM5RCxzQkFBaUIsR0FBd0MsbUNBQW1DLENBQUMsRUFBRSxDQUFDO0lBa0VsRyxDQUFDO0lBaEVDLElBQUksU0FBUztRQUNYLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLHNCQUFzQixDQUFDLE9BQU87Z0JBQ2pDLE9BQU8sU0FBUyxDQUFDO1lBRW5CLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDaEMsT0FBTyxRQUFRLENBQUM7WUFFbEI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUNqQyxLQUFLLFlBQVksQ0FBQyxJQUFJO2dCQUNwQixPQUFPLE1BQU0sQ0FBQztZQUVoQixLQUFLLFlBQVksQ0FBQyxRQUFRO2dCQUN4QixPQUFPLFVBQVUsQ0FBQztZQUVwQixLQUFLLFlBQVksQ0FBQyxJQUFJO2dCQUNwQixPQUFPLE1BQU0sQ0FBQztZQUVoQjtnQkFDRSxPQUFPLFVBQVUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztJQUNyRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUMsUUFBUSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBOUVDO0lBRkMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUN2QixTQUFTLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsR0FBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQSxDQUFBLENBQUMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQzttREFDM0M7QUFHMUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7a0RBQ0c7QUFHdkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7bURBQ0U7QUFHeEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDOzJEQUNVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGUgYXMgQWxsb2NhdGlvblJ1bGVCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uL2JhbmsnO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVDb25kaXRpb24gfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS1jb25kaXRpb24nO1xuaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbiB9IGZyb20gJy4vYWxsb2NhdGlvbi1ydWxlLXRyYW5zYWN0aW9uJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uT3BlcmF0b3JFbnVtLCBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLCBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9wcm9wZXJ0eSc7XG5cbmV4cG9ydCBjbGFzcyBBbGxvY2F0aW9uUnVsZSBleHRlbmRzIEFsbG9jYXRpb25SdWxlQmFzZSB7XG4gIEBUeXBlKCgpID0+IEJhbmtBY2NvdW50KVxuICBAVHJhbnNmb3JtKCh7dmFsdWV9KSA9PiB7cmV0dXJuIHtpZDogdmFsdWUuaWR9fSwge3RvUGxhaW5Pbmx5OiB0cnVlfSlcbiAgYmFua0FjY291bnQ/OiBCYW5rQWNjb3VudDtcblxuICBAVHlwZSgoKSA9PiBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbilcbiAgY29uZGl0aW9ucz86IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uW107XG5cbiAgQFR5cGUoKCkgPT4gQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbilcbiAgdHJhbnNhY3Rpb24/OiBBbGxvY2F0aW9uUnVsZVRyYW5zYWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IEJhbmtBY2NvdW50KVxuICB0cmFuc2ZlckJhbmtBY2NvdW50PzogQmFua0FjY291bnQ7XG5cbiAgdHlwZTogQWxsb2NhdGlvblJ1bGVUeXBlRW51bSA9IEFsbG9jYXRpb25SdWxlVHlwZUVudW0uRVhQRU5TRTtcbiAgY29uZGl0aW9uT3BlcmF0b3I6IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uT3BlcmF0b3JFbnVtID0gQWxsb2NhdGlvblJ1bGVDb25kaXRpb25PcGVyYXRvckVudW0uT1I7XG5cbiAgZ2V0IHR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIEFsbG9jYXRpb25SdWxlVHlwZUVudW0uRVhQRU5TRTpcbiAgICAgICAgcmV0dXJuICdleHBlbnNlJztcblxuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLklOQ09NRTpcbiAgICAgICAgcmV0dXJuICdpbmNvbWUnO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3RyYW5zZmVyJztcbiAgICB9XG4gIH1cblxuICBnZXQgdGFua1R5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50cmFuc2FjdGlvbi50YW5rVHlwZSkge1xuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgcmV0dXJuICd3b3JrJztcblxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uUFJPUEVSVFk6XG4gICAgICAgIHJldHVybiAncHJvcGVydHknO1xuXG4gICAgICBjYXNlIFRhbmtUeXBlRW51bS5TT0xFOlxuICAgICAgICByZXR1cm4gJ3NvbGUnO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3BlcnNvbmFsJztcbiAgICB9XG4gIH1cblxuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLklOQ09NRTtcbiAgfVxuXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLkVYUEVOU0U7XG4gIH1cblxuICBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEFsbG9jYXRpb25SdWxlVHlwZUVudW0uVFJBTlNGRVI7XG4gIH1cblxuICBpc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50YW5rVHlwZSA9PT0gVGFua1R5cGVFbnVtLlBST1BFUlRZO1xuICB9XG5cbiAgaXNXb3JrVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50YW5rVHlwZSA9PT0gVGFua1R5cGVFbnVtLldPUks7XG4gIH1cblxuICBpc1NvbGVUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uLnRhbmtUeXBlID09PSBUYW5rVHlwZUVudW0uU09MRTtcbiAgfVxuXG4gIGlzUHJvcGVydHlJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbmNvbWUoKSAmJiB0aGlzLmlzUHJvcGVydHlUYW5rKCk7XG4gIH1cblxuICBpc1dvcmtJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbmNvbWUoKSAmJiB0aGlzLmlzV29ya1RhbmsoKTtcbiAgfVxuXG4gIGlzU29sZUluY29tZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luY29tZSgpICYmIHRoaXMuaXNTb2xlVGFuaygpO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGlvbi1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy90cmFuc2FjdGlvbi9hbGxvY2F0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLElBQUksa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLFNBQVMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsNkNBQTZDLEVBQzdDLGdDQUFnQyxFQUNoQyxtQ0FBbUMsRUFDbkMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQzlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGtCQUFrQjtJQUF0RDs7UUFjRSxTQUFJLEdBQTJCLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztRQUM5RCxzQkFBaUIsR0FBd0MsbUNBQW1DLENBQUMsRUFBRSxDQUFDO0lBdUlsRyxDQUFDO0lBcklDLElBQUksU0FBUztRQUNYLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLHNCQUFzQixDQUFDLE9BQU87Z0JBQ2pDLE9BQU8sU0FBUyxDQUFDO1lBRW5CLEtBQUssc0JBQXNCLENB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M0M7QUFHMUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7a0RBQ0c7QUFHdkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7bURBQ0U7QUFHeEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDOzJEQUNVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxsb2NhdGlvblJ1bGUgYXMgQWxsb2NhdGlvblJ1bGVCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL2FsbG9jYXRpb24tcnVsZSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCwgQmFua1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vYmFuayc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MsIFRyYW5zZm9ybSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uIH0gZnJvbSAnLi9hbGxvY2F0aW9uLXJ1bGUtY29uZGl0aW9uJztcbmltcG9ydCB7IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24gfSBmcm9tICcuL2FsbG9jYXRpb24tcnVsZS10cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbkNvbXBhcmlzb25PcGVyYXRvckVudW0sXG4gIEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uRmllbGRFbnVtLFxuICBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbk9wZXJhdG9yRW51bSxcbiAgQWxsb2NhdGlvblJ1bGVUeXBlRW51bSwgQ2hhcnRBY2NvdW50c0xpc3RFbnVtXG59IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuXG5leHBvcnQgY2xhc3MgQWxsb2NhdGlvblJ1bGUgZXh0ZW5kcyBBbGxvY2F0aW9uUnVsZUJhc2Uge1xuICBAVHlwZSgoKSA9PiBCYW5rQWNjb3VudClcbiAgQFRyYW5zZm9ybSgoe3ZhbHVlfSkgPT4ge3JldHVybiB7aWQ6IHZhbHVlLmlkfX0sIHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGJhbmtBY2NvdW50PzogQmFua0FjY291bnQ7XG5cbiAgQFR5cGUoKCkgPT4gQWxsb2NhdGlvblJ1bGVDb25kaXRpb24pXG4gIGNvbmRpdGlvbnM/OiBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IEFsbG9jYXRpb25SdWxlVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uPzogQWxsb2NhdGlvblJ1bGVUcmFuc2FjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBCYW5rQWNjb3VudClcbiAgdHJhbnNmZXJCYW5rQWNjb3VudD86IEJhbmtBY2NvdW50O1xuXG4gIHR5cGU6IEFsbG9jYXRpb25SdWxlVHlwZUVudW0gPSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLkVYUEVOU0U7XG4gIGNvbmRpdGlvbk9wZXJhdG9yOiBBbGxvY2F0aW9uUnVsZUNvbmRpdGlvbk9wZXJhdG9yRW51bSA9IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uT3BlcmF0b3JFbnVtLk9SO1xuXG4gIGdldCB0eXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLkVYUEVOU0U6XG4gICAgICAgIHJldHVybiAnZXhwZW5zZSc7XG5cbiAgICAgIGNhc2UgQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5JTkNPTUU6XG4gICAgICAgIHJldHVybiAnaW5jb21lJztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd0cmFuc2Zlcic7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRhbmtUeXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMudHJhbnNhY3Rpb24udGFua1R5cGUpIHtcbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgIHJldHVybiAnd29yayc7XG5cbiAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICByZXR1cm4gJ3Byb3BlcnR5JztcblxuICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgcmV0dXJuICdzb2xlJztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdwZXJzb25hbCc7XG4gICAgfVxuICB9XG5cbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5JTkNPTUU7XG4gIH1cblxuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gQWxsb2NhdGlvblJ1bGVUeXBlRW51bS5FWFBFTlNFO1xuICB9XG5cbiAgaXNUcmFuc2ZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLlRSQU5TRkVSO1xuICB9XG5cbiAgaXNQcm9wZXJ0eVRhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24udGFua1R5cGUgPT09IFRhbmtUeXBlRW51bS5QUk9QRVJUWTtcbiAgfVxuXG4gIGlzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24udGFua1R5cGUgPT09IFRhbmtUeXBlRW51bS5XT1JLO1xuICB9XG5cbiAgaXNTb2xlVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50YW5rVHlwZSA9PT0gVGFua1R5cGVFbnVtLlNPTEU7XG4gIH1cblxuICBpc1Byb3BlcnR5SW5jb21lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5jb21lKCkgJiYgdGhpcy5pc1Byb3BlcnR5VGFuaygpO1xuICB9XG5cbiAgaXNXb3JrSW5jb21lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5jb21lKCkgJiYgdGhpcy5pc1dvcmtUYW5rKCk7XG4gIH1cblxuICBpc1NvbGVJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbmNvbWUoKSAmJiB0aGlzLmlzU29sZVRhbmsoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4OiBtb3ZlIHRvIGNvbGxlY3Rpb25cbiAgICovXG4gIG1hdGNoQmFua1RyYW5zYWN0aW9uKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9uT3BlcmF0b3IgPT09IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uT3BlcmF0b3JFbnVtLkFORCA/IHRoaXMuY2hlY2tBbmQoYmFua1RyYW5zYWN0aW9uKSA6IHRoaXMuY2hlY2tPcihiYW5rVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgY3JlYXRlVHJhbnNhY3Rpb24oYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuaXNUcmFuc2ZlcigpKSB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSAgYmFua1RyYW5zYWN0aW9uLnRvVHJhbnNhY3Rpb24oKTtcblxuICAgICAgdHJhbnNhY3Rpb24ub3BlcmF0aW9uID0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSO1xuICAgICAgdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cyA9IHBsYWluVG9DbGFzcyhDaGFydEFjY291bnRzLCB7aWQ6IENoYXJ0QWNjb3VudHNMaXN0RW51bS5UUkFOU0ZFUn0pO1xuXG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24udG9UcmFuc2FjdGlvbihiYW5rVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bGUgaXMgbWF0Y2hlZCB3aGVuIGFsbCBjb25kaXRpb25zIG1hdGNoZWRcbiAgICovXG4gIHByaXZhdGUgY2hlY2tBbmQoYmFua1RyYW5zYWN0aW9uOiBCYW5rVHJhbnNhY3Rpb24pOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBjb25kaXRpb24gb2YgdGhpcy5jb25kaXRpb25zKSB7XG4gICAgICBpZiAoIWNvbmRpdGlvbi5tYXRjaEJhbmtUcmFuc2FjdGlvbihiYW5rVHJhbnNhY3Rpb24pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdWxlIGlzIG1hdGNoZWQgd2hlbiBhdCBsZWFzdCBvbmUgY29uZGl0aW9uIG1hdGNoZWRcbiAgICovXG4gIHByaXZhdGUgY2hlY2tPcihiYW5rVHJhbnNhY3Rpb246IEJhbmtUcmFuc2FjdGlvbik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGNvbmRpdGlvbiBvZiB0aGlzLmNvbmRpdGlvbnMpIHtcbiAgICAgIGlmIChjb25kaXRpb24ubWF0Y2hCYW5rVHJhbnNhY3Rpb24oYmFua1RyYW5zYWN0aW9uKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFsbG9jYXRpb24gcnVsZSBiYXNlZCBvbiBiYW5rIHRyYW5zYWN0aW9uIChqdXN0IHByZWZpbGwgcnVsZSBmaWVsZHMgd2l0aCBiYW5rIHRyYW5zYWN0aW9uIHZhbHVlcylcbiAgICovXG4gIHN0YXRpYyBmcm9tQmFua1RyYW5zYWN0aW9uKGJhbmtUcmFuc2FjdGlvbjogQmFua1RyYW5zYWN0aW9uKTogQWxsb2NhdGlvblJ1bGUge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoQWxsb2NhdGlvblJ1bGUsIHtcbiAgICAgIHR5cGU6IGJhbmtUcmFuc2FjdGlvbi5pc0RlYml0KCkgPyBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLkVYUEVOU0UgOiBBbGxvY2F0aW9uUnVsZVR5cGVFbnVtLklOQ09NRSxcbiAgICAgIGJhbmtBY2NvdW50OiBiYW5rVHJhbnNhY3Rpb24uYmFua0FjY291bnQsXG4gICAgICBjb25kaXRpb25PcGVyYXRvcjogQWxsb2NhdGlvblJ1bGVDb25kaXRpb25PcGVyYXRvckVudW0uQU5ELFxuICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICBwbGFpblRvQ2xhc3MoQWxsb2NhdGlvblJ1bGVDb25kaXRpb24sIHtcbiAgICAgICAgICBmaWVsZDogQWxsb2NhdGlvblJ1bGVDb25kaXRpb25GaWVsZEVudW0uQU1PVU5ULFxuICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Db21wYXJpc29uT3BlcmF0b3JFbnVtLkVRVUFMUyxcbiAgICAgICAgICB2YWx1ZTogYmFua1RyYW5zYWN0aW9uLmFtb3VudFxuICAgICAgICB9KSxcbiAgICAgICAgcGxhaW5Ub0NsYXNzKEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uLCB7XG4gICAgICAgICAgZmllbGQ6IEFsbG9jYXRpb25SdWxlQ29uZGl0aW9uRmllbGRFbnVtLkRFU0NSSVBUSU9OLFxuICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQWxsb2NhdGlvblJ1bGVDb25kaXRpb25Db21wYXJpc29uT3BlcmF0b3JFbnVtLkVRVUFMUyxcbiAgICAgICAgICB2YWx1ZTogYmFua1RyYW5zYWN0aW9uLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==