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
@@ -1280,6 +1280,10 @@ class Collection {
1280
1280
  reduce(callback, init = 0) {
1281
1281
  return +this.items.reduce(callback, init).toFixed(2);
1282
1282
  }
1283
+ slice(from, to) {
1284
+ this.items.slice(from, to);
1285
+ return this;
1286
+ }
1283
1287
  }
1284
1288
 
1285
1289
  class ExportDataTable {
@@ -2218,10 +2222,18 @@ var HoldingTypeCategoryEnum;
2218
2222
  (function (HoldingTypeCategoryEnum) {
2219
2223
  HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["CRYPTO"] = 1] = "CRYPTO";
2220
2224
  HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["STOCK"] = 2] = "STOCK";
2221
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_STOCK"] = 3] = "UNLISTED_STOCK";
2222
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_UNIT"] = 4] = "UNLISTED_UNIT";
2223
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["COLLECTIBLE"] = 5] = "COLLECTIBLE";
2224
- HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["OTHER"] = 6] = "OTHER";
2225
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["ETF"] = 3] = "ETF";
2226
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["FUND"] = 4] = "FUND";
2227
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["MUTUAL_FUND"] = 5] = "MUTUAL_FUND";
2228
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["PREFERRED_STOCK"] = 6] = "PREFERRED_STOCK";
2229
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["WARRANT"] = 7] = "WARRANT";
2230
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["ETC"] = 8] = "ETC";
2231
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["NOTE"] = 9] = "NOTE";
2232
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["INDEX"] = 10] = "INDEX";
2233
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_STOCK"] = 11] = "UNLISTED_STOCK";
2234
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["UNLISTED_UNIT"] = 12] = "UNLISTED_UNIT";
2235
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["COLLECTIBLE"] = 13] = "COLLECTIBLE";
2236
+ HoldingTypeCategoryEnum[HoldingTypeCategoryEnum["OTHER"] = 14] = "OTHER";
2225
2237
  })(HoldingTypeCategoryEnum || (HoldingTypeCategoryEnum = {}));
2226
2238
 
2227
2239
  // @TODO Artem TT-2308 move everything
@@ -8435,12 +8447,15 @@ class HoldingTypeExchange extends AbstractModel {
8435
8447
  }
8436
8448
  __decorate([
8437
8449
  Type(() => Date)
8438
- ], HoldingTypeExchange.prototype, "updateDate", void 0);
8450
+ ], HoldingTypeExchange.prototype, "exchangeUpdatedAt", void 0);
8439
8451
  __decorate([
8440
8452
  Type(() => HoldingType)
8441
8453
  ], HoldingTypeExchange.prototype, "holdingTypes", void 0);
8442
8454
 
