taxtank-core 1.0.37 → 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 (37) hide show
  1. package/fesm2022/taxtank-core-common.mjs +1 -1
  2. package/fesm2022/taxtank-core-common.mjs.map +1 -1
  3. package/fesm2022/taxtank-core.mjs +222 -383
  4. package/fesm2022/taxtank-core.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/public-api.d.ts +0 -2
  7. package/src/lib/collections/account-setup-item.collection.d.ts +1 -5
  8. package/src/lib/collections/bank-account.collection.d.ts +1 -1
  9. package/src/lib/collections/subscription/service-subscription.collection.d.ts +0 -6
  10. package/src/lib/collections/tax-summary/tax-return-categories.const.d.ts +0 -3
  11. package/src/lib/db/Enums/index.d.ts +0 -1
  12. package/src/lib/db/Enums/setup-item-type.enum.d.ts +2 -9
  13. package/src/lib/db/Enums/tax-return/tax-return-category-list.enum.d.ts +3 -4
  14. package/src/lib/db/Enums/tax-summary-section.enum.d.ts +3 -4
  15. package/src/lib/db/Models/property/property.d.ts +0 -1
  16. package/src/lib/db/Models/setup-item.d.ts +1 -4
  17. package/src/lib/db/Models/sole/sole-business.d.ts +1 -0
  18. package/src/lib/forms/abstract.form.d.ts +0 -3
  19. package/src/lib/models/account-setup/account-setup-item.d.ts +12 -5
  20. package/src/lib/models/account-setup/account-setup-items.enum.d.ts +11 -31
  21. package/src/lib/models/index.d.ts +0 -1
  22. package/src/lib/models/tax-summary/tax-summary.d.ts +5 -5
  23. package/src/lib/models/user/user.d.ts +1 -2
  24. package/src/lib/services/account-setup/account-setup.service.d.ts +15 -33
  25. package/src/lib/services/http/firm/firm.service.d.ts +4 -0
  26. package/src/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts +1 -2
  27. package/src/lib/services/http/rest/rest-old.service.d.ts +0 -1
  28. package/src/lib/services/http/rest/rest.service.d.ts +0 -1
  29. package/src/lib/services/http/setup-item/setup-item.service.d.ts +1 -1
  30. package/src/lib/services/http/subscription/service-subscription/subscription.service.d.ts +0 -1
  31. package/src/lib/services/http/user/user.service.d.ts +2 -3
  32. package/src/lib/db/Enums/youtube-videos.enum.d.ts +0 -18
  33. package/src/lib/models/account-setup/account-setup-item-status.enum.d.ts +0 -5
  34. package/src/lib/models/account-setup/index.d.ts +0 -3
  35. package/src/lib/resolvers/business/business.resolver.d.ts +0 -11
  36. package/src/lib/resolvers/business/sole-details.resolver.d.ts +0 -11
  37. 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,74 +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"] = 16] = "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_TRANSACTION"] = 24] = "BANK_TRANSACTION";
5452
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_ALLOCATION"] = 6] = "BANK_ALLOCATION";
5453
- AccountSetupItemsEnum[AccountSetupItemsEnum["BANK_RULE"] = 27] = "BANK_RULE";
5454
- 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";
5455
5387
  })(AccountSetupItemsEnum || (AccountSetupItemsEnum = {}));
