taxtank-core 2.0.24 → 2.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject, inject, EventEmitter, signal, NgModule, Pipe } from '@angular/core';
2
+ import { Inject, Injectable, inject, EventEmitter, NgModule, InjectionToken, Pipe } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { formatDate, CommonModule as CommonModule$1, CurrencyPipe, DatePipe } from '@angular/common';
5
5
  import * as i1 from '@angular/common/http';
6
- import { HttpParams, HttpClient, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
7
- import { map, catchError, mergeMap, filter, finalize, switchMap, first as first$1, take, startWith, debounceTime, distinctUntilChanged } from 'rxjs/operators';
8
- import { ReplaySubject, throwError, Subject, Observable, shareReplay, of, forkJoin, combineLatest, BehaviorSubject, from, merge as merge$1 } from 'rxjs';
6
+ import { HttpClient, HttpErrorResponse, HttpParams, HTTP_INTERCEPTORS } from '@angular/common/http';
7
+ import { map, filter, catchError, finalize, switchMap, first as first$1, take, mergeMap, startWith, debounceTime, distinctUntilChanged } from 'rxjs/operators';
8
+ import { ReplaySubject, Subject, Observable, shareReplay, of, forkJoin, throwError, combineLatest, BehaviorSubject, from, merge as merge$1 } from 'rxjs';
9
9
  import { plainToClass, Type, Transform, Exclude, Expose, classToPlain } from 'class-transformer';
10
+ import get from 'lodash/get';
10
11
  import 'reflect-metadata';
11
12
  import { __decorate } from 'tslib';
12
- import get from 'lodash/get';
13
13
  import flatten from 'lodash/flatten';
14
14
  import hasIn from 'lodash/hasIn';
15
15
  import intersection from 'lodash/intersection';
@@ -64,9 +64,6 @@ class AbstractModel {
64
64
  }
65
65
  }
66
66
 
67
- let Address$1 = class Address extends AbstractModel {
68
- };
69
-
70
67
  let Country$1 = class Country extends AbstractModel {
71
68
  };
72
69
 
@@ -86,6 +83,66 @@ class Country extends Country$1 {
86
83
  }
87
84
  }
88
85
 
86
+ class AddressService {
87
+ constructor(http, environment) {
88
+ this.http = http;
89
+ this.environment = environment;
90
+ this.countriesSubject = new ReplaySubject(1);
91
+ }
92
+ getCountries() {
93
+ if (!this._countries) {
94
+ this.http.get(`${this.environment.apiV2}/countries`)
95
+ .pipe(map((response) => response.map((item) => plainToClass(Country, item))))
96
+ .subscribe((countries) => {
97
+ this._countries = countries;
98
+ this.countriesSubject.next(countries);
99
+ });
100
+ }
101
+ return this.countriesSubject.asObservable();
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
104
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, providedIn: 'root' }); }
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, decorators: [{
107
+ type: Injectable,
108
+ args: [{
109
+ providedIn: 'root'
110
+ }]
111
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
112
+ type: Inject,
113
+ args: ['environment']
114
+ }] }] });
115
+
116
+ /**
117
+ * @TODO TT-3846 upgrade
118
+ */
119
+ class PdfService {
120
+ constructor(http, environment) {
121
+ this.http = http;
122
+ this.environment = environment;
123
+ }
124
+ fromHTMLElements(elements, landscape) {
125
+ const formData = new FormData();
126
+ formData.append('file', new Blob([...Array.from(elements).map(element => element.outerHTML)], { type: 'text/html' }));
127
+ formData.append('landscape', landscape ? '1' : '0');
128
+ return this.http.post(`${this.environment.apiV2}/pdf/html`, formData, { responseType: 'blob' });
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
131
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, providedIn: 'root' }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, decorators: [{
134
+ type: Injectable,
135
+ args: [{
136
+ providedIn: 'root'
137
+ }]
138
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
139
+ type: Inject,
140
+ args: ['environment']
141
+ }] }] });
142
+
143
+ let Address$1 = class Address extends AbstractModel {
144
+ };
145
+
89
146
  var AddressTypeEnum;
90
147
  (function (AddressTypeEnum) {
91
148
  AddressTypeEnum[AddressTypeEnum["STREET"] = 1] = "STREET";
@@ -10507,6 +10564,18 @@ var BankTransactionSummaryFieldsEnum;
10507
10564
  BankTransactionSummaryFieldsEnum["ALLOCATED_AMOUNT"] = "allocatedAmount";
10508
10565
  })(BankTransactionSummaryFieldsEnum || (BankTransactionSummaryFieldsEnum = {}));
10509
10566
 
10567
+ class BankTransactionComment extends AbstractModel {
10568
+ }
10569
+ __decorate([
10570
+ Type(() => Date)
10571
+ ], BankTransactionComment.prototype, "updatedAt", void 0);
10572
+ __decorate([
10573
+ Type(() => Date)
10574
+ ], BankTransactionComment.prototype, "createdAt", void 0);
10575
+ __decorate([
10576
+ Type(() => BankTransaction)
10577
+ ], BankTransactionComment.prototype, "bankTransaction", void 0);
10578
+
10510
10579
  class BorrowingExpenseLoan extends BorrowingExpenseLoan$1 {
10511
10580
  }