8443
8455
  class HoldingType extends AbstractModel {
8456
+ /**
8457
+ * @TODO Alex move to translation file
8458
+ */
8444
8459
  get categoryLabel() {
8445
8460
  switch (this.category) {
8446
8461
  case HoldingTypeCategoryEnum.STOCK:
@@ -8453,12 +8468,17 @@ class HoldingType extends AbstractModel {
8453
8468
  return 'Unlisted stock';
8454
8469
  case HoldingTypeCategoryEnum.UNLISTED_UNIT:
8455
8470
  return 'Unlisted unit';
8456
- case HoldingTypeCategoryEnum.OTHER:
8471
+ default:
8457
8472
  return 'Other';
8458
8473
  }
8459
8474
  }
8460
8475
  isOther() {
8461
- return !this.isShare() && !this.isCrypto();
8476
+ return [
8477
+ HoldingTypeCategoryEnum.COLLECTIBLE,
8478
+ HoldingTypeCategoryEnum.UNLISTED_STOCK,
8479
+ HoldingTypeCategoryEnum.UNLISTED_UNIT,
8480
+ HoldingTypeCategoryEnum.OTHER
8481
+ ].includes(this.category);
8462
8482
  }
8463
8483
  isShare() {
8464
8484
  return this.category === HoldingTypeCategoryEnum.STOCK;
@@ -8467,6 +8487,62 @@ class HoldingType extends AbstractModel {
8467
8487
  return this.category === HoldingTypeCategoryEnum.CRYPTO;
8468
8488
  }
8469
8489
  }
8490
+ __decorate([
8491
+ Transform(({ value }) => +value, { toClassOnly: true }),
8492
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8493
+ ], HoldingType.prototype, "price", void 0);
8494
+ __decorate([
8495
+ Type(() => Number)
8496
+ ], HoldingType.prototype, "openPrice", void 0);
8497
+ __decorate([
8498
+ Type(() => Number)
8499
+ ], HoldingType.prototype, "highPrice", void 0);
8500
+ __decorate([
8501
+ Type(() => Number)
8502
+ ], HoldingType.prototype, "lowPrice", void 0);
8503
+ __decorate([
8504
+ Type(() => Number)
8505
+ ], HoldingType.prototype, "volume", void 0);
8506
+ __decorate([
8507
+ Type(() => Number)
8508
+ ], HoldingType.prototype, "ema50d", void 0);
8509
+ __decorate([
8510
+ Type(() => Number)
8511
+ ], HoldingType.prototype, "ema200d", void 0);
8512
+ __decorate([
8513
+ Type(() => Number)
8514
+ ], HoldingType.prototype, "highPrice250d", void 0);
8515
+ __decorate([
8516
+ Type(() => Number)
8517
+ ], HoldingType.prototype, "lowPrice250d", void 0);
8518
+ __decorate([
8519
+ Type(() => Number)
8520
+ ], HoldingType.prototype, "avgVolume14d", void 0);
8521
+ __decorate([
8522
+ Type(() => Number)
8523
+ ], HoldingType.prototype, "avgVolume50d", void 0);
8524
+ __decorate([
8525
+ Type(() => Number)
8526
+ ], HoldingType.prototype, "avgVolume200d", void 0);
8527
+ __decorate([
8528
+ Type(() => Number)
8529
+ ], HoldingType.prototype, "marketCap", void 0);
8530
+ __decorate([
8531
+ Type(() => Number)
8532
+ ], HoldingType.prototype, "beta", void 0);
8533
+ __decorate([
8534
+ Type(() => Number)
8535
+ ], HoldingType.prototype, "adjustedPrice", void 0);
8536
+ __decorate([
8537
+ Type(() => Number)
8538
+ ], HoldingType.prototype, "peRatio", void 0);
8539
+ __decorate([
8540
+ Transform(({ value }) => +value, { toClassOnly: true }),
8541
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8542
+ ], HoldingType.prototype, "dividendPercent", void 0);
8543
+ __decorate([
8544
+ Type(() => AppFile)
8545
+ ], HoldingType.prototype, "file", void 0);
8470
8546
  __decorate([
8471
8547
  Type(() => Date)
8472
8548
  ], HoldingType.prototype, "lastUpdateDateOnExchange", void 0);
@@ -8496,6 +8572,37 @@ class HoldingSale extends AbstractModel {
8496
8572
  return capitalGain;
8497
8573
  }
8498
8574
  }
8575
+ __decorate([
8576
+ Transform(({ value }) => +value, { toClassOnly: true }),
8577
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8578
+ ], HoldingSale.prototype, "quantity", void 0);
8579
+ __decorate([
8580
+ Transform(({ value }) => +value, { toClassOnly: true }),
8581
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8582
+ ], HoldingSale.prototype, "price", void 0);
8583
+ __decorate([
8584
+ Transform(({ value }) => +value, { toClassOnly: true }),
8585
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8586
+ ], HoldingSale.prototype, "fee", void 0);
8587
+ __decorate([
8588
+ Transform(({ value }) => +value, { toClassOnly: true }),
8589
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8590
+ ], HoldingSale.prototype, "total", void 0);
8591
+ __decorate([
8592
+ Transform(({ value }) => +value, { toClassOnly: true }),
8593
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8594
+ ], HoldingSale.prototype, "totalCapitalGain", void 0);
8595
+ __decorate([
8596
+ Transform(({ value }) => +value, { toClassOnly: true }),
8597
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8598
+ ], HoldingSale.prototype, "grossCapitalGain", void 0);
8599
+ __decorate([
8600
+ Transform(({ value }) => +value, { toClassOnly: true }),
8601
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8602
+ ], HoldingSale.prototype, "netCapitalGain", void 0);
8603
+ __decorate([
8604
+ Transform(({ value }) => { return { id: value.id }; }, { toPlainOnly: true })
8605
+ ], HoldingSale.prototype, "holding", void 0);
8499
8606
  __decorate([
8500
8607
  Type(() => Date)
8501
8608
  ], HoldingSale.prototype, "date", void 0);
@@ -8535,6 +8642,26 @@ class Holding extends AbstractModel {
8535
8642
  return (new FinancialYear().startDate.getTime() - this.date.getTime()) > yearTime;
8536
8643
  }
8537
8644
  }
