@progress/kendo-spreadsheet-common 1.2.6-develop.1 → 1.2.6-develop.3

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 (3) hide show
  1. package/dist/index-esm.js +119 -340
  2. package/dist/index.js +119 -340
  3. package/package.json +6 -4
package/dist/index.js CHANGED
@@ -4,14 +4,12 @@
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.KendoSpreadsheetCommon = {}, global.KendoDrawing, global.KendoDateMath, global.KendoCommon, global.JSZip));
5
5
  })(this, (function (exports, kendoDrawing, kendoDateMath, kendoCommon, JSZip) { 'use strict';
6
6
 
7
- /* eslint-disable camelcase */
8
- /* eslint-disable no-nested-ternary */
9
7
  /* eslint-disable max-params */
10
8
  /* eslint-disable no-unused-vars */
11
- /* eslint-disable no-else-return */
12
- /* eslint-disable no-param-reassign */
13
- /* eslint-disable eqeqeq */
14
- /* eslint-disable no-bitwise */
9
+
10
+
11
+
12
+
15
13
 
16
14
  // WARNING
17
15
  // == into === to make JSHint happy will break functionality.
@@ -792,7 +790,7 @@
792
790
  return NULLREF;
793
791
  }
794
792
  simplify() {
795
- // eslint-disable-next-line max-len
793
+
796
794
  let u = new UnionRef(this.refs.reduce(function(a, ref) {
797
795
  ref = ref.simplify();
798
796
  if (ref !== NULLREF) {
@@ -945,7 +943,6 @@
945
943
  return "#SHEET";
946
944
  };
947
945
 
948
- /* eslint-disable key-spacing */
949
946
  const messages = {};
950
947
  messages.view = {
951
948
  nameBox: "Name Box",
@@ -1003,6 +1000,7 @@
1003
1000
  fileName: "Workbook.xlsx",
1004
1001
  forceProxy: false,
1005
1002
  proxyURL: "",
1003
+ applyProtection: false,
1006
1004
  },
1007
1005
  messages: messages,
1008
1006
  pdf: {
@@ -1079,8 +1077,6 @@
1079
1077
  R: 82
1080
1078
  };
1081
1079
 
1082
- /* eslint-disable no-nested-ternary */
1083
- /* eslint-disable no-param-reassign */
1084
1080
  /* eslint-disable no-prototype-builtins */
1085
1081
 
1086
1082
  const RX_UNICODE_LETTER = new RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");
@@ -1344,7 +1340,7 @@
1344
1340
  const _activeElement$1 = function() {
1345
1341
  try {
1346
1342
  return document.activeElement;
1347
- } catch (e) {
1343
+ } catch {
1348
1344
  return document.documentElement.activeElement;
1349
1345
  }
1350
1346
  };
@@ -1409,9 +1405,7 @@
1409
1405
  }
1410
1406
 
1411
1407
  /* eslint-disable max-params */
1412
- /* eslint-disable complexity */
1413
- /* eslint-disable no-unused-vars */
1414
-
1408
+
1415
1409
 
1416
1410
  let calc = {
1417
1411
  runtime: {
@@ -2917,8 +2911,6 @@
2917
2911
  calc.runtime.InputStream = InputStream;
2918
2912
  calc.runtime.ParseError = ParseError;
2919
2913
 
2920
- /* eslint-disable indent */
2921
-
2922
2914
  function Node() {
2923
2915
  this.node = null;
2924
2916
  }
@@ -4137,30 +4129,6 @@
4137
4129
  makeDateFormat: makeDateFormat
4138
4130
  };
4139
4131
 
4140
- /* eslint-disable no-nested-ternary */
4141
- /* eslint-disable space-infix-ops */
4142
- /* eslint-disable indent */
4143
- /* eslint-disable no-empty */
4144
- /* eslint-disable no-loop-func */
4145
- /* eslint-disable consistent-return */
4146
- /* eslint-disable block-scoped-var */
4147
- /* eslint-disable no-redeclare */
4148
- /* eslint-disable no-var */
4149
- /* eslint-disable eqeqeq */
4150
- /* eslint-disable complexity */
4151
- /* eslint-disable max-params */
4152
- /* eslint-disable no-implicit-coercion */
4153
- /* eslint-disable key-spacing */
4154
- /* eslint-disable default-case */
4155
- /* eslint-disable camelcase */
4156
- /* eslint-disable brace-style */
4157
- /* eslint-disable no-else-return */
4158
- /* eslint-disable no-constant-condition */
4159
- /* eslint-disable no-param-reassign */
4160
- /* eslint-disable space-before-blocks */
4161
- /* eslint-disable no-unused-labels */
4162
-
4163
-
4164
4132
  const kendo = createKendoObj(calc, CalcError, Ref, CellRef, RangeRef);
4165
4133
  calc.kendo = kendo; // XXX
4166
4134
  calc.formatting = formatting;
@@ -5766,8 +5734,6 @@
5766
5734
 
5767
5735
  calc.ValidationFormulaContext = ValidationFormulaContext;
5768
5736
 
5769
- /* eslint-disable no-param-reassign */
5770
-
5771
5737
  let KEY_NAMES$1 = {
5772
5738
  8: 'backspace',
5773
5739
  9: 'tab',
@@ -5964,14 +5930,6 @@
5964
5930
  }
5965
5931
  }
5966
5932
 
5967
- /* eslint-disable default-case */
5968
- /* eslint-disable no-else-return */
5969
- /* eslint-disable key-spacing */
5970
- /* eslint-disable eqeqeq */
5971
- /* eslint-disable brace-style */
5972
- /* eslint-disable consistent-return */
5973
-
5974
-
5975
5933
  let alphaNumRegExp = /:alphanum$/;
5976
5934
 
5977
5935
  let ACTIONS = {
@@ -7813,11 +7771,6 @@
7813
7771
  }
7814
7772
  }
7815
7773
 
7816
- /* eslint-disable default-case */
7817
- /* eslint-disable camelcase */
7818
- /* eslint-disable no-param-reassign */
7819
-
7820
-
7821
7774
  class Property {
7822
7775
  constructor(list) {
7823
7776
  this.list = list;
@@ -7885,8 +7838,10 @@
7885
7838
  { property: ValueProperty, name: "value", value: null, sortable: true, serializable: true, depends: "format" },
7886
7839
  { property: Property, name: "formula", value: null, sortable: true, serializable: true },
7887
7840
  { property: Property, name: "background", value: null, sortable: true, serializable: true },
7888
- { property: JsonProperty, name: "vBorders", value: null, sortable: false, serializable: false },
7889
- { 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 },
7890
7845
  { property: JsonProperty, name: "dBorders", value: null, sortable: false, serializable: true },
7891
7846
  { property: Property, name: "color", value: null, sortable: true, serializable: true },
7892
7847
  { property: Property, name: "fontFamily", value: null, sortable: true, serializable: true },
@@ -7985,44 +7940,41 @@
7985
7940
  if (index === undefined) {
7986
7941
  return this.lists[name];
7987
7942
  }
7988
-
7989
- switch (name) {
7990
- case "borderRight":
7991
- index += this.rowCount;
7992
- /* falls through */
7993
- case "borderLeft":
7994
- name = "vBorders";
7995
- break;
7996
-
7997
- case "borderBottom":
7998
- index++;
7999
- /* falls through */
8000
- case "borderTop":
8001
- name = "hBorders";
8002
- break;
8003
- }
8004
7943
  return index > this.cellCount ? null : this.properties[name].get(index);
8005
7944
  }
8006
7945
 
8007
7946
  set(name, start, end, value) {
7947
+ this._set(name, start, end, value);
8008
7948
  switch (name) {
8009
- case "borderRight":
8010
- start += this.rowCount;
8011
- end += this.rowCount;
8012
- /* falls through */
8013
- case "borderLeft":
8014
- name = "vBorders";
7949
+ case "borderLeft":
7950
+ this._set("borderRight", start - this.rowCount, end - this.rowCount, value);
8015
7951
  break;
8016
-
8017
- case "borderBottom":
8018
- start++;
8019
- end++;
8020
- /* falls through */
8021
- case "borderTop":
8022
- 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
+ });
8023
7972
  break;
8024
7973
  }
8025
- if (start <= end && end <= this.cellCount) {
7974
+ }
7975
+
7976
+ _set(name, start, end, value) {
7977
+ if (start >= 0 && start <= end && end <= this.cellCount) {
8026
7978
  this.properties[name].set(start, end, value);
8027
7979
  }
8028
7980
  }
@@ -8030,19 +7982,12 @@
8030
7982
  fromJSON(index, value) {
8031
7983
  for (let si = 0; si < this.specs.length; si++) {
8032
7984
  let spec = this.specs[si];
8033
-
8034
7985
  if (spec.serializable) {
8035
7986
  if (value[spec.name] !== undefined) {
8036
7987
  this.set(spec.name, index, index, value[spec.name], false);
8037
7988
  }
8038
7989
  }
8039
7990
  }
8040
-
8041
- [ "borderLeft", "borderRight", "borderTop", "borderBottom" ].forEach(function(b) {
8042
- if (value[b] !== undefined) {
8043
- this.set(b, index, index, value[b]);
8044
- }
8045
- }, this);
8046
7991
  }
8047
7992
 
8048
7993
  copy(sourceStart, sourceEnd, targetStart) {
@@ -8081,18 +8026,8 @@
8081
8026
 
8082
8027
  forEach(start, end, callback) {
8083
8028
  let iterators = this.iterators(start, end);
8084
- let hBorders = this.iterator("hBorders", start, end + 1);
8085
- let leftBorders = this.iterator("vBorders", start, end);
8086
- let rightBorders = this.iterator("vBorders", start + this.rowCount, end + this.rowCount);
8087
8029
  let values, index;
8088
8030
 
8089
- function addBorder(name, iterator, index) {
8090
- let val = iterator.at(index);
8091
- if (val !== iterator.value) {
8092
- values[name] = val;
8093
- }
8094
- }
8095
-
8096
8031
  for (index = start; index <= end; index++) {
8097
8032
  values = {};
8098
8033
 
@@ -8105,13 +8040,6 @@
8105
8040
  }
8106
8041
  }
8107
8042
 
8108
- addBorder("borderLeft", leftBorders, index);
8109
- addBorder("borderRight", rightBorders, index + this.rowCount);
8110
- addBorder("borderTop", hBorders, index);
8111
- if ((index + 1) % this.rowCount) {
8112
- addBorder("borderBottom", hBorders, index + 1);
8113
- }
8114
-
8115
8043
  callback(values);
8116
8044
  }
8117
8045
  }
@@ -8122,6 +8050,15 @@
8122
8050
  }
8123
8051
  }
8124
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
+ }
8125
8062
  function cloneFormulaValue(x) {
8126
8063
  x = x.clone();
8127
8064
  x.value = x.value.deepClone(); // x.value is Formula or Validation
@@ -8139,12 +8076,6 @@
8139
8076
  return a;
8140
8077
  }, [ "borderTop", "borderRight", "borderBottom", "borderLeft" ]);