10512
10581
 
@@ -11368,254 +11437,6 @@ __decorate([
11368
11437
  Type(() => AussieStore)
11369
11438
  ], AussieAppointment.prototype, "store", void 0);
11370
11439
 
11371
- var CorelogicMessagesEnum;
11372
- (function (CorelogicMessagesEnum) {
11373
- CorelogicMessagesEnum["SERVICE_UNAVAILABLE"] = "Corelogic service is temporary unavailable, please try again in a few minutes.";
11374
- })(CorelogicMessagesEnum || (CorelogicMessagesEnum = {}));
11375
-
11376
- /**
11377
- * Common toast message class
11378
- */
11379
- class Toast {
11380
- constructor() {
11381
- this.duration = 3000;
11382
- this.autoClose = true;
11383
- }
11384
- }
11385
-
11386
- var ToastTypeEnum;
11387
- (function (ToastTypeEnum) {
11388
- ToastTypeEnum[ToastTypeEnum["INFO"] = 0] = "INFO";
11389
- ToastTypeEnum[ToastTypeEnum["SUCCESS"] = 1] = "SUCCESS";
11390
- ToastTypeEnum[ToastTypeEnum["WARNING"] = 2] = "WARNING";
11391
- ToastTypeEnum[ToastTypeEnum["ERROR"] = 3] = "ERROR";
11392
- })(ToastTypeEnum || (ToastTypeEnum = {}));
11393
-
11394
- /**
11395
- * popup notifications service (toast, snackbar).
11396
- */
11397
- class ToastService {
11398
- constructor() {
11399
- this.toast$ = new ReplaySubject(1);
11400
- }
11401
- get() {
11402
- return this.toast$.asObservable();
11403
- }
11404
- add(toast) {
11405
- // set date to prevent closing of equal toasts (extra case)
11406
- toast.date = new Date(),
11407
- this.toast$.next(toast);
11408
- }
11409
- success(message) {
11410
- this.add(plainToClass(Toast, {
11411
- type: ToastTypeEnum.SUCCESS,
11412
- title: 'Success!',
11413
- message,
11414
- }));
11415
- }
11416
- warning(message) {
11417
- this.add(plainToClass(Toast, {
11418
- type: ToastTypeEnum.WARNING,
11419
- title: 'Notification!',
11420
- message,
11421
- }));
11422
- }
11423
- error(message) {
11424
- this.add(plainToClass(Toast, {
11425
- type: ToastTypeEnum.ERROR,
11426
- title: 'Error!',
11427
- message,
11428
- }));
11429
- }
11430
- info(message) {
11431
- this.add(plainToClass(Toast, {
11432
- type: ToastTypeEnum.INFO,
11433
- title: 'Information',
11434
- message,
11435
- }));
11436
- }
11437
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11438
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, providedIn: 'root' }); }
11439
- }
11440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, decorators: [{
11441
- type: Injectable,
11442
- args: [{
11443
- providedIn: 'root'
11444
- }]
11445
- }] });
11446
-
11447
- class CorelogicService {
11448
- constructor(http, toastService, environment) {
11449
- this.http = http;
11450
- this.toastService = toastService;
11451
- this.environment = environment;
11452
- this.accessTokenSubject = new ReplaySubject(1);
11453
- }
11454
- getAccessToken(force = false) {
11455
- if (!this._accessToken || force) {
11456
- this.http.get(`${this.environment.apiV2}/corelogic/tokens`)
11457
- .pipe(map((response) => response.access_token))
11458
- .subscribe((token) => {
11459
- this._accessToken = token;
11460
- this.accessTokenSubject.next(this._accessToken);
11461
- });
11462
- }
11463
- return this.accessTokenSubject.asObservable();
11464
- }
11465
- getSuggestions(query, country = 'au') {
11466
- // @TODO handle different countries in future
11467
- return this.http.get(`${this.environment.coreLogicUrl}/property/${country}/v2/suggest.json?q=${query}`)
11468
- .pipe(map((response) => response.suggestions.map((item) => plainToClass(CorelogicSuggestion, item))), catchError((error) => {
11469
- this.toastService.error(CorelogicMessagesEnum.SERVICE_UNAVAILABLE);
11470
- return throwError(() => error);
11471
- }));
11472
- }
11473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, deps: [{ token: i1.HttpClient }, { token: ToastService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11474
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, providedIn: 'root' }); }
11475
- }
11476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, decorators: [{
11477
- type: Injectable,
11478
- args: [{
11479
- providedIn: 'root'
11480
- }]
11481
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: ToastService }, { type: undefined, decorators: [{
11482
- type: Inject,
11483
- args: ['environment']
11484
- }] }] });
11485
-
11486
- /**
11487
- * Corelogic interceptor add Core Logic access token for each search requests related with Core Logic API
11488
- */
11489
- class CorelogicInterceptor {
11490
- constructor(corelogicService, environment) {
11491
- this.corelogicService = corelogicService;
11492
- this.environment = environment;
11493
- }
11494
- intercept(request, next) {
11495
- // skip non-corelogic requests
11496
- if (!request.url.includes(this.environment.coreLogicUrl)) {
11497
- return next.handle(request);
11498
- }
11499
- // don't need token for this endpoint
11500
- if (request.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
11501
- return next.handle(request);
11502
- }
11503
- return this.corelogicService.getAccessToken()
11504
- .pipe(mergeMap((token) => next.handle(this.addToken(request, token))));
11505
- }
11506
- addToken(request, token) {
11507
- return request.clone({
11508
- setHeaders: {
11509
- Authorization: 'Bearer ' + token
11510
- }
11511
- });
11512
- }
11513
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11514
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor }); }
11515
- }
11516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor, decorators: [{
11517
- type: Injectable
11518
- }], ctorParameters: () => [{ type: CorelogicService }, { type: undefined, decorators: [{
11519
- type: Inject,
11520
- args: ['environment']
11521
- }] }] });
11522
-
11523
- /**
11524
- * Financial Year interceptor add financialYear parameter to requests because a lot of POST and GET requests require this parameter
11525
- * @TODO now we can get current fin year from user on backend. So we can remove this interceptor
11526
- */
11527
- class FinancialYearInterceptor {
11528
- constructor(environment) {
11529
- this.environment = environment;
11530
- }
11531
- intercept(request, next) {
11532
- // skip third party requests
11533
- // @TODO Alex: Also check and ignore requests we don't need financial year
11534
- if (!request.url.includes(this.environment.api_uri)) {
11535
- return next.handle(request);
11536
- }
11537
- // Set financial year parameter to requests
11538
- let params = new HttpParams({
11539
- fromString: request.params.toString()
11540
- });
11541
- // clone request to add new parameters
11542
- let clonedReq = request.clone();
11543
- // @TODO query params should be passed using second param of get request and HttpParams object
11544
- if (!params.get('financialYear') && !request.urlWithParams.includes('?financialYear') && !request.urlWithParams.includes('&financialYear')) {
11545
- params = params.set('financialYear', localStorage.getItem('financialYear'));
11546
- clonedReq = request.clone({
11547
- params: params
11548
- });
11549
- }
11550
- return next.handle(clonedReq);
11551
- }
11552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11553
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor }); }
11554
- }
11555
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
11556
- type: Injectable
11557
- }], ctorParameters: () => [{ type: undefined, decorators: [{
11558
- type: Inject,
11559
- args: ['environment']
11560
- }] }] });
11561
-
11562
- class AddressService {
11563
- constructor(http, environment) {
11564
- this.http = http;
11565
- this.environment = environment;
11566
- this.countriesSubject = new ReplaySubject(1);
11567
- }
11568
- getCountries() {
11569
- if (!this._countries) {
11570
- this.http.get(`${this.environment.apiV2}/countries`)
11571
- .pipe(map((response) => response.map((item) => plainToClass(Country, item))))
11572
- .subscribe((countries) => {
11573
- this._countries = countries;
11574
- this.countriesSubject.next(countries);
11575
- });
11576
- }
11577
- return this.countriesSubject.asObservable();
11578
- }
11579
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11580
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, providedIn: 'root' }); }
11581
- }
11582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AddressService, decorators: [{
11583
- type: Injectable,
11584
- args: [{
11585
- providedIn: 'root'
11586
- }]
11587
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
11588
- type: Inject,
11589
- args: ['environment']
11590
- }] }] });
11591
-
11592
- /**
11593
- * @TODO TT-3846 upgrade
11594
- */
11595
- class PdfService {
11596
- constructor(http, environment) {
11597
- this.http = http;
11598
- this.environment = environment;
11599
- }
11600
- fromHTMLElements(elements, landscape) {
11601
- const formData = new FormData();
11602
- formData.append('file', new Blob([...Array.from(elements).map(element => element.outerHTML)], { type: 'text/html' }));
11603
- formData.append('landscape', landscape ? '1' : '0');
11604
- return this.http.post(`${this.environment.apiV2}/pdf/html`, formData, { responseType: 'blob' });
11605
- }
11606
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
11607
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, providedIn: 'root' }); }
11608
- }
11609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PdfService, decorators: [{
11610
- type: Injectable,
11611
- args: [{
11612
- providedIn: 'root'
11613
- }]
11614
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
11615
- type: Inject,
11616
- args: ['environment']
11617
- }] }] });
11618
-
11619
11440
  /**
11620
11441
  * @TODO Alex (TT-1777): replace old logic with the new when all services ready
11621
11442
  * @TODO Alex (TT-1777): rename old logic and keep it for custom events
@@ -11760,22 +11581,93 @@ class DataService {
11760
11581
  getCache() {
11761
11582
  return clone(this.cache);
11762
11583
  }
11763
- /**
11764
- * never return cache directly to prevent update
11765
- */
11766
- getCacheFirst() {
11767
- return this.getCache()?.first;
11584
+ /**
11585
+ * never return cache directly to prevent update
11586
+ */
11587
+ getCacheFirst() {
11588
+ return this.getCache()?.first;
11589
+ }
11590
+ /**
11591
+ * @TODO vik any[] because of problems with base models extending abstractModel
11592
+ */
11593
+ setCache(data) {
11594
+ this.cache = this.createCollectionInstance(this.collectionClass, data);
11595
+ }
11596
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11597
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, providedIn: 'root' }); }
11598
+ }
11599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, decorators: [{
11600
+ type: Injectable,
11601
+ args: [{
11602
+ providedIn: 'root'
11603
+ }]
11604
+ }] });
11605
+
11606
+ /**
11607
+ * Common toast message class
11608
+ */
11609
+ class Toast {
11610
+ constructor() {
11611
+ this.duration = 3000;
11612
+ this.autoClose = true;
11613
+ }
11614
+ }
11615
+
11616
+ var ToastTypeEnum;
11617
+ (function (ToastTypeEnum) {
11618
+ ToastTypeEnum[ToastTypeEnum["INFO"] = 0] = "INFO";
11619
+ ToastTypeEnum[ToastTypeEnum["SUCCESS"] = 1] = "SUCCESS";
11620
+ ToastTypeEnum[ToastTypeEnum["WARNING"] = 2] = "WARNING";
11621
+ ToastTypeEnum[ToastTypeEnum["ERROR"] = 3] = "ERROR";
11622
+ })(ToastTypeEnum || (ToastTypeEnum = {}));
11623
+
11624
+ /**
11625
+ * popup notifications service (toast, snackbar).
11626
+ */
11627
+ class ToastService {
11628
+ constructor() {
11629
+ this.toast$ = new ReplaySubject(1);
11630
+ }
11631
+ get() {
11632
+ return this.toast$.asObservable();
11633
+ }
11634
+ add(toast) {
11635
+ // set date to prevent closing of equal toasts (extra case)
11636
+ toast.date = new Date(),
11637
+ this.toast$.next(toast);
11638
+ }
11639
+ success(message) {
11640
+ this.add(plainToClass(Toast, {
11641
+ type: ToastTypeEnum.SUCCESS,
11642
+ title: 'Success!',
11643
+ message,
11644
+ }));
11645
+ }
11646
+ warning(message) {
11647
+ this.add(plainToClass(Toast, {
11648
+ type: ToastTypeEnum.WARNING,
11649
+ title: 'Notification!',
11650
+ message,
11651
+ }));
11652
+ }
11653
+ error(message) {
11654
+ this.add(plainToClass(Toast, {
11655
+ type: ToastTypeEnum.ERROR,
11656
+ title: 'Error!',
11657
+ message,
11658
+ }));
11768
11659
  }
11769
- /**
11770
- * @TODO vik any[] because of problems with base models extending abstractModel
11771
- */
11772
- setCache(data) {
11773
- this.cache = this.createCollectionInstance(this.collectionClass, data);
11660
+ info(message) {
11661
+ this.add(plainToClass(Toast, {
11662
+ type: ToastTypeEnum.INFO,
11663
+ title: 'Information',
11664
+ message,
11665
+ }));
11774
11666
  }
11775
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11776
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, providedIn: 'root' }); }
11667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11668
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, providedIn: 'root' }); }
11777
11669
  }
