taxtank-core 0.0.2 → 0.0.3

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 (794) hide show
  1. package/bundles/taxtank-core.umd.js +11955 -31
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/abstract.collection.js +67 -0
  4. package/esm2015/lib/collections/bank-account.collection.js +135 -0
  5. package/esm2015/lib/collections/bank-transaction.collection.js +119 -0
  6. package/esm2015/lib/collections/client-movement.collection.js +31 -0
  7. package/esm2015/lib/collections/client-portfolio-report.collection.js +40 -0
  8. package/esm2015/lib/collections/client.collection.js +4 -0
  9. package/esm2015/lib/collections/collection-dictionary.js +83 -0
  10. package/esm2015/lib/collections/depreciation-forecast.collection.js +19 -0
  11. package/esm2015/lib/collections/depreciation.collection.js +67 -0
  12. package/esm2015/lib/collections/employee.collection.js +12 -0
  13. package/esm2015/lib/collections/income-source.collection.js +38 -0
  14. package/esm2015/lib/collections/loan.collection.js +18 -0
  15. package/esm2015/lib/collections/logbook.collection.js +97 -0
  16. package/esm2015/lib/collections/message-document.collection.js +13 -0
  17. package/esm2015/lib/collections/message.collection.js +21 -0
  18. package/esm2015/lib/collections/property.collection.js +65 -0
  19. package/esm2015/lib/collections/service-price.collection.js +10 -0
  20. package/esm2015/lib/collections/service-subscription.collection.js +17 -0
  21. package/esm2015/lib/collections/tax-return-category-item.collection.js +141 -0
  22. package/esm2015/lib/collections/tax-review.collection.js +55 -0
  23. package/esm2015/lib/collections/transaction-allocation.collection.js +40 -0
  24. package/esm2015/lib/collections/transaction.collection.js +120 -0
  25. package/esm2015/lib/collections/user-event-setting.collection.js +62 -0
  26. package/esm2015/lib/db/Enums/address-type.enum.js +6 -0
  27. package/esm2015/lib/db/Enums/bank-account-status.enum.js +6 -0
  28. package/esm2015/lib/db/Enums/bank-account-type.enum.js +12 -0
  29. package/esm2015/lib/db/Enums/bank-connection-status.enum.js +7 -0
  30. package/esm2015/lib/db/Enums/bank-transaction-type.enum.js +6 -0
  31. package/esm2015/lib/db/Enums/chart-accounts-category.enum.js +15 -0
  32. package/esm2015/lib/db/Enums/chart-accounts-etp.enum.js +9 -0
  33. package/esm2015/lib/db/Enums/chart-accounts-heading-tax-deductible.enum.js +8 -0
  34. package/esm2015/lib/db/Enums/chart-accounts-heading-taxable.enum.js +8 -0
  35. package/esm2015/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.js +6 -0
  36. package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +21 -0
  37. package/esm2015/lib/db/Enums/chart-accounts-metadata-list.enum.js +16 -0
  38. package/esm2015/lib/db/Enums/chart-accounts-metadata-type.enum.js +6 -0
  39. package/esm2015/lib/db/Enums/chart-accounts-type.enum.js +6 -0
  40. package/esm2015/lib/db/Enums/chat-status.enum.js +6 -0
  41. package/esm2015/lib/db/Enums/client-details-medicare-exemption.enum.js +7 -0
  42. package/esm2015/lib/db/Enums/client-details-work-depreciation-calculation.enum.js +6 -0
  43. package/esm2015/lib/db/Enums/client-details-working-holiday-maker.enum.js +7 -0
  44. package/esm2015/lib/db/Enums/client-invite-status.enum.js +6 -0
  45. package/esm2015/lib/db/Enums/client-invite-type.enum.js +6 -0
  46. package/esm2015/lib/db/Enums/depreciation-calculation-percent.enum.js +9 -0
  47. package/esm2015/lib/db/Enums/depreciation-calculation.enum.js +9 -0
  48. package/esm2015/lib/db/Enums/depreciation-type.enum.js +8 -0
  49. package/esm2015/lib/db/Enums/depreciation-write-off-amount.enum.js +6 -0
  50. package/esm2015/lib/db/Enums/firm-type.enum.js +6 -0
  51. package/esm2015/lib/db/Enums/income-source-type-list-other.enum.js +8 -0
  52. package/esm2015/lib/db/Enums/income-source-type-list-salary.enum.js +5 -0
  53. package/esm2015/lib/db/Enums/income-source-type-list-work.enum.js +10 -0
  54. package/esm2015/lib/db/Enums/income-source-type.enum.js +7 -0
  55. package/esm2015/lib/db/Enums/invite-status.enum.js +7 -0
  56. package/esm2015/lib/db/Enums/loan-bank-type.enum.js +12 -0
  57. package/esm2015/lib/db/Enums/loan-frequency.enum.js +8 -0
  58. package/esm2015/lib/db/Enums/loan-interest-type.enum.js +6 -0
  59. package/esm2015/lib/db/Enums/loan-payout-type.enum.js +6 -0
  60. package/esm2015/lib/db/Enums/loan-repayment-frequency.enum.js +7 -0
  61. package/esm2015/lib/db/Enums/loan-repayment-type.enum.js +6 -0
  62. package/esm2015/lib/db/Enums/loan-type.enum.js +14 -0
  63. package/esm2015/lib/db/Enums/loan-vehicle-type.enum.js +7 -0
  64. package/esm2015/lib/db/Enums/phone-type.enum.js +6 -0
  65. package/esm2015/lib/db/Enums/property-depreciation-calculation.enum.js +6 -0
  66. package/esm2015/lib/db/Enums/property-owner-access.enum.js +6 -0
  67. package/esm2015/lib/db/Enums/property-owner-status.enum.js +7 -0
  68. package/esm2015/lib/db/Enums/registration-invite-status.enum.js +6 -0
  69. package/esm2015/lib/db/Enums/salary-forecast-frequency.enum.js +8 -0
  70. package/esm2015/lib/db/Enums/service-notification-status.enum.js +7 -0
  71. package/esm2015/lib/db/Enums/service-notification-type.enum.js +6 -0
  72. package/esm2015/lib/db/Enums/service-payment-status.enum.js +6 -0
  73. package/esm2015/lib/db/Enums/service-price-recurring-interval.enum.js +8 -0
  74. package/esm2015/lib/db/Enums/service-price-type.enum.js +6 -0
  75. package/esm2015/lib/db/Enums/service-subscription-status.enum.js +10 -0
  76. package/esm2015/lib/db/Enums/spare-document-spare-type.enum.js +6 -0
  77. package/esm2015/lib/db/Enums/tank-type.enum.js +7 -0
  78. package/esm2015/lib/db/Enums/tax-calculation-medicare-exemption.enum.js +6 -0
  79. package/esm2015/lib/db/Enums/tax-calculation-type.enum.js +14 -0
  80. package/esm2015/lib/db/Enums/tax-return-category-list.enum.js +28 -0
  81. package/esm2015/lib/db/Enums/tax-return-category-section.enum.js +8 -0
  82. package/esm2015/lib/db/Enums/tax-review-status.enum.js +13 -0
  83. package/esm2015/lib/db/Enums/tax-summary-list.enum.js +17 -0
  84. package/esm2015/lib/db/Enums/tax-summary-section.enum.js +8 -0
  85. package/esm2015/lib/db/Enums/tax-summary-tax-summary.enum.js +17 -0
  86. package/esm2015/lib/db/Enums/ticket-feedback.enum.js +6 -0
  87. package/esm2015/lib/db/Enums/ticket-status.enum.js +9 -0
  88. package/esm2015/lib/db/Enums/ticket-types.enum.js +5 -0
  89. package/esm2015/lib/db/Enums/transaction-operation.enum.js +7 -0
  90. package/esm2015/lib/db/Enums/transaction-source.enum.js +6 -0
  91. package/esm2015/lib/db/Enums/transaction-type.enum.js +6 -0
  92. package/esm2015/lib/db/Enums/user-event-status.enum.js +8 -0
  93. package/esm2015/lib/db/Enums/user-event-type-frequency.enum.js +8 -0
  94. package/esm2015/lib/db/Enums/user-event-type-reminder-type.enum.js +8 -0
  95. package/esm2015/lib/db/Enums/user-event-type-reminder.enum.js +7 -0
  96. package/esm2015/lib/db/Enums/user-event-type-type.enum.js +35 -0
  97. package/esm2015/lib/db/Enums/user-medicare-exemption.enum.js +7 -0
  98. package/esm2015/lib/db/Enums/user-roles.enum.js +15 -0
  99. package/esm2015/lib/db/Enums/user-status.enum.js +8 -0
  100. package/esm2015/lib/db/Enums/user-title.enum.js +9 -0
  101. package/esm2015/lib/db/Enums/user-work-depreciation-calculation.enum.js +6 -0
  102. package/esm2015/lib/db/Enums/user-working-holiday-maker.enum.js +7 -0
  103. package/esm2015/lib/db/Enums/vehicle-claim-method.enum.js +6 -0
  104. package/esm2015/lib/db/Enums/vehicle-logbook-purpose.enum.js +6 -0
  105. package/esm2015/lib/db/Models/address.js +3 -0
  106. package/esm2015/lib/db/Models/bank-account-balance.js +3 -0
  107. package/esm2015/lib/db/Models/bank-account-property.js +3 -0
  108. package/esm2015/lib/db/Models/bank-account.js +3 -0
  109. package/esm2015/lib/db/Models/bank-connection.js +3 -0
  110. package/esm2015/lib/db/Models/bank-transaction-import.js +3 -0
  111. package/esm2015/lib/db/Models/bank-transaction.js +3 -0
  112. package/esm2015/lib/db/Models/bank.js +3 -0
  113. package/esm2015/lib/db/Models/basiq-job.js +3 -0
  114. package/esm2015/lib/db/Models/borrowing-expense-loan.js +3 -0
  115. package/esm2015/lib/db/Models/borrowing-expense.js +3 -0
  116. package/esm2015/lib/db/Models/capital-cost-property.js +3 -0
  117. package/esm2015/lib/db/Models/capital-cost.js +3 -0
  118. package/esm2015/lib/db/Models/chart-accounts-depreciation.js +3 -0
  119. package/esm2015/lib/db/Models/chart-accounts-heading.js +3 -0
  120. package/esm2015/lib/db/Models/chart-accounts-metadata.js +3 -0
  121. package/esm2015/lib/db/Models/chart-accounts-value.js +3 -0
  122. package/esm2015/lib/db/Models/chart-accounts.js +3 -0
  123. package/esm2015/lib/db/Models/chat.js +3 -0
  124. package/esm2015/lib/db/Models/client-details.js +3 -0
  125. package/esm2015/lib/db/Models/client-invite.js +3 -0
  126. package/esm2015/lib/db/Models/client-movement.js +3 -0
  127. package/esm2015/lib/db/Models/country.js +3 -0
  128. package/esm2015/lib/db/Models/depreciation-capital-project.js +3 -0
  129. package/esm2015/lib/db/Models/depreciation-forecast.js +3 -0
  130. package/esm2015/lib/db/Models/depreciation-receipt.js +3 -0
  131. package/esm2015/lib/db/Models/depreciation.js +4 -0
  132. package/esm2015/lib/db/Models/document-folder.js +3 -0
  133. package/esm2015/lib/db/Models/document.js +3 -0
  134. package/esm2015/lib/db/Models/employee-details.js +3 -0
  135. package/esm2015/lib/db/Models/employee-invite.js +3 -0
  136. package/esm2015/lib/db/Models/financial-data-system.js +3 -0
  137. package/esm2015/lib/db/Models/firm.js +3 -0
  138. package/esm2015/lib/db/Models/income-source-forecast.js +3 -0
  139. package/esm2015/lib/db/Models/income-source-type.js +3 -0
  140. package/esm2015/lib/db/Models/income-source.js +3 -0
  141. package/esm2015/lib/db/Models/loan-payout.js +3 -0
  142. package/esm2015/lib/db/Models/loan.js +3 -0
  143. package/esm2015/lib/db/Models/message-document.js +3 -0
  144. package/esm2015/lib/db/Models/message.js +3 -0
  145. package/esm2015/lib/db/Models/occupation.js +3 -0
  146. package/esm2015/lib/db/Models/phone.js +3 -0
  147. package/esm2015/lib/db/Models/property-capital-cost.js +3 -0
  148. package/esm2015/lib/db/Models/property-category-movement.js +3 -0
  149. package/esm2015/lib/db/Models/property-category.js +3 -0
  150. package/esm2015/lib/db/Models/property-document.js +3 -0
  151. package/esm2015/lib/db/Models/property-forecast.js +3 -0
  152. package/esm2015/lib/db/Models/property-owner.js +3 -0
  153. package/esm2015/lib/db/Models/property-sold.js +3 -0
  154. package/esm2015/lib/db/Models/property-subscription.js +3 -0
  155. package/esm2015/lib/db/Models/property-valuation.js +3 -0
  156. package/esm2015/lib/db/Models/property.js +3 -0
  157. package/esm2015/lib/db/Models/registration-invite.js +3 -0
  158. package/esm2015/lib/db/Models/salary-forecast.js +3 -0
  159. package/esm2015/lib/db/Models/service-notification.js +3 -0
  160. package/esm2015/lib/db/Models/service-payment.js +3 -0
  161. package/esm2015/lib/db/Models/service-price.js +3 -0
  162. package/esm2015/lib/db/Models/service-product.js +3 -0
  163. package/esm2015/lib/db/Models/service-subscription-item.js +3 -0
  164. package/esm2015/lib/db/Models/service-subscription.js +3 -0
  165. package/esm2015/lib/db/Models/tax-return-category.js +3 -0
  166. package/esm2015/lib/db/Models/tax-return-item.js +3 -0
  167. package/esm2015/lib/db/Models/tax-return.js +3 -0
  168. package/esm2015/lib/db/Models/tax-review.js +3 -0
  169. package/esm2015/lib/db/Models/ticket.js +3 -0
  170. package/esm2015/lib/db/Models/transaction-allocation.js +3 -0
  171. package/esm2015/lib/db/Models/transaction-base.js +20 -0
  172. package/esm2015/lib/db/Models/transaction-metadata.js +3 -0
  173. package/esm2015/lib/db/Models/transaction-receipt.js +3 -0
  174. package/esm2015/lib/db/Models/transaction.js +4 -0
  175. package/esm2015/lib/db/Models/user-event-setting.js +3 -0
  176. package/esm2015/lib/db/Models/user-event-type.js +3 -0
  177. package/esm2015/lib/db/Models/user-event.js +3 -0
  178. package/esm2015/lib/db/Models/user.js +3 -0
  179. package/esm2015/lib/db/Models/vehicle-claim.js +3 -0
  180. package/esm2015/lib/db/Models/vehicle-logbook.js +3 -0
  181. package/esm2015/lib/db/Models/vehicle.js +3 -0
  182. package/esm2015/lib/functions/array/index.js +4 -0
  183. package/esm2015/lib/functions/array/replace.js +6 -0
  184. package/esm2015/lib/functions/array/sort-deep.js +22 -0
  185. package/esm2015/lib/functions/array/sort.js +13 -0
  186. package/esm2015/lib/functions/clone-deep.js +5 -0
  187. package/esm2015/lib/functions/create-date.js +8 -0
  188. package/esm2015/lib/functions/enum-to-list.js +13 -0
  189. package/esm2015/lib/functions/get-doc-icon.js +18 -0
  190. package/esm2015/lib/functions/mat-options-functions.js +10 -0
  191. package/esm2015/lib/functions/mat-sort-options.js +10 -0
  192. package/esm2015/lib/functions/round-to.js +10 -0
  193. package/esm2015/lib/functions/tax-review-filter-predicate.js +10 -0
  194. package/esm2015/lib/interfaces/asset-entity-type.enum.js +12 -0
  195. package/esm2015/lib/interfaces/asset-type.enum.js +11 -0
  196. package/esm2015/lib/interfaces/asset.interface.js +2 -0
  197. package/esm2015/lib/interfaces/chart-data.interface.js +2 -0
  198. package/esm2015/lib/interfaces/chart-serie.interface.js +2 -0
  199. package/esm2015/lib/interfaces/document.interface.js +2 -0
  200. package/esm2015/lib/interfaces/documentable.interface.js +2 -0
  201. package/esm2015/lib/interfaces/event-listener.interface.js +2 -0
  202. package/esm2015/lib/interfaces/income-source-forecast.interface.js +2 -0
  203. package/esm2015/lib/interfaces/option.interface.js +2 -0
  204. package/esm2015/lib/interfaces/photoable.js +2 -0
  205. package/esm2015/lib/interfaces/receipt.interface.js +2 -0
  206. package/esm2015/lib/interfaces/salary-forecast.interface.js +2 -0
  207. package/esm2015/lib/interfaces/tank.interface.js +2 -0
  208. package/esm2015/lib/models/address/address.js +24 -0
  209. package/esm2015/lib/models/address/country.js +16 -0
  210. package/esm2015/lib/models/bank/bank-account-chart-data.js +34 -0
  211. package/esm2015/lib/models/bank/bank-account-property.js +10 -0
  212. package/esm2015/lib/models/bank/bank-account-types.const.js +15 -0
  213. package/esm2015/lib/models/bank/bank-account.js +122 -0
  214. package/esm2015/lib/models/bank/bank-connection.js +14 -0
  215. package/esm2015/lib/models/bank/bank-transaction-chart-data.js +106 -0
  216. package/esm2015/lib/models/bank/bank-transaction-summary-fields.enum.js +6 -0
  217. package/esm2015/lib/models/bank/bank-transaction.js +67 -0
  218. package/esm2015/lib/models/bank/bank.js +23 -0
  219. package/esm2015/lib/models/bank/basiq-job.js +4 -0
  220. package/esm2015/lib/models/bank/basiq-token.js +13 -0
  221. package/esm2015/lib/models/bank/type-loan.const.js +7 -0
  222. package/esm2015/lib/models/borrowing-expense/borrowing-expense-loan.js +4 -0
  223. package/esm2015/lib/models/borrowing-expense/borrowing-expense.js +4 -0
  224. package/esm2015/lib/models/chart/chart-data.js +13 -0
  225. package/esm2015/lib/models/chart/chart-serie.js +7 -0
  226. package/esm2015/lib/models/chart-accounts/chart-accounts-categories.const.js +85 -0
  227. package/esm2015/lib/models/chart-accounts/chart-accounts-depreciation.js +16 -0
  228. package/esm2015/lib/models/chart-accounts/chart-accounts-heading.js +4 -0
  229. package/esm2015/lib/models/chart-accounts/chart-accounts-metadata.js +14 -0
  230. package/esm2015/lib/models/chart-accounts/chart-accounts-tax-labels.enum.js +7 -0
  231. package/esm2015/lib/models/chart-accounts/chart-accounts.js +120 -0
  232. package/esm2015/lib/models/chat/chat-view-type.enum.js +6 -0
  233. package/esm2015/lib/models/chat/chat.js +23 -0
  234. package/esm2015/lib/models/chat/message-document.js +20 -0
  235. package/esm2015/lib/models/chat/message.js +39 -0
  236. package/esm2015/lib/models/client/client-details.js +4 -0
  237. package/esm2015/lib/models/client/client-invite.js +67 -0
  238. package/esm2015/lib/models/client/client-movement.js +27 -0
  239. package/esm2015/lib/models/client/client-portfolio-chart-data.js +57 -0
  240. package/esm2015/lib/models/client/client-portfolio-report.js +6 -0
  241. package/esm2015/lib/models/depreciation/depreciation-capital-project.js +9 -0
  242. package/esm2015/lib/models/depreciation/depreciation-forecast.js +22 -0
  243. package/esm2015/lib/models/depreciation/depreciation-group-item.js +14 -0
  244. package/esm2015/lib/models/depreciation/depreciation-group.enum.js +9 -0
  245. package/esm2015/lib/models/depreciation/depreciation-group.js +15 -0
  246. package/esm2015/lib/models/depreciation/depreciation-groups.const.js +29 -0
  247. package/esm2015/lib/models/depreciation/depreciation-receipt.js +11 -0
  248. package/esm2015/lib/models/depreciation/depreciation.js +159 -0
  249. package/esm2015/lib/models/document/document-api-url-prefix.enum.js +9 -0
  250. package/esm2015/lib/models/document/document-file-types.const.js +23 -0
  251. package/esm2015/lib/models/document/document-folder.js +10 -0
  252. package/esm2015/lib/models/document/document.js +24 -0
  253. package/esm2015/lib/models/employee/employee-details.js +10 -0
  254. package/esm2015/lib/models/employee/employee-invite.js +14 -0
  255. package/esm2015/lib/models/endpoint/endpoint.js +23 -0
  256. package/esm2015/lib/models/endpoint/endpoints.const.js +142 -0
  257. package/esm2015/lib/models/event/app-event-type.enum.js +39 -0
  258. package/esm2015/lib/models/event/app-event.js +10 -0
  259. package/esm2015/lib/models/file/icons-file.enum.js +7 -0
  260. package/esm2015/lib/models/financial-year/financial-year.js +44 -0
  261. package/esm2015/lib/models/financial-year/month-name-short.enum.js +21 -0
  262. package/esm2015/lib/models/financial-year/month-number.enum.js +21 -0
  263. package/esm2015/lib/models/financial-year/months.const.js +2 -0
  264. package/esm2015/lib/models/firm/firm.js +30 -0
  265. package/esm2015/lib/models/income-position/income-position.js +9 -0
  266. package/esm2015/lib/models/income-source/income-source-chart-data.js +45 -0
  267. package/esm2015/lib/models/income-source/income-source-forecast.js +31 -0
  268. package/esm2015/lib/models/income-source/income-source-type.js +27 -0
  269. package/esm2015/lib/models/income-source/income-source.js +51 -0
  270. package/esm2015/lib/models/income-source/salary-forecast.js +14 -0
  271. package/esm2015/lib/models/loan/loan-max-number-of-payments.enum.js +10 -0
  272. package/esm2015/lib/models/loan/loan-payment.js +12 -0
  273. package/esm2015/lib/models/loan/loan-payout.js +11 -0
  274. package/esm2015/lib/models/loan/loan.js +39 -0
  275. package/esm2015/lib/models/logbook/default-vehicle-expense.js +20 -0
  276. package/esm2015/lib/models/logbook/logbook-period.js +11 -0
  277. package/esm2015/lib/models/logbook/logbook-purpose-options.const.js +6 -0
  278. package/esm2015/lib/models/logbook/vehicle-claim.js +26 -0
  279. package/esm2015/lib/models/logbook/vehicle-logbook.js +16 -0
  280. package/esm2015/lib/models/logbook/vehicle.js +39 -0
  281. package/esm2015/lib/models/notification/notification-event-types.const.js +43 -0
  282. package/esm2015/lib/models/notification/notification.js +63 -0
  283. package/esm2015/lib/models/phone/phone.js +12 -0
  284. package/esm2015/lib/models/property/calculation-form-item.js +17 -0
  285. package/esm2015/lib/models/property/calculation-form-type.enum.js +9 -0
  286. package/esm2015/lib/models/property/capital-costs-itmes.const.js +57 -0
  287. package/esm2015/lib/models/property/corelogic-suggestion.js +7 -0
  288. package/esm2015/lib/models/property/ownership-filter-options.enum.js +10 -0
  289. package/esm2015/lib/models/property/property-capital-cost.js +4 -0
  290. package/esm2015/lib/models/property/property-category-movement.js +20 -0
  291. package/esm2015/lib/models/property/property-category.js +8 -0
  292. package/esm2015/lib/models/property/property-document.js +17 -0
  293. package/esm2015/lib/models/property/property-equity-chart-data.js +155 -0
  294. package/esm2015/lib/models/property/property-equity-chart-item.js +24 -0
  295. package/esm2015/lib/models/property/property-equity-chart-type.enum.js +6 -0
  296. package/esm2015/lib/models/property/property-forecast.js +52 -0
  297. package/esm2015/lib/models/property/property-owner.js +48 -0
  298. package/esm2015/lib/models/property/property-sold.js +12 -0
  299. package/esm2015/lib/models/property/property-subscription.js +13 -0
  300. package/esm2015/lib/models/property/property-valuation.js +23 -0
  301. package/esm2015/lib/models/property/property.js +130 -0
  302. package/esm2015/lib/models/registration-invite/registration-invite.js +10 -0
  303. package/esm2015/lib/models/service-subscription/module-url-list.const.js +12 -0
  304. package/esm2015/lib/models/service-subscription/service-payment.js +10 -0
  305. package/esm2015/lib/models/service-subscription/service-price.js +10 -0
  306. package/esm2015/lib/models/service-subscription/service-product.js +10 -0
  307. package/esm2015/lib/models/service-subscription/service-subscription-item.js +13 -0
  308. package/esm2015/lib/models/service-subscription/service-subscription.js +128 -0
  309. package/esm2015/lib/models/service-subscription/subscription-description.const.js +8 -0
  310. package/esm2015/lib/models/service-subscription/subscription-title.const.js +8 -0
  311. package/esm2015/lib/models/service-subscription/subscription-type.enum.js +8 -0
  312. package/esm2015/lib/models/tax-review/tax-review.js +86 -0
  313. package/esm2015/lib/models/tax-summary/tax-return-category-item-details.js +9 -0
  314. package/esm2015/lib/models/tax-summary/tax-return-category-item.js +15 -0
  315. package/esm2015/lib/models/tax-summary/tax-summary-section.js +30 -0
  316. package/esm2015/lib/models/tax-summary/tax-summary-type.enum.js +9 -0
  317. package/esm2015/lib/models/tax-summary/tax-summary.js +71 -0
  318. package/esm2015/lib/models/transaction/income-amount-type.enum.js +9 -0
  319. package/esm2015/lib/models/transaction/transaction-allocation.js +21 -0
  320. package/esm2015/lib/models/transaction/transaction-metadata.js +10 -0
  321. package/esm2015/lib/models/transaction/transaction-receipt.js +11 -0
  322. package/esm2015/lib/models/transaction/transaction.js +214 -0
  323. package/esm2015/lib/models/user/my-account-history-initiated-by.enum.js +6 -0
  324. package/esm2015/lib/models/user/my-account-history-status.enum.js +6 -0
  325. package/esm2015/lib/models/user/my-account-history-type.enum.js +7 -0
  326. package/esm2015/lib/models/user/my-account-history.js +3 -0
  327. package/esm2015/lib/models/user/occupation.js +4 -0
  328. package/esm2015/lib/models/user/user-roles.const.js +13 -0
  329. package/esm2015/lib/models/user/user-to-register.js +6 -0
  330. package/esm2015/lib/models/user/user-work-position.const.js +7 -0
  331. package/esm2015/lib/models/user/user.js +138 -0
  332. package/esm2015/lib/models/user-event/user-event-category.enum.js +11 -0
  333. package/esm2015/lib/models/user-event/user-event-category.js +6 -0
  334. package/esm2015/lib/models/user-event/user-event-setting-field.enum.js +10 -0
  335. package/esm2015/lib/models/user-event/user-event-setting.js +18 -0
  336. package/esm2015/lib/models/user-event/user-event-type.js +24 -0
  337. package/esm2015/lib/services/address/address.service.js +39 -0
  338. package/esm2015/lib/services/asset/assets.service.js +51 -0
  339. package/esm2015/lib/services/auth/auth.service.js +46 -0
  340. package/esm2015/lib/services/auth/jwt.service.js +38 -0
  341. package/esm2015/lib/services/bank/bank-account-calculation.service.js +30 -0
  342. package/esm2015/lib/services/bank/bank-account.service.js +108 -0
  343. package/esm2015/lib/services/bank/bank-connection.service.js +43 -0
  344. package/esm2015/lib/services/bank/bank-transaction-calculation.service.js +65 -0
  345. package/esm2015/lib/services/bank/bank-transaction.service.js +89 -0
  346. package/esm2015/lib/services/bank/bank.service.js +24 -0
  347. package/esm2015/lib/services/bank/basiq.service.js +94 -0
  348. package/esm2015/lib/services/base-rest.service.js +190 -0
  349. package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +73 -0
  350. package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +38 -0
  351. package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +89 -0
  352. package/esm2015/lib/services/chat/chat.service.js +77 -0
  353. package/esm2015/lib/services/chat/message-document.service.js +118 -0
  354. package/esm2015/lib/services/chat/message.service.js +65 -0
  355. package/esm2015/lib/services/client/client-invite.service.js +102 -0
  356. package/esm2015/lib/services/client/client-movement.service.js +98 -0
  357. package/esm2015/lib/services/client/client-portfolio-report.service.js +37 -0
  358. package/esm2015/lib/services/depreciation/capital-project.service.js +62 -0
  359. package/esm2015/lib/services/depreciation/depreciation.service.js +146 -0
  360. package/esm2015/lib/services/document/document-folder.service.js +84 -0
  361. package/esm2015/lib/services/employee/employee-invite.service.js +53 -0
  362. package/esm2015/lib/services/employee/employee.service.js +39 -0
  363. package/esm2015/lib/services/event/event-dispatcher.service.js +30 -0
  364. package/esm2015/lib/services/event/sse.service.js +46 -0
  365. package/esm2015/lib/services/firm/firm.service.js +79 -0
  366. package/esm2015/lib/services/header-title/header-title.service.js +28 -0
  367. package/esm2015/lib/services/income-source/income-source-forecast.service.js +90 -0
  368. package/esm2015/lib/services/income-source/income-source.service.js +109 -0
  369. package/esm2015/lib/services/income-source/salary-forecast.service.js +90 -0
  370. package/esm2015/lib/services/intercom/intercom.service.js +41 -0
  371. package/esm2015/lib/services/loan/loan.service.js +145 -0
  372. package/esm2015/lib/services/notification/notification.service.js +65 -0
  373. package/esm2015/lib/services/preloader/preloader.service.js +30 -0
  374. package/esm2015/lib/services/property/corelogic.service.js +46 -0
  375. package/esm2015/lib/services/property/property-calculation.service.js +121 -0
  376. package/esm2015/lib/services/property/property-capital-cost.service.js +46 -0
  377. package/esm2015/lib/services/property/property-category.service.js +23 -0
  378. package/esm2015/lib/services/property/property-document.service.js +68 -0
  379. package/esm2015/lib/services/property/property-owner.service.js +123 -0
  380. package/esm2015/lib/services/property/property-sold.service.js +23 -0
  381. package/esm2015/lib/services/property/property.service.js +115 -0
  382. package/esm2015/lib/services/subscription/subscription.service.js +138 -0
  383. package/esm2015/lib/services/tax-review/tax-review-history.service.js +41 -0
  384. package/esm2015/lib/services/tax-review/tax-review.service.js +103 -0
  385. package/esm2015/lib/services/tax-summary/tax-summary.service.js +71 -0
  386. package/esm2015/lib/services/transaction/transaction-allocation.service.js +85 -0
  387. package/esm2015/lib/services/transaction/transaction-calculation.service.js +47 -0
  388. package/esm2015/lib/services/transaction/transaction.service.js +319 -0
  389. package/esm2015/lib/services/user/occupation.service.js +45 -0
  390. package/esm2015/lib/services/user/user-switcher.service.js +37 -0
  391. package/esm2015/lib/services/user/user.service.js +124 -0
  392. package/esm2015/lib/services/user-event/user-event-setting.service.js +59 -0
  393. package/esm2015/lib/services/user-event/user-event-type.service.js +29 -0
  394. package/esm2015/lib/services/work/work-tank.service.js +236 -0
  395. package/esm2015/lib/tt-core.module.js +1 -3
  396. package/esm2015/public-api.js +334 -3
  397. package/fesm2015/taxtank-core.js +9738 -25
  398. package/fesm2015/taxtank-core.js.map +1 -1
  399. package/lib/collections/abstract.collection.d.ts +40 -0
  400. package/lib/collections/bank-account.collection.d.ts +67 -0
  401. package/lib/collections/bank-transaction.collection.d.ts +72 -0
  402. package/lib/collections/client-movement.collection.d.ts +17 -0
  403. package/lib/collections/client-portfolio-report.collection.d.ts +26 -0
  404. package/lib/collections/client.collection.d.ts +4 -0
  405. package/lib/collections/collection-dictionary.d.ts +44 -0
  406. package/lib/collections/depreciation-forecast.collection.d.ts +11 -0
  407. package/lib/collections/depreciation.collection.d.ts +27 -0
  408. package/lib/collections/employee.collection.d.ts +6 -0
  409. package/lib/collections/income-source.collection.d.ts +25 -0
  410. package/lib/collections/loan.collection.d.ts +14 -0
  411. package/lib/collections/logbook.collection.d.ts +19 -0
  412. package/lib/collections/message-document.collection.d.ts +11 -0
  413. package/lib/collections/message.collection.d.ts +14 -0
  414. package/lib/collections/property.collection.d.ts +33 -0
  415. package/lib/collections/service-price.collection.d.ts +6 -0
  416. package/lib/collections/service-subscription.collection.d.ts +8 -0
  417. package/lib/collections/tax-return-category-item.collection.d.ts +68 -0
  418. package/lib/collections/tax-review.collection.d.ts +35 -0
  419. package/lib/collections/transaction-allocation.collection.d.ts +23 -0
  420. package/lib/collections/transaction.collection.d.ts +76 -0
  421. package/lib/collections/user-event-setting.collection.d.ts +30 -0
  422. package/lib/db/Enums/address-type.enum.d.ts +4 -0
  423. package/lib/db/Enums/bank-account-status.enum.d.ts +4 -0
  424. package/lib/db/Enums/bank-account-type.enum.d.ts +10 -0
  425. package/lib/db/Enums/bank-connection-status.enum.d.ts +5 -0
  426. package/lib/db/Enums/bank-transaction-type.enum.d.ts +4 -0
  427. package/lib/db/Enums/chart-accounts-category.enum.d.ts +13 -0
  428. package/lib/db/Enums/chart-accounts-etp.enum.d.ts +7 -0
  429. package/lib/db/Enums/chart-accounts-heading-tax-deductible.enum.d.ts +6 -0
  430. package/lib/db/Enums/chart-accounts-heading-taxable.enum.d.ts +6 -0
  431. package/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.d.ts +4 -0
  432. package/lib/db/Enums/chart-accounts-list.enum.d.ts +19 -0
  433. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +14 -0
  434. package/lib/db/Enums/chart-accounts-metadata-type.enum.d.ts +4 -0
  435. package/lib/db/Enums/chart-accounts-type.enum.d.ts +4 -0
  436. package/lib/db/Enums/chat-status.enum.d.ts +4 -0
  437. package/lib/db/Enums/client-details-medicare-exemption.enum.d.ts +5 -0
  438. package/lib/db/Enums/client-details-work-depreciation-calculation.enum.d.ts +4 -0
  439. package/lib/db/Enums/client-details-working-holiday-maker.enum.d.ts +5 -0
  440. package/lib/db/Enums/client-invite-status.enum.d.ts +4 -0
  441. package/lib/db/Enums/client-invite-type.enum.d.ts +4 -0
  442. package/lib/db/Enums/depreciation-calculation-percent.enum.d.ts +7 -0
  443. package/lib/db/Enums/depreciation-calculation.enum.d.ts +7 -0
  444. package/lib/db/Enums/depreciation-type.enum.d.ts +6 -0
  445. package/lib/db/Enums/depreciation-write-off-amount.enum.d.ts +4 -0
  446. package/lib/db/Enums/firm-type.enum.d.ts +4 -0
  447. package/lib/db/Enums/income-source-type-list-other.enum.d.ts +6 -0
  448. package/lib/db/Enums/income-source-type-list-salary.enum.d.ts +3 -0
  449. package/lib/db/Enums/income-source-type-list-work.enum.d.ts +8 -0
  450. package/lib/db/Enums/income-source-type.enum.d.ts +5 -0
  451. package/lib/db/Enums/invite-status.enum.d.ts +5 -0
  452. package/lib/db/Enums/loan-bank-type.enum.d.ts +10 -0
  453. package/lib/db/Enums/loan-frequency.enum.d.ts +6 -0
  454. package/lib/db/Enums/loan-interest-type.enum.d.ts +4 -0
  455. package/lib/db/Enums/loan-payout-type.enum.d.ts +4 -0
  456. package/lib/db/Enums/loan-repayment-frequency.enum.d.ts +5 -0
  457. package/lib/db/Enums/loan-repayment-type.enum.d.ts +4 -0
  458. package/lib/db/Enums/loan-type.enum.d.ts +12 -0
  459. package/lib/db/Enums/loan-vehicle-type.enum.d.ts +5 -0
  460. package/lib/db/Enums/phone-type.enum.d.ts +4 -0
  461. package/lib/db/Enums/property-depreciation-calculation.enum.d.ts +4 -0
  462. package/lib/db/Enums/property-owner-access.enum.d.ts +4 -0
  463. package/lib/db/Enums/property-owner-status.enum.d.ts +5 -0
  464. package/lib/db/Enums/registration-invite-status.enum.d.ts +4 -0
  465. package/lib/db/Enums/salary-forecast-frequency.enum.d.ts +6 -0
  466. package/lib/db/Enums/service-notification-status.enum.d.ts +5 -0
  467. package/lib/db/Enums/service-notification-type.enum.d.ts +4 -0
  468. package/lib/db/Enums/service-payment-status.enum.d.ts +4 -0
  469. package/lib/db/Enums/service-price-recurring-interval.enum.d.ts +6 -0
  470. package/lib/db/Enums/service-price-type.enum.d.ts +4 -0
  471. package/lib/db/Enums/service-subscription-status.enum.d.ts +8 -0
  472. package/lib/db/Enums/spare-document-spare-type.enum.d.ts +4 -0
  473. package/lib/db/Enums/tank-type.enum.d.ts +5 -0
  474. package/lib/db/Enums/tax-calculation-medicare-exemption.enum.d.ts +4 -0
  475. package/lib/db/Enums/tax-calculation-type.enum.d.ts +12 -0
  476. package/lib/db/Enums/tax-return-category-list.enum.d.ts +26 -0
  477. package/lib/db/Enums/tax-return-category-section.enum.d.ts +6 -0
  478. package/lib/db/Enums/tax-review-status.enum.d.ts +11 -0
  479. package/lib/db/Enums/tax-summary-list.enum.d.ts +15 -0
  480. package/lib/db/Enums/tax-summary-section.enum.d.ts +6 -0
  481. package/lib/db/Enums/tax-summary-tax-summary.enum.d.ts +15 -0
  482. package/lib/db/Enums/ticket-feedback.enum.d.ts +4 -0
  483. package/lib/db/Enums/ticket-status.enum.d.ts +7 -0
  484. package/lib/db/Enums/ticket-types.enum.d.ts +3 -0
  485. package/lib/db/Enums/transaction-operation.enum.d.ts +5 -0
  486. package/lib/db/Enums/transaction-source.enum.d.ts +4 -0
  487. package/lib/db/Enums/transaction-type.enum.d.ts +4 -0
  488. package/lib/db/Enums/user-event-status.enum.d.ts +6 -0
  489. package/lib/db/Enums/user-event-type-frequency.enum.d.ts +6 -0
  490. package/lib/db/Enums/user-event-type-reminder-type.enum.d.ts +6 -0
  491. package/lib/db/Enums/user-event-type-reminder.enum.d.ts +5 -0
  492. package/lib/db/Enums/user-event-type-type.enum.d.ts +33 -0
  493. package/lib/db/Enums/user-medicare-exemption.enum.d.ts +5 -0
  494. package/lib/db/Enums/user-roles.enum.d.ts +13 -0
  495. package/lib/db/Enums/user-status.enum.d.ts +6 -0
  496. package/lib/db/Enums/user-title.enum.d.ts +7 -0
  497. package/lib/db/Enums/user-work-depreciation-calculation.enum.d.ts +4 -0
  498. package/lib/db/Enums/user-working-holiday-maker.enum.d.ts +5 -0
  499. package/lib/db/Enums/vehicle-claim-method.enum.d.ts +4 -0
  500. package/lib/db/Enums/vehicle-logbook-purpose.enum.d.ts +4 -0
  501. package/lib/db/Models/address.d.ts +19 -0
  502. package/lib/db/Models/bank-account-balance.d.ts +12 -0
  503. package/lib/db/Models/bank-account-property.d.ts +8 -0
  504. package/lib/db/Models/bank-account.d.ts +33 -0
  505. package/lib/db/Models/bank-connection.d.ts +14 -0
  506. package/lib/db/Models/bank-transaction-import.d.ts +11 -0
  507. package/lib/db/Models/bank-transaction.d.ts +16 -0
  508. package/lib/db/Models/bank.d.ts +11 -0
  509. package/lib/db/Models/basiq-job.d.ts +8 -0
  510. package/lib/db/Models/borrowing-expense-loan.d.ts +14 -0
  511. package/lib/db/Models/borrowing-expense.d.ts +7 -0
  512. package/lib/db/Models/capital-cost-property.d.ts +13 -0
  513. package/lib/db/Models/capital-cost.d.ts +4 -0
  514. package/lib/db/Models/chart-accounts-depreciation.d.ts +10 -0
  515. package/lib/db/Models/chart-accounts-heading.d.ts +6 -0
  516. package/lib/db/Models/chart-accounts-metadata.d.ts +11 -0
  517. package/lib/db/Models/chart-accounts-value.d.ts +12 -0
  518. package/lib/db/Models/chart-accounts.d.ts +23 -0
  519. package/lib/db/Models/chat.d.ts +17 -0
  520. package/lib/db/Models/client-details.d.ts +29 -0
  521. package/lib/db/Models/client-invite.d.ts +16 -0
  522. package/lib/db/Models/client-movement.d.ts +12 -0
  523. package/lib/db/Models/country.d.ts +5 -0
  524. package/lib/db/Models/depreciation-capital-project.d.ts +13 -0
  525. package/lib/db/Models/depreciation-forecast.d.ts +18 -0
  526. package/lib/db/Models/depreciation-receipt.d.ts +11 -0
  527. package/lib/db/Models/depreciation.d.ts +42 -0
  528. package/lib/db/Models/document-folder.d.ts +9 -0
  529. package/lib/db/Models/document.d.ts +11 -0
  530. package/lib/db/Models/employee-details.d.ts +7 -0
  531. package/lib/db/Models/employee-invite.d.ts +9 -0
  532. package/lib/db/Models/financial-data-system.d.ts +9 -0
  533. package/lib/db/Models/firm.d.ts +28 -0
  534. package/lib/db/Models/income-source-forecast.d.ts +12 -0
  535. package/lib/db/Models/income-source-type.d.ts +8 -0
  536. package/lib/db/Models/income-source.d.ts +20 -0
  537. package/lib/db/Models/loan-payout.d.ts +12 -0
  538. package/lib/db/Models/loan.d.ts +33 -0
  539. package/lib/db/Models/message-document.d.ts +15 -0
  540. package/lib/db/Models/message.d.ts +15 -0
  541. package/lib/db/Models/occupation.d.ts +5 -0
  542. package/lib/db/Models/phone.d.ts +12 -0
  543. package/lib/db/Models/property-capital-cost.d.ts +13 -0
  544. package/lib/db/Models/property-category-movement.d.ts +17 -0
  545. package/lib/db/Models/property-category.d.ts +13 -0
  546. package/lib/db/Models/property-document.d.ts +13 -0
  547. package/lib/db/Models/property-forecast.d.ts +14 -0
  548. package/lib/db/Models/property-owner.d.ts +20 -0
  549. package/lib/db/Models/property-sold.d.ts +12 -0
  550. package/lib/db/Models/property-subscription.d.ts +9 -0
  551. package/lib/db/Models/property-valuation.d.ts +12 -0
  552. package/lib/db/Models/property.d.ts +41 -0
  553. package/lib/db/Models/registration-invite.d.ts +12 -0
  554. package/lib/db/Models/salary-forecast.d.ts +15 -0
  555. package/lib/db/Models/service-notification.d.ts +13 -0
  556. package/lib/db/Models/service-payment.d.ts +11 -0
  557. package/lib/db/Models/service-price.d.ts +15 -0
  558. package/lib/db/Models/service-product.d.ts +12 -0
  559. package/lib/db/Models/service-subscription-item.d.ts +9 -0
  560. package/lib/db/Models/service-subscription.d.ts +14 -0
  561. package/lib/db/Models/tax-return-category.d.ts +12 -0
  562. package/lib/db/Models/tax-return-item.d.ts +15 -0
  563. package/lib/db/Models/tax-return.d.ts +8 -0
  564. package/lib/db/Models/tax-review.d.ts +13 -0
  565. package/lib/db/Models/ticket.d.ts +19 -0
  566. package/lib/db/Models/transaction-allocation.d.ts +8 -0
  567. package/lib/db/Models/transaction-base.d.ts +22 -0
  568. package/lib/db/Models/transaction-metadata.d.ts +11 -0
  569. package/lib/db/Models/transaction-receipt.d.ts +11 -0
  570. package/lib/db/Models/transaction.d.ts +43 -0
  571. package/lib/db/Models/user-event-setting.d.ts +10 -0
  572. package/lib/db/Models/user-event-type.d.ts +15 -0
  573. package/lib/db/Models/user-event.d.ts +13 -0
  574. package/lib/db/Models/user.d.ts +51 -0
  575. package/lib/db/Models/vehicle-claim.d.ts +11 -0
  576. package/lib/db/Models/vehicle-logbook.d.ts +16 -0
  577. package/lib/db/Models/vehicle.d.ts +8 -0
  578. package/lib/functions/array/index.d.ts +3 -0
  579. package/lib/functions/array/replace.d.ts +1 -0
  580. package/lib/functions/array/sort-deep.d.ts +1 -0
  581. package/lib/functions/array/sort.d.ts +1 -0
  582. package/lib/functions/clone-deep.d.ts +1 -0
  583. package/lib/functions/create-date.d.ts +5 -0
  584. package/lib/functions/enum-to-list.d.ts +2 -0
  585. package/lib/functions/get-doc-icon.d.ts +7 -0
  586. package/lib/functions/mat-options-functions.d.ts +2 -0
  587. package/lib/functions/mat-sort-options.d.ts +7 -0
  588. package/lib/functions/round-to.d.ts +6 -0
  589. package/lib/functions/tax-review-filter-predicate.d.ts +7 -0
  590. package/lib/interfaces/asset-entity-type.enum.d.ts +10 -0
  591. package/lib/interfaces/asset-type.enum.d.ts +8 -0
  592. package/lib/interfaces/asset.interface.d.ts +17 -0
  593. package/lib/interfaces/chart-data.interface.d.ts +10 -0
  594. package/lib/interfaces/chart-serie.interface.d.ts +8 -0
  595. package/lib/interfaces/document.interface.d.ts +18 -0
  596. package/lib/interfaces/documentable.interface.d.ts +8 -0
  597. package/lib/interfaces/event-listener.interface.d.ts +9 -0
  598. package/lib/interfaces/income-source-forecast.interface.d.ts +7 -0
  599. package/lib/interfaces/option.interface.d.ts +4 -0
  600. package/lib/interfaces/photoable.d.ts +13 -0
  601. package/lib/interfaces/receipt.interface.d.ts +12 -0
  602. package/lib/interfaces/salary-forecast.interface.d.ts +16 -0
  603. package/lib/interfaces/tank.interface.d.ts +7 -0
  604. package/lib/models/address/address.d.ts +11 -0
  605. package/lib/models/address/country.d.ts +11 -0
  606. package/lib/models/bank/bank-account-chart-data.d.ts +17 -0
  607. package/lib/models/bank/bank-account-property.d.ts +5 -0
  608. package/lib/models/bank/bank-account-types.const.d.ts +7 -0
  609. package/lib/models/bank/bank-account.d.ts +72 -0
  610. package/lib/models/bank/bank-connection.d.ts +7 -0
  611. package/lib/models/bank/bank-transaction-chart-data.d.ts +30 -0
  612. package/lib/models/bank/bank-transaction-summary-fields.enum.d.ts +4 -0
  613. package/lib/models/bank/bank-transaction.d.ts +38 -0
  614. package/lib/models/bank/bank.d.ts +8 -0
  615. package/lib/models/bank/basiq-job.d.ts +3 -0
  616. package/lib/models/bank/basiq-token.d.ts +9 -0
  617. package/lib/models/bank/type-loan.const.d.ts +2 -0
  618. package/lib/models/borrowing-expense/borrowing-expense-loan.d.ts +3 -0
  619. package/lib/models/borrowing-expense/borrowing-expense.d.ts +3 -0
  620. package/lib/models/chart/chart-data.d.ts +9 -0
  621. package/lib/models/chart/chart-serie.d.ts +8 -0
  622. package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts +4 -0
  623. package/lib/models/chart-accounts/chart-accounts-depreciation.d.ts +7 -0
  624. package/lib/models/chart-accounts/chart-accounts-heading.d.ts +5 -0
  625. package/lib/models/chart-accounts/chart-accounts-metadata.d.ts +8 -0
  626. package/lib/models/chart-accounts/chart-accounts-tax-labels.enum.d.ts +5 -0
  627. package/lib/models/chart-accounts/chart-accounts.d.ts +66 -0
  628. package/lib/models/chat/chat-view-type.enum.d.ts +4 -0
  629. package/lib/models/chat/chat.d.ts +10 -0
  630. package/lib/models/chat/message-document.d.ts +11 -0
  631. package/lib/models/chat/message.d.ts +20 -0
  632. package/lib/models/client/client-details.d.ts +3 -0
  633. package/lib/models/client/client-invite.d.ts +34 -0
  634. package/lib/models/client/client-movement.d.ts +12 -0
  635. package/lib/models/client/client-portfolio-chart-data.d.ts +11 -0
  636. package/lib/models/client/client-portfolio-report.d.ts +10 -0
  637. package/lib/models/depreciation/depreciation-capital-project.d.ts +5 -0
  638. package/lib/models/depreciation/depreciation-forecast.d.ts +8 -0
  639. package/lib/models/depreciation/depreciation-group-item.d.ts +10 -0
  640. package/lib/models/depreciation/depreciation-group.d.ts +11 -0
  641. package/lib/models/depreciation/depreciation-group.enum.d.ts +7 -0
  642. package/lib/models/depreciation/depreciation-groups.const.d.ts +9 -0
  643. package/lib/models/depreciation/depreciation-receipt.d.ts +8 -0
  644. package/lib/models/depreciation/depreciation.d.ts +69 -0
  645. package/lib/models/document/document-api-url-prefix.enum.d.ts +7 -0
  646. package/lib/models/document/document-file-types.const.d.ts +3 -0
  647. package/lib/models/document/document-folder.d.ts +7 -0
  648. package/lib/models/document/document.d.ts +21 -0
  649. package/lib/models/employee/employee-details.d.ts +5 -0
  650. package/lib/models/employee/employee-invite.d.ts +7 -0
  651. package/lib/models/endpoint/endpoint.d.ts +22 -0
  652. package/lib/models/endpoint/endpoints.const.d.ts +7 -0
  653. package/lib/models/event/app-event-type.enum.d.ts +37 -0
  654. package/lib/models/event/app-event.d.ts +9 -0
  655. package/lib/models/file/icons-file.enum.d.ts +5 -0
  656. package/lib/models/financial-year/financial-year.d.ts +19 -0
  657. package/lib/models/financial-year/month-name-short.enum.d.ts +19 -0
  658. package/lib/models/financial-year/month-number.enum.d.ts +19 -0
  659. package/lib/models/financial-year/months.const.d.ts +1 -0
  660. package/lib/models/firm/firm.d.ts +18 -0
  661. package/lib/models/income-position/income-position.d.ts +9 -0
  662. package/lib/models/income-source/income-source-chart-data.d.ts +14 -0
  663. package/lib/models/income-source/income-source-forecast.d.ts +22 -0
  664. package/lib/models/income-source/income-source-type.d.ts +8 -0
  665. package/lib/models/income-source/income-source.d.ts +27 -0
  666. package/lib/models/income-source/salary-forecast.d.ts +16 -0
  667. package/lib/models/loan/loan-max-number-of-payments.enum.d.ts +8 -0
  668. package/lib/models/loan/loan-payment.d.ts +13 -0
  669. package/lib/models/loan/loan-payout.d.ts +9 -0
  670. package/lib/models/loan/loan.d.ts +20 -0
  671. package/lib/models/logbook/default-vehicle-expense.d.ts +5 -0
  672. package/lib/models/logbook/logbook-period.d.ts +6 -0
  673. package/lib/models/logbook/logbook-purpose-options.const.d.ts +4 -0
  674. package/lib/models/logbook/vehicle-claim.d.ts +15 -0
  675. package/lib/models/logbook/vehicle-logbook.d.ts +6 -0
  676. package/lib/models/logbook/vehicle.d.ts +12 -0
  677. package/lib/models/notification/notification-event-types.const.d.ts +7 -0
  678. package/lib/models/notification/notification.d.ts +16 -0
  679. package/lib/models/phone/phone.d.ts +6 -0
  680. package/lib/models/property/calculation-form-item.d.ts +15 -0
  681. package/lib/models/property/calculation-form-type.enum.d.ts +7 -0
  682. package/lib/models/property/capital-costs-itmes.const.d.ts +2 -0
  683. package/lib/models/property/corelogic-suggestion.d.ts +18 -0
  684. package/lib/models/property/ownership-filter-options.enum.d.ts +8 -0
  685. package/lib/models/property/property-capital-cost.d.ts +3 -0
  686. package/lib/models/property/property-category-movement.d.ts +9 -0
  687. package/lib/models/property/property-category.d.ts +4 -0
  688. package/lib/models/property/property-document.d.ts +14 -0
  689. package/lib/models/property/property-equity-chart-data.d.ts +62 -0
  690. package/lib/models/property/property-equity-chart-item.d.ts +19 -0
  691. package/lib/models/property/property-equity-chart-type.enum.d.ts +4 -0
  692. package/lib/models/property/property-forecast.d.ts +28 -0
  693. package/lib/models/property/property-owner.d.ts +21 -0
  694. package/lib/models/property/property-sold.d.ts +5 -0
  695. package/lib/models/property/property-subscription.d.ts +6 -0
  696. package/lib/models/property/property-valuation.d.ts +9 -0
  697. package/lib/models/property/property.d.ts +55 -0
  698. package/lib/models/registration-invite/registration-invite.d.ts +6 -0
  699. package/lib/models/service-subscription/module-url-list.const.d.ts +6 -0
  700. package/lib/models/service-subscription/service-payment.d.ts +5 -0
  701. package/lib/models/service-subscription/service-price.d.ts +5 -0
  702. package/lib/models/service-subscription/service-product.d.ts +5 -0
  703. package/lib/models/service-subscription/service-subscription-item.d.ts +6 -0
  704. package/lib/models/service-subscription/service-subscription.d.ts +55 -0
  705. package/lib/models/service-subscription/subscription-description.const.d.ts +3 -0
  706. package/lib/models/service-subscription/subscription-title.const.d.ts +3 -0
  707. package/lib/models/service-subscription/subscription-type.enum.d.ts +6 -0
  708. package/lib/models/tax-review/tax-review.d.ts +52 -0
  709. package/lib/models/tax-summary/tax-return-category-item-details.d.ts +13 -0
  710. package/lib/models/tax-summary/tax-return-category-item.d.ts +18 -0
  711. package/lib/models/tax-summary/tax-summary-section.d.ts +12 -0
  712. package/lib/models/tax-summary/tax-summary-type.enum.d.ts +7 -0
  713. package/lib/models/tax-summary/tax-summary.d.ts +44 -0
  714. package/lib/models/transaction/income-amount-type.enum.d.ts +7 -0
  715. package/lib/models/transaction/transaction-allocation.d.ts +12 -0
  716. package/lib/models/transaction/transaction-metadata.d.ts +5 -0
  717. package/lib/models/transaction/transaction-receipt.d.ts +8 -0
  718. package/lib/models/transaction/transaction.d.ts +98 -0
  719. package/lib/models/user/my-account-history-initiated-by.enum.d.ts +4 -0
  720. package/lib/models/user/my-account-history-status.enum.d.ts +4 -0
  721. package/lib/models/user/my-account-history-type.enum.d.ts +5 -0
  722. package/lib/models/user/my-account-history.d.ts +11 -0
  723. package/lib/models/user/occupation.d.ts +3 -0
  724. package/lib/models/user/user-roles.const.d.ts +4 -0
  725. package/lib/models/user/user-to-register.d.ts +7 -0
  726. package/lib/models/user/user-work-position.const.d.ts +3 -0
  727. package/lib/models/user/user.d.ts +64 -0
  728. package/lib/models/user-event/user-event-category.d.ts +8 -0
  729. package/lib/models/user-event/user-event-category.enum.d.ts +9 -0
  730. package/lib/models/user-event/user-event-setting-field.enum.d.ts +8 -0
  731. package/lib/models/user-event/user-event-setting.d.ts +6 -0
  732. package/lib/models/user-event/user-event-type.d.ts +5 -0
  733. package/lib/services/address/address.service.d.ts +14 -0
  734. package/lib/services/asset/assets.service.d.ts +34 -0
  735. package/lib/services/auth/auth.service.d.ts +17 -0
  736. package/lib/services/auth/jwt.service.d.ts +16 -0
  737. package/lib/services/bank/bank-account-calculation.service.d.ts +19 -0
  738. package/lib/services/bank/bank-account.service.d.ts +47 -0
  739. package/lib/services/bank/bank-connection.service.d.ts +22 -0
  740. package/lib/services/bank/bank-transaction-calculation.service.d.ts +41 -0
  741. package/lib/services/bank/bank-transaction.service.d.ts +38 -0
  742. package/lib/services/bank/bank.service.d.ts +14 -0
  743. package/lib/services/bank/basiq.service.d.ts +42 -0
  744. package/lib/services/base-rest.service.d.ts +91 -0
  745. package/lib/services/borrowing-expense/borrowing-expense.service.d.ts +19 -0
  746. package/lib/services/chart-accounts/chart-accounts-depreciations.service.d.ts +19 -0
  747. package/lib/services/chart-accounts/chart-accounts.service.d.ts +37 -0
  748. package/lib/services/chat/chat.service.d.ts +31 -0
  749. package/lib/services/chat/message-document.service.d.ts +50 -0
  750. package/lib/services/chat/message.service.d.ts +31 -0
  751. package/lib/services/client/client-invite.service.d.ts +36 -0
  752. package/lib/services/client/client-movement.service.d.ts +40 -0
  753. package/lib/services/client/client-portfolio-report.service.d.ts +16 -0
  754. package/lib/services/depreciation/capital-project.service.d.ts +20 -0
  755. package/lib/services/depreciation/depreciation.service.d.ts +59 -0
  756. package/lib/services/document/document-folder.service.d.ts +40 -0
  757. package/lib/services/employee/employee-invite.service.d.ts +21 -0
  758. package/lib/services/employee/employee.service.d.ts +16 -0
  759. package/lib/services/event/event-dispatcher.service.d.ts +17 -0
  760. package/lib/services/event/sse.service.d.ts +16 -0
  761. package/lib/services/firm/firm.service.d.ts +27 -0
  762. package/lib/services/header-title/header-title.service.d.ts +11 -0
  763. package/lib/services/income-source/income-source-forecast.service.d.ts +36 -0
  764. package/lib/services/income-source/income-source.service.d.ts +48 -0
  765. package/lib/services/income-source/salary-forecast.service.d.ts +37 -0
  766. package/lib/services/intercom/intercom.service.d.ts +21 -0
  767. package/lib/services/loan/loan.service.d.ts +63 -0
  768. package/lib/services/notification/notification.service.d.ts +31 -0
  769. package/lib/services/preloader/preloader.service.d.ts +12 -0
  770. package/lib/services/property/corelogic.service.d.ts +15 -0
  771. package/lib/services/property/property-calculation.service.d.ts +33 -0
  772. package/lib/services/property/property-capital-cost.service.d.ts +20 -0
  773. package/lib/services/property/property-category.service.d.ts +13 -0
  774. package/lib/services/property/property-document.service.d.ts +31 -0
  775. package/lib/services/property/property-owner.service.d.ts +52 -0
  776. package/lib/services/property/property-sold.service.d.ts +13 -0
  777. package/lib/services/property/property.service.d.ts +50 -0
  778. package/lib/services/subscription/subscription.service.d.ts +47 -0
  779. package/lib/services/tax-review/tax-review-history.service.d.ts +19 -0
  780. package/lib/services/tax-review/tax-review.service.d.ts +44 -0
  781. package/lib/services/tax-summary/tax-summary.service.d.ts +31 -0
  782. package/lib/services/transaction/transaction-allocation.service.d.ts +43 -0
  783. package/lib/services/transaction/transaction-calculation.service.d.ts +29 -0
  784. package/lib/services/transaction/transaction.service.d.ts +92 -0
  785. package/lib/services/user/occupation.service.d.ts +20 -0
  786. package/lib/services/user/user-switcher.service.d.ts +20 -0
  787. package/lib/services/user/user.service.d.ts +60 -0
  788. package/lib/services/user-event/user-event-setting.service.d.ts +22 -0
  789. package/lib/services/user-event/user-event-type.service.d.ts +17 -0
  790. package/lib/services/work/work-tank.service.d.ts +93 -0
  791. package/package.json +9 -3
  792. package/public-api.d.ts +335 -1
  793. package/esm2015/lib/tt-core.service.js +0 -23
  794. package/lib/tt-core.service.d.ts +0 -8
