@procore/data-table 14.8.0 → 14.10.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.
@@ -509,6 +509,9 @@ interface ColumnDefinition<TValue = any, TRenderer = React.FC<ICellRendererParam
509
509
  autoHeight?: boolean;
510
510
  wrapText?: boolean;
511
511
  lockPosition?: ColDef['lockPosition'];
512
+ rowDrag?: boolean | ((params: {
513
+ node: RowNode;
514
+ }) => boolean);
512
515
  }
513
516
  interface ExtendedColDef extends ColDef {
514
517
  bulkEditable?: ((params: IsEditableParams) => boolean) | boolean;
@@ -960,7 +963,7 @@ interface TableProps<TRow = any, TBottomRow = any> {
960
963
  paginationPageSize?: number;
961
964
  pinnedBottomRowData?: TBottomRow[];
962
965
  popupParent?: HTMLElement;
963
- rowActions?: React.FunctionComponent<any>[];
966
+ rowActions?: React.FunctionComponent<any>[] | ((rowProps: DataTableCellRendererProps) => React.FunctionComponent<any>[]);
964
967
  /**
965
968
  * @private
966
969
  * Unsafe to use.
@@ -1088,6 +1091,7 @@ interface DataTableProps {
1088
1091
  * the updated values
1089
1092
  */
1090
1093
  onBulkEditUpdate?: (rows: BulkEditResult[]) => Promise<void>;
1094
+ localStoragePersistenceKey?: string;
1091
1095
  showExpandCollapseAllToggle?: boolean;
1092
1096
  translations?: DataTableTranslations;
1093
1097
  enableCellTextSelection?: boolean;
@@ -1155,7 +1159,11 @@ interface IFilterProps<Opt = any, Val = number | string | null> {
1155
1159
  headerName: string;
1156
1160
  value: Val extends string ? string[] : Val extends number ? number[] : unknown[];
1157
1161
  }) => React.FunctionComponent | string;
1158
- getFilterOptions?: () => Promise<Opt[]>;
1162
+ getFilterOptions?: (params?: {
1163
+ currentOffset?: number;
1164
+ searchQuery?: string;
1165
+ }) => Promise<Opt[] | IFilterOptions<Opt>>;
1166
+ onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1159
1167
  getId?: (option: Opt) => Val extends string ? string : Val extends number ? number : unknown;
1160
1168
  getLabel?: (option: Opt) => string;
1161
1169
  groupName?: string;
@@ -1187,6 +1195,8 @@ interface FilterComponentProps<Opt = any, Val = Opt[] | NumberFilterModel> {
1187
1195
  getOptions?: () => Promise<boolean>;
1188
1196
  loading: boolean;
1189
1197
  onChange: (value: Opt[] | NumberFilterModel | undefined) => void;
1198
+ onScrollBottom?: () => void;
1199
+ onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1190
1200
  onRemove: () => void;
1191
1201
  options: Opt[];
1192
1202
  value: Val;
@@ -1219,6 +1229,10 @@ interface IFilterState<Opt = any, Val = number | string> {
1219
1229
  interface IServerFiltersState {
1220
1230
  [field: string]: IFilterState;
1221
1231
  }
1232
+ interface IFilterOptions<UniversalOpt = any> {
1233
+ options: UniversalOpt[];
1234
+ totalOptions: number;
1235
+ }
1222
1236
  interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1223
1237
  hasDefinedFilters: boolean;
1224
1238
  hasSelectedFilters: boolean;
@@ -1226,6 +1240,7 @@ interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1226
1240
  getSelected: (field: string) => IFilterState<UniversalOpt, UniversalVal>;
1227
1241
  getListFilter: (field: string) => IFilterState<UniversalOpt, UniversalVal>;
1228
1242
  selectedFilters: IServerFiltersState;
1243
+ getTotalOptions: (field: string) => number;
1229
1244
  onChangeFilterValue: ({ field, value, }: {
1230
1245
  field: string;
1231
1246
  value: any;
@@ -1234,7 +1249,7 @@ interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1234
1249
  onClearAllFilters: React.MouseEventHandler<HTMLButtonElement>;
1235
1250
  possibleFilters: string[];
1236
1251
  setSelectedFilters: (filters: IServerFilter[]) => void;
1237
- waitForStoredOptions: (field: string) => Promise<void>;
1252
+ waitForStoredOptions: (field: string, search?: string) => Promise<void>;
1238
1253
  filtersState: IServerFilter[];
1239
1254
  }
1240
1255
 
@@ -1336,7 +1351,7 @@ interface BulkActionProps {
1336
1351
  style?: React__default.CSSProperties;
1337
1352
  }
1338
1353
 
1339
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1354
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1340
1355
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1341
1356
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1342
1357
  ConfigPanelButton: React__default.FC<{}>;
@@ -1373,7 +1388,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1373
1388
 
1374
1389
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1375
1390
 
1376
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1391
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1377
1392
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1378
1393
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1379
1394
  ConfigPanelButton: React__default.FC<{}>;
@@ -509,6 +509,9 @@ interface ColumnDefinition<TValue = any, TRenderer = React.FC<ICellRendererParam
509
509
  autoHeight?: boolean;
510
510
  wrapText?: boolean;
511
511
  lockPosition?: ColDef['lockPosition'];
512
+ rowDrag?: boolean | ((params: {
513
+ node: RowNode;
514
+ }) => boolean);
512
515
  }
513
516
  interface ExtendedColDef extends ColDef {
514
517
  bulkEditable?: ((params: IsEditableParams) => boolean) | boolean;
@@ -960,7 +963,7 @@ interface TableProps<TRow = any, TBottomRow = any> {
960
963
  paginationPageSize?: number;
961
964
  pinnedBottomRowData?: TBottomRow[];
962
965
  popupParent?: HTMLElement;
963
- rowActions?: React.FunctionComponent<any>[];
966
+ rowActions?: React.FunctionComponent<any>[] | ((rowProps: DataTableCellRendererProps) => React.FunctionComponent<any>[]);
964
967
  /**
965
968
  * @private
966
969
  * Unsafe to use.
@@ -1088,6 +1091,7 @@ interface DataTableProps {
1088
1091
  * the updated values
1089
1092
  */
1090
1093
  onBulkEditUpdate?: (rows: BulkEditResult[]) => Promise<void>;
1094
+ localStoragePersistenceKey?: string;
1091
1095
  showExpandCollapseAllToggle?: boolean;
1092
1096
  translations?: DataTableTranslations;
1093
1097
  enableCellTextSelection?: boolean;
@@ -1155,7 +1159,11 @@ interface IFilterProps<Opt = any, Val = number | string | null> {
1155
1159
  headerName: string;
1156
1160
  value: Val extends string ? string[] : Val extends number ? number[] : unknown[];
1157
1161
  }) => React.FunctionComponent | string;
1158
- getFilterOptions?: () => Promise<Opt[]>;
1162
+ getFilterOptions?: (params?: {
1163
+ currentOffset?: number;
1164
+ searchQuery?: string;
1165
+ }) => Promise<Opt[] | IFilterOptions<Opt>>;
1166
+ onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1159
1167
  getId?: (option: Opt) => Val extends string ? string : Val extends number ? number : unknown;
1160
1168
  getLabel?: (option: Opt) => string;
1161
1169
  groupName?: string;
@@ -1187,6 +1195,8 @@ interface FilterComponentProps<Opt = any, Val = Opt[] | NumberFilterModel> {
1187
1195
  getOptions?: () => Promise<boolean>;
1188
1196
  loading: boolean;
1189
1197
  onChange: (value: Opt[] | NumberFilterModel | undefined) => void;
1198
+ onScrollBottom?: () => void;
1199
+ onSearch?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1190
1200
  onRemove: () => void;
1191
1201
  options: Opt[];
1192
1202
  value: Val;
@@ -1219,6 +1229,10 @@ interface IFilterState<Opt = any, Val = number | string> {
1219
1229
  interface IServerFiltersState {
1220
1230
  [field: string]: IFilterState;
1221
1231
  }
1232
+ interface IFilterOptions<UniversalOpt = any> {
1233
+ options: UniversalOpt[];
1234
+ totalOptions: number;
1235
+ }
1222
1236
  interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1223
1237
  hasDefinedFilters: boolean;
1224
1238
  hasSelectedFilters: boolean;
@@ -1226,6 +1240,7 @@ interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1226
1240
  getSelected: (field: string) => IFilterState<UniversalOpt, UniversalVal>;
1227
1241
  getListFilter: (field: string) => IFilterState<UniversalOpt, UniversalVal>;
1228
1242
  selectedFilters: IServerFiltersState;
1243
+ getTotalOptions: (field: string) => number;
1229
1244
  onChangeFilterValue: ({ field, value, }: {
1230
1245
  field: string;
1231
1246
  value: any;
@@ -1234,7 +1249,7 @@ interface IFilterStorage<UniversalOpt = any, UniversalVal = number | string> {
1234
1249
  onClearAllFilters: React.MouseEventHandler<HTMLButtonElement>;
1235
1250
  possibleFilters: string[];
1236
1251
  setSelectedFilters: (filters: IServerFilter[]) => void;
1237
- waitForStoredOptions: (field: string) => Promise<void>;
1252
+ waitForStoredOptions: (field: string, search?: string) => Promise<void>;
1238
1253
  filtersState: IServerFilter[];
1239
1254
  }
1240
1255
 
@@ -1336,7 +1351,7 @@ interface BulkActionProps {
1336
1351
  style?: React__default.CSSProperties;
1337
1352
  }
1338
1353
 
1339
- declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1354
+ declare const _default$1: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onTableConfigChange, translations, enableCellTextSelection, localStoragePersistenceKey, }: React__default.PropsWithChildren<ClientSideDataTableProps>) => React__default.JSX.Element) & {
1340
1355
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1341
1356
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1342
1357
  ConfigPanelButton: React__default.FC<{}>;
@@ -1373,7 +1388,7 @@ declare const MultiSelectQuickFilterRenderer: (props: FilterProps<any[]>) => Rea
1373
1388
 
1374
1389
  declare const SingleSelectQuickFilterRenderer: (props: FilterProps<any[]>) => React__default.JSX.Element;
1375
1390
 
1376
- declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1391
+ declare const _default: (({ analytics, children, columnDefinitions: _columnDefinitions, customBulkEditorFields, enableDynamicRowHeight, enableGroupEditAndValidation, filterGroups, getRowId, initialTableConfig: _initialTableConfig, onBulkEditUpdate, onServerSideDataRequest, onTableConfigChange, enableCellTextSelection, showExpandCollapseAllToggle, translations, localStoragePersistenceKey, }: React__default.PropsWithChildren<DataTableProps>) => React__default.JSX.Element) & {
1377
1392
  BulkActions: React__default.FunctionComponent<React__default.PropsWithChildren<BulkActionProps>>;
1378
1393
  BulkEditActionButton: React__default.FunctionComponent<ActionButtonProps>;
1379
1394
  ConfigPanelButton: React__default.FC<{}>;