8645
+ __decorate([
8646
+ Transform(({ value }) => +value, { toClassOnly: true }),
8647
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8648
+ ], Holding.prototype, "quantity", void 0);
8649
+ __decorate([
8650
+ Transform(({ value }) => +value, { toClassOnly: true }),
8651
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8652
+ ], Holding.prototype, "currentQuantity", void 0);
8653
+ __decorate([
8654
+ Transform(({ value }) => +value, { toClassOnly: true }),
8655
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8656
+ ], Holding.prototype, "ownershipPercent", void 0);
8657
+ __decorate([
8658
+ Transform(({ value }) => +value, { toClassOnly: true }),
8659
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8660
+ ], Holding.prototype, "price", void 0);
8661
+ __decorate([
8662
+ Transform(({ value }) => +value, { toClassOnly: true }),
8663
+ Transform(({ value }) => value.toString(), { toPlainOnly: true })
8664
+ ], Holding.prototype, "fee", void 0);
8538
8665
  __decorate([
8539
8666
  Type(() => Date)
8540
8667
  ], Holding.prototype, "date", void 0);
@@ -16066,6 +16193,7 @@ var HoldingMessagesEnum;
16066
16193
  (function (HoldingMessagesEnum) {
16067
16194
  HoldingMessagesEnum["CREATED"] = "Holding created successfully";
16068
16195
  HoldingMessagesEnum["UPDATED"] = "Holding updated successfully";
16196
+ HoldingMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding?";
16069
16197
  HoldingMessagesEnum["DELETED"] = "Holding deleted successfully";
16070
16198
  })(HoldingMessagesEnum || (HoldingMessagesEnum = {}));
16071
16199
 
@@ -16073,6 +16201,7 @@ var HoldingSaleMessagesEnum;
16073
16201
  (function (HoldingSaleMessagesEnum) {
16074
16202
  HoldingSaleMessagesEnum["CREATED"] = "Holding sold successfully";
16075
16203
  HoldingSaleMessagesEnum["UPDATED"] = "Sale updated successfully";
16204
+ HoldingSaleMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding sale?";
16076
16205
  HoldingSaleMessagesEnum["DELETED"] = "Sale deleted successfully";
16077
16206
  })(HoldingSaleMessagesEnum || (HoldingSaleMessagesEnum = {}));
16078
16207
 
@@ -16080,6 +16209,7 @@ var HoldingTypeMessagesEnum;
16080
16209
  (function (HoldingTypeMessagesEnum) {
16081
16210
  HoldingTypeMessagesEnum["CREATED"] = "Holding type created successfully";
16082
16211
  HoldingTypeMessagesEnum["UPDATED"] = "Holding type updated successfully";
16212
+ HoldingTypeMessagesEnum["CONFIRM_DELETE"] = "Are you sure you want to delete this holding type?";
16083
16213
  HoldingTypeMessagesEnum["DELETED"] = "Holding type deleted successfully";
16084
16214
  })(HoldingTypeMessagesEnum || (HoldingTypeMessagesEnum = {}));
16085
16215
 
@@ -20209,6 +20339,9 @@ class HoldingSaleForm extends AbstractForm {
20209
20339
  this.listenQuantityChanges();
20210
20340
  this.listenPriceChanges();
20211
20341
  }
20342
+ submit() {
20343
+ return super.submit({}, true);
20344
+ }
20212
20345
  listenQuantityChanges() {
20213
20346
  this.get('quantity').valueChanges.subscribe(() => {
20214
20347
  this.updateGainFields();
@@ -20230,7 +20363,7 @@ class HoldingTypeForm extends AbstractForm {
20230
20363
  super({
20231
20364
  category: new UntypedFormControl(holdingType.category, Validators.required),
20232
20365
  name: new UntypedFormControl(holdingType.name, Validators.required),
20233
- description: new UntypedFormControl(holdingType.description, Validators.required),
20366
+ description: new UntypedFormControl(holdingType.description),
20234
20367
  price: new UntypedFormControl(holdingType.price, [Validators.required, Validators.min(0)]),
20235
20368
  dividendPercent: new UntypedFormControl(holdingType.dividendPercent, Validators.min(0))
20236
20369
  }, holdingType);