11778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DataService, decorators: [{
11670
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ToastService, decorators: [{
11779
11671
  type: Injectable,
11780
11672
  args: [{
11781
11673
  providedIn: 'root'
@@ -12664,6 +12556,35 @@ var BasiqMessagesEnum;
12664
12556
  BasiqMessagesEnum["REVOKE_SUCCESS"] = "Consent to bank feeds has been revoked.";
12665
12557
  })(BasiqMessagesEnum || (BasiqMessagesEnum = {}));
12666
12558
 
12559
+ /**
12560
+ * Service that handling banks logic
12561
+ */
12562
+ class BankTransactionCommentService extends RestService$1 {
12563
+ constructor() {
12564
+ super(...arguments);
12565
+ this.modelClass = BankTransactionComment;
12566
+ this.collectionClass = Collection;
12567
+ this.endpointUri = 'bank-transaction-comments';
12568
+ this.disabledMethods = ['postBatch', 'putBatch', 'deleteBatch'];
12569
+ }
12570
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BankTransactionCommentService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
12571
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BankTransactionCommentService, providedIn: 'root' }); }
12572
+ }
12573
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BankTransactionCommentService, decorators: [{
12574
+ type: Injectable,
12575
+ args: [{
12576
+ providedIn: 'root'
12577
+ }]
12578
+ }] });
12579
+
12580
+ var BankTransactionCommentMessagesEnum;
12581
+ (function (BankTransactionCommentMessagesEnum) {
12582
+ BankTransactionCommentMessagesEnum["CREATED"] = "Note created";
12583
+ BankTransactionCommentMessagesEnum["UPDATED"] = "Note updated";
12584
+ BankTransactionCommentMessagesEnum["DELETED"] = "Note deleted";
12585
+ BankTransactionCommentMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this note?";
12586
+ })(BankTransactionCommentMessagesEnum || (BankTransactionCommentMessagesEnum = {}));
12587
+
12667
12588
  /**
12668
12589
  * Service that handling banks logic
12669
12590
  */
