@refinitiv-ui/efx-grid 6.0.132 → 6.0.134

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.
Files changed (28) hide show
  1. package/lib/filter-dialog/lib/checkbox-list.js +5 -0
  2. package/lib/filter-dialog/lib/filter-dialog.js +10 -8
  3. package/lib/filter-dialog/themes/base.less +12 -0
  4. package/lib/filter-dialog/themes/elemental/dark/es5/all-elements.js +1 -1
  5. package/lib/filter-dialog/themes/elemental/dark/filter-dialog.js +1 -1
  6. package/lib/filter-dialog/themes/elemental/light/es5/all-elements.js +1 -1
  7. package/lib/filter-dialog/themes/elemental/light/filter-dialog.js +1 -1
  8. package/lib/filter-dialog/themes/halo/dark/es5/all-elements.js +1 -1
  9. package/lib/filter-dialog/themes/halo/dark/filter-dialog.js +1 -1
  10. package/lib/filter-dialog/themes/halo/filter-dialog.less +7 -1
  11. package/lib/filter-dialog/themes/halo/light/es5/all-elements.js +1 -1
  12. package/lib/filter-dialog/themes/halo/light/filter-dialog.js +1 -1
  13. package/lib/filter-dialog/themes/solar/charcoal/es5/all-elements.js +1 -1
  14. package/lib/filter-dialog/themes/solar/charcoal/filter-dialog.js +1 -1
  15. package/lib/filter-dialog/themes/solar/pearl/es5/all-elements.js +1 -1
  16. package/lib/filter-dialog/themes/solar/pearl/filter-dialog.js +1 -1
  17. package/lib/grid/index.js +1 -1
  18. package/lib/tr-grid-heat-map/es6/HeatMap.d.ts +2 -2
  19. package/lib/tr-grid-heat-map/es6/HeatMap.js +55 -56
  20. package/lib/tr-grid-row-filtering/es6/RowFiltering.d.ts +0 -2
  21. package/lib/tr-grid-row-filtering/es6/RowFiltering.js +47 -49
  22. package/lib/tr-grid-textformatting/es6/TextFormatting.d.ts +0 -2
  23. package/lib/tr-grid-textformatting/es6/TextFormatting.js +352 -333
  24. package/lib/types/es6/HeatMap.d.ts +2 -2
  25. package/lib/types/es6/RowFiltering.d.ts +0 -2
  26. package/lib/types/es6/TextFormatting.d.ts +0 -1
  27. package/lib/versions.json +4 -4
  28. package/package.json +1 -1
@@ -6,11 +6,11 @@ import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
6
6
  /** @typedef {Object} HeatMapPlugin~ColumnOptions
7
7
  * @description Extension column options that can be specified on each individual grid's column option:
8
8
  * @property {string} field Field used by the heat map
9
- * @property {HeatMapPlugin~Heatmap=} heatMap=null Heat map options
9
+ * @property {HeatMapPlugin~HeatMap=} heatMap=null Heat map options
10
10
  */
11
11
 
12
- /** @typedef {boolean|Object} HeatMapPlugin~Heatmap
13
- * @description Available options describing `heatmap` object
12
+ /** @typedef {Object} HeatMapPlugin~HeatMap
13
+ * @description Available options describing `heatMap` object
14
14
  * @property {number=} midPoint=0 Middle point between values representing up and down colors
15
15
  * @property {string=} mode="cell" In cell mode, heat map color will be applied to the entire cell
16
16
  */
@@ -18,7 +18,7 @@ import {ElfUtil} from '../../tr-grid-util/es6/ElfUtil.js';
18
18
  /** @constructor
19
19
  * @extends {GridPlugin}
20
20
  */
