@linzjs/step-ag-grid 2.1.1 → 2.1.3

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.
Files changed (57) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +16 -11
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/components/Grid.d.ts +1 -0
  5. package/dist/src/components/GridCell.d.ts +1 -1
  6. package/dist/src/components/gridForm/GridFormEditBearing.d.ts +1 -1
  7. package/dist/src/components/gridForm/GridFormMessage.d.ts +1 -1
  8. package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +1 -1
  9. package/dist/src/components/gridForm/GridFormPopoutMenu.d.ts +1 -1
  10. package/dist/src/components/gridForm/GridFormTextArea.d.ts +1 -1
  11. package/dist/src/components/gridForm/GridFormTextInput.d.ts +1 -1
  12. package/dist/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.d.ts +1 -1
  13. package/dist/src/components/gridPopoverEdit/GridPopoverEditBearing.d.ts +1 -1
  14. package/dist/src/components/gridPopoverEdit/GridPopoverEditDropDown.d.ts +1 -1
  15. package/dist/src/components/gridPopoverEdit/GridPopoverMenu.d.ts +1 -1
  16. package/dist/src/components/gridPopoverEdit/GridPopoverMessage.d.ts +1 -1
  17. package/dist/src/components/gridPopoverEdit/GridPopoverTextArea.d.ts +1 -1
  18. package/dist/src/components/gridPopoverEdit/GridPopoverTextInput.d.ts +1 -1
  19. package/dist/src/components/gridRender/GridRenderGenericCell.d.ts +1 -1
  20. package/dist/src/contexts/GridContext.d.ts +1 -1
  21. package/dist/src/index.d.ts +28 -28
  22. package/dist/step-ag-grid.esm.js +16 -11
  23. package/dist/step-ag-grid.esm.js.map +1 -1
  24. package/package.json +3 -2
  25. package/src/components/Grid.tsx +5 -4
  26. package/src/components/GridCell.tsx +7 -7
  27. package/src/components/GridPopoverHook.tsx +3 -3
  28. package/src/components/PostSortRowsHook.ts +8 -2
  29. package/src/components/gridForm/GridFormDropDown.tsx +2 -2
  30. package/src/components/gridForm/GridFormEditBearing.tsx +2 -2
  31. package/src/components/gridForm/GridFormMessage.tsx +1 -1
  32. package/src/components/gridForm/GridFormMultiSelect.tsx +3 -3
  33. package/src/components/gridForm/GridFormPopoutMenu.tsx +3 -3
  34. package/src/components/gridForm/GridFormTextArea.tsx +1 -1
  35. package/src/components/gridForm/GridFormTextInput.tsx +1 -1
  36. package/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts +1 -3
  37. package/src/components/gridPopoverEdit/GridPopoverEditBearing.ts +2 -4
  38. package/src/components/gridPopoverEdit/GridPopoverEditDropDown.ts +1 -3
  39. package/src/components/gridPopoverEdit/GridPopoverMenu.tsx +1 -1
  40. package/src/components/gridPopoverEdit/GridPopoverMessage.ts +1 -1
  41. package/src/components/gridPopoverEdit/GridPopoverTextArea.ts +1 -1
  42. package/src/components/gridPopoverEdit/GridPopoverTextInput.ts +1 -1
  43. package/src/components/gridRender/GridRenderGenericCell.tsx +2 -2
  44. package/src/components/gridRender/GridRenderPopoutMenuCell.tsx +1 -1
  45. package/src/contexts/GridContext.tsx +1 -1
  46. package/src/contexts/GridContextProvider.tsx +2 -2
  47. package/src/contexts/GridPopoverContextProvider.tsx +2 -2
  48. package/src/index.ts +28 -28
  49. package/src/react-menu3/components/ControlledMenu.tsx +1 -1
  50. package/src/stories/components/FormTest.tsx +4 -4
  51. package/src/stories/components/GridPopoutBearing.stories.tsx +6 -6
  52. package/src/stories/components/GridPopoutEditDropDown.stories.tsx +7 -7
  53. package/src/stories/components/GridPopoutEditGeneric.stories.tsx +4 -4
  54. package/src/stories/components/GridPopoutEditGenericTextArea.stories.tsx +7 -7
  55. package/src/stories/components/GridPopoutEditMultiSelect.stories.tsx +9 -9
  56. package/src/stories/components/GridReadOnly.stories.tsx +7 -7
  57. package/src/stories/components/ReactMenu.stories.tsx +2 -2
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.
4
4
 
