@linzjs/step-ag-grid 8.2.2 → 8.3.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.
@@ -2840,6 +2840,20 @@ var Grid = function (params) {
2840
2840
  useEffect(function () {
2841
2841
  updateQuickFilter();
2842
2842
  }, [updateQuickFilter]);
2843
+ var combineEditables = function () {
2844
+ var editables = [];
2845
+ for (var _i = 0; _i < arguments.length; _i++) {
2846
+ editables[_i] = arguments[_i];
2847
+ }
2848
+ return function (params) {
2849
+ var results = editables.map(function (editable) { return fnOrVar(editable, params); });
2850
+ // If editable is not set anywhere then it's non-editable
2851
+ if (results.every(function (v) { return v == null; }))
2852
+ return false;
2853
+ // If any editable value is or returns false then it's non-editable
2854
+ return !results.some(function (v) { return v == false; });
2855
+ };
2856
+ };
2843
2857
  /**
2844
2858
  * Synchronise externally selected items to grid on externalSelectedItems change
2845
2859
  */
@@ -2848,21 +2862,18 @@ var Grid = function (params) {
2848
2862
  }, [synchroniseExternallySelectedItemsToGrid]);
2849
2863
  var columnDefs = useMemo(function () {
2850
2864
  var adjustColDefs = params.columnDefs.map(function (colDef) {
2851
- var _a, _b;
2852
- return __assign(__assign({}, colDef), { editable: params.readOnly ? false : (_b = (_a = params.defaultColDef) === null || _a === void 0 ? void 0 : _a.editable) !== null && _b !== void 0 ? _b : colDef.editable, cellClassRules: __assign(__assign({}, colDef.cellClassRules), { "GridCell-readonly": function (ccp) {
2853
- var _a, _b;
2854
- return (params.readOnly != null || !params.readOnly) &&
2855
- !fnOrVar((_b = (_a = params.defaultColDef) === null || _a === void 0 ? void 0 : _a.editable) !== null && _b !== void 0 ? _b : colDef.editable, ccp);
2856
- } }) });
2865
+ var _a;
2866
+ var colDefEditable = colDef.editable;
2867
+ var editable = combineEditables(params.readOnly !== false, (_a = params.defaultColDef) === null || _a === void 0 ? void 0 : _a.editable, colDefEditable);
2868
+ return __assign(__assign({}, colDef), { editable: editable, cellClassRules: __assign(__assign({}, colDef.cellClassRules), { "GridCell-readonly": function (ccp) { return !editable(ccp); } }) });
2857
2869
  });
2858
2870
  return params.selectable
2859
2871
  ? __spreadArray([
2860
2872
  {
2861
2873
  colId: "selection",
2862
2874
  editable: false,
2863
- initialWidth: 35,
2864
- minWidth: 35,
2865
- maxWidth: 35,
2875
+ minWidth: 42,
2876
+ maxWidth: 42,
2866
2877
  suppressSizeToFit: true,
2867
2878
  checkboxSelection: true,
2868
2879
  headerComponent: GridHeaderSelect,
@@ -3007,13 +3018,13 @@ var suppressCellKeyboardEvents = function (e) {
3007
3018
  return !["ArrowLeft", "ArrowRight", "ArrowDown", "ArrowUp", "Tab", " ", "Home", "End", "PageUp", "PageDown"].includes(e.event.key);
3008
3019
  };
3009
3020
  /*
3010
- * All cells should use this
3021
+ * All cells should use this.
3011
3022
  */
3012
3023
  var GridCell = function (props, custom) {
3013
- var _a;
3014
- return __assign(__assign(__assign(__assign(__assign(__assign({ colId: props.field, sortable: !!((props === null || props === void 0 ? void 0 : props.field) || (props === null || props === void 0 ? void 0 : props.valueGetter)), resizable: true }, ((custom === null || custom === void 0 ? void 0 : custom.editor) && {
3024
+ var _a, _b;
3025
+ return __assign(__assign(__assign(__assign(__assign(__assign({ colId: props.field, sortable: !!((props === null || props === void 0 ? void 0 : props.field) || (props === null || props === void 0 ? void 0 : props.valueGetter)), resizable: true, editable: (_a = props.editable) !== null && _a !== void 0 ? _a : false }, ((custom === null || custom === void 0 ? void 0 : custom.editor) && {
3015
3026
  cellClassRules: GridCellMultiSelectClassRules,
3016
- editable: (_a = props.editable) !== null && _a !== void 0 ? _a : true,
3027
+ editable: (_b = props.editable) !== null && _b !== void 0 ? _b : true,
3017
3028
  cellEditor: GenericCellEditorComponentWrapper(custom === null || custom === void 0 ? void 0 : custom.editor)
3018
3029
  })), { suppressKeyboardEvent: suppressCellKeyboardEvents }), ((custom === null || custom === void 0 ? void 0 : custom.editorParams) && {
3019
3030
  cellEditorParams: __assign(__assign({}, custom.editorParams), { multiEdit: custom.multiEdit })
@@ -3425,6 +3436,22 @@ var GridFormDropDown = function (props) {
3425
3436
  }
3426
3437
  });
3427
3438
  }); }, [filter, filteredValues, options, props, selectItemHandler, selectedItem, selectedRows, subSelectedValue]);
3439
+ var onMouseEnterFocus = useCallback(function (item) {
3440
+ setSelectedItem(item);
3441
+ if (item.subComponent) {
3442
+ subComponentIsValid.current = true;
3443
+ subComponentInitialValue.current = null;
3444
+ }
3445
+ else {
3446
+ setSubSelectedValue(null);
3447
+ subComponentIsValid.current = true;
3448
+ }
3449
+ }, []);
3450
+ var onMouseLeaveFocus = useCallback(function () {
3451
+ setSelectedItem(null);
3452
+ setSubSelectedValue(null);
3453
+ subComponentIsValid.current = true;
3454
+ }, []);
3428
3455
  var popoverWrapper = useGridPopoverHook({
3429
3456
  className: props.className,
3430
3457
  invalid: function () { return !!(selectedItem && !subComponentIsValid.current); },
@@ -3457,18 +3484,7 @@ var GridFormDropDown = function (props) {
3457
3484
  lastHeader = null;
3458
3485
  }
3459
3486
  }
3460
- return ((!filteredValues || filteredValues.includes(item)) && (jsxs(Fragment$1, { children: [showHeader, jsxs("div", { children: [jsxs(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onFocus: function () {
3461
- setSelectedItem(item);
3462
- if (item.subComponent) {
3463
- setSelectedItem(item);
3464
- subComponentIsValid.current = true;
3465
- subComponentInitialValue.current = null;
3466
- }
3467
- else {
3468
- setSubSelectedValue(null);
3469
- subComponentIsValid.current = true;
3470
- }
3471
- }, onClick: function (e) {
3487
+ return ((!filteredValues || filteredValues.includes(item)) && (jsxs(Fragment$1, { children: [showHeader, jsxs("div", { children: [jsxs(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onFocus: function () { return onMouseEnterFocus(item); }, onMouseEnter: function () { return onMouseEnterFocus(item); }, onMouseLeave: onMouseLeaveFocus, onClick: function (e) {
3472
3488
  if (item.subComponent) {
3473
3489
  e.keepOpen = true;
3474
3490
  }
@@ -4023,7 +4039,7 @@ var GridFormPopoverMenu = function (props) {
4023
4039
  * Popout burger menu
4024
4040
  */
4025
4041
  var GridPopoverMenu = function (colDef, custom) {
4026
- return GridCell(__assign(__assign({ minWidth: 40, maxWidth: 40, width: 40, editable: colDef.editable != null ? colDef.editable : true, cellStyle: { justifyContent: "center" }, cellRenderer: GridRenderPopoutMenuCell }, colDef), { cellRendererParams: {
4042
+ return GridCell(__assign(__assign({ minWidth: 48, maxWidth: 48, width: 40, editable: colDef.editable != null ? colDef.editable : true, cellStyle: { justifyContent: "center" }, cellRenderer: GridRenderPopoutMenuCell }, colDef), { cellRendererParams: {
4027
4043
  // Menus open on single click, this parameter is picked up in Grid.tsx
4028
4044
  singleClickEdit: true
4029
4045
  } }), __assign({ editor: GridFormPopoverMenu }, custom));