taxtank-core 3.0.36 → 3.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,37 +7501,40 @@ 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
  }
7499
7508
  get grossAmountWithoutGst() {
7500
- let grossAmount = this.amount + this.tax;
7509
+ return this.calculateGrossAmountWithoutGst(this.amount);
7510
+ }
7511
+ get grossClaimAmountWithoutGst() {
7512
+ return this.calculateGrossAmountWithoutGst(this.claimAmount);
7513
+ }
7514
+ calculateGrossAmountWithoutGst(amount) {
7515
+ let grossAmount = amount + this.tax;
7501
7516
  if (this.isExpense()) {
7502
7517
  return grossAmount;
7503
7518
  }
7504
- // included transactions affect parent transaction amount and as a result grossAmount, skip to avoid double sum
7505
- const adjustments = new Collection(this.transactions)
7519
+ // Included transactions already affect the parent amount.
7520
+ const adjustments = new Collection(this.childTransactions)
7506
7521
  .filter(transaction => !transaction.chartAccounts?.isAdjustmentIncluded());
7507
7522
  const income = adjustments.filter(transaction => transaction.isIncome()).sumBy('amount');
7508
7523
  const expense = adjustments.filter(transaction => transaction.isExpense()).sumBy('amount', true);
7509
- // all adjustments except property income increase grossIncome
7524
+ // All adjustments except property income increase gross income.
7510
7525
  grossAmount += expense + (this.isPropertyTank() ? -income : income);
7511
7526
  if (this.isWorkTank() || this.isHoldingTank()) {
7512
7527
  grossAmount += this.frankingCredit - this.taxFreeComponent - this.eligibleForReduction;
7513
7528
  }
7514
7529
  return grossAmount;
7515
7530
  }
7516
- get grossClaimAmountWithoutGst() {
7517
- return this.grossAmountWithoutGst * this.claimRatio;
7518
- }
7519
7531
  /**
7520
7532
  * @TODO vik confusing logic demanded by Nicole, we need a better ux to fix it
7521
7533
  * netAmount matches received payment (bankTransaction amount), includes gst and salary included adjustments
7522
7534
  * ie user received 1000$ salary including 100$ tips. NetAmount=1000$, amount=900$, tips=100$
7523
7535
  */
7524
7536
  get netAmount() {
7525
- return new Collection(this.transactions)
7537
+ return new Collection(this.childTransactions)
7526
7538
  .filter((t) => t.chartAccounts?.isAdjustmentIncluded())
7527
7539
  .sumBy('amount') + this.amountWithGst;
7528
7540
  }
@@ -7559,7 +7571,10 @@ class Transaction extends Transaction$1 {
7559
7571
  }
7560
7572
  __decorate([
7561
7573
  Type(() => Transaction)
7562
- ], Transaction.prototype, "transactions", void 0);
7574
+ ], Transaction.prototype, "childTransactions", void 0);
7575
+ __decorate([
7576
+ Type(() => Transaction)
7577
+ ], Transaction.prototype, "transactions", null);
7563
7578
  __decorate([
7564
7579
  Type(() => Property)
7565
7580
  ], Transaction.prototype, "property", void 0);
@@ -7747,12 +7762,58 @@ var TransactionCategoryEnum;
7747
7762
  TransactionCategoryEnum[TransactionCategoryEnum["PERSONAL"] = 3] = "PERSONAL";
7748
7763
  })(TransactionCategoryEnum || (TransactionCategoryEnum = {}));
7749
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
+
7750
7802
  /**
7751
7803
  * Transaction parsed from an imported receipt.
7752
7804
  */
