@darajs/core 1.23.0 → 1.23.2-alpha.1

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.
@@ -27789,8 +27789,10 @@
27789
27789
  `;
27790
27790
  styled.div`
27791
27791
  display: flex;
27792
+ align-items: center;
27792
27793
  gap: 0.5rem;
27793
27794
  width: 100%;
27795
+ line-height: 1;
27794
27796
  `;
27795
27797
  styled.div`
27796
27798
  color: ${(props) => props.theme.colors.grey3};
@@ -39077,6 +39079,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39077
39079
  style: Object.assign(Object.assign(Object.assign({}, floatingStyles), { maxHeight: 800, minWidth: 150, zIndex: 9999 }), style)
39078
39080
  }), { isOpen, children: jsxRuntimeExports.jsx(SectionedList, { items: allowColumnHiding ? [resetFunctions, columnToggles] : [resetFunctions], onSelect: onOptionSelect }, isOpen ? "open" : "closed") })), document.body)] });
39079
39081
  };
39082
+ const { fontSize } = window.getComputedStyle(document.documentElement);
39083
+ const DEFAULT_ROW_HEIGHT = parseFloat(fontSize) * 2.5;
39080
39084
  var __rest$1 = function(s, e2) {
39081
39085
  var t2 = {};
39082
39086
  for (var p2 in s) if (Object.prototype.hasOwnProperty.call(s, p2) && e2.indexOf(p2) < 0)
@@ -39088,8 +39092,6 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39088
39092
  }
39089
39093
  return t2;
39090
39094
  };
39091
- const { fontSize } = window.getComputedStyle(document.documentElement);
39092
- const ROW_HEIGHT = parseFloat(fontSize) * 2.5;
39093
39095
  const shouldForwardProp$2 = (prop) => !["isSorted", "onClickRow"].includes(prop);