8141
8078
 
8142
- /* eslint-disable no-param-reassign */
8143
- /* eslint-disable no-useless-call */
8144
- /* eslint-disable camelcase */
8145
- /* eslint-disable default-case */
8146
-
8147
-
8148
8079
  function compileValidation(sheet, row, col, validation) {
8149
8080
  let validationHandler;
8150
8081
  let comparer;
@@ -8477,29 +8408,6 @@
8477
8408
  };
8478
8409
  validationExport.Validation = Validation;
8479
8410
 
8480
- /* eslint-disable no-nested-ternary */
8481
- /* eslint-disable curly */
8482
- /* eslint-disable space-infix-ops */
8483
- /* eslint-disable indent */
8484
- /* eslint-disable no-empty */
8485
- /* eslint-disable no-loop-func */
8486
- /* eslint-disable consistent-return */
8487
- /* eslint-disable block-scoped-var */
8488
- /* eslint-disable no-redeclare */
8489
- /* eslint-disable no-var */
8490
- /* eslint-disable eqeqeq */
8491
- /* eslint-disable complexity */
8492
- /* eslint-disable max-params */
8493
- /* eslint-disable no-implicit-coercion */
8494
- /* eslint-disable key-spacing */
8495
- /* eslint-disable default-case */
8496
- /* eslint-disable camelcase */
8497
- /* eslint-disable brace-style */
8498
- /* eslint-disable no-else-return */
8499
- /* eslint-disable no-constant-condition */
8500
- /* eslint-disable no-param-reassign */
8501
- /* eslint-disable space-before-blocks */
8502
-
8503
8411
  const { measureText } = kendoDrawing.drawing.util;
