targetj 1.0.89 → 1.0.90

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/build/Bracket.js CHANGED
@@ -37,6 +37,11 @@ var Bracket = exports.Bracket = /*#__PURE__*/function (_TModel) {
37
37
  }
38
38
  _inherits(Bracket, _TModel);
39
39
  return _createClass(Bracket, [{
40
+ key: "shouldBeBracketed",
41
+ value: function shouldBeBracketed() {
42
+ return false;
43
+ }
44
+ }, {
40
45
  key: "getWidth",
41
46
  value: function getWidth() {
42
47
  return this.getContentWidth();
@@ -23,8 +23,8 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
23
23
  /**
24
24
  * Generates a bottom-up tree from the children of a TModel. When the number of children
25
25
  * exceeds a defined threshold (bracketThreshold), a tree is generated to limit the process loop to only
26
- * the visible branches. A TModel can opt out of tree generation by setting
27
- * `canBeBracketed` to false.
26
+ * the visible branches. A TModel can opt out of tree generation completely by defining a target
27
+ * `shouldBeBracketed` and setting it to false.
28
28
  */
29
29
  var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
30
30
  function BracketGenerator() {
@@ -34,13 +34,13 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
34
34
  key: "generate",
35
35
  value: function generate(page) {
36
36
  var brackets = BracketGenerator.bracketMap[page.oid];
37
- if (!brackets) {
37
+ if (!brackets || page.lastChildrenUpdate.deletions.length > 0) {
38
38
  BracketGenerator.bracketMap[page.oid] = {
39
39
  brackets: BracketGenerator.buildTreeBottomUp(page, page.getChildren()),
40
40
  updateCount: 0
41
41
  };
42
- } else if (page.lastChildrenUpdate.additions.length > 0 || page.lastChildrenUpdate.deletions.length > 0) {
43
- BracketGenerator.updateTree(page, page.lastChildrenUpdate.additions, page.lastChildrenUpdate.deletions);
42
+ } else if (page.lastChildrenUpdate.additions.length > 0) {
43
+ BracketGenerator.updateTree(page, page.lastChildrenUpdate.additions);
44
44
  }
45
45
  page.lastChildrenUpdate.additions.length = 0;
46
46
  page.lastChildrenUpdate.deletions.length = 0;
@@ -50,14 +50,9 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
50
50
  key: "updateTree",
51
51
  value: function updateTree(page) {
52
52
  var additions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
53
- var deletions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
54
53
  var list = page.getChildren();
55
54
  var affectedIndices = new Set();
56
- var bracketSize = page.getBracketThreshold() - 1;
57
- deletions.forEach(function (item) {
58
- var index = list.indexOf(item);
59
- affectedIndices.add(index);
60
- });
55
+ var bracketSize = page.getBracketThreshold();
61
56
  additions.forEach(function (_ref) {
62
57
  var index = _ref.index,
63
58
  segment = _ref.segment;
@@ -72,7 +67,7 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
72
67
  var end = null;
73
68
  sortedIndices.forEach(function (index) {
74
69
  var bracketStart = Math.floor(index / bracketSize) * bracketSize;
75
- var bracketEnd = Math.min(list.length - 1, bracketStart + bracketSize - 1);
70
+ var bracketEnd = Math.min(list.length, bracketStart + bracketSize);
76
71
  if (start === null) {
77
72
  start = bracketStart;
78
73
  end = bracketEnd;
@@ -93,9 +88,10 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
93
88
  value: function updateSegmentInTree(page, list, start, end) {
94
89
  var _currentLevel;
95
90
  var topBrackets = BracketGenerator.bracketMap[page.oid].brackets;
96
- var updatedSegment = BracketGenerator.buildTreeBottomUp(page, list.slice(start, end + 1));
97
- var bracketSize = page.getBracketThreshold() - 1;
91
+ var updatedSegment = BracketGenerator.buildTreeBottomUp(page, list.slice(start, end));
92
+ var bracketSize = page.getBracketThreshold();
98
93
  var currentLevel = topBrackets;
94
+ var segmentParent = undefined;
99
95
  while (true) {
100
96
  var nextLevel = null;
101
97
  var _iterator = _createForOfIteratorHelper(currentLevel),
@@ -103,8 +99,14 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
103
99
  try {
104
100
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
105
101
  var bracket = _step.value;
106
- if (bracket.startIndex <= start && bracket.endIndex >= end) {
102
+ if (!(bracket.getFirstChild() instanceof _Bracket.Bracket)) {
103
+ break;
104
+ }
105
+ var startIndex = bracket.startIndex;
106
+ var endIndex = Math.ceil(bracket.endIndex / bracketSize) * bracketSize;
107
+ if (startIndex <= start && endIndex >= end) {
107
108
  nextLevel = bracket.getChildren();
109
+ segmentParent = bracket;
108
110
  break;
109
111
  }
110
112
  }
@@ -119,7 +121,7 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
119
121
  currentLevel = nextLevel;
120
122
  }
121
123
  var mergeIndex = 0;
122
- while (mergeIndex < currentLevel.length && currentLevel[mergeIndex].endIndex < start) {
124
+ while (mergeIndex < currentLevel.length && currentLevel[mergeIndex].endIndex <= start) {
123
125
  mergeIndex++;
124
126
  }
125
127
  var replaceCount = 0;
@@ -128,6 +130,20 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
128
130
  }
129
131
  var indexOffset = currentLevel.length > mergeIndex ? currentLevel[mergeIndex].startIndex : currentLevel[currentLevel.length - 1].endIndex;
130
132
  (_currentLevel = currentLevel).splice.apply(_currentLevel, [mergeIndex, replaceCount].concat(_toConsumableArray(updatedSegment)));
133
+ if (segmentParent) {
134
+ var _iterator2 = _createForOfIteratorHelper(updatedSegment),
135
+ _step2;
136
+ try {
137
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
138
+ var _bracket = _step2.value;
139
+ _bracket.parent = segmentParent;
140
+ }
141
+ } catch (err) {
142
+ _iterator2.e(err);
143
+ } finally {
144
+ _iterator2.f();
145
+ }
146
+ }
131
147
  BracketGenerator.reindexSegment(updatedSegment, indexOffset);
132
148
  BracketGenerator.bracketMap[page.oid].updateCount++;
133
149
  if (currentLevel.length > bracketSize) {
@@ -139,25 +155,16 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
139
155
  value: function buildTreeBottomUp(page, list) {
140
156
  var length = list.length;
141
157
  var bracketSize = page.getBracketThreshold() - 1;
142
- if (length <= bracketSize) {
143
- return list;
144
- }
145
158
  var brackets = [];
146
159
  var from = 0;
147
160
  for (var i = 0; i < length; i++) {
148
- var canBeBracketed = list[i].canBeBracketed();
149
161
  var size = i - from;
150
- if (canBeBracketed && (size === bracketSize || i === length - 1) || !canBeBracketed && size > 0) {
151
- var to = canBeBracketed ? i + 1 : i;
152
- brackets.push(BracketGenerator.createBracket(page, list, from, to));
153
- from = i + 1;
154
- }
155
- if (!canBeBracketed) {
156
- brackets.push(list[i]);
162
+ if (size === bracketSize || i === length - 1) {
163
+ brackets.push(BracketGenerator.createBracket(page, list, from, i + 1));
157
164
  from = i + 1;
158
165
  }
159
166
  }
160
- return BracketGenerator.buildTreeBottomUp(page, brackets);
167
+ return brackets > bracketSize ? BracketGenerator.buildTreeBottomUp(page, brackets) : brackets;
161
168
  }
162
169
  }, {
163
170
  key: "createBracket",
@@ -179,7 +186,7 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
179
186
  key: "reindexSegment",
180
187
  value: function reindexSegment(segment, indexOffset) {
181
188
  var queue = segment.slice(0); // Start with the root node in the queue
182
-
189
+ var last = queue[queue.length - 1];
183
190
  while (queue.length > 0) {
184
191
  var bracket = queue.shift(); // Dequeue the first node
185
192
 
@@ -193,6 +200,11 @@ var BracketGenerator = exports.BracketGenerator = /*#__PURE__*/function () {
193
200
  });
194
201
  }
195
202
  }
203
+ var parent = last.getParent();
204
+ while (parent) {
205
+ parent.endIndex = Math.max(parent.endIndex, last.endIndex);
206
+ parent = parent.getParent();
207
+ }
196
208
  }
197
209
  }]);
198
210
  }();
package/build/TModel.js CHANGED
@@ -74,8 +74,7 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
74
74
  heightFromDom: false,
75
75
  keepEventDefault: false,
76
76
  isIncluded: true,
77
- canBeBracketed: true,
78
- bracketThreshold: 6,
77
+ bracketThreshold: 5,
79
78
  isDomDeletable: true,
80
79
  calculateChildren: undefined,
81
80
  isVisible: undefined
@@ -252,11 +251,11 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
252
251
  if (this.deletedChildren.length > 0) {
253
252
  this.deletedChildren.forEach(function (child) {
254
253
  var index = _this2.allChildren.indexOf(child);
254
+ _this2.lastChildrenUpdate.deletions.push(index);
255
255
  if (index >= 0) {
256
256
  _this2.allChildren.splice(index, 1);
257
257
  }
258
258
  });
259
- this.lastChildrenUpdate.deletions = this.lastChildrenUpdate.deletions.concat(this.addedChildren);
260
259
  this.deletedChildren.length = 0;
261
260
  }
262
261
  return this.allChildren;
@@ -369,7 +368,10 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
369
368
  }, {
370
369
  key: "shouldCalculateChildren",
371
370
  value: function shouldCalculateChildren() {
372
- return _TUtil.TUtil.isDefined(this.actualValues.calculateChildren) ? this.actualValues.calculateChildren : this.isVisible() && this.isIncluded() && (this.hasChildren() || this.getContentHeight() > 0);
371
+ if (_TUtil.TUtil.isDefined(this.actualValues.calculateChildren)) {
372
+ return this.actualValues.calculateChildren;
373
+ }
374
+ return this.isVisible() && this.isIncluded() && (this.hasChildren() || this.addedChildren.count > 0 || this.getContentHeight() > 0);
373
375
  }
374
376
  }, {
375
377
  key: "createViewport",
@@ -421,11 +423,6 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
421
423
  value: function keepEventDefault() {
422
424
  return this.actualValues.keepEventDefault;
423
425
  }
424
- }, {
425
- key: "canBeBracketed",
426
- value: function canBeBracketed() {
427
- return this.actualValues.canBeBracketed;
428
- }
429
426
  }, {
430
427
  key: "getBracketThreshold",
431
428
  value: function getBracketThreshold() {
@@ -434,7 +431,10 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
434
431
  }, {
435
432
  key: "shouldBeBracketed",
436
433
  value: function shouldBeBracketed() {
437
- return this.canBeBracketed() && this.getChildren().length > this.getBracketThreshold();
434
+ if (_TUtil.TUtil.isDefined(this.actualValues.shouldBeBracketed)) {
435
+ return this.actualValues.shouldBeBracketed;
436
+ }
437
+ return this.getChildren().length > this.getBracketThreshold();
438
438
  }
439
439
  }, {
440
440
  key: "isIncluded",
@@ -831,8 +831,8 @@ var TModel = exports.TModel = /*#__PURE__*/function () {
831
831
  }
832
832
  }, {
833
833
  key: "addChild",
834
- value: function addChild(child, index) {
835
- index = _TUtil.TUtil.isDefined(index) ? index : this.addedChildren.count + this.allChildren.length;
834
+ value: function addChild(child) {
835
+ var index = this.addedChildren.count + this.allChildren.length;
836
836
  this.addedChildren.count++;
837
837
  _TModelUtil.TModelUtil.addItem(this.addedChildren.list, child, index);
838
838
  (0, _App.getRunScheduler)().schedule(10, 'addChild-' + this.oid + "-" + child.oid);
@@ -192,7 +192,7 @@ var TModelManager = exports.TModelManager = /*#__PURE__*/function () {
192
192
  var tmodel = _step4.value;
193
193
  tmodel.domValues = {};
194
194
  var activateTargets = [].concat(tmodel.targets['onInvisibleEvent'], tmodel.targets['onResize']);
195
- activateTargets === null || activateTargets === void 0 || activateTargets.forEach(function (key) {
195
+ activateTargets.forEach(function (key) {
196
196
  if (tmodel.targets[key] && tmodel.isTargetComplete(key)) {
197
197
  tmodel.activateTarget(key);
198
198
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "targetj",
3
- "version": "1.0.89",
3
+ "version": "1.0.90",
4
4
  "keywords": [
5
5
  "targetj"
6
6
  ],