@barchart/portfolio-api-common 1.2.76 → 1.2.80

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.
@@ -6,6 +6,7 @@ const array = require('@barchart/common-js/lang/array'),
6
6
  Decimal = require('@barchart/common-js/lang/Decimal'),
7
7
  DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
8
8
  Event = require('@barchart/common-js/messaging/Event'),
9
+ is = require('@barchart/common-js/lang/is'),
9
10
  Rate = require('@barchart/common-js/lang/Rate'),
10
11
  Tree = require('@barchart/common-js/collections/Tree');
11
12
 
@@ -370,16 +371,22 @@ module.exports = (() => {
370
371
  return array.unique(symbols);
371
372
  }
372
373
 
374
+ /**
375
+ * Causes a position to be flagged as locked (for editing).
376
+ *
377
+ * @public
378
+ * @param {Object} position
379
+ */
373
380
  setPositionLock(position) {
374
- assert.argumentIsRequired(position, 'position', Object);
375
- assert.argumentIsRequired(position.position, 'position.position', String);
376
-
377
- const item = this._items.find((i) => i.position.position === position.position);
381
+ if (position) {
382
+ assert.argumentIsRequired(position, 'position', Object);
383
+ assert.argumentIsRequired(position.position, 'position.position', String);
378
384
 
379
- if (item) {
380
- const locked = is.object(position.system) && is.boolean(position.system.locked) && position.system.locked;
385
+ const item = this._items.find((i) => i.position.position === position.position);
381
386
 
382
- item.setPositionLock(locked);
387
+ if (item) {
388
+ item.setPositionLock(PositionItem.getIsLocked(position));
389
+ }
383
390
  }
384
391
  }
385
392
 
@@ -70,7 +70,7 @@ module.exports = (() => {
70
70
 
71
71
  this._data.newsExists = false;
72
72
  this._data.fundamental = { };
73
- this._data.locked = is.object(position.system) && is.boolean(position.system.locked) && position.system.locked;
73
+ this._data.locked = PositionItem.getIsLocked(position);
74
74
 
75
75
  calculateStaticData(this);
76
76
  calculatePriceData(this, null);
@@ -337,6 +337,19 @@ module.exports = (() => {
337
337
  this._positionItemDisposeEvent.clear();
338
338
  }
339
339
 
340
+ /**
341
+ * Given a position object, returns its lock (for editing) status.
342
+ *
343
+ * @public
344
+ * @param {Object{}} position
345
+ * @returns {Boolean}
346
+ */
347
+ static getIsLocked(position) {
348
+ assert.argumentIsRequired(position, 'position');
349
+
350
+ return is.object(position.system) && is.boolean(position.system.locked) && position.system.locked
351
+ }
352
+
340
353
  toString() {
341
354
  return '[PositionItem]';
342
355
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barchart/portfolio-api-common",
3
- "version": "1.2.76",
3
+ "version": "1.2.80",
4
4
  "description": "Common classes used by the Portfolio system",
5
5
  "author": {
6
6
  "name": "Bryan Ingle",
@@ -1385,6 +1385,7 @@ const array = require('@barchart/common-js/lang/array'),
1385
1385
  Decimal = require('@barchart/common-js/lang/Decimal'),
1386
1386
  DisposableStack = require('@barchart/common-js/collections/specialized/DisposableStack'),
1387
1387
  Event = require('@barchart/common-js/messaging/Event'),
1388
+ is = require('@barchart/common-js/lang/is'),
1388
1389
  Rate = require('@barchart/common-js/lang/Rate'),
1389
1390
  Tree = require('@barchart/common-js/collections/Tree');
1390
1391
 
@@ -1749,16 +1750,22 @@ module.exports = (() => {
1749
1750
  return array.unique(symbols);
1750
1751
  }
1751
1752
 
1753
+ /**
1754
+ * Causes a position to be flagged as locked (for editing).
1755
+ *
1756
+ * @public
1757
+ * @param {Object} position
1758
+ */
1752
1759
  setPositionLock(position) {
1753
- assert.argumentIsRequired(position, 'position', Object);
1754
- assert.argumentIsRequired(position.position, 'position.position', String);
1760
+ if (position) {
1761
+ assert.argumentIsRequired(position, 'position', Object);
1762
+ assert.argumentIsRequired(position.position, 'position.position', String);
1755
1763
 
1756
- const item = this._items.find((i) => i.position.position === position.position);
1764
+ const item = this._items.find((i) => i.position.position === position.position);
1757
1765
 
1758
- if (item) {
1759
- const locked = is.object(position.system) && is.boolean(position.system.locked) && position.system.locked;
1760
-
1761
- item.setPositionLock(locked);
1766
+ if (item) {
1767
+ item.setPositionLock(PositionItem.getIsLocked(position));
1768
+ }
1762
1769
  }
1763
1770
  }
1764
1771
 
@@ -2333,7 +2340,7 @@ module.exports = (() => {
2333
2340
  return PositionContainer;
2334
2341
  })();
2335
2342
 
2336
- },{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/messaging/Event":35}],7:[function(require,module,exports){
2343
+ },{"./../data/PositionSummaryFrame":3,"./PositionGroup":7,"./PositionItem":8,"./definitions/PositionLevelDefinition":9,"./definitions/PositionLevelType":10,"./definitions/PositionTreeDefinition":11,"@barchart/common-js/collections/Tree":15,"@barchart/common-js/collections/sorting/ComparatorBuilder":16,"@barchart/common-js/collections/sorting/comparators":17,"@barchart/common-js/collections/specialized/DisposableStack":18,"@barchart/common-js/lang/Currency":20,"@barchart/common-js/lang/Decimal":22,"@barchart/common-js/lang/Rate":26,"@barchart/common-js/lang/array":28,"@barchart/common-js/lang/assert":29,"@barchart/common-js/lang/is":33,"@barchart/common-js/messaging/Event":35}],7:[function(require,module,exports){
2337
2344
  const array = require('@barchart/common-js/lang/array'),
2338
2345
  assert = require('@barchart/common-js/lang/assert'),
2339
2346
  Currency = require('@barchart/common-js/lang/Currency'),
@@ -3275,7 +3282,7 @@ module.exports = (() => {
3275
3282
 
3276
3283
  this._data.newsExists = false;
3277
3284
  this._data.fundamental = { };
3278
- this._data.locked = is.object(position.system) && is.boolean(position.system.locked) && position.system.locked;
3285
+ this._data.locked = PositionItem.getIsLocked(position);
3279
3286
 
3280
3287
  calculateStaticData(this);
3281
3288
  calculatePriceData(this, null);
@@ -3542,6 +3549,19 @@ module.exports = (() => {
3542
3549
  this._positionItemDisposeEvent.clear();
3543
3550
  }
3544
3551
 
3552
+ /**
3553
+ * Given a position object, returns its lock (for editing) status.
3554
+ *
3555
+ * @public
3556
+ * @param {Object{}} position
3557
+ * @returns {Boolean}
3558
+ */
3559
+ static getIsLocked(position) {
3560
+ assert.argumentIsRequired(position, 'position');
3561
+
3562
+ return is.object(position.system) && is.boolean(position.system.locked) && position.system.locked
3563
+ }
3564
+
3545
3565
  toString() {
3546
3566
  return '[PositionItem]';
3547
3567
  }