@refinitiv-ui/efx-grid 6.0.32 → 6.0.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. package/lib/core/dist/core.js +197 -46
  2. package/lib/core/dist/core.min.js +1 -1
  3. package/lib/core/es6/data/DataTable.d.ts +1 -1
  4. package/lib/core/es6/data/DataTable.js +9 -8
  5. package/lib/core/es6/data/DataView.js +1 -1
  6. package/lib/core/es6/data/Segment.d.ts +2 -0
  7. package/lib/core/es6/data/Segment.js +16 -0
  8. package/lib/core/es6/data/SegmentCollection.d.ts +1 -3
  9. package/lib/core/es6/data/SegmentCollection.js +25 -18
  10. package/lib/core/es6/grid/Core.d.ts +4 -0
  11. package/lib/core/es6/grid/Core.js +27 -6
  12. package/lib/core/es6/grid/plugins/SortableTitlePlugin.d.ts +1 -0
  13. package/lib/core/es6/grid/plugins/SortableTitlePlugin.js +36 -12
  14. package/lib/grid/index.js +1 -1
  15. package/lib/grid/themes/halo/dark/efx-grid.js +1 -1
  16. package/lib/grid/themes/halo/dark/es5/all-elements.js +1 -1
  17. package/lib/grid/themes/halo/efx-grid.less +2 -0
  18. package/lib/grid/themes/halo/light/efx-grid.js +1 -1
  19. package/lib/grid/themes/halo/light/es5/all-elements.js +1 -1
  20. package/lib/rt-grid/dist/rt-grid.js +945 -331
  21. package/lib/rt-grid/dist/rt-grid.min.js +1 -1
  22. package/lib/rt-grid/es6/ColumnDefinition.js +13 -8
  23. package/lib/rt-grid/es6/DataConnector.js +3 -2
  24. package/lib/rt-grid/es6/Grid.d.ts +3 -1
  25. package/lib/rt-grid/es6/Grid.js +130 -28
  26. package/lib/rt-grid/es6/RowDefinition.d.ts +7 -2
  27. package/lib/rt-grid/es6/RowDefinition.js +49 -11
  28. package/lib/rt-grid/es6/SnapshotFiller.d.ts +1 -0
  29. package/lib/rt-grid/es6/SnapshotFiller.js +1 -11
  30. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.d.ts +4 -0
  31. package/lib/tr-grid-column-grouping/es6/ColumnGrouping.js +58 -30
  32. package/lib/tr-grid-column-stack/es6/ColumnStack.d.ts +2 -0
  33. package/lib/tr-grid-column-stack/es6/ColumnStack.js +56 -22
  34. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.d.ts +12 -5
  35. package/lib/tr-grid-conditional-coloring/es6/ConditionalColoring.js +128 -42
  36. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +3 -3
  37. package/lib/tr-grid-heat-map/es6/HeatMap.js +13 -2
  38. package/lib/tr-grid-row-dragging/es6/RowDragging.d.ts +2 -1
  39. package/lib/tr-grid-row-dragging/es6/RowDragging.js +142 -17
  40. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +20 -20
  41. package/lib/tr-grid-textformatting/es6/TextFormatting.js +37 -138
  42. package/lib/tr-grid-util/es6/CellPainter.d.ts +1 -1
  43. package/lib/tr-grid-util/es6/CellPainter.js +56 -55
  44. package/lib/tr-grid-util/es6/FieldFormatter.js +6 -2
  45. package/lib/tr-grid-util/es6/GroupDefinitions.d.ts +2 -0
  46. package/lib/tr-grid-util/es6/GroupDefinitions.js +15 -0
  47. package/lib/tr-grid-util/es6/NumberFormatter.js +23 -11
  48. package/lib/tr-grid-util/es6/Util.d.ts +6 -0
  49. package/lib/tr-grid-util/es6/Util.js +68 -0
  50. package/lib/tr-grid-util/es6/jet/CollectionDict.d.ts +1 -1
  51. package/lib/tr-grid-util/es6/jet/CollectionDict.js +12 -2
  52. package/lib/tr-grid-util/es6/jet/MockQuotes2.js +170 -47
  53. package/lib/types/es6/ColumnGrouping.d.ts +4 -0
  54. package/lib/types/es6/ColumnSelection.d.ts +2 -0
  55. package/lib/types/es6/ColumnStack.d.ts +2 -0
  56. package/lib/types/es6/ConditionalColoring.d.ts +12 -5
  57. package/lib/types/es6/Core/data/Segment.d.ts +2 -0
  58. package/lib/types/es6/Core/data/SegmentCollection.d.ts +1 -3
  59. package/lib/types/es6/Core/grid/Core.d.ts +4 -0
  60. package/lib/types/es6/Core/grid/plugins/SortableTitlePlugin.d.ts +1 -0
  61. package/lib/types/es6/Core/grid/util/SelectionList.d.ts +6 -2
  62. package/lib/types/es6/HeatMap.d.ts +3 -3
  63. package/lib/types/es6/RealtimeGrid/Grid.d.ts +3 -1
  64. package/lib/types/es6/RealtimeGrid/RowDefinition.d.ts +7 -2
  65. package/lib/types/es6/RealtimeGrid/SnapshotFiller.d.ts +1 -0
  66. package/lib/types/es6/RowDragging.d.ts +25 -2
  67. package/lib/types/es6/StatisticsRow.d.ts +25 -25
  68. package/lib/types/es6/TextFormatting.d.ts +20 -20
  69. package/lib/versions.json +7 -7
  70. package/package.json +1 -1
