taxtank-core 0.17.16 → 0.19.0

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 (274) hide show
  1. package/bundles/taxtank-core.umd.js +6764 -5446
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/account-setup-item.collection.js +2 -2
  4. package/esm2015/lib/collections/bank.collection.js +15 -0
  5. package/esm2015/lib/collections/collection-dictionary.js +1 -1
  6. package/esm2015/lib/collections/collection.js +41 -55
  7. package/esm2015/lib/collections/depreciation.collection.js +6 -3
  8. package/esm2015/lib/collections/exportable.collection.js +1 -1
  9. package/esm2015/lib/collections/property/property.collection.js +3 -3
  10. package/esm2015/lib/collections/transaction/transaction.collection.js +11 -7
  11. package/esm2015/lib/collections/vehicle-logbook.collection.js +2 -2
  12. package/esm2015/lib/db/Enums/chart-accounts-heading-list.enum.js +20 -1
  13. package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +37 -1
  14. package/esm2015/lib/db/Enums/chart-accounts-metadata-list.enum.js +4 -1
  15. package/esm2015/lib/db/Models/abstract-model.js +1 -1
  16. package/esm2015/lib/db/Models/bank/bank.js +1 -1
  17. package/esm2015/lib/forms/abstract.form.js +18 -3
  18. package/esm2015/lib/forms/bank/bank-account-add-manual.form.js +19 -0
  19. package/esm2015/lib/forms/bank/bank-account-loan.form.js +20 -0
  20. package/esm2015/lib/forms/bank/bank-account-migrate.form.js +15 -0
  21. package/esm2015/lib/forms/bank/bank-account-properties.form.js +15 -0
  22. package/esm2015/lib/forms/bank/bank-account-property.form.js +13 -0
  23. package/esm2015/lib/forms/bank/bank-account.form.js +53 -0
  24. package/esm2015/lib/forms/bank/bank-login.form.js +19 -0
  25. package/esm2015/lib/forms/client/client-income-types.form.js +2 -8
  26. package/esm2015/lib/forms/index.js +9 -1
  27. package/esm2015/lib/forms/login/login.form.js +1 -1
  28. package/esm2015/lib/forms/register/register-client.form.js +4 -3
  29. package/esm2015/lib/forms/register/register-firm.form.js +2 -9
  30. package/esm2015/lib/forms/report/my-tax/index.js +14 -0
  31. package/esm2015/lib/forms/report/my-tax/my-tax-business-or-losses.form.js +10 -0
  32. package/esm2015/lib/forms/report/my-tax/my-tax-deductions.form.js +75 -0
  33. package/esm2015/lib/forms/report/my-tax/my-tax-dividends.form.js +23 -0
  34. package/esm2015/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.js +14 -0
  35. package/esm2015/lib/forms/report/my-tax/my-tax-income-statements.form.js +92 -0
  36. package/esm2015/lib/forms/report/my-tax/my-tax-income-tests.form.js +10 -0
  37. package/esm2015/lib/forms/report/my-tax/my-tax-interest.form.js +12 -0
  38. package/esm2015/lib/forms/report/my-tax/my-tax-losses.form.js +10 -0
  39. package/esm2015/lib/forms/report/my-tax/my-tax-medicare.form.js +33 -0
  40. package/esm2015/lib/forms/report/my-tax/my-tax-offsets.form.js +10 -0
  41. package/esm2015/lib/forms/report/my-tax/my-tax-other-income.form.js +38 -0
  42. package/esm2015/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.js +32 -0
  43. package/esm2015/lib/forms/report/my-tax/my-tax-rent.form.js +13 -0
  44. package/esm2015/lib/forms/user/password.form.js +6 -6
  45. package/esm2015/lib/forms/user/reset-password.form.js +1 -1
  46. package/esm2015/lib/forms/vehicle/vehicle-claim.form.js +2 -2
  47. package/esm2015/lib/forms/vehicle/vehicle.form.js +6 -12
  48. package/esm2015/lib/interceptors/basiq.interceptor.js +35 -0
  49. package/esm2015/lib/interceptors/corelogic-interceptor.js +3 -3
  50. package/esm2015/lib/interceptors/financial-year-interceptor.js +17 -6
  51. package/esm2015/lib/interceptors/interceptors.module.js +16 -5
  52. package/esm2015/lib/interceptors/jwt-interceptor.js +3 -3
  53. package/esm2015/lib/interceptors/preloader.interceptor.js +3 -3
  54. package/esm2015/lib/interceptors/user-switcher-interceptor.js +3 -3
  55. package/esm2015/lib/models/account-setup/account-setup-item.js +4 -2
  56. package/esm2015/lib/models/bank/bank-account-property.js +6 -2
  57. package/esm2015/lib/models/bank/bank-account.js +2 -1
  58. package/esm2015/lib/models/bank/bank-connection.js +18 -3
  59. package/esm2015/lib/models/bank/bank-login-data.js +6 -0
  60. package/esm2015/lib/models/bank/bank.js +6 -1
  61. package/esm2015/lib/models/client/client-portfolio-report.js +3 -2
  62. package/esm2015/lib/models/endpoint/endpoints.const.js +4 -1
  63. package/esm2015/lib/models/event/app-event-type.enum.js +39 -38
  64. package/esm2015/lib/models/loan/loan-payment.js +3 -2
  65. package/esm2015/lib/models/loan/loan.js +1 -6
  66. package/esm2015/lib/models/pdf/pdf-settings.js +3 -1
  67. package/esm2015/lib/models/report/my-tax/ato-links.js +11 -0
  68. package/esm2015/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.js +8 -0
  69. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.js +13 -0
  70. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.js +57 -0
  71. package/esm2015/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.js +10 -0
  72. package/esm2015/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.js +72 -0
  73. package/esm2015/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.js +18 -0
  74. package/esm2015/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.js +24 -0
  75. package/esm2015/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.js +68 -0
  76. package/esm2015/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.js +8 -0
  77. package/esm2015/lib/models/report/my-tax/my-tax-interest/my-tax-interest.js +11 -0
  78. package/esm2015/lib/models/report/my-tax/my-tax-losses/my-tax-losses.js +10 -0
  79. package/esm2015/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.js +8 -0
  80. package/esm2015/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.js +28 -0
  81. package/esm2015/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.js +31 -0
  82. package/esm2015/lib/models/report/my-tax/my-tax-rent/my-tax-rent.js +24 -0
  83. package/esm2015/lib/models/report/property/property-report-item.js +4 -2
  84. package/esm2015/lib/models/report/vehicle-expense/vehicle-expense.js +4 -2
  85. package/esm2015/lib/models/tax-summary/report-item-details.js +3 -2
  86. package/esm2015/lib/models/tax-summary/report-item.js +3 -2
  87. package/esm2015/lib/models/transaction/transaction.js +2 -1
  88. package/esm2015/lib/services/account-setup/account-setup.service.js +5 -5
  89. package/esm2015/lib/services/asset/assets.service.js +3 -3
  90. package/esm2015/lib/services/auth/auth.service.js +3 -3
  91. package/esm2015/lib/services/auth/jwt.service.js +3 -3
  92. package/esm2015/lib/services/bank/bank-account-calculation.service.js +3 -3
  93. package/esm2015/lib/services/bank/bank-transaction-calculation.service.js +3 -3
  94. package/esm2015/lib/services/event/event-dispatcher.service.js +3 -3
  95. package/esm2015/lib/services/event/sse.service.js +7 -4
  96. package/esm2015/lib/services/export/export-formatter.service.js +3 -3
  97. package/esm2015/lib/services/header-title/header-title.service.js +3 -3
  98. package/esm2015/lib/services/http/address/address.service.js +3 -3
  99. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +5 -8
  100. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +60 -5
  101. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +3 -3
  102. package/esm2015/lib/services/http/bank/bank.service.js +3 -3
  103. package/esm2015/lib/services/http/bank/basiq/basiq-connections-response.interface.js +2 -0
  104. package/esm2015/lib/services/http/bank/basiq/basiq-token-response.interface.js +2 -0
  105. package/esm2015/lib/services/http/bank/basiq/basiq-token.service.js +42 -0
  106. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +37 -46
  107. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +3 -3
  108. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +3 -3
  109. package/esm2015/lib/services/http/chat/chat.service.js +3 -3
  110. package/esm2015/lib/services/http/chat/message/message.service.js +3 -3
  111. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +3 -3
  112. package/esm2015/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js +3 -3
  113. package/esm2015/lib/services/http/depreciation/depreciation.service.js +3 -3
  114. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +3 -3
  115. package/esm2015/lib/services/http/firm/client-income/client-income-types.service.js +3 -3
  116. package/esm2015/lib/services/http/firm/client-invite/client-invite.service.js +3 -3
  117. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +3 -3
  118. package/esm2015/lib/services/http/firm/employee/employee.service.js +3 -3
  119. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +3 -3
  120. package/esm2015/lib/services/http/firm/firm.service.js +3 -3
  121. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +3 -3
  122. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +3 -3
  123. package/esm2015/lib/services/http/income-source/income-source.service.js +3 -3
  124. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +3 -3
  125. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +3 -3
  126. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +3 -3
  127. package/esm2015/lib/services/http/loan/loan.service.js +3 -3
  128. package/esm2015/lib/services/http/property/property-category/property-category.service.js +3 -3
  129. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +3 -3
  130. package/esm2015/lib/services/http/property/property-document/property-document.service.js +3 -3
  131. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +3 -3
  132. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +3 -3
  133. package/esm2015/lib/services/http/property/property-share/property-share.service.js +3 -3
  134. package/esm2015/lib/services/http/property/property.service.js +3 -3
  135. package/esm2015/lib/services/http/rest/rest.service.js +4 -15
  136. package/esm2015/lib/services/http/service-notification/service-notification.service.js +3 -3
  137. package/esm2015/lib/services/http/subscription/service-price.service.js +3 -3
  138. package/esm2015/lib/services/http/subscription/subscription.service.js +3 -3
  139. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +3 -3
  140. package/esm2015/lib/services/http/tax-review/tax-review.service.js +3 -3
  141. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +3 -3
  142. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +3 -3
  143. package/esm2015/lib/services/http/transaction/transaction.service.js +3 -3
  144. package/esm2015/lib/services/http/user/occupation/occupation.service.js +3 -3
  145. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +3 -3
  146. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +3 -3
  147. package/esm2015/lib/services/http/user/user.service.js +4 -17
  148. package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +3 -3
  149. package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +3 -3
  150. package/esm2015/lib/services/http/vehicle/vehicle.service.js +3 -3
  151. package/esm2015/lib/services/intercom/intercom.service.js +3 -3
  152. package/esm2015/lib/services/kompassify/kompassify.service.js +3 -3
  153. package/esm2015/lib/services/pdf/pdf-from-dom-element/file-settings.js +19 -0
  154. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +35 -0
  155. package/esm2015/lib/services/pdf/pdf-from-table/file-settings.js +31 -0
  156. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +40 -0
  157. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +40 -0
  158. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +53 -0
  159. package/esm2015/lib/services/preloader/preloader.service.js +3 -3
  160. package/esm2015/lib/services/property/corelogic/corelogic.service.js +3 -3
  161. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +3 -3
  162. package/esm2015/lib/services/property/property-calculation/property-calculation.service.js +3 -3
  163. package/esm2015/lib/services/report/property/property-transaction-report.service.js +3 -3
  164. package/esm2015/lib/services/toast/toast.service.js +3 -3
  165. package/esm2015/lib/services/transaction/transaction-calculation.service.js +3 -3
  166. package/esm2015/lib/services/user/user-switcher.service.js +3 -3
  167. package/esm2015/lib/services/xlsx/xlsx.service.js +3 -3
  168. package/esm2015/lib/tt-core.module.js +4 -4
  169. package/esm2015/lib/validators/date-range.validator.js +22 -0
  170. package/esm2015/lib/validators/index.js +3 -1
  171. package/esm2015/lib/validators/require-autocomplete.js +14 -0
  172. package/esm2015/lib/validators/require-select.validator.js +15 -0
  173. package/esm2015/public-api.js +27 -2
  174. package/fesm2015/taxtank-core.js +7135 -5965
  175. package/fesm2015/taxtank-core.js.map +1 -1
  176. package/lib/collections/bank.collection.d.ts +7 -0
  177. package/lib/collections/collection-dictionary.d.ts +2 -1
  178. package/lib/collections/collection.d.ts +18 -31
  179. package/lib/collections/depreciation.collection.d.ts +3 -2
  180. package/lib/collections/exportable.collection.d.ts +2 -1
  181. package/lib/collections/transaction/transaction.collection.d.ts +5 -4
  182. package/lib/db/Enums/chart-accounts-heading-list.enum.d.ts +20 -1
  183. package/lib/db/Enums/chart-accounts-list.enum.d.ts +37 -1
  184. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +4 -1
  185. package/lib/db/Models/abstract-model.d.ts +1 -0
  186. package/lib/db/Models/bank/bank.d.ts +4 -0
  187. package/lib/forms/abstract.form.d.ts +18 -3
  188. package/lib/forms/bank/bank-account-add-manual.form.d.ts +10 -0
  189. package/lib/forms/bank/bank-account-loan.form.d.ts +5 -0
  190. package/lib/forms/bank/bank-account-migrate.form.d.ts +9 -0
  191. package/lib/forms/bank/bank-account-properties.form.d.ts +8 -0
  192. package/lib/forms/bank/bank-account-property.form.d.ts +5 -0
  193. package/lib/forms/bank/bank-account.form.d.ts +21 -0
  194. package/lib/forms/bank/bank-login.form.d.ts +11 -0
  195. package/lib/forms/client/client-income-types.form.d.ts +1 -2
  196. package/lib/forms/index.d.ts +8 -0
  197. package/lib/forms/login/login.form.d.ts +4 -1
  198. package/lib/forms/register/register-client.form.d.ts +1 -1
  199. package/lib/forms/register/register-firm.form.d.ts +2 -2
  200. package/lib/forms/report/my-tax/index.d.ts +13 -0
  201. package/lib/forms/report/my-tax/my-tax-business-or-losses.form.d.ts +8 -0
  202. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +5 -0
  203. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts +5 -0
  204. package/lib/forms/report/my-tax/my-tax-employee-share-schemes.form.d.ts +5 -0
  205. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts +7 -0
  206. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts +8 -0
  207. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts +5 -0
  208. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts +8 -0
  209. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts +9 -0
  210. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts +8 -0
  211. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts +5 -0
  212. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts +5 -0
  213. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts +5 -0
  214. package/lib/forms/user/password.form.d.ts +4 -1
  215. package/lib/forms/user/reset-password.form.d.ts +3 -1
  216. package/lib/forms/vehicle/vehicle-claim.form.d.ts +1 -1
  217. package/lib/forms/vehicle/vehicle.form.d.ts +3 -7
  218. package/lib/interceptors/basiq.interceptor.d.ts +15 -0
  219. package/lib/interceptors/financial-year-interceptor.d.ts +2 -0
  220. package/lib/models/account-setup/account-setup-item.d.ts +2 -1
  221. package/lib/models/bank/bank-account-property.d.ts +1 -0
  222. package/lib/models/bank/bank-account.d.ts +2 -0
  223. package/lib/models/bank/bank-connection.d.ts +8 -1
  224. package/lib/models/bank/bank-login-data.d.ts +17 -0
  225. package/lib/models/bank/bank.d.ts +1 -0
  226. package/lib/models/client/client-portfolio-report.d.ts +2 -1
  227. package/lib/models/event/app-event-type.enum.d.ts +38 -37
  228. package/lib/models/loan/loan-payment.d.ts +2 -1
  229. package/lib/models/loan/loan.d.ts +0 -2
  230. package/lib/models/report/my-tax/ato-links.d.ts +6 -0
  231. package/lib/models/report/my-tax/my-tax-business-or-losses/my-tax-business-or-losses.d.ts +7 -0
  232. package/lib/models/report/my-tax/my-tax-deductions/deduction-clothing-type.enum.d.ts +11 -0
  233. package/lib/models/report/my-tax/my-tax-deductions/deduction-fields.const.d.ts +8 -0
  234. package/lib/models/report/my-tax/my-tax-deductions/deduction-self-education-type.enum.d.ts +8 -0
  235. package/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +39 -0
  236. package/lib/models/report/my-tax/my-tax-dividends/my-tax-dividends.d.ts +9 -0
  237. package/lib/models/report/my-tax/my-tax-employee-share-schemes/my-tax-employee-share-schemes.d.ts +10 -0
  238. package/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.d.ts +30 -0
  239. package/lib/models/report/my-tax/my-tax-income-tests/my-tax-income-tests.d.ts +7 -0
  240. package/lib/models/report/my-tax/my-tax-interest/my-tax-interest.d.ts +9 -0
  241. package/lib/models/report/my-tax/my-tax-losses/my-tax-losses.d.ts +8 -0
  242. package/lib/models/report/my-tax/my-tax-offsets/my-tax-offsets.d.ts +7 -0
  243. package/lib/models/report/my-tax/my-tax-other-income/my-tax-other-income.d.ts +13 -0
  244. package/lib/models/report/my-tax/my-tax-partnerships-and-trusts/my-tax-partnerships-and-trusts.d.ts +17 -0
  245. package/lib/models/report/my-tax/my-tax-rent/my-tax-rent.d.ts +11 -0
  246. package/lib/models/report/property/property-report-item.d.ts +2 -1
  247. package/lib/models/report/vehicle-expense/vehicle-expense.d.ts +2 -1
  248. package/lib/models/tax-summary/report-item-details.d.ts +2 -1
  249. package/lib/models/tax-summary/report-item.d.ts +2 -1
  250. package/lib/models/transaction/transaction.d.ts +3 -1
  251. package/lib/services/event/sse.service.d.ts +3 -0
  252. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +13 -1
  253. package/lib/services/http/bank/basiq/basiq-connections-response.interface.d.ts +9 -0
  254. package/lib/services/http/bank/basiq/basiq-token-response.interface.d.ts +9 -0
  255. package/lib/services/http/bank/basiq/basiq-token.service.d.ts +17 -0
  256. package/lib/services/http/bank/basiq/basiq.service.d.ts +20 -11
  257. package/lib/services/http/rest/rest.service.d.ts +0 -5
  258. package/lib/services/http/user/user.service.d.ts +0 -1
  259. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts +6 -0
  260. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts +13 -0
  261. package/lib/services/pdf/pdf-from-table/file-settings.d.ts +8 -0
  262. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts +19 -0
  263. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts +15 -0
  264. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts +16 -0
  265. package/lib/validators/date-range.validator.d.ts +5 -0
  266. package/lib/validators/index.d.ts +2 -0
  267. package/lib/validators/require-autocomplete.d.ts +5 -0
  268. package/lib/validators/require-select.validator.d.ts +5 -0
  269. package/package.json +2 -1
  270. package/public-api.d.ts +26 -1
  271. package/esm2015/lib/models/pdf/pdf-config.js +0 -43
  272. package/esm2015/lib/services/pdf/pdf.service.js +0 -99
  273. package/lib/models/pdf/pdf-config.d.ts +0 -8
  274. package/lib/services/pdf/pdf.service.d.ts +0 -29