8504
8412
 
8505
8413
  let PROPERTIES = [
@@ -9285,7 +9193,7 @@
9285
9193
  } else {
9286
9194
  range.input(cellState.value);
9287
9195
  }
9288
- } catch (ex) {
9196
+ } catch {
9289
9197
  range._set("value", cellState.value);
9290
9198
  }
9291
9199
  } else {
@@ -9408,7 +9316,7 @@
9408
9316
  if (ref instanceof RangeRef && ref.width() > 1) {
9409
9317
  ref = ref.clone();
9410
9318
  ref.topLeft.col++;
9411
- this._sheet.range(ref)._set("vBorders", value);
9319
+ this._sheet.range(ref).borderLeft(value);
9412
9320
  }
9413
9321
  }, this);
9414
9322
  return this;
@@ -9419,7 +9327,7 @@
9419
9327
  if (ref instanceof RangeRef && ref.height() > 1) {
9420
9328
  ref = ref.clone();
9421
9329
  ref.topLeft.row++;
9422
- this._sheet.range(ref)._set("hBorders", value);
9330
+ this._sheet.range(ref).borderTop(value);
9423
9331
  }
9424
9332
  }, this);
9425
9333
  return this;
@@ -9793,8 +9701,6 @@
9793
9701
  return t;
9794
9702
  }
