@megha-ui/react 1.2.688 → 1.2.690

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.
@@ -34,7 +34,7 @@ import Card from "../card";
34
34
  import { TbAntennaBarsOff, TbCalculator, TbCalculatorFilled, TbCalculatorOff, } from "react-icons/tb";
35
35
  import { TbCopy, TbCopyOff } from "react-icons/tb";
36
36
  import { formatValue } from "../../services/commonService";
37
- const Grid = ({ columns, wrapperClass, updateGridColumns, data, height, sortable = true, paginate, rowsPerPageOptions = [10, 20, 50, 100], defaultRowsPerPage = 100, defaultColumnsPerView = 100, widthMode = "custom", bulkSelect = false, cellBorder = false, rowHeight = 38, onRowClick, rowCount = false, rowBorder = true, showMenu = false, search = false, defaultSearchOperation = "contains", gridBorder = false, isLoading = false, rowTopBorder, rowBottomBorder, rowLeftBorder, rowRightBorder, headerBackground = "var(--row-header-bg)", headerTopBorder = "none", headerBottomBorder = "none", SettingIcon, ExportIcon, ignoredExportItems = ["action", "actions"], borderColor = "#dbdfe9", updateColumns, showHideAvailable = false, columnSearchOutside = false, multiSorting = false, exportAvailable = false, exportableFileName = "", groupBy, updateGroupBy, rowKey = "id", hlBorderColor = "black", selectedRow, selectedRowStyle = {
37
+ const Grid = ({ columns, wrapperClass, updateGridColumns, data, height, sortable = true, paginate, rowsPerPageOptions = [10, 20, 50, 100], defaultRowsPerPage = 100, defaultColumnsPerView = 200, widthMode = "custom", bulkSelect = false, cellBorder = false, rowHeight = "3rem", onRowClick, rowCount = false, rowBorder = true, showMenu = false, search = false, defaultSearchOperation = "contains", gridBorder = false, isLoading = false, rowTopBorder, rowBottomBorder, rowLeftBorder, rowRightBorder, headerBackground = "var(--row-header-bg)", headerTopBorder = "none", headerBottomBorder = "none", SettingIcon, ExportIcon, ignoredExportItems = ["action", "actions"], borderColor = "#dbdfe9", updateColumns, showHideAvailable = false, columnSearchOutside = false, multiSorting = false, exportAvailable = false, exportableFileName = "", groupBy, updateGroupBy, rowKey = "id", hlBorderColor = "black", selectedRow, selectedRowStyle = {
38
38
  borderLeft: "0.5rem solid #d9d9d9",
39
39
  }, defaultSort, noKeyEvents = true, customOperation, hasCustomOperation, globalSearch, headerDropdownIndex, draggable = false, resizable = false, updateGridData, widthUnits, checkboxWrapper, ignoreHugContent = false, isSummarise = false, isHideDups = false, isMultipleChips = false, fullScreenAvailable = true, defaultGroupOpen, alternateRowColor = true, activeCalculateColor = "#2377BA", calculatetextColor = "#fff", actionsKey = "actions", saveAsNewView = false, handleSaveAsView, saveAsViewIcon, filterData, chipColor = "#ccc", withAscii = false, propSummariseKeys, SummariseIcon, summarizeColor = "black", isExpandable = false, expandedRow, extraRow, selectedCheckBox, setSelectedCheckbox, ignoreRowSelect, setOpenedRows, openedRows, getLoadingState, globalSearchOpen = false, updateFixedFilterValues = (fixedFilterValues) => {
40
40
  console.log("Update fixed filter values not implemented", fixedFilterValues);
@@ -90,7 +90,6 @@ withCard = false, cardClassName, cardHeader, title, headerLeft, headerRight, sub
90
90
  return gridColumns.filter((col) => col.fixedFilter && col.fixedFilter !== "");
91
91
  }, [gridColumns]);
92
92
  const [fixedFilterValues, setFixedFilterValues] = useState({});
93
- const [columnsPerView, setColumnsPerView] = useState(5);
94
93
  useEffect(() => {
95
94
  setSummariseAvailable(isSummarise);
96
95
  }, [isSummarise]);
@@ -710,7 +709,6 @@ withCard = false, cardClassName, cardHeader, title, headerLeft, headerRight, sub
710
709
  const gridWidth = entrieGridRef.current
711
710
  ? entrieGridRef.current.getBoundingClientRect().width
712
711
  : 0;
713
- console.log("Grid Width:", gridWidth);
714
712
  if (gridGroupBy === "" &&
715
713
  entrieGridRef.current &&
716
714
  widthMode === "custom" &&
@@ -826,19 +824,24 @@ withCard = false, cardClassName, cardHeader, title, headerLeft, headerRight, sub
826
824
  return (element.scrollHeight - element.scrollTop - element.clientHeight <
827
825
  threshold);
828
826
  };
827
+ const isScrollAlmostAtLeft = (element, threshold = 100) => {
828
+ return (element.scrollWidth - element.scrollLeft - element.clientWidth < threshold);
829
+ };
829
830
  const onScroll = (e) => {
830
831
  const isPaginate = gridGroupBy === "" && paginate;
831
832
  if (headerRef.current) {
832
833
  headerRef.current.scrollLeft = e.currentTarget.scrollLeft;
833
- let atmostIndex = -1;
834
- if (gridColumns.length > 0) {
835
- atmostIndex = gridColumns.length - 1;
836
- }
837
- if (atmostIndex >= endHoriIndex + columnsPerView) {
838
- setEndHoriIndex((prev) => prev + columnsPerView);
839
- }
840
- else {
841
- setEndHoriIndex(atmostIndex);
834
+ if (isScrollAlmostAtLeft(e.currentTarget)) {
835
+ let atmostIndex = -1;
836
+ if (gridColumns.length > 0) {
837
+ atmostIndex = gridColumns.length - 1;
838
+ }
839
+ if (atmostIndex >= endHoriIndex + defaultColumnsPerView) {
840
+ setEndHoriIndex((prev) => prev + defaultColumnsPerView);
841
+ }
842
+ else {
843
+ setEndHoriIndex(atmostIndex);
844
+ }
842
845
  }
843
846
  }
844
847
  if (e.currentTarget &&
@@ -80,7 +80,7 @@ export interface OjasGridProps {
80
80
  widthMode?: "auto" | "custom";
81
81
  rowKey?: string;
82
82
  cellBorder?: boolean;
83
- rowHeight?: number;
83
+ rowHeight?: number | string;
84
84
  onRowClick?: (rowData: any) => void;
85
85
  rowCount?: boolean;
86
86
  rowBorder?: boolean;
@@ -270,7 +270,7 @@ export interface GridRowProps {
270
270
  item: DataRow;
271
271
  rowStyle: React.CSSProperties;
272
272
  cellStyle: React.CSSProperties;
273
- rowHeight: number;
273
+ rowHeight: number | string;
274
274
  /** Unique key field for row items */
275
275
  rowKey: string;
276
276
  bulkSelect: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@megha-ui/react",
3
- "version": "1.2.688",
3
+ "version": "1.2.690",
4
4
  "description": "A collection of reusable UI components for React applications, built with TypeScript.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",