taxtank-core 0.28.105 → 0.28.108

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 (699) hide show
  1. package/bundles/taxtank-core.umd.js +833 -382
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/chart-accounts.collection.js +2 -2
  4. package/esm2015/lib/collections/depreciation.collection.js +2 -2
  5. package/esm2015/lib/collections/transaction/transaction.collection.js +3 -3
  6. package/esm2015/lib/db/Enums/{chart-accounts-category.enum.js → chart-accounts/chart-accounts-category.enum.js} +1 -1
  7. package/esm2015/lib/db/Enums/{chart-accounts-etp.enum.js → chart-accounts/chart-accounts-etp.enum.js} +1 -1
  8. package/esm2015/lib/db/Enums/{chart-accounts-heading-list.enum.js → chart-accounts/chart-accounts-heading-list.enum.js} +1 -1
  9. package/esm2015/lib/db/Enums/{chart-accounts-heading-tax-deductible.enum.js → chart-accounts/chart-accounts-heading-tax-deductible.enum.js} +1 -1
  10. package/esm2015/lib/db/Enums/{chart-accounts-heading-taxable.enum.js → chart-accounts/chart-accounts-heading-taxable.enum.js} +1 -1
  11. package/esm2015/lib/db/Enums/{chart-accounts-heading-vehicle-list.enum.js → chart-accounts/chart-accounts-heading-vehicle-list.enum.js} +1 -1
  12. package/esm2015/lib/db/Enums/{chart-accounts-list.enum.js → chart-accounts/chart-accounts-list.enum.js} +1 -1
  13. package/esm2015/lib/db/Enums/{chart-accounts-metadata-list.enum.js → chart-accounts/chart-accounts-metadata-list.enum.js} +1 -1
  14. package/esm2015/lib/db/Enums/chart-accounts/chart-accounts-metadata-type.enum.js +6 -0
  15. package/esm2015/lib/db/Enums/chart-accounts/chart-accounts-salary-adjustments-list.enum.js +17 -0
  16. package/esm2015/lib/db/Enums/chart-accounts/chart-accounts-salary-included-list.enum.js +14 -0
  17. package/esm2015/lib/db/Enums/chart-accounts/chart-accounts-type.enum.js +6 -0
  18. package/esm2015/lib/db/Enums/chart-accounts/index.js +13 -0
  19. package/esm2015/lib/db/Enums/index.js +2 -1
  20. package/esm2015/lib/db/Models/chart-accounts/chart-accounts-metadata.js +1 -1
  21. package/esm2015/lib/db/Models/chart-accounts/chart-accounts.js +1 -1
  22. package/esm2015/lib/db/Models/transaction/transaction-base.js +2 -3
  23. package/esm2015/lib/forms/depreciation/depreciation.form.js +35 -0
  24. package/esm2015/lib/forms/depreciation/index.js +2 -0
  25. package/esm2015/lib/forms/form-validations.enum.js +12 -0
  26. package/esm2015/lib/forms/index.js +4 -1
  27. package/esm2015/lib/forms/transaction/index.js +4 -0
  28. package/esm2015/lib/forms/transaction/messages.enum.js +5 -0
  29. package/esm2015/lib/forms/transaction/transaction-base.form.js +105 -0
  30. package/esm2015/lib/forms/transaction/transaction.form.js +60 -0
  31. package/esm2015/lib/forms/transaction/work-income.form.js +108 -0
  32. package/esm2015/lib/interceptors/user-switcher-interceptor.js +12 -2
  33. package/esm2015/lib/models/chart-accounts/chart-accounts-categories.const.js +2 -2
  34. package/esm2015/lib/models/chart-accounts/chart-accounts-category.e-collection.js +2 -2
  35. package/esm2015/lib/models/chart-accounts/chart-accounts-metadata.js +2 -2
  36. package/esm2015/lib/models/chart-accounts/chart-accounts.js +42 -5
  37. package/esm2015/lib/models/chart-accounts/index.js +9 -0
  38. package/esm2015/lib/models/depreciation/depreciation.js +5 -6
  39. package/esm2015/lib/models/document/index.js +3 -1
  40. package/esm2015/lib/models/income-source/salary-forecast.js +4 -1
  41. package/esm2015/lib/models/index.js +3 -1
  42. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.js +2 -2
  43. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.js +2 -4
  44. package/esm2015/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.js +2 -4
  45. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +2 -3
  46. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +3 -3
  47. package/esm2015/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.js +2 -3
  48. package/esm2015/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.js +2 -4
  49. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +2 -2
  50. package/esm2015/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.js +2 -4
  51. package/esm2015/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.js +2 -4
  52. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +2 -2
  53. package/esm2015/lib/models/report/property/property-report-item.js +2 -2
  54. package/esm2015/lib/models/transaction/index.js +7 -0
  55. package/esm2015/lib/models/transaction/transaction-metadata.js +2 -2
  56. package/esm2015/lib/models/transaction/transaction.js +4 -6
  57. package/esm2015/lib/models/vehicle/vehicle-claim.js +2 -2
  58. package/esm2015/lib/models/vehicle/vehicle-logbook.js +2 -1
  59. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +2 -2
  60. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +4 -7
  61. package/esm2015/lib/services/http/transaction/transaction.service.js +5 -35
  62. package/esm2015/lib/services/report/property/property-transaction-report.service.js +7 -10
  63. package/esm2015/lib/validators/current-fin-year.validator.js +14 -0
  64. package/esm2015/lib/validators/file.validator.js +27 -0
  65. package/esm2015/lib/validators/index.js +3 -1
  66. package/esm2015/public-api.js +12 -12
  67. package/fesm2015/taxtank-core.js +772 -375
  68. package/fesm2015/taxtank-core.js.map +1 -1
  69. package/lib/collections/account-setup-item.collection.d.ts.map +1 -0
  70. package/lib/collections/bank-account.collection.d.ts.map +1 -0
  71. package/lib/collections/bank-transaction.collection.d.ts.map +1 -0
  72. package/lib/collections/chart-accounts.collection.d.ts +1 -1
  73. package/lib/collections/chart-accounts.collection.d.ts.map +1 -0
  74. package/lib/collections/chat.collection.d.ts.map +1 -0
  75. package/lib/collections/client-invite.collection.d.ts.map +1 -0
  76. package/lib/collections/client-movement.collection.d.ts.map +1 -0
  77. package/lib/collections/client-portfolio-report.collection.d.ts.map +1 -0
  78. package/lib/collections/client.collection.d.ts.map +1 -0
  79. package/lib/collections/collection-dictionary.d.ts.map +1 -0
  80. package/lib/collections/collection.d.ts.map +1 -0
  81. package/lib/collections/depreciation-forecast.collection.d.ts.map +1 -0
  82. package/lib/collections/depreciation.collection.d.ts +2 -2
  83. package/lib/collections/depreciation.collection.d.ts.map +1 -0
  84. package/lib/collections/employee.collection.d.ts.map +1 -0
  85. package/lib/collections/exportable.collection.d.ts.map +1 -0
  86. package/lib/collections/income-source.collection.d.ts.map +1 -0
  87. package/lib/collections/index.d.ts.map +1 -0
  88. package/lib/collections/loan/loan-payment.collection.d.ts.map +1 -0
  89. package/lib/collections/loan/loan.collection.d.ts.map +1 -0
  90. package/lib/collections/message-document.collection.d.ts.map +1 -0
  91. package/lib/collections/message.collection.d.ts.map +1 -0
  92. package/lib/collections/property/index.d.ts.map +1 -0
  93. package/lib/collections/property/property-category-movement.collection.d.ts.map +1 -0
  94. package/lib/collections/property/property.collection.d.ts.map +1 -0
  95. package/lib/collections/report/depreciation/depreciation-report-item.collection.d.ts.map +1 -0
  96. package/lib/collections/report/property/property-report-item-depreciation.collection.d.ts.map +1 -0
  97. package/lib/collections/report/property/property-report-item-transaction.collection.d.ts.map +1 -0
  98. package/lib/collections/report/property/property-report-item.collection.d.ts.map +1 -0
  99. package/lib/collections/report/vehicle-expense/vehicle-expense.collection.d.ts.map +1 -0
  100. package/lib/collections/sole/index.d.ts.map +1 -0
  101. package/lib/collections/sole/sole-business-losses.collection.d.ts.map +1 -0
  102. package/lib/collections/sole/sole-invoice-item.collection.d.ts.map +1 -0
  103. package/lib/collections/sole/sole-invoice.collection.d.ts.map +1 -0
  104. package/lib/collections/subscription/service-subscription.collection.d.ts.map +1 -0
  105. package/lib/collections/tax-review.collection.d.ts.map +1 -0
  106. package/lib/collections/tax-summary/report-item.collection.d.ts.map +1 -0
  107. package/lib/collections/tax-summary/tax-return-categories.const.d.ts.map +1 -0
  108. package/lib/collections/transaction/index.d.ts.map +1 -0
  109. package/lib/collections/transaction/transaction-allocation.collection.d.ts.map +1 -0
  110. package/lib/collections/transaction/transaction-base.collection.d.ts.map +1 -0
  111. package/lib/collections/transaction/transaction.collection.d.ts +2 -4
  112. package/lib/collections/transaction/transaction.collection.d.ts.map +1 -0
  113. package/lib/collections/user-event-setting.collection.d.ts.map +1 -0
  114. package/lib/collections/vehicle/index.d.ts.map +1 -0
  115. package/lib/collections/vehicle/vehicle-claim.collection.d.ts.map +1 -0
  116. package/lib/collections/vehicle/vehicle-logbook.collection.d.ts.map +1 -0
  117. package/lib/db/Enums/{chart-accounts-category.enum.d.ts → chart-accounts/chart-accounts-category.enum.d.ts} +0 -0
  118. package/lib/db/Enums/{chart-accounts-etp.enum.d.ts → chart-accounts/chart-accounts-etp.enum.d.ts} +0 -0
  119. package/lib/db/Enums/{chart-accounts-heading-list.enum.d.ts → chart-accounts/chart-accounts-heading-list.enum.d.ts} +0 -0
  120. package/lib/db/Enums/{chart-accounts-heading-tax-deductible.enum.d.ts → chart-accounts/chart-accounts-heading-tax-deductible.enum.d.ts} +0 -0
  121. package/lib/db/Enums/{chart-accounts-heading-taxable.enum.d.ts → chart-accounts/chart-accounts-heading-taxable.enum.d.ts} +0 -0
  122. package/lib/db/Enums/{chart-accounts-heading-vehicle-list.enum.d.ts → chart-accounts/chart-accounts-heading-vehicle-list.enum.d.ts} +0 -0
  123. package/lib/db/Enums/{chart-accounts-list.enum.d.ts → chart-accounts/chart-accounts-list.enum.d.ts} +0 -0
  124. package/lib/db/Enums/{chart-accounts-metadata-list.enum.d.ts → chart-accounts/chart-accounts-metadata-list.enum.d.ts} +0 -0
  125. package/lib/db/Enums/{chart-accounts-metadata-type.enum.d.ts → chart-accounts/chart-accounts-metadata-type.enum.d.ts} +0 -0
  126. package/lib/db/Enums/chart-accounts/chart-accounts-salary-adjustments-list.enum.d.ts +15 -0
  127. package/lib/db/Enums/chart-accounts/chart-accounts-salary-included-list.enum.d.ts +12 -0
  128. package/lib/db/Enums/{chart-accounts-type.enum.d.ts → chart-accounts/chart-accounts-type.enum.d.ts} +0 -0
  129. package/lib/db/Enums/chart-accounts/index.d.ts +12 -0
  130. package/lib/db/Enums/chat-status.enum.d.ts.map +1 -0
  131. package/lib/db/Enums/client-details-medicare-exemption.enum.d.ts.map +1 -0
  132. package/lib/db/Enums/client-details-work-depreciation-calculation.enum.d.ts.map +1 -0
  133. package/lib/db/Enums/client-details-working-holiday-maker.enum.d.ts.map +1 -0
  134. package/lib/db/Enums/client-invite-status.enum.d.ts.map +1 -0
  135. package/lib/db/Enums/client-invite-type.enum.d.ts.map +1 -0
  136. package/lib/db/Enums/depreciation-calculation-percent.enum.d.ts.map +1 -0
  137. package/lib/db/Enums/depreciation-calculation.enum.d.ts.map +1 -0
  138. package/lib/db/Enums/depreciation-type.enum.d.ts.map +1 -0
  139. package/lib/db/Enums/depreciation-write-off-amount.enum.d.ts.map +1 -0
  140. package/lib/db/Enums/firm-type.enum.d.ts.map +1 -0
  141. package/lib/db/Enums/income-source-type-list-other.enum.d.ts.map +1 -0
  142. package/lib/db/Enums/income-source-type-list-sole.enum.d.ts.map +1 -0
  143. package/lib/db/Enums/income-source-type-list-work.enum.d.ts.map +1 -0
  144. package/lib/db/Enums/index.d.ts +1 -0
  145. package/lib/db/Enums/invite-status.enum.d.ts.map +1 -0
  146. package/lib/db/Enums/loan-bank-type.enum.d.ts.map +1 -0
  147. package/lib/db/Enums/loan-frequency.enum.d.ts.map +1 -0
  148. package/lib/db/Enums/phone-type.enum.d.ts.map +1 -0
  149. package/lib/db/Enums/service-notification-status.enum.d.ts.map +1 -0
  150. package/lib/db/Enums/service-notification-type.enum.d.ts.map +1 -0
  151. package/lib/db/Enums/sole-depreciation-method.enum.d.ts.map +1 -0
  152. package/lib/db/Enums/sole-invoice-statuses.enum.d.ts.map +1 -0
  153. package/lib/db/Enums/sole-invoice-tax-type.enum.d.ts.map +1 -0
  154. package/lib/db/Enums/sole-invoice-template-tax-type.enum.d.ts.map +1 -0
  155. package/lib/db/Enums/spare-document-spare-type.enum.d.ts.map +1 -0
  156. package/lib/db/Enums/tank-type.enum.d.ts.map +1 -0
  157. package/lib/db/Enums/tax-calculation-medicare-exemption.enum.d.ts.map +1 -0
  158. package/lib/db/Enums/tax-calculation-type.enum.d.ts.map +1 -0
  159. package/lib/db/Enums/tax-return-category-list.enum.d.ts.map +1 -0
  160. package/lib/db/Enums/tax-return-category-section.enum.d.ts.map +1 -0
  161. package/lib/db/Enums/tax-review-status.enum.d.ts.map +1 -0
  162. package/lib/db/Enums/tax-summary-list.enum.d.ts.map +1 -0
  163. package/lib/db/Enums/tax-summary-tax-summary.enum.d.ts.map +1 -0
  164. package/lib/db/Enums/ticket-feedback.enum.d.ts.map +1 -0
  165. package/lib/db/Enums/ticket-status.enum.d.ts.map +1 -0
  166. package/lib/db/Enums/ticket-types.enum.d.ts.map +1 -0
  167. package/lib/db/Enums/user-event-status.enum.d.ts.map +1 -0
  168. package/lib/db/Enums/user-event-type-client-type.enum.d.ts.map +1 -0
  169. package/lib/db/Enums/user-event-type-employee-type.enum.d.ts.map +1 -0
  170. package/lib/db/Enums/user-event-type-frequency.enum.d.ts.map +1 -0
  171. package/lib/db/Enums/user-event-type-type.enum.d.ts.map +1 -0
  172. package/lib/db/Enums/user-event-type-user-type.enum.d.ts.map +1 -0
  173. package/lib/db/Enums/user-medicare-exemption.enum.d.ts.map +1 -0
  174. package/lib/db/Enums/user-work-depreciation-calculation.enum.d.ts.map +1 -0
  175. package/lib/db/Enums/user-working-holiday-maker.enum.d.ts.map +1 -0
  176. package/lib/db/Enums/vehicle-claim-details-method.enum.d.ts.map +1 -0
  177. package/lib/db/Enums/vehicle-logbook-purpose.enum.d.ts.map +1 -0
  178. package/lib/db/Models/chart-accounts/chart-accounts-metadata.d.ts +1 -2
  179. package/lib/db/Models/chart-accounts/chart-accounts.d.ts +1 -2
  180. package/lib/db/Models/firm/client-invite.d.ts.map +1 -0
  181. package/lib/db/Models/firm/employee-invite.d.ts.map +1 -0
  182. package/lib/db/Models/observable-model.d.ts.map +1 -0
  183. package/lib/db/Models/phone.d.ts.map +1 -0
  184. package/lib/db/Models/service-notification.d.ts.map +1 -0
  185. package/lib/forms/abstract.form.d.ts.map +1 -0
  186. package/lib/forms/address/address.form.d.ts.map +1 -0
  187. package/lib/forms/address/index.d.ts.map +1 -0
  188. package/lib/forms/bank/bank-account/bank-account-add-manual.form.d.ts.map +1 -0
  189. package/lib/forms/bank/bank-account/bank-account-allocation.form.d.ts.map +1 -0
  190. package/lib/forms/bank/bank-account/bank-account-import.form.d.ts.map +1 -0
  191. package/lib/forms/bank/bank-account/bank-account-properties.form.d.ts.map +1 -0
  192. package/lib/forms/bank/bank-account/bank-accounts-import.form.d.ts.map +1 -0
  193. package/lib/forms/bank/bank-login.form.d.ts.map +1 -0
  194. package/lib/forms/client/client-income-types.form.d.ts.map +1 -0
  195. package/lib/forms/depreciation/depreciation.form.d.ts +5 -0
  196. package/lib/forms/depreciation/depreciation.form.d.ts.map +1 -0
  197. package/lib/forms/depreciation/index.d.ts +1 -0
  198. package/lib/forms/depreciation/index.d.ts.map +1 -0
  199. package/lib/forms/form-validations.enum.d.ts +9 -0
  200. package/lib/forms/form-validations.enum.d.ts.map +1 -0
  201. package/lib/forms/index.d.ts +3 -0
  202. package/lib/forms/index.d.ts.map +1 -0
  203. package/lib/forms/loan/index.d.ts.map +1 -0
  204. package/lib/forms/loan/loan.form.d.ts.map +1 -0
  205. package/lib/forms/login/login.form.d.ts.map +1 -0
  206. package/lib/forms/phone/index.d.ts.map +1 -0
  207. package/lib/forms/phone/phone.form.d.ts.map +1 -0
  208. package/lib/forms/property/index.d.ts.map +1 -0
  209. package/lib/forms/property/property-sale/index.d.ts.map +1 -0
  210. package/lib/forms/property/property-sale/property-sale-cost-base.form.d.ts.map +1 -0
  211. package/lib/forms/property/property-sale/property-sale-cost-sale.form.d.ts.map +1 -0
  212. package/lib/forms/property/property-sale/property-sale-exemptions.form.d.ts.map +1 -0
  213. package/lib/forms/register/register-client.form.d.ts.map +1 -0
  214. package/lib/forms/register/register-firm.form.d.ts.map +1 -0
  215. package/lib/forms/report/my-tax/index.d.ts.map +1 -0
  216. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.d.ts.map +1 -0
  217. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.d.ts.map +1 -0
  218. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.d.ts.map +1 -0
  219. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.d.ts.map +1 -0
  220. package/lib/forms/report/my-tax/my-tax-cgt.form.d.ts.map +1 -0
  221. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts.map +1 -0
  222. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts.map +1 -0
  223. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts.map +1 -0
  224. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts.map +1 -0
  225. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts.map +1 -0
  226. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts.map +1 -0
  227. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts.map +1 -0
  228. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts.map +1 -0
  229. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts.map +1 -0
  230. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts.map +1 -0
  231. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts.map +1 -0
  232. package/lib/forms/sole/bas-report.form.d.ts.map +1 -0
  233. package/lib/forms/sole/index.d.ts.map +1 -0
  234. package/lib/forms/sole/sole-business-allocations.form.d.ts.map +1 -0
  235. package/lib/forms/sole/sole-business-loss.form.d.ts.map +1 -0
  236. package/lib/forms/sole/sole-business.form.d.ts.map +1 -0
  237. package/lib/forms/sole/sole-contact.form.d.ts.map +1 -0
  238. package/lib/forms/sole/sole-depreciation-method.form.d.ts.map +1 -0
  239. package/lib/forms/sole/sole-details.form.d.ts.map +1 -0
  240. package/lib/forms/sole/sole-invoice-item.form.d.ts.map +1 -0
  241. package/lib/forms/sole/sole-invoice-template.form.d.ts.map +1 -0
  242. package/lib/forms/sole/sole-invoice.form.d.ts.map +1 -0
  243. package/lib/forms/transaction/index.d.ts +3 -0
  244. package/lib/forms/transaction/index.d.ts.map +1 -0
  245. package/lib/forms/transaction/messages.enum.d.ts +3 -0
  246. package/lib/forms/transaction/messages.enum.d.ts.map +1 -0
  247. package/lib/forms/transaction/transaction-base.form.d.ts +28 -0
  248. package/lib/forms/transaction/transaction-base.form.d.ts.map +1 -0
  249. package/lib/forms/transaction/transaction.form.d.ts +16 -0
  250. package/lib/forms/transaction/transaction.form.d.ts.map +1 -0
  251. package/lib/forms/transaction/work-income.form.d.ts +26 -0
  252. package/lib/forms/transaction/work-income.form.d.ts.map +1 -0
  253. package/lib/forms/user/index.d.ts.map +1 -0
  254. package/lib/forms/user/password.form.d.ts.map +1 -0
  255. package/lib/forms/user/reset-password.form.d.ts.map +1 -0
  256. package/lib/forms/user/user-invite.form.d.ts.map +1 -0
  257. package/lib/forms/vehicle/index.d.ts.map +1 -0
  258. package/lib/forms/vehicle/vehicle-claim-details.form.d.ts.map +1 -0
  259. package/lib/forms/vehicle/vehicle-claim.form.d.ts.map +1 -0
  260. package/lib/forms/vehicle/vehicle-logbook.form.d.ts.map +1 -0
  261. package/lib/forms/vehicle/vehicle.form.d.ts.map +1 -0
  262. package/lib/functions/array/index.d.ts.map +1 -0
  263. package/lib/functions/array/to-array.d.ts.map +1 -0
  264. package/lib/functions/clone-deep.d.ts.map +1 -0
  265. package/lib/functions/create-date.d.ts.map +1 -0
  266. package/lib/functions/enum-to-list.d.ts.map +1 -0
  267. package/lib/functions/get-doc-icon.d.ts.map +1 -0
  268. package/lib/functions/mat-options-functions.d.ts.map +1 -0
  269. package/lib/functions/mat-sort-options.d.ts.map +1 -0
  270. package/lib/functions/round-to.d.ts.map +1 -0
  271. package/lib/functions/tax-review-filter-predicate.d.ts.map +1 -0
  272. package/lib/interceptors/basiq-client-id.interceptor.d.ts.map +1 -0
  273. package/lib/interceptors/basiq-token.interceptor.d.ts.map +1 -0
  274. package/lib/interceptors/interceptors.module.d.ts.map +1 -0
  275. package/lib/interceptors/jwt-interceptor.d.ts.map +1 -0
  276. package/lib/interceptors/preloader.interceptor.d.ts.map +1 -0
  277. package/lib/interceptors/user-switcher-interceptor.d.ts.map +1 -0
  278. package/lib/interfaces/asset-entity-type.enum.d.ts.map +1 -0
  279. package/lib/interfaces/asset-type.enum.d.ts.map +1 -0
  280. package/lib/interfaces/asset.interface.d.ts.map +1 -0
  281. package/lib/interfaces/auth-tokens.interface.d.ts.map +1 -0
  282. package/lib/interfaces/chart-data.interface.d.ts.map +1 -0
  283. package/lib/interfaces/chart-serie.interface.d.ts.map +1 -0
  284. package/lib/interfaces/event-listener.interface.d.ts.map +1 -0
  285. package/lib/interfaces/expense.interface.d.ts.map +1 -0
  286. package/lib/interfaces/income-source-forecast.interface.d.ts.map +1 -0
  287. package/lib/interfaces/option.interface.d.ts.map +1 -0
  288. package/lib/interfaces/receipt.interface.d.ts.map +1 -0
  289. package/lib/interfaces/table-exportable.interface.d.ts.map +1 -0
  290. package/lib/interfaces/tank.interface.d.ts.map +1 -0
  291. package/lib/interfaces/updatable.interface.d.ts.map +1 -0
  292. package/lib/models/account-setup/account-setup-item.d.ts.map +1 -0
  293. package/lib/models/account-setup/account-setup-items.const.d.ts.map +1 -0
  294. package/lib/models/account-setup/account-setup-items.enum.d.ts.map +1 -0
  295. package/lib/models/badge/badge-color.enum.d.ts.map +1 -0
  296. package/lib/models/badge/badge.d.ts.map +1 -0
  297. package/lib/models/bank/bank-account-chart-data.d.ts.map +1 -0
  298. package/lib/models/bank/bank-account-property.d.ts.map +1 -0
  299. package/lib/models/bank/bank-account-types.const.d.ts.map +1 -0
  300. package/lib/models/bank/bank-account.d.ts.map +1 -0
  301. package/lib/models/bank/bank-connection.d.ts.map +1 -0
  302. package/lib/models/bank/bank-login-data.d.ts.map +1 -0
  303. package/lib/models/bank/bank-transaction-chart-data.d.ts.map +1 -0
  304. package/lib/models/bank/bank-transaction-summary-fields.enum.d.ts.map +1 -0
  305. package/lib/models/bank/bank-transaction.d.ts.map +1 -0
  306. package/lib/models/bank/index.d.ts.map +1 -0
  307. package/lib/models/bank/type-loan.const.d.ts.map +1 -0
  308. package/lib/models/borrowing-expense/borrowing-expense-loan.d.ts.map +1 -0
  309. package/lib/models/borrowing-expense/borrowing-expense.d.ts.map +1 -0
  310. package/lib/models/chart/chart-data.d.ts.map +1 -0
  311. package/lib/models/chart/chart-serie.d.ts.map +1 -0
  312. package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts +1 -1
  313. package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts.map +1 -0
  314. package/lib/models/chart-accounts/chart-accounts-category.e-collection.d.ts +1 -1
  315. package/lib/models/chart-accounts/chart-accounts-category.e-collection.d.ts.map +1 -0
  316. package/lib/models/chart-accounts/chart-accounts-depreciation.d.ts.map +1 -0
  317. package/lib/models/chart-accounts/chart-accounts-heading.d.ts.map +1 -0
  318. package/lib/models/chart-accounts/chart-accounts-metadata.d.ts.map +1 -0
  319. package/lib/models/chart-accounts/chart-accounts-tax-labels.enum.d.ts.map +1 -0
  320. package/lib/models/chart-accounts/chart-accounts-value.d.ts.map +1 -0
  321. package/lib/models/chart-accounts/chart-accounts.d.ts +13 -1
  322. package/lib/models/chart-accounts/chart-accounts.d.ts.map +1 -0
  323. package/lib/models/chart-accounts/index.d.ts +8 -0
  324. package/lib/models/chart-accounts/index.d.ts.map +1 -0
  325. package/lib/models/chat/chat-view-type.enum.d.ts.map +1 -0
  326. package/lib/models/chat/chat.d.ts.map +1 -0
  327. package/lib/models/chat/message-document.d.ts.map +1 -0
  328. package/lib/models/chat/message.d.ts.map +1 -0
  329. package/lib/models/client/client-details.d.ts.map +1 -0
  330. package/lib/models/client/client-income-types.d.ts.map +1 -0
  331. package/lib/models/client/client-invite.d.ts.map +1 -0
  332. package/lib/models/client/client-movement.d.ts.map +1 -0
  333. package/lib/models/client/client-portfolio-chart-data.d.ts.map +1 -0
  334. package/lib/models/client/client-portfolio-report.d.ts.map +1 -0
  335. package/lib/models/color/alphabet-colors.enum.d.ts.map +1 -0
  336. package/lib/models/depreciation/depreciation-capital-project.d.ts.map +1 -0
  337. package/lib/models/depreciation/depreciation-forecast.d.ts.map +1 -0
  338. package/lib/models/depreciation/depreciation-group-item.d.ts.map +1 -0
  339. package/lib/models/depreciation/depreciation-group.d.ts.map +1 -0
  340. package/lib/models/depreciation/depreciation-group.enum.d.ts.map +1 -0
  341. package/lib/models/depreciation/depreciation-groups.const.d.ts.map +1 -0
  342. package/lib/models/depreciation/depreciation-receipt.d.ts.map +1 -0
  343. package/lib/models/depreciation/depreciation.d.ts +3 -3
  344. package/lib/models/depreciation/depreciation.d.ts.map +1 -0
  345. package/lib/models/dictionary/dictionary.d.ts.map +1 -0
  346. package/lib/models/document/document-api-url-prefix.enum.d.ts.map +1 -0
  347. package/lib/models/document/document-file-types.const.d.ts.map +1 -0
  348. package/lib/models/document/document-folder.d.ts.map +1 -0
  349. package/lib/models/document/document.d.ts.map +1 -0
  350. package/lib/models/document/index.d.ts +2 -0
  351. package/lib/models/document/index.d.ts.map +1 -0
  352. package/lib/models/employee/employee-details.d.ts.map +1 -0
  353. package/lib/models/employee/employee-invite.d.ts.map +1 -0
  354. package/lib/models/endpoint/endpoint.d.ts.map +1 -0
  355. package/lib/models/endpoint/endpoints.const.d.ts.map +1 -0
  356. package/lib/models/event/app-event-type.enum.d.ts.map +1 -0
  357. package/lib/models/event/app-event.d.ts.map +1 -0
  358. package/lib/models/export/export-cell-type.enum.d.ts.map +1 -0
  359. package/lib/models/export/export-cell.d.ts.map +1 -0
  360. package/lib/models/export/export-data-table.d.ts.map +1 -0
  361. package/lib/models/export/export-format.enum.d.ts.map +1 -0
  362. package/lib/models/export/export-row-data-type.enum.d.ts.map +1 -0
  363. package/lib/models/export/export-row.d.ts.map +1 -0
  364. package/lib/models/file/icons-file.enum.d.ts.map +1 -0
  365. package/lib/models/financial-year/month-name-short.enum.d.ts.map +1 -0
  366. package/lib/models/financial-year/month-number.enum.d.ts.map +1 -0
  367. package/lib/models/financial-year/months.const.d.ts.map +1 -0
  368. package/lib/models/firm/firm.d.ts.map +1 -0
  369. package/lib/models/income-position/income-position.d.ts.map +1 -0
  370. package/lib/models/income-source/income-source-chart-data.d.ts.map +1 -0
  371. package/lib/models/income-source/income-source-forecast.d.ts.map +1 -0
  372. package/lib/models/income-source/income-source-type.d.ts.map +1 -0
  373. package/lib/models/income-source/income-source.d.ts.map +1 -0
  374. package/lib/models/income-source/salary-forecast.d.ts +1 -0
  375. package/lib/models/income-source/salary-forecast.d.ts.map +1 -0
  376. package/lib/models/income-source/sole-forecast.d.ts.map +1 -0
  377. package/lib/models/index.d.ts +2 -0
  378. package/lib/models/index.d.ts.map +1 -0
  379. package/lib/models/loan/loan-max-number-of-payments.enum.d.ts.map +1 -0
  380. package/lib/models/loan/loan.d.ts.map +1 -0
  381. package/lib/models/notification/notification.d.ts.map +1 -0
  382. package/lib/models/pdf/pdf-orientation.enum.d.ts.map +1 -0
  383. package/lib/models/pdf/pdf-settings.d.ts.map +1 -0
  384. package/lib/models/phone/phone.d.ts.map +1 -0
  385. package/lib/models/property/calculation-form-item.d.ts.map +1 -0
  386. package/lib/models/property/calculation-form-type.enum.d.ts.map +1 -0
  387. package/lib/models/property/capital-costs-itmes.const.d.ts.map +1 -0
  388. package/lib/models/property/property-category-movement.d.ts.map +1 -0
  389. package/lib/models/property/property-category.d.ts.map +1 -0
  390. package/lib/models/property/property-document.d.ts.map +1 -0
  391. package/lib/models/property/property-equity-chart-data.d.ts.map +1 -0
  392. package/lib/models/property/property-equity-chart-item.d.ts.map +1 -0
  393. package/lib/models/property/property-equity-chart-type.enum.d.ts.map +1 -0
  394. package/lib/models/property/property-forecast.d.ts.map +1 -0
  395. package/lib/models/property/property-sale/index.d.ts.map +1 -0
  396. package/lib/models/property/property-sale/property-sale-cost-base.d.ts.map +1 -0
  397. package/lib/models/property/property-sale/tax-exemption-metadata.d.ts.map +1 -0
  398. package/lib/models/property/property-sale/tax-exemption.d.ts.map +1 -0
  399. package/lib/models/property/property-share.d.ts.map +1 -0
  400. package/lib/models/property/property-subscription.d.ts.map +1 -0
  401. package/lib/models/property/property-valuation.d.ts.map +1 -0
  402. package/lib/models/property/property.d.ts.map +1 -0
  403. package/lib/models/property/share-filter-options.enum.d.ts.map +1 -0
  404. package/lib/models/registration-invite/registration-invite.d.ts.map +1 -0
  405. package/lib/models/report/depreciation/index.d.ts.map +1 -0
  406. package/lib/models/report/index.d.ts.map +1 -0
  407. package/lib/models/report/my-tax/ato-links.d.ts.map +1 -0
  408. package/lib/models/report/my-tax/index.d.ts.map +1 -0
  409. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-income-or-losses-categories.const.d.ts.map +1 -0
  410. package/lib/models/report/my-tax/my-tax-business-income-or-losses/business-type.enum.d.ts.map +1 -0
  411. package/lib/models/report/my-tax/my-tax-business-income-or-losses/loss-type.enum.d.ts.map +1 -0
  412. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.d.ts.map +1 -0
  413. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.d.ts +1 -1
  414. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.d.ts.map +1 -0
  415. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts +1 -1
  416. package/lib/models/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.d.ts.map +1 -0
  417. package/lib/models/report/my-tax/my-tax-cgt/cgt-exemption-and-rollover-code.enum.d.ts.map +1 -0
  418. package/lib/models/report/my-tax/my-tax-cgt/my-tax-cgt.d.ts.map +1 -0
  419. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts.map +1 -0
  420. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts.map +1 -0
  421. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts.map +1 -0
  422. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +1 -1
  423. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts.map +1 -0
  424. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts +1 -1
  425. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts.map +1 -0
  426. package/lib/models/report/my-tax/my-tax-estimate/my-tax-estimate.d.ts.map +1 -0
  427. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +1 -1
  428. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts.map +1 -0
  429. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts.map +1 -0
  430. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts +1 -1
  431. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts.map +1 -0
  432. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts.map +1 -0
  433. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts.map +1 -0
  434. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts +1 -1
  435. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts.map +1 -0
  436. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts +1 -1
  437. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts.map +1 -0
  438. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +1 -1
  439. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts.map +1 -0
  440. package/lib/models/report/property/index.d.ts.map +1 -0
  441. package/lib/models/report/property/property-report-item-depreciation.d.ts.map +1 -0
  442. package/lib/models/report/property/property-report-item-transaction.d.ts.map +1 -0
  443. package/lib/models/report/property/property-report-item.d.ts +1 -1
  444. package/lib/models/report/sole/index.d.ts.map +1 -0
  445. package/lib/models/report/sole/sole-business/sole-business-loss-report.d.ts.map +1 -0
  446. package/lib/models/report/vehicle-expense/vehicle-expense.d.ts.map +1 -0
  447. package/lib/models/service-subscription/module-url-list.const.d.ts.map +1 -0
  448. package/lib/models/service-subscription/service-payment.d.ts.map +1 -0
  449. package/lib/models/service-subscription/service-price.d.ts.map +1 -0
  450. package/lib/models/service-subscription/service-product.d.ts.map +1 -0
  451. package/lib/models/service-subscription/service-subscription-item.d.ts.map +1 -0
  452. package/lib/models/service-subscription/service-subscription.d.ts.map +1 -0
  453. package/lib/models/sole/bas-report.d.ts.map +1 -0
  454. package/lib/models/sole/index.d.ts.map +1 -0
  455. package/lib/models/sole/sole-business-activity.d.ts.map +1 -0
  456. package/lib/models/sole/sole-business-allocation.d.ts.map +1 -0
  457. package/lib/models/sole/sole-business-loss-offset-rule.d.ts.map +1 -0
  458. package/lib/models/sole/sole-business-loss.d.ts.map +1 -0
  459. package/lib/models/sole/sole-business.d.ts.map +1 -0
  460. package/lib/models/sole/sole-contact.d.ts.map +1 -0
  461. package/lib/models/sole/sole-depreciation-method.d.ts.map +1 -0
  462. package/lib/models/sole/sole-details.d.ts.map +1 -0
  463. package/lib/models/sole/sole-invoice-item.d.ts.map +1 -0
  464. package/lib/models/sole/sole-invoice-template.d.ts.map +1 -0
  465. package/lib/models/sole/sole-invoice.d.ts.map +1 -0
  466. package/lib/models/tax-review/tax-review.d.ts.map +1 -0
  467. package/lib/models/tax-summary/report-item-details.d.ts.map +1 -0
  468. package/lib/models/tax-summary/report-item.d.ts.map +1 -0
  469. package/lib/models/tax-summary/tax-summary-section.d.ts.map +1 -0
  470. package/lib/models/tax-summary/tax-summary-type.enum.d.ts.map +1 -0
  471. package/lib/models/tax-summary/tax-summary.d.ts.map +1 -0
  472. package/lib/models/toast/toast-type.enum.d.ts.map +1 -0
  473. package/lib/models/toast/toast.d.ts.map +1 -0
  474. package/lib/models/transaction/income-amount-type.enum.d.ts.map +1 -0
  475. package/lib/models/transaction/index.d.ts +6 -0
  476. package/lib/models/transaction/index.d.ts.map +1 -0
  477. package/lib/models/transaction/transaction-allocation.d.ts.map +1 -0
  478. package/lib/models/transaction/transaction-category.enum.d.ts.map +1 -0
  479. package/lib/models/transaction/transaction-metadata.d.ts +1 -1
  480. package/lib/models/transaction/transaction-metadata.d.ts.map +1 -0
  481. package/lib/models/transaction/transaction-receipt.d.ts.map +1 -0
  482. package/lib/models/transaction/transaction.d.ts +3 -4
  483. package/lib/models/transaction/transaction.d.ts.map +1 -0
  484. package/lib/models/user/my-account-history-initiated-by.enum.d.ts.map +1 -0
  485. package/lib/models/user/my-account-history-status.enum.d.ts.map +1 -0
  486. package/lib/models/user/my-account-history-type.enum.d.ts.map +1 -0
  487. package/lib/models/user/my-account-history.d.ts.map +1 -0
  488. package/lib/models/user/occupation.d.ts.map +1 -0
  489. package/lib/models/user/user-roles.const.d.ts.map +1 -0
  490. package/lib/models/user/user-to-register.d.ts.map +1 -0
  491. package/lib/models/user/user-work-position.const.d.ts.map +1 -0
  492. package/lib/models/user/user.d.ts.map +1 -0
  493. package/lib/models/user-event/user-event-setting-field.enum.d.ts.map +1 -0
  494. package/lib/models/user-event/user-event-setting.d.ts.map +1 -0
  495. package/lib/models/user-event/user-event-type-category.d.ts.map +1 -0
  496. package/lib/models/user-event/user-event-type.d.ts.map +1 -0
  497. package/lib/models/vehicle/index.d.ts.map +1 -0
  498. package/lib/models/vehicle/logbook-period.d.ts.map +1 -0
  499. package/lib/models/vehicle/vehicle-claim-details.d.ts.map +1 -0
  500. package/lib/models/vehicle/vehicle-claim.d.ts +1 -1
  501. package/lib/models/vehicle/vehicle-claim.d.ts.map +1 -0
  502. package/lib/models/vehicle/vehicle-logbook.d.ts.map +1 -0
  503. package/lib/models/vehicle/vehicle.d.ts.map +1 -0
  504. package/lib/services/account-setup/account-setup.service.d.ts.map +1 -0
  505. package/lib/services/account-setup/index.d.ts.map +1 -0
  506. package/lib/services/affiliate/index.d.ts.map +1 -0
  507. package/lib/services/affiliate/rewardful/index.d.ts.map +1 -0
  508. package/lib/services/affiliate/rewardful/rewardful.service.d.ts.map +1 -0
  509. package/lib/services/asset/assets.service.d.ts.map +1 -0
  510. package/lib/services/asset/index.d.ts.map +1 -0
  511. package/lib/services/auth/auth.service.d.ts.map +1 -0
  512. package/lib/services/auth/index.d.ts.map +1 -0
  513. package/lib/services/auth/jwt.service.d.ts.map +1 -0
  514. package/lib/services/bank/bank-account-calculation.service.d.ts.map +1 -0
  515. package/lib/services/bank/bank-transaction-calculation.service.d.ts.map +1 -0
  516. package/lib/services/bank/index.d.ts.map +1 -0
  517. package/lib/services/event/event-dispatcher.service.d.ts.map +1 -0
  518. package/lib/services/event/index.d.ts.map +1 -0
  519. package/lib/services/event/sse.service.d.ts.map +1 -0
  520. package/lib/services/export/export-formatter.service.d.ts.map +1 -0
  521. package/lib/services/export/index.d.ts.map +1 -0
  522. package/lib/services/header-title/header-title.service.d.ts.map +1 -0
  523. package/lib/services/header-title/index.d.ts.map +1 -0
  524. package/lib/services/http/address/address.service.d.ts.map +1 -0
  525. package/lib/services/http/address/index.d.ts.map +1 -0
  526. package/lib/services/http/bank/bank-account/bank-account.service.d.ts.map +1 -0
  527. package/lib/services/http/bank/bank-account/index.d.ts.map +1 -0
  528. package/lib/services/http/bank/bank-connection/index.d.ts.map +1 -0
  529. package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts.map +1 -0
  530. package/lib/services/http/bank/bank-transaction/index.d.ts.map +1 -0
  531. package/lib/services/http/bank/bank.service.d.ts.map +1 -0
  532. package/lib/services/http/bank/basiq/index.d.ts.map +1 -0
  533. package/lib/services/http/bank/index.d.ts.map +1 -0
  534. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts +1 -1
  535. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts.map +1 -0
  536. package/lib/services/http/chart-accounts/chart-accounts-depreciations/index.d.ts.map +1 -0
  537. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts +3 -5
  538. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts.map +1 -0
  539. package/lib/services/http/chart-accounts/index.d.ts.map +1 -0
  540. package/lib/services/http/chat/chat.service.d.ts.map +1 -0
  541. package/lib/services/http/chat/index.d.ts.map +1 -0
  542. package/lib/services/http/chat/message/index.d.ts.map +1 -0
  543. package/lib/services/http/chat/message/message.service.d.ts.map +1 -0
  544. package/lib/services/http/chat/message-document/index.d.ts.map +1 -0
  545. package/lib/services/http/chat/message-document/message-document.service.d.ts.map +1 -0
  546. package/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts.map +1 -0
  547. package/lib/services/http/depreciation/depreciation-capital-project/index.d.ts.map +1 -0
  548. package/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.d.ts.map +1 -0
  549. package/lib/services/http/depreciation/depreciation-receipt/index.d.ts.map +1 -0
  550. package/lib/services/http/depreciation/depreciation.service.d.ts.map +1 -0
  551. package/lib/services/http/depreciation/index.d.ts.map +1 -0
  552. package/lib/services/http/document/document-folder/document-folder.service.d.ts.map +1 -0
  553. package/lib/services/http/document/document.service.d.ts.map +1 -0
  554. package/lib/services/http/document/index.d.ts.map +1 -0
  555. package/lib/services/http/facebook/facebook-auth-options.interface.d.ts.map +1 -0
  556. package/lib/services/http/facebook/facebook-auth-response.interface.d.ts.map +1 -0
  557. package/lib/services/http/facebook/facebook-status-response.interface.d.ts.map +1 -0
  558. package/lib/services/http/facebook/facebook.service.d.ts.map +1 -0
  559. package/lib/services/http/facebook/index.d.ts.map +1 -0
  560. package/lib/services/http/firm/client-income/client-income-types.service.d.ts.map +1 -0
  561. package/lib/services/http/firm/client-income/index.d.ts.map +1 -0
  562. package/lib/services/http/firm/client-invite/client-invite.service.d.ts.map +1 -0
  563. package/lib/services/http/firm/client-invite/index.d.ts.map +1 -0
  564. package/lib/services/http/firm/client-movement/client-movement.service.d.ts.map +1 -0
  565. package/lib/services/http/firm/client-movement/index.d.ts.map +1 -0
  566. package/lib/services/http/firm/employee/employee.service.d.ts.map +1 -0
  567. package/lib/services/http/firm/employee/index.d.ts.map +1 -0
  568. package/lib/services/http/firm/employee-invite/employee-invite.service.d.ts.map +1 -0
  569. package/lib/services/http/firm/employee-invite/index.d.ts.map +1 -0
  570. package/lib/services/http/firm/firm.service.d.ts.map +1 -0
  571. package/lib/services/http/firm/index.d.ts.map +1 -0
  572. package/lib/services/http/firm/portfolio-report/client-portfolio-report.service.d.ts.map +1 -0
  573. package/lib/services/http/firm/portfolio-report/index.d.ts.map +1 -0
  574. package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts.map +1 -0
  575. package/lib/services/http/income-source/income-source-forecast/index.d.ts.map +1 -0
  576. package/lib/services/http/income-source/income-source.service.d.ts.map +1 -0
  577. package/lib/services/http/income-source/index.d.ts.map +1 -0
  578. package/lib/services/http/income-source/salary-forecast/index.d.ts.map +1 -0
  579. package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts.map +1 -0
  580. package/lib/services/http/income-source/sole-forecast/index.d.ts.map +1 -0
  581. package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts.map +1 -0
  582. package/lib/services/http/index.d.ts.map +1 -0
  583. package/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts.map +1 -0
  584. package/lib/services/http/loan/borrowing-expense/index.d.ts.map +1 -0
  585. package/lib/services/http/loan/index.d.ts.map +1 -0
  586. package/lib/services/http/loan/loan.service.d.ts.map +1 -0
  587. package/lib/services/http/property/index.d.ts.map +1 -0
  588. package/lib/services/http/property/property-category/index.d.ts.map +1 -0
  589. package/lib/services/http/property/property-category/property-category.service.d.ts.map +1 -0
  590. package/lib/services/http/property/property-category-movement/index.d.ts.map +1 -0
  591. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts.map +1 -0
  592. package/lib/services/http/property/property-document/index.d.ts.map +1 -0
  593. package/lib/services/http/property/property-document/property-document.service.d.ts.map +1 -0
  594. package/lib/services/http/property/property-sale/index.d.ts.map +1 -0
  595. package/lib/services/http/property/property-sale/property-sale.service.d.ts.map +1 -0
  596. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts.map +1 -0
  597. package/lib/services/http/property/property-share/index.d.ts.map +1 -0
  598. package/lib/services/http/property/property-share/property-share.service.d.ts.map +1 -0
  599. package/lib/services/http/property/property.service.d.ts.map +1 -0
  600. package/lib/services/http/receipt/index.d.ts.map +1 -0
  601. package/lib/services/http/receipt/receipt.service.d.ts.map +1 -0
  602. package/lib/services/http/service-notification/index.d.ts.map +1 -0
  603. package/lib/services/http/service-notification/service-notification.service.d.ts.map +1 -0
  604. package/lib/services/http/sole/bas-report/bas-report.service.d.ts.map +1 -0
  605. package/lib/services/http/sole/index.d.ts.map +1 -0
  606. package/lib/services/http/sole/sole-business/messages.enum.d.ts.map +1 -0
  607. package/lib/services/http/sole/sole-business/sole-business.service.d.ts.map +1 -0
  608. package/lib/services/http/sole/sole-business-activity/sole-business-activity.service.d.ts.map +1 -0
  609. package/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.d.ts.map +1 -0
  610. package/lib/services/http/sole/sole-business-loss/sole-business-loss.service.d.ts.map +1 -0
  611. package/lib/services/http/sole/sole-contact/sole-contact.service.d.ts.map +1 -0
  612. package/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.d.ts.map +1 -0
  613. package/lib/services/http/sole/sole-details/sole-details.service.d.ts.map +1 -0
  614. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts.map +1 -0
  615. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts.map +1 -0
  616. package/lib/services/http/subscription/index.d.ts.map +1 -0
  617. package/lib/services/http/subscription/service-price.service.d.ts.map +1 -0
  618. package/lib/services/http/subscription/subscription.service.d.ts.map +1 -0
  619. package/lib/services/http/tax-review/index.d.ts.map +1 -0
  620. package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts.map +1 -0
  621. package/lib/services/http/tax-review/tax-review.service.d.ts.map +1 -0
  622. package/lib/services/http/tax-summary/index.d.ts.map +1 -0
  623. package/lib/services/http/tax-summary/tax-summary.service.d.ts.map +1 -0
  624. package/lib/services/http/transaction/index.d.ts.map +1 -0
  625. package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts.map +1 -0
  626. package/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.d.ts.map +1 -0
  627. package/lib/services/http/transaction/transaction.service.d.ts +3 -10
  628. package/lib/services/http/transaction/transaction.service.d.ts.map +1 -0
  629. package/lib/services/http/tutorial-video/index.d.ts.map +1 -0
  630. package/lib/services/http/tutorial-video/tutorial-video-response.interface.d.ts.map +1 -0
  631. package/lib/services/http/tutorial-video/tutorial-video.service.d.ts.map +1 -0
  632. package/lib/services/http/tutorial-video/video-source.interface.d.ts.map +1 -0
  633. package/lib/services/http/user/index.d.ts.map +1 -0
  634. package/lib/services/http/user/occupation/occupation.service.d.ts.map +1 -0
  635. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts.map +1 -0
  636. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts.map +1 -0
  637. package/lib/services/http/user/users-invite/users-invite.service.d.ts.map +1 -0
  638. package/lib/services/http/vehicle/index.d.ts.map +1 -0
  639. package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts.map +1 -0
  640. package/lib/services/http/vehicle/vehicle-claim.service.d.ts.map +1 -0
  641. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts.map +1 -0
  642. package/lib/services/http/vehicle/vehicle.service.d.ts.map +1 -0
  643. package/lib/services/index.d.ts.map +1 -0
  644. package/lib/services/intercom/index.d.ts.map +1 -0
  645. package/lib/services/intercom/intercom.service.d.ts.map +1 -0
  646. package/lib/services/pdf/index.d.ts.map +1 -0
  647. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts.map +1 -0
  648. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts.map +1 -0
  649. package/lib/services/pdf/pdf-from-table/file-settings.d.ts.map +1 -0
  650. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts.map +1 -0
  651. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts.map +1 -0
  652. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts.map +1 -0
  653. package/lib/services/preloader/index.d.ts.map +1 -0
  654. package/lib/services/preloader/preloader.service.d.ts.map +1 -0
  655. package/lib/services/property/corelogic/index.d.ts.map +1 -0
  656. package/lib/services/property/equity-position-chart/equity-position-chart.service.d.ts.map +1 -0
  657. package/lib/services/property/equity-position-chart/index.d.ts.map +1 -0
  658. package/lib/services/property/index.d.ts.map +1 -0
  659. package/lib/services/property/property-calculation/index.d.ts.map +1 -0
  660. package/lib/services/property/property-calculation/property-calculation.service.d.ts.map +1 -0
  661. package/lib/services/report/index.d.ts.map +1 -0
  662. package/lib/services/report/property/property-transaction-report.service.d.ts +4 -7
  663. package/lib/services/report/property/property-transaction-report.service.d.ts.map +1 -0
  664. package/lib/services/toast/index.d.ts.map +1 -0
  665. package/lib/services/toast/toast.service.d.ts.map +1 -0
  666. package/lib/services/transaction/index.d.ts.map +1 -0
  667. package/lib/services/transaction/transaction-calculation.service.d.ts.map +1 -0
  668. package/lib/services/user/index.d.ts.map +1 -0
  669. package/lib/services/user/user-switcher.service.d.ts.map +1 -0
  670. package/lib/services/vehicle/index.d.ts.map +1 -0
  671. package/lib/services/vehicle/logbook-best-period.service.d.ts.map +1 -0
  672. package/lib/services/xlsx/index.d.ts.map +1 -0
  673. package/lib/services/xlsx/xlsx.service.d.ts.map +1 -0
  674. package/lib/tt-core.module.d.ts.map +1 -0
  675. package/lib/validators/address-corelogic.validator.d.ts.map +1 -0
  676. package/lib/validators/at-least-one-enabled.validator.d.ts.map +1 -0
  677. package/lib/validators/at-least-one.validator.d.ts.map +1 -0
  678. package/lib/validators/autocomplete.validator.d.ts.map +1 -0
  679. package/lib/validators/conditional.validator.d.ts.map +1 -0
  680. package/lib/validators/current-fin-year.validator.d.ts +5 -0
  681. package/lib/validators/current-fin-year.validator.d.ts.map +1 -0
  682. package/lib/validators/date-range.validator.d.ts.map +1 -0
  683. package/lib/validators/fields-sum.validator.d.ts.map +1 -0
  684. package/lib/validators/file.validator.d.ts +6 -0
  685. package/lib/validators/file.validator.d.ts.map +1 -0
  686. package/lib/validators/index.d.ts +2 -0
  687. package/lib/validators/index.d.ts.map +1 -0
  688. package/lib/validators/min-date/messages.enum.d.ts.map +1 -0
  689. package/lib/validators/min-date/min-date.validator.d.ts.map +1 -0
  690. package/lib/validators/password-match.validator.d.ts.map +1 -0
  691. package/lib/validators/password.validator.d.ts.map +1 -0
  692. package/lib/validators/phone-number.validator.d.ts.map +1 -0
  693. package/lib/validators/required-length.validator.d.ts.map +1 -0
  694. package/package.json +1 -1
  695. package/public-api.d.ts +11 -11
  696. package/public-api.d.ts.map +1 -0
  697. package/taxtank-core.d.ts.map +1 -0
  698. package/esm2015/lib/db/Enums/chart-accounts-metadata-type.enum.js +0 -6
  699. package/esm2015/lib/db/Enums/chart-accounts-type.enum.js +0 -6
