taxtank-core 1.0.29 → 1.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +5 -5
  2. package/fesm2022/taxtank-core-common.mjs.map +1 -1
  3. package/fesm2022/taxtank-core.mjs +254 -189
  4. package/fesm2022/taxtank-core.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/public-api.d.ts +1 -0
  7. package/src/lib/collections/account-setup-item.collection.d.ts +5 -1
  8. package/src/lib/collections/bank-account.collection.d.ts +1 -1
  9. package/src/lib/collections/subscription/service-subscription.collection.d.ts +2 -0
  10. package/src/lib/db/Enums/index.d.ts +1 -0
  11. package/src/lib/db/Enums/onboarding-videos.enum.d.ts +7 -0
  12. package/src/lib/db/Enums/setup-item-type.enum.d.ts +8 -2
  13. package/src/lib/db/Models/property/property.d.ts +1 -0
  14. package/src/lib/db/Models/setup-item.d.ts +4 -1
  15. package/src/lib/models/account-setup/account-setup-item-status.enum.d.ts +5 -0
  16. package/src/lib/models/account-setup/account-setup-item.d.ts +5 -12
  17. package/src/lib/models/account-setup/account-setup-items.enum.d.ts +29 -11
  18. package/src/lib/models/account-setup/index.d.ts +3 -0
  19. package/src/lib/models/bank/bank-account.d.ts +6 -6
  20. package/src/lib/models/index.d.ts +1 -0
  21. package/src/lib/models/user/user.d.ts +1 -1
  22. package/src/lib/services/account-setup/account-setup.service.d.ts +32 -14
  23. package/src/lib/services/http/firm/firm.service.d.ts +0 -4
  24. package/src/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts +2 -1
  25. package/src/lib/services/http/rest/rest-old.service.d.ts +1 -0
  26. package/src/lib/services/http/rest/rest.service.d.ts +1 -0
  27. package/src/lib/services/http/setup-item/setup-item.service.d.ts +1 -1
  28. package/src/lib/services/http/user/user.service.d.ts +2 -2
  29. /package/src/lib/{functions/transformer → transformer}/transformDate.d.ts +0 -0
@@ -4,8 +4,8 @@ import * as i1$1 from '@angular/common';
4
4
  import { formatDate, CommonModule, CurrencyPipe, DatePipe } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
6
6
  import { HttpParams, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
7
- import { map, catchError, mergeMap, filter, first as first$1, finalize, startWith, debounceTime, distinctUntilChanged } from 'rxjs/operators';
8
- import { ReplaySubject, throwError, Subject, Observable, of, forkJoin, combineLatest, BehaviorSubject, from, merge as merge$1 } from 'rxjs';
7
+ import { map, catchError, mergeMap, filter, finalize, switchMap, first as first$1, startWith, debounceTime, distinctUntilChanged } from 'rxjs/operators';
8
+ import { ReplaySubject, throwError, Subject, Observable, shareReplay, of, forkJoin, combineLatest, BehaviorSubject, from, merge as merge$1 } from 'rxjs';
9
9
  import { plainToClass, Type, Transform, Exclude, Expose, classToPlain } from 'class-transformer';
10
10
  import 'reflect-metadata';
11
11
  import { __decorate } from 'tslib';
@@ -33,6 +33,8 @@ import merge from 'lodash/merge';
33
33
  import * as i4 from '@angular/router';
34
34
  import { NavigationEnd } from '@angular/router';
35
35
  import _ from 'lodash';
36
+ import remove from 'lodash/remove';
37
+ import pick from 'lodash/pick';
36
38
  import { checkAdBlock } from 'adblock-checker';
37
39
  import { jsPDF } from 'jspdf';
38
40
  import { applyPlugin } from 'jspdf-autotable';
@@ -494,6 +496,9 @@ let Property$1 = class Property extends ObservableModel {
494
496
  this.corelogicLastRequest = null;
495
497
  }
496
498
  static { this.className = 'Property'; }
499
+ get capitalCosts() {
500
+ return this.legalFees + this.otherCapitalCosts + this.stampDuty;
501
+ }
497
502
  };
498
503
  __decorate([
499
504
  Type(() => Number)
@@ -1454,6 +1459,18 @@ var HomeOfficeClaimMethodEnum;
1454
1459
  HomeOfficeClaimMethodEnum[HomeOfficeClaimMethodEnum["OCCUPANCY"] = 3] = "OCCUPANCY";
1455
1460
  })(HomeOfficeClaimMethodEnum || (HomeOfficeClaimMethodEnum = {}));
1456
1461
 
1462
+ var SetupItemTypeEnum;
1463
+ (function (SetupItemTypeEnum) {
1464
+ SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 0] = "EMPLOYEE";
1465
+ SetupItemTypeEnum[SetupItemTypeEnum["WORK"] = 1] = "WORK";
1466
+ SetupItemTypeEnum[SetupItemTypeEnum["PROPERTIES"] = 2] = "PROPERTIES";
1467
+ SetupItemTypeEnum[SetupItemTypeEnum["PROPERTY"] = 3] = "PROPERTY";
1468
+ SetupItemTypeEnum[SetupItemTypeEnum["BUSINESS"] = 4] = "BUSINESS";
1469
+ SetupItemTypeEnum[SetupItemTypeEnum["HOLDING"] = 5] = "HOLDING";
1470
+ SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNTS"] = 6] = "BANK_ACCOUNTS";
1471
+ SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNT"] = 7] = "BANK_ACCOUNT";
1472
+ })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
1473
+
1457
1474
  /**
1458
1475
  * @TODO not used for now
1459
1476
  * Bank subclass, average bank response time for some operations in milliseconds
@@ -5367,61 +5384,72 @@ __decorate([
5367
5384
  class SetupItem extends AbstractModel {
5368
5385
  }
5369
5386
 
5370
- /**
5371
- * Enum list of all possible account setup items ids. Using with [ACCOUNT_SETUP_ITEMS]{@link ACCOUNT_SETUP_ITEMS}
5372
- * @TODO Vik/Nikita: Do we need to generate it from backend? If some ids changed?
5373
- */
5374
- var AccountSetupItemsEnum;
5375
- (function (AccountSetupItemsEnum) {
5376
- AccountSetupItemsEnum[AccountSetupItemsEnum["SALARY"] = 1] = "SALARY";
5377
- AccountSetupItemsEnum[AccountSetupItemsEnum["OTHER_INCOME"] = 2] = "OTHER_INCOME";
5378
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY"] = 3] = "PROPERTY";
5379
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_FEEDS"] = 4] = "BANK_FEEDS";
5380
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_LOGBOOK"] = 5] = "WORK_LOGBOOK";
5381
- AccountSetupItemsEnum[AccountSetupItemsEnum["TRANSACTION_ALLOCATE"] = 6] = "TRANSACTION_ALLOCATE";
5382
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESS"] = 7] = "SOLE_BUSINESS";
5383
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDINGS"] = 8] = "HOLDINGS";
5384
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5385
- AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_TEAM"] = 10] = "INVITE_TEAM";
5386
- AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_CLIENTS"] = 11] = "INVITE_CLIENTS";
5387
- })(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
5387
+ var AccountSetupItemStatusEnum;
5388
+ (function (AccountSetupItemStatusEnum) {
5389
+ AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["PENDING"] = 1] = "PENDING";
5390
+ AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["ACHIEVED"] = 2] = "ACHIEVED";
5391
+ AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["SKIPPED"] = 3] = "SKIPPED";
5392
+ })(AccountSetupItemStatusEnum || (AccountSetupItemStatusEnum = {}));
5388
5393
 