@@ -19703,44 +19624,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
19703
19624
  }]
19704
19625
  }], 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 }] });
19705
19626
 
19706
- class AdblockService {
19627
+ /**
19628
+ * service that checks adblock once we started application and saves this information
19629
+ * to unbound from promise of adblock-checker
19630
+ */
19631
+ class AdblockDetectorService {
19707
19632
  constructor() {
19708
- this.isAdBlockDetected = signal(false, ...(ngDevMode ? [{ debugName: "isAdBlockDetected" }] : []));
19709
- /**
19710
- * do we need to show initial or recurrent notification
19711
- */
19712
- this.isNotificationShown = signal(true, ...(ngDevMode ? [{ debugName: "isNotificationShown" }] : []));
19713
- /**
19714
- * checkAdBlock is promise based, so we need to know when service is ready
19715
- */
19716
- this.serviceInitSubject = new Subject();
19717
- this.isInitialModalClosed = signal(false, ...(ngDevMode ? [{ debugName: "isInitialModalClosed" }] : []));
19718
- checkAdBlock().then((isWorking) => {
19719
- this.isAdBlockDetected.set(isWorking);
19720
- this.setNotificationShown(this.getNotificationShown());
19721
- this.setInitialModalClosed(this.getInitialModalClosed());
19722
- this.serviceInitSubject.next(true);
19723
- this.serviceInitSubject.complete();
19724
- });
19633
+ checkAdBlock().then((isDetected) => this.isDetected = isDetected);
19725
19634
  }
19726
- getNotificationShown() {
19727
- return JSON.parse(localStorage.getItem('isNotificationShown')) || false;
19728
- }
19729
- setNotificationShown(isShown) {
19730
- localStorage.setItem('isNotificationShown', `${isShown}`);
19731
- this.isNotificationShown.set(isShown);
19732
- }
19733
- setInitialModalClosed(isClosed) {
19734
- localStorage.setItem('isInitialModalClosed', `${isClosed}`);
19735
- this.isInitialModalClosed.set(isClosed);
19736
- }
19737
- getInitialModalClosed() {
19738
- return JSON.parse(localStorage.getItem('isInitialModalClosed')) || false;
19739
- }
19740
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19741
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockService, providedIn: 'root' }); }
19635
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockDetectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19636
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockDetectorService, providedIn: 'root' }); }
19742
19637
  }