7753
- class TransactionSuggestion extends Transaction {
7754
- static { this.className = 'TransactionSuggestion'; }
7805
+ class TransactionImport extends AbstractModel {
7806
+ static { this.className = 'TransactionImport'; }
7755
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);
7756
7817
 
7757
7818
  /**
7758
7819
  * @TODO Alex: clarify grouping rules and refactor
@@ -9176,7 +9237,7 @@ class PropertyReportItemTransaction extends PropertyReportItem {
9176
9237
  this.description = chartAccounts.name;
9177
9238
  }
9178
9239
  get shareClaimAmount() {
9179
- return this.transactions.claimAmount;
9240
+ return this.transactions.sumBy('grossClaimAmountWithoutGst');
9180
9241
  }
9181
9242
  }
9182
9243
 
@@ -18483,7 +18544,7 @@ class TransactionService extends RestService {
18483
18544
  this.listenNotifications();
18484
18545
  }
18485
18546
  get(path = this.apiUrl) {
18486
- return super.get(path).pipe(map(transactions => this.groupByParent(transactions)));
18547
+ return super.get(path).pipe(map$1(transactions => this.groupByParent(transactions)));
18487
18548
  }
18488
18549
  /**
18489
18550
  * Add single new transaction
@@ -18492,7 +18553,7 @@ class TransactionService extends RestService {
18492
18553
  add(model) {
18493
18554
  // we don't have POST API endpoint for single transaction
18494
18555
  return this.addBatch([model])
18495
- .pipe(map((newTransactions) => {
18556
+ .pipe(map$1((newTransactions) => {
18496
18557
  // @TODO alex
18497
18558
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_CREATED, newTransactions[0]));
18498
18559
  return newTransactions[0];
@@ -18502,13 +18563,13 @@ class TransactionService extends RestService {
18502
18563
  * get transactions related with property
18503
18564
  */
18504
18565
  getByPropertyId(propertyId) {
18505
- 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)));
18506
18567
  }
18507
18568
  /**
18508
18569
  * get list of transactions with tank type 'Work'
18509
18570
  */