5456
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
+
5457
5425
  class User extends User$1 {
5458
5426
  constructor() {
5459
5427
  super(...arguments);
@@ -5487,9 +5455,6 @@ class User extends User$1 {
5487
5455
  return '';
5488
5456
  }
5489
5457
  }
5490
- addRoles(roles = []) {
5491
- this.roles = [...new Set([...this.roles, ...roles])];
5492
- }
5493
5458
  /**
5494
5459
  * search roles including hierarchy
5495
5460
  */
@@ -7515,11 +7480,9 @@ var TaxSummarySectionEnum;
7515
7480
  (function (TaxSummarySectionEnum) {
7516
7481
  TaxSummarySectionEnum[TaxSummarySectionEnum["WORK_TANK"] = 1] = "WORK_TANK";
7517
7482
  TaxSummarySectionEnum[TaxSummarySectionEnum["PROPERTY_TANK"] = 2] = "PROPERTY_TANK";
7518
- TaxSummarySectionEnum[TaxSummarySectionEnum["HOLDINGS_TANK"] = 3] = "HOLDINGS_TANK";
7519
- // @TODO vik show it somewhere (it used to be in otherTank)
7520
- TaxSummarySectionEnum[TaxSummarySectionEnum["CAPITAL_GAINS"] = 4] = "CAPITAL_GAINS";
7521
- TaxSummarySectionEnum[TaxSummarySectionEnum["SOLE_TANK"] = 5] = "SOLE_TANK";
7522
- 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";
7523
7486
  })(TaxSummarySectionEnum || (TaxSummarySectionEnum = {}));
7524
7487
 
7525
7488
  /**
@@ -8575,24 +8538,6 @@ class ServiceSubscriptionCollection extends Collection {
8575
8538
  getPaid() {
8576
8539
  return this.filter((subscription) => !!subscription.stripeId);
8577
8540
  }
8578
- getRoles() {
8579
- const roles = this.items.flatMap((subscription) => subscription.roles);
8580
- if (this.getActive().length) {
8581
- roles.push(UserRolesEnum.SUBSCRIPTION);
8582
- }
8583
- return roles;
8584
- }
8585
- /**
8586
- * search roles including hierarchy
8587
- */
8588
- hasRoles(roles) {
8589
- roles = roles instanceof Array ? roles : [roles];
8590
- if (!roles.length) {
8591
- return true;
8592
- }
8593
- roles = flatten(roles.map((role) => USER_ROLES[role]));
8594
- return !!intersection(this.getRoles(), roles).length;
8595
- }
8596
8541
  getActivePaid() {
8597
8542
  return this.getActive().find((subscription) => !!subscription.stripeId);
8598
8543
  }
@@ -8619,9 +8564,6 @@ class ServiceSubscriptionCollection extends Collection {
8619
8564
  filterByRole(role) {
8620
8565
  return this.filter((subscription) => subscription.roles.includes(role));
8621
8566
  }
8622
- findByRole(role) {
8623
- return this.filterByRole(role).first;
8624
- }
8625
8567
  hasPropertyTank() {
8626
8568
  return !!this.getItems().propertiesItem;
8627
8569
  }
@@ -8726,9 +8668,6 @@ class ReportItemCollection extends Collection {
8726
8668
  }
8727
8669
  }
8728
8670
 
8729
- /**
8730
- * @TODO vik check (tax_return_category/tax_return_item/chart_accounts)
8731
- */
8732
8671
  const TAX_RETURN_CATEGORIES = {
8733
8672
  work: {
8734
8673
  income: [
@@ -8768,17 +8707,17 @@ const TAX_RETURN_CATEGORIES = {
8768
8707
  TaxReturnCategoryListEnum.PLANT_AND_EQUIPMENT
8769
8708
  ]
8770
8709
  },
8771
- holdings: {
8710
+ other: {
8772
8711
  income: [
8773
8712
  TaxReturnCategoryListEnum.GROSS_INTEREST,
8774
8713
  TaxReturnCategoryListEnum.SHARE_SCHEMES,
8775
8714
  TaxReturnCategoryListEnum.PARTNERSHIPS,
8715
+ TaxReturnCategoryListEnum.PARTNERSHIPS_TRUSTS,
8776
8716
  TaxReturnCategoryListEnum.TRUSTS,
8777
8717
  TaxReturnCategoryListEnum.PSI_SBE_INCOME,
8778
- // @TODO these categories not used anymore, maybe there are replacements (ask Nik)
8779
- // TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
8780
- // TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
8718
+ TaxReturnCategoryListEnum.SOLE_TRADER_BUSINESS_INCOME,
8781
8719
  TaxReturnCategoryListEnum.CAPITAL_GAINS,
8720
+ TaxReturnCategoryListEnum.FOREIGN_SOURCE_INCOME,
8782
8721
  TaxReturnCategoryListEnum.BONUSES_FROM_LIFE_INSURANCE,
8783
8722
  TaxReturnCategoryListEnum.FORESTRY_MANAGED_INVESTMENT_SCHEMES,
8784
8723
  TaxReturnCategoryListEnum.OTHER_INCOME
@@ -9030,25 +8969,11 @@ class AllocationRuleCollection extends Collection {
9030
8969
  class AccountSetupItemCollection extends Collection {
9031
8970
  constructor(items) {
9032
8971
  super(compact(items));
9033
- this.sortBy('status', 'asc');
8972
+ this.sortBy('isCompleted', 'asc');
9034
8973
  }
9035
8974
  isCompleted() {
9036
8975
  return this.filterBy('isCompleted', true).length === this.length;
9037
8976
  }
9038
- getByUser(user) {
9039
- return this.filter(item => user.hasRoles(item.roles));
9040
- }
9041
- getScore() {
9042
- return this.sumBy('score');
9043
- }
9044
- setUrlId(id) {
9045
- this.items.forEach(item => {
9046
- if (!item.url.includes(':id')) {
9047
- return;
9048
- }
9049
- item.url = item.url.replace(':id', id);
9050
- });
9051
- }
9052
8977
  }
9053
8978
 
9054
8979
  /**
@@ -9108,7 +9033,7 @@ class BankAccountCollection extends Collection {
9108
9033
  * Get Collection of bank accounts by tank type
9109
9034
  */
9110
9035
  getByTankType(tankType) {
9111
- return new BankAccountCollection(tankType ? this.items.filter((bankAccount) => bankAccount.tankType === tankType) : this.items);
9036
+ return new BankAccountCollection(this.items.filter((bankAccount) => bankAccount.tankType === tankType));
9112
9037
  }
9113
9038
  /**
9114
9039
  * Get list of all bank account properties
@@ -11635,9 +11560,8 @@ let RestService$1 = class RestService extends DataService {
11635
11560
  * Refresh cache with actual backend data
11636
11561
  */
11637
11562
  refreshCache() {
11638
- // todo why not fetch?
11639
11563
  this.cache = undefined;
11640
- this.get().subscribe();
11564
+ this.get();
11641
11565
  }
11642
11566
  /**
11643
11567
  * perform a shallow copy of the emitted data to make it immutable
@@ -11649,17 +11573,17 @@ let RestService$1 = class RestService extends DataService {
11649
11573
  * Get data from backend and fill the cache
11650
11574
  */
11651
11575
  fetch(path = this.apiUrl, cache = true, queryParams = {}) {
11652
- if (this.inFlight$ && cache) {
11653
- return this.inFlight$;
11576
+ if (cache) {
11577
+ // Set cache as empty collection to avoid multiple requests before cache filled
11578
+ this.setCache([]);
11654
11579
  }
11655
- this.inFlight$ = this.http.get(path, queryParams)
11580
+ return this.http.get(path, queryParams)
11656
11581
  .pipe(map((response) => Array.isArray(response) ? response : toArray(response)), map((response) => {
11657
11582
  if (cache) {
11658
11583
  this.setCache(response, true);
11659
11584
  }
11660
11585
  return this.createCollectionInstance(this.collectionClass, response);
11661
- }), catchError((error) => this.handleError(error)), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
11662
- return this.inFlight$;
11586
+ }), catchError((error) => this.handleError(error)));
11663
11587
  }
11664
11588
  fetchFirst(queryParams = {}) {
11665
11589
  return this.fetch(this.apiUrl, false, { params: queryParams })
@@ -11668,11 +11592,10 @@ let RestService$1 = class RestService extends DataService {
11668
11592
  get(path = this.apiUrl) {
11669
11593
  this.handleAccessError('get');
11670
11594
  if (!this.hasRoles()) {
11671
- // @TODO it completes observable and doesn't watch anymore
11672
11595
  return of(this.createCollectionInstance(this.collectionClass, []));
11673
11596
  }
11674
11597
  if (!this.cache) {
11675
- return this.fetch(path).pipe(switchMap(() => this.getCacheSubjectObservable()));
11598
+ this.fetch(path).pipe(first$1()).subscribe();
11676
11599
  }
11677
11600
  return this.getCacheSubjectObservable();
11678
11601
  }
@@ -13467,17 +13390,22 @@ class FirmService {
13467
13390
  this.environment = environment;
13468
13391
  this.firmSubject = new ReplaySubject(1);
13469
13392
  }
13393
+ /**
13394
+ * Register new firm
13395
+ * @param data: firm and firm owner data to register
13396
+ */
13470
13397
  register(data) {
13471
13398
  return this.http.post(`${this.environment.apiV2}/firms/registration`, data)
13472
13399
  .pipe(map((firm) => plainToClass(Firm, firm)));
13473
13400
  }
13474
13401
  get() {
13475
13402
  if (!this.firm) {
13476
- return this.http.get(`${this.environment.apiV2}/firms/current`).pipe(map((firm) => {
13477
- 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;
13478
13407
  this.firmSubject.next(this.firm);
13479
- return this.firm;
13480
- }), switchMap(() => this.firmSubject.asObservable()));
13408
+ });
13481
13409
  }
13482
13410
  return this.firmSubject.asObservable();
13483
13411
  }
@@ -13562,25 +13490,24 @@ class RestService {
13562
13490
  * get list of base class instances directly from backend
13563
13491
  */
13564
13492
  fetch(path = this.apiUrl, cache = true, params = {}) {
13565
- if (this.inFlight$ && cache) {
13566
- return this.inFlight$;
13493
+ if (cache) {
13494
+ this.setCache([]);
13567
13495
  }
13568
- this.inFlight$ = this.http.get(path, { params: params })
13496
+ return this.http.get(path, { params: params })
13569
13497
  .pipe(map((response) => {
13570
13498
  const items = response.map((item) => this.createModelInstance(item));
13571
13499
  if (cache) {
13572
13500
  this.setCache(items, true);
13573
13501
  }
13574
13502
  return items;
13575
- }), finalize(() => this.inFlight$ = null), shareReplay({ bufferSize: 1, refCount: true }));
13576
- return this.inFlight$;
13503
+ }));
13577
13504
  }
13578
13505
  /**
13579
13506
  * get cached list of all instances
13580
13507
  */
13581
13508
  get(path = this.apiUrl) {
13582
13509
  if (!this.cache) {
13583
- return this.fetch(path).pipe(first$1(), switchMap(() => this.getCacheSubjectObservable()));
13510
+ this.fetch(path).pipe(first$1()).subscribe();
13584
13511
  }
13585
13512
  return this.getCacheSubjectObservable();
13586
13513
  }
@@ -13729,7 +13656,7 @@ class RestService {
13729
13656
  */
13730
13657
  refreshCache() {
13731
13658
  this.setCache(undefined);
13732
- this.get().subscribe();
13659
+ this.get();
13733
13660
  }
13734
13661
  setCache(data, next = false) {
13735
13662
  this.cache = data;
@@ -15201,10 +15128,6 @@ class SubscriptionService extends RestService$1 {
15201
15128
  params: { code }
15202
15129
  }).pipe(map((response) => plainToClass(ServicePromoCode, response)));
15203
15130
  }
15204
- setCache(data, next = false) {
15205
- super.setCache(data, next);
15206
- localStorage.setItem('roles', JSON.stringify(this.cache.getRoles()));
15207
- }
15208
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 }); }
15209
15132
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SubscriptionService, providedIn: 'root' }); }
15210
15133
  }
