@refinitiv-ui/efx-grid 6.0.132 → 6.0.134

Sign up to get free protection for your applications and to get access to all the features.
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,