39094
39096
  const Row = styled.div.withConfig({ shouldForwardProp: shouldForwardProp$2 })`
39095
39097
  cursor: ${(props) => props.onClickRow ? "pointer" : "default"};
@@ -39145,7 +39147,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39145
39147
  align-items: center;
39146
39148
 
39147
39149
  min-width: 80px;
39148
- height: ${() => `${ROW_HEIGHT}px`};
39150
+ height: ${({ rowHeight }) => `${rowHeight}px`};
39149
39151
 
39150
39152
  color: ${(props) => props.theme.colors.grey6};
39151
39153
 
@@ -39169,7 +39171,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39169
39171
  var _a;
39170
39172
  return areEqual(prevProps, nextProps) && !(((_a = nextProps.data) === null || _a === void 0 ? void 0 : _a.headerGroups) || []).some((headerGroup) => ((headerGroup === null || headerGroup === void 0 ? void 0 : headerGroup.headers) || []).some((header) => header.isResizing));
39171
39173
  };
39172
- const RenderRow = React__namespace.memo(({ data: { width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns }, index: index2, style: renderRowStyle }) => {
39174
+ const RenderRow = React__namespace.memo(({ data: { width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns, rowHeight }, index: index2, style: renderRowStyle }) => {
39173
39175
  let row = rows[index2];
39174
39176
  if (getItem) {
39175
39177
  const value = getItem(index2);
@@ -39182,8 +39184,8 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39182
39184
  }
39183
39185
  if (!row) {
39184
39186
  return jsxRuntimeExports.jsx("div", { children: headerGroups.map((headerGroup, gidx) => jsxRuntimeExports.jsx(RowPlaceholder, { style: {
39185
- height: ROW_HEIGHT,
39186
- top: (index2 + 1) * ROW_HEIGHT,
39187
+ height: rowHeight,
39188
+ top: (index2 + 1) * rowHeight,
39187
39189
  width: totalColumnsWidth > width ? totalColumnsWidth : "100%"
39188
39190
  }, children: headerGroup === null || headerGroup === void 0 ? void 0 : headerGroup.headers.map((col, cidx) => {
39189
39191
  const headerProps = col.getHeaderProps();
@@ -39201,15 +39203,23 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39201
39203
  }
39202
39204
  };
39203
39205
  const _a = row.getRowProps({ style: renderRowStyle }), { style: rowStyle } = _a, restRow = __rest$1(_a, ["style"]);
39204
- return React$1.createElement(Row, Object.assign({}, restRow, { key: `row-${index2}`, onClick, onClickRow, style: Object.assign(Object.assign({}, rowStyle), { top: (index2 + 1) * ROW_HEIGHT, width: totalColumnsWidth > width ? totalColumnsWidth : "100%" }) }), row.cells.map((cell, colIdx) => {
39205
- var _a2;
39206
+ return React$1.createElement(Row, Object.assign({}, restRow, { key: `row-${index2}`, onClick, onClickRow, style: Object.assign(Object.assign({}, rowStyle), {
39207
+ // The first row is the header row which is not controlled by this rowHeight prop so it needs to be part of the calculation.
39208
+ top: index2 === 0 ? DEFAULT_ROW_HEIGHT : index2 * rowHeight + DEFAULT_ROW_HEIGHT,
39209
+ width: totalColumnsWidth > width ? totalColumnsWidth : "100%"
39210
+ }) }), row.cells.map((cell, colIdx) => {
39211
+ var _a2, _b, _c, _d, _e2;
39206
39212
  const cellProps = cell.getCellProps();
39207
39213
  return React$1.createElement(
39208
39214
  Cell,
39209
- Object.assign({}, cellProps, { key: `cell-${index2}-${colIdx}`, style: Object.assign(Object.assign({}, cellProps.style), { backgroundColor, justifyContent: mappedColumns[colIdx].align, maxWidth: (_a2 = cell.column) === null || _a2 === void 0 ? void 0 : _a2.maxWidth, width: (
39215
+ Object.assign({}, cellProps, { rowHeight, key: `cell-${index2}-${colIdx}`, style: Object.assign(Object.assign(Object.assign(Object.assign({}, cellProps.style), { backgroundColor, justifyContent: mappedColumns[colIdx].align, maxWidth: (_a2 = cell.column) === null || _a2 === void 0 ? void 0 : _a2.maxWidth, width: (
39210
39216
  // If width calc has messed up then use the raw width from the column
39211
39217
  cellProps.style.width === "NaNpx" ? mappedColumns[colIdx].width : cellProps.style.width
39212
- ) }) }),
39218
+ ) }), ((_b = mappedColumns[colIdx]) === null || _b === void 0 ? void 0 : _b.sticky) === "left" && typeof ((_c = mappedColumns[colIdx]) === null || _c === void 0 ? void 0 : _c.stickyOffset) === "number" ? {
39219
+ left: `${mappedColumns[colIdx].stickyOffset}px`
39220
+ } : {}), ((_d = mappedColumns[colIdx]) === null || _d === void 0 ? void 0 : _d.sticky) === "right" && typeof ((_e2 = mappedColumns[colIdx]) === null || _e2 === void 0 ? void 0 : _e2.stickyOffset) === "number" ? {
39221
+ right: `${mappedColumns[colIdx].stickyOffset}px`
39222
+ } : {}) }),
39213
39223
  jsxRuntimeExports.jsx(CellContent, { children: cell.render("Cell", {
39214
39224
  colIdx,
39215
39225
  currentEditCell,
@@ -39290,7 +39300,7 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39290
39300
  justify-content: space-between;
39291
39301
 
39292
39302
  min-width: 80px;
39293
- height: ${ROW_HEIGHT}px;
39303
+ height: ${DEFAULT_ROW_HEIGHT}px;
39294
39304
 
39295
39305
  color: ${(props) => props.theme.colors.text};
39296
39306
 
@@ -39375,6 +39385,26 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39375
39385
  });
39376
39386
  return [...leftStickyCols, ...nonStickyCols, ...rightStickyCols];
39377
39387
  };
39388
+ const appendStickyOffsets = (columns) => {
39389
+ let leftOffset = 0;
39390
+ let rightOffset = 0;
39391
+ const rightStickyColumnWidths = columns.filter((col) => col.sticky === "right").slice(1).map((col) => parseInt(col.width) || 150);
39392
+ return columns.map((col) => {
39393
+ if (col.sticky === "left") {
39394
+ const nextCol = Object.assign(Object.assign({}, col), { stickyOffset: leftOffset });
39395
+ const width = parseInt(col.width) || 150;
39396
+ leftOffset += width;
39397
+ return nextCol;
39398
+ }
39399
+ if (col.sticky === "right") {
39400
+ rightOffset = rightStickyColumnWidths.reduce((acc, width) => acc + width, 0);
39401
+ const nextCol = Object.assign(Object.assign({}, col), { stickyOffset: rightOffset });
39402
+ rightStickyColumnWidths.shift();
39403
+ return nextCol;
39404
+ }
39405
+ return col;
39406
+ });
39407
+ };
39378
39408
  const filterComponentMap = {
39379
39409
  categorical: CategoricalFilter,
39380
39410
  datetime: DatetimeFilter,
@@ -39392,12 +39422,26 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39392
39422
  return Object.assign(Object.assign({}, col), { Filter: filterComponentMap[col.filter] });
39393
39423
  });
39394
39424
  };
39425
+ const createActionColumn = (actions, accessor, sticky, disableSelectAll = false) => {
39426
+ const width = actions.includes(Actions.SELECT) ? 52 : actions.length * 24 + 24;
39427
+ return {
39428
+ Cell: ActionCell,
39429
+ Header: actions.includes(Actions.SELECT) && !disableSelectAll ? SelectHeader : "",
39430
+ accessor: accessor || "actions",
39431
+ actions,
39432
+ disableSortBy: true,
39433
+ maxWidth: width,
39434
+ minWidth: actions.includes(Actions.SELECT) ? 52 : 48,
39435
+ sticky: sticky || null,
39436
+ width
39437
+ };
39438
+ };
39395
39439
  const cells = {
39396
39440
  DATETIME: DatetimeCell,
39397
39441
  EDIT_INPUT: EditInputCell,
39398
39442
  EDIT_SELECT: EditSelectCell
39399
39443
  };
39400
- const createItemData$1 = memoizeOne$1((width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns) => ({
39444
+ const createItemData$1 = memoizeOne$1((width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns, rowHeight) => ({
39401
39445
  backgroundColor,
39402
39446
  currentEditCell,
39403
39447
  getItem,
@@ -39406,12 +39450,14 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39406
39450
  onClickRow,
39407
39451
  prepareRow,
39408
39452
  rows,
39453
+ rowHeight,
39409
39454
  throttledClickRow,
39410
39455
  totalColumnsWidth,
39411
39456
  width
39412
39457
  }));
39413
- const Table = React$1.forwardRef(({ allowHiding, backgroundColor, className, columns, data: data2, getItem, initialSort = [], itemCount, maxRows, onAction, onChange: onChange2, onClickRow, onItemsRendered, onFilter, onSort, showTableOptions, style, tableOptionsStyle }, ref) => {
39458
+ const Table = React$1.forwardRef(({ allowHiding, actions, backgroundColor, className, columns, data: data2, getItem, initialSort = [], itemCount, maxRows, onAction, onChange: onChange2, onClickRow, onItemsRendered, onFilter, onSort, rowHeight, showTableOptions, style, tableOptionsStyle }, ref) => {
39414
39459
  const [currentSortBy, setCurrentSortBy] = React$1.useState(initialSort);
39460
+ const tableRowHeight = rowHeight || DEFAULT_ROW_HEIGHT;
39415
39461
  React$1.useEffect(
39416
39462
  () => {
39417
39463
  setCurrentSortBy(initialSort);
@@ -39441,7 +39487,14 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39441
39487
  throttledSetEditCell([Number(cell[0]), cell[1]]);
39442
39488
  };
39443
39489
  const infiniteData = React$1.useMemo(() => Array(itemCount).fill(0), [itemCount]);
39444
- const mappedColumns = React$1.useMemo(() => appendFilterComponents(orderStickyCols(columns)), [columns]);
39490
+ const mappedColumns = React$1.useMemo(() => {
39491
+ let processedColumns = columns;
39492
+ if (actions && actions.length > 0) {
39493
+ const actionColumn = createActionColumn(actions);
39494
+ processedColumns = [...columns, actionColumn];
39495
+ }
39496
+ return appendStickyOffsets(appendFilterComponents(orderStickyCols(processedColumns)));
39497
+ }, [columns, actions]);
39445
39498
  const hasFixedColumns = React$1.useMemo(() => mappedColumns.some((column) => "sticky" in column), [mappedColumns]);
39446
39499
  const totalColumnsWidth = React$1.useMemo(() => mappedColumns.reduce((acc, column) => acc + (parseInt(column.width) || 150), 0), [mappedColumns]);
39447
39500
  const filterTypes = React$1.useMemo(() => ({
@@ -39497,11 +39550,15 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39497
39550
  const showHeaderCellButtonContainer = showSort || showFilter || showOptions;
39498
39551
  return React$1.createElement(
39499
39552
  HeaderCell,
39500
- Object.assign({}, headerProps, { key: `col-${gidx}-${cidx}`, style: Object.assign(Object.assign({}, headerProps.style), {
39553
+ Object.assign({}, headerProps, { key: `col-${gidx}-${cidx}`, style: Object.assign(Object.assign(Object.assign(Object.assign({}, headerProps.style), {
39501
39554
  maxWidth: col.maxWidth,
39502
39555
  // If width calc has messed up then use the raw width from the column
39503
39556
  width: headerProps.style.width === "NaNpx" ? mappedColumns[cidx].width : headerProps.style.width
39504
- }) }),
39557
+ }), col.sticky === "left" && typeof col.stickyOffset === "number" ? {
39558
+ left: `${col.stickyOffset}px`
39559
+ } : {}), col.sticky === "right" && typeof col.stickyOffset === "number" ? {
39560
+ right: `${col.stickyOffset}px`
39561
+ } : {}) }),
39505
39562
  jsxRuntimeExports.jsxs(HeaderTooltipContainer, { isPrimitiveHeader: typeof headerContent === "string", children: [jsxRuntimeExports.jsx(HeaderContentWrapper, Object.assign({}, sortProps, { isPrimitiveHeader: typeof headerContent === "string", title: typeof headerContent === "string" ? headerContent : "", children: headerContent })), col.tooltip && jsxRuntimeExports.jsx(Tooltip, { content: col.tooltip, children: jsxRuntimeExports.jsx(TooltipIcon, { icon: faCircleQuestion }) })] }),
39506
39563
  showHeaderCellButtonContainer && jsxRuntimeExports.jsxs(HeaderCellButtonContainer, { children: [jsxRuntimeExports.jsxs(HeaderIconsWrapper, { children: [showSort && jsxRuntimeExports.jsx(HeaderIconWrapper, { children: jsxRuntimeExports.jsx(SortIcon, Object.assign({}, sortProps, { className: "tableSortArrow", icon: getSortIcon(col.isSorted, col.isSortedDesc), isSorted: col.isSorted })) }), showFilter ? jsxRuntimeExports.jsx(FilterContainer, { col }) : null, showOptions && jsxRuntimeExports.jsx(OptionsMenu, { allColumns, allowColumnHiding: allowHiding, numVisibleColumns, resetResizing, setAllFilters, style: tableOptionsStyle })] }), jsxRuntimeExports.jsx(ResizeBorder, Object.assign({}, resizerProps))] })
39507
39564
  );
@@ -39510,28 +39567,15 @@ You must set sticky: 'left' | 'right' for the '${bugWithUnderColumnsSticky.Heade
39510
39567
  // eslint-disable-next-line react-hooks/exhaustive-deps
39511
39568
  useDeepCompare([tableProps, totalColumnsWidth, headerGroups])
39512
39569
  );
39513
- return jsxRuntimeExports.jsx(Wrapper$2, Object.assign({}, getTableProps(), { "$hasMaxRows": !!maxRows, className: `${className} ${hasFixedColumns ? "sticky" : ""}`, style: Object.assign({ height: maxRows ? (Math.min(rows.length, maxRows) + 1) * ROW_HEIGHT : "100%" }, style), children: jsxRuntimeExports.jsx(AutoSizer, { children: ({ height, width }) => {
39514
- return jsxRuntimeExports.jsx(StyledFixedSizeList, { height, innerElementType: renderTable, itemCount: itemCount || rows.length, itemData: createItemData$1(width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns), itemSize: ROW_HEIGHT, onItemsRendered, style: {
39570
+ return jsxRuntimeExports.jsx(Wrapper$2, Object.assign({}, getTableProps(), { "$hasMaxRows": !!maxRows, className: `${className} ${hasFixedColumns ? "sticky" : ""}`, style: Object.assign({ height: maxRows ? (Math.min(rows.length, maxRows) + 1) * tableRowHeight : "100%" }, style), children: jsxRuntimeExports.jsx(AutoSizer, { children: ({ height, width }) => {
39571
+ return jsxRuntimeExports.jsx(StyledFixedSizeList, { height, innerElementType: renderTable, itemCount: itemCount || rows.length, itemData: createItemData$1(width, currentEditCell, headerGroups, rows, prepareRow, getItem, totalColumnsWidth, onClickRow, throttledClickRow, backgroundColor, mappedColumns, tableRowHeight), itemSize: tableRowHeight, onItemsRendered, style: {
39515
39572
  overflowX: width < totalColumnsWidth ? "auto" : "hidden",
39516
- overflowY: height < (rows.length + 1) * ROW_HEIGHT ? "auto" : "hidden"
39573
+ overflowY: height < (rows.length + 1) * tableRowHeight ? "auto" : "hidden"
39517
39574
  }, width, children: RenderRow }, "table-list");
39518
39575
  } }) }));
39519
39576
  });
39520
39577
  Table.displayName = "Table";
39521
- Table.ActionColumn = (actions, accessor, sticky, disableSelectAll = false) => {
39522
- const width = actions.includes(Actions.SELECT) ? 52 : actions.length * 24 + 24;
39523
- return {
39524
- Cell: ActionCell,
39525
- Header: actions.includes(Actions.SELECT) && !disableSelectAll ? SelectHeader : "",
39526
- accessor: accessor || "actions",
39527
- actions,
39528
- disableSortBy: true,
39529
- maxWidth: width,
39530
- minWidth: actions.includes(Actions.SELECT) ? 52 : 48,
39531
- sticky: sticky || null,
39532
- width
39533
- };
39534
- };
39578
+ Table.ActionColumn = createActionColumn;
39535
39579
  Table.Actions = Actions;
39536
39580
  Table.cells = cells;
39537
39581
  styled.div`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darajs/core",
