taxtank-core 0.28.18 → 0.28.21
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.
- package/bundles/taxtank-core.umd.js +373 -278
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/collections/chat.collection.js +26 -0
- package/esm2015/lib/collections/index.js +2 -1
- package/esm2015/lib/collections/message.collection.js +13 -1
- package/esm2015/lib/collections/property/index.js +4 -0
- package/esm2015/lib/collections/property/property-category-movement.collection.js +17 -0
- package/esm2015/lib/collections/property/property-sale/index.js +3 -0
- package/esm2015/lib/db/Enums/chat-status.enum.js +1 -1
- package/esm2015/lib/db/Enums/property/property-category-list.enum.js +2 -1
- package/esm2015/lib/forms/sole/sole-business.form.js +3 -3
- package/esm2015/lib/forms/sole/sole-invoice.form.js +3 -2
- package/esm2015/lib/models/bank/bank-account.js +7 -1
- package/esm2015/lib/models/chart-accounts/chart-accounts.js +12 -6
- package/esm2015/lib/models/chat/message.js +5 -1
- package/esm2015/lib/models/endpoint/endpoints.const.js +2 -1
- package/esm2015/lib/models/financial-year/financial-year.js +7 -2
- package/esm2015/lib/models/property/property-category.js +7 -3
- package/esm2015/public-api.js +2 -3
- package/fesm2015/taxtank-core.js +278 -205
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/collections/chat.collection.d.ts +10 -0
- package/lib/collections/index.d.ts +1 -0
- package/lib/collections/message.collection.d.ts +5 -0
- package/lib/collections/property/index.d.ts +3 -0
- package/lib/collections/property/property-category-movement.collection.d.ts +11 -0
- package/lib/collections/property/property-sale/index.d.ts +2 -0
- package/lib/db/Enums/property/property-category-list.enum.d.ts +1 -0
- package/lib/models/bank/bank-account.d.ts +2 -0
- package/lib/models/chart-accounts/chart-accounts.d.ts +6 -1
- package/lib/models/chat/message.d.ts +2 -0
- package/lib/models/financial-year/financial-year.d.ts +1 -1
- package/lib/models/property/property-category.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -2
package/fesm2015/taxtank-core.js
CHANGED
|
@@ -22,6 +22,7 @@ import { throwError as throwError$1 } from 'rxjs/internal/observable/throwError'
|
|
|
22
22
|
import cloneDeep$1 from 'lodash/cloneDeep';
|
|
23
23
|
import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource.min.js';
|
|
24
24
|
import compact from 'lodash/compact';
|
|
25
|
+
import differenceBy from 'lodash/differenceBy';
|
|
25
26
|
import { Validators, FormGroup, FormControl, FormArray } from '@angular/forms';
|
|
26
27
|
import merge from 'lodash/merge';
|
|
27
28
|
import isEqual from 'lodash/isEqual';
|
|
@@ -659,6 +660,7 @@ const ENDPOINTS = {
|
|
|
659
660
|
PROPERTIES_CATEGORIES_GET: new Endpoint('GET', '\\/properties\\/categories'),
|
|
660
661
|
PROPERTIES_CATEGORIES_PUT: new Endpoint('PUT', '\\/properties\\/categories\\/\\d+'),
|
|
661
662
|
PROPERTIES_CATEGORIES_POST: new Endpoint('POST', '\\/properties\\/categories'),
|
|
663
|
+
PROPERTIES_CATEGORIES_MOVEMENTS_GET: new Endpoint('GET', '\\/properties\\/\\d+\\/category-movements'),
|
|
662
664
|
PROPERTIES_CATEGORY_MOVEMENTS_POST: new Endpoint('POST', '\\/properties\\/\\d+\\/category-movements'),
|
|
663
665
|
PROPERTIES_CATEGORY_MOVEMENTS_PUT: new Endpoint('PUT', '\\/properties\\/\\d+\\/category-movements\\/\\d+'),
|
|
664
666
|
PROPERTIES_SHARES_PUT: new Endpoint('PUT', '\\/properties\\/shares\\/\\d+'),
|
|
@@ -1208,7 +1210,12 @@ class FinancialYear {
|
|
|
1208
1210
|
constructor(date) {
|
|
1209
1211
|
this.yearStartDate = '-07-01';
|
|
1210
1212
|
this.yearEndDate = '-06-30';
|
|
1211
|
-
|
|
1213
|
+
if (date) {
|
|
1214
|
+
this.year = date instanceof Date ? FinancialYear.toFinYear(date) : date;
|
|
1215
|
+
}
|
|
1216
|
+
else {
|
|
1217
|
+
this.year = +localStorage.getItem('financialYear') || FinancialYear.toFinYear(new Date());
|
|
1218
|
+
}
|
|
1212
1219
|
this.setStartDate(this.year);
|
|
1213
1220
|
this.setEndDate(this.year);
|
|
1214
1221
|
}
|
|
@@ -2331,6 +2338,9 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
2331
2338
|
isIncome() {
|
|
2332
2339
|
return CHART_ACCOUNTS_CATEGORIES.income.includes(this.category);
|
|
2333
2340
|
}
|
|
2341
|
+
isExpense() {
|
|
2342
|
+
return CHART_ACCOUNTS_CATEGORIES.expense.includes(this.category);
|
|
2343
|
+
}
|
|
2334
2344
|
isProperty() {
|
|
2335
2345
|
return CHART_ACCOUNTS_CATEGORIES.property.includes(this.category);
|
|
2336
2346
|
}
|
|
@@ -2346,7 +2356,7 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
2346
2356
|
* Check if chart accounts is property expense
|
|
2347
2357
|
*/
|
|
2348
2358
|
isPropertyExpense() {
|
|
2349
|
-
return this.
|
|
2359
|
+
return this.isProperty() && this.isExpense();
|
|
2350
2360
|
}
|
|
2351
2361
|
/**
|
|
2352
2362
|
* Check if chart accounts is property income
|
|
@@ -2360,10 +2370,6 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
2360
2370
|
isPersonalExpense() {
|
|
2361
2371
|
return this.category === ChartAccountsCategoryEnum.PERSONAL_EXPENSE;
|
|
2362
2372
|
}
|
|
2363
|
-
isPropertyDepreciation() {
|
|
2364
|
-
return [ChartAccountsCategoryEnum.PROPERTY_DEPRECIATION, ChartAccountsCategoryEnum.PROPERTY_CAPITAL_WORKS]
|
|
2365
|
-
.includes(this.category);
|
|
2366
|
-
}
|
|
2367
2373
|
/**
|
|
2368
2374
|
* Check if chart accounts category is depreciation
|
|
2369
2375
|
*/
|
|
@@ -2388,6 +2394,13 @@ class ChartAccounts extends ChartAccounts$1 {
|
|
|
2388
2394
|
getValueByYear(year) {
|
|
2389
2395
|
return this.values.find((value) => value.financialYear === year);
|
|
2390
2396
|
}
|
|
2397
|
+
/**
|
|
2398
|
+
* no way to check how much used for work/sole, so we let user adjust it
|
|
2399
|
+
* except vehicle expense, which is equal to vehicleClaim.workUsage and personal, which is equal to 0
|
|
2400
|
+
*/
|
|
2401
|
+
isClaimPercentEditable() {
|
|
2402
|
+
return (this.isWorkExpense() || this.isSoleExpense()) && (!this.isVehicleExpense() && !this.isPersonalExpense());
|
|
2403
|
+
}
|
|
2391
2404
|
}
|
|
2392
2405
|
__decorate([
|
|
2393
2406
|
Type(() => ChartAccountsHeading)
|
|
@@ -3831,13 +3844,23 @@ __decorate([
|
|
|
3831
3844
|
class PropertyCategory$1 extends AbstractModel {
|
|
3832
3845
|
}
|
|
3833
3846
|
|
|
3847
|
+
var PropertyCategoryListEnum;
|
|
3848
|
+
(function (PropertyCategoryListEnum) {
|
|
3849
|
+
PropertyCategoryListEnum[PropertyCategoryListEnum["OWNER_OCCUPIED"] = 3] = "OWNER_OCCUPIED";
|
|
3850
|
+
PropertyCategoryListEnum[PropertyCategoryListEnum["SHARED"] = 4] = "SHARED";
|
|
3851
|
+
PropertyCategoryListEnum[PropertyCategoryListEnum["VACANT_LAND"] = 5] = "VACANT_LAND";
|
|
3852
|
+
})(PropertyCategoryListEnum || (PropertyCategoryListEnum = {}));
|
|
3853
|
+
|
|
3834
3854
|
class PropertyCategory extends PropertyCategory$1 {
|
|
3835
3855
|
// @Todo check if category is Owner Occupied. If will be needed to check more categories - move the checking to the backend
|
|
3836
3856
|
isOwnerOccupied() {
|
|
3837
|
-
return this.
|
|
3857
|
+
return this.id === PropertyCategoryListEnum.OWNER_OCCUPIED;
|
|
3838
3858
|
}
|
|
3839
3859
|
isVacantLand() {
|
|
3840
|
-
return this.
|
|
3860
|
+
return this.id === PropertyCategoryListEnum.VACANT_LAND;
|
|
3861
|
+
}
|
|
3862
|
+
isShared() {
|
|
3863
|
+
return this.id === PropertyCategoryListEnum.SHARED;
|
|
3841
3864
|
}
|
|
3842
3865
|
}
|
|
3843
3866
|
|
|
@@ -3966,12 +3989,6 @@ var TaxExemptionEnum;
|
|
|
3966
3989
|
TaxExemptionEnum[TaxExemptionEnum["OTHER"] = 7] = "OTHER";
|
|
3967
3990
|
})(TaxExemptionEnum || (TaxExemptionEnum = {}));
|
|
3968
3991
|
|
|
3969
|
-
var PropertyCategoryListEnum;
|
|
3970
|
-
(function (PropertyCategoryListEnum) {
|
|
3971
|
-
PropertyCategoryListEnum[PropertyCategoryListEnum["OWNER_OCCUPIED"] = 3] = "OWNER_OCCUPIED";
|
|
3972
|
-
PropertyCategoryListEnum[PropertyCategoryListEnum["VACANT_LAND"] = 5] = "VACANT_LAND";
|
|
3973
|
-
})(PropertyCategoryListEnum || (PropertyCategoryListEnum = {}));
|
|
3974
|
-
|
|
3975
3992
|
var TaxExemptionMetadataEnum;
|
|
3976
3993
|
(function (TaxExemptionMetadataEnum) {
|
|
3977
3994
|
// principle place of residence
|
|
@@ -4331,6 +4348,12 @@ class BankAccount extends BankAccount$1 {
|
|
|
4331
4348
|
get bank() {
|
|
4332
4349
|
return this.bankConnection.bank;
|
|
4333
4350
|
}
|
|
4351
|
+
get bsb() {
|
|
4352
|
+
return this.accountNumber.split(' ')[0];
|
|
4353
|
+
}
|
|
4354
|
+
get number() {
|
|
4355
|
+
return this.accountNumber.split(' ')[1];
|
|
4356
|
+
}
|
|
4334
4357
|
/**
|
|
4335
4358
|
* Get current opening balance amount
|
|
4336
4359
|
*/
|
|
@@ -5411,6 +5434,149 @@ class SoleInvoiceCollection extends Collection {
|
|
|
5411
5434
|
}
|
|
5412
5435
|
}
|
|
5413
5436
|
|
|
5437
|
+
class PropertySaleCollection extends Collection {
|
|
5438
|
+
get grossCGT() {
|
|
5439
|
+
return this.create(this.items.filter((propertySale) => propertySale.grossCGT > 0)).sumBy('grossCGT');
|
|
5440
|
+
}
|
|
5441
|
+
/**
|
|
5442
|
+
* Property sales are CGT applicable unless it has "Principle place of residence" exemption type
|
|
5443
|
+
*/
|
|
5444
|
+
getCGTApplicable() {
|
|
5445
|
+
return this.create(this.items.filter((propertySale) => propertySale.isCGTApplicable()));
|
|
5446
|
+
}
|
|
5447
|
+
getByPropertyShareIds(ids) {
|
|
5448
|
+
return this.filterBy('share.id', ids);
|
|
5449
|
+
}
|
|
5450
|
+
}
|
|
5451
|
+
|
|
5452
|
+
class PropertyCollection extends Collection {
|
|
5453
|
+
/**
|
|
5454
|
+
* Get new property collection filtered by category id
|
|
5455
|
+
* @param id id of category for filter
|
|
5456
|
+
*/
|
|
5457
|
+
getByCategoryId(id) {
|
|
5458
|
+
return new PropertyCollection(this.items.filter((property) => property.category.id === id));
|
|
5459
|
+
}
|
|
5460
|
+
/**
|
|
5461
|
+
* Get new property collection filtered by active status
|
|
5462
|
+
*/
|
|
5463
|
+
getActiveProperties() {
|
|
5464
|
+
return new PropertyCollection(this.items.filter((property) => property.isActive));
|
|
5465
|
+
}
|
|
5466
|
+
getCreatedProperties() {
|
|
5467
|
+
return new PropertyCollection(this.items.filter((property) => property.isOwn()));
|
|
5468
|
+
}
|
|
5469
|
+
/**
|
|
5470
|
+
* Get new property collection filtered by shared
|
|
5471
|
+
*/
|
|
5472
|
+
getSharedProperties() {
|
|
5473
|
+
return new PropertyCollection(this.items.filter((property) => !property.isOwn()));
|
|
5474
|
+
}
|
|
5475
|
+
/**
|
|
5476
|
+
* Properties that are taxed and will be included in reports (Tax summary, My tax report, e.t.c.)
|
|
5477
|
+
*/
|
|
5478
|
+
getTaxInclusive() {
|
|
5479
|
+
return this.create(this.items.filter((property) => property.category.isTaxInclusive));
|
|
5480
|
+
}
|
|
5481
|
+
getUnsold() {
|
|
5482
|
+
return this.create(this.items.filter((property) => !property.isSold()));
|
|
5483
|
+
}
|
|
5484
|
+
/**
|
|
5485
|
+
* Get total purchase price for all properties in the collection
|
|
5486
|
+
*/
|
|
5487
|
+
get purchasePrice() {
|
|
5488
|
+
return this.sumBy('purchasePrice');
|
|
5489
|
+
}
|
|
5490
|
+
get growthPercent() {
|
|
5491
|
+
return this.sumBy('growthPercent');
|
|
5492
|
+
}
|
|
5493
|
+
get marketValue() {
|
|
5494
|
+
return this.sumBy('marketValue');
|
|
5495
|
+
}
|
|
5496
|
+
get firstForecastYear() {
|
|
5497
|
+
return this.items.reduce((min, property) => {
|
|
5498
|
+
const current = property.firstForecastYear;
|
|
5499
|
+
return min > current ? current : min;
|
|
5500
|
+
}, new FinancialYear().year);
|
|
5501
|
+
}
|
|
5502
|
+
get marketValueGrowth() {
|
|
5503
|
+
return (this.marketValue - this.purchasePrice) / this.purchasePrice;
|
|
5504
|
+
}
|
|
5505
|
+
/**
|
|
5506
|
+
* list of properties
|
|
5507
|
+
*/
|
|
5508
|
+
getCGTApplicable() {
|
|
5509
|
+
return this.create(this.items.filter((property) => property.isCGTApplicable()));
|
|
5510
|
+
}
|
|
5511
|
+
getOwnerOccupiedProperties() {
|
|
5512
|
+
return new PropertyCollection(this.items.filter((property) => property.category.isOwnerOccupied()));
|
|
5513
|
+
}
|
|
5514
|
+
get earliestContractDate() {
|
|
5515
|
+
return this.items.reduce((min, property) => {
|
|
5516
|
+
return min < property.contractDate ? min : property.contractDate;
|
|
5517
|
+
}, new FinancialYear(new Date()).startDate);
|
|
5518
|
+
}
|
|
5519
|
+
/**
|
|
5520
|
+
* Get list of unique property categories from collection
|
|
5521
|
+
*/
|
|
5522
|
+
getCategories() {
|
|
5523
|
+
return uniqBy(this.items.map((property) => property.category), 'id');
|
|
5524
|
+
}
|
|
5525
|
+
/**
|
|
5526
|
+
* Get property with the highest growth percent
|
|
5527
|
+
*/
|
|
5528
|
+
getBestPerformanceGrowthProperty() {
|
|
5529
|
+
return this.items.reduce((max, current) => {
|
|
5530
|
+
return max.growthPercent < current.growthPercent ? current : max;
|
|
5531
|
+
}, this.first);
|
|
5532
|
+
}
|
|
5533
|
+
/**
|
|
5534
|
+
* Get property with the lowest tax position
|
|
5535
|
+
*/
|
|
5536
|
+
getBestPerformanceTaxProperty(transactions, depreciations) {
|
|
5537
|
+
const transactionsByProperty = transactions.groupBy('property.id');
|
|
5538
|
+
const depreciationsByProperty = depreciations.groupBy('property.id');
|
|
5539
|
+
return this.items.reduce((min, current) => {
|
|
5540
|
+
const minTaxPosition = min.getTaxPosition(transactionsByProperty.get(min.id), depreciationsByProperty.get(min.id));
|
|
5541
|
+
const currentTaxPosition = current.getTaxPosition(transactionsByProperty.get(current.id), depreciationsByProperty.get(current.id));
|
|
5542
|
+
return minTaxPosition > currentTaxPosition ? current : min;
|
|
5543
|
+
}, this.first);
|
|
5544
|
+
}
|
|
5545
|
+
/**
|
|
5546
|
+
* Show best performance properties first
|
|
5547
|
+
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677997/Property+Tank+Dashboard
|
|
5548
|
+
*/
|
|
5549
|
+
sortByBestPerformance(transactions, depreciations) {
|
|
5550
|
+
const activeProperties = this.getActiveProperties();
|
|
5551
|
+
// nothing to sort when no active properties
|
|
5552
|
+
if (!activeProperties.length) {
|
|
5553
|
+
return this;
|
|
5554
|
+
}
|
|
5555
|
+
const bestProperties = uniqBy(this.create([
|
|
5556
|
+
activeProperties.getBestPerformanceGrowthProperty(),
|
|
5557
|
+
activeProperties.getBestPerformanceTaxProperty(transactions, depreciations)
|
|
5558
|
+
]).toArray(), 'id');
|
|
5559
|
+
const newItems = this.remove(bestProperties).toArray();
|
|
5560
|
+
newItems.unshift(...bestProperties);
|
|
5561
|
+
return this.create(newItems);
|
|
5562
|
+
}
|
|
5563
|
+
}
|
|
5564
|
+
|
|
5565
|
+
class PropertyCategoryMovementCollection extends Collection {
|
|
5566
|
+
/**
|
|
5567
|
+
* @TODO TT-2355 Alex refactor propertyForecast, use separated api (then I can remove property from param)
|
|
5568
|
+
*/
|
|
5569
|
+
getByForecast(property, forecast) {
|
|
5570
|
+
const financialYear = new FinancialYear(forecast.financialYear);
|
|
5571
|
+
return this.filterBy('property.id', property.id).filter((movement) => {
|
|
5572
|
+
return movement.fromDate <= financialYear.endDate && movement.toDate >= financialYear.startDate;
|
|
5573
|
+
});
|
|
5574
|
+
}
|
|
5575
|
+
hasCategory(categoryId) {
|
|
5576
|
+
return !!this.findBy('propertyCategory.id', categoryId);
|
|
5577
|
+
}
|
|
5578
|
+
}
|
|
5579
|
+
|
|
5414
5580
|
// @TODO Alex move here all collections
|
|
5415
5581
|
|
|
5416
5582
|
class AccountSetupItemCollection extends Collection {
|
|
@@ -5548,6 +5714,96 @@ class ChartAccountsCollection extends Collection {
|
|
|
5548
5714
|
}
|
|
5549
5715
|
}
|
|
5550
5716
|
|
|
5717
|
+
class MessageCollection extends Collection {
|
|
5718
|
+
getFirstUnreadMessage(user) {
|
|
5719
|
+
return this.items.find((message) => {
|
|
5720
|
+
return !message.isRead() && message.isFromEmployee() !== user.isEmployee();
|
|
5721
|
+
});
|
|
5722
|
+
}
|
|
5723
|
+
/**
|
|
5724
|
+
* Get List of unread chats
|
|
5725
|
+
*/
|
|
5726
|
+
getUnread() {
|
|
5727
|
+
return this.items.filter((message) => !message.readAt);
|
|
5728
|
+
}
|
|
5729
|
+
getFromActiveChats() {
|
|
5730
|
+
return this.filter((message) => message.chat.isActive());
|
|
5731
|
+
}
|
|
5732
|
+
/**
|
|
5733
|
+
* Get amount of chats that contains unread messages
|
|
5734
|
+
*/
|
|
5735
|
+
getUnreadChatsAmount(isFromEmployee = false) {
|
|
5736
|
+
// filtered messages for client/employee
|
|
5737
|
+
const filteredMessages = this.filter((message) => isFromEmployee ? message.isFromEmployee() : !message.isFromEmployee());
|
|
5738
|
+
return uniqBy(filteredMessages.getFromActiveChats().getUnread(), 'chat.id').length;
|
|
5739
|
+
}
|
|
5740
|
+
/**
|
|
5741
|
+
* Check if chat has unread chats
|
|
5742
|
+
*/
|
|
5743
|
+
hasUnread() {
|
|
5744
|
+
return !!this.getUnread().length;
|
|
5745
|
+
}
|
|
5746
|
+
}
|
|
5747
|
+
|
|
5748
|
+
/**
|
|
5749
|
+
* List of objects grouped by passed property
|
|
5750
|
+
*/
|
|
5751
|
+
class Dictionary {
|
|
5752
|
+
constructor(items, path = 'id') {
|
|
5753
|
+
this.items = {};
|
|
5754
|
+
if (!items.length) {
|
|
5755
|
+
return;
|
|
5756
|
+
}
|
|
5757
|
+
// Do nothing if provided path was not found in the 1st item
|
|
5758
|
+
if (!hasIn(items[0], path.split('.')[0])) {
|
|
5759
|
+
return;
|
|
5760
|
+
}
|
|
5761
|
+
this.groupItems(items, path);
|
|
5762
|
+
}
|
|
5763
|
+
add(key, value) {
|
|
5764
|
+
this.items[key] = value;
|
|
5765
|
+
}
|
|
5766
|
+
get(key) {
|
|
5767
|
+
return this.items[key] !== undefined ? this.items[key] : null;
|
|
5768
|
+
}
|
|
5769
|
+
groupItems(items, path) {
|
|
5770
|
+
items.forEach((item) => {
|
|
5771
|
+
let key = get(item, path);
|
|
5772
|
+
// if object does not have property for grouping it will be grouped as 'other'
|
|
5773
|
+
if (key === undefined) {
|
|
5774
|
+
key = 'other';
|
|
5775
|
+
}
|
|
5776
|
+
this.items[key] = item;
|
|
5777
|
+
});
|
|
5778
|
+
}
|
|
5779
|
+
}
|
|
5780
|
+
|
|
5781
|
+
var ChatStatusEnum;
|
|
5782
|
+
(function (ChatStatusEnum) {
|
|
5783
|
+
ChatStatusEnum[ChatStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
|
5784
|
+
ChatStatusEnum[ChatStatusEnum["INACTIVE"] = 2] = "INACTIVE";
|
|
5785
|
+
})(ChatStatusEnum || (ChatStatusEnum = {}));
|
|
5786
|
+
|
|
5787
|
+
class ChatCollection extends Collection {
|
|
5788
|
+
/**
|
|
5789
|
+
* Sort chats by last messages (newest first) + empty chats in the end
|
|
5790
|
+
*/
|
|
5791
|
+
getSortedByNewest(messages) {
|
|
5792
|
+
const chatsById = new Dictionary(this.toArray());
|
|
5793
|
+
// get chats array sorted from newest to oldest
|
|
5794
|
+
const chats = uniqBy(new MessageCollection(messages)
|
|
5795
|
+
.filterBy('chat.id', this.getIds())
|
|
5796
|
+
.sortBy('createdAt', true)
|
|
5797
|
+
.toArray()
|
|
5798
|
+
.map((message) => chatsById.get(message.chat.id)), 'id');
|
|
5799
|
+
const emptyChats = differenceBy(this.toArray(), chats, 'id');
|
|
5800
|
+
return this.create([...chats, ...emptyChats]);
|
|
5801
|
+
}
|
|
5802
|
+
getActive() {
|
|
5803
|
+
return this.filterBy('status', ChatStatusEnum.ACTIVE);
|
|
5804
|
+
}
|
|
5805
|
+
}
|
|
5806
|
+
|
|
5551
5807
|
class ClientCollection extends Collection {
|
|
5552
5808
|
}
|
|
5553
5809
|
|
|
@@ -6054,26 +6310,6 @@ class LoanCollection extends Collection {
|
|
|
6054
6310
|
}
|
|
6055
6311
|
}
|
|
6056
6312
|
|
|
6057
|
-
class MessageCollection extends Collection {
|
|
6058
|
-
getFirstUnreadMessage(user) {
|
|
6059
|
-
return this.items.find((message) => {
|
|
6060
|
-
return !message.isRead() && message.isFromEmployee() !== user.isEmployee();
|
|
6061
|
-
});
|
|
6062
|
-
}
|
|
6063
|
-
/**
|
|
6064
|
-
* Get List of unread chats
|
|
6065
|
-
*/
|
|
6066
|
-
getUnread() {
|
|
6067
|
-
return this.items.filter((message) => !message.readAt);
|
|
6068
|
-
}
|
|
6069
|
-
/**
|
|
6070
|
-
* Check if chat has unread chats
|
|
6071
|
-
*/
|
|
6072
|
-
hasUnread() {
|
|
6073
|
-
return !!this.getUnread().length;
|
|
6074
|
-
}
|
|
6075
|
-
}
|
|
6076
|
-
|
|
6077
6313
|
/**
|
|
6078
6314
|
* Collection of MessageDocument instances
|
|
6079
6315
|
*/
|
|
@@ -6086,134 +6322,6 @@ class MessageDocumentCollection extends Collection {
|
|
|
6086
6322
|
}
|
|
6087
6323
|
}
|
|
6088
6324
|
|
|
6089
|
-
class PropertyCollection extends Collection {
|
|
6090
|
-
/**
|
|
6091
|
-
* Get new property collection filtered by category id
|
|
6092
|
-
* @param id id of category for filter
|
|
6093
|
-
*/
|
|
6094
|
-
getByCategoryId(id) {
|
|
6095
|
-
return new PropertyCollection(this.items.filter((property) => property.category.id === id));
|
|
6096
|
-
}
|
|
6097
|
-
/**
|
|
6098
|
-
* Get new property collection filtered by active status
|
|
6099
|
-
*/
|
|
6100
|
-
getActiveProperties() {
|
|
6101
|
-
return new PropertyCollection(this.items.filter((property) => property.isActive));
|
|
6102
|
-
}
|
|
6103
|
-
getCreatedProperties() {
|
|
6104
|
-
return new PropertyCollection(this.items.filter((property) => property.isOwn()));
|
|
6105
|
-
}
|
|
6106
|
-
/**
|
|
6107
|
-
* Get new property collection filtered by shared
|
|
6108
|
-
*/
|
|
6109
|
-
getSharedProperties() {
|
|
6110
|
-
return new PropertyCollection(this.items.filter((property) => !property.isOwn()));
|
|
6111
|
-
}
|
|
6112
|
-
/**
|
|
6113
|
-
* Properties that are taxed and will be included in reports (Tax summary, My tax report, e.t.c.)
|
|
6114
|
-
*/
|
|
6115
|
-
getTaxInclusive() {
|
|
6116
|
-
return this.create(this.items.filter((property) => property.category.isTaxInclusive));
|
|
6117
|
-
}
|
|
6118
|
-
getUnsold() {
|
|
6119
|
-
return this.create(this.items.filter((property) => !property.isSold()));
|
|
6120
|
-
}
|
|
6121
|
-
/**
|
|
6122
|
-
* Get total purchase price for all properties in the collection
|
|
6123
|
-
*/
|
|
6124
|
-
get purchasePrice() {
|
|
6125
|
-
return this.sumBy('purchasePrice');
|
|
6126
|
-
}
|
|
6127
|
-
get growthPercent() {
|
|
6128
|
-
return this.sumBy('growthPercent');
|
|
6129
|
-
}
|
|
6130
|
-
get marketValue() {
|
|
6131
|
-
return this.sumBy('marketValue');
|
|
6132
|
-
}
|
|
6133
|
-
get firstForecastYear() {
|
|
6134
|
-
return this.items.reduce((min, property) => {
|
|
6135
|
-
const current = property.firstForecastYear;
|
|
6136
|
-
return min > current ? current : min;
|
|
6137
|
-
}, new FinancialYear().year);
|
|
6138
|
-
}
|
|
6139
|
-
get marketValueGrowth() {
|
|
6140
|
-
return (this.marketValue - this.purchasePrice) / this.purchasePrice;
|
|
6141
|
-
}
|
|
6142
|
-
/**
|
|
6143
|
-
* list of properties
|
|
6144
|
-
*/
|
|
6145
|
-
getCGTApplicable() {
|
|
6146
|
-
return this.create(this.items.filter((property) => property.isCGTApplicable()));
|
|
6147
|
-
}
|
|
6148
|
-
getOwnerOccupiedProperties() {
|
|
6149
|
-
return new PropertyCollection(this.items.filter((property) => property.category.isOwnerOccupied()));
|
|
6150
|
-
}
|
|
6151
|
-
get earliestContractDate() {
|
|
6152
|
-
return this.items.reduce((min, property) => {
|
|
6153
|
-
return min < property.contractDate ? min : property.contractDate;
|
|
6154
|
-
}, new FinancialYear(new Date()).startDate);
|
|
6155
|
-
}
|
|
6156
|
-
/**
|
|
6157
|
-
* Get list of unique property categories from collection
|
|
6158
|
-
*/
|
|
6159
|
-
getCategories() {
|
|
6160
|
-
return uniqBy(this.items.map((property) => property.category), 'id');
|
|
6161
|
-
}
|
|
6162
|
-
/**
|
|
6163
|
-
* Get property with the highest growth percent
|
|
6164
|
-
*/
|
|
6165
|
-
getBestPerformanceGrowthProperty() {
|
|
6166
|
-
return this.items.reduce((max, current) => {
|
|
6167
|
-
return max.growthPercent < current.growthPercent ? current : max;
|
|
6168
|
-
}, this.first);
|
|
6169
|
-
}
|
|
6170
|
-
/**
|
|
6171
|
-
* Get property with the lowest tax position
|
|
6172
|
-
*/
|
|
6173
|
-
getBestPerformanceTaxProperty(transactions, depreciations) {
|
|
6174
|
-
const transactionsByProperty = transactions.groupBy('property.id');
|
|
6175
|
-
const depreciationsByProperty = depreciations.groupBy('property.id');
|
|
6176
|
-
return this.items.reduce((min, current) => {
|
|
6177
|
-
const minTaxPosition = min.getTaxPosition(transactionsByProperty.get(min.id), depreciationsByProperty.get(min.id));
|
|
6178
|
-
const currentTaxPosition = current.getTaxPosition(transactionsByProperty.get(current.id), depreciationsByProperty.get(current.id));
|
|
6179
|
-
return minTaxPosition > currentTaxPosition ? current : min;
|
|
6180
|
-
}, this.first);
|
|
6181
|
-
}
|
|
6182
|
-
/**
|
|
6183
|
-
* Show best performance properties first
|
|
6184
|
-
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677997/Property+Tank+Dashboard
|
|
6185
|
-
*/
|
|
6186
|
-
sortByBestPerformance(transactions, depreciations) {
|
|
6187
|
-
const activeProperties = this.getActiveProperties();
|
|
6188
|
-
// nothing to sort when no active properties
|
|
6189
|
-
if (!activeProperties.length) {
|
|
6190
|
-
return this;
|
|
6191
|
-
}
|
|
6192
|
-
const bestProperties = uniqBy(this.create([
|
|
6193
|
-
activeProperties.getBestPerformanceGrowthProperty(),
|
|
6194
|
-
activeProperties.getBestPerformanceTaxProperty(transactions, depreciations)
|
|
6195
|
-
]).toArray(), 'id');
|
|
6196
|
-
const newItems = this.remove(bestProperties).toArray();
|
|
6197
|
-
newItems.unshift(...bestProperties);
|
|
6198
|
-
return this.create(newItems);
|
|
6199
|
-
}
|
|
6200
|
-
}
|
|
6201
|
-
|
|
6202
|
-
class PropertySaleCollection extends Collection {
|
|
6203
|
-
get grossCGT() {
|
|
6204
|
-
return this.create(this.items.filter((propertySale) => propertySale.grossCGT > 0)).sumBy('grossCGT');
|
|
6205
|
-
}
|
|
6206
|
-
/**
|
|
6207
|
-
* Property sales are CGT applicable unless it has "Principle place of residence" exemption type
|
|
6208
|
-
*/
|
|
6209
|
-
getCGTApplicable() {
|
|
6210
|
-
return this.create(this.items.filter((propertySale) => propertySale.isCGTApplicable()));
|
|
6211
|
-
}
|
|
6212
|
-
getByPropertyShareIds(ids) {
|
|
6213
|
-
return this.filterBy('share.id', ids);
|
|
6214
|
-
}
|
|
6215
|
-
}
|
|
6216
|
-
|
|
6217
6325
|
/**
|
|
6218
6326
|
* Enum with symbols based on depreciation LVP asset type
|
|
6219
6327
|
*/
|
|
@@ -6841,12 +6949,6 @@ var ChartAccountsTypeEnum;
|
|
|
6841
6949
|
ChartAccountsTypeEnum[ChartAccountsTypeEnum["EXPENSE"] = 2] = "EXPENSE";
|
|
6842
6950
|
})(ChartAccountsTypeEnum || (ChartAccountsTypeEnum = {}));
|
|
6843
6951
|
|
|
6844
|
-
var ChatStatusEnum;
|
|
6845
|
-
(function (ChatStatusEnum) {
|
|
6846
|
-
ChatStatusEnum[ChatStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
|
6847
|
-
ChatStatusEnum[ChatStatusEnum["INACTIVE"] = 2] = "INACTIVE";
|
|
6848
|
-
})(ChatStatusEnum || (ChatStatusEnum = {}));
|
|
6849
|
-
|
|
6850
6952
|
var ClientDetailsMedicareExemptionEnum;
|
|
6851
6953
|
(function (ClientDetailsMedicareExemptionEnum) {
|
|
6852
6954
|
ClientDetailsMedicareExemptionEnum[ClientDetailsMedicareExemptionEnum["NO"] = 0] = "NO";
|
|
@@ -7605,6 +7707,9 @@ __decorate([
|
|
|
7605
7707
|
__decorate([
|
|
7606
7708
|
Type(() => User)
|
|
7607
7709
|
], Message.prototype, "employee", void 0);
|
|
7710
|
+
__decorate([
|
|
7711
|
+
Type(() => Chat)
|
|
7712
|
+
], Message.prototype, "chat", void 0);
|
|
7608
7713
|
__decorate([
|
|
7609
7714
|
Type(() => MessageDocument),
|
|
7610
7715
|
Expose()
|
|
@@ -7811,39 +7916,6 @@ var AlphabetColorsEnum;
|
|
|
7811
7916
|
AlphabetColorsEnum["Z"] = "#E3C9CE";
|
|
7812
7917
|
})(AlphabetColorsEnum || (AlphabetColorsEnum = {}));
|
|
7813
7918
|
|
|
7814
|
-
/**
|
|
7815
|
-
* List of objects grouped by passed property
|
|
7816
|
-
*/
|
|
7817
|
-
class Dictionary {
|
|
7818
|
-
constructor(items, path = 'id') {
|
|
7819
|
-
this.items = {};
|
|
7820
|
-
if (!items.length) {
|
|
7821
|
-
return;
|
|
7822
|
-
}
|
|
7823
|
-
// Do nothing if provided path was not found in the 1st item
|
|
7824
|
-
if (!hasIn(items[0], path.split('.')[0])) {
|
|
7825
|
-
return;
|
|
7826
|
-
}
|
|
7827
|
-
this.groupItems(items, path);
|
|
7828
|
-
}
|
|
7829
|
-
add(key, value) {
|
|
7830
|
-
this.items[key] = value;
|
|
7831
|
-
}
|
|
7832
|
-
get(key) {
|
|
7833
|
-
return this.items[key] !== undefined ? this.items[key] : null;
|
|
7834
|
-
}
|
|
7835
|
-
groupItems(items, path) {
|
|
7836
|
-
items.forEach((item) => {
|
|
7837
|
-
let key = get(item, path);
|
|
7838
|
-
// if object does not have property for grouping it will be grouped as 'other'
|
|
7839
|
-
if (key === undefined) {
|
|
7840
|
-
key = 'other';
|
|
7841
|
-
}
|
|
7842
|
-
this.items[key] = item;
|
|
7843
|
-
});
|
|
7844
|
-
}
|
|
7845
|
-
}
|
|
7846
|
-
|
|
7847
7919
|
var DepreciationGroupEnum;
|
|
7848
7920
|
(function (DepreciationGroupEnum) {
|
|
7849
7921
|
DepreciationGroupEnum[DepreciationGroupEnum["BUILDING_IMPROVEMENTS"] = 0] = "BUILDING_IMPROVEMENTS";
|
|
@@ -14727,7 +14799,7 @@ class SoleBusinessForm extends AbstractForm {
|
|
|
14727
14799
|
* We take the first forecast because income sources available only for new business, so we have only one forecast
|
|
14728
14800
|
*/
|
|
14729
14801
|
get forecastFormGroup() {
|
|
14730
|
-
if (
|
|
14802
|
+
if (this.business.id) {
|
|
14731
14803
|
return null;
|
|
14732
14804
|
}
|
|
14733
14805
|
return this.get('incomeSource').get('soleForecasts').at(0);
|
|
@@ -14736,7 +14808,7 @@ class SoleBusinessForm extends AbstractForm {
|
|
|
14736
14808
|
* We take the first loss because losses available only for new business, so we have only one loss
|
|
14737
14809
|
*/
|
|
14738
14810
|
get lossFormGroup() {
|
|
14739
|
-
if (
|
|
14811
|
+
if (this.business.id) {
|
|
14740
14812
|
return null;
|
|
14741
14813
|
}
|
|
14742
14814
|
return this.get('losses').at(0);
|
|
@@ -14875,7 +14947,8 @@ class SoleInvoiceForm extends AbstractForm {
|
|
|
14875
14947
|
items: new FormArray((invoice.items || [plainToClass(SoleInvoiceItem, {})]).map((item) => new SoleInvoiceItemForm(item))),
|
|
14876
14948
|
payer: new FormControl(invoice.payer, Validators.required),
|
|
14877
14949
|
taxType: new FormControl(invoice.taxType, Validators.required),
|
|
14878
|
-
bankAccount: new FormControl(invoice.bankAccount, Validators.required)
|
|
14950
|
+
bankAccount: new FormControl(invoice.bankAccount, Validators.required),
|
|
14951
|
+
reference: new FormControl(invoice.reference)
|
|
14879
14952
|
}, invoice);
|
|
14880
14953
|
this.soleDetailsGST = soleDetailsGST;
|
|
14881
14954
|
// we need invoice template only for new invoices
|
|
@@ -15942,5 +16015,5 @@ VehicleLogbookForm.maxDescriptionLength = 60;
|
|
|
15942
16015
|
* Generated bundle index. Do not edit.
|
|
15943
16016
|
*/
|
|
15944
16017
|
|
|
15945
|
-
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqService, BasiqToken, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteCollection, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReceiptService, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookBestPeriodService, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfOrientationEnum, PdfSettings, Phone, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RewardfulService, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, TutorialVideoService, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserInviteForm, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, minDateValidator, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
|
|
16018
|
+
export { AbstractForm, AbstractModel, AccountSetupItem, AccountSetupItemCollection, AccountSetupService, Address, AddressService, AddressTypeEnum, AlphabetColorsEnum, AppEvent, AppEventTypeEnum, AssetEntityTypeEnum, AssetTypeEnum, AssetsService, AuthService, BANK_ACCOUNT_TYPES, Badge, BadgeColorEnum, Bank, BankAccount, BankAccountAddManualForm, BankAccountAllocationForm, BankAccountCalculationService, BankAccountChartData, BankAccountCollection, BankAccountImportForm, BankAccountPropertiesForm, BankAccountProperty, BankAccountService, BankAccountStatusEnum, BankAccountTypeEnum, BankAccountsImportForm, BankConnection, BankConnectionService, BankConnectionStatusEnum, BankLoginData, BankLoginForm, BankService, BankTransaction, BankTransactionCalculationService, BankTransactionChartData, BankTransactionCollection, BankTransactionService, BankTransactionSummaryFieldsEnum, BankTransactionTypeEnum, BasiqConfig, BasiqJob, BasiqService, BasiqToken, BorrowingExpense, BorrowingExpenseLoan, BorrowingExpenseService, CAPITAL_COSTS_ITEMS, CHART_ACCOUNTS_CATEGORIES, CalculationFormItem, CalculationFormTypeEnum, CgtExemptionAndRolloverCodeEnum, ChartAccounts, ChartAccountsCategoryECollection, ChartAccountsCategoryEnum, ChartAccountsCollection, ChartAccountsDepreciation, ChartAccountsDepreciationService, ChartAccountsEtpEnum, ChartAccountsHeading, ChartAccountsHeadingListEnum, ChartAccountsHeadingTaxDeductibleEnum, ChartAccountsHeadingTaxableEnum, ChartAccountsHeadingVehicleListEnum, ChartAccountsListEnum, ChartAccountsMetadata, ChartAccountsMetadataListEnum, ChartAccountsMetadataTypeEnum, ChartAccountsService, ChartAccountsTaxLabelsEnum, ChartAccountsTypeEnum, ChartAccountsValue, ChartData, ChartSerie, Chat, ChatCollection, ChatService, ChatStatusEnum, ChatViewTypeEnum, ClientCollection, ClientDetails, ClientDetailsMedicareExemptionEnum, ClientDetailsWorkDepreciationCalculationEnum, ClientDetailsWorkingHolidayMakerEnum, ClientIncomeTypes, ClientIncomeTypesForm, ClientIncomeTypesService, ClientInvite, ClientInviteCollection, ClientInviteService, ClientInviteStatusEnum, ClientInviteTypeEnum, ClientMovement, ClientMovementCollection, ClientMovementService, ClientPortfolioChartData, ClientPortfolioReport, ClientPortfolioReportCollection, ClientPortfolioReportService, Collection, CollectionDictionary, CorelogicService, CorelogicSuggestion, Country, DEDUCTION_CATEGORIES, DEPRECIATION_GROUPS, DOCUMENT_FILE_TYPES, DeductionClothingTypeEnum, DeductionSelfEducationTypeEnum, Depreciation, DepreciationCalculationEnum, DepreciationCalculationPercentEnum, DepreciationCapitalProject, DepreciationCapitalProjectService, DepreciationCollection, DepreciationForecast, DepreciationForecastCollection, DepreciationGroup, DepreciationGroupEnum, DepreciationGroupItem, DepreciationLvpAssetTypeEnum, DepreciationLvpReportItem, DepreciationLvpReportItemCollection, DepreciationReceipt, DepreciationReceiptService, DepreciationReportItem, DepreciationReportItemCollection, DepreciationService, DepreciationTypeEnum, DepreciationWriteOffAmountEnum, Dictionary, Document, DocumentApiUrlPrefixEnum, DocumentFolder, DocumentFolderService, DocumentService, DocumentTypeEnum, ENDPOINTS, EmployeeCollection, EmployeeDetails, EmployeeInvite, EmployeeInviteService, EmployeeService, Endpoint, EquityPositionChartService, EventDispatcherService, ExportDataTable, ExportFormatEnum, ExportFormatterService, ExportableCollection, FacebookService, FinancialYear, Firm, FirmService, FirmTypeEnum, HeaderTitleService, IconsFileEnum, IncomeAmountTypeEnum, IncomePosition, IncomeSource, IncomeSourceChartData, IncomeSourceCollection, IncomeSourceForecast, IncomeSourceForecastService, IncomeSourceForecastTrustTypeEnum, IncomeSourceService, IncomeSourceType, IncomeSourceTypeEnum, IncomeSourceTypeListOtherEnum, IncomeSourceTypeListSoleEnum, IncomeSourceTypeListWorkEnum, InterceptorsModule, IntercomService, InviteStatusEnum, JwtService, KompassifyService, Loan, LoanBankTypeEnum, LoanCollection, LoanForm, LoanFrequencyEnum, LoanInterestTypeEnum, LoanMaxNumberOfPaymentsEnum, LoanPayment, LoanPaymentCollection, LoanPayout, LoanPayoutTypeEnum, LoanRepaymentFrequencyEnum, LoanRepaymentTypeEnum, LoanService, LoanTypeEnum, LoanVehicleTypeEnum, LogbookBestPeriodService, LogbookPeriod, LoginForm, MODULE_URL_LIST, MONTHS, Message, MessageCollection, MessageDocument, MessageDocumentCollection, MessageDocumentService, MessageService, MonthNameShortEnum, MonthNumberEnum, MyAccountHistory, MyAccountHistoryInitiatedByEnum, MyAccountHistoryStatusEnum, MyAccountHistoryTypeEnum, MyTaxBusinessOrLosses, MyTaxBusinessOrLossesForm, MyTaxCgt, MyTaxCgtForm, MyTaxDeductions, MyTaxDeductionsForm, MyTaxDividends, MyTaxDividendsForm, MyTaxEmployeeShareSchemes, MyTaxEmployeeShareSchemesForm, MyTaxEstimate, MyTaxIncomeStatements, MyTaxIncomeStatementsForm, MyTaxIncomeTests, MyTaxIncomeTestsForm, MyTaxInterest, MyTaxInterestForm, MyTaxLosses, MyTaxLossesForm, MyTaxMedicareForm, MyTaxOffsets, MyTaxOffsetsForm, MyTaxOtherIncome, MyTaxOtherIncomeForm, MyTaxPartnershipsAndTrusts, MyTaxPartnershipsAndTrustsForm, MyTaxRent, MyTaxRentForm, Notification, Occupation, OccupationService, PASSWORD_REGEXPS, PasswordForm, PdfFromDataTableService, PdfFromDomElementService, PdfFromHtmlTableService, PdfOrientationEnum, PdfSettings, Phone, PhoneTypeEnum, PreloaderService, Property, PropertyCalculationService, PropertyCategory, PropertyCategoryListEnum, PropertyCategoryMovement, PropertyCategoryMovementCollection, PropertyCategoryMovementService, PropertyCategoryService, PropertyCollection, PropertyDepreciationCalculationEnum, PropertyDocument, PropertyDocumentService, PropertyEquityChartData, PropertyEquityChartItem, PropertyForecast, PropertyReportItem, PropertyReportItemCollection, PropertyReportItemDepreciation, PropertyReportItemDepreciationCollection, PropertyReportItemTransaction, PropertyReportItemTransactionCollection, PropertySale, PropertySaleCollection, PropertySaleCostBase, PropertySaleCostBaseForm, PropertySaleCostSaleForm, PropertySaleExemptionsForm, PropertySaleService, PropertySaleTaxExemptionMetadata, PropertySaleTaxExemptionMetadataCollection, PropertyService, PropertyShare, PropertyShareAccessEnum, PropertyShareService, PropertyShareStatusEnum, PropertySubscription, PropertyTransactionReportService, PropertyValuation, RegisterClientForm, RegisterFirmForm, RegistrationInvite, RegistrationInviteStatusEnum, ReportItem, ReportItemCollection, ReportItemDetails, ResetPasswordForm, RewardfulService, SUBSCRIPTION_DESCRIPTION, SUBSCRIPTION_TITLE, SalaryForecast, SalaryForecastFrequencyEnum, SalaryForecastService, ServiceNotificationService, ServiceNotificationStatusEnum, ServiceNotificationTypeEnum, ServicePayment, ServicePaymentStatusEnum, ServicePrice, ServicePriceRecurringIntervalEnum, ServicePriceService, ServicePriceTypeEnum, ServiceProduct, ServiceProductIdEnum, ServiceProductStatusEnum, ServiceSubscription, ServiceSubscriptionCollection, ServiceSubscriptionItem, ServiceSubscriptionStatusEnum, ShareFilterOptionsEnum, SoleBusiness, SoleBusinessActivity, SoleBusinessActivityService, SoleBusinessAllocation, SoleBusinessAllocationsForm, SoleBusinessForm, SoleBusinessLoss, SoleBusinessLossReport, SoleBusinessLossService, SoleBusinessService, SoleContact, SoleContactForm, SoleContactService, SoleDepreciationMethod, SoleDepreciationMethodEnum, SoleDepreciationMethodForm, SoleDepreciationMethodService, SoleDetails, SoleDetailsForm, SoleDetailsService, SoleForecast, SoleForecastService, SoleInvoice, SoleInvoiceCollection, SoleInvoiceForm, SoleInvoiceItem, SoleInvoiceItemForm, SoleInvoiceService, SoleInvoiceStatusesEnum, SoleInvoiceTaxTypeEnum, SoleInvoiceTemplate, SoleInvoiceTemplateForm, SoleInvoiceTemplateService, SoleInvoiceTemplateTaxTypeEnum, SpareDocumentSpareTypeEnum, SseService, SubscriptionService, SubscriptionTypeEnum, TAX_RETURN_CATEGORIES, TYPE_LOAN, TankTypeEnum, TaxCalculationMedicareExemptionEnum, TaxCalculationTypeEnum, TaxExemption, TaxExemptionEnum, TaxExemptionMetadata, TaxExemptionMetadataEnum, TaxExemptionService, TaxReturnCategoryListEnum, TaxReturnCategorySectionEnum, TaxReview, TaxReviewCollection, TaxReviewHistoryService, TaxReviewService, TaxReviewStatusEnum, TaxSummary, TaxSummaryListEnum, TaxSummarySection, TaxSummarySectionEnum, TaxSummaryService, TaxSummaryTaxSummaryEnum, TaxSummaryTypeEnum, TicketFeedbackEnum, TicketStatusEnum, TicketTypesEnum, Toast, ToastService, ToastTypeEnum, Transaction, TransactionAllocation, TransactionAllocationCollection, TransactionAllocationService, TransactionBase, TransactionCalculationService, TransactionCategoryEnum, TransactionCollection, TransactionMetadata, TransactionOperationEnum, TransactionReceipt, TransactionService, TransactionSourceEnum, TransactionTypeEnum, TtCoreModule, TutorialVideoService, USER_ROLES, USER_WORK_POSITION, User, UserEventSetting, UserEventSettingCollection, UserEventSettingFieldEnum, UserEventSettingService, UserEventStatusEnum, UserEventType, UserEventTypeCategory, UserEventTypeClientTypeEnum, UserEventTypeEmployeeTypeEnum, UserEventTypeFrequencyEnum, UserEventTypeService, UserEventTypeUserTypeEnum, UserInviteForm, UserMedicareExemptionEnum, UserRolesEnum, UserService, UserStatusEnum, UserSwitcherService, UserTitleEnum, UserToRegister, UserWorkDepreciationCalculationEnum, UserWorkingHolidayMakerEnum, UsersInviteService, Vehicle, VehicleClaim, VehicleClaimCollection, VehicleClaimDetails, VehicleClaimDetailsForm, VehicleClaimDetailsMethodEnum, VehicleClaimDetailsService, VehicleClaimForm, VehicleClaimService, VehicleExpense, VehicleExpenseCollection, VehicleForm, VehicleLogbook, VehicleLogbookCollection, VehicleLogbookForm, VehicleLogbookPurposeEnum, VehicleLogbookService, VehicleService, XlsxService, atLeastOneCheckedValidator, atoLinks, autocompleteValidator, cloneDeep, compare, compareMatOptions, conditionalValidator, createDate, displayMatOptions, enumToList, fieldsSumValidator, getDocIcon, minDateValidator, passwordMatchValidator, passwordValidator, replace, roundTo, sort, sortDeep, taxReviewFilterPredicate };
|
|
15946
16019
|
//# sourceMappingURL=taxtank-core.js.map
|