@linzjs/step-ag-grid 7.8.0 → 7.9.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.
@@ -2,6 +2,7 @@
2
2
  import { ICellRendererParams } from "ag-grid-community";
3
3
  import { GridBaseRow } from "../Grid";
4
4
  import { ColDefT } from "../GridCell";
5
+ import { SuppressKeyboardEventParams } from "ag-grid-community/dist/lib/entities/colDef";
5
6
  export interface RowICellRendererParams<RowType extends GridBaseRow> extends ICellRendererParams {
6
7
  data: RowType;
7
8
  }
@@ -10,8 +11,9 @@ export interface GenericCellColDef<RowType extends GridBaseRow> extends ColDefT<
10
11
  }
11
12
  export interface GenericCellRendererParams<RowType extends GridBaseRow> {
12
13
  singleClickEdit?: boolean;
13
- editableIcon?: JSX.Element | undefined;
14
+ rightHoverElement?: JSX.Element | undefined;
14
15
  editAction?: (selectedRows: RowType[]) => void;
16
+ shortcutKeys?: Record<string, ((params: SuppressKeyboardEventParams) => boolean | void) | undefined>;
15
17
  warning?: (props: RowICellRendererParams<RowType>) => string | boolean | null | undefined;
16
18
  info?: (props: RowICellRendererParams<RowType>) => string | boolean | null | undefined;
17
19
  }
@@ -2794,18 +2794,8 @@ var Grid = function (params) {
2794
2794
  }
2795
2795
  }, [checkUpdating]);
2796
2796
  var onCellDoubleClick = useCallback(function (event) {
2797
- var _a, _b, _c, _d, _e;
2798
- var editable = fnOrVar((_a = event.colDef) === null || _a === void 0 ? void 0 : _a.editable, event);
2799
- if (!editable)
2800
- return;
2801
- var editAction = (_c = (_b = event.colDef) === null || _b === void 0 ? void 0 : _b.cellRendererParams) === null || _c === void 0 ? void 0 : _c.editAction;
2802
- if (editAction) {
2803
- // Clicked row comes first in selected rows
2804
- editAction(__spreadArray([event.data], event.api.getSelectedRows().filter(function (row) { return row.id !== event.data.id; }), true));
2805
- }
2806
- else if (!((_e = (_d = event.colDef) === null || _d === void 0 ? void 0 : _d.cellRendererParams) === null || _e === void 0 ? void 0 : _e.singleClickEdit)) {
2797
+ if (!invokeEditAction(event))
2807
2798
  startCellEditing(event);
2808
- }
2809
2799
  }, [startCellEditing]);
2810
2800
  var onCellClicked = useCallback(function (event) {
2811
2801
  var _a, _b;
@@ -2813,9 +2803,20 @@ var Grid = function (params) {
2813
2803
  startCellEditing(event);
2814
2804
  }
2815
2805
  }, [startCellEditing]);
2806
+ var invokeEditAction = function (e) {
2807
+ var _a, _b, _c;
2808
+ var editAction = (_b = (_a = e.colDef) === null || _a === void 0 ? void 0 : _a.cellRendererParams) === null || _b === void 0 ? void 0 : _b.editAction;
2809
+ if (!editAction)
2810
+ return false;
2811
+ var editable = fnOrVar((_c = e.colDef) === null || _c === void 0 ? void 0 : _c.editable, e);
2812
+ editable && editAction(__spreadArray([e.data], e.api.getSelectedRows().filter(function (row) { return row.id !== e.data.id; }), true));
2813
+ return true;
2814
+ };
2816
2815
  var onCellKeyPress = useCallback(function (e) {
2817
- if (e.event.key === "Enter")
2818
- startCellEditing(e);
2816
+ if (e.event.key === "Enter") {
2817
+ if (!invokeEditAction(e))
2818
+ startCellEditing(e);
2819
+ }
2819
2820
  }, [startCellEditing]);