@@ -2,9 +2,7 @@ import { Inject, Injectable } from '@angular/core';
2
2
  import { ReplaySubject } from 'rxjs';
3
3
  import { map } from 'rxjs/operators';
4
4
  import { plainToClass } from 'class-transformer';
5
- import { ChartAccounts } from '../../../models/chart-accounts/chart-accounts';
6
- import { ChartAccountsHeading } from '../../../models/chart-accounts/chart-accounts-heading';
7
- import { CHART_ACCOUNTS_CATEGORIES } from '../../../models/chart-accounts/chart-accounts-categories.const';
5
+ import { ChartAccounts, ChartAccountsHeading, CHART_ACCOUNTS_CATEGORIES } from '../../../models';
8
6
  import * as i0 from "@angular/core";
9
7
  import * as i1 from "@angular/common/http";
10
8
  /**
@@ -42,12 +40,11 @@ export class ChartAccountsService {
42
40
  }
43
41
  /**
44
42
  * Get list of chart accounts heading
45
- * @param categories
46
43
  */
47
- getChartAccountsHeadings(categories = CHART_ACCOUNTS_CATEGORIES.all) {
44
+ getChartAccountsHeadings(categories = CHART_ACCOUNTS_CATEGORIES.all, chartAccountsIds) {
48
45
  return this.getChartAccounts()
49
46
  .pipe(map((chartAccounts) => {
50
- const filteredChartAccounts = chartAccounts.filter((ca) => categories.includes(ca.category));
47
+ const filteredChartAccounts = chartAccounts.filter((ca) => categories.includes(ca.category) && (!chartAccountsIds || chartAccountsIds.includes(ca.id)));
51
48
  const headings = [];
52
49
  filteredChartAccounts.forEach((ca) => {
53
50
  let heading = headings.find((h) => { var _a; return h.id === ((_a = ca.heading) === null || _a === void 0 ? void 0 : _a.id); });
@@ -93,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
93
90
  type: Inject,
94
91
  args: ['environment']
95
92
  }] }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7O0FBRTNHOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUNVLElBQWdCLEVBQ08sV0FBZ0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBSmpELHlCQUFvQixHQUFtQyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7SUFNN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssaUJBQWlCLENBQUM7aUJBQ3RELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUE0QixF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SyxFQUFFLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs7a0hBMUZVLG9CQUFvQiw0Q0FNckIsYUFBYTtzSEFOWixvQkFBb0IsY0FGbkIsTUFBTTs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIGFzIENoYXJ0QWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzSGVhZGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy1oZWFkaW5nJztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XG5cbi8qKlxuICogQ2hhcnQgYWNjb3VudHMgc2VydmljZVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDaGFydEFjY291bnRzU2VydmljZSB7XG4gIF9jaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzW107XG4gIGNoYXJ0QWNjb3VudHNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PENoYXJ0QWNjb3VudHNbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDaGFydEFjY291bnRzW10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgYWxsIHBhcmVudCBhbmQgY2hpbGQgY2hhcnQgYWNjb3VudHMgYW5kIGdyb3VwIGl0XG4gICAqL1xuICBnZXRDaGFydEFjY291bnRzKCk6IE9ic2VydmFibGU8Q2hhcnRBY2NvdW50c1tdPiB7XG4gICAgaWYgKCF0aGlzLl9jaGFydEFjY291bnRzKSB7XG4gICAgICB0aGlzLl9jaGFydEFjY291bnRzID0gW107XG4gICAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L2NoYXJ0LWFjY291bnRzYClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogQ2hhcnRBY2NvdW50QmFzZVtdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UubWFwKChpdGVtOiBDaGFydEFjY291bnRCYXNlKSA9PiBwbGFpblRvQ2xhc3MoQ2hhcnRBY2NvdW50cywgaXRlbSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50c1tdKSA9PiB7XG4gICAgICAgICAgLy8gU29ydCBwZXJzb25hbCBjaGFydCBhY2NvdW50cyBieSBuYW1lIChUVC0xOTUwKVxuICAgICAgICAgIGNoYXJ0QWNjb3VudHMuc29ydCgoYTogQ2hhcnRBY2NvdW50cywgYjogQ2hhcnRBY2NvdW50cykgPT4ge1xuICAgICAgICAgICAgaWYgKGEuaXNQZXJzb25hbCgpICYmIGIuaXNQZXJzb25hbCgpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBhLm5hbWUgPiBiLm5hbWUgPyAxIDogLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5fY2hhcnRBY2NvdW50cyA9IGNoYXJ0QWNjb3VudHM7XG4gICAgICAgICAgdGhpcy5jaGFydEFjY291bnRzU3ViamVjdC5uZXh0KHRoaXMuX2NoYXJ0QWNjb3VudHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBjaGFydCBhY2NvdW50cyBoZWFkaW5nXG4gICAqIEBwYXJhbSBjYXRlZ29yaWVzXG4gICAqL1xuICBnZXRDaGFydEFjY291bnRzSGVhZGluZ3MoY2F0ZWdvcmllczogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdID0gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5hbGwpOiBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNIZWFkaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGFydEFjY291bnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50c1tdID0gY2hhcnRBY2NvdW50cy5maWx0ZXIoKGNhOiBDaGFydEFjY291bnRzKSA9PiBjYXRlZ29yaWVzLmluY2x1ZGVzKGNhLmNhdGVnb3J5KSk7XG4gICAgICAgICAgY29uc3QgaGVhZGluZ3M6IENoYXJ0QWNjb3VudHNIZWFkaW5nW10gPSBbXTtcblxuICAgICAgICAgIGZpbHRlcmVkQ2hhcnRBY2NvdW50cy5mb3JFYWNoKChjYTogQ2hhcnRBY2NvdW50cykgPT4ge1xuICAgICAgICAgICAgbGV0IGhlYWRpbmc6IENoYXJ0QWNjb3VudHNIZWFkaW5nID0gaGVhZGluZ3MuZmluZCgoaDogQ2hhcnRBY2NvdW50c0hlYWRpbmcpID0+IGguaWQgPT09IGNhLmhlYWRpbmc/LmlkKTtcblxuICAgICAgICAgICAgaWYgKCFoZWFkaW5nKSB7XG4gICAgICAgICAgICAgIGhlYWRpbmcgPSBwbGFpblRvQ2xhc3MoQ2hhcnRBY2NvdW50c0hlYWRpbmcsIGNhLmhlYWRpbmcpO1xuICAgICAgICAgICAgICBoZWFkaW5nLmNoYXJ0QWNjb3VudHMgPSBbXTtcbiAgICAgICAgICAgICAgaGVhZGluZ3MucHVzaChoZWFkaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGVhZGluZy5jaGFydEFjY291bnRzLnB1c2goY2EpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBoZWFkaW5ncztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGhlYWRpbmcgb2YgY2hhcnQgYWNjb3VudHMgYnkgaXQgSWRcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBnZXRIZWFkaW5nQnlDaGFydEFjY291bnRzSWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q2hhcnRBY2NvdW50c0hlYWRpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGFydEFjY291bnRzQnlJZChpZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hhcnRBY2NvdW50cy5oZWFkaW5nO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2hhcnQgYWNjb3VudHMgYnkgSWRcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBnZXRDaGFydEFjY291bnRzQnlJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDaGFydEFjY291bnRzPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hhcnRBY2NvdW50cygpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjaGFydEFjY291bnRzTGlzdDogQ2hhcnRBY2NvdW50c1tdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoYXJ0QWNjb3VudHNMaXN0LmZpbmQoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMpID0+IGNoYXJ0QWNjb3VudHMuaWQgPT09IGlkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRWpHOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUNVLElBQWdCLEVBQ08sV0FBZ0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBSmpELHlCQUFvQixHQUFtQyxJQUFJLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7SUFNN0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssaUJBQWlCLENBQUM7aUJBQ3RELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7Z0JBQ25DLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQXNCLEVBQUUsRUFBRSxDQUFD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QyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOztrSEEzRlUsb0JBQW9CLDRDQU1yQixhQUFhO3NIQU5aLG9CQUFvQixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIGFzIENoYXJ0QWNjb3VudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cywgQ2hhcnRBY2NvdW50c0hlYWRpbmcsIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIENoYXJ0IGFjY291bnRzIHNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRBY2NvdW50c1NlcnZpY2Uge1xuICBfY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50c1tdO1xuICBjaGFydEFjY291bnRzU3ViamVjdDogUmVwbGF5U3ViamVjdDxDaGFydEFjY291bnRzW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8Q2hhcnRBY2NvdW50c1tdPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGFsbCBwYXJlbnQgYW5kIGNoaWxkIGNoYXJ0IGFjY291bnRzIGFuZCBncm91cCBpdFxuICAgKi9cbiAgZ2V0Q2hhcnRBY2NvdW50cygpOiBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNbXT4ge1xuICAgIGlmICghdGhpcy5fY2hhcnRBY2NvdW50cykge1xuICAgICAgdGhpcy5fY2hhcnRBY2NvdW50cyA9IFtdO1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9jaGFydC1hY2NvdW50c2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IENoYXJ0QWNjb3VudEJhc2VbXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogQ2hhcnRBY2NvdW50QmFzZSkgPT4gcGxhaW5Ub0NsYXNzKENoYXJ0QWNjb3VudHMsIGl0ZW0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNbXSkgPT4ge1xuICAgICAgICAgIC8vIFNvcnQgcGVyc29uYWwgY2hhcnQgYWNjb3VudHMgYnkgbmFtZSAoVFQtMTk1MClcbiAgICAgICAgICBjaGFydEFjY291bnRzLnNvcnQoKGE6IENoYXJ0QWNjb3VudHMsIGI6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgICAgICAgIGlmIChhLmlzUGVyc29uYWwoKSAmJiBiLmlzUGVyc29uYWwoKSkge1xuICAgICAgICAgICAgICByZXR1cm4gYS5uYW1lID4gYi5uYW1lID8gMSA6IC0xO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9KVxuICAgICAgICAgIHRoaXMuX2NoYXJ0QWNjb3VudHMgPSBjaGFydEFjY291bnRzO1xuICAgICAgICAgIHRoaXMuY2hhcnRBY2NvdW50c1N1YmplY3QubmV4dCh0aGlzLl9jaGFydEFjY291bnRzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgY2hhcnQgYWNjb3VudHMgaGVhZGluZ1xuICAgKi9cbiAgZ2V0Q2hhcnRBY2NvdW50c0hlYWRpbmdzKGNhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXSA9IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuYWxsLCBjaGFydEFjY291bnRzSWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNIZWFkaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGFydEFjY291bnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50c1tdID0gY2hhcnRBY2NvdW50cy5maWx0ZXIoXG4gICAgICAgICAgICAoY2E6IENoYXJ0QWNjb3VudHMpID0+IGNhdGVnb3JpZXMuaW5jbHVkZXMoY2EuY2F0ZWdvcnkpICYmICghY2hhcnRBY2NvdW50c0lkcyB8fCBjaGFydEFjY291bnRzSWRzLmluY2x1ZGVzKGNhLmlkKSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGhlYWRpbmdzOiBDaGFydEFjY291bnRzSGVhZGluZ1tdID0gW107XG5cbiAgICAgICAgICBmaWx0ZXJlZENoYXJ0QWNjb3VudHMuZm9yRWFjaCgoY2E6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgICAgICAgIGxldCBoZWFkaW5nOiBDaGFydEFjY291bnRzSGVhZGluZyA9IGhlYWRpbmdzLmZpbmQoKGg6IENoYXJ0QWNjb3VudHNIZWFkaW5nKSA9PiBoLmlkID09PSBjYS5oZWFkaW5nPy5pZCk7XG5cbiAgICAgICAgICAgIGlmICghaGVhZGluZykge1xuICAgICAgICAgICAgICBoZWFkaW5nID0gcGxhaW5Ub0NsYXNzKENoYXJ0QWNjb3VudHNIZWFkaW5nLCBjYS5oZWFkaW5nKTtcbiAgICAgICAgICAgICAgaGVhZGluZy5jaGFydEFjY291bnRzID0gW107XG4gICAgICAgICAgICAgIGhlYWRpbmdzLnB1c2goaGVhZGluZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhlYWRpbmcuY2hhcnRBY2NvdW50cy5wdXNoKGNhKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gaGVhZGluZ3M7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBoZWFkaW5nIG9mIGNoYXJ0IGFjY291bnRzIGJ5IGl0IElkXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgZ2V0SGVhZGluZ0J5Q2hhcnRBY2NvdW50c0lkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNIZWFkaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hhcnRBY2NvdW50c0J5SWQoaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoYXJ0QWNjb3VudHMuaGVhZGluZztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNoYXJ0IGFjY291bnRzIGJ5IElkXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgZ2V0Q2hhcnRBY2NvdW50c0J5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Q2hhcnRBY2NvdW50cz4ge1xuICAgIHJldHVybiB0aGlzLmdldENoYXJ0QWNjb3VudHMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2hhcnRBY2NvdW50c0xpc3Q6IENoYXJ0QWNjb3VudHNbXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBjaGFydEFjY291bnRzTGlzdC5maW5kKChjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzKSA9PiBjaGFydEFjY291bnRzLmlkID09PSBpZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -1,24 +1,19 @@
1
1
  import { EventEmitter, Inject, Injectable } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
3
  import { replace, sort } from '../../../functions/array';
4
- import { enumToList } from '../../../functions/enum-to-list';
5
- import { ChartAccountsHeadingTaxableEnum } from '../../../db/Enums/chart-accounts-heading-taxable.enum';
6
- import { ChartAccountsHeadingTaxDeductibleEnum } from '../../../db/Enums/chart-accounts-heading-tax-deductible.enum';
7
4
  import { TransactionOperationEnum } from '../../../db/Enums/transaction-operation.enum';
8
5
  import { RestService } from '../rest/rest-old.service';
9
6
  import { plainToClass } from 'class-transformer';
10
- import { CHART_ACCOUNTS_CATEGORIES } from '../../../models/chart-accounts/chart-accounts-categories.const';
11
- import { Transaction } from '../../../models/transaction/transaction';
7
+ import { Transaction } from '../../../models';
12
8
  import { AppEventTypeEnum } from '../../../models/event/app-event-type.enum';
13
9
  import { AppEvent } from '../../../models/event/app-event';
14
10
  import _ from 'lodash';
15
- import { ChartAccountsTaxLabelsEnum } from '../../../models/chart-accounts/chart-accounts-tax-labels.enum';
16
11
  import { PropertyCategoryListEnum } from '../../../db/Enums/property/property-category-list.enum';
17
- import { TransactionCollection } from '../../../collections/transaction/transaction.collection';
12
+ import { TransactionCollection } from '../../../collections';
18
13
  import * as i0 from "@angular/core";
19
14
  import * as i1 from "@angular/common/http";
20
- import * as i2 from "../../event/event-dispatcher.service";
21
- import * as i3 from "../../toast/toast.service";
15
+ import * as i2 from "../../event";
16
+ import * as i3 from "../../toast";
22
17
  import * as i4 from "./transaction-receipt/transaction-receipt.service";
23
18
  /**
24
19
  * Service for transactions business logic
@@ -267,31 +262,6 @@ export class TransactionService extends RestService {
267
262
  }
268
263
  return amount;
269
264
  }
270
- /**
271
- * get label for transaction tax field depended of selected chart account.
272
- * tax type depends of chart account heading or category.
273
- */
274
- getTaxLabel(chartAccounts) {
275
- var _a, _b;
276
- // get simple array of ids from enum with taxable chart accounts headings
277
- const taxableCAHeadingsIds = enumToList(ChartAccountsHeadingTaxableEnum)
278
- .map((item) => item.value);
279
- // get simple array of ids from enum with tax deductible chart accounts headings
280
- const deductibleCAHeadingsIds = enumToList(ChartAccountsHeadingTaxDeductibleEnum)
281
- .map((item) => item.value);
282
- // check if one of ids arrays includes current chart accounts heading id and set tax label
283
- // otherwise label is empty for this class
284
- switch (true) {
285
- case taxableCAHeadingsIds.includes((_a = chartAccounts.heading) === null || _a === void 0 ? void 0 : _a.id):
286
- return ChartAccountsTaxLabelsEnum.TAX_PAID;
287
- case deductibleCAHeadingsIds.includes((_b = chartAccounts.heading) === null || _b === void 0 ? void 0 : _b.id):
288
- return ChartAccountsTaxLabelsEnum.TAX_DEDUCTED;
289
- case CHART_ACCOUNTS_CATEGORIES.workIncome.includes(chartAccounts.category):
290
- return ChartAccountsTaxLabelsEnum.TAX_WITHHELD;
291
- default:
292
- return null;
293
- }
294
- }
295
265
  /**
296
266
  * Listen to EventDispatcherService event related to Depreciation changing
297
267
  */
@@ -366,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
366
336
  type: Inject,
367
337
  args: ['environment']
368
338
  }] }, { type: i3.ToastService }, { type: i4.TransactionReceiptService }]; } });
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNySCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHM0QsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdE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Q0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsb0JBQWlDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7Z0hBOVlVLGtCQUFrQixrRkFTbkIsYUFBYTtvSEFUWixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UsIHNvcnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgZW51bVRvTGlzdCB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9lbnVtLXRvLWxpc3QnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0hlYWRpbmdUYXhhYmxlRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWhlYWRpbmctdGF4YWJsZS5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNIZWFkaW5nVGF4RGVkdWN0aWJsZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheC1kZWR1Y3RpYmxlLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy1jYXRlZ29yaWVzLmNvbnN0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNlaXB0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLXJlY2VpcHQnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdGF4LWxhYmVscy5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHRTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1yZWNlaXB0L3RyYW5zYWN0aW9uLXJlY2VpcHQuc2VydmljZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtJRXZlbnRMaXN0ZW5lcn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHRyYW5zYWN0aW9ucyBidXNpbmVzcyBsb2dpY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxUcmFuc2FjdGlvbkJhc2UsIFRyYW5zYWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gdXJsIHBhcnQgZm9yIFRyYW5zYWN0aW9uIEFQSVxuICB1cmw6IHN0cmluZyA9ICd0cmFuc2FjdGlvbnMnO1xuICBtb2RlbENsYXNzID0gVHJhbnNhY3Rpb247XG4gIHRyYW5zYWN0aW9uRGVsZXRlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvblJlY2VpcHRTZXJ2aWNlOiBUcmFuc2FjdGlvblJlY2VpcHRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50LCB0b2FzdFNlcnZpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBldmVudHMgZnJvbSBFdmVudCBEaXNwYXRjaGVyIHNlcnZpY2VzXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5EZXByZWNpYXRpb25DaGFuZ2UoKTtcbiAgICB0aGlzLmxpc3RlblByb3BlcnR5U2hhcmVVcGRhdGUoKTtcbiAgICB0aGlzLmxpc3RlblJlY2VpcHRBZGRlZCgpO1xuICAgIHRoaXMubGlzdGVuUmVjZWlwdERlbGV0ZWQoKTtcbiAgICB0aGlzLmxpc3RlblZlaGljbGVDbGFpbUNoYW5nZXMoKTtcbiAgICB0aGlzLmxpc3RlblByb3BlcnR5Rm9yZWNhc3RVcGRhdGUoKTtcbiAgICB0aGlzLmxpc3Rlbkludm9pY2VzUHVibGlzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsaXN0IG9mIGFsbCB1c2VyJ3MgVGF4VGFuayB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIC8vIHNldCBjYWNoZSBhcyBkZWZhdWx0IGVtcHR5IGFycmF5IHRvIGF2b2lkIG11bHRpcGxlIGJhY2tlbmQgcmVxdWVzdHNcbiAgICAgIHRoaXMuY2FjaGUgPSBbXTtcbiAgICAgIHRoaXMuZmV0Y2goKVxuICAgICAgICAuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IHtcbiAgICAgICAgICB0aGlzLmNhY2hlID0gdHJhbnNhY3Rpb25zO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAvLyBhc3NpZ24gY2hpbGQgdHJhbnNhY3Rpb25zIChmZWVzKSB0byBwYXJlbnQgdHJhbnNhY3Rpb25zXG4gICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4ge1xuICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCA9PiB7XG4gICAgICAgICAgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zID0gdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBnZXQgbGlzdCBvZiBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0LnBhcmVudFRyYW5zYWN0aW9uICYmIHQucGFyZW50VHJhbnNhY3Rpb24uaWQgPT09IHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNvcnQodHJhbnNhY3Rpb25zLCAnZGF0ZScsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgc2luZ2xlIG5ldyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gbW9kZWwgTmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZChtb2RlbDogVHJhbnNhY3Rpb24pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSBQT1NUIEFQSSBlbmRwb2ludCBmb3Igc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW21vZGVsXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld1RyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uID0+IHtcbiAgICAgICAgICAvLyBAVE9ETyBhbGV4XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0NSRUFURUQsIG5ld1RyYW5zYWN0aW9uc1swXSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uc1swXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRyYW5zYWN0aW9ucyByZWxhdGVkIHdpdGggcHJvcGVydHlcbiAgICovXG4gIGdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLnByb3BlcnR5Py5pZCA9PT0gcHJvcGVydHlJZDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIHdpdGggdGFuayB0eXBlICdXb3JrJ1xuICAgKi9cbiAgZ2V0V29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNXb3JrVGFuaygpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgcHJvcGVydHkgaG9sZGluZyBjb3N0cyAodHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gdmFjYW50IGxhbmQgcHJvcGVydHkpXG4gICAqL1xuICBnZXRQcm9wZXJ0eUhvbGRpbmdDb3N0cyhwcm9wZXJ0eUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKVxuICAgICAgICAgICAgLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIHByb3BlcnR5SWQpXG4gICAgICAgICAgICAuZmlsdGVyQnkoJ3Byb3BlcnR5LmNhdGVnb3J5LmlkJywgUHJvcGVydHlDYXRlZ29yeUxpc3RFbnVtLlZBQ0FOVF9MQU5EKVxuICAgICAgICAgICAgLnRvQXJyYXkoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdGF4YWJsZSB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRUYXhhYmxlV29ya1RyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRXb3JrVHJhbnNhY3Rpb25zKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10gPT4ge1xuICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbnMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+ICEhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy50YXhSZXR1cm5JdGVtKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG11bHRpcGxlIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zIExpc3Qgb2YgbmV3IFRyYW5zYWN0aW9uIGluc3RhbmNlcyBmb3Igc2F2aW5nXG4gICAqL1xuICBhZGRCYXRjaCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uW10+IHtcbiAgICB0cmFuc2FjdGlvbnMgPSBfLmNsb25lRGVlcCh0cmFuc2FjdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIHRyYW5zYWN0aW9ucylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkJhc2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFkZGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChpdGVtOiBUcmFuc2FjdGlvbkJhc2UpID0+IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgaXRlbSkpO1xuXG4gICAgICAgICAgdHJhbnNhY3Rpb25zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gQFRPRE8gYmFja2VuZDogbmVlZCB0byB1cGxvYWQgZmlsZSBpbiB0aGUgc2FtZSBiYWNrZW5kIGVuZHBvaW50IHdpdGggdHJhbnNhY3Rpb24gYWRkL3VwZGF0ZVxuICAgICAgICAgICAgLy8gY2hlY2sgaWYgcGFzc2VkIHJlY2VpcHQgYW5kIHVwbG9hZCBmaWxlXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5pZCA9IHJlc3BvbnNlW2luZGV4XS5pZDtcbiAgICAgICAgICAgICAgYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdLmZpbGUgPSB0cmFuc2FjdGlvbi5maWxlO1xuICAgICAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fVVBEQVRFRF9XSVRIX1JFQ0VJUFQsIGFkZGVkVHJhbnNhY3Rpb25zW2luZGV4XSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICAvLyBhZGQgY2hpbGQgdHJhbnNhY3Rpb25zIGlmIGV4aXN0XG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gcGxhaW5Ub0NsYXNzKFRyYW5zYWN0aW9uLCB7aWQ6IGFkZGVkVHJhbnNhY3Rpb25zW2luZGV4XS5pZH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5hZGRCYXRjaCh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBhZGQgdHJhbnNmZXIgdHJhbnNhY3Rpb24gdG8gY2FjaGVcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5UUkFOU0ZFUikge1xuICAgICAgICAgICAgICBhZGRlZFRyYW5zYWN0aW9ucy5wdXNoKGFkZGVkVHJhbnNhY3Rpb25zWzBdLnRyYW5zZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2goLi4uYWRkZWRUcmFuc2FjdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbltdPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OU19DUkVBVEVELCBhZGRlZFRyYW5zYWN0aW9ucylcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGFkZGVkVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgZXhpc3RpbmcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIFRyYW5zYWN0aW9uIGluc3RhbmNlIGZvciB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke3RyYW5zYWN0aW9uLmlkfWAsIHRyYW5zYWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSBwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb24sIHJlc3BvbnNlKTtcblxuICAgICAgICAgIC8vIEBUT0RPIG5lZWQgdG8gdXBsb2FkIGZpbGUgaW4gdGhlIHNhbWUgYmFja2VuZCBlbmRwb2ludCB3aXRoIHRyYW5zYWN0aW9uIGFkZC91cGRhdGVcbiAgICAgICAgICAvLyBjaGVjayBpZiBwYXNzZWQgbmV3IHJlY2VpcHQgYW5kIHVwbG9hZCBmaWxlXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLmZpbGUpIHtcbiAgICAgICAgICAgIHVwZGF0ZWRUcmFuc2FjdGlvbi5maWxlID0gdHJhbnNhY3Rpb24uZmlsZTtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfUkVDRUlQVCwgdXBkYXRlZFRyYW5zYWN0aW9uKSk7XG4gICAgICAgICAgICAvLyByZWNlaXB0IGZpbGUgd2FzIHJlbW92ZWQgZnJvbSBmb3JtIC0gd2Ugc2hvdWxkIGRlbGV0ZSByZWNlaXB0IGZyb20gdHJhbnNhY3Rpb25cbiAgICAgICAgICB9IGVsc2UgaWYgKCF0cmFuc2FjdGlvbi5maWxlICYmIHRyYW5zYWN0aW9uLnJlY2VpcHQpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfREVMRVRFRF9SRUNFSVBULCB1cGRhdGVkVHJhbnNhY3Rpb24pKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBAVE9ETyBWaWt0b3I6IGltcGxlbWVudCBBUEkgZm9yIHNhdmluZyBvZiBuZXN0ZWQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGFkZCBwYXJlbnQgdHJhbnNhY3Rpb24gdG8gY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZm9yRWFjaCgoY2hpbGRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgY2hpbGRUcmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwge2lkOiB1cGRhdGVkVHJhbnNhY3Rpb24uaWR9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gc2VwYXJhdGUgY2hpbGQgdHJhbnNhY3Rpb25zIGJ5IGlkIGV4aXN0aW5nIHRvIGRlZmluZSBhZGQgb3IgdXBkYXRlIGFjdGlvbi5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGU6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbikgPT4gdC5pZCk7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFRyYW5zYWN0aW9uc1RvQWRkOiBUcmFuc2FjdGlvbltdID0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmZpbHRlcigodDogVHJhbnNhY3Rpb24pID0+ICF0LmlkKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKGNoaWxkVHJhbnNhY3Rpb25zVG9VcGRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlQmF0Y2goY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZSkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChjaGlsZFRyYW5zYWN0aW9uc1RvQWRkLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVwbGFjZUluQ2FjaGUodXBkYXRlZFRyYW5zYWN0aW9uKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkVHJhbnNhY3Rpb247XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBtdWx0aXBsZSB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9ucyBsaXN0IG9mIHRyYW5zYWN0aW9ucyBmb3IgdXBkYXRpbmdcbiAgICovXG4gIHVwZGF0ZUJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgdHJhbnNhY3Rpb25zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogVHJhbnNhY3Rpb25CYXNlKSA9PiBwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb24sIGl0ZW0pKTtcblxuICAgICAgICAgIHVwZGF0ZWRUcmFuc2FjdGlvbnMuZm9yRWFjaCgodXBkYXRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkVHJhbnNhY3Rpb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkVHJhbnNhY3Rpb25zO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWxldGUgdHJhbnNhY3Rpb24gYW5kIHJlbGF0ZWQgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSBtb2RlbFxuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWwuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0aGlzLmNhY2hlLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAvLyB3aGVuIGRlbGV0ZSB0cmFuc2ZlciB3ZSBkZWxldGUgYWN0dWFsbHkgMiB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIGlmIChtb2RlbC5pc1RyYW5zZmVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSBbbW9kZWwuaWRdO1xuXG4gICAgICAgICAgICAgIC8vIGdldCBpZCBvZiByZWxhdGVkIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgIGlmIChtb2RlbC50cmFuc2Zlcikge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgdGFrZSBpZCBpZiB3ZSBkZWxldGUgc291cmNlIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2gobW9kZWwudHJhbnNmZXIuaWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGZpbmQgc291cmNlIHRyYW5zYWN0aW9uIGlkIGlmIHdlIGRlbGV0ZSBkZXN0aW5hdGlvbiB0cmFuc2FjdGlvblxuICAgICAgICAgICAgICAgIGlkcy5wdXNoKHRoaXMuY2FjaGUuZmluZCgodDogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHQudHJhbnNmZXIuaWQgPT09IG1vZGVsLmlkKS5pZCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gIWlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pZCAhPT0gbW9kZWwuaWQgJiYgdHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24/LmlkICE9PSBtb2RlbC5pZDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBBcHBFdmVudDxUcmFuc2FjdGlvbj4oQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9ERUxFVEVELCBtb2RlbClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25EZWxldGVkLmVtaXQobW9kZWwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxjdWxhdGUgZ3Jvc3MgaW5jb21lIGFtb3VudCBiYXNlZCBvbiB0cmFuc2FjdGlvbiBhbW91bnQgYW5kIHRheGVzIChmZWVzKVxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIGNhbGN1bGF0aW9uXG4gICAqL1xuICBjYWxjdWxhdGVHcm9zc0Ftb3VudCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIge1xuICAgIGxldCBhbW91bnQ6IG51bWJlciA9IHRyYW5zYWN0aW9uLmFtb3VudCB8fCAwO1xuXG4gICAgLy8gZ3Jvc3MgaW5jb21lIGFtb3VudCBpbmNsdWRlcyBhbW91bnQgb2YgZmVlcyBmb3IgcHJvcGVydHkgdGFuayBhbmQgdGF4IGZvciB3b3JrIHRhbmtcbiAgICBpZiAodHJhbnNhY3Rpb24uaXNQcm9wZXJ0eVRhbmsoKSkge1xuICAgICAgYW1vdW50ICs9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgaXRlbS5hbW91bnQsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAVE9ETyBBbGV4OiBmaXggbG9naWMgYWZ0ZXIgVFQtNjQxIHJlYWR5XG4gICAgICBhbW91bnQgKz0gKHRyYW5zYWN0aW9uLnRheCB8fCAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBsYWJlbCBmb3IgdHJhbnNhY3Rpb24gdGF4IGZpZWxkIGRlcGVuZGVkIG9mIHNlbGVjdGVkIGNoYXJ0IGFjY291bnQuXG4gICAqIHRheCB0eXBlIGRlcGVuZHMgb2YgY2hhcnQgYWNjb3VudCBoZWFkaW5nIG9yIGNhdGVnb3J5LlxuICAgKi9cbiAgZ2V0VGF4TGFiZWwoY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cyk6IENoYXJ0QWNjb3VudHNUYXhMYWJlbHNFbnVtIHtcbiAgICAvLyBnZXQgc2ltcGxlIGFycmF5IG9mIGlkcyBmcm9tIGVudW0gd2l0aCB0YXhhYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXG4gICAgY29uc3QgdGF4YWJsZUNBSGVhZGluZ3NJZHM6IG51bWJlcltdID0gZW51bVRvTGlzdChDaGFydEFjY291bnRzSGVhZGluZ1RheGFibGVFbnVtKVxuICAgICAgLm1hcCgoaXRlbTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIH0pID0+IGl0ZW0udmFsdWUpO1xuICAgIC8vIGdldCBzaW1wbGUgYXJyYXkgb2YgaWRzIGZyb20gZW51bSB3aXRoIHRheCBkZWR1Y3RpYmxlIGNoYXJ0IGFjY291bnRzIGhlYWRpbmdzXG4gICAgY29uc3QgZGVkdWN0aWJsZUNBSGVhZGluZ3NJZHM6IG51bWJlcltdID0gZW51bVRvTGlzdChDaGFydEFjY291bnRzSGVhZGluZ1RheERlZHVjdGlibGVFbnVtKVxuICAgICAgLm1hcCgoaXRlbTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIH0pID0+IGl0ZW0udmFsdWUpO1xuXG4gICAgLy8gY2hlY2sgaWYgb25lIG9mIGlkcyBhcnJheXMgaW5jbHVkZXMgY3VycmVudCBjaGFydCBhY2NvdW50cyBoZWFkaW5nIGlkIGFuZCBzZXQgdGF4IGxhYmVsXG4gICAgLy8gb3RoZXJ3aXNlIGxhYmVsIGlzIGVtcHR5IGZvciB0aGlzIGNsYXNzXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRheGFibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKGNoYXJ0QWNjb3VudHMuaGVhZGluZz8uaWQpOlxuICAgICAgICByZXR1cm4gQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0uVEFYX1BBSUQ7XG4gICAgICBjYXNlIGRlZHVjdGlibGVDQUhlYWRpbmdzSWRzLmluY2x1ZGVzKGNoYXJ0QWNjb3VudHMuaGVhZGluZz8uaWQpOlxuICAgICAgICByZXR1cm4gQ2hhcnRBY2NvdW50c1RheExhYmVsc0VudW0uVEFYX0RFRFVDVEVEO1xuICAgICAgY2FzZSBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcmtJbmNvbWUuaW5jbHVkZXMoY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk6XG4gICAgICAgIHJldHVybiBDaGFydEFjY291bnRzVGF4TGFiZWxzRW51bS5UQVhfV0lUSEhFTEQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBEZXByZWNpYXRpb24gY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHdlIG5ldmVyIGRpc3BhdGNoIERFUFJFQ0lBVElPTl9ERUxFVEVEXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uREVQUkVDSUFUSU9OX0RFTEVURUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoKClcbiAgICAgICAgLnN1YnNjcmliZSgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRyYW5zYWN0aW9ucztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gUHJvcGVydHkgU2hhcmUgY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlTaGFyZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5SZWNlaXB0QWRkZWQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fUkVDRUlQVF9DUkVBVEVEKS5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uUmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0KSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvblRvVXBkYXRlOiBUcmFuc2FjdGlvbiA9IHRoaXMuZmluZCh0cmFuc2FjdGlvblJlY2VpcHQudHJhbnNhY3Rpb24uaWQpO1xuXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGtlZXAgZmlsZSBhZnRlciBzYXZlXG4gICAgICB0cmFuc2FjdGlvblRvVXBkYXRlLmZpbGUgPSBudWxsO1xuICAgICAgdHJhbnNhY3Rpb25Ub1VwZGF0ZS5yZWNlaXB0ID0gdHJhbnNhY3Rpb25SZWNlaXB0O1xuICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvVXBkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuUmVjZWlwdERlbGV0ZWQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fUkVDRUlQVF9ERUxFVEVEKS5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb25Ub1VwZGF0ZTogVHJhbnNhY3Rpb24gPSB0aGlzLmZpbmQodHJhbnNhY3Rpb24uaWQpO1xuXG4gICAgICB0cmFuc2FjdGlvblRvVXBkYXRlLnJlY2VpcHQgPSBudWxsO1xuICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvVXBkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVmVoaWNsZUNsYWltQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW1xuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0NSRUFURUQsXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fVVBEQVRFRCxcbiAgICAgIEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9ERVRBSUxTX1VQREFURURcbiAgICBdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9wZXJ0eSBmb3JlY2FzdCBpbmNsdWRlcyBjbGFpbVBlcmNlbnQgd2hpY2ggYWZmZWN0cyBwcm9wZXJ0eSByZWxhdGVkIGV4cGVuc2VzXG4gICAqIEBUT0RPIEFsZXggbW92ZSB0byBmb3JlY2FzdCBhcGkgaW5zdGVhZCBvZiBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvUmVwbGFjZTogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHRyYW5zYWN0aW9uVG9SZXBsYWNlKTtcbiAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbkludm9pY2VzUHVibGlzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5TT0xFX0lOVk9JQ0VfUFVCTElTSEVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSlcbiAgfVxufVxuIl19
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBS2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFHN0Q7O0dBRUc7QUFJSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBeUM7SUFNL0UsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0IsRUFDdkMsWUFBMEIsRUFDNUIseUJBQW9EO1FBRTVELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFlB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QUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsb0JBQWlDO1FBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7Z0hBcFhVLGtCQUFrQixrRkFTbkIsYUFBYTtvSEFUWixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UsIHNvcnQgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0L3Jlc3Qtb2xkLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUmVjZWlwdCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1saXN0LmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNlaXB0U2VydmljZSB9IGZyb20gJy4vdHJhbnNhY3Rpb24tcmVjZWlwdC90cmFuc2FjdGlvbi1yZWNlaXB0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQge0lFdmVudExpc3RlbmVyfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgdHJhbnNhY3Rpb25zIGJ1c2luZXNzIGxvZ2ljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFRyYW5zYWN0aW9uQmFzZSwgVHJhbnNhY3Rpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICAvLyB1cmwgcGFydCBmb3IgVHJhbnNhY3Rpb24gQVBJXG4gIHVybDogc3RyaW5nID0gJ3RyYW5zYWN0aW9ucyc7XG4gIG1vZGVsQ2xhc3MgPSBUcmFuc2FjdGlvbjtcbiAgdHJhbnNhY3Rpb25EZWxldGVkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uUmVjZWlwdFNlcnZpY2U6IFRyYW5zYWN0aW9uUmVjZWlwdFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQsIHRvYXN0U2VydmljZSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGV2ZW50cyBmcm9tIEV2ZW50IERpc3BhdGNoZXIgc2VydmljZXNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbkRlcHJlY2lhdGlvbkNoYW5nZSgpO1xuICAgIHRoaXMubGlzdGVuUHJvcGVydHlTaGFyZVVwZGF0ZSgpO1xuICAgIHRoaXMubGlzdGVuUmVjZWlwdEFkZGVkKCk7XG4gICAgdGhpcy5saXN0ZW5SZWNlaXB0RGVsZXRlZCgpO1xuICAgIHRoaXMubGlzdGVuVmVoaWNsZUNsYWltQ2hhbmdlcygpO1xuICAgIHRoaXMubGlzdGVuUHJvcGVydHlGb3JlY2FzdFVwZGF0ZSgpO1xuICAgIHRoaXMubGlzdGVuSW52b2ljZXNQdWJsaXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgYWxsIHVzZXIncyBUYXhUYW5rIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgLy8gc2V0IGNhY2hlIGFzIGRlZmF1bHQgZW1wdHkgYXJyYXkgdG8gYXZvaWQgbXVsdGlwbGUgYmFja2VuZCByZXF1ZXN0c1xuICAgICAgdGhpcy5jYWNoZSA9IFtdO1xuICAgICAgdGhpcy5mZXRjaCgpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSB0cmFuc2FjdGlvbnM7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIC8vIGFzc2lnbiBjaGlsZCB0cmFuc2FjdGlvbnMgKGZlZXMpIHRvIHBhcmVudCB0cmFuc2FjdGlvbnNcbiAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB7XG4gICAgICAgIHRyYW5zYWN0aW9ucy5mb3JFYWNoKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkID0+IHtcbiAgICAgICAgICB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC8vIGdldCBsaXN0IG9mIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLmZpbHRlcigodDogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHQucGFyZW50VHJhbnNhY3Rpb24gJiYgdC5wYXJlbnRUcmFuc2FjdGlvbi5pZCA9PT0gdHJhbnNhY3Rpb24uaWQpO1xuICAgICAgICB9KTtcbiAgICAgICAgc29ydCh0cmFuc2FjdGlvbnMsICdkYXRlJywgZmFsc2UpO1xuICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzaW5nbGUgbmV3IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBtb2RlbCBOZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHNhdmluZ1xuICAgKi9cbiAgYWRkKG1vZGVsOiBUcmFuc2FjdGlvbik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb24+IHtcbiAgICAvLyB3ZSBkb24ndCBoYXZlIFBPU1QgQVBJIGVuZHBvaW50IGZvciBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICByZXR1cm4gdGhpcy5hZGRCYXRjaChbbW9kZWxdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3VHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb24gPT4ge1xuICAgICAgICAgIC8vIEBUT0RPIGFsZXhcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgQXBwRXZlbnQ8VHJhbnNhY3Rpb24+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fQ1JFQVRFRCwgbmV3VHJhbnNhY3Rpb25zWzBdKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3VHJhbnNhY3Rpb25zWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgd2l0aCBwcm9wZXJ0eVxuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucHJvcGVydHk/LmlkID09PSBwcm9wZXJ0eUlkO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0cmFuc2FjdGlvbnMgd2l0aCB0YW5rIHR5cGUgJ1dvcmsnXG4gICAqL1xuICBnZXRXb3JrVHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHtcbiAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBwcm9wZXJ0eSBob2xkaW5nIGNvc3RzICh0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byB2YWNhbnQgbGFuZCBwcm9wZXJ0eSlcbiAgICovXG4gIGdldFByb3BlcnR5SG9sZGluZ0Nvc3RzKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMpXG4gICAgICAgICAgICAuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgcHJvcGVydHlJZClcbiAgICAgICAgICAgIC5maWx0ZXJCeSgncHJvcGVydHkuY2F0ZWdvcnkuaWQnLCBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uVkFDQU5UX0xBTkQpXG4gICAgICAgICAgICAudG9BcnJheSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiB0YXhhYmxlIHRyYW5zYWN0aW9ucyB3aXRoIHRhbmsgdHlwZSAnV29yaydcbiAgICovXG4gIGdldFRheGFibGVXb3JrVHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmdldFdvcmtUcmFuc2FjdGlvbnMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gISF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLnRheFJldHVybkl0ZW0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgbXVsdGlwbGUgdHJhbnNhY3Rpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbnMgTGlzdCBvZiBuZXcgVHJhbnNhY3Rpb24gaW5zdGFuY2VzIGZvciBzYXZpbmdcbiAgICovXG4gIGFkZEJhdGNoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25bXT4ge1xuICAgIHRyYW5zYWN0aW9ucyA9IF8uY2xvbmVEZWVwKHRyYW5zYWN0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgdHJhbnNhY3Rpb25zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uQmFzZVtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkZWRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IFRyYW5zYWN0aW9uQmFzZSkgPT4gcGxhaW5Ub0NsYXNzKFRyYW5zYWN0aW9uLCBpdGVtKSk7XG5cbiAgICAgICAgICB0cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAvLyBAVE9ETyBiYWNrZW5kOiBuZWVkIHRvIHVwbG9hZCBmaWxlIGluIHRoZSBzYW1lIGJhY2tlbmQgZW5kcG9pbnQgd2l0aCB0cmFuc2FjdGlvbiBhZGQvdXBkYXRlXG4gICAgICAgICAgICAvLyBjaGVjayBpZiBwYXNzZWQgcmVjZWlwdCBhbmQgdXBsb2FkIGZpbGVcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi5maWxlKSB7XG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmlkID0gcmVzcG9uc2VbaW5kZXhdLmlkO1xuICAgICAgICAgICAgICBhZGRlZFRyYW5zYWN0aW9uc1tpbmRleF0uZmlsZSA9IHRyYW5zYWN0aW9uLmZpbGU7XG4gICAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5UUkFOU0FDVElPTl9VUERBVEVEX1dJVEhfUkVDRUlQVCwgYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC8vIGFkZCBjaGlsZCB0cmFuc2FjdGlvbnMgaWYgZXhpc3RcbiAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNoaWxkVHJhbnNhY3Rpb24ucGFyZW50VHJhbnNhY3Rpb24gPSBwbGFpblRvQ2xhc3MoVHJhbnNhY3Rpb24sIHtpZDogYWRkZWRUcmFuc2FjdGlvbnNbaW5kZXhdLmlkfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFkZEJhdGNoKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGFkZCB0cmFuc2ZlciB0cmFuc2FjdGlvbiB0byBjYWNoZVxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSKSB7XG4gICAgICAgICAgICAgIGFkZGVkVHJhbnNhY3Rpb25zLnB1c2goYWRkZWRUcmFuc2FjdGlvbnNbMF0udHJhbnNmZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hZGRlZFRyYW5zYWN0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uW10+KEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05TX0NSRUFURUQsIGFkZGVkVHJhbnNhY3Rpb25zKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gYWRkZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSBleGlzdGluZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gVHJhbnNhY3Rpb24gaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqL1xuICB1cGRhdGUodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7dHJhbnNhY3Rpb24uaWR9YCwgdHJhbnNhY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgcmVzcG9uc2UpO1xuXG4gICAgICAgICAgLy8gQFRPRE8gbmVlZCB0byB1cGxvYWQgZmlsZSBpbiB0aGUgc2FtZSBiYWNrZW5kIGVuZHBvaW50IHdpdGggdHJhbnNhY3Rpb24gYWRkL3VwZGF0ZVxuICAgICAgICAgIC8vIGNoZWNrIGlmIHBhc3NlZCBuZXcgcmVjZWlwdCBhbmQgdXBsb2FkIGZpbGVcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24uZmlsZSkge1xuICAgICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9uLmZpbGUgPSB0cmFuc2FjdGlvbi5maWxlO1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1VQREFURURfV0lUSF9SRUNFSVBULCB1cGRhdGVkVHJhbnNhY3Rpb24pKTtcbiAgICAgICAgICAgIC8vIHJlY2VpcHQgZmlsZSB3YXMgcmVtb3ZlZCBmcm9tIGZvcm0gLSB3ZSBzaG91bGQgZGVsZXRlIHJlY2VpcHQgZnJvbSB0cmFuc2FjdGlvblxuICAgICAgICAgIH0gZWxzZSBpZiAoIXRyYW5zYWN0aW9uLmZpbGUgJiYgdHJhbnNhY3Rpb24ucmVjZWlwdCkge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX1VQREFURURfV0lUSF9ERUxFVEVEX1JFQ0VJUFQsIHVwZGF0ZWRUcmFuc2FjdGlvbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEBUT0RPIFZpa3RvcjogaW1wbGVtZW50IEFQSSBmb3Igc2F2aW5nIG9mIG5lc3RlZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gYWRkIHBhcmVudCB0cmFuc2FjdGlvbiB0byBjaGlsZCB0cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5mb3JFYWNoKChjaGlsZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICBjaGlsZFRyYW5zYWN0aW9uLnBhcmVudFRyYW5zYWN0aW9uID0gcGxhaW5Ub0NsYXNzKFRyYW5zYWN0aW9uLCB7aWQ6IHVwZGF0ZWRUcmFuc2FjdGlvbi5pZH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBzZXBhcmF0ZSBjaGlsZCB0cmFuc2FjdGlvbnMgYnkgaWQgZXhpc3RpbmcgdG8gZGVmaW5lIGFkZCBvciB1cGRhdGUgYWN0aW9uLlxuICAgICAgICAgICAgY29uc3QgY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZTogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9ucy5maWx0ZXIoKHQ6IFRyYW5zYWN0aW9uKSA9PiB0LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQ6IFRyYW5zYWN0aW9uW10gPSB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbnMuZmlsdGVyKCh0OiBUcmFuc2FjdGlvbikgPT4gIXQuaWQpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgY2hpbGQgdHJhbnNhY3Rpb25zXG4gICAgICAgICAgICBpZiAoY2hpbGRUcmFuc2FjdGlvbnNUb1VwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVCYXRjaChjaGlsZFRyYW5zYWN0aW9uc1RvVXBkYXRlKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIGNoaWxkIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKGNoaWxkVHJhbnNhY3Rpb25zVG9BZGQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkQmF0Y2goY2hpbGRUcmFuc2FjdGlvbnNUb0FkZCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh1cGRhdGVkVHJhbnNhY3Rpb24pO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogdXBkYXRlIG11bHRpcGxlIHRyYW5zYWN0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25zIGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZvciB1cGRhdGluZ1xuICAgKi9cbiAgdXBkYXRlQmF0Y2godHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCB0cmFuc2FjdGlvbnMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogVHJhbnNhY3Rpb25CYXNlW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gcmVzcG9uc2UubWFwKChpdGVtOiBUcmFuc2FjdGlvbkJhc2UpID0+IHBsYWluVG9DbGFzcyhUcmFuc2FjdGlvbiwgaXRlbSkpO1xuXG4gICAgICAgICAgdXBkYXRlZFRyYW5zYWN0aW9ucy5mb3JFYWNoKCh1cGRhdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRUcmFuc2FjdGlvbik7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRUcmFuc2FjdGlvbnM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSB0cmFuc2FjdGlvbiBhbmQgcmVsYXRlZCB0cmFuc2FjdGlvbnNcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqL1xuICBkZWxldGUobW9kZWw6IFRyYW5zYWN0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbC5pZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRoaXMuY2FjaGUuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIC8vIHdoZW4gZGVsZXRlIHRyYW5zZmVyIHdlIGRlbGV0ZSBhY3R1YWxseSAyIHRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgaWYgKG1vZGVsLmlzVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IFttb2RlbC5pZF07XG5cbiAgICAgICAgICAgICAgLy8gZ2V0IGlkIG9mIHJlbGF0ZWQgdHJhbnNmZXIgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgaWYgKG1vZGVsLnRyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCB0YWtlIGlkIGlmIHdlIGRlbGV0ZSBzb3VyY2UgdHJhbnNhY3Rpb25cbiAgICAgICAgICAgICAgICBpZHMucHVzaChtb2RlbC50cmFuc2Zlci5pZCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZmluZCBzb3VyY2UgdHJhbnNhY3Rpb24gaWQgaWYgd2UgZGVsZXRlIGRlc3RpbmF0aW9uIHRyYW5zYWN0aW9uXG4gICAgICAgICAgICAgICAgaWRzLnB1c2godGhpcy5jYWNoZS5maW5kKCh0OiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdC50cmFuc2Zlci5pZCA9PT0gbW9kZWwuaWQpLmlkKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiAhaWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlkICE9PSBtb2RlbC5pZCAmJiB0cmFuc2FjdGlvbi5wYXJlbnRUcmFuc2FjdGlvbj8uaWQgIT09IG1vZGVsLmlkO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEFwcEV2ZW50PFRyYW5zYWN0aW9uPihBcHBFdmVudFR5cGVFbnVtLlRSQU5TQUNUSU9OX0RFTEVURUQsIG1vZGVsKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkRlbGV0ZWQuZW1pdChtb2RlbCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGN1bGF0ZSBncm9zcyBpbmNvbWUgYW1vdW50IGJhc2VkIG9uIHRyYW5zYWN0aW9uIGFtb3VudCBhbmQgdGF4ZXMgKGZlZXMpXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiBpbnN0YW5jZSBmb3IgY2FsY3VsYXRpb25cbiAgICovXG4gIGNhbGN1bGF0ZUdyb3NzQW1vdW50KHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGFtb3VudDogbnVtYmVyID0gdHJhbnNhY3Rpb24uYW1vdW50IHx8IDA7XG5cbiAgICAvLyBncm9zcyBpbmNvbWUgYW1vdW50IGluY2x1ZGVzIGFtb3VudCBvZiBmZWVzIGZvciBwcm9wZXJ0eSB0YW5rIGFuZCB0YXggZm9yIHdvcmsgdGFua1xuICAgIGlmICh0cmFuc2FjdGlvbi5pc1Byb3BlcnR5VGFuaygpKSB7XG4gICAgICBhbW91bnQgKz0gdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyBpdGVtLmFtb3VudCwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEBUT0RPIEFsZXg6IGZpeCBsb2dpYyBhZnRlciBUVC02NDEgcmVhZHlcbiAgICAgIGFtb3VudCArPSAodHJhbnNhY3Rpb24udGF4IHx8IDApO1xuICAgIH1cblxuICAgIHJldHVybiBhbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBEZXByZWNpYXRpb24gY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRGVwcmVjaWF0aW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHdlIG5ldmVyIGRpc3BhdGNoIERFUFJFQ0lBVElPTl9ERUxFVEVEXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uREVQUkVDSUFUSU9OX0RFTEVURUQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZldGNoKClcbiAgICAgICAgLnN1YnNjcmliZSgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRyYW5zYWN0aW9ucztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gUHJvcGVydHkgU2hhcmUgY2hhbmdpbmdcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuUHJvcGVydHlTaGFyZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9TSEFSRV9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5SZWNlaXB0QWRkZWQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fUkVDRUlQVF9DUkVBVEVEKS5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uUmVjZWlwdDogVHJhbnNhY3Rpb25SZWNlaXB0KSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvblRvVXBkYXRlOiBUcmFuc2FjdGlvbiA9IHRoaXMuZmluZCh0cmFuc2FjdGlvblJlY2VpcHQudHJhbnNhY3Rpb24uaWQpO1xuXG4gICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGtlZXAgZmlsZSBhZnRlciBzYXZlXG4gICAgICB0cmFuc2FjdGlvblRvVXBkYXRlLmZpbGUgPSBudWxsO1xuICAgICAgdHJhbnNhY3Rpb25Ub1VwZGF0ZS5yZWNlaXB0ID0gdHJhbnNhY3Rpb25SZWNlaXB0O1xuICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvVXBkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuUmVjZWlwdERlbGV0ZWQoKSB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uVFJBTlNBQ1RJT05fUkVDRUlQVF9ERUxFVEVEKS5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb25Ub1VwZGF0ZTogVHJhbnNhY3Rpb24gPSB0aGlzLmZpbmQodHJhbnNhY3Rpb24uaWQpO1xuXG4gICAgICB0cmFuc2FjdGlvblRvVXBkYXRlLnJlY2VpcHQgPSBudWxsO1xuICAgICAgdGhpcy5yZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvVXBkYXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVmVoaWNsZUNsYWltQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oW1xuICAgICAgQXBwRXZlbnRUeXBlRW51bS5WRUhJQ0xFX0NMQUlNX0NSRUFURUQsXG4gICAgICBBcHBFdmVudFR5cGVFbnVtLlZFSElDTEVfQ0xBSU1fVVBEQVRFRCxcbiAgICAgIEFwcEV2ZW50VHlwZUVudW0uVkVISUNMRV9DTEFJTV9ERVRBSUxTX1VQREFURURcbiAgICBdKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBwcm9wZXJ0eSBmb3JlY2FzdCBpbmNsdWRlcyBjbGFpbVBlcmNlbnQgd2hpY2ggYWZmZWN0cyBwcm9wZXJ0eSByZWxhdGVkIGV4cGVuc2VzXG4gICAqIEBUT0RPIEFsZXggbW92ZSB0byBmb3JlY2FzdCBhcGkgaW5zdGVhZCBvZiBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Qcm9wZXJ0eUZvcmVjYXN0VXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihbQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVEXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlSW5DYWNoZSh0cmFuc2FjdGlvblRvUmVwbGFjZTogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHRyYW5zYWN0aW9uVG9SZXBsYWNlKTtcbiAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbkludm9pY2VzUHVibGlzaCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5TT0xFX0lOVk9JQ0VfUFVCTElTSEVEKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgfSlcbiAgfVxufVxuIl19
@@ -1,19 +1,16 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { combineLatest } from 'rxjs';
3
+ import { CHART_ACCOUNTS_CATEGORIES } from '../../../models';
3
4
  import { DepreciationCollection } from '../../../collections/depreciation.collection';