@@ -15543,7 +15466,7 @@ __decorate([
15543
15466
  return 'taxSummaryWorkTank';
15544
15467
  case TaxSummarySectionEnum.PROPERTY_TANK:
15545
15468
  return 'taxSummaryPropertyTank';
15546
- case TaxSummarySectionEnum.HOLDINGS_TANK:
15469
+ case TaxSummarySectionEnum.OTHER_TANK:
15547
15470
  return 'taxSummaryOtherIncome';
15548
15471
  case TaxSummarySectionEnum.SOLE_TANK:
15549
15472
  return 'taxSummarySoleTank';
@@ -15559,7 +15482,7 @@ __decorate([
15559
15482
  */
15560
15483
  class TaxSummary {
15561
15484
  get sections() {
15562
- return [this.work, this.property, this.holdings, this.sole, this.summary];
15485
+ return [this.work, this.property, this.other, this.sole, this.summary];
15563
15486
  }
15564
15487
  getReportItems(sections) {
15565
15488
  return new ReportItemCollection([].concat(...sections.map((section) => section.items.toArray())));
@@ -15580,26 +15503,26 @@ class TaxSummary {
15580
15503
  return this.workNetTotal - Math.abs(taxWithheld);
15581
15504
  }
15582
15505
  get income() {
15583
- 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([
15584
15507
  ...TAX_RETURN_CATEGORIES.work.income,
15585
15508
  ...TAX_RETURN_CATEGORIES.property.income,
15586
15509
  ...TAX_RETURN_CATEGORIES.sole.income,
15587
- ...TAX_RETURN_CATEGORIES.holdings.income,
15510
+ ...TAX_RETURN_CATEGORIES.other.income,
15588
15511
  ]);
15589
15512
  }
15590
15513
  get expense() {
15591
- 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([
15592
15515
  ...TAX_RETURN_CATEGORIES.work.expenses,
15593
15516
  ...TAX_RETURN_CATEGORIES.property.expenses,
15594
15517
  ...TAX_RETURN_CATEGORIES.sole.expenses,
15595
- ...TAX_RETURN_CATEGORIES.holdings.expenses,
15518
+ ...TAX_RETURN_CATEGORIES.other.expenses,
15596
15519
  ]);
15597
15520
  }
15598
15521
  get netCash() {
15599
- return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.holdingsNetCash;
15522
+ return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.otherNetCash;
15600
15523
  }
15601
15524
  get netTotal() {
15602
- return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.holdingsNetTotal;
15525
+ return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.otherNetTotal;
15603
15526
  }
15604
15527
  /**
15605
15528
  * Work Net Total = Income - expenses - interest
@@ -15631,26 +15554,26 @@ class TaxSummary {
15631
15554
  return this.propertyNetCash - Math.abs(depreciation) - Math.abs(borrowingExpenses);
15632
15555
  }
15633
15556
  /**
15634
- * Holdings Net Cash = gross income – expenses – tax withheld - tax instalments
15557
+ * Other Net Cash = gross income – expenses – tax withheld - tax instalments
15635
15558
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
15636
15559
  */
15637
- get holdingsNetCash() {
15638
- const income = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.income, TaxSummarySectionEnum.HOLDINGS_TANK);
15639
- const expenses = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.expenses, TaxSummarySectionEnum.HOLDINGS_TANK);
15640
- const taxWithheld = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_WITHHELD], TaxSummarySectionEnum.HOLDINGS_TANK);
15641
- 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);
15642
15565
  return income - Math.abs(expenses) - Math.abs(taxWithheld) - Math.abs(taxInstalments);
15643
15566
  }
15644
15567
  /**
15645
- * 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
15646
15569
  * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
15647
15570
  */
15648
- get holdingsNetTotal() {
15649
- const income = this.holdings.items.sumByCategoriesAndSection(TAX_RETURN_CATEGORIES.holdings.income, TaxSummarySectionEnum.HOLDINGS_TANK);
15650
- 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);
15651
15574
  const taxOffsets = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_OFFSETS], TaxSummarySectionEnum.SUMMARY);
