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,46 @@
1
+ import { 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 { PropertyCapitalCost } from '../../models/property/property-capital-cost';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Service to work with capital costs
9
+ */
10
+ export class PropertyCapitalCostService extends BaseRestService {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.url = 'capital-costs';
14
+ this.modelClass = PropertyCapitalCost;
15
+ }
16
+ /**
17
+ * Get property capital costs
18
+ * @param property which params will be taken for list of property capital costs
19
+ */
20
+ getByProperty(property) {
21
+ // get list of capital costs items
22
+ return this.get()
23
+ .pipe(map((capitalCosts) => {
24
+ // property capital costs array
25
+ return capitalCosts.map((capitalCost) => {
26
+ var _a;
27
+ // return new Property capital cost object with capital cost and amount
28
+ return plainToClass(PropertyCapitalCost, {
29
+ capitalCost,
30
+ amount: ((_a = property.capitalCosts.find((existingCapitalCost) => {
31
+ return existingCapitalCost.capitalCost.id === capitalCost.id;
32
+ })) === null || _a === void 0 ? void 0 : _a.amount) || null
33
+ });
34
+ });
35
+ }));
36
+ }
37
+ }
38
+ PropertyCapitalCostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCapitalCostService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
39
+ PropertyCapitalCostService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCapitalCostService, providedIn: 'root' });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCapitalCostService, decorators: [{
41
+ type: Injectable,
42
+ args: [{
43
+ providedIn: 'root'
44
+ }]
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FwaXRhbC1jb3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHkvcHJvcGVydHktY2FwaXRhbC1jb3N0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFHbEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZUFBNkQ7SUFIN0c7O1FBSUUsUUFBRyxHQUFXLGVBQWUsQ0FBQztRQUM5QixlQUFVLEdBQStCLG1CQUFtQixDQUFDO0tBd0I5RDtJQXRCQzs7O09BR0c7SUFDSCxhQUFhLENBQUMsUUFBa0I7UUFDOUIsa0NBQWtDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxZQUFtQyxFQUFFLEVBQUU7WUFDMUMsK0JBQStCO1lBQy9CLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQWdDLEVBQUUsRUFBRTs7Z0JBQzNELHVFQUF1RTtnQkFDdkUsT0FBTyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7b0JBQ3ZDLFdBQVc7b0JBQ1gsTUFBTSxFQUFFLENBQUEsTUFBQSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLG1CQUF3QyxFQUFXLEVBQUU7d0JBQ3ZGLE9BQU8sbUJBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUMvRCxDQUFDLENBQUMsMENBQUUsTUFBTSxLQUFJLElBQUk7aUJBQ25CLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O3dIQXpCVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhcGl0YWxDb3N0IGFzIFByb3BlcnR5Q2FwaXRhbENvc3RCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5LWNhcGl0YWwtY29zdCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhcGl0YWxDb3N0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWNhcGl0YWwtY29zdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggY2FwaXRhbCBjb3N0c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUNhcGl0YWxDb3N0U2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxQcm9wZXJ0eUNhcGl0YWxDb3N0QmFzZSwgUHJvcGVydHlDYXBpdGFsQ29zdD4ge1xuICB1cmw6IHN0cmluZyA9ICdjYXBpdGFsLWNvc3RzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFByb3BlcnR5Q2FwaXRhbENvc3QgPSBQcm9wZXJ0eUNhcGl0YWxDb3N0O1xuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgY2FwaXRhbCBjb3N0c1xuICAgKiBAcGFyYW0gcHJvcGVydHkgd2hpY2ggcGFyYW1zIHdpbGwgYmUgdGFrZW4gZm9yIGxpc3Qgb2YgcHJvcGVydHkgY2FwaXRhbCBjb3N0c1xuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5Q2FwaXRhbENvc3RbXT4ge1xuICAgIC8vIGdldCBsaXN0IG9mIGNhcGl0YWwgY29zdHMgaXRlbXNcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2FwaXRhbENvc3RzOiBQcm9wZXJ0eUNhcGl0YWxDb3N0W10pID0+IHtcbiAgICAgICAgICAvLyBwcm9wZXJ0eSBjYXBpdGFsIGNvc3RzIGFycmF5XG4gICAgICAgICAgcmV0dXJuIGNhcGl0YWxDb3N0cy5tYXAoKGNhcGl0YWxDb3N0OiBQcm9wZXJ0eUNhcGl0YWxDb3N0KSA9PiB7XG4gICAgICAgICAgICAvLyByZXR1cm4gbmV3IFByb3BlcnR5IGNhcGl0YWwgY29zdCBvYmplY3Qgd2l0aCBjYXBpdGFsIGNvc3QgYW5kIGFtb3VudFxuICAgICAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhQcm9wZXJ0eUNhcGl0YWxDb3N0LCB7XG4gICAgICAgICAgICAgIGNhcGl0YWxDb3N0LFxuICAgICAgICAgICAgICBhbW91bnQ6IHByb3BlcnR5LmNhcGl0YWxDb3N0cy5maW5kKChleGlzdGluZ0NhcGl0YWxDb3N0OiBQcm9wZXJ0eUNhcGl0YWxDb3N0KTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV4aXN0aW5nQ2FwaXRhbENvc3QuY2FwaXRhbENvc3QuaWQgPT09IGNhcGl0YWxDb3N0LmlkO1xuICAgICAgICAgICAgICB9KT8uYW1vdW50IHx8IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseRestService } from '../base-rest.service';
3
+ import { PropertyCategory } from '../../models/property/property-category';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service for work with Property Categories
7
+ */
8
+ export class PropertyCategoryService extends BaseRestService {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.modelClass = PropertyCategory;
12
+ this.url = 'properties/categories';
13
+ }
14
+ }
15
+ PropertyCategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCategoryService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
16
+ PropertyCategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCategoryService, providedIn: 'root' });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCategoryService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUUzRTs7R0FFRztBQUlILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUF1RDtJQUhwRzs7UUFJRSxlQUFVLEdBQTRCLGdCQUFnQixDQUFDO1FBQ3ZELFFBQUcsR0FBVyx1QkFBdUIsQ0FBQztLQUN2Qzs7cUhBSFksdUJBQXVCO3lIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSBhcyBQcm9wZXJ0eUNhdGVnb3J5QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5JztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggUHJvcGVydHkgQ2F0ZWdvcmllc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUNhdGVnb3J5U2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxQcm9wZXJ0eUNhdGVnb3J5QmFzZSwgUHJvcGVydHlDYXRlZ29yeT57XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eUNhdGVnb3J5ID0gUHJvcGVydHlDYXRlZ29yeTtcbiAgdXJsOiBzdHJpbmcgPSAncHJvcGVydGllcy9jYXRlZ29yaWVzJztcbn1cbiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { plainToClass } from 'class-transformer';
4
+ import { PropertyDocument } from '../../models/property/property-document';
5
+ import { BaseRestService } from '../base-rest.service';
6
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "../event/event-dispatcher.service";
10
+ /**
11
+ * Class for work with Property Documents
12
+ */
13
+ export class PropertyDocumentService extends BaseRestService {
14
+ constructor(http, eventDispatcherService, environment) {
15
+ super(http, eventDispatcherService, environment);
16
+ this.http = http;
17
+ this.eventDispatcherService = eventDispatcherService;
18
+ this.environment = environment;
19
+ this.modelClass = PropertyDocument;
20
+ this.url = 'properties/documents';
21
+ this.listenEvents();
22
+ }
23
+ /**
24
+ * Add new Property Document
25
+ */
26
+ upload(file, propertyId) {
27
+ // create formData object with provided file
28
+ const formDataDocument = new FormData();
29
+ formDataDocument.append('file', file);
30
+ return this.http.post(`${this.environment.apiV2}/properties/${propertyId}/documents`, formDataDocument).pipe(map((documentBase) => {
31
+ const newDocument = plainToClass(PropertyDocument, documentBase);
32
+ this.cache.push(newDocument);
33
+ this.updateCache();
34
+ return newDocument;
35
+ }));
36
+ }
37
+ /**
38
+ * Get documents by property id
39
+ * @param propertyId to get desired documents
40
+ */
41
+ getByPropertyId(propertyId) {
42
+ return this.get()
43
+ .pipe(map((documents) => {
44
+ return documents
45
+ .filter((document) => document.property.id === propertyId);
46
+ }));
47
+ }
48
+ listenEvents() {
49
+ this.listenPropertyUpdateWithDocument();
50
+ }
51
+ listenPropertyUpdateWithDocument() {
52
+ this.eventDispatcherService.on(AppEventTypeEnum.PROPERTY_UPDATED_WITH_DOCUMENT).subscribe((property) => {
53
+ this.upload(property.documentFile, property.id).subscribe();
54
+ });
55
+ }
56
+ }
57
+ PropertyDocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyDocumentService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
58
+ PropertyDocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyDocumentService, providedIn: 'root' });
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyDocumentService, decorators: [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root'
63
+ }]
64
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
65
+ type: Inject,
66
+ args: ['environment']
67
+ }] }]; } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kb2N1bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRzFFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGVBQXVEO0lBSWpHLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFKdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTnBELGVBQVUsR0FBNEIsZ0JBQWdCLENBQUM7UUFDdkQsUUFBRyxHQUFXLHNCQUFzQixDQUFDO1FBUWxDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUY7O09BRUc7SUFDSCxNQUFNLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ25DLDRDQUE0QztRQUM1QyxNQUFNLGdCQUFnQixHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDbEQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGVBQWUsVUFBVSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQzFHLEdBQUcsQ0FBQyxDQUFDLFlBQWtDLEVBQW9CLEVBQUU7WUFDM0QsTUFBTSxXQUFXLEdBQXFCLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUVuRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ2QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtZQUNwQyxPQUFPLFNBQVM7aUJBQ2IsTUFBTSxDQUFDLENBQUMsUUFBMEIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTyxnQ0FBZ0M7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQVEsRUFBRTtZQUNySCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBdERVLHVCQUF1QixrRkFPdkIsYUFBYTt5SEFQYix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5RG9jdW1lbnQgYXMgUHJvcGVydHlEb2N1bWVudEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHktZG9jdW1lbnQnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvcGVydHlEb2N1bWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1kb2N1bWVudCc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuXG4vKipcbiAqIENsYXNzIGZvciB3b3JrIHdpdGggUHJvcGVydHkgRG9jdW1lbnRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5RG9jdW1lbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPFByb3BlcnR5RG9jdW1lbnRCYXNlLCBQcm9wZXJ0eURvY3VtZW50PiB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eURvY3VtZW50ID0gUHJvcGVydHlEb2N1bWVudDtcbiAgdXJsOiBzdHJpbmcgPSAncHJvcGVydGllcy9kb2N1bWVudHMnO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICApIHtcbiAgICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IFByb3BlcnR5IERvY3VtZW50XG4gICAqL1xuICB1cGxvYWQoZmlsZTogRmlsZSwgcHJvcGVydHlJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eURvY3VtZW50PiB7XG4gICAgLy8gY3JlYXRlIGZvcm1EYXRhIG9iamVjdCB3aXRoIHByb3ZpZGVkIGZpbGVcbiAgICBjb25zdCBmb3JtRGF0YURvY3VtZW50OiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhRG9jdW1lbnQuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydGllcy8ke3Byb3BlcnR5SWR9L2RvY3VtZW50c2AsIGZvcm1EYXRhRG9jdW1lbnQpLnBpcGUoXG4gICAgICBtYXAoKGRvY3VtZW50QmFzZTogUHJvcGVydHlEb2N1bWVudEJhc2UpOiBQcm9wZXJ0eURvY3VtZW50ID0+IHtcbiAgICAgICAgY29uc3QgbmV3RG9jdW1lbnQ6IFByb3BlcnR5RG9jdW1lbnQgPSBwbGFpblRvQ2xhc3MoUHJvcGVydHlEb2N1bWVudCwgZG9jdW1lbnRCYXNlKTtcblxuICAgICAgICB0aGlzLmNhY2hlLnB1c2gobmV3RG9jdW1lbnQpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIHJldHVybiBuZXdEb2N1bWVudDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZG9jdW1lbnRzIGJ5IHByb3BlcnR5IGlkXG4gICAqIEBwYXJhbSBwcm9wZXJ0eUlkIHRvIGdldCBkZXNpcmVkIGRvY3VtZW50c1xuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvcGVydHlEb2N1bWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGRvY3VtZW50czogUHJvcGVydHlEb2N1bWVudFtdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRvY3VtZW50c1xuICAgICAgICAgICAgLmZpbHRlcigoZG9jdW1lbnQ6IFByb3BlcnR5RG9jdW1lbnQpID0+IGRvY3VtZW50LnByb3BlcnR5LmlkID09PSBwcm9wZXJ0eUlkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblByb3BlcnR5VXBkYXRlV2l0aERvY3VtZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblByb3BlcnR5VXBkYXRlV2l0aERvY3VtZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX1VQREFURURfV0lUSF9ET0NVTUVOVCkuc3Vic2NyaWJlKChwcm9wZXJ0eTogUHJvcGVydHkpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMudXBsb2FkKHByb3BlcnR5LmRvY3VtZW50RmlsZSwgcHJvcGVydHkuaWQpLnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,123 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { replace } from '../../functions/array';
4
+ import { plainToClass } from 'class-transformer';
5
+ import { PropertyOwner } from '../../models/property/property-owner';
6
+ import { BaseRestService } from '../base-rest.service';
7
+ import { AppEvent } from '../../models/event/app-event';
8
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
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
+ // @TODO check and improve logic during refactoring
13
+ export class PropertyOwnerService extends BaseRestService {
14
+ constructor(http, eventDispatcherService, environment) {
15
+ super(http, eventDispatcherService, environment);
16
+ this.http = http;
17
+ this.eventDispatcherService = eventDispatcherService;
18
+ this.environment = environment;
19
+ // api url parameter for properties co-owners
20
+ this.url = 'properties/co-owners';
21
+ this.modelClass = PropertyOwner;
22
+ this.listenEvents();
23
+ }
24
+ /**
25
+ * Listen to Event Dispatcher events
26
+ */
27
+ listenEvents() {
28
+ this.listenUserUpdated();
29
+ }
30
+ /**
31
+ * Updated loan
32
+ */
33
+ update(propertyOwner) {
34
+ return this.http.put(`${this.environment.apiV2}/${this.url}/${propertyOwner.id}`, propertyOwner)
35
+ .pipe(map((updatedPropertyOwnerBase) => {
36
+ const updatedPropertyOwner = plainToClass(PropertyOwner, updatedPropertyOwnerBase);
37
+ // if loan type is NOT vehicle - fire EventDispatcher event
38
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.PROPERTY_OWNER_UPDATED, null));
39
+ replace(this.cache, updatedPropertyOwner);
40
+ this.updateCache();
41
+ return updatedPropertyOwner;
42
+ }));
43
+ }
44
+ /**
45
+ * Re-invite property owner
46
+ * @param share user to share property
47
+ */
48
+ reinvite(share) {
49
+ return this.http.post(`${this.environment.apiV2}/${this.url}/${share.id}/reinvite`, {});
50
+ }
51
+ /**
52
+ * Get incoming property owners list
53
+ */
54
+ getIncoming() {
55
+ return this.get()
56
+ .pipe(map((propertyOwners) => {
57
+ const propertyOwnersIncoming = [];
58
+ propertyOwners.forEach((propertyOwner) => {
59
+ var _a;
60
+ if (((_a = propertyOwner.user) === null || _a === void 0 ? void 0 : _a.isLoggedIn()) && propertyOwner.isPending() && propertyOwner.property.user.id !== +localStorage.getItem('userId')) {
61
+ propertyOwnersIncoming.push(propertyOwner);
62
+ }
63
+ });
64
+ return propertyOwnersIncoming;
65
+ }));
66
+ }
67
+ /**
68
+ * Get outcoming property owners list
69
+ */
70
+ getOutcoming() {
71
+ return this.get().pipe(map((propertyOwners) => {
72
+ return this.filterOutcoming(propertyOwners);
73
+ }));
74
+ }
75
+ /**
76
+ * Filter outcoming property owners
77
+ * @param propertyOwners which should be filtered
78
+ */
79
+ filterOutcoming(propertyOwners) {
80
+ const propertyOwnersOutcoming = [];
81
+ propertyOwners.forEach((propertyOwner) => {
82
+ var _a;
83
+ if (!((_a = propertyOwner.user) === null || _a === void 0 ? void 0 : _a.isLoggedIn())) {
84
+ propertyOwnersOutcoming.push(propertyOwner);
85
+ }
86
+ });
87
+ return propertyOwnersOutcoming;
88
+ }
89
+ /**
90
+ * Get list of co-owners filtered by property id
91
+ * @param propertyId
92
+ */
93
+ getByPropertyId(propertyId) {
94
+ return this.get()
95
+ .pipe(map((propertyOwners) => {
96
+ return propertyOwners.filter((propertyOwner) => propertyOwner.property.id === propertyId);
97
+ }));
98
+ }
99
+ /**
100
+ * Listen to User updated event
101
+ */
102
+ listenUserUpdated() {
103
+ this.eventDispatcherService.on(AppEventTypeEnum.USER_UPDATED)
104
+ .subscribe(() => {
105
+ this.fetch().subscribe((propertyOwners) => {
106
+ this.cache = propertyOwners;
107
+ this.updateCache();
108
+ });
109
+ });
110
+ }
111
+ }
112
+ PropertyOwnerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyOwnerService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
113
+ PropertyOwnerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyOwnerService, providedIn: 'root' });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyOwnerService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root'
118
+ }]
119
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
120
+ type: Inject,
121
+ args: ['environment']
122
+ }] }]; } });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktb3duZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1vd25lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTFFLG1EQUFtRDtBQUluRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBaUQ7SUFLekYsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFQbkQsNkNBQTZDO1FBQzdDLFFBQUcsR0FBVyxzQkFBc0IsQ0FBQztRQUNyQyxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBUXpCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQTRCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUM7YUFDN0YsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLHdCQUEyQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxvQkFBb0IsR0FBa0IsWUFBWSxDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ2xHLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFbEcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxvQkFBb0IsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFvQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRTthQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUErQixFQUFFLEVBQUU7WUFDNUMsTUFBTSxzQkFBc0IsR0FBb0IsRUFBRSxDQUFDO1lBRW5ELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7O2dCQUN0RCxJQUFJLENBQUEsTUFBQSxhQUFhLENBQUMsSUFBSSwwQ0FBRSxVQUFVLEVBQUUsS0FBSSxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDdkksc0JBQXNCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUM1QztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLENBQUMsY0FBK0IsRUFBbUIsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsY0FBK0I7UUFDN0MsTUFBTSx1QkFBdUIsR0FBb0IsRUFBRSxDQUFDO1FBRXBELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUU7O1lBQ3RELElBQUksQ0FBQyxDQUFBLE1BQUEsYUFBYSxDQUFDLElBQUksMENBQUUsVUFBVSxFQUFFLENBQUEsRUFBRTtnQkFDckMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzdDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ2QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGNBQStCLEVBQUUsRUFBRTtZQUN4QyxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQztRQUMzRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO2FBQzFELFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQStCLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7a0hBbkhVLG9CQUFvQixrRkFRckIsYUFBYTtzSEFSWixvQkFBb0IsY0FGbkIsTUFBTTs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb3BlcnR5T3duZXIgYXMgUHJvcGVydHlPd25lckJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHktb3duZXInO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eU93bmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LW93bmVyJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuXG4vLyBAVE9ETyBjaGVjayBhbmQgaW1wcm92ZSBsb2dpYyBkdXJpbmcgcmVmYWN0b3JpbmdcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5T3duZXJTZXJ2aWNlIGV4dGVuZHMgQmFzZVJlc3RTZXJ2aWNlPFByb3BlcnR5T3duZXJCYXNlLCBQcm9wZXJ0eU93bmVyPiB7XG4gIC8vIGFwaSB1cmwgcGFyYW1ldGVyIGZvciBwcm9wZXJ0aWVzIGNvLW93bmVyc1xuICB1cmw6IHN0cmluZyA9ICdwcm9wZXJ0aWVzL2NvLW93bmVycyc7XG4gIG1vZGVsQ2xhc3MgPSBQcm9wZXJ0eU93bmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50IERpc3BhdGNoZXIgZXZlbnRzXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Vc2VyVXBkYXRlZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZWQgbG9hblxuICAgKi9cbiAgdXBkYXRlKHByb3BlcnR5T3duZXI6IFByb3BlcnR5T3duZXIpOiBPYnNlcnZhYmxlPFByb3BlcnR5T3duZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke3Byb3BlcnR5T3duZXIuaWR9YCwgcHJvcGVydHlPd25lcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eU93bmVyQmFzZTogUHJvcGVydHlPd25lckJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUHJvcGVydHlPd25lcjogUHJvcGVydHlPd25lciA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eU93bmVyLCB1cGRhdGVkUHJvcGVydHlPd25lckJhc2UpO1xuICAgICAgICAgIC8vIGlmIGxvYW4gdHlwZSBpcyBOT1QgdmVoaWNsZSAtIGZpcmUgRXZlbnREaXNwYXRjaGVyIGV2ZW50XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX09XTkVSX1VQREFURUQsIG51bGwpKTtcblxuICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgdXBkYXRlZFByb3BlcnR5T3duZXIpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFByb3BlcnR5T3duZXI7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlLWludml0ZSBwcm9wZXJ0eSBvd25lclxuICAgKiBAcGFyYW0gc2hhcmUgdXNlciB0byBzaGFyZSBwcm9wZXJ0eVxuICAgKi9cbiAgcmVpbnZpdGUoc2hhcmU6IFByb3BlcnR5T3duZXIpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke3NoYXJlLmlkfS9yZWludml0ZWAsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5jb21pbmcgcHJvcGVydHkgb3duZXJzIGxpc3RcbiAgICovXG4gIGdldEluY29taW5nKCk6IE9ic2VydmFibGU8UHJvcGVydHlPd25lcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKG1hcCgocHJvcGVydHlPd25lcnM6IFByb3BlcnR5T3duZXJbXSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eU93bmVyc0luY29taW5nOiBQcm9wZXJ0eU93bmVyW10gPSBbXTtcblxuICAgICAgICBwcm9wZXJ0eU93bmVycy5mb3JFYWNoKChwcm9wZXJ0eU93bmVyOiBQcm9wZXJ0eU93bmVyKSA9PiB7XG4gICAgICAgICAgaWYgKHByb3BlcnR5T3duZXIudXNlcj8uaXNMb2dnZWRJbigpICYmIHByb3BlcnR5T3duZXIuaXNQZW5kaW5nKCkgJiYgcHJvcGVydHlPd25lci5wcm9wZXJ0eS51c2VyLmlkICE9PSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eU93bmVyc0luY29taW5nLnB1c2gocHJvcGVydHlPd25lcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcHJvcGVydHlPd25lcnNJbmNvbWluZztcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb3V0Y29taW5nIHByb3BlcnR5IG93bmVycyBsaXN0XG4gICAqL1xuICBnZXRPdXRjb21pbmcoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eU93bmVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChwcm9wZXJ0eU93bmVyczogUHJvcGVydHlPd25lcltdKTogUHJvcGVydHlPd25lcltdID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyT3V0Y29taW5nKHByb3BlcnR5T3duZXJzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0Y29taW5nIHByb3BlcnR5IG93bmVyc1xuICAgKiBAcGFyYW0gcHJvcGVydHlPd25lcnMgd2hpY2ggc2hvdWxkIGJlIGZpbHRlcmVkXG4gICAqL1xuICBmaWx0ZXJPdXRjb21pbmcocHJvcGVydHlPd25lcnM6IFByb3BlcnR5T3duZXJbXSk6IFByb3BlcnR5T3duZXJbXSB7XG4gICAgY29uc3QgcHJvcGVydHlPd25lcnNPdXRjb21pbmc6IFByb3BlcnR5T3duZXJbXSA9IFtdO1xuXG4gICAgcHJvcGVydHlPd25lcnMuZm9yRWFjaCgocHJvcGVydHlPd25lcjogUHJvcGVydHlPd25lcikgPT4ge1xuICAgICAgaWYgKCFwcm9wZXJ0eU93bmVyLnVzZXI/LmlzTG9nZ2VkSW4oKSkge1xuICAgICAgICBwcm9wZXJ0eU93bmVyc091dGNvbWluZy5wdXNoKHByb3BlcnR5T3duZXIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnR5T3duZXJzT3V0Y29taW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGNvLW93bmVycyBmaWx0ZXJlZCBieSBwcm9wZXJ0eSBpZFxuICAgKiBAcGFyYW0gcHJvcGVydHlJZFxuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0eUlkKHByb3BlcnR5SWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvcGVydHlPd25lcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5T3duZXJzOiBQcm9wZXJ0eU93bmVyW10pID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnR5T3duZXJzLmZpbHRlcigocHJvcGVydHlPd25lcjogUHJvcGVydHlPd25lcikgPT4gcHJvcGVydHlPd25lci5wcm9wZXJ0eS5pZCA9PT0gcHJvcGVydHlJZCk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIFVzZXIgdXBkYXRlZCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Vc2VyVXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5VU0VSX1VQREFURUQpXG4gICAgICAuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5mZXRjaCgpLnN1YnNjcmliZSgocHJvcGVydHlPd25lcnM6IFByb3BlcnR5T3duZXJbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FjaGUgPSBwcm9wZXJ0eU93bmVycztcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { PropertySold } from '../../models/property/property-sold';
3
+ import { BaseRestService } from '../base-rest.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service for work with Property Sold
7
+ */
8
+ export class PropertySoldService extends BaseRestService {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.modelClass = PropertySold;
12
+ this.url = 'properties/sold';
13
+ }
14
+ }
15
+ PropertySoldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertySoldService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
16
+ PropertySoldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertySoldService, providedIn: 'root' });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertySoldService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc29sZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL3Byb3BlcnR5L3Byb3BlcnR5LXNvbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXZEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQStDO0lBSHhGOztRQUlFLGVBQVUsR0FBd0IsWUFBWSxDQUFDO1FBQy9DLFFBQUcsR0FBVyxpQkFBaUIsQ0FBQztLQUNqQzs7aUhBSFksbUJBQW1CO3FIQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvcGVydHlTb2xkIGFzIFByb3BlcnR5U29sZEJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHktc29sZCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNvbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc29sZCc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3Igd29yayB3aXRoIFByb3BlcnR5IFNvbGRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTb2xkU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxQcm9wZXJ0eVNvbGRCYXNlLCBQcm9wZXJ0eVNvbGQ+IHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIFByb3BlcnR5U29sZCA9IFByb3BlcnR5U29sZDtcbiAgdXJsOiBzdHJpbmcgPSAncHJvcGVydGllcy9zb2xkJztcbn1cbiJdfQ==
@@ -0,0 +1,115 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { replace } from '../../functions/array';
4
+ import { plainToClass } from 'class-transformer';
5
+ import { BaseRestService } from '../base-rest.service';
6
+ import { Property } from '../../models/property/property';
7
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
8
+ import { AppEvent } from '../../models/event/app-event';
9
+ import { PropertySubscription } from '../../models/property/property-subscription';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
12
+ import * as i2 from "../event/event-dispatcher.service";
13
+ /**
14
+ * Service for work with Property
15
+ */
16
+ export class PropertyService extends BaseRestService {
17
+ constructor(http, eventDispatcherService, environment) {
18
+ super(http, eventDispatcherService, environment);
19
+ this.http = http;
20
+ this.eventDispatcherService = eventDispatcherService;
21
+ this.environment = environment;
22
+ this.modelClass = Property;
23
+ this.url = 'properties';
24
+ this.listenEvents();
25
+ }
26
+ listenEvents() {
27
+ this.listenCoOwnerInviteAccepted();
28
+ this.listenServiceSubscriptionUpdated();
29
+ }
30
+ /**
31
+ * Update cache when owner invitation accepted
32
+ */
33
+ listenCoOwnerInviteAccepted() {
34
+ this.eventDispatcherService.on(AppEventTypeEnum.PROPERTY_OWNER_UPDATED).subscribe(() => this.resetCache());
35
+ }
36
+ /**
37
+ * Update cache when user's service subscription is updated
38
+ */
39
+ listenServiceSubscriptionUpdated() {
40
+ this.eventDispatcherService.on(AppEventTypeEnum.SERVICE_SUBSCRIPTION_UPDATED).subscribe(() => this.resetCache());
41
+ }
42
+ update(property) {
43
+ return super.update(property).pipe(map((updatedProperty) => {
44
+ if (property.documentFile) {
45
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.PROPERTY_UPDATED_WITH_DOCUMENT, property));
46
+ }
47
+ return updatedProperty;
48
+ }));
49
+ }
50
+ getByCategoryId(id) {
51
+ return this.get().pipe(map((properties) => {
52
+ return properties.filter((property) => property.category.id === id);
53
+ }));
54
+ }
55
+ /**
56
+ * Activate deactivated property
57
+ */
58
+ activate(property) {
59
+ return this.http.post(`${this.environment.apiV2}/property-subscriptions`, { user: property.user, property })
60
+ .pipe(map((propertySubscriptionBase) => {
61
+ const newPropertySubscription = plainToClass(PropertySubscription, propertySubscriptionBase);
62
+ const activatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [newPropertySubscription] }));
63
+ replace(this.cache, activatedProperty);
64
+ this.updateCache();
65
+ }));
66
+ }
67
+ /**
68
+ * Deactivate activated property
69
+ */
70
+ deactivate(property) {
71
+ return this.http.delete(`${this.environment.apiV2}/property-subscriptions/${property.getCurrentSubscription().id}`)
72
+ .pipe(map(() => {
73
+ const deactivatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [] }));
74
+ replace(this.cache, deactivatedProperty);
75
+ this.updateCache();
76
+ }));
77
+ }
78
+ /**
79
+ * Update property photo
80
+ * @param property Property instance for photo update
81
+ * @param photoFormData FormData with property photo image
82
+ */
83
+ updatePhoto(property, photoFormData) {
84
+ return this.http.post(`${this.environment.apiV2}/properties/${property.id}/photo?_method=PUT`, photoFormData)
85
+ .pipe(map((photoLink) => {
86
+ property.photo = photoLink;
87
+ // update properties cache
88
+ replace(this.cache, property);
89
+ this.updateCache();
90
+ }));
91
+ }
92
+ getByCoOwnerId(id) {
93
+ return this.get().pipe(map((properties) => {
94
+ return properties.filter((property) => property.user.id === id);
95
+ }));
96
+ }
97
+ /**
98
+ * Get list of active user's properties
99
+ */
100
+ getActive() {
101
+ return this.get().pipe(map((properties) => properties.filter((property) => property.isActive)));
102
+ }
103
+ }
104
+ PropertyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
105
+ PropertyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyService, providedIn: 'root' });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyService, decorators: [{
107
+ type: Injectable,
108
+ args: [{
109
+ providedIn: 'root'
110
+ }]
111
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
112
+ type: Inject,
113
+ args: ['environment']
114
+ }] }]; } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0FBRW5GOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBdUM7SUFJMUUsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsZUFBVSxHQUFvQixRQUFRLENBQUM7UUFDdkMsUUFBRyxHQUFXLFlBQVksQ0FBQztRQVF6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVE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VSxlQUFlLGtGQU9oQixhQUFhO2lIQVBaLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3BlcnR5IGFzIFByb3BlcnR5QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQcm9wZXJ0eVN1YnNjcmlwdGlvbiBhcyBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHktc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IEJhc2VSZXN0U2VydmljZSB9IGZyb20gJy4uL2Jhc2UtcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVN1YnNjcmlwdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHdvcmsgd2l0aCBQcm9wZXJ0eVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8UHJvcGVydHlCYXNlLCBQcm9wZXJ0eT4ge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgUHJvcGVydHkgPSBQcm9wZXJ0eTtcbiAgdXJsOiBzdHJpbmcgPSAncHJvcGVydGllcyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbkNvT3duZXJJbnZpdGVBY2NlcHRlZCgpO1xuICAgIHRoaXMubGlzdGVuU2VydmljZVN1YnNjcmlwdGlvblVwZGF0ZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgd2hlbiBvd25lciBpbnZpdGF0aW9uIGFjY2VwdGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkNvT3duZXJJbnZpdGVBY2NlcHRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9PV05FUl9VUERBVEVEKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldENhY2hlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIHVzZXIncyBzZXJ2aWNlIHN1YnNjcmlwdGlvbiBpcyB1cGRhdGVkXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblNlcnZpY2VTdWJzY3JpcHRpb25VcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLlNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc2V0Q2FjaGUoKSk7XG4gIH1cblxuICB1cGRhdGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci51cGRhdGUocHJvcGVydHkpLnBpcGUoXG4gICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICAgIGlmIChwcm9wZXJ0eS5kb2N1bWVudEZpbGUpIHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRF9XSVRIX0RPQ1VNRU5ULCBwcm9wZXJ0eSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cGRhdGVkUHJvcGVydHk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UHJvcGVydHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKHByb3BlcnRpZXM6IFByb3BlcnR5W10pOiBQcm9wZXJ0eVtdID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3BlcnRpZXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlkID09PSBpZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgZGVhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zYCwge3VzZXI6IHByb3BlcnR5LnVzZXIsIHByb3BlcnR5fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbbmV3UHJvcGVydHlTdWJzY3JpcHRpb25dfSkpO1xuXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBhY3RpdmF0ZWRQcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGFjdGl2YXRlZCBwcm9wZXJ0eVxuICAgKi9cbiAgZGVhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zLyR7cHJvcGVydHkuZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHtzdWJzY3JpcHRpb25zOiBbXX0pKTtcbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIGRlYWN0aXZhdGVkUHJvcGVydHkpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHByb3BlcnR5IHBob3RvXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBQcm9wZXJ0eSBpbnN0YW5jZSBmb3IgcGhvdG8gdXBkYXRlXG4gICAqIEBwYXJhbSBwaG90b0Zvcm1EYXRhIEZvcm1EYXRhIHdpdGggcHJvcGVydHkgcGhvdG8gaW1hZ2VcbiAgICovXG4gIHVwZGF0ZVBob3RvKHByb3BlcnR5OiBQcm9wZXJ0eSwgcGhvdG9Gb3JtRGF0YTogRm9ybURhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydGllcy8ke3Byb3BlcnR5LmlkfS9waG90bz9fbWV0aG9kPVBVVGAsIHBob3RvRm9ybURhdGEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwaG90b0xpbms6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICAgIHByb3BlcnR5LnBob3RvID0gcGhvdG9MaW5rO1xuICAgICAgICAgIC8vIHVwZGF0ZSBwcm9wZXJ0aWVzIGNhY2hlXG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEJ5Q29Pd25lcklkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb3BlcnR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChwcm9wZXJ0aWVzOiBQcm9wZXJ0eVtdKTogUHJvcGVydHlbXSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS51c2VyLmlkID09PSBpZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgYWN0aXZlIHVzZXIncyBwcm9wZXJ0aWVzXG4gICAqL1xuICBnZXRBY3RpdmUoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgocHJvcGVydGllczogUHJvcGVydHlbXSk6IFByb3BlcnR5W10gPT4gcHJvcGVydGllcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,138 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { ReplaySubject } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
5
+ import { loadStripe } from '@stripe/stripe-js';
6
+ import { ServicePriceCollection } from '../../collections/service-price.collection';
7
+ import { ServiceSubscriptionCollection } from '../../collections/service-subscription.collection';
8
+ import { plainToClass } from 'class-transformer';
9
+ import { ServiceSubscription } from '../../models/service-subscription/service-subscription';
10
+ import { ServicePayment } from '../../models/service-subscription/service-payment';
11
+ import { ServicePrice } from '../../models/service-subscription/service-price';
12
+ import { ServiceSubscriptionItem } from '../../models/service-subscription/service-subscription-item';
13
+ import { AppEvent } from '../../models/event/app-event';
14
+ import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/common/http";
17
+ import * as i2 from "../event/event-dispatcher.service";
18
+ export class SubscriptionService {
19
+ constructor(http, eventDispatcherService, environment) {
20
+ this.http = http;
21
+ this.eventDispatcherService = eventDispatcherService;
22
+ this.environment = environment;
23
+ this.serviceSubscriptionSubject = new ReplaySubject(1);
24
+ this.serviceSubscriptionsSubject = new ReplaySubject(1);
25
+ this.servicePaymentsSubject = new ReplaySubject(1);
26
+ }
27
+ getSubscription() {
28
+ if (!this._serviceSubscription) {
29
+ this.http.get(`${this.environment.apiV2}/subscriptions/last`)
30
+ .pipe(map((response) => {
31
+ return plainToClass(ServiceSubscription, response);
32
+ }))
33
+ .subscribe((subsciption) => {
34
+ this._serviceSubscription = subsciption;
35
+ this.serviceSubscriptionSubject.next(this._serviceSubscription);
36
+ });
37
+ }
38
+ return this.serviceSubscriptionSubject.asObservable();
39
+ }
40
+ /**
41
+ * @TODO right now we have only monthly prices, the function should be refactored to support other options in future
42
+ *
43
+ * create available subscription plans based on existing products
44
+ */
45
+ getSubscriptionPlans() {
46
+ if (!this._serviceSubscriptions) {
47
+ this.http.get(`${this.environment.apiV2}/service-prices`)
48
+ .pipe(map((response) => {
49
+ return new ServicePriceCollection(response['hydra:member'].map((item) => plainToClass(ServicePrice, item)));
50
+ }))
51
+ .subscribe((prices) => {
52
+ this._serviceSubscriptions = new ServiceSubscriptionCollection([
53
+ plainToClass(ServiceSubscription, { items: [] }),
54
+ plainToClass(ServiceSubscription, { items: [plainToClass(ServiceSubscriptionItem, { price: prices.property, quantity: 2 })] }),
55
+ plainToClass(ServiceSubscription, { items: [plainToClass(ServiceSubscriptionItem, { price: prices.property, quantity: 3 })] })
56
+ ]);
57
+ this._serviceSubscriptions.items.forEach((subscription) => {
58
+ subscription.items.push(plainToClass(ServiceSubscriptionItem, { price: prices.work, quantity: 1 }));
59
+ });
60
+ this.serviceSubscriptionsSubject.next(this._serviceSubscriptions);
61
+ });
62
+ }
63
+ return this.serviceSubscriptionsSubject.asObservable();
64
+ }
65
+ /**
66
+ * redirect to stripe payment page
67
+ */
68
+ checkoutRedirect(subscription, successUrl, cancelUrl) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const stripe = yield loadStripe(this.environment.stripePk);
71
+ // @TODO vik
72
+ const lineItems = subscription.items.map((item) => {
73
+ return { servicePriceId: item.price.id, quantity: item.quantity };
74
+ });
75
+ this.http.post(`${this.environment.apiV2}/stripe/checkout-session`, {
76
+ lineItems,
77
+ successUrl: successUrl,
78
+ cancelUrl: cancelUrl
79
+ })
80
+ .subscribe((session) => {
81
+ // @Todo remove user TRIAL status
82
+ stripe.redirectToCheckout({ sessionId: session });
83
+ });
84
+ });
85
+ }
86
+ /**
87
+ * redirect to stripe billing page
88
+ */
89
+ billingRedirect(returnUrl) {
90
+ this.http.get(`${this.environment.apiV2}/stripe/billing-portal-session`, {
91
+ params: { returnUrl }
92
+ }).subscribe((response) => {
93
+ window.location.replace(response.url);
94
+ });
95
+ }
96
+ getPayments() {
97
+ if (!this._servicePayments) {
98
+ this.http.get(`${this.environment.apiV2}/service-payments`).subscribe((response) => {
99
+ this._servicePayments = response.map((item) => plainToClass(ServicePayment, item));
100
+ this.servicePaymentsSubject.next(this._servicePayments);
101
+ });
102
+ }
103
+ return this.servicePaymentsSubject.asObservable();
104
+ }
105
+ /**
106
+ * Get difference between current subscription and selected new subscription
107
+ */
108
+ getProrationCost(items) {
109
+ return this.http.post(`${this.environment.apiV2}/subscriptions/proration-cost`, items).pipe(map((prorationCost) => {
110
+ return prorationCost;
111
+ }));
112
+ }
113
+ /**
114
+ * Change subscription plan
115
+ */
116
+ changeSubscription(items) {
117
+ return this.http.put(`${this.environment.apiV2}/subscriptions/items`, items).pipe(map(() => {
118
+ // Set cache value as null and fire request to backend to get updated subscription value
119
+ this._serviceSubscription = null;
120
+ this.serviceSubscriptionSubject.next(this._serviceSubscription);
121
+ // update property list
122
+ this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.SERVICE_SUBSCRIPTION_UPDATED, null));
123
+ this.getSubscription().subscribe();
124
+ }));
125
+ }
126
+ }
127
+ SubscriptionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
128
+ SubscriptionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, providedIn: 'root' });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SubscriptionService, decorators: [{
130
+ type: Injectable,
131
+ args: [{
132
+ providedIn: 'root'
133
+ }]
134
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
135
+ type: Inject,
136
+ args: ['environment']
137
+ }] }]; } });
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUVuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBSzFFLE1BQU0sT0FBTyxtQkFBbUI7SUFTOUIsWUFDVSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFGdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBVmpELCtCQUEwQixHQUF1QyxJQUFJLGFBQWEsQ0FBc0IsQ0FBQyxDQUFDLENBQUM7UUFFM0csZ0NBQTJCLEdBQWlELElBQUksYUFBYSxDQUFnQyxDQUFDLENBQUMsQ0FBQztRQUVoSSwyQkFBc0IsR0FBb0MsSUFBSSxhQUFhLENBQW1CLENBQUMsQ0FBQyxDQUFDO0lBUWpHLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxxQkFBcUIsQ0FBQztpQkFDMUQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUNwQixPQUFPLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxXQUFXLENBQUM7Z0JBQ3hDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssaUJBQWlCLENBQUM7aUJBQ3RELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RILENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLE1BQThCLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksNkJBQTZCLENBQUM7b0JBQzdELFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztvQkFDOUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEVBQUMsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDO29CQUMxSCxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7aUJBQzNILENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQWlDLEVBQUUsRUFBRTtvQkFDN0UsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEVBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEcsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0csZ0JBQWdCLENBQUMsWUFBaUMsRUFBRSxVQUFrQixFQUFFLFNBQWlCOztZQUM3RixNQUFNLE1BQU0sR0FBUSxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLFlBQVk7WUFDWixNQUFNLFNBQVMsR0FBUSxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRTtnQkFDOUUsT0FBTyxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBQyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssMEJBQTBCLEVBQUU7Z0JBQ2xFLFNBQVM7Z0JBQ1QsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUM7aUJBQ0MsU0FBUyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7Z0JBQzdCLGlDQUFpQztnQkFDakMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxnQ0FBZ0MsRUFBRTtZQUN2RSxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUM7U0FDcEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsS0FBZ0M7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3pGLEdBQUcsQ0FBQyxDQUFDLGFBQXFCLEVBQUUsRUFBRTtZQUM1QixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsS0FBZ0M7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQy9FLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCx3RkFBd0Y7WUFDeEYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hFLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFeEcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztpSEFwSVUsbUJBQW1CLGtGQVlwQixhQUFhO3FIQVpaLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGxvYWRTdHJpcGUgfSBmcm9tICdAc3RyaXBlL3N0cmlwZS1qcyc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJpY2VDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvc2VydmljZS1wcmljZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvc2VydmljZS1zdWJzY3JpcHRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VQYXltZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlcnZpY2VQcmljZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblNlcnZpY2Uge1xuICBfc2VydmljZVN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbjtcbiAgc2VydmljZVN1YnNjcmlwdGlvblN1YmplY3Q6IFJlcGxheVN1YmplY3Q8U2VydmljZVN1YnNjcmlwdGlvbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxTZXJ2aWNlU3Vic2NyaXB0aW9uPigxKTtcbiAgX3NlcnZpY2VTdWJzY3JpcHRpb25zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbjtcbiAgc2VydmljZVN1YnNjcmlwdGlvbnNTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uPigxKTtcbiAgc3RyaXBlOiBhbnk7XG4gIHNlcnZpY2VQYXltZW50c1N1YmplY3Q6IFJlcGxheVN1YmplY3Q8U2VydmljZVBheW1lbnRbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxTZXJ2aWNlUGF5bWVudFtdPigxKTtcbiAgX3NlcnZpY2VQYXltZW50czogU2VydmljZVBheW1lbnRbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICB9XG5cbiAgZ2V0U3Vic2NyaXB0aW9uKCk6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbj4ge1xuICAgIGlmICghdGhpcy5fc2VydmljZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdWJzY3JpcHRpb25zL2xhc3RgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwgcmVzcG9uc2UpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoc3Vic2NpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb24pID0+IHtcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlU3Vic2NyaXB0aW9uID0gc3Vic2NpcHRpb247XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlU3Vic2NyaXB0aW9uU3ViamVjdC5uZXh0KHRoaXMuX3NlcnZpY2VTdWJzY3JpcHRpb24pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlU3Vic2NyaXB0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByaWdodCBub3cgd2UgaGF2ZSBvbmx5IG1vbnRobHkgcHJpY2VzLCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHJlZmFjdG9yZWQgdG8gc3VwcG9ydCBvdGhlciBvcHRpb25zIGluIGZ1dHVyZVxuICAgKlxuICAgKiBjcmVhdGUgYXZhaWxhYmxlIHN1YnNjcmlwdGlvbiBwbGFucyBiYXNlZCBvbiBleGlzdGluZyBwcm9kdWN0c1xuICAgKi9cbiAgZ2V0U3Vic2NyaXB0aW9uUGxhbnMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIGlmICghdGhpcy5fc2VydmljZVN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1wcmljZXNgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VydmljZVByaWNlQ29sbGVjdGlvbihyZXNwb25zZVsnaHlkcmE6bWVtYmVyJ10ubWFwKChpdGVtOiBvYmplY3QpID0+IHBsYWluVG9DbGFzcyhTZXJ2aWNlUHJpY2UsIGl0ZW0pKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChwcmljZXM6IFNlcnZpY2VQcmljZUNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLl9zZXJ2aWNlU3Vic2NyaXB0aW9ucyA9IG5ldyBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbihbXG4gICAgICAgICAgICBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge2l0ZW1zOiBbXX0pLFxuICAgICAgICAgICAgcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb24sIHtpdGVtczogW3BsYWluVG9DbGFzcyhTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSwge3ByaWNlOiBwcmljZXMucHJvcGVydHksIHF1YW50aXR5OiAyfSldfSksXG4gICAgICAgICAgICBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwge2l0ZW1zOiBbcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7cHJpY2U6IHByaWNlcy5wcm9wZXJ0eSwgcXVhbnRpdHk6IDN9KV19KVxuICAgICAgICAgIF0pO1xuICAgICAgICAgIHRoaXMuX3NlcnZpY2VTdWJzY3JpcHRpb25zLml0ZW1zLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLml0ZW1zLnB1c2gocGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCB7cHJpY2U6IHByaWNlcy53b3JrLCBxdWFudGl0eTogMX0pKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuc2VydmljZVN1YnNjcmlwdGlvbnNTdWJqZWN0Lm5leHQodGhpcy5fc2VydmljZVN1YnNjcmlwdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlU3Vic2NyaXB0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVkaXJlY3QgdG8gc3RyaXBlIHBheW1lbnQgcGFnZVxuICAgKi9cbiAgYXN5bmMgY2hlY2tvdXRSZWRpcmVjdChzdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb24sIHN1Y2Nlc3NVcmw6IHN0cmluZywgY2FuY2VsVXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHN0cmlwZTogYW55ID0gYXdhaXQgbG9hZFN0cmlwZSh0aGlzLmVudmlyb25tZW50LnN0cmlwZVBrKTtcbiAgICAvLyBAVE9ETyB2aWtcbiAgICBjb25zdCBsaW5lSXRlbXM6IGFueSA9IHN1YnNjcmlwdGlvbi5pdGVtcy5tYXAoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4ge3NlcnZpY2VQcmljZUlkOiBpdGVtLnByaWNlLmlkLCBxdWFudGl0eTogaXRlbS5xdWFudGl0eX07XG4gICAgfSk7XG5cbiAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvY2hlY2tvdXQtc2Vzc2lvbmAsIHtcbiAgICAgIGxpbmVJdGVtcyxcbiAgICAgIHN1Y2Nlc3NVcmw6IHN1Y2Nlc3NVcmwsXG4gICAgICBjYW5jZWxVcmw6IGNhbmNlbFVybFxuICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKChzZXNzaW9uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gQFRvZG8gcmVtb3ZlIHVzZXIgVFJJQUwgc3RhdHVzXG4gICAgICAgIHN0cmlwZS5yZWRpcmVjdFRvQ2hlY2tvdXQoe3Nlc3Npb25JZDogc2Vzc2lvbn0pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogcmVkaXJlY3QgdG8gc3RyaXBlIGJpbGxpbmcgcGFnZVxuICAgKi9cbiAgYmlsbGluZ1JlZGlyZWN0KHJldHVyblVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvYmlsbGluZy1wb3J0YWwtc2Vzc2lvbmAsIHtcbiAgICAgIHBhcmFtczoge3JldHVyblVybH1cbiAgICB9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHJlc3BvbnNlLnVybCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQYXltZW50cygpOiBPYnNlcnZhYmxlPFNlcnZpY2VQYXltZW50W10+IHtcbiAgICBpZiAoIXRoaXMuX3NlcnZpY2VQYXltZW50cykge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXBheW1lbnRzYCkuc3Vic2NyaWJlKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgdGhpcy5fc2VydmljZVBheW1lbnRzID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpID0+IHBsYWluVG9DbGFzcyhTZXJ2aWNlUGF5bWVudCwgaXRlbSkpO1xuICAgICAgICB0aGlzLnNlcnZpY2VQYXltZW50c1N1YmplY3QubmV4dCh0aGlzLl9zZXJ2aWNlUGF5bWVudHMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZVBheW1lbnRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGFuZCBzZWxlY3RlZCBuZXcgc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXRQcm9yYXRpb25Db3N0KGl0ZW1zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc3Vic2NyaXB0aW9ucy9wcm9yYXRpb24tY29zdGAsIGl0ZW1zKS5waXBlKFxuICAgICAgbWFwKChwcm9yYXRpb25Db3N0OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb3JhdGlvbkNvc3Q7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHN1YnNjcmlwdGlvbiBwbGFuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb24oaXRlbXM6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdWJzY3JpcHRpb25zL2l0ZW1zYCwgaXRlbXMpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAvLyBTZXQgY2FjaGUgdmFsdWUgYXMgbnVsbCBhbmQgZmlyZSByZXF1ZXN0IHRvIGJhY2tlbmQgdG8gZ2V0IHVwZGF0ZWQgc3Vic2NyaXB0aW9uIHZhbHVlXG4gICAgICAgIHRoaXMuX3NlcnZpY2VTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnNlcnZpY2VTdWJzY3JpcHRpb25TdWJqZWN0Lm5leHQodGhpcy5fc2VydmljZVN1YnNjcmlwdGlvbik7XG4gICAgICAgIC8vIHVwZGF0ZSBwcm9wZXJ0eSBsaXN0XG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5TRVJWSUNFX1NVQlNDUklQVElPTl9VUERBVEVELCBudWxsKSk7XG5cbiAgICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb24oKS5zdWJzY3JpYmUoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19