@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.
- package/README.md +2 -2
- package/dist/index.js +16 -11
- package/dist/index.js.map +1 -1
- package/dist/src/components/Grid.d.ts +1 -0
- package/dist/src/components/GridCell.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormEditBearing.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormMessage.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormPopoutMenu.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormTextArea.d.ts +1 -1
- package/dist/src/components/gridForm/GridFormTextInput.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverEditBearing.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverEditDropDown.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverMenu.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverMessage.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverTextArea.d.ts +1 -1
- package/dist/src/components/gridPopoverEdit/GridPopoverTextInput.d.ts +1 -1
- package/dist/src/components/gridRender/GridRenderGenericCell.d.ts +1 -1
- package/dist/src/contexts/GridContext.d.ts +1 -1
- package/dist/src/index.d.ts +28 -28
- package/dist/step-ag-grid.esm.js +16 -11
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +3 -2
- package/src/components/Grid.tsx +5 -4
- package/src/components/GridCell.tsx +7 -7
- package/src/components/GridPopoverHook.tsx +3 -3
- package/src/components/PostSortRowsHook.ts +8 -2
- package/src/components/gridForm/GridFormDropDown.tsx +2 -2
- package/src/components/gridForm/GridFormEditBearing.tsx +2 -2
- package/src/components/gridForm/GridFormMessage.tsx +1 -1
- package/src/components/gridForm/GridFormMultiSelect.tsx +3 -3
- package/src/components/gridForm/GridFormPopoutMenu.tsx +3 -3
- package/src/components/gridForm/GridFormTextArea.tsx +1 -1
- package/src/components/gridForm/GridFormTextInput.tsx +1 -1
- package/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts +1 -3
- package/src/components/gridPopoverEdit/GridPopoverEditBearing.ts +2 -4
- package/src/components/gridPopoverEdit/GridPopoverEditDropDown.ts +1 -3
- package/src/components/gridPopoverEdit/GridPopoverMenu.tsx +1 -1
- package/src/components/gridPopoverEdit/GridPopoverMessage.ts +1 -1
- package/src/components/gridPopoverEdit/GridPopoverTextArea.ts +1 -1
- package/src/components/gridPopoverEdit/GridPopoverTextInput.ts +1 -1
- package/src/components/gridRender/GridRenderGenericCell.tsx +2 -2
- package/src/components/gridRender/GridRenderPopoutMenuCell.tsx +1 -1
- package/src/contexts/GridContext.tsx +1 -1
- package/src/contexts/GridContextProvider.tsx +2 -2
- package/src/contexts/GridPopoverContextProvider.tsx +2 -2
- package/src/index.ts +28 -28
- package/src/react-menu3/components/ControlledMenu.tsx +1 -1
- package/src/stories/components/FormTest.tsx +4 -4
- package/src/stories/components/GridPopoutBearing.stories.tsx +6 -6
- package/src/stories/components/GridPopoutEditDropDown.stories.tsx +7 -7
- package/src/stories/components/GridPopoutEditGeneric.stories.tsx +4 -4
- package/src/stories/components/GridPopoutEditGenericTextArea.stories.tsx +7 -7
- package/src/stories/components/GridPopoutEditMultiSelect.stories.tsx +9 -9
- package/src/stories/components/GridReadOnly.stories.tsx +7 -7
- 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
|
-
|
|
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
|
|
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
|
|
2334
|
+
var _d = react.useState(""), internalQuickFilter = _d[0], setInternalQuickFilter = _d[1];
|
|
2330
2335
|
var lastSelectedIds = react.useRef([]);
|
|
2331
|
-
var
|
|
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
|
-
*
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
};
|