taxtank-core 0.28.105 → 0.28.107

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 (156) hide show
  1. package/bundles/taxtank-core.umd.js +1289 -880
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/db/Enums/chart-accounts-salary-adjustments-list.enum.js +17 -0
  4. package/esm2015/lib/db/Enums/index.js +2 -1
  5. package/esm2015/lib/forms/depreciation/depreciation.form.js +35 -0
  6. package/esm2015/lib/forms/depreciation/index.js +2 -0
  7. package/esm2015/lib/forms/form-validations.enum.js +12 -0
  8. package/esm2015/lib/forms/index.js +4 -1
  9. package/esm2015/lib/forms/transaction/index.js +4 -0
  10. package/esm2015/lib/forms/transaction/messages.enum.js +5 -0
  11. package/esm2015/lib/forms/transaction/transaction-base.form.js +105 -0
  12. package/esm2015/lib/forms/transaction/transaction.form.js +12 -0
  13. package/esm2015/lib/forms/transaction/work-income.form.js +119 -0
  14. package/esm2015/lib/interceptors/basiq-client-id.interceptor.js +3 -3
  15. package/esm2015/lib/interceptors/basiq-token.interceptor.js +3 -3
  16. package/esm2015/lib/interceptors/corelogic-interceptor.js +3 -3
  17. package/esm2015/lib/interceptors/financial-year-interceptor.js +3 -3
  18. package/esm2015/lib/interceptors/interceptors.module.js +4 -4
  19. package/esm2015/lib/interceptors/jwt-interceptor.js +3 -3
  20. package/esm2015/lib/interceptors/preloader.interceptor.js +3 -3
  21. package/esm2015/lib/interceptors/user-switcher-interceptor.js +15 -5
  22. package/esm2015/lib/models/chart-accounts/chart-accounts.js +37 -1
  23. package/esm2015/lib/models/chart-accounts/index.js +9 -0
  24. package/esm2015/lib/models/document/index.js +3 -1
  25. package/esm2015/lib/models/income-source/salary-forecast.js +4 -1
  26. package/esm2015/lib/models/index.js +3 -1
  27. package/esm2015/lib/models/transaction/index.js +7 -0
  28. package/esm2015/lib/models/transaction/transaction.js +2 -3
  29. package/esm2015/lib/models/vehicle/vehicle-logbook.js +2 -1
  30. package/esm2015/lib/services/account-setup/account-setup.service.js +3 -3
  31. package/esm2015/lib/services/affiliate/rewardful/rewardful.service.js +3 -3
  32. package/esm2015/lib/services/asset/assets.service.js +3 -3
  33. package/esm2015/lib/services/auth/auth.service.js +3 -3
  34. package/esm2015/lib/services/auth/jwt.service.js +3 -3
  35. package/esm2015/lib/services/bank/bank-account-calculation.service.js +3 -3
  36. package/esm2015/lib/services/bank/bank-transaction-calculation.service.js +3 -3
  37. package/esm2015/lib/services/event/event-dispatcher.service.js +3 -3
  38. package/esm2015/lib/services/event/sse.service.js +3 -3
  39. package/esm2015/lib/services/export/export-formatter.service.js +3 -3
  40. package/esm2015/lib/services/header-title/header-title.service.js +3 -3
  41. package/esm2015/lib/services/http/address/address.service.js +3 -3
  42. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +3 -3
  43. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +3 -3
  44. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +3 -3
  45. package/esm2015/lib/services/http/bank/bank.service.js +13 -9
  46. package/esm2015/lib/services/http/bank/basiq/basiq-token.service.js +3 -3
  47. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +3 -3
  48. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +3 -3
  49. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +6 -7
  50. package/esm2015/lib/services/http/chat/chat.service.js +3 -3
  51. package/esm2015/lib/services/http/chat/message/message.service.js +3 -3
  52. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +3 -3
  53. package/esm2015/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js +3 -3
  54. package/esm2015/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.js +3 -3
  55. package/esm2015/lib/services/http/depreciation/depreciation.service.js +3 -3
  56. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +3 -3
  57. package/esm2015/lib/services/http/document/document.service.js +3 -3
  58. package/esm2015/lib/services/http/facebook/facebook.service.js +3 -3
  59. package/esm2015/lib/services/http/firm/client-income/client-income-types.service.js +3 -3
  60. package/esm2015/lib/services/http/firm/client-invite/client-invite.service.js +3 -3
  61. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +3 -3
  62. package/esm2015/lib/services/http/firm/employee/employee.service.js +3 -3
  63. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +3 -3
  64. package/esm2015/lib/services/http/firm/firm.service.js +3 -3
  65. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +3 -3
  66. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +3 -3
  67. package/esm2015/lib/services/http/income-source/income-source.service.js +3 -3
  68. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +3 -3
  69. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +3 -3
  70. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +3 -3
  71. package/esm2015/lib/services/http/loan/loan.service.js +3 -3
  72. package/esm2015/lib/services/http/property/property-category/property-category.service.js +3 -3
  73. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +3 -3
  74. package/esm2015/lib/services/http/property/property-document/property-document.service.js +3 -3
  75. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +3 -3
  76. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +3 -3
  77. package/esm2015/lib/services/http/property/property-share/property-share.service.js +3 -3
  78. package/esm2015/lib/services/http/property/property.service.js +3 -3
  79. package/esm2015/lib/services/http/receipt/receipt.service.js +3 -3
  80. package/esm2015/lib/services/http/rest/rest-old.service.js +3 -3
  81. package/esm2015/lib/services/http/rest/rest.service.js +3 -3
  82. package/esm2015/lib/services/http/service-notification/service-notification.service.js +3 -3
  83. package/esm2015/lib/services/http/sole/bas-report/bas-report.service.js +3 -3
  84. package/esm2015/lib/services/http/sole/sole-business/sole-business.service.js +3 -3
  85. package/esm2015/lib/services/http/sole/sole-business-activity/sole-business-activity.service.js +3 -3
  86. package/esm2015/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.js +3 -3
  87. package/esm2015/lib/services/http/sole/sole-business-loss/sole-business-loss.service.js +3 -3
  88. package/esm2015/lib/services/http/sole/sole-contact/sole-contact.service.js +3 -3
  89. package/esm2015/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.js +3 -3
  90. package/esm2015/lib/services/http/sole/sole-details/sole-details.service.js +3 -3
  91. package/esm2015/lib/services/http/sole/sole-invoice/sole-invoice.service.js +3 -3
  92. package/esm2015/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.js +3 -3
  93. package/esm2015/lib/services/http/subscription/service-price.service.js +3 -3
  94. package/esm2015/lib/services/http/subscription/subscription.service.js +3 -3
  95. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +3 -3
  96. package/esm2015/lib/services/http/tax-review/tax-review.service.js +3 -3
  97. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +3 -3
  98. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +3 -3
  99. package/esm2015/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.js +3 -3
  100. package/esm2015/lib/services/http/transaction/transaction.service.js +4 -34
  101. package/esm2015/lib/services/http/tutorial-video/tutorial-video.service.js +3 -3
  102. package/esm2015/lib/services/http/user/occupation/occupation.service.js +3 -3
  103. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +3 -3
  104. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +3 -3
  105. package/esm2015/lib/services/http/user/user.service.js +3 -3
  106. package/esm2015/lib/services/http/user/users-invite/users-invite.service.js +3 -3
  107. package/esm2015/lib/services/http/vehicle/vehicle-claim-details.service.js +3 -3
  108. package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +3 -3
  109. package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +3 -3
  110. package/esm2015/lib/services/http/vehicle/vehicle.service.js +3 -3
  111. package/esm2015/lib/services/intercom/intercom.service.js +3 -3
  112. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +3 -3
  113. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +3 -3
  114. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +3 -3
  115. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +3 -3
  116. package/esm2015/lib/services/preloader/preloader.service.js +3 -3
  117. package/esm2015/lib/services/property/corelogic/corelogic.service.js +3 -3
  118. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +3 -3
  119. package/esm2015/lib/services/property/property-calculation/property-calculation.service.js +3 -3
  120. package/esm2015/lib/services/report/property/property-transaction-report.service.js +3 -3
  121. package/esm2015/lib/services/toast/toast.service.js +3 -3
  122. package/esm2015/lib/services/transaction/transaction-calculation.service.js +3 -3
  123. package/esm2015/lib/services/user/user-switcher.service.js +3 -3
  124. package/esm2015/lib/services/vehicle/logbook-best-period.service.js +3 -3
  125. package/esm2015/lib/services/xlsx/xlsx.service.js +3 -3
  126. package/esm2015/lib/tt-core.module.js +4 -4
  127. package/esm2015/lib/validators/current-fin-year.validator.js +14 -0
  128. package/esm2015/lib/validators/file.validator.js +27 -0
  129. package/esm2015/lib/validators/index.js +3 -1
  130. package/fesm2015/taxtank-core.js +1246 -898
  131. package/fesm2015/taxtank-core.js.map +1 -1
  132. package/lib/db/Enums/chart-accounts-salary-adjustments-list.enum.d.ts +15 -0
  133. package/lib/db/Enums/index.d.ts +1 -0
  134. package/lib/forms/depreciation/depreciation.form.d.ts +5 -0
  135. package/lib/forms/depreciation/index.d.ts +1 -0
  136. package/lib/forms/form-validations.enum.d.ts +9 -0
  137. package/lib/forms/index.d.ts +3 -0
  138. package/lib/forms/transaction/index.d.ts +3 -0
  139. package/lib/forms/transaction/messages.enum.d.ts +3 -0
  140. package/lib/forms/transaction/transaction-base.form.d.ts +28 -0
  141. package/lib/forms/transaction/transaction.form.d.ts +8 -0
  142. package/lib/forms/transaction/work-income.form.d.ts +21 -0
  143. package/lib/models/chart-accounts/chart-accounts.d.ts +8 -0
  144. package/lib/models/chart-accounts/index.d.ts +8 -0
  145. package/lib/models/document/index.d.ts +2 -0
  146. package/lib/models/income-source/salary-forecast.d.ts +1 -0
  147. package/lib/models/index.d.ts +2 -0
  148. package/lib/models/transaction/index.d.ts +6 -0
  149. package/lib/models/transaction/transaction.d.ts +2 -2
  150. package/lib/services/http/bank/bank.service.d.ts +9 -5
  151. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts +1 -2
  152. package/lib/services/http/transaction/transaction.service.d.ts +0 -7
  153. package/lib/validators/current-fin-year.validator.d.ts +5 -0
  154. package/lib/validators/file.validator.d.ts +6 -0
  155. package/lib/validators/index.d.ts +2 -0
  156. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ export var ChartAccountsSalaryAdjustmentsListEnum;