@@ -6,7 +6,7 @@ export class AccountSetupItemCollection extends Collection {
6
6
  this.sortBy('isCompleted', false);
7
7
  }
8
8
  isCompleted() {
9
- return this.getBy('isCompleted', true).length === this.length;
9
+ return this.filterBy('isCompleted', true).length === this.length;
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsVUFBNEI7SUFDMUUsWUFBWSxLQUF5QjtRQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ2hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248QWNjb3VudFNldHVwSXRlbT4ge1xuICBjb25zdHJ1Y3RvcihpdGVtczogQWNjb3VudFNldHVwSXRlbVtdKSB7XG4gICAgc3VwZXIoY29tcGFjdChpdGVtcykpO1xuICAgIHRoaXMuc29ydEJ5KCdpc0NvbXBsZXRlZCcsIGZhbHNlKVxuICB9XG5cbiAgaXNDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoID09PSB0aGlzLmxlbmd0aDtcbiAgfVxufVxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsVUFBNEI7SUFDMUUsWUFBWSxLQUF5QjtRQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY291bnRTZXR1cEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248QWNjb3VudFNldHVwSXRlbT4ge1xuICBjb25zdHJ1Y3RvcihpdGVtczogQWNjb3VudFNldHVwSXRlbVtdKSB7XG4gICAgc3VwZXIoY29tcGFjdChpdGVtcykpO1xuICAgIHRoaXMuc29ydEJ5KCdpc0NvbXBsZXRlZCcsIGZhbHNlKVxuICB9XG5cbiAgaXNDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoID09PSB0aGlzLmxlbmd0aDtcbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ import { Collection } from './collection';
2
+ export class BankCollection extends Collection {
3
+ constructor(banks) {
4
+ super(banks);
5
+ this.sortByPopularity();
6
+ }
7
+ sortByPopularity() {
8
+ this.items.sort((bank1, bank2) => {
9
+ // Banks already sorted on backend by name, so we just need to up top-10 banks
10
+ return (BankCollection.tobBanksIds.includes(bank1.id) && !BankCollection.tobBanksIds.includes(bank2.id)) ? -1 : 1;
11
+ });
12
+ }
13
+ }
14
+ BankCollection.tobBanksIds = [124, 13, 134, 172, 126, 142, 135, 137, 138, 128];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2JhbmsuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBZ0I7SUFHbEQsWUFBWSxLQUFhO1FBQ3ZCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQVcsRUFBRSxLQUFXLEVBQVUsRUFBRTtZQUNuRCw4RUFBOEU7WUFDOUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFaTSwwQkFBVyxHQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IEJhbmsgfSBmcm9tICcuLi9tb2RlbHMvYmFuay9iYW5rJztcblxuZXhwb3J0IGNsYXNzIEJhbmtDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxCYW5rPiB7XG4gIHN0YXRpYyB0b2JCYW5rc0lkczogbnVtYmVyW10gPSBbMTI0LCAxMywgMTM0LCAxNzIsIDEyNiwgMTQyLCAxMzUsIDEzNywgMTM4LCAxMjhdO1xuXG4gIGNvbnN0cnVjdG9yKGJhbmtzOiBCYW5rW10pIHtcbiAgICBzdXBlcihiYW5rcyk7XG4gICAgdGhpcy5zb3J0QnlQb3B1bGFyaXR5KCk7XG4gIH1cblxuICBzb3J0QnlQb3B1bGFyaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMuc29ydCgoYmFuazE6IEJhbmssIGJhbmsyOiBCYW5rKTogbnVtYmVyID0+IHtcbiAgICAgIC8vIEJhbmtzIGFscmVhZHkgc29ydGVkIG9uIGJhY2tlbmQgYnkgbmFtZSwgc28gd2UganVzdCBuZWVkIHRvIHVwIHRvcC0xMCBiYW5rc1xuICAgICAgcmV0dXJuIChCYW5rQ29sbGVjdGlvbi50b2JCYW5rc0lkcy5pbmNsdWRlcyhiYW5rMS5pZCkgJiYgIUJhbmtDb2xsZWN0aW9uLnRvYkJhbmtzSWRzLmluY2x1ZGVzKGJhbmsyLmlkKSkgPyAtMSA6IDE7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -98,4 +98,4 @@ export class CollectionDictionary {
98
98
  });
99
99
  }