19743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockService, decorators: [{
19638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdblockDetectorService, decorators: [{
19744
19639
  type: Injectable,
19745
19640
  args: [{
19746
19641
  providedIn: 'root'
@@ -20660,6 +20555,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
20660
20555
  }]
20661
20556
  }], ctorParameters: () => [] });
20662
20557
 
20558
+ var CorelogicMessagesEnum;
20559
+ (function (CorelogicMessagesEnum) {
20560
+ CorelogicMessagesEnum["SERVICE_UNAVAILABLE"] = "Corelogic service is temporary unavailable, please try again in a few minutes.";
20561
+ })(CorelogicMessagesEnum || (CorelogicMessagesEnum = {}));
20562
+
20563
+ class CorelogicService {
20564
+ constructor(http, toastService, environment) {
20565
+ this.http = http;
20566
+ this.toastService = toastService;
20567
+ this.environment = environment;
20568
+ this.accessTokenSubject = new ReplaySubject(1);
20569
+ }
20570
+ getAccessToken(force = false) {
20571
+ if (!this._accessToken || force) {
20572
+ this.http.get(`${this.environment.apiV2}/corelogic/tokens`)
20573
+ .pipe(map((response) => response.access_token))
20574
+ .subscribe((token) => {
20575
+ this._accessToken = token;
20576
+ this.accessTokenSubject.next(this._accessToken);
20577
+ });
20578
+ }
20579
+ return this.accessTokenSubject.asObservable();
20580
+ }
20581
+ getSuggestions(query, country = 'au') {
20582
+ // @TODO handle different countries in future
20583
+ return this.http.get(`${this.environment.coreLogicUrl}/property/${country}/v2/suggest.json?q=${query}`)
20584
+ .pipe(map((response) => response.suggestions.map((item) => plainToClass(CorelogicSuggestion, item))), catchError((error) => {
20585
+ this.toastService.error(CorelogicMessagesEnum.SERVICE_UNAVAILABLE);
20586
+ return throwError(() => error);
20587
+ }));
20588
+ }
20589
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, deps: [{ token: i1.HttpClient }, { token: ToastService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
20590
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, providedIn: 'root' }); }
20591
+ }
20592
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicService, decorators: [{
20593
+ type: Injectable,
20594
+ args: [{
20595
+ providedIn: 'root'
20596
+ }]
20597
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: ToastService }, { type: undefined, decorators: [{
20598
+ type: Inject,
20599
+ args: ['environment']
20600
+ }] }] });
20601
+
20663
20602
  /**
20664
20603
  * Service for get property equity position half-year history chart data
20665
20604
  */