9795
9703
 
9796
- /* eslint-disable no-loop-func */
9797
- /* eslint-disable no-param-reassign */
9798
9704
  const STRING$1 = 'string';
9799
9705
  const FUNCTION = 'function';
9800
9706
 
@@ -9984,12 +9890,10 @@
9984
9890
  }
9985
9891
  }
9986
9892
 
9987
- /* eslint-disable no-param-reassign */
9988
-
9989
9893
  const _activeElement = function() {
9990
9894
  try {
9991
9895
  return document.activeElement;
9992
- } catch (e) {
9896
+ } catch {
9993
9897
  return document.documentElement.activeElement;
9994
9898
  }
9995
9899
  };
@@ -10407,11 +10311,11 @@
10407
10311
  return { values: this.values.iterator(0, 0), offset: 0 };
10408
10312
  }
10409
10313
  let startOffset = start - startSegment.start;
10410
- // eslint-disable-next-line no-bitwise
10314
+
10411
10315
  let startIndex = ((startOffset / startSegment.value.value) >> 0) + startSegment.value.start;
10412
10316
  let offset = startOffset - (startIndex - startSegment.value.start) * startSegment.value.value;
10413
10317
  let endOffset = end - endSegment.start;
10414
- // eslint-disable-next-line no-bitwise
10318
+
10415
10319
  let endIndex = ((endOffset / endSegment.value.value) >> 0) + endSegment.value.start;
10416
10320
  if (endIndex > endSegment.value.end) {
10417
10321
  endIndex = endSegment.value.end;
@@ -10558,9 +10462,6 @@
10558
10462
  }
10559
10463
  }
10560
10464
 
10561
- /* eslint-disable no-param-reassign */
10562
- /* eslint-disable camelcase */
10563
-
10564
10465
  class Rectangle {
10565
10466
  constructor(left, top, width, height) {
10566
10467
  this.left = left;
@@ -10946,11 +10847,6 @@
10946
10847
  return Sorter.ascendingComparer(b, a);
10947
10848
  };
10948
10849
 
10949
- /* eslint-disable no-constant-condition */
10950
- /* eslint-disable key-spacing */
10951
- /* eslint-disable no-param-reassign */
10952
-
10953
-
10954
10850
  class AxisManager {
10955
10851
  constructor(sheet) {
10956
10852
  this._sheet = sheet;
@@ -11182,8 +11078,6 @@
11182
11078
  }
11183
11079
  }
11184
11080
 
11185
- /* eslint-disable no-param-reassign */
11186
-
11187
11081
  class AutoFillCalculator {
11188
11082
  constructor(grid) {
11189
11083
  this._grid = grid;
@@ -11259,23 +11153,6 @@
11259
11153
  }
11260
11154
  }
11261
11155
 
11262
- /* eslint-disable max-params */
11263
- /* eslint-disable no-empty */
11264
- /* eslint-disable no-loop-func */
11265
- /* eslint-disable consistent-return */
11266
- /* eslint-disable block-scoped-var */
11267
- /* eslint-disable no-redeclare */
11268
- /* eslint-disable no-var */
11269
- /* eslint-disable eqeqeq */
11270
- /* eslint-disable complexity */
11271
- /* eslint-disable no-implicit-coercion */
11272
- /* eslint-disable brace-style */
11273
- /* eslint-disable key-spacing */
11274
- /* eslint-disable no-else-return */
11275
- /* eslint-disable default-case */
11276
- /* eslint-disable no-param-reassign */
11277
-
11278
-
11279
11156
  class EdgeNavigator {
11280
11157
  constructor(field, axis, rangeGetter, union) {
11281
11158
  this.rangeGetter = rangeGetter;
@@ -11948,23 +11825,6 @@
11948
11825
  };
11949
11826
  }
11950
11827
 
11951
- /* eslint-disable max-params */
11952
- /* eslint-disable no-empty */
11953
- /* eslint-disable no-loop-func */
11954
- /* eslint-disable consistent-return */
11955
- /* eslint-disable block-scoped-var */
11956
- /* eslint-disable no-redeclare */
11957
- /* eslint-disable no-var */
11958
- /* eslint-disable eqeqeq */
11959
- /* eslint-disable complexity */
11960
- /* eslint-disable no-implicit-coercion */
11961
- /* eslint-disable brace-style */
11962
- /* eslint-disable key-spacing */
11963
- /* eslint-disable no-else-return */
11964
- /* eslint-disable default-case */
11965
- /* eslint-disable no-param-reassign */
11966
-
11967
-
11968
11828
  function numberToDate(val) {
11969
11829
  return val == null ? null : calc.runtime.serialToDate(val);
11970
11830
  }
@@ -12224,12 +12084,6 @@
12224
12084
  };