100
100
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBR2pDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQW9CLEVBQUUsS0FBaUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBa0IsS0FBSztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBVSxFQUFFO1lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQUU7WUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFBRTtZQUN2QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLFVBQXNCLEVBQUUsSUFBWTtRQUNyRCx5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQXFDLEVBQUUsQ0FBQztRQUVqRCx5QkFBeUI7UUFDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUM5QyxJQUFJLEdBQUcsR0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWxDLDhFQUE4RTtZQUM5RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDZjtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNmO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCBoYXNJbiBmcm9tICdsb2Rhc2gvaGFzSW4nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiBhcyBCYXNlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5cbi8qKlxuICogTGlzdCBvZiBjb2xsZWN0aW9ucyBncm91cGVkIGJ5IHBhc3NlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkRpY3Rpb25hcnk8Q29sbGVjdGlvbiBleHRlbmRzIEJhc2VDb2xsZWN0aW9uPG9iamVjdD4+IHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgZ3JvdXBlZCBjb2xsZWN0aW9uc1xuICAgKi9cbiAgaXRlbXM6IHsgW2tleTogc3RyaW5nXTogQ29sbGVjdGlvbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIG9mIHBhc3NlZCBjb2xsZWN0aW9uIGZvciBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4gICAqL1xuICBwcml2YXRlIGNvbGxlY3Rpb25Db25zdHJ1Y3RvcjogbmV3IChpdGVtczogb2JqZWN0W10pID0+IENvbGxlY3Rpb247XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uIFRoZSBDb2xsZWN0aW9uIGluc3RhbmNlIHRvIGJlIGdyb3VwZWRcbiAgICogQHBhcmFtIHBhdGggUGF0aCB0byB0aGUgcHJvcGVydHkgdG8gYmUgZ3JvdXBlZCAoRXhhbXBsZXM6ICd0cmFuc2FjdGlvbicsICdwcm9wZXJ0eS5jYXRlZ29yeScpXG4gICAqIEBwYXJhbSBwcm9wIE9wdGlvbmFsOiBGaWVsZCB0byBncm91cCBieSAoRGVmYXVsdCAnaWQnLCBFeGFtcGxlczogJ2lkJywgJ2Ftb3VudCcsICdkYXRlJylcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb24sXG4gICAgcGF0aDogc3RyaW5nID0gJ2lkJ1xuICApIHtcbiAgICB0aGlzLmNvbGxlY3Rpb25Db25zdHJ1Y3RvciA9IGNvbGxlY3Rpb24uY29uc3RydWN0b3IgYXMgbmV3IChpdGVtczogb2JqZWN0W10pID0+IENvbGxlY3Rpb247XG5cbiAgICAvLyBOb3RoaW5nIHRvIGdyb3VwIHdoZW4gY29sbGVjdGlvbiBpcyBlbXB0eVxuICAgIGlmICghY29sbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBEbyBub3RoaW5nIGlmIHByb3ZpZGVkIHBhdGggd2FzIG5vdCBmb3VuZCBpbiB0aGUgMXN0IGNvbGxlY3Rpb24ncyBpdGVtXG4gICAgaWYgKCFoYXNJbihjb2xsZWN0aW9uLml0ZW1zWzBdLCBwYXRoLnNwbGl0KCcuJylbMF0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cEl0ZW1zKGNvbGxlY3Rpb24sIHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY29sbGVjdGlvbnMga2V5c1xuICAgKi9cbiAgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLml0ZW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBieSBrZXkgb3IgcmV0dXJuIGVtcHR5IGNvbGxlY3Rpb24gaWYga2V5IGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBnZXQoa2V5OiBzdHJpbmcgfCBudW1iZXIpOiBDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1trZXldID8gdGhpcy5pdGVtc1trZXldIDogdGhpcy5jcmVhdGVDb2xsZWN0aW9uKFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IGl0ZW0gYnkga2V5XG4gICAqL1xuICBhZGQoa2V5OiBzdHJpbmcgfCBudW1iZXIsIHZhbHVlOiBDb2xsZWN0aW9uKSB7XG4gICAgdGhpcy5pdGVtc1trZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSm9pbiBzZXZlcmFsIGNvbGxlY3Rpb25zIGJ5IGlkc1xuICAgKi9cbiAgbWVyZ2Uoa2V5czogbnVtYmVyW10pOiBDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2xsZWN0aW9uKFxuICAgICAgZmxhdHRlbihcbiAgICAgICAga2V5cy5tYXAoKGlkOiBudW1iZXIpOiBvYmplY3RbXSA9PiB0aGlzLmdldChpZC50b1N0cmluZygpKS5pdGVtcylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBpbnN0YW5jZSBvZiBjb2xsZWN0aW9uXG4gICAqL1xuICBjcmVhdGVDb2xsZWN0aW9uKGl0ZW1zOiBvYmplY3RbXSA9IFtdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyB0aGlzLmNvbGxlY3Rpb25Db25zdHJ1Y3RvcihpdGVtcyk7XG4gIH1cblxuICBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVG9kbyBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uIHRvIGdldCBsaXN0IG9mIHRoZSBzb3J0ZWQga2V5c1xuICAgKiBHZXQgYXJyYXkgb2YgdGhlIFwia2V5c1wiIGJ5IHByb3ZpZGVkIG9yZGVyXG4gICAqL1xuICBnZXRTb3J0ZWRLZXlzKGlzRGVzYzogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmtleXMuc29ydCgoYTogYW55LCBiOiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgaWYgKGEgPiBiKSB7IHJldHVybiAhaXNEZXNjID8gMSA6IC0xOyB9XG4gICAgICBpZiAoYSA8IGIpIHsgcmV0dXJuICFpc0Rlc2MgPyAtMSA6IDE7IH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIGNvbGxlY3Rpb24gaXRlbXMgYnkgcGFzc2VkIHBhdGggaW50byBpdGVtcyBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JvdXBJdGVtcyhjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgZW1wdHkgaW5pdGlhbCBvYmplY3QgZm9yIGdyb3Vwc1xuICAgIGNvbnN0IG9iajogeyBba2V5OiBzdHJpbmddOiBBcnJheTxvYmplY3Q+IH0gPSB7fTtcblxuICAgIC8vIEdyb3VwIGNvbGxlY3Rpb24gaXRlbXNcbiAgICBjb2xsZWN0aW9uLml0ZW1zLmZvckVhY2goKGl0ZW06IG9iamVjdCk6IHZvaWQgPT4ge1xuICAgICAgbGV0IGtleTogc3RyaW5nID0gZ2V0KGl0ZW0sIHBhdGgpO1xuXG4gICAgICAvLyBpZiBvYmplY3QgZG9lcyBub3QgaGF2ZSBwcm9wZXJ0eSBmb3IgZ3JvdXBpbmcgaXQgd2lsbCBiZSBncm91cGVkIGFzICdvdGhlcidcbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBrZXkgPSAnb3RoZXInO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW9ialtrZXldKSB7XG4gICAgICAgIG9ialtrZXldID0gW107XG4gICAgICB9XG5cbiAgICAgIG9ialtrZXldLnB1c2goaXRlbSk7XG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgY29sbGVjdGlvbnMgZnJvbSBncm91cHNcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goKGtleTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLml0ZW1zW2tleV0gPSB0aGlzLmNyZWF0ZUNvbGxlY3Rpb24ob2JqW2tleV0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24tZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBSWpDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQjs7OztPQUlHO0lBQ0gsWUFDRSxVQUFzQixFQUN0QixPQUFlLElBQUk7UUFqQnJCOztXQUVHO1FBQ0gsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFnQnhDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsV0FBa0QsQ0FBQztRQUUzRiw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQW9CLEVBQUUsS0FBaUI7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQWM7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQzFCLE9BQU8sQ0FDTCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNsRSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQUMsU0FBa0IsS0FBSztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBVSxFQUFFO1lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQUU7WUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFBRTtZQUN2QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVSxDQUFDLFVBQXNCLEVBQUUsSUFBWTtRQUNyRCx5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQXFDLEVBQUUsQ0FBQztRQUVqRCx5QkFBeUI7UUFDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQVEsRUFBRTtZQUM5QyxJQUFJLEdBQUcsR0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWxDLDhFQUE4RTtZQUM5RSxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0JBQ3JCLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDZjtZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUNmO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBUSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCBoYXNJbiBmcm9tICdsb2Rhc2gvaGFzSW4nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiBhcyBCYXNlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uL2RiL01vZGVscy9hYnN0cmFjdC1tb2RlbCc7XG5cbi8qKlxuICogTGlzdCBvZiBjb2xsZWN0aW9ucyBncm91cGVkIGJ5IHBhc3NlZCBwcm9wZXJ0eVxuICovXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbkRpY3Rpb25hcnk8Q29sbGVjdGlvbiBleHRlbmRzIEJhc2VDb2xsZWN0aW9uPEFic3RyYWN0TW9kZWw+PiB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGdyb3VwZWQgY29sbGVjdGlvbnNcbiAgICovXG4gIGl0ZW1zOiB7IFtrZXk6IHN0cmluZ106IENvbGxlY3Rpb24gfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBvZiBwYXNzZWQgY29sbGVjdGlvbiBmb3IgY3JlYXRpbmcgbmV3IGluc3RhbmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBjb2xsZWN0aW9uQ29uc3RydWN0b3I6IG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBUaGUgQ29sbGVjdGlvbiBpbnN0YW5jZSB0byBiZSBncm91cGVkXG4gICAqIEBwYXJhbSBwYXRoIFBhdGggdG8gdGhlIHByb3BlcnR5IHRvIGJlIGdyb3VwZWQgKEV4YW1wbGVzOiAndHJhbnNhY3Rpb24nLCAncHJvcGVydHkuY2F0ZWdvcnknKVxuICAgKiBAcGFyYW0gcHJvcCBPcHRpb25hbDogRmllbGQgdG8gZ3JvdXAgYnkgKERlZmF1bHQgJ2lkJywgRXhhbXBsZXM6ICdpZCcsICdhbW91bnQnLCAnZGF0ZScpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uLFxuICAgIHBhdGg6IHN0cmluZyA9ICdpZCdcbiAgKSB7XG4gICAgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IgPSBjb2xsZWN0aW9uLmNvbnN0cnVjdG9yIGFzIG5ldyAoaXRlbXM6IG9iamVjdFtdKSA9PiBDb2xsZWN0aW9uO1xuXG4gICAgLy8gTm90aGluZyB0byBncm91cCB3aGVuIGNvbGxlY3Rpb24gaXMgZW1wdHlcbiAgICBpZiAoIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRG8gbm90aGluZyBpZiBwcm92aWRlZCBwYXRoIHdhcyBub3QgZm91bmQgaW4gdGhlIDFzdCBjb2xsZWN0aW9uJ3MgaXRlbVxuICAgIGlmICghaGFzSW4oY29sbGVjdGlvbi5pdGVtc1swXSwgcGF0aC5zcGxpdCgnLicpWzBdKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBJdGVtcyhjb2xsZWN0aW9uLCBwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbGxlY3Rpb25zIGtleXNcbiAgICovXG4gIGdldCBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gYnkga2V5IG9yIHJldHVybiBlbXB0eSBjb2xsZWN0aW9uIGlmIGtleSBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgZ2V0KGtleTogc3RyaW5nIHwgbnVtYmVyKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNba2V5XSA/IHRoaXMuaXRlbXNba2V5XSA6IHRoaXMuY3JlYXRlQ29sbGVjdGlvbihbXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBpdGVtIGJ5IGtleVxuICAgKi9cbiAgYWRkKGtleTogc3RyaW5nIHwgbnVtYmVyLCB2YWx1ZTogQ29sbGVjdGlvbikge1xuICAgIHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvaW4gc2V2ZXJhbCBjb2xsZWN0aW9ucyBieSBpZHNcbiAgICovXG4gIG1lcmdlKGtleXM6IG51bWJlcltdKTogQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29sbGVjdGlvbihcbiAgICAgIGZsYXR0ZW4oXG4gICAgICAgIGtleXMubWFwKChpZDogbnVtYmVyKTogb2JqZWN0W10gPT4gdGhpcy5nZXQoaWQudG9TdHJpbmcoKSkuaXRlbXMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgaW5zdGFuY2Ugb2YgY29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlQ29sbGVjdGlvbihpdGVtczogb2JqZWN0W10gPSBbXSk6IENvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgdGhpcy5jb2xsZWN0aW9uQ29uc3RydWN0b3IoaXRlbXMpO1xuICB9XG5cbiAgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQFRvZG8gZmluZCBhIGJldHRlciBzb2x1dGlvbiB0byBnZXQgbGlzdCBvZiB0aGUgc29ydGVkIGtleXNcbiAgICogR2V0IGFycmF5IG9mIHRoZSBcImtleXNcIiBieSBwcm92aWRlZCBvcmRlclxuICAgKi9cbiAgZ2V0U29ydGVkS2V5cyhpc0Rlc2M6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5rZXlzLnNvcnQoKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChhID4gYikgeyByZXR1cm4gIWlzRGVzYyA/IDEgOiAtMTsgfVxuICAgICAgaWYgKGEgPCBiKSB7IHJldHVybiAhaXNEZXNjID8gLTEgOiAxOyB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cCBjb2xsZWN0aW9uIGl0ZW1zIGJ5IHBhc3NlZCBwYXRoIGludG8gaXRlbXMgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyb3VwSXRlbXMoY29sbGVjdGlvbjogQ29sbGVjdGlvbiwgcGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIGVtcHR5IGluaXRpYWwgb2JqZWN0IGZvciBncm91cHNcbiAgICBjb25zdCBvYmo6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8b2JqZWN0PiB9ID0ge307XG5cbiAgICAvLyBHcm91cCBjb2xsZWN0aW9uIGl0ZW1zXG4gICAgY29sbGVjdGlvbi5pdGVtcy5mb3JFYWNoKChpdGVtOiBvYmplY3QpOiB2b2lkID0+IHtcbiAgICAgIGxldCBrZXk6IHN0cmluZyA9IGdldChpdGVtLCBwYXRoKTtcblxuICAgICAgLy8gaWYgb2JqZWN0IGRvZXMgbm90IGhhdmUgcHJvcGVydHkgZm9yIGdyb3VwaW5nIGl0IHdpbGwgYmUgZ3JvdXBlZCBhcyAnb3RoZXInXG4gICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAga2V5ID0gJ290aGVyJztcbiAgICAgIH1cblxuICAgICAgaWYgKCFvYmpba2V5XSkge1xuICAgICAgICBvYmpba2V5XSA9IFtdO1xuICAgICAgfVxuXG4gICAgICBvYmpba2V5XS5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGNvbGxlY3Rpb25zIGZyb20gZ3JvdXBzXG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKChrZXk6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5pdGVtc1trZXldID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uKG9ialtrZXldKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -11,47 +11,43 @@ export class Collection {
11
11
  constructor(items = []) {
12
12
  this.items = items;
13
13
  }
14
- create(items = []) {
15
- return new this.constructor(items);
16
- }
17
14
  /**
18
15
  * Iterator that allow to iterate collection items
19
16
  */
20
17
  [Symbol.iterator]() {
21
18
  return this.items.values();
22
19
  }
20
+ create(items = []) {
21
+ return new this.constructor(items);
22
+ }
23
+ get length() {
24
+ return this.items.length;
25
+ }
26
+ toArray() {
27
+ return [...this.items];
28
+ }
23
29
  get first() {
24
30
  return first(this.items);
25
31
  }
26
32
  get last() {
27
33
  return last(this.items);
28
34
  }
29
- push(item) {
30
- return this.items.push(item);
31
- }
32
- replaceBy(path, item) {
33
- const index = this.findIndexBy(path, get(item, path));
34
- if (index >= 0) {
35
- this.items.splice(index, 1, item);
36
- }
37
- return this;
35
+ getIds() {
36
+ return this.items.map((item) => item['id']);
38
37
  }
39
- removeBy(path, item) {
40
- const index = this.findIndexBy(path, get(item, path));
41
- if (index >= 0) {
42
- this.items.splice(index, 1);
43
- }
38
+ sortBy(field = 'id', isDesc = true) {
39
+ sort(this.items, field, isDesc);
44
40
  return this;
45
41
  }
46
- toArray() {
47
- return [...this.items];
42
+ /**
43
+ * Get total sum of items by field
44
+ */
45
+ sumBy(path) {
46
+ return +this.items.reduce((sum, item) => sum + Number(get(item, path)), 0).toFixed(2);
48
47
  }
49
48
  groupBy(path = '') {
50
49
  return new CollectionDictionary(this, path);
51
50
  }
52
- /**
53
- * @TODO remove and use dictionary instead
54
- */
55
51
  indexBy(path) {
56
52
  // Create empty initial object for groups
57
53
  const result = {};
@@ -60,51 +56,41 @@ export class Collection {
60
56
  });
61
57
  return result;
62
58
  }
63
- /**
64
- * get collection length
65
- */
66
- get length() {
67
- return this.items.length;
59
+ filter(callback) {
60
+ return this.create(this.items.filter(callback));
68
61
  }
69
- /**
70
- * Get list of items ids
71
- */
72
- getIds() {
73
- return this.items.map((item) => item['id']);
62
+ filterBy(path, values) {
63
+ return this.filter((item) => (Array.isArray(values) ? values : [values]).includes(get(item, path)));
74
64
  }
75
- getBy(path, value) {
76
- return this.create(this.items.filter((item) => get(item, path) === value));
65
+ filterByRange(path, from, to) {
66
+ return this.filter((item) => get(item, path) >= from && get(item, path) <= to);
77
67
  }
78
- getByIds(ids) {
79
- return this.items.filter((item) => ids.includes(item['id']));
68
+ find(callback) {
69
+ return this.items.find(callback);
80
70
  }
81
71
  findBy(path, value) {
82
- return this.items.find((item) => get(item, path) === value);
72
+ return this.items.find((model) => value === get(model, path));
83
73
  }
84
74
  findIndexBy(path, value) {
85
75
  var _a;
86
76
  return (_a = this.items.findIndex((item) => get(item, path) === value)) !== null && _a !== void 0 ? _a : null;
87
77
  }
88
- /**
89
- * Get total sum of items by field
90
- */
91
- sumBy(path) {
92
- return +this.items.reduce((sum, item) => sum + Number(get(item, path)), 0).toFixed(2);
78
+ push(...items) {
79
+ this.items.push(...items);
80
+ return this.create(this.items);
93
81
  }
94
- /**
95
- * Filter items by specific provided callback
96
- */
97
- filter(callback) {
98
- return new Collection(this.items.filter(callback));
82
+ replaceBy(path, value, item) {
83
+ const index = this.findIndexBy(path, value);
84
+ if (index >= 0) {
85
+ this.items.splice(index, 1, item);
86
+ }
87
+ return this;
99
88
  }
100
- /**
101
- * Sort collection items by provided field
102
- */
103
- sortBy(field = 'id', isDesc = true) {
104
- sort(this.items, field, isDesc);
89
+ remove(items) {
90
+ return this.filter((model) => !items.map((item) => item.id).includes(model.id));
105
91
  }
106
- getByDateRange(from, to, dateField = 'date') {
107
- return this.create(this.items.filter((item) => item[dateField] >= from && item[dateField] <= to));
92
+ removeBy(path, value) {
93
+ return this.filter((item) => get(item, path) !== value);
108
94
  }
109
95
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBVztRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZ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QyxJQUFZO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBa0M7UUFDdkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxRQUFnQixJQUFJLEVBQUUsU0FBa0IsSUFBSTtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFVLEVBQUUsRUFBUSxFQUFFLFlBQW9CLE1BQU07UUFDN0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzlGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuaW1wb3J0IHsgc29ydCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9hcnJheSc7XHJcblxyXG5jb25zdCBERUZBVUxUX0lOREVYID0gJ290aGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNvbGxlY3Rpb24gY2xhc3MuIENvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBhbGwgY29sbGVjdGlvbnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPE1vZGVsIGV4dGVuZHMgb2JqZWN0PiBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1vZGVsPiB7XHJcbiAgLy8gbGlzdCBvZiBjb2xsZWN0aW9uJ3MgaXRlbXNcclxuICBpdGVtczogTW9kZWxbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbXM6IE1vZGVsW10gPSBbXSkge1xyXG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGl0ZW1zOiBNb2RlbFtdID0gW10pOiB0aGlzIHtcclxuICAgIHJldHVybiBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJdGVyYXRvciB0aGF0IGFsbG93IHRvIGl0ZXJhdGUgY29sbGVjdGlvbiBpdGVtc1xyXG4gICAqL1xyXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhdG9yPE1vZGVsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy52YWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gZmlyc3QodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gbGFzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1c2goaXRlbTogTW9kZWwpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcclxuICB9XHJcblxyXG4gIHJlcGxhY2VCeShwYXRoOiBzdHJpbmcsIGl0ZW06IE1vZGVsKTogdGhpcyB7XHJcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5maW5kSW5kZXhCeShwYXRoLCBnZXQoaXRlbSwgcGF0aCkpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEsIGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQnkocGF0aDogc3RyaW5nLCBpdGVtOiBNb2RlbCk6IHRoaXMge1xyXG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuZmluZEluZGV4QnkocGF0aCwgZ2V0KGl0ZW0sIHBhdGgpKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIHRvQXJyYXkoKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXBCeShwYXRoOiBzdHJpbmcgPSAnJyk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PENvbGxlY3Rpb248TW9kZWw+PiB7XHJcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KHRoaXMsIHBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQFRPRE8gcmVtb3ZlIGFuZCB1c2UgZGljdGlvbmFyeSBpbnN0ZWFkXHJcbiAgICovXHJcbiAgaW5kZXhCeShwYXRoOiBzdHJpbmcpOiBvYmplY3Qge1xyXG4gICAgLy8gQ3JlYXRlIGVtcHR5IGluaXRpYWwgb2JqZWN0IGZvciBncm91cHNcclxuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBNb2RlbCB9ID0ge307XHJcblxyXG4gICAgdGhpcy50b0FycmF5KCkuZm9yRWFjaCgobW9kZWw6IE1vZGVsKSA9PiB7XHJcbiAgICAgIHJlc3VsdFtnZXQobW9kZWwsIHBhdGgsIERFRkFVTFRfSU5ERVgpXSA9IG1vZGVsO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGdldCBjb2xsZWN0aW9uIGxlbmd0aFxyXG4gICAqL1xyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsaXN0IG9mIGl0ZW1zIGlkc1xyXG4gICAqL1xyXG4gIGdldElkcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IGl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUlkcyhpZHM6IG51bWJlcltdKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKTogYm9vbGVhbiA9PiBpZHMuaW5jbHVkZXMoaXRlbVsnaWQnXSkpO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IE1vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBmaW5kSW5kZXhCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSkgPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0b3RhbCBzdW0gb2YgaXRlbXMgYnkgZmllbGRcclxuICAgKi9cclxuICBzdW1CeShwYXRoOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IHN1bSArIE51bWJlcihnZXQoaXRlbSwgcGF0aCkpLCAwKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGl0ZW1zIGJ5IHNwZWNpZmljIHByb3ZpZGVkIGNhbGxiYWNrXHJcbiAgICovXHJcbiAgZmlsdGVyKGNhbGxiYWNrOiAoaXRlbTogTW9kZWwpID0+IGJvb2xlYW4pOiBDb2xsZWN0aW9uPE1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy5pdGVtcy5maWx0ZXIoY2FsbGJhY2spKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgY29sbGVjdGlvbiBpdGVtcyBieSBwcm92aWRlZCBmaWVsZFxyXG4gICAqL1xyXG4gIHNvcnRCeShmaWVsZDogc3RyaW5nID0gJ2lkJywgaXNEZXNjOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgc29ydCh0aGlzLml0ZW1zLCBmaWVsZCwgaXNEZXNjKTtcclxuICB9XHJcblxyXG4gIGdldEJ5RGF0ZVJhbmdlKGZyb206IERhdGUsIHRvOiBEYXRlLCBkYXRlRmllbGQ6IHN0cmluZyA9ICdkYXRlJyk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxyXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGl0ZW1bZGF0ZUZpZWxkXSA+PSBmcm9tICYmIGl0ZW1bZGF0ZUZpZWxkXSA8PSB0bylcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUcxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUFZLFFBQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBaUIsRUFBRTtRQUN4QixPQUFPLElBQUssSUFBSSxDQUFDLFdBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFD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QUksSUFBSSxDQUFDO0lBQ2xGLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxLQUFjO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVksRUFBRSxLQUFVLEVBQUUsSUFBVztRQUM3QyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ25DO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuL2NvbGxlY3Rpb24tZGljdGlvbmFyeSc7XHJcbmltcG9ydCBmaXJzdCBmcm9tICdsb2Rhc2gvZmlyc3QnO1xyXG5pbXBvcnQgbGFzdCBmcm9tICdsb2Rhc2gvbGFzdCc7XHJcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XHJcbmltcG9ydCB7IHNvcnQgfSBmcm9tICcuLi9mdW5jdGlvbnMvYXJyYXknO1xyXG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uL2RiL01vZGVscy9hYnN0cmFjdC1tb2RlbCc7XHJcblxyXG5jb25zdCBERUZBVUxUX0lOREVYID0gJ290aGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNvbGxlY3Rpb24gY2xhc3MuIENvbnRhaW5zIGNvbW1vbiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBhbGwgY29sbGVjdGlvbnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb2xsZWN0aW9uPE1vZGVsIGV4dGVuZHMgQWJzdHJhY3RNb2RlbD4gaW1wbGVtZW50cyBJdGVyYWJsZTxNb2RlbD4ge1xyXG4gIC8vIGxpc3Qgb2YgY29sbGVjdGlvbidzIGl0ZW1zXHJcbiAgaXRlbXM6IE1vZGVsW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGl0ZW1zOiBNb2RlbFtdID0gW10pIHtcclxuICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZXJhdG9yIHRoYXQgYWxsb3cgdG8gaXRlcmF0ZSBjb2xsZWN0aW9uIGl0ZW1zXHJcbiAgICovXHJcbiAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmF0b3I8TW9kZWw+IHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGl0ZW1zOiBNb2RlbFtdID0gW10pOiB0aGlzIHtcclxuICAgIHJldHVybiBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICB0b0FycmF5KCk6IE1vZGVsW10ge1xyXG4gICAgcmV0dXJuIFsuLi50aGlzLml0ZW1zXTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gZmlyc3QodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdCgpOiBNb2RlbCB7XHJcbiAgICByZXR1cm4gbGFzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldElkcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IGl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgc29ydEJ5KGZpZWxkOiBzdHJpbmcgPSAnaWQnLCBpc0Rlc2M6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICBzb3J0KHRoaXMuaXRlbXMsIGZpZWxkLCBpc0Rlc2MpO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRvdGFsIHN1bSBvZiBpdGVtcyBieSBmaWVsZFxyXG4gICAqL1xyXG4gIHN1bUJ5KHBhdGg6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgaXRlbTogTW9kZWwpOiBudW1iZXIgPT4gc3VtICsgTnVtYmVyKGdldChpdGVtLCBwYXRoKSksIDApLnRvRml4ZWQoMik7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5KHBhdGg6IHN0cmluZyA9ICcnKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8dGhpcz4ge1xyXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeSh0aGlzLCBwYXRoKTtcclxuICB9XHJcblxyXG4gIGluZGV4QnkocGF0aDogc3RyaW5nKTogb2JqZWN0IHtcclxuICAgIC8vIENyZWF0ZSBlbXB0eSBpbml0aWFsIG9iamVjdCBmb3IgZ3JvdXBzXHJcbiAgICBjb25zdCByZXN1bHQ6IHsgW2tleTogc3RyaW5nXTogTW9kZWwgfSA9IHt9O1xyXG5cclxuICAgIHRoaXMudG9BcnJheSgpLmZvckVhY2goKG1vZGVsOiBNb2RlbCkgPT4ge1xyXG4gICAgICByZXN1bHRbZ2V0KG1vZGVsLCBwYXRoLCBERUZBVUxUX0lOREVYKV0gPSBtb2RlbDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXIoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMuZmlsdGVyKGNhbGxiYWNrKSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpID8gdmFsdWVzIDogW3ZhbHVlc10pLmluY2x1ZGVzKGdldChpdGVtLCBwYXRoKSkpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyQnlSYW5nZShwYXRoOiBzdHJpbmcsIGZyb206IGFueSwgdG86IGFueSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gZ2V0KGl0ZW0sIHBhdGgpID49IGZyb20gJiYgZ2V0KGl0ZW0sIHBhdGgpIDw9IHRvKTtcclxuICB9XHJcblxyXG4gIGZpbmQoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IE1vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKGNhbGxiYWNrKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBNb2RlbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgobW9kZWw6IE1vZGVsKSA9PiB2YWx1ZSA9PT0gZ2V0KG1vZGVsLCBwYXRoKSk7XHJcbiAgfVxyXG5cclxuICBmaW5kSW5kZXhCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSkgPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1c2goLi4uaXRlbXM6IE1vZGVsW10pOiB0aGlzIHtcclxuICAgIHRoaXMuaXRlbXMucHVzaCguLi5pdGVtcyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcmVwbGFjZUJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSwgaXRlbTogTW9kZWwpOiB0aGlzIHtcclxuICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLmZpbmRJbmRleEJ5KHBhdGgsIHZhbHVlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluZGV4LCAxLCBpdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIHJlbW92ZShpdGVtczogTW9kZWxbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChtb2RlbDogTW9kZWwpID0+ICFpdGVtcy5tYXAoKGl0ZW06IE1vZGVsKSA9PiBpdGVtLmlkKS5pbmNsdWRlcyhtb2RlbC5pZCkpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgIT09IHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -48,11 +48,14 @@ export class DepreciationCollection extends Collection {
48
48
  getByChartAccountsCategories(categories) {
49
49
  return this.create(this.items.filter((depreciation) => categories.includes(depreciation.chartAccounts.category)));
50
50
  }
51
+ getAssets() {
52
+ return this.filter((depreciation) => depreciation.isAsset());
53
+ }
51
54
  getPlantEquipment() {
52
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isPlantEquipment()));
55
+ return this.filter((depreciation) => depreciation.isPlantEquipment());
53
56
  }
54
57
  getCapitalDepreciations() {
55
- return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isCapital()));
58
+ return this.filter((depreciation) => depreciation.isCapital());
56
59
  }
57
60
  getBorrowingExpenseDepreciations() {
58
61
  return new DepreciationCollection(this.items.filter((depreciation) => depreciation.isBorrowingExpense()));
@@ -98,4 +101,4 @@ export class DepreciationCollection extends Collection {
98
101
  return new TransactionCollection(this.items.map((item) => item.toTransaction()));
99
102
  }
100
103
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUVsRTs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ25FLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7UUFDNUQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFO1lBQ3pG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STtvQkFDcEIsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25DLEtBQUssWUFBWSxDQUFDLElBQUk7b0JBQ3BCLE9BQU8sWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxvQ0FBb0M7Z0JBQ3BDO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUkscUJBQXFCLENBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQzdELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB1bmlxQnkgZnJvbSAnbG9kYXNoL3VuaXFCeSc7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdCB9IGZyb20gJy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuXG5leHBvcnQgY2xhc3MgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248RGVwcmVjaWF0aW9uPiB7XG5cbiAgLyoqXG4gICAqIEdldCB0b3RhbCBhbW91bnQgb2YgYWxsIGRlcHJlY2lhdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiBzdW0gKyBkZXByZWNpYXRpb24uYW1vdW50LCAwKTtcbiAgfVxuXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmN1cnJlbnRZZWFyRm9yZWNhc3QuY2xhaW1BbW91bnQ7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDbGFpbUFtb3VudEJ5WWVhcih5ZWFyOiBudW1iZXIgPSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpbmFuY2lhbFllYXInKSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYW1vdW50IC0gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyOiBudW1iZXIgPSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpbmFuY2lhbFllYXInKSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5nZXRDbG9zZUJhbGFuY2VCeVllYXIoeWVhcik7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDdXJyZW50WWVhckZvcmVjYXN0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHN1bSArIGRlcHJlY2lhdGlvbi5jdXJyZW50WWVhckZvcmVjYXN0LmFtb3VudDtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldCBjbG9zZUJhbGFuY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnY3VycmVudFllYXJGb3JlY2FzdC5jbG9zZUJhbGFuY2UnKTtcbiAgfVxuXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBpZHMuaW5jbHVkZXMoZGVwcmVjaWF0aW9uLnByb3BlcnR5Py5pZCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFdpdGhDYXBpdGFsUHJvamVjdCgpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+ICEhZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICAgICk7XG4gIH1cblxuICBnZXRXaXRob3V0Q2FwaXRhbFByb2plY3QoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiAhZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0KVxuICAgICk7XG4gIH1cblxuICBnZXRXaXRob3V0Qm9ycm93aW5nRXhwZW5zZXMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiAhZGVwcmVjaWF0aW9uLmlzQm9ycm93aW5nRXhwZW5zZSgpKVxuICAgICk7XG4gIH1cblxuICBnZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyhkZXByZWNpYXRpb24uY2hhcnRBY2NvdW50cy5jYXRlZ29yeSkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsYW50RXF1aXBtZW50KCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzUGxhbnRFcXVpcG1lbnQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2FwaXRhbERlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNDYXBpdGFsKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEJvcnJvd2luZ0V4cGVuc2VEZXByZWNpYXRpb25zKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzQm9ycm93aW5nRXhwZW5zZSgpKVxuICAgICk7XG4gIH1cblxuICBnZXRXcml0dGVuT2ZmRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc1dyaXR0ZW5PZmYoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0TG93VmFsdWVQb29sRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGRlcHJlY2lhdGlvbi5pc0xvd1ZhbHVlUG9vbCgpKVxuICAgICk7XG4gIH1cblxuICBnZXRDYXBpdGFsUHJvamVjdHMoKTogRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3RbXSB7XG4gICAgcmV0dXJuIHVuaXFCeShcbiAgICAgIGNvbXBhY3QoXG4gICAgICAgIHRoaXMuaXRlbXMubWFwKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0ID0+IHtcbiAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmRlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0O1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgICdpZCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIG5ldyBjb2xsZWN0aW9uIG9mIGRlcHJlY2lhdGlvbnMgcmVsYXRlZCB0byB2ZWhpY2xlc1xuICAgKi9cbiAgZ2V0VmVoaWNsZURlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiBkZXByZWNpYXRpb24uaXNWZWhpY2xlRGVwcmVjaWF0aW9uKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRCeVRhbmtUeXBlKHRhbmtUeXBlOiBUYW5rVHlwZUVudW0pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5pc1Byb3BlcnR5VGFuaygpO1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmlzV29ya1RhbmsoKTtcbiAgICAgICAgICBjYXNlIFRhbmtUeXBlRW51bS5TT0xFOlxuICAgICAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gY2FzZSBmb3Igb3RoZXIgdGFuayBvciBzb21lIGV4dHJhXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZnJvbSBkZXByZWNpYXRpb24gaXRlbXNcbiAgICovXG4gIHRvVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLm1hcCgoaXRlbTogRGVwcmVjaWF0aW9uKSA9PiBpdGVtLnRvVHJhbnNhY3Rpb24oKSlcbiAgICApO1xuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzdFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxVQUF3QjtJQUVsRTs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBRSxFQUFFO1lBQ25FLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7UUFDNUQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsWUFBMEIsRUFBVSxFQUFFO1lBQ3pG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QWMsRUFBRSxDQUFDO2dCQUN2QyxLQUFLLFlBQVksQ0FBQyxJQUFJO29CQUNwQixPQUFPLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxZQUFZLENBQUMsSUFBSTtvQkFDcEIsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25DLG9DQUFvQztnQkFDcEM7b0JBQ0UsT0FBTyxLQUFLLENBQUM7YUFDaEI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gvdW5pcUJ5JztcbmltcG9ydCBjb21wYWN0IGZyb20gJ2xvZGFzaC9jb21wYWN0JztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhcGl0YWxQcm9qZWN0IH0gZnJvbSAnLi4vbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxEZXByZWNpYXRpb24+IHtcblxuICAvKipcbiAgICogR2V0IHRvdGFsIGFtb3VudCBvZiBhbGwgZGVwcmVjaWF0aW9ucyBpbiB0aGUgY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IGFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogbnVtYmVyID0+IHN1bSArIGRlcHJlY2lhdGlvbi5hbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGNsYWltQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pID0+IHtcbiAgICAgIHJldHVybiBzdW0gKyBkZXByZWNpYXRpb24uY3VycmVudFllYXJGb3JlY2FzdC5jbGFpbUFtb3VudDtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldENsYWltQW1vdW50QnlZZWFyKHllYXI6IG51bWJlciA9ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmluYW5jaWFsWWVhcicpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hbW91bnQgLSB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBzdW0gKyBkZXByZWNpYXRpb24uZ2V0Q2xvc2VCYWxhbmNlQnlZZWFyKHllYXIpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0Q2xvc2VCYWxhbmNlQnlZZWFyKHllYXI6IG51bWJlciA9ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZmluYW5jaWFsWWVhcicpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmdldENsb3NlQmFsYW5jZUJ5WWVhcih5ZWFyKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRZZWFyRm9yZWNhc3RBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgZGVwcmVjaWF0aW9uLmN1cnJlbnRZZWFyRm9yZWNhc3QuYW1vdW50O1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0IGNsb3NlQmFsYW5jZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdjdXJyZW50WWVhckZvcmVjYXN0LmNsb3NlQmFsYW5jZScpO1xuICB9XG5cbiAgZ2V0QnlQcm9wZXJ0aWVzSWRzKGlkczogbnVtYmVyW10pOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IGlkcy5pbmNsdWRlcyhkZXByZWNpYXRpb24ucHJvcGVydHk/LmlkKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0V2l0aENhcGl0YWxQcm9qZWN0KCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gISFkZXByZWNpYXRpb24uZGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QpXG4gICAgKTtcbiAgfVxuXG4gIGdldFdpdGhvdXRDYXBpdGFsUHJvamVjdCgpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+ICFkZXByZWNpYXRpb24uZGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QpXG4gICAgKTtcbiAgfVxuXG4gIGdldFdpdGhvdXRCb3Jyb3dpbmdFeHBlbnNlcygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+ICFkZXByZWNpYXRpb24uaXNCb3Jyb3dpbmdFeHBlbnNlKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoY2F0ZWdvcmllczogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBjYXRlZ29yaWVzLmluY2x1ZGVzKGRlcHJlY2lhdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5KSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QXNzZXRzKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoZGVwcmVjaWF0aW9uKSA9PiBkZXByZWNpYXRpb24uaXNBc3NldCgpKTtcbiAgfVxuXG4gIGdldFBsYW50RXF1aXBtZW50KCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoZGVwcmVjaWF0aW9uKSA9PiBkZXByZWNpYXRpb24uaXNQbGFudEVxdWlwbWVudCgpKTtcbiAgfVxuXG4gIGdldENhcGl0YWxEZXByZWNpYXRpb25zKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoZGVwcmVjaWF0aW9uKSA9PiBkZXByZWNpYXRpb24uaXNDYXBpdGFsKCkpO1xuICB9XG5cbiAgZ2V0Qm9ycm93aW5nRXhwZW5zZURlcHJlY2lhdGlvbnMoKTogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEZXByZWNpYXRpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogYm9vbGVhbiA9PiBkZXByZWNpYXRpb24uaXNCb3Jyb3dpbmdFeHBlbnNlKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFdyaXR0ZW5PZmZEZXByZWNpYXRpb25zKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzV3JpdHRlbk9mZigpKVxuICAgICk7XG4gIH1cblxuICBnZXRMb3dWYWx1ZVBvb2xEZXByZWNpYXRpb25zKCk6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4gZGVwcmVjaWF0aW9uLmlzTG93VmFsdWVQb29sKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENhcGl0YWxQcm9qZWN0cygpOiBEZXByZWNpYXRpb25DYXBpdGFsUHJvamVjdFtdIHtcbiAgICByZXR1cm4gdW5pcUJ5KFxuICAgICAgY29tcGFjdChcbiAgICAgICAgdGhpcy5pdGVtcy5tYXAoKGRlcHJlY2lhdGlvbjogRGVwcmVjaWF0aW9uKTogRGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3QgPT4ge1xuICAgICAgICAgIHJldHVybiBkZXByZWNpYXRpb24uZGVwcmVjaWF0aW9uQ2FwaXRhbFByb2plY3Q7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgJ2lkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbmV3IGNvbGxlY3Rpb24gb2YgZGVwcmVjaWF0aW9ucyByZWxhdGVkIHRvIHZlaGljbGVzXG4gICAqL1xuICBnZXRWZWhpY2xlRGVwcmVjaWF0aW9ucygpOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigoZGVwcmVjaWF0aW9uOiBEZXByZWNpYXRpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGRlcHJlY2lhdGlvbi5pc1ZlaGljbGVEZXByZWNpYXRpb24oKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChkZXByZWNpYXRpb246IERlcHJlY2lhdGlvbik6IGJvb2xlYW4gPT4ge1xuICAgICAgICBzd2l0Y2ggKHRhbmtUeXBlKSB7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uUFJPUEVSVFk6XG4gICAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmlzUHJvcGVydHlUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgICAgIHJldHVybiBkZXByZWNpYXRpb24uaXNXb3JrVGFuaygpO1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XG4gICAgICAgICAgICByZXR1cm4gZGVwcmVjaWF0aW9uLmlzU29sZVRhbmsoKTtcbiAgICAgICAgICAvLyBjYXNlIGZvciBvdGhlciB0YW5rIG9yIHNvbWUgZXh0cmFcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiBmcm9tIGRlcHJlY2lhdGlvbiBpdGVtc1xuICAgKi9cbiAgdG9UcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMubWFwKChpdGVtOiBEZXByZWNpYXRpb24pID0+IGl0ZW0udG9UcmFuc2FjdGlvbigpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -14,4 +14,4 @@ export class ExportableCollection extends Collection {
14
14
  });
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0YWJsZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2V4cG9ydGFibGUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHckUsTUFBTSxPQUFnQixvQkFBMkMsU0FBUSxVQUFpQjtJQUt4RixlQUFlLENBQUMsSUFBYTtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQWE7UUFDbEIsT0FBTyxZQUFZLENBQUMsZUFBZSxFQUFFO1lBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEV4cG9ydERhdGFUYWJsZSB9IGZyb20gJy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXhwb3J0YWJsZUNvbGxlY3Rpb248TW9kZWwgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQ29sbGVjdGlvbjxNb2RlbD4ge1xuICBhYnN0cmFjdCBnZXRFeHBvcnRIZWFkZXIodHlwZT86IHN0cmluZyk6IHN0cmluZ1tdO1xuXG4gIGFic3RyYWN0IGdldEV4cG9ydEJvZHkodHlwZT86IHN0cmluZyk6IEV4cG9ydENlbGxbXVtdO1xuXG4gIGdldEV4cG9ydEZvb3Rlcih0eXBlPzogc3RyaW5nKTogRXhwb3J0Q2VsbFtdIHtcbiAgICByZXR1cm4gW107XG4gIH07XG5cbiAgZXhwb3J0KHR5cGU/OiBzdHJpbmcpOiBFeHBvcnREYXRhVGFibGUge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoRXhwb3J0RGF0YVRhYmxlLCB7XG4gICAgICBoZWFkZXI6IHRoaXMuZ2V0RXhwb3J0SGVhZGVyKHR5cGUpLFxuICAgICAgYm9keTogdGhpcy5nZXRFeHBvcnRCb2R5KHR5cGUpLFxuICAgICAgZm9vdGVyOiBbdGhpcy5nZXRFeHBvcnRGb290ZXIodHlwZSldXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0YWJsZS5jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2NvbGxlY3Rpb25zL2V4cG9ydGFibGUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJckUsTUFBTSxPQUFnQixvQkFBa0QsU0FBUSxVQUFpQjtJQUsvRixlQUFlLENBQUMsSUFBYTtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQWE7UUFDbEIsT0FBTyxZQUFZLENBQUMsZUFBZSxFQUFFO1lBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEV4cG9ydERhdGFUYWJsZSB9IGZyb20gJy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbCB9IGZyb20gJy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9kYi9Nb2RlbHMvYWJzdHJhY3QtbW9kZWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXhwb3J0YWJsZUNvbGxlY3Rpb248TW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsPiBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+IHtcbiAgYWJzdHJhY3QgZ2V0RXhwb3J0SGVhZGVyKHR5cGU/OiBzdHJpbmcpOiBzdHJpbmdbXTtcblxuICBhYnN0cmFjdCBnZXRFeHBvcnRCb2R5KHR5cGU/OiBzdHJpbmcpOiBFeHBvcnRDZWxsW11bXTtcblxuICBnZXRFeHBvcnRGb290ZXIodHlwZT86IHN0cmluZyk6IEV4cG9ydENlbGxbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9O1xuXG4gIGV4cG9ydCh0eXBlPzogc3RyaW5nKTogRXhwb3J0RGF0YVRhYmxlIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKEV4cG9ydERhdGFUYWJsZSwge1xuICAgICAgaGVhZGVyOiB0aGlzLmdldEV4cG9ydEhlYWRlcih0eXBlKSxcbiAgICAgIGJvZHk6IHRoaXMuZ2V0RXhwb3J0Qm9keSh0eXBlKSxcbiAgICAgIGZvb3RlcjogW3RoaXMuZ2V0RXhwb3J0Rm9vdGVyKHR5cGUpXVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -78,11 +78,11 @@ export class PropertyCollection extends Collection {
78
78
  */
79
79
  getBestPerformanceTaxProperty(transactions, depreciations) {
80
80
  return this.items.reduce((min, current) => {
81
- return min.getTaxPosition(transactions.getBy('property.id', min.id), depreciations.getBy('property.id', min.id))
82
- > current.getTaxPosition(transactions.getBy('property.id', current.id), depreciations.getBy('property.id', current.id))
81
+ return min.getTaxPosition(transactions.filterBy('property.id', min.id), depreciations.filterBy('property.id', min.id))
82
+ > current.getTaxPosition(transactions.filterBy('property.id', current.id), depreciations.filterBy('property.id', current.id))
83
83
  ? current
84
84
  : min;
85
85
  }, this.first);
86
86
  }
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTNFLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUluQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBb0I7SUFDMUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUNoRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFB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Q0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2tCQUM1RyxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZILENBQUMsQ0FBQyxPQUFPO2dCQUNULENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDVixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxQcm9wZXJ0eT4ge1xuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IGNhdGVnb3J5IGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBjYXRlZ29yeSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgYWN0aXZlIHN0YXR1c1xuICAgKi9cbiAgZ2V0QWN0aXZlUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWF0ZWRQcm9wZXJ0aWVzKCk6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5pc093bigpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IHNoYXJlZFxuICAgKi9cbiAgZ2V0U2hhcmVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gIXByb3BlcnR5LmlzT3duKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2UgcHJpY2UgZm9yIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgcHVyY2hhc2VQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVByaWNlJyk7XG4gIH1cblxuICBnZXQgZ3Jvd3RoUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm93dGhQZXJjZW50Jyk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnbWFya2V0VmFsdWUnKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkUmVudGFsUmV0dXJuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2ZvcmVjYXN0ZWRSZW50YWxSZXR1cm4nKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkVGF4UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gIH1cblxuICBnZXQgZmlyc3RGb3JlY2FzdFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gcHJvcGVydHkuZmlyc3RGb3JlY2FzdFllYXI7XG4gICAgICByZXR1cm4gbWluID4gY3VycmVudCA/IGN1cnJlbnQgOiBtaW47XG4gICAgfSwgbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZUdyb3d0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZUdyb3d0aCcpO1xuICB9XG5cbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5Q29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlzT3duZXJPY2N1cGllZCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgZWFybGllc3RDb250cmFjdERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChtaW46IERhdGUsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IERhdGUgPT4ge1xuICAgICAgcmV0dXJuIG1pbiA8IHByb3BlcnR5LmNvbnRyYWN0RGF0ZSA/IG1pbiA6IHByb3BlcnR5LmNvbnRyYWN0RGF0ZTtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZSgpKS5zdGFydERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHVuaXF1ZSBwcm9wZXJ0eSBjYXRlZ29yaWVzIGZyb20gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0Q2F0ZWdvcmllcygpOiBQcm9wZXJ0eUNhdGVnb3J5W10ge1xuICAgIHJldHVybiB1bmlxQnkodGhpcy5pdGVtcy5tYXAoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5Q2F0ZWdvcnkgPT4gcHJvcGVydHkuY2F0ZWdvcnkpLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxuICAgKi9cbiAgZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTogUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICByZXR1cm4gbWF4Lmdyb3d0aFBlcmNlbnQgPCBjdXJyZW50Lmdyb3d0aFBlcmNlbnQgPyBjdXJyZW50IDogbWF4O1xuICAgIH0sIHRoaXMuZmlyc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSB3aXRoIHRoZSBsb3dlc3QgdGF4IHBvc2l0aW9uXG4gICAqL1xuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogUHJvcGVydHksIGN1cnJlbnQ6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgcmV0dXJuIG1pbi5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMuZ2V0QnkoJ3Byb3BlcnR5LmlkJywgbWluLmlkKSwgZGVwcmVjaWF0aW9ucy5nZXRCeSgncHJvcGVydHkuaWQnLCBtaW4uaWQpKVxuICAgICAgICA+IGN1cnJlbnQuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLmdldEJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zLmdldEJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpKVxuICAgICAgICA/IGN1cnJlbnRcbiAgICAgICAgOiBtaW47XG4gICAgfSwgdGhpcy5maXJzdCk7XG4gIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTNFLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUluQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBb0I7SUFDMUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUNoRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFB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Q0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2tCQUNsSCxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdILENBQUMsQ0FBQyxPQUFPO2dCQUNULENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDVixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxQcm9wZXJ0eT4ge1xuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IGNhdGVnb3J5IGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBjYXRlZ29yeSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgYWN0aXZlIHN0YXR1c1xuICAgKi9cbiAgZ2V0QWN0aXZlUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWF0ZWRQcm9wZXJ0aWVzKCk6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5pc093bigpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IHNoYXJlZFxuICAgKi9cbiAgZ2V0U2hhcmVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gIXByb3BlcnR5LmlzT3duKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2UgcHJpY2UgZm9yIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgcHVyY2hhc2VQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVByaWNlJyk7XG4gIH1cblxuICBnZXQgZ3Jvd3RoUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm93dGhQZXJjZW50Jyk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnbWFya2V0VmFsdWUnKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkUmVudGFsUmV0dXJuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2ZvcmVjYXN0ZWRSZW50YWxSZXR1cm4nKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkVGF4UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gIH1cblxuICBnZXQgZmlyc3RGb3JlY2FzdFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gcHJvcGVydHkuZmlyc3RGb3JlY2FzdFllYXI7XG4gICAgICByZXR1cm4gbWluID4gY3VycmVudCA/IGN1cnJlbnQgOiBtaW47XG4gICAgfSwgbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZUdyb3d0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZUdyb3d0aCcpO1xuICB9XG5cbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5Q29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlzT3duZXJPY2N1cGllZCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgZWFybGllc3RDb250cmFjdERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChtaW46IERhdGUsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IERhdGUgPT4ge1xuICAgICAgcmV0dXJuIG1pbiA8IHByb3BlcnR5LmNvbnRyYWN0RGF0ZSA/IG1pbiA6IHByb3BlcnR5LmNvbnRyYWN0RGF0ZTtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZSgpKS5zdGFydERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHVuaXF1ZSBwcm9wZXJ0eSBjYXRlZ29yaWVzIGZyb20gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0Q2F0ZWdvcmllcygpOiBQcm9wZXJ0eUNhdGVnb3J5W10ge1xuICAgIHJldHVybiB1bmlxQnkodGhpcy5pdGVtcy5tYXAoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5Q2F0ZWdvcnkgPT4gcHJvcGVydHkuY2F0ZWdvcnkpLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxuICAgKi9cbiAgZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTogUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICByZXR1cm4gbWF4Lmdyb3d0aFBlcmNlbnQgPCBjdXJyZW50Lmdyb3d0aFBlcmNlbnQgPyBjdXJyZW50IDogbWF4O1xuICAgIH0sIHRoaXMuZmlyc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSB3aXRoIHRoZSBsb3dlc3QgdGF4IHBvc2l0aW9uXG4gICAqL1xuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogUHJvcGVydHksIGN1cnJlbnQ6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgcmV0dXJuIG1pbi5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgbWluLmlkKSwgZGVwcmVjaWF0aW9ucy5maWx0ZXJCeSgncHJvcGVydHkuaWQnLCBtaW4uaWQpKVxuICAgICAgICA+IGN1cnJlbnQuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpKVxuICAgICAgICA/IGN1cnJlbnRcbiAgICAgICAgOiBtaW47XG4gICAgfSwgdGhpcy5maXJzdCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,9 @@
1
1
  import { TankTypeEnum } from '../../db/Enums/tank-type.enum';
2
- import { ExportCell } from '../../models/export/export-cell';
2
+ import { ExportableCollection } from '../exportable.collection';
3
3
  import { plainToClass } from 'class-transformer';
4
+ import { ExportCell } from '../../models/export/export-cell';
4
5
  import { ExportCellTypeEnum } from '../../models/export/export-cell-type.enum';
5
- import { ExportableCollection } from '../exportable.collection';
6
+ import { Collection } from '../collection';
6
7
  /**
7
8
  * Collection of transactions
8
9
  */
@@ -53,11 +54,14 @@ export class TransactionCollection extends ExportableCollection {
53
54
  return new TransactionCollection(this.items.filter((transaction) => transaction.date.getMonth() === monthIndex));
54
55
  }
55
56
  /**
56
- * get list of transactions filtered by chart accounts id
57
- * @param chartAccountsId chart accounts id for filtering
57
+ * Get collection of transactions metadata
58
58
  */
59
- getByChartAccountsId(chartAccountsId) {
60
- return this.items.filter((transaction) => transaction.chartAccounts.id === chartAccountsId);
59
+ getTransactionsMetadata() {
60
+ const metadataArray = [];
61
+ this.items.forEach((transaction) => {
62
+ metadataArray.push(...transaction.metadata);
63
+ });
64
+ return new Collection(metadataArray);
61
65
  }
62
66
  getIncomeTransactions() {
63
67
  return new TransactionCollection(this.items.filter((transaction) => transaction.isIncome()));
@@ -164,4 +168,4 @@ export class TransactionCollection extends ExportableCollection {
164
168
  });
165
169
  }
166
170
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFpQztJQUMxRTs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxXQUF3QixFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxXQUE0QztRQUMvRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJ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SSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBQyxDQUFDO2FBQ3pGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBUYW5rVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90YW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFeHBvcnRDZWxsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbCc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBFeHBvcnRDZWxsVHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFeHBvcnRhYmxlQ29sbGVjdGlvbiB9IGZyb20gJy4uL2V4cG9ydGFibGUuY29sbGVjdGlvbic7XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvZiB0cmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiBleHRlbmRzIEV4cG9ydGFibGVDb2xsZWN0aW9uPFRyYW5zYWN0aW9uPiB7XG4gIC8qKlxuICAgKiBHZXQgdG90YWwgYW1vdW50IG9mIGFsbCB0cmFuc2FjdGlvbnMgaW4gdGhlIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBhbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXROZXRBbW91bnQoKSwgMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaWZmZXJlbmNlIGJldHdlZW4gYWxsb2NhdGVkIGFtb3VudCBhbmQgdG90YWwgYW1vdW50XG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuICsodGhpcy5hbW91bnQgLSBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5hbW91bnQpLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNhc2ggcG9zaXRpb25cbiAgICogQ2FzaCBQb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2VzXG4gICAqIENhc2ggcG9zaXRpb24gaXMgZXF1YWwgdG8gVG90YWwgQW1vdW50IGJlY2F1c2UgaW5jb21lIGlzIHBvc2l0aXZlIGFuZCBleHBlbnNlIGlzIG5lZ2F0aXZlLFxuICAgKi9cbiAgZ2V0IGNhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzdW1tYXJ5IG9mIGNsYWltIGFtb3VudHNcbiAgICovXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uY2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uYW1vdW50LCAwKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gY2F0ZWdvcmllcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5KSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgYnkgbW9udGhcbiAgICogQHBhcmFtIG1vbnRoSW5kZXggYnkgd2hpY2ggZGVzaXJlZCBtb250aCBzaG91bGQgYmUgdGFrZW5cbiAgICovXG4gIGdldEJ5TW9udGgobW9udGhJbmRleDogbnVtYmVyKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PlxuICAgICAgdHJhbnNhY3Rpb24uZGF0ZS5nZXRNb250aCgpID09PSBtb250aEluZGV4XG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgdHJhbnNhY3Rpb25zIGZpbHRlcmVkIGJ5IGNoYXJ0IGFjY291bnRzIGlkXG4gICAqIEBwYXJhbSBjaGFydEFjY291bnRzSWQgY2hhcnQgYWNjb3VudHMgaWQgZm9yIGZpbHRlcmluZ1xuICAgKi9cbiAgZ2V0QnlDaGFydEFjY291bnRzSWQoY2hhcnRBY2NvdW50c0lkOiBudW1iZXIpOiBUcmFuc2FjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5pZCA9PT0gY2hhcnRBY2NvdW50c0lkKTtcbiAgfVxuXG4gIGdldEluY29tZVRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1FeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzSW50ZXJlc3QoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW50ZXJlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmVzdFRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBhbmQgcHJvcGVydGllcyBmaWx0ZXJlZCBieSBwcm9wZXJ0aWVzIGlkc1xuICAgKiBAcGFyYW0gaWRzIElkcyBvZiBwcm9wZXJ0aWVzIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBpbmNvbWUgc291cmNlIGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5SW5jb21lU291cmNlSWQoaWQ6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2U/LmlkID09PSBpZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBjaGFydCBhY2NvdW50cyBjYXRlZ29yeVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgQ2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgdmFsdWVcbiAgICovXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3J5KGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0UHJvcGVydHlUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldERlYml0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0RlYml0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWRpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9ucy5oYXNUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gVmVoaWNsZSBjYXRlZ29yeVxuICAgKi9cbiAgZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1ZlaGljbGVUcmFuc2FjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgdHJhbnNhY3Rpb24gY29sbGVjdGlvbiBmaWx0ZXJlZCBieSB0YW5rIHR5cGVcbiAgICovXG4gIGdldEJ5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gVHJhbnNhY3Rpb24gbWF5IGJlIG5vdCByZWxhdGVkIHRvIGFueSB0YW5rIHR5cGUgKHBlcnNvbmFsKVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEV4cG9ydEhlYWRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnRGF0ZScsICdEZXNjcmlwdGlvbicsICdEZWJpdCcsICdDcmVkaXQnXTtcbiAgfVxuXG4gIGdldEV4cG9ydEZvb3RlcigpOiBFeHBvcnRDZWxsW10ge1xuICAgIHJldHVybiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiAnVG90YWwnLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklOR30pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHt2YWx1ZTogdGhpcy5zdW1CeSgnZGViaXQnKSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiB0aGlzLnN1bUJ5KCdjcmVkaXQnKSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZfSlcbiAgICBdO1xuICB9XG5cbiAgZ2V0RXhwb3J0Qm9keSgpOiBFeHBvcnRDZWxsW11bXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRhdGUsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5EQVRFfSksXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HfSksXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRlYml0LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1l9KSxcbiAgICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHt2YWx1ZTogdHJhbnNhY3Rpb24uY3JlZGl0LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1l9KVxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxufVxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsb0JBQWlDO0lBQzFFOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLFdBQXdCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLFdBQTRDO1FBQy9ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksWUFBWTtR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RSxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUMsQ0FBQztnQkFDdkYsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUMsQ0FBQzthQUN6RixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1tZXRhZGF0YS1saXN0LmVudW0nO1xuaW1wb3J0IHsgRXhwb3J0YWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9leHBvcnRhYmxlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbCB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwnO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLW1ldGFkYXRhJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tbWV0YWRhdGEnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBFeHBvcnRhYmxlQ29sbGVjdGlvbjxUcmFuc2FjdGlvbj4ge1xuICAvKipcbiAgICogR2V0IHRvdGFsIGFtb3VudCBvZiBhbGwgdHJhbnNhY3Rpb25zIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgYW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uZ2V0TmV0QW1vdW50KCksIDApLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogRGlmZmVyZW5jZSBiZXR3ZWVuIGFsbG9jYXRlZCBhbW91bnQgYW5kIHRvdGFsIGFtb3VudFxuICAgKi9cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiArKHRoaXMuYW1vdW50IC0gYWxsb2NhdGlvbnMuZ2V0QnlUcmFuc2FjdGlvbnNJZHModGhpcy5nZXRJZHMoKSkuYW1vdW50KS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjYXNoIHBvc2l0aW9uXG4gICAqIENhc2ggUG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlc1xuICAgKiBDYXNoIHBvc2l0aW9uIGlzIGVxdWFsIHRvIFRvdGFsIEFtb3VudCBiZWNhdXNlIGluY29tZSBpcyBwb3NpdGl2ZSBhbmQgZXhwZW5zZSBpcyBuZWdhdGl2ZSxcbiAgICovXG4gIGdldCBjYXNoUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbGFpbUFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgZGF0ZSBvZiB0aGUgbGFzdCB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0TGFzdFRyYW5zYWN0aW9uRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5tYXguYXBwbHkoTWF0aCwgdGhpcy5pdGVtcy5tYXAoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uZGF0ZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3VtbWFyeSBvZiBjbGFpbSBhbW91bnRzXG4gICAqL1xuICBnZXQgY2xhaW1BbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHN1bSArIHRyYW5zYWN0aW9uLmNsYWltQW1vdW50LCAwKTtcbiAgfVxuXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiArdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHN1bSArIHRyYW5zYWN0aW9uLmFtb3VudCwgMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoY2F0ZWdvcmllczogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IGNhdGVnb3JpZXMuaW5jbHVkZXModHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5jYXRlZ29yeSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIGJ5IG1vbnRoXG4gICAqIEBwYXJhbSBtb250aEluZGV4IGJ5IHdoaWNoIGRlc2lyZWQgbW9udGggc2hvdWxkIGJlIHRha2VuXG4gICAqL1xuICBnZXRCeU1vbnRoKG1vbnRoSW5kZXg6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT5cbiAgICAgIHRyYW5zYWN0aW9uLmRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGhJbmRleFxuICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBtZXRhZGF0YVxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25zTWV0YWRhdGEoKTogQ29sbGVjdGlvbjxUcmFuc2FjdGlvbk1ldGFkYXRhPiB7XG4gICAgY29uc3QgbWV0YWRhdGFBcnJheTogVHJhbnNhY3Rpb25NZXRhZGF0YVtdID0gW107XG5cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgbWV0YWRhdGFBcnJheS5wdXNoKC4uLnRyYW5zYWN0aW9uLm1ldGFkYXRhKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbjxUcmFuc2FjdGlvbk1ldGFkYXRhPihtZXRhZGF0YUFycmF5KTtcbiAgfVxuXG4gIGdldEluY29tZVRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbmNvbWUoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW5jb21lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1FeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzSW50ZXJlc3QoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNsYWltSW50ZXJlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmVzdFRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBhbmQgcHJvcGVydGllcyBmaWx0ZXJlZCBieSBwcm9wZXJ0aWVzIGlkc1xuICAgKiBAcGFyYW0gaWRzIElkcyBvZiBwcm9wZXJ0aWVzIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5UHJvcGVydGllc0lkcyhpZHM6IG51bWJlcltdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGlkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5wcm9wZXJ0eT8uaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBpbmNvbWUgc291cmNlIGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5SW5jb21lU291cmNlSWQoaWQ6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2U/LmlkID09PSBpZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBjaGFydCBhY2NvdW50cyBjYXRlZ29yeVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgQ2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgdmFsdWVcbiAgICovXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3J5KGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0UHJvcGVydHlUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldERlYml0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0RlYml0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWRpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9ucy5oYXNUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIHJlbGF0ZWQgdG8gVmVoaWNsZSBjYXRlZ29yeVxuICAgKi9cbiAgZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1ZlaGljbGVUcmFuc2FjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgdHJhbnNhY3Rpb24gY29sbGVjdGlvbiBmaWx0ZXJlZCBieSB0YW5rIHR5cGVcbiAgICovXG4gIGdldEJ5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gVHJhbnNhY3Rpb24gbWF5IGJlIG5vdCByZWxhdGVkIHRvIGFueSB0YW5rIHR5cGUgKHBlcnNvbmFsKVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEV4cG9ydEhlYWRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnRGF0ZScsICdEZXNjcmlwdGlvbicsICdEZWJpdCcsICdDcmVkaXQnXTtcbiAgfVxuXG4gIGdldEV4cG9ydEZvb3RlcigpOiBFeHBvcnRDZWxsW10ge1xuICAgIHJldHVybiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiAnVG90YWwnLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklOR30pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHt2YWx1ZTogdGhpcy5zdW1CeSgnZGViaXQnKSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwge3ZhbHVlOiB0aGlzLnN1bUJ5KCdjcmVkaXQnKSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZfSlcbiAgICBdO1xuICB9XG5cbiAgZ2V0RXhwb3J0Qm9keSgpOiBFeHBvcnRDZWxsW11bXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRhdGUsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5EQVRFfSksXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uU1RSSU5HfSksXG4gICAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7dmFsdWU6IHRyYW5zYWN0aW9uLmRlYml0LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1l9KSxcbiAgICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHt2YWx1ZTogdHJhbnNhY3Rpb24uY3JlZGl0LCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1l9KVxuICAgICAgXTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -42,7 +42,7 @@ export class VehicleLogbookCollection extends Collection {
42
42
  }
43
43
  const dateRange = this.getPeriodRange(logbook.date);
44
44
  // get logbooks included in current logbook period
45
- const logbooksInRange = this.getByDateRange(logbook.date, new Date(logbook.date.getTime() + LOGBOOK_PERIOD_DURATION));
45
+ const logbooksInRange = this.filterByRange('date', logbook.date, new Date(logbook.date.getTime() + LOGBOOK_PERIOD_DURATION));
46
46
  const workUsage = logbooksInRange.getWorkUsage();
47
47
  // compare with previous best period and overwrite if needs
48
48
  if (!bestPeriod || workUsage > bestPeriod.workUsage) {
@@ -85,4 +85,4 @@ export class VehicleLogbookCollection extends Collection {
85
85
  return { from, to };
86
86
  }
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQzs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RTs7T0FFRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksVUFBeUIsQ0FBQztRQUU5QixNQUFNLGdCQUFnQixHQUFxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRyxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFtQixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCw2RUFBNkU7WUFDN0UsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMxQyxNQUFNO2FBQ1A7WUFFRCxNQUFNLFNBQVMsR0FBMkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUUsa0RBQWtEO1lBQ2xELE1BQU0sZUFBZSxHQUE2QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7WUFFaEosTUFBTSxTQUFTLEdBQVcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXpELDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxVQUFVLEdBQUcsWUFBWSxDQUFDLGFBQWEsRUFBRTtvQkFDdkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO29CQUNwQixFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ2hCLFVBQVUsRUFBRSxlQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUU7b0JBQzNELFNBQVMsRUFBRSxTQUFTO2lCQUNyQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsT0FBdUIsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsTUFBTSxlQUFlLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFXLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsZUFBZSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxJQUFVO1FBQy9CLDhEQUE4RDtRQUM5RCxJQUFJLEVBQUUsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztRQUVsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBRTFDLDBHQUEwRztRQUMxRyxJQUFJLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFO1lBQzlCLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQzNCLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztTQUN6RDtRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVoaWNsZUxvZ2Jvb2sgfSBmcm9tICcuLi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWxvZ2Jvb2snO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL21vZGVscy9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBMb2dib29rUGVyaW9kIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2Jvb2svbG9nYm9vay1wZXJpb2QnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5cbi8qKlxuICogMTIgd2Vla3MgaW4gbWlsbGlzZWNvbmRzXG4gKiBcIlRvIHdvcmsgb3V0IHlvdXIgYnVzaW5lc3MtdXNlIHBlcmNlbnRhZ2UsIHlvdSBuZWVkIHRvIGtlZXAgYSBsb2dib29rIGFuZCB0aGUgb2RvbWV0ZXIgcmVhZGluZ3MgZm9yIHRoZSBsb2dib29rIHBlcmlvZC5cbiAqIFRoZSBsb2dib29rIHBlcmlvZCBpcyBhIG1pbmltdW0gY29udGludW91cyBwZXJpb2Qgb2YgMTIgd2Vla3MuXCIgwqkgTmljb2xlIEtlbGx5XG4gKi9cbmNvbnN0IExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OID0gMTIgKiA3ICogMjQgKiAzNjAwICogMTAwMDtcblxuZXhwb3J0IGNsYXNzIFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248VmVoaWNsZUxvZ2Jvb2s+IHtcbiAgLyoqXG4gICAqIENoZWNrIGlmIHdlIGNhbiBjYWxjdWxhdGUgdGhlIGJlc3QgcGVyaW9kXG4gICAqL1xuICBpc0Jlc3RQZXJpb2RFeGlzdCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OIDwgKHRoaXMubGFzdC5kYXRlLmdldFRpbWUoKSAtIHRoaXMuZmlyc3QuZGF0ZS5nZXRUaW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIG5vbi1wZXJzb25hbCBsb2dib29rcyAod29yay1yZWxhdGVkLCBzb2xlLXJlbGF0ZWQpLlxuICAgKi9cbiAgZ2V0QnVzaW5lc3NMb2dib29rcygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigobG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IGxvZ2Jvb2suaXNCdXNpbmVzcygpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTG9nYm9vayBQZXJpb2QgaXMgdGhlIGJlc3Qgd2hlbiBpdCBoYXMgdGhlIGJpZ2dlc3QgYW1vdW50IG9mIHdvcmsga2lsb21ldGVyc1xuICAgKiBCZXN0IHBlcmlvZCBkdXJhdGlvbiBpcyBkZWZpbmVkIGFzIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OICgxMiB3ZWVrcykgYnkgdGhlIEFUT1xuICAgKi9cbiAgZ2V0QmVzdFBlcmlvZCgpOiBMb2dib29rUGVyaW9kIHtcbiAgICBpZiAoIXRoaXMuaXNCZXN0UGVyaW9kRXhpc3QoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGJlc3RQZXJpb2Q6IExvZ2Jvb2tQZXJpb2Q7XG5cbiAgICBjb25zdCBidXNpbmVzc0xvZ2Jvb2tzOiBWZWhpY2xlTG9nYm9va1tdID0gdGhpcy5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkudG9BcnJheSgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidXNpbmVzc0xvZ2Jvb2tzLmxlbmd0aDsgaSArKykge1xuICAgICAgY29uc3QgbG9nYm9vazogVmVoaWNsZUxvZ2Jvb2sgPSBidXNpbmVzc0xvZ2Jvb2tzW2ldO1xuXG4gICAgICAvLyBubyBzZW5zZSB0byBjaGVjayBuZXh0IGxvZ2Jvb2tzIGJlY2F1c2Ugd2UgYWxyZWFkeSBnZXQgdGhlIGVuZCBvZiB0aGUgeWVhclxuICAgICAgaWYgKGJlc3RQZXJpb2QgJiYgYmVzdFBlcmlvZC5pc0VuZE9mWWVhcigpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRlUmFuZ2U6IHtmcm9tOiBEYXRlLCB0bzogRGF0ZX0gPSB0aGlzLmdldFBlcmlvZFJhbmdlKGxvZ2Jvb2suZGF0ZSk7XG5cbiAgICAgIC8vIGdldCBsb2dib29rcyBpbmNsdWRlZCBpbiBjdXJyZW50IGxvZ2Jvb2sgcGVyaW9kXG4gICAgICBjb25zdCBsb2dib29rc0luUmFuZ2U6IFZlaGljbGVMb2dib29rQ29sbGVjdGlvbiA9IHRoaXMuZ2V0QnlEYXRlUmFuZ2UobG9nYm9vay5kYXRlLCBuZXcgRGF0ZShsb2dib29rLmRhdGUuZ2V0VGltZSgpICsgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04pKTtcblxuICAgICAgY29uc3Qgd29ya1VzYWdlOiBudW1iZXIgPSBsb2dib29rc0luUmFuZ2UuZ2V0V29ya1VzYWdlKCk7XG5cbiAgICAgIC8vIGNvbXBhcmUgd2l0aCBwcmV2aW91cyBiZXN0IHBlcmlvZCBhbmQgb3ZlcndyaXRlIGlmIG5lZWRzXG4gICAgICBpZiAoIWJlc3RQZXJpb2QgfHwgd29ya1VzYWdlID4gYmVzdFBlcmlvZC53b3JrVXNhZ2UpIHtcbiAgICAgICAgYmVzdFBlcmlvZCA9IHBsYWluVG9DbGFzcyhMb2dib29rUGVyaW9kLCB7XG4gICAgICAgICAgZnJvbTogZGF0ZVJhbmdlLmZyb20sXG4gICAgICAgICAgdG86IGRhdGVSYW5nZS50byxcbiAgICAgICAgICBraWxvbWV0ZXJzOiBsb2dib29rc0luUmFuZ2UuZ2V0QnVzaW5lc3NMb2dib29rcygpLmdldEtsbXMoKSxcbiAgICAgICAgICB3b3JrVXNhZ2U6IHdvcmtVc2FnZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYmVzdFBlcmlvZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdG90YWwga2lsb21ldGVycyB0cmF2ZWxlZFxuICAgKi9cbiAgZ2V0S2xtcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiBzdW0gKyBsb2dib29rLmdldEtsbXMoKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHdvcmsgdXNhZ2UgKHBlcmNlbnQgb2YgYnVzaW5lc3MtcmVsYXRlZCBraWxvbWV0ZXJzIGZyb20gdG90YWwga2lsb21ldGVycylcbiAgICovXG4gIGdldFdvcmtVc2FnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsS2lsb21ldGVyczogbnVtYmVyID0gdGhpcy5nZXRLbG1zKCk7XG4gICAgY29uc3Qgd29ya0tpbG9tZXRlcnM6IG51bWJlciA9IHRoaXMuZ2V0QnVzaW5lc3NMb2dib29rcygpLmdldEtsbXMoKTtcblxuICAgIHJldHVybiBNYXRoLnJvdW5kKHdvcmtLaWxvbWV0ZXJzIC8gdG90YWxLaWxvbWV0ZXJzICogMTAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gZGF0ZSByYW5nZSBmcm9tIHBhc3NlZCBzdGFydCBkYXRlXG4gICAqL1xuICBwcml2YXRlIGdldFBlcmlvZFJhbmdlKGZyb206IERhdGUpOiB7ZnJvbTogRGF0ZSwgdG86IERhdGV9IHtcbiAgICAvLyBzZXQgZW5kIGRhdGUgYWZ0ZXIgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gYWZ0ZXIgc3RhcnQgZGF0ZVxuICAgIGxldCB0bzogRGF0ZSA9IG5ldyBEYXRlKGZyb20uZ2V0VGltZSgpICsgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04pO1xuXG4gICAgY29uc3QgZmluYW5jaWFsWWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCk7XG5cbiAgICAvLyBzZXQgYXMgcGVyaW9kIGxhc3QgTE9HQk9PS19QRVJJT0RfRFVSQVRJT04gb2YgY3VycmVudCB5ZWFyIGlmIHBlcmlvZCBlbmQgZGF0ZSBhZnRlciBlbmQgb2YgY3VycmVudCB5ZWFyXG4gICAgaWYgKHRvID4gZmluYW5jaWFsWWVhci5lbmREYXRlKSB7XG4gICAgICB0byA9IGZpbmFuY2lhbFllYXIuZW5kRGF0ZTtcbiAgICAgIGZyb20gPSBuZXcgRGF0ZSh0by5nZXRUaW1lKCkgLSBMT0dCT09LX1BFUklPRF9EVVJBVElPTik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtmcm9tLCB0b307XG4gIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvdmVoaWNsZS1sb2dib29rLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQzs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRTFELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RTs7T0FFRztJQUNILGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksVUFBeUIsQ0FBQztRQUU5QixNQUFNLGdCQUFnQixHQUFxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRyxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFtQixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCw2RUFBNkU7WUFDN0UsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUMxQyxNQUFNO2FBQ1A7WUFFRCxNQUFNLFNBQVMsR0FBMkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUUsa0RBQWtEO1lBQ2xELE1BQU0sZUFBZSxHQUE2QixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBRXZKLE1BQU0sU0FBUyxHQUFXLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV6RCwyREFBMkQ7WUFDM0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsRUFBRTtnQkFDbkQsVUFBVSxHQUFHLFlBQVksQ0FBQyxhQUFhLEVBQUU7b0JBQ3ZDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtvQkFDcEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNoQixVQUFVLEVBQUUsZUFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFO29CQUMzRCxTQUFTLEVBQUUsU0FBUztpQkFDckIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLE9BQXVCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE1BQU0sZUFBZSxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBVyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLGVBQWUsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjLENBQUMsSUFBVTtRQUMvQiw4REFBOEQ7UUFDOUQsSUFBSSxFQUFFLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLHVCQUF1QixDQUFDLENBQUM7UUFFbEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUUxQywwR0FBMEc7UUFDMUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUM5QixFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMzQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLHVCQUF1QixDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlaGljbGVMb2dib29rIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2Jvb2svdmVoaWNsZS1sb2dib29rJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgTG9nYm9va1BlcmlvZCB9IGZyb20gJy4uL21vZGVscy9sb2dib29rL2xvZ2Jvb2stcGVyaW9kJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG4vKipcbiAqIDEyIHdlZWtzIGluIG1pbGxpc2Vjb25kc1xuICogXCJUbyB3b3JrIG91dCB5b3VyIGJ1c2luZXNzLXVzZSBwZXJjZW50YWdlLCB5b3UgbmVlZCB0byBrZWVwIGEgbG9nYm9vayBhbmQgdGhlIG9kb21ldGVyIHJlYWRpbmdzIGZvciB0aGUgbG9nYm9vayBwZXJpb2QuXG4gKiBUaGUgbG9nYm9vayBwZXJpb2QgaXMgYSBtaW5pbXVtIGNvbnRpbnVvdXMgcGVyaW9kIG9mIDEyIHdlZWtzLlwiIMKpIE5pY29sZSBLZWxseVxuICovXG5jb25zdCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiA9IDEyICogNyAqIDI0ICogMzYwMCAqIDEwMDA7XG5cbmV4cG9ydCBjbGFzcyBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gZXh0ZW5kcyBDb2xsZWN0aW9uPFZlaGljbGVMb2dib29rPiB7XG4gIC8qKlxuICAgKiBDaGVjayBpZiB3ZSBjYW4gY2FsY3VsYXRlIHRoZSBiZXN0IHBlcmlvZFxuICAgKi9cbiAgaXNCZXN0UGVyaW9kRXhpc3QoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBMT0dCT09LX1BFUklPRF9EVVJBVElPTiA8ICh0aGlzLmxhc3QuZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLmZpcnN0LmRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiBub24tcGVyc29uYWwgbG9nYm9va3MgKHdvcmstcmVsYXRlZCwgc29sZS1yZWxhdGVkKS5cbiAgICovXG4gIGdldEJ1c2luZXNzTG9nYm9va3MoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rKSA9PiBsb2dib29rLmlzQnVzaW5lc3MoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ2Jvb2sgUGVyaW9kIGlzIHRoZSBiZXN0IHdoZW4gaXQgaGFzIHRoZSBiaWdnZXN0IGFtb3VudCBvZiB3b3JrIGtpbG9tZXRlcnNcbiAgICogQmVzdCBwZXJpb2QgZHVyYXRpb24gaXMgZGVmaW5lZCBhcyBMT0dCT09LX1BFUklPRF9EVVJBVElPTiAoMTIgd2Vla3MpIGJ5IHRoZSBBVE9cbiAgICovXG4gIGdldEJlc3RQZXJpb2QoKTogTG9nYm9va1BlcmlvZCB7XG4gICAgaWYgKCF0aGlzLmlzQmVzdFBlcmlvZEV4aXN0KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBiZXN0UGVyaW9kOiBMb2dib29rUGVyaW9kO1xuXG4gICAgY29uc3QgYnVzaW5lc3NMb2dib29rczogVmVoaWNsZUxvZ2Jvb2tbXSA9IHRoaXMuZ2V0QnVzaW5lc3NMb2dib29rcygpLnRvQXJyYXkoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVzaW5lc3NMb2dib29rcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgIGNvbnN0IGxvZ2Jvb2s6IFZlaGljbGVMb2dib29rID0gYnVzaW5lc3NMb2dib29rc1tpXTtcblxuICAgICAgLy8gbm8gc2Vuc2UgdG8gY2hlY2sgbmV4dCBsb2dib29rcyBiZWNhdXNlIHdlIGFscmVhZHkgZ2V0IHRoZSBlbmQgb2YgdGhlIHllYXJcbiAgICAgIGlmIChiZXN0UGVyaW9kICYmIGJlc3RQZXJpb2QuaXNFbmRPZlllYXIoKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0ZVJhbmdlOiB7ZnJvbTogRGF0ZSwgdG86IERhdGV9ID0gdGhpcy5nZXRQZXJpb2RSYW5nZShsb2dib29rLmRhdGUpO1xuXG4gICAgICAvLyBnZXQgbG9nYm9va3MgaW5jbHVkZWQgaW4gY3VycmVudCBsb2dib29rIHBlcmlvZFxuICAgICAgY29uc3QgbG9nYm9va3NJblJhbmdlOiBWZWhpY2xlTG9nYm9va0NvbGxlY3Rpb24gPSB0aGlzLmZpbHRlckJ5UmFuZ2UoJ2RhdGUnLCBsb2dib29rLmRhdGUsIG5ldyBEYXRlKGxvZ2Jvb2suZGF0ZS5nZXRUaW1lKCkgKyBMT0dCT09LX1BFUklPRF9EVVJBVElPTikpO1xuXG4gICAgICBjb25zdCB3b3JrVXNhZ2U6IG51bWJlciA9IGxvZ2Jvb2tzSW5SYW5nZS5nZXRXb3JrVXNhZ2UoKTtcblxuICAgICAgLy8gY29tcGFyZSB3aXRoIHByZXZpb3VzIGJlc3QgcGVyaW9kIGFuZCBvdmVyd3JpdGUgaWYgbmVlZHNcbiAgICAgIGlmICghYmVzdFBlcmlvZCB8fCB3b3JrVXNhZ2UgPiBiZXN0UGVyaW9kLndvcmtVc2FnZSkge1xuICAgICAgICBiZXN0UGVyaW9kID0gcGxhaW5Ub0NsYXNzKExvZ2Jvb2tQZXJpb2QsIHtcbiAgICAgICAgICBmcm9tOiBkYXRlUmFuZ2UuZnJvbSxcbiAgICAgICAgICB0bzogZGF0ZVJhbmdlLnRvLFxuICAgICAgICAgIGtpbG9tZXRlcnM6IGxvZ2Jvb2tzSW5SYW5nZS5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkuZ2V0S2xtcygpLFxuICAgICAgICAgIHdvcmtVc2FnZTogd29ya1VzYWdlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBiZXN0UGVyaW9kO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0b3RhbCBraWxvbWV0ZXJzIHRyYXZlbGVkXG4gICAqL1xuICBnZXRLbG1zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgbG9nYm9vazogVmVoaWNsZUxvZ2Jvb2spID0+IHN1bSArIGxvZ2Jvb2suZ2V0S2xtcygpLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgd29yayB1c2FnZSAocGVyY2VudCBvZiBidXNpbmVzcy1yZWxhdGVkIGtpbG9tZXRlcnMgZnJvbSB0b3RhbCBraWxvbWV0ZXJzKVxuICAgKi9cbiAgZ2V0V29ya1VzYWdlKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWxLaWxvbWV0ZXJzOiBudW1iZXIgPSB0aGlzLmdldEtsbXMoKTtcbiAgICBjb25zdCB3b3JrS2lsb21ldGVyczogbnVtYmVyID0gdGhpcy5nZXRCdXNpbmVzc0xvZ2Jvb2tzKCkuZ2V0S2xtcygpO1xuXG4gICAgcmV0dXJuIE1hdGgucm91bmQod29ya0tpbG9tZXRlcnMgLyB0b3RhbEtpbG9tZXRlcnMgKiAxMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBkYXRlIHJhbmdlIGZyb20gcGFzc2VkIHN0YXJ0IGRhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0UGVyaW9kUmFuZ2UoZnJvbTogRGF0ZSk6IHtmcm9tOiBEYXRlLCB0bzogRGF0ZX0ge1xuICAgIC8vIHNldCBlbmQgZGF0ZSBhZnRlciBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBhZnRlciBzdGFydCBkYXRlXG4gICAgbGV0IHRvOiBEYXRlID0gbmV3IERhdGUoZnJvbS5nZXRUaW1lKCkgKyBMT0dCT09LX1BFUklPRF9EVVJBVElPTik7XG5cbiAgICBjb25zdCBmaW5hbmNpYWxZZWFyID0gbmV3IEZpbmFuY2lhbFllYXIoKTtcblxuICAgIC8vIHNldCBhcyBwZXJpb2QgbGFzdCBMT0dCT09LX1BFUklPRF9EVVJBVElPTiBvZiBjdXJyZW50IHllYXIgaWYgcGVyaW9kIGVuZCBkYXRlIGFmdGVyIGVuZCBvZiBjdXJyZW50IHllYXJcbiAgICBpZiAodG8gPiBmaW5hbmNpYWxZZWFyLmVuZERhdGUpIHtcbiAgICAgIHRvID0gZmluYW5jaWFsWWVhci5lbmREYXRlO1xuICAgICAgZnJvbSA9IG5ldyBEYXRlKHRvLmdldFRpbWUoKSAtIExPR0JPT0tfUEVSSU9EX0RVUkFUSU9OKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge2Zyb20sIHRvfTtcbiAgfVxufVxuIl19