@@ -6,9 +6,10 @@
6
6
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
7
 
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
+ /* harmony export */ "Qr": () => (/* binding */ isEmptyObject),
9
10
  /* harmony export */ "kI": () => (/* binding */ cloneObject)
10
11
  /* harmony export */ });
11
- /* unused harmony exports Util, extendObject, arrayToObject, extendProperty, extendArrayProperty, parseCondition, prettifyCss, getShadowRoot, injectCss, isIE, isMac, isTouchDevice, nestedObjectToArray, rgb2Hex, prepareTSVContent */
12
+ /* unused harmony exports Util, extendObject, deepEqual, arrayToObject, extendProperty, extendArrayProperty, parseCondition, prettifyCss, getShadowRoot, injectCss, isIE, isMac, isTouchDevice, nestedObjectToArray, rgb2Hex, prepareTSVContent */
12
13
  /** @namespace */
13
14
  var Util = {};
14
15
 
@@ -149,6 +150,20 @@ var extendObject = function (obj, extender, limiters) {
149
150
  var cloneObject = function (obj, limiters) {
150
151
  return extendObject({}, obj, limiters);
151
152
  };
153
+
154
+ /** Check empty object
155
+ * @public
156
+ * @function
157
+ * @param {Object} obj
158
+ * @return {boolean}=true, if the obj is empty
159
+ */
160
+ var isEmptyObject = function (obj) {
161
+ for (var key in obj) {
162
+ return false;
163
+ }
164
+ return true;
165
+ };
166
+
152
167
  /** @public
153
168
  * @param {Array=} data
154
169
  * @param {Array.<string>=} fields In case of the given data is an array, this param will be used for mapping index to field
@@ -197,6 +212,58 @@ var extendProperty = function (obj, extender, propName) {
197
212
  }
198
213
  }
199
214
  };
215
+
216
+
217
+ /** Compare the values of obj1 and obj2. if they are the same object or have the same value, the result will be true. Otherwise, it will return false.
218
+ * @public
219
+ * @param {*} obj1
220
+ * @param {*} obj2
221
+ * @return {boolean}
222
+ */
223
+ var deepEqual = function (obj1, obj2) {
224
+
225
+ if(obj1 === obj2) {
226
+ return true;
227
+ }
228
+
229
+ if (typeof obj1 !== typeof obj2) {
230
+ return false;
231
+ }
232
+
233
+ if (typeof obj1 === "object") {
234
+
235
+ // We need to split array and object for performance reason
236
+ if(Array.isArray(obj1)) {
237
+ if(obj1.length !== obj2.length) {
238
+ return false;
239
+ }
240
+
241
+ for (var i = 0; i < obj1.length; i++) {
242
+ if (!deepEqual(obj1[i], obj2[i])) { // The array may not be a match if the elements are not sorted, so it will not be considered equal if there is a mismatch.
243
+ return false;
244
+ }
245
+ }
246
+
247
+ } else {
248
+
249
+ if (Object.keys(obj1).length !== Object.keys(obj2).length) {
250
+ return false;
251
+ }
252
+
253
+ for (var key in obj1) {
254
+ if (!deepEqual(obj1[key], obj2[key])) {
255
+ return false;
256
+ }
257
+ }
258
+ }
259
+
260
+
261
+ return true;
262
+ }
263
+
264
+ return false;
265
+
266
+ };
200
267
  /** Array.push() is much faster than Array.concat(). The downside is the parameters must be an array, whereas concat() has no such requirement. <br>
201
268
  * This method excels in extending known array property in an object.
202
269
  * @public
@@ -11843,7 +11910,22 @@ GroupDefinitions.prototype.setGroupChildren = function (groupId, newChildList) {
11843
11910
  }
11844
11911
  return false;
11845
11912
  };
11913
+ /** @public
11914
+ * @param {string} groupId
11915
+ * @param {string} groupName
11916
+ * @return {boolean}
11917
+ */
11918
+ GroupDefinitions.prototype.setGroupName = function (groupId, groupName) {
11919
+ var groupDef = this._groupMap[groupId];
11920
+ if(groupDef) {
11921
+ if(groupDef.name !== groupName) {
11922
+ groupDef.name = groupName;
11923
+ return true;
11924
+ }
11925
+ }
11846
11926
 
11927
+ return false;
11928
+ };
11847
11929
  /* harmony default export */ const es6_GroupDefinitions = ((/* unused pure expression or super */ null && (GroupDefinitions)));
11848
11930
 
11849
11931
 
@@ -14030,6 +14112,22 @@ Segment.prototype.getOrder = function() {
14030
14112
  }
14031
14113
  return this._order * 10000;
14032
14114
  };