5
- Storybook deployed at: https://linz.github.io/step-ag-grid/ (private to LINZ)
6
-
7
5
  ## Features
8
6
 
9
7
  - [ag-grid-community](https://www.npmjs.com/package/ag-grid-community) based grid with custom popover components
@@ -39,6 +37,8 @@ yarn add @linz/step-ag-grid
39
37
  npm run storybook
40
38
  ```
41
39
 
40
+ Storybook demo deployed at: https://linz.github.io/step-ag-grid/
41
+
42
42
  ## Usage
43
43
 
44
44
  ```tsx
package/dist/index.js CHANGED
@@ -2218,7 +2218,11 @@ var usePostSortRowsHook = function (_a) {
2218
2218
  var restorePreviousSortColumnState = function () { return columnApi.applyColumnState({ state: previousColSort.current }); };
2219
2219
  var hasNewRows = function () { return nodes.some(function (row) { return previousRowSortIndex[row.data.id] == null; }); };
2220
2220
  var sortIsStale = function () {
2221
- return !hasNewRows() && nodes.some(function (row, index) { var _a; return ![null, index].includes((_a = previousRowSortIndex[row.data.id]) !== null && _a !== void 0 ? _a : null); });
2221
+ // If there are new rows we want to them to be at the bottom of the grid, so we treat it as sort not stale
2222
+ if (hasNewRows())
2223
+ return false;
2224
+ // Otherwise check if the stored sort index matches the new sort index
2225
+ return nodes.some(function (node, index) { return previousRowSortIndex[node.data.id] != index; });
2222
2226
  };
2223
2227
  var sortNodesByPreviousSort = function () {
2224
2228
  return nodes.sort(function (a, b) {
@@ -2274,6 +2278,7 @@ var usePostSortRowsHook = function (_a) {
2274
2278
  if (!sortWasStale.current) {
2275
2279
  // backup sort state, so we can restore it when sort is clicked on a stale column
2276
2280
  previousColSort.current = copyCurrentSortSettings();
2281
+ backupSortOrder();
2277
2282
  sortWasStale.current = true;
2278
2283
  setStaleGrid(true);
2279
2284
  }
@@ -2323,12 +2328,12 @@ var GridHeaderSelect = function (_a) {
2323
2328
  * Wrapper for AgGrid to add commonly used functionality.
2324
2329
  */
2325
2330
  var Grid = function (params) {
2326
- var _a;
2327
- var _b = react.useContext(GridContext), gridReady = _b.gridReady, setGridApi = _b.setGridApi, setQuickFilter = _b.setQuickFilter, ensureRowVisible = _b.ensureRowVisible, selectRowsById = _b.selectRowsById, ensureSelectedRowIsVisible = _b.ensureSelectedRowIsVisible, sizeColumnsToFit = _b.sizeColumnsToFit;
2331
+ var _a, _b;
2332
+ var _c = react.useContext(GridContext), gridReady = _c.gridReady, setGridApi = _c.setGridApi, setQuickFilter = _c.setQuickFilter, ensureRowVisible = _c.ensureRowVisible, selectRowsById = _c.selectRowsById, ensureSelectedRowIsVisible = _c.ensureSelectedRowIsVisible, sizeColumnsToFit = _c.sizeColumnsToFit;
2328
2333
  var checkUpdating = react.useContext(GridUpdatingContext).checkUpdating;
2329
- var _c = react.useState(""), internalQuickFilter = _c[0], setInternalQuickFilter = _c[1];
2334
+ var _d = react.useState(""), internalQuickFilter = _d[0], setInternalQuickFilter = _d[1];
2330
2335
  var lastSelectedIds = react.useRef([]);
2331
- var _d = react.useState(false), staleGrid = _d[0], setStaleGrid = _d[1];
2336
+ var _e = react.useState(false), staleGrid = _e[0], setStaleGrid = _e[1];
2332
2337
  var postSortRows = usePostSortRowsHook({ setStaleGrid: setStaleGrid });
2333
2338
  /**
2334
2339
  * AgGrid checkbox select does not pass clicks within cell but not on the checkbox to checkbox.
@@ -2472,7 +2477,7 @@ var Grid = function (params) {
2472
2477
  }, [columnDefs === null || columnDefs === void 0 ? void 0 : columnDefs.length, sizeColumnsToFit]);
2473
2478
  return (jsxRuntime.jsxs("div", __assign({ "data-testid": params.dataTestId, className: clsx("Grid-container", "ag-theme-alpine", staleGrid && "Grid-sortIsStale") }, { children: [params.quickFilter && (jsxRuntime.jsx("div", __assign({ className: "Grid-quickFilter" }, { children: jsxRuntime.jsx("input", { "aria-label": "Search", className: "lui-margin-top-xxs lui-margin-bottom-xxs Grid-quickFilterBox", type: "text", placeholder: (_a = params.quickFilterPlaceholder) !== null && _a !== void 0 ? _a : "Search...", value: internalQuickFilter, onChange: function (event) {
2474
2479
  setInternalQuickFilter(event.target.value);
2475
- } }) }))), jsxRuntime.jsx(agGridReact.AgGridReact, { getRowId: function (params) { return "".concat(params.data.id); }, suppressRowClickSelection: true, rowSelection: "multiple", suppressBrowserResizeObserver: true, colResizeDefault: "shift", onFirstDataRendered: sizeColumnsToFit, onGridSizeChanged: sizeColumnsToFit, suppressClickEdit: true, onCellKeyDown: onCellKeyDown, onCellClicked: onCellClicked, onCellDoubleClicked: onCellDoubleClick, onCellEditingStarted: refreshSelectedRows, onCellEditingStopped: onCellEditingStopped, domLayout: params.domLayout, columnDefs: columnDefs, rowData: params.rowData, noRowsOverlayComponent: noRowsOverlayComponent, onGridReady: onGridReady, onSortChanged: ensureSelectedRowIsVisible, postSortRows: postSortRows, onSelectionChanged: synchroniseExternalStateToGridSelection })] })));
2480
+ } }) }))), jsxRuntime.jsx(agGridReact.AgGridReact, { getRowId: function (params) { return "".concat(params.data.id); }, suppressRowClickSelection: true, rowSelection: "multiple", suppressBrowserResizeObserver: true, colResizeDefault: "shift", onFirstDataRendered: sizeColumnsToFit, onGridSizeChanged: sizeColumnsToFit, suppressClickEdit: true, onCellKeyDown: onCellKeyDown, onCellClicked: onCellClicked, onCellDoubleClicked: onCellDoubleClick, onCellEditingStarted: refreshSelectedRows, onCellEditingStopped: onCellEditingStopped, domLayout: params.domLayout, columnDefs: columnDefs, rowData: params.rowData, noRowsOverlayComponent: noRowsOverlayComponent, onGridReady: onGridReady, onSortChanged: ensureSelectedRowIsVisible, postSortRows: (_b = params.postSortRows) !== null && _b !== void 0 ? _b : postSortRows, onSelectionChanged: synchroniseExternalStateToGridSelection })] })));
2476
2481
  };
2477
2482
 
2478
2483
  var GenericMultiEditCellClass = function (props) {
@@ -2614,7 +2619,7 @@ var GridCellRenderer = function (props) {
2614
2619
  return ((_a = colDef === null || colDef === void 0 ? void 0 : colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.originalCellRenderer) ? (jsxRuntime.jsx(GridLoadableCell, __assign({ isLoading: checkUpdating((_c = (_b = colDef.field) !== null && _b !== void 0 ? _b : colDef.colId) !== null && _c !== void 0 ? _c : "", props.data.id) }, { children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [typeof warningText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_warning", title: warningText }), typeof infoText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_info", title: infoText }), jsxRuntime.jsx(colDef.cellRendererParams.originalCellRenderer, __assign({}, props))] }) }))) : (jsxRuntime.jsx(GridRendererGenericCell, __assign({}, props)));
2615
2620
  };
2616
2621
  /*
2617
- * For editing a text area.
2622
+ * All cells should use this
2618
2623
  */
2619
2624
  var GridCell = function (props, custom) {
2620
2625
  var _a;
@@ -2650,7 +2655,7 @@ var GenericCellEditorComponent3 = function (props) {
2650
2655
  var multiEdit = (_a = cellEditorParams === null || cellEditorParams === void 0 ? void 0 : cellEditorParams.multiEdit) !== null && _a !== void 0 ? _a : false;
2651
2656
  // TODO don't need all these props in context
2652
2657
  setProps(props, multiEdit);
2653
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { children: colDef.cellRenderer ? jsxRuntime.jsx(colDef.cellRenderer, __assign({}, props)) : props.value }), (props === null || props === void 0 ? void 0 : props.editor) && jsxRuntime.jsx(props.editor, __assign({}, cellEditorParams, propsRef.current))] }));
2658
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(colDef.cellRenderer, __assign({}, props)), (props === null || props === void 0 ? void 0 : props.editor) && jsxRuntime.jsx(props.editor, __assign({}, cellEditorParams, propsRef.current))] }));
2654
2659
  };
