@refinitiv-ui/efx-grid 6.0.64 → 6.0.66

Sign up to get free protection for your applications and to get access to all the features.
@@ -562,7 +562,7 @@ Core.prototype._batches = null;
562
562
  * @return {string}
563
563
  */
564
564
  Core.getVersion = function () {
565
- return "5.1.75";
565
+ return "5.1.76";
566
566
  };
567
567
  /** {@link ElementWrapper#dispose}
568
568
  * @override
@@ -4482,6 +4482,10 @@ Core.prototype.startBatch = function (batchType) {
4482
4482
  this._batches = {};
4483
4483
  }
4484
4484
  this._batches[batchType] = batchType;
4485
+ // The "columnVisibilityChanged" event is blocked while the "reset" batch operation is in progress, so this event will not be fired until the batch operation succeeds.
4486
+ if(batchType === "reset") {
4487
+ this._disableEvent("columnVisibilityChanged", true);
4488
+ }
4485
4489
  this._dispatch("beforeBatchOperation", { batches: this._batches, batchType: batchType });
4486
4490
  return true;
4487
4491
  };
@@ -4494,10 +4498,6 @@ Core.prototype.stopBatch = function (batchType) {
4494
4498
  if(!batchType){
4495
4499
  return false;
4496
4500
  }
4497
- // The "columnVisibilityChanged" event is blocked while the "reset" batch operation is in progress, so this event will not be fired until the batch operation succeeds.
4498
- if(batchType === "reset") {
4499
- this._disableEvent("columnVisibilityChanged", true);
4500
- }
4501
4501
  this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
4502
4502
  if(batchType === "reset") {
4503
4503
  this._disableEvent("columnVisibilityChanged", false);
package/lib/grid/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import {Grid} from "./lib/efx-grid.js";
2
2
  export {Grid}
3
- window.EFX_GRID = { version: "6.0.64" };
3
+ window.EFX_GRID = { version: "6.0.66" };
@@ -3030,7 +3030,8 @@ ElementObserver._getNewId = function () {
3030
3030
  return id;
3031
3031
  };
3032
3032
 
3033
- /** @private Observe any element
3033
+ /** Observe any element
3034
+ * @private
3034
3035
  * @param {Element} elem
3035
3036
  * @param {Function} listener
3036
3037
  * @param {Object=} opt_option
@@ -3082,7 +3083,8 @@ ElementObserver._addListener = function(elem, fn) {
3082
3083
  }
3083
3084
  };
3084
3085
 
3085
- /** @public Add a listener to a html lang attribute
3086
+ /** Add a listener to a html lang attribute
3087
+ * @public
3086
3088
  * @param {Element} element An element within the DOM tree to watch for changes
3087
3089
  */