14115
+ /** Get the last (highest) order from the entire tree regardless of the current position segment in the hierachy
14116
+ * @public
14117
+ * @return {number}
14118
+ */
14119
+ Segment.prototype.getLastOrder = function() {
14120
+ if(this._subSegDef) {
14121
+ var subSegments = this._subSegDef.subSegments;
14122
+ if(subSegments) {
14123
+ var lastSegment = subSegments[subSegments.length - 1];
14124
+ if(lastSegment) {
14125
+ return lastSegment.getOrder();
14126
+ }
14127
+ }
14128
+ }
14129
+ return this.getOrder();
14130
+ };
14033
14131
  /** @public
14034
14132
  * @param {number} val
14035
14133
  */
@@ -14151,9 +14249,10 @@ SegmentCollection.prototype.dispose = function() {
14151
14249
  };
14152
14250
  /** @public
14153
14251
  * @param {string} rid
14252
+ * @param {Array.<string>=} childRids Children of the newly added segment. This is a shorthand to addSegmentChildren method
14154
14253
  * @return {boolean} Returns true if there is any change. Otherwise, returns false
14155
14254
  */
14156
- SegmentCollection.prototype.addSegment = function(rid) {
14255
+ SegmentCollection.prototype.addSegment = function(rid, childRids) {
14157
14256
  if(rid && !this._segments[rid]) {
14158
14257
  if(this.getParentRowId(rid)) {
14159
14258
  console.log("child of a segment cannot be set as a segment separator");
@@ -14164,6 +14263,10 @@ SegmentCollection.prototype.addSegment = function(rid) {
14164
14263
  segment.addEventListener("subSegmentRemoved", this._onSubSegmentRemoved);
14165
14264
  ++this._segmentCount;
14166
14265
  this._segmentList = null; // order could be changed
14266
+
14267
+ if(childRids && childRids.length) {
14268
+ segment.addChildren(childRids);
14269
+ }
14167
14270
  return true;
14168
14271
  }
14169
14272
  return false;
@@ -14511,9 +14614,10 @@ SegmentCollection.prototype.calcSegmentOrder = function(rids) {
14511
14614
  };
14512
14615
  /** @public
14513
14616
  * @param {!Array.<string>} rids Array of row ids
14617
+ * @param {boolean=} partial Indicating that the given ids are not the whole list
14514
14618
  * @return {Array.<number>} Returns Array of segment values, if there are at least one segment, otherwise returns null
14515
- */
14516
- SegmentCollection.prototype.getSegmentValues = function(rids) {
14619
+ */ //
14620
+ SegmentCollection.prototype.getSegmentValues = function(rids, partial) {
14517
14621
  var rowCount = rids ? rids.length : 0;
14518
14622
  if(!rowCount) {
14519
14623
  return null;
@@ -14530,29 +14634,30 @@ SegmentCollection.prototype.getSegmentValues = function(rids) {
14530
14634
  var rid = rids[r];
14531
14635
  curSegment = segmentSeparators[rid];
14532
14636
  if(curSegment) { // segment separator
14533
- if(prevSegment !== curSegment) {
14534
- prevSegment = curSegment;
14535
- segmentVal = curSegment.getOrder() * 100;
14536
- if(segmentVal > highestVal) {
14537
- highestVal = segmentVal;
14637
+ segmentVal = curSegment.getOrder() * 100;
14638
+ offset = 0;
14639
+ if(!curSegment.isSubSegment()) {
14640
+ if(prevSegment !== curSegment) {
14641
+ prevSegment = curSegment;
14642
+ highestVal = curSegment.getLastOrder() * 100;
14538
14643
  }
14539
14644
  }
14540
- offset = 0;
14541
14645
  } else {
14542
14646
  var parentId = childToSegmentId[rid];
14543
14647
  if(parentId) { // segment member
14544
14648
  curSegment = segmentSeparators[parentId];
14545
- if(prevSegment !== curSegment) {
14546
- prevSegment = curSegment;
14547
- segmentVal = curSegment.getOrder() * 100;
14548
- if(segmentVal > highestVal) {
14549
- highestVal = segmentVal;
14550
- }
14551
- }
14649
+ segmentVal = curSegment.getOrder() * 100;
14552
14650
  offset = 1;
14651
+ if(partial) {
14652
+ highestVal = curSegment.getLastOrder() * 100;
14653
+ }
14553
14654
  } else { // row outside of segments
14554
- segmentVal = highestVal;
14555
- offset = 10;
14655
+ if(highestVal) {
14656
+ segmentVal = highestVal;
14657
+ offset = 10;
14658
+ } else {
14659
+ segmentVal = offset = 0;
14660
+ }
14556
14661
  }
14557
14662
  }
14558
14663
 
@@ -15734,11 +15839,12 @@ DataTable.prototype.getSegmentParentRowId = function(rid) {
15734
15839
  /**
15735
15840
  * @public
15736
15841
  * @param {Array.<string>=} rids If no row id is given, row ids of this data table is used instead
15842
+ * @param {boolean=} partial Indicating that the given ids are not the whole list
15737
15843
  * @return {Array.<number>} Return null if there is no segmentation
15738
15844
  */
15739
- DataTable.prototype.getSegmentValues = function(rids) {
15845
+ DataTable.prototype.getSegmentValues = function(rids, partial) {
15740
15846
  if(this._segments) {
15741
- return this._segments.getSegmentValues(rids || this._rids);
15847
+ return this._segments.getSegmentValues(rids || this._rids, partial);
15742
15848
  }
15743
15849
  return null;
15744
15850
  };
@@ -15821,9 +15927,9 @@ DataTable.prototype.addSegmentChild = function(segmentId, rid, dataId) {
15821
15927
  if(this._segments) {
15822
15928
  var dirty = this._segments.addSegmentChild(segmentId, rid, dataId);
15823
15929
  if(dirty) {
15824
- if(this._sort(null)) {
15825
- this._dispatchPositionChange();
15826
- }
15930
+ this._sort(null);
15931
+ this._dispatchPositionChange(); // Force rerendering, even if there is no position change
15932
+
15827
15933
  this.requestClassifying();
15828
15934
  return true;
15829
15935
  }
@@ -15840,9 +15946,9 @@ DataTable.prototype.addSegmentChildren = function(segmentId, rids, dataIds) {
15840
15946
  if(this._segments) {
15841
15947
  var dirty = this._segments.addSegmentChildren(segmentId, rids, dataIds);
15842
15948
  if(dirty) {
15843
- if(this._sort(null)) {
15844
- this._dispatchPositionChange();
15845
- }
15949
+ this._sort(null);
15950
+ this._dispatchPositionChange(); // Force rerendering, even if there is no position change
15951
+
15846
15952
  this.requestClassifying();
15847
15953
  return true;
15848
15954
  }
@@ -21834,7 +21940,7 @@ DataView.prototype._sort = function() {
21834
21940
  if(this._dt._getSegmentSeparators() || this.isSorting()) {
21835
21941
  var rids = this._rids;
21836
21942
  var dataRows = this._dt.getMultipleRowData(rids);
21837
- var segmentValues = this._dt.getSegmentValues(rids);
21943
+ var segmentValues = this._dt.getSegmentValues(rids, true); // WARNING: This does not work well for hidden/filtered rows
21838
21944
  var change = data_DataTable._performMultiLevelSorting(dataRows, this._sortingDefs, segmentValues);
21839
21945
 
21840
21946
  if(change) {
@@ -25588,7 +25694,7 @@ Core_Core.prototype._groupDefs = null;
25588
25694
  * @return {string}
25589
25695
  */
25590
25696
  Core_Core.getVersion = function () {
25591
- return "5.1.41";
25697
+ return "5.1.45";
25592
25698
  };
25593
25699
  /** {@link ElementWrapper#dispose}
25594
25700
  * @override
@@ -25724,10 +25830,10 @@ Core_Core.prototype.getConfigObject = function (gridOptions) {
25724
25830
  }
25725
25831
  }
25726
25832
 
25727
- if(this._rowHighlighting) {
25728
- obj["rowHighlighting"] = true;
25729
- }
25730
- obj["columnVirtualization"] = this._colVirtualizer.isEnabled();
25833
+ // It will be overwrite in rt-grid or atlas-blotter
25834
+ obj["rowVirtualization"] = this.isRowVirtualizationEnabled();
25835
+ obj["columnVirtualization"] = this.isColumnVirtualizationEnabled();
25836
+ obj["rowHighlighting"] = this._rowHighlighting;
25731
25837
 
25732
25838
  if(this._fixFrozenTopSections) {
25733
25839
  obj["topFreezingCount"] = this._startVScrollbarIndex >= 0 ? (this._startVScrollbarIndex + 1) : false;
@@ -25740,7 +25846,13 @@ Core_Core.prototype.getConfigObject = function (gridOptions) {
25740
25846
  if(this._rowScrollingStep) {
25741
25847
  obj["stepScroll"] = (this._rowScrollingStep === 1) ? true : this._rowScrollingStep;
25742
25848
  }
25743
- obj["autoHideScrollbar"] = this._vscrollbar.getAutoHide(); // this._hscrollbar has the same settings
25849
+
25850
+ var val = this._vscrollbar.getAutoHide();
25851
+ if(val !== true) {
25852
+ // TODO: check this._hscrollbar and this._vscrollbar can be difference config
25853
+ obj["autoHideScrollbar"] = val; // this._hscrollbar has the same settings
25854
+ }
25855
+
25744
25856
  var wheelSpeed = this._vscrollbar.getMouseWheelSpeed();
25745
25857
  if(wheelSpeed) {
25746
25858
  obj["linearWheelScrolling"] = wheelSpeed;
@@ -28713,6 +28825,14 @@ Core_Core.prototype.enableRowVirtualization = function (opt_enabled) {
28713
28825
  this._rowVirtualizer.deactivate();
28714
28826
  }
28715
28827
  };
28828
+
28829
+ /** @public
28830
+ * @return {boolean}
28831
+ */
28832
+ Core_Core.prototype.isRowVirtualizationEnabled = function () {
28833
+ return this._rowVirtualizer.isEnabled();
28834
+ };
28835
+
28716
28836
  /** No runtime support
28717
28837
  * @public
28718
28838
  * @param {boolean=} opt_enabled
@@ -28727,6 +28847,13 @@ Core_Core.prototype.enableColumnVirtualization = function (opt_enabled) {
28727
28847
  }
28728
28848
  };
28729
28849
 
28850
+ /** @public
28851
+ * @return {boolean}
28852
+ */
28853
+ Core_Core.prototype.isColumnVirtualizationEnabled = function () {
28854
+ return this._colVirtualizer.isEnabled();
28855
+ };
28856
+
28730
28857
  /** Scrolling step will be multiple of the default row height in pixels. For example, if default row height is 32 pixel and row scrolling step is 2, <br>
28731
28858
  * then the actual scrolling step for vertical scrollbar will be (32 * 2) = 64 pixels
28732
28859
  * @public
@@ -30732,6 +30859,7 @@ Core_Core._proto = Core_Core.prototype;
30732
30859
 
30733
30860
 
30734
30861
 
30862
+
30735
30863
  /* eslint-enable */
30736
30864
 
30737
30865
  /** Fired when user click and before the sorting operation.
@@ -31191,7 +31319,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
31191
31319
  }
31192
31320
  field = opt["field"];
31193
31321
  if (field) {
31194
- col["sortBy"] = field;
31322
+ if(col["field"] !== field) {
31323
+ col["sortBy"] = field;
31324
+ } // else The default value is an empty sortBy, which refers to the same column field by default.
31325
+
31195
31326
  if (this._sortingSequenceMap && this._sortingSequenceMap[field]) {
31196
31327
  col["sortingSequence"] = this._sortingSequenceMap[field];
31197
31328
  }
@@ -31204,16 +31335,32 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
31204
31335
  extOptions = obj["sorting"] = {};
31205
31336
  }
31206
31337
 
31207
- extOptions["initialSort"] = this.getSortedColumns();
31208
- extOptions["sortableIndicator"] = this._sortableIndicator;
31338
+ var val = this.getSortedColumns();
31339
+ if(val != null) {
31340
+ extOptions["initialSort"] = val;
31341
+ }
31342
+
31343
+ val = this._sortableIndicator;
31344
+ if(val !== false) {
31345
+ extOptions["sortableIndicator"] = val;
31346
+ }
31347
+
31209
31348
  if(this._maxCount !== 1) {
31210
31349
  extOptions["multiColumn"] = this._maxCount === -1 ? true : this._maxCount;
31211
31350
  }
31212
31351
  if(this._dblClickAllowed) {
31213
31352
  extOptions["disableDoubleClickToSort"] = !this._dblClickAllowed;
31214
31353
  }
31215
- extOptions["sortableColumns"] = this._sortableColumns;
31216
- extOptions["indicatorOnly"] = !this._dataSorting;
31354
+
31355
+ val = this._sortableColumns;
31356
+ if(val !== true) {
31357
+ extOptions["sortableColumns"] = val;
31358
+ }
31359
+
31360
+ val = this._dataSorting;
31361
+ if(val !== true) {
31362
+ extOptions["indicatorOnly"] = val;
31363
+ }
31217
31364
  // extOptions["mode"] = this._mode;
31218
31365
  if(this._disabled) {
31219
31366
  extOptions["disabled"] = true;
@@ -31230,6 +31377,10 @@ SortableTitlePlugin.prototype.getConfigObject = function (gridOptions) {
31230
31377
  extOptions["sortingSequence"] = sortingSeq.slice();
31231
31378
  }
31232
31379
 
31380
+ if((0,es6_Util/* isEmptyObject */.Qr)(obj["sorting"])) {
31381
+ delete obj["sorting"];
31382
+ }
31383
+
31233
31384
  return obj;
31234
31385
  };
31235
31386
 
@@ -32367,16 +32518,16 @@ SortableTitlePlugin.prototype._updateSortableIndicator = function (hostIndex) {
32367
32518
  symbol = t._createIconElem(icon, textContent);
32368
32519
  symbol.className = "sort-symbol";
32369
32520
  cell["insertFloatingIcon"](symbol, 0);
32370
-
32371
- if (t._sortStates.length > 1) {
32372
- symbol = document.createElement("span");
32373
- symbol.className = "priority-symbol";
32374
- symbol.textContent = priority + 1;
32375
- cell["insertFloatingIcon"](symbol, 1);
32376
- }
32377
32521
  } else {
32378
32522
  cell["addClass"]("edge-indicator");
32379
32523
  }
32524
+
32525
+ if (t._sortStates.length > 1) {
32526
+ symbol = document.createElement("span");
32527
+ symbol.className = "priority-symbol";
32528
+ symbol.textContent = priority + 1;
32529
+ cell["insertFloatingIcon"](symbol, 1);
32530
+ }
32380
32531
  } else if (t._sortableIndicator) { // Can sort but currently not sorting
32381
32532
  icon = SortableTitlePlugin._icons["sortable"];
32382
32533
  symbol = t._createIconElem(icon, CODE_DIAMOND);