@progress/kendo-spreadsheet-common 1.2.6-develop.2 → 1.2.6

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/dist/index-esm.js CHANGED
@@ -21,7 +21,7 @@ function displaySheet(sheet) {
21
21
  if (/^[a-z_][a-z0-9_]*$/i.test(sheet)) {
22
22
  return sheet;
23
23
  }
24
- return "'" + sheet.replace(/\x27/g, "\\'") + "'";
24
+ return "'" + sheet.replace(/\\/g, "\\\\").replace(/\x27/g, "\\'") + "'";
25
25
  }
26
26
  function displayRef(sheet, row, col, rel) {
27
27
  let aa = "";
@@ -5721,7 +5721,7 @@ class FormulaContext {
5721
5721
  if (/^[a-z_][a-z0-9_]*$/i.test(val)) {
5722
5722
  return val;
5723
5723
  }
5724
- return "'" + val.replace(/\x27/g, "\\'") + "'";
5724
+ return "'" + val.replace(/\\/g, "\\\\").replace(/\x27/g, "\\'") + "'";
5725
5725
  }
5726
5726
  }
5727
5727
 
@@ -7837,8 +7837,10 @@ const propertyBagSpec = [
7837
7837
  { property: ValueProperty, name: "value", value: null, sortable: true, serializable: true, depends: "format" },
7838
7838
  { property: Property, name: "formula", value: null, sortable: true, serializable: true },
7839
7839
  { property: Property, name: "background", value: null, sortable: true, serializable: true },
7840
- { property: JsonProperty, name: "vBorders", value: null, sortable: false, serializable: false },
7841
- { property: JsonProperty, name: "hBorders", value: null, sortable: false, serializable: false },
7840
+ { property: JsonProperty, name: "borderLeft", value: null, sortable: false, serializable: true },
7841
+ { property: JsonProperty, name: "borderRight", value: null, sortable: false, serializable: true },
7842
+ { property: JsonProperty, name: "borderTop", value: null, sortable: false, serializable: true },
7843
+ { property: JsonProperty, name: "borderBottom", value: null, sortable: false, serializable: true },
7842
7844
  { property: JsonProperty, name: "dBorders", value: null, sortable: false, serializable: true },
7843
7845
  { property: Property, name: "color", value: null, sortable: true, serializable: true },
7844
7846
  { property: Property, name: "fontFamily", value: null, sortable: true, serializable: true },
@@ -7937,44 +7939,41 @@ class PropertyBag {
7937
7939
  if (index === undefined) {
7938
7940
  return this.lists[name];
7939
7941
  }
7940
-
7941
- switch (name) {
7942
- case "borderRight":
7943
- index += this.rowCount;
7944
- /* falls through */
7945
- case "borderLeft":
7946
- name = "vBorders";
7947
- break;
7948
-
7949
- case "borderBottom":
7950
- index++;
7951
- /* falls through */
7952
- case "borderTop":
7953
- name = "hBorders";
7954
- break;
7955
- }
7956
7942
  return index > this.cellCount ? null : this.properties[name].get(index);
7957
7943
  }
7958
7944
 
7959
7945
  set(name, start, end, value) {
7946
+ this._set(name, start, end, value);
7960
7947
  switch (name) {
7961
- case "borderRight":
7962
- start += this.rowCount;
7963
- end += this.rowCount;
7964
- /* falls through */
7965
- case "borderLeft":
7966
- name = "vBorders";
7948
+ case "borderLeft":
7949
+ this._set("borderRight", start - this.rowCount, end - this.rowCount, value);
7967
7950
  break;
7968
-
7969
- case "borderBottom":
7970
- start++;
7971
- end++;
7972
- /* falls through */
7973
- case "borderTop":
7974
- name = "hBorders";
7951
+ case "borderRight":
7952
+ this._set("borderLeft", start + this.rowCount, end + this.rowCount, value);
7953
+ break;
7954
+ case "borderTop":
7955
+ intervals(start, end, this.rowCount).forEach((a) => {
7956
+ var start = a[0] - 1, end = a[1] - 1;
7957
+ if ((start + 1) % this.rowCount == 0) {
7958
+ start++;
7959
+ }
7960
+ this._set("borderBottom", start, end, value);
7961
+ });
7962
+ break;
7963
+ case "borderBottom":
7964
+ intervals(start, end, this.rowCount).forEach((a) => {
7965
+ var start = a[0] + 1, end = a[1] + 1;
7966
+ if (end % this.rowCount == 0) {
7967
+ end--;
7968
+ }
7969
+ this._set("borderTop", start, end, value);
7970
+ });
7975
7971
  break;
7976
7972
  }
7977
- if (start <= end && end <= this.cellCount) {
7973
+ }
7974
+
7975
+ _set(name, start, end, value) {
7976
+ if (start >= 0 && start <= end && end <= this.cellCount) {
7978
7977
  this.properties[name].set(start, end, value);
7979
7978
  }
7980
7979
  }
@@ -7982,19 +7981,12 @@ class PropertyBag {
7982
7981
  fromJSON(index, value) {
7983
7982
  for (let si = 0; si < this.specs.length; si++) {
7984
7983
  let spec = this.specs[si];
7985
-
7986
7984
  if (spec.serializable) {
7987
7985
  if (value[spec.name] !== undefined) {
7988
7986
  this.set(spec.name, index, index, value[spec.name], false);
7989
7987
  }
7990
7988
  }
7991
7989
  }
7992
-
7993
- [ "borderLeft", "borderRight", "borderTop", "borderBottom" ].forEach(function(b) {
7994
- if (value[b] !== undefined) {
7995
- this.set(b, index, index, value[b]);
7996
- }
7997
- }, this);
7998
7990
  }
7999
7991
 
8000
7992
  copy(sourceStart, sourceEnd, targetStart) {
@@ -8033,18 +8025,8 @@ class PropertyBag {
8033
8025
 
8034
8026
  forEach(start, end, callback) {
8035
8027
  let iterators = this.iterators(start, end);
8036
- let hBorders = this.iterator("hBorders", start, end + 1);
8037
- let leftBorders = this.iterator("vBorders", start, end);
8038
- let rightBorders = this.iterator("vBorders", start + this.rowCount, end + this.rowCount);
8039
8028
  let values, index;
8040
8029
 
8041
- function addBorder(name, iterator, index) {
8042
- let val = iterator.at(index);
8043
- if (val !== iterator.value) {
8044
- values[name] = val;
8045
- }
8046
- }
8047
-
8048
8030
  for (index = start; index <= end; index++) {
8049
8031
  values = {};
8050
8032
 
@@ -8057,13 +8039,6 @@ class PropertyBag {
8057
8039
  }
8058
8040
  }
8059
8041
 
8060
- addBorder("borderLeft", leftBorders, index);
8061
- addBorder("borderRight", rightBorders, index + this.rowCount);
8062
- addBorder("borderTop", hBorders, index);
8063
- if ((index + 1) % this.rowCount) {
8064
- addBorder("borderBottom", hBorders, index + 1);
8065
- }
8066
-
8067
8042
  callback(values);
8068
8043
  }
8069
8044
  }
@@ -8074,6 +8049,15 @@ class PropertyBag {
8074
8049
  }
8075
8050
  }
8076
8051
  }
8052
+ function intervals(start, end, rows) {
8053
+ var a = [];
8054
+ while (start <= end) {
8055
+ var lastrow = Math.min(end, rows * (1 + Math.floor(start / rows)) - 1);
8056
+ a.push([ start, lastrow ]);
8057
+ start = lastrow + 1;
8058
+ }
8059
+ return a;
8060
+ }
8077
8061
  function cloneFormulaValue(x) {
8078
8062
  x = x.clone();
8079
8063
  x.value = x.value.deepClone(); // x.value is Formula or Validation
@@ -9331,7 +9315,7 @@ let Range$1 = class Range {
9331
9315
  if (ref instanceof RangeRef && ref.width() > 1) {
9332
9316
  ref = ref.clone();
9333
9317
  ref.topLeft.col++;
9334
- this._sheet.range(ref)._set("vBorders", value);
9318
+ this._sheet.range(ref).borderLeft(value);
9335
9319
  }
9336
9320
  }, this);
9337
9321
  return this;
@@ -9342,7 +9326,7 @@ let Range$1 = class Range {
9342
9326
  if (ref instanceof RangeRef && ref.height() > 1) {
9343
9327
  ref = ref.clone();
9344
9328
  ref.topLeft.row++;
9345
- this._sheet.range(ref)._set("hBorders", value);
9329
+ this._sheet.range(ref).borderTop(value);
9346
9330
  }
9347
9331
  }, this);
9348
9332
  return this;
@@ -12675,7 +12659,7 @@ function sameWeek(a, b) {
12675
12659
  }
12676
12660
 
12677
12661
  /* eslint-disable max-params */
12678
-
12662
+
12679
12663
 
12680
12664
  // This is a “dynamic variable” (see Greenspun's 10th rule). It's
12681
12665
  // bound to an array via sheet._saveModifiedFormulas (which see)
@@ -12930,11 +12914,32 @@ class Sheet extends Observable {
12930
12914
  this._properties._resize(newRows, newCols);
12931
12915
  this._sheetRef = this._grid.normalize(SHEETREF);
12932
12916
  if (newRows > oldRows) {
12933
- this.range(oldRows, 0, newRows - oldRows, newCols).clear();
12917
+ this.range(oldRows, 0, newRows - oldRows, newCols)
12918
+ .clear({ clearAll: true, keepBorders: true })
12919
+ .borderLeft(null)
12920
+ .borderBottom(null)
12921
+ .borderRight(null);
12922
+ // The apparent nonsense with the borders is necessary so that we correctly sync the
12923
+ // borderTop of the first newly added row with the borderBottom of the row above
12924
+ // it. Borders are a PITA.
12925
+ for (let i = 0; i < newCols; ++i) {
12926
+ let r = this.range(oldRows - 1, i, 1, 1);
12927
+ r.borderBottom(r.borderBottom());
12928
+ }
12934
12929
  this._filteredRows.value(oldRows, newRows - 1, false);
12935
12930
  }
12936
12931
  if (newCols > oldCols) {
12937
- this.range(0, oldCols, newRows, newCols - oldCols).clear();
12932
+ this.range(0, oldCols, newRows, newCols - oldCols)
12933
+ .clear({ clearAll: true, keepBorders: true })
12934
+ .borderTop(null)
12935
+ .borderRight(null)
12936
+ .borderBottom(null);
12937
+ // See comment above; this is about syncing borderLeft of the newly added column
12938
+ // with the borderRight of the last existing column.
12939
+ for (let i = 0; i < newRows; ++i) {
12940
+ let r = this.range(i, oldCols - 1, 1, 1);
12941
+ r.borderRight(r.borderRight());
12942
+ }
12938
12943
  }
12939
12944
  this.triggerChange({ layout: true });
12940
12945
  }
@@ -15620,16 +15625,6 @@ function Borders() {
15620
15625
  let horiz = new Container();
15621
15626
  let vert = new Container();
15622
15627
  function add(cell, sheet) {
15623
- if (sheet) {
15624
- // reset borders here; the propertybag doesn't keep track of merged cells :-/ this
15625
- // is ugly, but the inner details of data storage have leaked everywhere anyway.
15626
- let pb = sheet._properties;
15627
- let grid = sheet._grid;
15628
- cell.borderLeft = pb.get("vBorders", grid.index(cell.row, cell.col));
15629
- cell.borderRight = pb.get("vBorders", grid.index(cell.row, cell.col + cell.colspan));
15630
- cell.borderTop = pb.get("hBorders", grid.index(cell.row, cell.col));
15631
- cell.borderBottom = pb.get("hBorders", grid.index(cell.row + cell.rowspan, cell.col));
15632
- }
15633
15628
  if (cell.borderLeft) {
15634
15629
  addVert(cell.row, cell.col, cell.borderLeft,
15635
15630
  cell.left, cell.top, cell.bottom);
@@ -15649,7 +15644,7 @@ function Borders() {
15649
15644
  }
15650
15645
 
15651
15646
  function isUnwantedProp(propName){
15652
- return propName === '__proto__' || propName === 'constructor' || propName === 'prototype'
15647
+ return propName === '__proto__' || propName === 'constructor' || propName === 'prototype';
15653
15648
  }
15654
15649
 
15655
15650
  function addVert(row, col, border, x, top, bottom) {
@@ -21027,7 +21022,7 @@ async function readWorkbook(zip, workbook, progress) {
21027
21022
  let name = attrs.name;
21028
21023
  if (name !== "_xlnm._FilterDatabase") {
21029
21024
  if (sheet) {
21030
- name = "'" + sheet.replace(/\'/g, "\\'") + "'!" + name;
21025
+ name = "'" + sheet.replace(/\\/g, "\\\\").replace(/\'/g, "\\'") + "'!" + name;
21031
21026
  }
21032
21027
  withErrorLog(sheet, null, function() {
21033
21028
  workbook.defineName(name, text, bool(attrs.hidden));
package/dist/index.js CHANGED
@@ -22,7 +22,7 @@
22
22
  if (/^[a-z_][a-z0-9_]*$/i.test(sheet)) {
23
23
  return sheet;
24
24
  }
25
- return "'" + sheet.replace(/\x27/g, "\\'") + "'";
25
+ return "'" + sheet.replace(/\\/g, "\\\\").replace(/\x27/g, "\\'") + "'";
26
26
  }
27
27
  function displayRef(sheet, row, col, rel) {
28
28
  let aa = "";
@@ -5722,7 +5722,7 @@
5722
5722
  if (/^[a-z_][a-z0-9_]*$/i.test(val)) {
5723
5723
  return val;
5724
5724
  }
5725
- return "'" + val.replace(/\x27/g, "\\'") + "'";
5725
+ return "'" + val.replace(/\\/g, "\\\\").replace(/\x27/g, "\\'") + "'";
5726
5726
  }
5727
5727
  }
5728
5728
 
@@ -7838,8 +7838,10 @@
7838
7838
  { property: ValueProperty, name: "value", value: null, sortable: true, serializable: true, depends: "format" },
7839
7839
  { property: Property, name: "formula", value: null, sortable: true, serializable: true },
7840
7840
  { property: Property, name: "background", value: null, sortable: true, serializable: true },
7841
- { property: JsonProperty, name: "vBorders", value: null, sortable: false, serializable: false },
7842
- { property: JsonProperty, name: "hBorders", value: null, sortable: false, serializable: false },
7841
+ { property: JsonProperty, name: "borderLeft", value: null, sortable: false, serializable: true },
7842
+ { property: JsonProperty, name: "borderRight", value: null, sortable: false, serializable: true },
7843
+ { property: JsonProperty, name: "borderTop", value: null, sortable: false, serializable: true },
7844
+ { property: JsonProperty, name: "borderBottom", value: null, sortable: false, serializable: true },
7843
7845
  { property: JsonProperty, name: "dBorders", value: null, sortable: false, serializable: true },
7844
7846
  { property: Property, name: "color", value: null, sortable: true, serializable: true },
7845
7847
  { property: Property, name: "fontFamily", value: null, sortable: true, serializable: true },
@@ -7938,44 +7940,41 @@
7938
7940
  if (index === undefined) {
7939
7941
  return this.lists[name];
7940
7942
  }
7941
-
7942
- switch (name) {
7943
- case "borderRight":
7944
- index += this.rowCount;
7945
- /* falls through */
7946
- case "borderLeft":
7947
- name = "vBorders";
7948
- break;
7949
-
7950
- case "borderBottom":
7951
- index++;
7952
- /* falls through */
7953
- case "borderTop":
7954
- name = "hBorders";
7955
- break;
7956
- }
7957
7943
  return index > this.cellCount ? null : this.properties[name].get(index);
7958
7944
  }
7959
7945
 
7960
7946
  set(name, start, end, value) {
7947
+ this._set(name, start, end, value);
7961
7948
  switch (name) {
7962
- case "borderRight":
7963
- start += this.rowCount;
7964
- end += this.rowCount;
7965
- /* falls through */
7966
- case "borderLeft":
7967
- name = "vBorders";
7949
+ case "borderLeft":
7950
+ this._set("borderRight", start - this.rowCount, end - this.rowCount, value);
7968
7951
  break;
7969
-
7970
- case "borderBottom":
7971
- start++;
7972
- end++;
7973
- /* falls through */
7974
- case "borderTop":
7975
- name = "hBorders";
7952
+ case "borderRight":
7953
+ this._set("borderLeft", start + this.rowCount, end + this.rowCount, value);
7954
+ break;
7955
+ case "borderTop":
7956
+ intervals(start, end, this.rowCount).forEach((a) => {
7957
+ var start = a[0] - 1, end = a[1] - 1;
7958
+ if ((start + 1) % this.rowCount == 0) {
7959
+ start++;
7960
+ }
7961
+ this._set("borderBottom", start, end, value);
7962
+ });
7963
+ break;
7964
+ case "borderBottom":
7965
+ intervals(start, end, this.rowCount).forEach((a) => {
7966
+ var start = a[0] + 1, end = a[1] + 1;
7967
+ if (end % this.rowCount == 0) {
7968
+ end--;
7969
+ }
7970
+ this._set("borderTop", start, end, value);
7971
+ });
7976
7972
  break;
7977
7973
  }
7978
- if (start <= end && end <= this.cellCount) {
7974
+ }
7975
+
7976
+ _set(name, start, end, value) {
7977
+ if (start >= 0 && start <= end && end <= this.cellCount) {
7979
7978
  this.properties[name].set(start, end, value);
7980
7979
  }
7981
7980
  }
@@ -7983,19 +7982,12 @@
7983
7982
  fromJSON(index, value) {
7984
7983
  for (let si = 0; si < this.specs.length; si++) {
7985
7984
  let spec = this.specs[si];
7986
-
7987
7985
  if (spec.serializable) {
7988
7986
  if (value[spec.name] !== undefined) {
7989
7987
  this.set(spec.name, index, index, value[spec.name], false);
7990
7988
  }
7991
7989
  }
7992
7990
  }
7993
-
7994
- [ "borderLeft", "borderRight", "borderTop", "borderBottom" ].forEach(function(b) {
7995
- if (value[b] !== undefined) {
7996
- this.set(b, index, index, value[b]);
7997
- }
7998
- }, this);
7999
7991
  }
8000
7992
 
8001
7993
  copy(sourceStart, sourceEnd, targetStart) {
@@ -8034,18 +8026,8 @@
8034
8026
 
8035
8027
  forEach(start, end, callback) {
8036
8028
  let iterators = this.iterators(start, end);
8037
- let hBorders = this.iterator("hBorders", start, end + 1);
8038
- let leftBorders = this.iterator("vBorders", start, end);
8039
- let rightBorders = this.iterator("vBorders", start + this.rowCount, end + this.rowCount);
8040
8029
  let values, index;
8041
8030
 
8042
- function addBorder(name, iterator, index) {
8043
- let val = iterator.at(index);
8044
- if (val !== iterator.value) {
8045
- values[name] = val;
8046
- }
8047
- }
8048
-
8049
8031
  for (index = start; index <= end; index++) {
8050
8032
  values = {};
8051
8033
 
@@ -8058,13 +8040,6 @@
8058
8040
  }
8059
8041
  }
8060
8042
 
8061
- addBorder("borderLeft", leftBorders, index);
8062
- addBorder("borderRight", rightBorders, index + this.rowCount);
8063
- addBorder("borderTop", hBorders, index);
8064
- if ((index + 1) % this.rowCount) {
8065
- addBorder("borderBottom", hBorders, index + 1);
8066
- }
8067
-
8068
8043
  callback(values);
8069
8044
  }
8070
8045
  }
@@ -8075,6 +8050,15 @@
8075
8050
  }
8076
8051
  }
8077
8052
  }
8053
+ function intervals(start, end, rows) {
8054
+ var a = [];
8055
+ while (start <= end) {
8056
+ var lastrow = Math.min(end, rows * (1 + Math.floor(start / rows)) - 1);
8057
+ a.push([ start, lastrow ]);
8058
+ start = lastrow + 1;
8059
+ }
8060
+ return a;
8061
+ }
8078
8062
  function cloneFormulaValue(x) {
8079
8063
  x = x.clone();
8080
8064
  x.value = x.value.deepClone(); // x.value is Formula or Validation
@@ -9332,7 +9316,7 @@
9332
9316
  if (ref instanceof RangeRef && ref.width() > 1) {
9333
9317
  ref = ref.clone();
9334
9318
  ref.topLeft.col++;
9335
- this._sheet.range(ref)._set("vBorders", value);
9319
+ this._sheet.range(ref).borderLeft(value);
9336
9320
  }
9337
9321
  }, this);
9338
9322
  return this;
@@ -9343,7 +9327,7 @@
9343
9327
  if (ref instanceof RangeRef && ref.height() > 1) {
9344
9328
  ref = ref.clone();
9345
9329
  ref.topLeft.row++;
9346
- this._sheet.range(ref)._set("hBorders", value);
9330
+ this._sheet.range(ref).borderTop(value);
9347
9331
  }
9348
9332
  }, this);
9349
9333
  return this;
@@ -12676,7 +12660,7 @@
12676
12660
  }
12677
12661
 
12678
12662
  /* eslint-disable max-params */
12679
-
12663
+
12680
12664
 
12681
12665
  // This is a “dynamic variable” (see Greenspun's 10th rule). It's
12682
12666
  // bound to an array via sheet._saveModifiedFormulas (which see)
@@ -12931,11 +12915,32 @@
12931
12915
  this._properties._resize(newRows, newCols);
12932
12916
  this._sheetRef = this._grid.normalize(SHEETREF);
12933
12917
  if (newRows > oldRows) {
12934
- this.range(oldRows, 0, newRows - oldRows, newCols).clear();
12918
+ this.range(oldRows, 0, newRows - oldRows, newCols)
12919
+ .clear({ clearAll: true, keepBorders: true })
12920
+ .borderLeft(null)
12921
+ .borderBottom(null)
12922
+ .borderRight(null);
12923
+ // The apparent nonsense with the borders is necessary so that we correctly sync the
12924
+ // borderTop of the first newly added row with the borderBottom of the row above
12925
+ // it. Borders are a PITA.
12926
+ for (let i = 0; i < newCols; ++i) {
12927
+ let r = this.range(oldRows - 1, i, 1, 1);
12928
+ r.borderBottom(r.borderBottom());
12929
+ }
12935
12930
  this._filteredRows.value(oldRows, newRows - 1, false);
12936
12931
  }
12937
12932
  if (newCols > oldCols) {
12938
- this.range(0, oldCols, newRows, newCols - oldCols).clear();
12933
+ this.range(0, oldCols, newRows, newCols - oldCols)
12934
+ .clear({ clearAll: true, keepBorders: true })
12935
+ .borderTop(null)
12936
+ .borderRight(null)
12937
+ .borderBottom(null);
12938
+ // See comment above; this is about syncing borderLeft of the newly added column
12939
+ // with the borderRight of the last existing column.
12940
+ for (let i = 0; i < newRows; ++i) {
12941
+ let r = this.range(i, oldCols - 1, 1, 1);
12942
+ r.borderRight(r.borderRight());
12943
+ }
12939
12944
  }
12940
12945
  this.triggerChange({ layout: true });
12941
12946
  }
