@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.
@@ -11,8 +11,9 @@ export interface GridProps {
11
11
  quickFilter?: boolean;
12
12
  quickFilterPlaceholder?: string;
13
13
  quickFilterValue?: string;
14
- externalSelectedItems: any[];
15
- setExternalSelectedItems: (items: any[]) => void;
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
- multiEdit: boolean;
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
@@ -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: true, unmountOnClose: true, anchorRef: anchorRef, menuClassName: "lui-menu", onClose: function (event) { return triggerSave(event.reason).then(); } }, { children: [saving && (jsx("div", { style: {
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.multiEdit;
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