@@ -0,0 +1,53 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { replace } from '../../functions/array';
4
+ import _ from 'lodash';
5
+ import { plainToClass } from 'class-transformer';
6
+ import { EmployeeInvite } from '../../models/employee/employee-invite';
7
+ import { BaseRestService } from '../base-rest.service';
8
+ import * as i0 from "@angular/core";
9
+ export class EmployeeInviteService extends BaseRestService {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.url = 'employees/invites';
13
+ this.modelClass = EmployeeInvite;
14
+ }
15
+ /**
16
+ * Import employees for firm from CSV file
17
+ * @param file
18
+ */
19
+ import(file) {
20
+ const formData = new FormData();
21
+ formData.append('file', file);
22
+ return this.http.post(`${this.environment.apiV2}/${this.url}/import`, formData)
23
+ .pipe(map((employeeInvite) => {
24
+ return employeeInvite;
25
+ }));
26
+ }
27
+ /**
28
+ * Resend invitation from firm to client
29
+ * @param invite
30
+ */
31
+ resend(invite) {
32
+ return this.http.post(`${this.environment.apiV2}/${this.url}/${invite.id}/resend`, null)
33
+ .pipe(map((resentInviteBase) => {
34
+ const updatedInvite = plainToClass(EmployeeInvite, resentInviteBase);
35
+ // avoid cache changes
36
+ // @TODO make cache readonly
37
+ const tempCache = _.cloneDeep(this.cache);
38
+ replace(tempCache, plainToClass(EmployeeInvite, updatedInvite));
39
+ this.cache = tempCache;
40
+ this.updateCache();
41
+ return updatedInvite;
42
+ }));
43
+ }
44
+ }
45
+ EmployeeInviteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
46
+ EmployeeInviteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeInviteService, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root'
51
+ }]
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtaW52aXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvZW1wbG95ZWUvZW1wbG95ZWUtaW52aXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQW1EO0lBSDlGOztRQUlFLFFBQUcsR0FBVyxtQkFBbUIsQ0FBQztRQUNsQyxlQUFVLEdBQTBCLGNBQWMsQ0FBQztLQXFDcEQ7SUFuQ0M7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQVU7UUFDZixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsUUFBUSxDQUFDO2FBQzVFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxjQUFnQyxFQUFFLEVBQUU7WUFDdkMsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsTUFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQzthQUNyRixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsZ0JBQW9DLEVBQWtCLEVBQUU7WUFDM0QsTUFBTSxhQUFhLEdBQW1CLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRixzQkFBc0I7WUFDdEIsNEJBQTRCO1lBQzVCLE1BQU0sU0FBUyxHQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O21IQXRDVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbXBsb3llZUludml0ZSBhcyBFbXBsb3llZUludml0ZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZW1wbG95ZWUtaW52aXRlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEVtcGxveWVlSW52aXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VtcGxveWVlL2VtcGxveWVlLWludml0ZSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVtcGxveWVlSW52aXRlU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxFbXBsb3llZUludml0ZUJhc2UsIEVtcGxveWVlSW52aXRlPiB7XG4gIHVybDogc3RyaW5nID0gJ2VtcGxveWVlcy9pbnZpdGVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEVtcGxveWVlSW52aXRlID0gRW1wbG95ZWVJbnZpdGU7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBlbXBsb3llZXMgZm9yIGZpcm0gZnJvbSBDU1YgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgaW1wb3J0KGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPEVtcGxveWVlSW52aXRlW10+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS9pbXBvcnRgLCBmb3JtRGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGVtcGxveWVlSW52aXRlOiBFbXBsb3llZUludml0ZVtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVtcGxveWVlSW52aXRlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNlbmQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gY2xpZW50XG4gICAqIEBwYXJhbSBpbnZpdGVcbiAgICovXG4gIHJlc2VuZChpbnZpdGU6IEVtcGxveWVlSW52aXRlKTogT2JzZXJ2YWJsZTxFbXBsb3llZUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2ludml0ZS5pZH0vcmVzZW5kYCwgbnVsbClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc2VudEludml0ZUJhc2U6IEVtcGxveWVlSW52aXRlQmFzZSk6IEVtcGxveWVlSW52aXRlID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW52aXRlOiBFbXBsb3llZUludml0ZSA9IHBsYWluVG9DbGFzcyhFbXBsb3llZUludml0ZSwgcmVzZW50SW52aXRlQmFzZSk7XG4gICAgICAgICAgLy8gYXZvaWQgY2FjaGUgY2hhbmdlc1xuICAgICAgICAgIC8vIEBUT0RPIG1ha2UgY2FjaGUgcmVhZG9ubHlcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IEVtcGxveWVlSW52aXRlW10gPSBfLmNsb25lRGVlcCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICByZXBsYWNlKHRlbXBDYWNoZSwgcGxhaW5Ub0NsYXNzKEVtcGxveWVlSW52aXRlLCB1cGRhdGVkSW52aXRlKSk7XG4gICAgICAgICAgdGhpcy5jYWNoZSA9IHRlbXBDYWNoZTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnZpdGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseRestService } from '../base-rest.service';
3
+ import { map } from 'rxjs/operators';
4
+ import { replace } from '../../functions/array';
5
+ import _ from 'lodash';
6
+ import { plainToClass } from 'class-transformer';
7
+ import { User } from '../../models/user/user';
8
+ import * as i0 from "@angular/core";
9
+ export class EmployeeService extends BaseRestService {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.url = 'employees';
13
+ this.modelClass = User;
14
+ }
15
+ /**
16
+ * Grant/Remove Manager role to employee
17
+ * @param employee
18
+ */
19
+ toggleManagerRole(employee) {
20
+ return this.http.put(`${this.environment.apiV2}/${this.url}/${employee.id}`, {})
21
+ .pipe(map((updatedEmployeeBase) => {
22
+ const tempCache = this.cache;
23
+ const updatedEmployee = plainToClass(User, updatedEmployeeBase);
24
+ replace(tempCache, updatedEmployee);
25
+ this.cache = _.cloneDeep(tempCache);
26
+ this.updateCache();
27
+ return updatedEmployee;
28
+ }));
29
+ }
30
+ }
31
+ EmployeeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
32
+ EmployeeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EmployeeService, decorators: [{
34
+ type: Injectable,
35
+ args: [{
36
+ providedIn: 'root'
37
+ }]
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbXBsb3llZS9lbXBsb3llZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQStCO0lBSHBFOztRQUlFLFFBQUcsR0FBVyxXQUFXLENBQUM7UUFDMUIsZUFBVSxHQUFnQixJQUFJLENBQUM7S0FtQmhDO0lBakJDOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLFFBQWM7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUM3RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsbUJBQTZCLEVBQVEsRUFBRTtZQUMxQyxNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE1BQU0sZUFBZSxHQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxlQUFlLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzZHQXBCVSxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlciBhcyBVc2VyQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy91c2VyJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci91c2VyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPFVzZXJCYXNlLCBVc2VyPntcbiAgdXJsOiBzdHJpbmcgPSAnZW1wbG95ZWVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFVzZXIgPSBVc2VyO1xuXG4gIC8qKlxuICAgKiBHcmFudC9SZW1vdmUgTWFuYWdlciByb2xlIHRvIGVtcGxveWVlXG4gICAqIEBwYXJhbSBlbXBsb3llZVxuICAgKi9cbiAgdG9nZ2xlTWFuYWdlclJvbGUoZW1wbG95ZWU6IFVzZXIpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke2VtcGxveWVlLmlkfWAsIHt9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEVtcGxveWVlQmFzZTogVXNlckJhc2UpOiBVc2VyID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wQ2FjaGU6IFVzZXJbXSA9IHRoaXMuY2FjaGU7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEVtcGxveWVlOiBVc2VyID0gcGxhaW5Ub0NsYXNzKFVzZXIsIHVwZGF0ZWRFbXBsb3llZUJhc2UpO1xuICAgICAgICAgIHJlcGxhY2UodGVtcENhY2hlLCB1cGRhdGVkRW1wbG95ZWUpO1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBfLmNsb25lRGVlcCh0ZW1wQ2FjaGUpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEVtcGxveWVlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { filter, map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class EventDispatcherService {
6
+ constructor() {
7
+ this.eventSubject = new Subject();
8
+ }
9
+ /**
10
+ * subscription to specific event type
11
+ */
12
+ on(eventType) {
13
+ return this.eventSubject.pipe(filter((event) => [].concat(eventType).includes(event.type)), map((event) => event.payload));
14
+ }
15
+ /**
16
+ * deliver new event
17
+ */
18
+ dispatch(event) {
19
+ this.eventSubject.next(event);
20
+ }
21
+ }
22
+ EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: EventDispatcherService, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root'
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLN0MsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlVLGlCQUFZLEdBQTJCLElBQUksT0FBTyxFQUFFLENBQUM7S0FrQjlEO0lBaEJDOztPQUVHO0lBQ0gsRUFBRSxDQUFDLFNBQWdEO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzNCLE1BQU0sQ0FBQyxDQUFDLEtBQW9CLEVBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNwRixHQUFHLENBQUMsQ0FBQyxLQUFvQixFQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUksS0FBa0I7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7b0hBbEJVLHNCQUFzQjt3SEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U3ViamVjdDogU3ViamVjdDxBcHBFdmVudDxhbnk+PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIHN1YnNjcmlwdGlvbiB0byBzcGVjaWZpYyBldmVudCB0eXBlXG4gICAqL1xuICBvbihldmVudFR5cGU6IEFwcEV2ZW50VHlwZUVudW0gfCBBcHBFdmVudFR5cGVFbnVtW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5waXBlKFxuICAgICAgZmlsdGVyKChldmVudDogQXBwRXZlbnQ8YW55Pik6IGJvb2xlYW4gPT4gW10uY29uY2F0KGV2ZW50VHlwZSkuaW5jbHVkZXMoZXZlbnQudHlwZSkpLFxuICAgICAgbWFwKChldmVudDogQXBwRXZlbnQ8YW55Pik6IGFueSA9PiBldmVudC5wYXlsb2FkKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsaXZlciBuZXcgZXZlbnRcbiAgICovXG4gIGRpc3BhdGNoPFQ+KGV2ZW50OiBBcHBFdmVudDxUPik6IHZvaWQge1xuICAgIHRoaXMuZXZlbnRTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource.min.js';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../auth/jwt.service";
7
+ export class SseService {
8
+ constructor(zone, jwtService, environment) {
9
+ this.zone = zone;
10
+ this.jwtService = jwtService;
11
+ this.environment = environment;
12
+ }
13
+ /**
14
+ * list to url for server events
15
+ */
16
+ on(topic) {
17
+ const url = new URL(this.environment.mercureUrl);
18
+ url.searchParams.append('topic', `${this.environment.apiV2}/users/${this.jwtService.decodeToken().username}/${topic}`);
19
+ // tslint:disable-next-line:typedef
20
+ return new Observable((observer) => {
21
+ const es = new EventSourcePolyfill(url, {
22
+ headers: {
23
+ Authorization: 'Bearer ' + this.jwtService.getToken(),
24
+ }
25
+ });
26
+ es.onmessage = (event) => {
27
+ this.zone.run(() => observer.next(event));
28
+ };
29
+ })
30
+ .pipe(map((messageEvent) => {
31
+ return JSON.parse(messageEvent.data);
32
+ }));
33
+ }
34
+ }
35
+ SseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SseService, deps: [{ token: i0.NgZone }, { token: i1.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ SseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SseService, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SseService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.JwtService }, { type: undefined, decorators: [{
43
+ type: Inject,
44
+ args: ['environment']
45
+ }] }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvZXZlbnQvc3NlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQU1uRixNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUNVLElBQVksRUFDWixVQUFzQixFQUNDLFdBQWdCO1FBRnZDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0MsZ0JBQVcsR0FBWCxXQUFXLENBQUs7SUFFakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsRUFBRSxDQUFDLEtBQWE7UUFDZCxNQUFNLEdBQUcsR0FBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkgsbUNBQW1DO1FBQ25DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsR0FBd0IsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNELE9BQU8sRUFBRTtvQkFDUCxhQUFhLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO2lCQUN0RDthQUNGLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFtQixFQUFRLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7YUFDQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBVSxFQUFFO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O3dHQS9CVSxVQUFVLGtFQUlYLGFBQWE7NEdBSlosVUFBVSxjQUZULE1BQU07NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFNvdXJjZVBvbHlmaWxsIH0gZnJvbSAnZXZlbnQtc291cmNlLXBvbHlmaWxsL3NyYy9ldmVudHNvdXJjZS5taW4uanMnO1xuaW1wb3J0IHsgSnd0U2VydmljZSB9IGZyb20gJy4uL2F1dGgvand0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTc2VTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIGxpc3QgdG8gdXJsIGZvciBzZXJ2ZXIgZXZlbnRzXG4gICAqL1xuICBvbih0b3BpYzogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICBjb25zdCB1cmw6IFVSTCA9IG5ldyBVUkwodGhpcy5lbnZpcm9ubWVudC5tZXJjdXJlVXJsKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgndG9waWMnLCBgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS91c2Vycy8ke3RoaXMuand0U2VydmljZS5kZWNvZGVUb2tlbigpLnVzZXJuYW1lfS8ke3RvcGljfWApO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3QgZXM6IEV2ZW50U291cmNlUG9seWZpbGwgPSBuZXcgRXZlbnRTb3VyY2VQb2x5ZmlsbCh1cmwsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuand0U2VydmljZS5nZXRUb2tlbigpLFxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgZXMub25tZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKTogdm9pZCA9PiBvYnNlcnZlci5uZXh0KGV2ZW50KSk7XG4gICAgICB9O1xuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IG9iamVjdCA9PiB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobWVzc2FnZUV2ZW50LmRhdGEpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { plainToClass } from 'class-transformer';
5
+ import { Firm } from '../../db/Models/firm';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ // @TODO Alex: think about extend base rest service
9
+ export class FirmService {
10
+ constructor(http, environment) {
11
+ this.http = http;
12
+ this.environment = environment;
13
+ this.firmSubject = new ReplaySubject(1);
14
+ }
15
+ /**
16
+ * Register new firm
17
+ * @param data: firm and firm owner data to register
18
+ */
19
+ register(data) {
20
+ return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
21
+ .pipe(map((firm) => {
22
+ return plainToClass(Firm, firm);
23
+ }));
24
+ }
25
+ get() {
26
+ if (!this.firm) {
27
+ this.http.get(`${this.environment.apiV2}/firms/current`)
28
+ .pipe(map((firm) => {
29
+ return plainToClass(Firm, firm);
30
+ }))
31
+ .subscribe((firm) => {
32
+ this.firm = firm;
33
+ this.firmSubject.next(this.firm);
34
+ });
35
+ }
36
+ return this.firmSubject.asObservable();
37
+ }
38
+ update(firm) {
39
+ return this.http.put(`${this.environment.apiV2}/firms/current`, firm)
40
+ .pipe(map((updatedItem) => {
41
+ const updatedInstance = plainToClass(Firm, updatedItem);
42
+ this.firmSubject.next(updatedInstance);
43
+ }));
44
+ }
45
+ /**
46
+ * get list of all registered firms
47
+ */
48
+ getAll() {
49
+ return this.http.get(`${this.environment.apiV2}/firms`)
50
+ .pipe(map((response) => {
51
+ return response['hydra:member'].map((firmBase) => plainToClass(Firm, firmBase));
52
+ }));
53
+ }
54
+ getByType(type) {
55
+ return this.getAll().pipe(map((firms) => {
56
+ return firms.filter((firm) => firm.type === type);
57
+ }));
58
+ }
59
+ updatePhoto(firm, photo) {
60
+ return this.http.post(`${this.environment.apiV2}/firms/photo?_method=PUT`, photo)
61
+ .pipe(map((firmPhoto) => {
62
+ this.firm = plainToClass(Firm, Object.assign(firm, { photo: firmPhoto }));
63
+ this.firmSubject.next(this.firm);
64
+ return firm;
65
+ }));
66
+ }
67
+ }
68
+ FirmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ FirmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FirmService, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root'
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
76
+ type: Inject,
77
+ args: ['environment']
78
+ }] }]; } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2Zpcm0vZmlybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7QUFFOUQsbURBQW1EO0FBSW5ELE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQ1UsSUFBZ0IsRUFDUyxXQUFnQjtRQUR6QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ1MsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFKbkQsZ0JBQVcsR0FBd0IsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDLENBQUM7SUFLM0QsQ0FBQztJQUVKOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUsscUJBQXFCLEVBQUUsSUFBSSxDQUFDO2FBQ3hFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFjLEVBQVEsRUFBRTtZQUMzQixPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztpQkFDckQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLElBQWMsRUFBUSxFQUFFO2dCQUMzQixPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFRLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGdCQUFnQixFQUFFLElBQUksQ0FBQzthQUNsRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsV0FBcUIsRUFBRSxFQUFFO1lBQzVCLE1BQU0sZUFBZSxHQUFTLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLFFBQVEsQ0FBQzthQUNwRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBVSxFQUFFO1lBQy9CLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQWtCLEVBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFrQjtRQUMxQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBVSxFQUFFO1lBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFVLEVBQUUsS0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLDBCQUEwQixFQUFFLEtBQUssQ0FBQzthQUM5RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsU0FBaUIsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWpDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O3lHQS9FVSxXQUFXLDRDQU1aLGFBQWE7NkdBTlosV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpcm1UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2Zpcm0tdHlwZS5lbnVtJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEZpcm0sIEZpcm0gYXMgRmlybUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZmlybSc7XG5cbi8vIEBUT0RPIEFsZXg6IHRoaW5rIGFib3V0IGV4dGVuZCBiYXNlIHJlc3Qgc2VydmljZVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlybVNlcnZpY2Uge1xuICBmaXJtOiBGaXJtO1xuICBmaXJtU3ViamVjdDogUmVwbGF5U3ViamVjdDxGaXJtPiA9IG5ldyBSZXBsYXlTdWJqZWN0PEZpcm0+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge31cblxuICAvKipcbiAgICogUmVnaXN0ZXIgbmV3IGZpcm1cbiAgICogQHBhcmFtIGRhdGE6IGZpcm0gYW5kIGZpcm0gb3duZXIgZGF0YSB0byByZWdpc3RlclxuICAgKi9cbiAgcmVnaXN0ZXIoZGF0YTogRmlybSk6IE9ic2VydmFibGU8RmlybT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9yZWdpc3RyYXRpb25gLCBkYXRhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZmlybTogRmlybUJhc2UpOiBGaXJtID0+IHtcbiAgICAgICAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEZpcm0sIGZpcm0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPEZpcm0+IHtcbiAgICBpZiAoIXRoaXMuZmlybSkge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9maXJtcy9jdXJyZW50YClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChmaXJtOiBGaXJtQmFzZSk6IEZpcm0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhGaXJtLCBmaXJtKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGZpcm06IEZpcm0pOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmZpcm0gPSBmaXJtO1xuICAgICAgICAgIHRoaXMuZmlybVN1YmplY3QubmV4dCh0aGlzLmZpcm0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5maXJtU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHVwZGF0ZShmaXJtOiBGaXJtKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmlybXMvY3VycmVudGAsIGZpcm0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkSXRlbTogRmlybUJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2U6IEZpcm0gPSBwbGFpblRvQ2xhc3MoRmlybSwgdXBkYXRlZEl0ZW0pO1xuICAgICAgICAgIHRoaXMuZmlybVN1YmplY3QubmV4dCh1cGRhdGVkSW5zdGFuY2UpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBmaXJtc1xuICAgKi9cbiAgZ2V0QWxsKCk6IE9ic2VydmFibGU8RmlybVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmlybXNgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCk6IEZpcm1bXSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlWydoeWRyYTptZW1iZXInXS5tYXAoKGZpcm1CYXNlOiBGaXJtQmFzZSk6IEZpcm0gPT4gcGxhaW5Ub0NsYXNzKEZpcm0sIGZpcm1CYXNlKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0QnlUeXBlKHR5cGU6IEZpcm1UeXBlRW51bSk6IE9ic2VydmFibGU8RmlybVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsKCkucGlwZShcbiAgICAgIG1hcCgoZmlybXM6IEZpcm1bXSk6IEZpcm1bXSA9PiB7XG4gICAgICAgIHJldHVybiBmaXJtcy5maWx0ZXIoKGZpcm06IEZpcm0pID0+IGZpcm0udHlwZSA9PT0gdHlwZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB1cGRhdGVQaG90byhmaXJtOiBGaXJtLCBwaG90bzogRm9ybURhdGEpOiBPYnNlcnZhYmxlPEZpcm0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmlybXMvcGhvdG8/X21ldGhvZD1QVVRgLCBwaG90bylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGZpcm1QaG90bzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5maXJtID0gcGxhaW5Ub0NsYXNzKEZpcm0sIE9iamVjdC5hc3NpZ24oZmlybSwge3Bob3RvOiBmaXJtUGhvdG99KSk7XG4gICAgICAgICAgdGhpcy5maXJtU3ViamVjdC5uZXh0KHRoaXMuZmlybSk7XG5cbiAgICAgICAgICByZXR1cm4gZmlybTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationEnd } from '@angular/router';
3
+ import { filter, map, mergeMap } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ export class HeaderTitleService {
7
+ constructor(router, activatedRoute) {
8
+ this.router = router;
9
+ this.activatedRoute = activatedRoute;
10
+ }
11
+ handleTitle() {
12
+ return this.router.events.pipe(filter((event) => event instanceof NavigationEnd), map(() => this.activatedRoute), map((route) => {
13
+ while (route.firstChild) {
14
+ route = route.firstChild;
15
+ }
16
+ return route;
17
+ }), filter((route) => route.outlet === 'primary'), mergeMap((route) => route.data));
18
+ }
19
+ }
20
+ HeaderTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderTitleService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ HeaderTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderTitleService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: HeaderTitleService, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXRpdGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaGVhZGVyLXRpdGxlL2hlYWRlci10aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFrQixhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFDVSxNQUFjLEVBQ2QsY0FBOEI7UUFEOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUV4QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM1QixNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFDdEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDOUIsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUN2QixLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUMxQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxFQUNsRCxRQUFRLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7O2dIQXJCVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyVGl0bGVTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICApIHtcbiAgfVxuXG4gIGhhbmRsZVRpdGxlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgZmlsdGVyKChldmVudDogYW55KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuYWN0aXZhdGVkUm91dGUpLFxuICAgICAgbWFwKChyb3V0ZTogYW55KSA9PiB7XG4gICAgICAgIHdoaWxlIChyb3V0ZS5maXJzdENoaWxkKSB7XG4gICAgICAgICAgcm91dGUgPSByb3V0ZS5maXJzdENoaWxkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3V0ZTtcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKChyb3V0ZTogYW55KSA9PiByb3V0ZS5vdXRsZXQgPT09ICdwcmltYXJ5JyksXG4gICAgICBtZXJnZU1hcCgocm91dGU6IGFueSkgPT4gcm91dGUuZGF0YSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,90 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { plainToClass } from 'class-transformer';
4
+ import { BaseRestService } from '../base-rest.service';
5
+ import { IncomeSourceForecast } from '../../models/income-source/income-source-forecast';
6
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
7
+ import { IncomeSource } from '../../models/income-source/income-source';
8
+ import { AppEvent } from '../../models/event/app-event';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common/http";
11
+ import * as i2 from "../event/event-dispatcher.service";
12
+ /**
13
+ * Service to work with Other Income Forecasts
14
+ */
15
+ export class IncomeSourceForecastService extends BaseRestService {
16
+ constructor(http, eventDispatcherService, environment) {
17
+ super(http, eventDispatcherService, environment);
18
+ this.http = http;
19
+ this.eventDispatcherService = eventDispatcherService;
20
+ this.environment = environment;
21
+ this.modelClass = IncomeSourceForecast;
22
+ this.url = 'income-source-forecasts';
23
+ this.listenEvents();
24
+ }
25
+ /**
26
+ * Listen to Income Sources events
27
+ */
28
+ listenEvents() {
29
+ this.listenToAddedIncomeSources();
30
+ this.listenToUpdatedIncomeSources();
31
+ }
32
+ /**
33
+ * Listen to EventDispatcherService event related to added Income Sources
34
+ */
35
+ listenToAddedIncomeSources() {
36
+ this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_CREATED)
37
+ .pipe(map((incomeSources) => incomeSources
38
+ .filter((incomeSource) => !incomeSource.isSalaryIncome())))
39
+ .subscribe((incomeSources) => {
40
+ const incomeSourceForecasts = this.assignIncomeSourceForecasts(incomeSources);
41
+ if (incomeSourceForecasts.length) {
42
+ this.addBatch(incomeSourceForecasts).subscribe((createdIncomeSourceForecasts) => {
43
+ this.eventDispatcherService
44
+ .dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_CREATED, createdIncomeSourceForecasts));
45
+ });
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Listen to EventDispatcherService event related to updated Income Sources
51
+ */
52
+ listenToUpdatedIncomeSources() {
53
+ this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_UPDATED)
54
+ .subscribe((incomeSources) => {
55
+ const incomeSourceForecasts = this.assignIncomeSourceForecasts(incomeSources);
56
+ if (incomeSourceForecasts.length) {
57
+ this.updateBatch(incomeSourceForecasts).subscribe((updatedIncomeSourceForecasts) => {
58
+ this.eventDispatcherService
59
+ .dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_UPDATED, updatedIncomeSourceForecasts));
60
+ });
61
+ }
62
+ });
63
+ }
64
+ /**
65
+ * Assign other income forecasts based on provided income sources
66
+ * @param incomeSources by which other income forecasts will be assigned
67
+ */
68
+ assignIncomeSourceForecasts(incomeSources) {
69
+ return incomeSources.map((incomeSource) => {
70
+ incomeSource.incomeSourceForecasts = incomeSource.incomeSourceForecasts
71
+ .map((incomeSourceForecast) => {
72
+ incomeSourceForecast.incomeSource = plainToClass(IncomeSource, { id: incomeSource.id });
73
+ return incomeSourceForecast;
74
+ });
75
+ return incomeSource.incomeSourceForecasts;
76
+ }).flat();
77
+ }
78
+ }
79
+ IncomeSourceForecastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ IncomeSourceForecastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, providedIn: 'root' });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceForecastService, decorators: [{
82
+ type: Injectable,
83
+ args: [{
84
+ providedIn: 'root'
85
+ }]
86
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
87
+ type: Inject,
88
+ args: ['environment']
89
+ }] }]; } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS1mb3JlY2FzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS1mb3JlY2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFeEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBK0Q7SUFJOUcsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsZUFBVSxHQUFnQyxvQkFBb0IsQ0FBQztRQUMvRCxRQUFHLEdBQVcseUJBQXlCLENBQUM7UUFRdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFLENBQUMsYUFBYTthQUNqRCxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQzNFO2FBQ0EsU0FBUyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFO1lBRTNDLE1BQU0scUJBQXFCLEdBQTJCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLDRCQUFvRCxFQUFFLEVBQUU7b0JBQ3RHLElBQUksQ0FBQyxzQkFBc0I7eUJBQ3hCLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7Z0JBQzdHLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNLLDRCQUE0QjtRQUNsQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO2FBQ3BFLFNBQVMsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLHFCQUFxQixHQUEyQixJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyw0QkFBb0QsRUFBRSxFQUFFO29CQUN6RyxJQUFJLENBQUMsc0JBQXNCO3lCQUN4QixRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDO2dCQUM3RyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssMkJBQTJCLENBQUMsYUFBNkI7UUFDL0QsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ3RELFlBQVksQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMscUJBQXFCO2lCQUNwRSxHQUFHLENBQUMsQ0FBQyxvQkFBMEMsRUFBRSxFQUFFO2dCQUNsRCxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztnQkFDdEYsT0FBTyxvQkFBb0IsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU8sWUFBWSxDQUFDLHFCQUFxQixDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQzs7eUhBdkVVLDJCQUEyQixrRkFPNUIsYUFBYTs2SEFQWiwyQkFBMkIsY0FGMUIsTUFBTTs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VGb3JlY2FzdCBhcyBJbmNvbWVTb3VyY2VGb3JlY2FzdEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvaW5jb21lLXNvdXJjZS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VGb3JlY2FzdCB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtZm9yZWNhc3QnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIE90aGVyIEluY29tZSBGb3JlY2FzdHNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlRm9yZWNhc3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPEluY29tZVNvdXJjZUZvcmVjYXN0QmFzZSwgSW5jb21lU291cmNlRm9yZWNhc3Q+IHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIEluY29tZVNvdXJjZUZvcmVjYXN0ID0gSW5jb21lU291cmNlRm9yZWNhc3Q7XG4gIHVybDogc3RyaW5nID0gJ2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBJbmNvbWUgU291cmNlcyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRJbmNvbWVTb3VyY2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Ub1VwZGF0ZWRJbmNvbWVTb3VyY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBJbmNvbWUgU291cmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0FkZGVkSW5jb21lU291cmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IGluY29tZVNvdXJjZXNcbiAgICAgICAgICAuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gIWluY29tZVNvdXJjZS5pc1NhbGFyeUluY29tZSgpKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKSA9PiB7XG5cbiAgICAgICAgY29uc3QgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdID0gdGhpcy5hc3NpZ25JbmNvbWVTb3VyY2VGb3JlY2FzdHMoaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpbmNvbWVTb3VyY2VGb3JlY2FzdHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5hZGRCYXRjaChpbmNvbWVTb3VyY2VGb3JlY2FzdHMpLnN1YnNjcmliZSgoY3JlYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlXG4gICAgICAgICAgICAgIC5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfQ1JFQVRFRCwgY3JlYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0cykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnREaXNwYXRjaGVyU2VydmljZSBldmVudCByZWxhdGVkIHRvIHVwZGF0ZWQgSW5jb21lIFNvdXJjZXNcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9VcGRhdGVkSW5jb21lU291cmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19VUERBVEVEKVxuICAgICAgLnN1YnNjcmliZSgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IHtcbiAgICAgICAgY29uc3QgaW5jb21lU291cmNlRm9yZWNhc3RzOiBJbmNvbWVTb3VyY2VGb3JlY2FzdFtdID0gdGhpcy5hc3NpZ25JbmNvbWVTb3VyY2VGb3JlY2FzdHMoaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpbmNvbWVTb3VyY2VGb3JlY2FzdHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVCYXRjaChpbmNvbWVTb3VyY2VGb3JlY2FzdHMpLnN1YnNjcmliZSgodXBkYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlXG4gICAgICAgICAgICAgIC5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfVVBEQVRFRCwgdXBkYXRlZEluY29tZVNvdXJjZUZvcmVjYXN0cykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NpZ24gb3RoZXIgaW5jb21lIGZvcmVjYXN0cyBiYXNlZCBvbiBwcm92aWRlZCBpbmNvbWUgc291cmNlc1xuICAgKiBAcGFyYW0gaW5jb21lU291cmNlcyBieSB3aGljaCBvdGhlciBpbmNvbWUgZm9yZWNhc3RzIHdpbGwgYmUgYXNzaWduZWRcbiAgICovXG4gIHByaXZhdGUgYXNzaWduSW5jb21lU291cmNlRm9yZWNhc3RzKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKTogSW5jb21lU291cmNlRm9yZWNhc3RbXSB7XG4gICAgcmV0dXJuIGluY29tZVNvdXJjZXMubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4ge1xuICAgICAgaW5jb21lU291cmNlLmluY29tZVNvdXJjZUZvcmVjYXN0cyA9IGluY29tZVNvdXJjZS5pbmNvbWVTb3VyY2VGb3JlY2FzdHNcbiAgICAgICAgLm1hcCgoaW5jb21lU291cmNlRm9yZWNhc3Q6IEluY29tZVNvdXJjZUZvcmVjYXN0KSA9PiB7XG4gICAgICAgICAgaW5jb21lU291cmNlRm9yZWNhc3QuaW5jb21lU291cmNlID0gcGxhaW5Ub0NsYXNzKEluY29tZVNvdXJjZSwge2lkOiBpbmNvbWVTb3VyY2UuaWR9KTtcbiAgICAgICAgICByZXR1cm4gaW5jb21lU291cmNlRm9yZWNhc3Q7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIGluY29tZVNvdXJjZS5pbmNvbWVTb3VyY2VGb3JlY2FzdHM7XG4gICAgfSkuZmxhdCgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,109 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import { BaseRestService } from '../base-rest.service';
5
+ import { IncomeSourceType } from '../../models/income-source/income-source-type';
6
+ import { SalaryForecast } from '../../models/income-source/salary-forecast';
7
+ import { replace } from '../../functions/array';
8
+ import { plainToClass } from 'class-transformer';
9
+ import { IncomeSource } from '../../models/income-source/income-source';
10
+ import { AppEvent } from '../../models/event/app-event';
11
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/common/http";
14
+ import * as i2 from "../event/event-dispatcher.service";
15
+ /**
16
+ * Service to work with income sources
17
+ */
18
+ export class IncomeSourceService extends BaseRestService {
19
+ constructor(http, eventDispatcherService, environment) {
20
+ super(http, eventDispatcherService, environment);
21
+ this.http = http;
22
+ this.eventDispatcherService = eventDispatcherService;
23
+ this.environment = environment;
24
+ this.url = 'income-sources';
25
+ this.modelClass = IncomeSource;
26
+ this.incomeSourceTypeSubject = new ReplaySubject(1);
27
+ }
28
+ /**
29
+ * Get income sources tax calculation
30
+ * @param salaryForecast for which tax should be calculated
31
+ */
32
+ getTaxCalculation(salaryForecast) {
33
+ return this.http.post(`${this.environment.apiV2}/${this.url}/tax-calculation`, salaryForecast)
34
+ .pipe(map((response) => {
35
+ return plainToClass(SalaryForecast, response);
36
+ }));
37
+ }
38
+ /**
39
+ * Add batch of income sources
40
+ * @param incomeSources to add
41
+ */
42
+ addBatch(incomeSources) {
43
+ return this.http.post(`${this.environment.apiV2}/${this.url}`, incomeSources)
44
+ .pipe(map((addedIncomeSources) => {
45
+ // assign respond income sources to provided income sources
46
+ const assignedIncomeSources = addedIncomeSources
47
+ .map((incomeSource, index) => Object.assign(plainToClass(IncomeSource, {}), incomeSource, incomeSources[index]));
48
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_CREATED, assignedIncomeSources));
49
+ this.cache.push(...assignedIncomeSources);
50
+ this.updateCache();
51
+ return assignedIncomeSources;
52
+ }));
53
+ }
54
+ /**
55
+ * Update batch of income sources
56
+ */
57
+ updateBatch(incomeSources, queryParams = {}) {
58
+ return this.http.put(`${this.environment.apiV2}/${this.url}`, incomeSources, queryParams)
59
+ .pipe(map((updatedItems) => {
60
+ const updatedInstances = updatedItems.map((item) => this.createModelInstance(this.modelClass, item));
61
+ updatedInstances.forEach((instance) => {
62
+ replace(this.cache, instance);
63
+ });
64
+ if (incomeSources[0].forecasts.length) {
65
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_UPDATED, incomeSources));
66
+ }
67
+ this.updateCache();
68
+ return updatedInstances;
69
+ }));
70
+ }
71
+ /**
72
+ * Get income sources by provided types
73
+ * @param types
74
+ */
75
+ getByTypes(types) {
76
+ return this.get()
77
+ .pipe(map((incomeSources) => incomeSources
78
+ .filter((incomeSource) => types.includes(incomeSource.type))));
79
+ }
80
+ /**
81
+ * Get other incomes types
82
+ */
83
+ getIncomeSourceTypes() {
84
+ if (!this.incomeSourceTypes) {
85
+ this.incomeSourceTypes = [];
86
+ this.http.get(`${this.environment.apiV2}/income-source-types`)
87
+ .pipe(map((response) => {
88
+ return response.map((item) => plainToClass(IncomeSourceType, item));
89
+ }))
90
+ .subscribe((otherIncomesTypes) => {
91
+ this.incomeSourceTypes = otherIncomesTypes;
92
+ this.incomeSourceTypeSubject.next(this.incomeSourceTypes);
93
+ });
94
+ }
95
+ return this.incomeSourceTypeSubject.asObservable();
96
+ }
97
+ }
98
+ IncomeSourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ IncomeSourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, providedIn: 'root' });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IncomeSourceService, decorators: [{
101
+ type: Injectable,
102
+ args: [{
103
+ providedIn: 'root'
104
+ }]
105
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
106
+ type: Inject,
107
+ args: ['environment']
108
+ }] }]; } });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21lLXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQStDO0lBTXRGLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBUm5ELFFBQUcsR0FBVyxnQkFBZ0IsQ0FBQztRQUMvQixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRTFCLDRCQUF1QixHQUFzQyxJQUFJLGFBQWEsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7SUFRdEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLGNBQThCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxjQUFjLENBQUM7YUFDM0YsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxhQUE2QjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGFBQWEsQ0FBQzthQUMxRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsa0JBQXNDLEVBQUUsRUFBRTtZQUM3QywyREFBMkQ7WUFDM0QsTUFBTSxxQkFBcUIsR0FBbUIsa0JBQWtCO2lCQUM3RCxHQUFHLENBQUMsQ0FBQyxZQUEwQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBRW5ILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBRUgsV0FBVyxDQUFDLGFBQTZCLEVBQUUsY0FBc0IsRUFBRTtRQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUM7YUFDdEYsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFlBQTRCLEVBQUUsRUFBRTtZQUNuQyxNQUFNLGdCQUFnQixHQUFtQixZQUFZLENBQUMsR0FBRyxDQUN2RCxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUN4RSxDQUFDO1lBQ0YsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBc0IsRUFBRSxFQUFFO2dCQUNsRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQzthQUM1RztZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLEtBQTZCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUUsQ0FBQyxhQUFhO2FBQ2pELE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssc0JBQXNCLENBQUM7aUJBQzNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxpQkFBcUMsRUFBRSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JELENBQUM7O2lIQXZHVSxtQkFBbUIsa0ZBU3BCLGFBQWE7cUhBVFosbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIGFzIEluY29tZVNvdXJjZUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2VUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS10eXBlJztcbmltcG9ydCB7IFNhbGFyeUZvcmVjYXN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luY29tZS1zb3VyY2Uvc2FsYXJ5LWZvcmVjYXN0JztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgSW5jb21lU291cmNlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9pbmNvbWUtc291cmNlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggaW5jb21lIHNvdXJjZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5jb21lU291cmNlU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxJbmNvbWVTb3VyY2VCYXNlLCBJbmNvbWVTb3VyY2U+IHtcbiAgdXJsOiBzdHJpbmcgPSAnaW5jb21lLXNvdXJjZXMnO1xuICBtb2RlbENsYXNzID0gSW5jb21lU291cmNlO1xuICBpbmNvbWVTb3VyY2VUeXBlczogSW5jb21lU291cmNlVHlwZVtdO1xuICBpbmNvbWVTb3VyY2VUeXBlU3ViamVjdDogUmVwbGF5U3ViamVjdDxJbmNvbWVTb3VyY2VUeXBlW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8SW5jb21lU291cmNlVHlwZVtdPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5jb21lIHNvdXJjZXMgdGF4IGNhbGN1bGF0aW9uXG4gICAqIEBwYXJhbSBzYWxhcnlGb3JlY2FzdCBmb3Igd2hpY2ggdGF4IHNob3VsZCBiZSBjYWxjdWxhdGVkXG4gICAqL1xuICBnZXRUYXhDYWxjdWxhdGlvbihzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpOiBPYnNlcnZhYmxlPFNhbGFyeUZvcmVjYXN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L3RheC1jYWxjdWxhdGlvbmAsIHNhbGFyeUZvcmVjYXN0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2FsYXJ5Rm9yZWNhc3QsIHJlc3BvbnNlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGJhdGNoIG9mIGluY29tZSBzb3VyY2VzXG4gICAqIEBwYXJhbSBpbmNvbWVTb3VyY2VzIHRvIGFkZFxuICAgKi9cbiAgYWRkQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgaW5jb21lU291cmNlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGFkZGVkSW5jb21lU291cmNlczogSW5jb21lU291cmNlQmFzZVtdKSA9PiB7XG4gICAgICAgICAgLy8gYXNzaWduIHJlc3BvbmQgaW5jb21lIHNvdXJjZXMgdG8gcHJvdmlkZWQgaW5jb21lIHNvdXJjZXNcbiAgICAgICAgICBjb25zdCBhc3NpZ25lZEluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdID0gYWRkZWRJbmNvbWVTb3VyY2VzXG4gICAgICAgICAgICAubWFwKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSwgaW5kZXg6IG51bWJlcikgPT4gT2JqZWN0LmFzc2lnbihwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlLCB7fSksIGluY29tZVNvdXJjZSwgaW5jb21lU291cmNlc1tpbmRleF0pKTtcblxuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVELCBhc3NpZ25lZEluY29tZVNvdXJjZXMpKTtcblxuICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5hc3NpZ25lZEluY29tZVNvdXJjZXMpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gYXNzaWduZWRJbmNvbWVTb3VyY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYmF0Y2ggb2YgaW5jb21lIHNvdXJjZXNcbiAgICovXG5cbiAgdXBkYXRlQmF0Y2goaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8SW5jb21lU291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGluY29tZVNvdXJjZXMsIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBJbmNvbWVTb3VyY2VbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IEluY29tZVNvdXJjZVtdID0gdXBkYXRlZEl0ZW1zLm1hcChcbiAgICAgICAgICAgIChpdGVtOiBJbmNvbWVTb3VyY2UpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh0aGlzLm1vZGVsQ2xhc3MsIGl0ZW0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB1cGRhdGVkSW5zdGFuY2VzLmZvckVhY2goKGluc3RhbmNlOiBJbmNvbWVTb3VyY2UpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGluY29tZVNvdXJjZXNbMF0uZm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX1VQREFURUQsIGluY29tZVNvdXJjZXMpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmNvbWUgc291cmNlcyBieSBwcm92aWRlZCB0eXBlc1xuICAgKiBAcGFyYW0gdHlwZXNcbiAgICovXG4gIGdldEJ5VHlwZXModHlwZXM6IEluY29tZVNvdXJjZVR5cGVFbnVtW10pOiBPYnNlcnZhYmxlPEluY29tZVNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKSA9PiBpbmNvbWVTb3VyY2VzXG4gICAgICAgICAgLmZpbHRlcigoaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2UpID0+IHR5cGVzLmluY2x1ZGVzKGluY29tZVNvdXJjZS50eXBlKSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3RoZXIgaW5jb21lcyB0eXBlc1xuICAgKi9cbiAgZ2V0SW5jb21lU291cmNlVHlwZXMoKTogT2JzZXJ2YWJsZTxJbmNvbWVTb3VyY2VUeXBlW10+IHtcbiAgICBpZiAoIXRoaXMuaW5jb21lU291cmNlVHlwZXMpIHtcbiAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBbXTtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vaW5jb21lLXNvdXJjZS10eXBlc2ApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogYW55KSA9PiBwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlVHlwZSwgaXRlbSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgob3RoZXJJbmNvbWVzVHlwZXM6IEluY29tZVNvdXJjZVR5cGVbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5jb21lU291cmNlVHlwZXMgPSBvdGhlckluY29tZXNUeXBlcztcbiAgICAgICAgICB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0Lm5leHQodGhpcy5pbmNvbWVTb3VyY2VUeXBlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmluY29tZVNvdXJjZVR5cGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=