@@ -15621,16 +15626,6 @@
15621
15626
  let horiz = new Container();
15622
15627
  let vert = new Container();
15623
15628
  function add(cell, sheet) {
15624
- if (sheet) {
15625
- // reset borders here; the propertybag doesn't keep track of merged cells :-/ this
15626
- // is ugly, but the inner details of data storage have leaked everywhere anyway.
15627
- let pb = sheet._properties;
15628
- let grid = sheet._grid;
15629
- cell.borderLeft = pb.get("vBorders", grid.index(cell.row, cell.col));
15630
- cell.borderRight = pb.get("vBorders", grid.index(cell.row, cell.col + cell.colspan));
15631
- cell.borderTop = pb.get("hBorders", grid.index(cell.row, cell.col));
15632
- cell.borderBottom = pb.get("hBorders", grid.index(cell.row + cell.rowspan, cell.col));
15633
- }
15634
15629
  if (cell.borderLeft) {
15635
15630
  addVert(cell.row, cell.col, cell.borderLeft,
15636
15631
  cell.left, cell.top, cell.bottom);
@@ -15650,7 +15645,7 @@
15650
15645
  }
15651
15646
 
15652
15647
  function isUnwantedProp(propName){
15653
- return propName === '__proto__' || propName === 'constructor' || propName === 'prototype'
15648
+ return propName === '__proto__' || propName === 'constructor' || propName === 'prototype';
15654
15649
  }
15655
15650
 
15656
15651
  function addVert(row, col, border, x, top, bottom) {
@@ -21028,7 +21023,7 @@
21028
21023
  let name = attrs.name;
21029
21024
  if (name !== "_xlnm._FilterDatabase") {
21030
21025
  if (sheet) {
21031
- name = "'" + sheet.replace(/\'/g, "\\'") + "'!" + name;
21026
+ name = "'" + sheet.replace(/\\/g, "\\\\").replace(/\'/g, "\\'") + "'!" + name;
21032
21027
  }
21033
21028
  withErrorLog(sheet, null, function() {
21034
21029
  workbook.defineName(name, text, bool(attrs.hidden));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-spreadsheet-common",
3
3
  "description": "Kendo UI platform-independent Spreadsheet library",
4
- "version": "1.2.6-develop.2",
4
+ "version": "1.2.6",
5
5
  "keywords": [
6
6
  "Kendo UI"
7
7
  ],