taxtank-core 0.30.35 → 0.30.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2020/lib/collections/collection.mjs +5 -1
  2. package/esm2020/lib/db/Enums/holding/holding-type-category.enum.mjs +13 -5
  3. package/esm2020/lib/db/Models/holding/holding-sale.mjs +1 -1
  4. package/esm2020/lib/db/Models/holding/holding-type-exchange.mjs +3 -0
  5. package/esm2020/lib/db/Models/holding/holding-type.mjs +1 -1
  6. package/esm2020/lib/db/Models/holding/holding.mjs +1 -1
  7. package/esm2020/lib/forms/holding/holding-sale.form.mjs +4 -1
  8. package/esm2020/lib/forms/holding/holding-type.form.mjs +2 -2
  9. package/esm2020/lib/models/holding/holding-sale.mjs +33 -2
  10. package/esm2020/lib/models/holding/holding-type-exchange.mjs +2 -2
  11. package/esm2020/lib/models/holding/holding-type.mjs +69 -4
  12. package/esm2020/lib/models/holding/holding.mjs +21 -1
  13. package/esm2020/lib/services/http/holding/holding-messages.enum.mjs +2 -1
  14. package/esm2020/lib/services/http/holding/holding-sale-messages.enum.mjs +2 -1
  15. package/esm2020/lib/services/http/holding/holding-type-messages.enum.mjs +2 -1
  16. package/fesm2015/taxtank-core.mjs +141 -8
  17. package/fesm2015/taxtank-core.mjs.map +1 -1
  18. package/fesm2020/taxtank-core.mjs +141 -8
  19. package/fesm2020/taxtank-core.mjs.map +1 -1
  20. package/lib/collections/collection.d.ts +1 -0
  21. package/lib/db/Enums/holding/holding-type-category.enum.d.ts +12 -4
  22. package/lib/db/Models/holding/holding-sale.d.ts +4 -1
  23. package/lib/db/Models/holding/holding-type-exchange.d.ts +13 -0
  24. package/lib/db/Models/holding/holding-type.d.ts +21 -2
  25. package/lib/db/Models/holding/holding.d.ts +1 -0
  26. package/lib/forms/holding/holding-sale.form.d.ts +1 -0
  27. package/lib/models/holding/holding-type-exchange.d.ts +1 -1
  28. package/lib/models/holding/holding-type.d.ts +13 -7
  29. package/lib/services/http/holding/holding-messages.enum.d.ts +1 -0
  30. package/lib/services/http/holding/holding-sale-messages.enum.d.ts +1 -0
  31. package/lib/services/http/holding/holding-type-messages.enum.d.ts +1 -0
  32. package/package.json +1 -1
@@ -1270,6 +1270,10 @@ class Collection {
1270
1270
  reduce(callback, init = 0) {
1271
1271
  return +this.items.reduce(callback, init).toFixed(2);
1272
1272
  }
1273
+ slice(from, to) {
1274
+ this.items.slice(from, to);
1275
+ return this;
1276
+ }
1273
1277
  }
1274
1278
 
1275
1279
  class ExportDataTable {
@@ -2204,10 +2208,18 @@ var HoldingTypeCategoryEnum;
2204
2208
  (function (HoldingTypeCategoryEnum) {
2205
2209
  HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["CRYPTO"] = 1] = "CRYPTO";
2206
2210
  HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["STOCK"] = 2] = "STOCK";
2207
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_STOCK"] = 3] = "UNLISTED_STOCK";
2208
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_UNIT"] = 4] = "UNLISTED_UNIT";
2209
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["COLLECTIBLE"] = 5] = "COLLECTIBLE";
2210
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["OTHER"] = 6] = "OTHER";
2211
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["ETF"] = 3] = "ETF";
2212
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["FUND"] = 4] = "FUND";
2213
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["MUTUAL_FUND"] = 5] = "MUTUAL_FUND";
2214
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["PREFERRED_STOCK"] = 6] = "PREFERRED_STOCK";
2215
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["WARRANT"] = 7] = "WARRANT";
2216
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["ETC"] = 8] = "ETC";
2217
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["NOTE"] = 9] = "NOTE";
2218
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["INDEX"] = 10] = "INDEX";
2219
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_STOCK"] = 11] = "UNLISTED_STOCK";
2220
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_UNIT"] = 12] = "UNLISTED_UNIT";
2221
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["COLLECTIBLE"] = 13] = "COLLECTIBLE";
2222
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["OTHER"] = 14] = "OTHER";
2211
2223
  })(HoldingTypeCategoryEnum || (HoldingTypeCategoryEnum = {}));
2212
2224
 
2213
2225
  // @TODO Artem TT-2308 move everything
@@ -8388,12 +8400,15 @@ class HoldingTypeExchange extends AbstractModel {
8388
8400
  }
8389
8401
  __decorate([
8390
8402
  Type(() => Date)
8391
- ], HoldingTypeExchange.prototype, "updateDate", void 0);
8403
+ ], HoldingTypeExchange.prototype, "exchangeUpdatedAt", void 0);
8392
8404
  __decorate([
8393
8405
  Type(() => HoldingType)
8394
8406
  ], HoldingTypeExchange.prototype, "holdingTypes", void 0);