12225
12085
  })();
12226
12086
 
12227
- /* eslint-disable no-var */
12228
- /* eslint-disable no-implicit-coercion */
12229
- /* eslint-disable no-param-reassign */
12230
- /* eslint-disable no-loop-func */
12231
-
12232
-
12233
12087
  const logic = {
12234
12088
  or: {
12235
12089
  concat: (acc, fn) => (a) => acc(a) || fn(a),
@@ -12357,23 +12211,6 @@
12357
12211
  .reduce(combiner.concat, combiner.identity);
12358
12212
  };
12359
12213
 
12360
- /* eslint-disable max-params */
12361
- /* eslint-disable no-empty */
12362
- /* eslint-disable no-loop-func */
12363
- /* eslint-disable consistent-return */
12364
- /* eslint-disable block-scoped-var */
12365
- /* eslint-disable no-redeclare */
12366
- /* eslint-disable no-var */
12367
- /* eslint-disable eqeqeq */
12368
- /* eslint-disable complexity */
12369
- /* eslint-disable no-implicit-coercion */
12370
- /* eslint-disable brace-style */
12371
- /* eslint-disable key-spacing */
12372
- /* eslint-disable no-else-return */
12373
- /* eslint-disable default-case */
12374
- /* eslint-disable no-param-reassign */
12375
-
12376
-
12377
12214
  let filtersObj = {};
12378
12215
  const dateToSerial$1 = calc.runtime.dateToSerial;
12379
12216
  const serialToDate$1 = calc.runtime.serialToDate;
@@ -12823,20 +12660,6 @@
12823
12660
  }
12824
12661
 
12825
12662
  /* eslint-disable max-params */
12826
- /* eslint-disable no-empty */
12827
- /* eslint-disable no-loop-func */
12828
- /* eslint-disable consistent-return */
12829
- /* eslint-disable block-scoped-var */
12830
- /* eslint-disable no-redeclare */
12831
- /* eslint-disable no-var */
12832
- /* eslint-disable eqeqeq */
12833
- /* eslint-disable complexity */
12834
- /* eslint-disable no-implicit-coercion */
12835
- /* eslint-disable brace-style */
12836
- /* eslint-disable key-spacing */
12837
- /* eslint-disable no-else-return */
12838
- /* eslint-disable default-case */
12839
- /* eslint-disable no-param-reassign */
12840
12663
 
12841
12664
 
12842
12665
  // This is a “dynamic variable” (see Greenspun's 10th rule). It's
@@ -13092,11 +12915,32 @@
13092
12915
  this._properties._resize(newRows, newCols);
13093
12916
  this._sheetRef = this._grid.normalize(SHEETREF);
13094
12917
  if (newRows > oldRows) {
13095
- 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
+ }
13096
12930
  this._filteredRows.value(oldRows, newRows - 1, false);
13097
12931
  }
13098
12932
  if (newCols > oldCols) {
13099
- 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
+ }
13100
12944
  }
13101
12945
  this.triggerChange({ layout: true });
13102
12946
  }
@@ -14910,8 +14754,6 @@
14910
14754
  return new Drawing(args);
14911
14755
  };
14912
14756
 
14913
- /* eslint-disable no-param-reassign */
14914
- /* eslint-disable key-spacing */
14915
14757
  let PAPER_SIZE = {
14916
14758
  a0 : [ 2383.94 , 3370.39 ],
14917
14759
  a1 : [ 1683.78 , 2383.94 ],
@@ -15041,15 +14883,6 @@
15041
14883
  return { paperSize: paperSize, margin: margin };
15042
14884
  }
15043
14885
 
15044
- /* eslint-disable no-nested-ternary */
15045
- /* eslint-disable default-case */
15046
- /* eslint-disable no-implicit-coercion */
15047
- /* eslint-disable no-else-return */
15048
- /* eslint-disable key-spacing */
15049
- /* eslint-disable eqeqeq */
15050
- /* eslint-disable no-param-reassign */
15051
-
15052
-
15053
14886
  let GUIDELINE_WIDTH = 0.8;
15054
14887
 
15055
14888
  // This takes a list of row heights and the page height, and
@@ -15793,16 +15626,6 @@
15793
15626
  let horiz = new Container();
15794
15627
  let vert = new Container();