@@ -21048,6 +20987,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
21048
20987
  }]
21049
20988
  }] });
21050
20989
 
20990
+ /**
20991
+ * Corelogic interceptor add Core Logic access token for each search requests related with Core Logic API
20992
+ */
20993
+ class CorelogicInterceptor {
20994
+ constructor(corelogicService, environment) {
20995
+ this.corelogicService = corelogicService;
20996
+ this.environment = environment;
20997
+ }
20998
+ intercept(request, next) {
20999
+ // skip non-corelogic requests
21000
+ if (!request.url.includes(this.environment.coreLogicUrl)) {
21001
+ return next.handle(request);
21002
+ }
21003
+ // don't need token for this endpoint
21004
+ if (request.url.includes(`${this.environment.coreLogicUrl}/access/oauth/token`)) {
21005
+ return next.handle(request);
21006
+ }
21007
+ return this.corelogicService.getAccessToken()
21008
+ .pipe(mergeMap((token) => next.handle(this.addToken(request, token))));
21009
+ }
21010
+ addToken(request, token) {
21011
+ return request.clone({
21012
+ setHeaders: {
21013
+ Authorization: 'Bearer ' + token
21014
+ }
21015
+ });
21016
+ }
21017
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
21018
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor }); }
21019
+ }
21020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CorelogicInterceptor, decorators: [{
21021
+ type: Injectable
21022
+ }], ctorParameters: () => [{ type: CorelogicService }, { type: undefined, decorators: [{
21023
+ type: Inject,
21024
+ args: ['environment']
21025
+ }] }] });
21026
+
21027
+ /**
21028
+ * Financial Year interceptor add financialYear parameter to requests because a lot of POST and GET requests require this parameter
21029
+ * @TODO now we can get current fin year from user on backend. So we can remove this interceptor
21030
+ */
21031
+ class FinancialYearInterceptor {
21032
+ constructor(environment) {
21033
+ this.environment = environment;
21034
+ }
21035
+ intercept(request, next) {
21036
+ // skip third party requests
21037
+ // @TODO Alex: Also check and ignore requests we don't need financial year
21038
+ if (!request.url.includes(this.environment.api_uri)) {
21039
+ return next.handle(request);
21040
+ }
21041
+ // Set financial year parameter to requests
21042
+ let params = new HttpParams({
21043
+ fromString: request.params.toString()
21044
+ });
21045
+ // clone request to add new parameters
21046
+ let clonedReq = request.clone();
21047
+ // @TODO query params should be passed using second param of get request and HttpParams object
21048
+ if (!params.get('financialYear') && !request.urlWithParams.includes('?financialYear') && !request.urlWithParams.includes('&financialYear')) {
21049
+ params = params.set('financialYear', localStorage.getItem('financialYear'));
21050
+ clonedReq = request.clone({
21051
+ params: params
21052
+ });
21053
+ }
21054
+ return next.handle(clonedReq);
21055
+ }
21056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
21057
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor }); }
21058
+ }
21059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
21060
+ type: Injectable
21061
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
21062
+ type: Inject,
21063
+ args: ['environment']
21064
+ }] }] });
21065
+
21051
21066
  /**
21052
21067
  * Impersonate current's user (manager) to client experience with help of special header
21053
21068
  */
@@ -21127,6 +21142,10 @@ const ENDPOINTS = {
21127
21142
  BANK_TRANSACTIONS_GET: new Endpoint('GET', '\\/bank-transactions'),
21128
21143
  BANK_TRANSACTIONS_DELETE: new Endpoint('DELETE', '\\/bank-transactions\\/\\d+'),
21129
21144
  BANK_TRANSACTIONS_IMPORT_POST: new Endpoint('POST', '\\/bank-transactions\\/\\d+\\/import'),
21145
+ BANK_TRANSACTION_COMMENT_GET: new Endpoint('GET', '\\/bank-transaction-comments'),
21146
+ BANK_TRANSACTION_COMMENT_POST: new Endpoint('POST', '\\/bank-transaction-comments'),
21147
+ BANK_TRANSACTION_COMMENT_PUT: new Endpoint('PUT', '\\/bank-transaction-comments\\/\\d+'),
21148
+ BANK_TRANSACTION_COMMENT_DELETE: new Endpoint('DELETE', '\\/bank-transaction-comments\\/\\d+'),
21130
21149
  BASIQ_ACCOUNTS_GET: new Endpoint('GET', '\\/basiq\\/accounts'),
21131
21150
  BASIQ_TOKEN_GET: new Endpoint('GET', '\\/basiq\\/tokens'),
21132
21151
  BASIQ_DELETE: new Endpoint('PUT', '\\/bank-connections/\\d+\\/remove-basiq'),
@@ -21551,6 +21570,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
21551
21570
  args: ['environment']
21552
21571
  }] }] });
21553
21572
 
