taxtank-core 1.0.36 → 1.0.38

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 (41) hide show
  1. package/README.md +5 -5
  2. package/fesm2022/taxtank-core-common.mjs +1 -1
  3. package/fesm2022/taxtank-core-common.mjs.map +1 -1
  4. package/fesm2022/taxtank-core.mjs +221 -374
  5. package/fesm2022/taxtank-core.mjs.map +1 -1
  6. package/package.json +1 -1
  7. package/public-api.d.ts +0 -2
  8. package/src/lib/collections/account-setup-item.collection.d.ts +1 -5
  9. package/src/lib/collections/bank-account.collection.d.ts +1 -1
  10. package/src/lib/collections/subscription/service-subscription.collection.d.ts +0 -6
  11. package/src/lib/collections/tax-summary/tax-return-categories.const.d.ts +0 -3
  12. package/src/lib/db/Enums/index.d.ts +0 -1
  13. package/src/lib/db/Enums/setup-item-type.enum.d.ts +2 -9
  14. package/src/lib/db/Enums/tax-return/tax-return-category-list.enum.d.ts +3 -4
  15. package/src/lib/db/Enums/tax-summary-section.enum.d.ts +3 -4
  16. package/src/lib/db/Models/property/property.d.ts +0 -1
  17. package/src/lib/db/Models/setup-item.d.ts +1 -4
  18. package/src/lib/db/Models/sole/sole-business.d.ts +1 -0
  19. package/src/lib/forms/abstract.form.d.ts +0 -3
  20. package/src/lib/forms/transaction/index.d.ts +0 -1
  21. package/src/lib/models/account-setup/account-setup-item.d.ts +12 -5
  22. package/src/lib/models/account-setup/account-setup-items.enum.d.ts +11 -30
  23. package/src/lib/models/chart-accounts/chart-accounts.d.ts +2 -2
  24. package/src/lib/models/index.d.ts +0 -1
  25. package/src/lib/models/tax-summary/tax-summary.d.ts +5 -5
  26. package/src/lib/models/user/user.d.ts +1 -2
  27. package/src/lib/services/account-setup/account-setup.service.d.ts +15 -32
  28. package/src/lib/services/http/firm/firm.service.d.ts +4 -0
  29. package/src/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts +1 -2
  30. package/src/lib/services/http/rest/rest-old.service.d.ts +0 -1
  31. package/src/lib/services/http/rest/rest.service.d.ts +0 -1
  32. package/src/lib/services/http/setup-item/setup-item.service.d.ts +1 -1
  33. package/src/lib/services/http/subscription/service-subscription/subscription.service.d.ts +0 -1
  34. package/src/lib/services/http/user/user.service.d.ts +2 -3
  35. package/src/lib/db/Enums/youtube-videos.enum.d.ts +0 -15
  36. package/src/lib/forms/transaction/holding/holding-expense.form.d.ts +0 -9
  37. package/src/lib/models/account-setup/account-setup-item-status.enum.d.ts +0 -5
  38. package/src/lib/models/account-setup/index.d.ts +0 -3
  39. package/src/lib/resolvers/business/business.resolver.d.ts +0 -11
  40. package/src/lib/resolvers/business/sole-details.resolver.d.ts +0 -11
  41. package/src/lib/resolvers/index.d.ts +0 -2
@@ -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)
@@ -1313,10 +1308,13 @@ var TaxReturnCategoryListEnum;
1313
1308
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DIVIDENDS"] = 6] = "DIVIDENDS";
1314
1309
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SHARE_SCHEMES"] = 35] = "SHARE_SCHEMES";
1315
1310
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GROSS_RENT"] = 8] = "GROSS_RENT";
1311
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PARTNERSHIPS_TRUSTS"] = 13] = "PARTNERSHIPS_TRUSTS";
1316
1312
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PARTNERSHIPS"] = 36] = "PARTNERSHIPS";
1317
1313
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TRUSTS"] = 37] = "TRUSTS";
1318
1314
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["PSI_SBE_INCOME"] = 14] = "PSI_SBE_INCOME";
1315
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["SOLE_TRADER_BUSINESS_INCOME"] = 38] = "SOLE_TRADER_BUSINESS_INCOME";
1319
1316
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["CAPITAL_GAINS"] = 15] = "CAPITAL_GAINS";
1317
+ TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["FOREIGN_SOURCE_INCOME"] = 16] = "FOREIGN_SOURCE_INCOME";
1320
1318
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["BONUSES_FROM_LIFE_INSURANCE"] = 17] = "BONUSES_FROM_LIFE_INSURANCE";
1321
1319
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES"] = 39] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES";
1322
1320
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["OTHER_INCOME"] = 40] = "OTHER_INCOME";
@@ -1343,7 +1341,6 @@ var TaxReturnCategoryListEnum;
1343
1341
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DEPRECIATION_EXPENSES"] = 56] = "DEPRECIATION_EXPENSES";
1344
1342
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["MOTOR_VEHICLE_EXPENSES"] = 57] = "MOTOR_VEHICLE_EXPENSES";
1345
1343
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["ALL_OTHER_EXPENSES"] = 58] = "ALL_OTHER_EXPENSES";
1346
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["WORK_RELATED_DEPRECIATION"] = 69] = "WORK_RELATED_DEPRECIATION";
1347
1344
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["GROSS_TAX_PAYABLE"] = 19] = "GROSS_TAX_PAYABLE";
1348
1345
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_ON_TAXABLE_INCOME"] = 20] = "TAX_ON_TAXABLE_INCOME";
1349
1346
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["MEDICARE"] = 21] = "MEDICARE";
@@ -1359,9 +1356,6 @@ var TaxReturnCategoryListEnum;
1359
1356
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_PAYABLE"] = 28] = "TAX_PAYABLE";
1360
1357
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["BUSINESS_INCOME_OR_LOSS"] = 59] = "BUSINESS_INCOME_OR_LOSS";
1361
1358
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DEFERRED_BUSINESS_LOSSES"] = 60] = "DEFERRED_BUSINESS_LOSSES";
1362
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_OFFSET_LOW"] = 61] = "TAX_OFFSET_LOW";
1363
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["tAX_OFFSET_MIDDLE"] = 62] = "tAX_OFFSET_MIDDLE";
1364
- TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["TAX_OFFSET_SOLE"] = 63] = "TAX_OFFSET_SOLE";
1365
1359
  TaxReturnCategoryListEnum[TaxReturnCategoryListEnum["DEFERRED_BUSINESS_LOSSES_FROM_PRIOR_YEAR"] = 64] = "DEFERRED_BUSINESS_LOSSES_FROM_PRIOR_YEAR";
1366
1360
  })(TaxReturnCategoryListEnum || (TaxReturnCategoryListEnum = {}));
1367
1361
 
@@ -1460,19 +1454,6 @@ var HomeOfficeClaimMethodEnum;
1460
1454
  HomeOfficeClaimMethodEnum[HomeOfficeClaimMethodEnum["OCCUPANCY"] = 3] = "OCCUPANCY";
1461
1455
  })(HomeOfficeClaimMethodEnum || (HomeOfficeClaimMethodEnum = {}));
1462
1456
 