15652
- const taxInstallments = this.summary.items.sumByCategoriesAndSection([TaxReturnCategoryListEnum.TAX_INSTALMENTS], TaxSummarySectionEnum.HOLDINGS_TANK);
15653
- 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);
15654
15577
  return income - Math.abs(expenses) + Math.abs(taxOffsets) + Math.abs(taxInstallments) + Math.abs(frankingCredits);
15655
15578
  }
15656
15579
  /**
@@ -15692,7 +15615,7 @@ __decorate([
15692
15615
  ], TaxSummary.prototype, "property", void 0);
15693
15616
  __decorate([
15694
15617
  Type(() => TaxSummarySection)
15695
- ], TaxSummary.prototype, "holdings", void 0);
15618
+ ], TaxSummary.prototype, "other", void 0);
15696
15619
  __decorate([
15697
15620
  Type(() => TaxSummarySection)
15698
15621
  ], TaxSummary.prototype, "sole", void 0);
@@ -16610,10 +16533,11 @@ class UserService extends RestService$1 {
16610
16533
  }
16611
16534
  fetch() {
16612
16535
  return super.fetch(`${this.apiUrl}/current`).pipe(map((users) => {
16613
- const user = this.getCacheFirst();
16614
16536
  // @TODO vik use separated service to handle global user storage
16615
- localStorage.setItem('userId', user.id.toString());
16616
- 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);
16617
16541
  return users;
16618
16542
  }));
16619
16543
  }
@@ -16652,7 +16576,7 @@ class UserService extends RestService$1 {
16652
16576
  }
16653
16577
  deactivate(user) {
16654
16578
  return this.put(user, `${this.apiUrl}/${user.id}/delete`).pipe(map((user) => {
16655
- // localStorage.removeItem('userId');
16579
+ localStorage.clear();
16656
16580
  location.replace('/login');
16657
16581
  return user;
16658
16582
  }));
@@ -16674,20 +16598,15 @@ class UserService extends RestService$1 {
16674
16598
  user.blacklistSetupItems.push(item);
16675
16599
  return this.put(user);
16676
16600
  }
16677
- restoreSetupItem(item) {
16678
- const user = clone(this.getCacheFirst());
16679
- remove(user.blacklistSetupItems, (i) => i.id === item.id);
16680
- return this.put(user);
16681
- }
16682
16601
  /**
16683
- * @TODO stop using user for roles
16684
16602
  * Update cache when user's service subscription is updated
16685
16603
  */
