taxtank-core 1.0.19 → 1.0.22

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 (25) hide show
  1. package/fesm2022/taxtank-core.mjs +190 -240
  2. package/fesm2022/taxtank-core.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/src/lib/collections/account-setup-item.collection.d.ts +1 -5
  5. package/src/lib/collections/bank-account.collection.d.ts +1 -1
  6. package/src/lib/collections/subscription/service-subscription.collection.d.ts +0 -1
  7. package/src/lib/db/Enums/index.d.ts +0 -1
  8. package/src/lib/db/Enums/setup-item-type.enum.d.ts +2 -8
  9. package/src/lib/db/Models/property/property.d.ts +0 -1
  10. package/src/lib/db/Models/setup-item.d.ts +1 -4
  11. package/src/lib/forms/transaction/allocation-rule-transaction.form.d.ts +1 -0
  12. package/src/lib/models/account-setup/account-setup-item.d.ts +12 -5
  13. package/src/lib/models/account-setup/account-setup-items.enum.d.ts +11 -29
  14. package/src/lib/models/chart-accounts/chart-accounts.d.ts +2 -2
  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/user/user.service.d.ts +0 -1
  24. package/src/lib/models/account-setup/account-setup-item-status.enum.d.ts +0 -5
  25. 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
@@ -1637,8 +1620,8 @@ class FinancialYear {
1637
1620
  return +localStorage.getItem('financialYear');
1638
1621
  }
1639
1622
  constructor(date) {
1640
- this.yearStartDate = '-07-01T00:00:00Z';
1641
- this.yearEndDate = '-06-30T23:59:59Z';
1623
+ this.yearStartDate = '-07-01 00:00:00';
1624
+ this.yearEndDate = '-06-30 23:59:59';
1642
1625
  if (date) {
1643
1626
  this.year = date instanceof Date ? FinancialYear.toFinYear(date) : date;
1644
1627
  }
@@ -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);
@@ -6546,11 +6518,13 @@ class Transaction extends Transaction$1 {
6546
6518
  setParent(transaction) {
6547
6519
  this.description = this.chartAccounts.name;
6548
6520
  this.date = transaction.date;
6549
- this.claimPercent = transaction.claimPercent;
6550
6521
  this.property = transaction.property;
6551
6522
  this.loan = transaction.loan;
6552
6523
  this.incomeSource = transaction.incomeSource;
6553
6524
  this.business = transaction.business;
6525
+ if (this.claimPercent > 0) {
6526
+ this.claimPercent = transaction.claimPercent;
6527
+ }
6554
6528
  }
6555
6529
  isEditable() {
6556
6530
  return !ChartAccounts.systemList.includes(this.chartAccounts.id);
@@ -8582,9 +8556,6 @@ class ServiceSubscriptionCollection extends Collection {
8582
8556
  filterByRole(role) {
8583
8557
  return this.filter((subscription) => subscription.roles.includes(role));
8584
8558
  }
8585
- findByRole(role) {
8586
- return this.filterByRole(role).first;
8587
- }
8588
8559
  hasPropertyTank() {
8589
8560
  return !!this.getItems().propertiesItem;
8590
8561
  }
@@ -8990,25 +8961,11 @@ class AllocationRuleCollection extends Collection {
8990
8961
  class AccountSetupItemCollection extends Collection {
8991
8962
  constructor(items) {
8992
8963
  super(compact(items));
8993
- this.sortBy('status', 'asc');
8964
+ this.sortBy('isCompleted', 'asc');
8994
8965
  }
8995
8966
  isCompleted() {
8996
8967
  return this.filterBy('isCompleted', true).length === this.length;
8997
8968
  }
8998
- getByUser(user) {
8999
- return this.filter(item => user.hasRoles(item.roles));
9000
- }
9001
- getScore() {
9002
- return this.sumBy('score');
9003
- }
9004
- setUrlId(id) {
9005
- this.items.forEach(item => {
9006
- if (!item.url.includes(':id')) {
9007
- return;
9008
- }
9009
- item.url = item.url.replace(':id', id);
9010
- });
9011
- }
9012
8969
  }
9013
8970
 
9014
8971
  /**
@@ -9068,7 +9025,7 @@ class BankAccountCollection extends Collection {
9068
9025
  * Get Collection of bank accounts by tank type
9069
9026
  */
9070
9027
  getByTankType(tankType) {
9071
- return new BankAccountCollection(tankType ? this.items.filter((bankAccount) => bankAccount.tankType === tankType) : this.items);
9028
+ return new BankAccountCollection(this.items.filter((bankAccount) => bankAccount.tankType === tankType));
9072
9029
  }
9073
9030
  /**
9074
9031
  * Get list of all bank account properties
@@ -11580,9 +11537,8 @@ let RestService$1 = class RestService extends DataService {
11580
11537
  * Refresh cache with actual backend data
11581
11538
  */
11582
11539
  refreshCache() {
11583
- // todo why not fetch?
11584
11540
  this.cache = undefined;
11585
- this.get().subscribe();
11541
+ this.get();
11586
11542
  }
11587
11543
  /**
11588
11544
  * perform a shallow copy of the emitted data to make it immutable
@@ -11594,17 +11550,17 @@ let RestService$1 = class RestService extends DataService {
11594
11550
  * Get data from backend and fill the cache
11595
11551
  */
11596
11552
  fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11597
- if (this.inFlight$) {
11598
- return this.inFlight$;
11553
+ if (cache) {
11554
+ // Set cache as empty collection to avoid multiple requests before cache filled
11555
+ this.setCache([]);
11599
11556
  }
11600
- this.inFlight$ = this.http.get(path, queryParams)
11557
+ return this.http.get(path, queryParams)
11601
11558
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11602
11559
  if (cache) {
11603
11560
  this.setCache(response, true);
11604
11561
  }
11605
11562
  return this.createCollectionInstance(this.collectionClass, response);
11606
- }), catchError((error) => this.handleError(error)), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
11607
- return this.inFlight$;
11563
+ }), catchError((error) => this.handleError(error)));
11608
11564
  }