1463
- var SetupItemTypeEnum;
1464
- (function (SetupItemTypeEnum) {
1465
- SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 0] = "EMPLOYEE";
1466
- SetupItemTypeEnum[SetupItemTypeEnum["WORK"] = 1] = "WORK";
1467
- SetupItemTypeEnum[SetupItemTypeEnum["PROPERTIES"] = 2] = "PROPERTIES";
1468
- SetupItemTypeEnum[SetupItemTypeEnum["PROPERTY"] = 3] = "PROPERTY";
1469
- SetupItemTypeEnum[SetupItemTypeEnum["BUSINESSES"] = 4] = "BUSINESSES";
1470
- SetupItemTypeEnum[SetupItemTypeEnum["HOLDING"] = 5] = "HOLDING";
1471
- SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNTS"] = 6] = "BANK_ACCOUNTS";
1472
- SetupItemTypeEnum[SetupItemTypeEnum["BANK_ACCOUNT"] = 7] = "BANK_ACCOUNT";
1473
- SetupItemTypeEnum[SetupItemTypeEnum["BUSINESS"] = 8] = "BUSINESS";
1474
- })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
1475
-
1476
1457
  /**
1477
1458
  * @TODO not used for now
1478
1459
  * Bank subclass, average bank response time for some operations in milliseconds
@@ -3276,7 +3257,7 @@ var ChartAccountsValues = [
3276
3257
  financialYear: 2025,
3277
3258
  startDate: null,
3278
3259
  endDate: null,
3279
- value: 0.67,
3260
+ value: 0.7,
3280
3261
  unitOfMeasure: "hours",
3281
3262
  createdAt: "2024-06-25 00:00:00",
3282
3263
  updatedAt: "2024-06-25 00:00:00"
@@ -3289,7 +3270,7 @@ var ChartAccountsValues = [
3289
3270
  financialYear: 2025,
3290
3271
  startDate: null,
3291
3272
  endDate: null,
3292
- value: 0.67,
3273
+ value: 0.7,
3293
3274
  unitOfMeasure: "hours",
3294
3275
  createdAt: "2024-06-25 00:00:00",
3295
3276
  updatedAt: "2024-06-25 00:00:00"
@@ -3315,7 +3296,7 @@ var ChartAccountsValues = [
3315
3296
  financialYear: 2025,
3316
3297
  startDate: null,
3317
3298
  endDate: null,
3318
- value: 0.67,
3299
+ value: 0.7,
3319
3300
  unitOfMeasure: "hours",
3320
3301
  createdAt: "2024-06-25 00:00:00",
3321
3302
  updatedAt: "2024-06-25 00:00:00"
@@ -5386,73 +5367,61 @@ __decorate([
5386
5367
  class SetupItem extends AbstractModel {
5387
5368
  }
5388
5369
 
5389
- var AccountSetupItemStatusEnum;
5390
- (function (AccountSetupItemStatusEnum) {
5391
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["PENDING"] = 1] = "PENDING";
5392
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["ACHIEVED"] = 2] = "ACHIEVED";
5393
- AccountSetupItemStatusEnum[AccountSetupItemStatusEnum["SKIPPED"] = 3] = "SKIPPED";
5394
- })(AccountSetupItemStatusEnum || (AccountSetupItemStatusEnum = {}));
5395
-
5396
- class AccountSetupItem extends SetupItem {
5397
- get isPending() {
5398
- return this.status === AccountSetupItemStatusEnum.PENDING;
5399
- }
5400
- get isAchieved() {
5401
- return this.status === AccountSetupItemStatusEnum.SKIPPED;
5402
- }
5403
- get isCompleted() {
5404
- return [AccountSetupItemStatusEnum.ACHIEVED, AccountSetupItemStatusEnum.SKIPPED].includes(this.status);
5405
- }
5406
- get isSkipped() {
5407
- return this.status === AccountSetupItemStatusEnum.SKIPPED;
5408
- }
5409
- }
5410
-
5411
5370
  /**
5412
- * TODO remove
5371
+ * Enum list of all possible account setup items ids. Using with [ACCOUNT_SETUP_ITEMS]{@link ACCOUNT_SETUP_ITEMS}
5372
+ * @TODO Vik/Nikita: Do we need to generate it from backend? If some ids changed?
5413
5373
  */
5414
5374
  var AccountSetupItemsEnum;