4
- import { CHART_ACCOUNTS_CATEGORIES } from '../../../models/chart-accounts/chart-accounts-categories.const';
5
- import { Collection } from '../../../collections/collection';
5
+ import { Collection } from '../../../collections';
6
6
  import { CollectionDictionary } from '../../../collections/collection-dictionary';
7
- import { TransactionCollection } from '../../../collections/transaction/transaction.collection';
7
+ import { TransactionCollection } from '../../../collections';
8
8
  import { map } from 'rxjs/operators';
9
9
  import { PropertyReportItemTransactionCollection } from '../../../collections/report/property/property-report-item-transaction.collection';
10
10
  import { PropertyReportItemDepreciationCollection } from '../../../collections/report/property/property-report-item-depreciation.collection';
11
11
  import { PropertyReportItemCollection } from '../../../collections/report/property/property-report-item.collection';
12
12
  import * as i0 from "@angular/core";
13
- import * as i1 from "../../http/property/property.service";
14
- import * as i2 from "../../http/transaction/transaction.service";
15
- import * as i3 from "../../http/depreciation/depreciation.service";
16
- import * as i4 from "../../http/chart-accounts/chart-accounts.service";
13
+ import * as i1 from "../../http";
17
14
  /**
18
15
  * Service to handle Property transactions report items data (get income / expense report items, e.t.c.)
19
16
  */
