taxtank-core 0.33.2 → 0.33.4
Sign up to get free protection for your applications and to get access to all the features.
- package/common/src/db/enums/user/user-roles.enum.d.ts +1 -0
- package/common/src/services/mixpanel.service.d.ts +1 -0
- package/esm2022/common/src/common.module.mjs +7 -5
- package/esm2022/common/src/db/enums/user/user-roles.enum.mjs +2 -1
- package/esm2022/common/src/interceptors/interceptors.module.mjs +5 -5
- package/esm2022/common/src/interceptors/jwt-interceptor.mjs +6 -6
- package/esm2022/common/src/services/auth/auth.service.mjs +6 -6
- package/esm2022/common/src/services/auth/jwt.service.mjs +4 -4
- package/esm2022/common/src/services/mixpanel.service.mjs +13 -7
- package/esm2022/public-api.mjs +2 -3
- package/esm2022/src/lib/collections/bank-transaction.collection.mjs +2 -2
- package/esm2022/src/lib/collections/chat/chat.collection.mjs +1 -19
- package/esm2022/src/lib/collections/client-movement.collection.mjs +5 -4
- package/esm2022/src/lib/collections/client.collection.mjs +1 -1
- package/esm2022/src/lib/collections/collection-dictionary.mjs +4 -1
- package/esm2022/src/lib/collections/collection.mjs +14 -3
- package/esm2022/src/lib/collections/firm/employee-invite.collection.mjs +10 -0
- package/esm2022/src/lib/collections/firm/employee.collection.mjs +18 -0
- package/esm2022/src/lib/collections/firm/index.mjs +3 -0
- package/esm2022/src/lib/collections/holding/holding-sale.collection.mjs +2 -2
- package/esm2022/src/lib/collections/income-source/income-source.collection.mjs +2 -2
- package/esm2022/src/lib/collections/index.mjs +3 -2
- package/esm2022/src/lib/collections/property/property-valuation.collection.mjs +11 -1
- package/esm2022/src/lib/collections/report/property/property-report-item-depreciation.collection.mjs +2 -2
- package/esm2022/src/lib/collections/report/property/property-report-item-transaction.collection.mjs +2 -2
- package/esm2022/src/lib/collections/report/property/property-report-item.collection.mjs +1 -1
- package/esm2022/src/lib/collections/tax-review.collection.mjs +1 -7
- package/esm2022/src/lib/collections/transaction/transaction.collection.mjs +4 -1
- package/esm2022/src/lib/collections/user/user.collection.mjs +4 -0
- package/esm2022/src/lib/collections/vehicle/vehicle-logbook.collection.mjs +13 -1
- package/esm2022/src/lib/core.module.mjs +6 -5
- package/esm2022/src/lib/db/Enums/bank/bank-connection-status.enum.mjs +2 -1
- package/esm2022/src/lib/db/Enums/chart-accounts/chart-accounts-property-adjustments-list.enum.mjs +2 -2
- package/esm2022/src/lib/db/Enums/firm/employee-invite-role.enum.mjs +6 -0
- package/esm2022/src/lib/db/Enums/firm/firm-type.enum.mjs +6 -0
- package/esm2022/src/lib/db/Enums/firm/index.mjs +3 -0
- package/esm2022/src/lib/db/Enums/holding/holding-type-exchange-list.enum.mjs +6 -5
- package/esm2022/src/lib/db/Enums/index.mjs +3 -1
- package/esm2022/src/lib/db/Enums/user/gender.enum.mjs +14 -0
- package/esm2022/src/lib/db/Enums/user/index.mjs +2 -0
- package/esm2022/src/lib/db/Json/chart-accounts/chart-accounts-value.json +59 -4
- package/esm2022/src/lib/db/Models/bank/bank-account.mjs +1 -1
- package/esm2022/src/lib/db/Models/bank/bank-connection.mjs +1 -1
- package/esm2022/src/lib/db/Models/client/annual-client-details.mjs +1 -1
- package/esm2022/src/lib/db/Models/client/client-details.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/accountant/tax-review.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/chat.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/client-invite.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/client-movement.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/employee-invite.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/firm.mjs +1 -1
- package/esm2022/src/lib/db/Models/firm/message-document.mjs +1 -1
- package/esm2022/src/lib/db/Models/incomeSource/income-source-forecast.mjs +1 -1
- package/esm2022/src/lib/db/Models/incomeSource/income-source.mjs +1 -1
- package/esm2022/src/lib/db/Models/incomeSource/salary-forecast.mjs +1 -1
- package/esm2022/src/lib/db/Models/property/property-forecast.mjs +1 -1
- package/esm2022/src/lib/db/Models/sole/sole-business-loss.mjs +1 -1
- package/esm2022/src/lib/db/Models/sole/sole-business.mjs +3 -3
- package/esm2022/src/lib/db/Models/sole/sole-forecast.mjs +1 -1
- package/esm2022/src/lib/db/Models/transaction/transaction-base.mjs +3 -4
- package/esm2022/src/lib/db/Models/user/employee-details.mjs +1 -1
- package/esm2022/src/lib/db/Models/user/user.mjs +1 -1
- package/esm2022/src/lib/db/Models/vehicle/vehicle-claim-details.mjs +1 -1
- package/esm2022/src/lib/forms/abstract.form.mjs +9 -4
- package/esm2022/src/lib/forms/address/address.form.mjs +1 -1
- package/esm2022/src/lib/forms/bank/bank-account/bank-accounts-import.form.mjs +2 -2
- package/esm2022/src/lib/forms/chat/chat-filter.form.mjs +36 -0
- package/esm2022/src/lib/forms/chat/index.mjs +2 -0
- package/esm2022/src/lib/forms/client/annual-client-details.form.mjs +1 -2
- package/esm2022/src/lib/forms/client/capital-loss.form.mjs +13 -0
- package/esm2022/src/lib/forms/client/index.mjs +2 -1
- package/esm2022/src/lib/forms/collection.form.mjs +29 -0
- package/esm2022/src/lib/forms/firm/client-invite-put.form.mjs +13 -0
- package/esm2022/src/lib/forms/firm/client-invite.form.mjs +18 -0
- package/esm2022/src/lib/forms/firm/client-movement.form.mjs +22 -0
- package/esm2022/src/lib/forms/firm/employee-details.form.mjs +21 -0
- package/esm2022/src/lib/forms/firm/employee-invite.form.mjs +24 -0
- package/esm2022/src/lib/forms/firm/firm-branch.form.mjs +13 -0
- package/esm2022/src/lib/forms/firm/firm-invite.form.mjs +18 -0
- package/esm2022/src/lib/forms/firm/index.mjs +8 -1
- package/esm2022/src/lib/forms/holding/holding-reinvest.form.mjs +30 -4
- package/esm2022/src/lib/forms/index.mjs +4 -1
- package/esm2022/src/lib/forms/loan/loan.form.mjs +3 -7
- package/esm2022/src/lib/forms/register/register-client.form.mjs +9 -6
- package/esm2022/src/lib/forms/register/register-firm.form.mjs +4 -4
- package/esm2022/src/lib/forms/report/my-tax/my-tax-deductions.form.mjs +1 -1
- package/esm2022/src/lib/forms/report/my-tax/my-tax-rent.form.mjs +1 -1
- package/esm2022/src/lib/forms/sole/bas-report.form.mjs +3 -2
- package/esm2022/src/lib/forms/sole/sole-contact.form.mjs +4 -3
- package/esm2022/src/lib/forms/sole/sole-invoice.form.mjs +3 -2
- package/esm2022/src/lib/forms/tax-review/index.mjs +3 -0
- package/esm2022/src/lib/forms/tax-review/tax-review-filter-status.enum.mjs +6 -0
- package/esm2022/src/lib/forms/tax-review/tax-review-filter.form.mjs +49 -0
- package/esm2022/src/lib/forms/transaction/holding/holding-income.form.mjs +19 -9
- package/esm2022/src/lib/forms/transaction/index.mjs +2 -1
- package/esm2022/src/lib/forms/transaction/sole/sole-income.form.mjs +1 -1
- package/esm2022/src/lib/forms/transaction/transaction-base-filter.form.mjs +35 -0
- package/esm2022/src/lib/forms/transaction/transaction.form.mjs +1 -1
- package/esm2022/src/lib/forms/transaction/work/work-transaction.form.mjs +2 -4
- package/esm2022/src/lib/forms/user/client-details.form.mjs +2 -2
- package/esm2022/src/lib/forms/user/user-invite.form.mjs +3 -2
- package/esm2022/src/lib/forms/user/user.form.mjs +11 -8
- package/esm2022/src/lib/forms/vehicle/vehicle-claim-details.form.mjs +1 -1
- package/esm2022/src/lib/forms/vehicle/vehicle-claim.form.mjs +1 -3
- package/esm2022/src/lib/forms/vehicle/vehicle-logbook.form.mjs +3 -4
- package/esm2022/src/lib/interceptors/basiq-client-id.interceptor.mjs +5 -5
- package/esm2022/src/lib/interceptors/basiq-token.interceptor.mjs +5 -5
- package/esm2022/src/lib/interceptors/corelogic-interceptor.mjs +6 -6
- package/esm2022/src/lib/interceptors/financial-year-interceptor.mjs +6 -6
- package/esm2022/src/lib/interceptors/interceptors.module.mjs +5 -5
- package/esm2022/src/lib/interceptors/preloader.interceptor.mjs +5 -5
- package/esm2022/src/lib/interceptors/rewardful.interceptor.mjs +7 -6
- package/esm2022/src/lib/interceptors/user-switcher-interceptor.mjs +6 -6
- package/esm2022/src/lib/models/bank/bank-connection.mjs +22 -1
- package/esm2022/src/lib/models/chat/chat.mjs +6 -2
- package/esm2022/src/lib/models/chat/message-document.mjs +4 -4
- package/esm2022/src/lib/models/client/annual-client-details.mjs +1 -1
- package/esm2022/src/lib/models/client/capital-loss.interface.mjs +2 -0
- package/esm2022/src/lib/models/client/capital-loss.mjs +15 -0
- package/esm2022/src/lib/models/client/client-details.mjs +27 -1
- package/esm2022/src/lib/models/client/client-invite.mjs +8 -5
- package/esm2022/src/lib/models/client/client-movement.mjs +8 -5
- package/esm2022/src/lib/models/client/index.mjs +3 -1
- package/esm2022/src/lib/models/depreciation/depreciation.mjs +4 -2
- package/esm2022/src/lib/models/employee/employee-details.mjs +8 -2
- package/esm2022/src/lib/models/employee/employee-invite.mjs +18 -2
- package/esm2022/src/lib/models/endpoint/endpoints.const.mjs +22 -13
- package/esm2022/src/lib/models/event/app-event-type.enum.mjs +20 -21
- package/esm2022/src/lib/models/file/file.mjs +4 -1
- package/esm2022/src/lib/models/financial-year/financial-year.mjs +3 -3
- package/esm2022/src/lib/models/firm/firm-branch.interface.mjs +2 -0
- package/esm2022/src/lib/models/firm/firm-branch.mjs +22 -0
- package/esm2022/src/lib/models/firm/firm.mjs +2 -2
- package/esm2022/src/lib/models/firm/index.mjs +3 -0
- package/esm2022/src/lib/models/holding/holding.mjs +4 -4
- package/esm2022/src/lib/models/income-source/salary-forecast.mjs +1 -1
- package/esm2022/src/lib/models/income-source/sole-forecast.mjs +1 -1
- package/esm2022/src/lib/models/index.mjs +2 -1
- package/esm2022/src/lib/models/property/property-equity-chart-data.mjs +11 -7
- package/esm2022/src/lib/models/property/property-forecast.mjs +1 -7
- package/esm2022/src/lib/models/property/property.mjs +6 -2
- package/esm2022/src/lib/models/registration-invite/registration-invite.mjs +5 -1
- package/esm2022/src/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.mjs +4 -4
- package/esm2022/src/lib/models/report/my-tax/my-tax-income-statements/my-tax-income-statements.mjs +2 -1
- package/esm2022/src/lib/models/report/my-tax/my-tax-rent/my-tax-rent.mjs +4 -9
- package/esm2022/src/lib/models/report/property/property-report-item-transaction.mjs +1 -1
- package/esm2022/src/lib/models/sole/bas-report.mjs +4 -1
- package/esm2022/src/lib/models/sole/sole-business-loss.mjs +1 -1
- package/esm2022/src/lib/models/sole/sole-invoice.mjs +7 -6
- package/esm2022/src/lib/models/tax-review/tax-review.mjs +12 -2
- package/esm2022/src/lib/models/tax-summary/tax-summary.mjs +3 -2
- package/esm2022/src/lib/models/transaction/transaction.mjs +1 -1
- package/esm2022/src/lib/models/user/user.mjs +8 -5
- package/esm2022/src/lib/models/vehicle/vehicle-claim-details.mjs +3 -3
- package/esm2022/src/lib/models/vehicle/vehicle-claim.mjs +1 -1
- package/esm2022/src/lib/pipes/app-currency.pipe.mjs +4 -4
- package/esm2022/src/lib/pipes/safe-url.pipe.mjs +5 -5
- package/esm2022/src/lib/services/account-setup/account-setup.service.mjs +9 -9
- package/esm2022/src/lib/services/asset/assets.service.mjs +6 -6
- package/esm2022/src/lib/services/bank/bank-account-calculation.service.mjs +4 -4
- package/esm2022/src/lib/services/data.service.mjs +4 -4
- package/esm2022/src/lib/services/event/event-dispatcher.service.mjs +4 -4
- package/esm2022/src/lib/services/event/sse.service.mjs +6 -6
- package/esm2022/src/lib/services/export/export-formatter.service.mjs +5 -5
- package/esm2022/src/lib/services/firm/current-firm-branch.service.mjs +26 -0
- package/esm2022/src/lib/services/firm/index.mjs +2 -0
- package/esm2022/src/lib/services/header-title/header-title.service.mjs +5 -5
- package/esm2022/src/lib/services/http/address/address.service.mjs +6 -6
- package/esm2022/src/lib/services/http/bank/bank-account/bank-account.service.mjs +6 -6
- package/esm2022/src/lib/services/http/bank/bank-connection/bank-connection-messages.enum.mjs +5 -2
- package/esm2022/src/lib/services/http/bank/bank-connection/bank-connection.service.mjs +11 -7
- package/esm2022/src/lib/services/http/bank/bank-transaction/bank-transaction.service.mjs +6 -6
- package/esm2022/src/lib/services/http/bank/bank.service.mjs +4 -4
- package/esm2022/src/lib/services/http/bank/basiq/basiq-token.service.mjs +4 -4
- package/esm2022/src/lib/services/http/bank/basiq/basiq.service.mjs +22 -6
- package/esm2022/src/lib/services/http/budget/budget.service.mjs +4 -4
- package/esm2022/src/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.mjs +4 -4
- package/esm2022/src/lib/services/http/chart-accounts/chart-accounts.service.mjs +4 -4
- package/esm2022/src/lib/services/http/chat/chat.service.mjs +10 -10
- package/esm2022/src/lib/services/http/chat/message-document.service.mjs +6 -6
- package/esm2022/src/lib/services/http/chat/message.service.mjs +10 -6
- package/esm2022/src/lib/services/http/client/annual-client-details.service.mjs +23 -0
- package/esm2022/src/lib/services/http/client/capital-loss/capital-loss-messages.enum.mjs +7 -0
- package/esm2022/src/lib/services/http/client/capital-loss/capital-loss.service.mjs +23 -0
- package/esm2022/src/lib/services/http/client/capital-loss/index.mjs +3 -0
- package/esm2022/src/lib/services/http/client/client-coupon.service.mjs +4 -4
- package/esm2022/src/lib/services/http/client/index.mjs +3 -2
- package/esm2022/src/lib/services/http/client/occupation/occupation.service.mjs +6 -6
- package/esm2022/src/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.mjs +4 -4
- package/esm2022/src/lib/services/http/depreciation/depreciation.service.mjs +6 -6
- package/esm2022/src/lib/services/http/document/document-folder/document-folder.service.mjs +4 -4
- package/esm2022/src/lib/services/http/document/document.service.mjs +4 -4
- package/esm2022/src/lib/services/http/facebook/facebook.service.mjs +6 -6
- package/esm2022/src/lib/services/http/file/file.service.mjs +4 -4
- package/esm2022/src/lib/services/http/firm/client-invite/client-invite-messages.enum.mjs +2 -2
- package/esm2022/src/lib/services/http/firm/client-invite/client-invite.service.mjs +9 -12
- package/esm2022/src/lib/services/http/firm/client-movement/client-movement-messages.enum.mjs +8 -0
- package/esm2022/src/lib/services/http/firm/client-movement/client-movement.service.mjs +8 -7
- package/esm2022/src/lib/services/http/firm/client-movement/index.mjs +2 -1
- package/esm2022/src/lib/services/http/firm/employee/employee-messages.enum.mjs +2 -1
- package/esm2022/src/lib/services/http/firm/employee/employee.service.mjs +14 -8
- package/esm2022/src/lib/services/http/firm/employee-invite/employee-invite.service.mjs +9 -9
- package/esm2022/src/lib/services/http/firm/firm-branch/firm-branch-messages.enum.mjs +9 -0
- package/esm2022/src/lib/services/http/firm/firm-branch/firm-branch.service.mjs +23 -0
- package/esm2022/src/lib/services/http/firm/firm-branch/index.mjs +3 -0
- package/esm2022/src/lib/services/http/firm/firm.service.mjs +7 -7
- package/esm2022/src/lib/services/http/firm/index.mjs +2 -1
- package/esm2022/src/lib/services/http/firm/portfolio-report/client-portfolio-report.service.mjs +6 -6
- package/esm2022/src/lib/services/http/google/google.service.mjs +6 -6
- package/esm2022/src/lib/services/http/holding/holding-import/holding-import.service.mjs +4 -4
- package/esm2022/src/lib/services/http/holding/holding-sale.service.mjs +4 -4
- package/esm2022/src/lib/services/http/holding/holding-type.service.mjs +4 -4
- package/esm2022/src/lib/services/http/holding/holding.service.mjs +7 -7
- package/esm2022/src/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.mjs +6 -6
- package/esm2022/src/lib/services/http/income-source/income-source.service.mjs +8 -8
- package/esm2022/src/lib/services/http/income-source/salary-forecast/salary-forecast.service.mjs +6 -6
- package/esm2022/src/lib/services/http/income-source/sole-forecast/sole-forecast.service.mjs +9 -8
- package/esm2022/src/lib/services/http/loan/borrowing-expense/borrowing-expense.service.mjs +6 -6
- package/esm2022/src/lib/services/http/loan/loan.service.mjs +6 -6
- package/esm2022/src/lib/services/http/pdf/pdf.service.mjs +6 -6
- package/esm2022/src/lib/services/http/property/borrowing-report/borrowing-report.service.mjs +4 -4
- package/esm2022/src/lib/services/http/property/property-category/property-category.service.mjs +4 -4
- package/esm2022/src/lib/services/http/property/property-category-movement/property-category-movement.service.mjs +4 -4
- package/esm2022/src/lib/services/http/property/property-document/property-document.service.mjs +4 -4
- package/esm2022/src/lib/services/http/property/property-sale/property-sale.service.mjs +4 -4
- package/esm2022/src/lib/services/http/property/property-share/property-share.service.mjs +6 -6
- package/esm2022/src/lib/services/http/property/property-valuation/property-valuation.service.mjs +6 -6
- package/esm2022/src/lib/services/http/property/property.service.mjs +7 -6
- package/esm2022/src/lib/services/http/rest/rest-old.service.mjs +6 -6
- package/esm2022/src/lib/services/http/rest/rest.service.mjs +12 -7
- package/esm2022/src/lib/services/http/service-notification/service-notification.service.mjs +6 -6
- package/esm2022/src/lib/services/http/setup-item/setup-item.service.mjs +4 -4
- package/esm2022/src/lib/services/http/sole/bas-report/bas-report-messages.enum.mjs +8 -0
- package/esm2022/src/lib/services/http/sole/bas-report/bas-report.service.mjs +4 -4
- package/esm2022/src/lib/services/http/sole/bas-report/index.mjs +3 -0
- package/esm2022/src/lib/services/http/sole/index.mjs +2 -2
- package/esm2022/src/lib/services/http/sole/sole-business/sole-business.service.mjs +10 -14
- package/esm2022/src/lib/services/http/sole/sole-business-activity/sole-business-activity.service.mjs +4 -4
- package/esm2022/src/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.mjs +4 -4
- package/esm2022/src/lib/services/http/sole/sole-business-loss/sole-business-loss.service.mjs +8 -9
- package/esm2022/src/lib/services/http/sole/sole-contact/sole-contact.service.mjs +4 -4
- package/esm2022/src/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.mjs +6 -6
- package/esm2022/src/lib/services/http/sole/sole-details/sole-details.service.mjs +6 -6
- package/esm2022/src/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +6 -6
- package/esm2022/src/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.mjs +4 -4
- package/esm2022/src/lib/services/http/subscription/service-payment/service-payment.service.mjs +4 -4
- package/esm2022/src/lib/services/http/subscription/service-payment-method/service-payment-method.service.mjs +6 -6
- package/esm2022/src/lib/services/http/subscription/service-price/service-price.service.mjs +4 -4
- package/esm2022/src/lib/services/http/subscription/service-product/service-product.service.mjs +4 -4
- package/esm2022/src/lib/services/http/subscription/service-subscription/subscription.service.mjs +6 -6
- package/esm2022/src/lib/services/http/tax-review/tax-review-history/tax-review-history.service.mjs +6 -6
- package/esm2022/src/lib/services/http/tax-review/tax-review.service.mjs +6 -6
- package/esm2022/src/lib/services/http/tax-summary/tax-summary.service.mjs +6 -6
- package/esm2022/src/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.mjs +4 -4
- package/esm2022/src/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.mjs +6 -6
- package/esm2022/src/lib/services/http/transaction/transaction.service.mjs +6 -6
- package/esm2022/src/lib/services/http/user/financial-year/financial-year.service.mjs +6 -6
- package/esm2022/src/lib/services/http/user/user-event-setting/user-event-setting.service.mjs +4 -4
- package/esm2022/src/lib/services/http/user/user-event-type/user-event-type.service.mjs +4 -4
- package/esm2022/src/lib/services/http/user/user.service.mjs +6 -6
- package/esm2022/src/lib/services/http/user/users-invite/users-invite.service.mjs +4 -4
- package/esm2022/src/lib/services/http/vehicle/vehicle-claim-details.service.mjs +6 -6
- package/esm2022/src/lib/services/http/vehicle/vehicle-claim.service.mjs +19 -8
- package/esm2022/src/lib/services/http/vehicle/vehicle-logbook/vehicle-logbook.service.mjs +6 -5
- package/esm2022/src/lib/services/http/vehicle/vehicle.service.mjs +4 -4
- package/esm2022/src/lib/services/http/youtube/youtube.service.mjs +6 -6
- package/esm2022/src/lib/services/index.mjs +2 -1
- package/esm2022/src/lib/services/intercom/intercom.service.mjs +6 -6
- package/esm2022/src/lib/services/json/chart-accounts/chart-accounts-value.service.mjs +5 -5
- package/esm2022/src/lib/services/json/holding/holding-type-exchange.service.mjs +5 -5
- package/esm2022/src/lib/services/json/income-source/income-source-type.service.mjs +5 -5
- package/esm2022/src/lib/services/json/tax-exemption/tax-exemption.service.mjs +5 -5
- package/esm2022/src/lib/services/json/tax-return/tax-return-item.service.mjs +5 -5
- package/esm2022/src/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.mjs +4 -4
- package/esm2022/src/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.mjs +5 -5
- package/esm2022/src/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.mjs +4 -4
- package/esm2022/src/lib/services/pdf/pdf-from-table/pdf-from-table.service.mjs +4 -4
- package/esm2022/src/lib/services/preloader/preloader.service.mjs +5 -5
- package/esm2022/src/lib/services/property/corelogic/corelogic.service.mjs +6 -6
- package/esm2022/src/lib/services/property/equity-position-chart/equity-position-chart.service.mjs +6 -6
- package/esm2022/src/lib/services/property/property-calculation/property-calculation.service.mjs +4 -4
- package/esm2022/src/lib/services/report/property/property-transaction-report.service.mjs +17 -12
- package/esm2022/src/lib/services/toast/toast.service.mjs +4 -4
- package/esm2022/src/lib/services/user/user-switcher.service.mjs +4 -4
- package/esm2022/src/lib/services/xlsx/xlsx.service.mjs +4 -4
- package/esm2022/src/lib/validators/date-range.validator.mjs +1 -1
- package/esm2022/src/lib/validators/fields-sum.validator.mjs +1 -1
- package/esm2022/src/lib/validators/greater-than.validator.mjs +1 -1
- package/esm2022/src/lib/validators/index.mjs +3 -1
- package/esm2022/src/lib/validators/match-sum.validator.mjs +16 -0
- package/esm2022/src/lib/validators/string/alpha-space.validator.mjs +10 -0
- package/esm2022/src/lib/validators/unique-email.validator.mjs +5 -5
- package/fesm2022/taxtank-core-common.mjs +36 -27
- package/fesm2022/taxtank-core-common.mjs.map +1 -1
- package/fesm2022/taxtank-core.mjs +1544 -869
- package/fesm2022/taxtank-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
- package/src/lib/collections/bank-transaction.collection.d.ts +3 -2
- package/src/lib/collections/chat/chat.collection.d.ts +1 -5
- package/src/lib/collections/client-movement.collection.d.ts +2 -2
- package/src/lib/collections/client.collection.d.ts +1 -1
- package/src/lib/collections/collection-dictionary.d.ts +1 -0
- package/src/lib/collections/collection.d.ts +5 -1
- package/src/lib/collections/firm/employee-invite.collection.d.ts +5 -0
- package/src/lib/collections/firm/employee.collection.d.ts +6 -0
- package/src/lib/collections/firm/index.d.ts +2 -0
- package/src/lib/collections/income-source/income-source.collection.d.ts +1 -1
- package/src/lib/collections/index.d.ts +2 -1
- package/src/lib/collections/property/property-valuation.collection.d.ts +4 -0
- package/src/lib/collections/report/property/property-report-item-depreciation.collection.d.ts +2 -2
- package/src/lib/collections/report/property/property-report-item-transaction.collection.d.ts +3 -3
- package/src/lib/collections/report/property/property-report-item.collection.d.ts +1 -1
- package/src/lib/collections/tax-review.collection.d.ts +0 -4
- package/src/lib/collections/transaction/transaction.collection.d.ts +1 -0
- package/src/lib/collections/user/user.collection.d.ts +4 -0
- package/src/lib/collections/vehicle/vehicle-logbook.collection.d.ts +6 -0
- package/src/lib/core.module.d.ts +2 -1
- package/src/lib/db/Enums/bank/bank-connection-status.enum.d.ts +1 -0
- package/src/lib/db/Enums/chart-accounts/chart-accounts-property-adjustments-list.enum.d.ts +1 -1
- package/src/lib/db/Enums/firm/employee-invite-role.enum.d.ts +4 -0
- package/src/lib/db/Enums/firm/index.d.ts +2 -0
- package/src/lib/db/Enums/holding/holding-type-exchange-list.enum.d.ts +5 -4
- package/src/lib/db/Enums/index.d.ts +2 -0
- package/src/lib/db/Enums/user/gender.enum.d.ts +12 -0
- package/src/lib/db/Enums/user/index.d.ts +1 -0
- package/src/lib/db/Models/bank/bank-connection.d.ts +1 -0
- package/src/lib/db/Models/client/annual-client-details.d.ts +0 -1
- package/src/lib/db/Models/client/client-details.d.ts +1 -0
- package/src/lib/db/Models/firm/accountant/tax-review.d.ts +2 -0
- package/src/lib/db/Models/firm/chat.d.ts +2 -0
- package/src/lib/db/Models/firm/client-invite.d.ts +5 -2
- package/src/lib/db/Models/firm/client-movement.d.ts +2 -2
- package/src/lib/db/Models/firm/employee-invite.d.ts +4 -2
- package/src/lib/db/Models/firm/firm.d.ts +1 -1
- package/src/lib/db/Models/firm/message-document.d.ts +2 -6
- package/src/lib/db/Models/incomeSource/income-source-forecast.d.ts +2 -1
- package/src/lib/db/Models/incomeSource/income-source.d.ts +1 -1
- package/src/lib/db/Models/incomeSource/salary-forecast.d.ts +1 -0
- package/src/lib/db/Models/property/property-forecast.d.ts +1 -0
- package/src/lib/db/Models/sole/sole-business-loss.d.ts +1 -0
- package/src/lib/db/Models/sole/sole-business.d.ts +2 -2
- package/src/lib/db/Models/sole/sole-forecast.d.ts +1 -0
- package/src/lib/db/Models/user/employee-details.d.ts +2 -0
- package/src/lib/db/Models/user/user.d.ts +2 -0
- package/src/lib/db/Models/vehicle/vehicle-claim-details.d.ts +1 -1
- package/src/lib/forms/abstract.form.d.ts +14 -7
- package/src/lib/forms/bank/bank-account/bank-accounts-import.form.d.ts +1 -1
- package/src/lib/forms/chat/chat-filter.form.d.ts +18 -0
- package/src/lib/forms/chat/index.d.ts +1 -0
- package/src/lib/forms/client/capital-loss.form.d.ts +6 -0
- package/src/lib/forms/client/index.d.ts +1 -0
- package/src/lib/forms/collection.form.d.ts +14 -0
- package/src/lib/forms/firm/client-invite-put.form.d.ts +11 -0
- package/src/lib/forms/firm/client-invite.form.d.ts +15 -0
- package/src/lib/forms/firm/client-movement.form.d.ts +14 -0
- package/src/lib/forms/firm/employee-details.form.d.ts +14 -0
- package/src/lib/forms/firm/employee-invite.form.d.ts +17 -0
- package/src/lib/forms/firm/firm-branch.form.d.ts +5 -0
- package/src/lib/forms/firm/firm-invite.form.d.ts +15 -0
- package/src/lib/forms/firm/index.d.ts +7 -0
- package/src/lib/forms/holding/holding-reinvest.form.d.ts +7 -0
- package/src/lib/forms/index.d.ts +3 -0
- package/src/lib/forms/loan/loan.form.d.ts +2 -2
- package/src/lib/forms/register/register-client.form.d.ts +1 -1
- package/src/lib/forms/register/register-firm.form.d.ts +2 -2
- package/src/lib/forms/report/my-tax/my-tax-deductions.form.d.ts +1 -1
- package/src/lib/forms/report/my-tax/my-tax-rent.form.d.ts +1 -1
- package/src/lib/forms/tax-review/index.d.ts +2 -0
- package/src/lib/forms/tax-review/tax-review-filter-status.enum.d.ts +4 -0
- package/src/lib/forms/tax-review/tax-review-filter.form.d.ts +21 -0
- package/src/lib/forms/transaction/holding/holding-income.form.d.ts +8 -1
- package/src/lib/forms/transaction/index.d.ts +1 -0
- package/src/lib/forms/transaction/transaction-base-filter.form.d.ts +19 -0
- package/src/lib/forms/transaction/work/work-transaction.form.d.ts +1 -1
- package/src/lib/forms/user/user.form.d.ts +15 -3
- package/src/lib/forms/vehicle/vehicle-claim.form.d.ts +0 -2
- package/src/lib/models/bank/bank-connection.d.ts +8 -0
- package/src/lib/models/chat/chat.d.ts +3 -1
- package/src/lib/models/chat/message-document.d.ts +4 -4
- package/src/lib/models/client/annual-client-details.d.ts +0 -1
- package/src/lib/models/client/capital-loss.d.ts +9 -0
- package/src/lib/models/client/capital-loss.interface.d.ts +6 -0
- package/src/lib/models/client/client-details.d.ts +8 -0
- package/src/lib/models/client/client-invite.d.ts +3 -2
- package/src/lib/models/client/client-movement.d.ts +3 -2
- package/src/lib/models/client/index.d.ts +2 -0
- package/src/lib/models/employee/employee-details.d.ts +3 -1
- package/src/lib/models/employee/employee-invite.d.ts +7 -1
- package/src/lib/models/event/app-event-type.enum.d.ts +19 -20
- package/src/lib/models/file/file.d.ts +1 -0
- package/src/lib/models/firm/firm-branch.d.ts +12 -0
- package/src/lib/models/firm/firm-branch.interface.d.ts +7 -0
- package/src/lib/models/firm/index.d.ts +2 -0
- package/src/lib/models/holding/holding.d.ts +0 -1
- package/src/lib/models/index.d.ts +1 -0
- package/src/lib/models/property/property-equity-chart-data.d.ts +7 -7
- package/src/lib/models/property/property-forecast.d.ts +0 -4
- package/src/lib/models/registration-invite/registration-invite.d.ts +2 -0
- package/src/lib/models/report/my-tax/my-tax-deductions/my-tax-deductions.d.ts +1 -1
- package/src/lib/models/report/property/property-report-item-transaction.d.ts +3 -3
- package/src/lib/models/tax-review/tax-review.d.ts +5 -1
- package/src/lib/models/user/user.d.ts +2 -3
- package/src/lib/models/vehicle/vehicle-claim-details.d.ts +1 -1
- package/src/lib/services/firm/current-firm-branch.service.d.ts +11 -0
- package/src/lib/services/firm/index.d.ts +1 -0
- package/src/lib/services/http/bank/bank-connection/bank-connection-messages.enum.d.ts +5 -2
- package/src/lib/services/http/bank/basiq/basiq.service.d.ts +8 -0
- package/src/lib/services/http/chat/message.service.d.ts +2 -0
- package/src/lib/services/http/client/{capital-gain/annual-client-details.service.d.ts → annual-client-details.service.d.ts} +4 -4
- package/src/lib/services/http/client/capital-loss/capital-loss-messages.enum.d.ts +5 -0
- package/src/lib/services/http/client/capital-loss/capital-loss.service.d.ts +12 -0
- package/src/lib/services/http/client/capital-loss/index.d.ts +2 -0
- package/src/lib/services/http/client/index.d.ts +2 -1
- package/src/lib/services/http/firm/client-invite/client-invite-messages.enum.d.ts +1 -1
- package/src/lib/services/http/firm/client-invite/client-invite.service.d.ts +0 -1
- package/src/lib/services/http/firm/client-movement/client-movement-messages.enum.d.ts +6 -0
- package/src/lib/services/http/firm/client-movement/client-movement.service.d.ts +2 -1
- package/src/lib/services/http/firm/client-movement/index.d.ts +1 -0
- package/src/lib/services/http/firm/employee/employee-messages.enum.d.ts +2 -1
- package/src/lib/services/http/firm/employee/employee.service.d.ts +4 -3
- package/src/lib/services/http/firm/employee-invite/employee-invite.service.d.ts +3 -3
- package/src/lib/services/http/firm/firm-branch/firm-branch-messages.enum.d.ts +7 -0
- package/src/lib/services/http/firm/firm-branch/firm-branch.service.d.ts +13 -0
- package/src/lib/services/http/firm/firm-branch/index.d.ts +2 -0
- package/src/lib/services/http/firm/firm.service.d.ts +2 -2
- package/src/lib/services/http/firm/index.d.ts +1 -0
- package/src/lib/services/http/holding/holding-sale.service.d.ts +1 -2
- package/src/lib/services/http/property/property-valuation/property-valuation.service.d.ts +1 -2
- package/src/lib/services/http/rest/rest.service.d.ts +5 -0
- package/src/lib/services/http/sole/bas-report/bas-report-messages.enum.d.ts +6 -0
- package/src/lib/services/http/sole/bas-report/index.d.ts +2 -0
- package/src/lib/services/http/sole/index.d.ts +1 -1
- package/src/lib/services/http/sole/sole-business/sole-business.service.d.ts +7 -5
- package/src/lib/services/http/vehicle/vehicle-claim.service.d.ts +5 -1
- package/src/lib/services/http/vehicle/vehicle-logbook/vehicle-logbook.service.d.ts +2 -1
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/report/property/property-transaction-report.service.d.ts +4 -7
- package/src/lib/validators/index.d.ts +2 -0
- package/src/lib/validators/match-sum.validator.d.ts +6 -0
- package/src/lib/validators/string/alpha-space.validator.d.ts +5 -0
- package/esm2022/src/lib/collections/employee.collection.mjs +0 -11
- package/esm2022/src/lib/db/Enums/firm-type.enum.mjs +0 -6
- package/esm2022/src/lib/functions/tax-review-filter-predicate.mjs +0 -10
- package/esm2022/src/lib/services/http/client/capital-gain/annual-client-details.service.mjs +0 -23
- package/esm2022/src/lib/validators/transactions-meta-fields.validator.mjs +0 -33
- package/src/lib/collections/employee.collection.d.ts +0 -6
- package/src/lib/functions/tax-review-filter-predicate.d.ts +0 -7
- package/src/lib/validators/transactions-meta-fields.validator.d.ts +0 -5
- /package/src/lib/db/Enums/{firm-type.enum.d.ts → firm/firm-type.enum.d.ts} +0 -0
@@ -42,25 +42,24 @@ export var AppEventTypeEnum;
|
|
42
42
|
AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_ADDED"] = 36] = "PROPERTY_SUBSCRIPTION_ADDED";
|
43
43
|
AppEventTypeEnum[AppEventTypeEnum["PROPERTY_SUBSCRIPTION_DELETED"] = 37] = "PROPERTY_SUBSCRIPTION_DELETED";
|
44
44
|
AppEventTypeEnum[AppEventTypeEnum["PROPERTY_VALUATION_DOCUMENT_CREATED"] = 38] = "PROPERTY_VALUATION_DOCUMENT_CREATED";
|
45
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
46
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
47
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
48
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
49
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
50
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
51
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
52
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
53
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
54
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
55
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
56
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
57
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
58
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
59
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
60
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
61
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
62
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
63
|
-
AppEventTypeEnum[AppEventTypeEnum["
|
64
|
-
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED"] = 58] = "VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED";
|
45
|
+
AppEventTypeEnum[AppEventTypeEnum["SOLE_DEPRECIATION_METHOD_UPDATED"] = 39] = "SOLE_DEPRECIATION_METHOD_UPDATED";
|
46
|
+
AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_CREATED"] = 40] = "SOLE_DETAILS_CREATED";
|
47
|
+
AppEventTypeEnum[AppEventTypeEnum["SOLE_DETAILS_UPDATED"] = 41] = "SOLE_DETAILS_UPDATED";
|
48
|
+
AppEventTypeEnum[AppEventTypeEnum["SOLE_INVOICE_PUBLISHED"] = 42] = "SOLE_INVOICE_PUBLISHED";
|
49
|
+
AppEventTypeEnum[AppEventTypeEnum["TAX_REVIEW_UPDATED"] = 43] = "TAX_REVIEW_UPDATED";
|
50
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_ALLOCATION_CREATED"] = 44] = "TRANSACTION_ALLOCATION_CREATED";
|
51
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_ALLOCATION_DELETED"] = 45] = "TRANSACTION_ALLOCATION_DELETED";
|
52
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_CREATED"] = 46] = "TRANSACTION_CREATED";
|
53
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_DELETED"] = 47] = "TRANSACTION_DELETED";
|
54
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTION_UPDATED"] = 48] = "TRANSACTION_UPDATED";
|
55
|
+
AppEventTypeEnum[AppEventTypeEnum["TRANSACTIONS_CREATED"] = 49] = "TRANSACTIONS_CREATED";
|
56
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_UPDATED"] = 50] = "VEHICLE_CLAIM_UPDATED";
|
57
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_CREATED"] = 51] = "VEHICLE_CLAIM_CREATED";
|
58
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_UPDATED"] = 52] = "VEHICLE_CLAIM_DETAILS_UPDATED";
|
59
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_CLAIM_DETAILS_CREATED"] = 53] = "VEHICLE_CLAIM_DETAILS_CREATED";
|
60
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_CREATED"] = 54] = "VEHICLE_LOGBOOK_CREATED";
|
61
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_UPDATED"] = 55] = "VEHICLE_LOGBOOK_UPDATED";
|
62
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_DELETED"] = 56] = "VEHICLE_LOGBOOK_DELETED";
|
63
|
+
AppEventTypeEnum[AppEventTypeEnum["VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED"] = 57] = "VEHICLE_LOGBOOK_BEST_PERIOD_UPDATED";
|
65
64
|
})(AppEventTypeEnum || (AppEventTypeEnum = {}));
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGdCQTJEWDtBQTNERCxXQUFZLGdCQUFnQjtJQUMxQiwyRkFBc0IsQ0FBQTtJQUN0Qix5RkFBcUIsQ0FBQTtJQUNyQixtR0FBMEIsQ0FBQTtJQUMxQiw2RkFBdUIsQ0FBQTtJQUN2QixpR0FBeUIsQ0FBQTtJQUN6QiwrRkFBd0IsQ0FBQTtJQUN4QixpRkFBaUIsQ0FBQTtJQUNqQixxRkFBbUIsQ0FBQTtJQUNuQixtRkFBa0IsQ0FBQTtJQUNsQiwrRkFBd0IsQ0FBQTtJQUN4Qiw0RkFBc0IsQ0FBQTtJQUN0QixnRkFBZ0IsQ0FBQTtJQUNoQixrSEFBaUMsQ0FBQTtJQUNqQyw4RkFBdUIsQ0FBQTtJQUN2Qix3RkFBb0IsQ0FBQTtJQUNwQiwwRkFBcUIsQ0FBQTtJQUNyQiw0RkFBc0IsQ0FBQTtJQUN0Qiw0RkFBc0IsQ0FBQTtJQUN0QixnSEFBZ0MsQ0FBQTtJQUNoQyxnSEFBZ0MsQ0FBQTtJQUNoQyx3RUFBWSxDQUFBO0lBQ1osc0ZBQW1CLENBQUE7SUFDbkIsOEVBQWUsQ0FBQTtJQUNmLHdGQUFvQixDQUFBO0lBQ3BCLHdGQUFvQixDQUFBO0lBQ3BCLG9GQUFrQixDQUFBO0lBQ2xCLGtJQUF5QyxDQUFBO0lBQ3pDLGdGQUFnQixDQUFBO0lBQ2hCLDRHQUE4QixDQUFBO0lBQzlCLDhGQUF1QixDQUFBO0lBQ3ZCLGtHQUF5QixDQUFBO0lBQ3pCLGtHQUF5QixDQUFBO0lBQ3pCLGtHQUF5QixDQUFBO0lBQ3pCLDRGQUFzQixDQUFBO0lBQ3RCLHNGQUFtQixDQUFBO0lBQ25CLDBGQUFxQixDQUFBO0lBQ3JCLHNHQUEyQixDQUFBO0lBQzNCLDBHQUE2QixDQUFBO0lBQzdCLHNIQUFtQyxDQUFBO0lBQ25DLGdIQUFnQyxDQUFBO0lBQ2hDLHdGQUFvQixDQUFBO0lBQ3BCLHdGQUFvQixDQUFBO0lBQ3BCLDRGQUFzQixDQUFBO0lBQ3RCLG9GQUFrQixDQUFBO0lBQ2xCLDRHQUE4QixDQUFBO0lBQzlCLDRHQUE4QixDQUFBO0lBQzlCLHNGQUFtQixDQUFBO0lBQ25CLHNGQUFtQixDQUFBO0lBQ25CLHNGQUFtQixDQUFBO0lBQ25CLHdGQUFvQixDQUFBO0lBQ3BCLDBGQUFxQixDQUFBO0lBQ3JCLDBGQUFxQixDQUFBO0lBQ3JCLDBHQUE2QixDQUFBO0lBQzdCLDBHQUE2QixDQUFBO0lBQzdCLDhGQUF1QixDQUFBO0lBQ3ZCLDhGQUF1QixDQUFBO0lBQ3ZCLDhGQUF1QixDQUFBO0lBQ3ZCLHNIQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUEzRFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQTJEM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBUT0RPIEFsZXggcmVtb3ZlXG4gKi9cbmV4cG9ydCBlbnVtIEFwcEV2ZW50VHlwZUVudW0ge1xuICBDTElFTlRfTU9WRU1FTlRfQ0xPU0VELFxuICBCQU5LX0NPTk5FQ1RJT05fQURERUQsXG4gIEJBTktfVFJBTlNBQ1RJT05fQUxMT0NBVEVELFxuICBCQU5LX1RSQU5TQUNUSU9OU19BRERFRCxcbiAgQkFOS19UUkFOU0FDVElPTlNfREVMRVRFRCxcbiAgQkFTSVFfQ09OTkVDVElPTl9VUERBVEVELFxuICBCQVNJUV9KT0JfQ1JFQVRFRCxcbiAgQkFTSVFfTE9HSU5fU1VDQ0VTUyxcbiAgQkFTSVFfTE9HSU5fRkFJTEVELFxuICBCQVNJUV9BQ0NPVU5UU19SRVRSSUVWRUQsXG4gIENMSUVOVF9JTlZJVEVfQUNDRVBURUQsXG4gIENMSUVOVF9PUEVOX0NIQVQsXG4gIENMSUVOVF9UUkFOU0ZFUl9UT19PVEhFUl9FTVBMT1lFRSxcbiAgQ1VSUkVOVF9VU0VSX0dFVF9GQUlMRUQsXG4gIERFUFJFQ0lBVElPTl9ERUxFVEVELFxuICBERVBSRUNJQVRJT05TX0NSRUFURUQsXG4gIElOQ09NRV9TT1VSQ0VTX0NSRUFURUQsXG4gIElOQ09NRV9TT1VSQ0VTX1VQREFURUQsXG4gIElOQ09NRV9TT1VSQ0VTX0ZPUkVDQVNUU19DUkVBVEVELFxuICBJTkNPTUVfU09VUkNFU19GT1JFQ0FTVFNfVVBEQVRFRCxcbiAgTE9BTl9VUERBVEVELFxuICBMT0FOX1BBWU9VVF9VUERBVEVELFxuICBNRVNTQUdFX0NSRUFURUQsXG4gIE1FU1NBR0VfRklMRV9DUkVBVEVELFxuICBNRVNTQUdFX0ZJTEVfREVMRVRFRCxcbiAgTk9USUZJQ0FUSU9OX0FEREVELFxuICBQUk9QRVJUWV9ERVBSRUNJQVRJT05fQ0FMQ1VMQVRJT05fVVBEQVRFRCxcbiAgUFJPUEVSVFlfVVBEQVRFRCxcbiAgUFJPUEVSVFlfVVBEQVRFRF9XSVRIX0RPQ1VNRU5ULFxuICBQUk9QRVJUWV9ET0NVTUVOVF9BRERFRCxcbiAgUFJPUEVSVFlfTU9WRU1FTlRfQ1JFQVRFRCxcbiAgUFJPUEVSVFlfTU9WRU1FTlRfVVBEQVRFRCxcbiAgUFJPUEVSVFlfTU9WRU1FTlRfREVMRVRFRCxcbiAgUFJPUEVSVFlfU0hBUkVfVVBEQVRFRCxcbiAgUFJPUEVSVFlfU0FMRV9BRERFRCxcbiAgUFJPUEVSVFlfU0FMRV9ERUxFVEVELFxuICBQUk9QRVJUWV9TVUJTQ1JJUFRJT05fQURERUQsXG4gIFBST1BFUlRZX1NVQlNDUklQVElPTl9ERUxFVEVELFxuICBQUk9QRVJUWV9WQUxVQVRJT05fRE9DVU1FTlRfQ1JFQVRFRCxcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EX1VQREFURUQsXG4gIFNPTEVfREVUQUlMU19DUkVBVEVELFxuICBTT0xFX0RFVEFJTFNfVVBEQVRFRCxcbiAgU09MRV9JTlZPSUNFX1BVQkxJU0hFRCxcbiAgVEFYX1JFVklFV19VUERBVEVELFxuICBUUkFOU0FDVElPTl9BTExPQ0FUSU9OX0NSRUFURUQsXG4gIFRSQU5TQUNUSU9OX0FMTE9DQVRJT05fREVMRVRFRCxcbiAgVFJBTlNBQ1RJT05fQ1JFQVRFRCxcbiAgVFJBTlNBQ1RJT05fREVMRVRFRCxcbiAgVFJBTlNBQ1RJT05fVVBEQVRFRCxcbiAgVFJBTlNBQ1RJT05TX0NSRUFURUQsXG4gIFZFSElDTEVfQ0xBSU1fVVBEQVRFRCxcbiAgVkVISUNMRV9DTEFJTV9DUkVBVEVELFxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfVVBEQVRFRCxcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX0NSRUFURUQsXG4gIFZFSElDTEVfTE9HQk9PS19DUkVBVEVELFxuICBWRUhJQ0xFX0xPR0JPT0tfVVBEQVRFRCxcbiAgVkVISUNMRV9MT0dCT09LX0RFTEVURUQsXG4gIFZFSElDTEVfTE9HQk9PS19CRVNUX1BFUklPRF9VUERBVEVEXG59XG4iXX0=
|
@@ -8,5 +8,8 @@ export class AppFile extends File {
|
|
8
8
|
isImage() {
|
9
9
|
return AppFile.imageMimeTypes.includes[this.mimeType];
|
10
10
|
}
|
11
|
+
get month() {
|
12
|
+
return this.formatDate(this.createdAt, 'MMM yyyy');
|
13
|
+
}
|
11
14
|
}
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZmlsZS9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sT0FBUSxTQUFRLElBQUk7YUFDeEIsbUJBQWMsR0FBYSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7SUFFOUYsT0FBTztRQUNMLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscyc7XG5cbi8qKlxuICogVGhlIG1vZGVsIHJlbmFtZWQgZm9yIG1vcmUgY29tZm9ydGFibGUgd29yayBiZWNhdXNlIEZpbGUgYWxyZWFkeSBleGlzdCBpbiBKU1xuICogQFRPRE8gQWxleDogY29uc2lkZXIgYSBiZXR0ZXIgbmFtZSBsaWtlIGRvY3VtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBGaWxlIGV4dGVuZHMgRmlsZSB7XG4gIHN0YXRpYyBpbWFnZU1pbWVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCBpbWFnZS90aWZmLCBpbWFnZS9ibXAnXTtcblxuICBpc0ltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcHBGaWxlLmltYWdlTWltZVR5cGVzLmluY2x1ZGVzW3RoaXMubWltZVR5cGVdO1xuICB9XG5cbiAgZ2V0IG1vbnRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RGF0ZSh0aGlzLmNyZWF0ZWRBdCwgJ01NTSB5eXl5Jyk7XG4gIH1cbn1cbiJdfQ==
|
@@ -6,8 +6,8 @@ export class FinancialYear {
|
|
6
6
|
return +localStorage.getItem('financialYear');
|
7
7
|
}
|
8
8
|
constructor(date) {
|
9
|
-
this.yearStartDate = '-07-
|
10
|
-
this.yearEndDate = '-06-
|
9
|
+
this.yearStartDate = '-07-01T00:00:00Z';
|
10
|
+
this.yearEndDate = '-06-30T23:59:59Z';
|
11
11
|
if (date) {
|
12
12
|
this.year = date instanceof Date ? FinancialYear.toFinYear(date) : date;
|
13
13
|
}
|
@@ -54,4 +54,4 @@ export class FinancialYear {
|
|
54
54
|
return months;
|
55
55
|
}
|
56
56
|
}
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jaWFsLXllYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO2FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO2FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO2FBQ2xCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLE1BQU0sS0FBSyxJQUFJO1FBQ2IsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQVFELFlBQVksSUFBa0I7UUFIdEIsa0JBQWEsR0FBRyxrQkFBa0IsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBR3ZDLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQWUsYUFBYSxDQUFDLElBQUk7UUFDaEQsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsVUFBa0I7UUFDN0IsSUFBSSxVQUFVLElBQUksYUFBYSxDQUFDLGVBQWUsRUFBRTtZQUMvQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUQ7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixNQUFNLE9BQU8sR0FBUyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzlELEtBQUssTUFBTSxDQUFDLEdBQVMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDM0I7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZpbmFuY2lhbFllYXIge1xyXG4gIHN0YXRpYyB3ZWVrc0luWWVhciA9IDUyO1xyXG4gIHN0YXRpYyBtb250aHNJblllYXIgPSAxMjtcclxuICBzdGF0aWMgc3RhcnRNb250aEluZGV4ID0gNjtcclxuICBzdGF0aWMgZ2V0IHllYXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZpbmFuY2lhbFllYXInKTtcclxuICB9XHJcbiAgeWVhcjogbnVtYmVyO1xyXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcclxuICBlbmREYXRlOiBEYXRlO1xyXG5cclxuICBwcml2YXRlIHllYXJTdGFydERhdGUgPSAnLTA3LTAxVDAwOjAwOjAwWic7XHJcbiAgcHJpdmF0ZSB5ZWFyRW5kRGF0ZSA9ICctMDYtMzBUMjM6NTk6NTlaJztcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0ZT86IERhdGV8bnVtYmVyKSB7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICB0aGlzLnllYXIgPSBkYXRlIGluc3RhbmNlb2YgRGF0ZSA/IEZpbmFuY2lhbFllYXIudG9GaW5ZZWFyKGRhdGUpIDogZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMueWVhciA9IEZpbmFuY2lhbFllYXIueWVhciB8fCBGaW5hbmNpYWxZZWFyLnRvRmluWWVhcihuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldFN0YXJ0RGF0ZSh0aGlzLnllYXIpO1xyXG4gICAgdGhpcy5zZXRFbmREYXRlKHRoaXMueWVhcik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNDdXJyZW50KHllYXI6IG51bWJlciA9IEZpbmFuY2lhbFllYXIueWVhcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEZpbmFuY2lhbFllYXIudG9GaW5ZZWFyKG5ldyBEYXRlKCkpID09PSB5ZWFyO1xyXG4gIH1cclxuXHJcbiAgaW5jbHVkZXMoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMueWVhciA9PT0gbmV3IEZpbmFuY2lhbFllYXIoZGF0ZSkueWVhcjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB0b0ZpblllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICsgKGRhdGUuZ2V0TW9udGgoKSA+PSB0aGlzLnN0YXJ0TW9udGhJbmRleCA/IDEgOiAwKTtcclxuICB9XHJcblxyXG4gIGdldCBwcmV2RmluWWVhcigpOiBGaW5hbmNpYWxZZWFyIHtcclxuICAgIHJldHVybiBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZShgJHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxfSR7dGhpcy55ZWFyU3RhcnREYXRlfWApKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBkYXRlIGJ5IGRlc2lyZWQgbW9udGhcclxuICAgKi9cclxuICBnZXRNb250aERhdGUobW9udGhJbmRleDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBpZiAobW9udGhJbmRleCA+PSBGaW5hbmNpYWxZZWFyLnN0YXJ0TW9udGhJbmRleCkge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGUoYCR7dGhpcy55ZWFyIC0gMX0tJHttb250aEluZGV4ICsgMX0tMDFgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LSR7bW9udGhJbmRleCArIDF9LTAxYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN0YXJ0RGF0ZSh5ZWFyOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhcnREYXRlID0gbmV3IERhdGUoYCR7eWVhciAtIDF9JHt0aGlzLnllYXJTdGFydERhdGV9YCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVuZERhdGUoeWVhcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmVuZERhdGUgPSBuZXcgRGF0ZShgJHt5ZWFyfSR7dGhpcy55ZWFyRW5kRGF0ZX1gKTtcclxuICB9XHJcblxyXG4gIGdldFBhc3RNb250aHMoKTogbnVtYmVyW10ge1xyXG4gICAgY29uc3QgbW9udGhzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgY29uc3Qgbm93OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLmVuZERhdGUgPCBub3cgPyB0aGlzLmVuZERhdGUgOiBub3c7XHJcbiAgICBmb3IgKGNvbnN0IGQ6IERhdGUgPSB0aGlzLnN0YXJ0RGF0ZTsgZCA8PSBlbmREYXRlOyBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIDEpKSB7XHJcbiAgICAgIG1vbnRocy5wdXNoKGQuZ2V0TW9udGgoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vbnRocztcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybS1icmFuY2guaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9maXJtL2Zpcm0tYnJhbmNoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaXJtQnJhbmNoSW50ZXJmYWNlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpc01haW46IGJvb2xlYW47XG4gIGZpcm06IG9iamVjdDtcbiAgYWRkcmVzczogb2JqZWN0O1xuICBwaG9uZT86IG9iamVjdDtcbn1cbiJdfQ==
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { Firm } from './firm';
|
3
|
+
import { Address } from '../address';
|
4
|
+
import { AbstractModel } from '../../db/Models';
|
5
|
+
import { Type } from 'class-transformer';
|
6
|
+
import { Phone } from '../phone/phone';
|
7
|
+
export class FirmBranch extends AbstractModel {
|
8
|
+
constructor() {
|
9
|
+
super(...arguments);
|
10
|
+
this.isMain = false;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
__decorate([
|
14
|
+
Type(() => Firm)
|
15
|
+
], FirmBranch.prototype, "firm", void 0);
|
16
|
+
__decorate([
|
17
|
+
Type(() => Address)
|
18
|
+
], FirmBranch.prototype, "address", void 0);
|
19
|
+
__decorate([
|
20
|
+
Type(() => Phone)
|
21
|
+
], FirmBranch.prototype, "phone", void 0);
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybS1icmFuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2Zpcm0vZmlybS1icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxNQUFNLE9BQU8sVUFBVyxTQUFRLGFBQWE7SUFBN0M7O1FBRUUsV0FBTSxHQUFHLEtBQUssQ0FBQztJQU9qQixDQUFDO0NBQUE7QUFMQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0NBQ047QUFFWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7MkNBQ0g7QUFFakI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO3lDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlybSB9IGZyb20gJy4vZmlybSc7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vYWRkcmVzcyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBGaXJtQnJhbmNoSW50ZXJmYWNlIH0gZnJvbSAnLi9maXJtLWJyYW5jaC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGhvbmUgfSBmcm9tICcuLi9waG9uZS9waG9uZSc7XG5cbmV4cG9ydCBjbGFzcyBGaXJtQnJhbmNoIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCBpbXBsZW1lbnRzIEZpcm1CcmFuY2hJbnRlcmZhY2Uge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlzTWFpbiA9IGZhbHNlO1xuICBAVHlwZSgoKSA9PiBGaXJtKVxuICBmaXJtOiBGaXJtO1xuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuICBAVHlwZSgoKSA9PiBQaG9uZSlcbiAgcGhvbmU/OiBQaG9uZTtcbn1cbiJdfQ==
|
@@ -5,7 +5,7 @@ import { Address } from '../address';
|
|
5
5
|
import { User } from '../user';
|
6
6
|
import { Type } from 'class-transformer';
|
7
7
|
import { AppFile } from '../file';
|
8
|
-
import { FirmTypeEnum } from '../../db/Enums
|
8
|
+
import { FirmTypeEnum } from '../../db/Enums';
|
9
9
|
export class Firm extends FirmBase {
|
10
10
|
isAccountant() {
|
11
11
|
return this.type === FirmTypeEnum.ACCOUNTANT;
|
@@ -23,4 +23,4 @@ __decorate([
|
|
23
23
|
__decorate([
|
24
24
|
Type(() => AppFile)
|
25
25
|
], Firm.prototype, "file", void 0);
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvZmlybS9maXJtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxJQUFLLFNBQVEsUUFBUTtJQWFoQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFDL0MsQ0FBQztDQUNGO0FBZEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO21DQUNMO0FBR1o7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3FDQUNIO0FBR2pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzttQ0FDTDtBQUdiO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztrQ0FDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcm0gYXMgRmlybUJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvZmlybS9maXJtJztcclxuaW1wb3J0IHsgUGhvbmUgfSBmcm9tICcuLi9waG9uZS9waG9uZSc7XHJcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xyXG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSAnLi4vZmlsZSc7XHJcbmltcG9ydCB7IEZpcm1UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaXJtIGV4dGVuZHMgRmlybUJhc2Uge1xyXG4gIEBUeXBlKCgpID0+IFVzZXIpXHJcbiAgb3duZXI6IFVzZXI7XHJcblxyXG4gIEBUeXBlKCgpID0+IEFkZHJlc3MpXHJcbiAgYWRkcmVzczogQWRkcmVzcztcclxuXHJcbiAgQFR5cGUoKCkgPT4gUGhvbmUpXHJcbiAgcGhvbmU6IFBob25lO1xyXG5cclxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxyXG4gIGZpbGU6IEFwcEZpbGU7XHJcblxyXG4gIGlzQWNjb3VudGFudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEZpcm1UeXBlRW51bS5BQ0NPVU5UQU5UO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './firm';
|
2
|
+
export * from './firm-branch';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2Zpcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zpcm0nO1xuZXhwb3J0ICogZnJvbSAnLi9maXJtLWJyYW5jaCc7XG4iXX0=
|
@@ -17,18 +17,18 @@ export class Holding extends AbstractModel {
|
|
17
17
|
* Get total purchasing price
|
18
18
|
*/
|
19
19
|
get purchaseValue() {
|
20
|
+
const quantity = this.currentQuantity ?? this.quantity;
|
20
21
|
// Price and entity may be empty when we use HoldingForm.currentValue
|
21
22
|
if (!this.price || !this.quantity) {
|
22
23
|
return 0;
|
23
24
|
}
|
24
|
-
return this.price *
|
25
|
+
return this.price * quantity;
|
25
26
|
}
|
26
27
|
/**
|
27
28
|
* Get current market price
|
28
|
-
* @TODO vik/alex no need to pass holdingType, should come from backend
|
29
29
|
*/
|
30
30
|
get marketValue() {
|
31
|
-
return this.
|
31
|
+
return this.currentQuantity * this.type.price;
|
32
32
|
}
|
33
33
|
/**
|
34
34
|
* Get percent difference between current and buy price
|
@@ -79,4 +79,4 @@ __decorate([
|
|
79
79
|
}, { toClassOnly: true }),
|
80
80
|
Expose({ toClassOnly: true })
|
81
81
|
], Holding.prototype, "category", void 0);
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaG9sZGluZy9ob2xkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsTUFBTSxPQUFPLE9BQVEsU0FBUSxhQUFhO0lBQTFDOztRQUNFLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFpRnBCLENBQUM7SUFyQ0M7O09BRUc7SUFDSCxJQUFJLGFBQWE7UUFDZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkQscUVBQXFFO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFFBQVEsR0FBVyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBRW5ELE9BQU8sQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUF6RUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3FDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3FDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO3FDQUNOO0FBR2xCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztxQ0FDTjtBQUlkO0lBRkMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUN2QixTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBYyxLQUFLLENBQUMsQ0FBQztzQ0FDOUI7QUFxQkE7SUFmOUIsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxHQUFnQixZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3RCxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUE7U0FDN0M7UUFDRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDaEIsT0FBTztnQkFDTCx1QkFBdUIsQ0FBQyxXQUFXO2dCQUNuQyx1QkFBdUIsQ0FBQyxjQUFjO2dCQUN0Qyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUNyQyx1QkFBdUIsQ0FBQyxLQUFLO2FBQzlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hCLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQzt5Q0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHBvc2UsIFRyYW5zZm9ybSwgVHlwZSwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgSG9sZGluZ1R5cGUgfSBmcm9tICcuL2hvbGRpbmctdHlwZSc7XG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSAnLi4vZmlsZSc7XG5pbXBvcnQgeyBIb2xkaW5nU2FsZSB9IGZyb20gJy4vaG9sZGluZy1zYWxlJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcblxuZXhwb3J0IGNsYXNzIEhvbGRpbmcgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgaXNUYXhGcmVlID0gZmFsc2U7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIGN1cnJlbnRRdWFudGl0eTogbnVtYmVyO1xuICBvd25lcnNoaXBQZXJjZW50PzogbnVtYmVyO1xuICBwcmljZTogbnVtYmVyO1xuICBmZWU6IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1R5cGUpXG4gIHR5cGU6IEhvbGRpbmdUeXBlO1xuXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXG4gIGZpbGU6IEFwcEZpbGU7XG5cbiAgQFR5cGUoKCkgPT4gSG9sZGluZ1NhbGUpXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gbmV3IENvbGxlY3Rpb248SG9sZGluZ1NhbGU+KHZhbHVlKSlcbiAgc2FsZXM6IENvbGxlY3Rpb248SG9sZGluZ1NhbGU+O1xuXG4gIC8qKlxuICAgKiBAVE9ETyBBcnRlbS9BbGV4IGxvb2tzIGJhZCwgY29tZSB1cCB3aXRoIGEgYmV0dGVyIHNvbHV0aW9uXG4gICAqIGdldCBjdXJyZW50IGNhdGVnb3J5LCBpbiBob2xkaW5nIHdlIGFyZSBpbnRlcmVzdGVkIGluIDMgbWFpbiBjYXRlZ29yaWVzOiBzdG9jay9jcnlwdG8vb3RoZXJcbiAgICovXG4gIEBUcmFuc2Zvcm0oKHsgb2JqIH0pID0+IHtcbiAgICBjb25zdCB0eXBlOiBIb2xkaW5nVHlwZSA9IHBsYWluVG9DbGFzcyhIb2xkaW5nVHlwZSwgb2JqLnR5cGUpXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIHJldHVybiB0eXBlLmlzT3RoZXIoKSA/IG51bGwgOiB0eXBlLmNhdGVnb3J5XG4gICAgfVxuICAgIGlmIChvYmouY2F0ZWdvcnkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtLkNPTExFQ1RJQkxFLFxuICAgICAgICBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5VTkxJU1RFRF9TVE9DSyxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uVU5MSVNURURfVU5JVCxcbiAgICAgICAgSG9sZGluZ1R5cGVDYXRlZ29yeUVudW0uT1RIRVJcbiAgICAgIF0uaW5jbHVkZXMob2JqLmNhdGVnb3J5KSA/IG51bGwgOiBvYmouY2F0ZWdvcnk7XG4gICAgfVxuICAgIHJldHVybiBIb2xkaW5nVHlwZUNhdGVnb3J5RW51bS5TVE9DSztcbiAgfSwgeyB0b0NsYXNzT25seTogdHJ1ZSB9KVxuICBARXhwb3NlKHsgdG9DbGFzc09ubHk6IHRydWUgfSkgY2F0ZWdvcnk6IEhvbGRpbmdUeXBlQ2F0ZWdvcnlFbnVtO1xuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2luZyBwcmljZVxuICAgKi9cbiAgZ2V0IHB1cmNoYXNlVmFsdWUoKTogbnVtYmVyIHtcbiAgICBjb25zdCBxdWFudGl0eSA9IHRoaXMuY3VycmVudFF1YW50aXR5ID8/IHRoaXMucXVhbnRpdHk7XG4gICAgLy8gUHJpY2UgYW5kIGVudGl0eSBtYXkgYmUgZW1wdHkgd2hlbiB3ZSB1c2UgSG9sZGluZ0Zvcm0uY3VycmVudFZhbHVlXG4gICAgaWYgKCF0aGlzLnByaWNlIHx8ICF0aGlzLnF1YW50aXR5KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcmljZSAqIHF1YW50aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IG1hcmtldCBwcmljZVxuICAgKi9cbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFF1YW50aXR5ICogdGhpcy50eXBlLnByaWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwZXJjZW50IGRpZmZlcmVuY2UgYmV0d2VlbiBjdXJyZW50IGFuZCBidXkgcHJpY2VcbiAgICogQFRPRE8gdmlrL2FsZXggbm8gbmVlZCB0byBwYXNzIGhvbGRpbmdUeXBlLCBzaG91bGQgY29tZSBmcm9tIGJhY2tlbmRcbiAgICovXG4gIGdldCBncm93dGhDb2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnR5cGUucHJpY2UgLyB0aGlzLnByaWNlIC0gMTtcbiAgfVxuXG4gIGhlbGRNb3JlWWVhcigpOiBib29sZWFuIHtcbiAgICBjb25zdCB5ZWFyVGltZTogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTtcblxuICAgIHJldHVybiAobmV3IEZpbmFuY2lhbFllYXIoKS5zdGFydERhdGUuZ2V0VGltZSgpIC0gdGhpcy5kYXRlLmdldFRpbWUoKSkgPiB5ZWFyVGltZTtcbiAgfVxuXG4gIGlzU29sZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UXVhbnRpdHkgPT09IDA7XG4gIH1cbn1cbiJdfQ==
|
@@ -33,4 +33,4 @@ __decorate([
|
|
33
33
|
__decorate([
|
34
34
|
Type(() => IncomeSource)
|
35
35
|
], SalaryForecast.prototype, "incomeSource", void 0);
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsYXJ5LWZvcmVjYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2xELE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBT3BELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2hDLENBQUM7SUFLRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3RCLEtBQUssMkJBQTJCLENBQUMsTUFBTTtnQkFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDbEQsS0FBSywyQkFBMkIsQ0FBQyxXQUFXO2dCQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNsRixLQUFLLDJCQUEyQixDQUFDLE1BQU07Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7WUFDOUU7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUNGO0FBNUJDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQzsyQ0FDUDtBQUdaO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQzs4Q0FDSjtBQU9mO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztvREFDRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhbGFyeUZvcmVjYXN0IGFzIFNhbGFyeUZvcmVjYXN0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9pbmNvbWVTb3VyY2Uvc2FsYXJ5LWZvcmVjYXN0JztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4vaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBJSW5jb21lU291cmNlRm9yZWNhc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTYWxhcnlGb3JlY2FzdEZyZXF1ZW5jeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zYWxhcnktZm9yZWNhc3QtZnJlcXVlbmN5LmVudW0nO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcblxuZXhwb3J0IGNsYXNzIFNhbGFyeUZvcmVjYXN0IGV4dGVuZHMgU2FsYXJ5Rm9yZWNhc3RCYXNlIGltcGxlbWVudHMgSUluY29tZVNvdXJjZUZvcmVjYXN0IHtcbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxuICB0YXg6IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXG4gIG5ldFBheTogbnVtYmVyO1xuXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldFBheSArIHRoaXMudGF4O1xuICB9XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZTtcblxuICBnZXQgdGF4V2l0aGhlbGQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc0Ftb3VudCAtIHRoaXMubmV0UGF5O1xuICB9XG5cbiAgZ2V0IG1vbnRobHlBbW91bnQoKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMuZnJlcXVlbmN5KSB7XG4gICAgICBjYXNlIFNhbGFyeUZvcmVjYXN0RnJlcXVlbmN5RW51bS5BTk5VQUw6XG4gICAgICAgIHJldHVybiB0aGlzLm5ldFBheSAvIEZpbmFuY2lhbFllYXIubW9udGhzSW5ZZWFyO1xuICAgICAgY2FzZSBTYWxhcnlGb3JlY2FzdEZyZXF1ZW5jeUVudW0uRk9SVE5JR0hUTFk6XG4gICAgICAgIHJldHVybiB0aGlzLm5ldFBheSAqIEZpbmFuY2lhbFllYXIud2Vla3NJblllYXIgLyBGaW5hbmNpYWxZZWFyLm1vbnRoc0luWWVhciAvIDI7XG4gICAgICBjYXNlIFNhbGFyeUZvcmVjYXN0RnJlcXVlbmN5RW51bS5XRUVLTFk6XG4gICAgICAgIHJldHVybiB0aGlzLm5ldFBheSAqIEZpbmFuY2lhbFllYXIud2Vla3NJblllYXIgLyBGaW5hbmNpYWxZZWFyLm1vbnRoc0luWWVhcjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLm5ldFBheTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -10,4 +10,4 @@ export class SoleForecast extends SoleForecastBase {
|
|
10
10
|
__decorate([
|
11
11
|
Type(() => IncomeSource)
|
12
12
|
], SoleForecast.prototype, "incomeSource", void 0);
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1mb3JlY2FzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9zb2xlLWZvcmVjYXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUl6QyxNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjtJQUloRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBTEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2tEQUNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFNvbGVGb3JlY2FzdCBhcyBTb2xlRm9yZWNhc3RCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3NvbGUvc29sZS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgSUluY29tZVNvdXJjZUZvcmVjYXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5cbmV4cG9ydCBjbGFzcyBTb2xlRm9yZWNhc3QgZXh0ZW5kcyBTb2xlRm9yZWNhc3RCYXNlICBpbXBsZW1lbnRzIElJbmNvbWVTb3VyY2VGb3JlY2FzdCB7XG4gIEBUeXBlKCgpID0+IEluY29tZVNvdXJjZSlcbiAgaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2U7XG5cbiAgZ2V0IG5ldFBheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFtb3VudDtcbiAgfVxufVxuIl19
|
@@ -23,4 +23,5 @@ export * from './income-source';
|
|
23
23
|
export * from './asset-sale';
|
24
24
|
export * from './budget';
|
25
25
|
export * from './tax-return';
|
26
|
-
|
26
|
+
export * from './firm';
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9iYW5rJztcbmV4cG9ydCAqIGZyb20gJy4vYm9ycm93aW5nLWV4cGVuc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXByZWNpYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kaWN0aW9uYXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZmluYW5jaWFsLXllYXInO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FuJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zb2xlJztcbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvcGVydHknO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3VzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9ob2xkaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5jb21lLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0LXNhbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9idWRnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi90YXgtcmV0dXJuJztcbmV4cG9ydCAqIGZyb20gJy4vZmlybSc7XG4iXX0=
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import first from 'lodash/first';
|
2
2
|
import { PropertyEquityChartItem } from './property-equity-chart-item';
|
3
|
-
import { FinancialYear } from '../financial-year
|
3
|
+
import { FinancialYear } from '../financial-year';
|
4
4
|
import { PropertyEquityChartTypeEnum } from './property-equity-chart-type.enum';
|
5
5
|
// count of years for future values
|
6
6
|
const FORECAST_YEARS = 25;
|
@@ -11,11 +11,13 @@ const FORECAST_YEARS = 25;
|
|
11
11
|
* Also on hover appear equity positions point
|
12
12
|
*/
|
13
13
|
export class PropertyEquityChartData {
|
14
|
-
constructor(properties, bankAccounts, loans, registerDate) {
|
15
|
-
this.registerDate = registerDate;
|
14
|
+
constructor(properties, valuations, bankAccounts, loans, registerDate) {
|
16
15
|
this.properties = properties;
|
17
|
-
this.
|
16
|
+
this.valuations = valuations;
|
17
|
+
this.bankAccounts = bankAccounts;
|
18
18
|
this.loans = loans;
|
19
|
+
this.registerDate = registerDate;
|
20
|
+
this.bankAccounts = bankAccounts.getLoanAccounts();
|
19
21
|
this.currentYear = new FinancialYear(new Date()).year;
|
20
22
|
this.initItems();
|
21
23
|
this.buildHistoryItems();
|
@@ -80,12 +82,13 @@ export class PropertyEquityChartData {
|
|
80
82
|
});
|
81
83
|
}
|
82
84
|
/**
|
85
|
+
* @TODO remove, there is no difference between actual and history calculations
|
83
86
|
* set actual year's real data
|
84
87
|
* @private
|
85
88
|
*/
|
86
89
|
buildActualItem() {
|
87
90
|
const item = this.list.find((i) => i.year === this.currentYear);
|
88
|
-
item.marketValue = this.
|
91
|
+
item.marketValue = this.valuations.getMarketValue(new Date());
|
89
92
|
item.loanBalance = this.properties.items.reduce((sum, property) => sum + Math.abs(this.bankAccounts.getPropertyBalanceAmount(property.id)), 0);
|
90
93
|
}
|
91
94
|
/**
|
@@ -94,7 +97,8 @@ export class PropertyEquityChartData {
|
|
94
97
|
buildForecastedItems() {
|
95
98
|
// calculate future values for all properties separately
|
96
99
|
this.properties.items.forEach((property) => {
|
97
|
-
|
100
|
+
const marketValue = this.valuations.filterBy('property.id', property.id).getMarketValue(new Date());
|
101
|
+
let forecastedMarketValue = (property.growthPercent / 100) * marketValue + marketValue;
|
98
102
|
// calculate future values for each future year for current handling property
|
99
103
|
this.list
|
100
104
|
.filter((item) => item.year > this.currentYear)
|
@@ -154,4 +158,4 @@ export class PropertyEquityChartData {
|
|
154
158
|
});
|
155
159
|
}
|
156
160
|
}
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJaEYsbUNBQW1DO0FBQ25DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFVbEMsWUFDRSxVQUE4QixFQUM5QixZQUFtQyxFQUNuQyxLQUFxQixFQUNiLFlBQWtCO1FBQWxCLGlCQUFZLEdBQVosWUFBWSxDQUFNO1FBRTFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxvQkFB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SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRTtZQUNsRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSB9IGZyb20gJy4vcHJvcGVydHktZXF1aXR5LWNoYXJ0LWl0ZW0nO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkvcHJvcGVydHkuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9iYW5rLWFjY291bnQuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBMb2FuQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2xvYW4vbG9hbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0gfSBmcm9tICcuL3Byb3BlcnR5LWVxdWl0eS1jaGFydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuL3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vYmFuay9iYW5rLWFjY291bnQnO1xuXG4vLyBjb3VudCBvZiB5ZWFycyBmb3IgZnV0dXJlIHZhbHVlc1xuY29uc3QgRk9SRUNBU1RfWUVBUlMgPSAyNTtcblxuLyoqXG4gKiBjbGFzcyBjb250YWluIGFjdHVhbCBhbmQgZm9yZWNhc3RlZCBtYXJrZXQgdmFsdWVzIGFuZCBsb2FuIGJhbGFuY2VzIGZvciBwYXNzZWQgcHJvcGVydGllc1xuICogWCBheGlzIC0geWVhcnMgZnJvbSB0aGUgZmlyc3QgYWN0dWFsIGRhdGEgeWVhciB0byB0aGUgbGFzdCBmb3JlY2FzdGVkIHllYXJcbiAqIFkgYXhpcyAtIGFtb3VudHMgb2YgbWFya2V0IHZhbHVlcywgbG9hbiBiYWxhbmNlc1xuICogQWxzbyBvbiBob3ZlciBhcHBlYXIgZXF1aXR5IHBvc2l0aW9ucyBwb2ludFxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHlFcXVpdHlDaGFydERhdGEge1xuICAvLyBsaXN0IG9mIGVxdWl0eSBwb3NpdGlvbnMgZm9yIGFsbCB5ZWFycyByYW5nZVxuICBsaXN0OiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbVtdO1xuICAvLyBjdXJyZW50IGZpbmFuY2lhbCB5ZWFyXG4gIGN1cnJlbnRZZWFyOiBudW1iZXI7XG4gIC8vIGxpc3Qgb2YgcHJvcGVydGllcyB0aGlzIGNvbGxlY3Rpb24gYmFzZWQgb25cbiAgcHJpdmF0ZSBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb247XG4gIHByaXZhdGUgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb247XG4gIHByaXZhdGUgbG9hbnM6IExvYW5Db2xsZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbixcbiAgICBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbixcbiAgICBsb2FuczogTG9hbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSByZWdpc3RlckRhdGU6IERhdGVcbiAgKSB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB0aGlzLmJhbmtBY2NvdW50cyA9IGJhbmtBY2NvdW50cy5nZXRMb2FuQWNjb3VudHMoKTtcbiAgICB0aGlzLmxvYW5zID0gbG9hbnM7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKCkpLnllYXI7XG4gICAgdGhpcy5pbml0SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkSGlzdG9yeUl0ZW1zKCk7XG4gICAgdGhpcy5idWlsZEFjdHVhbEl0ZW0oKTtcbiAgICB0aGlzLmJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk7XG4gICAgdGhpcy5jaGVja1plcm9Mb2FuQmFsYW5jZSgpO1xuICAgIHRoaXMuY2hlY2taZXJvTWFya2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaXRlbXMgbGlzdCBpbiBjaGFydCBzZXJpZXMgZm9ybWF0XG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBnZXRDaGFydFNlcmllcyh0eXBlOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0pOiBudW1iZXJbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Lm1hcCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0uZ2V0U2VyaWUodHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcmVwYXJlZCBjaGFydCBkYXRhXG4gICAqL1xuICBnZXRDaGFydERhdGEoKTogb2JqZWN0W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWFya2V0VmFsdWUnLFxuICAgICAgICBuYW1lOiAnTWFya2V0IFZhbHVlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5NQVJLRVRfVkFMVUUpLFxuICAgICAgICAvLyBkaXNwbGF5IGZ1dHVyZSBtYXJrZXQgdmFsdWUgd2l0aCBkYXNoIGxpbmUgYW5kIHBhc3QgbWFya2V0IHZhbHVlIHdpdGggc29saWQgbGluZVxuICAgICAgICB6b25lczogW3tcbiAgICAgICAgICAvLyBsaW5lIHN0eWxlIGFmdGVyIGN1cnJlbnQgY2FsZW5kYXIgeWVhclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmN1cnJlbnRZZWFyLFxuICAgICAgICAgIGRhc2hTdHlsZTogJ1NvbGlkJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgLy8gZGVmYXVsdCBsaW5lIHN0eWxlXG4gICAgICAgICAgZGFzaFN0eWxlOiAnRGFzaCdcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGlkIHVzZWQgdG8gYWRkL3JlbW92ZSBzZXJpZSB0byBjaGFydFxuICAgICAgICBpZDogJ2xvYW5CYWxhbmNlJyxcbiAgICAgICAgbmFtZTogJ0xvYW4gQmFsYW5jZScsXG4gICAgICAgIHNlcmllczogdGhpcy5nZXRDaGFydFNlcmllcyhQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0uTE9BTl9CQUxBTkNFKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIGVtcHR5IGVxdWl0eSBwb3NpdGlvbiBpdGVtIGZvciBlYWNoIHllYXIgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpbml0SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ID0gW107XG4gICAgZm9yIChsZXQgeWVhcjogbnVtYmVyID0gbmV3IEZpbmFuY2lhbFllYXIodGhpcy5yZWdpc3RlckRhdGUpLnllYXIgLSAxOyB5ZWFyIDw9ICh0aGlzLmN1cnJlbnRZZWFyICsgRk9SRUNBU1RfWUVBUlMpOyB5ZWFyKyspIHtcbiAgICAgIHRoaXMubGlzdC5wdXNoKG5ldyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSh5ZWFyKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggcGFzdCB2YWx1ZXMgZnJvbSBwcm9wZXJ0aWVzIGZvcmVjYXN0c1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpc3RvcnlJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBnZXQgaXRlbXMgZm9yIHBhc3QgYW5kIGN1cnJlbnQgeWVhcnNcbiAgICBjb25zdCBpdGVtczogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXSA9IHRoaXMubGlzdC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPD0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIC8vIGluY3JlYXNlIGl0ZW0gdmFsdWVzIHdpdGggcHJvcGVydHkgYWN0dWFsIGZvcmVjYXN0cyBmb3IgaXRlbSB5ZWFyXG4gICAgICBpdGVtLm1hcmtldFZhbHVlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldE1hcmtldFZhbHVlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApO1xuXG4gICAgICBpdGVtLmxvYW5CYWxhbmNlID0gTWF0aC5hYnModGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldExvYW5CYWxhbmNlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZXQgYWN0dWFsIHllYXIncyByZWFsIGRhdGFcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRBY3R1YWxJdGVtKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtID0gdGhpcy5saXN0LmZpbmQoKGk6IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpLnllYXIgPT09IHRoaXMuY3VycmVudFllYXIpO1xuICAgIGl0ZW0ubWFya2V0VmFsdWUgPSB0aGlzLnByb3BlcnRpZXMubWFya2V0VmFsdWU7XG4gICAgaXRlbS5sb2FuQmFsYW5jZSA9IHRoaXMucHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4gc3VtICsgTWF0aC5hYnModGhpcy5iYW5rQWNjb3VudHMuZ2V0UHJvcGVydHlCYWxhbmNlQW1vdW50KHByb3BlcnR5LmlkKSksIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggZm9yZWNhc3RlZCAoZnV0dXJlKSBjYWxjdWxhdGVkIHZhbHVlc1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEZvcmVjYXN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBjYWxjdWxhdGUgZnV0dXJlIHZhbHVlcyBmb3IgYWxsIHByb3BlcnRpZXMgc2VwYXJhdGVseVxuICAgIHRoaXMucHJvcGVydGllcy5pdGVtcy5mb3JFYWNoKChwcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgIGxldCBmb3JlY2FzdGVkTWFya2V0VmFsdWU6IG51bWJlciA9IChwcm9wZXJ0eS5ncm93dGhQZXJjZW50IC8gMTAwKSAqIHByb3BlcnR5Lm1hcmtldFZhbHVlICsgcHJvcGVydHkubWFya2V0VmFsdWU7XG5cbiAgICAgIC8vIGNhbGN1bGF0ZSBmdXR1cmUgdmFsdWVzIGZvciBlYWNoIGZ1dHVyZSB5ZWFyIGZvciBjdXJyZW50IGhhbmRsaW5nIHByb3BlcnR5XG4gICAgICB0aGlzLmxpc3RcbiAgICAgICAgLmZpbHRlcigoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0ueWVhciA+IHRoaXMuY3VycmVudFllYXIpXG4gICAgICAgIC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5QmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24gPSB0aGlzLmJhbmtBY2NvdW50cy5nZXRCeVByb3BlcnR5SWQocHJvcGVydHkuaWQpO1xuICAgICAgICAgIC8vIGluY3JlYXNlIGxvYW4gYmFsYW5jZSBhbW91bnQgZm9yIGhhbmRsaW5nIGVxdWl0eSBwb3NpdGlvbiBpdGVtXG4gICAgICAgICAgaXRlbS5sb2FuQmFsYW5jZSArPSB0aGlzLmdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5LCBpdGVtLnllYXIsIHByb3BlcnR5QmFua0FjY291bnRzLCB0aGlzLmxvYW5zLmdldEJ5QmFua0FjY291bnRzSWRzKHByb3BlcnR5QmFua0FjY291bnRzLmdldElkcygpKSk7XG5cbiAgICAgICAgICAvLyBpbmNyZWFzZSBtYXJrZXQgdmFsdWUgYW1vdW50IGZvciBoYW5kbGluZyBlcXVpdHkgcG9zaXRpb24gaXRlbVxuICAgICAgICAgIGl0ZW0ubWFya2V0VmFsdWUgKz0gZm9yZWNhc3RlZE1hcmtldFZhbHVlO1xuXG4gICAgICAgICAgLy8gaW5jcmVhc2UgY3VycmVudCBtYXJrZXQgdmFsdWUgZm9yZWNhc3QgZm9yIHRoZSBuZXh0IGN5Y2xlIGl0ZXJhdGlvblxuICAgICAgICAgIGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZSArPSBmb3JlY2FzdGVkTWFya2V0VmFsdWUgKiAocHJvcGVydHkuZ3Jvd3RoUGVyY2VudCAvIDEwMCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSBsb2FuIGJhbGFuY2UgYnkgZmluYW5jaWFsIHllYXJcbiAgICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IGluc3RhbmNlIGZvciBmaWx0ZXJcbiAgICogQHBhcmFtIHllYXIgRmluYW5jaWFsIHllYXIgbnVtYmVyXG4gICAqIEBwYXJhbSBiYW5rQWNjb3VudHMgTGlzdCBvZiBiYW5rIGFjY291bnRzXG4gICAqIEBwYXJhbSBsb2FucyBMaXN0IG9mIGxvYW5zXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldExvYW5CYWxhbmNlQnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYmFua0FjY291bnRzLml0ZW1zLnJlZHVjZSgodG90YWxTdW06IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHRvdGFsU3VtICsgKGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uZ2V0TGFzdFBheW1lbnRCeVllYXIoeWVhcik/LnRvdGFsT3dlZCB8fCAwKSksIDApO1xuICB9XG5cbiAgZ2V0TWFya2V0VmFsdWVGb3JQcm9wZXJ0eUJ5WWVhcihwcm9wZXJ0eTogUHJvcGVydHksIHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG5ldyBGaW5hbmNpYWxZZWFyKHByb3BlcnR5LmNvbnRyYWN0RGF0ZSkueWVhciA+IHllYXIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAocHJvcGVydHkuZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcikgfHwgZmlyc3QocHJvcGVydHkuZm9yZWNhc3RzKSkubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXRMb2FuQmFsYW5jZUZvclByb3BlcnR5QnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobmV3IEZpbmFuY2lhbFllYXIocHJvcGVydHkuY29udHJhY3REYXRlKS55ZWFyID4geWVhcikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLy8gQFRPRE8gcmVtb3ZlIGFmdGVyIHRlc3RzIGB8fCB0aGlzLmJhbmtBY2NvdW50cy5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpYFxuICAgIHJldHVybiBwcm9wZXJ0eS5nZXRGb3JlY2FzdEJ5WWVhcih5ZWFyKT8ubG9hbkJhbGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbG9hbiBiYWxhbmNlIGlzIDAgYW5kIHNldCBpdCBhcyBudWxsICh0byBub3QgdG8gZHJhdyBwb2ludCBvbiB0aGUgY2hhcnQpXG4gICAqL1xuICBwcml2YXRlIGNoZWNrWmVyb0xvYW5CYWxhbmNlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubG9hbkJhbGFuY2UgPT09IDApIHtcbiAgICAgICAgaXRlbS5sb2FuQmFsYW5jZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWFya2V0IHZhbHVlIGlzIDAgYW5kIHNldCBpdCBhcyBudWxsICh0byBub3QgdG8gZHJhdyBwb2ludCBvbiB0aGUgY2hhcnQpXG4gICAqL1xuICBwcml2YXRlIGNoZWNrWmVyb01hcmtldFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdC5mb3JFYWNoKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubWFya2V0VmFsdWUgPT09IDApIHtcbiAgICAgICAgaXRlbS5tYXJrZXRWYWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU92RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJaEYsbUNBQW1DO0FBQ25DLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUUxQjs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFDVSxVQUE4QixFQUM5QixVQUF1QyxFQUN2QyxZQUFtQyxFQUNuQyxLQUFxQixFQUNyQixZQUFrQjtRQUpsQixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQUN2QyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQU07UUFFMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFD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QUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN4RCxPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsd0ZBQXdGO1FBQ3hGLE9BQU8sUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUE2QixFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQTZCLEVBQUUsRUFBRTtZQUNsRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSB9IGZyb20gJy4vcHJvcGVydHktZXF1aXR5LWNoYXJ0LWl0ZW0nO1xuaW1wb3J0IHtcbiAgQmFua0FjY291bnRDb2xsZWN0aW9uLFxuICBMb2FuQ29sbGVjdGlvbixcbiAgUHJvcGVydHlDb2xsZWN0aW9uLFxuICBQcm9wZXJ0eVZhbHVhdGlvbkNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7IFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bSB9IGZyb20gJy4vcHJvcGVydHktZXF1aXR5LWNoYXJ0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4vcHJvcGVydHknO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi9iYW5rJztcblxuLy8gY291bnQgb2YgeWVhcnMgZm9yIGZ1dHVyZSB2YWx1ZXNcbmNvbnN0IEZPUkVDQVNUX1lFQVJTID0gMjU7XG5cbi8qKlxuICogY2xhc3MgY29udGFpbiBhY3R1YWwgYW5kIGZvcmVjYXN0ZWQgbWFya2V0IHZhbHVlcyBhbmQgbG9hbiBiYWxhbmNlcyBmb3IgcGFzc2VkIHByb3BlcnRpZXNcbiAqIFggYXhpcyAtIHllYXJzIGZyb20gdGhlIGZpcnN0IGFjdHVhbCBkYXRhIHllYXIgdG8gdGhlIGxhc3QgZm9yZWNhc3RlZCB5ZWFyXG4gKiBZIGF4aXMgLSBhbW91bnRzIG9mIG1hcmtldCB2YWx1ZXMsIGxvYW4gYmFsYW5jZXNcbiAqIEFsc28gb24gaG92ZXIgYXBwZWFyIGVxdWl0eSBwb3NpdGlvbnMgcG9pbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5RXF1aXR5Q2hhcnREYXRhIHtcbiAgLy8gbGlzdCBvZiBlcXVpdHkgcG9zaXRpb25zIGZvciBhbGwgeWVhcnMgcmFuZ2VcbiAgbGlzdDogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXTtcbiAgLy8gY3VycmVudCBmaW5hbmNpYWwgeWVhclxuICBjdXJyZW50WWVhcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIHByaXZhdGUgdmFsdWF0aW9uczogUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uLFxuICAgIHByaXZhdGUgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSBsb2FuczogTG9hbkNvbGxlY3Rpb24sXG4gICAgcHJpdmF0ZSByZWdpc3RlckRhdGU6IERhdGVcbiAgKSB7XG4gICAgdGhpcy5iYW5rQWNjb3VudHMgPSBiYW5rQWNjb3VudHMuZ2V0TG9hbkFjY291bnRzKCk7XG4gICAgdGhpcy5jdXJyZW50WWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKCkpLnllYXI7XG4gICAgdGhpcy5pbml0SXRlbXMoKTtcbiAgICB0aGlzLmJ1aWxkSGlzdG9yeUl0ZW1zKCk7XG4gICAgdGhpcy5idWlsZEFjdHVhbEl0ZW0oKTtcbiAgICB0aGlzLmJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk7XG4gICAgdGhpcy5jaGVja1plcm9Mb2FuQmFsYW5jZSgpO1xuICAgIHRoaXMuY2hlY2taZXJvTWFya2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaXRlbXMgbGlzdCBpbiBjaGFydCBzZXJpZXMgZm9ybWF0XG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBnZXRDaGFydFNlcmllcyh0eXBlOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0pOiBudW1iZXJbXVtdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Lm1hcCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGl0ZW0uZ2V0U2VyaWUodHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBwcmVwYXJlZCBjaGFydCBkYXRhXG4gICAqL1xuICBnZXRDaGFydERhdGEoKTogb2JqZWN0W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWFya2V0VmFsdWUnLFxuICAgICAgICBuYW1lOiAnTWFya2V0IFZhbHVlJyxcbiAgICAgICAgc2VyaWVzOiB0aGlzLmdldENoYXJ0U2VyaWVzKFByb3BlcnR5RXF1aXR5Q2hhcnRUeXBlRW51bS5NQVJLRVRfVkFMVUUpLFxuICAgICAgICAvLyBkaXNwbGF5IGZ1dHVyZSBtYXJrZXQgdmFsdWUgd2l0aCBkYXNoIGxpbmUgYW5kIHBhc3QgbWFya2V0IHZhbHVlIHdpdGggc29saWQgbGluZVxuICAgICAgICB6b25lczogW3tcbiAgICAgICAgICAvLyBsaW5lIHN0eWxlIGFmdGVyIGN1cnJlbnQgY2FsZW5kYXIgeWVhclxuICAgICAgICAgIHZhbHVlOiB0aGlzLmN1cnJlbnRZZWFyLFxuICAgICAgICAgIGRhc2hTdHlsZTogJ1NvbGlkJ1xuICAgICAgICB9LCB7XG4gICAgICAgICAgLy8gZGVmYXVsdCBsaW5lIHN0eWxlXG4gICAgICAgICAgZGFzaFN0eWxlOiAnRGFzaCdcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGlkIHVzZWQgdG8gYWRkL3JlbW92ZSBzZXJpZSB0byBjaGFydFxuICAgICAgICBpZDogJ2xvYW5CYWxhbmNlJyxcbiAgICAgICAgbmFtZTogJ0xvYW4gQmFsYW5jZScsXG4gICAgICAgIHNlcmllczogdGhpcy5nZXRDaGFydFNlcmllcyhQcm9wZXJ0eUVxdWl0eUNoYXJ0VHlwZUVudW0uTE9BTl9CQUxBTkNFKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogY3JlYXRlIGVtcHR5IGVxdWl0eSBwb3NpdGlvbiBpdGVtIGZvciBlYWNoIHllYXIgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBpbml0SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ID0gW107XG4gICAgZm9yIChsZXQgeWVhcjogbnVtYmVyID0gbmV3IEZpbmFuY2lhbFllYXIodGhpcy5yZWdpc3RlckRhdGUpLnllYXIgLSAxOyB5ZWFyIDw9ICh0aGlzLmN1cnJlbnRZZWFyICsgRk9SRUNBU1RfWUVBUlMpOyB5ZWFyKyspIHtcbiAgICAgIHRoaXMubGlzdC5wdXNoKG5ldyBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSh5ZWFyKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgZXF1aXR5IHBvc2l0aW9uIGl0ZW1zIHdpdGggcGFzdCB2YWx1ZXMgZnJvbSBwcm9wZXJ0aWVzIGZvcmVjYXN0c1xuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEhpc3RvcnlJdGVtcygpOiB2b2lkIHtcbiAgICAvLyBnZXQgaXRlbXMgZm9yIHBhc3QgYW5kIGN1cnJlbnQgeWVhcnNcbiAgICBjb25zdCBpdGVtczogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW1bXSA9IHRoaXMubGlzdC5maWx0ZXIoKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiBpdGVtLnllYXIgPD0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IHtcbiAgICAgIC8vIGluY3JlYXNlIGl0ZW0gdmFsdWVzIHdpdGggcHJvcGVydHkgYWN0dWFsIGZvcmVjYXN0cyBmb3IgaXRlbSB5ZWFyXG4gICAgICBpdGVtLm1hcmtldFZhbHVlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldE1hcmtldFZhbHVlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApO1xuXG4gICAgICBpdGVtLmxvYW5CYWxhbmNlID0gTWF0aC5hYnModGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyB0aGlzLmdldExvYW5CYWxhbmNlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciksIDApKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUsIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiBhY3R1YWwgYW5kIGhpc3RvcnkgY2FsY3VsYXRpb25zXG4gICAqIHNldCBhY3R1YWwgeWVhcidzIHJlYWwgZGF0YVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEFjdHVhbEl0ZW0oKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0gPSB0aGlzLmxpc3QuZmluZCgoaTogUHJvcGVydHlFcXVpdHlDaGFydEl0ZW0pID0+IGkueWVhciA9PT0gdGhpcy5jdXJyZW50WWVhcik7XG4gICAgaXRlbS5tYXJrZXRWYWx1ZSA9IHRoaXMudmFsdWF0aW9ucy5nZXRNYXJrZXRWYWx1ZShuZXcgRGF0ZSgpKTtcbiAgICBpdGVtLmxvYW5CYWxhbmNlID0gdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiBzdW0gKyBNYXRoLmFicyh0aGlzLmJhbmtBY2NvdW50cy5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdCBlcXVpdHkgcG9zaXRpb24gaXRlbXMgd2l0aCBmb3JlY2FzdGVkIChmdXR1cmUpIGNhbGN1bGF0ZWQgdmFsdWVzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkRm9yZWNhc3RlZEl0ZW1zKCk6IHZvaWQge1xuICAgIC8vIGNhbGN1bGF0ZSBmdXR1cmUgdmFsdWVzIGZvciBhbGwgcHJvcGVydGllcyBzZXBhcmF0ZWx5XG4gICAgdGhpcy5wcm9wZXJ0aWVzLml0ZW1zLmZvckVhY2goKHByb3BlcnR5OiBQcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgbWFya2V0VmFsdWUgPSB0aGlzLnZhbHVhdGlvbnMuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgcHJvcGVydHkuaWQpLmdldE1hcmtldFZhbHVlKG5ldyBEYXRlKCkpO1xuICAgICAgbGV0IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZTogbnVtYmVyID0gKHByb3BlcnR5Lmdyb3d0aFBlcmNlbnQgLyAxMDApICogbWFya2V0VmFsdWUgKyBtYXJrZXRWYWx1ZTtcblxuICAgICAgLy8gY2FsY3VsYXRlIGZ1dHVyZSB2YWx1ZXMgZm9yIGVhY2ggZnV0dXJlIHllYXIgZm9yIGN1cnJlbnQgaGFuZGxpbmcgcHJvcGVydHlcbiAgICAgIHRoaXMubGlzdFxuICAgICAgICAuZmlsdGVyKChpdGVtOiBQcm9wZXJ0eUVxdWl0eUNoYXJ0SXRlbSkgPT4gaXRlbS55ZWFyID4gdGhpcy5jdXJyZW50WWVhcilcbiAgICAgICAgLmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlCYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiA9IHRoaXMuYmFua0FjY291bnRzLmdldEJ5UHJvcGVydHlJZChwcm9wZXJ0eS5pZCk7XG4gICAgICAgICAgLy8gaW5jcmVhc2UgbG9hbiBiYWxhbmNlIGFtb3VudCBmb3IgaGFuZGxpbmcgZXF1aXR5IHBvc2l0aW9uIGl0ZW1cbiAgICAgICAgICBpdGVtLmxvYW5CYWxhbmNlICs9IHRoaXMuZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHksIGl0ZW0ueWVhciwgcHJvcGVydHlCYW5rQWNjb3VudHMsIHRoaXMubG9hbnMuZ2V0QnlCYW5rQWNjb3VudHNJZHMocHJvcGVydHlCYW5rQWNjb3VudHMuZ2V0SWRzKCkpKTtcblxuICAgICAgICAgIC8vIGluY3JlYXNlIG1hcmtldCB2YWx1ZSBhbW91bnQgZm9yIGhhbmRsaW5nIGVxdWl0eSBwb3NpdGlvbiBpdGVtXG4gICAgICAgICAgaXRlbS5tYXJrZXRWYWx1ZSArPSBmb3JlY2FzdGVkTWFya2V0VmFsdWU7XG5cbiAgICAgICAgICAvLyBpbmNyZWFzZSBjdXJyZW50IG1hcmtldCB2YWx1ZSBmb3JlY2FzdCBmb3IgdGhlIG5leHQgY3ljbGUgaXRlcmF0aW9uXG4gICAgICAgICAgZm9yZWNhc3RlZE1hcmtldFZhbHVlICs9IGZvcmVjYXN0ZWRNYXJrZXRWYWx1ZSAqIChwcm9wZXJ0eS5ncm93dGhQZXJjZW50IC8gMTAwKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByb3BlcnR5IGxvYW4gYmFsYW5jZSBieSBmaW5hbmNpYWwgeWVhclxuICAgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgaW5zdGFuY2UgZm9yIGZpbHRlclxuICAgKiBAcGFyYW0geWVhciBGaW5hbmNpYWwgeWVhciBudW1iZXJcbiAgICogQHBhcmFtIGJhbmtBY2NvdW50cyBMaXN0IG9mIGJhbmsgYWNjb3VudHNcbiAgICogQHBhcmFtIGxvYW5zIExpc3Qgb2YgbG9hbnNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0TG9hbkJhbGFuY2VCeVllYXIocHJvcGVydHk6IFByb3BlcnR5LCB5ZWFyOiBudW1iZXIsIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBiYW5rQWNjb3VudHMuaXRlbXMucmVkdWNlKCh0b3RhbFN1bTogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4gdG90YWxTdW0gKyAoYmFua0FjY291bnQuZ2V0UHJvcGVydHlQZXJjZW50YWdlKHByb3BlcnR5LmlkKSAqIChsb2Fucy5nZXRCeUJhbmtBY2NvdW50SWQoYmFua0FjY291bnQuaWQpPy5nZXRMYXN0UGF5bWVudEJ5WWVhcih5ZWFyKT8udG90YWxPd2VkIHx8IDApKSwgMCk7XG4gIH1cblxuICBnZXRNYXJrZXRWYWx1ZUZvclByb3BlcnR5QnlZZWFyKHByb3BlcnR5OiBQcm9wZXJ0eSwgeWVhcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAobmV3IEZpbmFuY2lhbFllYXIocHJvcGVydHkuY29udHJhY3REYXRlKS55ZWFyID4geWVhcikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIChwcm9wZXJ0eS5nZXRGb3JlY2FzdEJ5WWVhcih5ZWFyKSB8fCBmaXJzdChwcm9wZXJ0eS5mb3JlY2FzdHMpKS5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldExvYW5CYWxhbmNlRm9yUHJvcGVydHlCeVllYXIocHJvcGVydHk6IFByb3BlcnR5LCB5ZWFyOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChuZXcgRmluYW5jaWFsWWVhcihwcm9wZXJ0eS5jb250cmFjdERhdGUpLnllYXIgPiB5ZWFyKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICAvLyBAVE9ETyByZW1vdmUgYWZ0ZXIgdGVzdHMgYHx8IHRoaXMuYmFua0FjY291bnRzLmdldFByb3BlcnR5QmFsYW5jZUFtb3VudChwcm9wZXJ0eS5pZClgXG4gICAgcmV0dXJuIHByb3BlcnR5LmdldEZvcmVjYXN0QnlZZWFyKHllYXIpPy5sb2FuQmFsYW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBsb2FuIGJhbGFuY2UgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTG9hbkJhbGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5sb2FuQmFsYW5jZSA9PT0gMCkge1xuICAgICAgICBpdGVtLmxvYW5CYWxhbmNlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtYXJrZXQgdmFsdWUgaXMgMCBhbmQgc2V0IGl0IGFzIG51bGwgKHRvIG5vdCB0byBkcmF3IHBvaW50IG9uIHRoZSBjaGFydClcbiAgICovXG4gIHByaXZhdGUgY2hlY2taZXJvTWFya2V0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0LmZvckVhY2goKGl0ZW06IFByb3BlcnR5RXF1aXR5Q2hhcnRJdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5tYXJrZXRWYWx1ZSA9PT0gMCkge1xuICAgICAgICBpdGVtLm1hcmtldFZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -28,12 +28,6 @@ export class PropertyForecast extends PropertyForecastBase {
|
|
28
28
|
get rentalReturn() {
|
29
29
|
return this.income / this.marketValue;
|
30
30
|
}
|
31
|
-
/**
|
32
|
-
* Check if forecast is for real current fin year (not selected in the sidebar)
|
33
|
-
*/
|
34
|
-
isCurrentYear() {
|
35
|
-
return this.financialYear === new FinancialYear(new Date()).year;
|
36
|
-
}
|
37
31
|
}
|
38
32
|
__decorate([
|
39
33
|
Transform(({ value }) => +value)
|
@@ -53,4 +47,4 @@ __decorate([
|
|
53
47
|
__decorate([
|
54
48
|
Transform(({ value }) => +value)
|
55
49
|
], PropertyForecast.prototype, "marketValue", void 0);
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZm9yZWNhc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWZvcmVjYXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLElBQUksb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBR3BELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBb0I7SUFBMUQ7O1FBbUJFLGtCQUFhLEdBQVcsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztJQTBCN0QsQ0FBQztJQXhCQzs7O09BR0c7SUFDSCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFHRDs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBM0NDO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0RBQ2xCO0FBR2Y7SUFEQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpREFDNUI7QUFHaEI7SUFEQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztrREFDM0I7QUFHakI7SUFEQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztzREFDdkI7QUFHckI7SUFEQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztxREFDYjtBQUdwQjtJQURDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO3FEQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydHlGb3JlY2FzdCBhcyBQcm9wZXJ0eUZvcmVjYXN0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1mb3JlY2FzdCc7XG5pbXBvcnQgeyBGaW5hbmNpYWxZZWFyIH0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlGb3JlY2FzdCBleHRlbmRzIFByb3BlcnR5Rm9yZWNhc3RCYXNlIHtcbiAgQFRyYW5zZm9ybSgoeyB2YWx1ZSB9KSA9PiArdmFsdWUpXG4gIGluY29tZTogbnVtYmVyO1xuXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gLU1hdGguYWJzKCt2YWx1ZSkpXG4gIGV4cGVuc2U6IG51bWJlcjtcblxuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+IC1NYXRoLmFicygrdmFsdWUpKVxuICBpbnRlcmVzdDogbnVtYmVyO1xuXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gLU1hdGguYWJzKCt2YWx1ZSkpXG4gIGRlcHJlY2lhdGlvbjogbnVtYmVyO1xuXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gK3ZhbHVlKVxuICBsb2FuQmFsYW5jZTogbnVtYmVyO1xuXG4gIEBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4gK3ZhbHVlKVxuICBtYXJrZXRWYWx1ZTogbnVtYmVyO1xuXG4gIGZpbmFuY2lhbFllYXI6IG51bWJlciA9IG5ldyBGaW5hbmNpYWxZZWFyKG5ldyBEYXRlKCkpLnllYXI7XG5cbiAgLyoqXG4gICAqIEdldCBjYXNoIHBvc2l0aW9uXG4gICAqIENhc2ggUG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3RcbiAgICovXG4gIGdldCBjYXNoUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbmNvbWUgKyB0aGlzLmV4cGVuc2UgKyB0aGlzLmludGVyZXN0O1xuICB9XG5cblxuICAvKipcbiAgICogR2V0IHRheCBwb3NpdGlvblxuICAgKiBUYXggUG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QgLSBEZXByZWNpYXRpb25cbiAgICovXG4gIGdldCB0YXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNhc2hQb3NpdGlvbiArIHRoaXMuZGVwcmVjaWF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZW50YWwgcmV0dXJuIHBlcmNlbnRcbiAgICogUmVudGFsIFJldHVybiA9IEluY29tZSAvIE1hcmtldCBWYWx1ZVxuICAgKi9cbiAgZ2V0IHJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmluY29tZSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
@@ -15,6 +15,8 @@ import { PropertySaleTaxExemptionMetaFieldCollection } from '../../collections';
|
|
15
15
|
import round from 'lodash/round';
|
16
16
|
import { AppFile } from '../file';
|
17
17
|
import { PropertyCategoryMovement } from './property-category-movement';
|
18
|
+
import { FinancialYear } from '../financial-year';
|
19
|
+
import { plainToClass } from 'class-transformer';
|
18
20
|
/**
|
19
21
|
* propertySale docs - https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4209508353/Property+Sold+button
|
20
22
|
*/
|
@@ -46,7 +48,9 @@ export class Property extends PropertyBase {
|
|
46
48
|
return this.valuation?.marketValue || 0;
|
47
49
|
}
|
48
50
|
get currentYearForecast() {
|
49
|
-
|
51
|
+
const year = new FinancialYear().year;
|
52
|
+
return this.forecasts.find((forecast) => forecast.financialYear === year)
|
53
|
+
?? plainToClass(PropertyForecast, {});
|
50
54
|
}
|
51
55
|
get forecastedRentalReturn() {
|
52
56
|
return this.currentYearForecast?.rentalReturn || 0;
|
@@ -246,4 +250,4 @@ __decorate([
|
|
246
250
|
__decorate([
|
247
251
|
Exclude()
|
248
252
|
], Property.prototype, "documentFile", void 0);
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUNtQiwyQ0FBMkMsRUFDcEUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJ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TSxDQUFDOytDQUNFO0FBR3JCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs4Q0FDRTtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0k7QUFHckI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3lDQUNIO0FBR2pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDOzBDQUNGO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO21EQUNTO0FBRzlDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQzsyQ0FDQTtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7MkNBQ0E7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO21EQUNRO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDOzJDQUNDO0FBRzlCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzt3Q0FDRjtBQUd4QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs0Q0FDRTtBQUdoQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzsyQ0FDRDtBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7c0NBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsrQ0FDSztBQUd0QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7c0NBQ047QUFHZDtJQURDLE9BQU8sRUFBRTs4Q0FDUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IGFzIFByb3BlcnR5QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgRXhjbHVkZSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7IFByb3BlcnR5VmFsdWF0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS12YWx1YXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlGb3JlY2FzdCB9IGZyb20gJy4vcHJvcGVydHktZm9yZWNhc3QnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgVGF4RXhlbXB0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvdGF4LWV4ZW1wdGlvbi5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNhbGUgfSBmcm9tICcuL3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgdW5pdE9mVGltZSB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1xuICBEZXByZWNpYXRpb25Db2xsZWN0aW9uLCBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSAnLi4vZmlsZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50JztcblxuLyoqXG4gKiBwcm9wZXJ0eVNhbGUgZG9jcyAtIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDIwOTUwODM1My9Qcm9wZXJ0eStTb2xkK2J1dHRvblxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICAvKipcbiAgICogUHJvcGVydHkgYWNxdWlyZWQgYmVmb3JlIDIwIFNlcHRlbWJlciAxOTg1IHdpbGwgZ2VuZXJhbGx5IGJlIHRyZWF0ZWQgYXMgcHJlLUNhcGl0YWwgR2FpbnMgVGF4IChDR1QpIGFzc2V0cy5cbiAgICogQW55IGFzc2V0cyBhY3F1aXJlZCBiZWZvcmUgdGhpcyBkYXkgYXJlIENHVCBleGVtcHQgKGJlY2F1c2UgdGhlIHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqL1xuICBzdGF0aWMgcHJlQ0dUQXNzZXREYXRlOiBEYXRlID0gbmV3IERhdGUoMTk4NSwgOSwgMjApO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgcHVyY2hhc2VQcmljZTogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgZ3Jvd3RoUGVyY2VudDogbnVtYmVyXG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgY29udHJhY3REYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHNldHRsZW1lbnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IEFkZHJlc3MpXG4gIGFkZHJlc3M6IEFkZHJlc3M7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeSlcbiAgY2F0ZWdvcnk6IFByb3BlcnR5Q2F0ZWdvcnk7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50KVxuICBjYXRlZ29yeU1vdmVtZW50czogUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50W107XG5cbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxuICBzdGFtcER1dHk/OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxuICBsZWdhbEZlZXM/OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gTnVtYmVyKVxuICBvdGhlckNhcGl0YWxDb3N0cz86IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eUZvcmVjYXN0KVxuICBmb3JlY2FzdHM6IFByb3BlcnR5Rm9yZWNhc3RbXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVNoYXJlKVxuICBzaGFyZXM6IFByb3BlcnR5U2hhcmVbXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVZhbHVhdGlvbilcbiAgdmFsdWF0aW9uczogUHJvcGVydHlWYWx1YXRpb25bXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVZhbHVhdGlvbilcbiAgdmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbjtcblxuICBAVHlwZSgoKSA9PiBVc2VyKVxuICB1c2VyOiBVc2VyO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5U3Vic2NyaXB0aW9uKVxuICBzdWJzY3JpcHRpb25zOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IEFwcEZpbGUpXG4gIGZpbGU6IEFwcEZpbGU7XG5cbiAgQEV4Y2x1ZGUoKVxuICBkb2N1bWVudEZpbGU6IEZpbGU7XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzLm5hbWU7XG4gIH1cblxuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdWJzY3JpcHRpb25zPy5sZW5ndGg7XG4gIH1cblxuICBpc093bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLmlkID09PSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpO1xuICB9XG5cbiAgaXNTb2xkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubXlTaGFyZT8uc2FsZTtcbiAgfVxuXG4gIGdldCBjYXBpdGFsQ29zdHNUb3RhbEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0YW1wRHV0eSArIHRoaXMubGVnYWxGZWVzICsgdGhpcy5vdGhlckNhcGl0YWxDb3N0cztcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmlzU29sZCgpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52YWx1YXRpb24/Lm1hcmtldFZhbHVlIHx8IDA7XG4gIH1cblxuICBnZXQgY3VycmVudFllYXJGb3JlY2FzdCgpOiBQcm9wZXJ0eUZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnJlbnRhbFJldHVybiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnRheFBvc2l0aW9uIHx8IDA7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZENhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlR3Jvd3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVByaWNlKSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXQgbXlTaGFyZSgpOiBQcm9wZXJ0eVNoYXJlIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xuICB9XG5cbiAgZ2V0IGNsYWltUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3QuY2xhaW1QZXJjZW50O1xuICB9XG5cbiAgZ2V0IGNsYWltQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbGFpbVBlcmNlbnQgLyAxMDA7XG4gIH1cblxuICBnZXQgc2hhcmVQZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50O1xuICB9XG5cbiAgZ2V0IHNoYXJlUmF0aW8oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5teVNoYXJlLnBlcmNlbnQgLyAxMDA7XG4gIH1cblxuICBnZXRDdXJyZW50U3Vic2NyaXB0aW9uKCk6IFByb3BlcnR5U3Vic2NyaXB0aW9uIHtcbiAgICAvLyBhbHdheXMgcmV0dXJuIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBzdWJzY3JpcHRpb25zIGFycmF5IGNvbnRhaW5zIG9ubHkgb25lIGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zWzBdO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogUHJvcGVydHlGb3JlY2FzdCB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLmZpbmQoKGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogYm9vbGVhbiA9PiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcbiAgfVxuXG4gIGdldCBpc1NoYXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBjb25zaWRlciB0byBtb3ZlIG1ldGhvZHMgcmVsYXRlZCB3aXRoIHByb3BlcnR5U2FsZSB0byBzZXBhcmF0ZWQgY2xhc3MsIHNpbmNlIHVzZWQganVzdCBpbiBvbmUgbW9kdWxlIHlldFxuICAgKiBwdXJjaGFzZSBjb3N0cyAtIGNsYWltZWQgY29zdHMsIGV4Y2VwdCBgcHByIHRvIGludmVzdG1lbnRgIGV4ZW1wdGlvbixcbiAgICogaW4gdGhhdCBjYXNlIGl0J3MgZXF1YWwgdG8gbWFya2V0IHZhbHVlLCB3aGVuIHByb3BlcnR5IGJlY2FtZSBhbiBpbnZlc3RtZW50IHByb3BlcnR5XG4gICAqL1xuICBjYWxjdWxhdGVDb3N0QmFzZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIGNvbnN0IG1hcmtldFZhbHVlOiBudW1iZXIgPSBuZXcgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YUZpZWxkQ29sbGVjdGlvbihzYWxlLnRheEV4ZW1wdGlvbk1ldGFGaWVsZHMpLmdldE1hcmtldFZhbHVlKCk7XG4gICAgaWYgKG1hcmtldFZhbHVlKSB7XG4gICAgICByZXR1cm4gbWFya2V0VmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHVyY2hhc2VQcmljZSArIHRoaXMuY2FwaXRhbENvc3RzVG90YWxBbW91bnQgKyBzYWxlLmhvbGRpbmdDb3N0cyArIHNhbGUuc3RydWN0dXJhbEltcHJvdmVtZW50c1dEViAtIHNhbGUuYnVpbGRpbmdBdENvc3RDbGFpbWVkO1xuICB9XG5cbiAgY2FsY3VsYXRlR3Jvc3NDYXBpdGFsR2FpbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIHJldHVybiByb3VuZCgoc2FsZS5uZXRQcmljZSAtIHRoaXMuY2FsY3VsYXRlQ29zdEJhc2Uoc2FsZSkpICogdGhpcy5nZXRQYXJ0aWFsQ0dURXhlbXB0aW9uUmF0aW8oc2FsZSkgKiB0aGlzLnNoYXJlUmF0aW8sIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gaW5jbHVkZXMgdGF4IGV4ZW1wdGlvblxuICAgKi9cbiAgY2FsY3VsYXRlTmV0Q2FwaXRhbEdhaW4oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlKSAqIHNhbGUuZ3Jvc3NDYXBpdGFsR2FpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBndWVzcyB0YXggZXhlbXB0aW9uIGJhc2VkIG9uIHByb3BlcnR5IGRldGFpbHNcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcbiAgICBpZiAoc2FsZS50YXhFeGVtcHRpb24pIHtcbiAgICAgIHJldHVybiBzYWxlLnRheEV4ZW1wdGlvbi5pZDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xuICAgICAgY2FzZSB0aGlzLmNhdGVnb3J5LmlkID09PSBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uT1dORVJfT0NDVVBJRUQ6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLlBQUjtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxuICAgICAgY2FzZSB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSk6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLk9ORV9ZRUFSX1JVTEU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRQYXJ0aWFsQ0dURXhlbXB0aW9uUmF0aW8oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBjb25zdCBtZXRhRmllbGRzOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKTtcblxuICAgIHN3aXRjaCAoc2FsZS50YXhFeGVtcHRpb24/LmlkKSB7XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uSU5WRVNUTUVOVF9UT19QUFI6XG4gICAgICAgIGNvbnN0IG93bmVyc2hpcERheXMgPSB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUpO1xuICAgICAgICByZXR1cm4gKG93bmVyc2hpcERheXMgLSBtZXRhRmllbGRzLmdldFBQUkRheXMoKSkgLyBvd25lcnNoaXBEYXlzO1xuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxuICAgICAgICByZXR1cm4gbWV0YUZpZWxkcy5nZXRDbGFpbVBlcmNlbnQoKSAvIDEwMDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0YXggZXhlbXB0aW9uIGNhbiByZWR1Y2UgY2d0IGZyb20gMTAwJSB0byBsZXNzICh1cCB0byB6ZXJvKVxuICAgKi9cbiAgZ2V0Q0dURXhlbXB0aW9uUmF0aW8oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT05FX1lFQVJfUlVMRTpcbiAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5QUFJfVE9fSU5WRVNUTUVOVDpcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKSA/IDAuNSA6IDE7XG4gICAgICAvLyBmdWxsIGV4ZW1wdGlvblxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5TSVhfWUVBUlNfUlVMRTpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5UUkFOU0ZFUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PVEhFUjpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICAvLyBubyBleGVtcHRpb25cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBpbiBjZ3QgcmVwb3J0IHdlIGFwcGx5IGxvc3Nlcywgd2hpY2ggY2FuIHJlc2V0IDEgeWVhciBydWxlIChpbiBjYXNlIGlmIHRoZXJlIGlzIG5vIHByb2ZpdCBhZnRlciBsb3NzKVxuICAgKi9cbiAgaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2FsZS5ncm9zc0NhcGl0YWxHYWluID4gMCAmJiB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUsICd5ZWFycycpID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDR1QgaXMgbm90IGFwcGxpY2FibGUgZm9yIHByb3BlcnRpZXMgYWNxdWlyZWQgYmVmb3JlIDIwLjA5LjE5ODUgKHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxuICAgKi9cbiAgaXNDR1RBcHBsaWNhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XG4gIH1cblxuICAvKipcbiAgICogb3duZXJzaGlwIGR1cmF0aW9uIGZyb20gcHVyY2hhc2UgdGlsbCBzYWxlXG4gICAqL1xuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChzYWxlLmRhdGUpLmRpZmYobW9tZW50KHRoaXMuY29udHJhY3REYXRlKSwgdW5pdE9mVGltZSk7XG4gIH1cblxuICAvKipcbiAgICogVGF4IFBvc2l0aW9uID0gSW5jb21lIC0gRXhwZW5zZSAtIEludGVyZXN0IC0gRGVwcmVjaWF0aW9uXG4gICAqIFdoZXJlIChJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QpIGlzIGNhc2ggcG9zaXRpb24uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3NDE1OTI4L0Rhc2hib2FyZCtQcm9wZXJ0eVxuICAgKi9cbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuZ3Jvc3NDbGFpbUFtb3VudCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbnMuY2xhaW1BbW91bnQpO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlJbmNvbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0LmluY29tZSAvIDEyO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlFeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5leHBlbnNlIC8gMTI7XG4gIH1cbn1cbiJdfQ==
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUNtQiwyQ0FBMkMsRUFDcEUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7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QUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsrQ0FDSztBQUd0QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7c0NBQ047QUFHZDtJQURDLE9BQU8sRUFBRTs4Q0FDUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IGFzIFByb3BlcnR5QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFByb3BlcnR5U3Vic2NyaXB0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgRXhjbHVkZSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7IFByb3BlcnR5VmFsdWF0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS12YWx1YXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlGb3JlY2FzdCB9IGZyb20gJy4vcHJvcGVydHktZm9yZWNhc3QnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHsgVGF4RXhlbXB0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvdGF4LWV4ZW1wdGlvbi5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNhbGUgfSBmcm9tICcuL3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHsgdW5pdE9mVGltZSB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1xuICBEZXByZWNpYXRpb25Db2xsZWN0aW9uLCBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XG5pbXBvcnQgeyBBcHBGaWxlIH0gZnJvbSAnLi4vZmlsZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbi8qKlxuICogcHJvcGVydHlTYWxlIGRvY3MgLSBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQyMDk1MDgzNTMvUHJvcGVydHkrU29sZCtidXR0b25cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqXG4gICAqIFByb3BlcnR5IGFjcXVpcmVkIGJlZm9yZSAyMCBTZXB0ZW1iZXIgMTk4NSB3aWxsIGdlbmVyYWxseSBiZSB0cmVhdGVkIGFzIHByZS1DYXBpdGFsIEdhaW5zIFRheCAoQ0dUKSBhc3NldHMuXG4gICAqIEFueSBhc3NldHMgYWNxdWlyZWQgYmVmb3JlIHRoaXMgZGF5IGFyZSBDR1QgZXhlbXB0IChiZWNhdXNlIHRoZSB0YXggZGlkbid0IGV4aXN0IGJlZm9yZSB0aGlzIGRhdGUpLlxuICAgKi9cbiAgc3RhdGljIHByZUNHVEFzc2V0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKDE5ODUsIDksIDIwKTtcblxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBOdW1iZXIpXG4gIGdyb3d0aFBlcmNlbnQ6IG51bWJlclxuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGNvbnRyYWN0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnkpXG4gIGNhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudClcbiAgY2F0ZWdvcnlNb3ZlbWVudHM6IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgc3RhbXBEdXR5PzogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgbGVnYWxGZWVzPzogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IE51bWJlcilcbiAgb3RoZXJDYXBpdGFsQ29zdHM/OiBudW1iZXI7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlGb3JlY2FzdClcbiAgZm9yZWNhc3RzOiBQcm9wZXJ0eUZvcmVjYXN0W107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTaGFyZSlcbiAgc2hhcmVzOiBQcm9wZXJ0eVNoYXJlW107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlWYWx1YXRpb24pXG4gIHZhbHVhdGlvbnM6IFByb3BlcnR5VmFsdWF0aW9uW107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlWYWx1YXRpb24pXG4gIHZhbHVhdGlvbjogUHJvcGVydHlWYWx1YXRpb247XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVN1YnNjcmlwdGlvbilcbiAgc3Vic2NyaXB0aW9uczogUHJvcGVydHlTdWJzY3JpcHRpb25bXTtcblxuICBAVHlwZSgoKSA9PiBBcHBGaWxlKVxuICBmaWxlOiBBcHBGaWxlO1xuXG4gIEBFeGNsdWRlKClcbiAgZG9jdW1lbnRGaWxlOiBGaWxlO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzcy5uYW1lO1xuICB9XG5cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoO1xuICB9XG5cbiAgaXNPd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgfVxuXG4gIGlzU29sZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm15U2hhcmU/LnNhbGU7XG4gIH1cblxuICBnZXQgY2FwaXRhbENvc3RzVG90YWxBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFtcER1dHkgKyB0aGlzLmxlZ2FsRmVlcyArIHRoaXMub3RoZXJDYXBpdGFsQ29zdHM7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1NvbGQoKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9uPy5tYXJrZXRWYWx1ZSB8fCAwO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyRm9yZWNhc3QoKTogUHJvcGVydHlGb3JlY2FzdCB7XG4gICAgY29uc3QgeWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcjtcblxuICAgIHJldHVybiB0aGlzLmZvcmVjYXN0cy5maW5kKChmb3JlY2FzdDogUHJvcGVydHlGb3JlY2FzdCk6IGJvb2xlYW4gPT4gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA9PT0geWVhcilcbiAgICAgID8/IHBsYWluVG9DbGFzcyhQcm9wZXJ0eUZvcmVjYXN0LCB7fSk7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnJlbnRhbFJldHVybiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnRheFBvc2l0aW9uIHx8IDA7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZENhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlR3Jvd3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVByaWNlKSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXQgbXlTaGFyZSgpOiBQcm9wZXJ0eVNoYXJlIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xuICB9XG5cbiAgZ2V0IGNsYWltUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3QuY2xhaW1QZXJjZW50O1xuICB9XG5cbiAgZ2V0IGNsYWltQ29lZmZpY2llbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jbGFpbVBlcmNlbnQgLyAxMDA7XG4gIH1cblxuICBnZXQgc2hhcmVQZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50O1xuICB9XG5cbiAgZ2V0IHNoYXJlUmF0aW8oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5teVNoYXJlLnBlcmNlbnQgLyAxMDA7XG4gIH1cblxuICBnZXRDdXJyZW50U3Vic2NyaXB0aW9uKCk6IFByb3BlcnR5U3Vic2NyaXB0aW9uIHtcbiAgICAvLyBhbHdheXMgcmV0dXJuIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBzdWJzY3JpcHRpb25zIGFycmF5IGNvbnRhaW5zIG9ubHkgb25lIGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zWzBdO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogUHJvcGVydHlGb3JlY2FzdCB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLmZpbmQoKGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogYm9vbGVhbiA9PiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcbiAgfVxuXG4gIGdldCBpc1NoYXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBjb25zaWRlciB0byBtb3ZlIG1ldGhvZHMgcmVsYXRlZCB3aXRoIHByb3BlcnR5U2FsZSB0byBzZXBhcmF0ZWQgY2xhc3MsIHNpbmNlIHVzZWQganVzdCBpbiBvbmUgbW9kdWxlIHlldFxuICAgKiBwdXJjaGFzZSBjb3N0cyAtIGNsYWltZWQgY29zdHMsIGV4Y2VwdCBgcHByIHRvIGludmVzdG1lbnRgIGV4ZW1wdGlvbixcbiAgICogaW4gdGhhdCBjYXNlIGl0J3MgZXF1YWwgdG8gbWFya2V0IHZhbHVlLCB3aGVuIHByb3BlcnR5IGJlY2FtZSBhbiBpbnZlc3RtZW50IHByb3BlcnR5XG4gICAqL1xuICBjYWxjdWxhdGVDb3N0QmFzZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIGNvbnN0IG1hcmtldFZhbHVlOiBudW1iZXIgPSBuZXcgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YUZpZWxkQ29sbGVjdGlvbihzYWxlLnRheEV4ZW1wdGlvbk1ldGFGaWVsZHMpLmdldE1hcmtldFZhbHVlKCk7XG4gICAgaWYgKG1hcmtldFZhbHVlKSB7XG4gICAgICByZXR1cm4gbWFya2V0VmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHVyY2hhc2VQcmljZSArIHRoaXMuY2FwaXRhbENvc3RzVG90YWxBbW91bnQgKyBzYWxlLmhvbGRpbmdDb3N0cyArIHNhbGUuc3RydWN0dXJhbEltcHJvdmVtZW50c1dEViAtIHNhbGUuYnVpbGRpbmdBdENvc3RDbGFpbWVkO1xuICB9XG5cbiAgY2FsY3VsYXRlR3Jvc3NDYXBpdGFsR2FpbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIHJldHVybiByb3VuZCgoc2FsZS5uZXRQcmljZSAtIHRoaXMuY2FsY3VsYXRlQ29zdEJhc2Uoc2FsZSkpICogdGhpcy5nZXRQYXJ0aWFsQ0dURXhlbXB0aW9uUmF0aW8oc2FsZSkgKiB0aGlzLnNoYXJlUmF0aW8sIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gaW5jbHVkZXMgdGF4IGV4ZW1wdGlvblxuICAgKi9cbiAgY2FsY3VsYXRlTmV0Q2FwaXRhbEdhaW4oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlKSAqIHNhbGUuZ3Jvc3NDYXBpdGFsR2FpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBndWVzcyB0YXggZXhlbXB0aW9uIGJhc2VkIG9uIHByb3BlcnR5IGRldGFpbHNcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcbiAgICBpZiAoc2FsZS50YXhFeGVtcHRpb24pIHtcbiAgICAgIHJldHVybiBzYWxlLnRheEV4ZW1wdGlvbi5pZDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xuICAgICAgY2FzZSB0aGlzLmNhdGVnb3J5LmlkID09PSBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uT1dORVJfT0NDVVBJRUQ6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLlBQUjtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxuICAgICAgY2FzZSB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSk6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLk9ORV9ZRUFSX1JVTEU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRQYXJ0aWFsQ0dURXhlbXB0aW9uUmF0aW8oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBjb25zdCBtZXRhRmllbGRzOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhRmllbGRDb2xsZWN0aW9uID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFGaWVsZENvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhRmllbGRzKTtcblxuICAgIHN3aXRjaCAoc2FsZS50YXhFeGVtcHRpb24/LmlkKSB7XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uSU5WRVNUTUVOVF9UT19QUFI6XG4gICAgICAgIGNvbnN0IG93bmVyc2hpcERheXMgPSB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUpO1xuICAgICAgICByZXR1cm4gKG93bmVyc2hpcERheXMgLSBtZXRhRmllbGRzLmdldFBQUkRheXMoKSkgLyBvd25lcnNoaXBEYXlzO1xuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxuICAgICAgICByZXR1cm4gbWV0YUZpZWxkcy5nZXRDbGFpbVBlcmNlbnQoKSAvIDEwMDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0YXggZXhlbXB0aW9uIGNhbiByZWR1Y2UgY2d0IGZyb20gMTAwJSB0byBsZXNzICh1cCB0byB6ZXJvKVxuICAgKi9cbiAgZ2V0Q0dURXhlbXB0aW9uUmF0aW8oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT05FX1lFQVJfUlVMRTpcbiAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5QUFJfVE9fSU5WRVNUTUVOVDpcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKSA/IDAuNSA6IDE7XG4gICAgICAvLyBmdWxsIGV4ZW1wdGlvblxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5TSVhfWUVBUlNfUlVMRTpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5UUkFOU0ZFUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PVEhFUjpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICAvLyBubyBleGVtcHRpb25cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBpbiBjZ3QgcmVwb3J0IHdlIGFwcGx5IGxvc3Nlcywgd2hpY2ggY2FuIHJlc2V0IDEgeWVhciBydWxlIChpbiBjYXNlIGlmIHRoZXJlIGlzIG5vIHByb2ZpdCBhZnRlciBsb3NzKVxuICAgKi9cbiAgaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2FsZS5ncm9zc0NhcGl0YWxHYWluID4gMCAmJiB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUsICd5ZWFycycpID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDR1QgaXMgbm90IGFwcGxpY2FibGUgZm9yIHByb3BlcnRpZXMgYWNxdWlyZWQgYmVmb3JlIDIwLjA5LjE5ODUgKHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxuICAgKi9cbiAgaXNDR1RBcHBsaWNhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XG4gIH1cblxuICAvKipcbiAgICogb3duZXJzaGlwIGR1cmF0aW9uIGZyb20gcHVyY2hhc2UgdGlsbCBzYWxlXG4gICAqL1xuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChzYWxlLmRhdGUpLmRpZmYobW9tZW50KHRoaXMuY29udHJhY3REYXRlKSwgdW5pdE9mVGltZSk7XG4gIH1cblxuICAvKipcbiAgICogVGF4IFBvc2l0aW9uID0gSW5jb21lIC0gRXhwZW5zZSAtIEludGVyZXN0IC0gRGVwcmVjaWF0aW9uXG4gICAqIFdoZXJlIChJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QpIGlzIGNhc2ggcG9zaXRpb24uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3NDE1OTI4L0Rhc2hib2FyZCtQcm9wZXJ0eVxuICAgKi9cbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuZ3Jvc3NDbGFpbUFtb3VudCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbnMuY2xhaW1BbW91bnQpO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlJbmNvbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0LmluY29tZSAvIDEyO1xuICB9XG5cbiAgZ2V0IG1vbnRobHlFeHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5leHBlbnNlIC8gMTI7XG4gIH1cbn1cbiJdfQ==
|