@procore/data-table 14.37.0 → 14.39.0
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/CHANGELOG.md +16 -0
- package/dist/legacy/index.cjs +107 -51
- package/dist/legacy/index.d.cts +13 -3
- package/dist/legacy/index.d.ts +13 -3
- package/dist/legacy/index.js +107 -51
- package/dist/modern/index.cjs +106 -50
- package/dist/modern/index.d.cts +13 -3
- package/dist/modern/index.d.ts +13 -3
- package/dist/modern/index.js +106 -50
- package/package.json +4 -5
package/dist/modern/index.js
CHANGED
|
@@ -54602,6 +54602,32 @@ function SingleSelectFilterRenderer({
|
|
|
54602
54602
|
);
|
|
54603
54603
|
}
|
|
54604
54604
|
|
|
54605
|
+
// src/utils/columnEditableHelpers.ts
|
|
54606
|
+
function createColumnEditableUtils(options) {
|
|
54607
|
+
return {
|
|
54608
|
+
overrideEditable: (columnEditable) => {
|
|
54609
|
+
return (params) => {
|
|
54610
|
+
const isGroupNodeExpanded = params.node.group && params.node.expanded;
|
|
54611
|
+
if (params.node?.rowPinned || !options.enableGroupHeaderEdit && isGroupNodeExpanded && !params.node.footer) {
|
|
54612
|
+
return false;
|
|
54613
|
+
}
|
|
54614
|
+
if (typeof columnEditable === "boolean") {
|
|
54615
|
+
return columnEditable;
|
|
54616
|
+
}
|
|
54617
|
+
return columnEditable?.(params) ?? false;
|
|
54618
|
+
};
|
|
54619
|
+
}
|
|
54620
|
+
};
|
|
54621
|
+
}
|
|
54622
|
+
function isColumnEditable(columnEditable) {
|
|
54623
|
+
return (params) => {
|
|
54624
|
+
if (typeof columnEditable === "boolean") {
|
|
54625
|
+
return columnEditable;
|
|
54626
|
+
}
|
|
54627
|
+
return columnEditable?.(params) ?? false;
|
|
54628
|
+
};
|
|
54629
|
+
}
|
|
54630
|
+
|
|
54605
54631
|
// src/utils/transformers.ts
|
|
54606
54632
|
var emptyObject = {};
|
|
54607
54633
|
var DEFAULT_AUTO_GROUP_COLUMN_DEFINITION = {
|
|
@@ -54682,22 +54708,11 @@ function transformToColumnDefinition(colDef = emptyObject) {
|
|
|
54682
54708
|
valueSetter: colDef.valueSetter
|
|
54683
54709
|
};
|
|
54684
54710
|
}
|
|
54685
|
-
function isEditable(columnEditable) {
|
|
54686
|
-
return (params) => {
|
|
54687
|
-
if (params.node?.rowPinned || params.node.group && params.node.expanded && !params.node.footer) {
|
|
54688
|
-
return false;
|
|
54689
|
-
}
|
|
54690
|
-
if (typeof columnEditable === "boolean") {
|
|
54691
|
-
return columnEditable;
|
|
54692
|
-
}
|
|
54693
|
-
return columnEditable?.(params) ?? false;
|
|
54694
|
-
};
|
|
54695
|
-
}
|
|
54696
54711
|
function shouldHaveEditStyles(params) {
|
|
54697
54712
|
if (!params.colDef?.cellEditor) {
|
|
54698
54713
|
return false;
|
|
54699
54714
|
}
|
|
54700
|
-
return
|
|
54715
|
+
return isColumnEditable(params.colDef.editable);
|
|
54701
54716
|
}
|
|
54702
54717
|
var toExcelCellClass = (className) => `excel-export--${className}`;
|
|
54703
54718
|
function transformToExcelStyles(excelDataFormats) {
|
|
@@ -54820,11 +54835,11 @@ function transformColumnDefinitionToColDef(dataTableColumnDefinition, enableGrou
|
|
|
54820
54835
|
parentData: context?.parentData,
|
|
54821
54836
|
parentId: context?.parentId
|
|
54822
54837
|
}) : aggFunc,
|
|
54823
|
-
bulkEditable:
|
|
54838
|
+
bulkEditable: isColumnEditable(bulkEditable),
|
|
54824
54839
|
cellClass: cellExcelDataType ? toExcelCellClass(cellExcelDataType) : void 0,
|
|
54825
54840
|
cellClassRules,
|
|
54826
54841
|
comparator,
|
|
54827
|
-
editable:
|
|
54842
|
+
editable: isColumnEditable(_editable),
|
|
54828
54843
|
filter: getFilter(dataTableColumnDefinition),
|
|
54829
54844
|
// set filter by default
|
|
54830
54845
|
filterParams: {
|
|
@@ -55145,12 +55160,12 @@ function getDecoratedAutoGroupColDef(columnDefinition, enableGroupEditAndValidat
|
|
|
55145
55160
|
}
|
|
55146
55161
|
|
|
55147
55162
|
// src/CellRenderers/AutoGroupCell.scss
|
|
55148
|
-
var css5 = `.
|
|
55163
|
+
var css5 = `._autoGroupCell_1qx8z_1 {
|
|
55149
55164
|
height: 100%;
|
|
55150
55165
|
width: 100%;
|
|
55151
55166
|
}
|
|
55152
55167
|
|
|
55153
|
-
.
|
|
55168
|
+
._indent_1qx8z_6 {
|
|
55154
55169
|
border-right: 1px solid #d6dadc;
|
|
55155
55170
|
background: #f4f5f6;
|
|
55156
55171
|
position: absolute;
|
|
@@ -55158,44 +55173,45 @@ var css5 = `._autoGroupCell_pq41h_1 {
|
|
|
55158
55173
|
bottom: -1px;
|
|
55159
55174
|
width: 12px;
|
|
55160
55175
|
}
|
|
55161
|
-
.
|
|
55176
|
+
._indent_1qx8z_6._innermostLastIndent_1qx8z_14 {
|
|
55162
55177
|
bottom: 0px;
|
|
55163
55178
|
}
|
|
55164
55179
|
|
|
55165
|
-
.
|
|
55180
|
+
._expandableCaret_1qx8z_18 {
|
|
55166
55181
|
margin-left: -8px;
|
|
55167
55182
|
margin-right: 4px;
|
|
55168
55183
|
width: 24px;
|
|
55184
|
+
flex-shrink: 0;
|
|
55169
55185
|
}
|
|
55170
55186
|
|
|
55171
|
-
.
|
|
55187
|
+
._expandCaret_1qx8z_25 {
|
|
55172
55188
|
color: #2066df;
|
|
55173
55189
|
cursor: pointer;
|
|
55174
55190
|
}
|
|
55175
55191
|
|
|
55176
|
-
.
|
|
55192
|
+
._collapseCaret_1qx8z_30 {
|
|
55177
55193
|
color: #75838a;
|
|
55178
55194
|
cursor: pointer;
|
|
55179
55195
|
}
|
|
55180
55196
|
|
|
55181
|
-
.
|
|
55197
|
+
._value_1qx8z_35 {
|
|
55182
55198
|
overflow: hidden;
|
|
55183
55199
|
text-overflow: ellipsis;
|
|
55184
55200
|
font-size: 12px;
|
|
55185
55201
|
}
|
|
55186
|
-
.
|
|
55202
|
+
._value_1qx8z_35._footer_1qx8z_40 {
|
|
55187
55203
|
color: #6a767c;
|
|
55188
55204
|
}`;
|
|
55189
55205
|
document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css5));
|
|
55190
55206
|
var AutoGroupCell_default = {
|
|
55191
|
-
"autoGroupCell": "
|
|
55192
|
-
"indent": "
|
|
55193
|
-
"innermostLastIndent": "
|
|
55194
|
-
"expandableCaret": "
|
|
55195
|
-
"expandCaret": "
|
|
55196
|
-
"collapseCaret": "
|
|
55197
|
-
"value": "
|
|
55198
|
-
"footer": "
|
|
55207
|
+
"autoGroupCell": "_autoGroupCell_1qx8z_1",
|
|
55208
|
+
"indent": "_indent_1qx8z_6",
|
|
55209
|
+
"innermostLastIndent": "_innermostLastIndent_1qx8z_14",
|
|
55210
|
+
"expandableCaret": "_expandableCaret_1qx8z_18",
|
|
55211
|
+
"expandCaret": "_expandCaret_1qx8z_25",
|
|
55212
|
+
"collapseCaret": "_collapseCaret_1qx8z_30",
|
|
55213
|
+
"value": "_value_1qx8z_35",
|
|
55214
|
+
"footer": "_footer_1qx8z_40"
|
|
55199
55215
|
};
|
|
55200
55216
|
|
|
55201
55217
|
// src/utils/rowSelectionHelpers.ts
|
|
@@ -56488,9 +56504,10 @@ var GenericHeaderRenderer = (props) => {
|
|
|
56488
56504
|
const {
|
|
56489
56505
|
columnApi,
|
|
56490
56506
|
tableRef,
|
|
56507
|
+
onExpandOrCollapseAll,
|
|
56491
56508
|
onServerSideDataRequest,
|
|
56492
|
-
|
|
56493
|
-
|
|
56509
|
+
onTableConfigChange,
|
|
56510
|
+
showExpandCollapseAllToggle
|
|
56494
56511
|
} = useInternalTableContext();
|
|
56495
56512
|
const onSSDR = Boolean(onServerSideDataRequest);
|
|
56496
56513
|
const [sortOrder, setSortOrder] = React80.useState(props.column.getSort());
|
|
@@ -56679,9 +56696,11 @@ var GenericHeaderRenderer = (props) => {
|
|
|
56679
56696
|
}
|
|
56680
56697
|
});
|
|
56681
56698
|
setExpansionVariant("tierOne");
|
|
56699
|
+
onExpandOrCollapseAll?.(true);
|
|
56682
56700
|
} else {
|
|
56683
56701
|
props.api.collapseAll();
|
|
56684
56702
|
setExpansionVariant("closed");
|
|
56703
|
+
onExpandOrCollapseAll?.(false);
|
|
56685
56704
|
}
|
|
56686
56705
|
return;
|
|
56687
56706
|
}
|
|
@@ -56696,10 +56715,13 @@ var GenericHeaderRenderer = (props) => {
|
|
|
56696
56715
|
props.api
|
|
56697
56716
|
);
|
|
56698
56717
|
setExpansionVariant(hasMoreExpandableNodes ? "tierOne" : "all");
|
|
56718
|
+
onExpandOrCollapseAll?.(true);
|
|
56699
56719
|
} else if (expansionVariant === "tierOne") {
|
|
56700
56720
|
props.api.expandAll();
|
|
56721
|
+
onExpandOrCollapseAll?.(true);
|
|
56701
56722
|
} else {
|
|
56702
56723
|
props.api.collapseAll();
|
|
56724
|
+
onExpandOrCollapseAll?.(false);
|
|
56703
56725
|
}
|
|
56704
56726
|
}
|
|
56705
56727
|
const tooltipText = {
|
|
@@ -56871,7 +56893,8 @@ var GenericHeaderRenderer = (props) => {
|
|
|
56871
56893
|
"aria-label": tooltipText[expansionVariant],
|
|
56872
56894
|
className: "expand-button",
|
|
56873
56895
|
onClick: onExpandToggle,
|
|
56874
|
-
role: "button"
|
|
56896
|
+
role: "button",
|
|
56897
|
+
"data-qa": "expand-or-collapse-all-button"
|
|
56875
56898
|
},
|
|
56876
56899
|
/* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
|
|
56877
56900
|
)
|
|
@@ -57715,6 +57738,8 @@ var InternalTableContext = React80.createContext({
|
|
|
57715
57738
|
gridApi: void 0,
|
|
57716
57739
|
localStoragePersistenceKey: void 0,
|
|
57717
57740
|
onBulkEditUpdate: () => Promise.resolve(),
|
|
57741
|
+
onExpandOrCollapseAll: () => {
|
|
57742
|
+
},
|
|
57718
57743
|
onServerSideDataRequest: void 0,
|
|
57719
57744
|
onTableConfigChange: () => {
|
|
57720
57745
|
},
|
|
@@ -76259,12 +76284,12 @@ var MenuItemMapper = class MenuItemMapper2 extends BeanStub {
|
|
|
76259
76284
|
if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, "Cut from Menu", this.context.getGridId())) {
|
|
76260
76285
|
const focusedCell = this.focusService.getFocusedCell();
|
|
76261
76286
|
const rowNode = focusedCell ? this.rowPositionUtils.getRowNode(focusedCell) : null;
|
|
76262
|
-
const
|
|
76287
|
+
const isEditable = rowNode ? focusedCell === null || focusedCell === void 0 ? void 0 : focusedCell.column.isCellEditable(rowNode) : false;
|
|
76263
76288
|
return {
|
|
76264
76289
|
name: localeTextFunc("cut", "Cut"),
|
|
76265
76290
|
shortcut: localeTextFunc("ctrlX", "Ctrl+X"),
|
|
76266
76291
|
icon: _.createIconNoSpan("clipboardCut", this.gridOptionsService, null),
|
|
76267
|
-
disabled: !
|
|
76292
|
+
disabled: !isEditable || this.gridOptionsService.is("suppressCutToClipboard"),
|
|
76268
76293
|
action: () => this.clipboardService.cutToClipboard(void 0, "contextMenu")
|
|
76269
76294
|
};
|
|
76270
76295
|
} else {
|
|
@@ -108808,6 +108833,7 @@ var DataTable = ({
|
|
|
108808
108833
|
getRowId,
|
|
108809
108834
|
initialTableConfig: _initialTableConfig,
|
|
108810
108835
|
onBulkEditUpdate,
|
|
108836
|
+
onExpandOrCollapseAll,
|
|
108811
108837
|
onServerSideDataRequest,
|
|
108812
108838
|
onTableConfigChange,
|
|
108813
108839
|
showExpandCollapseAllToggle,
|
|
@@ -109054,6 +109080,7 @@ var DataTable = ({
|
|
|
109054
109080
|
gridApi,
|
|
109055
109081
|
initialTableConfig,
|
|
109056
109082
|
onBulkEditUpdate,
|
|
109083
|
+
onExpandOrCollapseAll,
|
|
109057
109084
|
onServerSideDataRequest,
|
|
109058
109085
|
onTableConfigChange: internalOnTableConfigChange,
|
|
109059
109086
|
rowSelectionRef,
|
|
@@ -109140,6 +109167,20 @@ function getServerSideDatasource(onServerSideDataRequestCallbackRef, onEmptyResp
|
|
|
109140
109167
|
};
|
|
109141
109168
|
}
|
|
109142
109169
|
var minimumColumnWidth = 140;
|
|
109170
|
+
function useComputeAgGridProps(props) {
|
|
109171
|
+
const internalTableContext = useInternalTableContext();
|
|
109172
|
+
const onSSDR = internalTableContext.onServerSideDataRequest;
|
|
109173
|
+
return {
|
|
109174
|
+
groupIncludeFooter: !onSSDR && props.groupIncludeFooter === void 0 ? true : props.groupIncludeFooter,
|
|
109175
|
+
rowDragManaged: onSSDR ? false : props.rowDragManaged ?? true,
|
|
109176
|
+
rowModelType: onSSDR ? "serverSide" : void 0,
|
|
109177
|
+
groupSelectsChildren: (
|
|
109178
|
+
// Always true for client side, defaults to true for server side
|
|
109179
|
+
internalTableContext.totalRowCount > 0 && props.groupSelectsChildren !== false || !onSSDR
|
|
109180
|
+
),
|
|
109181
|
+
groupDefaultExpanded: props.groupsAlwaysExpanded ? -1 : props.groupDefaultExpanded
|
|
109182
|
+
};
|
|
109183
|
+
}
|
|
109143
109184
|
var Table = (props) => {
|
|
109144
109185
|
const { suppressColumnVirtualisation = true, rowActionsConfig = {} } = props;
|
|
109145
109186
|
const I18n = useI18nContext();
|
|
@@ -109189,14 +109230,28 @@ var Table = (props) => {
|
|
|
109189
109230
|
React80.useImperativeHandle(internalTableContext.tableRef, () => tableApi, [
|
|
109190
109231
|
tableApi
|
|
109191
109232
|
]);
|
|
109233
|
+
const {
|
|
109234
|
+
groupIncludeFooter,
|
|
109235
|
+
rowDragManaged,
|
|
109236
|
+
rowModelType,
|
|
109237
|
+
groupSelectsChildren,
|
|
109238
|
+
groupDefaultExpanded
|
|
109239
|
+
} = useComputeAgGridProps(props);
|
|
109240
|
+
const { overrideEditable } = createColumnEditableUtils({
|
|
109241
|
+
enableGroupHeaderEdit: props.enableGroupHeaderEdit
|
|
109242
|
+
});
|
|
109192
109243
|
const decoratedColDefs = React80.useMemo(
|
|
109193
|
-
() => internalTableContext.columnDefinitions?.map(
|
|
109194
|
-
|
|
109244
|
+
() => internalTableContext.columnDefinitions?.map((colDef) => {
|
|
109245
|
+
const newColDef = transformToColDef(
|
|
109195
109246
|
colDef,
|
|
109196
109247
|
internalTableContext.enableGroupEditAndValidation,
|
|
109197
109248
|
internalTableContext.enableDynamicRowHeight
|
|
109198
|
-
)
|
|
109199
|
-
|
|
109249
|
+
);
|
|
109250
|
+
return {
|
|
109251
|
+
...newColDef,
|
|
109252
|
+
editable: overrideEditable(colDef.editable)
|
|
109253
|
+
};
|
|
109254
|
+
}),
|
|
109200
109255
|
[internalTableContext.columnDefinitions]
|
|
109201
109256
|
);
|
|
109202
109257
|
const hasRowActions = React80.useMemo(
|
|
@@ -109938,13 +109993,10 @@ var Table = (props) => {
|
|
|
109938
109993
|
getRowId: internalTableContext.getRowId,
|
|
109939
109994
|
getRowStyle,
|
|
109940
109995
|
groupAllowUnbalanced: true,
|
|
109941
|
-
groupDefaultExpanded
|
|
109942
|
-
groupIncludeFooter
|
|
109996
|
+
groupDefaultExpanded,
|
|
109997
|
+
groupIncludeFooter,
|
|
109943
109998
|
getGroupRowAgg: props.getGroupRowAgg ? getGroupRowAgg : void 0,
|
|
109944
|
-
groupSelectsChildren
|
|
109945
|
-
// Always true for client side, defaults to true for server side
|
|
109946
|
-
internalTableContext.totalRowCount > 0 && props.groupSelectsChildren !== false || !onSSDR
|
|
109947
|
-
),
|
|
109999
|
+
groupSelectsChildren,
|
|
109948
110000
|
groupSelectsFiltered: true,
|
|
109949
110001
|
headerHeight: props.headerHeight,
|
|
109950
110002
|
icons: tableIcons,
|
|
@@ -110002,8 +110054,8 @@ var Table = (props) => {
|
|
|
110002
110054
|
pinnedBottomRowData: props.pinnedBottomRowData,
|
|
110003
110055
|
rowBuffer: props.rowBuffer,
|
|
110004
110056
|
rowClassRules,
|
|
110005
|
-
rowDragManaged
|
|
110006
|
-
rowModelType
|
|
110057
|
+
rowDragManaged,
|
|
110058
|
+
rowModelType,
|
|
110007
110059
|
rowSelection: "multiple",
|
|
110008
110060
|
...serverSideInfiniteScroll,
|
|
110009
110061
|
suppressClickEdit: true,
|
|
@@ -112032,6 +112084,7 @@ var ClientSideDataTable = ({
|
|
|
112032
112084
|
getRowId,
|
|
112033
112085
|
initialTableConfig: _initialTableConfig,
|
|
112034
112086
|
onBulkEditUpdate,
|
|
112087
|
+
onExpandOrCollapseAll,
|
|
112035
112088
|
onTableConfigChange,
|
|
112036
112089
|
translations: translations2 = {},
|
|
112037
112090
|
enableCellTextSelection,
|
|
@@ -112048,8 +112101,9 @@ var ClientSideDataTable = ({
|
|
|
112048
112101
|
filterGroups,
|
|
112049
112102
|
getRowId,
|
|
112050
112103
|
initialTableConfig: _initialTableConfig,
|
|
112051
|
-
onTableConfigChange,
|
|
112052
112104
|
onBulkEditUpdate,
|
|
112105
|
+
onExpandOrCollapseAll,
|
|
112106
|
+
onTableConfigChange,
|
|
112053
112107
|
showExpandCollapseAllToggle: true,
|
|
112054
112108
|
translations: translations2,
|
|
112055
112109
|
localStoragePersistenceKey,
|
|
@@ -116440,6 +116494,7 @@ var ServerSideDataTable = ({
|
|
|
116440
116494
|
getRowId,
|
|
116441
116495
|
initialTableConfig: _initialTableConfig,
|
|
116442
116496
|
onBulkEditUpdate,
|
|
116497
|
+
onExpandOrCollapseAll,
|
|
116443
116498
|
onServerSideDataRequest,
|
|
116444
116499
|
onTableConfigChange,
|
|
116445
116500
|
enableCellTextSelection,
|
|
@@ -116458,9 +116513,10 @@ var ServerSideDataTable = ({
|
|
|
116458
116513
|
filterGroups,
|
|
116459
116514
|
getRowId,
|
|
116460
116515
|
initialTableConfig: _initialTableConfig,
|
|
116461
|
-
onTableConfigChange,
|
|
116462
|
-
onServerSideDataRequest,
|
|
116463
116516
|
onBulkEditUpdate,
|
|
116517
|
+
onExpandOrCollapseAll,
|
|
116518
|
+
onServerSideDataRequest,
|
|
116519
|
+
onTableConfigChange,
|
|
116464
116520
|
showExpandCollapseAllToggle,
|
|
116465
116521
|
translations: translations2,
|
|
116466
116522
|
customBulkEditorFields,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@procore/data-table",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.39.0",
|
|
4
4
|
"description": "Complex data grid built on top of ag-grid, with DST components and styles.",
|
|
5
5
|
"author": "Procore Technologies",
|
|
6
6
|
"homepage": "https://github.com/procore/core/tree/main/packages/data-table",
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
"pseudo": "pseudolocalize run ./src/locales",
|
|
60
60
|
"storybook": "storybook dev -p 6006",
|
|
61
61
|
"storybook-static:server": "http-server ./storybook-static -p 6006 -c-1 --silent",
|
|
62
|
-
"test": "jest --runInBand --silent --logHeapUsage",
|
|
63
|
-
"test:coverage": "yarn test -- --collectCoverage",
|
|
62
|
+
"test": "jest --runInBand --silent --logHeapUsage --collectCoverage",
|
|
64
63
|
"test:watch": "yarn run test --watch"
|
|
65
64
|
},
|
|
66
65
|
"peerDependencies": {
|
|
@@ -107,9 +106,9 @@
|
|
|
107
106
|
"@dotenvx/dotenvx": "1.6.4",
|
|
108
107
|
"@ngneat/falso": "6.4.0",
|
|
109
108
|
"@procore/core-css": "10.17.0",
|
|
110
|
-
"@procore/core-icons": "^12.
|
|
109
|
+
"@procore/core-icons": "^12.11.0",
|
|
111
110
|
"@procore/core-prettier": "10.2.0",
|
|
112
|
-
"@procore/core-react": "^12.
|
|
111
|
+
"@procore/core-react": "^12.33.0",
|
|
113
112
|
"@procore/eslint-config": "10.0.0",
|
|
114
113
|
"@procore/globalization-toolkit": "3.1.0",
|
|
115
114
|
"@procore/labs-financials-utils": "4.3.1",
|