@teselagen/ove 0.3.49 → 0.3.51

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/index.cjs.js CHANGED
@@ -18375,25 +18375,16 @@ var toString$6 = {}.toString;
18375
18375
  var _cof = /* @__PURE__ */ __name(function(it) {
18376
18376
  return toString$6.call(it).slice(8, -1);
18377
18377
  }, "_cof");
18378
- var _iobject;
18379
- var hasRequired_iobject;
18380
- function require_iobject() {
18381
- if (hasRequired_iobject)
18382
- return _iobject;
18383
- hasRequired_iobject = 1;
18384
- var cof2 = _cof;
18385
- _iobject = Object("z").propertyIsEnumerable(0) ? Object : function(it) {
18386
- return cof2(it) == "String" ? it.split("") : Object(it);
18387
- };
18388
- return _iobject;
18389
- }
18390
- __name(require_iobject, "require_iobject");
18378
+ var cof$2 = _cof;
18379
+ var _iobject = Object("z").propertyIsEnumerable(0) ? Object : function(it) {
18380
+ return cof$2(it) == "String" ? it.split("") : Object(it);
18381
+ };
18391
18382
  var _defined = /* @__PURE__ */ __name(function(it) {
18392
18383
  if (it == void 0)
18393
18384
  throw TypeError("Can't call method on " + it);
18394
18385
  return it;
18395
18386
  }, "_defined");
18396
- var IObject = require_iobject();
18387
+ var IObject = _iobject;
18397
18388
  var defined$2 = _defined;