11609
11565
  fetchFirst(queryParams = {}) {
11610
11566
  return this.fetch(this.apiUrl, false, { params: queryParams })
@@ -11613,11 +11569,10 @@ let RestService$1 = class RestService extends DataService {
11613
11569
  get(path = this.apiUrl) {
11614
11570
  this.handleAccessError('get');
11615
11571
  if (!this.hasRoles()) {
11616
- // @TODO it completes observable and doesn't watch anymore
11617
11572
  return of(this.createCollectionInstance(this.collectionClass, []));
11618
11573
  }
11619
11574
  if (!this.cache) {
11620
- return this.fetch(path).pipe(switchMap(() => this.getCacheSubjectObservable()));
11575
+ this.fetch(path).pipe(first$1()).subscribe();
11621
11576
  }
11622
11577
  return this.getCacheSubjectObservable();
11623
11578
  }
@@ -13412,17 +13367,22 @@ class FirmService {
13412
13367
  this.environment = environment;
13413
13368
  this.firmSubject = new ReplaySubject(1);
13414
13369
  }
13370
+ /**
13371
+ * Register new firm
13372
+ * @param data: firm and firm owner data to register
13373
+ */
13415
13374
  register(data) {
13416
13375
  return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
13417
13376
  .pipe(map((firm) => plainToClass(Firm, firm)));
13418
13377
  }
13419
13378
  get() {
13420
13379
  if (!this.firm) {
13421
- return this.http.get(`${this.environment.apiV2}/firms/current`).pipe(map((firm) => {
13422
- this.firm = plainToClass(Firm, firm);
13380
+ this.http.get(`${this.environment.apiV2}/firms/current`)
13381
+ .pipe(map((firm) => plainToClass(Firm, firm)))
13382
+ .subscribe((firm) => {
13383
+ this.firm = firm;
13423
13384
  this.firmSubject.next(this.firm);
13424
- return this.firm;
13425
- }), switchMap(() => this.firmSubject.asObservable()));
13385
+ });
13426
13386
  }
13427
13387
  return this.firmSubject.asObservable();
13428
13388
  }
@@ -13507,25 +13467,24 @@ class RestService {
13507
13467
  * get list of base class instances directly from backend
13508
13468
  */
13509
13469
  fetch(path = this.apiUrl, cache = true, params = {}) {
13510
- if (this.inFlight$) {
13511
- return this.inFlight$;
13470
+ if (cache) {
13471
+ this.setCache([]);
13512
13472
  }
13513
- this.inFlight$ = this.http.get(path, { params: params })
13473
+ return this.http.get(path, { params: params })
13514
13474
  .pipe(map((response) => {
13515
13475
  const items = response.map((item) => this.createModelInstance(item));
13516
13476
  if (cache) {
13517
13477
  this.setCache(items, true);
13518
13478
  }
13519
13479
  return items;
13520
- }), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
13521
- return this.inFlight$;
13480
+ }));
13522
13481
  }
13523
13482
  /**
13524
13483
  * get cached list of all instances
13525
13484
  */
13526
13485
  get(path = this.apiUrl) {
13527
13486
  if (!this.cache) {
13528
- return this.fetch(path).pipe(first$1(), switchMap(() => this.getCacheSubjectObservable()));
13487
+ this.fetch(path).pipe(first$1()).subscribe();
13529
13488
  }
13530
13489
  return this.getCacheSubjectObservable();
13531
13490
  }
@@ -13674,7 +13633,7 @@ class RestService {
13674
13633
  */
13675
13634
  refreshCache() {
13676
13635
  this.setCache(undefined);
13677
- this.get().subscribe();
13636
+ this.get();
13678
13637
  }
13679
13638
  setCache(data, next = false) {
13680
13639
  this.cache = data;
@@ -16535,6 +16494,7 @@ class UserService extends RestService$1 {
16535
16494
  localStorage.setItem('userId', this.getCacheFirst().id.toString());
16536
16495
  localStorage.setItem('financialYear', this.getCacheFirst().financialYear.toString());
16537
16496
  localStorage.setItem('roles', JSON.stringify(this.getCacheFirst().roles));
16497
+ localStorage.setItem('timezone', JSON.stringify(this.getCacheFirst().clientDetails.timezone));
16538
16498
  return users;
16539
16499
  }));
16540
16500
  }
@@ -16595,11 +16555,6 @@ class UserService extends RestService$1 {
16595
16555
  user.blacklistSetupItems.push(item);
16596
16556
  return this.put(user);
16597
16557
  }
16598
- restoreSetupItem(item) {
16599
- const user = clone(this.getCacheFirst());
16600
- remove(user.blacklistSetupItems, (i) => i.id === item.id);
16601
- return this.put(user);
16602
- }
16603
16558
  /**
16604
16559
  * Update cache when user's service subscription is updated
16605
16560
  */
@@ -19233,6 +19188,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19233
19188
  }]
