@linzjs/step-ag-grid 1.4.0 → 1.4.2
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/dist/index.d.ts +1 -0
- package/dist/index.js +19 -5
- package/dist/index.js.map +1 -1
- package/dist/src/components/Grid.d.ts +3 -2
- package/dist/src/components/gridForm/GridFormPopoutMenu.d.ts +1 -1
- package/dist/step-ag-grid.esm.js +19 -6
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Grid.tsx +20 -12
- package/src/components/GridPopoverHook.tsx +2 -1
- package/src/components/gridForm/GridFormPopoutMenu.tsx +2 -2
- package/src/stories/components/GridReadOnly.stories.tsx +3 -3
|
@@ -11,8 +11,9 @@ export interface GridProps {
|
|
|
11
11
|
quickFilter?: boolean;
|
|
12
12
|
quickFilterPlaceholder?: string;
|
|
13
13
|
quickFilterValue?: string;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
domLayout?: GridOptions["domLayout"];
|
|
15
|
+
externalSelectedItems?: any[];
|
|
16
|
+
setExternalSelectedItems?: (items: any[]) => void;
|
|
16
17
|
onGridReady?: GridOptions["onGridReady"];
|
|
17
18
|
defaultColDef: GridOptions["defaultColDef"];
|
|
18
19
|
columnDefs: GridOptions["columnDefs"];
|
|
@@ -15,7 +15,7 @@ export interface MenuOption<RowType> {
|
|
|
15
15
|
label: JSX.Element | string | MenuSeparatorType;
|
|
16
16
|
action?: (selectedRows: RowType[]) => Promise<boolean>;
|
|
17
17
|
disabled?: string | boolean;
|
|
18
|
-
|
|
18
|
+
supportsMultiEdit: boolean;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* NOTE: If the popout menu doesn't appear on single click when also selecting row it's because
|
package/dist/step-ag-grid.esm.js
CHANGED
|
@@ -684,15 +684,17 @@ var Grid = function (params) {
|
|
|
684
684
|
/**
|
|
685
685
|
* Ensure external selected items list is in sync with panel.
|
|
686
686
|
*/
|
|
687
|
-
var synchroniseExternalStateToGridSelection = function (_a) {
|
|
687
|
+
var synchroniseExternalStateToGridSelection = useCallback(function (_a) {
|
|
688
688
|
var api = _a.api;
|
|
689
|
+
if (!params.externalSelectedItems || !params.setExternalSelectedItems)
|
|
690
|
+
return;
|
|
689
691
|
var selectedRows = api.getSelectedRows();
|
|
690
692
|
// We don't want to update selected Items if it hasn't changed to prevent excess renders
|
|
691
693
|
if (params.externalSelectedItems.length != selectedRows.length ||
|
|
692
694
|
isNotEmpty(xorBy(selectedRows, params.externalSelectedItems, function (row) { return row.id; }))) {
|
|
693
695
|
params.setExternalSelectedItems(__spreadArray([], selectedRows, true));
|
|
694
696
|
}
|
|
695
|
-
};
|
|
697
|
+
}, [params]);
|
|
696
698
|
/**
|
|
697
699
|
* Synchronise externally selected items to grid.
|
|
698
700
|
* If new ids are selected scroll them into view.
|
|
@@ -700,6 +702,8 @@ var Grid = function (params) {
|
|
|
700
702
|
var synchroniseExternallySelectedItemsToGrid = useCallback(function () {
|
|
701
703
|
if (!gridReady())
|
|
702
704
|
return;
|
|
705
|
+
if (!params.externalSelectedItems)
|
|
706
|
+
return;
|
|
703
707
|
var selectedIds = params.externalSelectedItems.map(function (row) { return row.id; });
|
|
704
708
|
var lastNewId = last(difference(selectedIds, lastSelectedIds.current));
|
|
705
709
|
if (lastNewId != null)
|
|
@@ -814,7 +818,7 @@ var Grid = function (params) {
|
|
|
814
818
|
}, [refreshSelectedRows]);
|
|
815
819
|
return (jsxs("div", __assign({ "data-testid": params.dataTestId, className: clsx("Grid-container", "ag-theme-alpine", staleGrid && "Grid-sortIsStale") }, { children: [params.quickFilter && (jsx("div", __assign({ className: "Grid-quickFilter" }, { children: 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) {
|
|
816
820
|
setInternalQuickFilter(event.target.value);
|
|
817
|
-
} }) }))), jsx(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, columnDefs: columnDefs, rowData: params.rowData, noRowsOverlayComponent: noRowsOverlayComponent, onGridReady: onGridReady, onSortChanged: ensureSelectedRowIsVisible, postSortRows: postSortRows, onSelectionChanged: synchroniseExternalStateToGridSelection })] })));
|
|
821
|
+
} }) }))), jsx(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 })] })));
|
|
818
822
|
};
|
|
819
823
|
|
|
820
824
|
var GenericMultiEditCellClass = function (props) {
|
|
@@ -3910,7 +3914,7 @@ var useGridPopoverHook = function (props, save) {
|
|
|
3910
3914
|
return function () { };
|
|
3911
3915
|
}, [handleScreenMouseDown, handleScreenMouseEvent, isOpen]);
|
|
3912
3916
|
var popoverWrapper = useCallback(function (children) {
|
|
3913
|
-
return (jsx(Fragment, { children: anchorRef.current && (jsxs(ControlledMenu, __assign({ state: isOpen ? "open" : "closed", portal:
|
|
3917
|
+
return (jsx(Fragment, { children: anchorRef.current && (jsxs(ControlledMenu, __assign({ state: isOpen ? "open" : "closed", portal: isEmpty(document.querySelectorAll(".PopoutWindowContainer")), unmountOnClose: true, anchorRef: anchorRef, menuClassName: "lui-menu", onClose: function (event) { return triggerSave(event.reason).then(); } }, { children: [saving && (jsx("div", { style: {
|
|
3914
3918
|
position: "absolute",
|
|
3915
3919
|
left: 0,
|
|
3916
3920
|
top: 0,
|
|
@@ -4116,7 +4120,7 @@ var GridFormPopoutMenu = function (props) {
|
|
|
4116
4120
|
}); }, [props.field, props.selectedRows, updatingCells]);
|
|
4117
4121
|
var selectedRowCount = props.selectedRows.length;
|
|
4118
4122
|
var filteredOptions = options === null || options === void 0 ? void 0 : options.filter(function (menuOption) {
|
|
4119
|
-
return menuOption.label === MenuSeparator || selectedRowCount === 1 || menuOption.
|
|
4123
|
+
return menuOption.label === MenuSeparator || selectedRowCount === 1 || menuOption.supportsMultiEdit;
|
|
4120
4124
|
});
|
|
4121
4125
|
var popoverWrapper = useGridPopoverHook(props).popoverWrapper;
|
|
4122
4126
|
return popoverWrapper(jsx(ComponentLoadingWrapper, __assign({ loading: !filteredOptions }, { children: jsx("div", __assign({ className: "Grid-popoverContainerList" }, { children: options === null || options === void 0 ? void 0 : options.map(function (item, index) {
|
|
@@ -4282,6 +4286,15 @@ var GridPopoverEditBearing = function (colDef) { return (__assign(__assign({}, G
|
|
|
4282
4286
|
if (value < 0)
|
|
4283
4287
|
return "Bearing must not be negative";
|
|
4284
4288
|
return null;
|
|
4289
|
+
} })); };
|
|
4290
|
+
var GridPopoverEditBearingCorrection = function (colDef) { return (__assign(__assign({}, GridPopoverEditBearingLike(colDef)), { valueFormatter: bearingCorrectionValueFormatter, range: function (value) {
|
|
4291
|
+
if (value === null)
|
|
4292
|
+
return "Bearing is required";
|
|
4293
|
+
if (value >= 360)
|
|
4294
|
+
return "Bearing must be less than 360 degrees";
|
|
4295
|
+
if (value <= -180)
|
|
4296
|
+
return "Bearing must be greater then -180 degrees";
|
|
4297
|
+
return null;
|
|
4285
4298
|
} })); };
|
|
4286
4299
|
|
|
4287
4300
|
var MenuSeparatorString = "_____MENU_SEPARATOR_____";
|
|
@@ -4575,5 +4588,5 @@ var GridPopoverTextInput = function (colDef) {
|
|
|
4575
4588
|
})));
|
|
4576
4589
|
};
|
|
4577
4590
|
|
|
4578
|
-
export { ComponentLoadingWrapper, GenericMultiEditCellClass, Grid, GridCell, GridContext, GridContextProvider, GridFormDropDown, GridFormEditBearing, GridFormMessage, GridFormMultiSelect, GridFormPopoutMenu, GridFormTextArea, GridFormTextInput, GridHeaderSelect, GridIcon, GridLoadableCell, GridPopoutEditMultiSelect, GridPopoverEditBearing, GridPopoverEditDropDown, GridPopoverMenu, GridPopoverMessage, GridPopoverTextArea, GridPopoverTextInput, GridRenderPopoutMenuCell, GridRendererGenericCell, TextAreaInput, TextInputFormatted, UpdatingContext, UpdatingContextProvider, bearingCorrectionValueFormatter, bearingNumberParser, bearingStringValidator, bearingValueFormatter, convertDDToDMS, hasParentClass, isFloat, isNotEmpty, useGridPopoverHook, usePostSortRowsHook, wait };
|
|
4591
|
+
export { ComponentLoadingWrapper, GenericMultiEditCellClass, Grid, GridCell, GridContext, GridContextProvider, GridFormDropDown, GridFormEditBearing, GridFormMessage, GridFormMultiSelect, GridFormPopoutMenu, GridFormTextArea, GridFormTextInput, GridHeaderSelect, GridIcon, GridLoadableCell, GridPopoutEditMultiSelect, GridPopoverEditBearing, GridPopoverEditBearingCorrection, GridPopoverEditDropDown, GridPopoverMenu, GridPopoverMessage, GridPopoverTextArea, GridPopoverTextInput, GridRenderPopoutMenuCell, GridRendererGenericCell, TextAreaInput, TextInputFormatted, UpdatingContext, UpdatingContextProvider, bearingCorrectionValueFormatter, bearingNumberParser, bearingStringValidator, bearingValueFormatter, convertDDToDMS, hasParentClass, isFloat, isNotEmpty, useGridPopoverHook, usePostSortRowsHook, wait };
|
|
4579
4592
|
//# sourceMappingURL=step-ag-grid.esm.js.map
|