16686
16604
  listenServiceSubscriptionUpdated() {
16687
- this.listenCSE(ServiceSubscription, (subscriptions) => {
16688
- const user = this.getCacheFirst();
16689
- user.addRoles(new ServiceSubscriptionCollection(subscriptions).getRoles());
16690
- this.setCache([user], true);
16605
+ this.listenCSE(ServiceSubscription, (response) => {
16606
+ // @TODO vik test and remove
16607
+ setTimeout(() => {
16608
+ this.refreshCache();
16609
+ }, 2000);
16691
16610
  }, ['post', 'put']);
16692
16611
  }
16693
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 }); }
@@ -19312,6 +19231,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19312
19231
  }]
19313
19232
  }], ctorParameters: () => [] });
19314
19233
 
19234
+ var SetupItemTypeEnum;
19235
+ (function (SetupItemTypeEnum) {
19236
+ SetupItemTypeEnum[SetupItemTypeEnum["CLIENT"] = 1] = "CLIENT";
19237
+ SetupItemTypeEnum[SetupItemTypeEnum["EMPLOYEE"] = 2] = "EMPLOYEE";
19238
+ })(SetupItemTypeEnum || (SetupItemTypeEnum = {}));
19239
+
19315
19240
  class SetupItemService extends RestService$1 {
19316
19241
  constructor() {
19317
19242
  super(...arguments);
@@ -19335,21 +19260,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19335
19260
  * Checks required steps and their completion
19336
19261
  */
19337
19262
  class AccountSetupService {
19338
- constructor(setupItemService, propertyService, incomeSourceService, bankConnectionService, bankAccountsService, bankTransactionService, 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) {
19339
19264
  this.setupItemService = setupItemService;
19340
19265
  this.propertyService = propertyService;
19341
19266
  this.incomeSourceService = incomeSourceService;
19342
- this.bankConnectionService = bankConnectionService;
19343
19267
  this.bankAccountsService = bankAccountsService;
19344
- this.bankTransactionService = bankTransactionService;
19345
- this.loanService = loanService;
19346
- this.allocationRuleService = allocationRuleService;
19347
19268
  this.transactionAllocationService = transactionAllocationService;
19348
19269
  this.vehicleClaimService = vehicleClaimService;
19349
- this.homeOfficeClaimService = homeOfficeClaimService;
19350
19270
  this.transactionService = transactionService;
19351
- this.depreciationService = depreciationService;
19352
- this.businessService = businessService;
19271
+ this.soleBusinessService = soleBusinessService;
19353
19272
  this.holdingService = holdingService;
19354
19273
  this.userService = userService;
19355
19274
  this.clientMovementService = clientMovementService;
@@ -19357,77 +19276,80 @@ class AccountSetupService {
19357
19276
  this.employeeService = employeeService;
19358
19277
  this.employeeInviteService = employeeInviteService;
19359
19278
  this.firmService = firmService;
19360
- this.sharesightDetailsService = sharesightDetailsService;
19361
- this.propertyShareService = propertyShareService;
19362
19279
  }
19363
19280
  /**
19364
19281
  * Get list of account setup items for current user/firm
19365
19282
  */
19366
- get(property, business, bankAccount) {
19367
- // @TODO it takes time for user to update, makes sense to subscribe to serviceSubscription instead
19368
- 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;
19369
19290
  this.user = user;
19370
- this.items = items.getByUser(user);
19371
- return this.setItemsStatus(property, business, bankAccount);
19291
+ return type === SetupItemTypeEnum.CLIENT ? this.getClientItems$() : this.getFirmItems$();
19372
19292
  }));
19373
19293
  }
19374
- setItemsStatus(property, business, bankAccount) {
19375
- const itemsById = this.items.indexBy('id');
19376
- const requests = pick({
19377
- // firm
19378
- [AccountSetupItemsEnum.FIRM_DETAILS]: this.getFirms(),
19379
- [AccountSetupItemsEnum.FIRM_EMPLOYEES]: this.getEmployees(),
19380
- [AccountSetupItemsEnum.FIRM_CLIENTS]: this.getClients(),
19381
- // work
19382
- [AccountSetupItemsEnum.WORK_SALARY]: this.getIncomeSources(true),
19383
- [AccountSetupItemsEnum.WORK_OTHER_INCOME]: this.getIncomeSources(false),
19384
- [AccountSetupItemsEnum.WORK_VEHICLE_CLAIM]: this.getVehicleClaims(),
19385
- [AccountSetupItemsEnum.WORK_HOME_OFFICE]: this.getHomeOfficeClaims(),
19386
- [AccountSetupItemsEnum.WORK_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.WORK),
19387
- [AccountSetupItemsEnum.WORK_DEPRECIATION]: this.getDepreciations(TankTypeEnum.WORK),
19388
- // properties
19389
- [AccountSetupItemsEnum.PROPERTY]: this.propertyService.getArray(),
19390
- [AccountSetupItemsEnum.PROPERTIES]: this.propertyService.getArray().pipe(map(properties => properties.slice(1))),
19391
- [AccountSetupItemsEnum.PROPERTIES_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.PROPERTY),
19392
- // businesses
19393
- [AccountSetupItemsEnum.SOLE_BUSINESS]: this.businessService.getArray(),
19394
- [AccountSetupItemsEnum.SOLE_BUSINESSES]: this.businessService.getArray().pipe(map(businesses => businesses.slice(1))),
19395
- [AccountSetupItemsEnum.SOLE_BANK_ACCOUNT]: this.getBankAccounts(TankTypeEnum.SOLE),
19396
- // holdings
19397
- [AccountSetupItemsEnum.HOLDING_TRADE]: this.holdingService.getArray(),
19398
- [AccountSetupItemsEnum.HOLDING_INTEGRATION]: this.getSharesightDetails(true),
19399
- // bankAccounts
19400
- [AccountSetupItemsEnum.BANK_CONNECTION]: this.bankConnectionService.getArray(),
19401
- [AccountSetupItemsEnum.BANK_ACCOUNT]: this.getBankAccounts(),
19402
- }, this.items.getIds());
19403
- // property
19404
- if (property) {
19405
- requests[AccountSetupItemsEnum.PROPERTY_CAPITAL_COST] = this.propertyService.getBy('id', property.id).pipe(map(properties => properties.filter(property => !!property.capitalCosts)));
19406
- requests[AccountSetupItemsEnum.PROPERTY_RENT_INCOME] = this.getTransactions(property.id).pipe(map(transactions => new TransactionCollection(transactions).filterBy('chartAccounts.id', ChartAccountsListEnum.RENTAL_INCOME)));
19407
- requests[AccountSetupItemsEnum.PROPERTY_DEPRECIATION] = this.getDepreciations(TankTypeEnum.PROPERTY, property.id);
19408
- requests[AccountSetupItemsEnum.PROPERTY_CO_OWNER] = this.getCoOwners(property.id);
19409
- }
19410
- // business
19411
- if (business) {
19412
- requests[AccountSetupItemsEnum.SOLE_VEHICLE_CLAIM] = this.getVehicleClaims(business.id);
19413
- requests[AccountSetupItemsEnum.SOLE_HOME_OFFICE] = this.getHomeOfficeClaims(business.id);
19414
- requests[AccountSetupItemsEnum.SOLE_DEPRECIATION] = this.getDepreciations(TankTypeEnum.SOLE, business.id);
19415
- requests[AccountSetupItemsEnum.SOLE_LOGO] = this.businessService.getBy('id', business.id).pipe(map(businesses => businesses.filter(business => !!business.file)));
19416
- }
19417
- // bankAccount
19418
- if (bankAccount) {
19419
- requests[AccountSetupItemsEnum.BANK_TRANSACTION] = this.bankTransactionService.get().pipe(map(transactions => transactions.filterBy('bankAccount.id', bankAccount.id)));
19420
- requests[AccountSetupItemsEnum.BANK_ALLOCATION] = this.getAllocations(bankAccount.id);
19421
- requests[AccountSetupItemsEnum.BANK_RULE] = this.allocationRuleService.get().pipe(map(rules => rules.filterBy('bankAccount.id', bankAccount.id)));
19422
- if (bankAccount.loan) {
19423
- requests[AccountSetupItemsEnum.BANK_BORROWING_EXPENSE] = this.loanService.get().pipe(map(loans => loans.filterBy('bankAccount.id', bankAccount.id).filter(loan => !!loan.borrowingExpenses.length)));
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()));
19322
+ }
19323
+ return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items)));
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;
19424
19333
  }