2
+ (function (ChartAccountsSalaryAdjustmentsListEnum) {
3
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["ALLOWANCE"] = 4] = "ALLOWANCE";
4
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["TIPS"] = 5] = "TIPS";
5
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["REIMBURSEMENTS"] = 555] = "REIMBURSEMENTS";
6
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["ADVANCE"] = 556] = "ADVANCE";
7
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["POST_TAX_DEDUCTIONS_OTHER"] = 644] = "POST_TAX_DEDUCTIONS_OTHER";
8
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["PRE_TAX_DEDUCTIONS_OTHER"] = 645] = "PRE_TAX_DEDUCTIONS_OTHER";
9
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["PHONE_ALLOWANCE"] = 646] = "PHONE_ALLOWANCE";
10
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["UNIFORM_ALLOWANCE"] = 647] = "UNIFORM_ALLOWANCE";
11
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["META_ALLOWANCE"] = 648] = "META_ALLOWANCE";
12
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["TRAVEL_ALLOWANCE"] = 649] = "TRAVEL_ALLOWANCE";
13
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["OTHER_ALLOWANCE"] = 650] = "OTHER_ALLOWANCE";
14
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["LAFH"] = 651] = "LAFH";
15
+ ChartAccountsSalaryAdjustmentsListEnum[ChartAccountsSalaryAdjustmentsListEnum["WORK_PLACE_GIVING"] = 653] = "WORK_PLACE_GIVING";
16
+ })(ChartAccountsSalaryAdjustmentsListEnum || (ChartAccountsSalaryAdjustmentsListEnum = {}));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtc2FsYXJ5LWFkanVzdG1lbnRzLWxpc3QuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1zYWxhcnktYWRqdXN0bWVudHMtbGlzdC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHNDQWNYO0FBZEQsV0FBWSxzQ0FBc0M7SUFDakQsNkdBQWEsQ0FBQTtJQUNiLG1HQUFRLENBQUE7SUFDUix5SEFBb0IsQ0FBQTtJQUNwQiwyR0FBYSxDQUFBO0lBQ2IsK0lBQStCLENBQUE7SUFDL0IsNklBQThCLENBQUE7SUFDOUIsMkhBQXFCLENBQUE7SUFDckIsK0hBQXVCLENBQUE7SUFDdkIseUhBQW9CLENBQUE7SUFDcEIsNkhBQXNCLENBQUE7SUFDdEIsMkhBQXFCLENBQUE7SUFDckIscUdBQVUsQ0FBQTtJQUNWLCtIQUF1QixDQUFBO0FBQ3hCLENBQUMsRUFkVyxzQ0FBc0MsS0FBdEMsc0NBQXNDLFFBY2pEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRBY2NvdW50c1NhbGFyeUFkanVzdG1lbnRzTGlzdEVudW0ge1xuXHRBTExPV0FOQ0UgPSA0LFxuXHRUSVBTID0gNSxcblx0UkVJTUJVUlNFTUVOVFMgPSA1NTUsXG5cdEFEVkFOQ0UgPSA1NTYsXG5cdFBPU1RfVEFYX0RFRFVDVElPTlNfT1RIRVIgPSA2NDQsXG5cdFBSRV9UQVhfREVEVUNUSU9OU19PVEhFUiA9IDY0NSxcblx0UEhPTkVfQUxMT1dBTkNFID0gNjQ2LFxuXHRVTklGT1JNX0FMTE9XQU5DRSA9IDY0Nyxcblx0TUVUQV9BTExPV0FOQ0UgPSA2NDgsXG5cdFRSQVZFTF9BTExPV0FOQ0UgPSA2NDksXG5cdE9USEVSX0FMTE9XQU5DRSA9IDY1MCxcblx0TEFGSCA9IDY1MSxcblx0V09SS19QTEFDRV9HSVZJTkcgPSA2NTMsXG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  // @TODO Artem TT-2308 move everything
2
2
  export * from './document-type.enum';
3
3
  export * from './annual-frequency.enum';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBUT0RPIEFydGVtIFRULTIzMDggbW92ZSBldmVyeXRoaW5nXG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2FubnVhbC1mcmVxdWVuY3kuZW51bSc7XG4iXX0=