5415
5375
  (function (AccountSetupItemsEnum) {
5416
- // firm
5417
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5418
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_EMPLOYEES"] = 10] = "FIRM_EMPLOYEES";
5419
- AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_CLIENTS"] = 11] = "FIRM_CLIENTS";
5420
- // work
5421
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_SALARY"] = 1] = "WORK_SALARY";
5422
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_OTHER_INCOME"] = 2] = "WORK_OTHER_INCOME";
5423
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_VEHICLE_CLAIM"] = 5] = "WORK_VEHICLE_CLAIM";
5424
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_HOME_OFFICE"] = 13] = "WORK_HOME_OFFICE";
5425
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_BANK_ACCOUNT"] = 14] = "WORK_BANK_ACCOUNT";
5426
- AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_DEPRECIATION"] = 15] = "WORK_DEPRECIATION";
5427
- // properties
5376
+ AccountSetupItemsEnum[AccountSetupItemsEnum["SALARY"] = 1] = "SALARY";
5377
+ AccountSetupItemsEnum[AccountSetupItemsEnum["OTHER_INCOME"] = 2] = "OTHER_INCOME";
5428
5378
  AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY"] = 3] = "PROPERTY";
5429
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES"] = 29] = "PROPERTIES";
5430
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTIES_BANK_ACCOUNT"] = 30] = "PROPERTIES_BANK_ACCOUNT";
5431
- // property
5432
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CAPITAL_COST"] = 17] = "PROPERTY_CAPITAL_COST";
5433
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_RENT_INCOME"] = 18] = "PROPERTY_RENT_INCOME";
5434
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_DEPRECIATION"] = 19] = "PROPERTY_DEPRECIATION";
5435
- AccountSetupItemsEnum[AccountSetupItemsEnum["PROPERTY_CO_OWNER"] = 20] = "PROPERTY_CO_OWNER";
5436
- // sole
5379
+ AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_FEEDS"] = 4] = "BANK_FEEDS";
5380
+ AccountSetupItemsEnum[AccountSetupItemsEnum["WORK_LOGBOOK"] = 5] = "WORK_LOGBOOK";
5381
+ AccountSetupItemsEnum[AccountSetupItemsEnum["TRANSACTION_ALLOCATE"] = 6] = "TRANSACTION_ALLOCATE";
5437
5382
  AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESS"] = 7] = "SOLE_BUSINESS";
5438
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BUSINESSES"] = 33] = "SOLE_BUSINESSES";
5439
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_VEHICLE_CLAIM"] = 12] = "SOLE_VEHICLE_CLAIM";
5440
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_HOME_OFFICE"] = 21] = "SOLE_HOME_OFFICE";
5441
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_DEPRECIATION"] = 22] = "SOLE_DEPRECIATION";
5442
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_BANK_ACCOUNT"] = 23] = "SOLE_BANK_ACCOUNT";
5443
- AccountSetupItemsEnum[AccountSetupItemsEnum["SOLE_LOGO"] = 24] = "SOLE_LOGO";
5444
- // holding
5445
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_TRADE"] = 8] = "HOLDING_TRADE";
5446
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_INTEGRATION"] = 25] = "HOLDING_INTEGRATION";
5447
- AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDING_REPORTS"] = 36] = "HOLDING_REPORTS";
5448
- // bank accounts
5449
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_CONNECTION"] = 4] = "BANK_CONNECTION";
5450
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ACCOUNT"] = 26] = "BANK_ACCOUNT";
5451
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ALLOCATION"] = 6] = "BANK_ALLOCATION";
5452
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_RULE"] = 27] = "BANK_RULE";
5453
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_BORROWING_EXPENSE"] = 28] = "BANK_BORROWING_EXPENSE";
5383
+ AccountSetupItemsEnum[AccountSetupItemsEnum["HOLDINGS"] = 8] = "HOLDINGS";
5384
+ AccountSetupItemsEnum[AccountSetupItemsEnum["FIRM_DETAILS"] = 9] = "FIRM_DETAILS";
5385
+ AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_TEAM"] = 10] = "INVITE_TEAM";
5386
+ AccountSetupItemsEnum[AccountSetupItemsEnum["INVITE_CLIENTS"] = 11] = "INVITE_CLIENTS";
5454
5387
  })(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
5455
5388
 
5389
+ class AccountSetupItem extends SetupItem {
5390
+ get isSalary() {
5391
+ return this.id === AccountSetupItemsEnum.SALARY;
5392
+ }
5393
+ get isOtherIncome() {
5394
+ return this.id === AccountSetupItemsEnum.OTHER_INCOME;
5395
+ }
5396
+ get isProperty() {
5397
+ return this.id === AccountSetupItemsEnum.PROPERTY;
5398
+ }
5399
+ get isBankFeeds() {
5400
+ return this.id === AccountSetupItemsEnum.BANK_FEEDS;
5401
+ }
5402
+ get isWorkLogbook() {
5403
+ return this.id === AccountSetupItemsEnum.WORK_LOGBOOK;
5404
+ }
5405
+ get isTransactionAllocate() {
5406
+ return this.id === AccountSetupItemsEnum.TRANSACTION_ALLOCATE;
5407
+ }
5408
+ get isSoleBusiness() {
5409
+ return this.id === AccountSetupItemsEnum.SOLE_BUSINESS;
5410
+ }
5411
+ get isHoldings() {
5412
+ return this.id === AccountSetupItemsEnum.HOLDINGS;
5413
+ }
5414
+ get isFirmDetails() {
5415
+ return this.id === AccountSetupItemsEnum.FIRM_DETAILS;
5416
+ }
5417
+ get isInviteTeam() {
5418
+ return this.id === AccountSetupItemsEnum.INVITE_TEAM;
5419
+ }
5420
+ get isInviteClients() {
5421
+ return this.id === AccountSetupItemsEnum.INVITE_CLIENTS;
5422
+ }
5423
+ }
5424
+
5456
5425
  class User extends User$1 {
5457
5426
  constructor() {
5458
5427
  super(...arguments);
@@ -5486,9 +5455,6 @@ class User extends User$1 {
5486
5455
  return '';
5487
5456
  }
5488
5457
  }
5489
- addRoles(roles = []) {
5490
- this.roles = [...new Set([...this.roles, ...roles])];
5491
- }
5492
5458
  /**
5493
5459
  * search roles including hierarchy
5494
5460
  */
@@ -7514,11 +7480,9 @@ var TaxSummarySectionEnum;
7514
7480
  (function (TaxSummarySectionEnum) {
7515
7481
  TaxSummarySectionEnum[TaxSummarySectionEnum["WORK_TANK"] = 1] = "WORK_TANK";
7516
7482
  TaxSummarySectionEnum[TaxSummarySectionEnum["PROPERTY_TANK"] = 2] = "PROPERTY_TANK";
7517
- TaxSummarySectionEnum[TaxSummarySectionEnum["HOLDINGS_TANK"] = 3] = "HOLDINGS_TANK";
7518
- // @TODO vik show it somewhere (it used to be in otherTank)
7519
- TaxSummarySectionEnum[TaxSummarySectionEnum["CAPITAL_GAINS"] = 4] = "CAPITAL_GAINS";
7520
- TaxSummarySectionEnum[TaxSummarySectionEnum["SOLE_TANK"] = 5] = "SOLE_TANK";
7521
- TaxSummarySectionEnum[TaxSummarySectionEnum["SUMMARY"] = 6] = "SUMMARY";
7483
+ TaxSummarySectionEnum[TaxSummarySectionEnum["OTHER_TANK"] = 3] = "OTHER_TANK";
7484
+ TaxSummarySectionEnum[TaxSummarySectionEnum["SOLE_TANK"] = 4] = "SOLE_TANK";
7485
+ TaxSummarySectionEnum[TaxSummarySectionEnum["SUMMARY"] = 5] = "SUMMARY";
7522
7486
  })(TaxSummarySectionEnum || (TaxSummarySectionEnum = {}));
7523
7487
 
7524
7488
  /**
@@ -8574,24 +8538,6 @@ class ServiceSubscriptionCollection extends Collection {
8574
8538
  getPaid() {
8575
8539
  return this.filter((subscription) => !!subscription.stripeId);
8576
8540
  }
8577
- getRoles() {
8578
- const roles = this.items.flatMap((subscription) => subscription.roles);
8579
- if (this.getActive().length) {
8580
- roles.push(UserRolesEnum.SUBSCRIPTION);
8581
- }
8582
- return roles;
8583
- }
8584
- /**
8585
- * search roles including hierarchy
8586
- */
8587
- hasRoles(roles) {
8588
- roles = roles instanceof Array ? roles : [roles];
8589
- if (!roles.length) {
8590
- return true;
8591
- }
8592
- roles = flatten(roles.map((role) => USER_ROLES[role]));
8593
- return !!intersection(this.getRoles(), roles).length;
8594
- }
8595
8541
  getActivePaid() {
8596
8542
  return this.getActive().find((subscription) => !!subscription.stripeId);
8597
8543
  }
@@ -8618,9 +8564,6 @@ class ServiceSubscriptionCollection extends Collection {
8618
8564
  filterByRole(role) {
8619
8565
  return this.filter((subscription) => subscription.roles.includes(role));
8620
8566
  }
8621
- findByRole(role) {
8622
- return this.filterByRole(role).first;
8623
- }
8624
8567
  hasPropertyTank() {
8625
8568
  return !!this.getItems().propertiesItem;
8626
8569
  }
@@ -8725,9 +8668,6 @@ class ReportItemCollection extends Collection {
8725
8668
  }
8726
8669
  }
8727
8670
 
8728
- /**
8729
- * @TODO vik check (tax_return_category/tax_return_item/chart_accounts)
8730
- */
8731
8671
  const TAX_RETURN_CATEGORIES = {
8732
8672
  work: {
8733
8673
  income: [
@@ -8767,17 +8707,17 @@ const TAX_RETURN_CATEGORIES = {
8767
8707
  TaxReturnCategoryListEnum.PLANT_AND_EQUIPMENT
8768
8708
  ]
8769
8709
  },
8770
- holdings: {
8710
+ other: {
8771
8711
  income: [
8772
8712
  TaxReturnCategoryListEnum.GROSS_INTEREST,
8773
8713
  TaxReturnCategoryListEnum.SHARE_SCHEMES,
8774
8714
  TaxReturnCategoryListEnum.PARTNERSHIPS,
8715
+ TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS,
8775
8716
  TaxReturnCategoryListEnum.TRUSTS,
8776
8717
  TaxReturnCategoryListEnum.PSI_SBE_INCOME,
8777
- // @TODO these categories not used anymore, maybe there are replacements (ask Nik)
8778
- // TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
8779
- // TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
8718
+ TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
8780
8719
  TaxReturnCategoryListEnum.CAPITAL_GAINS,
8720
+ TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
8781
8721
  TaxReturnCategoryListEnum.BONUSES_FROM_LIFE_INSURANCE,
8782
8722
  TaxReturnCategoryListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES,
8783
8723
  TaxReturnCategoryListEnum.OTHER_INCOME
@@ -9029,25 +8969,11 @@ class AllocationRuleCollection extends Collection {
9029
8969
  class AccountSetupItemCollection extends Collection {
9030
8970
  constructor(items) {
9031
8971
  super(compact(items));
9032
- this.sortBy('status', 'asc');
8972
+ this.sortBy('isCompleted', 'asc');
9033
8973
  }
9034
8974
  isCompleted() {
9035
8975
  return this.filterBy('isCompleted', true).length === this.length;
9036
8976
  }
9037
- getByUser(user) {
9038
- return this.filter(item => user.hasRoles(item.roles));
9039
- }
9040
- getScore() {
9041
- return this.sumBy('score');
9042
- }
9043
- setUrlId(id) {
9044
- this.items.forEach(item => {
9045
- if (!item.url.includes(':id')) {
9046
- return;
9047
- }
9048
- item.url = item.url.replace(':id', id);
9049
- });
9050
- }
9051
8977
  }
9052
8978
 
9053
8979
  /**
@@ -9107,7 +9033,7 @@ class BankAccountCollection extends Collection {
9107
9033
  * Get Collection of bank accounts by tank type
9108
9034
  */
9109
9035
  getByTankType(tankType) {
9110
- return new BankAccountCollection(tankType ? this.items.filter((bankAccount) => bankAccount.tankType === tankType) : this.items);
9036
+ return new BankAccountCollection(this.items.filter((bankAccount) => bankAccount.tankType === tankType));
9111
9037
  }
9112
9038
  /**
9113
9039
  * Get list of all bank account properties
@@ -11634,9 +11560,8 @@ let RestService$1 = class RestService extends DataService {
11634
11560
  * Refresh cache with actual backend data
11635
11561
  */
11636
11562
  refreshCache() {
11637
- // todo why not fetch?
11638
11563
  this.cache = undefined;
11639
- this.get().subscribe();
11564
+ this.get();
11640
11565
  }
11641
11566
  /**
11642
11567
  * perform a shallow copy of the emitted data to make it immutable
@@ -11648,17 +11573,17 @@ let RestService$1 = class RestService extends DataService {
11648
11573
  * Get data from backend and fill the cache
11649
11574
  */
11650
11575
  fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11651
- if (this.inFlight$ && cache) {
11652
- return this.inFlight$;
11576
+ if (cache) {
11577
+ // Set cache as empty collection to avoid multiple requests before cache filled
11578
+ this.setCache([]);
11653
11579
  }
11654
- this.inFlight$ = this.http.get(path, queryParams)
11580
+ return this.http.get(path, queryParams)
11655
11581
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11656
11582
  if (cache) {
11657
11583
  this.setCache(response, true);
11658
11584
  }
11659
11585
  return this.createCollectionInstance(this.collectionClass, response);
11660
- }), catchError((error) => this.handleError(error)), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
11661
- return this.inFlight$;
11586
+ }), catchError((error) => this.handleError(error)));
11662
11587
  }
11663
11588
  fetchFirst(queryParams = {}) {
11664
11589
  return this.fetch(this.apiUrl, false, { params: queryParams })
@@ -11667,11 +11592,10 @@ let RestService$1 = class RestService extends DataService {
11667
11592
  get(path = this.apiUrl) {
11668
11593
  this.handleAccessError('get');
11669
11594
  if (!this.hasRoles()) {
11670
- // @TODO it completes observable and doesn't watch anymore
11671
11595
  return of(this.createCollectionInstance(this.collectionClass, []));
11672
11596
  }
11673
11597
  if (!this.cache) {
11674
- return this.fetch(path).pipe(switchMap(() => this.getCacheSubjectObservable()));
11598
+ this.fetch(path).pipe(first$1()).subscribe();
11675
11599
  }
11676
11600
  return this.getCacheSubjectObservable();
11677
11601
  }
@@ -13466,17 +13390,22 @@ class FirmService {
13466
13390
  this.environment = environment;
13467
13391
  this.firmSubject = new ReplaySubject(1);
13468
13392
  }
13393
+ /**
13394
+ * Register new firm
13395
+ * @param data: firm and firm owner data to register
13396
+ */
13469
13397
  register(data) {
13470
13398
  return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
13471
13399
  .pipe(map((firm) => plainToClass(Firm, firm)));
13472
13400
  }
13473
13401
  get() {
13474
13402
  if (!this.firm) {
13475
- return this.http.get(`${this.environment.apiV2}/firms/current`).pipe(map((firm) => {
13476
- this.firm = plainToClass(Firm, firm);
13403
+ this.http.get(`${this.environment.apiV2}/firms/current`)
13404
+ .pipe(map((firm) => plainToClass(Firm, firm)))
13405
+ .subscribe((firm) => {
13406
+ this.firm = firm;
13477
13407
  this.firmSubject.next(this.firm);
13478
- return this.firm;
13479
- }), switchMap(() => this.firmSubject.asObservable()));
13408
+ });
13480
13409
  }
13481
13410
  return this.firmSubject.asObservable();
13482
13411
  }
@@ -13561,25 +13490,24 @@ class RestService {
13561
13490
  * get list of base class instances directly from backend
13562
13491
  */
13563
13492
  fetch(path = this.apiUrl, cache = true, params = {}) {
13564
- if (this.inFlight$ && cache) {
13565
- return this.inFlight$;
13493
+ if (cache) {
13494
+ this.setCache([]);
13566
13495
  }
13567
- this.inFlight$ = this.http.get(path, { params: params })
13496
+ return this.http.get(path, { params: params })
13568
13497
  .pipe(map((response) => {
13569
13498
  const items = response.map((item) => this.createModelInstance(item));
13570
13499
  if (cache) {
13571
13500
  this.setCache(items, true);
13572
13501
  }
13573
13502
  return items;
13574
- }), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
13575
- return this.inFlight$;
13503
+ }));
13576
13504
  }
13577
13505
  /**
13578
13506
  * get cached list of all instances
13579
13507
  */
13580
13508
  get(path = this.apiUrl) {
13581
13509
  if (!this.cache) {
13582
- return this.fetch(path).pipe(first$1(), switchMap(() => this.getCacheSubjectObservable()));
13510
+ this.fetch(path).pipe(first$1()).subscribe();
13583
13511
  }
13584
13512
  return this.getCacheSubjectObservable();
13585
13513
  }
@@ -13728,7 +13656,7 @@ class RestService {
13728
13656
  */
13729
13657
  refreshCache() {
13730
13658
  this.setCache(undefined);
13731
- this.get().subscribe();
13659
+ this.get();
13732
13660
  }
13733
13661
  setCache(data, next = false) {
13734
13662
  this.cache = data;
@@ -15200,10 +15128,6 @@ class SubscriptionService extends RestService$1 {
15200
15128
  params: { code }
15201
15129
  }).pipe(map((response) => plainToClass(ServicePromoCode, response)));
15202
15130
  }
15203
- setCache(data, next = false) {
15204
- super.setCache(data, next);
15205
- localStorage.setItem('roles', JSON.stringify(this.cache.getRoles()));
15206
- }
15207
15131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SubscriptionService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
15208
15132
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SubscriptionService, providedIn: 'root' }); }
15209
15133
  }
@@ -15542,7 +15466,7 @@ __decorate([
15542
15466
  return 'taxSummaryWorkTank';
15543
15467
  case TaxSummarySectionEnum.PROPERTY_TANK:
15544
15468
  return 'taxSummaryPropertyTank';
15545
- case TaxSummarySectionEnum.HOLDINGS_TANK:
15469
+ case TaxSummarySectionEnum.OTHER_TANK:
15546
15470
  return 'taxSummaryOtherIncome';
15547
15471
  case TaxSummarySectionEnum.SOLE_TANK:
15548
15472
  return 'taxSummarySoleTank';
@@ -15558,7 +15482,7 @@ __decorate([
15558
15482
  */
15559
15483
  class TaxSummary {
15560
15484
  get sections() {
15561
- return [this.work, this.property, this.holdings, this.sole, this.summary];
15485
+ return [this.work, this.property, this.other, this.sole, this.summary];
15562
15486
  }
15563
15487
  getReportItems(sections) {
15564
15488
  return new ReportItemCollection([].concat(...sections.map((section) => section.items.toArray())));
@@ -15579,26 +15503,26 @@ class TaxSummary {
15579
15503
  return this.workNetTotal - Math.abs(taxWithheld);
15580
15504
  }
15581
15505
  get income() {
15582
- return this.getReportItems([this.work, this.property, this.sole, this.holdings]).sumByCategories([
15506
+ return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
15583
15507
  ...TAX_RETURN_CATEGORIES.work.income,
15584
15508
  ...TAX_RETURN_CATEGORIES.property.income,
15585
15509
  ...TAX_RETURN_CATEGORIES.sole.income,
15586
- ...TAX_RETURN_CATEGORIES.holdings.income,
15510
+ ...TAX_RETURN_CATEGORIES.other.income,
15587
15511
  ]);
15588
15512
  }
15589
15513
  get expense() {
15590
- return this.getReportItems([this.work, this.property, this.sole, this.holdings]).sumByCategories([
15514
+ return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
15591
15515
  ...TAX_RETURN_CATEGORIES.work.expenses,
15592
15516
  ...TAX_RETURN_CATEGORIES.property.expenses,
15593
15517
  ...TAX_RETURN_CATEGORIES.sole.expenses,
15594
- ...TAX_RETURN_CATEGORIES.holdings.expenses,
15518
+ ...TAX_RETURN_CATEGORIES.other.expenses,
15595
15519
  ]);
15596
15520
  }
15597
15521
  get netCash() {
15598
- return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.holdingsNetCash;
15522
+ return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.otherNetCash;
15599
15523
  }
15600
15524
  get netTotal() {
15601
- return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.holdingsNetTotal;
15525
+ return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.otherNetTotal;
15602
15526
  }
15603
15527
  /**
15604
15528
  * Work Net Total = Income - expenses - interest
@@ -15630,26 +15554,26 @@ class TaxSummary {
15630
15554
  return this.propertyNetCash - Math.abs(depreciation) - Math.abs(borrowingExpenses);
15631
15555
  }
15632
15556
  /**
15633
- * Holdings Net Cash = gross income – expenses – tax withheld - tax instalments
15557
+ * Other Net Cash = gross income – expenses – tax withheld - tax instalments
15634
15558
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
15635
15559
  */
15636
- get holdingsNetCash() {
15637
- const income = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.income, TaxSummarySectionEnum.HOLDINGS_TANK);
15638
- const expenses = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.expenses, TaxSummarySectionEnum.HOLDINGS_TANK);
15639
- const taxWithheld = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_WITHHELD], TaxSummarySectionEnum.HOLDINGS_TANK);
15640
- const taxInstalments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.HOLDINGS_TANK);
15560
+ get otherNetCash() {
15561
+ const income = this.other.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.income, TaxSummarySectionEnum.OTHER_TANK);
15562
+ const expenses = this.other.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.expenses, TaxSummarySectionEnum.OTHER_TANK);
15563
+ const taxWithheld = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_WITHHELD], TaxSummarySectionEnum.OTHER_TANK);
15564
+ const taxInstalments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.OTHER_TANK);
15641
15565
  return income - Math.abs(expenses) - Math.abs(taxWithheld) - Math.abs(taxInstalments);