18510
18571
  getWorkTransactions() {
18511
- return this.get().pipe(map((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
18572
+ return this.get().pipe(map$1((transactions) => transactions.filter((transaction) => transaction.isWorkTank())));
18512
18573
  }
18513
18574
  /**
18514
18575
  * Get list of property holding costs (transactions related to vacant land property)
@@ -18517,7 +18578,7 @@ class TransactionService extends RestService {
18517
18578
  return this.fetch(`${this.environment.apiV2}/properties/${propertyId}/holding-costs`, false);
18518
18579
  }
18519
18580
  getWithoutTaxFreeProperty(categories = ['']) {
18520
- 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)));
18521
18582
  }
18522
18583
  groupByParent(transactions) {
18523
18584
  transactions.forEach((transaction) => {
@@ -18532,16 +18593,16 @@ class TransactionService extends RestService {
18532
18593
  */
18533
18594
  getTaxableWorkTransactions() {
18534
18595
  return this.getWorkTransactions()
18535
- .pipe(map((transactions) => transactions.filter((transaction) => !!transaction.chartAccounts.taxReturnItem)));
18596
+ .pipe(map$1((transactions) => transactions.filter((transaction) => !!transaction.chartAccounts.taxReturnItem)));
18536
18597
  }
18537
18598
  /**
18538
18599
  * add multiple transactions
18539
18600
  * @param transactions List of new Transaction instances for saving
18540
18601
  */
18541
18602
  addBatch(transactions) {
18542
- transactions = _.cloneDeep(transactions);
18603
+ transactions = cloneDeep$1(transactions);
18543
18604
  return this.http.post(`${this.environment.apiV2}/${this.url}`, classToPlain(transactions))
18544
- .pipe(map((response) => {
18605
+ .pipe(map$1((response) => {
18545
18606
  const addedTransactions = response.map((item) => this.createModelInstance(item));
18546
18607
  transactions.forEach((transaction, index) => {
18547
18608
  // @TODO Viktor: implement API for saving of nested transactions
@@ -18571,7 +18632,7 @@ class TransactionService extends RestService {
18571
18632
  */
18572
18633
  update(transaction) {
18573
18634
  return this.http.put(`${this.environment.apiV2}/${this.url}/${transaction.id}`, classToPlain(transaction))
18574
- .pipe(map((response) => {
18635
+ .pipe(map$1((response) => {
18575
18636
  const updatedTransaction = this.createModelInstance(response);
18576
18637
  // @TODO Viktor: implement API for saving of nested transactions
18577
18638
  if (transaction.transactions.length) {
@@ -18601,7 +18662,7 @@ class TransactionService extends RestService {
18601
18662
  */
18602
18663
  updateBatch(transactions) {
18603
18664
  return this.http.put(`${this.environment.apiV2}/${this.url}`, classToPlain(transactions))
18604
- .pipe(map((response) => {
18665
+ .pipe(map$1((response) => {
18605
18666
  const updatedTransactions = response.map((item) => this.createModelInstance(item));
18606
18667
  updatedTransactions.forEach((updatedTransaction) => {
18607
18668
  replace(this.cache, updatedTransaction);
@@ -18611,7 +18672,7 @@ class TransactionService extends RestService {
18611
18672
  }));
18612
18673
  }
18613
18674
  deleteBatch(models) {
18614
- return super.deleteBatch(models).pipe(map(() => {
18675
+ return super.deleteBatch(models).pipe(map$1(() => {
18615
18676
  this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.TRANSACTION_DELETED, models[0]));
18616
18677
  }));
18617
18678
  }
@@ -18621,7 +18682,7 @@ class TransactionService extends RestService {
18621
18682
  */
18622
18683
  delete(model) {
18623
18684
  return this.http.delete(`${this.environment.apiV2}/${this.url}/${model.id}`)
18624
- .pipe(map(() => {
18685
+ .pipe(map$1(() => {
18625
18686
  this.cache = this.cache.filter((transaction) => {
18626
18687
  // when delete transfer we delete actually 2 transactions
18627
18688
  if (model.isTransfer) {
@@ -18644,13 +18705,6 @@ class TransactionService extends RestService {
18644
18705
  this.transactionDeleted.emit(model);
18645
18706
  }));
18646
18707
  }
18647
- parse(files) {
18648
- const formData = new FormData();
18649
- files.forEach(file => {
18650
- formData.append('files[]', file);
18651
- });
18652
- return this.http.post(`${this.apiUrl}/parse`, formData).pipe(map((transaction) => plainToClass(TransactionSuggestion, transaction)));
18653
- }
18654
18708
  /**
18655
18709
  * Listen to EventDispatcherService event related to Depreciation changing
18656
18710
  */
@@ -18768,6 +18822,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
18768
18822
  }]
18769
18823
  }] });
18770
18824
 
18825
+ /**
18826
+ * Service to parse receipts into transactions and find existing matches for them
18827
+ */
18828
+ class TransactionImportService extends RestService$1 {
18829
+ constructor() {
18830
+ super(...arguments);
18831
+ this.modelClass = TransactionImport;
18832
+ this.collectionClass = Collection;
18833
+ this.endpointUri = 'transaction-imports';
18834
+ this.disabledMethods = ['get', 'postBatch', 'put', 'putBatch', 'delete', 'deleteBatch'];
18835
+ }
18836
+ parse(file) {
18837
+ const formData = new FormData();
18838
+ formData.append('file', file);
18839
+ return this.importFile(formData, `${this.apiUrl}/parse`).pipe(
18840
+ // document is impossible to parse: import without transaction, user adds it manually
18841
+ catchError$1(() => of(new TransactionImport())), map$1((transactionImport) => {
18842
+ // @todo: taxtankit change to regular work with files in TT-5613
18843
+ // backend doesn't return a file URL, so create a local blob URL to display the uploaded file preview
18844
+ transactionImport.localFile = plainToClass(AppFile, {
18845
+ publicUrl: URL.createObjectURL(file),
18846
+ originalName: file.name,
18847
+ size: file.size,
18848
+ mimeType: file.type,
18849
+ });
18850
+ return transactionImport;
18851
+ }));
18852
+ }
18853
+ match(transactionImport) {
18854
+ // backend returns matches instead of the posted model
18855
+ return this.post(transactionImport, `${this.apiUrl}/match`).pipe(map$1((matches) => plainToClass(TransactionImportMatch, matches)));
18856
+ }
18857
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
18858
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, providedIn: 'root' }); }
18859
+ }
18860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TransactionImportService, decorators: [{
18861
+ type: Injectable,
18862
+ args: [{
18863
+ providedIn: 'root'
18864
+ }]
18865
+ }] });
18866
+
18771
18867
  // @TODO Artem: implement cache and extend rest?
18772
18868
  class YoutubeService {
18773
18869
  static { this.googleUrl = `https://www.googleapis.com/youtube/v3/playlistItems?part=snippet`; }
@@ -25218,7 +25314,8 @@ const ENDPOINTS = {
25218
25314
  TRANSACTIONS_GET: new Endpoint('GET', '\\/transactions'),
25219
25315
  TRANSACTIONS_POST: new Endpoint('POST', '\\/transactions'),
25220
25316
  TRANSACTIONS_PUT: new Endpoint('PUT', '\\/transactions'),
25221
- TRANSACTIONS_PARSE: new Endpoint('POST', '\\/transactions\\/parse'),
25317
+ TRANSACTION_IMPORTS_PARSE: new Endpoint('POST', '\\/transaction-imports\\/parse'),
25318
+ TRANSACTION_IMPORTS_MATCH: new Endpoint('POST', '\\/transaction-imports\\/match'),
25222
25319
  TRANSACTIONS_ALLOCATIONS_GET: new Endpoint('GET', '\\/transaction-allocations'),
25223
25320
  TRANSACTIONS_ALLOCATIONS_POST: new Endpoint('POST', '\\/transaction-allocations'),
25224
25321
  TRANSACTIONS_ALLOCATIONS_DELETE: new Endpoint('DELETE', '\\/transaction-allocations\\/\\d+'),
@@ -25379,13 +25476,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
25379
25476
  }] }] });
25380
25477
 
25381
25478
  const ADBLOCK_ERROR_HTML = new InjectionToken('ADBLOCK_ERROR_HTML');
25382
- const ADBLOCK_ERROR_HTML_VALUE = `
25383
- <div class="text-center">
25384
- <strong>Action needed - Your adblocker is blocking CoreLogic</strong>
25385
- To add a property in TaxTank we need to fetch data from CoreLogic, however your ad blocker is getting in the way.
25386
- Please disable your adblocker or whitelist TaxTank to continue.
25387
- <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>
25388
- </div>
25479
+ const ADBLOCK_ERROR_HTML_VALUE = `
25480
+ <div class="text-center">
25481
+ <strong>Action needed - Your adblocker is blocking CoreLogic</strong>
25482
+ To add a property in TaxTank we need to fetch data from CoreLogic, however your ad blocker is getting in the way.
25483
+ Please disable your adblocker or whitelist TaxTank to continue.
25484
+ <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>
25485
+ </div>
25389
25486
  `;
25390
25487
 
25391
25488
  /**
@@ -29754,17 +29851,30 @@ class TransactionBaseForm extends AbstractForm {
29754
29851
  if (!this.isGstApplicable()) {
29755
29852
  return;
29756
29853
  }
29757
- // update gst if applicable
29758
- if (chartAccounts.isGST) {
29759
- this.get('isGST').enable();
29760
- this.get('isGST').patchValue(true);
29761
- }
29762
- else {
29763
- this.get('isGST').patchValue(false);
29764
- this.get('isGST').disable();
29765
- }
29854
+ this.updateGst(chartAccounts);
29855
+ });
29856
+ }
29857
+ /**
29858
+ * @todo: taxtankit TT-6207 move sole related code to sole related class
29859
+ * sole forms allow to change business, gst depends on the selected business
29860
+ */
29861
+ watchBusiness(soleDetails) {
29862
+ this.get('business').valueChanges.subscribe((business) => {
29863
+ this.registeredForGst = business?.getIsGST(soleDetails);
29864
+ this.updateGst(this.get('chartAccounts').value);
29766
29865
  });
29767
29866
  }
29867
+ updateGst(chartAccounts) {
29868
+ // update gst if applicable
29869
+ if (this.registeredForGst && chartAccounts?.isGST) {
29870
+ this.get('isGST').enable();
29871
+ this.get('isGST').patchValue(true);
29872
+ }
29873
+ else {
29874
+ this.get('isGST').patchValue(false);
29875
+ this.get('isGST').disable();
29876
+ }
29877
+ }
29768
29878
  updateGstAmount() {
29769
29879
  this.get('gstAmount').patchValue(this.amountWithGST - this.amount);
29770
29880
  }
@@ -29772,7 +29882,7 @@ class TransactionBaseForm extends AbstractForm {
29772
29882
  this.patchField('amount', this.isGST ? this.amountWithGST / ChartAccounts.GSTCoefficient : this.amountWithGST);
29773
29883
  }
29774
29884
  isGstApplicable() {
29775
- return !!this.registeredForGst && !!this.model.business;
29885
+ return !!this.registeredForGst && !!(this.get('business')?.value ?? this.model.business);
29776
29886
  }
29777
29887
  get amount() {
29778
29888
  return this.get('amount').value;
@@ -29804,6 +29914,37 @@ var MessagesEnum$1;
29804
29914
  MessagesEnum["DATE_VALIDATION_ERROR"] = "The transaction date is before the ownership date, please update the date to confirm";
29805
29915
  })(MessagesEnum$1 || (MessagesEnum$1 = {}));
29806
29916
 
29917
+ /**
29918
+ * Child transaction (adjustment) of income transaction, like tips or fees
29919
+ */
29920
+ class ChildTransactionForm extends AbstractForm {
29921
+ constructor(transaction = plainToClass(Transaction, {})) {
29922
+ super({
29923
+ chartAccounts: new UntypedFormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
29924
+ amount: new UntypedFormControl(transaction.amount, [Validators.required]),
29925
+ }, transaction);
29926
+ }
29927
+ /**
29928
+ * income transactions might include adjustments (child transactions), like tips or fees.
29929
+ * Adjustments inherit most of the fields from parent transaction
29930
+ */
29931
+ build(parent) {
29932
+ const childTransaction = this.value;
29933
+ return this.createModelInstance(Object.assign({
29934
+ description: childTransaction.chartAccounts?.name,
29935
+ currency: parent.currency,
29936
+ exchangeRate: parent.exchangeRate,
29937
+ date: parent.date,
29938
+ claimPercent: (parent.claimPercent * childTransaction.chartAccounts?.taxablePercent) / 100,
29939
+ source: TransactionSourceEnum.BANK_TRANSACTION,
29940
+ incomeSource: parent.incomeSource,
29941
+ property: parent.property
29942
+ },
29943
+ // new model has class defaults (claimPercent, currency...) which must not override parent fields
29944
+ this.model.id ? this.model : {}, childTransaction));
29945
+ }
29946
+ }
29947
+
29807
29948
  class TransactionForm extends TransactionBaseForm {
29808
29949
  constructor(transaction, registeredForGst, allocations, controls = {}) {
29809
29950
  super(transaction, registeredForGst, Object.assign(controls, {
@@ -29830,13 +29971,8 @@ class TransactionForm extends TransactionBaseForm {
29830
29971
  this.get('date').disable();
29831
29972
  }
29832
29973
  }
29833
- addTransactionControl(transaction = plainToClass(Transaction, {})) {
29834
- const formGroup = new UntypedFormGroup({
29835
- id: new UntypedFormControl(transaction.id),
29836
- chartAccounts: new UntypedFormControl(transaction.chartAccounts, [Validators.required, autocompleteValidator()]),
29837
- amount: new UntypedFormControl(transaction.amount, [Validators.required]),
29838
- });
29839
- this.transactionsControl.push(formGroup);
29974
+ addTransactionControl(transaction) {
29975
+ this.transactionsControl.push(new ChildTransactionForm(transaction));
29840
29976
  }
29841
29977
  get transactionsControl() {
29842
29978
  return this.get('transactions');
@@ -29844,24 +29980,12 @@ class TransactionForm extends TransactionBaseForm {
29844
29980
  removeTransactionControl(index) {
29845
29981
  this.transactionsControl.removeAt(index);
29846
29982
  }
29847
- /**
29848
- * income transactions might include adjustments (child transactions), like tips or fees.
29849
- * Adjustments inherit most of the fields from parent transaction
29850
- */
29851
- buildTransactions(transaction) {
29852
- return this.get('transactions').value.map((childTransaction) => Object.assign({
29853
- description: childTransaction.chartAccounts?.name,
29854
- currency: transaction.currency,
29855
- exchangeRate: transaction.exchangeRate,
29856
- date: transaction.date,
29857
- claimPercent: (transaction.claimPercent * childTransaction.chartAccounts?.taxablePercent) / 100,
29858
- source: TransactionSourceEnum.BANK_TRANSACTION,
29859
- incomeSource: transaction.incomeSource,
29860
- property: transaction.property
29861
- }, this.model.transactions.find((transaction) => transaction.id === childTransaction['id']) || {}, childTransaction));
29862
- }
29863
29983
  submit(data = {}) {
29864
- return super.submit(Object.assign(data, { transactions: this.buildTransactions(this.currentValue) }));
29984
+ const transaction = this.currentValue;
29985
+ // income transactions might include adjustments (child transactions), like tips or fees
29986
+ const transactions = this.transactionsControl.controls
29987
+ .map((childForm) => childForm.build(transaction));
29988
+ return super.submit(Object.assign(data, { transactions }));
29865
29989
  }
29866
29990
  }
29867
29991
 
@@ -29883,7 +30007,7 @@ class SoleIncomeForm extends SoleTransactionForm {
29883
30007
  if (allocations.length || transaction.operation === TransactionOperationEnum.ALLOCATE) {
29884
30008
  this.get('amount').disable();
29885
30009
  }
29886
- this.addControl('business', new FormControl(transaction.business ?? plainToClass(SoleBusiness, {}), Validators.required));
30010
+ this.addControl('business', new FormControl(transaction.business ?? null, Validators.required));
29887
30011
  }
29888
30012
  }
29889
30013
 
@@ -29990,7 +30114,7 @@ class SoleExpenseForm extends WorkExpenseForm {
29990
30114
  constructor(transaction, registeredForGst, allocations, homeOfficeClaim) {
29991
30115
  super(transaction, registeredForGst, allocations, homeOfficeClaim);
29992
30116
  this.homeOfficeClaim = homeOfficeClaim;
29993
- this.addControl('business', new FormControl(transaction.business ?? plainToClass(SoleBusiness, {}), Validators.required));
30117
+ this.addControl('business', new FormControl(transaction.business ?? null, Validators.required));
29994
30118
  }
29995
30119
  }
29996
30120
 
@@ -30249,12 +30373,13 @@ class TransactionBaseFilterForm extends FormGroup {
30249
30373
  }
30250
30374
 
30251
30375
  class TransactionImportForm extends FormGroup {
30252
- constructor(transaction) {
30376
+ constructor(transactionImport) {
30253
30377
  super({
30254
- tankType: new FormControl(transaction.matching?.tankType ?? null),
30255
- isIncome: new FormControl(transaction.isIncome())
30378
+ tankType: new FormControl(transactionImport.tankType ?? null),
30379
+ // document may be impossible to parse, then there is no transaction
30380
+ isIncome: new FormControl(transactionImport.transaction?.isIncome() ?? false)
30256
30381
  });
30257
- this.transaction = transaction;
30382
+ this.transactionImport = transactionImport;
30258
30383
  }
30259
30384
  }
30260
30385
 
@@ -30812,5 +30937,5 @@ var MessagesEnum;
30812
30937
  * Generated bundle index. Do not edit.
30813
30938
  */
30814
30939
 
30815
- 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 };
30940
+ 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 };
30816
30941
  //# sourceMappingURL=taxtank-core.mjs.map