18398
18389
  var _toIobject = /* @__PURE__ */ __name(function(it) {
18399
18390
  return IObject(defined$2(it));
@@ -18482,23 +18473,15 @@ var _objectKeysInternal = /* @__PURE__ */ __name(function(object3, names2) {
18482
18473
  return result;
18483
18474
  }, "_objectKeysInternal");
18484
18475
  var _enumBugKeys = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
18485
- var $keys$2 = _objectKeysInternal;
18476
+ var $keys$3 = _objectKeysInternal;
18486
18477
  var enumBugKeys$1 = _enumBugKeys;
18487
18478
  var _objectKeys = Object.keys || /* @__PURE__ */ __name(function keys(O2) {
18488
- return $keys$2(O2, enumBugKeys$1);
18479
+ return $keys$3(O2, enumBugKeys$1);
18489
18480
  }, "keys");
18490
18481
  var _objectGops = {};
18491
18482
  _objectGops.f = Object.getOwnPropertySymbols;
18492
18483
  var _objectPie = {};
18493
- var hasRequired_objectPie;
18494
- function require_objectPie() {
18495
- if (hasRequired_objectPie)
18496
- return _objectPie;
18497
- hasRequired_objectPie = 1;
18498
- _objectPie.f = {}.propertyIsEnumerable;
18499
- return _objectPie;
18500
- }
18501
- __name(require_objectPie, "require_objectPie");
18484
+ _objectPie.f = {}.propertyIsEnumerable;
18502
18485
  var defined$1 = _defined;
18503
18486
  var _toObject = /* @__PURE__ */ __name(function(it) {
18504
18487
  return Object(defined$1(it));
@@ -18512,9 +18495,9 @@ function require_objectAssign() {
18512
18495
  var DESCRIPTORS2 = _descriptors;
18513
18496
  var getKeys2 = _objectKeys;
18514
18497
  var gOPS2 = _objectGops;
18515
- var pIE2 = require_objectPie();
18498
+ var pIE2 = _objectPie;
18516
18499
  var toObject2 = _toObject;
18517
- var IObject2 = require_iobject();
18500
+ var IObject2 = _iobject;
18518
18501
  var $assign = Object.assign;
18519
18502
  _objectAssign = !$assign || _fails(function() {
18520
18503
  var A2 = {};
@@ -19149,7 +19132,7 @@ var _wksDefine = /* @__PURE__ */ __name(function(name2) {
19149
19132
  }, "_wksDefine");
19150
19133
  var getKeys = _objectKeys;
19151
19134
  var gOPS$1 = _objectGops;
19152
- var pIE$1 = require_objectPie();
19135
+ var pIE$1 = _objectPie;
19153
19136
  var _enumKeys = /* @__PURE__ */ __name(function(it) {
19154
19137
  var result = getKeys(it);
19155
19138
  var getSymbols2 = gOPS$1.f;
@@ -19170,21 +19153,13 @@ var _isArray = Array.isArray || /* @__PURE__ */ __name(function isArray(arg) {
19170
19153
  }, "isArray");
19171
19154
  var _objectGopnExt = {};
19172
19155
  var _objectGopn = {};
19173
- var hasRequired_objectGopn;
19174
- function require_objectGopn() {
19175
- if (hasRequired_objectGopn)
19176
- return _objectGopn;
19177
- hasRequired_objectGopn = 1;
19178
- var $keys2 = _objectKeysInternal;
19179
- var hiddenKeys = _enumBugKeys.concat("length", "prototype");
19180
- _objectGopn.f = Object.getOwnPropertyNames || /* @__PURE__ */ __name(function getOwnPropertyNames4(O2) {
19181
- return $keys2(O2, hiddenKeys);
19182
- }, "getOwnPropertyNames");
19183
- return _objectGopn;
19184
- }
19185
- __name(require_objectGopn, "require_objectGopn");
19156
+ var $keys$2 = _objectKeysInternal;
19157
+ var hiddenKeys = _enumBugKeys.concat("length", "prototype");
19158
+ _objectGopn.f = Object.getOwnPropertyNames || /* @__PURE__ */ __name(function getOwnPropertyNames(O2) {
19159
+ return $keys$2(O2, hiddenKeys);
19160
+ }, "getOwnPropertyNames");
19186
19161
  var toIObject$2 = _toIobject;
19187
- var gOPN$1 = require_objectGopn().f;
19162
+ var gOPN$1 = _objectGopn.f;
19188
19163
  var toString$5 = {}.toString;
19189
19164
  var windowNames = typeof window == "object" && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
19190
19165
  var getWindowNames = /* @__PURE__ */ __name(function(it) {
@@ -19194,11 +19169,11 @@ var getWindowNames = /* @__PURE__ */ __name(function(it) {
19194
19169
  return windowNames.slice();
19195
19170
  }
19196
19171
  }, "getWindowNames");
19197
- _objectGopnExt.f = /* @__PURE__ */ __name(function getOwnPropertyNames(it) {
19172
+ _objectGopnExt.f = /* @__PURE__ */ __name(function getOwnPropertyNames2(it) {
19198
19173
  return windowNames && toString$5.call(it) == "[object Window]" ? getWindowNames(it) : gOPN$1(toIObject$2(it));
19199
19174
  }, "getOwnPropertyNames");
19200
19175
  var _objectGopd = {};
19201
- var pIE = require_objectPie();
19176
+ var pIE = _objectPie;
19202
19177
  var createDesc$1 = _propertyDesc;
19203
19178
  var toIObject$1 = _toIobject;
19204
19179
  var toPrimitive$1 = _toPrimitive$1;
@@ -19333,7 +19308,7 @@ var $getOwnPropertyDescriptor = /* @__PURE__ */ __name(function getOwnPropertyDe
19333
19308
  D2.enumerable = true;
19334
19309
  return D2;
19335
19310
  }, "getOwnPropertyDescriptor");
19336
- var $getOwnPropertyNames = /* @__PURE__ */ __name(function getOwnPropertyNames2(it) {
19311
+ var $getOwnPropertyNames = /* @__PURE__ */ __name(function getOwnPropertyNames3(it) {
19337
19312
  var names2 = gOPN(toIObject(it));
19338
19313
  var result = [];
19339
19314
  var i = 0;
@@ -19377,8 +19352,8 @@ if (!USE_NATIVE) {
19377
19352
  }, "toString"));
19378
19353
  $GOPD.f = $getOwnPropertyDescriptor;
19379
19354
  $DP.f = $defineProperty$1;
19380
- require_objectGopn().f = gOPNExt.f = $getOwnPropertyNames;
19381
- require_objectPie().f = $propertyIsEnumerable;
19355
+ _objectGopn.f = gOPNExt.f = $getOwnPropertyNames;
19356
+ _objectPie.f = $propertyIsEnumerable;
19382
19357
  $GOPS.f = $getOwnPropertySymbols;
19383
19358
  if (DESCRIPTORS && !_library) {
19384
19359
  redefine(ObjectProto, "propertyIsEnumerable", $propertyIsEnumerable);
@@ -40017,6 +39992,13 @@ const popoverOverflowModifiers = {
40017
39992
  const _TgSelect = class _TgSelect extends React$2.Component {
40018
39993
  constructor(props) {
40019
39994
  super(props);
39995
+ __publicField(this, "setOpenState", /* @__PURE__ */ __name((isOpen) => {
39996
+ const { handleOpenChange } = this.props;
39997
+ if (handleOpenChange) {
39998
+ handleOpenChange(isOpen);
39999
+ }
40000
+ this.setState({ isOpen });
40001
+ }, "setOpenState"));
40020
40002
  __publicField(this, "itemRenderer", /* @__PURE__ */ __name((i, { index: index2, handleClick, modifiers: modifiers2 }) => {
40021
40003
  const optionRenderer = this.getOptionRenderer();
40022
40004
  const onClick = i.onClick || handleClick;
@@ -40049,7 +40031,7 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40049
40031
  if (multi) {
40050
40032
  let valArray = getValueArray(value);
40051
40033
  if (closeOnSelect || item.closeOnSelect) {
40052
- this.setState({ isOpen: false });
40034
+ this.setOpenState(false);
40053
40035
  this.input && this.input.blur();
40054
40036
  }
40055
40037
  if (isTagSelect && item.value && item.value.includes && item.value.includes(":")) {
@@ -40066,7 +40048,7 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40066
40048
  }
40067
40049
  return onChange([...valArray, item]);
40068
40050
  } else {
40069
- this.setState({ isOpen: false });
40051
+ this.setOpenState(false);
40070
40052
  this.input && this.input.blur();
40071
40053
  return onChange(item);
40072
40054
  }
@@ -40079,7 +40061,7 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40079
40061
  );
40080
40062
  e2.stopPropagation();
40081
40063
  onChange(filteredVals);
40082
- this.setState({ isOpen: false });
40064
+ this.setOpenState(false);
40083
40065
  this.input.focus();
40084
40066
  }, "handleTagRemove"));
40085
40067
  __publicField(this, "handleTagInputRemove", /* @__PURE__ */ __name((val2, index2) => {
@@ -40100,7 +40082,7 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40100
40082
  const { onChange } = this.props;
40101
40083
  this.setState({ query: "" });
40102
40084
  onChange(newValue);
40103
- this.setState({ isOpen: false });
40085
+ this.setOpenState(false);
40104
40086
  this.input.focus();
40105
40087
  }, "handleClear"));
40106
40088
  __publicField(this, "itemListPredicate", /* @__PURE__ */ __name((queryString2, item) => {
@@ -40123,9 +40105,12 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40123
40105
  }, "handleActiveItemChange"));
40124
40106
  __publicField(this, "onInteraction", /* @__PURE__ */ __name(() => {
40125
40107
  if (this.input != null && this.input !== document.activeElement) {
40126
- this.setState({ isOpen: false, query: "" });
40108
+ this.setOpenState(false);
40109
+ this.setState({
40110
+ query: ""
40111
+ });
40127
40112
  } else if (!this.props.openOnKeyDown) {
40128
- this.setState({ isOpen: true });
40113
+ this.setOpenState(true);
40129
40114
  }
40130
40115
  }, "onInteraction"));
40131
40116
  __publicField(this, "queryHasExactOptionMatch", /* @__PURE__ */ __name(() => {
@@ -40234,7 +40219,7 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40234
40219
  onClick: (e2) => {
40235
40220
  if (this.state.isOpen) {
40236
40221
  e2.stopPropagation();
40237
- this.setState({ isOpen: false });
40222
+ this.setOpenState(false);
40238
40223
  }
40239
40224
  },
40240
40225
  disabled,
@@ -40307,11 +40292,11 @@ const _TgSelect = class _TgSelect extends React$2.Component {
40307
40292
  if (this.input != null) {
40308
40293
  this.input.blur();
40309
40294
  }
40310
- this.setState({ isOpen: false });
40295
+ this.setOpenState(false);
40311
40296
  e2.preventDefault();
40312
40297
  e2.stopPropagation();
40313
40298
  } else if (!(which === core$5.Keys.BACKSPACE || which === core$5.Keys.ARROW_LEFT || which === core$5.Keys.ARROW_RIGHT)) {
40314
- this.setState({ isOpen: true });
40299
+ this.setOpenState(true);
40315
40300
  }
40316
40301
  },
40317
40302
  inputProps: __spreadValues({
@@ -55193,7 +55178,7 @@ var KNOWN_STATICS = {
55193
55178
  arity: true
55194
55179
  };
55195
55180
  var defineProperty$3 = Object.defineProperty;
55196
- var getOwnPropertyNames3 = Object.getOwnPropertyNames;
55181
+ var getOwnPropertyNames4 = Object.getOwnPropertyNames;
55197
55182
  var getOwnPropertySymbols3 = Object.getOwnPropertySymbols;
55198
55183
  var getOwnPropertyDescriptor3 = Object.getOwnPropertyDescriptor;
55199
55184
  var getPrototypeOf = Object.getPrototypeOf;
@@ -55206,7 +55191,7 @@ function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
55206
55191
  hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
55207
55192
  }
55208
55193
  }
55209
- var keys5 = getOwnPropertyNames3(sourceComponent);
55194
+ var keys5 = getOwnPropertyNames4(sourceComponent);
55210
55195
  if (getOwnPropertySymbols3) {
55211
55196
  keys5 = keys5.concat(getOwnPropertySymbols3(sourceComponent));
55212
55197
  }
@@ -56435,13 +56420,24 @@ const _DataTable = class _DataTable extends React$2.Component {
56435
56420
  }, 0);
56436
56421
  }
56437
56422
  }, "updateFromProps"));
56438
- __publicField(this, "formatAndValidateEntities", /* @__PURE__ */ __name((entities) => {
56423
+ __publicField(this, "formatAndValidateEntities", /* @__PURE__ */ __name((entities, { useDefaultValues, indexToStartAt } = {}) => {
56439
56424
  const { schema: schema2 } = this.props;
56440
56425
  const editableFields = schema2.fields.filter((f2) => !f2.isNotEditable);
56441
56426
  const validationErrors = {};
56442
56427
  const newEnts = immer(entities, (entities2) => {
56443
56428
  entities2.forEach((e2, index2) => {
56444
56429
  editableFields.forEach((columnSchema) => {
56430
+ if (useDefaultValues) {
56431
+ if (e2[columnSchema.path] === void 0) {
56432
+ if (lodashExports.isFunction(columnSchema.defaultValue)) {
56433
+ e2[columnSchema.path] = columnSchema.defaultValue(
56434
+ index2 + indexToStartAt,
56435
+ e2
56436
+ );
56437
+ } else
56438
+ e2[columnSchema.path] = columnSchema.defaultValue;
56439
+ }
56440
+ }
56445
56441
  const { error } = editCellHelper({
56446
56442
  entity: e2,
56447
56443
  columnSchema,
@@ -56765,8 +56761,9 @@ const _DataTable = class _DataTable extends React$2.Component {
56765
56761
  }, "handleCut"));
56766
56762
  __publicField(this, "getCellCopyText", /* @__PURE__ */ __name((cellWrapper) => {
56767
56763
  const text2 = cellWrapper && cellWrapper.getAttribute("data-copy-text");
56764
+ const jsonText = cellWrapper && cellWrapper.getAttribute("data-copy-json");
56768
56765
  const toRet = text2 || cellWrapper.textContent || "";
56769
- return toRet;
56766
+ return [toRet, jsonText];
56770
56767
  }, "getCellCopyText"));
56771
56768
  __publicField(this, "handleCopyRow", /* @__PURE__ */ __name((rowEl) => {
56772
56769
  const text2 = this.getRowCopyText(rowEl);
@@ -56774,13 +56771,26 @@ const _DataTable = class _DataTable extends React$2.Component {
56774
56771
  return window.toastr.warning("No text to copy");
56775
56772
  this.handleCopyHelper(text2, "Row Copied");
56776
56773
  }, "handleCopyRow"));
56777
- __publicField(this, "handleCopyColumn", /* @__PURE__ */ __name((e2, cellWrapper) => {
56774
+ __publicField(this, "handleCopyColumn", /* @__PURE__ */ __name((e2, cellWrapper, selectedRecords) => {
56778
56775
  const cellType = cellWrapper.getAttribute("data-test");
56779
- const allRowEls = getAllRows(e2);
56780
- if (!allRowEls)
56776
+ let rowElsToCopy = getAllRows(e2);
56777
+ if (!rowElsToCopy)
56778
+ return;
56779
+ if (selectedRecords) {
56780
+ const ids = selectedRecords.map((e22) => {
56781
+ var _a2;
56782
+ return (_a2 = getIdOrCodeOrIndex(e22)) == null ? void 0 : _a2.toString();
56783
+ });
56784
+ rowElsToCopy = Array.from(rowElsToCopy).filter((rowEl) => {
56785
+ var _a2;
56786
+ const id2 = (_a2 = rowEl.closest(".rt-tr-group")) == null ? void 0 : _a2.getAttribute("data-test-id");
56787
+ return id2 !== void 0 && ids.includes(id2);
56788
+ });
56789
+ }
56790
+ if (!rowElsToCopy)
56781
56791
  return;
56782
56792
  const textToCopy = lodashExports.map(
56783
- allRowEls,
56793
+ rowElsToCopy,
56784
56794
  (rowEl) => this.getRowCopyText(rowEl, { cellType })
56785
56795
  ).filter((text2) => text2).join("\n");
56786
56796
  if (!textToCopy)
@@ -56821,9 +56831,10 @@ const _DataTable = class _DataTable extends React$2.Component {
56821
56831
  return this.getCellCopyText(cellChild);
56822
56832
  }).join(" ");
56823
56833
  }, "getRowCopyText"));
56824
- __publicField(this, "handleCopyHelper", /* @__PURE__ */ __name((stringToCopy, message) => {
56834
+ __publicField(this, "handleCopyHelper", /* @__PURE__ */ __name((stringToCopy, objToCopy, message) => {
56825
56835
  const copyHandler = /* @__PURE__ */ __name((e2) => {
56826
56836
  e2.preventDefault();
56837
+ e2.clipboardData.setData("application/json", JSON.stringify(objToCopy));
56827
56838
  e2.clipboardData.setData("text/plain", stringToCopy);
56828
56839
  }, "copyHandler");
56829
56840
  document.addEventListener("copy", copyHandler);
@@ -57685,6 +57696,22 @@ const _DataTable = class _DataTable extends React$2.Component {
57685
57696
  noEllipsis = true;
57686
57697
  } else {
57687
57698
  if (reduxFormEditingCell === cellId) {
57699
+ if (column.type === "genericSelect") {
57700
+ const GenericSelectComp = column.GenericSelectComp;
57701
+ return /* @__PURE__ */ React$2.createElement(
57702
+ GenericSelectComp,
57703
+ __spreadProps(__spreadValues({
57704
+ rowId,
57705
+ initialValue: text2
57706
+ }, dataTest), {
57707
+ finishEdit: (newVal2, doNotStopEditing) => {
57708
+ this.finishCellEdit(cellId, newVal2, doNotStopEditing);
57709
+ },
57710
+ dataTest,
57711
+ cancelEdit: this.cancelCellEdit
57712
+ })
57713
+ );
57714
+ }
57688
57715
  if (column.type === "dropdown" || column.type === "dropdownMulti") {
57689
57716
  return /* @__PURE__ */ React$2.createElement(
57690
57717
  DropdownCell,
@@ -57745,7 +57772,7 @@ const _DataTable = class _DataTable extends React$2.Component {
57745
57772
  title: title || void 0
57746
57773
  }),
57747
57774
  val2
57748
- ), isCellEditable && (column.type === "dropdown" || column.type === "dropdownMulti") && /* @__PURE__ */ React$2.createElement(
57775
+ ), isCellEditable && (column.type === "dropdown" || column.type === "dropdownMulti" || column.type === "genericSelect") && /* @__PURE__ */ React$2.createElement(
57749
57776
  core$5.Icon,
57750
57777
  {
57751
57778
  icon: "caret-down",
@@ -57888,7 +57915,7 @@ const _DataTable = class _DataTable extends React$2.Component {
57888
57915
  const cellNumStr2 = getNumberStrAtEnd(cellVal);
57889
57916
  const cellNum2 = Number(cellNumStr2);
57890
57917
  const cellTextNoNum = stripNumberAtEnd(cellVal);
57891
- if (cellNumStr2.startsWith("0")) {
57918
+ if (cellNumStr2 == null ? void 0 : cellNumStr2.startsWith("0")) {
57892
57919
  maybePad = cellNumStr2.length;
57893
57920
  }
57894
57921
  if (cellTextNoNum && !prefix2) {
@@ -58035,16 +58062,19 @@ const _DataTable = class _DataTable extends React$2.Component {
58035
58062
  return getIdOrCodeOrIndex(e2, i) === rowId;
58036
58063
  });
58037
58064
  const insertIndex = above ? indexToInsert : indexToInsert + 1;
58038
- let { newEnts, validationErrors } = this.formatAndValidateEntities(newEntities);
58065
+ const insertIndexToUse = appendToBottom ? entities2.length : insertIndex;
58066
+ let { newEnts, validationErrors } = this.formatAndValidateEntities(
58067
+ newEntities,
58068
+ {
58069
+ useDefaultValues: true,
58070
+ indexToStartAt: insertIndexToUse
58071
+ }
58072
+ );
58039
58073
  newEnts = newEnts.map((e2) => __spreadProps(__spreadValues({}, e2), {
58040
58074
  _isClean: true
58041
58075
  }));
58042
58076
  this.updateValidation(entities2, __spreadValues(__spreadValues({}, reduxFormCellValidation), validationErrors));
58043
- entities2.splice(
58044
- appendToBottom ? entities2.length : insertIndex,
58045
- 0,
58046
- ...newEnts
58047
- );
58077
+ entities2.splice(insertIndexToUse, 0, ...newEnts);
58048
58078
  });
58049
58079
  this.refocusTable();
58050
58080
  }, "insertRows"));
@@ -58085,8 +58115,8 @@ const _DataTable = class _DataTable extends React$2.Component {
58085
58115
  {
58086
58116
  key: "copyCell",
58087
58117
  onClick: () => {
58088
- const text2 = this.getCellCopyText(cellWrapper);
58089
- this.handleCopyHelper(text2, "Cell copied");
58118
+ const [text2, jsonText] = this.getCellCopyText(cellWrapper);
58119
+ this.handleCopyHelper(text2, jsonText, "Cell copied");
58090
58120
  },
58091
58121
  text: "Cell"
58092
58122
  }
@@ -58104,6 +58134,20 @@ const _DataTable = class _DataTable extends React$2.Component {
58104
58134
  }
58105
58135
  )
58106
58136
  );
58137
+ if (selectedRecords.length > 1) {
58138
+ copyMenuItems.push(
58139
+ /* @__PURE__ */ React$2.createElement(
58140
+ core$5.MenuItem,
58141
+ {
58142
+ key: "copyColumnSelected",
58143
+ onClick: () => {
58144
+ this.handleCopyColumn(e2, cellWrapper, selectedRecords);
58145
+ },
58146
+ text: "Column (Selected)"
58147
+ }
58148
+ )
58149
+ );
58150
+ }
58107
58151
  }
58108
58152
  if (selectedRecords.length === 0 || selectedRecords.length === 1) {
58109
58153
  const cell = e2.target.querySelector(".tg-cell-wrapper") || e2.target.closest(".tg-cell-wrapper") || e2.target.closest(".rt-td");
@@ -59357,7 +59401,8 @@ function getNumberStrAtEnd(str) {
59357
59401
  }
59358
59402
  __name(getNumberStrAtEnd, "getNumberStrAtEnd");
59359
59403
  function stripNumberAtEnd(str) {
59360
- return str.replace(getNumberStrAtEnd(str), "");
59404
+ var _a2;
59405
+ return (_a2 = str == null ? void 0 : str.replace) == null ? void 0 : _a2.call(str, getNumberStrAtEnd(str), "");
59361
59406
  }
59362
59407
  __name(stripNumberAtEnd, "stripNumberAtEnd");
59363
59408
  function isEntityClean(e2) {
@@ -61733,7 +61778,7 @@ const PreviewCsvData = observer(function(props) {
61733
61778
  } = props;
61734
61779
  const rerenderKey = React$2.useRef(0);
61735
61780
  rerenderKey.current = rerenderKey.current + 1;
61736
- const data = userSchema.userData && userSchema.userData.length && userSchema.userData.map((row) => {
61781
+ const data = userSchema.userData && userSchema.userData.length && userSchema.userData.map((row, i) => {
61737
61782
  const toRet = {
61738
61783
  _isClean: row._isClean
61739
61784
  };
@@ -61746,7 +61791,10 @@ const PreviewCsvData = observer(function(props) {
61746
61791
  }
61747
61792
  if (toRet[path2] === void 0 || toRet[path2] === "") {
61748
61793
  if (defaultValue2) {
61749
- toRet[path2] = defaultValue2;
61794
+ if (lodashExports.isFunction(defaultValue2)) {
61795
+ toRet[path2] = defaultValue2(i, row);
61796
+ } else
61797
+ toRet[path2] = defaultValue2;
61750
61798
  } else {
61751
61799
  toRet[path2] = "";
61752
61800
  }
@@ -71506,6 +71554,7 @@ function UploaderInner({
71506
71554
  overflowList,
71507
71555
  autoUnzip,
71508
71556
  disabled,
71557
+ noBuildCsvOption,
71509
71558
  initializeForm,
71510
71559
  showFilesCount,
71511
71560
  threeDotMenuItems,
@@ -71684,12 +71733,14 @@ function UploaderInner({
71684
71733
  subtext: "Includes Upload Instructions and Column Info",
71685
71734
  exampleFile: handleDownloadXlsxFile
71686
71735
  },
71687
- {
71688
- description: manualEnterMessage,
71689
- subtext: manualEnterSubMessage,
71690
- icon: "manually-entered-data",
71691
- exampleFile: handleManuallyEnterData
71692
- }
71736
+ ...noBuildCsvOption ? [] : [
71737
+ {
71738
+ description: manualEnterMessage,
71739
+ subtext: manualEnterSubMessage,
71740
+ icon: "manually-entered-data",
71741
+ exampleFile: handleManuallyEnterData
71742
+ }
71743
+ ]
71693
71744
  ];
71694
71745
  delete a2.exampleFile;
71695
71746
  }
@@ -72138,7 +72189,7 @@ function UploaderInner({
72138
72189
  },
72139
72190
  innerIcon || /* @__PURE__ */ React$2.createElement(core$5.Icon, { icon: "upload", iconSize: minimal ? 15 : 30 }),
72140
72191
  innerText || (minimal ? "Upload" : "Click or drag to upload"),
72141
- validateAgainstSchema && /* @__PURE__ */ React$2.createElement(
72192
+ validateAgainstSchema && !noBuildCsvOption && /* @__PURE__ */ React$2.createElement(
72142
72193
  "div",
72143
72194
  {
72144
72195
  style: {
@@ -77910,7 +77961,7 @@ const minimumOrfSize$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de
77910
77961
  }, Symbol.toStringTag, { value: "Module" }));
77911
77962
  const protein_letters = "ACDEFGHIKLMNPQRSTVWY";
77912
77963
  const protein_letters_withUandX = "ACDEFGHIKLMNPQRSTVWYUX";
77913
- const extended_protein_letters = "ACDEFGHIKLMNPQRSTVWYBXZJUO*";
77964
+ const extended_protein_letters = "ACDEFGHIKLMNPQRSTVWYBXZJUO";
77914
77965
  const ambiguous_dna_letters = "GATCRYWSMKHBVDN";
77915
77966
  const unambiguous_dna_letters = "GATC";
77916
77967
  const ambiguous_rna_letters = "GAUCRYWSMKHBVDN";
@@ -77966,7 +78017,7 @@ const extended_protein_values = {
77966
78017
  Y: "Y",
77967
78018
  Z: "QE",
77968
78019
  "*": "\\*\\.",
77969
- ".": "\\.\\.",
78020
+ ".": "\\.",
77970
78021
  "-": "\\-"
77971
78022
  };
77972
78023
  const bioData = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
@@ -84073,9 +84124,12 @@ function getReplaceChars({
84073
84124
  isRna: isRna2,
84074
84125
  isMixedRnaAndDna
84075
84126
  } = {}) {
84076
- return isProtein2 ? {} : isOligo2 ? {} : isRna2 ? { t: "u" } : isMixedRnaAndDna ? {} : (
84077
- //just plain old dna
84078
- {}
84127
+ return isProtein2 ? {} : (
84128
+ // {".": "*"}
84129
+ isOligo2 ? {} : isRna2 ? { t: "u" } : isMixedRnaAndDna ? {} : (
84130
+ //just plain old dna
84131
+ {}
84132
+ )
84079
84133
  );
84080
84134
  }
84081
84135
  __name(getReplaceChars, "getReplaceChars");
@@ -84811,7 +84865,9 @@ function arrayRotate(arr, count2) {
84811
84865
  }
84812
84866
  __name(arrayRotate, "arrayRotate");
84813
84867
  function rotateSequenceDataToPosition(sequenceData2, caretPosition2, options) {
84814
- const newSequenceData = tidyUpSequenceData(sequenceData2, options);
84868
+ const newSequenceData = tidyUpSequenceData(sequenceData2, __spreadValues({
84869
+ doNotRemoveInvalidChars: true
84870
+ }, options));
84815
84871
  newSequenceData.sequence = rotateBpsToPosition(
84816
84872
  newSequenceData.sequence,
84817
84873
  caretPosition2
@@ -84848,7 +84904,7 @@ function adjustAnnotationsToInsert(annotationsToBeAdjusted, insertStart, insertL
84848
84904
  __name(adjustAnnotationsToInsert, "adjustAnnotationsToInsert");
84849
84905
  function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSequenceData, caretPositionOrRange, options = {}) {
84850
84906
  const { maintainOriginSplit } = options;
84851
- let existingSequenceData = tidyUpSequenceData(_existingSequenceData, options);
84907
+ let existingSequenceData = tidyUpSequenceData(_existingSequenceData, __spreadValues({ doNotRemoveInvalidChars: true }, options));
84852
84908
  const sequenceDataToInsert = tidyUpSequenceData(
84853
84909
  _sequenceDataToInsert,
84854
84910
  options
@@ -84866,6 +84922,7 @@ function insertSequenceDataAtPositionOrRange(_sequenceDataToInsert, _existingSeq
84866
84922
  return acc[type] = [];
84867
84923
  }, {})), {
84868
84924
  sequence: "",
84925
+ doNotRemoveInvalidChars: true,
84869
84926
  proteinSequence: "",
84870
84927
  chromatogramData: void 0
84871
84928
  }),
@@ -92896,7 +92953,7 @@ function getSequenceDataBetweenRange(seqData, range2, options = {}) {
92896
92953
  if (!range2)
92897
92954
  return seqData;
92898
92955
  const { exclude = {}, excludePartial = {} } = options;
92899
- const seqDataToUse = tidyUpSequenceData(seqData, options);
92956
+ const seqDataToUse = tidyUpSequenceData(seqData, __spreadValues({ doNotRemoveInvalidChars: true }, options));
92900
92957
  annotationTypes.forEach((type) => {
92901
92958
  delete seqDataToUse[`filtered${lodashExports.startCase(type)}`];
92902
92959
  });
@@ -92947,9 +93004,9 @@ function getSequenceDataBetweenRange(seqData, range2, options = {}) {
92947
93004
  }
92948
93005
  });
92949
93006
  });
92950
- return tidyUpSequenceData(toRet, options);
93007
+ return tidyUpSequenceData(toRet, __spreadValues({ doNotRemoveInvalidChars: true }, options));
92951
93008
  }
92952
- return tidyUpSequenceData(seqDataToReturn, options);
93009
+ return tidyUpSequenceData(seqDataToReturn, __spreadValues({ doNotRemoveInvalidChars: true }, options));
92953
93010
  }
92954
93011
  __name(getSequenceDataBetweenRange, "getSequenceDataBetweenRange");
92955
93012
  function getAnnotationsBetweenRange(annotationsToBeAdjusted, range2, maxLength, shouldExcludePartial) {
@@ -92996,7 +93053,7 @@ function getComplementSequenceAndAnnotations(pSeqObj, options = {}) {
92996
93053
  const newSeqObj = Object.assign({}, seqObj, {
92997
93054
  sequence: getComplementSequenceString(seqObj.sequence, seqObj.isRna)
92998
93055
  });
92999
- return tidyUpSequenceData(newSeqObj, options);
93056
+ return tidyUpSequenceData(newSeqObj, __spreadValues({ doNotRemoveInvalidChars: true }, options));
93000
93057
  }
93001
93058
  __name(getComplementSequenceAndAnnotations, "getComplementSequenceAndAnnotations");
93002
93059
  function getCutsiteType(restrictionEnzyme) {
@@ -93044,7 +93101,7 @@ __name(getReverseComplementAnnotation, "getReverseComplementAnnotation");
93044
93101
  function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
93045
93102
  const seqObj = tidyUpSequenceData(
93046
93103
  getSequenceDataBetweenRange(pSeqObj, options.range),
93047
- options
93104
+ __spreadValues({ doNotRemoveInvalidChars: true }, options)
93048
93105
  );
93049
93106
  const newSeqObj = Object.assign(
93050
93107
  {},
@@ -93064,7 +93121,9 @@ function getReverseComplementSequenceAndAnnoations(pSeqObj, options = {}) {
93064
93121
  return acc;
93065
93122
  }, {})
93066
93123
  );
93067
- return tidyUpSequenceData(newSeqObj, options);
93124
+ return tidyUpSequenceData(newSeqObj, __spreadValues({
93125
+ doNotRemoveInvalidChars: true
93126
+ }, options));
93068
93127
  }
93069
93128
  __name(getReverseComplementSequenceAndAnnoations, "getReverseComplementSequenceAndAnnoations");
93070
93129
  function guessIfSequenceIsDnaAndNotProtein(seq, options = {}) {
@@ -94010,6 +94069,30 @@ function flattenSequenceArray(parsingResultArray, opts2) {
94010
94069
  return parsingResultArray;
94011
94070
  }
94012
94071
  __name(flattenSequenceArray, "flattenSequenceArray");
94072
+ function parseFeatureLocation(locStr, isProtein2, inclusive1BasedStart, inclusive1BasedEnd) {
94073
+ locStr = locStr.trim();
94074
+ const locArr = [];
94075
+ locStr.replace(/(\d+)/g, function(string2, match2) {
94076
+ locArr.push(match2);
94077
+ });
94078
+ const locArray = [];
94079
+ for (let i = 0; i < locArr.length; i += 2) {
94080
+ const start2 = parseInt(locArr[i], 10) - (inclusive1BasedStart ? 0 : 1);
94081
+ let end2 = parseInt(locArr[i + 1], 10) - (inclusive1BasedEnd ? 0 : 1);
94082
+ if (isNaN(end2)) {
94083
+ end2 = start2;
94084
+ }
94085
+ const location2 = {
94086
+ start: start2,
94087
+ end: end2
94088
+ };
94089
+ locArray.push(
94090
+ isProtein2 ? convertAACaretPositionOrRangeToDna(location2) : location2
94091
+ );
94092
+ }
94093
+ return locArray;
94094
+ }
94095
+ __name(parseFeatureLocation, "parseFeatureLocation");
94013
94096
  function genbankToJson(string2, options = {}) {
94014
94097
  const {
94015
94098
  inclusive1BasedStart,
@@ -94334,7 +94417,15 @@ function genbankToJson(string2, options = {}) {
94334
94417
  }
94335
94418
  if (isFeatureLineRunon(line, featureLocationIndentation)) {
94336
94419
  if (lastLineWasLocation) {
94337
- parseFeatureLocation(line.trim(), options);
94420
+ const feat = getCurrentFeature();
94421
+ feat.locations = feat.locations.concat(
94422
+ parseFeatureLocation(
94423
+ line.trim(),
94424
+ options.isProtein,
94425
+ inclusive1BasedStart,
94426
+ inclusive1BasedEnd
94427
+ )
94428
+ );
94338
94429
  lastLineWasLocation = true;
94339
94430
  } else {
94340
94431
  if (currentFeatureNote) {
@@ -94360,7 +94451,14 @@ function genbankToJson(string2, options = {}) {
94360
94451
  const feat = getCurrentFeature();
94361
94452
  feat.type = key;
94362
94453
  feat.strand = strand;
94363
- parseFeatureLocation(val2, options);
94454
+ feat.locations = feat.locations.concat(
94455
+ parseFeatureLocation(
94456
+ val2,
94457
+ options.isProtein,
94458
+ inclusive1BasedStart,
94459
+ inclusive1BasedEnd
94460
+ )
94461
+ );
94364
94462
  lastLineWasLocation = true;
94365
94463
  }
94366
94464
  }
@@ -94383,29 +94481,6 @@ function genbankToJson(string2, options = {}) {
94383
94481
  return qual;
94384
94482
  }
94385
94483
  __name(isNote, "isNote");
94386
- function parseFeatureLocation(locStr, options2) {
94387
- locStr = locStr.trim();
94388
- const locArr = [];
94389
- locStr.replace(/(\d+)/g, function(string22, match2) {
94390
- locArr.push(match2);
94391
- });
94392
- for (let i = 0; i < locArr.length; i += 2) {
94393
- const start2 = parseInt(locArr[i], 10) - (inclusive1BasedStart ? 0 : 1);
94394
- let end2 = parseInt(locArr[i + 1], 10) - (inclusive1BasedEnd ? 0 : 1);
94395
- if (isNaN(end2)) {
94396
- end2 = start2;
94397
- }
94398
- const location2 = {
94399
- start: start2,
94400
- end: end2
94401
- };
94402
- const feat = getCurrentFeature();
94403
- feat.locations.push(
94404
- options2.isProtein ? convertAACaretPositionOrRangeToDna(location2) : location2
94405
- );
94406
- }
94407
- }
94408
- __name(parseFeatureLocation, "parseFeatureLocation");
94409
94484
  function parseFeatureNote(line) {
94410
94485
  let newLine;
94411
94486
  newLine = line.trimLeft();
@@ -106659,7 +106734,9 @@ function addHighlightedDifferences(alignmentTracks) {
106659
106734
  if (track2.isUnmapped) {
106660
106735
  return track2;
106661
106736
  }
106662
- const sequenceData2 = tidyUpSequenceData(track2.sequenceData);
106737
+ const sequenceData2 = tidyUpSequenceData(track2.sequenceData, {
106738
+ doNotRemoveInvalidChars: true
106739
+ });
106663
106740
  const matchHighlightRanges = getRangeMatchesBetweenTemplateAndNonTemplate(
106664
106741
  alignmentTracks[0].alignmentData.sequence,
106665
106742
  track2.alignmentData.sequence
@@ -106719,7 +106796,9 @@ const alignments = /* @__PURE__ */ __name((state2 = {}, { payload = {}, type })
106719
106796
  const templateSeq = payloadToUse.pairwiseAlignments[0][0];
106720
106797
  const pairwiseOverviewAlignmentTracks = [
106721
106798
  __spreadProps(__spreadValues({}, templateSeq), {
106722
- sequenceData: tidyUpSequenceData(templateSeq.sequenceData),
106799
+ sequenceData: tidyUpSequenceData(templateSeq.sequenceData, {
106800
+ doNotRemoveInvalidChars: true
106801
+ }),
106723
106802
  alignmentData: { sequence: templateSeq.sequenceData.sequence }
106724
106803
  //remove the gaps from the template sequence
106725
106804
  })
@@ -106748,7 +106827,9 @@ const alignments = /* @__PURE__ */ __name((state2 = {}, { payload = {}, type })
106748
106827
  }));
106749
106828
  }
106750
106829
  const alignedSeqMinusInserts = __spreadProps(__spreadValues({}, alignedSeq), {
106751
- sequenceData: __spreadProps(__spreadValues({}, tidyUpSequenceData(alignedSeq.sequenceData)), {
106830
+ sequenceData: __spreadProps(__spreadValues({}, tidyUpSequenceData(alignedSeq.sequenceData, {
106831
+ doNotRemoveInvalidChars: true
106832
+ })), {
106752
106833
  sequence: template.sequenceData.sequence
106753
106834
  }),
106754
106835
  additionalSelectionLayers,
@@ -110700,7 +110781,7 @@ const handleSave = /* @__PURE__ */ __name((props) => (..._0) => __async(exports,
110700
110781
  }
110701
110782
  const promiseOrVal = (!readOnly2 || alwaysAllowSave || opts2.isSaveAs) && saveHandler && saveHandler(
110702
110783
  opts2,
110703
- tidyUpSequenceData(sequenceData2, { annotationsAsObjects: true }),
110784
+ tidyUpSequenceData(sequenceData2, { doNotRemoveInvalidChars: true, annotationsAsObjects: true }),
110704
110785
  props,
110705
110786
  updateLastSavedIdToCurrent
110706
110787
  );
@@ -111300,7 +111381,7 @@ function jsonToJson(incomingJson) {
111300
111381
  return JSON.stringify(
111301
111382
  lodashExports.omit(
111302
111383
  cleanUpTeselagenJsonForExport(
111303
- tidyUpSequenceData(incomingJson, { annotationsAsObjects: false })
111384
+ tidyUpSequenceData(incomingJson, { doNotRemoveInvalidChars: true, annotationsAsObjects: false })
111304
111385
  ),
111305
111386
  [
111306
111387
  "sequenceFragments",
@@ -125783,7 +125864,7 @@ function showFileDialog({ multiple = false, onSelect }) {
125783
125864
  }
125784
125865
  __name(showFileDialog, "showFileDialog");
125785
125866
  const name = "@teselagen/ove";
125786
- const version = "0.3.48";
125867
+ const version = "0.3.50";
125787
125868
  const main = "./src/index.js";
125788
125869
  const exports$1 = {
125789
125870
  ".": {
@@ -130519,7 +130600,7 @@ function VectorInteractionHOC(Component) {
130519
130600
  }
130520
130601
  }
130521
130602
  ),
130522
- { annotationsAsObjects: true }
130603
+ { doNotRemoveInvalidChars: true, annotationsAsObjects: true }
130523
130604
  );
130524
130605
  if (!(this.sequenceDataToCopy || {}).textToCopy && !seqData.sequence.length)
130525
130606
  return window.toastr.warning(
@@ -130535,7 +130616,7 @@ function VectorInteractionHOC(Component) {
130535
130616
  this.handleDnaDelete(false);
130536
130617
  onCut(
130537
130618
  e2,
130538
- tidyUpSequenceData(seqData, { annotationsAsObjects: true }),
130619
+ tidyUpSequenceData(seqData, { doNotRemoveInvalidChars: true, annotationsAsObjects: true }),
130539
130620
  this.props
130540
130621
  );
130541
130622
  document.body.removeEventListener("cut", this.handleCut);