15642
15566
  }
15643
15567
  /**
15644
- * Holding Net Total = Gross income - expenses + tax offsets + tax instalments + franking credits
15568
+ * Other Net Total = Gross income - expenses + tax offsets + tax instalments + franking credits
15645
15569
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
15646
15570
  */
15647
- get holdingsNetTotal() {
15648
- const income = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.income, TaxSummarySectionEnum.HOLDINGS_TANK);
15649
- const expenses = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.expenses, TaxSummarySectionEnum.HOLDINGS_TANK);
15571
+ get otherNetTotal() {
15572
+ const income = this.other.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.income, TaxSummarySectionEnum.OTHER_TANK);
15573
+ const expenses = this.other.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.other.expenses, TaxSummarySectionEnum.OTHER_TANK);
15650
15574
  const taxOffsets = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_OFFSETS], TaxSummarySectionEnum.SUMMARY);
15651
- const taxInstallments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.HOLDINGS_TANK);
15652
- const frankingCredits = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.FRANKING_CREDITS], TaxSummarySectionEnum.HOLDINGS_TANK);
15575
+ const taxInstallments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.OTHER_TANK);
15576
+ const frankingCredits = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.FRANKING_CREDITS], TaxSummarySectionEnum.OTHER_TANK);
15653
15577
  return income - Math.abs(expenses) + Math.abs(taxOffsets) + Math.abs(taxInstallments) + Math.abs(frankingCredits);