3088
3090
  ElementObserver.addLanguageListener = function(element) {
@@ -3093,7 +3095,8 @@ ElementObserver.addLanguageListener = function(element) {
3093
3095
  ElementObserver._addObserver(document.documentElement, _onLanguageMutated.bind(null, element));
3094
3096
  };
3095
3097
 
3096
- /** @public Add a listener to a html attribute
3098
+ /** Add a listener to a html attribute
3099
+ * @public
3097
3100
  * @param {Element} element An element within the DOM tree to watch for changes
3098
3101
  * @param {Function} listener A function which will be called on each attribute change
3099
3102
  * @param {string=} attributeName If not specified, listener will be called on every attribute change
@@ -15330,7 +15333,7 @@ ColumnDefinition.prototype.dispose = function() {
15330
15333
  // TODO: Remove any related reference from this._fnEngine
15331
15334
  };
15332
15335
 
15333
- /** @public
15336
+ /** @private
15334
15337
  * @param {ColumnDefinition~Options|string=} columnOption
15335
15338
  */
15336
15339
  ColumnDefinition.prototype._initializeTimeSeriesChild = function(columnOption) {
@@ -36146,7 +36149,7 @@ Core.prototype._batches = null;
36146
36149
  * @return {string}
36147
36150
  */
36148
36151
  Core.getVersion = function () {
36149
- return "5.1.73";
36152
+ return "5.1.76";
36150
36153
  };
36151
36154
  /** {@link ElementWrapper#dispose}
36152
36155
  * @override
@@ -40066,6 +40069,10 @@ Core.prototype.startBatch = function (batchType) {
40066
40069
  this._batches = {};
40067
40070
  }
40068
40071
  this._batches[batchType] = batchType;
40072
+ // The "columnVisibilityChanged" event is blocked while the "reset" batch operation is in progress, so this event will not be fired until the batch operation succeeds.
40073
+ if(batchType === "reset") {
40074
+ this._disableEvent("columnVisibilityChanged", true);
40075
+ }
40069
40076
  this._dispatch("beforeBatchOperation", { batches: this._batches, batchType: batchType });
40070
40077
  return true;
40071
40078
  };
@@ -40078,10 +40085,6 @@ Core.prototype.stopBatch = function (batchType) {
40078
40085
  if(!batchType){
40079
40086
  return false;
40080
40087
  }
40081
- // The "columnVisibilityChanged" event is blocked while the "reset" batch operation is in progress, so this event will not be fired until the batch operation succeeds.
40082
- if(batchType === "reset") {
40083
- this._disableEvent("columnVisibilityChanged", true);
40084
- }
40085
40088
  this._dispatch("afterBatchOperation", { batches: this._batches, batchType: batchType });
40086
40089
  if(batchType === "reset") {
40087
40090
  this._disableEvent("columnVisibilityChanged", false);
@@ -40655,14 +40658,10 @@ Core.prototype._onColInViewChanged = function (e) {
40655
40658
  var last = pli > li ? pli : li; // INCLUSIVE
40656
40659
 
40657
40660
  this._activateColumns(fi, li, first, last);
40658
-
40659
- var rfi = this._rowVirtualizer.getFirstIndexInView();
40660
- var rli = this._rowVirtualizer.getLastIndexInView();
40661
40661
  var sectionCount = this.getSectionCount();
40662
40662
  for (var s = 0; s < sectionCount; ++s) { // For each section
40663
40663
  var sectionSettings = this._settings[s];
40664
- var rowIndexOffset = sectionSettings.getRowOffset();
40665
- this.updateRowData(sectionSettings, rfi - rowIndexOffset, rli - rowIndexOffset);
40664
+ this.updateRowData(sectionSettings); // It will be render all rows in view
40666
40665
  }
40667
40666
  };
40668
40667
  /** @private
@@ -43087,9 +43086,9 @@ SortableTitlePlugin.prototype.sortColumns = function (sortOptions, opt_arg) {
43087
43086
  var states = [];
43088
43087
  for (var i = 0; i < sortOptions.length; i++) {
43089
43088
  var opt = sortOptions[i];
43090
- var colRef = opt["colIndex"];
43091
- if(colRef < 0 || colRef == null) {
43092
- colRef = opt["colId"] || opt["field"];
43089
+ var colRef = opt["colId"] || opt["field"];
43090
+ if(colRef == null) {
43091
+ colRef = opt["colIndex"];
43093
43092
  }
43094
43093
  var state = this._prepareSorting(
43095
43094
  colRef,
@@ -45730,7 +45729,7 @@ Grid.prototype.replaceColumn = function (columnOption, colRef) {
45730
45729
  colConfig["minWidth"] = value;
45731
45730
  }
45732
45731
 
45733
- value = core.isColumnVisible(colIndex);
45732
+ value = core.getColumnVisibility(colIndex, 0); // flag 0 means get only core api hidden state
45734
45733
  if(!value) {
45735
45734
  colConfig["hidden"] = true;
45736
45735
  }
@@ -46470,7 +46469,7 @@ Grid.prototype.setColumnSorter = function(colRef, func) {
46470
46469
 
46471
46470
 
46472
46471
  /** Initialize data for the given rowDef from another rowDef with the same RIC
46473
- * @public
46472
+ * @private
46474
46473
  * @param {RowDefinition} rowDef
46475
46474
  */
46476
46475
  Grid.prototype._initDuplicateRicData = function(rowDef) {
@@ -48674,6 +48673,26 @@ DataSet.country = [
48674
48673
  // CONCATENATED MODULE: ./node_modules/tr-grid-util/es6/jet/DataGenerator.js
48675
48674
 
48676
48675
 
48676
+ /** @typedef {Object} DataGenerator~DataOptions
48677
+ * @description Options for generating data
48678
+ * @property {number=} seed Seed for randomization. If seed is not specified (default), new set of data will be generated every time. Otherwise, the same set of data will be generated.
48679
+ * @property {number=} numRows Number of rows to be generated
48680
+ * @property {number=} rowCount Alias to numRows
48681
+ */
48682
+
48683
+ /** @typedef {Object} DataGenerator~FieldInformation
48684
+ * @description Information object for defining how data are generated for a specific field
48685
+ * @property {string=} type Available types are number, float, boolean, set, function, and isoDate
48686
+ * @property {string=} prefix Add a text prefix to the data
48687
+ * @property {string=} suffix Add a text suffix to the data
48688
+ * @property {number=} min Minimum value of the numeric data
48689
+ * @property {number=} max Maximum value of the numeric data. This is exclusive (not included in the result).
48690
+ * @property {string=} prec Precision (place number after the decimal point) of the numeric data.
48691
+ * @property {string=} fixedValue Single/static/constant value
48692
+ * @property {Array=} members List of possible data when the type is "set"
48693
+ * @property {Function=} generate Function for generating data when the type is "function"
48694
+ */
48695
+
48677
48696
  /** @private
48678
48697
  * @param {Object} fInfo
48679
48698
  * @param {number=} seed
@@ -48700,8 +48719,7 @@ var _generateDate1 = function(fInfo, seed) {
48700
48719
 
48701
48720
  var POW10 = [1, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10];
48702
48721
 
48703
- /** to format data including type, suffix, prefix, min, max, prec, fixedValue, changeOnly, members, isoDate.
48704
- * @type {Object}
48722
+ /** @type {Object.<string, DataGenerator~DataOptions>}
48705
48723
  * @private
48706
48724
  */
48707
48725
  var _fieldInfo = {
@@ -48774,7 +48792,7 @@ var getFieldInfo = function(field) {
48774
48792
 
48775
48793
  /** @public
48776
48794
  * @param {string} field
48777
- * @param {Object|Function} options
48795
+ * @param {DataGenerator~FieldInformation|Function} options
48778
48796
  */
48779
48797
  var addFieldInfo = function(field, options) {
48780
48798
  if(field) {
@@ -48973,9 +48991,10 @@ var getSeed = function() {
48973
48991
  return DataGenerator.seed;
48974
48992
  };
48975
48993
 
48976
- /** @public
48994
+ /** Generate 2 dimensional array of data from the specified field and options. Note that 2D array data structure is not recommended for usage due to the position of fields/columns can be changed at runtime.
48995
+ * @public
48977
48996
  * @param {string|Array.<string>} fields
48978
- * @param {Object=} options
48997
+ * @param {DataGenerator~DataOptions=} options
48979
48998
  * @return {!Array.<Array>} 2D Array of data
48980
48999
  */
48981
49000
  var generate = function(fields, options) {
@@ -48988,7 +49007,7 @@ var generate = function(fields, options) {
48988
49007
  /** WARNING: This method does not modify global seed
48989
49008
  * @public
48990
49009
  * @param {string|Array.<string>} fields
48991
- * @param {(number|Object)=} options Configuration object or seed number
49010
+ * @param {(number|DataGenerator~DataOptions)=} options Configuration object or seed number
48992
49011
  * @param {number=} seed
48993
49012
  * @return {!Object} Object with the given fields as its keys
48994
49013
  */
@@ -49016,7 +49035,7 @@ var generateRecord = function(fields, options, seed) {
49016
49035
 
49017
49036
  /** @public
49018
49037
  * @param {string|Array.<string>} fields
49019
- * @param {(number|Object)=} options Configuration object or number of rows
49038
+ * @param {(number|DataGenerator~DataOptions)=} options Configuration object or number of rows
49020
49039
  * @return {!Array.<Object>} Array of object with the given fields as its keys
49021
49040
  */
49022
49041
  var generateRecords = function(fields, options) {
@@ -49040,7 +49059,7 @@ var generateRecords = function(fields, options) {
49040
49059
  /** WARNING: This method does not modify global seed
49041
49060
  * @public
49042
49061
  * @param {string} field
49043
- * @param {Object=} options
49062
+ * @param {DataGenerator~DataOptions=} options
49044
49063
  * @param {number=} seed
49045
49064
  * @return {!Object} Object with value, formattedValue and other properties
49046
49065
  */
@@ -49136,7 +49155,7 @@ var _hash = function(str) {
49136
49155
  };
49137
49156
  /** @private
49138
49157
  * @param {string} field
49139
- * @param {Object=} options
49158
+ * @param {DataGenerator~DataOptions=} options
49140
49159
  * @param {number=} seed
49141
49160
  * @return {!Object} Object with value and other properties
49142
49161
  */
@@ -49207,9 +49226,10 @@ var DataGenerator = function(seed) {
49207
49226
  */
49208
49227
  DataGenerator.prototype._seed = null;
49209
49228
 
49210
- /** @public
49229
+ /** Generate 2 dimensional array of data from the specified field and options. Note that 2D array data structure is not recommended for usage due to the position of fields/columns can be changed at runtime.
49230
+ * @public
49211
49231
  * @param {string|Array.<string>} fields
49212
- * @param {(number|Object)=} options
49232
+ * @param {(number|DataGenerator~DataOptions)=} options
49213
49233
  * @return {!Array.<Array>} 2D Array of data
49214
49234
  */
49215
49235
  DataGenerator.prototype.generate = function(fields, options) {
@@ -49244,7 +49264,7 @@ DataGenerator.prototype.generateRecords = function(fields, options) {
49244
49264
 
49245
49265
  /** @public
49246
49266
  * @param {string} field
49247
- * @param {Object=} options
49267
+ * @param {DataGenerator~DataOptions=} options
49248
49268
  * @return {!Object} Object with value, formattedValue and other properties
49249
49269
  */
49250
49270
  DataGenerator.prototype.generateQuoteData = function(field, options) {
@@ -49374,33 +49394,35 @@ DataGenerator.prototype.randString = function(min, max) {
49374
49394
 
49375
49395
  /** @type {?number}
49376
49396
  * @public
49397
+ * @ignore
49377
49398
  */
49378
49399
  DataGenerator.seed = null;
49379
- /** @public
49400
+ /** Generate 2 dimensional array of data from the specified field and options. Note that 2D array data structure is not recommended for usage due to the position of fields/columns can be changed at runtime.
49401
+ * @public
49380
49402
  * @function
49381
49403
  * @param {string|Array.<string>} fields
49382
- * @param {Object=} options
49404
+ * @param {DataGenerator~DataOptions=} options
49383
49405
  * @return {!Array.<Array>} 2D Array of data
49384
49406
  */
49385
49407
  DataGenerator.generate = generate;
49386
49408
  /** @public
49387
49409
  * @function
49388
49410
  * @param {string|Array.<string>} fields
49389
- * @param {Object=} options
49411
+ * @param {DataGenerator~DataOptions=} options
49390
49412
  * @return {Object} Object with the given fields as its keys
49391
49413
  */
49392
49414
  DataGenerator.generateRecord = generateRecord;
49393
49415
  /** @public
49394
49416
  * @function
49395
49417
  * @param {string|Array.<string>} fields
49396
- * @param {(number|Object)=} options Configuration object or seed number
49418
+ * @param {(number|DataGenerator~DataOptions)=} options Configuration object or number of rows
49397
49419
  * @return {!Array.<Object>} Array of object with the given fields as its keys
49398
49420
  */
49399
49421
  DataGenerator.generateRecords = generateRecords;
49400
49422
  /** @public
49401
49423
  * @function
49402
49424
  * @param {string} field
49403
- * @param {Object|Function} options
49425
+ * @param {DataGenerator~FieldInformation|Function} options
49404
49426
  */
49405
49427
  DataGenerator.addFieldInfo = addFieldInfo;
49406
49428
  /** Return a floating-point random number in the range min - max (inclusive of min, but not max) with prec digits of precision.
@@ -49475,6 +49497,8 @@ DataGenerator.randDate = randDate;
49475
49497
  DataGenerator.randString = randString;
49476
49498
 
49477
49499
  /** Convert 2D Array to Array of records
49500
+ * @public
49501
+ * @function
49478
49502
  * @param {Array.<Array>} data2D Array of values
49479
49503
  * @param {Array.<string>=} fields Keys to be mapped on the output records.
49480
49504
  * @return {Array.<Object>} records
@@ -51284,7 +51308,9 @@ var OperatorPrecedences = {
51284
51308
  "-": 4,
51285
51309
  "*": 5,
51286
51310
  "%": 6,
51287
- "/": 6
51311
+ "/": 6,
51312
+ "!": 7,
51313
+ "!!": 7
51288
51314
  };
51289
51315
  /** @type {Object.<string, Function>}
51290
51316
  * @private
@@ -51303,10 +51329,32 @@ var OperatorFunctions = {
51303
51329
  "==": function(lhs, rhs){ return lhs == rhs; },
51304
51330
  "!=": function(lhs, rhs){ return lhs != rhs; },
51305
51331
  "&&": function(lhs, rhs){ return lhs && rhs; },
51306
- "||": function(lhs, rhs){ return lhs || rhs; }
51332
+ "||": function(lhs, rhs){ return lhs || rhs; },
51333
+ "!": function(lhs, rhs){ return !lhs; },
51334
+ "!!": function(lhs, rhs){ return !!lhs; }
51307
51335
  };
51308
51336
  /** @type {Object.<string, Function>}
51309
51337
  * @private
51338
+ * @const
51339
+ */
51340
+ var OperandRequirements = {
51341
+ "+": 2,
51342
+ "-": 2,
51343
+ "*": 2,
51344
+ "/": 2,
51345
+ "%": 2,
51346
+ "<": 2,
51347
+ ">": 2,
51348
+ "<=": 2,
51349
+ ">=": 2,
51350
+ "==": 2,
51351
+ "!=": 2,
51352
+ "&&": 2,
51353
+ "||": 2,
51354
+ "!": 1,
51355
+ "!!": 1
51356
+ };
51357
+ /** @private
51310
51358
  * @function
51311
51359
  * @param {Array.<Object>} ary
51312
51360
  * @param {string|number} value
@@ -51324,10 +51372,20 @@ var _addToken = function(ary, value, type, dataType) {
51324
51372
  }
51325
51373
  if(type === "operator") {
51326
51374
  tok.precedence = OperatorPrecedences[value];
51375
+ } else if(type === "parenthesis") {
51376
+ tok.precedence = 0;
51327
51377
  }
51328
51378
  ary.push(tok);
51329
51379
  return ary.length - 1;
51330
51380
  };
51381
+ /** @private
51382
+ * @function
51383
+ * @param {Object} obj
51384
+ * @returns {*}
51385
+ */
51386
+ var _toValue = function(obj) { // eslint-disable-line
51387
+ return obj.value;
51388
+ };
51331
51389
 
51332
51390
  /** @public
51333
51391
  * @namespace
@@ -51441,8 +51499,9 @@ ExpressionParser._tester = function(ctx) {
51441
51499
  for(var i = 0; i < inputCount; ++i) {
51442
51500
  var tok = rpn[i];
51443
51501
  if(tok.type !== "literal") {
51444
- if(operandCount >= 2) {
51445
- operandCount -= 2;
51502
+ var requiredCount = OperandRequirements[tok.value];
51503
+ if(operandCount >= requiredCount) {
51504
+ operandCount -= requiredCount;
51446
51505
  } else {
51447
51506
  console.warn("Cannot parse an expression with insufficient number of operands");
51448
51507
  return true;
@@ -51483,11 +51542,18 @@ ExpressionParser._filter = function(ctx, rowData) {
51483
51542
  curRes = rowData ? rowData[tokValue] : null;
51484
51543
  }
51485
51544
  } else { // operator
51486
- curRes = OperatorFunctions[tokValue](
51487
- results[operandCount - 2],
51488
- results[operandCount - 1]
51489
- );
51490
- operandCount -= 2;
51545
+ if(OperandRequirements[tokValue] === 1) {
51546
+ curRes = OperatorFunctions[tokValue](
51547
+ results[operandCount - 1]
51548
+ );
51549
+ operandCount -= 1;
51550
+ } else { // 2
51551
+ curRes = OperatorFunctions[tokValue](
51552
+ results[operandCount - 2],
51553
+ results[operandCount - 1]
51554
+ );
51555
+ operandCount -= 2;
51556
+ }
51491
51557
  }
51492
51558
  results[operandCount++] = curRes;
51493
51559
  }
@@ -51556,7 +51622,6 @@ ExpressionParser.parse = function(expression) {
51556
51622
  }
51557
51623
  infixTokens.push(tok);
51558
51624
  }
51559
- // TODO: Handle the case where subtraction operator is in front of a variable
51560
51625
  ExpressionParser._tokens.length = 0;
51561
51626
 
51562
51627
  // Convert Infix notation to Reverse Polish Notation (Postfix)
@@ -51591,9 +51656,10 @@ ExpressionParser.parse = function(expression) {
51591
51656
  }
51592
51657
  }
51593
51658
  } else { // operator
51594
- lastOp = operators[operators.length - 1];
51595
- var prevPrecedence = lastOp ? lastOp.precedence : null;
51596
- if(prevPrecedence != null && tok.precedence <= prevPrecedence) {
51659
+ while(operators.length) {
51660
+ if(tok.precedence > operators[operators.length - 1].precedence) {
51661
+ break;
51662
+ }
51597
51663
  rpn.push(operators.pop());
51598
51664
  }
51599
51665
  operators.push(tok);
@@ -51639,14 +51705,16 @@ ExpressionParser.parse = function(expression) {
51639
51705
 
51640
51706
 
51641
51707
  /** @typedef {Object} CellPainter~Expression
51708
+ * @ignore
51709
+ * @description This form of expression is deprecated
51642
51710
  * @property {string=} name
51643
51711
  * @property {string} text Text describes condition e.g. [FIELD] > 10
51644
51712
  * @property {Array=} values
51645
51713
  */
51646
51714
 
51647
51715
  /** @typedef {Object} CellPainter~Condition
51648
- * @property {string} field Field to be used in the condition
51649
- * @property {CellPainter~Expression|string} expression Text describes condition e.g. [FIELD] > 10
51716
+ * @property {string|Function} expression A function, text, or an object with text property that describes the condition
51717
+ * @property {string=} field Field to be used in the condition
51650
51718
  * @property {string=} backgroundColor CSS color string
51651
51719
  * @property {string=} color CSS color string
51652
51720
  * @property {string=} fontSize
@@ -51697,6 +51765,10 @@ CellPainter.prototype._conditions = null;
51697
51765
  /** @type {Object}
51698
51766
  * @private
51699
51767
  */
51768
+ CellPainter.prototype._effectiveStyles = null;
51769
+ /** @type {Object}
51770
+ * @private
51771
+ */
51700
51772
  CellPainter.prototype._blinkCondition = null;
51701
51773
  /** @type {!Array}
51702
51774
  * @private
@@ -51710,17 +51782,16 @@ CellPainter.prototype._columnStats = null;
51710
51782
  * @private
51711
51783
  */
51712
51784
  CellPainter.prototype._levelColorDisabled = false;
51713
-
51714
51785
  /** @type {number}
51715
51786
  * @private
51716
51787
  */
51717
- CellPainter._runningBlinkId = 0;
51718
-
51788
+ CellPainter.prototype._blinkingDuration = 250;
51719
51789
 
51720
51790
  /** @type {number}
51721
51791
  * @private
51722
51792
  */
51723
- CellPainter._blinkingDuration = 250;
51793
+ CellPainter._runningBlinkId = 0;
51794
+
51724
51795
  /** @type {Array.<CellPainter>}
51725
51796
  * @private
51726
51797
  * @const
@@ -51820,6 +51891,7 @@ CellPainter.prototype.reset = function() {
51820
51891
  CellPainter.prototype.resetColoring = function() {
51821
51892
  // reset coloring type to allow other extensions to be able to set their new mode
51822
51893
  this._setColoringType(0);
51894
+ this._effectiveStyles = null;
51823
51895
  this._conditions.length = 0;
51824
51896
  };
51825
51897
 
@@ -51919,6 +51991,18 @@ CellPainter.prototype._setColoringType = function(enumType) {
51919
51991
  }
51920
51992
  };
51921
51993
  /** @public
51994
+ * @param {Object} mapping Effective styles mapping
51995
+ */
51996
+ CellPainter.prototype.setEffectiveStyles = function(mapping) {
51997
+ this._effectiveStyles = mapping;
51998
+ };
51999
+ /** @public
52000
+ * @return {Object}
52001
+ */
52002
+ CellPainter.prototype.getEffectiveStyles = function() {
52003
+ return this._effectiveStyles;
52004
+ };
52005
+ /** @public
51922
52006
  * @param {Array.<CellPainter~Condition>} conditions
51923
52007
  */
51924
52008
  CellPainter.prototype.setConditions = function(conditions) {
@@ -51943,7 +52027,7 @@ CellPainter.prototype.getColumnStats = function() {
51943
52027
  return this._columnStats;
51944
52028
  };
51945
52029
  /** @private
51946
- * @param {CellPainter~Condition|Object} condition
52030
+ * @param {CellPainter~Condition} condition
51947
52031
  */
51948
52032
  CellPainter.prototype._addCondition = function(condition) {
51949
52033
  var exp = condition["expression"];
@@ -52536,9 +52620,17 @@ CellPainter.clearCellStyle = function(cell, styles) {
52536
52620
  elem.classList.remove(elem._coloringCssClass);
52537
52621
  }
52538
52622
 
52539
- styles = styles || CellPainter.supportedStyles;
52540
- for(var i = styles.length; --i >= 0;) {
52541
- elem.style[styles[i]] = ""; // WARNING: Very slow
52623
+ if(!styles){
52624
+ styles = CellPainter.supportedStyles;
52625
+ }
52626
+ if(Array.isArray(styles)){
52627
+ for(var i = styles.length; --i >= 0;) {
52628
+ elem.style[styles[i]] = ""; // WARNING: Very slow
52629
+ }
52630
+ } else {
52631
+ for(var key in styles) {
52632
+ elem.style[key] = ""; // WARNING: Very slow
52633
+ }
52542
52634
  }
52543
52635
  };
52544
52636
  /** @private
@@ -52660,26 +52752,29 @@ CellPainter.prototype._paintCell = function(cell, rowData, min, max) {
52660
52752
  }
52661
52753
 
52662
52754
  var styles = this._getStyles(rowData, min, max);
52755
+
52756
+ var elStyle = elem.style;
52757
+
52663
52758
  var cssClass = styles["cssClass"]; // Can be an empty string
52759
+ if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
52760
+ elem.classList.remove(elem._coloringCssClass);
52761
+ elem._coloringCssClass = null;
52762
+ }
52664
52763
  if (cssClass != null) { // Predefined colors mode
52665
- if (elem._coloringCssClass && elem._coloringCssClass !== cssClass) {
52666
- elem.classList.remove(elem._coloringCssClass);
52667
- elem._coloringCssClass = null;
52668
- }
52669
52764
  if (cssClass) {
52670
52765
  elem.classList.add(cssClass);
52671
52766
  elem._coloringCssClass = cssClass;
52672
52767
  }
52673
52768
  } else {
52674
- if (elem._coloringCssClass) {
52675
- elem.classList.remove(elem._coloringCssClass);
52676
- elem._coloringCssClass = null;
52769
+ if(styles["backgroundColor"]){
52770
+ elStyle.backgroundColor = styles["backgroundColor"];
52771
+ } else if(!this._effectiveStyles || this._effectiveStyles["backgroundColor"]){
52772
+ elStyle.backgroundColor = "";
52677
52773
  }
52678
- var ss = CellPainter.bgStyles;
52679
- var elStyle = elem.style;
52680
- for (var n = ss.length; --n >= 0;) {
52681
- var styleName = ss[n];
52682
- elStyle[styleName] = styles[styleName] || "";
52774
+ if(styles["color"]){
52775
+ elStyle.color = styles["color"];
52776
+ } else if(!this._effectiveStyles || this._effectiveStyles["color"]){
52777
+ elStyle.color = "";
52683
52778
  }
52684
52779
  }
52685
52780
  };
@@ -52772,7 +52867,7 @@ CellPainter.prototype._blinkCell = function(cell, rowData, blinkSignal) {
52772
52867
  }
52773
52868
 
52774
52869
  CellPainter._clearBlinkTimer(scope);
52775
- scope["blinkTimer"] = setTimeout(scope._restorer, CellPainter._blinkingDuration);
52870
+ scope["blinkTimer"] = setTimeout(scope._restorer, this._blinkingDuration);
52776
52871
 
52777
52872
  return bgBlinking;
52778
52873
  };
@@ -52800,6 +52895,15 @@ CellPainter.prototype.verifyBlinking = function(cell, rowData) {
52800
52895
  CellPainter.prototype.disableLevelColor = function(disabled) {
52801
52896
  this._levelColorDisabled = disabled !== false;
52802
52897
  };
52898
+ /**
52899
+ * @public
52900
+ * @param {number} duration
52901
+ */
52902
+ CellPainter.prototype.setBlinkingDuration = function(duration) {
52903
+ if(typeof duration === "number"){
52904
+ this._blinkingDuration = duration;
52905
+ }
52906
+ };
52803
52907
 
52804
52908
  /* harmony default export */ var es6_CellPainter = (CellPainter);
52805
52909