15795
15628
  function add(cell, sheet) {
15796
- if (sheet) {
15797
- // reset borders here; the propertybag doesn't keep track of merged cells :-/ this
15798
- // is ugly, but the inner details of data storage have leaked everywhere anyway.
15799
- let pb = sheet._properties;
15800
- let grid = sheet._grid;
15801
- cell.borderLeft = pb.get("vBorders", grid.index(cell.row, cell.col));
15802
- cell.borderRight = pb.get("vBorders", grid.index(cell.row, cell.col + cell.colspan));
15803
- cell.borderTop = pb.get("hBorders", grid.index(cell.row, cell.col));
15804
- cell.borderBottom = pb.get("hBorders", grid.index(cell.row + cell.rowspan, cell.col));
15805
- }
15806
15629
  if (cell.borderLeft) {
15807
15630
  addVert(cell.row, cell.col, cell.borderLeft,
15808
15631
  cell.left, cell.top, cell.bottom);
@@ -15822,7 +15645,7 @@
15822
15645
  }
15823
15646
 
15824
15647
  function isUnwantedProp(propName){
15825
- return propName === '__proto__' || propName === 'constructor' || propName === 'prototype'
15648
+ return propName === '__proto__' || propName === 'constructor' || propName === 'prototype';
15826
15649
  }
15827
15650
 
15828
15651
  function addVert(row, col, border, x, top, bottom) {
@@ -16085,6 +15908,7 @@
16085
15908
 
16086
15909
  const RESIZE_HANDLE_WIDTH = 7;
16087
15910
  const EDIT_BUTTON_WIDTH = 20;
15911
+ const CELL_PADDING_RIGHT = 3;
16088
15912
  const DOT = ".";
16089
15913
 
16090
15914
  const viewClassNames = {
@@ -16407,7 +16231,7 @@
16407
16231
  children.push(this.renderData(args));
16408
16232
 
16409
16233
  if (!sheet._activeDrawing) {
16410
- children.push(this.renderSelection(scroller));
16234
+ children.push(this.renderSelection());
16411
16235
  }
16412
16236
 
16413
16237
  children.push(this.renderAutoFill());
@@ -16572,6 +16396,7 @@
16572
16396
  let cls = null;
16573
16397
  let absRow = cell.row + view.ref.topLeft.row;
16574
16398
  let absCol = cell.col + view.ref.topLeft.col;
16399
+ let hasButton = false;
16575
16400
  if (sheet._activeDrawing) {
16576
16401
  let ref = sheet._activeDrawing.topLeftCell;
16577
16402
  if (ref && ref.row === absRow && ref.col === absCol) {
@@ -16586,10 +16411,16 @@
16586
16411
  if (sheet.singleCellSelection()) {
16587
16412
  cls.push(Pane.classNames.single);
16588
16413
  }
16414
+ if (this._renderCustomEditorButton(cont.children, cell)) {
16415
+ hasButton = true;
16416
+ }
16589
16417
  cls = cls.join(" ");
16590
16418
  }
16591
16419
  borders.add(cell);
16592
- drawCell(cont.children, cell, cls, showGridLines);
16420
+ var cellDiv = drawCell(cont.children, cell, cls, showGridLines);
16421
+ if (hasButton) {
16422
+ cellDiv.attr.style.paddingRight = (EDIT_BUTTON_WIDTH + CELL_PADDING_RIGHT) + "px";
16423
+ }
16593
16424
  if (cell.comment && sheet._commentRef &&
16594
16425
  absRow === sheet._commentRef.row && absCol === sheet._commentRef.col) {
16595
16426
  let ttOffset = 4;
@@ -16804,12 +16635,11 @@
16804
16635
 
16805
16636
  }
16806
16637
 
16807
- renderSelection(scroller) {
16638
+ renderSelection() {
16808
16639
  let classNames = Pane.classNames;
16809
16640
  let selections = [];
16810
16641
  let selectionClasses = [classNames.selection];
16811
16642
  let sheet = this._sheet;
16812
- let activeCell = sheet.activeCell().toRangeRef();
16813
16643
  let selection = sheet.select();
16814
16644
 
16815
16645
  selectionClasses = selectionClasses.concat(this._activeFormulaColor());
@@ -16828,8 +16658,6 @@
16828
16658
  }
16829
16659
  }.bind(this));
16830
16660
 
16831
- this._renderCustomEditorButton(selections, activeCell, scroller);
16832
-
16833
16661
  return dom.element("div", { className: classNames.selectionWrapper }, selections);
16834
16662
  }
16835
16663
 
@@ -16888,42 +16716,26 @@
16888
16716
  return div;
16889
16717
  }
16890
16718
 
16891
- _renderCustomEditorButton(collection, ref, scroller) {
16719
+ _renderCustomEditorButton(collection, cell) {
16892
16720
  let self = this;
16893
- let sheet = self._sheet;
16894
- let view = self._currentView;
16895
- let columnCount = self._grid.columns._axis._count;
16721
+ let sheet = this._sheet;
16896
16722
  let ed = sheet.activeCellCustomEditor();
16897
-
16898
- if (ed && view.ref.intersects(ref)) {
16899
- let rectangle = self._rectangle(ref);
16900
- sheet.forEach(ref.collapse(), function(row, col, cell) {
16901
- cell.left = rectangle.left;
16902
- cell.top = rectangle.top;
16903
- cell.width = rectangle.width;
16904
- cell.height = rectangle.height;
16905
-
16906
- let btnClass = "k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-spreadsheet-editor-button";
16907
- let isLastColumn = col === columnCount - 1 || self._buttonOutOfVisiblePane(row, col, scroller);
16908
- if (isLastColumn) {
16909
- btnClass += " k-spreadsheet-last-column";
16910
- }
16911
- self._editorInLastColumn = isLastColumn;
16912
- let btn = dom.element("div", {
16913
- className: btnClass,
16914
- style: {
16915
- left : (cell.left + (isLastColumn ? 0 : cell.width)) + "px",
16916
- top : cell.top + "px",
16917
- height : cell.height + "px"
16918
- }
16919
- });
16920
-
16921
- if (ed.icon) {
16922
- btn.children.push(self.icon(ed.icon));
16723
+ if (ed) {
16724
+ let btnClass = "k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-spreadsheet-editor-button";
16725
+ let btn = dom.element("div", {
16726
+ className: btnClass,
16727
+ style: {
16728
+ left : (cell.left + cell.width - EDIT_BUTTON_WIDTH) + "px",
16729
+ top : (cell.top + 1) + "px",
16730
+ height : (cell.height - 2) + "px",
16731
+ width : EDIT_BUTTON_WIDTH + "px",
16923
16732
  }
16924
-
16925
- collection.push(btn);
16926
16733
  });
16734
+ if (ed.icon) {
16735
+ btn.children.push(self.icon(ed.icon));
16736
+ }
16737
+ collection.push(btn);
16738
+ return true;
16927
16739
  }
16928
16740
  }
16929
16741
 
@@ -16995,13 +16807,6 @@
16995
16807
  });
16996
16808
  }
16997
16809
 
16998
- /* eslint-disable no-unused-vars */
16999
- /* eslint-disable no-param-reassign */
17000
- /* eslint-disable no-else-return */
17001
- /* eslint-disable no-multi-spaces */
17002
- /* eslint-disable no-nested-ternary */
17003
-
17004
-
17005
16810
  let styles = [
17006
16811
  "font-family",
17007
16812
  "font-size",
@@ -17861,15 +17666,6 @@
17861
17666
  }
17862
17667
  }
17863
17668
 
17864
- /* eslint-disable complexity */
17865
- /* eslint-disable consistent-return */
17866
- /* eslint-disable default-case */
17867
- /* eslint-disable no-implicit-coercion */
17868
- /* eslint-disable no-nested-ternary */
17869
- /* eslint-disable key-spacing */
17870
- /* eslint-disable no-param-reassign */
17871
-
17872
-
17873
17669
  function selectElementContents(el) {
17874
17670
  let sel = window.getSelection();
17875
17671
  sel.removeAllRanges();
@@ -18341,15 +18137,12 @@
18341
18137
  return Math.abs(rectangle.right - x) < 8 && Math.abs(rectangle.bottom - y) < 8;
18342
18138
  }
18343
18139
 
18344
- isEditButton(x, y, pane) {
18140
+ isEditButton(x, y) {
18345
18141
  let ed = this._sheet.activeCellCustomEditor();
18346
18142
  if (ed) {
18347
18143
  let r = this.activeCellRectangle();
18348
- // XXX: hard-coded button width (20)
18349
-
18350
18144
  if (y >= r.top && y <= r.bottom) {
18351
- return pane._editorInLastColumn ? x < r.left && x >= r.left - EDIT_BUTTON_WIDTH
18352
- : x > r.right && x <= r.right + EDIT_BUTTON_WIDTH;
18145
+ return x < r.right && x >= r.right - EDIT_BUTTON_WIDTH;
18353
18146
  }
18354
18147
  }
18355
18148
  }
@@ -18437,7 +18230,7 @@
18437
18230
  ref = new CellRef(-Infinity, column);
18438
18231
  type = "columnresizehandle";
18439
18232
  }
18440
- } else if (this.isEditButton(x, y, pane)) {
18233
+ } else if (this.isEditButton(x, y)) {
18441
18234
  type = "editor";
18442
18235
  }
18443
18236
 
@@ -19256,12 +19049,6 @@
19256
19049
  return state;
19257
19050
  }