8395
8407
 
8396
8408
  class HoldingType extends AbstractModel {
8409
+ /**
8410
+ * @TODO Alex move to translation file
8411
+ */
8397
8412
  get categoryLabel() {
8398
8413
  switch (this.category) {
8399
8414
  case HoldingTypeCategoryEnum.STOCK:
@@ -8406,12 +8421,17 @@ class HoldingType extends AbstractModel {
8406
8421
  return 'Unlisted stock';
8407
8422
  case HoldingTypeCategoryEnum.UNLISTED_UNIT:
8408
8423
  return 'Unlisted unit';
8409
- case HoldingTypeCategoryEnum.OTHER:
8424
+ default:
8410
8425
  return 'Other';
8411
8426
  }
8412
8427
  }
8413
8428
  isOther() {
8414
- return !this.isShare() && !this.isCrypto();
8429
+ return [
8430
+ HoldingTypeCategoryEnum.COLLECTIBLE,
8431
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
8432
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
8433
+ HoldingTypeCategoryEnum.OTHER
8434
+ ].includes(this.category);
8415
8435
  }
8416
8436
  isShare() {
8417
8437
  return this.category === HoldingTypeCategoryEnum.STOCK;
@@ -8420,6 +8440,62 @@ class HoldingType extends AbstractModel {
8420
8440
  return this.category === HoldingTypeCategoryEnum.CRYPTO;
8421
8441
  }
8422
8442
  }
8443
+ __decorate([
8444
+ Transform(({ value }) => +value, { toClassOnly: true }),
8445
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8446
+ ], HoldingType.prototype, "price", void 0);
8447
+ __decorate([
8448
+ Type(() => Number)
8449
+ ], HoldingType.prototype, "openPrice", void 0);
8450
+ __decorate([
8451
+ Type(() => Number)
8452
+ ], HoldingType.prototype, "highPrice", void 0);
8453
+ __decorate([
8454
+ Type(() => Number)
8455
+ ], HoldingType.prototype, "lowPrice", void 0);
8456
+ __decorate([
8457
+ Type(() => Number)
8458
+ ], HoldingType.prototype, "volume", void 0);
8459
+ __decorate([
8460
+ Type(() => Number)
8461
+ ], HoldingType.prototype, "ema50d", void 0);
8462
+ __decorate([
8463
+ Type(() => Number)
8464
+ ], HoldingType.prototype, "ema200d", void 0);
8465
+ __decorate([
8466
+ Type(() => Number)
8467
+ ], HoldingType.prototype, "highPrice250d", void 0);
8468
+ __decorate([
8469
+ Type(() => Number)
8470
+ ], HoldingType.prototype, "lowPrice250d", void 0);
8471
+ __decorate([
8472
+ Type(() => Number)
8473
+ ], HoldingType.prototype, "avgVolume14d", void 0);
8474
+ __decorate([
8475
+ Type(() => Number)
8476
+ ], HoldingType.prototype, "avgVolume50d", void 0);
8477
+ __decorate([
8478
+ Type(() => Number)
8479
+ ], HoldingType.prototype, "avgVolume200d", void 0);
8480
+ __decorate([
8481
+ Type(() => Number)
8482
+ ], HoldingType.prototype, "marketCap", void 0);
8483
+ __decorate([
8484
+ Type(() => Number)
8485
+ ], HoldingType.prototype, "beta", void 0);
8486
+ __decorate([
8487
+ Type(() => Number)
8488
+ ], HoldingType.prototype, "adjustedPrice", void 0);
8489
+ __decorate([
8490
+ Type(() => Number)
8491
+ ], HoldingType.prototype, "peRatio", void 0);
8492
+ __decorate([
8493
+ Transform(({ value }) => +value, { toClassOnly: true }),
8494
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8495
+ ], HoldingType.prototype, "dividendPercent", void 0);
8496
+ __decorate([
8497
+ Type(() => AppFile)
8498
+ ], HoldingType.prototype, "file", void 0);
8423
8499
  __decorate([
8424
8500
  Type(() => Date)
8425
8501
  ], HoldingType.prototype, "lastUpdateDateOnExchange", void 0);
@@ -8449,6 +8525,37 @@ class HoldingSale extends AbstractModel {
8449
8525
  return capitalGain;
8450
8526
  }
8451
8527
  }
8528
+ __decorate([
8529
+ Transform(({ value }) => +value, { toClassOnly: true }),
8530
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8531
+ ], HoldingSale.prototype, "quantity", void 0);
8532
+ __decorate([
8533
+ Transform(({ value }) => +value, { toClassOnly: true }),
8534
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8535
+ ], HoldingSale.prototype, "price", void 0);
8536
+ __decorate([
8537
+ Transform(({ value }) => +value, { toClassOnly: true }),
8538
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8539
+ ], HoldingSale.prototype, "fee", void 0);
8540
+ __decorate([
8541
+ Transform(({ value }) => +value, { toClassOnly: true }),
8542
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8543
+ ], HoldingSale.prototype, "total", void 0);
8544
+ __decorate([
8545
+ Transform(({ value }) => +value, { toClassOnly: true }),
8546
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8547
+ ], HoldingSale.prototype, "totalCapitalGain", void 0);
8548
+ __decorate([
8549
+ Transform(({ value }) => +value, { toClassOnly: true }),
8550
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8551
+ ], HoldingSale.prototype, "grossCapitalGain", void 0);
8552
+ __decorate([
8553
+ Transform(({ value }) => +value, { toClassOnly: true }),
8554
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8555
+ ], HoldingSale.prototype, "netCapitalGain", void 0);
8556
+ __decorate([
8557
+ Transform(({ value }) => { return { id: value.id }; }, { toPlainOnly: true })
8558
+ ], HoldingSale.prototype, "holding", void 0);
8452
8559
  __decorate([
8453
8560
  Type(() => Date)
8454
8561
  ], HoldingSale.prototype, "date", void 0);
@@ -8488,6 +8595,26 @@ class Holding extends AbstractModel {
8488
8595
  return (new FinancialYear().startDate.getTime() - this.date.getTime()) > yearTime;
8489
8596
  }
8490
8597
  }