19234
19189
  }], ctorParameters: () => [] });
19235
19190
 
19191
+ var SetupItemTypeEnum;
19192
+ (function (SetupItemTypeEnum) {
19193
+ SetupItemTypeEnum[SetupItemTypeEnum["CLIENT"] = 1] = "CLIENT";
19194
+ SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 2] = "EMPLOYEE";
19195
+ })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
19196
+
19236
19197
  class SetupItemService extends RestService$1 {
19237
19198
  constructor() {
19238
19199
  super(...arguments);
@@ -19256,19 +19217,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19256
19217
  * Checks required steps and their completion
19257
19218
  */
19258
19219
  class AccountSetupService {
19259
- constructor(setupItemService, propertyService, incomeSourceService, bankConnectionService, bankAccountsService, loanService, allocationRuleService, transactionAllocationService, vehicleClaimService, homeOfficeClaimService, transactionService, depreciationService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService, sharesightDetailsService, propertyShareService) {
19220
+ constructor(setupItemService, propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService) {
19260
19221
  this.setupItemService = setupItemService;
19261
19222
  this.propertyService = propertyService;
19262
19223
  this.incomeSourceService = incomeSourceService;
19263
- this.bankConnectionService = bankConnectionService;
19264
19224
  this.bankAccountsService = bankAccountsService;
19265
- this.loanService = loanService;
19266
- this.allocationRuleService = allocationRuleService;
19267
19225
  this.transactionAllocationService = transactionAllocationService;
19268
19226
  this.vehicleClaimService = vehicleClaimService;
19269
- this.homeOfficeClaimService = homeOfficeClaimService;
19270
19227
  this.transactionService = transactionService;
19271
- this.depreciationService = depreciationService;
19272
19228
  this.soleBusinessService = soleBusinessService;
19273
19229
  this.holdingService = holdingService;
19274
19230
  this.userService = userService;
@@ -19277,110 +19233,101 @@ class AccountSetupService {
19277
19233
  this.employeeService = employeeService;
19278
19234
  this.employeeInviteService = employeeInviteService;
19279
19235
  this.firmService = firmService;
19280
- this.sharesightDetailsService = sharesightDetailsService;
19281
- this.propertyShareService = propertyShareService;
19282
19236
  }
19283
19237
  /**
19284
19238
  * Get list of account setup items for current user/firm
19285
19239
  */
19286
- get(property) {
19287
- // @TODO it takes time for user to update, makes sense to subscribe to serviceSubscription instead
19288
- return combineLatest([this.setupItemService.get(), this.userService.getFirst()]).pipe(switchMap(([items, user]) => {
19240
+ get(type) {
19241
+ return combineLatest([
19242
+ this.setupItemService.get(),
19243
+ this.userService.getFirst()
19244
+ ])
19245
+ .pipe(mergeMap(([items, user]) => {
19246
+ this.items = items;
19289
19247
  this.user = user;
19290
- this.items = items.getByUser(user);
19291
- return this.setItemsStatus(property);
19248
+ return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
19292
19249
  }));
19293
19250
  }
19294
- setItemsStatus(property) {
19295
- const itemsById = this.items.indexBy('id');
19296
- const requests = pick({
19297
- // firm
19298
- [AccountSetupItemsEnum.FIRM_DETAILS]: this.getFirms(),
19299
- [AccountSetupItemsEnum.FIRM_EMPLOYEES]: this.getEmployees(),
19300
- [AccountSetupItemsEnum.FIRM_CLIENTS]: this.getClients(),
19301
- // work
19302
- [AccountSetupItemsEnum.WORK_SALARY]: this.getIncomeSources(true),
19303
- [AccountSetupItemsEnum.WORK_OTHER_INCOME]: this.getIncomeSources(false),
19304
- [AccountSetupItemsEnum.WORK_VEHICLE_CLAIM]: this.getVehicleClaims(false),
19305
- [AccountSetupItemsEnum.WORK_HOME_OFFICE]: this.getHomeOfficeClaims(false),
19306
- [AccountSetupItemsEnum.WORK_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.WORK),
19307
- [AccountSetupItemsEnum.WORK_DEPRECIATION]: this.getDepreciations(TankTypeEnum.WORK),
19308
- // properties
19309
- [AccountSetupItemsEnum.PROPERTY]: this.propertyService.getArray(),
19310
- [AccountSetupItemsEnum.PROPERTIES]: this.propertyService.getArray().pipe(map(properties => properties.slice(1))),
19311
- [AccountSetupItemsEnum.PROPERTIES_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.PROPERTY),
19312
- // sole
19313
- [AccountSetupItemsEnum.SOLE_BUSINESS]: this.soleBusinessService.getArray(),
19314
- [AccountSetupItemsEnum.SOLE_BUSINESSES]: this.soleBusinessService.getArray().pipe(map(businesses => businesses.slice(1))),
19315
- [AccountSetupItemsEnum.SOLE_VEHICLE_CLAIM]: this.getVehicleClaims(true),
19316
- [AccountSetupItemsEnum.SOLE_HOME_OFFICE]: this.getHomeOfficeClaims(true),
19317
- [AccountSetupItemsEnum.SOLE_DEPRECIATION]: this.getDepreciations(TankTypeEnum.SOLE),
19318
- [AccountSetupItemsEnum.SOLE_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.SOLE),
19319
- // holding
19320
- [AccountSetupItemsEnum.HOLDING_TRADE]: this.holdingService.getArray(),
19321
- [AccountSetupItemsEnum.HOLDING_INTEGRATION]: this.getSharesightDetails(true),
19322
- // bankAccount
19323
- [AccountSetupItemsEnum.BANK_CONNECTION]: this.bankConnectionService.getArray(),
19324
- [AccountSetupItemsEnum.BANK_ACCOUNT]: this.getBankAccounts(),
19325
- [AccountSetupItemsEnum.BANK_ALLOCATION]: this.transactionAllocationService.get(),
19326
- [AccountSetupItemsEnum.BANK_RULE]: this.allocationRuleService.getArray(),
19327
- [AccountSetupItemsEnum.BANK_BORROWING_EXPENSE]: this.getBorrowingExpenses(),
19328
- }, this.items.getIds());
19329
- // property
19330
- if (property) {
19331
- requests[AccountSetupItemsEnum.PROPERTY_CAPITAL_COST] = this.getProperties(property).pipe(map(properties => properties.filter(property => !!property.capitalCosts)));
19332
- requests[AccountSetupItemsEnum.PROPERTY_RENT_INCOME] = this.getTransactions(property).pipe(map(transactions => new TransactionCollection(transactions).filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)));
19333
- requests[AccountSetupItemsEnum.PROPERTY_DEPRECIATION] = this.getDepreciations(TankTypeEnum.PROPERTY, property);
19334
- requests[AccountSetupItemsEnum.PROPERTY_CO_OWNER] = this.getCoOwners(property);
19335
- }
19336
- const batch = Object.keys(requests).map(id => this.setItemStatus(itemsById.get(id), requests[id]));
19337
- if (!batch.length) {
19338
- return of(new AccountSetupItemCollection([]));
19251
+ getClientItems$() {
19252
+ const batch = [];
19253
+ if (this.user.hasRoles(UserRolesEnum.WORK_TANK)) {
19254
+ batch.push(
19255
+ // Salary item is completed when user added salary income source
19256
+ this.setItemStatus(this.items.findBy('isSalary', true), this.getIncomeSources(true)),
19257
+ // Other income is a part of work tank, completed when user added at least one other income source
19258
+ this.setItemStatus(this.items.findBy('isOtherIncome', true), this.getIncomeSources()));
19259
+ }
19260
+ // Rental income item is completed when user added at least one property
19261
+ if (this.user.hasRoles(UserRolesEnum.PROPERTY_TANK)) {
19262
+ batch.push(this.setItemStatus(this.items.findBy('isProperty', true), this.propertyService.getArray()));
19263
+ }
19264
+ // Sole business item is completed when user added at least one business
19265
+ if (this.user.hasRoles(UserRolesEnum.SOLE_TANK)) {
19266
+ batch.push(this.setItemStatus(this.items.findBy('isSoleBusiness', true), this.soleBusinessService.getArray()));
19267
+ }
19268
+ // holdings item is completed when user added at least one holding
19269
+ if (this.user.hasRoles(UserRolesEnum.HOLDING_TANK)) {
19270
+ batch.push(this.setItemStatus(this.items.findBy('isHoldings', true), this.holdingService.getArray()));
19271
+ }
19272
+ if (this.user.hasRoles([UserRolesEnum.WORK_TANK, UserRolesEnum.PROPERTY_TANK, UserRolesEnum.SOLE_TANK])) {
19273
+ // Bank feeds item is completed when user added at least one bank account (basiq or manual)
19274
+ batch.push(this.getBankFeedsItem());
19275
+ // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
19276
+ batch.push(this.getLogbookItem());
19277
+ // Allocation item is completed when user added at least one transaction allocation
19278
+ batch.push(this.setItemStatus(this.items.findBy('isTransactionAllocate', true), this.transactionAllocationService.get()));
19339
19279
  }
19340
19280
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
19341
19281
  }
19282
+ getFirmItems$() {
19283
+ const batch = [];
19284
+ batch.push(
19285
+ // Firm Details item is completed when user filled some general information
19286
+ this.firmService.get().pipe(map((firm) => {
19287
+ const item = this.items.findBy('isFirmDetails', true);
19288
+ if (firm.address || firm.phone || firm.file || firm.shortName) {
19289
+ item.isCompleted = true;
19290
+ }
19291
+ return item;
19292
+ })));
19293
+ batch.push(
19294
+ // Invite team item is completed when firm has employees except firm owner or firm has invited employees.
19295
+ this.setItemStatus(this.items.findBy('isInviteTeam', true), combineLatest([
19296
+ this.employeeService.getArray(),
19297
+ this.employeeInviteService.getArray()
19298
+ ]).pipe(map(([employees, invites]) => {
19299
+ // we always have at least 1 employee (firm owner), so we should check other employees except firm owner
19300
+ if (employees.length) {
19301
+ employees.splice(0, 1);
19302
+ }
19303
+ return [...employees, ...invites];
19304
+ }))));
19305
+ batch.push(
19306
+ // Invite clients item is completed when firm has clients or firm has invited clients.
19307
+ this.setItemStatus(this.items.findBy('isInviteClients', true), combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()])
19308
+ .pipe(map(([movements, invites]) => [...movements.toArray(), ...invites.toArray()]))));
19309
+ return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items).sortBy('id', 'asc')));
19310
+ }
19342
19311
  /**
19343
19312
  * Check and update isCompleted flag for passed item
19344
19313
  */
19345
19314
  setItemStatus(item, request) {
19346
19315
  return request.pipe(map((result) => {
19347
19316
  const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
19348
- item.status = isSkipped ? AccountSetupItemStatusEnum.SKIPPED : result.length ? AccountSetupItemStatusEnum.ACHIEVED : AccountSetupItemStatusEnum.PENDING;
19317
+ if (result.length || isSkipped) {
19318
+ item.isCompleted = true;
19319
+ }
19320
+ else {
19321
+ item.isCompleted = false;
19322
+ }
19349
19323
  return item;
19350
19324
  }));
19351
19325
  }
19352
- getProperties(property) {
19353
- return this.propertyService.getBy('id', property.id).pipe(map(properties => properties));
19354
- }
19355
- getTransactions(property) {
19356
- return this.transactionService.getByPropertyId(property.id);
19357
- }
19358
- getCoOwners(property) {
19359
- return this.propertyShareService.getArrayBy('property.id', property.id).pipe(map(shares => shares.slice(1)));
19360
- }
19361
- /**
19362
- * AccountSetupItemsEnum.FIRM_CLIENTS completed when client invites sent or accepted
19363
- */
19364
- getClients() {
19365
- return combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()]).pipe(map(([movements, invites]) => [...movements, ...invites]));
19366
- }
19367
- /**
19368
- * AccountSetupItemsEnum.FIRM_EMPLOYEES completed when employee invites sent or accepted
19369
- */
19370
- getEmployees() {
19371
- return combineLatest([this.employeeService.getArray(), this.employeeInviteService.getArray()]).pipe(map(([employees, invites]) => [...employees.slice(1), ...invites]));
19372
- }
19373
- /**
19374
- * AccountSetupItemsEnum.FIRM_DETAILS when firm data filled
19375
- */
19376
- getFirms() {
19377
- return this.firmService.get().pipe(map((firm) => [firm].filter(firm => firm.address || firm.phone || firm.file || firm.shortName)));
19378
- }
19379
19326
  /**
19380
19327
  * @TODO Alex: work with collection when services refactored
19381
19328
  * @TODO Vik: waiting for income sources refactoring
19382
19329
  */
19383
- getIncomeSources(isSalary) {
19330
+ getIncomeSources(isSalary = false) {
19384
19331
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
19385
19332
  const collection = new IncomeSourceCollection(incomeSources);
19386
19333
  if (isSalary) {
@@ -19389,31 +19336,31 @@ class AccountSetupService {
19389
19336
  return collection.items.filter((incomeSource) => incomeSource.isOtherIncome());
19390
19337
  }));
19391
19338
  }
19392
- getVehicleClaims(isBusiness) {
19393
- return this.vehicleClaimService.getArray().pipe(map((claims => claims.filter(claim => isBusiness ? claim.business : !claim.business))));
19394
- }
19395
- getHomeOfficeClaims(isBusiness) {
19396
- return this.homeOfficeClaimService.getArray().pipe(map(claims => claims.filter(claim => isBusiness ? claim.business : !claim.business)));
19397
- }
19398
- getBankAccounts(tankType) {
19399
- return this.bankAccountsService.get().pipe(map((bankAccounts => bankAccounts.getByTankType(tankType).toArray())));
19400
- }
19401
- getDepreciations(tankType, property) {
19402
- return this.depreciationService.get().pipe(map(depreciations => {
19403
- depreciations = depreciations.getByTankType(tankType);
19404
- if (property) {
19405
- depreciations.filterBy('property.id', property.id);
19339
+ /**
19340
+ * Show logbook item when user has at least 1 vehicle transaction
19341
+ */
19342
+ getLogbookItem() {
19343
+ return this.transactionService.get()
19344
+ .pipe(
19345
+ // @TODO Alex: remove map when services start work with collections
19346
+ map((transactions) => new TransactionCollection(transactions)), mergeMap((transactions) => {
19347
+ if (transactions.getVehicleTransactions().length) {
19348
+ return this.setItemStatus(this.items.findBy('isWorkLogbook', true), this.vehicleClaimService.getArray());
19406
19349
  }
19407
- return depreciations.toArray();
19350
+ return of(null);
19408
19351
  }));
19409
19352
  }
19410
- getSharesightDetails(importEnabled) {
19411
- return this.sharesightDetailsService.getArray().pipe(map(details => details.filter(detail => importEnabled ? detail.importEnabled : detail.exportEnabled)));
19412
- }
19413
- getBorrowingExpenses() {
19414
- return this.loanService.getArray().pipe(map(loans => loans.filter(loan => !!loan.borrowingExpenses.length)));
19353
+ /**
19354
+ * Hide bank feeds item when user has only holding tank
19355
+ */
19356
+ getBankFeedsItem() {
19357
+ const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
19358
+ if (!intersection(bankFeedsRoles, this.user.roles).length) {
19359
+ return of(null);
19360
+ }
19361
+ return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
19415
19362
  }
19416
- 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 }); }
19363
+ 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 }); }
19417
19364
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, providedIn: 'root' }); }
19418
19365
  }