15654
15578
  }
15655
15579
  /**
@@ -15691,7 +15615,7 @@ __decorate([
15691
15615
  ], TaxSummary.prototype, "property", void 0);
15692
15616
  __decorate([
15693
15617
  Type(() => TaxSummarySection)
15694
- ], TaxSummary.prototype, "holdings", void 0);
15618
+ ], TaxSummary.prototype, "other", void 0);
15695
15619
  __decorate([
15696
15620
  Type(() => TaxSummarySection)
15697
15621
  ], TaxSummary.prototype, "sole", void 0);
@@ -16609,10 +16533,11 @@ class UserService extends RestService$1 {
16609
16533
  }
16610
16534
  fetch() {
16611
16535
  return super.fetch(`${this.apiUrl}/current`).pipe(map((users) => {
16612
- const user = this.getCacheFirst();
16613
16536
  // @TODO vik use separated service to handle global user storage
16614
- localStorage.setItem('userId', user.id.toString());
16615
- localStorage.setItem('financialYear', user.financialYear.toString());
16537
+ localStorage.setItem('userId', this.getCacheFirst().id.toString());
16538
+ localStorage.setItem('financialYear', this.getCacheFirst().financialYear.toString());
16539
+ localStorage.setItem('roles', JSON.stringify(this.getCacheFirst().roles));
16540
+ // localStorage.setItem('timeZone', this.getCacheFirst().clientDetails?.timezone);
16616
16541
  return users;
16617
16542
  }));
16618
16543
  }
@@ -16651,7 +16576,7 @@ class UserService extends RestService$1 {
16651
16576
  }
16652
16577
  deactivate(user) {
16653
16578
  return this.put(user, `${this.apiUrl}/${user.id}/delete`).pipe(map((user) => {
16654
- // localStorage.removeItem('userId');
16579
+ localStorage.clear();
16655
16580
  location.replace('/login');
16656
16581
  return user;
16657
16582
  }));
@@ -16673,20 +16598,15 @@ class UserService extends RestService$1 {
16673
16598
  user.blacklistSetupItems.push(item);
16674
16599
  return this.put(user);
16675
16600
  }
16676
- restoreSetupItem(item) {
16677
- const user = clone(this.getCacheFirst());
16678
- remove(user.blacklistSetupItems, (i) => i.id === item.id);
16679
- return this.put(user);
16680
- }
16681
16601
  /**
16682
- * @TODO stop using user for roles
16683
16602
  * Update cache when user's service subscription is updated
16684
16603
  */
16685
16604
  listenServiceSubscriptionUpdated() {
16686
- this.listenCSE(ServiceSubscription, (subscriptions) => {
16687
- const user = this.getCacheFirst();
16688
- user.addRoles(new ServiceSubscriptionCollection(subscriptions).getRoles());
16689
- this.setCache([user], true);
16605
+ this.listenCSE(ServiceSubscription, (response) => {
16606
+ // @TODO vik test and remove
16607
+ setTimeout(() => {
16608
+ this.refreshCache();
16609
+ }, 2000);
16690
16610
  }, ['post', 'put']);
16691
16611
  }
16692
16612
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: UserService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -19311,6 +19231,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19311
19231
  }]
19312
19232
  }], ctorParameters: () => [] });
19313
19233
 
