taxtank-core 3.0.37 → 3.0.39

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.
@@ -28,7 +28,7 @@ import cloneDeep$1 from 'lodash/cloneDeep';
28
28
  import compact from 'lodash/compact';
29
29
  import groupBy from 'lodash/groupBy';
30
30
  import moment$1 from 'moment/moment';
31
- import { Subject, Observable, ReplaySubject, shareReplay, of, forkJoin, EMPTY, throwError, BehaviorSubject, tap, concatMap, combineLatest, from, merge as merge$1 } from 'rxjs';
31
+ import { Subject, Observable, ReplaySubject, shareReplay, of, forkJoin, EMPTY, throwError, BehaviorSubject, tap, concatMap, combineLatest, map as map$1, catchError as catchError$1, from, merge as merge$1 } from 'rxjs';
32
32
  import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource.min.js';
33
33
  import clone from 'lodash/clone';
34
34
  import merge from 'lodash/merge';
@@ -2060,6 +2060,8 @@ var MonthNumberEnum;
2060
2060
 
2061
2061
  const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
2062
2062
 
2063
+ const DAY_MS = 24 * 60 * 60 * 1000;
2064
+
2063
2065
  /**
2064
2066
  * @TODO refactor with Map
2065
2067
  * List of collections grouped by passed property
@@ -6705,7 +6707,7 @@ class Property extends Property$1 {
6705
6707
  * Any assets acquired before this day are CGT exempt (because the tax didn't exist before this date).
6706
6708
  */
6707
6709
  static { this.preCGTAssetDate = new Date(1985, 9, 20); }
6708
- static { this.corelogicCooldown = 30 * 24 * 60 * 60 * 1000; }
6710
+ static { this.corelogicCooldown = 30 * DAY_MS; }
6709
6711
  get name() {
6710
6712
  return this.address.name;
6711
6713
  }