8598
+ __decorate([
8599
+ Transform(({ value }) => +value, { toClassOnly: true }),
8600
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8601
+ ], Holding.prototype, "quantity", void 0);
8602
+ __decorate([
8603
+ Transform(({ value }) => +value, { toClassOnly: true }),
8604
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8605
+ ], Holding.prototype, "currentQuantity", void 0);
8606
+ __decorate([
8607
+ Transform(({ value }) => +value, { toClassOnly: true }),
8608
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8609
+ ], Holding.prototype, "ownershipPercent", void 0);
8610
+ __decorate([
8611
+ Transform(({ value }) => +value, { toClassOnly: true }),
8612
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8613
+ ], Holding.prototype, "price", void 0);
8614
+ __decorate([
8615
+ Transform(({ value }) => +value, { toClassOnly: true }),
8616
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8617
+ ], Holding.prototype, "fee", void 0);
8491
8618
  __decorate([
8492
8619
  Type(() => Date)
8493
8620
  ], Holding.prototype, "date", void 0);
@@ -15938,6 +16065,7 @@ var HoldingMessagesEnum;
15938
16065
  (function (HoldingMessagesEnum) {
15939
16066
  HoldingMessagesEnum["CREATED"] = "Holding created successfully";
15940
16067
  HoldingMessagesEnum["UPDATED"] = "Holding updated successfully";
16068
+ HoldingMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding?";
15941
16069
  HoldingMessagesEnum["DELETED"] = "Holding deleted successfully";
15942
16070
  })(HoldingMessagesEnum || (HoldingMessagesEnum = {}));
15943
16071
 
@@ -15945,6 +16073,7 @@ var HoldingSaleMessagesEnum;
15945
16073
  (function (HoldingSaleMessagesEnum) {
15946
16074
  HoldingSaleMessagesEnum["CREATED"] = "Holding sold successfully";
15947
16075
  HoldingSaleMessagesEnum["UPDATED"] = "Sale updated successfully";
16076
+ HoldingSaleMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding sale?";
15948
16077
  HoldingSaleMessagesEnum["DELETED"] = "Sale deleted successfully";
15949
16078
  })(HoldingSaleMessagesEnum || (HoldingSaleMessagesEnum = {}));
15950
16079
 
@@ -15952,6 +16081,7 @@ var HoldingTypeMessagesEnum;
15952
16081
  (function (HoldingTypeMessagesEnum) {
15953
16082
  HoldingTypeMessagesEnum["CREATED"] = "Holding type created successfully";
15954
16083
  HoldingTypeMessagesEnum["UPDATED"] = "Holding type updated successfully";
16084
+ HoldingTypeMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding type?";
15955
16085
  HoldingTypeMessagesEnum["DELETED"] = "Holding type deleted successfully";
15956
16086
  })(HoldingTypeMessagesEnum || (HoldingTypeMessagesEnum = {}));
15957
16087
 
@@ -20068,6 +20198,9 @@ class HoldingSaleForm extends AbstractForm {
20068
20198
  this.listenQuantityChanges();
20069
20199
  this.listenPriceChanges();
20070
20200
  }
20201
+ submit() {
20202
+ return super.submit({}, true);
20203
+ }
20071
20204
  listenQuantityChanges() {
20072
20205
  this.get('quantity').valueChanges.subscribe(() => {
20073
20206
  this.updateGainFields();
@@ -20089,7 +20222,7 @@ class HoldingTypeForm extends AbstractForm {
20089
20222
  super({
20090
20223
  category: new UntypedFormControl(holdingType.category, Validators.required),
20091
20224
  name: new UntypedFormControl(holdingType.name, Validators.required),
20092
- description: new UntypedFormControl(holdingType.description, Validators.required),
20225
+ description: new UntypedFormControl(holdingType.description),
20093
20226
  price: new UntypedFormControl(holdingType.price, [Validators.required, Validators.min(0)]),
20094
20227
  dividendPercent: new UntypedFormControl(holdingType.dividendPercent, Validators.min(0))
20095
20228
  }, holdingType);