taxtank-core 0.0.2 → 0.1.2
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.
- package/bundles/taxtank-core.umd.js +11955 -31
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/abstract.collection.js +67 -0
- package/esm2015/lib/collections/bank-account.collection.js +135 -0
- package/esm2015/lib/collections/bank-transaction.collection.js +119 -0
- package/esm2015/lib/collections/client-movement.collection.js +31 -0
- package/esm2015/lib/collections/client-portfolio-report.collection.js +40 -0
- package/esm2015/lib/collections/client.collection.js +4 -0
- package/esm2015/lib/collections/collection-dictionary.js +83 -0
- package/esm2015/lib/collections/depreciation-forecast.collection.js +19 -0
- package/esm2015/lib/collections/depreciation.collection.js +67 -0
- package/esm2015/lib/collections/employee.collection.js +12 -0
- package/esm2015/lib/collections/income-source.collection.js +38 -0
- package/esm2015/lib/collections/loan.collection.js +18 -0
- package/esm2015/lib/collections/logbook.collection.js +97 -0
- package/esm2015/lib/collections/message-document.collection.js +13 -0
- package/esm2015/lib/collections/message.collection.js +21 -0
- package/esm2015/lib/collections/property.collection.js +65 -0
- package/esm2015/lib/collections/service-price.collection.js +10 -0
- package/esm2015/lib/collections/service-subscription.collection.js +17 -0
- package/esm2015/lib/collections/tax-return-category-item.collection.js +141 -0
- package/esm2015/lib/collections/tax-review.collection.js +55 -0
- package/esm2015/lib/collections/transaction-allocation.collection.js +40 -0
- package/esm2015/lib/collections/transaction.collection.js +120 -0
- package/esm2015/lib/collections/user-event-setting.collection.js +62 -0
- package/esm2015/lib/db/Enums/address-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/bank-account-status.enum.js +6 -0
- package/esm2015/lib/db/Enums/bank-account-type.enum.js +12 -0
- package/esm2015/lib/db/Enums/bank-connection-status.enum.js +7 -0
- package/esm2015/lib/db/Enums/bank-transaction-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/chart-accounts-category.enum.js +15 -0
- package/esm2015/lib/db/Enums/chart-accounts-etp.enum.js +9 -0
- package/esm2015/lib/db/Enums/chart-accounts-heading-tax-deductible.enum.js +8 -0
- package/esm2015/lib/db/Enums/chart-accounts-heading-taxable.enum.js +8 -0
- package/esm2015/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.js +6 -0
- package/esm2015/lib/db/Enums/chart-accounts-list.enum.js +21 -0
- package/esm2015/lib/db/Enums/chart-accounts-metadata-list.enum.js +16 -0
- package/esm2015/lib/db/Enums/chart-accounts-metadata-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/chart-accounts-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/chat-status.enum.js +6 -0
- package/esm2015/lib/db/Enums/client-details-medicare-exemption.enum.js +7 -0
- package/esm2015/lib/db/Enums/client-details-work-depreciation-calculation.enum.js +6 -0
- package/esm2015/lib/db/Enums/client-details-working-holiday-maker.enum.js +7 -0
- package/esm2015/lib/db/Enums/client-invite-status.enum.js +6 -0
- package/esm2015/lib/db/Enums/client-invite-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/depreciation-calculation-percent.enum.js +9 -0
- package/esm2015/lib/db/Enums/depreciation-calculation.enum.js +9 -0
- package/esm2015/lib/db/Enums/depreciation-type.enum.js +8 -0
- package/esm2015/lib/db/Enums/depreciation-write-off-amount.enum.js +6 -0
- package/esm2015/lib/db/Enums/firm-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/income-source-type-list-other.enum.js +8 -0
- package/esm2015/lib/db/Enums/income-source-type-list-salary.enum.js +5 -0
- package/esm2015/lib/db/Enums/income-source-type-list-work.enum.js +10 -0
- package/esm2015/lib/db/Enums/income-source-type.enum.js +7 -0
- package/esm2015/lib/db/Enums/invite-status.enum.js +7 -0
- package/esm2015/lib/db/Enums/loan-bank-type.enum.js +12 -0
- package/esm2015/lib/db/Enums/loan-frequency.enum.js +8 -0
- package/esm2015/lib/db/Enums/loan-interest-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/loan-payout-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/loan-repayment-frequency.enum.js +7 -0
- package/esm2015/lib/db/Enums/loan-repayment-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/loan-type.enum.js +14 -0
- package/esm2015/lib/db/Enums/loan-vehicle-type.enum.js +7 -0
- package/esm2015/lib/db/Enums/phone-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/property-depreciation-calculation.enum.js +6 -0
- package/esm2015/lib/db/Enums/property-owner-access.enum.js +6 -0
- package/esm2015/lib/db/Enums/property-owner-status.enum.js +7 -0
- package/esm2015/lib/db/Enums/registration-invite-status.enum.js +6 -0
- package/esm2015/lib/db/Enums/salary-forecast-frequency.enum.js +8 -0
- package/esm2015/lib/db/Enums/service-notification-status.enum.js +7 -0
- package/esm2015/lib/db/Enums/service-notification-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/service-payment-status.enum.js +6 -0
- package/esm2015/lib/db/Enums/service-price-recurring-interval.enum.js +8 -0
- package/esm2015/lib/db/Enums/service-price-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/service-subscription-status.enum.js +10 -0
- package/esm2015/lib/db/Enums/spare-document-spare-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/tank-type.enum.js +7 -0
- package/esm2015/lib/db/Enums/tax-calculation-medicare-exemption.enum.js +6 -0
- package/esm2015/lib/db/Enums/tax-calculation-type.enum.js +14 -0
- package/esm2015/lib/db/Enums/tax-return-category-list.enum.js +28 -0
- package/esm2015/lib/db/Enums/tax-return-category-section.enum.js +8 -0
- package/esm2015/lib/db/Enums/tax-review-status.enum.js +13 -0
- package/esm2015/lib/db/Enums/tax-summary-list.enum.js +17 -0
- package/esm2015/lib/db/Enums/tax-summary-section.enum.js +8 -0
- package/esm2015/lib/db/Enums/tax-summary-tax-summary.enum.js +17 -0
- package/esm2015/lib/db/Enums/ticket-feedback.enum.js +6 -0
- package/esm2015/lib/db/Enums/ticket-status.enum.js +9 -0
- package/esm2015/lib/db/Enums/ticket-types.enum.js +5 -0
- package/esm2015/lib/db/Enums/transaction-operation.enum.js +7 -0
- package/esm2015/lib/db/Enums/transaction-source.enum.js +6 -0
- package/esm2015/lib/db/Enums/transaction-type.enum.js +6 -0
- package/esm2015/lib/db/Enums/user-event-status.enum.js +8 -0
- package/esm2015/lib/db/Enums/user-event-type-frequency.enum.js +8 -0
- package/esm2015/lib/db/Enums/user-event-type-reminder-type.enum.js +8 -0
- package/esm2015/lib/db/Enums/user-event-type-reminder.enum.js +7 -0
- package/esm2015/lib/db/Enums/user-event-type-type.enum.js +35 -0
- package/esm2015/lib/db/Enums/user-medicare-exemption.enum.js +7 -0
- package/esm2015/lib/db/Enums/user-roles.enum.js +15 -0
- package/esm2015/lib/db/Enums/user-status.enum.js +8 -0
- package/esm2015/lib/db/Enums/user-title.enum.js +9 -0
- package/esm2015/lib/db/Enums/user-work-depreciation-calculation.enum.js +6 -0
- package/esm2015/lib/db/Enums/user-working-holiday-maker.enum.js +7 -0
- package/esm2015/lib/db/Enums/vehicle-claim-method.enum.js +6 -0
- package/esm2015/lib/db/Enums/vehicle-logbook-purpose.enum.js +6 -0
- package/esm2015/lib/db/Models/address.js +3 -0
- package/esm2015/lib/db/Models/bank-account-balance.js +3 -0
- package/esm2015/lib/db/Models/bank-account-property.js +3 -0
- package/esm2015/lib/db/Models/bank-account.js +3 -0
- package/esm2015/lib/db/Models/bank-connection.js +3 -0
- package/esm2015/lib/db/Models/bank-transaction-import.js +3 -0
- package/esm2015/lib/db/Models/bank-transaction.js +3 -0
- package/esm2015/lib/db/Models/bank.js +3 -0
- package/esm2015/lib/db/Models/basiq-job.js +3 -0
- package/esm2015/lib/db/Models/borrowing-expense-loan.js +3 -0
- package/esm2015/lib/db/Models/borrowing-expense.js +3 -0
- package/esm2015/lib/db/Models/capital-cost-property.js +3 -0
- package/esm2015/lib/db/Models/capital-cost.js +3 -0
- package/esm2015/lib/db/Models/chart-accounts-depreciation.js +3 -0
- package/esm2015/lib/db/Models/chart-accounts-heading.js +3 -0
- package/esm2015/lib/db/Models/chart-accounts-metadata.js +3 -0
- package/esm2015/lib/db/Models/chart-accounts-value.js +3 -0
- package/esm2015/lib/db/Models/chart-accounts.js +3 -0
- package/esm2015/lib/db/Models/chat.js +3 -0
- package/esm2015/lib/db/Models/client-details.js +3 -0
- package/esm2015/lib/db/Models/client-invite.js +3 -0
- package/esm2015/lib/db/Models/client-movement.js +3 -0
- package/esm2015/lib/db/Models/country.js +3 -0
- package/esm2015/lib/db/Models/depreciation-capital-project.js +3 -0
- package/esm2015/lib/db/Models/depreciation-forecast.js +3 -0
- package/esm2015/lib/db/Models/depreciation-receipt.js +3 -0
- package/esm2015/lib/db/Models/depreciation.js +4 -0
- package/esm2015/lib/db/Models/document-folder.js +3 -0
- package/esm2015/lib/db/Models/document.js +3 -0
- package/esm2015/lib/db/Models/employee-details.js +3 -0
- package/esm2015/lib/db/Models/employee-invite.js +3 -0
- package/esm2015/lib/db/Models/financial-data-system.js +3 -0
- package/esm2015/lib/db/Models/firm.js +3 -0
- package/esm2015/lib/db/Models/income-source-forecast.js +3 -0
- package/esm2015/lib/db/Models/income-source-type.js +3 -0
- package/esm2015/lib/db/Models/income-source.js +3 -0
- package/esm2015/lib/db/Models/loan-payout.js +3 -0
- package/esm2015/lib/db/Models/loan.js +3 -0
- package/esm2015/lib/db/Models/message-document.js +3 -0
- package/esm2015/lib/db/Models/message.js +3 -0
- package/esm2015/lib/db/Models/occupation.js +3 -0
- package/esm2015/lib/db/Models/phone.js +3 -0
- package/esm2015/lib/db/Models/property-capital-cost.js +3 -0
- package/esm2015/lib/db/Models/property-category-movement.js +3 -0
- package/esm2015/lib/db/Models/property-category.js +3 -0
- package/esm2015/lib/db/Models/property-document.js +3 -0
- package/esm2015/lib/db/Models/property-forecast.js +3 -0
- package/esm2015/lib/db/Models/property-owner.js +3 -0
- package/esm2015/lib/db/Models/property-sold.js +3 -0
- package/esm2015/lib/db/Models/property-subscription.js +3 -0
- package/esm2015/lib/db/Models/property-valuation.js +3 -0
- package/esm2015/lib/db/Models/property.js +3 -0
- package/esm2015/lib/db/Models/registration-invite.js +3 -0
- package/esm2015/lib/db/Models/salary-forecast.js +3 -0
- package/esm2015/lib/db/Models/service-notification.js +3 -0
- package/esm2015/lib/db/Models/service-payment.js +3 -0
- package/esm2015/lib/db/Models/service-price.js +3 -0
- package/esm2015/lib/db/Models/service-product.js +3 -0
- package/esm2015/lib/db/Models/service-subscription-item.js +3 -0
- package/esm2015/lib/db/Models/service-subscription.js +3 -0
- package/esm2015/lib/db/Models/tax-return-category.js +3 -0
- package/esm2015/lib/db/Models/tax-return-item.js +3 -0
- package/esm2015/lib/db/Models/tax-return.js +3 -0
- package/esm2015/lib/db/Models/tax-review.js +3 -0
- package/esm2015/lib/db/Models/ticket.js +3 -0
- package/esm2015/lib/db/Models/transaction-allocation.js +3 -0
- package/esm2015/lib/db/Models/transaction-base.js +20 -0
- package/esm2015/lib/db/Models/transaction-metadata.js +3 -0
- package/esm2015/lib/db/Models/transaction-receipt.js +3 -0
- package/esm2015/lib/db/Models/transaction.js +4 -0
- package/esm2015/lib/db/Models/user-event-setting.js +3 -0
- package/esm2015/lib/db/Models/user-event-type.js +3 -0
- package/esm2015/lib/db/Models/user-event.js +3 -0
- package/esm2015/lib/db/Models/user.js +3 -0
- package/esm2015/lib/db/Models/vehicle-claim.js +3 -0
- package/esm2015/lib/db/Models/vehicle-logbook.js +3 -0
- package/esm2015/lib/db/Models/vehicle.js +3 -0
- package/esm2015/lib/functions/array/index.js +4 -0
- package/esm2015/lib/functions/array/replace.js +6 -0
- package/esm2015/lib/functions/array/sort-deep.js +22 -0
- package/esm2015/lib/functions/array/sort.js +13 -0
- package/esm2015/lib/functions/clone-deep.js +5 -0
- package/esm2015/lib/functions/create-date.js +8 -0
- package/esm2015/lib/functions/enum-to-list.js +13 -0
- package/esm2015/lib/functions/get-doc-icon.js +18 -0
- package/esm2015/lib/functions/mat-options-functions.js +10 -0
- package/esm2015/lib/functions/mat-sort-options.js +10 -0
- package/esm2015/lib/functions/round-to.js +10 -0
- package/esm2015/lib/functions/tax-review-filter-predicate.js +10 -0
- package/esm2015/lib/interfaces/asset-entity-type.enum.js +12 -0
- package/esm2015/lib/interfaces/asset-type.enum.js +11 -0
- package/esm2015/lib/interfaces/asset.interface.js +2 -0
- package/esm2015/lib/interfaces/chart-data.interface.js +2 -0
- package/esm2015/lib/interfaces/chart-serie.interface.js +2 -0
- package/esm2015/lib/interfaces/document.interface.js +2 -0
- package/esm2015/lib/interfaces/documentable.interface.js +2 -0
- package/esm2015/lib/interfaces/event-listener.interface.js +2 -0
- package/esm2015/lib/interfaces/income-source-forecast.interface.js +2 -0
- package/esm2015/lib/interfaces/option.interface.js +2 -0
- package/esm2015/lib/interfaces/photoable.js +2 -0
- package/esm2015/lib/interfaces/receipt.interface.js +2 -0
- package/esm2015/lib/interfaces/salary-forecast.interface.js +2 -0
- package/esm2015/lib/interfaces/tank.interface.js +2 -0
- package/esm2015/lib/models/address/address.js +24 -0
- package/esm2015/lib/models/address/country.js +16 -0
- package/esm2015/lib/models/bank/bank-account-chart-data.js +34 -0
- package/esm2015/lib/models/bank/bank-account-property.js +10 -0
- package/esm2015/lib/models/bank/bank-account-types.const.js +15 -0
- package/esm2015/lib/models/bank/bank-account.js +122 -0
- package/esm2015/lib/models/bank/bank-connection.js +14 -0
- package/esm2015/lib/models/bank/bank-transaction-chart-data.js +106 -0
- package/esm2015/lib/models/bank/bank-transaction-summary-fields.enum.js +6 -0
- package/esm2015/lib/models/bank/bank-transaction.js +67 -0
- package/esm2015/lib/models/bank/bank.js +23 -0
- package/esm2015/lib/models/bank/basiq-job.js +4 -0
- package/esm2015/lib/models/bank/basiq-token.js +13 -0
- package/esm2015/lib/models/bank/type-loan.const.js +7 -0
- package/esm2015/lib/models/borrowing-expense/borrowing-expense-loan.js +4 -0
- package/esm2015/lib/models/borrowing-expense/borrowing-expense.js +4 -0
- package/esm2015/lib/models/chart/chart-data.js +13 -0
- package/esm2015/lib/models/chart/chart-serie.js +7 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-categories.const.js +85 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-depreciation.js +16 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-heading.js +4 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-metadata.js +14 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts-tax-labels.enum.js +7 -0
- package/esm2015/lib/models/chart-accounts/chart-accounts.js +120 -0
- package/esm2015/lib/models/chat/chat-view-type.enum.js +6 -0
- package/esm2015/lib/models/chat/chat.js +23 -0
- package/esm2015/lib/models/chat/message-document.js +20 -0
- package/esm2015/lib/models/chat/message.js +39 -0
- package/esm2015/lib/models/client/client-details.js +4 -0
- package/esm2015/lib/models/client/client-invite.js +67 -0
- package/esm2015/lib/models/client/client-movement.js +27 -0
- package/esm2015/lib/models/client/client-portfolio-chart-data.js +57 -0
- package/esm2015/lib/models/client/client-portfolio-report.js +6 -0
- package/esm2015/lib/models/depreciation/depreciation-capital-project.js +9 -0
- package/esm2015/lib/models/depreciation/depreciation-forecast.js +22 -0
- package/esm2015/lib/models/depreciation/depreciation-group-item.js +14 -0
- package/esm2015/lib/models/depreciation/depreciation-group.enum.js +9 -0
- package/esm2015/lib/models/depreciation/depreciation-group.js +15 -0
- package/esm2015/lib/models/depreciation/depreciation-groups.const.js +29 -0
- package/esm2015/lib/models/depreciation/depreciation-receipt.js +11 -0
- package/esm2015/lib/models/depreciation/depreciation.js +159 -0
- package/esm2015/lib/models/document/document-api-url-prefix.enum.js +9 -0
- package/esm2015/lib/models/document/document-file-types.const.js +23 -0
- package/esm2015/lib/models/document/document-folder.js +10 -0
- package/esm2015/lib/models/document/document.js +24 -0
- package/esm2015/lib/models/employee/employee-details.js +10 -0
- package/esm2015/lib/models/employee/employee-invite.js +14 -0
- package/esm2015/lib/models/endpoint/endpoint.js +23 -0
- package/esm2015/lib/models/endpoint/endpoints.const.js +142 -0
- package/esm2015/lib/models/event/app-event-type.enum.js +39 -0
- package/esm2015/lib/models/event/app-event.js +10 -0
- package/esm2015/lib/models/file/icons-file.enum.js +7 -0
- package/esm2015/lib/models/financial-year/financial-year.js +44 -0
- package/esm2015/lib/models/financial-year/month-name-short.enum.js +21 -0
- package/esm2015/lib/models/financial-year/month-number.enum.js +21 -0
- package/esm2015/lib/models/financial-year/months.const.js +2 -0
- package/esm2015/lib/models/firm/firm.js +30 -0
- package/esm2015/lib/models/income-position/income-position.js +9 -0
- package/esm2015/lib/models/income-source/income-source-chart-data.js +45 -0
- package/esm2015/lib/models/income-source/income-source-forecast.js +31 -0
- package/esm2015/lib/models/income-source/income-source-type.js +27 -0
- package/esm2015/lib/models/income-source/income-source.js +51 -0
- package/esm2015/lib/models/income-source/salary-forecast.js +14 -0
- package/esm2015/lib/models/loan/loan-max-number-of-payments.enum.js +10 -0
- package/esm2015/lib/models/loan/loan-payment.js +12 -0
- package/esm2015/lib/models/loan/loan-payout.js +11 -0
- package/esm2015/lib/models/loan/loan.js +39 -0
- package/esm2015/lib/models/logbook/default-vehicle-expense.js +20 -0
- package/esm2015/lib/models/logbook/logbook-period.js +11 -0
- package/esm2015/lib/models/logbook/logbook-purpose-options.const.js +6 -0
- package/esm2015/lib/models/logbook/vehicle-claim.js +26 -0
- package/esm2015/lib/models/logbook/vehicle-logbook.js +16 -0
- package/esm2015/lib/models/logbook/vehicle.js +39 -0
- package/esm2015/lib/models/notification/notification-event-types.const.js +43 -0
- package/esm2015/lib/models/notification/notification.js +63 -0
- package/esm2015/lib/models/phone/phone.js +12 -0
- package/esm2015/lib/models/property/calculation-form-item.js +17 -0
- package/esm2015/lib/models/property/calculation-form-type.enum.js +9 -0
- package/esm2015/lib/models/property/capital-costs-itmes.const.js +57 -0
- package/esm2015/lib/models/property/corelogic-suggestion.js +7 -0
- package/esm2015/lib/models/property/ownership-filter-options.enum.js +10 -0
- package/esm2015/lib/models/property/property-capital-cost.js +4 -0
- package/esm2015/lib/models/property/property-category-movement.js +20 -0
- package/esm2015/lib/models/property/property-category.js +8 -0
- package/esm2015/lib/models/property/property-document.js +17 -0
- package/esm2015/lib/models/property/property-equity-chart-data.js +155 -0
- package/esm2015/lib/models/property/property-equity-chart-item.js +24 -0
- package/esm2015/lib/models/property/property-equity-chart-type.enum.js +6 -0
- package/esm2015/lib/models/property/property-forecast.js +52 -0
- package/esm2015/lib/models/property/property-owner.js +48 -0
- package/esm2015/lib/models/property/property-sold.js +12 -0
- package/esm2015/lib/models/property/property-subscription.js +13 -0
- package/esm2015/lib/models/property/property-valuation.js +23 -0
- package/esm2015/lib/models/property/property.js +130 -0
- package/esm2015/lib/models/registration-invite/registration-invite.js +10 -0
- package/esm2015/lib/models/service-subscription/module-url-list.const.js +12 -0
- package/esm2015/lib/models/service-subscription/service-payment.js +10 -0
- package/esm2015/lib/models/service-subscription/service-price.js +10 -0
- package/esm2015/lib/models/service-subscription/service-product.js +10 -0
- package/esm2015/lib/models/service-subscription/service-subscription-item.js +13 -0
- package/esm2015/lib/models/service-subscription/service-subscription.js +128 -0
- package/esm2015/lib/models/service-subscription/subscription-description.const.js +8 -0
- package/esm2015/lib/models/service-subscription/subscription-title.const.js +8 -0
- package/esm2015/lib/models/service-subscription/subscription-type.enum.js +8 -0
- package/esm2015/lib/models/tax-review/tax-review.js +86 -0
- package/esm2015/lib/models/tax-summary/tax-return-category-item-details.js +9 -0
- package/esm2015/lib/models/tax-summary/tax-return-category-item.js +15 -0
- package/esm2015/lib/models/tax-summary/tax-summary-section.js +30 -0
- package/esm2015/lib/models/tax-summary/tax-summary-type.enum.js +9 -0
- package/esm2015/lib/models/tax-summary/tax-summary.js +71 -0
- package/esm2015/lib/models/transaction/income-amount-type.enum.js +9 -0
- package/esm2015/lib/models/transaction/transaction-allocation.js +21 -0
- package/esm2015/lib/models/transaction/transaction-metadata.js +10 -0
- package/esm2015/lib/models/transaction/transaction-receipt.js +11 -0
- package/esm2015/lib/models/transaction/transaction.js +214 -0
- package/esm2015/lib/models/user/my-account-history-initiated-by.enum.js +6 -0
- package/esm2015/lib/models/user/my-account-history-status.enum.js +6 -0
- package/esm2015/lib/models/user/my-account-history-type.enum.js +7 -0
- package/esm2015/lib/models/user/my-account-history.js +3 -0
- package/esm2015/lib/models/user/occupation.js +4 -0
- package/esm2015/lib/models/user/user-roles.const.js +13 -0
- package/esm2015/lib/models/user/user-to-register.js +6 -0
- package/esm2015/lib/models/user/user-work-position.const.js +7 -0
- package/esm2015/lib/models/user/user.js +138 -0
- package/esm2015/lib/models/user-event/user-event-category.enum.js +11 -0
- package/esm2015/lib/models/user-event/user-event-category.js +6 -0
- package/esm2015/lib/models/user-event/user-event-setting-field.enum.js +10 -0
- package/esm2015/lib/models/user-event/user-event-setting.js +18 -0
- package/esm2015/lib/models/user-event/user-event-type.js +24 -0
- package/esm2015/lib/services/address/address.service.js +39 -0
- package/esm2015/lib/services/asset/assets.service.js +51 -0
- package/esm2015/lib/services/auth/auth.service.js +46 -0
- package/esm2015/lib/services/auth/jwt.service.js +36 -0
- package/esm2015/lib/services/bank/bank-account-calculation.service.js +30 -0
- package/esm2015/lib/services/bank/bank-account.service.js +108 -0
- package/esm2015/lib/services/bank/bank-connection.service.js +43 -0
- package/esm2015/lib/services/bank/bank-transaction-calculation.service.js +65 -0
- package/esm2015/lib/services/bank/bank-transaction.service.js +89 -0
- package/esm2015/lib/services/bank/bank.service.js +24 -0
- package/esm2015/lib/services/bank/basiq.service.js +94 -0
- package/esm2015/lib/services/base-rest.service.js +190 -0
- package/esm2015/lib/services/borrowing-expense/borrowing-expense.service.js +73 -0
- package/esm2015/lib/services/chart-accounts/chart-accounts-depreciations.service.js +38 -0
- package/esm2015/lib/services/chart-accounts/chart-accounts.service.js +89 -0
- package/esm2015/lib/services/chat/chat.service.js +77 -0
- package/esm2015/lib/services/chat/message-document.service.js +118 -0
- package/esm2015/lib/services/chat/message.service.js +65 -0
- package/esm2015/lib/services/client/client-invite.service.js +102 -0
- package/esm2015/lib/services/client/client-movement.service.js +98 -0
- package/esm2015/lib/services/client/client-portfolio-report.service.js +37 -0
- package/esm2015/lib/services/depreciation/capital-project.service.js +62 -0
- package/esm2015/lib/services/depreciation/depreciation.service.js +146 -0
- package/esm2015/lib/services/document/document-folder.service.js +84 -0
- package/esm2015/lib/services/employee/employee-invite.service.js +53 -0
- package/esm2015/lib/services/employee/employee.service.js +39 -0
- package/esm2015/lib/services/event/event-dispatcher.service.js +30 -0
- package/esm2015/lib/services/event/sse.service.js +46 -0
- package/esm2015/lib/services/firm/firm.service.js +79 -0
- package/esm2015/lib/services/header-title/header-title.service.js +28 -0
- package/esm2015/lib/services/income-source/income-source-forecast.service.js +90 -0
- package/esm2015/lib/services/income-source/income-source.service.js +109 -0
- package/esm2015/lib/services/income-source/salary-forecast.service.js +90 -0
- package/esm2015/lib/services/intercom/intercom.service.js +41 -0
- package/esm2015/lib/services/loan/loan.service.js +145 -0
- package/esm2015/lib/services/notification/notification.service.js +65 -0
- package/esm2015/lib/services/preloader/preloader.service.js +30 -0
- package/esm2015/lib/services/property/corelogic.service.js +46 -0
- package/esm2015/lib/services/property/property-calculation.service.js +121 -0
- package/esm2015/lib/services/property/property-capital-cost.service.js +46 -0
- package/esm2015/lib/services/property/property-category.service.js +23 -0
- package/esm2015/lib/services/property/property-document.service.js +68 -0
- package/esm2015/lib/services/property/property-owner.service.js +123 -0
- package/esm2015/lib/services/property/property-sold.service.js +23 -0
- package/esm2015/lib/services/property/property.service.js +115 -0
- package/esm2015/lib/services/subscription/subscription.service.js +138 -0
- package/esm2015/lib/services/tax-review/tax-review-history.service.js +41 -0
- package/esm2015/lib/services/tax-review/tax-review.service.js +103 -0
- package/esm2015/lib/services/tax-summary/tax-summary.service.js +71 -0
- package/esm2015/lib/services/transaction/transaction-allocation.service.js +85 -0
- package/esm2015/lib/services/transaction/transaction-calculation.service.js +47 -0
- package/esm2015/lib/services/transaction/transaction.service.js +319 -0
- package/esm2015/lib/services/user/occupation.service.js +45 -0
- package/esm2015/lib/services/user/user-switcher.service.js +37 -0
- package/esm2015/lib/services/user/user.service.js +124 -0
- package/esm2015/lib/services/user-event/user-event-setting.service.js +59 -0
- package/esm2015/lib/services/user-event/user-event-type.service.js +29 -0
- package/esm2015/lib/services/work/work-tank.service.js +236 -0
- package/esm2015/lib/tt-core.module.js +1 -3
- package/esm2015/public-api.js +334 -3
- package/fesm2015/taxtank-core.js +9738 -25
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/abstract.collection.d.ts +40 -0
- package/lib/collections/bank-account.collection.d.ts +67 -0
- package/lib/collections/bank-transaction.collection.d.ts +72 -0
- package/lib/collections/client-movement.collection.d.ts +17 -0
- package/lib/collections/client-portfolio-report.collection.d.ts +26 -0
- package/lib/collections/client.collection.d.ts +4 -0
- package/lib/collections/collection-dictionary.d.ts +44 -0
- package/lib/collections/depreciation-forecast.collection.d.ts +11 -0
- package/lib/collections/depreciation.collection.d.ts +27 -0
- package/lib/collections/employee.collection.d.ts +6 -0
- package/lib/collections/income-source.collection.d.ts +25 -0
- package/lib/collections/loan.collection.d.ts +14 -0
- package/lib/collections/logbook.collection.d.ts +19 -0
- package/lib/collections/message-document.collection.d.ts +11 -0
- package/lib/collections/message.collection.d.ts +14 -0
- package/lib/collections/property.collection.d.ts +33 -0
- package/lib/collections/service-price.collection.d.ts +6 -0
- package/lib/collections/service-subscription.collection.d.ts +8 -0
- package/lib/collections/tax-return-category-item.collection.d.ts +68 -0
- package/lib/collections/tax-review.collection.d.ts +35 -0
- package/lib/collections/transaction-allocation.collection.d.ts +23 -0
- package/lib/collections/transaction.collection.d.ts +76 -0
- package/lib/collections/user-event-setting.collection.d.ts +30 -0
- package/lib/db/Enums/address-type.enum.d.ts +4 -0
- package/lib/db/Enums/bank-account-status.enum.d.ts +4 -0
- package/lib/db/Enums/bank-account-type.enum.d.ts +10 -0
- package/lib/db/Enums/bank-connection-status.enum.d.ts +5 -0
- package/lib/db/Enums/bank-transaction-type.enum.d.ts +4 -0
- package/lib/db/Enums/chart-accounts-category.enum.d.ts +13 -0
- package/lib/db/Enums/chart-accounts-etp.enum.d.ts +7 -0
- package/lib/db/Enums/chart-accounts-heading-tax-deductible.enum.d.ts +6 -0
- package/lib/db/Enums/chart-accounts-heading-taxable.enum.d.ts +6 -0
- package/lib/db/Enums/chart-accounts-heading-vehicle-list.enum.d.ts +4 -0
- package/lib/db/Enums/chart-accounts-list.enum.d.ts +19 -0
- package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +14 -0
- package/lib/db/Enums/chart-accounts-metadata-type.enum.d.ts +4 -0
- package/lib/db/Enums/chart-accounts-type.enum.d.ts +4 -0
- package/lib/db/Enums/chat-status.enum.d.ts +4 -0
- package/lib/db/Enums/client-details-medicare-exemption.enum.d.ts +5 -0
- package/lib/db/Enums/client-details-work-depreciation-calculation.enum.d.ts +4 -0
- package/lib/db/Enums/client-details-working-holiday-maker.enum.d.ts +5 -0
- package/lib/db/Enums/client-invite-status.enum.d.ts +4 -0
- package/lib/db/Enums/client-invite-type.enum.d.ts +4 -0
- package/lib/db/Enums/depreciation-calculation-percent.enum.d.ts +7 -0
- package/lib/db/Enums/depreciation-calculation.enum.d.ts +7 -0
- package/lib/db/Enums/depreciation-type.enum.d.ts +6 -0
- package/lib/db/Enums/depreciation-write-off-amount.enum.d.ts +4 -0
- package/lib/db/Enums/firm-type.enum.d.ts +4 -0
- package/lib/db/Enums/income-source-type-list-other.enum.d.ts +6 -0
- package/lib/db/Enums/income-source-type-list-salary.enum.d.ts +3 -0
- package/lib/db/Enums/income-source-type-list-work.enum.d.ts +8 -0
- package/lib/db/Enums/income-source-type.enum.d.ts +5 -0
- package/lib/db/Enums/invite-status.enum.d.ts +5 -0
- package/lib/db/Enums/loan-bank-type.enum.d.ts +10 -0
- package/lib/db/Enums/loan-frequency.enum.d.ts +6 -0
- package/lib/db/Enums/loan-interest-type.enum.d.ts +4 -0
- package/lib/db/Enums/loan-payout-type.enum.d.ts +4 -0
- package/lib/db/Enums/loan-repayment-frequency.enum.d.ts +5 -0
- package/lib/db/Enums/loan-repayment-type.enum.d.ts +4 -0
- package/lib/db/Enums/loan-type.enum.d.ts +12 -0
- package/lib/db/Enums/loan-vehicle-type.enum.d.ts +5 -0
- package/lib/db/Enums/phone-type.enum.d.ts +4 -0
- package/lib/db/Enums/property-depreciation-calculation.enum.d.ts +4 -0
- package/lib/db/Enums/property-owner-access.enum.d.ts +4 -0
- package/lib/db/Enums/property-owner-status.enum.d.ts +5 -0
- package/lib/db/Enums/registration-invite-status.enum.d.ts +4 -0
- package/lib/db/Enums/salary-forecast-frequency.enum.d.ts +6 -0
- package/lib/db/Enums/service-notification-status.enum.d.ts +5 -0
- package/lib/db/Enums/service-notification-type.enum.d.ts +4 -0
- package/lib/db/Enums/service-payment-status.enum.d.ts +4 -0
- package/lib/db/Enums/service-price-recurring-interval.enum.d.ts +6 -0
- package/lib/db/Enums/service-price-type.enum.d.ts +4 -0
- package/lib/db/Enums/service-subscription-status.enum.d.ts +8 -0
- package/lib/db/Enums/spare-document-spare-type.enum.d.ts +4 -0
- package/lib/db/Enums/tank-type.enum.d.ts +5 -0
- package/lib/db/Enums/tax-calculation-medicare-exemption.enum.d.ts +4 -0
- package/lib/db/Enums/tax-calculation-type.enum.d.ts +12 -0
- package/lib/db/Enums/tax-return-category-list.enum.d.ts +26 -0
- package/lib/db/Enums/tax-return-category-section.enum.d.ts +6 -0
- package/lib/db/Enums/tax-review-status.enum.d.ts +11 -0
- package/lib/db/Enums/tax-summary-list.enum.d.ts +15 -0
- package/lib/db/Enums/tax-summary-section.enum.d.ts +6 -0
- package/lib/db/Enums/tax-summary-tax-summary.enum.d.ts +15 -0
- package/lib/db/Enums/ticket-feedback.enum.d.ts +4 -0
- package/lib/db/Enums/ticket-status.enum.d.ts +7 -0
- package/lib/db/Enums/ticket-types.enum.d.ts +3 -0
- package/lib/db/Enums/transaction-operation.enum.d.ts +5 -0
- package/lib/db/Enums/transaction-source.enum.d.ts +4 -0
- package/lib/db/Enums/transaction-type.enum.d.ts +4 -0
- package/lib/db/Enums/user-event-status.enum.d.ts +6 -0
- package/lib/db/Enums/user-event-type-frequency.enum.d.ts +6 -0
- package/lib/db/Enums/user-event-type-reminder-type.enum.d.ts +6 -0
- package/lib/db/Enums/user-event-type-reminder.enum.d.ts +5 -0
- package/lib/db/Enums/user-event-type-type.enum.d.ts +33 -0
- package/lib/db/Enums/user-medicare-exemption.enum.d.ts +5 -0
- package/lib/db/Enums/user-roles.enum.d.ts +13 -0
- package/lib/db/Enums/user-status.enum.d.ts +6 -0
- package/lib/db/Enums/user-title.enum.d.ts +7 -0
- package/lib/db/Enums/user-work-depreciation-calculation.enum.d.ts +4 -0
- package/lib/db/Enums/user-working-holiday-maker.enum.d.ts +5 -0
- package/lib/db/Enums/vehicle-claim-method.enum.d.ts +4 -0
- package/lib/db/Enums/vehicle-logbook-purpose.enum.d.ts +4 -0
- package/lib/db/Models/address.d.ts +19 -0
- package/lib/db/Models/bank-account-balance.d.ts +12 -0
- package/lib/db/Models/bank-account-property.d.ts +8 -0
- package/lib/db/Models/bank-account.d.ts +33 -0
- package/lib/db/Models/bank-connection.d.ts +14 -0
- package/lib/db/Models/bank-transaction-import.d.ts +11 -0
- package/lib/db/Models/bank-transaction.d.ts +16 -0
- package/lib/db/Models/bank.d.ts +11 -0
- package/lib/db/Models/basiq-job.d.ts +8 -0
- package/lib/db/Models/borrowing-expense-loan.d.ts +14 -0
- package/lib/db/Models/borrowing-expense.d.ts +7 -0
- package/lib/db/Models/capital-cost-property.d.ts +13 -0
- package/lib/db/Models/capital-cost.d.ts +4 -0
- package/lib/db/Models/chart-accounts-depreciation.d.ts +10 -0
- package/lib/db/Models/chart-accounts-heading.d.ts +6 -0
- package/lib/db/Models/chart-accounts-metadata.d.ts +11 -0
- package/lib/db/Models/chart-accounts-value.d.ts +12 -0
- package/lib/db/Models/chart-accounts.d.ts +23 -0
- package/lib/db/Models/chat.d.ts +17 -0
- package/lib/db/Models/client-details.d.ts +29 -0
- package/lib/db/Models/client-invite.d.ts +16 -0
- package/lib/db/Models/client-movement.d.ts +12 -0
- package/lib/db/Models/country.d.ts +5 -0
- package/lib/db/Models/depreciation-capital-project.d.ts +13 -0
- package/lib/db/Models/depreciation-forecast.d.ts +18 -0
- package/lib/db/Models/depreciation-receipt.d.ts +11 -0
- package/lib/db/Models/depreciation.d.ts +42 -0
- package/lib/db/Models/document-folder.d.ts +9 -0
- package/lib/db/Models/document.d.ts +11 -0
- package/lib/db/Models/employee-details.d.ts +7 -0
- package/lib/db/Models/employee-invite.d.ts +9 -0
- package/lib/db/Models/financial-data-system.d.ts +9 -0
- package/lib/db/Models/firm.d.ts +28 -0
- package/lib/db/Models/income-source-forecast.d.ts +12 -0
- package/lib/db/Models/income-source-type.d.ts +8 -0
- package/lib/db/Models/income-source.d.ts +20 -0
- package/lib/db/Models/loan-payout.d.ts +12 -0
- package/lib/db/Models/loan.d.ts +33 -0
- package/lib/db/Models/message-document.d.ts +15 -0
- package/lib/db/Models/message.d.ts +15 -0
- package/lib/db/Models/occupation.d.ts +5 -0
- package/lib/db/Models/phone.d.ts +12 -0
- package/lib/db/Models/property-capital-cost.d.ts +13 -0
- package/lib/db/Models/property-category-movement.d.ts +17 -0
- package/lib/db/Models/property-category.d.ts +13 -0
- package/lib/db/Models/property-document.d.ts +13 -0
- package/lib/db/Models/property-forecast.d.ts +14 -0
- package/lib/db/Models/property-owner.d.ts +20 -0
- package/lib/db/Models/property-sold.d.ts +12 -0
- package/lib/db/Models/property-subscription.d.ts +9 -0
- package/lib/db/Models/property-valuation.d.ts +12 -0
- package/lib/db/Models/property.d.ts +41 -0
- package/lib/db/Models/registration-invite.d.ts +12 -0
- package/lib/db/Models/salary-forecast.d.ts +15 -0
- package/lib/db/Models/service-notification.d.ts +13 -0
- package/lib/db/Models/service-payment.d.ts +11 -0
- package/lib/db/Models/service-price.d.ts +15 -0
- package/lib/db/Models/service-product.d.ts +12 -0
- package/lib/db/Models/service-subscription-item.d.ts +9 -0
- package/lib/db/Models/service-subscription.d.ts +14 -0
- package/lib/db/Models/tax-return-category.d.ts +12 -0
- package/lib/db/Models/tax-return-item.d.ts +15 -0
- package/lib/db/Models/tax-return.d.ts +8 -0
- package/lib/db/Models/tax-review.d.ts +13 -0
- package/lib/db/Models/ticket.d.ts +19 -0
- package/lib/db/Models/transaction-allocation.d.ts +8 -0
- package/lib/db/Models/transaction-base.d.ts +22 -0
- package/lib/db/Models/transaction-metadata.d.ts +11 -0
- package/lib/db/Models/transaction-receipt.d.ts +11 -0
- package/lib/db/Models/transaction.d.ts +43 -0
- package/lib/db/Models/user-event-setting.d.ts +10 -0
- package/lib/db/Models/user-event-type.d.ts +15 -0
- package/lib/db/Models/user-event.d.ts +13 -0
- package/lib/db/Models/user.d.ts +51 -0
- package/lib/db/Models/vehicle-claim.d.ts +11 -0
- package/lib/db/Models/vehicle-logbook.d.ts +16 -0
- package/lib/db/Models/vehicle.d.ts +8 -0
- package/lib/functions/array/index.d.ts +3 -0
- package/lib/functions/array/replace.d.ts +1 -0
- package/lib/functions/array/sort-deep.d.ts +1 -0
- package/lib/functions/array/sort.d.ts +1 -0
- package/lib/functions/clone-deep.d.ts +1 -0
- package/lib/functions/create-date.d.ts +5 -0
- package/lib/functions/enum-to-list.d.ts +2 -0
- package/lib/functions/get-doc-icon.d.ts +7 -0
- package/lib/functions/mat-options-functions.d.ts +2 -0
- package/lib/functions/mat-sort-options.d.ts +7 -0
- package/lib/functions/round-to.d.ts +6 -0
- package/lib/functions/tax-review-filter-predicate.d.ts +7 -0
- package/lib/interfaces/asset-entity-type.enum.d.ts +10 -0
- package/lib/interfaces/asset-type.enum.d.ts +8 -0
- package/lib/interfaces/asset.interface.d.ts +17 -0
- package/lib/interfaces/chart-data.interface.d.ts +10 -0
- package/lib/interfaces/chart-serie.interface.d.ts +8 -0
- package/lib/interfaces/document.interface.d.ts +18 -0
- package/lib/interfaces/documentable.interface.d.ts +8 -0
- package/lib/interfaces/event-listener.interface.d.ts +9 -0
- package/lib/interfaces/income-source-forecast.interface.d.ts +7 -0
- package/lib/interfaces/option.interface.d.ts +4 -0
- package/lib/interfaces/photoable.d.ts +13 -0
- package/lib/interfaces/receipt.interface.d.ts +12 -0
- package/lib/interfaces/salary-forecast.interface.d.ts +16 -0
- package/lib/interfaces/tank.interface.d.ts +7 -0
- package/lib/models/address/address.d.ts +11 -0
- package/lib/models/address/country.d.ts +11 -0
- package/lib/models/bank/bank-account-chart-data.d.ts +17 -0
- package/lib/models/bank/bank-account-property.d.ts +5 -0
- package/lib/models/bank/bank-account-types.const.d.ts +7 -0
- package/lib/models/bank/bank-account.d.ts +72 -0
- package/lib/models/bank/bank-connection.d.ts +7 -0
- package/lib/models/bank/bank-transaction-chart-data.d.ts +30 -0
- package/lib/models/bank/bank-transaction-summary-fields.enum.d.ts +4 -0
- package/lib/models/bank/bank-transaction.d.ts +38 -0
- package/lib/models/bank/bank.d.ts +8 -0
- package/lib/models/bank/basiq-job.d.ts +3 -0
- package/lib/models/bank/basiq-token.d.ts +9 -0
- package/lib/models/bank/type-loan.const.d.ts +2 -0
- package/lib/models/borrowing-expense/borrowing-expense-loan.d.ts +3 -0
- package/lib/models/borrowing-expense/borrowing-expense.d.ts +3 -0
- package/lib/models/chart/chart-data.d.ts +9 -0
- package/lib/models/chart/chart-serie.d.ts +8 -0
- package/lib/models/chart-accounts/chart-accounts-categories.const.d.ts +4 -0
- package/lib/models/chart-accounts/chart-accounts-depreciation.d.ts +7 -0
- package/lib/models/chart-accounts/chart-accounts-heading.d.ts +5 -0
- package/lib/models/chart-accounts/chart-accounts-metadata.d.ts +8 -0
- package/lib/models/chart-accounts/chart-accounts-tax-labels.enum.d.ts +5 -0
- package/lib/models/chart-accounts/chart-accounts.d.ts +66 -0
- package/lib/models/chat/chat-view-type.enum.d.ts +4 -0
- package/lib/models/chat/chat.d.ts +10 -0
- package/lib/models/chat/message-document.d.ts +11 -0
- package/lib/models/chat/message.d.ts +20 -0
- package/lib/models/client/client-details.d.ts +3 -0
- package/lib/models/client/client-invite.d.ts +34 -0
- package/lib/models/client/client-movement.d.ts +12 -0
- package/lib/models/client/client-portfolio-chart-data.d.ts +11 -0
- package/lib/models/client/client-portfolio-report.d.ts +10 -0
- package/lib/models/depreciation/depreciation-capital-project.d.ts +5 -0
- package/lib/models/depreciation/depreciation-forecast.d.ts +8 -0
- package/lib/models/depreciation/depreciation-group-item.d.ts +10 -0
- package/lib/models/depreciation/depreciation-group.d.ts +11 -0
- package/lib/models/depreciation/depreciation-group.enum.d.ts +7 -0
- package/lib/models/depreciation/depreciation-groups.const.d.ts +9 -0
- package/lib/models/depreciation/depreciation-receipt.d.ts +8 -0
- package/lib/models/depreciation/depreciation.d.ts +69 -0
- package/lib/models/document/document-api-url-prefix.enum.d.ts +7 -0
- package/lib/models/document/document-file-types.const.d.ts +3 -0
- package/lib/models/document/document-folder.d.ts +7 -0
- package/lib/models/document/document.d.ts +21 -0
- package/lib/models/employee/employee-details.d.ts +5 -0
- package/lib/models/employee/employee-invite.d.ts +7 -0
- package/lib/models/endpoint/endpoint.d.ts +22 -0
- package/lib/models/endpoint/endpoints.const.d.ts +7 -0
- package/lib/models/event/app-event-type.enum.d.ts +37 -0
- package/lib/models/event/app-event.d.ts +9 -0
- package/lib/models/file/icons-file.enum.d.ts +5 -0
- package/lib/models/financial-year/financial-year.d.ts +19 -0
- package/lib/models/financial-year/month-name-short.enum.d.ts +19 -0
- package/lib/models/financial-year/month-number.enum.d.ts +19 -0
- package/lib/models/financial-year/months.const.d.ts +1 -0
- package/lib/models/firm/firm.d.ts +18 -0
- package/lib/models/income-position/income-position.d.ts +9 -0
- package/lib/models/income-source/income-source-chart-data.d.ts +14 -0
- package/lib/models/income-source/income-source-forecast.d.ts +22 -0
- package/lib/models/income-source/income-source-type.d.ts +8 -0
- package/lib/models/income-source/income-source.d.ts +27 -0
- package/lib/models/income-source/salary-forecast.d.ts +16 -0
- package/lib/models/loan/loan-max-number-of-payments.enum.d.ts +8 -0
- package/lib/models/loan/loan-payment.d.ts +13 -0
- package/lib/models/loan/loan-payout.d.ts +9 -0
- package/lib/models/loan/loan.d.ts +20 -0
- package/lib/models/logbook/default-vehicle-expense.d.ts +5 -0
- package/lib/models/logbook/logbook-period.d.ts +6 -0
- package/lib/models/logbook/logbook-purpose-options.const.d.ts +4 -0
- package/lib/models/logbook/vehicle-claim.d.ts +15 -0
- package/lib/models/logbook/vehicle-logbook.d.ts +6 -0
- package/lib/models/logbook/vehicle.d.ts +12 -0
- package/lib/models/notification/notification-event-types.const.d.ts +7 -0
- package/lib/models/notification/notification.d.ts +16 -0
- package/lib/models/phone/phone.d.ts +6 -0
- package/lib/models/property/calculation-form-item.d.ts +15 -0
- package/lib/models/property/calculation-form-type.enum.d.ts +7 -0
- package/lib/models/property/capital-costs-itmes.const.d.ts +2 -0
- package/lib/models/property/corelogic-suggestion.d.ts +18 -0
- package/lib/models/property/ownership-filter-options.enum.d.ts +8 -0
- package/lib/models/property/property-capital-cost.d.ts +3 -0
- package/lib/models/property/property-category-movement.d.ts +9 -0
- package/lib/models/property/property-category.d.ts +4 -0
- package/lib/models/property/property-document.d.ts +14 -0
- package/lib/models/property/property-equity-chart-data.d.ts +62 -0
- package/lib/models/property/property-equity-chart-item.d.ts +19 -0
- package/lib/models/property/property-equity-chart-type.enum.d.ts +4 -0
- package/lib/models/property/property-forecast.d.ts +28 -0
- package/lib/models/property/property-owner.d.ts +21 -0
- package/lib/models/property/property-sold.d.ts +5 -0
- package/lib/models/property/property-subscription.d.ts +6 -0
- package/lib/models/property/property-valuation.d.ts +9 -0
- package/lib/models/property/property.d.ts +55 -0
- package/lib/models/registration-invite/registration-invite.d.ts +6 -0
- package/lib/models/service-subscription/module-url-list.const.d.ts +6 -0
- package/lib/models/service-subscription/service-payment.d.ts +5 -0
- package/lib/models/service-subscription/service-price.d.ts +5 -0
- package/lib/models/service-subscription/service-product.d.ts +5 -0
- package/lib/models/service-subscription/service-subscription-item.d.ts +6 -0
- package/lib/models/service-subscription/service-subscription.d.ts +55 -0
- package/lib/models/service-subscription/subscription-description.const.d.ts +3 -0
- package/lib/models/service-subscription/subscription-title.const.d.ts +3 -0
- package/lib/models/service-subscription/subscription-type.enum.d.ts +6 -0
- package/lib/models/tax-review/tax-review.d.ts +52 -0
- package/lib/models/tax-summary/tax-return-category-item-details.d.ts +13 -0
- package/lib/models/tax-summary/tax-return-category-item.d.ts +18 -0
- package/lib/models/tax-summary/tax-summary-section.d.ts +12 -0
- package/lib/models/tax-summary/tax-summary-type.enum.d.ts +7 -0
- package/lib/models/tax-summary/tax-summary.d.ts +44 -0
- package/lib/models/transaction/income-amount-type.enum.d.ts +7 -0
- package/lib/models/transaction/transaction-allocation.d.ts +12 -0
- package/lib/models/transaction/transaction-metadata.d.ts +5 -0
- package/lib/models/transaction/transaction-receipt.d.ts +8 -0
- package/lib/models/transaction/transaction.d.ts +98 -0
- package/lib/models/user/my-account-history-initiated-by.enum.d.ts +4 -0
- package/lib/models/user/my-account-history-status.enum.d.ts +4 -0
- package/lib/models/user/my-account-history-type.enum.d.ts +5 -0
- package/lib/models/user/my-account-history.d.ts +11 -0
- package/lib/models/user/occupation.d.ts +3 -0
- package/lib/models/user/user-roles.const.d.ts +4 -0
- package/lib/models/user/user-to-register.d.ts +7 -0
- package/lib/models/user/user-work-position.const.d.ts +3 -0
- package/lib/models/user/user.d.ts +64 -0
- package/lib/models/user-event/user-event-category.d.ts +8 -0
- package/lib/models/user-event/user-event-category.enum.d.ts +9 -0
- package/lib/models/user-event/user-event-setting-field.enum.d.ts +8 -0
- package/lib/models/user-event/user-event-setting.d.ts +6 -0
- package/lib/models/user-event/user-event-type.d.ts +5 -0
- package/lib/services/address/address.service.d.ts +14 -0
- package/lib/services/asset/assets.service.d.ts +34 -0
- package/lib/services/auth/auth.service.d.ts +17 -0
- package/lib/services/auth/jwt.service.d.ts +16 -0
- package/lib/services/bank/bank-account-calculation.service.d.ts +19 -0
- package/lib/services/bank/bank-account.service.d.ts +47 -0
- package/lib/services/bank/bank-connection.service.d.ts +22 -0
- package/lib/services/bank/bank-transaction-calculation.service.d.ts +41 -0
- package/lib/services/bank/bank-transaction.service.d.ts +38 -0
- package/lib/services/bank/bank.service.d.ts +14 -0
- package/lib/services/bank/basiq.service.d.ts +42 -0
- package/lib/services/base-rest.service.d.ts +91 -0
- package/lib/services/borrowing-expense/borrowing-expense.service.d.ts +19 -0
- package/lib/services/chart-accounts/chart-accounts-depreciations.service.d.ts +19 -0
- package/lib/services/chart-accounts/chart-accounts.service.d.ts +37 -0
- package/lib/services/chat/chat.service.d.ts +31 -0
- package/lib/services/chat/message-document.service.d.ts +50 -0
- package/lib/services/chat/message.service.d.ts +31 -0
- package/lib/services/client/client-invite.service.d.ts +36 -0
- package/lib/services/client/client-movement.service.d.ts +40 -0
- package/lib/services/client/client-portfolio-report.service.d.ts +16 -0
- package/lib/services/depreciation/capital-project.service.d.ts +20 -0
- package/lib/services/depreciation/depreciation.service.d.ts +59 -0
- package/lib/services/document/document-folder.service.d.ts +40 -0
- package/lib/services/employee/employee-invite.service.d.ts +21 -0
- package/lib/services/employee/employee.service.d.ts +16 -0
- package/lib/services/event/event-dispatcher.service.d.ts +17 -0
- package/lib/services/event/sse.service.d.ts +16 -0
- package/lib/services/firm/firm.service.d.ts +27 -0
- package/lib/services/header-title/header-title.service.d.ts +11 -0
- package/lib/services/income-source/income-source-forecast.service.d.ts +36 -0
- package/lib/services/income-source/income-source.service.d.ts +48 -0
- package/lib/services/income-source/salary-forecast.service.d.ts +37 -0
- package/lib/services/intercom/intercom.service.d.ts +21 -0
- package/lib/services/loan/loan.service.d.ts +63 -0
- package/lib/services/notification/notification.service.d.ts +31 -0
- package/lib/services/preloader/preloader.service.d.ts +12 -0
- package/lib/services/property/corelogic.service.d.ts +15 -0
- package/lib/services/property/property-calculation.service.d.ts +33 -0
- package/lib/services/property/property-capital-cost.service.d.ts +20 -0
- package/lib/services/property/property-category.service.d.ts +13 -0
- package/lib/services/property/property-document.service.d.ts +31 -0
- package/lib/services/property/property-owner.service.d.ts +52 -0
- package/lib/services/property/property-sold.service.d.ts +13 -0
- package/lib/services/property/property.service.d.ts +50 -0
- package/lib/services/subscription/subscription.service.d.ts +47 -0
- package/lib/services/tax-review/tax-review-history.service.d.ts +19 -0
- package/lib/services/tax-review/tax-review.service.d.ts +44 -0
- package/lib/services/tax-summary/tax-summary.service.d.ts +31 -0
- package/lib/services/transaction/transaction-allocation.service.d.ts +43 -0
- package/lib/services/transaction/transaction-calculation.service.d.ts +29 -0
- package/lib/services/transaction/transaction.service.d.ts +92 -0
- package/lib/services/user/occupation.service.d.ts +20 -0
- package/lib/services/user/user-switcher.service.d.ts +20 -0
- package/lib/services/user/user.service.d.ts +60 -0
- package/lib/services/user-event/user-event-setting.service.d.ts +22 -0
- package/lib/services/user-event/user-event-type.service.d.ts +17 -0
- package/lib/services/work/work-tank.service.d.ts +93 -0
- package/package.json +11 -3
- package/public-api.d.ts +335 -1
- package/esm2015/lib/tt-core.service.js +0 -23
- package/lib/tt-core.service.d.ts +0 -8
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { plainToClass } from 'class-transformer';
|
|
4
|
+
import { BaseRestService } from '../base-rest.service';
|
|
5
|
+
import { SalaryForecast } from '../../models/income-source/salary-forecast';
|
|
6
|
+
import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
|
|
7
|
+
import { IncomeSource } from '../../models/income-source/income-source';
|
|
8
|
+
import { AppEvent } from '../../models/event/app-event';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "../event/event-dispatcher.service";
|
|
12
|
+
/**
|
|
13
|
+
* Service to work with Salary Forecasts
|
|
14
|
+
*/
|
|
15
|
+
export class SalaryForecastService extends BaseRestService {
|
|
16
|
+
constructor(http, eventDispatcherService, environment) {
|
|
17
|
+
super(http, eventDispatcherService, environment);
|
|
18
|
+
this.http = http;
|
|
19
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
20
|
+
this.environment = environment;
|
|
21
|
+
this.modelClass = SalaryForecast;
|
|
22
|
+
this.url = 'salary-forecasts';
|
|
23
|
+
this.listenEvents();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Listen to Income Sources events
|
|
27
|
+
*/
|
|
28
|
+
listenEvents() {
|
|
29
|
+
this.listenToAddedIncomeSources();
|
|
30
|
+
this.listenToUpdatedIncomeSources();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Listen to EventDispatcherService event related to added Income Sources
|
|
34
|
+
*/
|
|
35
|
+
listenToAddedIncomeSources() {
|
|
36
|
+
this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_CREATED)
|
|
37
|
+
.pipe(map((incomeSources) => incomeSources
|
|
38
|
+
.filter((incomeSource) => incomeSource.isSalaryIncome())))
|
|
39
|
+
.subscribe((incomeSources) => {
|
|
40
|
+
const salaryForecasts = this.assignSalaryForecasts(incomeSources);
|
|
41
|
+
if (salaryForecasts.length) {
|
|
42
|
+
this.addBatch(salaryForecasts).subscribe((createdSalaryForecasts) => {
|
|
43
|
+
this.eventDispatcherService
|
|
44
|
+
.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_CREATED, createdSalaryForecasts));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Listen to EventDispatcherService event related to updated Income Sources
|
|
51
|
+
*/
|
|
52
|
+
listenToUpdatedIncomeSources() {
|
|
53
|
+
this.eventDispatcherService.on(AppEventTypeEnum.INCOME_SOURCES_UPDATED)
|
|
54
|
+
.subscribe((incomeSources) => {
|
|
55
|
+
const salaryForecasts = this.assignSalaryForecasts(incomeSources);
|
|
56
|
+
if (salaryForecasts.length) {
|
|
57
|
+
this.updateBatch(salaryForecasts).subscribe((updatedSalaryForecasts) => {
|
|
58
|
+
this.eventDispatcherService
|
|
59
|
+
.dispatch(new AppEvent(AppEventTypeEnum.INCOME_SOURCES_FORECASTS_UPDATED, updatedSalaryForecasts));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Assign salary forecasts based on provided income sources
|
|
66
|
+
* @param incomeSources by which salary forecasts will be assigned
|
|
67
|
+
*/
|
|
68
|
+
assignSalaryForecasts(incomeSources) {
|
|
69
|
+
return incomeSources.map((incomeSource) => {
|
|
70
|
+
incomeSource.salaryForecasts = incomeSource.salaryForecasts
|
|
71
|
+
.map((salaryForecast) => {
|
|
72
|
+
salaryForecast.incomeSource = plainToClass(IncomeSource, { id: incomeSource.id });
|
|
73
|
+
return salaryForecast;
|
|
74
|
+
});
|
|
75
|
+
return incomeSource.salaryForecasts;
|
|
76
|
+
}).flat();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
SalaryForecastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalaryForecastService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
80
|
+
SalaryForecastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalaryForecastService, providedIn: 'root' });
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SalaryForecastService, decorators: [{
|
|
82
|
+
type: Injectable,
|
|
83
|
+
args: [{
|
|
84
|
+
providedIn: 'root'
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
87
|
+
type: Inject,
|
|
88
|
+
args: ['environment']
|
|
89
|
+
}] }]; } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsYXJ5LWZvcmVjYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaW5jb21lLXNvdXJjZS9zYWxhcnktZm9yZWNhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUV4RDs7R0FFRztBQUlILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFtRDtJQUk1RixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQjtRQUVqRCxLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBSnZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU5uRCxlQUFVLEdBQTBCLGNBQWMsQ0FBQztRQUNuRCxRQUFHLEdBQVcsa0JBQWtCLENBQUM7UUFRL0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsYUFBNkIsRUFBRSxFQUFFLENBQUMsYUFBYTthQUNqRCxNQUFNLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUMxRTthQUNBLFNBQVMsQ0FBQyxDQUFDLGFBQTZCLEVBQUUsRUFBRTtZQUUzQyxNQUFNLGVBQWUsR0FBcUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BGLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxzQkFBd0MsRUFBRSxFQUFFO29CQUNwRixJQUFJLENBQUMsc0JBQXNCO3lCQUN4QixRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2dCQUN2RyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyw0QkFBNEI7UUFDbEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwRSxTQUFTLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUU7WUFDM0MsTUFBTSxlQUFlLEdBQXFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRixJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsc0JBQXdDLEVBQUUsRUFBRTtvQkFDdkYsSUFBSSxDQUFDLHNCQUFzQjt5QkFDeEIsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztnQkFDdkcsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQixDQUFDLGFBQTZCO1FBQ3pELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUN0RCxZQUFZLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxlQUFlO2lCQUN4RCxHQUFHLENBQUMsQ0FBQyxjQUE4QixFQUFFLEVBQUU7Z0JBQ3RDLGNBQWMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztnQkFDaEYsT0FBTyxjQUFjLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDOzttSEF2RVUscUJBQXFCLGtGQU90QixhQUFhO3VIQVBaLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FsYXJ5Rm9yZWNhc3QgYXMgU2FsYXJ5Rm9yZWNhc3RCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3NhbGFyeS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQmFzZVJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTYWxhcnlGb3JlY2FzdCB9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IEFwcEV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5cbi8qKlxuICogU2VydmljZSB0byB3b3JrIHdpdGggU2FsYXJ5IEZvcmVjYXN0c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTYWxhcnlGb3JlY2FzdFNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8U2FsYXJ5Rm9yZWNhc3RCYXNlLCBTYWxhcnlGb3JlY2FzdD4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBTYWxhcnlGb3JlY2FzdCA9IFNhbGFyeUZvcmVjYXN0O1xuICB1cmw6IHN0cmluZyA9ICdzYWxhcnktZm9yZWNhc3RzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBJbmNvbWUgU291cmNlcyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRJbmNvbWVTb3VyY2VzKCk7XG4gICAgdGhpcy5saXN0ZW5Ub1VwZGF0ZWRJbmNvbWVTb3VyY2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgZXZlbnQgcmVsYXRlZCB0byBhZGRlZCBJbmNvbWUgU291cmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub0FkZGVkSW5jb21lU291cmNlcygpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5JTkNPTUVfU09VUkNFU19DUkVBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IGluY29tZVNvdXJjZXNcbiAgICAgICAgICAuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gaW5jb21lU291cmNlLmlzU2FsYXJ5SW5jb21lKCkpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pID0+IHtcblxuICAgICAgICBjb25zdCBzYWxhcnlGb3JlY2FzdHM6IFNhbGFyeUZvcmVjYXN0W10gPSB0aGlzLmFzc2lnblNhbGFyeUZvcmVjYXN0cyhpbmNvbWVTb3VyY2VzKTtcbiAgICAgICAgaWYgKHNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmFkZEJhdGNoKHNhbGFyeUZvcmVjYXN0cykuc3Vic2NyaWJlKChjcmVhdGVkU2FsYXJ5Rm9yZWNhc3RzOiBTYWxhcnlGb3JlY2FzdFtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2VcbiAgICAgICAgICAgICAgLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19DUkVBVEVELCBjcmVhdGVkU2FsYXJ5Rm9yZWNhc3RzKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIGV2ZW50IHJlbGF0ZWQgdG8gdXBkYXRlZCBJbmNvbWUgU291cmNlc1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Ub1VwZGF0ZWRJbmNvbWVTb3VyY2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX1VQREFURUQpXG4gICAgICAuc3Vic2NyaWJlKChpbmNvbWVTb3VyY2VzOiBJbmNvbWVTb3VyY2VbXSkgPT4ge1xuICAgICAgICBjb25zdCBzYWxhcnlGb3JlY2FzdHM6IFNhbGFyeUZvcmVjYXN0W10gPSB0aGlzLmFzc2lnblNhbGFyeUZvcmVjYXN0cyhpbmNvbWVTb3VyY2VzKTtcbiAgICAgICAgaWYgKHNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUJhdGNoKHNhbGFyeUZvcmVjYXN0cykuc3Vic2NyaWJlKCh1cGRhdGVkU2FsYXJ5Rm9yZWNhc3RzOiBTYWxhcnlGb3JlY2FzdFtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2VcbiAgICAgICAgICAgICAgLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLklOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19VUERBVEVELCB1cGRhdGVkU2FsYXJ5Rm9yZWNhc3RzKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc2lnbiBzYWxhcnkgZm9yZWNhc3RzIGJhc2VkIG9uIHByb3ZpZGVkIGluY29tZSBzb3VyY2VzXG4gICAqIEBwYXJhbSBpbmNvbWVTb3VyY2VzIGJ5IHdoaWNoIHNhbGFyeSBmb3JlY2FzdHMgd2lsbCBiZSBhc3NpZ25lZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3NpZ25TYWxhcnlGb3JlY2FzdHMoaW5jb21lU291cmNlczogSW5jb21lU291cmNlW10pOiBTYWxhcnlGb3JlY2FzdFtdIHtcbiAgICByZXR1cm4gaW5jb21lU291cmNlcy5tYXAoKGluY29tZVNvdXJjZTogSW5jb21lU291cmNlKSA9PiB7XG4gICAgICBpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzID0gaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0c1xuICAgICAgICAubWFwKChzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpID0+IHtcbiAgICAgICAgICBzYWxhcnlGb3JlY2FzdC5pbmNvbWVTb3VyY2UgPSBwbGFpblRvQ2xhc3MoSW5jb21lU291cmNlLCB7aWQ6IGluY29tZVNvdXJjZS5pZH0pO1xuICAgICAgICAgIHJldHVybiBzYWxhcnlGb3JlY2FzdDtcbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0cztcbiAgICB9KS5mbGF0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Service to work with intercom
|
|
5
|
+
*/
|
|
6
|
+
export class IntercomService {
|
|
7
|
+
constructor(environment) {
|
|
8
|
+
this.environment = environment;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Init object with user credentials
|
|
12
|
+
* @param user
|
|
13
|
+
*/
|
|
14
|
+
initUser(user) {
|
|
15
|
+
return {
|
|
16
|
+
app_id: this.environment.intercomAppId,
|
|
17
|
+
email: user.email,
|
|
18
|
+
user_hash: user.hashedEmail
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Init connection for provided data
|
|
23
|
+
* @param user
|
|
24
|
+
*/
|
|
25
|
+
initConnection(user) {
|
|
26
|
+
const connectionCredentials = this.initUser(user);
|
|
27
|
+
window.Intercom('boot', connectionCredentials);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
IntercomService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IntercomService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
+
IntercomService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IntercomService, providedIn: 'root' });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: IntercomService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
38
|
+
type: Inject,
|
|
39
|
+
args: ['environment']
|
|
40
|
+
}] }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjb20uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9pbnRlcmNvbS9pbnRlcmNvbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRDs7R0FFRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQ2lDLFdBQWdCO1FBQWhCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO0lBRWpELENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsSUFBVTtRQUNqQixPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTtZQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLElBQVU7UUFDdkIsTUFBTSxxQkFBcUIsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE1BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDeEQsQ0FBQzs7NkdBMUJVLGVBQWUsa0JBRWhCLGFBQWE7aUhBRlosZUFBZSxjQUZkLE1BQU07NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyL3VzZXInO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gd29yayB3aXRoIGludGVyY29tXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEludGVyY29tU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgb2JqZWN0IHdpdGggdXNlciBjcmVkZW50aWFsc1xuICAgKiBAcGFyYW0gdXNlclxuICAgKi9cbiAgaW5pdFVzZXIodXNlcjogVXNlcik6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcF9pZDogdGhpcy5lbnZpcm9ubWVudC5pbnRlcmNvbUFwcElkLFxuICAgICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgICB1c2VyX2hhc2g6IHVzZXIuaGFzaGVkRW1haWxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgY29ubmVjdGlvbiBmb3IgcHJvdmlkZWQgZGF0YVxuICAgKiBAcGFyYW0gdXNlclxuICAgKi9cbiAgaW5pdENvbm5lY3Rpb24odXNlcjogVXNlcik6IHZvaWQge1xuICAgIGNvbnN0IGNvbm5lY3Rpb25DcmVkZW50aWFsczogb2JqZWN0ID0gdGhpcy5pbml0VXNlcih1c2VyKTtcblxuICAgICg8YW55PndpbmRvdykuSW50ZXJjb20oJ2Jvb3QnLCBjb25uZWN0aW9uQ3JlZGVudGlhbHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { replace } from '../../functions/array';
|
|
4
|
+
import { BaseRestService } from '../base-rest.service';
|
|
5
|
+
import { plainToClass } from 'class-transformer';
|
|
6
|
+
import { Loan } from '../../models/loan/loan';
|
|
7
|
+
import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
|
|
8
|
+
import { AppEvent } from '../../models/event/app-event';
|
|
9
|
+
import { LoanPayout } from '../../models/loan/loan-payout';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "../event/event-dispatcher.service";
|
|
13
|
+
/**
|
|
14
|
+
* Service that handling loans logic
|
|
15
|
+
*/
|
|
16
|
+
export class LoanService extends BaseRestService {
|
|
17
|
+
constructor(http, eventDispatcherService, environment) {
|
|
18
|
+
super(http, eventDispatcherService, environment);
|
|
19
|
+
this.http = http;
|
|
20
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
21
|
+
this.environment = environment;
|
|
22
|
+
this.url = 'bank-accounts/loans';
|
|
23
|
+
this.modelClass = Loan;
|
|
24
|
+
this.listenEvents();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Listen to Loans events
|
|
28
|
+
*/
|
|
29
|
+
listenEvents() {
|
|
30
|
+
this.listenToAddedLoans();
|
|
31
|
+
this.listenToUpdatedBankAccounts();
|
|
32
|
+
}
|
|
33
|
+
listenToAddedLoans() {
|
|
34
|
+
this.eventDispatcherService.on(AppEventTypeEnum.BANK_ACCOUNT_CREATED)
|
|
35
|
+
.subscribe((bankAccounts) => {
|
|
36
|
+
// fetch loans when loan bank account created
|
|
37
|
+
if (bankAccounts.find(ba => !!ba.loan)) {
|
|
38
|
+
this.resetCache();
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
listenToUpdatedBankAccounts() {
|
|
43
|
+
this.eventDispatcherService.on(AppEventTypeEnum.BANK_ACCOUNT_UPDATED)
|
|
44
|
+
.subscribe((updatedBankAccount) => {
|
|
45
|
+
if (!!updatedBankAccount.loan) {
|
|
46
|
+
this.resetCache();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create Loan
|
|
52
|
+
*/
|
|
53
|
+
add(model) {
|
|
54
|
+
return this.addBatch([model])
|
|
55
|
+
.pipe(map((newLoan) => {
|
|
56
|
+
return newLoan[0];
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Updated loan
|
|
61
|
+
* @param loan
|
|
62
|
+
*/
|
|
63
|
+
update(loan) {
|
|
64
|
+
return this.http.put(`${this.environment.apiV2}/${this.url}/${loan.id}`, loan)
|
|
65
|
+
.pipe(map((updatedLoanBase) => {
|
|
66
|
+
const updatedLoan = plainToClass(Loan, updatedLoanBase);
|
|
67
|
+
// if loan type is NOT vehicle - fire EventDispatcher event
|
|
68
|
+
if (!updatedLoan.isVehicle()) {
|
|
69
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.LOAN_UPDATED, null));
|
|
70
|
+
}
|
|
71
|
+
replace(this.cache, updatedLoan);
|
|
72
|
+
this.updateCache();
|
|
73
|
+
return updatedLoan;
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get list of vehicle loans
|
|
78
|
+
*/
|
|
79
|
+
getVehicleLoans() {
|
|
80
|
+
return this.get()
|
|
81
|
+
.pipe(map((loans) => {
|
|
82
|
+
return loans.filter((loan) => loan.isVehicle());
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Calculate loan payments
|
|
87
|
+
* @param loan
|
|
88
|
+
*/
|
|
89
|
+
calculateLoanPayments(loan) {
|
|
90
|
+
return this.http.post(`${this.environment.apiV2}/${this.url}/calculation`, loan).pipe(map((response) => {
|
|
91
|
+
return plainToClass(Loan, response);
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Add new loan payout
|
|
96
|
+
* @param loan
|
|
97
|
+
* @param paidOutLoan
|
|
98
|
+
*/
|
|
99
|
+
addPayoutLoan(loan, paidOutLoan) {
|
|
100
|
+
return this.http.post(`${this.environment.apiV2}/loans/${loan.id}/payout`, paidOutLoan).pipe(map((response) => {
|
|
101
|
+
loan.payout = plainToClass(LoanPayout, response);
|
|
102
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.LOAN_PAYOUT_UPDATED, null));
|
|
103
|
+
// reset cache to fetch loans with updated data
|
|
104
|
+
this.resetCache();
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Delete loan payout
|
|
109
|
+
* @param loan
|
|
110
|
+
* @param payout
|
|
111
|
+
*/
|
|
112
|
+
deletePayoutLoan(loan, payout) {
|
|
113
|
+
return this.http.delete(`${this.environment.apiV2}/loans/${loan.id}/payout/${payout.id}`).pipe(map(() => {
|
|
114
|
+
loan.payout = null;
|
|
115
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.LOAN_PAYOUT_UPDATED, null));
|
|
116
|
+
// reset cache to fetch loans with updated data
|
|
117
|
+
this.resetCache();
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Update loan payout
|
|
122
|
+
* @param loan
|
|
123
|
+
* @param paidOutLoan
|
|
124
|
+
*/
|
|
125
|
+
updatePayoutLoan(loan, paidOutLoan) {
|
|
126
|
+
return this.http.put(`${this.environment.apiV2}/loans/${loan.id}/payout/${paidOutLoan.id}`, paidOutLoan).pipe(map((response) => {
|
|
127
|
+
loan.payout = plainToClass(LoanPayout, response);
|
|
128
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.LOAN_PAYOUT_UPDATED, null));
|
|
129
|
+
// reset cache to fetch loans with updated data
|
|
130
|
+
this.resetCache();
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
LoanService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LoanService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
135
|
+
LoanService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LoanService, providedIn: 'root' });
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: LoanService, decorators: [{
|
|
137
|
+
type: Injectable,
|
|
138
|
+
args: [{
|
|
139
|
+
providedIn: 'root'
|
|
140
|
+
}]
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
142
|
+
type: Inject,
|
|
143
|
+
args: ['environment']
|
|
144
|
+
}] }]; } });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvYW4vbG9hbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUUzRDs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBK0I7SUFJOUQsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0I7UUFFakQsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFObkQsUUFBRyxHQUFXLHFCQUFxQixDQUFDO1FBQ3BDLGVBQVUsR0FBZ0IsSUFBSSxDQUFDO1FBUTdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZ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SCxnQkFBZ0IsQ0FBQyxJQUFVLEVBQUUsV0FBdUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQyxFQUFFLFdBQVcsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvRiwrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOzt5R0EvSVUsV0FBVyxrRkFPWixhQUFhOzZHQVBaLFdBQVcsY0FGVixNQUFNOzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFRSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvYW4gYXMgTG9hbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvbG9hbic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCYXNlUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLXJlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBMb2FuIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvYW4vbG9hbic7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uL21vZGVscy9iYW5rL2JhbmstYWNjb3VudCc7XG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuaW1wb3J0IHsgTG9hblBheW91dCB9IGZyb20gJy4uLy4uL21vZGVscy9sb2FuL2xvYW4tcGF5b3V0JztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaGFuZGxpbmcgbG9hbnMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9hblNlcnZpY2UgZXh0ZW5kcyBCYXNlUmVzdFNlcnZpY2U8TG9hbkJhc2UsIExvYW4+IHtcbiAgdXJsOiBzdHJpbmcgPSAnYmFuay1hY2NvdW50cy9sb2Fucyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBMb2FuID0gTG9hbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICAgIHN1cGVyKGh0dHAsIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBMb2FucyBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblRvQWRkZWRMb2FucygpO1xuICAgIHRoaXMubGlzdGVuVG9VcGRhdGVkQmFua0FjY291bnRzKCk7XG4gIH1cblxuICBsaXN0ZW5Ub0FkZGVkTG9hbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uQkFOS19BQ0NPVU5UX0NSRUFURUQpXG4gICAgICAuc3Vic2NyaWJlKChiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50W10pID0+IHtcbiAgICAgICAgLy8gZmV0Y2ggbG9hbnMgd2hlbiBsb2FuIGJhbmsgYWNjb3VudCBjcmVhdGVkXG4gICAgICAgIGlmIChiYW5rQWNjb3VudHMuZmluZChiYSA9PiAhIWJhLmxvYW4pKSB7XG4gICAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbGlzdGVuVG9VcGRhdGVkQmFua0FjY291bnRzKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLkJBTktfQUNDT1VOVF9VUERBVEVEKVxuICAgICAgLnN1YnNjcmliZSgodXBkYXRlZEJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoISF1cGRhdGVkQmFua0FjY291bnQubG9hbikge1xuICAgICAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgTG9hblxuICAgKi9cbiAgYWRkKG1vZGVsOiBMb2FuKTogT2JzZXJ2YWJsZTxMb2FuPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkQmF0Y2goW21vZGVsXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0xvYW46IExvYW5bXSk6IExvYW4gPT4ge1xuICAgICAgICAgIHJldHVybiBuZXdMb2FuWzBdO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVkIGxvYW5cbiAgICogQHBhcmFtIGxvYW5cbiAgICovXG4gIHVwZGF0ZShsb2FuOiBMb2FuKTogT2JzZXJ2YWJsZTxMb2FuPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHtsb2FuLmlkfWAsIGxvYW4pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkTG9hbkJhc2U6IExvYW5CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZExvYW46IExvYW4gPSBwbGFpblRvQ2xhc3MoTG9hbiwgdXBkYXRlZExvYW5CYXNlKTtcbiAgICAgICAgICAvLyBpZiBsb2FuIHR5cGUgaXMgTk9UIHZlaGljbGUgLSBmaXJlIEV2ZW50RGlzcGF0Y2hlciBldmVudFxuICAgICAgICAgIGlmICghdXBkYXRlZExvYW4uaXNWZWhpY2xlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5MT0FOX1VQREFURUQsIG51bGwpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRMb2FuKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRMb2FuO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiB2ZWhpY2xlIGxvYW5zXG4gICAqL1xuICBnZXRWZWhpY2xlTG9hbnMoKTogT2JzZXJ2YWJsZTxMb2FuW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobG9hbnM6IExvYW5bXSkgPT4ge1xuICAgICAgICAgIHJldHVybiBsb2Fucy5maWx0ZXIoKGxvYW46IExvYW4pID0+IGxvYW4uaXNWZWhpY2xlKCkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgbG9hbiBwYXltZW50c1xuICAgKiBAcGFyYW0gbG9hblxuICAgKi9cbiAgY2FsY3VsYXRlTG9hblBheW1lbnRzKGxvYW46IExvYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS9jYWxjdWxhdGlvbmAsIGxvYW4pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHBsYWluVG9DbGFzcyhMb2FuLCByZXNwb25zZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyBsb2FuIHBheW91dFxuICAgKiBAcGFyYW0gbG9hblxuICAgKiBAcGFyYW0gcGFpZE91dExvYW5cbiAgICovXG4gIGFkZFBheW91dExvYW4obG9hbjogTG9hbiwgcGFpZE91dExvYW46IExvYW5QYXlvdXQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9sb2Fucy8ke2xvYW4uaWR9L3BheW91dGAsIHBhaWRPdXRMb2FuKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgbG9hbi5wYXlvdXQgPSBwbGFpblRvQ2xhc3MoTG9hblBheW91dCwgcmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5MT0FOX1BBWU9VVF9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgLy8gcmVzZXQgY2FjaGUgdG8gZmV0Y2ggbG9hbnMgd2l0aCB1cGRhdGVkIGRhdGFcbiAgICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgICAgfVxuICAgICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGxvYW4gcGF5b3V0XG4gICAqIEBwYXJhbSBsb2FuXG4gICAqIEBwYXJhbSBwYXlvdXRcbiAgICovXG4gIGRlbGV0ZVBheW91dExvYW4obG9hbjogTG9hbiwgcGF5b3V0OiBMb2FuUGF5b3V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9sb2Fucy8ke2xvYW4uaWR9L3BheW91dC8ke3BheW91dC5pZH1gKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBsb2FuLnBheW91dCA9IG51bGw7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkxPQU5fUEFZT1VUX1VQREFURUQsIG51bGwpKTtcbiAgICAgICAgICAvLyByZXNldCBjYWNoZSB0byBmZXRjaCBsb2FucyB3aXRoIHVwZGF0ZWQgZGF0YVxuICAgICAgICAgIHRoaXMucmVzZXRDYWNoZSgpO1xuICAgICAgICB9XG4gICAgICApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbG9hbiBwYXlvdXRcbiAgICogQHBhcmFtIGxvYW5cbiAgICogQHBhcmFtIHBhaWRPdXRMb2FuXG4gICAqL1xuICB1cGRhdGVQYXlvdXRMb2FuKGxvYW46IExvYW4sIHBhaWRPdXRMb2FuOiBMb2FuUGF5b3V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9sb2Fucy8ke2xvYW4uaWR9L3BheW91dC8ke3BhaWRPdXRMb2FuLmlkfWAsIHBhaWRPdXRMb2FuKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgbG9hbi5wYXlvdXQgPSBwbGFpblRvQ2xhc3MoTG9hblBheW91dCwgcmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5MT0FOX1BBWU9VVF9VUERBVEVELCBudWxsKSk7XG4gICAgICAgICAgLy8gcmVzZXQgY2FjaGUgdG8gZmV0Y2ggbG9hbnMgd2l0aCB1cGRhdGVkIGRhdGFcbiAgICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgICAgfVxuICAgICAgKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Notification } from '../../models/notification/notification';
|
|
3
|
+
import { replace } from '../../functions/array';
|
|
4
|
+
import { plainToClass } from 'class-transformer';
|
|
5
|
+
import { BaseRestService } from '../base-rest.service';
|
|
6
|
+
import { AppEvent } from '../../models/event/app-event';
|
|
7
|
+
import { AppEventTypeEnum } from '../../models/event/app-event-type.enum';
|
|
8
|
+
import clone from 'lodash/clone';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "../event/event-dispatcher.service";
|
|
12
|
+
import * as i3 from "../event/sse.service";
|
|
13
|
+
/**
|
|
14
|
+
* Service to handle service notifications logic
|
|
15
|
+
*/
|
|
16
|
+
export class NotificationService extends BaseRestService {
|
|
17
|
+
constructor(http, eventDispatcherService, environment, sseService) {
|
|
18
|
+
super(http, eventDispatcherService, environment);
|
|
19
|
+
this.http = http;
|
|
20
|
+
this.eventDispatcherService = eventDispatcherService;
|
|
21
|
+
this.environment = environment;
|
|
22
|
+
this.sseService = sseService;
|
|
23
|
+
this.modelClass = Notification;
|
|
24
|
+
this.url = 'service-notifications';
|
|
25
|
+
this.isHydra = true;
|
|
26
|
+
this.listenEvents();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* SSE and Event Dispatcher Services listeners
|
|
30
|
+
*/
|
|
31
|
+
listenEvents() {
|
|
32
|
+
this.listenNotifications();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* subscribe to new chat messages
|
|
36
|
+
*/
|
|
37
|
+
listenNotifications() {
|
|
38
|
+
this.sseService.on(`serviceNotification`).subscribe((notificationBase) => {
|
|
39
|
+
const notification = plainToClass(Notification, notificationBase);
|
|
40
|
+
const cache = clone(this.cache);
|
|
41
|
+
// update existing notification if read and add new notification if not read
|
|
42
|
+
if (notification.isRead) {
|
|
43
|
+
replace(cache, notification);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
cache.unshift(notification);
|
|
47
|
+
}
|
|
48
|
+
this.cache = cache;
|
|
49
|
+
this.cacheSubject.next(this.cache);
|
|
50
|
+
this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.NOTIFICATION_ADDED, notification));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: NotificationService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.SseService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: NotificationService, providedIn: 'root' });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: NotificationService, decorators: [{
|
|
57
|
+
type: Injectable,
|
|
58
|
+
args: [{
|
|
59
|
+
providedIn: 'root'
|
|
60
|
+
}]
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: ['environment']
|
|
64
|
+
}] }, { type: i3.SseService }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFBOzs7OztBQUNoQzs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUErQztJQUt0RixZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUN2QixXQUFnQixFQUN6QyxVQUFzQjtRQUU5QixLQUFLLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTHZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN6QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBUmhDLGVBQVUsR0FBd0IsWUFBWSxDQUFDO1FBQy9DLFFBQUcsR0FBVyx1QkFBdUIsQ0FBQztRQUN0QyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBU3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWtDLEVBQVEsRUFBRTtZQUMvRixNQUFNLFlBQVksR0FBaUIsWUFBWSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sS0FBSyxHQUFtQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hELDRFQUE0RTtZQUM1RSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM3QjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEF2Q1UsbUJBQW1CLGtGQVFwQixhQUFhO3FIQVJaLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZU5vdGlmaWNhdGlvbiBhcyBOb3RpZmljYXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3NlcnZpY2Utbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZXZlbnQtbGlzdGVuZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IHJlcGxhY2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQmFzZVJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vZXZlbnQvc3NlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50JztcbmltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJ1xuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBzZXJ2aWNlIG5vdGlmaWNhdGlvbnMgbG9naWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSBleHRlbmRzIEJhc2VSZXN0U2VydmljZTxOb3RpZmljYXRpb25CYXNlLCBOb3RpZmljYXRpb24+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBtb2RlbENsYXNzOiB0eXBlb2YgTm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uO1xuICB1cmw6IHN0cmluZyA9ICdzZXJ2aWNlLW5vdGlmaWNhdGlvbnMnO1xuICBpc0h5ZHJhOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByaXZhdGUgc3NlU2VydmljZTogU3NlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTU0UgYW5kIEV2ZW50IERpc3BhdGNoZXIgU2VydmljZXMgbGlzdGVuZXJzXG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogc3Vic2NyaWJlIHRvIG5ldyBjaGF0IG1lc3NhZ2VzXG4gICAqL1xuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zc2VTZXJ2aWNlLm9uKGBzZXJ2aWNlTm90aWZpY2F0aW9uYCkuc3Vic2NyaWJlKChub3RpZmljYXRpb25CYXNlOiBOb3RpZmljYXRpb25CYXNlKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbiA9IHBsYWluVG9DbGFzcyhOb3RpZmljYXRpb24sIG5vdGlmaWNhdGlvbkJhc2UpO1xuICAgICAgY29uc3QgY2FjaGU6IE5vdGlmaWNhdGlvbltdID0gY2xvbmUodGhpcy5jYWNoZSk7XG4gICAgICAvLyB1cGRhdGUgZXhpc3Rpbmcgbm90aWZpY2F0aW9uIGlmIHJlYWQgYW5kIGFkZCBuZXcgbm90aWZpY2F0aW9uIGlmIG5vdCByZWFkXG4gICAgICBpZiAobm90aWZpY2F0aW9uLmlzUmVhZCkge1xuICAgICAgICByZXBsYWNlKGNhY2hlLCBub3RpZmljYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FjaGUudW5zaGlmdChub3RpZmljYXRpb24pO1xuICAgICAgfVxuICAgICAgdGhpcy5jYWNoZSA9IGNhY2hlO1xuICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5OT1RJRklDQVRJT05fQURERUQsIG5vdGlmaWNhdGlvbikpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class PreloaderService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.activePreloaders = new BehaviorSubject([]);
|
|
7
|
+
}
|
|
8
|
+
get() {
|
|
9
|
+
return this.activePreloaders.asObservable();
|
|
10
|
+
}
|
|
11
|
+
add(endpoint) {
|
|
12
|
+
const activePreloaders = this.activePreloaders.getValue();
|
|
13
|
+
activePreloaders.push(endpoint);
|
|
14
|
+
this.activePreloaders.next(activePreloaders);
|
|
15
|
+
}
|
|
16
|
+
delete(endpoint) {
|
|
17
|
+
let activePreloaders = this.activePreloaders.getValue();
|
|
18
|
+
activePreloaders = activePreloaders.filter((preloader) => preloader !== endpoint);
|
|
19
|
+
this.activePreloaders.next(activePreloaders);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
PreloaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
PreloaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderService, providedIn: 'root' });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: function () { return []; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcHJlbG9hZGVyL3ByZWxvYWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUZBLHFCQUFnQixHQUFnQyxJQUFJLGVBQWUsQ0FBYSxFQUFFLENBQUMsQ0FBQztJQUVwRSxDQUFDO0lBRWpCLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsR0FBRyxDQUFDLFFBQWtCO1FBQ3BCLE1BQU0sZ0JBQWdCLEdBQWUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFrQjtRQUN2QixJQUFJLGdCQUFnQixHQUFlLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFtQixFQUFXLEVBQUUsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OzhHQW5CVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW5kcG9pbnQvZW5kcG9pbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcmVsb2FkZXJTZXJ2aWNlIHtcbiAgYWN0aXZlUHJlbG9hZGVyczogQmVoYXZpb3JTdWJqZWN0PEVuZHBvaW50W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbmRwb2ludFtdPihbXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxFbmRwb2ludFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUHJlbG9hZGVycy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGFkZChlbmRwb2ludDogRW5kcG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVQcmVsb2FkZXJzOiBFbmRwb2ludFtdID0gdGhpcy5hY3RpdmVQcmVsb2FkZXJzLmdldFZhbHVlKCk7XG4gICAgYWN0aXZlUHJlbG9hZGVycy5wdXNoKGVuZHBvaW50KTtcbiAgICB0aGlzLmFjdGl2ZVByZWxvYWRlcnMubmV4dChhY3RpdmVQcmVsb2FkZXJzKTtcbiAgfVxuXG4gIGRlbGV0ZShlbmRwb2ludDogRW5kcG9pbnQpOiB2b2lkIHtcbiAgICBsZXQgYWN0aXZlUHJlbG9hZGVyczogRW5kcG9pbnRbXSA9IHRoaXMuYWN0aXZlUHJlbG9hZGVycy5nZXRWYWx1ZSgpO1xuICAgIGFjdGl2ZVByZWxvYWRlcnMgPSBhY3RpdmVQcmVsb2FkZXJzLmZpbHRlcigocHJlbG9hZGVyOiBFbmRwb2ludCk6IGJvb2xlYW4gPT4gcHJlbG9hZGVyICE9PSBlbmRwb2ludCk7XG4gICAgdGhpcy5hY3RpdmVQcmVsb2FkZXJzLm5leHQoYWN0aXZlUHJlbG9hZGVycyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ReplaySubject } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { plainToClass } from 'class-transformer';
|
|
5
|
+
import { CorelogicSuggestion } from '../../models/property/corelogic-suggestion';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
export class CorelogicService {
|
|
9
|
+
constructor(http, environment) {
|
|
10
|
+
this.http = http;
|
|
11
|
+
this.environment = environment;
|
|
12
|
+
this.accessTokenSubject = new ReplaySubject(1);
|
|
13
|
+
}
|
|
14
|
+
getAccessToken(force = false) {
|
|
15
|
+
if (!this._accessToken || force) {
|
|
16
|
+
this.http.get(`${this.environment.coreLogicUrl}/access/oauth/token?grant_type=client_credentials&client_id=${this.environment.coreLogicId}&client_secret=${this.environment.coreLogicSecret}`)
|
|
17
|
+
.pipe(map((response) => {
|
|
18
|
+
return response.access_token;
|
|
19
|
+
}))
|
|
20
|
+
.subscribe((token) => {
|
|
21
|
+
this._accessToken = token;
|
|
22
|
+
this.accessTokenSubject.next(this._accessToken);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return this.accessTokenSubject.asObservable();
|
|
26
|
+
}
|
|
27
|
+
getSuggestions(query, country = 'au') {
|
|
28
|
+
// @TODO handle different countries in future
|
|
29
|
+
return this.http.get(`${this.environment.coreLogicUrl}/property/${country}/v2/suggest.json?q=${query}`)
|
|
30
|
+
.pipe(map((response) => {
|
|
31
|
+
return response.suggestions.map((item) => plainToClass(CorelogicSuggestion, item));
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
CorelogicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
CorelogicService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicService, providedIn: 'root' });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicService, decorators: [{
|
|
38
|
+
type: Injectable,
|
|
39
|
+
args: [{
|
|
40
|
+
providedIn: 'root'
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
43
|
+
type: Inject,
|
|
44
|
+
args: ['environment']
|
|
45
|
+
}] }]; } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZWxvZ2ljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcHJvcGVydHkvY29yZWxvZ2ljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7QUFLakYsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUNVLElBQWdCLEVBQ08sV0FBZ0I7UUFEdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNPLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBSmpELHVCQUFrQixHQUEwQixJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQU16RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWlCLEtBQUs7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLCtEQUErRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsa0JBQWtCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQzNMLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYSxFQUFFLFVBQWtCLElBQUk7UUFDbEQsNkNBQTZDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksYUFBYSxPQUFPLHNCQUFzQixLQUFLLEVBQUUsQ0FBQzthQUNwRyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDcEIsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7OzhHQW5DVSxnQkFBZ0IsNENBTWpCLGFBQWE7a0hBTlosZ0JBQWdCLGNBRmYsTUFBTTs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb3JlbG9naWNTdWdnZXN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L2NvcmVsb2dpYy1zdWdnZXN0aW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29yZWxvZ2ljU2VydmljZSB7XG4gIF9hY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBhY2Nlc3NUb2tlblN1YmplY3Q6IFJlcGxheVN1YmplY3Q8c3RyaW5nPiA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55XG4gICkge1xuICB9XG5cbiAgZ2V0QWNjZXNzVG9rZW4oZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLl9hY2Nlc3NUb2tlbiB8fCBmb3JjZSkge1xuICAgICAgdGhpcy5odHRwLmdldChgJHt0aGlzLmVudmlyb25tZW50LmNvcmVMb2dpY1VybH0vYWNjZXNzL29hdXRoL3Rva2VuP2dyYW50X3R5cGU9Y2xpZW50X2NyZWRlbnRpYWxzJmNsaWVudF9pZD0ke3RoaXMuZW52aXJvbm1lbnQuY29yZUxvZ2ljSWR9JmNsaWVudF9zZWNyZXQ9JHt0aGlzLmVudmlyb25tZW50LmNvcmVMb2dpY1NlY3JldH1gKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5hY2Nlc3NfdG9rZW47XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5fYWNjZXNzVG9rZW4gPSB0b2tlbjtcbiAgICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuU3ViamVjdC5uZXh0KHRoaXMuX2FjY2Vzc1Rva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzVG9rZW5TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0U3VnZ2VzdGlvbnMocXVlcnk6IHN0cmluZywgY291bnRyeTogc3RyaW5nID0gJ2F1Jyk6IE9ic2VydmFibGU8Q29yZWxvZ2ljU3VnZ2VzdGlvbltdPiB7XG4gICAgLy8gQFRPRE8gaGFuZGxlIGRpZmZlcmVudCBjb3VudHJpZXMgaW4gZnV0dXJlXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5lbnZpcm9ubWVudC5jb3JlTG9naWNVcmx9L3Byb3BlcnR5LyR7Y291bnRyeX0vdjIvc3VnZ2VzdC5qc29uP3E9JHtxdWVyeX1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5zdWdnZXN0aW9ucy5tYXAoKGl0ZW06IG9iamVjdCkgPT4gcGxhaW5Ub0NsYXNzKENvcmVsb2dpY1N1Z2dlc3Rpb24sIGl0ZW0pKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { combineLatest } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Service with calculations methods for properties related with other entities.
|
|
7
|
+
* Logic here works like collections methods but for several entities
|
|
8
|
+
*/
|
|
9
|
+
export class PropertyCalculationService {
|
|
10
|
+
getTaxPosition(transactions, depreciations) {
|
|
11
|
+
// @TODO hack: math abs added because we have mismatching of real values signs
|
|
12
|
+
return transactions.cashPosition - Math.abs(depreciations.claimAmount);
|
|
13
|
+
}
|
|
14
|
+
getTaxPosition$(transactions$, depreciations$) {
|
|
15
|
+
return combineLatest([
|
|
16
|
+
transactions$,
|
|
17
|
+
depreciations$
|
|
18
|
+
]).pipe(map(([transactions, depreciations]) => {
|
|
19
|
+
return this.getTaxPosition(transactions, depreciations);
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
taxPositionGrowth(properties, transactions, depreciations) {
|
|
23
|
+
const taxPosition = this.getTaxPosition(transactions, depreciations);
|
|
24
|
+
// check if taxPosition = 0 to avoid division by zero
|
|
25
|
+
if (!taxPosition) {
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
return (taxPosition - properties.forecastedTaxPosition) / taxPosition;
|
|
29
|
+
}
|
|
30
|
+
taxPositionGrowth$(properties$, transactions$, depreciations$) {
|
|
31
|
+
return combineLatest([
|
|
32
|
+
properties$,
|
|
33
|
+
transactions$,
|
|
34
|
+
depreciations$
|
|
35
|
+
]).pipe(map(([properties, transactions, depreciations]) => {
|
|
36
|
+
return this.taxPositionGrowth(properties, transactions, depreciations);
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
getRentalReturn(properties, transactions) {
|
|
40
|
+
return transactions.claimIncome / properties.marketValue;
|
|
41
|
+
}
|
|
42
|
+
getLoanAmount(properties, bankAccounts, loans) {
|
|
43
|
+
return properties.items.reduce((totalAmount, property) => {
|
|
44
|
+
return totalAmount + bankAccounts.items
|
|
45
|
+
.reduce((propertyAmount, bankAccount) => {
|
|
46
|
+
var _a;
|
|
47
|
+
return propertyAmount + bankAccount.getPropertyPercentage(property.id) * (((_a = loans.getByBankAccountId(bankAccount.id)) === null || _a === void 0 ? void 0 : _a.amount) || 0);
|
|
48
|
+
}, 0);
|
|
49
|
+
}, 0);
|
|
50
|
+
}
|
|
51
|
+
getLoanValue(properties, bankAccounts) {
|
|
52
|
+
return properties.items.reduce((totalAmount, property) => {
|
|
53
|
+
return totalAmount + bankAccounts.items
|
|
54
|
+
.reduce((propertyAmount, bankAccount) => {
|
|
55
|
+
return propertyAmount + bankAccount.getPropertyBalanceAmount(property.id);
|
|
56
|
+
}, 0);
|
|
57
|
+
}, 0);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* LVR
|
|
61
|
+
*/
|
|
62
|
+
getLvr(properties, bankAccounts) {
|
|
63
|
+
// Math abs is required for correct percentage calculation
|
|
64
|
+
return Math.abs(this.getLoanValue(properties, bankAccounts)) / properties.marketValue;
|
|
65
|
+
}
|
|
66
|
+
getLvr$(properties$, bankAccounts$) {
|
|
67
|
+
return combineLatest([
|
|
68
|
+
properties$,
|
|
69
|
+
bankAccounts$
|
|
70
|
+
]).pipe(map(([properties, bankAccounts]) => {
|
|
71
|
+
return this.getLvr(properties, bankAccounts);
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
getLvrCommencement(properties, loans, bankAccounts) {
|
|
75
|
+
// Math abs is required for correct percentage calculation
|
|
76
|
+
return Math.abs(this.getLoanAmount(properties, bankAccounts, loans)) / properties.purchasePrice;
|
|
77
|
+
}
|
|
78
|
+
getLvrCommencement$(properties$, bankAccounts$, loans$) {
|
|
79
|
+
return combineLatest([
|
|
80
|
+
properties$,
|
|
81
|
+
bankAccounts$,
|
|
82
|
+
loans$
|
|
83
|
+
]).pipe(map(([properties, bankAccounts, loans]) => {
|
|
84
|
+
return this.getLvrCommencement(properties, loans, bankAccounts);
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
getLvrGrowth(properties, bankAccounts, loans) {
|
|
88
|
+
const lvr = this.getLvr(properties, bankAccounts);
|
|
89
|
+
if (!lvr) {
|
|
90
|
+
// check if lvr = 0 to avoid division by zero
|
|
91
|
+
return 0;
|
|
92
|
+
}
|
|
93
|
+
return (lvr - this.getLvrCommencement(properties, loans, bankAccounts)) / lvr;
|
|
94
|
+
}
|
|
95
|
+
getLvrGrowth$(properties$, bankAccounts$, loans$) {
|
|
96
|
+
return combineLatest([
|
|
97
|
+
properties$,
|
|
98
|
+
bankAccounts$,
|
|
99
|
+
loans$
|
|
100
|
+
]).pipe(map(([properties, bankAccounts, loans]) => {
|
|
101
|
+
return this.getLvrGrowth(properties, bankAccounts, loans);
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
getEquityPosition(properties, bankAccounts) {
|
|
105
|
+
// Math abs is required for correct percentage calculation
|
|
106
|
+
return properties.marketValue - Math.abs(this.getLoanValue(properties, bankAccounts));
|
|
107
|
+
}
|
|
108
|
+
getPurchaseEquity(properties, bankAccounts, loans) {
|
|
109
|
+
// Math abs is required for correct percentage calculation
|
|
110
|
+
return properties.purchasePrice - Math.abs(this.getLoanAmount(properties, bankAccounts, loans));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
PropertyCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
114
|
+
PropertyCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCalculationService, providedIn: 'root' });
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCalculationService, decorators: [{
|
|
116
|
+
type: Injectable,
|
|
117
|
+
args: [{
|
|
118
|
+
providedIn: 'root'
|
|
119
|
+
}]
|
|
120
|
+
}] });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3JDOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsZUFBZSxDQUNiLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLGFBQWE7WUFDYixjQUFjO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQWtELEVBQVUsRUFBRTtZQUM3RixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBOEIsRUFBRSxZQUFtQyxFQUFFLGFBQXFDO1FBQzFILE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLFdBQTJDLEVBQzNDLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLFdBQVc7WUFDWCxhQUFhO1lBQ2IsY0FBYztTQUNmLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBc0UsRUFBVSxFQUFFO1lBQzdILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBOEIsRUFBRSxZQUFtQztRQUNqRixPQUFPLFlBQVksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMzRCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQThCLEVBQUUsWUFBbUMsRUFBRSxLQUFxQjtRQUN0RyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBbUIsRUFBRSxRQUFrQixFQUFVLEVBQUU7WUFDakYsT0FBTyxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUs7aUJBQ3BDLE1BQU0sQ0FBQyxDQUFDLGNBQXNCLEVBQUUsV0FBd0IsRUFBVSxFQUFFOztnQkFDbkUsT0FBTyxjQUFjLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUEsTUFBQSxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUE4QixFQUFFLFlBQW1DO1FBQzlFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFtQixFQUFFLFFBQWtCLEVBQVUsRUFBRTtZQUNqRixPQUFPLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSztpQkFDcEMsTUFBTSxDQUFDLENBQUMsY0FBc0IsRUFBRSxXQUF3QixFQUFVLEVBQUU7Z0JBQ25FLE9BQU8sY0FBYyxHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBRUgsTUFBTSxDQUFDLFVBQThCLEVBQUUsWUFBbUM7UUFDeEUsMERBQTBEO1FBQzFELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDeEYsQ0FBQztJQUVELE9BQU8sQ0FDTCxXQUEyQyxFQUMzQyxhQUFnRDtRQUVoRCxPQUFPLGFBQWEsQ0FBQztZQUNuQixXQUFXO1lBQ1gsYUFBYTtTQUNkLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUE4QyxFQUFVLEVBQUU7WUFDdEYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQThCLEVBQUUsS0FBcUIsRUFBRSxZQUFtQztRQUMzRywwREFBMEQ7UUFDMUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDbEcsQ0FBQztJQUVELG1CQUFtQixDQUNqQixXQUEyQyxFQUMzQyxhQUFnRCxFQUNoRCxNQUFrQztRQUVsQyxPQUFPLGFBQWEsQ0FBQztZQUNuQixXQUFXO1lBQ1gsYUFBYTtZQUNiLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQThELEVBQVUsRUFBRTtZQUM3RyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLFVBQThCLEVBQUUsWUFBbUMsRUFBRSxLQUFxQjtRQUNyRyxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsNkNBQTZDO1lBQzdDLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxhQUFhLENBQ1gsV0FBMkMsRUFDM0MsYUFBZ0QsRUFDaEQsTUFBa0M7UUFFbEMsT0FBTyxhQUFhLENBQUM7WUFDbkIsV0FBVztZQUNYLGFBQWE7WUFDYixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUE4RCxFQUFVLEVBQUU7WUFDN0csT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFFLFlBQW1DO1FBQ25GLDBEQUEwRDtRQUMxRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFFLFlBQW1DLEVBQUUsS0FBcUI7UUFDMUcsMERBQTBEO1FBQzFELE9BQU8sVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O3dIQWxKVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9iYW5rLWFjY291bnQuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTG9hbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9sb2FuLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcblxuLyoqXG4gKiBTZXJ2aWNlIHdpdGggY2FsY3VsYXRpb25zIG1ldGhvZHMgZm9yIHByb3BlcnRpZXMgcmVsYXRlZCB3aXRoIG90aGVyIGVudGl0aWVzLlxuICogTG9naWMgaGVyZSB3b3JrcyBsaWtlIGNvbGxlY3Rpb25zIG1ldGhvZHMgYnV0IGZvciBzZXZlcmFsIGVudGl0aWVzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Q2FsY3VsYXRpb25TZXJ2aWNlIHtcbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIEBUT0RPIGhhY2s6IG1hdGggYWJzIGFkZGVkIGJlY2F1c2Ugd2UgaGF2ZSBtaXNtYXRjaGluZyBvZiByZWFsIHZhbHVlcyBzaWduc1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuY2FzaFBvc2l0aW9uIC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cblxuICBnZXRUYXhQb3NpdGlvbiQoXG4gICAgdHJhbnNhY3Rpb25zJDogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgIGRlcHJlY2lhdGlvbnMkOiBPYnNlcnZhYmxlPERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIERlcHJlY2lhdGlvbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IHRheFBvc2l0aW9uOiBudW1iZXIgPSB0aGlzLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucyk7XG4gICAgLy8gY2hlY2sgaWYgdGF4UG9zaXRpb24gPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXRheFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRheFBvc2l0aW9uIC0gcHJvcGVydGllcy5mb3JlY2FzdGVkVGF4UG9zaXRpb24pIC8gdGF4UG9zaXRpb247XG4gIH1cblxuICB0YXhQb3NpdGlvbkdyb3d0aCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICB0cmFuc2FjdGlvbnMkOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4sXG4gICAgZGVwcmVjaWF0aW9ucyQ6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIHRyYW5zYWN0aW9ucyQsXG4gICAgICBkZXByZWNpYXRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIERlcHJlY2lhdGlvbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGF4UG9zaXRpb25Hcm93dGgocHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFJlbnRhbFJldHVybihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmNsYWltSW5jb21lIC8gcHJvcGVydGllcy5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldExvYW5BbW91bnQocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHRvdGFsQW1vdW50OiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgICAgLnJlZHVjZSgocHJvcGVydHlBbW91bnQ6IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKGxvYW5zLmdldEJ5QmFua0FjY291bnRJZChiYW5rQWNjb3VudC5pZCk/LmFtb3VudCB8fCAwKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRMb2FuVmFsdWUocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMuaXRlbXMucmVkdWNlKCh0b3RhbEFtb3VudDogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIHRvdGFsQW1vdW50ICsgYmFua0FjY291bnRzLml0ZW1zXG4gICAgICAgIC5yZWR1Y2UoKHByb3BlcnR5QW1vdW50OiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IG51bWJlciA9PiB7XG4gICAgICAgICAgcmV0dXJuIHByb3BlcnR5QW1vdW50ICsgYmFua0FjY291bnQuZ2V0UHJvcGVydHlCYWxhbmNlQW1vdW50KHByb3BlcnR5LmlkKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogTFZSXG4gICAqL1xuXG4gIGdldEx2cihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0TG9hblZhbHVlKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpIC8gcHJvcGVydGllcy5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldEx2ciQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpIC8gcHJvcGVydGllcy5wdXJjaGFzZVByaWNlO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50JChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2ckNvbW1lbmNlbWVudChwcm9wZXJ0aWVzLCBsb2FucywgYmFua0FjY291bnRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGx2cjogbnVtYmVyID0gdGhpcy5nZXRMdnIocHJvcGVydGllcywgYmFua0FjY291bnRzKTtcbiAgICBpZiAoIWx2cikge1xuICAgICAgLy8gY2hlY2sgaWYgbHZyID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKGx2ciAtIHRoaXMuZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXMsIGxvYW5zLCBiYW5rQWNjb3VudHMpKSAvIGx2cjtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4sXG4gICAgbG9hbnMkOiBPYnNlcnZhYmxlPExvYW5Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJCxcbiAgICAgIGxvYW5zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uLCBMb2FuQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRMdnJHcm93dGgocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fucyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRFcXVpdHlQb3NpdGlvbihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIHByb3BlcnRpZXMubWFya2V0VmFsdWUgLSBNYXRoLmFicyh0aGlzLmdldExvYW5WYWx1ZShwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpKTtcbiAgfVxuXG4gIGdldFB1cmNoYXNlRXF1aXR5KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2UgLSBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpO1xuICB9XG59XG4iXX0=
|