3
- "version": "1.23.0",
3
+ "version": "1.23.2-alpha.1",
4
4
  "description": "Dara Framework core",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -39,9 +39,9 @@
39
39
  "@babel/preset-env": "^7.23.0",
40
40
  "@babel/preset-react": "^7.22.15",
41
41
  "@babel/preset-typescript": "^7.23.0",
42
- "@darajs/eslint-config": "1.23.0",
43
- "@darajs/prettier-config": "1.23.0",
44
- "@darajs/stylelint-config": "1.23.0",
42
+ "@darajs/eslint-config": "1.23.2-alpha.1",
43
+ "@darajs/prettier-config": "1.23.2-alpha.1",
44
+ "@darajs/stylelint-config": "1.23.2-alpha.1",
45
45
  "@rollup/plugin-inject": "^4.0.4",
46
46
  "@testing-library/dom": "^9.3.0",
47
47
  "@testing-library/jest-dom": "^6.0.0",
@@ -75,10 +75,10 @@
75
75
  "whatwg-fetch": "^3.6.20"
76
76
  },
77
77
  "dependencies": {
78
- "@darajs/styled-components": "1.23.0",
79
- "@darajs/ui-components": "1.23.0",
80
- "@darajs/ui-notifications": "1.23.0",
81
- "@darajs/ui-utils": "1.23.0",
78
+ "@darajs/styled-components": "1.23.2-alpha.1",
79
+ "@darajs/ui-components": "1.23.2-alpha.1",
80
+ "@darajs/ui-notifications": "1.23.2-alpha.1",
81
+ "@darajs/ui-utils": "1.23.2-alpha.1",
82
82
  "@fortawesome/fontawesome-free": "~6.4.0",
83
83
  "@recoiljs/refine": "^0.1.1",
84
84
  "@tanstack/query-core": "^4.40.0",
@@ -117,5 +117,5 @@
117
117
  "engines": {
118
118
  "node": ">=20.19.0"
119
119
  },
120
- "gitHead": "1dee57b6df63904db955f9abf4f984040baab0eb"
120
+ "gitHead": "b74533efadb8254c40fde6d3203d8c1e4bc6067a"
121
121
  }