@linzjs/step-ag-grid 6.1.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.
package/dist/index.js CHANGED
@@ -3096,14 +3096,16 @@ var GridFormDropDown = function (props) {
3096
3096
  var optionsInitialising = react.useRef(false);
3097
3097
  var _d = react.useState(null), options = _d[0], setOptions = _d[1];
3098
3098
  var subComponentIsValid = react.useRef(false);
3099
- var _e = react.useState(), subSelectedValue = _e[0], setSubSelectedValue = _e[1];
3099
+ var subComponentInitialValue = react.useRef(null);
3100
+ var _e = react.useState(null), subSelectedValue = _e[0], setSubSelectedValue = _e[1];
3100
3101
  var _f = react.useState(null), selectedSubComponent = _f[0], setSelectedSubComponent = _f[1];
3101
3102
  var selectItemHandler = react.useCallback(function (value, subComponentValue) { return __awaiter(void 0, void 0, void 0, function () {
3102
3103
  var hasChanged;
3103
3104
  return __generator(this, function (_a) {
3104
3105
  switch (_a.label) {
3105
3106
  case 0:
3106
- hasChanged = selectedRows.some(function (row) { return row[field] !== value; });
3107
+ hasChanged = selectedRows.some(function (row) { return row[field] !== value; }) ||
3108
+ (subComponentValue !== undefined && subComponentInitialValue.current !== JSON.stringify(subComponentValue));
3107
3109
  if (!hasChanged) return [3 /*break*/, 3];
3108
3110
  if (!props.onSelectedItem) return [3 /*break*/, 2];
3109
3111
  return [4 /*yield*/, props.onSelectedItem({ selectedRows: selectedRows, value: value, subComponentValue: subComponentValue })];
@@ -3279,15 +3281,10 @@ var GridFormDropDown = function (props) {
3279
3281
  var _a;
3280
3282
  return item.value === MenuSeparatorString ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : item.value === MenuHeaderString ? (jsxRuntime.jsx(MenuHeader, { children: item.label }, "$$header_".concat(index))) : filteredValues.includes(item.value) ? null : (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onClick: function (e) {
3281
3283
  if (item.subComponent) {
3282
- if (selectedSubComponent === item) {
3283
- // toggle selection off
3284
- setSelectedSubComponent(null);
3285
- subComponentIsValid.current = true;
3286
- }
3287
- else {
3288
- // toggle selection on
3289
- setSelectedSubComponent(item);
3290
- }
3284
+ // toggle selection
3285
+ setSelectedSubComponent(selectedSubComponent === item ? null : item);
3286
+ subComponentIsValid.current = true;
3287
+ subComponentInitialValue.current = null;
3291
3288
  e.keepOpen = true;
3292
3289
  }
3293
3290
  else {
@@ -3302,6 +3299,10 @@ var GridFormDropDown = function (props) {
3302
3299
  value: subSelectedValue,
3303
3300
  setValue: function (value) {
3304
3301
  setSubSelectedValue(value);
3302
+ if (subComponentInitialValue.current === null) {
3303
+ // copy the default value of the sub-component so we can change detect on save
3304
+ subComponentInitialValue.current = JSON.stringify(value);
3305
+ }
3305
3306
  },
3306
3307
  setValid: function (valid) {
3307
3308
  subComponentIsValid.current = valid;