19234
+ var SetupItemTypeEnum;
19235
+ (function (SetupItemTypeEnum) {
19236
+ SetupItemTypeEnum[SetupItemTypeEnum["CLIENT"] = 1] = "CLIENT";
19237
+ SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 2] = "EMPLOYEE";
19238
+ })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
19239
+
19314
19240
  class SetupItemService extends RestService$1 {
19315
19241
  constructor() {
19316
19242
  super(...arguments);
@@ -19334,20 +19260,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19334
19260
  * Checks required steps and their completion
19335
19261
  */
19336
19262
  class AccountSetupService {
19337
- constructor(setupItemService, propertyService, incomeSourceService, bankConnectionService, bankAccountsService, loanService, allocationRuleService, transactionAllocationService, vehicleClaimService, homeOfficeClaimService, transactionService, depreciationService, businessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService, sharesightDetailsService, propertyShareService) {
19263
+ constructor(setupItemService, propertyService, incomeSourceService, bankAccountsService, transactionAllocationService, vehicleClaimService, transactionService, soleBusinessService, holdingService, userService, clientMovementService, clientInviteService, employeeService, employeeInviteService, firmService) {
19338
19264
  this.setupItemService = setupItemService;
19339
19265
  this.propertyService = propertyService;
19340
19266
  this.incomeSourceService = incomeSourceService;
19341
- this.bankConnectionService = bankConnectionService;
19342
19267
  this.bankAccountsService = bankAccountsService;
19343
- this.loanService = loanService;
19344
- this.allocationRuleService = allocationRuleService;
19345
19268
  this.transactionAllocationService = transactionAllocationService;
19346
19269
  this.vehicleClaimService = vehicleClaimService;
19347
- this.homeOfficeClaimService = homeOfficeClaimService;
19348
19270
  this.transactionService = transactionService;
19349
- this.depreciationService = depreciationService;
19350
- this.businessService = businessService;
19271
+ this.soleBusinessService = soleBusinessService;
19351
19272
  this.holdingService = holdingService;
19352
19273
  this.userService = userService;
19353
19274
  this.clientMovementService = clientMovementService;
@@ -19355,111 +19276,101 @@ class AccountSetupService {
19355
19276
  this.employeeService = employeeService;
19356
19277
  this.employeeInviteService = employeeInviteService;
19357
19278
  this.firmService = firmService;
19358
- this.sharesightDetailsService = sharesightDetailsService;
19359
- this.propertyShareService = propertyShareService;
19360
19279
  }
19361
19280
  /**
19362
19281
  * Get list of account setup items for current user/firm
19363
19282
  */
19364
- get(property, business) {
19365
- // @TODO it takes time for user to update, makes sense to subscribe to serviceSubscription instead
19366
- return combineLatest([this.setupItemService.get(), this.userService.getFirst()]).pipe(switchMap(([items, user]) => {
19283
+ get(type) {
19284
+ return combineLatest([
19285
+ this.setupItemService.get(),
19286
+ this.userService.getFirst()
19287
+ ])
19288
+ .pipe(mergeMap(([items, user]) => {
19289
+ this.items = items;
19367
19290
  this.user = user;
19368
- this.items = items.getByUser(user);
19369
- return this.setItemsStatus(property, business);
19291
+ return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
19370
19292
  }));
19371
19293
  }
19372
- setItemsStatus(property, business) {
19373
- const itemsById = this.items.indexBy('id');
19374
- const requests = pick({
19375
- // firm
19376
- [AccountSetupItemsEnum.FIRM_DETAILS]: this.getFirms(),
19377
- [AccountSetupItemsEnum.FIRM_EMPLOYEES]: this.getEmployees(),
19378
- [AccountSetupItemsEnum.FIRM_CLIENTS]: this.getClients(),
19379
- // work
19380
- [AccountSetupItemsEnum.WORK_SALARY]: this.getIncomeSources(true),
19381
- [AccountSetupItemsEnum.WORK_OTHER_INCOME]: this.getIncomeSources(false),
19382
- [AccountSetupItemsEnum.WORK_VEHICLE_CLAIM]: this.getVehicleClaims(),
19383
- [AccountSetupItemsEnum.WORK_HOME_OFFICE]: this.getHomeOfficeClaims(),
19384
- [AccountSetupItemsEnum.WORK_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.WORK),
19385
- [AccountSetupItemsEnum.WORK_DEPRECIATION]: this.getDepreciations(TankTypeEnum.WORK),
19386
- // properties
19387
- [AccountSetupItemsEnum.PROPERTY]: this.propertyService.getArray(),
19388
- [AccountSetupItemsEnum.PROPERTIES]: this.propertyService.getArray().pipe(map(properties => properties.slice(1))),
19389
- [AccountSetupItemsEnum.PROPERTIES_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.PROPERTY),
19390
- // businesses
19391
- [AccountSetupItemsEnum.SOLE_BUSINESS]: this.businessService.getArray(),
19392
- [AccountSetupItemsEnum.SOLE_BUSINESSES]: this.businessService.getArray().pipe(map(businesses => businesses.slice(1))),
19393
- [AccountSetupItemsEnum.SOLE_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.SOLE),
19394
- // holding
19395
- [AccountSetupItemsEnum.HOLDING_TRADE]: this.holdingService.getArray(),
19396
- [AccountSetupItemsEnum.HOLDING_INTEGRATION]: this.getSharesightDetails(true),
19397
- // bankAccount
19398
- [AccountSetupItemsEnum.BANK_CONNECTION]: this.bankConnectionService.getArray(),
19399
- [AccountSetupItemsEnum.BANK_ACCOUNT]: this.getBankAccounts(),
19400
- [AccountSetupItemsEnum.BANK_ALLOCATION]: this.transactionAllocationService.get(),
19401
- [AccountSetupItemsEnum.BANK_RULE]: this.allocationRuleService.getArray(),
19402
- [AccountSetupItemsEnum.BANK_BORROWING_EXPENSE]: this.getBorrowingExpenses(),
19403
- }, this.items.getIds());
19404
- // property
19405
- if (property) {
19406
- requests[AccountSetupItemsEnum.PROPERTY_CAPITAL_COST] = this.propertyService.getBy('id', property.id).pipe(map(properties => properties.filter(property => !!property.capitalCosts)));
19407
- requests[AccountSetupItemsEnum.PROPERTY_RENT_INCOME] = this.getTransactions(property).pipe(map(transactions => new TransactionCollection(transactions).filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)));
19408
- requests[AccountSetupItemsEnum.PROPERTY_DEPRECIATION] = this.getDepreciations(TankTypeEnum.PROPERTY, property.id);
19409
- requests[AccountSetupItemsEnum.PROPERTY_CO_OWNER] = this.getCoOwners(property);
19410
- }
19411
- // business
19412
- if (business) {
19413
- requests[AccountSetupItemsEnum.SOLE_VEHICLE_CLAIM] = this.getVehicleClaims(business);
19414
- requests[AccountSetupItemsEnum.SOLE_HOME_OFFICE] = this.getHomeOfficeClaims(business);
19415
- requests[AccountSetupItemsEnum.SOLE_DEPRECIATION] = this.getDepreciations(TankTypeEnum.SOLE, business.id);
19416
- requests[AccountSetupItemsEnum.SOLE_LOGO] = this.businessService.getBy('id', business.id).pipe(map(businesses => businesses.filter(business => !!business.file)));
19417
- }
19418
- const batch = Object.keys(requests).map(id => this.setItemStatus(itemsById.get(id), requests[id]));
19419
- if (!batch.length) {
19420
- return of(new AccountSetupItemCollection([]));
19294
+ getClientItems$() {
19295
+ const batch = [];
19296
+ if (this.user.hasRoles(UserRolesEnum.WORK_TANK)) {
19297
+ batch.push(
19298
+ // Salary item is completed when user added salary income source
19299
+ this.setItemStatus(this.items.findBy('isSalary', true), this.getIncomeSources(true)),
19300
+ // Other income is a part of work tank, completed when user added at least one other income source
19301
+ this.setItemStatus(this.items.findBy('isOtherIncome', true), this.getIncomeSources()));
19302
+ }
19303
+ // Rental income item is completed when user added at least one property
19304
+ if (this.user.hasRoles(UserRolesEnum.PROPERTY_TANK)) {
19305
+ batch.push(this.setItemStatus(this.items.findBy('isProperty', true), this.propertyService.getArray()));
19306
+ }
19307
+ // Sole business item is completed when user added at least one business
19308
+ if (this.user.hasRoles(UserRolesEnum.SOLE_TANK)) {
19309
+ batch.push(this.setItemStatus(this.items.findBy('isSoleBusiness', true), this.soleBusinessService.getArray()));
19310
+ }
19311
+ // holdings item is completed when user added at least one holding
19312
+ if (this.user.hasRoles(UserRolesEnum.HOLDING_TANK)) {
19313
+ batch.push(this.setItemStatus(this.items.findBy('isHoldings', true), this.holdingService.getArray()));
19314
+ }
19315
+ if (this.user.hasRoles([UserRolesEnum.WORK_TANK, UserRolesEnum.PROPERTY_TANK, UserRolesEnum.SOLE_TANK])) {
19316
+ // Bank feeds item is completed when user added at least one bank account (basiq or manual)
19317
+ batch.push(this.getBankFeedsItem());
19318
+ // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
19319
+ batch.push(this.getLogbookItem());
19320
+ // Allocation item is completed when user added at least one transaction allocation
19321
+ batch.push(this.setItemStatus(this.items.findBy('isTransactionAllocate', true), this.transactionAllocationService.get()));
19421
19322
  }
19422
19323
  return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
19423
19324
  }
19325
+ getFirmItems$() {
19326
+ const batch = [];
19327
+ batch.push(
19328
+ // Firm Details item is completed when user filled some general information
19329
+ this.firmService.get().pipe(map((firm) => {
19330
+ const item = this.items.findBy('isFirmDetails', true);
19331
+ if (firm.address || firm.phone || firm.file || firm.shortName) {
19332
+ item.isCompleted = true;
19333
+ }
19334
+ return item;
19335
+ })));
19336
+ batch.push(
19337
+ // Invite team item is completed when firm has employees except firm owner or firm has invited employees.
19338
+ this.setItemStatus(this.items.findBy('isInviteTeam', true), combineLatest([
19339
+ this.employeeService.getArray(),
19340
+ this.employeeInviteService.getArray()
19341
+ ]).pipe(map(([employees, invites]) => {
19342
+ // we always have at least 1 employee (firm owner), so we should check other employees except firm owner
19343
+ if (employees.length) {
19344
+ employees.splice(0, 1);
19345
+ }
19346
+ return [...employees, ...invites];
19347
+ }))));
19348
+ batch.push(
19349
+ // Invite clients item is completed when firm has clients or firm has invited clients.
19350
+ this.setItemStatus(this.items.findBy('isInviteClients', true), combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()])
19351
+ .pipe(map(([movements, invites]) => [...movements.toArray(), ...invites.toArray()]))));
19352
+ return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items).sortBy('id', 'asc')));
19353
+ }
19424
19354
  /**
19425
19355
  * Check and update isCompleted flag for passed item
19426
19356
  */
19427
19357
  setItemStatus(item, request) {
19428
19358
  return request.pipe(map((result) => {
19429
19359
  const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
19430
- item.status = isSkipped ? AccountSetupItemStatusEnum.SKIPPED : result.length ? AccountSetupItemStatusEnum.ACHIEVED : AccountSetupItemStatusEnum.PENDING;
19360
+ if (result.length || isSkipped) {
19361
+ item.isCompleted = true;
19362
+ }
19363
+ else {
19364
+ item.isCompleted = false;
19365
+ }
19431
19366
  return item;
19432
19367
  }));
19433
19368
  }
19434
- getTransactions(property) {
19435
- return this.transactionService.getByPropertyId(property.id);
19436
- }
19437
- getCoOwners(property) {
19438
- return this.propertyShareService.getArrayBy('property.id', property.id).pipe(map(shares => shares.slice(1)));
19439
- }
19440
- /**
19441
- * AccountSetupItemsEnum.FIRM_CLIENTS completed when client invites sent or accepted
19442
- */
19443
- getClients() {
19444
- return combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()]).pipe(map(([movements, invites]) => [...movements, ...invites]));
19445
- }
19446
- /**
19447
- * AccountSetupItemsEnum.FIRM_EMPLOYEES completed when employee invites sent or accepted
19448
- */
19449
- getEmployees() {
19450
- return combineLatest([this.employeeService.getArray(), this.employeeInviteService.getArray()]).pipe(map(([employees, invites]) => [...employees.slice(1), ...invites]));
19451
- }
19452
- /**
19453
- * AccountSetupItemsEnum.FIRM_DETAILS when firm data filled
19454
- */
19455
- getFirms() {
19456
- return this.firmService.get().pipe(map((firm) => [firm].filter(firm => firm.address || firm.phone || firm.file || firm.shortName)));
19457
- }
19458
19369
  /**
19459
19370
  * @TODO Alex: work with collection when services refactored
19460
19371
  * @TODO Vik: waiting for income sources refactoring
19461
19372
  */
19462
- getIncomeSources(isSalary) {
19373
+ getIncomeSources(isSalary = false) {
19463
19374
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
19464
19375
  const collection = new IncomeSourceCollection(incomeSources);
19465
19376
  if (isSalary) {
@@ -19468,34 +19379,31 @@ class AccountSetupService {
19468
19379
  return collection.items.filter((incomeSource) => incomeSource.isOtherIncome());
19469
19380
  }));
19470
19381
  }
19471
- getVehicleClaims(business) {
19472
- return this.vehicleClaimService.getArray().pipe(map(claims => claims.filter(claim => business ? claim.business.id === business.id : !claim.business)));
19473
- }
19474
- getHomeOfficeClaims(business) {
19475
- return this.homeOfficeClaimService.getArray().pipe(map(claims => claims.filter(claim => business ? claim.business.id === business.id : !claim.business)));
19476
- }
19477
- getBankAccounts(tankType) {
19478
- return this.bankAccountsService.get().pipe(map((bankAccounts => bankAccounts.getByTankType(tankType).toArray())));
19479
- }
19480
- getDepreciations(tankType, id) {
19481
- return this.depreciationService.get().pipe(map(depreciations => {
19482
- depreciations = depreciations.getByTankType(tankType);
19483
- if (tankType === TankTypeEnum.PROPERTY && id) {
19484
- depreciations.filterBy('property.id', id);
19485
- }
19486
- if (tankType === TankTypeEnum.SOLE && id) {
19487
- depreciations.filterBy('business.id', id);
19382
+ /**
19383
+ * Show logbook item when user has at least 1 vehicle transaction
19384
+ */
19385
+ getLogbookItem() {
19386
+ return this.transactionService.get()
19387
+ .pipe(
19388
+ // @TODO Alex: remove map when services start work with collections
19389
+ map((transactions) => new TransactionCollection(transactions)), mergeMap((transactions) => {
19390
+ if (transactions.getVehicleTransactions().length) {
19391
+ return this.setItemStatus(this.items.findBy('isWorkLogbook', true), this.vehicleClaimService.getArray());
19488
19392
  }
19489
- return depreciations.toArray();
19393
+ return of(null);
19490
19394
  }));
19491
19395
  }
19492
- getSharesightDetails(importEnabled) {
19493
- return this.sharesightDetailsService.getArray().pipe(map(details => details.filter(detail => importEnabled ? detail.importEnabled : detail.exportEnabled)));
19494
- }
19495
- getBorrowingExpenses() {
19496
- return this.loanService.getArray().pipe(map(loans => loans.filter(loan => !!loan.borrowingExpenses.length)));
19396
+ /**
19397
+ * Hide bank feeds item when user has only holding tank
19398
+ */
19399
+ getBankFeedsItem() {
19400
+ const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
19401
+ if (!intersection(bankFeedsRoles, this.user.roles).length) {
19402
+ return of(null);
19403
+ }
19404
+ return this.setItemStatus(this.items.findBy('isBankFeeds', true), this.bankAccountsService.getArray());
19497
19405
  }
19498
- 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 }); }
19406
+ 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 }); }
19499
19407
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, providedIn: 'root' }); }
19500
19408
  }