21573
+ const ADBLOCK_ERROR_HTML = new InjectionToken('ADBLOCK_ERROR_HTML');
21574
+ const ADBLOCK_ERROR_HTML_VALUE = `
21575
+ <div class="text-center">
21576
+ <strong>Action needed - Your adblocker is blocking CoreLogic</strong>
21577
+ To add a property in TaxTank we need to fetch data from CoreLogic — but your ad blocker is getting in the way.
21578
+ Please disable your adblocker or whitelist TaxTank to continue.
21579
+ <a class="btn" target="_blank" href="https://support.taxtank.com.au/en/articles/10505609-how-to-ensure-seamless-functionality-while-using-ad-blockers-with-taxtank">Learn more</a>
21580
+ </div>
21581
+ `;
21582
+
21583
+ /**
21584
+ * interceptor for handling errors which occurs because of adBlocker
21585
+ */
21586
+ class AdBlockErrorInterceptor {
21587
+ constructor(environment, adblockDetectService, toastService, adblockHtml) {
21588
+ this.environment = environment;
21589
+ this.adblockDetectService = adblockDetectService;
21590
+ this.toastService = toastService;
21591
+ this.adblockHtml = adblockHtml;
21592
+ }
21593
+ intercept(request, next) {
21594
+ if (!(request.url.includes(this.environment.api_uri) || request.url.includes(this.environment.apiV2))) {
21595
+ return next.handle(request).pipe(catchError((error) => {
21596
+ if (error.status === 0 && this.adblockDetectService.isDetected) {
21597
+ this.toastService.error(this.adblockHtml);
21598
+ return [];
21599
+ }
21600
+ return throwError(() => error);
21601
+ }));
21602
+ }
21603
+ return next.handle(request);
21604
+ }
21605
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdBlockErrorInterceptor, deps: [{ token: 'environment' }, { token: AdblockDetectorService }, { token: ToastService }, { token: ADBLOCK_ERROR_HTML }], target: i0.ɵɵFactoryTarget.Injectable }); }
21606
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdBlockErrorInterceptor }); }
21607
+ }
21608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: AdBlockErrorInterceptor, decorators: [{
21609
+ type: Injectable
21610
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
21611
+ type: Inject,
21612
+ args: ['environment']
21613
+ }] }, { type: AdblockDetectorService }, { type: ToastService }, { type: undefined, decorators: [{
21614
+ type: Inject,
21615
+ args: [ADBLOCK_ERROR_HTML]
21616
+ }] }] });
21617
+
21554
21618
  class InterceptorsModule {
21555
21619
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21556
21620
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: InterceptorsModule }); }
@@ -21595,6 +21659,15 @@ class InterceptorsModule {
21595
21659
  provide: HTTP_INTERCEPTORS,
21596
21660
  useClass: BasiqClientIdInterceptor,
21597
21661
  multi: true
21662
+ },
21663
+ {
21664
+ provide: HTTP_INTERCEPTORS,
21665
+ useClass: AdBlockErrorInterceptor,
21666
+ multi: true
21667
+ },
21668
+ {
21669
+ provide: ADBLOCK_ERROR_HTML,
21670
+ useValue: ADBLOCK_ERROR_HTML_VALUE
21598
21671
  }
21599
21672
  ] }); }
21600
21673
  }
@@ -21642,6 +21715,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
21642
21715
  provide: HTTP_INTERCEPTORS,
21643
21716
  useClass: BasiqClientIdInterceptor,
21644
21717
  multi: true
21718
+ },
21719
+ {
21720
+ provide: HTTP_INTERCEPTORS,
21721
+ useClass: AdBlockErrorInterceptor,
21722
+ multi: true
21723
+ },
21724
+ {
21725
+ provide: ADBLOCK_ERROR_HTML,
21726
+ useValue: ADBLOCK_ERROR_HTML_VALUE
21645
21727
  }
21646
21728
  ]
21647
21729
  }]