19425
- }
19426
- const batch = Object.keys(requests).map(id => this.setItemStatus(itemsById.get(id), requests[id]));
19427
- if (!batch.length) {
19428
- return of(new AccountSetupItemCollection([]));
19429
- }
19430
- return combineLatest(batch).pipe(map((items) => new AccountSetupItemCollection(items).sortBy('order', 'asc')));
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')));
19431
19353
  }
19432
19354
  /**
19433
19355
  * Check and update isCompleted flag for passed item
@@ -19435,45 +19357,20 @@ class AccountSetupService {
19435
19357
  setItemStatus(item, request) {
19436
19358
  return request.pipe(map((result) => {
19437
19359
  const isSkipped = !!this.user.blacklistSetupItems.find((skippedItem) => skippedItem.id === item.id);
19438
- 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
+ }
19439
19366
  return item;
19440
19367
  }));
19441
19368
  }
19442
- getAllocations(bankAccountId) {
19443
- return combineLatest([this.bankTransactionService.get(), this.transactionAllocationService.get()]).pipe(map(([bankTransactions, allocations]) => {
19444
- const bankTransactionsIds = bankTransactions.filterBy('bankAccount.id', bankAccountId).getIds();
19445
- return new TransactionAllocationCollection(allocations).getByBankTransactionsIds(bankTransactionsIds).toArray();
19446
- }));
19447
- }
19448
- getTransactions(propertyId) {
19449
- return this.transactionService.getByPropertyId(propertyId);
19450
- }
19451
- getCoOwners(propertyId) {
19452
- return this.propertyShareService.getArrayBy('property.id', propertyId).pipe(map(shares => shares.slice(1)));
19453
- }
19454
- /**
19455
- * AccountSetupItemsEnum.FIRM_CLIENTS completed when client invites sent or accepted
19456
- */
19457
- getClients() {
19458
- return combineLatest([this.clientMovementService.getActive(), this.clientInviteService.get()]).pipe(map(([movements, invites]) => [...movements, ...invites]));
19459
- }
19460
- /**
19461
- * AccountSetupItemsEnum.FIRM_EMPLOYEES completed when employee invites sent or accepted
19462
- */
19463
- getEmployees() {
19464
- return combineLatest([this.employeeService.getArray(), this.employeeInviteService.getArray()]).pipe(map(([employees, invites]) => [...employees.slice(1), ...invites]));
19465
- }
19466
- /**
19467
- * AccountSetupItemsEnum.FIRM_DETAILS when firm data filled
19468
- */
19469
- getFirms() {
19470
- return this.firmService.get().pipe(map((firm) => [firm].filter(firm => firm.address || firm.phone || firm.file || firm.shortName)));
19471
- }
19472
19369
  /**
19473
19370
  * @TODO Alex: work with collection when services refactored
19474
19371
  * @TODO Vik: waiting for income sources refactoring
19475
19372
  */