19501
19409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, decorators: [{
@@ -19503,7 +19411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19503
19411
  args: [{
19504
19412
  providedIn: 'root'
19505
19413
  }]
19506
- }], 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 }] });
19414
+ }], 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 }] });
19507
19415
 
19508
19416
  class AdblockService {
19509
19417
  constructor() {
@@ -20640,7 +20548,6 @@ const ENDPOINTS = {
20640
20548
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
20641
20549
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
20642
20550
  SERVICE_SUBSCRIPTIONS_POST: new Endpoint('POST', '\\/service-subscriptions'),
20643
- SERVICE_SUBSCRIPTIONS_TRIAL_POST: new Endpoint('POST', '\\/service-subscriptions/'),
20644
20551
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
20645
20552
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
20646
20553
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
@@ -20697,7 +20604,6 @@ const ENDPOINTS = {
20697
20604
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
20698
20605
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
20699
20606
  TRANSACTIONS_ALLOCATIONS_BATCH_DELETE: new Endpoint('POST', '\\/transaction-allocations\\/delete'),
20700
- TRIAL_POST: new Endpoint('POST', '\\/trial'),
20701
20607
  USER_CONFIRMATION_POST: new Endpoint('POST', '\\/users\\/confirmation'),
20702
20608
  USER_CONFIRMATION_RESEND_POST: new Endpoint('POST', '\\/users\\/confirmation\\/resend'),
20703
20609
  USER_CURRENT_GET: new Endpoint('GET', '\\/users\\/current'),
@@ -21096,24 +21002,6 @@ var InviteStatusEnum;
21096
21002
  InviteStatusEnum[InviteStatusEnum["REJECTED"] = 3] = "REJECTED";
21097
21003
  })(InviteStatusEnum || (InviteStatusEnum = {}));
21098
21004
 
21099
- var YoutubeVideosEnum;
21100
- (function (YoutubeVideosEnum) {
21101
- YoutubeVideosEnum["HOLDING_ONBOARDING"] = "r3RhObELk-E";
21102
- YoutubeVideosEnum["MONEY_ONBOARDING"] = "E9NU14ndjhc";
21103
- YoutubeVideosEnum["PROPERTY_ONBOARDING"] = "llUV98-EMdI";
21104
- YoutubeVideosEnum["SOLE_ONBOARDING"] = "rqfTQFGwkUM";
21105
- YoutubeVideosEnum["WORK_ONBOARDING"] = "QEKolzS1B0U";
21106
- // @TODO replace PROPERTY_RENTAL
21107
- YoutubeVideosEnum["PROPERTY_RENTAL"] = "E9NU14ndjhc";
21108
- YoutubeVideosEnum["PROPERTY_DEPRECIATION"] = "_34lK9ooFzc";
21109
- YoutubeVideosEnum["VEHICLE_CLAIM"] = "4-6WaM83cw0";
21110
- YoutubeVideosEnum["SOLE_DEPRECIATION"] = "Bw3tx4miFF8";
21111
- YoutubeVideosEnum["SOLE_HOME_OFFICE"] = "fF8_kJHEKRE";
21112
- YoutubeVideosEnum["WORK_DEPRECIATION"] = "gNa9M4xovuI";
21113
- YoutubeVideosEnum["WORK_HOME_OFFICE"] = "qrQu4Yl72bU";
21114
- YoutubeVideosEnum["BANK_FEEDS"] = "meQmpw7ZY7c";
21115
- })(YoutubeVideosEnum || (YoutubeVideosEnum = {}));
21116
-
21117
21005
  var PropertyDepreciationCalculationEnum;
21118
21006
  (function (PropertyDepreciationCalculationEnum) {
21119
21007
  PropertyDepreciationCalculationEnum[PropertyDepreciationCalculationEnum["PRIME_COST"] = 1] = "PRIME_COST";
@@ -21430,36 +21318,6 @@ var UserEventSettingFieldEnum;
21430
21318
  UserEventSettingFieldEnum["FREQUENCY"] = "frequency";
21431
21319
  })(UserEventSettingFieldEnum || (UserEventSettingFieldEnum = {}));
21432
21320
 
21433
- class BusinessResolver {
21434
- constructor(soleDetailsService) {
21435
- this.soleDetailsService = soleDetailsService;
21436
- }
21437
- resolve() {
21438
- return this.soleDetailsService.getFirst();
21439
- }
21440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, deps: [{ token: SoleDetailsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21441
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, providedIn: 'root' }); }
21442
- }
21443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, decorators: [{
21444
- type: Injectable,
21445
- args: [{ providedIn: 'root' }]
21446
- }], ctorParameters: () => [{ type: SoleDetailsService }] });
21447
-
21448
- class SoleDetailsResolver {
21449
- constructor(soleDetails) {
21450
- this.soleDetails = soleDetails;
21451
- }
21452
- resolve() {
21453
- return this.soleDetails.getFirst();
21454
- }
21455
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, deps: [{ token: SoleDetailsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21456
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, providedIn: 'root' }); }
21457
- }
21458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, decorators: [{
21459
- type: Injectable,
21460
- args: [{ providedIn: 'root' }]
21461
- }], ctorParameters: () => [{ type: SoleDetailsService }] });
21462
-
21463
21321
  // deep clone for entity
