taxtank-core 1.0.25 → 1.0.26

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 (28) hide show
  1. package/README.md +5 -5
  2. package/fesm2022/taxtank-core-common.mjs.map +1 -1
  3. package/fesm2022/taxtank-core.mjs +208 -255
  4. package/fesm2022/taxtank-core.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/src/lib/collections/account-setup-item.collection.d.ts +1 -5
  7. package/src/lib/collections/bank-account.collection.d.ts +1 -1
  8. package/src/lib/collections/subscription/service-subscription.collection.d.ts +0 -2
  9. package/src/lib/db/Enums/index.d.ts +0 -1
  10. package/src/lib/db/Enums/setup-item-type.enum.d.ts +2 -8
  11. package/src/lib/db/Models/property/property.d.ts +0 -1
  12. package/src/lib/db/Models/setup-item.d.ts +1 -4
  13. package/src/lib/models/account-setup/account-setup-item.d.ts +12 -5
  14. package/src/lib/models/account-setup/account-setup-items.enum.d.ts +11 -29
  15. package/src/lib/models/index.d.ts +0 -1
  16. package/src/lib/models/user/user.d.ts +1 -1
  17. package/src/lib/services/account-setup/account-setup.service.d.ts +14 -32
  18. package/src/lib/services/http/firm/firm.service.d.ts +4 -0
  19. package/src/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts +1 -2
  20. package/src/lib/services/http/rest/rest-old.service.d.ts +0 -1
  21. package/src/lib/services/http/rest/rest.service.d.ts +0 -1
  22. package/src/lib/services/http/setup-item/setup-item.service.d.ts +1 -1
  23. package/src/lib/services/http/transaction/index.d.ts +1 -0
  24. package/src/lib/services/http/transaction/invoice-transactions.service.d.ts +20 -0
  25. package/src/lib/services/http/transaction/transaction.service.d.ts +0 -1
  26. package/src/lib/services/http/user/user.service.d.ts +3 -4
  27. package/src/lib/models/account-setup/account-setup-item-status.enum.d.ts +0 -5
  28. package/src/lib/models/account-setup/index.d.ts +0 -3
@@ -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, 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';
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';
9
9
  import { plainToClass, Type, Transform, Exclude, Expose, classToPlain } from 'class-transformer';
10
10
  import 'reflect-metadata';
11
11
  import { __decorate } from 'tslib';
@@ -33,8 +33,6 @@ 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';
38
36
  import { checkAdBlock } from 'adblock-checker';
39
37
  import { jsPDF } from 'jspdf';
40
38
  import { applyPlugin } from 'jspdf-autotable';
@@ -496,9 +494,6 @@ let Property$1 = class Property extends ObservableModel {
496
494
  this.corelogicLastRequest = null;
497
495
  }
498
496
  static { this.className = 'Property'; }
499
- get capitalCosts() {
500
- return this.legalFees + this.otherCapitalCosts + this.stampDuty;
501
- }
502
497
  };
503
498
  __decorate([
504
499
  Type(() => Number)
@@ -1456,18 +1451,6 @@ var HomeOfficeClaimMethodEnum;
1456
1451
  HomeOfficeClaimMethodEnum[HomeOfficeClaimMethodEnum["OCCUPANCY"] = 3] = "OCCUPANCY";
1457
1452
  })(HomeOfficeClaimMethodEnum || (HomeOfficeClaimMethodEnum = {}));
1458
1453
 
1459
- var SetupItemTypeEnum;
1460
- (function (SetupItemTypeEnum) {
1461
- SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 0] = "EMPLOYEE";
1462
- SetupItemTypeEnum[SetupItemTypeEnum["WORK"] = 1] = "WORK";
1463
- SetupItemTypeEnum[SetupItemTypeEnum["PROPERTIES"] = 2] = "PROPERTIES";
1464
- SetupItemTypeEnum[SetupItemTypeEnum["PROPERTY"] = 3] = "PROPERTY";
1465
- SetupItemTypeEnum[SetupItemTypeEnum["BUSINESS"] = 4] = "BUSINESS";
1466
- SetupItemTypeEnum[SetupItemTypeEnum["HOLDING"] = 5] = "HOLDING";
1467
- SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNTS"] = 6] = "BANK_ACCOUNTS";
1468
- SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNT"] = 7] = "BANK_ACCOUNT";
1469
- })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
1470
-
1471
1454
  /**
1472
1455
  * @TODO not used for now
1473
1456
  * Bank subclass, average bank response time for some operations in milliseconds
@@ -5381,72 +5364,61 @@ __decorate([
5381
5364
  class SetupItem extends AbstractModel {
5382
5365
  }
5383
5366
 
5384
- var AccountSetupItemStatusEnum;
5385
- (function (AccountSetupItemStatusEnum) {
5386
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["PENDING"] = 1] = "PENDING";
5387
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["ACHIEVED"] = 2] = "ACHIEVED";
5388
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["SKIPPED"] = 3] = "SKIPPED";
5389
- })(AccountSetupItemStatusEnum || (AccountSetupItemStatusEnum = {}));
5390
-
5391
- class AccountSetupItem extends SetupItem {
5392
- get isPending() {
5393
- return this.status === AccountSetupItemStatusEnum.PENDING;
5394
- }
5395
- get isAchieved() {
5396
- return this.status === AccountSetupItemStatusEnum.SKIPPED;
5397
- }
5398
- get isCompleted() {
5399
- return [AccountSetupItemStatusEnum.ACHIEVED, AccountSetupItemStatusEnum.SKIPPED].includes(this.status);
5400
- }
5401
- get isSkipped() {
5402
- return this.status === AccountSetupItemStatusEnum.SKIPPED;
5403
- }
5404
- }
5405
-
5406
5367
  /**
5407
- * TODO remove
5368
+ * Enum list of all possible account setup items ids. Using with [ACCOUNT_SETUP_ITEMS]{@link ACCOUNT_SETUP_ITEMS}
5369
+ * @TODO Vik/Nikita: Do we need to generate it from backend? If some ids changed?
5408
5370
  */