19476
- getIncomeSources(isSalary) {
19373
+ getIncomeSources(isSalary = false) {
19477
19374
  return this.incomeSourceService.get().pipe(map((incomeSources) => {
19478
19375
  const collection = new IncomeSourceCollection(incomeSources);
19479
19376
  if (isSalary) {
@@ -19482,31 +19379,31 @@ class AccountSetupService {
19482
19379
  return collection.items.filter((incomeSource) => incomeSource.isOtherIncome());
19483
19380
  }));
19484
19381
  }
19485
- getVehicleClaims(businessId) {
19486
- return this.vehicleClaimService.getArray().pipe(map(claims => claims.filter(claim => claim.business?.id === businessId)));
19487
- }
19488
- getHomeOfficeClaims(businessId) {
19489
- return this.homeOfficeClaimService.getArray().pipe(map(claims => claims.filter(claim => claim.business?.id === businessId)));
19490
- }
19491
- getBankAccounts(tankType) {
19492
- return this.bankAccountsService.get().pipe(map((bankAccounts => bankAccounts.getByTankType(tankType).toArray())));
19493
- }
19494
- getDepreciations(tankType, id) {
19495
- return this.depreciationService.get().pipe(map(depreciations => {
19496
- depreciations = depreciations.getByTankType(tankType);
19497
- if (tankType === TankTypeEnum.PROPERTY && id) {
19498
- depreciations.filterBy('property.id', id);
19499
- }
19500
- if (tankType === TankTypeEnum.SOLE && id) {
19501
- 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());
19502
19392
  }
19503
- return depreciations.toArray();
19393
+ return of(null);
19504
19394
  }));
19505
19395
  }
19506
- getSharesightDetails(importEnabled) {
19507
- return this.sharesightDetailsService.getArray().pipe(map(details => details.filter(detail => importEnabled ? detail.importEnabled : detail.exportEnabled)));
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());
19508
19405
  }
19509
- 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: BankTransactionService }, { 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 }); }
19510
19407
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, providedIn: 'root' }); }
19511
19408
  }
19512
19409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: AccountSetupService, decorators: [{
@@ -19514,7 +19411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
19514
19411
  args: [{
19515
19412
  providedIn: 'root'
19516
19413
  }]
19517
- }], ctorParameters: () => [{ type: SetupItemService }, { type: PropertyService }, { type: IncomeSourceService }, { type: BankConnectionService }, { type: BankAccountService }, { type: BankTransactionService }, { 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 }] });
19518
19415
 
