@linzjs/step-ag-grid 6.0.0 → 6.1.1

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.
@@ -1393,15 +1393,15 @@ var ControlledMenuFr = function (_a, externalRef) {
1393
1393
  var lastInputEl = inputEls[inputEls.length - 1];
1394
1394
  if (activeElement !== firstInputEl && activeElement !== lastInputEl)
1395
1395
  return;
1396
- var suppressAutoSaveEvents = activeElement.getAttribute("data-suppressAutoSaveEvents");
1396
+ var isTextArea = activeElement.nodeName === "TEXTAREA";
1397
+ var suppressEnterAutoSave = activeElement.getAttribute("data-disableEnterAutoSave") || isTextArea;
1397
1398
  var invokeSave = function (reason) {
1398
1399
  var _a, _b;
1399
- if (!(saveButtonRef === null || saveButtonRef === void 0 ? void 0 : saveButtonRef.current) || suppressAutoSaveEvents)
1400
+ if (!(saveButtonRef === null || saveButtonRef === void 0 ? void 0 : saveButtonRef.current))
1400
1401
  return;
1401
1402
  (_a = saveButtonRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute("data-reason", reason);
1402
1403
  (_b = saveButtonRef === null || saveButtonRef === void 0 ? void 0 : saveButtonRef.current) === null || _b === void 0 ? void 0 : _b.click();
1403
1404
  };
1404
- var isTextArea = activeElement.nodeName === "TEXTAREA";
1405
1405
  switch (activeElement.nodeName) {
1406
1406
  case "TEXTAREA":
1407
1407
  case "INPUT": {
@@ -1418,7 +1418,7 @@ var ControlledMenuFr = function (_a, externalRef) {
1418
1418
  invokeSave(ev.shiftKey ? CloseReason.TAB_BACKWARD : CloseReason.TAB_FORWARD);
1419
1419
  }
1420
1420
  }
1421
- if (ev.key === "Enter" && !isTextArea) {
1421
+ if (ev.key === "Enter" && !suppressEnterAutoSave) {
1422
1422
  ev.preventDefault();
1423
1423
  ev.stopPropagation();
1424
1424
  if (isDown) {
@@ -1441,7 +1441,7 @@ var ControlledMenuFr = function (_a, externalRef) {
1441
1441
  lastTabDownEl.current == activeElement && invokeSave(CloseReason.TAB_FORWARD);
1442
1442
  }
1443
1443
  }
1444
- if (ev.key === "Enter" && !isTextArea) {
1444
+ if (ev.key === "Enter" && !suppressEnterAutoSave) {
1445
1445
  ev.preventDefault();
1446
1446
  ev.stopPropagation();
1447
1447
  if (isDown) {
@@ -3094,14 +3094,16 @@ var GridFormDropDown = function (props) {
3094
3094
  var optionsInitialising = useRef(false);
3095
3095
  var _d = useState(null), options = _d[0], setOptions = _d[1];
3096
3096
  var subComponentIsValid = useRef(false);
3097
- var _e = useState(), subSelectedValue = _e[0], setSubSelectedValue = _e[1];
3097
+ var subComponentInitialValue = useRef(null);
3098
+ var _e = useState(null), subSelectedValue = _e[0], setSubSelectedValue = _e[1];
3098
3099
  var _f = useState(null), selectedSubComponent = _f[0], setSelectedSubComponent = _f[1];
3099
3100
  var selectItemHandler = useCallback(function (value, subComponentValue) { return __awaiter(void 0, void 0, void 0, function () {
3100
3101
  var hasChanged;
3101
3102
  return __generator(this, function (_a) {
3102
3103
  switch (_a.label) {
3103
3104
  case 0:
3104
- hasChanged = selectedRows.some(function (row) { return row[field] !== value; });
3105
+ hasChanged = selectedRows.some(function (row) { return row[field] !== value; }) ||
3106
+ (subComponentValue !== undefined && subComponentInitialValue.current !== JSON.stringify(subComponentValue));
3105
3107
  if (!hasChanged) return [3 /*break*/, 3];
3106
3108
  if (!props.onSelectedItem) return [3 /*break*/, 2];
3107
3109
  return [4 /*yield*/, props.onSelectedItem({ selectedRows: selectedRows, value: value, subComponentValue: subComponentValue })];
@@ -3277,15 +3279,10 @@ var GridFormDropDown = function (props) {
3277
3279
  var _a;
3278
3280
  return item.value === MenuSeparatorString ? (jsx(MenuDivider, {}, "$$divider_".concat(index))) : item.value === MenuHeaderString ? (jsx(MenuHeader, { children: item.label }, "$$header_".concat(index))) : filteredValues.includes(item.value) ? null : (jsxs("div", { children: [jsxs(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onClick: function (e) {
3279
3281
  if (item.subComponent) {
3280
- if (selectedSubComponent === item) {
3281
- // toggle selection off
3282
- setSelectedSubComponent(null);
3283
- subComponentIsValid.current = true;
3284
- }
3285
- else {
3286
- // toggle selection on
3287
- setSelectedSubComponent(item);
3288
- }
3282
+ // toggle selection
3283
+ setSelectedSubComponent(selectedSubComponent === item ? null : item);
3284
+ subComponentIsValid.current = true;
3285
+ subComponentInitialValue.current = null;
3289
3286
  e.keepOpen = true;
3290
3287
  }
3291
3288
  else {
@@ -3300,6 +3297,10 @@ var GridFormDropDown = function (props) {
3300
3297
  value: subSelectedValue,
3301
3298
  setValue: function (value) {
3302
3299
  setSubSelectedValue(value);
3300
+ if (subComponentInitialValue.current === null) {
3301
+ // copy the default value of the sub-component so we can change detect on save
3302
+ subComponentInitialValue.current = JSON.stringify(value);
3303
+ }
3303
3304
  },
3304
3305
  setValid: function (valid) {
3305
3306
  subComponentIsValid.current = valid;