19258
19051
 
19259
- /* eslint-disable no-else-return */
19260
- /* eslint-disable consistent-return */
19261
- /* eslint-disable space-before-blocks */
19262
- /* eslint-disable no-implicit-coercion */
19263
-
19264
-
19265
19052
  let COMMAND_TYPES = {
19266
19053
  AUTO_FILL: "autoFill",
19267
19054
  CLEAR: "clear",
@@ -20711,7 +20498,6 @@
20711
20498
  }
20712
20499
  }
20713
20500
 
20714
- /* eslint-disable no-param-reassign */
20715
20501
  // SAX-style XML parser ====================================================
20716
20502
  let STRING = String.fromCharCode;
20717
20503
 
@@ -21081,13 +20867,7 @@
21081
20867
  }
21082
20868
 
21083
20869
  /* eslint-disable complexity */
21084
- /* eslint-disable camelcase */
21085
- /* eslint-disable key-spacing */
21086
- /* eslint-disable no-nested-ternary */
21087
- /* eslint-disable brace-style */
21088
- /* eslint-disable no-implicit-coercion */
21089
- /* eslint-disable no-loop-func */
21090
- /* eslint-disable no-param-reassign */
20870
+
21091
20871
 
21092
20872
  // WARNING: removing the following jshint declaration and turning