19519
19416
  class AdblockService {
19520
19417
  constructor() {
@@ -20651,7 +20548,6 @@ const ENDPOINTS = {
20651
20548
  SERVICE_PAYMENTS_GET: new Endpoint('GET', '\\/service-payments'),
20652
20549
  SERVICE_SUBSCRIPTIONS_GET: new Endpoint('GET', '\\/service-subscriptions'),
20653
20550
  SERVICE_SUBSCRIPTIONS_POST: new Endpoint('POST', '\\/service-subscriptions'),
20654
- SERVICE_SUBSCRIPTIONS_TRIAL_POST: new Endpoint('POST', '\\/service-subscriptions/'),
20655
20551
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
20656
20552
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
20657
20553
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
@@ -20708,7 +20604,6 @@ const ENDPOINTS = {
20708
20604
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
20709
20605
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
20710
20606
  TRANSACTIONS_ALLOCATIONS_BATCH_DELETE: new Endpoint('POST', '\\/transaction-allocations\\/delete'),
20711
- TRIAL_POST: new Endpoint('POST', '\\/trial'),
20712
20607
  USER_CONFIRMATION_POST: new Endpoint('POST', '\\/users\\/confirmation'),
20713
20608
  USER_CONFIRMATION_RESEND_POST: new Endpoint('POST', '\\/users\\/confirmation\\/resend'),
20714
20609
  USER_CURRENT_GET: new Endpoint('GET', '\\/users\\/current'),
@@ -21107,27 +21002,6 @@ var InviteStatusEnum;
21107
21002
  InviteStatusEnum[InviteStatusEnum["REJECTED"] = 3] = "REJECTED";
21108
21003
  })(InviteStatusEnum || (InviteStatusEnum = {}));
21109
21004
 
21110
- var YoutubeVideosEnum;
21111
- (function (YoutubeVideosEnum) {
21112
- YoutubeVideosEnum["HOLDING_ONBOARDING"] = "r3RhObELk-E";
21113
- YoutubeVideosEnum["MONEY_ONBOARDING"] = "E9NU14ndjhc";
21114
- YoutubeVideosEnum["PROPERTY_ONBOARDING"] = "llUV98-EMdI";
21115
- YoutubeVideosEnum["SOLE_ONBOARDING"] = "rqfTQFGwkUM";
21116
- YoutubeVideosEnum["WORK_ONBOARDING"] = "QEKolzS1B0U";
21117
- YoutubeVideosEnum["PROPERTY_RENTAL"] = "E9NU14ndjhc";
21118
- YoutubeVideosEnum["PROPERTY_DEPRECIATION"] = "_34lK9ooFzc";
21119
- YoutubeVideosEnum["VEHICLE_CLAIM"] = "4-6WaM83cw0";
21120
- YoutubeVideosEnum["SOLE_DEPRECIATION"] = "Bw3tx4miFF8";
21121
- YoutubeVideosEnum["SOLE_HOME_OFFICE"] = "fF8_kJHEKRE";
21122
- YoutubeVideosEnum["WORK_DEPRECIATION"] = "gNa9M4xovuI";
21123
- YoutubeVideosEnum["WORK_HOME_OFFICE"] = "qrQu4Yl72bU";
21124
- YoutubeVideosEnum["BANK_FEEDS"] = "meQmpw7ZY7c";
21125
- // @TODO replace PROPERTY_RENTAL
21126
- YoutubeVideosEnum["BANK_ACCOUNT_TRANSACTION"] = "meQmpw7ZY7c";
21127
- YoutubeVideosEnum["BANK_ALLOCATION_RULE"] = "meQmpw7ZY7c";
21128
- YoutubeVideosEnum["ALLOCATE_TRANSACTION"] = "meQmpw7ZY7c";
21129
- })(YoutubeVideosEnum || (YoutubeVideosEnum = {}));
21130
-
21131
21005
  var PropertyDepreciationCalculationEnum;
21132
21006
  (function (PropertyDepreciationCalculationEnum) {
21133
21007
  PropertyDepreciationCalculationEnum[PropertyDepreciationCalculationEnum["PRIME_COST"] = 1] = "PRIME_COST";
@@ -21444,36 +21318,6 @@ var UserEventSettingFieldEnum;
21444
21318
  UserEventSettingFieldEnum["FREQUENCY"] = "frequency";
21445
21319
  })(UserEventSettingFieldEnum || (UserEventSettingFieldEnum = {}));
21446
21320
 
21447
- class BusinessResolver {
21448
- constructor(soleDetailsService) {
21449
- this.soleDetailsService = soleDetailsService;
21450
- }
21451
- resolve() {
21452
- return this.soleDetailsService.getFirst();
21453
- }
21454
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, deps: [{ token: SoleDetailsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21455
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, providedIn: 'root' }); }
21456
- }
21457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: BusinessResolver, decorators: [{
21458
- type: Injectable,
21459
- args: [{ providedIn: 'root' }]
21460
- }], ctorParameters: () => [{ type: SoleDetailsService }] });
21461
-
21462
- class SoleDetailsResolver {
21463
- constructor(soleDetails) {
21464
- this.soleDetails = soleDetails;
21465
- }
21466
- resolve() {
21467
- return this.soleDetails.getFirst();
21468
- }
21469
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, deps: [{ token: SoleDetailsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
21470
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, providedIn: 'root' }); }
21471
- }
21472
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: SoleDetailsResolver, decorators: [{
21473
- type: Injectable,
21474
- args: [{ providedIn: 'root' }]
21475
- }], ctorParameters: () => [{ type: SoleDetailsService }] });
21476
-
21477
21321
  // deep clone for entity
21478
21322
  function cloneDeep(array) {
21479
21323
  return JSON.parse(JSON.stringify(array));
@@ -21633,7 +21477,7 @@ class AbstractForm extends FormGroup {
21633
21477
  */
21634
21478
  patchField(name, value) {
21635
21479
  const control = this.get(name);
21636
- if (!control || control.value === value) {
21480
+ if (control.value === value) {
21637
21481
  return;
21638
21482
  }
21639
21483
  // @TODO remove when all number fields refactored to prime inputnumber
@@ -21642,11 +21486,6 @@ class AbstractForm extends FormGroup {
21642
21486
  }
21643
21487
  control.patchValue(value);
21644
21488
  }
21645
- patch(fields) {
21646
- Object.entries(fields).forEach(([key, value]) => {
21647
- this.patchField(key, value);
21648
- });
21649
- }
21650
21489
  fieldChanged(name) {
21651
21490
  return this.get(name).value !== this.initialValue[name];
21652
21491
  }
@@ -25621,5 +25460,5 @@ var MessagesEnum;
25621
25460
  * Generated bundle index. Do not edit.
25622
25461
  */
25623
25462
 
25624
- 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, 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 };
25625
25464
  //# sourceMappingURL=taxtank-core.mjs.map