@@ -22931,7 +23013,7 @@ function nameValidator() {
22931
23013
  * @param controlsFn function to get controls from target parent
22932
23014
  * it's easier to pass controls instead of function, but it won't work with dynamic fields
22933
23015
  */
22934
- function matchSumValidator(controlsFn) {
23016
+ function matchSumValidator(controlsFn, error) {
22935
23017
  return (targetControl) => {
22936
23018
  const controls = controlsFn.bind(targetControl.parent)();
22937
23019
  if (controls.find(control => control.value === null) || targetControl.value === null) {
@@ -22939,7 +23021,7 @@ function matchSumValidator(controlsFn) {
22939
23021
  }
22940
23022
  const sum = controls.reduce((acc, control) => acc + control.value, 0);
22941
23023
  const targetValue = targetControl.value;
22942
- return sum.toFixed(2) === targetValue.toFixed(2) ? null : { matchSum: true };
23024
+ return sum.toFixed(2) === targetValue.toFixed(2) ? null : { matchSum: error };
22943
23025
  };
22944
23026
  }
22945
23027
 
@@ -23055,6 +23137,15 @@ class FirmInviteForm extends AbstractForm {
23055
23137
  }
23056
23138
  }
23057
23139
 
23140
+ class BankTransactionCommentForm extends AbstractForm {
23141
+ constructor(comment = plainToClass(BankTransactionComment, {})) {
23142
+ super({
23143
+ content: new FormControl(comment.content, [Validators.required, Validators.maxLength(255)]),
23144
+ }, comment);
23145
+ this.comment = comment;
23146
+ }
23147
+ }
23148
+
23058
23149
  /**
23059
23150
  * Form array with bank account properties
23060
23151
  * @TODO create AbstractFormArray
@@ -23605,26 +23696,6 @@ class BankAccountAllocationForm extends AbstractForm {
23605
23696
  }
23606
23697
  }
23607
23698
 
23608
- /**
23609
- * Form is using for import basiq bank accounts.
23610
- * Basiq accounts has all data except tank type, properties and loan partially
23611
- */
23612
- class BankAccountImportForm extends BankAccountAllocationForm {
23613
- constructor(bankAccount) {
23614
- super(bankAccount);
23615
- if (bankAccount.isLoan()) {
23616
- // Attach bank account to loan for LoanForm's logic
23617
- // @TODO Alex/Vik: we should use separated API for bank accounts and loans
23618
- const loan = plainToClass(Loan, Object.assign(bankAccount.loan, { bankAccount: { accountId: bankAccount.accountId } }));
23619
- this.addControl('loan', new LoanForm(loan));
23620
- }
23621
- // don't preselect tank type by default
23622
- this.get('tankType').setValue(null);
23623
- // basiq account import form should be disabled (unchecked) by default
23624
- this.disable();
23625
- }
23626
- }
23627
-
23628
23699
  /**
23629
23700
  * Form is using for single manual bank account creation (not Basiq)
23630
23701
  */
@@ -23665,6 +23736,26 @@ class BankAccountAddManualForm extends BankAccountAllocationForm {
23665
23736
  }
23666
23737
  }
23667
23738
 
23739
+ /**
23740
+ * Form is using for import basiq bank accounts.
23741
+ * Basiq accounts has all data except tank type, properties and loan partially
23742
+ */
23743
+ class BankAccountImportForm extends BankAccountAllocationForm {
23744
+ constructor(bankAccount) {
23745
+ super(bankAccount);
23746
+ if (bankAccount.isLoan()) {
23747
+ // Attach bank account to loan for LoanForm's logic
23748
+ // @TODO Alex/Vik: we should use separated API for bank accounts and loans
23749
+ const loan = plainToClass(Loan, Object.assign(bankAccount.loan, { bankAccount: { accountId: bankAccount.accountId } }));
23750
+ this.addControl('loan', new LoanForm(loan));
23751
+ }
23752
+ // don't preselect tank type by default
23753
+ this.get('tankType').setValue(null);
23754
+ // basiq account import form should be disabled (unchecked) by default
23755
+ this.disable();
23756
+ }
23757
+ }
23758
+
23668
23759
  /**
23669
23760
  * Validator check if at least one control in formArray is enabled
23670
23761
  */
@@ -25717,7 +25808,7 @@ class HoldingIncomeForm extends WorkTransactionForm {
25717
25808
  incomeSource: new UntypedFormControl(transaction.incomeSource, [Validators.required, autocompleteValidator()]),
25718
25809
  });
25719
25810
  // transactionAmount=frankedAmount + unfrankedAmount
25720
- this.get('amount').setValidators([Validators.required, conditionalValidator(() => this.get('chartAccounts').value && this.get('chartAccounts').value.isDividends(), matchSumValidator(this.getAmountComponents))]);
25811
+ this.get('amount').setValidators([Validators.required, conditionalValidator(() => this.get('chartAccounts').value && this.get('chartAccounts').value.isDividends(), matchSumValidator(this.getAmountComponents, 'The Franked and Unfranked amounts entered do not equal the total Amount received. Please check and try again.'))]);
25721
25812
  // forbid to edit some fields for allocated transaction
25722
25813
  if (allocations.length) {
25723
25814
  this.get('chartAccounts').disable();
@@ -26286,5 +26377,5 @@ var MessagesEnum;
26286
26377
  * Generated bundle index. Do not edit.
26287
26378
  */
26288
26379
 
26289
- 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, DateFormatsEnum, 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, DocumentFolderCollection, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, 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, 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, TreeNodeData, 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, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
26380
+ export { ADBLOCK_ERROR_HTML, ADBLOCK_ERROR_HTML_VALUE, AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockDetectorService, 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, BankTransactionComment, BankTransactionCommentForm, BankTransactionCommentMessagesEnum, BankTransactionCommentService, 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, DateFormatsEnum, 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, DocumentFolderCollection, DocumentFolderForm, DocumentFolderMessagesEnum, DocumentFolderService, DocumentForm, DocumentMessagesEnum, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastCollection, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceMessagesEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListHoldingEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, IncomeSourceTypeService, InterceptorsModule, IntercomService, InviteStatusEnum, InvoicePaymentForm, InvoiceTransactionsService, JsPdf, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, 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, 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, TreeNodeData, 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, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, currentFinYearValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, replace, sort, sortDeep, toArray };
26290
26381
  //# sourceMappingURL=taxtank-core.mjs.map