@@ -64,12 +61,12 @@ export class PropertyTransactionReportService {
64
61
  }));
65
62
  }
66
63
  }
67
- PropertyTransactionReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, deps: [{ token: i1.PropertyService }, { token: i2.TransactionService }, { token: i3.DepreciationService }, { token: i4.ChartAccountsService }], target: i0.ɵɵFactoryTarget.Injectable });
64
+ PropertyTransactionReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, deps: [{ token: i1.PropertyService }, { token: i1.TransactionService }, { token: i1.DepreciationService }, { token: i1.ChartAccountsService }], target: i0.ɵɵFactoryTarget.Injectable });
68
65
  PropertyTransactionReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, providedIn: 'root' });
69
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyTransactionReportService, decorators: [{
70
67
  type: Injectable,
71
68
  args: [{
72
69
  providedIn: 'root'
73
70
  }]
74
- }], ctorParameters: function () { return [{ type: i1.PropertyService }, { type: i2.TransactionService }, { type: i3.DepreciationService }, { type: i4.ChartAccountsService }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXRyYW5zYWN0aW9uLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDaEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFDTCx1Q0FBdUMsRUFDeEMsTUFBTSxrRkFBa0YsQ0FBQztBQUMxRixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sbUZBQW1GLENBQUM7QUFFM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7Ozs7OztBQUVwSDs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFNM0MsWUFDVSxlQUFnQyxFQUNoQyxrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLG9CQUEwQztRQUgxQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7SUFFcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELE9BQU8sYUFBYSxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFvQztZQUM1RCxJQUFJLENBQUMsZUFBZSxFQUF1QztZQUMzRCxJQUFJLENBQUMsZ0JBQWdCLEVBQXdDO1lBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBaUM7U0FDNUUsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixJQUFJLENBQUMsTUFBTSxDQUNULFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUM5QixFQUNELFlBQVksQ0FDYixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTyxNQUFNLENBQ1osWUFBbUMsRUFDbkMsYUFBcUMsRUFDckMsVUFBOEIsRUFDOUIsYUFBd0M7UUFFeEMsT0FBTyxJQUFJLDRCQUE0QixDQUFDO1lBQ3RDLEdBQUcsSUFBSSx1Q0FBdUMsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUs7WUFDN0YsR0FBRyxJQUFJLHdDQUF3QyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSztTQUNoRyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsWUFBMkIsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7aUJBQzNDLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUU7WUFDcEMsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztpQkFDN0MsNEJBQTRCLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDO2dCQUNqRSxtREFBbUQ7aUJBQ2xELDJCQUEyQixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7OzhIQTFFVSxnQ0FBZ0M7a0lBQWhDLGdDQUFnQyxjQUYvQixNQUFNOzRGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERlcHJlY2lhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMuc2VydmljZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uJztcbmltcG9ydCB7XG4gIFByb3BlcnR5UmVwb3J0SXRlbVRyYW5zYWN0aW9uQ29sbGVjdGlvblxufSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0tdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBQcm9wZXJ0eVJlcG9ydEl0ZW1EZXByZWNpYXRpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbS1kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgeyBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIFByb3BlcnR5IHRyYW5zYWN0aW9ucyByZXBvcnQgaXRlbXMgZGF0YSAoZ2V0IGluY29tZSAvIGV4cGVuc2UgcmVwb3J0IGl0ZW1zLCBlLnQuYy4pXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VHJhbnNhY3Rpb25SZXBvcnRTZXJ2aWNlIHtcbiAgcHJvcGVydGllczogUHJvcGVydHlbXTtcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb247XG4gIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb247XG4gIGNoYXJ0QWNjb3VudHM6IENvbGxlY3Rpb248Q2hhcnRBY2NvdW50cz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGVwcmVjaWF0aW9uU2VydmljZTogRGVwcmVjaWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0QWNjb3VudHNTZXJ2aWNlOiBDaGFydEFjY291bnRzU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiByZXBvcnQgaXRlbXMgYmFzZWQgb24gdHJhbnNhY3Rpb25zICYgZGVwcmVjaWF0aW9uc1xuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbkRpY3Rpb25hcnk8UHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbj4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQoKSBhcyBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgICB0aGlzLmdldFRyYW5zYWN0aW9ucygpIGFzIE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICAgIHRoaXMuZ2V0RGVwcmVjaWF0aW9ucygpIGFzIE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj4sXG4gICAgICB0aGlzLmNoYXJ0QWNjb3VudHNTZXJ2aWNlLmdldENoYXJ0QWNjb3VudHMoKSBhcyBPYnNlcnZhYmxlPENoYXJ0QWNjb3VudHNbXT5cbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zLCBjaGFydEFjY291bnRzXSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KFxuICAgICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25zLFxuICAgICAgICAgICAgZGVwcmVjaWF0aW9ucyxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBuZXcgQ29sbGVjdGlvbihjaGFydEFjY291bnRzKVxuICAgICAgICAgICksXG4gICAgICAgICAgJ3Byb3BlcnR5SWQnXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIGNoYXJ0QWNjb3VudHM6IENvbGxlY3Rpb248Q2hhcnRBY2NvdW50cz5cbiAgKTogUHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uKFtcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1UcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zLCBwcm9wZXJ0aWVzLCBjaGFydEFjY291bnRzKS5pdGVtcyxcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1EZXByZWNpYXRpb25Db2xsZWN0aW9uKGRlcHJlY2lhdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpLml0ZW1zLFxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRUcmFuc2FjdGlvbnMoKTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucylcbiAgICAgICAgICAuZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5KTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFzc2V0ICYgY2FwaXRhbCBwcm9wZXJ0eSBkZXByZWNpYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGdldERlcHJlY2lhdGlvbnMoKTogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVwcmVjaWF0aW9uU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oZGVwcmVjaWF0aW9ucylcbiAgICAgICAgICAuZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5KVxuICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgYm9ycm93aW5nIGV4cGVuc2VzIGZvciB0aGlzIHJlcG9ydFxuICAgICAgICAgIC5nZXRXaXRob3V0Qm9ycm93aW5nRXhwZW5zZXMoKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
71
+ }], ctorParameters: function () { return [{ type: i1.PropertyService }, { type: i1.TransactionService }, { type: i1.DepreciationService }, { type: i1.ChartAccountsService }]; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXRyYW5zYWN0aW9uLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQThCLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQ0wsdUNBQXVDLEVBQ3hDLE1BQU0sa0ZBQWtGLENBQUM7QUFDMUYsT0FBTyxFQUNMLHdDQUF3QyxFQUN6QyxNQUFNLG1GQUFtRixDQUFDO0FBQzNGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOzs7QUFFcEg7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0NBQWdDO0lBTTNDLFlBQ1UsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxvQkFBMEM7UUFIMUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBRXBELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBb0M7WUFDNUQsSUFBSSxDQUFDLGVBQWUsRUFBdUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixFQUF3QztZQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLEVBQWlDO1NBQzVFLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQy9ELE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsSUFBSSxDQUFDLE1BQU0sQ0FDVCxZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixJQUFJLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FDOUIsRUFDRCxZQUFZLENBQ2IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUNaLFlBQW1DLEVBQ25DLGFBQXFDLEVBQ3JDLFVBQThCLEVBQzlCLGFBQXdDO1FBRXhDLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQztZQUN0QyxHQUFHLElBQUksdUNBQXVDLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLO1lBQzdGLEdBQUcsSUFBSSx3Q0FBd0MsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUs7U0FDaEcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZTtRQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRTtZQUNsQyxPQUFPLElBQUkscUJBQXFCLENBQUMsWUFBWSxDQUFDO2lCQUMzQyw0QkFBNEIsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxhQUFhLENBQUM7aUJBQzdDLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztnQkFDakUsbURBQW1EO2lCQUNsRCwyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDOzs4SEExRVUsZ0NBQWdDO2tJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTs0RkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlTZXJ2aWNlLCBUcmFuc2FjdGlvblNlcnZpY2UsIERlcHJlY2lhdGlvblNlcnZpY2UsIENoYXJ0QWNjb3VudHNTZXJ2aWNlLCAgfSBmcm9tICcuLi8uLi9odHRwJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBDaGFydEFjY291bnRzLCBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHlSZXBvcnRJdGVtVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbS10cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7XG4gIFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLWRlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0uY29sbGVjdGlvbic7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgUHJvcGVydHkgdHJhbnNhY3Rpb25zIHJlcG9ydCBpdGVtcyBkYXRhIChnZXQgaW5jb21lIC8gZXhwZW5zZSByZXBvcnQgaXRlbXMsIGUudC5jLilcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlUcmFuc2FjdGlvblJlcG9ydFNlcnZpY2Uge1xuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdO1xuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbjtcbiAgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbjtcbiAgY2hhcnRBY2NvdW50czogQ29sbGVjdGlvbjxDaGFydEFjY291bnRzPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXByZWNpYXRpb25TZXJ2aWNlOiBEZXByZWNpYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRBY2NvdW50c1NlcnZpY2U6IENoYXJ0QWNjb3VudHNTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHJlcG9ydCBpdGVtcyBiYXNlZCBvbiB0cmFuc2FjdGlvbnMgJiBkZXByZWNpYXRpb25zXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uRGljdGlvbmFyeTxQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uPj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCgpIGFzIE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICAgIHRoaXMuZ2V0VHJhbnNhY3Rpb25zKCkgYXMgT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgICAgdGhpcy5nZXREZXByZWNpYXRpb25zKCkgYXMgT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPixcbiAgICAgIHRoaXMuY2hhcnRBY2NvdW50c1NlcnZpY2UuZ2V0Q2hhcnRBY2NvdW50cygpIGFzIE9ic2VydmFibGU8Q2hhcnRBY2NvdW50c1tdPlxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMsIGNoYXJ0QWNjb3VudHNdKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbkRpY3Rpb25hcnkoXG4gICAgICAgICAgdGhpcy5jcmVhdGUoXG4gICAgICAgICAgICB0cmFuc2FjdGlvbnMsXG4gICAgICAgICAgICBkZXByZWNpYXRpb25zLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIG5ldyBDb2xsZWN0aW9uKGNoYXJ0QWNjb3VudHMpXG4gICAgICAgICAgKSxcbiAgICAgICAgICAncHJvcGVydHlJZCdcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoXG4gICAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sXG4gICAgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gICAgY2hhcnRBY2NvdW50czogQ29sbGVjdGlvbjxDaGFydEFjY291bnRzPlxuICApOiBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24oW1xuICAgICAgLi4ubmV3IFByb3BlcnR5UmVwb3J0SXRlbVRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpLml0ZW1zLFxuICAgICAgLi4ubmV3IFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb24oZGVwcmVjaWF0aW9ucywgcHJvcGVydGllcywgY2hhcnRBY2NvdW50cykuaXRlbXMsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgcHJvcGVydHkgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKVxuICAgICAgICAgIC5nZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkpO1xuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYXNzZXQgJiBjYXBpdGFsIHByb3BlcnR5IGRlcHJlY2lhdGlvbnNcbiAgICovXG4gIHByaXZhdGUgZ2V0RGVwcmVjaWF0aW9ucygpOiBPYnNlcnZhYmxlPERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5kZXByZWNpYXRpb25TZXJ2aWNlLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbltdKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihkZXByZWNpYXRpb25zKVxuICAgICAgICAgIC5nZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkpXG4gICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCBib3Jyb3dpbmcgZXhwZW5zZXMgZm9yIHRoaXMgcmVwb3J0XG4gICAgICAgICAgLmdldFdpdGhvdXRCb3Jyb3dpbmdFeHBlbnNlcygpO1xuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { FinancialYear } from '../models/financial-year/financial-year';
2
+ /**
3
+ * Validation function, that checks If provided date is within a current financial year
4
+ */
5
+ export function currentFinYearValidator() {
6
+ const currentFinYear = new FinancialYear();
7
+ return (control) => {
8
+ if (!control.value || control.value >= currentFinYear.startDate && control.value <= currentFinYear.endDate) {
9
+ return null;
10
+ }
11
+ return { notCurrentFinYear: true };
12
+ };
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVudC1maW4teWVhci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9jdXJyZW50LWZpbi15ZWFyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFeEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE1BQU0sY0FBYyxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRTFELE9BQU8sQ0FBQyxPQUF3QixFQUFvQixFQUFFO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLGNBQWMsQ0FBQyxPQUFPLEVBQUU7WUFDMUcsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuXG4vKipcbiAqIFZhbGlkYXRpb24gZnVuY3Rpb24sIHRoYXQgY2hlY2tzIElmIHByb3ZpZGVkIGRhdGUgaXMgd2l0aGluIGEgY3VycmVudCBmaW5hbmNpYWwgeWVhclxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VycmVudEZpblllYXJWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICBjb25zdCBjdXJyZW50RmluWWVhcjogRmluYW5jaWFsWWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCk7XG5cbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcbiAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZSA+PSBjdXJyZW50RmluWWVhci5zdGFydERhdGUgJiYgY29udHJvbC52YWx1ZSA8PSBjdXJyZW50RmluWWVhci5lbmREYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge25vdEN1cnJlbnRGaW5ZZWFyOiB0cnVlfTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { DOCUMENT_FILE_TYPES } from '../models/document/document-file-types.const';
2
+ const MAX_SIZE = 4194304;
3
+ export class FileValidator {
4
+ // File max size check
5
+ static fileMaxSize(maxSize = MAX_SIZE) {
6
+ const validatorFn = (file) => {
7
+ return file.size > maxSize ? { fileMaxSize: { maxSize } } : null;
8
+ };
9
+ return FileValidator.fileValidation(validatorFn);
10
+ }
11
+ // File extension check
12
+ static fileExtensions(allowedExtensions = DOCUMENT_FILE_TYPES.all) {
13
+ const validatorFn = (file) => {
14
+ return allowedExtensions.includes(file.type) ? null : { fileExtension: { allowedExtensions: allowedExtensions.join() } };
15
+ };
16
+ return FileValidator.fileValidation(validatorFn);
17
+ }
18
+ static fileValidation(validatorFn) {
19
+ return (formControl) => {
20
+ if (!formControl.value) {
21
+ return null;
22
+ }
23
+ return validatorFn(formControl.value);
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9maWxlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVuRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFFekIsTUFBTSxPQUFPLGFBQWE7SUFDeEIsc0JBQXNCO0lBQ3RCLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBa0IsUUFBUTtRQUMzQyxNQUFNLFdBQVcsR0FBUSxDQUFDLElBQVUsRUFBVSxFQUFFO1lBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pFLENBQUMsQ0FBQztRQUNGLE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLENBQUMsb0JBQThCLG1CQUFtQixDQUFDLEdBQUc7UUFDekUsTUFBTSxXQUFXLEdBQVEsQ0FBQyxJQUFVLEVBQVUsRUFBRTtZQUM5QyxPQUFPLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBQyxFQUFFLENBQUM7UUFDekgsQ0FBQyxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQTBDO1FBQ3RFLE9BQU8sQ0FBQyxXQUF3QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4sIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRE9DVU1FTlRfRklMRV9UWVBFUyB9IGZyb20gJy4uL21vZGVscy9kb2N1bWVudC9kb2N1bWVudC1maWxlLXR5cGVzLmNvbnN0JztcblxuY29uc3QgTUFYX1NJWkUgPSA0MTk0MzA0O1xuXG5leHBvcnQgY2xhc3MgRmlsZVZhbGlkYXRvciB7XG4gIC8vIEZpbGUgbWF4IHNpemUgY2hlY2tcbiAgc3RhdGljIGZpbGVNYXhTaXplKG1heFNpemU6IG51bWJlciA9IE1BWF9TSVpFKTogVmFsaWRhdG9yRm4ge1xuICAgIGNvbnN0IHZhbGlkYXRvckZuOiBhbnkgPSAoZmlsZTogRmlsZSk6IG9iamVjdCA9PiB7XG4gICAgICByZXR1cm4gZmlsZS5zaXplID4gbWF4U2l6ZSA/IHsgZmlsZU1heFNpemU6IHttYXhTaXplfSB9IDogbnVsbDtcbiAgICB9O1xuICAgIHJldHVybiBGaWxlVmFsaWRhdG9yLmZpbGVWYWxpZGF0aW9uKHZhbGlkYXRvckZuKTtcbiAgfVxuXG4gIC8vIEZpbGUgZXh0ZW5zaW9uIGNoZWNrXG4gIHN0YXRpYyBmaWxlRXh0ZW5zaW9ucyhhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBET0NVTUVOVF9GSUxFX1RZUEVTLmFsbCk6IFZhbGlkYXRvckZuIHtcbiAgICBjb25zdCB2YWxpZGF0b3JGbjogYW55ID0gKGZpbGU6IEZpbGUpOiBvYmplY3QgPT4ge1xuICAgICAgcmV0dXJuIGFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKGZpbGUudHlwZSkgPyBudWxsIDogeyBmaWxlRXh0ZW5zaW9uOiB7YWxsb3dlZEV4dGVuc2lvbnM6IGFsbG93ZWRFeHRlbnNpb25zLmpvaW4oKX0gfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEZpbGVWYWxpZGF0b3IuZmlsZVZhbGlkYXRpb24odmFsaWRhdG9yRm4pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZmlsZVZhbGlkYXRpb24odmFsaWRhdG9yRm46IChGaWxlOiBGaWxlKSA9PiBudWxsIHwgb2JqZWN0KTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSA9PiB7XG4gICAgICBpZiAoIWZvcm1Db250cm9sLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsaWRhdG9yRm4oZm9ybUNvbnRyb2wudmFsdWUpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -5,4 +5,6 @@ export * from './password.validator';
5
5
  export * from './password-match.validator';
6
6
  export * from './min-date/min-date.validator';
7
7
  export * from './fields-sum.validator';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdC1sZWFzdC1vbmUudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2NvbXBsZXRlLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbmRpdGlvbmFsLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLW1hdGNoLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21pbi1kYXRlL21pbi1kYXRlLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkcy1zdW0udmFsaWRhdG9yJztcbiJdfQ==
8
+ export * from './current-fin-year.validator';
9
+ export * from './file.validator';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXQtbGVhc3Qtb25lLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZS52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb25kaXRpb25hbC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1tYXRjaC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9taW4tZGF0ZS9taW4tZGF0ZS52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZHMtc3VtLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2N1cnJlbnQtZmluLXllYXIudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS52YWxpZGF0b3InO1xuIl19