@@ -7356,10 +7358,7 @@ __decorate([
7356
7358
  class Transaction extends Transaction$1 {
7357
7359
  constructor() {
7358
7360
  super(...arguments);
7359
- /**
7360
- * @TODO rename to childTransactions
7361
- */
7362
- this.transactions = [];
7361
+ this.childTransactions = [];
7363
7362
  this.metaFields = [];
7364
7363
  this.allocations = [];
7365
7364
  this.tax = 0;
@@ -7369,6 +7368,16 @@ class Transaction extends Transaction$1 {
7369
7368
  this.currency = 'AUD';
7370
7369
  }
7371
7370
  static { this.className = 'Transaction'; }
7371
+ /**
7372
+ * @deprecated use childTransactions because backend uses childTransactions
7373
+ * @TODO: taxtankit TT-6208 refactoring. rename all mentions of transactions to childTransactions and remove get/set
7374
+ */
7375
+ get transactions() {
7376
+ return this.childTransactions;
7377
+ }
7378
+ set transactions(transactions) {
7379
+ this.childTransactions = transactions;
7380
+ }
7372
7381
  get invoiceId() {
7373
7382
  return this.invoiceItem?.invoice.id;
7374
7383
  }
@@ -7492,7 +7501,7 @@ class Transaction extends Transaction$1 {
7492
7501
  return this.grossAmountWithoutGst + this.gstAmount;
7493
7502
  }
7494
7503
  get grossTaxableAmount() {
7495
- const untaxableAdjustment = new Collection(this.transactions)
7504
+ const untaxableAdjustment = new Collection(this.childTransactions)
7496
7505
  .filter(transaction => transaction.chartAccounts.id === ChartAccountsSalaryAdjustmentsListEnum.PRE_TAX_DEDUCTIONS_OTHER).sumBy('amount');
7497
7506
  return this.grossAmount - untaxableAdjustment;
7498
7507
  }
@@ -7508,7 +7517,7 @@ class Transaction extends Transaction$1 {
7508
7517
  return grossAmount;
7509
7518
  }
7510
7519
  // Included transactions already affect the parent amount.
7511
- const adjustments = new Collection(this.transactions)
7520
+ const adjustments = new Collection(this.childTransactions)
7512
7521
  .filter(transaction => !transaction.chartAccounts?.isAdjustmentIncluded());
7513
7522
  const income = adjustments.filter(transaction => transaction.isIncome()).sumBy('amount');
7514
7523
  const expense = adjustments.filter(transaction => transaction.isExpense()).sumBy('amount', true);
@@ -7525,7 +7534,7 @@ class Transaction extends Transaction$1 {
7525
7534
  * ie user received 1000$ salary including 100$ tips. NetAmount=1000$, amount=900$, tips=100$
7526
7535
  */
7527
7536
  get netAmount() {
7528
- return new Collection(this.transactions)
7537
+ return new Collection(this.childTransactions)
7529
7538
  .filter((t) => t.chartAccounts?.isAdjustmentIncluded())
7530
7539
  .sumBy('amount') + this.amountWithGst;
7531
7540
  }
@@ -7562,7 +7571,10 @@ class Transaction extends Transaction$1 {
7562
7571
  }
7563
7572
  __decorate([
7564
7573
  Type(() => Transaction)
7565
- ], Transaction.prototype, "transactions", void 0);
7574
+ ], Transaction.prototype, "childTransactions", void 0);
7575
+ __decorate([
7576
+ Type(() => Transaction)
7577
+ ], Transaction.prototype, "transactions", null);
7566
7578
  __decorate([
7567
7579
  Type(() => Property)
7568
7580
  ], Transaction.prototype, "property", void 0);
@@ -7750,12 +7762,58 @@ var TransactionCategoryEnum;
7750
7762
  TransactionCategoryEnum[TransactionCategoryEnum["PERSONAL"] = 3] = "PERSONAL";
7751
7763
  })(TransactionCategoryEnum || (TransactionCategoryEnum = {}));
7752
7764
 
7765
+ const HIGH_CONFIDENCE = 0.8;
7766
+ const MEDIUM_CONFIDENCE = 0.6;
7767
+ /**
7768
+ * Backend finds and matches existing transactions with uploaded receipt to decide what to do with it:
7769
+ * transaction - attach receipt to it, bankTransaction - allocate it, no match - create new transaction
7770
+ */
7771
+ class TransactionImportMatch extends AbstractModel {
7772
+ get confidenceLabel() {
7773
+ switch (true) {
7774
+ case this.confidence >= HIGH_CONFIDENCE:
7775
+ return 'high';
7776
+ case this.confidence >= MEDIUM_CONFIDENCE:
7777
+ return 'medium';
7778
+ default:
7779
+ return 'low';
7780
+ }
7781
+ }
7782
+ get amountDiff() {
7783
+ return this.actualAmount - this.expectedAmount;
7784
+ }
7785
+ get daysDiff() {
7786
+ return Math.round((this.actualDate.getTime() - this.expectedDate.getTime()) / DAY_MS);
7787
+ }
7788
+ }
7789
+ __decorate([
7790
+ Type(() => Transaction)
7791
+ ], TransactionImportMatch.prototype, "transaction", void 0);
7792
+ __decorate([
7793
+ Type(() => BankTransaction)
7794
+ ], TransactionImportMatch.prototype, "bankTransaction", void 0);
7795
+ __decorate([
7796
+ Type(() => Date)
7797
+ ], TransactionImportMatch.prototype, "expectedDate", void 0);
7798
+ __decorate([
7799
+ Type(() => Date)
7800
+ ], TransactionImportMatch.prototype, "actualDate", void 0);
7801
+
7753
7802
  /**
7754
7803
  * Transaction parsed from an imported receipt.
7755
7804
  */
7756
- class TransactionSuggestion extends Transaction {
7757
- static { this.className = 'TransactionSuggestion'; }
7805
+ class TransactionImport extends AbstractModel {
7806
+ static { this.className = 'TransactionImport'; }
7758
7807
  }
7808
+ __decorate([
7809
+ Type(() => Transaction)
7810
+ ], TransactionImport.prototype, "transaction", void 0);
7811
+ __decorate([
7812
+ Type(() => BankAccount)
7813
+ ], TransactionImport.prototype, "bankAccount", void 0);
7814
+ __decorate([
7815
+ Exclude({ toPlainOnly: true })
7816
+ ], TransactionImport.prototype, "localFile", void 0);
7759
7817
 
7760
7818
  /**
7761
7819
  * @TODO Alex: clarify grouping rules and refactor
@@ -18486,7 +18544,7 @@ class TransactionService extends RestService {
18486
18544
  this.listenNotifications();
18487
18545
  }
18488
18546
  get(path = this.apiUrl) {
18489
- return super.get(path).pipe(map(transactions => this.groupByParent(transactions)));
18547
+ return super.get(path).pipe(map$1(transactions => this.groupByParent(transactions)));
18490
18548
  }
18491
18549
  /**
18492
18550
  * Add single new transaction
@@ -18495,7 +18553,7 @@ class TransactionService extends RestService {
18495
18553
  add(model) {
18496
18554
  // we don't have POST API endpoint for single transaction
18497
18555
  return this.addBatch([model])
18498
- .pipe(map((newTransactions) => {
18556
+ .pipe(map$1((newTransactions) => {
18499
18557
  // @TODO alex
18500
18558
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_CREATED, newTransactions[0]));
18501
18559
  return newTransactions[0];
@@ -18505,13 +18563,13 @@ class TransactionService extends RestService {
18505
18563
  * get transactions related with property
18506
18564
  */
18507
18565
  getByPropertyId(propertyId) {
18508
- return this.get().pipe(map((transactions) => transactions.filter((transaction) => transaction.property?.id === propertyId)));
18566
+ return this.get().pipe(map$1((transactions) => transactions.filter((transaction) => transaction.property?.id === propertyId)));
18509
18567
  }
18510
18568
  /**
18511
18569
  * get list of transactions with tank type 'Work'
18512
18570
  */
18513
18571
  getWorkTransactions() {
18514
- return this.get().pipe(map((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
18572
+ return this.get().pipe(map$1((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
18515
18573
  }
18516
18574
  /**
18517
18575
  * Get list of property holding costs (transactions related to vacant land property)
@@ -18520,7 +18578,7 @@ class TransactionService extends RestService {
18520
18578
  return this.fetch(`${this.environment.apiV2}/properties/${propertyId}/holding-costs`, false);
18521
18579
  }
18522
18580
  getWithoutTaxFreeProperty(categories = ['']) {
18523
- return this.fetch(`${this.apiUrl}`, false, { excludeTaxFreePropertyCategories: categories }).pipe(map(transactions => this.groupByParent(transactions)));
18581
+ return this.fetch(`${this.apiUrl}`, false, { excludeTaxFreePropertyCategories: categories }).pipe(map$1(transactions => this.groupByParent(transactions)));
18524
18582
  }
18525
18583
  groupByParent(transactions) {
18526
18584
  transactions.forEach((transaction) => {
@@ -18535,16 +18593,16 @@ class TransactionService extends RestService {
18535
18593
  */
18536
18594
  getTaxableWorkTransactions() {
18537
18595
  return this.getWorkTransactions()
18538
- .pipe(map((transactions) => transactions.filter((transaction) => !!transaction.chartAccounts.taxReturnItem)));
18596
+ .pipe(map$1((transactions) => transactions.filter((transaction) => !!transaction.chartAccounts.taxReturnItem)));
18539
18597
  }
18540
18598
  /**
18541
18599
  * add multiple transactions
18542
18600
  * @param transactions List of new Transaction instances for saving
18543
18601
  */
18544
18602
  addBatch(transactions) {
18545
- transactions = _.cloneDeep(transactions);
18603
+ transactions = cloneDeep$1(transactions);
18546
18604
  return this.http.post(`${this.environment.apiV2}/${this.url}`, classToPlain(transactions))
18547
- .pipe(map((response) => {
18605
+ .pipe(map$1((response) => {
18548
18606
  const addedTransactions = response.map((item) => this.createModelInstance(item));
18549
18607
  transactions.forEach((transaction, index) => {
18550
18608
  // @TODO Viktor: implement API for saving of nested transactions
@@ -18574,7 +18632,7 @@ class TransactionService extends RestService {
18574
18632
  */
18575
18633
  update(transaction) {
18576
18634
  return this.http.put(`${this.environment.apiV2}/${this.url}/${transaction.id}`, classToPlain(transaction))
18577
- .pipe(map((response) => {
18635
+ .pipe(map$1((response) => {
18578
18636
  const updatedTransaction = this.createModelInstance(response);
18579
18637
  // @TODO Viktor: implement API for saving of nested transactions
18580
18638
  if (transaction.transactions.length) {
@@ -18604,8 +18662,11 @@ class TransactionService extends RestService {
18604
18662
  */
18605
18663
  updateBatch(transactions) {
18606
18664
  return this.http.put(`${this.environment.apiV2}/${this.url}`, classToPlain(transactions))
18607
- .pipe(map((response) => {
18665
+ .pipe(map$1((response) => {
18608
18666
  const updatedTransactions = response.map((item) => this.createModelInstance(item));
18667
+ if (!this.cache) {
18668
+ return updatedTransactions;
18669
+ }
18609
18670
  updatedTransactions.forEach((updatedTransaction) => {
18610
18671
  replace(this.cache, updatedTransaction);
18611
18672
  });
@@ -18614,7 +18675,7 @@ class TransactionService extends RestService {
18614
18675
  }));
18615
18676
  }
18616
18677
  deleteBatch(models) {
18617
- return super.deleteBatch(models).pipe(map(() => {
18678
+ return super.deleteBatch(models).pipe(map$1(() => {
18618
18679
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_DELETED, models[0]));
18619
18680
  }));
18620
18681
  }
@@ -18624,7 +18685,7 @@ class TransactionService extends RestService {
18624
18685
  */
18625
18686
  delete(model) {
18626
18687
  return this.http.delete(`${this.environment.apiV2}/${this.url}/${model.id}`)
18627
- .pipe(map(() => {
18688
+ .pipe(map$1(() => {
18628
18689
  this.cache = this.cache.filter((transaction) => {
18629
18690
  // when delete transfer we delete actually 2 transactions
18630
18691
  if (model.isTransfer) {
@@ -18647,13 +18708,6 @@ class TransactionService extends RestService {
18647
18708
  this.transactionDeleted.emit(model);
18648
18709
  }));
18649
18710
  }
18650
- parse(files) {
18651
- const formData = new FormData();
18652
- files.forEach(file => {
18653
- formData.append('files[]', file);
18654
- });
18655
- return this.http.post(`${this.apiUrl}/parse`, formData).pipe(map((transaction) => plainToClass(TransactionSuggestion, transaction)));
18656
- }
18657
18711
  /**
18658
18712
  * Listen to EventDispatcherService event related to Depreciation changing
18659
18713
  */
@@ -18689,6 +18743,9 @@ class TransactionService extends RestService {
18689
18743
  });
18690
18744
  }
18691
18745
  replaceInCache(transactionToReplace) {
18746
+ if (!this.cache) {
18747
+ return;
18748
+ }
18692
18749
  replace(this.cache, transactionToReplace);
18693
18750
  this.updateCache();
18694
18751
  }
@@ -18771,6 +18828,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
18771
18828
  }]
18772
18829
  }] });
18773
18830
 
18831
+ /**
18832
+ * Service to parse receipts into transactions and find existing matches for them
18833
+ */
18834
+ class TransactionImportService extends RestService$1 {
18835
+ constructor() {
18836
+ super(...arguments);
18837
+ this.modelClass = TransactionImport;
18838
+ this.collectionClass = Collection;
18839
+ this.endpointUri = 'transaction-imports';
18840
+ this.disabledMethods = ['get', 'postBatch', 'put', 'putBatch', 'delete', 'deleteBatch'];
18841
+ }
18842
+ parse(file) {
18843
+ const formData = new FormData();
18844
+ formData.append('file', file);
18845
+ return this.importFile(formData, `${this.apiUrl}/parse`).pipe(
18846
+ // document is impossible to parse: import without transaction, user adds it manually
18847
+ catchError$1(() => of(new TransactionImport())), map$1((transactionImport) => {
18848
+ // @todo: taxtankit change to regular work with files in TT-5613
18849
+ // backend doesn't return a file URL, so create a local blob URL to display the uploaded file preview
18850
+ transactionImport.localFile = plainToClass(AppFile, {
18851
+ publicUrl: URL.createObjectURL(file),
18852
+ originalName: file.name,
18853
+ size: file.size,
18854
+ mimeType: file.type,
18855
+ });
18856
+ return transactionImport;
18857
+ }));
18858
+ }
18859
+ match(transactionImport) {
18860
+ // backend returns matches instead of the posted model
18861
+ return this.post(transactionImport, `${this.apiUrl}/match`).pipe(map$1((matches) => plainToClass(TransactionImportMatch, matches)));
18862
+ }
18863
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
18864
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, providedIn: 'root' }); }
18865
+ }
18866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, decorators: [{
18867
+ type: Injectable,
18868
+ args: [{
18869
+ providedIn: 'root'
18870
+ }]
18871
+ }] });
18872
+
18774
18873
  // @TODO Artem: implement cache and extend rest?
18775
18874
  class YoutubeService {
18776
18875
  static { this.googleUrl = `https://www.googleapis.com/youtube/v3/playlistItems?part=snippet`; }
@@ -25221,7 +25320,8 @@ const ENDPOINTS = {
25221
25320
  TRANSACTIONS_GET: new Endpoint('GET', '\\/transactions'),
25222
25321
  TRANSACTIONS_POST: new Endpoint('POST', '\\/transactions'),
25223
25322
  TRANSACTIONS_PUT: new Endpoint('PUT', '\\/transactions'),
25224
- TRANSACTIONS_PARSE: new Endpoint('POST', '\\/transactions\\/parse'),
25323
+ TRANSACTION_IMPORTS_PARSE: new Endpoint('POST', '\\/transaction-imports\\/parse'),
25324
+ TRANSACTION_IMPORTS_MATCH: new Endpoint('POST', '\\/transaction-imports\\/match'),
25225
25325
  TRANSACTIONS_ALLOCATIONS_GET: new Endpoint('GET', '\\/transaction-allocations'),
25226
25326
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
25227
25327
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
@@ -25382,13 +25482,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
25382
25482
  }] }] });
25383
25483
 
25384
25484
  const ADBLOCK_ERROR_HTML = new InjectionToken('ADBLOCK_ERROR_HTML');
25385
- const ADBLOCK_ERROR_HTML_VALUE = `
25386
- <div class="text-center">
25387
- <strong>Action needed - Your adblocker is blocking CoreLogic</strong>
25388
- To add a property in TaxTank we need to fetch data from CoreLogic, however your ad blocker is getting in the way.
25389
- Please disable your adblocker or whitelist TaxTank to continue.
25390
- <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>
25391
- </div>
25485
+ const ADBLOCK_ERROR_HTML_VALUE = `
25486
+ <div class="text-center">
25487
+ <strong>Action needed - Your adblocker is blocking CoreLogic</strong>
25488
+ To add a property in TaxTank we need to fetch data from CoreLogic, however your ad blocker is getting in the way.
25489
+ Please disable your adblocker or whitelist TaxTank to continue.
25490
+ <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>
25491
+ </div>
25392
25492
  `;
25393
25493
 
25394
25494
  /**
@@ -29757,17 +29857,30 @@ class TransactionBaseForm extends AbstractForm {
29757
29857
  if (!this.isGstApplicable()) {
29758
29858
  return;
29759
29859
  }
29760
- // update gst if applicable
29761
- if (chartAccounts.isGST) {
29762
- this.get('isGST').enable();
29763
- this.get('isGST').patchValue(true);
29764
- }
29765
- else {
29766
- this.get('isGST').patchValue(false);
29767
- this.get('isGST').disable();
29768
- }
29860
+ this.updateGst(chartAccounts);
29861
+ });
29862
+ }
29863
+ /**
29864
+ * @todo: taxtankit TT-6207 move sole related code to sole related class
29865
+ * sole forms allow to change business, gst depends on the selected business
29866
+ */
29867
+ watchBusiness(soleDetails) {
29868
+ this.get('business').valueChanges.subscribe((business) => {
29869
+ this.registeredForGst = business?.getIsGST(soleDetails);
29870
+ this.updateGst(this.get('chartAccounts').value);
29769
29871
  });
29770
29872
  }
29873
+ updateGst(chartAccounts) {
29874
+ // update gst if applicable
29875
+ if (this.registeredForGst && chartAccounts?.isGST) {
29876
+ this.get('isGST').enable();
29877
+ this.get('isGST').patchValue(true);
29878
+ }
29879
+ else {
29880
+ this.get('isGST').patchValue(false);
29881
+ this.get('isGST').disable();
29882
+ }
29883
+ }
29771
29884
  updateGstAmount() {
29772
29885
  this.get('gstAmount').patchValue(this.amountWithGST - this.amount);
29773
29886
  }
@@ -29775,7 +29888,7 @@ class TransactionBaseForm extends AbstractForm {
29775
29888
  this.patchField('amount', this.isGST ? this.amountWithGST / ChartAccounts.GSTCoefficient : this.amountWithGST);
29776
29889
  }
29777
29890
  isGstApplicable() {
29778
- return !!this.registeredForGst && !!this.model.business;
29891
+ return !!this.registeredForGst && !!(this.get('business')?.value ?? this.model.business);
29779
29892
  }
29780
29893
  get amount() {
29781
29894
  return this.get('amount').value;
@@ -29807,6 +29920,37 @@ var MessagesEnum$1;
29807
29920
  MessagesEnum["DATE_VALIDATION_ERROR"] = "The transaction date is before the ownership date, please update the date to confirm";
29808
29921
  })(MessagesEnum$1 || (MessagesEnum$1 = {}));
29809
29922
 
29923
+ /**
29924
+ * Child transaction (adjustment) of income transaction, like tips or fees
29925
+ */
29926
+ class ChildTransactionForm extends AbstractForm {
29927
+ constructor(transaction = plainToClass(Transaction, {})) {
29928
+ super({
29929
+ chartAccounts: new UntypedFormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
29930
+ amount: new UntypedFormControl(transaction.amount, [Validators.required]),
29931
+ }, transaction);
29932
+ }
29933
+ /**
29934
+ * income transactions might include adjustments (child transactions), like tips or fees.
29935
+ * Adjustments inherit most of the fields from parent transaction
29936
+ */
29937
+ build(parent) {
29938
+ const childTransaction = this.value;
29939
+ return this.createModelInstance(Object.assign({
29940
+ description: childTransaction.chartAccounts?.name,
29941
+ currency: parent.currency,
29942
+ exchangeRate: parent.exchangeRate,
29943
+ date: parent.date,
29944
+ claimPercent: (parent.claimPercent * childTransaction.chartAccounts?.taxablePercent) / 100,
29945
+ source: TransactionSourceEnum.BANK_TRANSACTION,
29946
+ incomeSource: parent.incomeSource,
29947
+ property: parent.property
29948
+ },
29949
+ // new model has class defaults (claimPercent, currency...) which must not override parent fields
29950
+ this.model.id ? this.model : {}, childTransaction));
29951
+ }
29952
+ }
29953
+
29810
29954
  class TransactionForm extends TransactionBaseForm {
29811
29955
  constructor(transaction, registeredForGst, allocations, controls = {}) {
29812
29956
  super(transaction, registeredForGst, Object.assign(controls, {
@@ -29833,13 +29977,8 @@ class TransactionForm extends TransactionBaseForm {
29833
29977
  this.get('date').disable();
29834
29978
  }
29835
29979
  }
29836
- addTransactionControl(transaction = plainToClass(Transaction, {})) {
29837
- const formGroup = new UntypedFormGroup({
29838
- id: new UntypedFormControl(transaction.id),
29839
- chartAccounts: new UntypedFormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
29840
- amount: new UntypedFormControl(transaction.amount, [Validators.required]),
29841
- });
29842
- this.transactionsControl.push(formGroup);
29980
+ addTransactionControl(transaction) {
29981
+ this.transactionsControl.push(new ChildTransactionForm(transaction));
29843
29982
  }
29844
29983
  get transactionsControl() {
29845
29984
  return this.get('transactions');
@@ -29847,24 +29986,12 @@ class TransactionForm extends TransactionBaseForm {
29847
29986
  removeTransactionControl(index) {
29848
29987
  this.transactionsControl.removeAt(index);
29849
29988
  }
29850
- /**
29851
- * income transactions might include adjustments (child transactions), like tips or fees.
29852
- * Adjustments inherit most of the fields from parent transaction
29853
- */
29854
- buildTransactions(transaction) {
29855
- return this.get('transactions').value.map((childTransaction) => Object.assign({
29856
- description: childTransaction.chartAccounts?.name,
29857
- currency: transaction.currency,
29858
- exchangeRate: transaction.exchangeRate,
29859
- date: transaction.date,
29860
- claimPercent: (transaction.claimPercent * childTransaction.chartAccounts?.taxablePercent) / 100,
29861
- source: TransactionSourceEnum.BANK_TRANSACTION,
29862
- incomeSource: transaction.incomeSource,
29863
- property: transaction.property
29864
- }, this.model.transactions.find((transaction) => transaction.id === childTransaction['id']) || {}, childTransaction));
29865
- }
29866
29989
  submit(data = {}) {
29867
- return super.submit(Object.assign(data, { transactions: this.buildTransactions(this.currentValue) }));
29990
+ const transaction = this.currentValue;
29991
+ // income transactions might include adjustments (child transactions), like tips or fees
29992
+ const transactions = this.transactionsControl.controls
29993
+ .map((childForm) => childForm.build(transaction));
29994
+ return super.submit(Object.assign(data, { transactions }));
29868
29995
  }
29869
29996
  }
29870
29997
 
@@ -29886,7 +30013,7 @@ class SoleIncomeForm extends SoleTransactionForm {
29886
30013
  if (allocations.length || transaction.operation === TransactionOperationEnum.ALLOCATE) {
29887
30014
  this.get('amount').disable();
29888
30015
  }
29889
- this.addControl('business', new FormControl(transaction.business ?? plainToClass(SoleBusiness, {}), Validators.required));
30016
+ this.addControl('business', new FormControl(transaction.business ?? null, Validators.required));
29890
30017
  }
29891
30018
  }
29892
30019
 
@@ -29993,7 +30120,7 @@ class SoleExpenseForm extends WorkExpenseForm {
29993
30120
  constructor(transaction, registeredForGst, allocations, homeOfficeClaim) {
29994
30121
  super(transaction, registeredForGst, allocations, homeOfficeClaim);
29995
30122
  this.homeOfficeClaim = homeOfficeClaim;
29996
- this.addControl('business', new FormControl(transaction.business ?? plainToClass(SoleBusiness, {}), Validators.required));
30123
+ this.addControl('business', new FormControl(transaction.business ?? null, Validators.required));
29997
30124
  }
29998
30125
  }
29999
30126
 
@@ -30252,12 +30379,13 @@ class TransactionBaseFilterForm extends FormGroup {
30252
30379
  }
30253
30380
 
30254
30381
  class TransactionImportForm extends FormGroup {
30255
- constructor(transaction) {
30382
+ constructor(transactionImport) {
30256
30383
  super({
30257
- tankType: new FormControl(transaction.matching?.tankType ?? null),
30258
- isIncome: new FormControl(transaction.isIncome())
30384
+ tankType: new FormControl(transactionImport.tankType ?? null),
30385
+ // document may be impossible to parse, then there is no transaction
30386
+ isIncome: new FormControl(transactionImport.transaction?.isIncome() ?? false)
30259
30387
  });
30260
- this.transaction = transaction;
30388
+ this.transactionImport = transactionImport;
30261
30389
  }
30262
30390
  }
30263
30391
 
@@ -30815,5 +30943,5 @@ var MessagesEnum;
30815
30943
  * Generated bundle index. Do not edit.
30816
30944
  */
30817
30945
 
30818
- export { ADBLOCK_ERROR_HTML, ADBLOCK_ERROR_HTML_VALUE, AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockDetectorService, Address, AddressForm, AddressSuggestion, 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, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountForm, BankAccountImportForm, BankAccountMessagesEnum, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsFilterForm, BankAccountsImportForm, BankConnection, BankConnectionCollection, BankConnectionForm, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionComment, BankTransactionCommentForm, BankTransactionCommentMessagesEnum, BankTransactionCommentService, BankTransactionImport, BankTransactionImportCollection, BankTransactionImportMessagesEnum, BankTransactionImportService, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BasiqUser, BasiqUserService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetCashFlowItem, BudgetCollection, BudgetForm, BudgetMessagesEnum, BudgetMetadataInterface, BudgetRule, BudgetRuleCollection, BudgetRuleForm, BudgetRuleItem, BudgetRuleItemCollection, BudgetRuleService, BudgetService, BudgetTypeEnum, BusinessChartAccountsEnum, BusinessDepreciationMethod, BusinessDepreciationMethodEnum, BusinessDepreciationMethodForm, BusinessDepreciationMethodService, BusinessResolver, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, COLORS, CalculationFormItem, CalculationFormTypeEnum, CalendarEvent, CalendarEventCollection, CalendarEventTypeEnum, CalendarReminder, CalendarReminderCollection, CalendarReminderForm, CalendarReminderMessagesEnum, CalendarReminderService, CalendarReminderTypeEnum, CalendarViewEnum, 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, Country, CountryService, Currency, CurrencyService, CurrencyTypeEnum, CurrentFirmBranchService, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DailyFrequencyEnum, DashboardSettings, DashboardSettingsForm, DashboardSettingsService, DateAmountDictionary, 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, EXPENSE_CATEGORY_BY_TYPE, EXPORT_CELL_STYLES, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExchangeRate, ExchangeRateService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialGoal, FinancialGoalCollection, FinancialGoalFilterForm, FinancialGoalForm, FinancialGoalMessagesEnum, FinancialGoalService, FinancialGoalStatusEnum, FinancialGoalTypeEnum, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GooglePlaceService, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingCostAdjustment, HoldingCostAdjustmentForm, HoldingCostAdjustmentMessagesEnum, HoldingCostAdjustmentService, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTaxStatement, HoldingTaxStatementForm, HoldingTaxStatementItem, HoldingTaxStatementItemForm, HoldingTaxStatementMessagesEnum, HoldingTaxStatementPayer, HoldingTaxStatementPayerForm, HoldingTaxStatementPayerMessagesEnum, HoldingTaxStatementPayerService, HoldingTaxStatementService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportCollection, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeReportItem, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypePosition, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, INCOME_CATEGORY_BY_TYPE, 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, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, MoneyCalendarEvent, MoneyCalendarEventCollection, MoneyScheduleFilterForm, 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, PALETTE_EQUITY, PALETTE_PRIMARY, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorDepreciationService, 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, RelativeDatePipe, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceEnum, ServicePriceOldEnum, 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, SoleBusinessCloseForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactItem, SoleContactItemCollection, SoleContactMessagesEnum, SoleContactService, SoleDetails, SoleDetailsForm, SoleDetailsResolver, SoleDetailsService, SoleExpenseForm, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SoleInvoiceTypeEnum, SolePlItem, SolePlItemCollection, 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, TransactionBaseFilter, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionImportForm, TransactionMetaField, TransactionOperationEnum, TransactionReportItem, TransactionReportItemCollection, TransactionService, TransactionSourceEnum, TransactionSuggestion, 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, VehicleClaimForm, VehicleClaimMethodEnum, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, YoutubeVideosEnum, atLeastOneCheckedValidator, atLeastOneEnabledValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, compareWithControlValidator, conditionalValidator, createDate, currentFinYearValidator, dateRangeValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, recurringDates, replace, sort, sortDeep, toArray };
30946
+ export { ADBLOCK_ERROR_HTML, ADBLOCK_ERROR_HTML_VALUE, AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupItemStatusEnum, AccountSetupItemsEnum, AccountSetupService, AdblockDetectorService, Address, AddressForm, AddressSuggestion, 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, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountForm, BankAccountImportForm, BankAccountMessagesEnum, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsFilterForm, BankAccountsImportForm, BankConnection, BankConnectionCollection, BankConnectionForm, BankConnectionMessagesEnum, BankConnectionService, BankConnectionStatusEnum, BankExternalStats, BankPopularEnum, BankProviderEnum, BankService, BankTransaction, BankTransactionChartData, BankTransactionCollection, BankTransactionComment, BankTransactionCommentForm, BankTransactionCommentMessagesEnum, BankTransactionCommentService, BankTransactionImport, BankTransactionImportCollection, BankTransactionImportMessagesEnum, BankTransactionImportService, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasReport, BasReportForm, BasReportMessagesEnum, BasReportService, BasiqConfig, BasiqJob, BasiqJobResponse, BasiqJobStep, BasiqMessagesEnum, BasiqService, BasiqToken, BasiqTokenService, BasiqUser, BasiqUserService, BestVehicleLogbookCollection, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, BorrowingReport, BorrowingReportForm, BorrowingReportMessagesEnum, BorrowingReportService, Budget, BudgetCashFlowItem, BudgetCollection, BudgetForm, BudgetMessagesEnum, BudgetMetadataInterface, BudgetRule, BudgetRuleCollection, BudgetRuleForm, BudgetRuleItem, BudgetRuleItemCollection, BudgetRuleService, BudgetService, BudgetTypeEnum, BusinessChartAccountsEnum, BusinessDepreciationMethod, BusinessDepreciationMethodEnum, BusinessDepreciationMethodForm, BusinessDepreciationMethodService, BusinessResolver, BusinessTypeEnum, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, COLORS, CalculationFormItem, CalculationFormTypeEnum, CalendarEvent, CalendarEventCollection, CalendarEventTypeEnum, CalendarReminder, CalendarReminderCollection, CalendarReminderForm, CalendarReminderMessagesEnum, CalendarReminderService, CalendarReminderTypeEnum, CalendarViewEnum, 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, ChildTransactionForm, 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, Country, CountryService, Currency, CurrencyService, CurrencyTypeEnum, CurrentFirmBranchService, DAY_MS, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DailyFrequencyEnum, DashboardSettings, DashboardSettingsForm, DashboardSettingsService, DateAmountDictionary, 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, EXPENSE_CATEGORY_BY_TYPE, EXPORT_CELL_STYLES, EmployeeCollection, EmployeeDetails, EmployeeDetailsForm, EmployeeInvite, EmployeeInviteCollection, EmployeeInviteForm, EmployeeInviteRoleEnum, EmployeeInviteService, EmployeeMessagesEnum, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExchangeRate, ExchangeRateService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FileService, FileValidator, FinancialGoal, FinancialGoalCollection, FinancialGoalFilterForm, FinancialGoalForm, FinancialGoalMessagesEnum, FinancialGoalService, FinancialGoalStatusEnum, FinancialGoalTypeEnum, FinancialYear, FinancialYearService, Firm, FirmBranch, FirmBranchForm, FirmBranchMessagesEnum, FirmBranchService, FirmForm, FirmInviteForm, FirmMessagesEnum, FirmService, FirmTypeEnum, FormValidationsEnum, GenderEnum, GooglePlaceService, GoogleService, HTTP_ERROR_MESSAGES, HeaderTitleService, Holding, HoldingCollection, HoldingCostAdjustment, HoldingCostAdjustmentForm, HoldingCostAdjustmentMessagesEnum, HoldingCostAdjustmentService, HoldingExpenseForm, HoldingIncomeForm, HoldingReinvest, HoldingReinvestForm, HoldingSale, HoldingSaleCollection, HoldingSaleService, HoldingTaxStatement, HoldingTaxStatementForm, HoldingTaxStatementItem, HoldingTaxStatementItemForm, HoldingTaxStatementMessagesEnum, HoldingTaxStatementPayer, HoldingTaxStatementPayerForm, HoldingTaxStatementPayerMessagesEnum, HoldingTaxStatementPayerService, HoldingTaxStatementService, HoldingTrade, HoldingTradeCollection, HoldingTradeFilterForm, HoldingTradeForm, HoldingTradeImport, HoldingTradeImportCollection, HoldingTradeImportForm, HoldingTradeImportMessagesEnum, HoldingTradeImportService, HoldingTradeMessagesEnum, HoldingTradeReportItem, HoldingTradeService, HoldingTradeTypeEnum, HoldingType, HoldingTypeCategoryEnum, HoldingTypeCollection, HoldingTypeExchange, HoldingTypeExchangeListEnum, HoldingTypeExchangeService, HoldingTypeForm, HoldingTypeMessagesEnum, HoldingTypePosition, HoldingTypeService, HomeOfficeCalculatorForm, HomeOfficeClaim, HomeOfficeClaimCollection, HomeOfficeClaimForm, HomeOfficeClaimMessagesEnum, HomeOfficeClaimMethodEnum, HomeOfficeClaimService, HomeOfficeLog, HomeOfficeLogForm, HomeOfficeLogMessagesEnum, HomeOfficeLogService, INCOME_CATEGORY_BY_TYPE, 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, LoanInterestTypeEnum, LoanInterestTypeLabelEnum, LoanMaxNumberOfPaymentsEnum, LoanMessagesEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentTypeEnum, LoanRepaymentTypeLabelEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LoginForm, LossTypeEnum, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MessagesEnum, MfaDetails, MfaDetailsForm, MfaDetailsMessagesEnum, MfaDetailsService, MoneyCalendarEvent, MoneyCalendarEventCollection, MoneyScheduleFilterForm, 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, PALETTE_EQUITY, PALETTE_PRIMARY, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfFromTableService, PdfOrientationEnum, PdfService, PdfSettings, Phone, PhoneForm, PhoneTypeEnum, PreloaderService, PriorDepreciationService, 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, RelativeDatePipe, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RestMessagesEnum, RestService$1 as RestService, SERVICE_PRODUCT_ROLES, SafeUrlPipe, SalaryForecast, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentMethod, ServicePaymentMethodService, ServicePaymentService, ServicePaymentStatusEnum, ServicePrice, ServicePriceCollection, ServicePriceEnum, ServicePriceOldEnum, 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, SoleBusinessCloseForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossCollection, SoleBusinessLossForm, SoleBusinessLossOffsetRule, SoleBusinessLossOffsetRuleService, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessMessagesEnum, SoleBusinessService, SoleContact, SoleContactForm, SoleContactItem, SoleContactItemCollection, SoleContactMessagesEnum, SoleContactService, SoleDetails, SoleDetailsForm, SoleDetailsResolver, SoleDetailsService, SoleExpenseForm, SoleForecast, SoleForecastService, SoleIncomeForm, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemCollection, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStateEnum, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SoleInvoiceTypeEnum, SolePlItem, SolePlItemCollection, 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, TransactionBaseFilter, TransactionBaseFilterForm, TransactionBaseForm, TransactionCategoryEnum, TransactionCollection, TransactionForm, TransactionImport, TransactionImportForm, TransactionImportMatch, TransactionImportService, 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, VehicleClaimForm, VehicleClaimMethodEnum, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookMessages, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleMessagesEnum, VehicleService, WorkExpenseForm, WorkIncomeForm, XlsxService, YoutubeService, YoutubeVideosEnum, atLeastOneCheckedValidator, atLeastOneEnabledValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, compareWithControlValidator, conditionalValidator, createDate, currentFinYearValidator, dateRangeValidator, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, greaterThanValidator, matchSumValidator, maxDateValidator, minDateValidator, nameValidator, passwordMatchValidator, passwordValidator, recurringDates, replace, sort, sortDeep, toArray };
30819
30947
  //# sourceMappingURL=taxtank-core.mjs.map