2820
2821
  var onCellEditingStopped = useCallback(function (event) {
2821
2822
  refreshSelectedRows(event);
@@ -2860,7 +2861,7 @@ var GridCellRenderer = function (props) {
2860
2861
  var warningText = warningFn ? warningFn(props) : undefined;
2861
2862
  var infoFn = rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.info;
2862
2863
  var infoText = infoFn ? infoFn(props) : undefined;
2863
- return (jsx(GridLoadableCell, __assign({ isLoading: checkUpdating((_b = (_a = colDef.field) !== null && _a !== void 0 ? _a : colDef.colId) !== null && _b !== void 0 ? _b : "", props.data.id) }, { children: jsxs(Fragment$1, { children: [typeof warningText === "string" && jsx(GridIcon, { icon: "ic_warning", title: warningText }), typeof infoText === "string" && jsx(GridIcon, { icon: "ic_info", title: infoText }), jsx("div", __assign({ style: { display: "flex", flex: 1, overflow: "hidden" } }, { children: ((_c = colDef === null || colDef === void 0 ? void 0 : colDef.cellRendererParams) === null || _c === void 0 ? void 0 : _c.originalCellRenderer) ? (jsx(colDef.cellRendererParams.originalCellRenderer, __assign({}, props))) : (jsx("span", __assign({ title: props.valueFormatted }, { children: props.valueFormatted }))) })), fnOrVar((_d = props.colDef) === null || _d === void 0 ? void 0 : _d.editable, props) && (rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.editableIcon) && (jsx("div", __assign({ style: { display: "flex", alignItems: "center" } }, { children: rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.editableIcon })))] }) })));
2864
+ return (jsx(GridLoadableCell, __assign({ isLoading: checkUpdating((_b = (_a = colDef.field) !== null && _a !== void 0 ? _a : colDef.colId) !== null && _b !== void 0 ? _b : "", props.data.id) }, { children: jsxs(Fragment$1, { children: [typeof warningText === "string" && jsx(GridIcon, { icon: "ic_warning", title: warningText }), typeof infoText === "string" && jsx(GridIcon, { icon: "ic_info", title: infoText }), jsx("div", __assign({ style: { display: "flex", flex: 1, overflow: "hidden" } }, { children: ((_c = colDef === null || colDef === void 0 ? void 0 : colDef.cellRendererParams) === null || _c === void 0 ? void 0 : _c.originalCellRenderer) ? (jsx(colDef.cellRendererParams.originalCellRenderer, __assign({}, props))) : (jsx("span", __assign({ title: props.valueFormatted }, { children: props.valueFormatted }))) })), fnOrVar((_d = props.colDef) === null || _d === void 0 ? void 0 : _d.editable, props) && (rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.rightHoverElement) && (jsx("div", __assign({ style: { display: "flex", alignItems: "center" } }, { children: rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.rightHoverElement })))] }) })));
2864
2865
  };
2865
2866
  /*
2866
2867
  * All cells should use this
@@ -2872,6 +2873,13 @@ var GridCell = function (props, custom) {
2872
2873
  editable: (_a = props.editable) !== null && _a !== void 0 ? _a : true,
2873
2874
  cellEditor: GenericCellEditorComponentWrapper(custom)
2874
2875
  })), { suppressKeyboardEvent: function (e) {
2876
+ var _a, _b, _c, _d;
2877
+ var shortcutKeys = (_b = (_a = e.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.shortcutKeys) !== null && _b !== void 0 ? _b : {};
2878
+ var exec = shortcutKeys[e.event.key];
2879
+ if (!e.editing && !e.event.repeat && e.event.type === "keypress" && exec) {
2880
+ var editable = fnOrVar((_c = e.colDef) === null || _c === void 0 ? void 0 : _c.editable, e);
2881
+ return editable ? (_d = exec(e)) !== null && _d !== void 0 ? _d : true : true;
2882
+ }
2875
2883
  // It's important that aggrid doesn't trigger edit on enter
2876
2884
  // as the incorrect selected rows will be returned
2877
2885
  return !["ArrowLeft", "ArrowRight", "ArrowDown", "ArrowUp", "Tab", " "].includes(e.event.key);
@@ -3910,7 +3918,7 @@ var bearingCorrectionValueFormatter = function (params) {
3910
3918
  if (typeof value === "string") {
3911
3919
  return convertDDToDMS(bearingNumberParser(value), true, true);
3912
3920
  }
3913
- return convertDDToDMS(value, true, true);
3921
+ return convertDDToDMS(value, true, false);
3914
3922
  };
3915
3923
  var bearingNumberParser = function (value) {
3916
3924
  if (value === "")