5409
5371
  var AccountSetupItemsEnum;
5410
5372
  (function (AccountSetupItemsEnum) {
5411
- // firm
5412
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5413
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_EMPLOYEES"] = 10] = "FIRM_EMPLOYEES";
5414
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_CLIENTS"] = 11] = "FIRM_CLIENTS";
5415
- // work
5416
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_SALARY"] = 1] = "WORK_SALARY";
5417
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_OTHER_INCOME"] = 2] = "WORK_OTHER_INCOME";
5418
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_VEHICLE_CLAIM"] = 5] = "WORK_VEHICLE_CLAIM";
5419
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_HOME_OFFICE"] = 13] = "WORK_HOME_OFFICE";
5420
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_BANK_ACCOUNT"] = 14] = "WORK_BANK_ACCOUNT";
5421
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_DEPRECIATION"] = 15] = "WORK_DEPRECIATION";
5422
- // properties
5373
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SALARY"] = 1] = "SALARY";
5374
+ AccountSetupItemsEnum[AccountSetupItemsEnum["OTHER_INCOME"] = 2] = "OTHER_INCOME";
5423
5375
  AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY"] = 3] = "PROPERTY";
5424
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES"] = 29] = "PROPERTIES";
5425
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES_BANK_ACCOUNT"] = 30] = "PROPERTIES_BANK_ACCOUNT";
5426
- // property
5427
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CAPITAL_COST"] = 17] = "PROPERTY_CAPITAL_COST";
5428
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_RENT_INCOME"] = 18] = "PROPERTY_RENT_INCOME";
5429
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_DEPRECIATION"] = 19] = "PROPERTY_DEPRECIATION";
5430
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CO_OWNER"] = 20] = "PROPERTY_CO_OWNER";
5431
- // sole
5376
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_FEEDS"] = 4] = "BANK_FEEDS";
5377
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_LOGBOOK"] = 5] = "WORK_LOGBOOK";
5378
+ AccountSetupItemsEnum[AccountSetupItemsEnum["TRANSACTION_ALLOCATE"] = 6] = "TRANSACTION_ALLOCATE";
5432
5379
  AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESS"] = 7] = "SOLE_BUSINESS";
5433
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESSES"] = 33] = "SOLE_BUSINESSES";
5434
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_VEHICLE_CLAIM"] = 12] = "SOLE_VEHICLE_CLAIM";
5435
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_HOME_OFFICE"] = 21] = "SOLE_HOME_OFFICE";
5436
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_DEPRECIATION"] = 22] = "SOLE_DEPRECIATION";
5437
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BANK_ACCOUNT"] = 23] = "SOLE_BANK_ACCOUNT";
5438
- // holding
5439
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_TRADE"] = 8] = "HOLDING_TRADE";
5440
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_INTEGRATION"] = 25] = "HOLDING_INTEGRATION";
5441
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_REPORTS"] = 36] = "HOLDING_REPORTS";
5442
- // bank accounts
5443
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_CONNECTION"] = 4] = "BANK_CONNECTION";
5444
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ACCOUNT"] = 26] = "BANK_ACCOUNT";
5445
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ALLOCATION"] = 6] = "BANK_ALLOCATION";
5446
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_RULE"] = 27] = "BANK_RULE";
5447
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_BORROWING_EXPENSE"] = 28] = "BANK_BORROWING_EXPENSE";
5380
+ AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDINGS"] = 8] = "HOLDINGS";
5381
+ AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5382
+ AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_TEAM"] = 10] = "INVITE_TEAM";
5383
+ AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_CLIENTS"] = 11] = "INVITE_CLIENTS";
5448
5384
  })(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
5449
5385
 
5386
+ class AccountSetupItem extends SetupItem {
5387
+ get isSalary() {
5388
+ return this.id === AccountSetupItemsEnum.SALARY;
5389
+ }
5390
+ get isOtherIncome() {
5391
+ return this.id === AccountSetupItemsEnum.OTHER_INCOME;
5392
+ }
5393
+ get isProperty() {
5394
+ return this.id === AccountSetupItemsEnum.PROPERTY;
5395
+ }
5396
+ get isBankFeeds() {
5397
+ return this.id === AccountSetupItemsEnum.BANK_FEEDS;
5398
+ }
5399
+ get isWorkLogbook() {
5400
+ return this.id === AccountSetupItemsEnum.WORK_LOGBOOK;
5401
+ }
5402
+ get isTransactionAllocate() {
5403
+ return this.id === AccountSetupItemsEnum.TRANSACTION_ALLOCATE;
5404
+ }
5405
+ get isSoleBusiness() {
5406
+ return this.id === AccountSetupItemsEnum.SOLE_BUSINESS;
5407
+ }
5408
+ get isHoldings() {
5409
+ return this.id === AccountSetupItemsEnum.HOLDINGS;
5410
+ }
5411
+ get isFirmDetails() {
5412
+ return this.id === AccountSetupItemsEnum.FIRM_DETAILS;
5413
+ }
5414
+ get isInviteTeam() {
5415
+ return this.id === AccountSetupItemsEnum.INVITE_TEAM;
5416
+ }
5417
+ get isInviteClients() {
5418
+ return this.id === AccountSetupItemsEnum.INVITE_CLIENTS;
5419
+ }
5420
+ }
5421
+
5450
5422
  class User extends User$1 {
5451
5423
  constructor() {
5452
5424
  super(...arguments);
@@ -8558,9 +8530,6 @@ class ServiceSubscriptionCollection extends Collection {
8558
8530
  getPaid() {
8559
8531
  return this.filter((subscription) => !!subscription.stripeId);
8560
8532
  }
8561
- getRoles() {
8562
- return this.items.flatMap((subscription) => subscription.roles);
8563
- }
8564
8533
  getActivePaid() {
8565
8534
  return this.getActive().find((subscription) => !!subscription.stripeId);
8566
8535
  }
@@ -8587,9 +8556,6 @@ class ServiceSubscriptionCollection extends Collection {
8587
8556
  filterByRole(role) {
8588
8557
  return this.filter((subscription) => subscription.roles.includes(role));
8589
8558
  }
8590
- findByRole(role) {
8591
- return this.filterByRole(role).first;
8592
- }
8593
8559
  hasPropertyTank() {
8594
8560
  return !!this.getItems().propertiesItem;
8595
8561
  }
@@ -8995,25 +8961,11 @@ class AllocationRuleCollection extends Collection {
8995
8961
  class AccountSetupItemCollection extends Collection {
8996
8962
  constructor(items) {
8997
8963
  super(compact(items));
8998
- this.sortBy('status', 'asc');
8964
+ this.sortBy('isCompleted', 'asc');
8999
8965
  }
9000
8966
  isCompleted() {
9001
8967
  return this.filterBy('isCompleted', true).length === this.length;
9002
8968
  }
9003
- getByUser(user) {
9004
- return this.filter(item => user.hasRoles(item.roles));
9005
- }
9006
- getScore() {
9007
- return this.sumBy('score');
9008
- }
9009
- setUrlId(id) {
9010
- this.items.forEach(item => {
9011
- if (!item.url.includes(':id')) {
9012
- return;
9013
- }
9014
- item.url = item.url.replace(':id', id);
9015
- });
9016
- }
9017
8969
  }
9018
8970
 
9019
8971
  /**
@@ -9073,7 +9025,7 @@ class BankAccountCollection extends Collection {
9073
9025
  * Get Collection of bank accounts by tank type
9074
9026
  */
9075
9027
  getByTankType(tankType) {
9076
- return new BankAccountCollection(tankType ? this.items.filter((bankAccount) => bankAccount.tankType === tankType) : this.items);
9028
+ return new BankAccountCollection(this.items.filter((bankAccount) => bankAccount.tankType === tankType));
9077
9029
  }
9078
9030
  /**
9079
9031
  * Get list of all bank account properties
@@ -11600,9 +11552,8 @@ let RestService$1 = class RestService extends DataService {
11600
11552
  * Refresh cache with actual backend data
11601
11553
  */
11602
11554
  refreshCache() {
11603
- // todo why not fetch?
11604
11555
  this.cache = undefined;
11605
- this.get().subscribe();
11556
+ this.get();
11606
11557
  }
11607
11558
  /**
11608
11559
  * perform a shallow copy of the emitted data to make it immutable
@@ -11614,17 +11565,17 @@ let RestService$1 = class RestService extends DataService {
11614
11565
  * Get data from backend and fill the cache
11615
11566
  */
11616
11567
  fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11617
- if (this.inFlight$) {
11618
- return this.inFlight$;
11568
+ if (cache) {
11569
+ // Set cache as empty collection to avoid multiple requests before cache filled
11570
+ this.setCache([]);
11619
11571
  }
11620
- this.inFlight$ = this.http.get(path, queryParams)
11572
+ return this.http.get(path, queryParams)
11621
11573
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11622
11574
  if (cache) {
11623
11575
  this.setCache(response, true);
11624
11576
  }
11625
11577
  return this.createCollectionInstance(this.collectionClass, response);
11626
- }), catchError((error) => this.handleError(error)), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
11627
- return this.inFlight$;
11578
+ }), catchError((error) => this.handleError(error)));
11628
11579
  }
11629
11580
  fetchFirst(queryParams = {}) {
11630
11581
  return this.fetch(this.apiUrl, false, { params: queryParams })
@@ -11633,11 +11584,10 @@ let RestService$1 = class RestService extends DataService {
11633
11584
  get(path = this.apiUrl) {
11634
11585
  this.handleAccessError('get');
11635
11586
  if (!this.hasRoles()) {
11636
- // @TODO it completes observable and doesn't watch anymore
11637
11587
  return of(this.createCollectionInstance(this.collectionClass, []));
11638
11588
  }
11639
11589
  if (!this.cache) {
11640
- return this.fetch(path).pipe(switchMap(() => this.getCacheSubjectObservable()));
11590
+ this.fetch(path).pipe(first$1()).subscribe();
11641
11591
  }
11642
11592
  return this.getCacheSubjectObservable();
11643
11593
  }
@@ -13432,17 +13382,22 @@ class FirmService {
13432
13382
  this.environment = environment;
13433
13383
  this.firmSubject = new ReplaySubject(1);
13434
13384
  }
13385
+ /**
13386
+ * Register new firm
13387
+ * @param data: firm and firm owner data to register
13388
+ */
13435
13389
  register(data) {
13436
13390
  return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
13437
13391
  .pipe(map((firm) => plainToClass(Firm, firm)));
13438
13392
  }
13439
13393
  get() {
13440
13394
  if (!this.firm) {
13441
- return this.http.get(`${this.environment.apiV2}/firms/current`).pipe(map((firm) => {
13442
- this.firm = plainToClass(Firm, firm);
13395
+ this.http.get(`${this.environment.apiV2}/firms/current`)
13396
+ .pipe(map((firm) => plainToClass(Firm, firm)))
13397
+ .subscribe((firm) => {
13398
+ this.firm = firm;
13443
13399
  this.firmSubject.next(this.firm);
13444
- return this.firm;
13445
- }), switchMap(() => this.firmSubject.asObservable()));
13400
+ });
13446
13401
  }
13447
13402
  return this.firmSubject.asObservable();
13448
13403
  }
@@ -13527,25 +13482,24 @@ class RestService {
13527
13482
  * get list of base class instances directly from backend
13528
13483
  */
13529
13484
  fetch(path = this.apiUrl, cache = true, params = {}) {
13530
- if (this.inFlight$) {
13531
- return this.inFlight$;
13485
+ if (cache) {
13486
+ this.setCache([]);
13532
13487
  }
13533
- this.inFlight$ = this.http.get(path, { params: params })
13488
+ return this.http.get(path, { params: params })
13534
13489
  .pipe(map((response) => {
13535
13490
  const items = response.map((item) => this.createModelInstance(item));
13536
13491
  if (cache) {
13537
13492
  this.setCache(items, true);
13538
13493
  }
13539
13494
  return items;
13540
- }), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
13541
- return this.inFlight$;
13495
+ }));
13542
13496
  }
13543
13497
  /**
13544
13498
  * get cached list of all instances
13545
13499
  */
13546
13500
  get(path = this.apiUrl) {
13547
13501
  if (!this.cache) {
13548
- return this.fetch(path).pipe(first$1(), switchMap(() => this.getCacheSubjectObservable()));
13502
+ this.fetch(path).pipe(first$1()).subscribe();
13549
13503
  }
13550
13504
  return this.getCacheSubjectObservable();
13551
13505
  }
@@ -13694,7 +13648,7 @@ class RestService {
13694
13648
  */
13695
13649
  refreshCache() {
13696
13650
  this.setCache(undefined);
13697
- this.get().subscribe();
13651
+ this.get();
13698
13652
  }
13699
13653
  setCache(data, next = false) {
13700
13654
  this.cache = data;
@@ -15894,9 +15848,6 @@ class TransactionService extends RestService {
15894
15848
  get(path = this.apiUrl) {
15895
15849
  return super.get(path).pipe(map(transactions => this.groupByParent(transactions)));
15896
15850
  }
15897
- getCurrentYear() {
15898
- return super.get().pipe(map((transactions) => new TransactionCollection(transactions).filterByFinancialYear('date').toArray()));
15899
- }
15900
15851
  /**
15901
15852
  * Add single new transaction
15902
15853
  * @param model New Transaction instance for saving
@@ -15914,15 +15865,13 @@ class TransactionService extends RestService {
15914
15865
  * get transactions related with property
15915
15866
  */
15916
15867
  getByPropertyId(propertyId) {
15917
- return this.getCurrentYear()
15918
- .pipe(map((transactions) => transactions.filter((transaction) => transaction.property?.id === propertyId)));
15868
+ return this.get().pipe(map((transactions) => transactions.filter((transaction) => transaction.property?.id === propertyId)));
15919
15869
  }
15920
15870
  /**
15921
15871
  * get list of transactions with tank type 'Work'
15922
15872
  */
15923
15873
  getWorkTransactions() {
15924
- return this.getCurrentYear()
15925
- .pipe(map((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
15874
+ return this.get().pipe(map((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
15926
15875
  }
15927
15876
  /**
15928
15877
  * Get list of property holding costs (transactions related to vacant land property)
@@ -16150,6 +16099,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
16150
16099
  }]
16151
16100
  }] });
16152
16101
 
16102
+ /**
16103
+ * invoice-related transactions from all years except the current user's financialYear
16104
+ * invoices can be paid through different years and require transactions from all years
16105
+ * we exclude the current year to optimize performance
16106
+ * (no need to update cache in this service, cause only current year transactions can be changed)
16107
+ * (we take the current year from TransactionService)
16108
+ */
16109
+ class InvoiceTransactionsService extends RestService$1 {
16110
+ constructor() {
16111
+ super(...arguments);
16112
+ this.modelClass = Transaction;
16113
+ this.collectionClass = TransactionCollection;
16114
+ this.endpointUri = 'invoices/transactions';
16115
+ this.disabledMethods = ['post', 'postBatch', 'put', 'putBatch', 'delete', 'deleteBatch'];
16116
+ }
16117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: InvoiceTransactionsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
16118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: InvoiceTransactionsService, providedIn: 'root' }); }
16119
+ }
16120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: InvoiceTransactionsService, decorators: [{
16121
+ type: Injectable,
16122
+ args: [{
16123
+ providedIn: 'root'
16124
+ }]
16125
+ }] });
16126
+
16153
16127
  // @TODO Artem: implement cache and extend rest?
16154
16128
  class YoutubeService {
16155
16129
  static { this.googleUrl = `https://www.googleapis.com/youtube/v3/playlistItems?part=snippet`; }
@@ -16555,7 +16529,7 @@ class UserService extends RestService$1 {
16555
16529
  localStorage.setItem('userId', this.getCacheFirst().id.toString());
16556
16530
  localStorage.setItem('financialYear', this.getCacheFirst().financialYear.toString());
16557
16531
  localStorage.setItem('roles', JSON.stringify(this.getCacheFirst().roles));
16558
- // localStorage.setItem('timezone', JSON.stringify(this.getCacheFirst().clientDetails.timezone));
16532
+ // localStorage.setItem('timeZone', this.getCacheFirst().clientDetails?.timezone);
16559
16533
  return users;
16560
16534
  }));
16561
16535
  }
@@ -16604,14 +16578,6 @@ class UserService extends RestService$1 {
16604
16578
  this.setCache([Object.assign(this.getCacheFirst(), { photo: photoUrl })], true);
16605
16579
  }));
16606
16580
  }
16607
- addRoles(roles = []) {
16608
- const user = this.getCacheFirst();
16609
- if (!user) {
16610
- return;
16611
- }
16612
- user.roles = [...new Set([...user.roles || [], ...roles])];
16613
- this.setCache([user], true);
16614
- }
16615
16581
  createBasiq() {
16616
16582
  return this.http.post(`${this.environment.apiV2}/basiq/user`, {})
16617
16583
  .pipe(map((basiqId) => {
@@ -16624,18 +16590,15 @@ class UserService extends RestService$1 {
16624
16590
  user.blacklistSetupItems.push(item);
16625
16591
  return this.put(user);
16626
16592
  }
16627
- restoreSetupItem(item) {
16628
- const user = clone(this.getCacheFirst());
16629
- remove(user.blacklistSetupItems, (i) => i.id === item.id);
16630
- return this.put(user);
16631
- }
16632
16593
  /**
16633
16594
  * Update cache when user's service subscription is updated
16634
16595
  */
16635
16596
  listenServiceSubscriptionUpdated() {
16636
- this.listenCSE(ServiceSubscription, (subscriptions) => {
16637
- const subscriptionCollection = new ServiceSubscriptionCollection(subscriptions);
16638
- this.addRoles(subscriptionCollection.getRoles());
16597
+ this.listenCSE(ServiceSubscription, (response) => {
16598
+ // @TODO vik test and remove
16599
+ setTimeout(() => {
16600
+ this.refreshCache();
16601
+ }, 2000);
16639
16602
  }, ['post', 'put']);
16640
16603
  }
16641
16604
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: UserService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -19260,6 +19223,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19260
19223
  }]
19261
19224
  }], ctorParameters: () => [] });
19262
19225
 
19226
+ var SetupItemTypeEnum;
19227
+ (function (SetupItemTypeEnum) {
19228
+ SetupItemTypeEnum[SetupItemTypeEnum["CLIENT"] = 1] = "CLIENT";
19229
+ SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 2] = "EMPLOYEE";
19230
+ })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
19231
+
19263
19232
  class SetupItemService extends RestService$1 {
19264
19233
  constructor() {
19265
19234
  super(...arguments);
@@ -19283,19 +19252,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19283
19252
  * Checks required steps and their completion
19284
19253
  */
19285
19254
  class AccountSetupService {
19286
- constructor(setupItemService, propertyService, incomeSourceService, bankConnectionService, bankAccountsService, loanService, allocationRuleService, transactionAllocationService, vehicleClaimService, homeOfficeClaimService, transactionService, depreciationService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService, sharesightDetailsService, propertyShareService) {
19255
+ constructor(setupItemService, propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService) {
19287
19256
  this.setupItemService = setupItemService;
19288
19257
  this.propertyService = propertyService;
19289
19258
  this.incomeSourceService = incomeSourceService;
19290
- this.bankConnectionService = bankConnectionService;
19291
19259
  this.bankAccountsService = bankAccountsService;
19292
- this.loanService = loanService;
19293
- this.allocationRuleService = allocationRuleService;
19294
19260
  this.transactionAllocationService = transactionAllocationService;
19295
19261
  this.vehicleClaimService = vehicleClaimService;
19296
- this.homeOfficeClaimService = homeOfficeClaimService;
19297
19262
  this.transactionService = transactionService;
19298
- this.depreciationService = depreciationService;
19299
19263
  this.soleBusinessService = soleBusinessService;
19300
19264
  this.holdingService = holdingService;
19301
19265
  this.userService = userService;
@@ -19304,110 +19268,101 @@ class AccountSetupService {
19304
19268
  this.employeeService = employeeService;
19305
19269
  this.employeeInviteService = employeeInviteService;
19306
19270
  this.firmService = firmService;
19307
- this.sharesightDetailsService = sharesightDetailsService;
19308
- this.propertyShareService = propertyShareService;
19309
19271
  }
19310
19272
  /**
19311
19273
  * Get list of account setup items for current user/firm
19312
19274
  */
19313
- get(property) {
19314
- // @TODO it takes time for user to update, makes sense to subscribe to serviceSubscription instead
19315
- return combineLatest([this.setupItemService.get(), this.userService.getFirst()]).pipe(switchMap(([items, user]) => {
19275
+ get(type) {
19276
+ return combineLatest([
19277
+ this.setupItemService.get(),
19278
+ this.userService.getFirst()
19279
+ ])
19280
+ .pipe(mergeMap(([items, user]) => {
19281
+ this.items = items;
19316
19282
  this.user = user;
19317
- this.items = items.getByUser(user);
19318
- return this.setItemsStatus(property);
19283
+ return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
19319
19284
  }));
19320
19285
  }
19321
- setItemsStatus(property) {
19322
- const itemsById = this.items.indexBy('id');
19323
- const requests = pick({
19324
- // firm
19325
- [AccountSetupItemsEnum.FIRM_DETAILS]: this.getFirms(),
19326
- [AccountSetupItemsEnum.FIRM_EMPLOYEES]: this.getEmployees(),
19327
- [AccountSetupItemsEnum.FIRM_CLIENTS]: this.getClients(),
19328
- // work
19329
- [AccountSetupItemsEnum.WORK_SALARY]: this.getIncomeSources(true),
19330
- [AccountSetupItemsEnum.WORK_OTHER_INCOME]: this.getIncomeSources(false),
19331
- [AccountSetupItemsEnum.WORK_VEHICLE_CLAIM]: this.getVehicleClaims(false),
19332
- [AccountSetupItemsEnum.WORK_HOME_OFFICE]: this.getHomeOfficeClaims(false),
19333
- [AccountSetupItemsEnum.WORK_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.WORK),
19334
- [AccountSetupItemsEnum.WORK_DEPRECIATION]: this.getDepreciations(TankTypeEnum.WORK),
19335
- // properties
19336
- [AccountSetupItemsEnum.PROPERTY]: this.propertyService.getArray(),
19337
- [AccountSetupItemsEnum.PROPERTIES]: this.propertyService.getArray().pipe(map(properties => properties.slice(1))),
19338
- [AccountSetupItemsEnum.PROPERTIES_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.PROPERTY),
19339
- // sole
19340
- [AccountSetupItemsEnum.SOLE_BUSINESS]: this.soleBusinessService.getArray(),
19341
- [AccountSetupItemsEnum.SOLE_BUSINESSES]: this.soleBusinessService.getArray().pipe(map(businesses => businesses.slice(1))),
19342
- [AccountSetupItemsEnum.SOLE_VEHICLE_CLAIM]: this.getVehicleClaims(true),
19343
- [AccountSetupItemsEnum.SOLE_HOME_OFFICE]: this.getHomeOfficeClaims(true),
19344
- [AccountSetupItemsEnum.SOLE_DEPRECIATION]: this.getDepreciations(TankTypeEnum.SOLE),
19345
- [AccountSetupItemsEnum.SOLE_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.SOLE),
19346
- // holding
19347
- [AccountSetupItemsEnum.HOLDING_TRADE]: this.holdingService.getArray(),
19348
- [AccountSetupItemsEnum.HOLDING_INTEGRATION]: this.getSharesightDetails(true),
19349
- // bankAccount
19350
- [AccountSetupItemsEnum.BANK_CONNECTION]: this.bankConnectionService.getArray(),
19351
- [AccountSetupItemsEnum.BANK_ACCOUNT]: this.getBankAccounts(),
19352
- [AccountSetupItemsEnum.BANK_ALLOCATION]: this.transactionAllocationService.get(),
19353
- [AccountSetupItemsEnum.BANK_RULE]: this.allocationRuleService.getArray(),
19354
- [AccountSetupItemsEnum.BANK_BORROWING_EXPENSE]: this.getBorrowingExpenses(),
19355
- }, this.items.getIds());
19356
- // property
19357
- if (property) {
19358
- requests[AccountSetupItemsEnum.PROPERTY_CAPITAL_COST] = this.getProperties(property).pipe(map(properties => properties.filter(property => !!property.capitalCosts)));
19359
- requests[AccountSetupItemsEnum.PROPERTY_RENT_INCOME] = this.getTransactions(property).pipe(map(transactions => new TransactionCollection(transactions).filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)));
19360
- requests[AccountSetupItemsEnum.PROPERTY_DEPRECIATION] = this.getDepreciations(TankTypeEnum.PROPERTY, property);
19361
- requests[AccountSetupItemsEnum.PROPERTY_CO_OWNER] = this.getCoOwners(property);
19362
- }
19363
- const batch = Object.keys(requests).map(id => this.setItemStatus(itemsById.get(id), requests[id]));
19364
- if (!batch.length) {
19365
- return of(new AccountSetupItemCollection([]));
19286
+ getClientItems$() {
19287
+ const batch = [];
19288
+ if (this.user.hasRoles(UserRolesEnum.WORK_TANK)) {
19289
+ batch.push(
19290
+ // Salary item is completed when user added salary income source
19291
+ this.setItemStatus(this.items.findBy('isSalary', true), this.getIncomeSources(true)),
19292
+ // Other income is a part of work tank, completed when user added at least one other income source
19293
+ this.setItemStatus(this.items.findBy('isOtherIncome', true), this.getIncomeSources()));
19294
+ }
19295
+ // Rental income item is completed when user added at least one property
19296
+ if (this.user.hasRoles(UserRolesEnum.PROPERTY_TANK)) {
19297
+ batch.push(this.setItemStatus(this.items.findBy('isProperty', true), this.propertyService.getArray()));
19298
+ }
19299
+ // Sole business item is completed when user added at least one business
19300
+ if (this.user.hasRoles(UserRolesEnum.SOLE_TANK)) {
19301
+ batch.push(this.setItemStatus(this.items.findBy('isSoleBusiness', true), this.soleBusinessService.getArray()));
19302
+ }
19303
+ // holdings item is completed when user added at least one holding
19304
+ if (this.user.hasRoles(UserRolesEnum.HOLDING_TANK)) {
19305
+ batch.push(this.setItemStatus(this.items.findBy('isHoldings', true), this.holdingService.getArray()));
19306
+ }
19307
+ if (this.user.hasRoles([UserRolesEnum.WORK_TANK, UserRolesEnum.PROPERTY_TANK, UserRolesEnum.SOLE_TANK])) {
19308
+ // Bank feeds item is completed when user added at least one bank account (basiq or manual)
19309
+ batch.push(this.getBankFeedsItem());
19310
+ // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
19311
+ batch.push(this.getLogbookItem());
19312
+ // Allocation item is completed when user added at least one transaction allocation
19313
+ batch.push(this.setItemStatus(this.items.findBy('isTransactionAllocate', true), this.transactionAllocationService.get()));
19366
19314
  }
19367
19315
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
19368
19316
  }
19317
+ getFirmItems$() {
19318
+ const batch = [];
19319
+ batch.push(
19320
+ // Firm Details item is completed when user filled some general information
19321
+ this.firmService.get().pipe(map((firm) => {
19322
+ const item = this.items.findBy('isFirmDetails', true);
19323
+ if (firm.address || firm.phone || firm.file || firm.shortName) {
19324
+ item.isCompleted = true;
19325
+ }
19326
+ return item;
19327
+ })));
19328
+ batch.push(
19329
+ // Invite team item is completed when firm has employees except firm owner or firm has invited employees.
19330
+ this.setItemStatus(this.items.findBy('isInviteTeam', true), combineLatest([
19331
+ this.employeeService.getArray(),
19332
+ this.employeeInviteService.getArray()
19333
+ ]).pipe(map(([employees, invites]) => {
19334
+ // we always have at least 1 employee (firm owner), so we should check other employees except firm owner
19335
+ if (employees.length) {
19336
+ employees.splice(0, 1);
19337
+ }
19338
+ return [...employees, ...invites];
19339
+ }))));
19340
+ batch.push(
19341
+ // Invite clients item is completed when firm has clients or firm has invited clients.
19342
+ this.setItemStatus(this.items.findBy('isInviteClients', true), combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()])
19343
+ .pipe(map(([movements, invites]) => [...movements.toArray(), ...invites.toArray()]))));
19344
+ return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items).sortBy('id', 'asc')));
19345
+ }
19369
19346
  /**
19370
19347
  * Check and update isCompleted flag for passed item
19371
19348
  */
19372
19349
  setItemStatus(item, request) {
19373
19350
  return request.pipe(map((result) => {
19374
19351
  const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
19375
- item.status = isSkipped ? AccountSetupItemStatusEnum.SKIPPED : result.length ? AccountSetupItemStatusEnum.ACHIEVED : AccountSetupItemStatusEnum.PENDING;
19352
+ if (result.length || isSkipped) {
19353
+ item.isCompleted = true;
19354
+ }
19355
+ else {
19356
+ item.isCompleted = false;
19357
+ }
19376
19358
  return item;
19377
19359
  }));
19378
19360
  }
19379
- getProperties(property) {
19380
- return this.propertyService.getBy('id', property.id).pipe(map(properties => properties));
19381
- }
19382
- getTransactions(property) {
19383
- return this.transactionService.getByPropertyId(property.id);
19384
- }
19385
- getCoOwners(property) {
19386
- return this.propertyShareService.getArrayBy('property.id', property.id).pipe(map(shares => shares.slice(1)));
19387
- }
19388
- /**
19389
- * AccountSetupItemsEnum.FIRM_CLIENTS completed when client invites sent or accepted
19390
- */
19391
- getClients() {
19392
- return combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()]).pipe(map(([movements, invites]) => [...movements, ...invites]));
19393
- }
19394
- /**
19395
- * AccountSetupItemsEnum.FIRM_EMPLOYEES completed when employee invites sent or accepted
19396
- */
19397
- getEmployees() {
19398
- return combineLatest([this.employeeService.getArray(), this.employeeInviteService.getArray()]).pipe(map(([employees, invites]) => [...employees.slice(1), ...invites]));
19399
- }
19400
- /**
19401
- * AccountSetupItemsEnum.FIRM_DETAILS when firm data filled
19402
- */
19403
- getFirms() {
19404
- return this.firmService.get().pipe(map((firm) => [firm].filter(firm => firm.address || firm.phone || firm.file || firm.shortName)));
19405
- }
19406
19361
  /**
19407
19362
  * @TODO Alex: work with collection when services refactored
19408
19363
  * @TODO Vik: waiting for income sources refactoring
19409
19364
  */
19410
- getIncomeSources(isSalary) {
19365
+ getIncomeSources(isSalary = false) {
19411
19366
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
19412
19367
  const collection = new IncomeSourceCollection(incomeSources);
19413
19368
  if (isSalary) {
@@ -19416,31 +19371,31 @@ class AccountSetupService {
19416
19371
  return collection.items.filter((incomeSource) => incomeSource.isOtherIncome());
19417
19372
  }));
19418
19373
  }
19419
- getVehicleClaims(isBusiness) {
19420
- return this.vehicleClaimService.getArray().pipe(map((claims => claims.filter(claim => isBusiness ? claim.business : !claim.business))));
19421
- }
19422
- getHomeOfficeClaims(isBusiness) {
19423
- return this.homeOfficeClaimService.getArray().pipe(map(claims => claims.filter(claim => isBusiness ? claim.business : !claim.business)));
19424
- }
19425
- getBankAccounts(tankType) {
19426
- return this.bankAccountsService.get().pipe(map((bankAccounts => bankAccounts.getByTankType(tankType).toArray())));
19427
- }
19428
- getDepreciations(tankType, property) {
19429
- return this.depreciationService.get().pipe(map(depreciations => {
19430
- depreciations = depreciations.getByTankType(tankType);
19431
- if (property) {
19432
- depreciations.filterBy('property.id', property.id);
19374
+ /**
19375
+ * Show logbook item when user has at least 1 vehicle transaction
19376
+ */
19377
+ getLogbookItem() {
19378
+ return this.transactionService.get()
19379
+ .pipe(
19380
+ // @TODO Alex: remove map when services start work with collections
19381
+ map((transactions) => new TransactionCollection(transactions)), mergeMap((transactions) => {
19382
+ if (transactions.getVehicleTransactions().length) {
19383
+ return this.setItemStatus(this.items.findBy('isWorkLogbook', true), this.vehicleClaimService.getArray());
19433
19384
  }
19434
- return depreciations.toArray();
19385
+ return of(null);
19435
19386
  }));
19436
19387
  }
19437
- getSharesightDetails(importEnabled) {
19438
- return this.sharesightDetailsService.getArray().pipe(map(details => details.filter(detail => importEnabled ? detail.importEnabled : detail.exportEnabled)));
19439
- }
19440
- getBorrowingExpenses() {
19441
- return this.loanService.getArray().pipe(map(loans => loans.filter(loan => !!loan.borrowingExpenses.length)));
19388
+ /**
19389
+ * Hide bank feeds item when user has only holding tank
19390
+ */
19391
+ getBankFeedsItem() {
19392
+ const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
19393
+ if (!intersection(bankFeedsRoles, this.user.roles).length) {
19394
+ return of(null);
19395
+ }
19396
+ return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
19442
19397
  }
19443
- 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 }); }
19398
+ 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 }); }
19444
19399
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, providedIn: 'root' }); }
19445
19400
  }