21
- var HeatMapPlugin = function () {
21
+ let HeatMapPlugin = function () {
22
22
  this._onSectionBinding = this._onSectionBinding.bind(this);
23
23
  this._onColumnAdded = this._onColumnAdded.bind(this);
24
24
  this._onColumnRemoved = this._onColumnRemoved.bind(this);
@@ -78,9 +78,9 @@ HeatMapPlugin.prototype.initialize = function (host, options) {
78
78
  */
79
79
  HeatMapPlugin.prototype._afterInit = function () {
80
80
  if(this._realTimeGrid) {
81
- var colStats, painter;
82
- var colCount = this.getColumnCount();
83
- for(var c = 0; c < colCount; c++) {
81
+ let colStats, painter;
82
+ let colCount = this.getColumnCount();
83
+ for(let c = 0; c < colCount; c++) {
84
84
  painter = this.getColumnHeatMap(c);
85
85
  if(painter) {
86
86
  colStats = painter.getColumnStats();
@@ -95,7 +95,7 @@ HeatMapPlugin.prototype._afterInit = function () {
95
95
  * @param {Object} host core grid object
96
96
  */
97
97
  HeatMapPlugin.prototype.unload = function (host) {
98
- var at = this._hosts.indexOf(host);
98
+ let at = this._hosts.indexOf(host);
99
99
  if(at < 0) { return; }
100
100
 
101
101
  this._hosts.splice(at, 1);
@@ -114,12 +114,12 @@ HeatMapPlugin.prototype.unload = function (host) {
114
114
  HeatMapPlugin.prototype.config = function (options, opt_grid) {
115
115
  if(!options) { return; }
116
116
 
117
- var columns = options["columns"];
117
+ let columns = options["columns"];
118
118
  if(!columns) { return; }
119
119
 
120
- var len = columns.length;
121
- for(var i = 0; i < len; ++i) {
122
- var column = columns[i];
120
+ let len = columns.length;
121
+ for(let i = 0; i < len; ++i) {
122
+ let column = columns[i];
123
123
  this.setColumnHeatMap(i, column, opt_grid);
124
124
  }
125
125
  };
@@ -130,22 +130,22 @@ HeatMapPlugin.prototype.config = function (options, opt_grid) {
130
130
  * @returns {!Object}
131
131
  */
132
132
  HeatMapPlugin.prototype.getConfigObject = function (out_obj) {
133
- var obj = out_obj || {};
133
+ let obj = out_obj || {};
134
134
 
135
- var columns = obj.columns;
135
+ let columns = obj.columns;
136
136
  if (!columns) {
137
137
  columns = obj.columns = [];
138
138
  }
139
139
 
140
- var len = this.getColumnCount();
141
- for(var i = 0; i < len; ++i) {
142
- var col = columns[i];
140
+ let len = this.getColumnCount();
141
+ for(let i = 0; i < len; ++i) {
142
+ let col = columns[i];
143
143
  if (!col) {
144
144
  col = columns[i] = {};
145
145
  }
146
146
 
147
147
 
148
- var opt = this.getColumnHeatMap(i);
148
+ let opt = this.getColumnHeatMap(i);
149
149
 
150
150
  if (!opt) { // We are only interested in the columns that have heat map informations
151
151
  continue;
@@ -157,7 +157,7 @@ HeatMapPlugin.prototype.getConfigObject = function (out_obj) {
157
157
  continue;
158
158
  }
159
159
 
160
- var heatMap = col.heatMap = {};
160
+ let heatMap = col.heatMap = {};
161
161
 
162
162
  if (opt.midPoint != null) {
163
163
  heatMap.midPoint = opt.midPoint;
@@ -177,7 +177,7 @@ HeatMapPlugin.prototype.getConfigObject = function (out_obj) {
177
177
  * @return {CellPainter}
178
178
  */
179
179
  HeatMapPlugin.prototype.getColumnHeatMap = function (colIndex, grid) {
180
- var painter = this._getColumnOption(colIndex, "painter", grid);
180
+ let painter = this._getColumnOption(colIndex, "painter", grid);
181
181
  if(painter && painter.getColoringType() === CellPainter.ColoringTypes.HEATMAP) {
182
182
  return /** @type{CellPainter} */painter;
183
183
  }
@@ -190,7 +190,7 @@ HeatMapPlugin.prototype.getColumnHeatMap = function (colIndex, grid) {
190
190
  * @param {Object=} opt_grid core grid object
191
191
  * @example
192
192
  * plugin.setColumnHeatMap(1, {
193
- * "field": "CF_LAST"
193
+ * "field": "CF_LAST",
194
194
  * "heatMap": {
195
195
  * "midPoint": 0, // optional number
196
196
  * "mode": "cell" // optional string (cell|text)
@@ -198,15 +198,15 @@ HeatMapPlugin.prototype.getColumnHeatMap = function (colIndex, grid) {
198
198
  * });
199
199
  */
200
200
  HeatMapPlugin.prototype.setColumnHeatMap = function (colIndex, columnDef, opt_grid) {
201
- var hmMode = "";
202
- var midPoint = 0;
203
- var field = columnDef ? /** @type{string} */(columnDef["field"]) : "";
204
- var hmOptions = field ? columnDef["heatMap"] || columnDef["heatmap"] : null;
201
+ let hmMode = "";
202
+ let midPoint = 0;
203
+ let field = columnDef ? /** @type{string} */(columnDef["field"]) : "";
204
+ let hmOptions = field ? columnDef["heatMap"] || columnDef["heatmap"] : null;
205
205
  if(hmOptions) {
206
- var userMode = hmOptions["mode"] || hmOptions["type"];
206
+ let userMode = hmOptions["mode"] || hmOptions["type"];
207
207
  hmMode = (typeof userMode == "string") ? userMode : "cell";
208
208
 
209
- var userMidPoint = /** @type{number} */(hmOptions["midPoint"]);
209
+ let userMidPoint = /** @type{number} */(hmOptions["midPoint"]);
210
210
  if(typeof userMidPoint != "number") {
211
211
  userMidPoint = +userMidPoint;
212
212
  }
@@ -215,7 +215,7 @@ HeatMapPlugin.prototype.setColumnHeatMap = function (colIndex, columnDef, opt_gr
215
215
  if(opt_grid) {
216
216
  this._setColumnHeatMap(opt_grid, colIndex, hmMode, midPoint, field);
217
217
  } else {
218
- for(var i = this._hosts.length; --i >= 0;) {
218
+ for(let i = this._hosts.length; --i >= 0;) {
219
219
  this._setColumnHeatMap(this._hosts[i], colIndex, hmMode, midPoint, field);
220
220
  }
221
221
  }
@@ -228,17 +228,16 @@ HeatMapPlugin.prototype.setColumnHeatMap = function (colIndex, columnDef, opt_gr
228
228
  * @param {string} field
229
229
  */
230
230
  HeatMapPlugin.prototype._setColumnHeatMap = function (grid, colIndex, hmMode, midPoint, field) {
231
- var dv = grid.getDataSource();
231
+ let dv = grid.getDataSource();
232
232
  if(!dv) {
233
- console.log("Heat map requires a data source");
234
233
  return;
235
234
  }
236
235
 
237
- var colData = this._newColumnData(colIndex);
238
- var painter = /** @type{CellPainter} */(colData["painter"]);
236
+ let colData = this._newColumnData(colIndex);
237
+ let painter = /** @type{CellPainter} */(colData["painter"]);
239
238
 
240
- var cond, sect, rowCount, r, cell;
241
- if(hmMode && field) { // Update or create new painter for heatmap
239
+ let cond, sect, rowCount, r, cell;
240
+ if(hmMode && field) { // Update or create new painter for heatMap
242
241
  if(painter) {
243
242
  // Clear currrent style, blinking and existing styles related to blinking
244
243
  sect = grid.getSection("content");
@@ -265,7 +264,7 @@ HeatMapPlugin.prototype._setColumnHeatMap = function (grid, colIndex, hmMode, mi
265
264
  cond = painter.addHeatmapWithTheme(field, midPoint, (hmMode === "text"));
266
265
  cond.refId = "_hm" + HeatMapPlugin._runningId++;
267
266
 
268
- var colStats = dv.enableColumnStats(field, true, cond.refId);
267
+ let colStats = dv.enableColumnStats(field, true, cond.refId);
269
268
  if(this._initializedGrid && this._realTimeGrid) {
270
269
  colStats.setColumnDataGetter(colDataGetter);
271
270
  }
@@ -276,7 +275,7 @@ HeatMapPlugin.prototype._setColumnHeatMap = function (grid, colIndex, hmMode, mi
276
275
  } else {
277
276
  if(painter) {
278
277
  if(this._clearPainter(colData, grid)) {
279
- // Clear existing heatmap styles
278
+ // Clear existing heatMap styles
280
279
  grid.enableColumnClass(colIndex, "heat-map", false);
281
280
  sect = grid.getSection("content");
282
281
  rowCount = sect.getRowCount();
@@ -306,7 +305,7 @@ HeatMapPlugin.prototype._setColumnHeatMap = function (grid, colIndex, hmMode, mi
306
305
  HeatMapPlugin.prototype.getColumnHeatMapOptions = function(colIndex, options) {
307
306
  if(!options) { options = {}; }
308
307
 
309
- var hm = this.getColumnHeatMap(colIndex);
308
+ let hm = this.getColumnHeatMap(colIndex);
310
309
  if(hm) {
311
310
  options["midPoint"] = hm["midPoint"];
312
311
  options["mode"] = hm["mode"];
@@ -321,11 +320,11 @@ HeatMapPlugin.prototype.getColumnHeatMapOptions = function(colIndex, options) {
321
320
  */
322
321
  HeatMapPlugin.prototype._clearPainter = function (colData, grid) {
323
322
  if(colData) {
324
- var painter = colData["painter"];
323
+ let painter = colData["painter"];
325
324
  if(painter && painter.getColoringType() === CellPainter.ColoringTypes.HEATMAP) {
326
- var cond = painter.getConditions()[0];
325
+ let cond = painter.getConditions()[0];
327
326
  if(cond) {
328
- var dv = grid.getDataSource();
327
+ let dv = grid.getDataSource();
329
328
  dv.enableColumnStats(cond.field, false, cond.refId);
330
329
  }
331
330
  if(painter.clearHeatMap()) {
@@ -338,7 +337,7 @@ HeatMapPlugin.prototype._clearPainter = function (colData, grid) {
338
337
  };
339
338
  /** @private */
340
339
  HeatMapPlugin.prototype._onThemeLoaded = function () {
341
- for(var i = this._hosts.length; --i >= 0;) {
340
+ for(let i = this._hosts.length; --i >= 0;) {
342
341
  this._hosts[i].requestRowRefresh();
343
342
  }
344
343
  };
@@ -350,21 +349,21 @@ HeatMapPlugin.prototype._onSectionBinding = function (e) {
350
349
  return;
351
350
  }
352
351
 
353
- var grid = e["sender"];
354
- var section = e["section"];
355
- var dataRows = /** @type{Array.<Object>} */(e["dataRows"]);
356
- var colCount = section.getColumnCount();
357
- var fromR = /** @type{number} */(e["fromRowIndex"]);
358
- var toR = /** @type{number} */(e["toRowIndex"]);
352
+ let grid = e["sender"];
353
+ let section = e["section"];
354
+ let dataRows = /** @type{Array.<Object>} */(e["dataRows"]);
355
+ let colCount = section.getColumnCount();
356
+ let fromR = /** @type{number} */(e["fromRowIndex"]);
357
+ let toR = /** @type{number} */(e["toRowIndex"]);
359
358
 
360
- for (var c = 0; c < colCount; ++c) {
361
- var painter = this.getColumnHeatMap(c, grid);
359
+ for (let c = 0; c < colCount; ++c) {
360
+ let painter = this.getColumnHeatMap(c, grid);
362
361
  if(painter) {
363
- var columnStats = painter.getColumnStats();
364
- var min = columnStats.getMin();
365
- var max = columnStats.getMax();
366
- for (var r = fromR; r < toR; ++r) {
367
- var cell = section.getCell(c, r, false);
362
+ let columnStats = painter.getColumnStats();
363
+ let min = columnStats.getMin();
364
+ let max = columnStats.getMax();
365
+ for (let r = fromR; r < toR; ++r) {
366
+ let cell = section.getCell(c, r, false);
368
367
  if(cell) {
369
368
  painter.renderHeatMap(cell, this._getRowData(dataRows[r]), min, max);
370
369
  }
@@ -379,9 +378,9 @@ HeatMapPlugin.prototype._onColumnAdded = function(e) {
379
378
  if(e.context) {
380
379
  this.setColumnHeatMap(e.colIndex, e.context, e.sender);
381
380
  if(this._realTimeGrid) {
382
- var painter = this.getColumnHeatMap(e.colIndex);
381
+ let painter = this.getColumnHeatMap(e.colIndex);
383
382
  if(painter) {
384
- var colStats = painter.getColumnStats();
383
+ let colStats = painter.getColumnStats();
385
384
  if(colStats) {
386
385
  colStats.setColumnDataGetter(colDataGetter);
387
386
  }
@@ -145,8 +145,6 @@ declare class RowFilteringPlugin extends GridPlugin {
145
145
 
146
146
  declare function colSettings(colIndex: number, exp: RowFilteringPlugin.Expression|null, ctx?: (any|string)|null): boolean;
147
147
 
148
- declare function selCount(sortOrder: string): void;
149
-
150
148
  declare function crf(enabled?: boolean|null): void;
151
149
 
152
150
  export default RowFilteringPlugin;
@@ -231,6 +231,9 @@ let RowFilteringPlugin = function () {
231
231
  t.refresh = t.refresh.bind(t);
232
232
  t._requestFilterRefresh = t._requestFilterRefresh.bind(t);
233
233
 
234
+ t._onDialogSortChanged = t._onDialogSortChanged.bind(t);
235
+ t._onDialogFilterChanged = t._onDialogFilterChanged.bind(t);
236
+ t._onDialogClosed = t._onDialogClosed.bind(t);
234
237
 
235
238
  t._globalFilters = [];
236
239
  t._globalContexts = [];
@@ -1779,11 +1782,11 @@ RowFilteringPlugin.prototype.openDialog = function(colIndex, runtimeDialogOption
1779
1782
  if(!stp) {
1780
1783
  this._filterDialog.hideSortUI();
1781
1784
  } else {
1782
- this._filterDialog.addEventListener("sortChanged", this._onDialogSortChanged.bind(this));
1785
+ this._filterDialog.addEventListener("sortChanged", this._onDialogSortChanged);
1783
1786
  }
1784
- this._filterDialog.addEventListener("filterChanged", this._onDialogFilterChanged.bind(this));
1785
- this._filterDialog.addEventListener("confirm", this._onDialogClosed.bind(this));
1786
- this._filterDialog.addEventListener("cancel", this._onDialogClosed.bind(this));
1787
+ this._filterDialog.addEventListener("filterChanged", this._onDialogFilterChanged);
1788
+ this._filterDialog.addEventListener("confirm", this._onDialogClosed);
1789
+ this._filterDialog.addEventListener("cancel", this._onDialogClosed);
1787
1790
  }
1788
1791
  }
1789
1792
 
@@ -2185,44 +2188,34 @@ RowFilteringPlugin.prototype._onDialogClosed = function(e) {
2185
2188
  this._hosts[0].focus();
2186
2189
  }
2187
2190
  };
2188
- /** @public
2189
- * @ignore
2190
- * @param {*} val
2191
- */
2192
- RowFilteringPlugin.prototype.mockDialogFilterChange = function(val) {
2193
- if(this._filterDialog) {
2194
- let arg = {
2195
- detail: {}
2196
- };
2197
- if(Array.isArray(val)) {
2198
- if(Array.isArray(val[0])) {
2199
- arg.detail.conditions = val;
2200
- } else {
2201
- arg.detail.value = val;
2202
- }
2203
- } else {
2204
- arg.detail.value = val;
2205
- }
2206
- this._onDialogFilterChanged(arg);
2207
- }
2208
- };
2191
+
2209
2192
  /** @private
2210
2193
  * @param {Object} e
2211
2194
  */
2212
2195
  RowFilteringPlugin.prototype._onDialogFilterChanged = function(e) {
2213
2196
  let colIndex = this._filterDialog._colIndex;
2214
2197
  let cfo = this._getColumnFilterOption(colIndex);
2215
- let uniqueValues = cfo.uniqueValues; // Unique values have to be stored before the removal of the filter
2216
- let rawDataAccessor = cfo._rawDataAccessor;
2217
- let formattedDataAccessor = cfo._formattedDataAccessor;
2198
+ let uniqueValues = null;
2199
+ let rawDataAccessor = null;
2200
+ let formattedDataAccessor = null;
2218
2201
  let ctx = null;
2219
- if(rawDataAccessor || formattedDataAccessor) {
2220
- ctx = {
2221
- "rawDataAccessor": rawDataAccessor || null,
2222
- "formattedDataAccessor": formattedDataAccessor || null
2223
- };
2202
+
2203
+ if(cfo) {
2204
+ // TODO: Move uniqueValues out from column filter option object
2205
+ uniqueValues = cfo.uniqueValues; // Unique values have to be stored before the removal of the filter
2206
+ rawDataAccessor = cfo._rawDataAccessor;
2207
+ formattedDataAccessor = cfo._formattedDataAccessor;
2208
+
2209
+ if(rawDataAccessor || formattedDataAccessor) {
2210
+ ctx = {
2211
+ "rawDataAccessor": rawDataAccessor || null,
2212
+ "formattedDataAccessor": formattedDataAccessor || null
2213
+ };
2214
+ }
2215
+ this.removeColumnFilters(colIndex);
2216
+ } else {
2217
+ uniqueValues = e.uniqueValues || {};
2224
2218
  }
2225
- this.removeColumnFilters(colIndex);
2226
2219
 
2227
2220
  // Check inputs from advanced filter UIs
2228
2221
  let conditions = e.detail.conditions;
@@ -2291,7 +2284,13 @@ RowFilteringPlugin.prototype._onDialogFilterChanged = function(e) {
2291
2284
  let jLen = rawVals.length;
2292
2285
  for(let j = 0; j < jLen; ++j) {
2293
2286
  let rawVal = rawVals[j];
2294
- itemMap[rawVal] = (rawVal instanceof Date) ? rawVal.getTime() : rawVal;
2287
+ if(rawVal) {
2288
+ itemMap[rawVal] = (rawVal instanceof Date) ? rawVal.getTime() : rawVal;
2289
+ } else if(rawVal === 0) {
2290
+ itemMap["0"] = true;
2291
+ } else if(rawVal === false) {
2292
+ itemMap["false"] = true;
2293
+ }
2295
2294
  }
2296
2295
  }
2297
2296
  if(atLeastOne) {
@@ -2304,19 +2303,6 @@ RowFilteringPlugin.prototype._onDialogFilterChanged = function(e) {
2304
2303
  });
2305
2304
  };
2306
2305
 
2307
- /** @public
2308
- * @ignore
2309
- * @param {string} sortOrder
2310
- */
2311
- RowFilteringPlugin.prototype.mockDialogSortChange = function(sortOrder) {
2312
- if(this._filterDialog) {
2313
- let arg = {
2314
- detail: {}
2315
- };
2316
- arg.detail.value = sortOrder;
2317
- this._onDialogSortChanged(arg);
2318
- }
2319
- };
2320
2306
  /** @private
2321
2307
  * @param {Object} e
2322
2308
  */
@@ -2329,7 +2315,7 @@ RowFilteringPlugin.prototype._onDialogSortChanged = function(e) {
2329
2315
  if(stp.getSortOrder(colIndex) === eDetail) {
2330
2316
  stp.sortColumn(colIndex, "n", { "isUserAction": true });
2331
2317
  } else {
2332
- stp.sortColumn(colIndex, eDetail, { "isUserAction": true } );
2318
+ stp.sortColumn(colIndex, eDetail, { "isUserAction": true });
2333
2319
  }
2334
2320
  this._dispatch("dialogCommitted", {
2335
2321
  "sortOrder": e.detail.value,
@@ -2430,6 +2416,18 @@ RowFilteringPlugin.prototype.hideColumnFilterIcon = function(colIndex, hidden) {
2430
2416
  }
2431
2417
  };
2432
2418
 
2419
+ /** @public
2420
+ * @ignore
2421
+ * @return {!Object}
2422
+ */
2423
+ RowFilteringPlugin.prototype._getEventHandlers = function() {
2424
+ return {
2425
+ "dialogSortChanged": this._onDialogSortChanged,
2426
+ "dialogFilterChanged": this._onDialogFilterChanged,
2427
+ "dialogClosed": this._onDialogClosed
2428
+ };
2429
+ };
2430
+
2433
2431
 
2434
2432
 
2435
2433
  export default RowFilteringPlugin;
@@ -8,7 +8,6 @@ declare namespace TextFormattingPlugin {
8
8
 
9
9
  type FormatOptions = {
10
10
  formatType?: string|null,
11
- type?: string|null,
12
11
  field?: string|null,
13
12
  decimalPlaces?: (number|boolean)|null,
14
13
  precisionEnabled?: boolean|null,
@@ -17,7 +16,6 @@ declare namespace TextFormattingPlugin {
17
16
  percentSign?: boolean|null,
18
17
  scalingUnit?: string|null,
19
18
  multiplyBy100?: boolean|null,
20
- mutiplyBy100?: boolean|null,
21
19
  dateTimeFormat?: string|null,
22
20
  useUTCTime?: boolean|null,
23
21
  autoTextFormatting?: boolean|null,