5389
5394
  class AccountSetupItem extends SetupItem {
5390
- get isSalary() {
5391
- return this.id === AccountSetupItemsEnum.SALARY;
5392
- }
5393
- get isOtherIncome() {
5394
- return this.id === AccountSetupItemsEnum.OTHER_INCOME;
5395
- }
5396
- get isProperty() {
5397
- return this.id === AccountSetupItemsEnum.PROPERTY;
5398
- }
5399
- get isBankFeeds() {
5400
- return this.id === AccountSetupItemsEnum.BANK_FEEDS;
5401
- }
5402
- get isWorkLogbook() {
5403
- return this.id === AccountSetupItemsEnum.WORK_LOGBOOK;
5395
+ get isPending() {
5396
+ return this.status === AccountSetupItemStatusEnum.PENDING;
5404
5397
  }
5405
- get isTransactionAllocate() {
5406
- return this.id === AccountSetupItemsEnum.TRANSACTION_ALLOCATE;
5398
+ get isAchieved() {
5399
+ return this.status === AccountSetupItemStatusEnum.SKIPPED;
5407
5400
  }
5408
- get isSoleBusiness() {
5409
- return this.id === AccountSetupItemsEnum.SOLE_BUSINESS;
5401
+ get isCompleted() {
5402
+ return [AccountSetupItemStatusEnum.ACHIEVED, AccountSetupItemStatusEnum.SKIPPED].includes(this.status);
5410
5403
  }
5411
- get isHoldings() {
5412
- return this.id === AccountSetupItemsEnum.HOLDINGS;
5413
- }
5414
- get isFirmDetails() {
5415
- return this.id === AccountSetupItemsEnum.FIRM_DETAILS;
5416
- }
5417
- get isInviteTeam() {
5418
- return this.id === AccountSetupItemsEnum.INVITE_TEAM;
5419
- }
5420
- get isInviteClients() {
5421
- return this.id === AccountSetupItemsEnum.INVITE_CLIENTS;
5404
+ get isSkipped() {
5405
+ return this.status === AccountSetupItemStatusEnum.SKIPPED;
5422
5406
  }
5423
5407
  }
5424
5408
 
5409
+ /**
5410
+ * TODO remove
5411
+ */
5412
+ var AccountSetupItemsEnum;
5413
+ (function (AccountSetupItemsEnum) {
5414
+ // firm
5415
+ AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5416
+ AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_EMPLOYEES"] = 10] = "FIRM_EMPLOYEES";
5417
+ AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_CLIENTS"] = 11] = "FIRM_CLIENTS";
5418
+ // work
5419
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_SALARY"] = 1] = "WORK_SALARY";
5420
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_OTHER_INCOME"] = 2] = "WORK_OTHER_INCOME";
5421
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_VEHICLE_CLAIM"] = 5] = "WORK_VEHICLE_CLAIM";
5422
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_HOME_OFFICE"] = 13] = "WORK_HOME_OFFICE";
5423
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_BANK_ACCOUNT"] = 14] = "WORK_BANK_ACCOUNT";
5424
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_DEPRECIATION"] = 15] = "WORK_DEPRECIATION";
5425
+ // properties
5426
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY"] = 3] = "PROPERTY";
5427
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES"] = 29] = "PROPERTIES";
5428
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES_BANK_ACCOUNT"] = 30] = "PROPERTIES_BANK_ACCOUNT";
5429
+ // property
5430
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CAPITAL_COST"] = 17] = "PROPERTY_CAPITAL_COST";
5431
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_RENT_INCOME"] = 18] = "PROPERTY_RENT_INCOME";
5432
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_DEPRECIATION"] = 19] = "PROPERTY_DEPRECIATION";
5433
+ AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CO_OWNER"] = 20] = "PROPERTY_CO_OWNER";
5434
+ // sole
5435
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESS"] = 7] = "SOLE_BUSINESS";
5436
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESSES"] = 33] = "SOLE_BUSINESSES";
5437
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_VEHICLE_CLAIM"] = 12] = "SOLE_VEHICLE_CLAIM";
5438
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_HOME_OFFICE"] = 21] = "SOLE_HOME_OFFICE";
5439
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_DEPRECIATION"] = 22] = "SOLE_DEPRECIATION";
5440
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BANK_ACCOUNT"] = 23] = "SOLE_BANK_ACCOUNT";
5441
+ // holding
5442
+ AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_TRADE"] = 8] = "HOLDING_TRADE";
5443
+ AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_INTEGRATION"] = 25] = "HOLDING_INTEGRATION";
5444
+ AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_REPORTS"] = 36] = "HOLDING_REPORTS";
5445
+ // bank accounts
5446
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_CONNECTION"] = 4] = "BANK_CONNECTION";
5447
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ACCOUNT"] = 26] = "BANK_ACCOUNT";
5448
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ALLOCATION"] = 6] = "BANK_ALLOCATION";
5449
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_RULE"] = 27] = "BANK_RULE";
5450
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_BORROWING_EXPENSE"] = 28] = "BANK_BORROWING_EXPENSE";
5451
+ })(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
5452
+
5425
5453
  class User extends User$1 {
5426
5454
  constructor() {
5427
5455
  super(...arguments);
@@ -8533,6 +8561,9 @@ class ServiceSubscriptionCollection extends Collection {
8533
8561
  getPaid() {
8534
8562
  return this.filter((subscription) => !!subscription.stripeId);
8535
8563
  }
8564
+ getRoles() {
8565
+ return this.items.flatMap((subscription) => subscription.roles);
8566
+ }
8536
8567
  getActivePaid() {
8537
8568
  return this.getActive().find((subscription) => !!subscription.stripeId);
8538
8569
  }
@@ -8559,6 +8590,9 @@ class ServiceSubscriptionCollection extends Collection {
8559
8590
  filterByRole(role) {
8560
8591
  return this.filter((subscription) => subscription.roles.includes(role));
8561
8592
  }
8593
+ findByRole(role) {
8594
+ return this.filterByRole(role).first;
8595
+ }
8562
8596
  hasPropertyTank() {
8563
8597
  return !!this.getItems().propertiesItem;
8564
8598
  }
@@ -8964,11 +8998,25 @@ class AllocationRuleCollection extends Collection {
8964
8998
  class AccountSetupItemCollection extends Collection {
8965
8999
  constructor(items) {
8966
9000
  super(compact(items));
8967
- this.sortBy('isCompleted', 'asc');
9001
+ this.sortBy('status', 'asc');
8968
9002
  }
8969
9003
  isCompleted() {
8970
9004
  return this.filterBy('isCompleted', true).length === this.length;
8971
9005
  }
9006
+ getByUser(user) {
9007
+ return this.filter(item => user.hasRoles(item.roles));
9008
+ }
9009
+ getScore() {
9010
+ return this.sumBy('score');
9011
+ }
9012
+ setUrlId(id) {
9013
+ this.items.forEach(item => {
9014
+ if (!item.url.includes(':id')) {
9015
+ return;
9016
+ }
9017
+ item.url = item.url.replace(':id', id);
9018
+ });
9019
+ }
8972
9020
  }
8973
9021
 
8974
9022
  /**
@@ -9028,7 +9076,7 @@ class BankAccountCollection extends Collection {
9028
9076
  * Get Collection of bank accounts by tank type
9029
9077
  */
9030
9078
  getByTankType(tankType) {
9031
- return new BankAccountCollection(this.items.filter((bankAccount) => bankAccount.tankType === tankType));
9079
+ return new BankAccountCollection(tankType ? this.items.filter((bankAccount) => bankAccount.tankType === tankType) : this.items);
9032
9080
  }
9033
9081
  /**
9034
9082
  * Get list of all bank account properties
@@ -9912,7 +9960,7 @@ class BankAccount extends BankAccount$1 {
9912
9960
  return FinancialYear.isCurrent() ? this.currentBalance : this.getOpeningBalance(FinancialYear.year + 1);
9913
9961
  }
9914
9962
  /**
9915
- * Get current opening balance amount
9963
+ * Get the current opening balance amount
9916
9964
  */
9917
9965
  getOpeningBalance(year = FinancialYear.year) {
9918
9966
  return this.getBalanceByYear(year)?.openingBalance || 0;
@@ -9932,7 +9980,7 @@ class BankAccount extends BankAccount$1 {
9932
9980
  this.type === BankAccountTypeEnum.SAVINGS;
9933
9981
  }
9934
9982
  /**
9935
- * check if bank account type is Loan
9983
+ * check if a bank account type is Loan
9936
9984
  */
9937
9985
  isLoan() {
9938
9986
  return this.loan && TYPE_LOAN.includes(this.type);
@@ -9944,19 +9992,19 @@ class BankAccount extends BankAccount$1 {
9944
9992
  return this.type === BankAccountTypeEnum.CREDIT_CARD;
9945
9993
  }
9946
9994
  /**
9947
- * check if bank account related to work tank
9995
+ * check if a bank account related to work tank
9948
9996
  */
9949
9997
  isWorkTank() {
9950
9998
  return !this.isPropertyTank() && !this.isSoleTank();
9951
9999
  }
9952
10000
  /**
9953
- * check if bank account related to work tank
10001
+ * check if a bank account related to work tank
9954
10002
  */
9955
10003
  isPropertyTank() {
9956
10004
  return !!this.bankAccountProperties.length;
9957
10005
  }
9958
10006
  /**
9959
- * check if bank account related to sole tank
10007
+ * check if a bank account related to sole tank
9960
10008
  */
9961
10009
  isSoleTank() {
9962
10010
  return !!this.businessAllocations.length;
@@ -9969,7 +10017,7 @@ class BankAccount extends BankAccount$1 {
9969
10017
  return this.bankAccountProperties.find((bankAccountProperty) => bankAccountProperty.property.id === id);
9970
10018
  }
9971
10019
  /**
9972
- * check if bank account is related with passed property by id
10020
+ * check if a bank account is related with passed property by id
9973
10021
  * @param propertyId Property id for checking
9974
10022
  */
9975
10023
  hasProperty(propertyId) {
@@ -10020,8 +10068,8 @@ class BankAccount extends BankAccount$1 {
10020
10068
  */
10021
10069
  isLoanPaid(taxTankBalance) {
10022
10070
  const shouldPayoutLoanAccount = this.isActive() && this.isLoan() && taxTankBalance === 0;
10023
- // we don't check current balance for basiq accounts, because basiq doesn't provide us last transactions (can't do for closed accounts),
10024
- // that's why balance won't be 0 (updated by basiq)
10071
+ // we don't check the current balance for basiq accounts, because basiq doesn't provide us last transactions (can't do for closed accounts),
10072
+ // that's why the balance won't be 0 (updated by basiq)
10025
10073
  if (shouldPayoutLoanAccount && this.isManual()) {
10026
10074
  return this.currentBalance === 0;
10027
10075
  }
@@ -11558,8 +11606,9 @@ let RestService$1 = class RestService extends DataService {
11558
11606
  * Refresh cache with actual backend data
11559
11607
  */
11560
11608
  refreshCache() {
11609
+ // todo why not fetch?
11561
11610
  this.cache = undefined;
11562
- this.get();
11611
+ this.get().subscribe();
11563
11612
  }
11564
11613
  /**
11565
11614
  * perform a shallow copy of the emitted data to make it immutable
@@ -11571,17 +11620,17 @@ let RestService$1 = class RestService extends DataService {
11571
11620
  * Get data from backend and fill the cache
11572
11621
  */
11573
11622
  fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11574
- if (cache) {
11575
- // Set cache as empty collection to avoid multiple requests before cache filled
11576
- this.setCache([]);
11623
+ if (this.inFlight$ && cache) {
11624
+ return this.inFlight$;
11577
11625
  }
11578
- return this.http.get(path, queryParams)
11626
+ this.inFlight$ = this.http.get(path, queryParams)
11579
11627
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11580
11628
  if (cache) {
11581
11629
  this.setCache(response, true);
11582
11630
  }
11583
11631
  return this.createCollectionInstance(this.collectionClass, response);
11584
- }), catchError((error) => this.handleError(error)));
11632
+ }), catchError((error) => this.handleError(error)), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
11633
+ return this.inFlight$;
11585
11634
  }
11586
11635
  fetchFirst(queryParams = {}) {
11587
11636
  return this.fetch(this.apiUrl, false, { params: queryParams })
@@ -11590,10 +11639,11 @@ let RestService$1 = class RestService extends DataService {
11590
11639
  get(path = this.apiUrl) {
11591
11640
  this.handleAccessError('get');
11592
11641
  if (!this.hasRoles()) {
11642
+ // @TODO it completes observable and doesn't watch anymore
11593
11643
  return of(this.createCollectionInstance(this.collectionClass, []));
11594
11644
  }
11595
11645
  if (!this.cache) {
11596
- this.fetch(path).pipe(first$1()).subscribe();
11646
+ return this.fetch(path).pipe(switchMap(() => this.getCacheSubjectObservable()));
11597
11647
  }
11598
11648
  return this.getCacheSubjectObservable();
11599
11649
  }
@@ -13388,22 +13438,17 @@ class FirmService {
13388
13438
  this.environment = environment;
13389
13439
  this.firmSubject = new ReplaySubject(1);
13390
13440
  }
13391
- /**
13392
- * Register new firm
13393
- * @param data: firm and firm owner data to register
13394
- */
13395
13441
  register(data) {
13396
13442
  return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
13397
13443
  .pipe(map((firm) => plainToClass(Firm, firm)));
13398
13444
  }
13399
13445
  get() {
13400
13446
  if (!this.firm) {
13401
- this.http.get(`${this.environment.apiV2}/firms/current`)
13402
- .pipe(map((firm) => plainToClass(Firm, firm)))
13403
- .subscribe((firm) => {
13404
- this.firm = firm;
13447
+ return this.http.get(`${this.environment.apiV2}/firms/current`).pipe(map((firm) => {
13448
+ this.firm = plainToClass(Firm, firm);
13405
13449
  this.firmSubject.next(this.firm);
13406
- });
13450
+ return this.firm;
13451
+ }), switchMap(() => this.firmSubject.asObservable()));
13407
13452
  }
13408
13453
  return this.firmSubject.asObservable();
13409
13454
  }
@@ -13488,24 +13533,25 @@ class RestService {
13488
13533
  * get list of base class instances directly from backend
13489
13534
  */
13490
13535
  fetch(path = this.apiUrl, cache = true, params = {}) {
13491
- if (cache) {
13492
- this.setCache([]);
13536
+ if (this.inFlight$ && cache) {
13537
+ return this.inFlight$;
13493
13538
  }
13494
- return this.http.get(path, { params: params })
13539
+ this.inFlight$ = this.http.get(path, { params: params })
13495
13540
  .pipe(map((response) => {
13496
13541
  const items = response.map((item) => this.createModelInstance(item));
13497
13542
  if (cache) {
13498
13543
  this.setCache(items, true);
13499
13544
  }
13500
13545
  return items;
13501
- }));
13546
+ }), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
13547
+ return this.inFlight$;
13502
13548
  }
13503
13549
  /**
13504
13550
  * get cached list of all instances
13505
13551
  */
13506
13552
  get(path = this.apiUrl) {
13507
13553
  if (!this.cache) {
13508
- this.fetch(path).pipe(first$1()).subscribe();
13554
+ return this.fetch(path).pipe(first$1(), switchMap(() => this.getCacheSubjectObservable()));
13509
13555
  }
13510
13556
  return this.getCacheSubjectObservable();
13511
13557
  }
@@ -13654,7 +13700,7 @@ class RestService {
13654
13700
  */
13655
13701
  refreshCache() {
13656
13702
  this.setCache(undefined);
13657
- this.get();
13703
+ this.get().subscribe();
13658
13704
  }
13659
13705
  setCache(data, next = false) {
13660
13706
  this.cache = data;
@@ -16596,16 +16642,16 @@ class UserService extends RestService$1 {
16596
16642
  user.blacklistSetupItems.push(item);
16597
16643
  return this.put(user);
16598
16644
  }
16645
+ restoreSetupItem(item) {
16646
+ const user = clone(this.getCacheFirst());
16647
+ remove(user.blacklistSetupItems, (i) => i.id === item.id);
16648
+ return this.put(user);
16649
+ }
16599
16650
  /**
16600
16651
  * Update cache when user's service subscription is updated
16601
16652
  */
16602
16653
  listenServiceSubscriptionUpdated() {
16603
- this.listenCSE(ServiceSubscription, (response) => {
16604
- // @TODO vik test and remove
16605
- setTimeout(() => {
16606
- this.refreshCache();
16607
- }, 2000);
16608
- }, ['post', 'put']);
16654
+ this.listenCSE(ServiceSubscription, (subscriptions) => this.refreshCache(), ['post', 'put']);
16609
16655
  }
16610
16656
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: UserService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
16611
16657
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: UserService, providedIn: 'root' }); }
@@ -19229,12 +19275,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19229
19275
  }]
19230
19276
  }], ctorParameters: () => [] });
19231
19277
 
19232
- var SetupItemTypeEnum;
19233
- (function (SetupItemTypeEnum) {
19234
- SetupItemTypeEnum[SetupItemTypeEnum["CLIENT"] = 1] = "CLIENT";
19235
- SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 2] = "EMPLOYEE";
19236
- })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
19237
-
19238
19278
  class SetupItemService extends RestService$1 {
19239
19279
  constructor() {
19240
19280
  super(...arguments);
@@ -19258,14 +19298,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19258
19298
  * Checks required steps and their completion
19259
19299
  */
19260
19300
  class AccountSetupService {
19261
- constructor(setupItemService, propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService) {
19301
+ constructor(setupItemService, propertyService, incomeSourceService, bankConnectionService, bankAccountsService, loanService, allocationRuleService, transactionAllocationService, vehicleClaimService, homeOfficeClaimService, transactionService, depreciationService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService, sharesightDetailsService, propertyShareService) {
19262
19302
  this.setupItemService = setupItemService;
19263
19303
  this.propertyService = propertyService;
19264
19304
  this.incomeSourceService = incomeSourceService;
19305
+ this.bankConnectionService = bankConnectionService;
19265
19306
  this.bankAccountsService = bankAccountsService;
19307
+ this.loanService = loanService;
19308
+ this.allocationRuleService = allocationRuleService;
19266
19309
  this.transactionAllocationService = transactionAllocationService;
19267
19310
  this.vehicleClaimService = vehicleClaimService;
19311
+ this.homeOfficeClaimService = homeOfficeClaimService;
19268
19312
  this.transactionService = transactionService;
19313
+ this.depreciationService = depreciationService;
19269
19314
  this.soleBusinessService = soleBusinessService;
19270
19315
  this.holdingService = holdingService;
19271
19316
  this.userService = userService;
@@ -19274,101 +19319,110 @@ class AccountSetupService {
19274
19319
  this.employeeService = employeeService;
19275
19320
  this.employeeInviteService = employeeInviteService;
19276
19321
  this.firmService = firmService;
19322
+ this.sharesightDetailsService = sharesightDetailsService;
19323
+ this.propertyShareService = propertyShareService;
19277
19324
  }
19278
19325
  /**
19279
19326
  * Get list of account setup items for current user/firm
19280
19327
  */
19281
- get(type) {
19282
- return combineLatest([
19283
- this.setupItemService.get(),
19284
- this.userService.getFirst()
19285
- ])
19286
- .pipe(mergeMap(([items, user]) => {
19287
- this.items = items;
19328
+ get(property) {
19329
+ // @TODO it takes time for user to update, makes sense to subscribe to serviceSubscription instead
19330
+ return combineLatest([this.setupItemService.get(), this.userService.getFirst()]).pipe(switchMap(([items, user]) => {
19288
19331
  this.user = user;
19289
- return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
19332
+ this.items = items.getByUser(user);
19333
+ return this.setItemsStatus(property);
19290
19334
  }));
19291
19335
  }
19292
- getClientItems$() {
19293
- const batch = [];
19294
- if (this.user.hasRoles(UserRolesEnum.WORK_TANK)) {
19295
- batch.push(
19296
- // Salary item is completed when user added salary income source
19297
- this.setItemStatus(this.items.findBy('isSalary', true), this.getIncomeSources(true)),
19298
- // Other income is a part of work tank, completed when user added at least one other income source
19299
- this.setItemStatus(this.items.findBy('isOtherIncome', true), this.getIncomeSources()));
19300
- }
19301
- // Rental income item is completed when user added at least one property
19302
- if (this.user.hasRoles(UserRolesEnum.PROPERTY_TANK)) {
19303
- batch.push(this.setItemStatus(this.items.findBy('isProperty', true), this.propertyService.getArray()));
19304
- }
19305
- // Sole business item is completed when user added at least one business
19306
- if (this.user.hasRoles(UserRolesEnum.SOLE_TANK)) {
19307
- batch.push(this.setItemStatus(this.items.findBy('isSoleBusiness', true), this.soleBusinessService.getArray()));
19308
- }
19309
- // holdings item is completed when user added at least one holding
19310
- if (this.user.hasRoles(UserRolesEnum.HOLDING_TANK)) {
19311
- batch.push(this.setItemStatus(this.items.findBy('isHoldings', true), this.holdingService.getArray()));
19312
- }
19313
- if (this.user.hasRoles([UserRolesEnum.WORK_TANK, UserRolesEnum.PROPERTY_TANK, UserRolesEnum.SOLE_TANK])) {
19314
- // Bank feeds item is completed when user added at least one bank account (basiq or manual)
19315
- batch.push(this.getBankFeedsItem());
19316
- // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
19317
- batch.push(this.getLogbookItem());
19318
- // Allocation item is completed when user added at least one transaction allocation
19319
- batch.push(this.setItemStatus(this.items.findBy('isTransactionAllocate', true), this.transactionAllocationService.get()));
19336
+ setItemsStatus(property) {
19337
+ const itemsById = this.items.indexBy('id');
19338
+ const requests = pick({
19339
+ // firm
19340
+ [AccountSetupItemsEnum.FIRM_DETAILS]: this.getFirms(),
19341
+ [AccountSetupItemsEnum.FIRM_EMPLOYEES]: this.getEmployees(),
19342
+ [AccountSetupItemsEnum.FIRM_CLIENTS]: this.getClients(),
19343
+ // work
19344
+ [AccountSetupItemsEnum.WORK_SALARY]: this.getIncomeSources(true),
19345
+ [AccountSetupItemsEnum.WORK_OTHER_INCOME]: this.getIncomeSources(false),
19346
+ [AccountSetupItemsEnum.WORK_VEHICLE_CLAIM]: this.getVehicleClaims(false),
19347
+ [AccountSetupItemsEnum.WORK_HOME_OFFICE]: this.getHomeOfficeClaims(false),
19348
+ [AccountSetupItemsEnum.WORK_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.WORK),
19349
+ [AccountSetupItemsEnum.WORK_DEPRECIATION]: this.getDepreciations(TankTypeEnum.WORK),
19350
+ // properties
19351
+ [AccountSetupItemsEnum.PROPERTY]: this.propertyService.getArray(),
19352
+ [AccountSetupItemsEnum.PROPERTIES]: this.propertyService.getArray().pipe(map(properties => properties.slice(1))),
19353
+ [AccountSetupItemsEnum.PROPERTIES_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.PROPERTY),
19354
+ // sole
19355
+ [AccountSetupItemsEnum.SOLE_BUSINESS]: this.soleBusinessService.getArray(),
19356
+ [AccountSetupItemsEnum.SOLE_BUSINESSES]: this.soleBusinessService.getArray().pipe(map(businesses => businesses.slice(1))),
19357
+ [AccountSetupItemsEnum.SOLE_VEHICLE_CLAIM]: this.getVehicleClaims(true),
19358
+ [AccountSetupItemsEnum.SOLE_HOME_OFFICE]: this.getHomeOfficeClaims(true),
19359
+ [AccountSetupItemsEnum.SOLE_DEPRECIATION]: this.getDepreciations(TankTypeEnum.SOLE),
19360
+ [AccountSetupItemsEnum.SOLE_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.SOLE),
19361
+ // holding
19362
+ [AccountSetupItemsEnum.HOLDING_TRADE]: this.holdingService.getArray(),
19363
+ [AccountSetupItemsEnum.HOLDING_INTEGRATION]: this.getSharesightDetails(true),
19364
+ // bankAccount
19365
+ [AccountSetupItemsEnum.BANK_CONNECTION]: this.bankConnectionService.getArray(),
19366
+ [AccountSetupItemsEnum.BANK_ACCOUNT]: this.getBankAccounts(),
19367
+ [AccountSetupItemsEnum.BANK_ALLOCATION]: this.transactionAllocationService.get(),
19368
+ [AccountSetupItemsEnum.BANK_RULE]: this.allocationRuleService.getArray(),
19369
+ [AccountSetupItemsEnum.BANK_BORROWING_EXPENSE]: this.getBorrowingExpenses(),
19370
+ }, this.items.getIds());
19371
+ // property
19372
+ if (property) {
19373
+ requests[AccountSetupItemsEnum.PROPERTY_CAPITAL_COST] = this.getProperties(property).pipe(map(properties => properties.filter(property => !!property.capitalCosts)));
19374
+ requests[AccountSetupItemsEnum.PROPERTY_RENT_INCOME] = this.getTransactions(property).pipe(map(transactions => new TransactionCollection(transactions).filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)));
19375
+ requests[AccountSetupItemsEnum.PROPERTY_DEPRECIATION] = this.getDepreciations(TankTypeEnum.PROPERTY, property);
19376
+ requests[AccountSetupItemsEnum.PROPERTY_CO_OWNER] = this.getCoOwners(property);
19377
+ }
19378
+ const batch = Object.keys(requests).map(id => this.setItemStatus(itemsById.get(id), requests[id]));
19379
+ if (!batch.length) {
19380
+ return of(new AccountSetupItemCollection([]));
19320
19381
  }
19321
19382
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
19322
19383
  }
19323
- getFirmItems$() {
19324
- const batch = [];
19325
- batch.push(
19326
- // Firm Details item is completed when user filled some general information
19327
- this.firmService.get().pipe(map((firm) => {
19328
- const item = this.items.findBy('isFirmDetails', true);
19329
- if (firm.address || firm.phone || firm.file || firm.shortName) {
19330
- item.isCompleted = true;
19331
- }
19332
- return item;
19333
- })));
19334
- batch.push(
19335
- // Invite team item is completed when firm has employees except firm owner or firm has invited employees.
19336
- this.setItemStatus(this.items.findBy('isInviteTeam', true), combineLatest([
19337
- this.employeeService.getArray(),
19338
- this.employeeInviteService.getArray()
19339
- ]).pipe(map(([employees, invites]) => {
19340
- // we always have at least 1 employee (firm owner), so we should check other employees except firm owner
19341
- if (employees.length) {
19342
- employees.splice(0, 1);
19343
- }
19344
- return [...employees, ...invites];
19345
- }))));
19346
- batch.push(
19347
- // Invite clients item is completed when firm has clients or firm has invited clients.
19348
- this.setItemStatus(this.items.findBy('isInviteClients', true), combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()])
19349
- .pipe(map(([movements, invites]) => [...movements.toArray(), ...invites.toArray()]))));
19350
- return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items).sortBy('id', 'asc')));
19351
- }
19352
19384
  /**
19353
19385
  * Check and update isCompleted flag for passed item
19354
19386
  */
19355
19387
  setItemStatus(item, request) {
19356
19388
  return request.pipe(map((result) => {
19357
19389
  const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
19358
- if (result.length || isSkipped) {
19359
- item.isCompleted = true;
19360
- }
19361
- else {
19362
- item.isCompleted = false;
19363
- }
19390
+ item.status = isSkipped ? AccountSetupItemStatusEnum.SKIPPED : result.length ? AccountSetupItemStatusEnum.ACHIEVED : AccountSetupItemStatusEnum.PENDING;
19364
19391
  return item;
19365
19392
  }));
19366
19393
  }
19394
+ getProperties(property) {
19395
+ return this.propertyService.getBy('id', property.id).pipe(map(properties => properties));
19396
+ }
19397
+ getTransactions(property) {
19398
+ return this.transactionService.getByPropertyId(property.id);
19399
+ }
19400
+ getCoOwners(property) {
19401
+ return this.propertyShareService.getArrayBy('property.id', property.id).pipe(map(shares => shares.slice(1)));
19402
+ }
19403
+ /**
19404
+ * AccountSetupItemsEnum.FIRM_CLIENTS completed when client invites sent or accepted
19405
+ */
19406
+ getClients() {
19407
+ return combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()]).pipe(map(([movements, invites]) => [...movements, ...invites]));
19408
+ }
19409
+ /**
19410
+ * AccountSetupItemsEnum.FIRM_EMPLOYEES completed when employee invites sent or accepted
19411
+ */
19412
+ getEmployees() {
19413
+ return combineLatest([this.employeeService.getArray(), this.employeeInviteService.getArray()]).pipe(map(([employees, invites]) => [...employees.slice(1), ...invites]));
19414
+ }
19415
+ /**
19416
+ * AccountSetupItemsEnum.FIRM_DETAILS when firm data filled
19417
+ */
19418
+ getFirms() {
19419
+ return this.firmService.get().pipe(map((firm) => [firm].filter(firm => firm.address || firm.phone || firm.file || firm.shortName)));
19420
+ }
19367
19421
  /**
19368
19422
  * @TODO Alex: work with collection when services refactored
19369
19423
  * @TODO Vik: waiting for income sources refactoring
19370
19424
  */
19371
- getIncomeSources(isSalary = false) {
19425
+ getIncomeSources(isSalary) {
19372
19426
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
19373
19427
  const collection = new IncomeSourceCollection(incomeSources);
19374
19428
  if (isSalary) {
@@ -19377,31 +19431,31 @@ class AccountSetupService {
19377
19431
  return collection.items.filter((incomeSource) => incomeSource.isOtherIncome());
19378
19432
  }));
19379
19433
  }
19380
- /**
19381
- * Show logbook item when user has at least 1 vehicle transaction
19382
- */
19383
- getLogbookItem() {
19384
- return this.transactionService.get()
19385
- .pipe(
19386
- // @TODO Alex: remove map when services start work with collections
19387
- map((transactions) => new TransactionCollection(transactions)), mergeMap((transactions) => {
19388
- if (transactions.getVehicleTransactions().length) {
19389
- return this.setItemStatus(this.items.findBy('isWorkLogbook', true), this.vehicleClaimService.getArray());
19434
+ getVehicleClaims(isBusiness) {
19435
+ return this.vehicleClaimService.getArray().pipe(map((claims => claims.filter(claim => isBusiness ? claim.business : !claim.business))));
19436
+ }
19437
+ getHomeOfficeClaims(isBusiness) {
19438
+ return this.homeOfficeClaimService.getArray().pipe(map(claims => claims.filter(claim => isBusiness ? claim.business : !claim.business)));
19439
+ }
19440
+ getBankAccounts(tankType) {
19441
+ return this.bankAccountsService.get().pipe(map((bankAccounts => bankAccounts.getByTankType(tankType).toArray())));
19442
+ }
19443
+ getDepreciations(tankType, property) {
19444
+ return this.depreciationService.get().pipe(map(depreciations => {
19445
+ depreciations = depreciations.getByTankType(tankType);
19446
+ if (property) {
19447
+ depreciations.filterBy('property.id', property.id);
19390
19448
  }
19391
- return of(null);
19449
+ return depreciations.toArray();
19392
19450
  }));
19393
19451
  }
19394
- /**
19395
- * Hide bank feeds item when user has only holding tank
19396
- */
19397
- getBankFeedsItem() {
19398
- const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
19399
- if (!intersection(bankFeedsRoles, this.user.roles).length) {
19400
- return of(null);
19401
- }
19402
- return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
19452
+ getSharesightDetails(importEnabled) {
19453
+ return this.sharesightDetailsService.getArray().pipe(map(details => details.filter(detail => importEnabled ? detail.importEnabled : detail.exportEnabled)));
19403
19454
  }
19404
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, deps: [{ token: SetupItemService }, { token: PropertyService }, { token: IncomeSourceService }, { token: BankAccountService }, { token: TransactionAllocationService }, { token: VehicleClaimService }, { token: TransactionService }, { token: SoleBusinessService }, { token: HoldingTradeService }, { token: UserService }, { token: ClientMovementService }, { token: ClientInviteService }, { token: EmployeeService }, { token: EmployeeInviteService }, { token: FirmService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19455
+ getBorrowingExpenses() {
19456
+ return this.loanService.getArray().pipe(map(loans => loans.filter(loan => !!loan.borrowingExpenses.length)));
19457
+ }
19458
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, deps: [{ token: SetupItemService }, { token: PropertyService }, { token: IncomeSourceService }, { token: BankConnectionService }, { token: BankAccountService }, { token: LoanService }, { token: AllocationRuleService }, { token: TransactionAllocationService }, { token: VehicleClaimService }, { token: HomeOfficeClaimService }, { token: TransactionService }, { token: DepreciationService }, { token: SoleBusinessService }, { token: HoldingTradeService }, { token: UserService }, { token: ClientMovementService }, { token: ClientInviteService }, { token: EmployeeService }, { token: EmployeeInviteService }, { token: FirmService }, { token: SharesightDetailsService }, { token: PropertyShareService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19405
19459
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, providedIn: 'root' }); }
19406
19460
  }
19407
19461
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, decorators: [{
@@ -19409,7 +19463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19409
19463
  args: [{
19410
19464
  providedIn: 'root'
19411
19465
  }]
19412
- }], ctorParameters: () => [{ type: SetupItemService }, { type: PropertyService }, { type: IncomeSourceService }, { type: BankAccountService }, { type: TransactionAllocationService }, { type: VehicleClaimService }, { type: TransactionService }, { type: SoleBusinessService }, { type: HoldingTradeService }, { type: UserService }, { type: ClientMovementService }, { type: ClientInviteService }, { type: EmployeeService }, { type: EmployeeInviteService }, { type: FirmService }] });
19466
+ }], ctorParameters: () => [{ type: SetupItemService }, { type: PropertyService }, { type: IncomeSourceService }, { type: BankConnectionService }, { type: BankAccountService }, { type: LoanService }, { type: AllocationRuleService }, { type: TransactionAllocationService }, { type: VehicleClaimService }, { type: HomeOfficeClaimService }, { type: TransactionService }, { type: DepreciationService }, { type: SoleBusinessService }, { type: HoldingTradeService }, { type: UserService }, { type: ClientMovementService }, { type: ClientInviteService }, { type: EmployeeService }, { type: EmployeeInviteService }, { type: FirmService }, { type: SharesightDetailsService }, { type: PropertyShareService }] });
19413
19467
 
19414
19468
  class AdblockService {
19415
19469
  constructor() {
@@ -20546,6 +20600,7 @@ const ENDPOINTS = {
20546
20600
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
20547
20601
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
20548
20602
  SERVICE_SUBSCRIPTIONS_POST: new Endpoint('POST', '\\/service-subscriptions'),
20603
+ SERVICE_SUBSCRIPTIONS_TRIAL_POST: new Endpoint('POST', '\\/service-subscriptions/'),
20549
20604
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
20550
20605
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
20551
20606
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
@@ -20602,6 +20657,7 @@ const ENDPOINTS = {
20602
20657
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
20603
20658
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
20604
20659
  TRANSACTIONS_ALLOCATIONS_BATCH_DELETE: new Endpoint('POST', '\\/transaction-allocations\\/delete'),
20660
+ TRIAL_POST: new Endpoint('POST', '\\/trial'),
20605
20661
  USER_CONFIRMATION_POST: new Endpoint('POST', '\\/users\\/confirmation'),
20606
20662
  USER_CONFIRMATION_RESEND_POST: new Endpoint('POST', '\\/users\\/confirmation\\/resend'),
20607
20663
  USER_CURRENT_GET: new Endpoint('GET', '\\/users\\/current'),
@@ -21000,6 +21056,15 @@ var InviteStatusEnum;
21000
21056
  InviteStatusEnum[InviteStatusEnum["REJECTED"] = 3] = "REJECTED";
21001
21057
  })(InviteStatusEnum || (InviteStatusEnum = {}));
21002
21058
 
21059
+ var OnboardingVideosEnum;
21060
+ (function (OnboardingVideosEnum) {
21061
+ OnboardingVideosEnum["HOLDING_ONBOARDING"] = "r3RhObELk-E";
21062
+ OnboardingVideosEnum["MONEY_ONBOARDING"] = "E9NU14ndjhc";
21063
+ OnboardingVideosEnum["PROPERTY_ONBOARDING"] = "llUV98-EMdI";
21064
+ OnboardingVideosEnum["SOLE_ONBOARDING"] = "rqfTQFGwkUM";
21065
+ OnboardingVideosEnum["WORK_ONBOARDING"] = "QEKolzS1B0U";
21066
+ })(OnboardingVideosEnum || (OnboardingVideosEnum = {}));
21067
+
21003
21068
  var PropertyDepreciationCalculationEnum;
21004
21069
  (function (PropertyDepreciationCalculationEnum) {
21005
21070
  PropertyDepreciationCalculationEnum[PropertyDepreciationCalculationEnum["PRIME_COST"] = 1] = "PRIME_COST";
@@ -25458,5 +25523,5 @@ var MessagesEnum;
25458
25523
  * Generated bundle index. Do not edit.
25459
25524
  */
25460
25525
 
25461
- export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, AdblockService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AppPercentPipe, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AussieAppointment, AussieAppointmentForm, AussieBroker, AussieConfirmationForm, AussieService, AussieStore, AussieStoreForm, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessChartAccountsEnum, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DateRange, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SharesightDetails, SharesightDetailsMessagesEnum, SharesightDetailsService, SharesightPortfolio, SharesightPortfolioMessages, SharesightPortfolioService, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
25526
+ export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockService, Address, AddressForm, AddressService, AddressTypeEnum, AllocationGroup, AllocationGroupCollection, AllocationRule, AllocationRuleCollection, AllocationRuleConditionComparisonOperatorEnum, AllocationRuleConditionFieldEnum, AllocationRuleConditionOperatorEnum, AllocationRuleForm, AllocationRuleService, AllocationRuleTransaction, AllocationRuleTransactionMetaField, AllocationRuleTypeEnum, AlphabetColorsEnum, AnnualClientDetails, AnnualClientDetailsForm, AnnualClientDetailsService, AnnualFrequencyEnum, AppCurrencyPipe, AppEvent, AppEvent2, AppEventTypeEnum, AppFile, AppPercentPipe, AssetEntityTypeEnum, AssetSale, AssetSaleCollection, AssetTypeEnum, AssetsService, AussieAppointment, AussieAppointmentForm, AussieBroker, AussieConfirmationForm, AussieService, AussieStore, AussieStoreForm, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetForm, BudgetMessagesEnum, BudgetRule, BudgetService, BusinessChartAccountsEnum, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CapitalLoss, CapitalLossForm, CapitalLossMessagesEnum, CapitalLossService, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsAdjustmentIncludedListEnum, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsForm, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsHoldingUntaxedIncomeListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMessagesEnum, ChartAccountsMetaField, ChartAccountsMetaFieldListEnum, ChartAccountsMetaFieldTypeEnum, ChartAccountsPropertyAdjustmentsListEnum, ChartAccountsSalaryAdjustmentsListEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartAccountsValueCollection, ChartAccountsValueService, ChartData, ChartSerie, Chat, ChatCollection, ChatFilterForm, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientCouponService, ClientDetails, ClientDetailsForm, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientInvite, ClientInviteCollection, ClientInviteForm, ClientInviteMessages, ClientInvitePutForm, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementForm, ClientMovementMessagesEnum, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CollectionForm, CoreModule, CorelogicMessagesEnum, CorelogicService, CorelogicSuggestion, Country, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DateRange, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationForm, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpRateEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessDetails, MyTaxBusinessDetailsForm, MyTaxBusinessIncome, MyTaxBusinessIncomeForm, MyTaxBusinessIncomeOrLossesForm, MyTaxBusinessLosses, MyTaxBusinessLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, OnboardingVideosEnum, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorTransactionService, Property, PropertyAddForm, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementForm, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentForm, PropertyDocumentMessagesEnum, PropertyDocumentService, PropertyEditForm, PropertyEquityChartData, PropertyEquityChartItem, PropertyEquityChartTypeEnum, PropertyForecast, PropertyForecastForm, PropertyMessagesEnum, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetaField, PropertySaleTaxExemptionMetaFieldCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareCollection, PropertyShareForm, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, PropertyValuationCollection, PropertyValuationForm, PropertyValuationMessages, PropertyValuationService, REPORTS, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceListEnum, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductCollection, ServiceProductIconsEnum, ServiceProductIdEnum, ServiceProductService, ServiceProductStatusEnum, ServicePromoCode, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, SetupItemTypeEnum, SharesightDetails, SharesightDetailsMessagesEnum, SharesightDetailsService, SharesightPortfolio, SharesightPortfolioMessages, SharesightPortfolioService, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, StatesEnum, SubscriptionItemCollection, SubscriptionMessagesEnum, SubscriptionService, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionCollection, TaxExemptionEnum, TaxExemptionMetaField, TaxExemptionMetaFieldEnum, TaxExemptionService, TaxReturn, TaxReturnCategory, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReturnItem, TaxReturnItemEnum, TaxReturnItemService, TaxReview, TaxReviewCollection, TaxReviewFilterForm, TaxReviewFilterStatusEnum, TaxReviewHistoryService, TaxReviewMessagesEnum, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, TimezoneEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionBaseCollection, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionTypeEnum, USER_ROLES, USER_WORK_POSITION, UniqueEmailValidator, User, UserCollection, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeCollection, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserForm, UserInviteForm, UserMedicareExemptionEnum, UserMessagesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
25462
25527
  //# sourceMappingURL=taxtank-core.mjs.map