@linzjs/step-ag-grid 1.4.10 → 1.5.0

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.
@@ -20,6 +20,7 @@ export interface GridFormPopoutDropDownProps<RowType extends GridBaseRow, ValueT
20
20
  filtered?: "local" | "reload";
21
21
  filterPlaceholder?: string;
22
22
  onSelectedItem?: (props: GridPopoutEditDropDownSelectedItem<RowType, ValueType>) => Promise<void>;
23
+ onSelectFilter?: (props: GridPopoutEditDropDownSelectedItem<RowType, string>) => Promise<void>;
23
24
  options: SelectOption<ValueType>[] | ((selectedRows: RowType[], filter?: string) => Promise<SelectOption<ValueType>[]> | SelectOption<ValueType>[]);
24
25
  optionsRequestCancel?: () => void;
25
26
  }
@@ -2954,6 +2954,29 @@ var GridFormDropDown = function (props) {
2954
2954
  }
2955
2955
  });
2956
2956
  }); }, [formProps, props.field, props.selectedRows, updatingCells]);
2957
+ var selectFilterHandler = useCallback(function (value) { return __awaiter(void 0, void 0, void 0, function () {
2958
+ var field;
2959
+ return __generator(this, function (_a) {
2960
+ switch (_a.label) {
2961
+ case 0:
2962
+ field = props.field;
2963
+ return [4 /*yield*/, updatingCells({ selectedRows: props.selectedRows, field: field }, function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
2964
+ return __generator(this, function (_a) {
2965
+ switch (_a.label) {
2966
+ case 0:
2967
+ if (!formProps.onSelectFilter) return [3 /*break*/, 2];
2968
+ return [4 /*yield*/, formProps.onSelectFilter({ selectedRows: selectedRows, value: value })];
2969
+ case 1:
2970
+ _a.sent();
2971
+ _a.label = 2;
2972
+ case 2: return [2 /*return*/, true];
2973
+ }
2974
+ });
2975
+ }); })];
2976
+ case 1: return [2 /*return*/, _a.sent()];
2977
+ }
2978
+ });
2979
+ }); }, [formProps, props.field, props.selectedRows, updatingCells]);
2957
2980
  // Load up options list if it's async function
2958
2981
  useEffect(function () {
2959
2982
  var _a;
@@ -3028,22 +3051,29 @@ var GridFormDropDown = function (props) {
3028
3051
  case 0:
3029
3052
  if (!options)
3030
3053
  return [2 /*return*/];
3031
- if (!(e.key == "Enter" || e.key == "Tab")) return [3 /*break*/, 3];
3054
+ if (!(e.key == "Enter" || e.key == "Tab")) return [3 /*break*/, 5];
3032
3055
  activeOptions = options.filter(function (option) { return !filteredValues.includes(option.value); });
3033
3056
  if (!(activeOptions.length == 1)) return [3 /*break*/, 2];
3034
3057
  return [4 /*yield*/, selectItemHandler(activeOptions[0].value)];
3035
3058
  case 1:
3036
3059
  _a.sent();
3037
3060
  stopEditing();
3038
- return [3 /*break*/, 3];
3061
+ return [3 /*break*/, 5];
3039
3062
  case 2:
3063
+ if (!formProps.onSelectFilter) return [3 /*break*/, 4];
3064
+ return [4 /*yield*/, selectFilterHandler(filter)];
3065
+ case 3:
3066
+ _a.sent();
3067
+ stopEditing();
3068
+ return [3 /*break*/, 5];
3069
+ case 4:
3040
3070
  e.preventDefault();
3041
3071
  e.stopPropagation();
3042
- _a.label = 3;
3043
- case 3: return [2 /*return*/];
3072
+ _a.label = 5;
3073
+ case 5: return [2 /*return*/];
3044
3074
  }
3045
3075
  });
3046
- }); }, [filteredValues, options, selectItemHandler, stopEditing]);
3076
+ }); }, [filteredValues, options, selectItemHandler, selectFilterHandler, stopEditing, filter, formProps]);
3047
3077
  return popoverWrapper(jsxs(Fragment$1, { children: [formProps.filtered && (jsxs(Fragment$1, { children: [jsx(FocusableItem, __assign({ className: "filter-item" }, { children: function (_a) {
3048
3078
  var _b;
3049
3079
  var ref = _a.ref;