2655
2660
 
2656
2661
  /**
@@ -3114,7 +3119,7 @@ var GridFormMultiSelect = function (props) {
3114
3119
  };
3115
3120
 
3116
3121
  var GridPopoutEditMultiSelect = function (colDef, props) {
3117
- return GridCell(__assign({ initialWidth: 65, maxWidth: 150, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign(__assign({ editor: GridFormMultiSelect }, props), { editorParams: __assign({ className: "GridMultiSelect-containerMedium" }, props.editorParams) }));
3122
+ return GridCell(__assign({ initialWidth: 65, maxWidth: 150 }, colDef), __assign(__assign({ editor: GridFormMultiSelect }, props), { editorParams: __assign({ className: "GridMultiSelect-containerMedium" }, props.editorParams) }));
3118
3123
  };
3119
3124
 
3120
3125
  var css_248z$2 = ".GridPopoutMenu-burger{cursor:pointer}.GridPopoutMenu-burger svg{fill:#007198}.GridPopoutMenu-burgerDisabled svg{fill:#989189}";
@@ -3338,7 +3343,7 @@ var GridFormEditBearing = function (_props) {
3338
3343
  };
3339
3344
 
3340
3345
  var GridPopoverEditBearingLike = function (colDef, props) {
3341
- return GridCell(__assign({ initialWidth: 65, maxWidth: 150, valueFormatter: bearingValueFormatter, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign({ editor: GridFormEditBearing }, props));
3346
+ return GridCell(__assign({ initialWidth: 65, maxWidth: 150, valueFormatter: bearingValueFormatter }, colDef), __assign({ editor: GridFormEditBearing }, props));
3342
3347
  };
3343
3348
  var GridPopoverEditBearing = function (colDef, props) {
3344
3349
  return GridPopoverEditBearingLike(__assign({ valueFormatter: bearingValueFormatter }, colDef), {
@@ -3370,7 +3375,7 @@ var GridPopoverEditBearingCorrection = function (colDef, props) {
3370
3375
  };
3371
3376
 
3372
3377
  var GridPopoverEditDropDown = function (colDef, props) {
3373
- return GridCell(__assign({ initialWidth: 65, maxWidth: 150, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign(__assign({ editor: GridFormDropDown }, props), { editorParams: __assign({
3378
+ return GridCell(__assign({ initialWidth: 65, maxWidth: 150 }, colDef), __assign(__assign({ editor: GridFormDropDown }, props), { editorParams: __assign({
3374
3379
  // Defaults to medium size container
3375
3380
  className: "GridPopoverEditDropDown-containerMedium" }, props.editorParams) }));
3376
3381
  };