21464
21322
  function cloneDeep(array) {
21465
21323
  return JSON.parse(JSON.stringify(array));
@@ -21619,7 +21477,7 @@ class AbstractForm extends FormGroup {
21619
21477
  */
21620
21478
  patchField(name, value) {
21621
21479
  const control = this.get(name);
21622
- if (!control || control.value === value) {
21480
+ if (control.value === value) {
21623
21481
  return;
21624
21482
  }
21625
21483
  // @TODO remove when all number fields refactored to prime inputnumber
@@ -21628,11 +21486,6 @@ class AbstractForm extends FormGroup {
21628
21486
  }
21629
21487
  control.patchValue(value);
21630
21488
  }
21631
- patch(fields) {
21632
- Object.entries(fields).forEach(([key, value]) => {
21633
- this.patchField(key, value);
21634
- });
21635
- }
21636
21489
  fieldChanged(name) {
21637
21490
  return this.get(name).value !== this.initialValue[name];
21638
21491
  }
@@ -25092,12 +24945,6 @@ class HoldingIncomeForm extends WorkTransactionForm {
25092
24945
  }
25093
24946
  }
25094
24947
 
25095
- class HoldingExpenseForm extends WorkTransactionForm {
25096
- constructor(transaction, registeredForGst, allocations, homeOfficeClaim, controls = {}) {
25097
- super(transaction, registeredForGst, allocations, controls);
25098
- }
25099
- }
25100
-
25101
24948
  class TransactionBaseFilterForm extends FormGroup {
25102
24949
  constructor(tankType, business, properties) {
25103
24950
  super({
@@ -25613,5 +25460,5 @@ var MessagesEnum;
25613
25460
  * Generated bundle index. Do not edit.
25614
25461
  */
25615
25462
 
25616
- 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, BusinessResolver, 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, HoldingExpenseForm, 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, SoleDetailsResolver, 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, YoutubeVideosEnum, alphaSpaceValidator, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
25463
+ 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 };
25617
25464
  //# sourceMappingURL=taxtank-core.mjs.map