19419
19366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, decorators: [{
@@ -19421,7 +19368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19421
19368
  args: [{
19422
19369
  providedIn: 'root'
19423
19370
  }]
19424
- }], 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 }] });
19371
+ }], 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 }] });
19425
19372
 
19426
19373
  class AdblockService {
19427
19374
  constructor() {
@@ -20558,7 +20505,6 @@ const ENDPOINTS = {
20558
20505
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
20559
20506
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
20560
20507
  SERVICE_SUBSCRIPTIONS_POST: new Endpoint('POST', '\\/service-subscriptions'),
20561
- SERVICE_SUBSCRIPTIONS_TRIAL_POST: new Endpoint('POST', '\\/service-subscriptions/'),
20562
20508
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
20563
20509
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
20564
20510
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
@@ -20615,7 +20561,6 @@ const ENDPOINTS = {
20615
20561
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
20616
20562
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
20617
20563
  TRANSACTIONS_ALLOCATIONS_BATCH_DELETE: new Endpoint('POST', '\\/transaction-allocations\\/delete'),
20618
- TRIAL_POST: new Endpoint('POST', '\\/trial'),
20619
20564
  USER_CONFIRMATION_POST: new Endpoint('POST', '\\/users\\/confirmation'),
20620
20565
  USER_CONFIRMATION_RESEND_POST: new Endpoint('POST', '\\/users\\/confirmation\\/resend'),
20621
20566
  USER_CURRENT_GET: new Endpoint('GET', '\\/users\\/current'),
@@ -22716,9 +22661,10 @@ class BasReportForm extends AbstractForm {
22716
22661
  // prefill income/expense data based on transactions/depreciations filtered by specified date
22717
22662
  combineLatest([this.get('dateFrom').valueChanges, this.get('dateTo').valueChanges])
22718
22663
  .subscribe(([dateFrom, dateTo]) => {
22719
- // const from = clone(dateFrom).setHours(0,0,0,0);
22720
- const filteredTransactions = transactions.filterByRange('date', dateFrom, dateTo);
22721
- const filteredDepreciations = depreciations.filterByRange('date', dateFrom, dateTo);
22664
+ const from = clone(dateFrom).setHours(0, 0, 0);
22665
+ const to = clone(dateTo).setHours(23, 59, 59);
22666
+ const filteredTransactions = transactions.filterByRange('date', from, to);
22667
+ const filteredDepreciations = depreciations.filterByRange('date', from, to);
22722
22668
  const incomeTransactions = filteredTransactions.getIncomeTransactions();
22723
22669
  const expenseTransactions = new TransactionCollection(filteredTransactions.getExpenseTransactions().toArray(), filteredDepreciations.toArray());
22724
22670
  // all sole income claimed as 100%
@@ -24294,9 +24240,13 @@ class AllocationRuleTransactionForm extends AbstractForm {
24294
24240
  amount: new UntypedFormControl(null, Validators.required)
24295
24241
  }));
24296
24242
  }
24243
+ buildTransactions(transaction) {
24244
+ return transaction.childTransactions.map(childTransaction => Object.assign(childTransaction, { claimPercent: (transaction.claimPercent * childTransaction.chartAccounts?.taxablePercent) / 100 }));
24245
+ }
24297
24246
  submit() {
24298
24247
  const data = {
24299
- metaFields: this.metaFieldsArray.controls.map((metaFieldForm) => metaFieldForm.submit())
24248
+ metaFields: this.metaFieldsArray.controls.map((metaFieldForm) => metaFieldForm.submit()),
24249
+ childTransactions: this.buildTransactions(this.currentValue)
24300
24250
  };
24301
24251
  return super.submit(data, true);
24302
24252
  }
@@ -25468,5 +25418,5 @@ var MessagesEnum;
25468
25418
  * Generated bundle index. Do not edit.
25469
25419
  */
25470
25420
 
25471
- 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 };
25421
+ 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, 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 };
25472
25422
  //# sourceMappingURL=taxtank-core.mjs.map