4
+ export * from './chart-accounts-salary-adjustments-list.enum';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQXJ0ZW0gVFQtMjMwOCBtb3ZlIGV2ZXJ5dGhpbmdcbmV4cG9ydCAqIGZyb20gJy4vZG9jdW1lbnQtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vYW5udWFsLWZyZXF1ZW5jeS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtc2FsYXJ5LWFkanVzdG1lbnRzLWxpc3QuZW51bSc7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { FormControl, Validators } from '@angular/forms';
2
+ import { TransactionBaseForm } from '../transaction';
3
+ import { FinancialYear } from '../../models/financial-year/financial-year';
4
+ export class DepreciationForm extends TransactionBaseForm {
5
+ constructor(depreciation, registeredForGst) {
6
+ super(depreciation, registeredForGst);
7
+ this.get('claimPercent').setValue(depreciation.currentYearForecast.claimPercent);
8
+ this.addControl('isCloseBalanceCorrect', new FormControl(true));
9
+ this.addControl('closeBalance', new FormControl({ value: depreciation.closeBalance || 0, disabled: true }, Validators.required));
10
+ this.addControl('financialYear', new FormControl(depreciation.financialYear || new FinancialYear().year));
11
+ // forbid to change chartAccounts/claimPercent for existing depreciations
12
+ if (depreciation.id) {
13
+ this.get('chartAccounts').disable({ emitEvent: false });
14
+ this.get('claimPercent').disable({ emitEvent: false });
15
+ }
16
+ // @TODO should be watched?
17
+ // if depreciation has 'depreciationCapitalProject' value - set value and disable 'date' form control
18
+ if (depreciation.depreciationCapitalProject) {
19
+ this.get('date').setValue(depreciation.depreciationCapitalProject.effectiveDate);
20
+ this.get('date').disable();
21
+ }
22
+ else {
23
+ this.get('date').setValue(depreciation.date);
24
+ }
25
+ this.get('isCloseBalanceCorrect').valueChanges.subscribe((isSelected) => {
26
+ if (isSelected) {
27
+ this.get('closeBalance').disable();
28
+ }
29
+ else {
30
+ this.get('closeBalance').enable();
31
+ }
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRzNFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxtQkFBaUM7SUFDckUsWUFBWSxZQUEwQixFQUFFLGdCQUF5QjtRQUMvRCxLQUFLLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLFdBQVcsQ0FDN0MsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUN6RCxVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUUxRyx5RUFBeUU7UUFDekUsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztTQUN0RDtRQUVELDJCQUEyQjtRQUMzQixxR0FBcUc7UUFDckcsSUFBSSxZQUFZLENBQUMsMEJBQTBCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBbUIsRUFBRSxFQUFFO1lBQy9FLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJhc2VGb3JtIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uLy4uL21vZGVscy9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNpYXRpb25Gb3JtIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlRm9ybTxEZXByZWNpYXRpb24+IHtcbiAgY29uc3RydWN0b3IoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24sIHJlZ2lzdGVyZWRGb3JHc3Q6IGJvb2xlYW4pIHtcbiAgICBzdXBlcihkZXByZWNpYXRpb24sIHJlZ2lzdGVyZWRGb3JHc3QpO1xuXG4gICAgdGhpcy5nZXQoJ2NsYWltUGVyY2VudCcpLnNldFZhbHVlKGRlcHJlY2lhdGlvbi5jdXJyZW50WWVhckZvcmVjYXN0LmNsYWltUGVyY2VudCk7XG4gICAgdGhpcy5hZGRDb250cm9sKCdpc0Nsb3NlQmFsYW5jZUNvcnJlY3QnLCBuZXcgRm9ybUNvbnRyb2wodHJ1ZSkpO1xuICAgIHRoaXMuYWRkQ29udHJvbCgnY2xvc2VCYWxhbmNlJywgbmV3IEZvcm1Db250cm9sKFxuICAgICAgeyB2YWx1ZTogZGVwcmVjaWF0aW9uLmNsb3NlQmFsYW5jZSB8fCAwLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICkpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sKCdmaW5hbmNpYWxZZWFyJywgbmV3IEZvcm1Db250cm9sKGRlcHJlY2lhdGlvbi5maW5hbmNpYWxZZWFyIHx8IG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcikpO1xuXG4gICAgLy8gZm9yYmlkIHRvIGNoYW5nZSBjaGFydEFjY291bnRzL2NsYWltUGVyY2VudCBmb3IgZXhpc3RpbmcgZGVwcmVjaWF0aW9uc1xuICAgIGlmIChkZXByZWNpYXRpb24uaWQpIHtcbiAgICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgdGhpcy5nZXQoJ2NsYWltUGVyY2VudCcpLmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICB9XG5cbiAgICAvLyBAVE9ETyBzaG91bGQgYmUgd2F0Y2hlZD9cbiAgICAvLyBpZiBkZXByZWNpYXRpb24gaGFzICdkZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdCcgdmFsdWUgLSBzZXQgdmFsdWUgYW5kIGRpc2FibGUgJ2RhdGUnIGZvcm0gY29udHJvbFxuICAgIGlmIChkZXByZWNpYXRpb24uZGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QpIHtcbiAgICAgIHRoaXMuZ2V0KCdkYXRlJykuc2V0VmFsdWUoZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0LmVmZmVjdGl2ZURhdGUpO1xuICAgICAgdGhpcy5nZXQoJ2RhdGUnKS5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0KCdkYXRlJykuc2V0VmFsdWUoZGVwcmVjaWF0aW9uLmRhdGUpO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0KCdpc0Nsb3NlQmFsYW5jZUNvcnJlY3QnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpc1NlbGVjdGVkOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoaXNTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLmdldCgnY2xvc2VCYWxhbmNlJykuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ2Nsb3NlQmFsYW5jZScpLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './depreciation.form';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvZGVwcmVjaWF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlcHJlY2lhdGlvbi5mb3JtJztcbiJdfQ==
@@ -0,0 +1,12 @@
1
+ /**
2
+ * general validation rules
3
+ */
4
+ export var FormValidationsEnum;
5
+ (function (FormValidationsEnum) {
6
+ FormValidationsEnum[FormValidationsEnum["INPUT_MAX_LENGTH"] = 60] = "INPUT_MAX_LENGTH";
7
+ FormValidationsEnum[FormValidationsEnum["TEXT_MAX_LENGTH"] = 300] = "TEXT_MAX_LENGTH";
8
+ FormValidationsEnum[FormValidationsEnum["FILE_MAX_SIZE"] = 4194304] = "FILE_MAX_SIZE";
9
+ // @TODO move to file uploader component
10
+ FormValidationsEnum["FILE_ACCEPTED_TYPES"] = "Accepted file type: .doc .jpg .png .pdf .tiff .bmp .excel .csv";
11
+ })(FormValidationsEnum || (FormValidationsEnum = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9ucy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL2Zvcm0tdmFsaWRhdGlvbnMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLG1CQU1YO0FBTkQsV0FBWSxtQkFBbUI7SUFDN0Isc0ZBQXFCLENBQUE7SUFDckIscUZBQXFCLENBQUE7SUFDckIscUZBQXVCLENBQUE7SUFDdkIsd0NBQXdDO0lBQ3hDLDZHQUFzRixDQUFBO0FBQ3hGLENBQUMsRUFOVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBTTlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBnZW5lcmFsIHZhbGlkYXRpb24gcnVsZXNcbiAqL1xuZXhwb3J0IGVudW0gRm9ybVZhbGlkYXRpb25zRW51bSB7XG4gIElOUFVUX01BWF9MRU5HVEggPSA2MCxcbiAgVEVYVF9NQVhfTEVOR1RIID0gMzAwLFxuICBGSUxFX01BWF9TSVpFID0gNDE5NDMwNCxcbiAgLy8gQFRPRE8gbW92ZSB0byBmaWxlIHVwbG9hZGVyIGNvbXBvbmVudFxuICBGSUxFX0FDQ0VQVEVEX1RZUEVTID0gJ0FjY2VwdGVkIGZpbGUgdHlwZTogLmRvYyAuanBnIC5wbmcgLnBkZiAudGlmZiAuYm1wIC5leGNlbCAuY3N2Jyxcbn1cbiJdfQ==
@@ -17,4 +17,7 @@ export * from './property';
17
17
  export * from './report/my-tax';
18
18
  export * from './sole';
19
19
  export * from './vehicle';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLFFBQVEsQ0FBQztBQUV2QixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3QkFBd0IsQ0FBQztBQUd2QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxTQUFTLENBQUM7QUFFeEIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsUUFBUSxDQUFDO0FBRXZCLGNBQWMsWUFBWSxDQUFDO0FBRTNCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0LmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xvYW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2JhbmsvYmFuay1hY2NvdW50L2JhbmstYWNjb3VudC1hbGxvY2F0aW9uLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQtaW1wb3J0LmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQtYWRkLW1hbnVhbC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LXByb3BlcnRpZXMuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2JhbmsvYmFuay1hY2NvdW50L2JhbmstYWNjb3VudHMtaW1wb3J0LmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5rL2JhbmstbG9naW4uZm9ybSc7XG5cblxuZXhwb3J0ICogZnJvbSAnLi9jbGllbnQvY2xpZW50LWluY29tZS10eXBlcy5mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2dpbi9sb2dpbi5mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi9waG9uZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXIvcmVnaXN0ZXItY2xpZW50LmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci9yZWdpc3Rlci1maXJtLmZvcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcblxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQvbXktdGF4JztcblxuZXhwb3J0ICogZnJvbSAnLi9zb2xlJztcbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZSc7XG4iXX0=
20
+ export * from './form-validations.enum';
21
+ export * from './transaction';
22
+ export * from './depreciation';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLFFBQVEsQ0FBQztBQUV2QixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3QkFBd0IsQ0FBQztBQUd2QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxTQUFTLENBQUM7QUFFeEIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMsUUFBUSxDQUFDO0FBRXZCLGNBQWMsWUFBWSxDQUFDO0FBRTNCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFFMUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdC5mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2FuJztcblxuZXhwb3J0ICogZnJvbSAnLi9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQtYWxsb2NhdGlvbi5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LWltcG9ydC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LWFkZC1tYW51YWwuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2JhbmsvYmFuay1hY2NvdW50L2JhbmstYWNjb3VudC1wcm9wZXJ0aWVzLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnRzLWltcG9ydC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vYmFuay9iYW5rLWxvZ2luLmZvcm0nO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMuZm9ybSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbG9naW4vbG9naW4uZm9ybSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcGhvbmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyL3JlZ2lzdGVyLWNsaWVudC5mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXIvcmVnaXN0ZXItZmlybS5mb3JtJztcblxuZXhwb3J0ICogZnJvbSAnLi91c2VyJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0L215LXRheCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZlaGljbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tdmFsaWRhdGlvbnMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwcmVjaWF0aW9uJztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './transaction-base.form';
2
+ export * from './transaction.form';
3
+ export * from './work-income.form';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZm9ybXMvdHJhbnNhY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uLWJhc2UuZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uLmZvcm0nO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrLWluY29tZS5mb3JtJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export var MessagesEnum;
2
+ (function (MessagesEnum) {
3
+ MessagesEnum["DATE_VALIDATION_ERROR"] = "The transaction date is before the ownership date, please update the date to confirm";
4
+ })(MessagesEnum || (MessagesEnum = {}));
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi9tZXNzYWdlcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFlBRVg7QUFGRCxXQUFZLFlBQVk7SUFDdEIsOEhBQThHLENBQUE7QUFDaEgsQ0FBQyxFQUZXLFlBQVksS0FBWixZQUFZLFFBRXZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWVzc2FnZXNFbnVtIHtcbiAgREFURV9WQUxJREFUSU9OX0VSUk9SID0gJ1RoZSB0cmFuc2FjdGlvbiBkYXRlIGlzIGJlZm9yZSB0aGUgb3duZXJzaGlwIGRhdGUsIHBsZWFzZSB1cGRhdGUgdGhlIGRhdGUgdG8gY29uZmlybSdcbn1cbiJdfQ==
@@ -0,0 +1,105 @@
1
+ import { FormControl, Validators } from '@angular/forms';
2
+ import { currentFinYearValidator, FileValidator, autocompleteValidator } from '../../validators';
3
+ import { AbstractForm } from '../abstract.form';
4
+ import { ChartAccountsListEnum } from '../../db/Enums/chart-accounts-list.enum';
5
+ import { ChartAccounts, DOCUMENT_FILE_TYPES } from '../../models';
6
+ import { FormValidationsEnum } from '../form-validations.enum';
7
+ /**
8
+ * @TODO refactor, move specific fields like property in separated forms
9
+ * @TODO remove useless getters
10
+ */
11
+ export class TransactionBaseForm extends AbstractForm {
12
+ constructor(transaction, registeredForGst, controls = {}) {
13
+ var _a;
14
+ super(Object.assign({
15
+ chartAccounts: new FormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
16
+ claimPercent: new FormControl({ value: transaction.claimPercent, disabled: true }, [Validators.required, Validators.min(0), Validators.max(100)]),
17
+ amount: new FormControl(transaction.amount, Validators.required),
18
+ amountWithGST: new FormControl(transaction.amountWithGst, Validators.required),
19
+ isGST: new FormControl({ value: transaction.isGST, disabled: !((_a = transaction.chartAccounts) === null || _a === void 0 ? void 0 : _a.isGST) || !registeredForGst }),
20
+ gstAmount: new FormControl({ value: transaction.gstAmount, disabled: true }, Validators.required),
21
+ date: new FormControl(transaction.date, [Validators.required, currentFinYearValidator()]),
22
+ description: new FormControl(transaction.description, Validators.maxLength(FormValidationsEnum.TEXT_MAX_LENGTH)),
23
+ // @TODO Alex: refactor (TT-1996)
24
+ file: new FormControl(transaction['receipt'], [
25
+ FileValidator.fileExtensions(DOCUMENT_FILE_TYPES.all), FileValidator.fileMaxSize(+FormValidationsEnum.FILE_MAX_SIZE)
26
+ ]),
27
+ property: new FormControl({ value: transaction.property, disabled: transaction.chartAccounts }),
28
+ }, controls), transaction);
29
+ this.registeredForGst = registeredForGst;
30
+ this.watchChartAccounts();
31
+ if (this.isGstApplicable()) {
32
+ this.watchAmountWithGST();
33
+ this.watchIsGst();
34
+ }
35
+ }
36
+ watchIsGst() {
37
+ this.get('isGST').valueChanges.subscribe((isGST) => {
38
+ this.updateAmount();
39
+ this.updateGstAmount();
40
+ });
41
+ }
42
+ watchAmountWithGST() {
43
+ this.get('amountWithGST').valueChanges.subscribe(() => {
44
+ this.updateAmount();
45
+ this.updateGstAmount();
46
+ });
47
+ }
48
+ watchChartAccounts() {
49
+ this.get('chartAccounts').valueChanges.subscribe((value) => {
50
+ if (!(value instanceof ChartAccounts)) {
51
+ return;
52
+ }
53
+ // recalculate claim percent for selected chart accounts
54
+ this.updateClaimPercent(value);
55
+ if (!this.isGstApplicable()) {
56
+ return;
57
+ }
58
+ // update gst if applicable
59
+ if (value.isGST) {
60
+ this.get('isGST').enable();
61
+ this.get('isGST').patchValue(true);
62
+ }
63
+ else {
64
+ this.get('isGST').patchValue(false);
65
+ this.get('isGST').disable();
66
+ }
67
+ });
68
+ }
69
+ updateGstAmount() {
70
+ this.get('gstAmount').patchValue((this.amountWithGST - this.amount).toFixed(2));
71
+ }
72
+ updateAmount() {
73
+ this.get('amount').patchValue(this.isGST ? (this.amountWithGST / ChartAccounts.GSTCoefficient).toFixed(2) : this.amountWithGST);
74
+ }
75
+ isGstApplicable() {
76
+ return !!this.registeredForGst && !!this.model.business;
77
+ }
78
+ get amount() {
79
+ return this.get('amount').value;
80
+ }
81
+ get amountWithGST() {
82
+ return this.get('amountWithGST').value;
83
+ }
84
+ get isGST() {
85
+ return this.get('isGST').value;
86
+ }
87
+ /**
88
+ * propertyClaimPercent for propertyExpense (except platform fees, which already include claimPercent),
89
+ * taxablePercent for others
90
+ * can be adjusted only for property/sole expenses
91
+ */
92
+ updateClaimPercent(chartAccounts) {
93
+ var _a;
94
+ if (chartAccounts.isClaimPercentEditable()) {
95
+ this.get('claimPercent').enable();
96
+ }
97
+ // property claim (ownership% x shared%) for property expenses, taxable percent for others
98
+ let claimPercent = chartAccounts.taxablePercent;
99
+ if (chartAccounts.isPropertyExpense() && chartAccounts.id !== ChartAccountsListEnum.PLATFORM_FEES) {
100
+ claimPercent *= (_a = this.value.property) === null || _a === void 0 ? void 0 : _a.claimCoefficient;
101
+ }
102
+ this.get('claimPercent').setValue(claimPercent);
103
+ }
104
+ }
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWJhc2UuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtRCxTQUFRLFlBQW1CO0lBR3pGLFlBQVksV0FBa0IsRUFBRSxnQkFBeUIsRUFBRSxXQUE2QyxFQUFFOztRQUN4RyxLQUFLLENBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNaLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7WUFDekcsWUFBWSxFQUFFLElBQUksV0FBVyxDQUMzQixFQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsRUFDakQsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMs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QUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBWSxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLGFBQTRCOztRQUNyRCxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbkM7UUFFRCwwRkFBMEY7UUFDMUYsSUFBSSxZQUFZLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQztRQUNoRCxJQUFJLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUsscUJBQXFCLENBQUMsYUFBYSxFQUFFO1lBQ2pHLFlBQVksSUFBSSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSwwQ0FBRSxnQkFBZ0IsQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY3VycmVudEZpblllYXJWYWxpZGF0b3IsIEZpbGVWYWxpZGF0b3IsIGF1dG9jb21wbGV0ZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYmFzZSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cywgRE9DVU1FTlRfRklMRV9UWVBFUyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbnNFbnVtIH0gZnJvbSAnLi4vZm9ybS12YWxpZGF0aW9ucy5lbnVtJztcblxuLyoqXG4gKiBAVE9ETyByZWZhY3RvciwgbW92ZSBzcGVjaWZpYyBmaWVsZHMgbGlrZSBwcm9wZXJ0eSBpbiBzZXBhcmF0ZWQgZm9ybXNcbiAqIEBUT0RPIHJlbW92ZSB1c2VsZXNzIGdldHRlcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQmFzZUZvcm08TW9kZWwgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2U+IGV4dGVuZHMgQWJzdHJhY3RGb3JtPE1vZGVsPiB7XG4gIHJlZ2lzdGVyZWRGb3JHc3Q6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IodHJhbnNhY3Rpb246IE1vZGVsLCByZWdpc3RlcmVkRm9yR3N0OiBib29sZWFuLCBjb250cm9sczoge1trZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbH0gPSB7fSkge1xuICAgIHN1cGVyKFxuICAgICAgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIGNoYXJ0QWNjb3VudHM6IG5ldyBGb3JtQ29udHJvbCh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICAgICAgY2xhaW1QZXJjZW50OiBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAge3ZhbHVlOiB0cmFuc2FjdGlvbi5jbGFpbVBlcmNlbnQsIGRpc2FibGVkOiB0cnVlfSxcbiAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXG4gICAgICAgICksXG4gICAgICAgIGFtb3VudDogbmV3IEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmFtb3VudCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIGFtb3VudFdpdGhHU1Q6IG5ldyBGb3JtQ29udHJvbCh0cmFuc2FjdGlvbi5hbW91bnRXaXRoR3N0LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgaXNHU1Q6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0cmFuc2FjdGlvbi5pc0dTVCwgZGlzYWJsZWQ6ICF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzPy5pc0dTVCB8fCAhcmVnaXN0ZXJlZEZvckdzdCB9KSxcbiAgICAgICAgZ3N0QW1vdW50OiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdHJhbnNhY3Rpb24uZ3N0QW1vdW50LCBkaXNhYmxlZDogdHJ1ZSB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZGF0ZTogbmV3IEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmRhdGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBjdXJyZW50RmluWWVhclZhbGlkYXRvcigpXSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uZGVzY3JpcHRpb24sIFZhbGlkYXRvcnMubWF4TGVuZ3RoKEZvcm1WYWxpZGF0aW9uc0VudW0uVEVYVF9NQVhfTEVOR1RIKSksXG4gICAgICAgIC8vIEBUT0RPIEFsZXg6IHJlZmFjdG9yIChUVC0xOTk2KVxuICAgICAgICBmaWxlOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb25bJ3JlY2VpcHQnXSwgW1xuICAgICAgICAgIEZpbGVWYWxpZGF0b3IuZmlsZUV4dGVuc2lvbnMoRE9DVU1FTlRfRklMRV9UWVBFUy5hbGwpLCBGaWxlVmFsaWRhdG9yLmZpbGVNYXhTaXplKCtGb3JtVmFsaWRhdGlvbnNFbnVtLkZJTEVfTUFYX1NJWkUpXG4gICAgICAgIF0pLFxuICAgICAgICBwcm9wZXJ0eTogbmV3IEZvcm1Db250cm9sKHt2YWx1ZTogdHJhbnNhY3Rpb24ucHJvcGVydHksIGRpc2FibGVkOiB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzfSksXG4gICAgICB9LCBjb250cm9scyksXG4gICAgICB0cmFuc2FjdGlvblxuICAgICk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyZWRGb3JHc3QgPSByZWdpc3RlcmVkRm9yR3N0O1xuICAgIHRoaXMud2F0Y2hDaGFydEFjY291bnRzKCk7XG4gICAgaWYgKHRoaXMuaXNHc3RBcHBsaWNhYmxlKCkpIHtcbiAgICAgIHRoaXMud2F0Y2hBbW91bnRXaXRoR1NUKCk7XG4gICAgICB0aGlzLndhdGNoSXNHc3QoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHdhdGNoSXNHc3QoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ2lzR1NUJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoaXNHU1Q6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQW1vdW50KCk7XG4gICAgICB0aGlzLnVwZGF0ZUdzdEFtb3VudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEFtb3VudFdpdGhHU1QoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ2Ftb3VudFdpdGhHU1QnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQW1vdW50KCk7XG4gICAgICB0aGlzLnVwZGF0ZUdzdEFtb3VudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgd2F0Y2hDaGFydEFjY291bnRzKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU/OiBDaGFydEFjY291bnRzKSA9PiB7XG4gICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIENoYXJ0QWNjb3VudHMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gcmVjYWxjdWxhdGUgY2xhaW0gcGVyY2VudCBmb3Igc2VsZWN0ZWQgY2hhcnQgYWNjb3VudHNcbiAgICAgIHRoaXMudXBkYXRlQ2xhaW1QZXJjZW50KHZhbHVlKTtcbiAgICAgIGlmICghdGhpcy5pc0dzdEFwcGxpY2FibGUoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICAvLyB1cGRhdGUgZ3N0IGlmIGFwcGxpY2FibGVcbiAgICAgIGlmICh2YWx1ZS5pc0dTVCkge1xuICAgICAgICB0aGlzLmdldCgnaXNHU1QnKS5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5nZXQoJ2lzR1NUJykucGF0Y2hWYWx1ZSh0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0KCdpc0dTVCcpLnBhdGNoVmFsdWUoZmFsc2UpO1xuICAgICAgICB0aGlzLmdldCgnaXNHU1QnKS5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUdzdEFtb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgnZ3N0QW1vdW50JykucGF0Y2hWYWx1ZShcbiAgICAgICh0aGlzLmFtb3VudFdpdGhHU1QgLSB0aGlzLmFtb3VudCkudG9GaXhlZCgyKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUFtb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgnYW1vdW50JykucGF0Y2hWYWx1ZShcbiAgICAgIHRoaXMuaXNHU1QgPyAodGhpcy5hbW91bnRXaXRoR1NUIC8gQ2hhcnRBY2NvdW50cy5HU1RDb2VmZmljaWVudCkudG9GaXhlZCgyKSA6IHRoaXMuYW1vdW50V2l0aEdTVFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzR3N0QXBwbGljYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlZ2lzdGVyZWRGb3JHc3QgJiYgISF0aGlzLm1vZGVsLmJ1c2luZXNzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdhbW91bnQnKS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGFtb3VudFdpdGhHU1QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ2Ftb3VudFdpdGhHU1QnKS52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzR1NUKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdpc0dTVCcpLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIHByb3BlcnR5Q2xhaW1QZXJjZW50IGZvciBwcm9wZXJ0eUV4cGVuc2UgKGV4Y2VwdCBwbGF0Zm9ybSBmZWVzLCB3aGljaCBhbHJlYWR5IGluY2x1ZGUgY2xhaW1QZXJjZW50KSxcbiAgICogdGF4YWJsZVBlcmNlbnQgZm9yIG90aGVyc1xuICAgKiBjYW4gYmUgYWRqdXN0ZWQgb25seSBmb3IgcHJvcGVydHkvc29sZSBleHBlbnNlc1xuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDbGFpbVBlcmNlbnQoY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cyk6IHZvaWQge1xuICAgIGlmIChjaGFydEFjY291bnRzLmlzQ2xhaW1QZXJjZW50RWRpdGFibGUoKSkge1xuICAgICAgdGhpcy5nZXQoJ2NsYWltUGVyY2VudCcpLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIHByb3BlcnR5IGNsYWltIChvd25lcnNoaXAlIHggc2hhcmVkJSkgZm9yIHByb3BlcnR5IGV4cGVuc2VzLCB0YXhhYmxlIHBlcmNlbnQgZm9yIG90aGVyc1xuICAgIGxldCBjbGFpbVBlcmNlbnQgPSBjaGFydEFjY291bnRzLnRheGFibGVQZXJjZW50O1xuICAgIGlmIChjaGFydEFjY291bnRzLmlzUHJvcGVydHlFeHBlbnNlKCkgJiYgY2hhcnRBY2NvdW50cy5pZCAhPT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLlBMQVRGT1JNX0ZFRVMpIHtcbiAgICAgIGNsYWltUGVyY2VudCAqPSB0aGlzLnZhbHVlLnByb3BlcnR5Py5jbGFpbUNvZWZmaWNpZW50O1xuICAgIH1cbiAgICB0aGlzLmdldCgnY2xhaW1QZXJjZW50Jykuc2V0VmFsdWUoY2xhaW1QZXJjZW50KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { TransactionBaseForm } from './transaction-base.form';
2
+ import { minDateValidator } from '../../validators';
3
+ import { MessagesEnum } from './messages.enum';
4
+ export class TransactionForm extends TransactionBaseForm {
5
+ constructor(transaction, registeredForGst, controls = {}) {
6
+ super(transaction, registeredForGst, controls);
7
+ if (transaction.property) {
8
+ this.get('date').addValidators(minDateValidator(transaction.property.myShare.fromDate, MessagesEnum.DATE_VALIDATION_ERROR));
9
+ }
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBZ0M7SUFDbkUsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQTZDLEVBQUU7UUFDOUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUvQyxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQzVCLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FDNUYsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CYXNlRm9ybSB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYmFzZS5mb3JtJztcbmltcG9ydCB7IG1pbkRhdGVWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IE1lc3NhZ2VzRW51bSB9IGZyb20gJy4vbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Gb3JtIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlRm9ybTxUcmFuc2FjdGlvbj4ge1xuICBjb25zdHJ1Y3Rvcih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3Q6IGJvb2xlYW4sIGNvbnRyb2xzOiB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sfSA9IHt9KSB7XG4gICAgc3VwZXIodHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3QsIGNvbnRyb2xzKTtcblxuICAgIGlmICh0cmFuc2FjdGlvbi5wcm9wZXJ0eSkge1xuICAgICAgdGhpcy5nZXQoJ2RhdGUnKS5hZGRWYWxpZGF0b3JzKFxuICAgICAgICBtaW5EYXRlVmFsaWRhdG9yKHRyYW5zYWN0aW9uLnByb3BlcnR5Lm15U2hhcmUuZnJvbURhdGUsIE1lc3NhZ2VzRW51bS5EQVRFX1ZBTElEQVRJT05fRVJST1IpXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,119 @@
1
+ import { TransactionForm } from './transaction.form';
2
+ import { ChartAccounts, Transaction } from '../../models';
3
+ import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
4
+ import { IncomeSource } from '../../models/income-source/income-source';
5
+ import { plainToClass } from 'class-transformer';
6
+ import { autocompleteValidator } from '../../validators';
7
+ export class WorkIncomeForm extends TransactionForm {
8
+ constructor(transaction, registeredForGst, allocations) {
9
+ var _a;
10
+ super(transaction, registeredForGst, {
11
+ // @TODO move to TransactionForm, since other transactions could have it too
12
+ transactions: new FormArray([]),
13
+ metadata: new FormArray((transaction.metadata || []).map((transactionMetadata) => {
14
+ return new FormGroup({
15
+ value: new FormControl(transactionMetadata.value),
16
+ chartAccountsMetadata: new FormControl(transactionMetadata.chartAccountsMetadata)
17
+ });
18
+ })),
19
+ tax: new FormControl({
20
+ value: transaction.tax,
21
+ disabled: !transaction.chartAccounts || transaction.chartAccounts.isNRAS(),
22
+ }, Validators.required),
23
+ incomeSource: new FormControl(transaction.incomeSource, [Validators.required, autocompleteValidator()]),
24
+ });
25
+ // @TODO vik move to TransactionForm
26
+ if (allocations.length) {
27
+ this.get('amount').disable();
28
+ this.get('date').disable();
29
+ }
30
+ // salary adjustments (like tips)
31
+ transaction.transactions.map((transaction) => {
32
+ this.addTransactionControl(transaction);
33
+ });
34
+ if (!((_a = transaction.chartAccounts) === null || _a === void 0 ? void 0 : _a.isSalary())) {
35
+ this.get('transactions').disable();
36
+ }
37
+ this.listenEvents();
38
+ }
39
+ listenEvents() {
40
+ this.watchIncomeSource();
41
+ this.watchChartAccounts();
42
+ }
43
+ watchIncomeSource() {
44
+ this.get('incomeSource').valueChanges.subscribe((incomeSource) => {
45
+ // prefill salary tax with its income source forecast
46
+ if (incomeSource instanceof IncomeSource && incomeSource.isSalaryIncome() && !this.get('tax').value) {
47
+ this.get('tax').setValue(incomeSource.salaryForecasts[0].taxWithheld);
48
+ }
49
+ });
50
+ }
51
+ watchChartAccounts() {
52
+ super.watchChartAccounts();
53
+ this.get('chartAccounts').valueChanges.subscribe((value) => {
54
+ // some fields depend on ChartAccounts and can't be filled until it's selected
55
+ if (!(value instanceof ChartAccounts)) {
56
+ this.get('tax').disable();
57
+ this.get('transactions').disable();
58
+ return;
59
+ }
60
+ this.buildMetadataForm();
61
+ if (value.isNRAS()) {
62
+ this.get('tax').disable();
63
+ }
64
+ else {
65
+ this.get('tax').enable();
66
+ }
67
+ if (value.isSalary()) {
68
+ this.get('transactions').enable();
69
+ }
70
+ else {
71
+ this.get('transactions').disable();
72
+ }
73
+ });
74
+ }
75
+ /**
76
+ * depends on chartAccounts the form could include different extra fields
77
+ */
78
+ buildMetadataForm() {
79
+ // Remove all controls in the FormArray before pushing
80
+ this.get('metadata').clear();
81
+ // create form controls for each metadata object from selected chart accounts
82
+ (this.get('chartAccounts').value.metadata).forEach((chartAccountsMetadata) => {
83
+ this.get('metadata').push(new FormGroup({
84
+ value: new FormControl(chartAccountsMetadata.isSharePercentage() ? 100 : 0),
85
+ chartAccountsMetadata: new FormControl(chartAccountsMetadata),
86
+ }));
87
+ });
88
+ }
89
+ addTransactionControl(transaction = plainToClass(Transaction, {})) {
90
+ const formGroup = new FormGroup({
91
+ id: new FormControl(transaction.id),
92
+ chartAccounts: new FormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
93
+ amount: new FormControl(Math.abs(transaction.amount), [Validators.required]),
94
+ });
95
+ this.get('transactions').push(formGroup);
96
+ }
97
+ removeTransactionControl(index) {
98
+ this.get('transactions').removeAt(index);
99
+ }
100
+ /**
101
+ * salary transactions might include adjustments (child transactions), like tips or donation.
102
+ * Adjustments inherit most of the fields from parent transaction
103
+ */
104
+ buildTransactions() {
105
+ const transaction = plainToClass(Transaction, this.value);
106
+ return this.get('transactions').value.map((childTransaction) => Object.assign({
107
+ description: transaction.chartAccounts.name,
108
+ date: transaction.date,
109
+ claimPercent: transaction.claimPercent,
110
+ source: transaction.source,
111
+ tax: transaction.tax,
112
+ type: transaction.type
113
+ }, this.model.transactions.find((transaction) => transaction.id === childTransaction['id']) || {}, childTransaction));
114
+ }
115
+ submit(data = {}) {
116
+ return super.submit(Object.assign(data, { transactions: this.buildTransactions() }));
117
+ }
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pbmNvbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi93b3JrLWluY29tZS5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsYUFBYSxFQUViLFdBQVcsRUFHWixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGVBQWU7SUFDakQsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQW9DOztRQUNuRyxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFO1lBQ25DLDRFQUE0RTtZQUM1RSxZQUFZLEVBQUUsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxJQUFJLFNBQVMsQ0FDckIsQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLG1CQUF3QyxFQUFhLEVBQUU7Z0JBQ3ZGLE9BQU8sSUFBSSxTQUFTLENBQUM7b0JBQ25CLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7b0JBQ2pELHFCQUFxQixFQUFFLElBQUksV0FBVyxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDO2lCQUNsRixDQUFDLENBQUM7WUFD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aUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNhY3Rpb25Gb3JtfSBmcm9tICcuL3RyYW5zYWN0aW9uLmZvcm0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50cyxcbiAgQ2hhcnRBY2NvdW50c01ldGFkYXRhLFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uLFxuICBUcmFuc2FjdGlvbk1ldGFkYXRhXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Zvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtJRXZlbnRMaXN0ZW5lcn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHtJbmNvbWVTb3VyY2V9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHtwbGFpblRvQ2xhc3N9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7YXV0b2NvbXBsZXRlVmFsaWRhdG9yfSBmcm9tICcuLi8uLi92YWxpZGF0b3JzJztcblxuZXhwb3J0IGNsYXNzIFdvcmtJbmNvbWVGb3JtIGV4dGVuZHMgVHJhbnNhY3Rpb25Gb3JtIGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBjb25zdHJ1Y3Rvcih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3Q6IGJvb2xlYW4sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSkge1xuICAgIHN1cGVyKHRyYW5zYWN0aW9uLCByZWdpc3RlcmVkRm9yR3N0LCB7XG4gICAgICAvLyBAVE9ETyBtb3ZlIHRvIFRyYW5zYWN0aW9uRm9ybSwgc2luY2Ugb3RoZXIgdHJhbnNhY3Rpb25zIGNvdWxkIGhhdmUgaXQgdG9vXG4gICAgICB0cmFuc2FjdGlvbnM6IG5ldyBGb3JtQXJyYXkoW10pLFxuICAgICAgbWV0YWRhdGE6IG5ldyBGb3JtQXJyYXkoXG4gICAgICAgICh0cmFuc2FjdGlvbi5tZXRhZGF0YSB8fCBbXSkubWFwKCh0cmFuc2FjdGlvbk1ldGFkYXRhOiBUcmFuc2FjdGlvbk1ldGFkYXRhKTogRm9ybUdyb3VwID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKHRyYW5zYWN0aW9uTWV0YWRhdGEudmFsdWUpLFxuICAgICAgICAgICAgY2hhcnRBY2NvdW50c01ldGFkYXRhOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb25NZXRhZGF0YS5jaGFydEFjY291bnRzTWV0YWRhdGEpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdGF4OiBuZXcgRm9ybUNvbnRyb2woe1xuICAgICAgICB2YWx1ZTogdHJhbnNhY3Rpb24udGF4LFxuICAgICAgICBkaXNhYmxlZDogIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMgfHwgdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5pc05SQVMoKSxcbiAgICAgIH0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgaW5jb21lU291cmNlOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICB9KTtcblxuICAgIC8vIEBUT0RPIHZpayBtb3ZlIHRvIFRyYW5zYWN0aW9uRm9ybVxuICAgIGlmIChhbGxvY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZ2V0KCdhbW91bnQnKS5kaXNhYmxlKCk7XG4gICAgICB0aGlzLmdldCgnZGF0ZScpLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBzYWxhcnkgYWRqdXN0bWVudHMgKGxpa2UgdGlwcylcbiAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMubWFwKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuYWRkVHJhbnNhY3Rpb25Db250cm9sKHRyYW5zYWN0aW9uKTtcbiAgICB9KTtcbiAgICBpZiAoIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHM/LmlzU2FsYXJ5KCkpIHtcbiAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbnMnKS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLndhdGNoSW5jb21lU291cmNlKCk7XG4gICAgdGhpcy53YXRjaENoYXJ0QWNjb3VudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hJbmNvbWVTb3VyY2UoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ2luY29tZVNvdXJjZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGluY29tZVNvdXJjZTogc3RyaW5nIHwgSW5jb21lU291cmNlKTogdm9pZCA9PiB7XG4gICAgICAvLyBwcmVmaWxsIHNhbGFyeSB0YXggd2l0aCBpdHMgaW5jb21lIHNvdXJjZSBmb3JlY2FzdFxuICAgICAgaWYgKGluY29tZVNvdXJjZSBpbnN0YW5jZW9mIEluY29tZVNvdXJjZSAmJiBpbmNvbWVTb3VyY2UuaXNTYWxhcnlJbmNvbWUoKSAmJiAhdGhpcy5nZXQoJ3RheCcpLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5zZXRWYWx1ZShpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdLnRheFdpdGhoZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHdhdGNoQ2hhcnRBY2NvdW50cygpOiB2b2lkIHtcbiAgICBzdXBlci53YXRjaENoYXJ0QWNjb3VudHMoKTtcbiAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlPzogQ2hhcnRBY2NvdW50cykgPT4ge1xuICAgICAgLy8gc29tZSBmaWVsZHMgZGVwZW5kIG9uIENoYXJ0QWNjb3VudHMgYW5kIGNhbid0IGJlIGZpbGxlZCB1bnRpbCBpdCdzIHNlbGVjdGVkXG4gICAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIENoYXJ0QWNjb3VudHMpKSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbnMnKS5kaXNhYmxlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5idWlsZE1ldGFkYXRhRm9ybSgpO1xuXG4gICAgICBpZiAodmFsdWUuaXNOUkFTKCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlLmlzU2FsYXJ5KCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMgdGhlIGZvcm0gY291bGQgaW5jbHVkZSBkaWZmZXJlbnQgZXh0cmEgZmllbGRzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkTWV0YWRhdGFGb3JtKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSBhbGwgY29udHJvbHMgaW4gdGhlIEZvcm1BcnJheSBiZWZvcmUgcHVzaGluZ1xuICAgICh0aGlzLmdldCgnbWV0YWRhdGEnKSBhcyBGb3JtQXJyYXkpLmNsZWFyKCk7XG5cbiAgICAvLyBjcmVhdGUgZm9ybSBjb250cm9scyBmb3IgZWFjaCBtZXRhZGF0YSBvYmplY3QgZnJvbSBzZWxlY3RlZCBjaGFydCBhY2NvdW50c1xuICAgICh0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlLm1ldGFkYXRhKS5mb3JFYWNoKChjaGFydEFjY291bnRzTWV0YWRhdGE6IENoYXJ0QWNjb3VudHNNZXRhZGF0YSk6IHZvaWQgPT4ge1xuICAgICAgKHRoaXMuZ2V0KCdtZXRhZGF0YScpIGFzIEZvcm1BcnJheSkucHVzaChcbiAgICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbChjaGFydEFjY291bnRzTWV0YWRhdGEuaXNTaGFyZVBlcmNlbnRhZ2UoKSA/IDEwMCA6IDApLFxuICAgICAgICAgIGNoYXJ0QWNjb3VudHNNZXRhZGF0YTogbmV3IEZvcm1Db250cm9sKGNoYXJ0QWNjb3VudHNNZXRhZGF0YSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkVHJhbnNhY3Rpb25Db250cm9sKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwge30pKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGlkOiBuZXcgRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaWQpLFxuICAgICAgY2hhcnRBY2NvdW50czogbmV3IEZvcm1Db250cm9sKHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBhdXRvY29tcGxldGVWYWxpZGF0b3IoKV0pLFxuICAgICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2woTWF0aC5hYnModHJhbnNhY3Rpb24uYW1vdW50KSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICB9KTtcblxuICAgICh0aGlzLmdldCgndHJhbnNhY3Rpb25zJykgYXMgRm9ybUFycmF5KS5wdXNoKGZvcm1Hcm91cCk7XG4gIH1cblxuICByZW1vdmVUcmFuc2FjdGlvbkNvbnRyb2woaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICh0aGlzLmdldCgndHJhbnNhY3Rpb25zJykgYXMgRm9ybUFycmF5KS5yZW1vdmVBdChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogc2FsYXJ5IHRyYW5zYWN0aW9ucyBtaWdodCBpbmNsdWRlIGFkanVzdG1lbnRzIChjaGlsZCB0cmFuc2FjdGlvbnMpLCBsaWtlIHRpcHMgb3IgZG9uYXRpb24uXG4gICAqIEFkanVzdG1lbnRzIGluaGVyaXQgbW9zdCBvZiB0aGUgZmllbGRzIGZyb20gcGFyZW50IHRyYW5zYWN0aW9uXG4gICAqL1xuICBidWlsZFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbltdIHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgdGhpcy52YWx1ZSk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLnZhbHVlLm1hcCgoY2hpbGRUcmFuc2FjdGlvbjogb2JqZWN0KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBkZXNjcmlwdGlvbjogdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5uYW1lLFxuICAgICAgICBkYXRlOiB0cmFuc2FjdGlvbi5kYXRlLFxuICAgICAgICBjbGFpbVBlcmNlbnQ6IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudCxcbiAgICAgICAgc291cmNlOiB0cmFuc2FjdGlvbi5zb3VyY2UsXG4gICAgICAgIHRheDogdHJhbnNhY3Rpb24udGF4LFxuICAgICAgICB0eXBlOiB0cmFuc2FjdGlvbi50eXBlXG4gICAgICB9LFxuICAgICAgdGhpcy5tb2RlbC50cmFuc2FjdGlvbnMuZmluZCgodHJhbnNhY3Rpb24pID0+IHRyYW5zYWN0aW9uLmlkID09PSBjaGlsZFRyYW5zYWN0aW9uWydpZCddKSB8fCB7fSxcbiAgICAgIGNoaWxkVHJhbnNhY3Rpb24sXG4gICAgKSk7XG4gIH1cblxuICBzdWJtaXQoZGF0YTogb2JqZWN0ID0ge30pOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdChPYmplY3QuYXNzaWduKGRhdGEsIHsgdHJhbnNhY3Rpb25zOiB0aGlzLmJ1aWxkVHJhbnNhY3Rpb25zKCkgfSkpO1xuICB9XG59XG4iXX0=
@@ -23,9 +23,9 @@ export class BasiqClientIdInterceptor {
23
23
  });
24
24
  }
25
25
  }
26
- BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
27
- BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor, decorators: [{
26
+ BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor, decorators: [{
29
29
  type: Injectable
30
30
  }], ctorParameters: function () { return [{ type: i1.UserService }]; } });
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtY2xpZW50LWlkLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9iYXNpcS1jbGllbnQtaWQuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFHekU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELCtEQUErRDtRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxhQUFhLENBQUMsRUFBRTtZQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUN4QyxRQUFRLENBQUMsQ0FBQyxhQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FDckYsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBNkIsRUFBRSxhQUFxQjtRQUNoRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBckJVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNpcVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGNoZWNrIGlmIGNsaWVudCdzIGJhc2lxIGlkIGV4aXN0IGFuZCByZXF1ZXN0IGl0IGlmIG5vdFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzaXFDbGllbnRJZEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAvLyBDaGVjayBpZiAnY2xpZW50IGlkJyBVUkwgc2VnbWVudCBjb250YWlucyBudWxsIGluc3RlYWQgb2YgaWRcbiAgICBpZiAoIXJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS91c2Vycy9udWxsYCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZUJhc2lxKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKChiYXNpcUNsaWVudElkOiBzdHJpbmcpID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkSWQocmVxdWVzdCwgYmFzaXFDbGllbnRJZCkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZElkKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBiYXNpcUNsaWVudElkOiBzdHJpbmcpOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoe1xuICAgICAgdXJsOiByZXF1ZXN0LnVybC5yZXBsYWNlKCdudWxsJywgYmFzaXFDbGllbnRJZClcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -27,9 +27,9 @@ export class BasiqTokenInterceptor {
27
27
  });
28
28
  }
29
29
  }
30
- BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor, deps: [{ token: i1.BasiqTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
31
- BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor, decorators: [{
30
+ BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor, deps: [{ token: i1.BasiqTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor, decorators: [{
33
33
  type: Injectable
34
34
  }], ctorParameters: function () { return [{ type: i1.BasiqTokenService }]; } });
35
35
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Jhc2lxLXRva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBRXpFOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTlDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN4RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLFFBQVEsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUE2QixFQUFFLEtBQWlCO1FBQy9ELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsYUFBYSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSzthQUN2QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQTFCVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uL21vZGVscy9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhc2lxVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGFkZHMgdXNlcidzIGJhc2lxIHRva2VuIHRvIGFueSBodHRwIHJlcXVlc3QgdG8gYmFzaXEgYXBpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCYXNpcVRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzaXFUb2tlblNlcnZpY2U6IEJhc2lxVG9rZW5TZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgLy8gc2tpcCBub24tYmFzaXEgcmVxdWVzdHNcbiAgICBpZiAoIXJlcXVlc3QudXJsLmluY2x1ZGVzKEJhc2lxU2VydmljZS5iYXNpcUFwaVVybCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNpcVRva2VuU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBCYXNpcVRva2VuKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcXVlc3QsIHRva2VuKSlcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9rZW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIHRva2VuOiBCYXNpcVRva2VuKTogSHR0cFJlcXVlc3Q8dW5rbm93bj4ge1xuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdG9rZW4udmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -32,9 +32,9 @@ export class CorelogicInterceptor {
32
32
  });
33
33
  }
34
34
  }
35
- CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: i1.CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
- CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor, decorators: [{
35
+ CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: i1.CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor, decorators: [{
38
38
  type: Injectable
39
39
  }], ctorParameters: function () { return [{ type: i1.CorelogicService }, { type: undefined, decorators: [{
40
40
  type: Inject,
@@ -31,9 +31,9 @@ export class FinancialYearInterceptor {
31
31
  return next.handle(clonedReq);
32
32
  }
33
33
  }
34
- FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
- FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
34
+ FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
39
39
  type: Inject,
@@ -10,9 +10,9 @@ import { BasiqClientIdInterceptor } from './basiq-client-id.interceptor';
10
10
  import * as i0 from "@angular/core";
11
11
  export class InterceptorsModule {
12
12
  }
13
- InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule });
15
- InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, providers: [
13
+ InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule });
15
+ InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, providers: [
16
16
  {
17
17
  provide: HTTP_INTERCEPTORS,
18
18
  useClass: CorelogicInterceptor,
@@ -50,7 +50,7 @@ InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
50
50
  multi: true
51
51
  }
52
52
  ] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, decorators: [{
54
54
  type: NgModule,
55
55
  args: [{
56
56
  providers: [
@@ -131,9 +131,9 @@ export class JwtInterceptor {
131
131
  });
132
132
  }
133
133
  }
134
- JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i2.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
135
- JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor, decorators: [{
134
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i2.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
135
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor, decorators: [{
137
137
  type: Injectable
138
138
  }], ctorParameters: function () { return [{ type: i1.JwtService }, { type: i2.AuthService }, { type: undefined, decorators: [{
139
139
  type: Inject,
@@ -24,9 +24,9 @@ export class PreloaderInterceptor {
24
24
  return Object.values(ENDPOINTS).find((endpoint) => endpoint.test(requestPath));
25
25
  }
26
26
  }
27
- PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor, deps: [{ token: i1.PreloaderService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor, decorators: [{
27
+ PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor, deps: [{ token: i1.PreloaderService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return [{ type: i1.PreloaderService }]; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9wcmVsb2FkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFL0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVKLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUIsUUFBUSxDQUFDLEdBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFlBQVksQ0FBQyxXQUFtQjtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7O2tIQXZCVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByZWxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVsb2FkZXIvcHJlbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICcuLi9tb2RlbHMvZW5kcG9pbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgRU5EUE9JTlRTIH0gZnJvbSAnLi4vbW9kZWxzL2VuZHBvaW50L2VuZHBvaW50cy5jb25zdCc7XG5cbi8qKlxuICogaW50ZXJjZXB0b3IgZm9yIHByZWxvYWRlciBoYW5kbGluZ1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJlbG9hZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJlbG9hZGVyU2VydmljZTogUHJlbG9hZGVyU2VydmljZVxuICApIHt9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgY29uc3QgZW5kcG9pbnQ6IEVuZHBvaW50ID0gdGhpcy5maW5kRW5kcG9pbnQoYCR7cmVxdWVzdC5tZXRob2R9ICR7cmVxdWVzdC51cmx9YCk7XG4gICAgaWYgKCEhZW5kcG9pbnQpIHtcbiAgICAgIHRoaXMucHJlbG9hZGVyU2VydmljZS5hZGQoZW5kcG9pbnQpO1xuXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMucHJlbG9hZGVyU2VydmljZS5kZWxldGUoZW5kcG9pbnQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbmRwb2ludChyZXF1ZXN0UGF0aDogc3RyaW5nKTogRW5kcG9pbnQge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEVORFBPSU5UUykuZmluZCgoZW5kcG9pbnQ6IEVuZHBvaW50KTogYm9vbGVhbiA9PiBlbmRwb2ludC50ZXN0KHJlcXVlc3RQYXRoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -18,7 +18,17 @@ export class UserSwitcherInterceptor {
18
18
  if (!req.url.includes(this.environment.api_uri) || !username) {
19
19
  return req;
20
20
  }
21
- const params = new HttpParams({ fromString: req.params.toString() }).set('_switch_user', username);
21
+ const params = new HttpParams({
22
+ fromString: req.params.toString(),
23
+ // custom encoder to encode '+' symbol and other (Problem: TT-2359)
24
+ // https://stackoverflow.com/questions/49438737/how-to-escape-angular-httpparams
25
+ encoder: {
26
+ encodeKey: (key) => encodeURIComponent(key),
27
+ encodeValue: (value) => encodeURIComponent(value),
28
+ decodeKey: (key) => decodeURIComponent(key),
29
+ decodeValue: (value) => decodeURIComponent(value)
30
+ }
31
+ }).set('_switch_user', username);
22
32
  return req.clone({ params });
23
33
  // @TODO move to header solution when backend can support it
24
34
  // return req.clone({
@@ -31,12 +41,12 @@ export class UserSwitcherInterceptor {
31
41
  return next.handle(this.switch(request, this.userSwitcherService.get()));
32
42
  }
33
43
  }
34
- UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor, deps: [{ token: i1.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
- UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor, decorators: [{
44
+ UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor, deps: [{ token: i1.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
45
+ UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor, decorators: [{
37
47
  type: Injectable
38
48
  }], ctorParameters: function () { return [{ type: i1.UserSwitcherService }, { type: undefined, decorators: [{
39
49
  type: Inject,
40
50
  args: ['environment']
41
51
  }] }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zd2l0Y2hlci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9pbnRlcmNlcHRvcnMvdXNlci1zd2l0Y2hlci1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBSVksVUFBVSxFQUM1QixNQUFNLHNCQUFzQixDQUFDOzs7QUFHOUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1MsbUJBQXdDLEVBQ2hCLFdBQWdCO1FBRHhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7SUFFakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQXFCLEVBQUUsUUFBZ0I7UUFDNUMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxNQUFNLE1BQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdHLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFFM0IsNERBQTREO1FBQzVELHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsbUNBQW1DO1FBQ25DLE1BQU07UUFDTixNQUFNO0lBQ1IsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7O3FIQTlCVSx1QkFBdUIscURBSXhCLGFBQWE7eUhBSlosdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7OzBCQUtOLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvciwgSHR0cFBhcmFtc1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBVc2VyU3dpdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXNlci91c2VyLXN3aXRjaGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEltcGVyc29uYXRlIGN1cnJlbnQncyB1c2VyIChtYW5hZ2VyKSB0byBjbGllbnQgZXhwZXJpZW5jZSB3aXRoIGhlbHAgb2Ygc3BlY2lhbCBoZWFkZXJcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVzZXJTd2l0Y2hlckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdXNlclN3aXRjaGVyU2VydmljZTogVXNlclN3aXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgdG9rZW4gaGVhZGVyIGlmIHJlcXVlc3QgdXJsIGNvbnRhaW4gVGF4VGFuayBBUEkgVVJMXG4gICAqL1xuICBzd2l0Y2gocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCB1c2VybmFtZTogc3RyaW5nKTogSHR0cFJlcXVlc3Q8YW55PiB7XG4gICAgLy8gc2tpcCB0aGlyZCBwYXJ0eSBhcGkgcmVxdWVzdHNcbiAgICBpZiAoIXJlcS51cmwuaW5jbHVkZXModGhpcy5lbnZpcm9ubWVudC5hcGlfdXJpKSB8fCAhdXNlcm5hbWUpIHtcbiAgICAgIHJldHVybiByZXE7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe2Zyb21TdHJpbmc6IHJlcS5wYXJhbXMudG9TdHJpbmcoKX0pLnNldCgnX3N3aXRjaF91c2VyJywgdXNlcm5hbWUpO1xuICAgIHJldHVybiByZXEuY2xvbmUoe3BhcmFtc30pO1xuXG4gICAgLy8gQFRPRE8gbW92ZSB0byBoZWFkZXIgc29sdXRpb24gd2hlbiBiYWNrZW5kIGNhbiBzdXBwb3J0IGl0XG4gICAgLy8gcmV0dXJuIHJlcS5jbG9uZSh7XG4gICAgLy8gICBzZXRIZWFkZXJzOiB7XG4gICAgLy8gICAgIEhUVFBfWF9TV0lUQ0hfVVNFUjogdXNlcm5hbWVcbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUodGhpcy5zd2l0Y2gocmVxdWVzdCwgdGhpcy51c2VyU3dpdGNoZXJTZXJ2aWNlLmdldCgpKSk7XG4gIH1cbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zd2l0Y2hlci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9pbnRlcmNlcHRvcnMvdXNlci1zd2l0Y2hlci1pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBSVksVUFBVSxFQUM1QixNQUFNLHNCQUFzQixDQUFDOzs7QUFHOUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1MsbUJBQXdDLEVBQ2hCLFdBQWdCO1FBRHhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7SUFFakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQXFCLEVBQUUsUUFBZ0I7UUFDNUMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVELE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxNQUFNLE1BQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQztZQUN4QyxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDakMsbUVBQW1FO1lBQ25FLGdGQUFnRjtZQUNoRixPQUFPLEVBQUU7Z0JBQ1AsU0FBUyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7Z0JBQ25ELFdBQVcsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO2dCQUN6RCxTQUFTLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztnQkFDbkQsV0FBVyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7YUFDMUQ7U0FDRixDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVqQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBRTNCLDREQUE0RDtRQUM1RCxxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLG1DQUFtQztRQUNuQyxNQUFNO1FBQ04sTUFBTTtJQUNSLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDOztxSEF6Q1UsdUJBQXVCLHFEQUl4QixhQUFhO3lIQUpaLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFLTixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEV2ZW50LFxuICBIdHRwSW50ZXJjZXB0b3IsIEh0dHBQYXJhbXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVXNlclN3aXRjaGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIvdXNlci1zd2l0Y2hlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbXBlcnNvbmF0ZSBjdXJyZW50J3MgdXNlciAobWFuYWdlcikgdG8gY2xpZW50IGV4cGVyaWVuY2Ugd2l0aCBoZWxwIG9mIHNwZWNpYWwgaGVhZGVyXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyU3dpdGNoZXJJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHVzZXJTd2l0Y2hlclNlcnZpY2U6IFVzZXJTd2l0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogYWRkIHRva2VuIGhlYWRlciBpZiByZXF1ZXN0IHVybCBjb250YWluIFRheFRhbmsgQVBJIFVSTFxuICAgKi9cbiAgc3dpdGNoKHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgdXNlcm5hbWU6IHN0cmluZyk6IEh0dHBSZXF1ZXN0PGFueT4ge1xuICAgIC8vIHNraXAgdGhpcmQgcGFydHkgYXBpIHJlcXVlc3RzXG4gICAgaWYgKCFyZXEudXJsLmluY2x1ZGVzKHRoaXMuZW52aXJvbm1lbnQuYXBpX3VyaSkgfHwgIXVzZXJuYW1lKSB7XG4gICAgICByZXR1cm4gcmVxO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21TdHJpbmc6IHJlcS5wYXJhbXMudG9TdHJpbmcoKSxcbiAgICAgIC8vIGN1c3RvbSBlbmNvZGVyIHRvIGVuY29kZSAnKycgc3ltYm9sIGFuZCBvdGhlciAoUHJvYmxlbTogVFQtMjM1OSlcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NDM4NzM3L2hvdy10by1lc2NhcGUtYW5ndWxhci1odHRwcGFyYW1zXG4gICAgICBlbmNvZGVyOiB7XG4gICAgICAgIGVuY29kZUtleTogKGtleTogc3RyaW5nKSA9PiBlbmNvZGVVUklDb21wb25lbnQoa2V5KSxcbiAgICAgICAgZW5jb2RlVmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgICAgICBkZWNvZGVLZXk6IChrZXk6IHN0cmluZykgPT4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSksXG4gICAgICAgIGRlY29kZVZhbHVlOiAodmFsdWU6IHN0cmluZykgPT4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKVxuICAgICAgfVxuICAgIH0pLnNldCgnX3N3aXRjaF91c2VyJywgdXNlcm5hbWUpO1xuXG4gICAgcmV0dXJuIHJlcS5jbG9uZSh7cGFyYW1zfSk7XG5cbiAgICAvLyBAVE9ETyBtb3ZlIHRvIGhlYWRlciBzb2x1dGlvbiB3aGVuIGJhY2tlbmQgY2FuIHN1cHBvcnQgaXRcbiAgICAvLyByZXR1cm4gcmVxLmNsb25lKHtcbiAgICAvLyAgIHNldEhlYWRlcnM6IHtcbiAgICAvLyAgICAgSFRUUF9YX1NXSVRDSF9VU0VSOiB1c2VybmFtZVxuICAgIC8vICAgfVxuICAgIC8vIH0pO1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLnN3aXRjaChyZXF1ZXN0LCB0aGlzLnVzZXJTd2l0Y2hlclNlcnZpY2UuZ2V0KCkpKTtcbiAgfVxufVxuIl19