@procore/data-table 14.39.0 → 14.39.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Change Log
2
2
 
3
+ ## 14.39.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 5688b5d: Improve performance for rendering column group headers
8
+ - Updated dependencies [f67398f]
9
+ - @procore/labs-datetime-select@0.2.0
10
+
3
11
  ## 14.39.0
4
12
 
5
13
  ### Minor Changes
@@ -57052,18 +57052,14 @@ var GenericHeaderRenderer = (props) => {
57052
57052
  // src/GenericHeader/GenericColumnGroupHeader.tsx
57053
57053
  function GenericColumnGroupHeader(props) {
57054
57054
  const I18n = coreReact.useI18nContext();
57055
- const { expanded: initialExpanded, expandable } = props.columnGroup.providedColumnGroup;
57056
- const [isExpanded, setIsExpanded] = React80__default.default.useState(initialExpanded);
57057
- React80__default.default.useEffect(() => {
57058
- props.setExpanded(isExpanded);
57059
- }, [isExpanded]);
57055
+ const { expanded, expandable } = props.columnGroup.providedColumnGroup;
57060
57056
  if (!props.displayName) {
57061
57057
  return null;
57062
57058
  }
57063
57059
  const tooltipText = I18n.t(
57064
- `dataTable.columnGroupToggle.${isExpanded ? "collapse" : "expand"}`
57060
+ `dataTable.columnGroupToggle.${expanded ? "collapse" : "expand"}`
57065
57061
  );
57066
- const ExpansionVariantIcon = isExpanded ? coreIcons.CaretsIn : coreIcons.CaretsOut;
57062
+ const ExpansionVariantIcon = expanded ? coreIcons.CaretsIn : coreIcons.CaretsOut;
57067
57063
  return /* @__PURE__ */ React80__default.default.createElement(React80__default.default.Fragment, null, /* @__PURE__ */ React80__default.default.createElement("div", { className: "ag-header-group-cell-label", role: "presentation" }, /* @__PURE__ */ React80__default.default.createElement("span", { className: "ag-header-group-text", role: "presentation" }, props.displayName)), expandable && /* @__PURE__ */ React80__default.default.createElement(
57068
57064
  coreReact.Tooltip,
57069
57065
  {
@@ -57076,7 +57072,7 @@ function GenericColumnGroupHeader(props) {
57076
57072
  {
57077
57073
  "aria-label": tooltipText,
57078
57074
  className: "expand-button",
57079
- onClick: () => setIsExpanded((v) => !v)
57075
+ onClick: () => props.setExpanded(!expanded)
57080
57076
  },
57081
57077
  /* @__PURE__ */ React80__default.default.createElement(ExpansionVariantIcon, { size: "sm" })
57082
57078
  )
@@ -57169,13 +57165,6 @@ function CustomLoader(params) {
57169
57165
  }
57170
57166
  return /* @__PURE__ */ React80__default.default.createElement(LevelIndents, { level: params.node.level, lastRowInGroup: false });
57171
57167
  }
57172
- var DefaultFrameworkComponents = {
57173
- agColumnHeader: GenericHeaderRenderer,
57174
- agLoadingCellRenderer: CustomLoader,
57175
- agColumnGroupHeader: GenericColumnGroupHeader,
57176
- loadingOverlayRenderer: Spinner,
57177
- emptyStateRenderer: EmptyState
57178
- };
57179
57168
  function getFrameworkComponents(tableProps) {
57180
57169
  const headerMenuConfig = {
57181
57170
  suppressResetColumnsOption: tableProps.suppressResetColumnsOption || false,
@@ -57189,6 +57178,13 @@ function getFrameworkComponents(tableProps) {
57189
57178
  tableProps.onSelectAll,
57190
57179
  tableProps.selectionSSREnabled
57191
57180
  );
57181
+ const DefaultFrameworkComponents = {
57182
+ agColumnHeader: GenericHeaderRenderer,
57183
+ agLoadingCellRenderer: CustomLoader,
57184
+ agColumnGroupHeader: GenericColumnGroupHeader,
57185
+ loadingOverlayRenderer: Spinner,
57186
+ emptyStateRenderer: EmptyState
57187
+ };
57192
57188
  DefaultFrameworkComponents["autoGroupCellRenderer"] = AutoGroupCellRenderer;
57193
57189
  return { ...DefaultFrameworkComponents, ...customFrameworkComponents };
57194
57190
  }
@@ -57039,18 +57039,14 @@ var GenericHeaderRenderer = (props) => {
57039
57039
  // src/GenericHeader/GenericColumnGroupHeader.tsx
57040
57040
  function GenericColumnGroupHeader(props) {
57041
57041
  const I18n = useI18nContext();
57042
- const { expanded: initialExpanded, expandable } = props.columnGroup.providedColumnGroup;
57043
- const [isExpanded, setIsExpanded] = React80.useState(initialExpanded);
57044
- React80.useEffect(() => {
57045
- props.setExpanded(isExpanded);
57046
- }, [isExpanded]);
57042
+ const { expanded, expandable } = props.columnGroup.providedColumnGroup;
57047
57043
  if (!props.displayName) {
57048
57044
  return null;
57049
57045
  }
57050
57046
  const tooltipText = I18n.t(
57051
- `dataTable.columnGroupToggle.${isExpanded ? "collapse" : "expand"}`
57047
+ `dataTable.columnGroupToggle.${expanded ? "collapse" : "expand"}`
57052
57048
  );
57053
- const ExpansionVariantIcon = isExpanded ? CaretsIn : CaretsOut;
57049
+ const ExpansionVariantIcon = expanded ? CaretsIn : CaretsOut;
57054
57050
  return /* @__PURE__ */ React80.createElement(React80.Fragment, null, /* @__PURE__ */ React80.createElement("div", { className: "ag-header-group-cell-label", role: "presentation" }, /* @__PURE__ */ React80.createElement("span", { className: "ag-header-group-text", role: "presentation" }, props.displayName)), expandable && /* @__PURE__ */ React80.createElement(
57055
57051
  Tooltip,
57056
57052
  {
@@ -57063,7 +57059,7 @@ function GenericColumnGroupHeader(props) {
57063
57059
  {
57064
57060
  "aria-label": tooltipText,
57065
57061
  className: "expand-button",
57066
- onClick: () => setIsExpanded((v) => !v)
57062
+ onClick: () => props.setExpanded(!expanded)
57067
57063
  },
57068
57064
  /* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
57069
57065
  )
@@ -57156,13 +57152,6 @@ function CustomLoader(params) {
57156
57152
  }
57157
57153
  return /* @__PURE__ */ React80.createElement(LevelIndents, { level: params.node.level, lastRowInGroup: false });
57158
57154
  }
57159
- var DefaultFrameworkComponents = {
57160
- agColumnHeader: GenericHeaderRenderer,
57161
- agLoadingCellRenderer: CustomLoader,
57162
- agColumnGroupHeader: GenericColumnGroupHeader,
57163
- loadingOverlayRenderer: Spinner,
57164
- emptyStateRenderer: EmptyState
57165
- };
57166
57155
  function getFrameworkComponents(tableProps) {
57167
57156
  const headerMenuConfig = {
57168
57157
  suppressResetColumnsOption: tableProps.suppressResetColumnsOption || false,
@@ -57176,6 +57165,13 @@ function getFrameworkComponents(tableProps) {
57176
57165
  tableProps.onSelectAll,
57177
57166
  tableProps.selectionSSREnabled
57178
57167
  );
57168
+ const DefaultFrameworkComponents = {
57169
+ agColumnHeader: GenericHeaderRenderer,
57170
+ agLoadingCellRenderer: CustomLoader,
57171
+ agColumnGroupHeader: GenericColumnGroupHeader,
57172
+ loadingOverlayRenderer: Spinner,
57173
+ emptyStateRenderer: EmptyState
57174
+ };
57179
57175
  DefaultFrameworkComponents["autoGroupCellRenderer"] = AutoGroupCellRenderer;
57180
57176
  return { ...DefaultFrameworkComponents, ...customFrameworkComponents };
57181
57177
  }
@@ -56966,18 +56966,14 @@ var GenericHeaderRenderer = (props) => {
56966
56966
  // src/GenericHeader/GenericColumnGroupHeader.tsx
56967
56967
  function GenericColumnGroupHeader(props) {
56968
56968
  const I18n = coreReact.useI18nContext();
56969
- const { expanded: initialExpanded, expandable } = props.columnGroup.providedColumnGroup;
56970
- const [isExpanded, setIsExpanded] = React80__default.default.useState(initialExpanded);
56971
- React80__default.default.useEffect(() => {
56972
- props.setExpanded(isExpanded);
56973
- }, [isExpanded]);
56969
+ const { expanded, expandable } = props.columnGroup.providedColumnGroup;
56974
56970
  if (!props.displayName) {
56975
56971
  return null;
56976
56972
  }
56977
56973
  const tooltipText = I18n.t(
56978
- `dataTable.columnGroupToggle.${isExpanded ? "collapse" : "expand"}`
56974
+ `dataTable.columnGroupToggle.${expanded ? "collapse" : "expand"}`
56979
56975
  );
56980
- const ExpansionVariantIcon = isExpanded ? coreIcons.CaretsIn : coreIcons.CaretsOut;
56976
+ const ExpansionVariantIcon = expanded ? coreIcons.CaretsIn : coreIcons.CaretsOut;
56981
56977
  return /* @__PURE__ */ React80__default.default.createElement(React80__default.default.Fragment, null, /* @__PURE__ */ React80__default.default.createElement("div", { className: "ag-header-group-cell-label", role: "presentation" }, /* @__PURE__ */ React80__default.default.createElement("span", { className: "ag-header-group-text", role: "presentation" }, props.displayName)), expandable && /* @__PURE__ */ React80__default.default.createElement(
56982
56978
  coreReact.Tooltip,
56983
56979
  {
@@ -56990,7 +56986,7 @@ function GenericColumnGroupHeader(props) {
56990
56986
  {
56991
56987
  "aria-label": tooltipText,
56992
56988
  className: "expand-button",
56993
- onClick: () => setIsExpanded((v) => !v)
56989
+ onClick: () => props.setExpanded(!expanded)
56994
56990
  },
56995
56991
  /* @__PURE__ */ React80__default.default.createElement(ExpansionVariantIcon, { size: "sm" })
56996
56992
  )
@@ -57081,13 +57077,6 @@ function CustomLoader(params) {
57081
57077
  }
57082
57078
  return /* @__PURE__ */ React80__default.default.createElement(LevelIndents, { level: params.node.level, lastRowInGroup: false });
57083
57079
  }
57084
- var DefaultFrameworkComponents = {
57085
- agColumnHeader: GenericHeaderRenderer,
57086
- agLoadingCellRenderer: CustomLoader,
57087
- agColumnGroupHeader: GenericColumnGroupHeader,
57088
- loadingOverlayRenderer: Spinner,
57089
- emptyStateRenderer: EmptyState
57090
- };
57091
57080
  function getFrameworkComponents(tableProps) {
57092
57081
  const headerMenuConfig = {
57093
57082
  suppressResetColumnsOption: tableProps.suppressResetColumnsOption || false,
@@ -57101,6 +57090,13 @@ function getFrameworkComponents(tableProps) {
57101
57090
  tableProps.onSelectAll,
57102
57091
  tableProps.selectionSSREnabled
57103
57092
  );
57093
+ const DefaultFrameworkComponents = {
57094
+ agColumnHeader: GenericHeaderRenderer,
57095
+ agLoadingCellRenderer: CustomLoader,
57096
+ agColumnGroupHeader: GenericColumnGroupHeader,
57097
+ loadingOverlayRenderer: Spinner,
57098
+ emptyStateRenderer: EmptyState
57099
+ };
57104
57100
  DefaultFrameworkComponents["autoGroupCellRenderer"] = AutoGroupCellRenderer;
57105
57101
  return { ...DefaultFrameworkComponents, ...customFrameworkComponents };
57106
57102
  }
@@ -56953,18 +56953,14 @@ var GenericHeaderRenderer = (props) => {
56953
56953
  // src/GenericHeader/GenericColumnGroupHeader.tsx
56954
56954
  function GenericColumnGroupHeader(props) {
56955
56955
  const I18n = useI18nContext();
56956
- const { expanded: initialExpanded, expandable } = props.columnGroup.providedColumnGroup;
56957
- const [isExpanded, setIsExpanded] = React80.useState(initialExpanded);
56958
- React80.useEffect(() => {
56959
- props.setExpanded(isExpanded);
56960
- }, [isExpanded]);
56956
+ const { expanded, expandable } = props.columnGroup.providedColumnGroup;
56961
56957
  if (!props.displayName) {
56962
56958
  return null;
56963
56959
  }
56964
56960
  const tooltipText = I18n.t(
56965
- `dataTable.columnGroupToggle.${isExpanded ? "collapse" : "expand"}`
56961
+ `dataTable.columnGroupToggle.${expanded ? "collapse" : "expand"}`
56966
56962
  );
56967
- const ExpansionVariantIcon = isExpanded ? CaretsIn : CaretsOut;
56963
+ const ExpansionVariantIcon = expanded ? CaretsIn : CaretsOut;
56968
56964
  return /* @__PURE__ */ React80.createElement(React80.Fragment, null, /* @__PURE__ */ React80.createElement("div", { className: "ag-header-group-cell-label", role: "presentation" }, /* @__PURE__ */ React80.createElement("span", { className: "ag-header-group-text", role: "presentation" }, props.displayName)), expandable && /* @__PURE__ */ React80.createElement(
56969
56965
  Tooltip,
56970
56966
  {
@@ -56977,7 +56973,7 @@ function GenericColumnGroupHeader(props) {
56977
56973
  {
56978
56974
  "aria-label": tooltipText,
56979
56975
  className: "expand-button",
56980
- onClick: () => setIsExpanded((v) => !v)
56976
+ onClick: () => props.setExpanded(!expanded)
56981
56977
  },
56982
56978
  /* @__PURE__ */ React80.createElement(ExpansionVariantIcon, { size: "sm" })
56983
56979
  )
@@ -57068,13 +57064,6 @@ function CustomLoader(params) {
57068
57064
  }
57069
57065
  return /* @__PURE__ */ React80.createElement(LevelIndents, { level: params.node.level, lastRowInGroup: false });
57070
57066
  }
57071
- var DefaultFrameworkComponents = {
57072
- agColumnHeader: GenericHeaderRenderer,
57073
- agLoadingCellRenderer: CustomLoader,
57074
- agColumnGroupHeader: GenericColumnGroupHeader,
57075
- loadingOverlayRenderer: Spinner,
57076
- emptyStateRenderer: EmptyState
57077
- };
57078
57067
  function getFrameworkComponents(tableProps) {
57079
57068
  const headerMenuConfig = {
57080
57069
  suppressResetColumnsOption: tableProps.suppressResetColumnsOption || false,
@@ -57088,6 +57077,13 @@ function getFrameworkComponents(tableProps) {
57088
57077
  tableProps.onSelectAll,
57089
57078
  tableProps.selectionSSREnabled
57090
57079
  );
57080
+ const DefaultFrameworkComponents = {
57081
+ agColumnHeader: GenericHeaderRenderer,
57082
+ agLoadingCellRenderer: CustomLoader,
57083
+ agColumnGroupHeader: GenericColumnGroupHeader,
57084
+ loadingOverlayRenderer: Spinner,
57085
+ emptyStateRenderer: EmptyState
57086
+ };
57091
57087
  DefaultFrameworkComponents["autoGroupCellRenderer"] = AutoGroupCellRenderer;
57092
57088
  return { ...DefaultFrameworkComponents, ...customFrameworkComponents };
57093
57089
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/data-table",
3
- "version": "14.39.0",
3
+ "version": "14.39.1",
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",
@@ -75,7 +75,7 @@
75
75
  "dependencies": {
76
76
  "@procore/cdn-translations": "0.1.13",
77
77
  "@procore/error-pages": "^0.2.3",
78
- "@procore/labs-datetime-select": "^0.1.3",
78
+ "@procore/labs-datetime-select": "^0.2.0",
79
79
  "@procore/labs-group-by-select": "4.1.0",
80
80
  "@procore/toast-alert": "^5.1.1",
81
81
  "@procore/web-sdk-storage": "^0.1.0",
@@ -106,19 +106,17 @@
106
106
  "@dotenvx/dotenvx": "1.6.4",
107
107
  "@ngneat/falso": "6.4.0",
108
108
  "@procore/core-css": "10.17.0",
109
- "@procore/core-icons": "^12.11.0",
109
+ "@procore/core-icons": "^12.12.0",
110
110
  "@procore/core-prettier": "10.2.0",
111
- "@procore/core-react": "^12.33.0",
111
+ "@procore/core-react": "^12.34.0",
112
112
  "@procore/eslint-config": "10.0.0",
113
113
  "@procore/globalization-toolkit": "3.1.0",
114
114
  "@procore/labs-financials-utils": "4.3.1",
115
115
  "@procore/labs-procore-environment": "5.0.1",
116
116
  "@procore/pseudolocalize": "^0.1.1",
117
- "@procore/storybook-addon": "^4.0.0",
118
- "@storybook/addon-docs": "^7.5.3",
119
- "@storybook/manager-api": "^7.5.3",
120
- "@storybook/react": "^7.5.3",
121
- "@storybook/react-webpack5": "^7.5.3",
117
+ "@procore/storybook-addon": "^4.6.0",
118
+ "@storybook/addon-webpack5-compiler-swc": "^4.0.2",
119
+ "@storybook/react-webpack5": "^9.1.16",
122
120
  "@testing-library/cypress": "10.0.1",
123
121
  "@testing-library/dom": "8.20.0",
124
122
  "@testing-library/jest-dom": "5.16.4",
@@ -149,6 +147,7 @@
149
147
  "eslint-plugin-prettier": "4.2.1",
150
148
  "eslint-plugin-react": "7.32.0",
151
149
  "eslint-plugin-react-hooks": "4.6.0",
150
+ "eslint-plugin-storybook": "^9.1.16",
152
151
  "http-server": "^14.1.1",
153
152
  "jest": "29.5.0",
154
153
  "miragejs": "0.1.45",
@@ -163,7 +162,7 @@
163
162
  "sass": "1.57.1",
164
163
  "sass-loader": "13.2.0",
165
164
  "start-server-and-test": "1.15.4",
166
- "storybook": "^7.5.3",
165
+ "storybook": "^9.1.17",
167
166
  "style-loader": "3.3.1",
168
167
  "styled-components": "6.1.18",
169
168
  "tsup": "^8.4.0",