@barchart/portfolio-api-common 1.2.87 → 1.2.88

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.
@@ -283,17 +283,16 @@ module.exports = (() => {
283
283
  }
284
284
 
285
285
  const existingBarchartSymbols = this.getPositionSymbols(false);
286
- const existingPositionItem = this._items.find(item => item.position.position === position.position);
287
286
 
288
- let currentQuote = null;
289
- let previousQuote = null;
287
+ let similiarPositionItem;
290
288
 
291
- if (existingPositionItem) {
292
- currentQuote = existingPositionItem.quote || null;
293
- previousQuote = existingPositionItem.previousQuote || null;
289
+ if (is.object(position.instrument.symbol) && is.string(position.instrument.symbol.barchart)) {
290
+ similiarPositionItem = this._items.find(item => is.object(item.position.instrument.symbol) && item.position.instrument.symbol.barchart === position.instrument.symbol.barchart) || null;
291
+ } else {
292
+ similiarPositionItem = null;
294
293
  }
295
294
 
296
- removePositionItem.call(this, existingPositionItem);
295
+ removePositionItem.call(this, this._items.find(item => item.position.position === position.position));
297
296
 
298
297
  summaries.forEach((summary) => {
299
298
  addSummaryCurrent(this._summariesCurrent, summary, this._currentSummaryFrame, this._currentSummaryRange);
@@ -305,14 +304,6 @@ module.exports = (() => {
305
304
  addBarchartSymbol(this._symbols, item);
306
305
  addDisplaySymbol(this._symbolsDisplay, item);
307
306
 
308
- if (previousQuote !== null) {
309
- item.setQuote(previousQuote);
310
- }
311
-
312
- if (currentQuote !== null) {
313
- item.setQuote(currentQuote);
314
- }
315
-
316
307
  this._items.push(item);
317
308
 
318
309
  const createGroupOrInjectItem = (parentTree, treeDefinition, levelDefinitions) => {
@@ -348,6 +339,16 @@ module.exports = (() => {
348
339
  this._positionSymbolAddedEvent.fire(addedBarchartSymbol);
349
340
  }
350
341
 
342
+ if (similiarPositionItem !== null) {
343
+ if (similiarPositionItem.previousQuote) {
344
+ item.setQuote(similiarPositionItem.previousQuote);
345
+ }
346
+
347
+ if (similiarPositionItem.quote) {
348
+ item.setQuote(similiarPositionItem.quote);
349
+ }
350
+ }
351
+
351
352
  recalculatePercentages.call(this);
352
353
  }
353
354
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "1.2.87",
3
+ "version": "1.2.88",
4
4
  "description": "Common classes used by the Portfolio system",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",
@@ -1662,17 +1662,16 @@ module.exports = (() => {
1662
1662
  }
1663
1663
 
1664
1664
  const existingBarchartSymbols = this.getPositionSymbols(false);
1665
- const existingPositionItem = this._items.find(item => item.position.position === position.position);
1666
1665
 
1667
- let currentQuote = null;
1668
- let previousQuote = null;
1666
+ let similiarPositionItem;
1669
1667
 
1670
- if (existingPositionItem) {
1671
- currentQuote = existingPositionItem.quote || null;
1672
- previousQuote = existingPositionItem.previousQuote || null;
1668
+ if (is.object(position.instrument.symbol) && is.string(position.instrument.symbol.barchart)) {
1669
+ similiarPositionItem = this._items.find(item => is.object(item.position.instrument.symbol) && item.position.instrument.symbol.barchart === position.instrument.symbol.barchart) || null;
1670
+ } else {
1671
+ similiarPositionItem = null;
1673
1672
  }
1674
1673
 
1675
- removePositionItem.call(this, existingPositionItem);
1674
+ removePositionItem.call(this, this._items.find(item => item.position.position === position.position));
1676
1675
 
1677
1676
  summaries.forEach((summary) => {
1678
1677
  addSummaryCurrent(this._summariesCurrent, summary, this._currentSummaryFrame, this._currentSummaryRange);
@@ -1684,14 +1683,6 @@ module.exports = (() => {
1684
1683
  addBarchartSymbol(this._symbols, item);
1685
1684
  addDisplaySymbol(this._symbolsDisplay, item);
1686
1685
 
1687
- if (previousQuote !== null) {
1688
- item.setQuote(previousQuote);
1689
- }
1690
-
1691
- if (currentQuote !== null) {
1692
- item.setQuote(currentQuote);
1693
- }
1694
-
1695
1686
  this._items.push(item);
1696
1687
 
1697
1688
  const createGroupOrInjectItem = (parentTree, treeDefinition, levelDefinitions) => {
@@ -1727,6 +1718,16 @@ module.exports = (() => {
1727
1718
  this._positionSymbolAddedEvent.fire(addedBarchartSymbol);
1728
1719
  }
1729
1720
 
1721
+ if (similiarPositionItem !== null) {
1722
+ if (similiarPositionItem.previousQuote) {
1723
+ item.setQuote(similiarPositionItem.previousQuote);
1724
+ }
1725
+
1726
+ if (similiarPositionItem.quote) {
1727
+ item.setQuote(similiarPositionItem.quote);
1728
+ }
1729
+ }
1730
+
1730
1731
  recalculatePercentages.call(this);
1731
1732
  }
1732
1733