19446
19401
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, decorators: [{
@@ -19448,7 +19403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19448
19403
  args: [{
19449
19404
  providedIn: 'root'
19450
19405
  }]
19451
- }], 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 }] });
19406
+ }], 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 }] });
19452
19407
 
19453
19408
  class AdblockService {
19454
19409
  constructor() {
@@ -20585,7 +20540,6 @@ const ENDPOINTS = {
20585
20540
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
20586
20541
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
20587
20542
  SERVICE_SUBSCRIPTIONS_POST: new Endpoint('POST', '\\/service-subscriptions'),
20588
- SERVICE_SUBSCRIPTIONS_TRIAL_POST: new Endpoint('POST', '\\/service-subscriptions/'),
20589
20543
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
20590
20544
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
20591
20545
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
@@ -20642,7 +20596,6 @@ const ENDPOINTS = {
20642
20596
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
20643
20597
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
20644
20598
  TRANSACTIONS_ALLOCATIONS_BATCH_DELETE: new Endpoint('POST', '\\/transaction-allocations\\/delete'),
20645
- TRIAL_POST: new Endpoint('POST', '\\/trial'),
20646
20599
  USER_CONFIRMATION_POST: new Endpoint('POST', '\\/users\\/confirmation'),
20647
20600
  USER_CONFIRMATION_RESEND_POST: new Endpoint('POST', '\\/users\\/confirmation\\/resend'),
20648
20601
  USER_CURRENT_GET: new Endpoint('GET', '\\/users\\/current'),
@@ -25501,5 +25454,5 @@ var MessagesEnum;
25501
25454
  * Generated bundle index. Do not edit.
25502
25455
  */
25503
25456
 
25504
- 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, 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 };
25457
+ 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 };
25505
25458
  //# sourceMappingURL=taxtank-core.mjs.map