21093
20873
  // == into === to make JSHint happy will break functionality.
@@ -21385,6 +21165,7 @@
21385
21165
  let valueFilterValues;
21386
21166
  let filters = [];
21387
21167
  let deferredStyles = [];
21168
+ let applyProtection = Boolean(sheet._workbook?.options?.excel?.applyProtection);
21388
21169
 
21389
21170
  ERROR_LOG = sheet._workbook.excelImportErrors;
21390
21171
 
@@ -21493,7 +21274,7 @@
21493
21274
  if (target) {
21494
21275
  sheet.range(attrs.ref).link(target);
21495
21276
  }
21496
- } else if (this.is(SEL_PROTECTION)) {
21277
+ } else if (applyProtection && this.is(SEL_PROTECTION)) {
21497
21278
  if (attrs.sheet) {
21498
21279
  sheet.range(SHEETREF).enable(false);
21499
21280
  }
@@ -21971,6 +21752,7 @@
21971
21752
 
21972
21753
  function applyStyle(sheet, ref, styles, styleIndex) {
21973
21754
  let range = sheet.range(ref);
21755
+ let applyProtection = Boolean(sheet._workbook?.options?.excel?.applyProtection);
21974
21756
  let xf = styles.inlineStyles[styleIndex], base, value;
21975
21757
  if (xf.xfId) {
21976
21758
  base = styles.namedStyles[xf.xfId];
@@ -22000,7 +21782,7 @@
22000
21782
  if (shouldSet("applyNumberFormat", "numFmtId")) {
22001
21783
  setFormat(styles.numFmts[value] || DEFAULT_FORMATS[value]);
22002
21784
  }
22003
- if (shouldSet("applyProtection", "protection")) {
21785
+ if (applyProtection && shouldSet("applyProtection", "protection")) {
22004
21786
  range.enable(!xf.protection.locked);
22005
21787
  }
22006
21788
 
@@ -22456,13 +22238,6 @@
22456
22238
  return val / 9525;
22457
22239
  }
22458
22240
 
22459
- /* eslint-disable no-undef */
22460
- /* eslint-disable no-nested-ternary */
22461
- /* eslint-disable key-spacing */
22462
- /* eslint-disable consistent-return */
22463
- /* eslint-disable no-param-reassign */
22464
-
22465
-
22466
22241
  const events$1 = [
22467
22242
  "cut",
22468
22243
  "copy",
@@ -23145,6 +22920,12 @@
23145
22920
  options = deepExtend({}, self.options.excel, options);
23146
22921
  let data = self.toJSON();
23147
22922
 
22923
+ if (!options.applyProtection) {
22924
+ data.sheets.forEach(({ rows }) =>
22925
+ rows.forEach(({ cells }) =>
22926
+ cells.forEach(cell => delete cell.enable)));
22927
+ }
22928
+
23148
22929
  if (self.trigger("excelExport", { workbook: data })) {
23149
22930
  return;
23150
22931
  }
@@ -23458,8 +23239,6 @@
23458
23239
  // };
23459
23240
  // }
23460
23241
 
23461
- /* eslint-disable no-param-reassign */
23462
-
23463
23242
  const events = [
23464
23243
  "cut",
23465
23244
  "copy",