@procore/data-table 14.16.0 → 14.18.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 +20 -0
- package/dist/legacy/index.cjs +1273 -1127
- package/dist/legacy/index.d.cts +4 -1
- package/dist/legacy/index.d.ts +4 -1
- package/dist/legacy/index.js +1272 -1127
- package/dist/modern/index.cjs +1607 -1466
- package/dist/modern/index.d.cts +4 -1
- package/dist/modern/index.d.ts +4 -1
- package/dist/modern/index.js +1607 -1467
- package/package.json +2 -2
package/dist/modern/index.cjs
CHANGED
|
@@ -19,9 +19,9 @@ var _isEqual = require('lodash.isequal');
|
|
|
19
19
|
var ReactResizeDetector = require('react-resize-detector');
|
|
20
20
|
var labsDatetimeSelect = require('@procore/labs-datetime-select');
|
|
21
21
|
var Decimal = require('decimal.js');
|
|
22
|
-
var
|
|
23
|
-
var labsGroupBySelect = require('@procore/labs-group-by-select');
|
|
22
|
+
var styled3 = require('styled-components');
|
|
24
23
|
var globalizationToolkit = require('@procore/globalization-toolkit');
|
|
24
|
+
var labsGroupBySelect = require('@procore/labs-group-by-select');
|
|
25
25
|
|
|
26
26
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
27
|
|
|
@@ -33,7 +33,7 @@ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
|
|
|
33
33
|
var _isEqual__default = /*#__PURE__*/_interopDefault(_isEqual);
|
|
34
34
|
var ReactResizeDetector__default = /*#__PURE__*/_interopDefault(ReactResizeDetector);
|
|
35
35
|
var Decimal__default = /*#__PURE__*/_interopDefault(Decimal);
|
|
36
|
-
var
|
|
36
|
+
var styled3__default = /*#__PURE__*/_interopDefault(styled3);
|
|
37
37
|
|
|
38
38
|
var __create = Object.create;
|
|
39
39
|
var __defProp = Object.defineProperty;
|
|
@@ -1422,7 +1422,7 @@ ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {
|
|
|
1422
1422
|
animation-iteration-count: infinite;
|
|
1423
1423
|
animation-name: ag-shake-left-to-right;
|
|
1424
1424
|
}
|
|
1425
|
-
@keyframes _ag-shake-left-to-
|
|
1425
|
+
@keyframes _ag-shake-left-to-right_18odb_369 {
|
|
1426
1426
|
from {
|
|
1427
1427
|
padding-left: 6px;
|
|
1428
1428
|
padding-right: 2px;
|
|
@@ -5423,7 +5423,7 @@ input[class^=ag-][type=button]:focus, button[class^=ag-]:focus {
|
|
|
5423
5423
|
animation-iteration-count: infinite;
|
|
5424
5424
|
animation-timing-function: linear;
|
|
5425
5425
|
}
|
|
5426
|
-
@keyframes
|
|
5426
|
+
@keyframes _spin_18odb_1 {
|
|
5427
5427
|
from {
|
|
5428
5428
|
transform: rotate(0deg);
|
|
5429
5429
|
}
|
|
@@ -7729,7 +7729,7 @@ input[class^=ag-][type=range]:disabled {
|
|
|
7729
7729
|
.ag-theme-alpine.ag-theme-alpine .ag-details-row-auto-height .ag-center-cols-viewport, .ag-theme-alpine.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-viewport {
|
|
7730
7730
|
min-height: 0px;
|
|
7731
7731
|
}
|
|
7732
|
-
.ag-theme-alpine.ag-theme-alpine .ag-overlay
|
|
7732
|
+
.ag-theme-alpine.ag-theme-alpine .ag-overlay .ag-react-container {
|
|
7733
7733
|
pointer-events: initial;
|
|
7734
7734
|
}
|
|
7735
7735
|
.ag-theme-alpine.ag-theme-alpine .ag-menu, .ag-theme-alpine.ag-theme-alpine .ag-menu-header {
|
|
@@ -7928,7 +7928,7 @@ input[class^=ag-][type=range]:disabled {
|
|
|
7928
7928
|
padding-left: 16px;
|
|
7929
7929
|
}
|
|
7930
7930
|
|
|
7931
|
-
div.
|
|
7931
|
+
div._contextPanel_18odb_7153 {
|
|
7932
7932
|
width: 400px;
|
|
7933
7933
|
transition: all ease 500ms;
|
|
7934
7934
|
flex: 0 0 auto;
|
|
@@ -7937,7 +7937,7 @@ div._contextPanel_1t4e8_7153 {
|
|
|
7937
7937
|
border: 1px solid #d6dadc;
|
|
7938
7938
|
display: flex;
|
|
7939
7939
|
}
|
|
7940
|
-
div._contextPanel--
|
|
7940
|
+
div._contextPanel--hidden_18odb_7162 {
|
|
7941
7941
|
border: none;
|
|
7942
7942
|
overflow: hidden;
|
|
7943
7943
|
padding: 0px;
|
|
@@ -7945,50 +7945,50 @@ div._contextPanel--hidden_1t4e8_7162 {
|
|
|
7945
7945
|
width: 0px;
|
|
7946
7946
|
}
|
|
7947
7947
|
|
|
7948
|
-
.
|
|
7948
|
+
._contextPanelWrapper_18odb_7170 {
|
|
7949
7949
|
position: relative;
|
|
7950
7950
|
flex-grow: 1;
|
|
7951
7951
|
}
|
|
7952
7952
|
|
|
7953
|
-
.
|
|
7953
|
+
._contextPanelBody_18odb_7175 {
|
|
7954
7954
|
width: clamp(380px, 400px, 100%);
|
|
7955
7955
|
}
|
|
7956
7956
|
|
|
7957
|
-
._contextPanel-
|
|
7957
|
+
._contextPanel-stickyHeader_18odb_7179 {
|
|
7958
7958
|
background-color: #ffffff;
|
|
7959
7959
|
position: sticky;
|
|
7960
7960
|
top: 0;
|
|
7961
7961
|
z-index: 5;
|
|
7962
7962
|
}
|
|
7963
7963
|
|
|
7964
|
-
._filters-
|
|
7964
|
+
._filters-list_18odb_7186 {
|
|
7965
7965
|
padding: 0;
|
|
7966
7966
|
margin: 0;
|
|
7967
7967
|
}
|
|
7968
|
-
._filters-
|
|
7968
|
+
._filters-list_18odb_7186 ol {
|
|
7969
7969
|
padding: 0;
|
|
7970
7970
|
margin: 0;
|
|
7971
7971
|
}
|
|
7972
7972
|
|
|
7973
|
-
._col-drag-column-
|
|
7973
|
+
._col-drag-column-icon_18odb_7195 {
|
|
7974
7974
|
color: #6a767c;
|
|
7975
7975
|
}
|
|
7976
7976
|
|
|
7977
|
-
._tabular-
|
|
7977
|
+
._tabular-nums_18odb_7199 {
|
|
7978
7978
|
font-variant-numeric: tabular-nums;
|
|
7979
7979
|
}`;
|
|
7980
7980
|
document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css));
|
|
7981
7981
|
var styles_default = {
|
|
7982
|
-
"contextPanel": "
|
|
7983
|
-
"contextPanel--hidden": "_contextPanel--
|
|
7984
|
-
"contextPanelWrapper": "
|
|
7985
|
-
"contextPanelBody": "
|
|
7986
|
-
"contextPanel-stickyHeader": "_contextPanel-
|
|
7987
|
-
"filters-list": "_filters-
|
|
7988
|
-
"col-drag-column-icon": "_col-drag-column-
|
|
7989
|
-
"tabular-nums": "_tabular-
|
|
7990
|
-
"ag-shake-left-to-right": "_ag-shake-left-to-
|
|
7991
|
-
"spin": "
|
|
7982
|
+
"contextPanel": "_contextPanel_18odb_7153",
|
|
7983
|
+
"contextPanel--hidden": "_contextPanel--hidden_18odb_7162",
|
|
7984
|
+
"contextPanelWrapper": "_contextPanelWrapper_18odb_7170",
|
|
7985
|
+
"contextPanelBody": "_contextPanelBody_18odb_7175",
|
|
7986
|
+
"contextPanel-stickyHeader": "_contextPanel-stickyHeader_18odb_7179",
|
|
7987
|
+
"filters-list": "_filters-list_18odb_7186",
|
|
7988
|
+
"col-drag-column-icon": "_col-drag-column-icon_18odb_7195",
|
|
7989
|
+
"tabular-nums": "_tabular-nums_18odb_7199",
|
|
7990
|
+
"ag-shake-left-to-right": "_ag-shake-left-to-right_18odb_369",
|
|
7991
|
+
"spin": "_spin_18odb_1"
|
|
7992
7992
|
};
|
|
7993
7993
|
|
|
7994
7994
|
// src/utils/getCellValueTypographyProps.ts
|
|
@@ -8075,7 +8075,7 @@ var Renderer = ({
|
|
|
8075
8075
|
var ButtonsCellRenderer = withDataTableRenderer(Renderer, "select");
|
|
8076
8076
|
|
|
8077
8077
|
// src/utils/truncation.scss
|
|
8078
|
-
var css2 = `.
|
|
8078
|
+
var css2 = `._truncatingText_c077g_1 {
|
|
8079
8079
|
white-space: normal;
|
|
8080
8080
|
overflow: hidden;
|
|
8081
8081
|
word-wrap: break-word;
|
|
@@ -8084,17 +8084,43 @@ var css2 = `._truncatingText_114ye_1 {
|
|
|
8084
8084
|
-webkit-box-orient: vertical;
|
|
8085
8085
|
-webkit-line-clamp: 1;
|
|
8086
8086
|
}
|
|
8087
|
-
._truncatingText--
|
|
8087
|
+
._truncatingText--md_c077g_10 {
|
|
8088
8088
|
-webkit-line-clamp: 2;
|
|
8089
8089
|
}
|
|
8090
|
-
._truncatingText--
|
|
8090
|
+
._truncatingText--lg_c077g_13 {
|
|
8091
8091
|
-webkit-line-clamp: 3;
|
|
8092
|
+
}
|
|
8093
|
+
._truncatingText--overflowVisible_c077g_16 {
|
|
8094
|
+
overflow: visible;
|
|
8095
|
+
}
|
|
8096
|
+
|
|
8097
|
+
._extendClickableArea_c077g_20 {
|
|
8098
|
+
display: inline-block;
|
|
8099
|
+
position: relative;
|
|
8100
|
+
width: 100%;
|
|
8101
|
+
}
|
|
8102
|
+
._extendClickableArea_c077g_20::before {
|
|
8103
|
+
content: "";
|
|
8104
|
+
position: absolute;
|
|
8105
|
+
top: 50%;
|
|
8106
|
+
left: 50%;
|
|
8107
|
+
width: 48px;
|
|
8108
|
+
height: 48px;
|
|
8109
|
+
transform: translate(-50%, -50%);
|
|
8110
|
+
pointer-events: auto;
|
|
8111
|
+
background: transparent;
|
|
8112
|
+
}
|
|
8113
|
+
._extendClickableArea--rowHeightSm_c077g_36::before {
|
|
8114
|
+
height: 32px;
|
|
8092
8115
|
}`;
|
|
8093
8116
|
document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css2));
|
|
8094
8117
|
var truncation_default = {
|
|
8095
|
-
"truncatingText": "
|
|
8096
|
-
"truncatingText--md": "_truncatingText--
|
|
8097
|
-
"truncatingText--lg": "_truncatingText--
|
|
8118
|
+
"truncatingText": "_truncatingText_c077g_1",
|
|
8119
|
+
"truncatingText--md": "_truncatingText--md_c077g_10",
|
|
8120
|
+
"truncatingText--lg": "_truncatingText--lg_c077g_13",
|
|
8121
|
+
"truncatingText--overflowVisible": "_truncatingText--overflowVisible_c077g_16",
|
|
8122
|
+
"extendClickableArea": "_extendClickableArea_c077g_20",
|
|
8123
|
+
"extendClickableArea--rowHeightSm": "_extendClickableArea--rowHeightSm_c077g_36"
|
|
8098
8124
|
};
|
|
8099
8125
|
|
|
8100
8126
|
// src/utils/ContactItem.tsx
|
|
@@ -52958,7 +52984,10 @@ globalObj.MouseEvent = typeof MouseEvent === "undefined" ? {} : MouseEvent;
|
|
|
52958
52984
|
// src/CellRenderers/GroupCell.tsx
|
|
52959
52985
|
var GroupCellRenderer2 = GroupCellRenderer;
|
|
52960
52986
|
var cx6 = classnames__default.default.bind(truncation_default);
|
|
52987
|
+
var MIN_LINK_WIDTH = 48;
|
|
52961
52988
|
var InternalLinkCellRenderer = ({ columnDefinition, isGroup, data, rowHeight, value }) => {
|
|
52989
|
+
const [isLinkWidthBelowMin, setIsLinkWidthBelowMin] = React76.useState(false);
|
|
52990
|
+
const linkRef = React76.useRef(null);
|
|
52962
52991
|
const internalValue = value ? columnDefinition.getStringFormattedValue?.(value) : "";
|
|
52963
52992
|
const typographyProps = getCellValueTypographyProps(
|
|
52964
52993
|
columnDefinition.cellRendererParams?.typographyProps
|
|
@@ -52969,14 +52998,24 @@ var InternalLinkCellRenderer = ({ columnDefinition, isGroup, data, rowHeight, va
|
|
|
52969
52998
|
"truncatingText",
|
|
52970
52999
|
{
|
|
52971
53000
|
"truncatingText--md": rowHeight === rowSize.md,
|
|
52972
|
-
"truncatingText--lg": rowHeight === rowSize.lg
|
|
53001
|
+
"truncatingText--lg": rowHeight === rowSize.lg,
|
|
53002
|
+
"truncatingText--overflowVisible": isLinkWidthBelowMin
|
|
52973
53003
|
}
|
|
52974
53004
|
);
|
|
52975
53005
|
if (isGroup) {
|
|
52976
53006
|
return /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, { ...typographyProps, className, weight: "semibold" }, value);
|
|
52977
53007
|
}
|
|
53008
|
+
React76.useEffect(() => {
|
|
53009
|
+
if (linkRef.current) {
|
|
53010
|
+
const { width } = linkRef.current.getBoundingClientRect();
|
|
53011
|
+
setIsLinkWidthBelowMin(width < MIN_LINK_WIDTH);
|
|
53012
|
+
}
|
|
53013
|
+
}, [internalValue]);
|
|
52978
53014
|
const isExternalLink = columnDefinition.cellRendererParams.isExternalLink ?? false;
|
|
52979
53015
|
const URL = columnDefinition.cellRendererParams.getURL(value, data);
|
|
53016
|
+
const extendClickableAreaClassNames = isLinkWidthBelowMin ? cx6("extendClickableArea", {
|
|
53017
|
+
"extendClickableArea--rowHeightSm": rowHeight === rowSize.sm
|
|
53018
|
+
}) : "";
|
|
52980
53019
|
if (isExternalLink && value && URL) {
|
|
52981
53020
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
52982
53021
|
coreReact.Typography,
|
|
@@ -52996,7 +53035,7 @@ var InternalLinkCellRenderer = ({ columnDefinition, isGroup, data, rowHeight, va
|
|
|
52996
53035
|
)
|
|
52997
53036
|
);
|
|
52998
53037
|
}
|
|
52999
|
-
return URL ? /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, { ...typographyProps, className }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Link, { href: URL }, internalValue)) : /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, { ...typographyProps }, internalValue);
|
|
53038
|
+
return URL ? /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, { ...typographyProps, className }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Link, { href: URL, className: extendClickableAreaClassNames, ref: linkRef }, internalValue)) : /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, { ...typographyProps }, internalValue);
|
|
53000
53039
|
};
|
|
53001
53040
|
var LinkCellRenderer = withDataTableRenderer(
|
|
53002
53041
|
InternalLinkCellRenderer,
|
|
@@ -53075,7 +53114,7 @@ var NumberCellEditor2 = withDataTableEditor(
|
|
|
53075
53114
|
);
|
|
53076
53115
|
|
|
53077
53116
|
// src/CellRenderers/peopleCellStyles.scss
|
|
53078
|
-
var css3 = `.
|
|
53117
|
+
var css3 = `._truncatingText_14qzu_1 {
|
|
53079
53118
|
white-space: normal;
|
|
53080
53119
|
overflow: hidden;
|
|
53081
53120
|
word-wrap: break-word;
|
|
@@ -53084,33 +53123,59 @@ var css3 = `._truncatingText_3wkw2_1 {
|
|
|
53084
53123
|
-webkit-box-orient: vertical;
|
|
53085
53124
|
-webkit-line-clamp: 1;
|
|
53086
53125
|
}
|
|
53087
|
-
._truncatingText--
|
|
53126
|
+
._truncatingText--md_14qzu_10 {
|
|
53088
53127
|
-webkit-line-clamp: 2;
|
|
53089
53128
|
}
|
|
53090
|
-
._truncatingText--
|
|
53129
|
+
._truncatingText--lg_14qzu_13 {
|
|
53091
53130
|
-webkit-line-clamp: 3;
|
|
53092
53131
|
}
|
|
53132
|
+
._truncatingText--overflowVisible_14qzu_16 {
|
|
53133
|
+
overflow: visible;
|
|
53134
|
+
}
|
|
53135
|
+
|
|
53136
|
+
._extendClickableArea_14qzu_20 {
|
|
53137
|
+
display: inline-block;
|
|
53138
|
+
position: relative;
|
|
53139
|
+
width: 100%;
|
|
53140
|
+
}
|
|
53141
|
+
._extendClickableArea_14qzu_20::before {
|
|
53142
|
+
content: "";
|
|
53143
|
+
position: absolute;
|
|
53144
|
+
top: 50%;
|
|
53145
|
+
left: 50%;
|
|
53146
|
+
width: 48px;
|
|
53147
|
+
height: 48px;
|
|
53148
|
+
transform: translate(-50%, -50%);
|
|
53149
|
+
pointer-events: auto;
|
|
53150
|
+
background: transparent;
|
|
53151
|
+
}
|
|
53152
|
+
._extendClickableArea--rowHeightSm_14qzu_36::before {
|
|
53153
|
+
height: 32px;
|
|
53154
|
+
}
|
|
53093
53155
|
|
|
53094
|
-
.
|
|
53156
|
+
._inlineListItems_14qzu_40 {
|
|
53095
53157
|
list-style: none;
|
|
53096
53158
|
margin: 0;
|
|
53097
53159
|
padding: 0;
|
|
53098
53160
|
}
|
|
53099
|
-
.
|
|
53161
|
+
._inlineListItems_14qzu_40 > li {
|
|
53100
53162
|
display: inline;
|
|
53101
53163
|
}
|
|
53102
53164
|
|
|
53103
|
-
.
|
|
53165
|
+
._dynamicRowHeightSpacing_14qzu_49 {
|
|
53104
53166
|
margin-top: 8px;
|
|
53105
53167
|
margin-bottom: 8px;
|
|
53106
53168
|
}`;
|
|
53107
53169
|
document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(css3));
|
|
53108
53170
|
var peopleCellStyles_default = {
|
|
53109
|
-
"truncatingText": "
|
|
53110
|
-
"truncatingText--md": "_truncatingText--
|
|
53111
|
-
"truncatingText--lg": "_truncatingText--
|
|
53112
|
-
"
|
|
53113
|
-
"
|
|
53171
|
+
"truncatingText": "_truncatingText_14qzu_1",
|
|
53172
|
+
"truncatingText--md": "_truncatingText--md_14qzu_10",
|
|
53173
|
+
"truncatingText--lg": "_truncatingText--lg_14qzu_13",
|
|
53174
|
+
"truncatingText--overflowVisible": "_truncatingText--overflowVisible_14qzu_16",
|
|
53175
|
+
"extendClickableArea": "_extendClickableArea_14qzu_20",
|
|
53176
|
+
"extendClickableArea--rowHeightSm": "_extendClickableArea--rowHeightSm_14qzu_36",
|
|
53177
|
+
"inlineListItems": "_inlineListItems_14qzu_40",
|
|
53178
|
+
"dynamicRowHeightSpacing": "_dynamicRowHeightSpacing_14qzu_49"
|
|
53114
53179
|
};
|
|
53115
53180
|
|
|
53116
53181
|
// src/CellRenderers/PeopleCell.tsx
|
|
@@ -54156,6 +54221,37 @@ function sortColumnDefinitionsByFilterIndex(colDef1, colDef2) {
|
|
|
54156
54221
|
}
|
|
54157
54222
|
return filterIndex1 > filterIndex2 ? 1 : -1;
|
|
54158
54223
|
}
|
|
54224
|
+
function assignAlphabeticalFilterIndices(columnDefinitions) {
|
|
54225
|
+
const newColumns = columnDefinitions.map((col) => ({
|
|
54226
|
+
...col,
|
|
54227
|
+
filterProps: col.filterProps ? { ...col.filterProps } : void 0
|
|
54228
|
+
}));
|
|
54229
|
+
const filterColumns = newColumns.filter(
|
|
54230
|
+
(col) => col.filterRenderer || col.filterProps
|
|
54231
|
+
);
|
|
54232
|
+
const groups = {};
|
|
54233
|
+
filterColumns.forEach((col) => {
|
|
54234
|
+
const groupName = col.filterProps?.groupName || "default";
|
|
54235
|
+
if (!groups[groupName]) {
|
|
54236
|
+
groups[groupName] = [];
|
|
54237
|
+
}
|
|
54238
|
+
groups[groupName].push(col);
|
|
54239
|
+
});
|
|
54240
|
+
Object.values(groups).forEach((groupCols) => {
|
|
54241
|
+
groupCols.sort((a, b) => {
|
|
54242
|
+
const headerA = a.headerName || "";
|
|
54243
|
+
const headerB = b.headerName || "";
|
|
54244
|
+
return headerA.localeCompare(headerB);
|
|
54245
|
+
});
|
|
54246
|
+
groupCols.forEach((col, idx) => {
|
|
54247
|
+
if (!col.filterProps) {
|
|
54248
|
+
col.filterProps = {};
|
|
54249
|
+
}
|
|
54250
|
+
col.filterProps.index = idx;
|
|
54251
|
+
});
|
|
54252
|
+
});
|
|
54253
|
+
return newColumns;
|
|
54254
|
+
}
|
|
54159
54255
|
|
|
54160
54256
|
// src/state/useFilterState.ts
|
|
54161
54257
|
function isNumberFilterModel(value) {
|
|
@@ -55894,7 +55990,10 @@ var DataTableCellRenderer = ({
|
|
|
55894
55990
|
value
|
|
55895
55991
|
};
|
|
55896
55992
|
const hasValue = value !== void 0 && value !== null && value !== "";
|
|
55897
|
-
const isSelectCellComponent = columnDefinition.
|
|
55993
|
+
const isSelectCellComponent = columnDefinition.cellRendererSelector?.({
|
|
55994
|
+
...columnDefinition.cellRendererParams,
|
|
55995
|
+
node
|
|
55996
|
+
}).component?.displayName === "SelectCellRenderer";
|
|
55898
55997
|
const URL = isSelectCellComponent && columnDefinition?.cellRendererParams?.getURL ? columnDefinition.cellRendererParams.getURL(value) : null;
|
|
55899
55998
|
const startEditing = React76.useCallback(
|
|
55900
55999
|
() => api.startEditingCell({
|
|
@@ -78088,12 +78187,15 @@ var buildDetailRowsConfig_ = (detailRowConfig, {
|
|
|
78088
78187
|
};
|
|
78089
78188
|
|
|
78090
78189
|
// src/utils/expandRows.ts
|
|
78190
|
+
function getStringifiedRoute(node) {
|
|
78191
|
+
return node.getRoute()?.map((r) => typeof r === "object" ? JSON.stringify(r) : r);
|
|
78192
|
+
}
|
|
78091
78193
|
var getGroupRowState = (gridApi, groupDefaultExpanded = 0) => {
|
|
78092
78194
|
const expandedRoutes = [];
|
|
78093
78195
|
const collapsedRoutes = [];
|
|
78094
78196
|
if (gridApi) {
|
|
78095
78197
|
gridApi.forEachNode((node) => {
|
|
78096
|
-
const route = node
|
|
78198
|
+
const route = getStringifiedRoute(node);
|
|
78097
78199
|
if (route) {
|
|
78098
78200
|
const routePath = route.join(",");
|
|
78099
78201
|
const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
|
|
@@ -78113,7 +78215,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
|
|
|
78113
78215
|
const expandedRoutes = tableConfig.groupRowState?.expandedRoutes ?? [];
|
|
78114
78216
|
const collapsedRoutes = tableConfig.groupRowState?.collapsedRoutes ?? [];
|
|
78115
78217
|
gridApi.forEachNode((node) => {
|
|
78116
|
-
const route = node
|
|
78218
|
+
const route = getStringifiedRoute(node);
|
|
78117
78219
|
if (route) {
|
|
78118
78220
|
const routePath = route.join(",");
|
|
78119
78221
|
const defaultExpandLevel = groupDefaultExpanded === -1 ? Infinity : groupDefaultExpanded;
|
|
@@ -78130,7 +78232,7 @@ var setExpandCollapseRow = (gridApi, tableConfig, groupDefaultExpanded = 0) => {
|
|
|
78130
78232
|
var isRowOpenedByDefault = (node, tableConfig, groupDefaultExpanded = 0) => {
|
|
78131
78233
|
const expandedRoutes = tableConfig?.groupRowState?.expandedRoutes ?? [];
|
|
78132
78234
|
const collapsedRoutes = tableConfig?.groupRowState?.collapsedRoutes ?? [];
|
|
78133
|
-
const route = node
|
|
78235
|
+
const route = getStringifiedRoute(node);
|
|
78134
78236
|
if (!route) {
|
|
78135
78237
|
return false;
|
|
78136
78238
|
}
|
|
@@ -82698,7 +82800,7 @@ var FILTERS_GROUP_EXPANDABLE_AREA_VERTICAL_MARGIN = coreReact.spacing.md;
|
|
|
82698
82800
|
var FILTERS_GROUP_ITEM_HEIGHT = 60;
|
|
82699
82801
|
var ITEMS_IN_FILTERS_GROUP = 5;
|
|
82700
82802
|
var FILTERS_GROUP_EXPANDABLE_AREA_HEIGHT = (FILTERS_GROUP_ITEM_HEIGHT + coreReact.spacing.xl) * ITEMS_IN_FILTERS_GROUP + BORDER_WIDTH;
|
|
82701
|
-
var StyledPanelSection =
|
|
82803
|
+
var StyledPanelSection = styled3__default.default(coreReact.Panel.Section)`
|
|
82702
82804
|
// Filters Group container styles
|
|
82703
82805
|
&.filters-list-group-section {
|
|
82704
82806
|
padding-bottom: ${FILTERS_GROUP_VERTICAL_MARGIN}px;
|
|
@@ -82988,899 +83090,807 @@ var ConfigPanelButton = () => {
|
|
|
82988
83090
|
)
|
|
82989
83091
|
);
|
|
82990
83092
|
};
|
|
82991
|
-
|
|
82992
|
-
|
|
82993
|
-
|
|
82994
|
-
|
|
82995
|
-
|
|
82996
|
-
|
|
83093
|
+
var QuickFilterLabel = React76__default.default.forwardRef(({ enabled, ...props }, ref) => {
|
|
83094
|
+
return /* @__PURE__ */ React76__default.default.createElement(StyledQuickFilterLabel, { $enabled: enabled }, /* @__PURE__ */ React76__default.default.createElement(coreReact.SelectButton, { ref, ...props }));
|
|
83095
|
+
});
|
|
83096
|
+
var StyledQuickFilterLabel = styled3__default.default.div`
|
|
83097
|
+
${coreReact.StyledSelectButton} {
|
|
83098
|
+
width: auto;
|
|
83099
|
+
max-width: 380px;
|
|
83100
|
+
${({ $enabled }) => $enabled && styled3.css`
|
|
83101
|
+
background: ${coreReact.colors.blue96};
|
|
83102
|
+
border-color: ${coreReact.colors.blue96};
|
|
83103
|
+
font-weight: ${coreReact.typographyWeights.semibold};
|
|
83104
|
+
&:hover {
|
|
83105
|
+
background: ${coreReact.colors.blue90};
|
|
83106
|
+
border-color: ${coreReact.colors.blue90};
|
|
83107
|
+
}
|
|
83108
|
+
${coreReact.StyledSelectButtonLabel} {
|
|
83109
|
+
color: ${coreReact.colors.blue45};
|
|
83110
|
+
}
|
|
83111
|
+
${coreReact.StyledButton} {
|
|
83112
|
+
color: ${coreReact.colors.blue45};
|
|
83113
|
+
&:hover {
|
|
83114
|
+
background: white;
|
|
83115
|
+
}
|
|
83116
|
+
}
|
|
83117
|
+
${coreReact.StyledSelectArrow} {
|
|
83118
|
+
svg {
|
|
83119
|
+
fill: ${coreReact.colors.blue45};
|
|
83120
|
+
}
|
|
83121
|
+
}
|
|
83122
|
+
`}
|
|
82997
83123
|
}
|
|
82998
|
-
|
|
83124
|
+
`;
|
|
83125
|
+
|
|
83126
|
+
// src/QuickFilterRenderers/DateQuickFilterRenderer.tsx
|
|
83127
|
+
function getPlacement2(currentSelectionType, position) {
|
|
83128
|
+
if (currentSelectionType === "single") {
|
|
83129
|
+
return "bottom-left";
|
|
83130
|
+
}
|
|
83131
|
+
if (position === "start") {
|
|
83132
|
+
return "bottom-left";
|
|
83133
|
+
}
|
|
83134
|
+
return "bottom-right";
|
|
83135
|
+
}
|
|
83136
|
+
var OptionalDateTimeProvider2 = ({ timeZone, children }) => {
|
|
83137
|
+
return timeZone ? /* @__PURE__ */ React76__default.default.createElement(coreReact.DateTimeProvider, { timeZone }, children) : /* @__PURE__ */ React76__default.default.createElement(React76__default.default.Fragment, null, children);
|
|
83138
|
+
};
|
|
83139
|
+
var DateFilterSelect2 = React76__default.default.forwardRef(
|
|
83140
|
+
({
|
|
83141
|
+
afterHide,
|
|
83142
|
+
selectionType = "either",
|
|
83143
|
+
headerName,
|
|
83144
|
+
disabled,
|
|
83145
|
+
onChange,
|
|
83146
|
+
position,
|
|
83147
|
+
selectedValue,
|
|
83148
|
+
setSelectionType = () => {
|
|
83149
|
+
}
|
|
83150
|
+
}, ref) => {
|
|
83151
|
+
const dateTime = coreReact.useDateTime();
|
|
83152
|
+
const { start, end } = selectedValue;
|
|
83153
|
+
const selectedDate = (position === "start" ? start : end) ?? void 0;
|
|
83154
|
+
const [displayed, setDisplayed2] = React76__default.default.useState(
|
|
83155
|
+
// @ts-ignore
|
|
83156
|
+
selectedDate || dateTime.newDate()
|
|
83157
|
+
);
|
|
83158
|
+
React76__default.default.useEffect(() => {
|
|
83159
|
+
if (dateFns.isDate(start) && !dateFns.isDate(end) && position === "end") {
|
|
83160
|
+
setDisplayed2(start);
|
|
83161
|
+
}
|
|
83162
|
+
if (!dateFns.isDate(start) && dateFns.isDate(end) && position === "start") {
|
|
83163
|
+
setDisplayed2(end);
|
|
83164
|
+
}
|
|
83165
|
+
}, [position, selectedValue]);
|
|
83166
|
+
function onClear() {
|
|
83167
|
+
onChange(null, position);
|
|
83168
|
+
}
|
|
83169
|
+
const clearRef = React76__default.default.useRef(null);
|
|
83170
|
+
const monthRef = React76__default.default.useRef(null);
|
|
83171
|
+
const yearRef = React76__default.default.useRef(null);
|
|
83172
|
+
const overlay = /* @__PURE__ */ React76__default.default.createElement(
|
|
83173
|
+
DateFilterOverlay,
|
|
83174
|
+
{
|
|
83175
|
+
displayDate: displayed,
|
|
83176
|
+
selectionType,
|
|
83177
|
+
monthRef,
|
|
83178
|
+
onSelect: (date) => {
|
|
83179
|
+
onChange(date, position);
|
|
83180
|
+
},
|
|
83181
|
+
position,
|
|
83182
|
+
selectedValue,
|
|
83183
|
+
setDisplayDate: setDisplayed2,
|
|
83184
|
+
setSelectionType,
|
|
83185
|
+
yearRef
|
|
83186
|
+
}
|
|
83187
|
+
);
|
|
82999
83188
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83000
|
-
|
|
83189
|
+
coreReact.OverlayTrigger,
|
|
83001
83190
|
{
|
|
83002
|
-
|
|
83191
|
+
afterHide,
|
|
83192
|
+
autoFocus: true,
|
|
83193
|
+
beforeShow: (e) => {
|
|
83194
|
+
if (coreReact.isEventSource(clearRef, e)) {
|
|
83195
|
+
return false;
|
|
83196
|
+
}
|
|
83197
|
+
return true;
|
|
83198
|
+
},
|
|
83199
|
+
clickOutsideIgnoreRefs: [monthRef, yearRef],
|
|
83200
|
+
overlay,
|
|
83201
|
+
placement: getPlacement2(selectionType, position),
|
|
83202
|
+
ref,
|
|
83203
|
+
restoreFocusOnHide: true,
|
|
83204
|
+
role: "dialog"
|
|
83003
83205
|
},
|
|
83004
83206
|
/* @__PURE__ */ React76__default.default.createElement(
|
|
83005
|
-
|
|
83207
|
+
DateQuickFilterLabel,
|
|
83006
83208
|
{
|
|
83007
|
-
headerName
|
|
83008
|
-
|
|
83209
|
+
headerName,
|
|
83210
|
+
onClear,
|
|
83211
|
+
value: selectedDate,
|
|
83212
|
+
disabled
|
|
83009
83213
|
}
|
|
83010
83214
|
)
|
|
83011
83215
|
);
|
|
83012
83216
|
}
|
|
83013
|
-
|
|
83014
|
-
|
|
83015
|
-
|
|
83016
|
-
|
|
83017
|
-
|
|
83018
|
-
|
|
83019
|
-
|
|
83020
|
-
|
|
83021
|
-
|
|
83022
|
-
|
|
83023
|
-
|
|
83024
|
-
|
|
83217
|
+
);
|
|
83218
|
+
function DateFilter3({
|
|
83219
|
+
// TODO: talk to design about potential loading UX for this.
|
|
83220
|
+
// core DateSelect doesn't have it
|
|
83221
|
+
// loading,
|
|
83222
|
+
headerName,
|
|
83223
|
+
onChange,
|
|
83224
|
+
selectionType = "either",
|
|
83225
|
+
value,
|
|
83226
|
+
disabled,
|
|
83227
|
+
...props
|
|
83228
|
+
}) {
|
|
83229
|
+
const [selectedValue, setSelectedValue] = React76__default.default.useState({
|
|
83230
|
+
type: selectionType === "either" ? "range" : selectionType
|
|
83231
|
+
});
|
|
83232
|
+
React76__default.default.useEffect(() => {
|
|
83233
|
+
const parsedValue = value.map((date) => {
|
|
83234
|
+
if (dateFns.isDate(date)) {
|
|
83235
|
+
return date;
|
|
83236
|
+
}
|
|
83237
|
+
return dateFns.parseISO(String(date));
|
|
83238
|
+
});
|
|
83239
|
+
const type = dateFns.isSameDay(parsedValue[0], parsedValue[1]) ? "single" : "range";
|
|
83240
|
+
setSelectedValue({ type, start: parsedValue[0], end: parsedValue[1] });
|
|
83241
|
+
}, [value]);
|
|
83242
|
+
const dateRangeEndDateRef = React76__default.default.useRef(null);
|
|
83243
|
+
function dateFilterOnChange(date, position) {
|
|
83244
|
+
const newValue = getValueFromSelection(selectedValue, date, position);
|
|
83245
|
+
setSelectedValue(newValue);
|
|
83246
|
+
if (isValidDateSelection(newValue)) {
|
|
83247
|
+
onChange(
|
|
83248
|
+
newValue.start || newValue.end ? [
|
|
83249
|
+
newValue.start,
|
|
83250
|
+
newValue.type === "single" ? newValue.start : newValue.end
|
|
83251
|
+
] : []
|
|
83252
|
+
);
|
|
83025
83253
|
}
|
|
83026
|
-
return `${columnDefinition?.headerName}: (${filterValue.length})`;
|
|
83027
|
-
}
|
|
83028
|
-
return columnDefinition?.headerName;
|
|
83029
|
-
}
|
|
83030
|
-
var ensureArray = (input) => {
|
|
83031
|
-
if (input === null) {
|
|
83032
|
-
return [];
|
|
83033
|
-
}
|
|
83034
|
-
return Array.isArray(input) ? input : [input];
|
|
83035
|
-
};
|
|
83036
|
-
var FiltersPanelToggleButton = ({ hasSelectedFilters, hasDefinedFilters }) => {
|
|
83037
|
-
const I18n = coreReact.useI18nContext();
|
|
83038
|
-
const { contextPanel } = useInternalTableContext();
|
|
83039
|
-
const hasNoContent = useTableHasNoContent();
|
|
83040
|
-
if (!hasDefinedFilters) {
|
|
83041
|
-
return null;
|
|
83042
83254
|
}
|
|
83043
|
-
|
|
83044
|
-
|
|
83045
|
-
|
|
83046
|
-
featureI18nKey: "featureFilter",
|
|
83047
|
-
enabled: hasNoContent
|
|
83255
|
+
const onSelectionTypeChange = React76__default.default.useCallback(
|
|
83256
|
+
(newSelectionType) => {
|
|
83257
|
+
setSelectedValue({ type: newSelectionType });
|
|
83048
83258
|
},
|
|
83049
|
-
|
|
83050
|
-
coreReact.ToggleButton,
|
|
83051
|
-
{
|
|
83052
|
-
"data-qa": "data-table-show-filters-button",
|
|
83053
|
-
disabled: hasNoContent,
|
|
83054
|
-
icon: /* @__PURE__ */ React76__default.default.createElement(FilterIcon, null),
|
|
83055
|
-
onClick: () => {
|
|
83056
|
-
if (contextPanel.content === "filters") {
|
|
83057
|
-
contextPanel.hide();
|
|
83058
|
-
} else {
|
|
83059
|
-
contextPanel.show("filters");
|
|
83060
|
-
}
|
|
83061
|
-
},
|
|
83062
|
-
selected: contextPanel.content === "filters"
|
|
83063
|
-
},
|
|
83064
|
-
hasSelectedFilters ? I18n.t("dataTable.filters.moreFilters") : I18n.t("dataTable.filters.filters")
|
|
83065
|
-
)
|
|
83259
|
+
[setSelectedValue]
|
|
83066
83260
|
);
|
|
83067
|
-
|
|
83068
|
-
|
|
83069
|
-
|
|
83070
|
-
|
|
83071
|
-
|
|
83072
|
-
|
|
83073
|
-
|
|
83261
|
+
function dateRangeAfterHide() {
|
|
83262
|
+
if (selectedValue.type === "range" && dateFns.isDate(selectedValue.start) && !dateFns.isDate(selectedValue.end)) {
|
|
83263
|
+
dateRangeEndDateRef.current?.click();
|
|
83264
|
+
}
|
|
83265
|
+
return true;
|
|
83266
|
+
}
|
|
83267
|
+
return /* @__PURE__ */ React76__default.default.createElement(coreReact.FlexList, { space: "xs", "data-qa": props["data-qa"] }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83268
|
+
DateFilterSelect2,
|
|
83074
83269
|
{
|
|
83075
|
-
|
|
83076
|
-
|
|
83270
|
+
afterHide: dateRangeAfterHide,
|
|
83271
|
+
headerName,
|
|
83272
|
+
onChange: dateFilterOnChange,
|
|
83273
|
+
position: "start",
|
|
83274
|
+
selectedValue,
|
|
83275
|
+
selectionType,
|
|
83276
|
+
setSelectionType: onSelectionTypeChange,
|
|
83277
|
+
disabled
|
|
83077
83278
|
}
|
|
83078
|
-
)
|
|
83079
|
-
|
|
83080
|
-
var ClientSideFiltersPanelToggleButton = () => {
|
|
83081
|
-
const { filterState } = useInternalTableContext();
|
|
83082
|
-
const activeFilters = React76__default.default.useMemo(() => {
|
|
83083
|
-
return filterState.allAvailableFilters.filter(({ instance }) => {
|
|
83084
|
-
return instance.isFilterActive();
|
|
83085
|
-
});
|
|
83086
|
-
}, [filterState.allAvailableFilters]);
|
|
83087
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83088
|
-
FiltersPanelToggleButton,
|
|
83279
|
+
), selectedValue.type === "range" && /* @__PURE__ */ React76__default.default.createElement(
|
|
83280
|
+
DateFilterSelect2,
|
|
83089
83281
|
{
|
|
83090
|
-
|
|
83091
|
-
|
|
83282
|
+
headerName,
|
|
83283
|
+
onChange: dateFilterOnChange,
|
|
83284
|
+
position: "end",
|
|
83285
|
+
ref: dateRangeEndDateRef,
|
|
83286
|
+
selectedValue,
|
|
83287
|
+
selectionType,
|
|
83288
|
+
setSelectionType: onSelectionTypeChange,
|
|
83289
|
+
disabled
|
|
83092
83290
|
}
|
|
83093
|
-
);
|
|
83094
|
-
}
|
|
83095
|
-
|
|
83096
|
-
|
|
83097
|
-
|
|
83098
|
-
|
|
83099
|
-
|
|
83291
|
+
));
|
|
83292
|
+
}
|
|
83293
|
+
function ServerSideQuickDateFilterRenderer({
|
|
83294
|
+
columnDefinition,
|
|
83295
|
+
disabled
|
|
83296
|
+
}) {
|
|
83297
|
+
const { onChange, value = [] } = useServerSideFilter({
|
|
83298
|
+
columnDefinition
|
|
83299
|
+
});
|
|
83300
|
+
const colDef = columnDefinition;
|
|
83301
|
+
return /* @__PURE__ */ React76__default.default.createElement(OptionalDateTimeProvider2, { timeZone: colDef.timeZone }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83302
|
+
DateFilter3,
|
|
83100
83303
|
{
|
|
83101
|
-
|
|
83102
|
-
|
|
83103
|
-
|
|
83104
|
-
|
|
83105
|
-
|
|
83106
|
-
|
|
83107
|
-
|
|
83108
|
-
|
|
83109
|
-
|
|
83110
|
-
|
|
83111
|
-
|
|
83112
|
-
|
|
83113
|
-
|
|
83114
|
-
|
|
83115
|
-
|
|
83116
|
-
|
|
83304
|
+
selectionType: colDef.filterProps?.selectionType ?? "either",
|
|
83305
|
+
headerName: colDef.headerName,
|
|
83306
|
+
disabled,
|
|
83307
|
+
onChange: (selected) => {
|
|
83308
|
+
onChange(
|
|
83309
|
+
selected.map((date) => {
|
|
83310
|
+
return date ? {
|
|
83311
|
+
// future extensions can go here (month, day, year keys etc)
|
|
83312
|
+
date
|
|
83313
|
+
} : (
|
|
83314
|
+
// TODO: refactor out date-specific getId stuff from useServerSideFilterStorage
|
|
83315
|
+
date
|
|
83316
|
+
);
|
|
83317
|
+
})
|
|
83318
|
+
);
|
|
83319
|
+
},
|
|
83320
|
+
value: value.map((option) => option ? option.date : option)
|
|
83321
|
+
}
|
|
83322
|
+
));
|
|
83323
|
+
}
|
|
83324
|
+
var QuickDateFilterRenderer = (props) => {
|
|
83325
|
+
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83326
|
+
if (onServerSideDataRequest) {
|
|
83327
|
+
return /* @__PURE__ */ React76__default.default.createElement(ServerSideQuickDateFilterRenderer, { ...props });
|
|
83328
|
+
}
|
|
83329
|
+
logger.error(
|
|
83330
|
+
"Warning: Date Filters are currently only implemented for the serverside row model"
|
|
83117
83331
|
);
|
|
83332
|
+
return null;
|
|
83118
83333
|
};
|
|
83119
|
-
var
|
|
83120
|
-
|
|
83121
|
-
|
|
83334
|
+
var dateInputLocales = {
|
|
83335
|
+
"fr-CA": {
|
|
83336
|
+
placeholders: { day: "jj", month: "mm", year: "aaaa" }
|
|
83337
|
+
},
|
|
83338
|
+
"fr-FR": {
|
|
83339
|
+
placeholders: { day: "jj", month: "mm", year: "aaaa" }
|
|
83340
|
+
},
|
|
83341
|
+
es: {
|
|
83342
|
+
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83343
|
+
},
|
|
83344
|
+
"es-ES": {
|
|
83345
|
+
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83346
|
+
},
|
|
83347
|
+
pt: {
|
|
83348
|
+
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83349
|
+
},
|
|
83350
|
+
"is-IS": {
|
|
83351
|
+
placeholders: { day: "dd", month: "mm", year: "\xE1\xE1\xE1\xE1" }
|
|
83352
|
+
},
|
|
83353
|
+
"de-DE": {
|
|
83354
|
+
placeholders: { day: "tt", month: "MM", year: "jjjj" }
|
|
83122
83355
|
}
|
|
83123
|
-
|
|
83124
|
-
var
|
|
83125
|
-
const
|
|
83126
|
-
const
|
|
83127
|
-
const
|
|
83128
|
-
|
|
83129
|
-
|
|
83130
|
-
|
|
83131
|
-
|
|
83132
|
-
|
|
83133
|
-
|
|
83134
|
-
|
|
83135
|
-
return { ...acc, quickFilters: [...acc.quickFilters, filter] };
|
|
83136
|
-
} else if (filter.instance.isFilterActive()) {
|
|
83137
|
-
return { ...acc, tokens: [...acc.tokens, filter] };
|
|
83138
|
-
}
|
|
83139
|
-
return acc;
|
|
83140
|
-
},
|
|
83356
|
+
};
|
|
83357
|
+
var DateQuickFilterLabel = React76__default.default.forwardRef(({ headerName, onClear, value, disabled }, ref) => {
|
|
83358
|
+
const dateTime = coreReact.useDateTime();
|
|
83359
|
+
const i18n = coreReact.useI18nContext();
|
|
83360
|
+
const placeholders = dateInputLocales[i18n.locale]?.placeholders || {
|
|
83361
|
+
day: "dd",
|
|
83362
|
+
month: "mm",
|
|
83363
|
+
year: "yyyy"
|
|
83364
|
+
};
|
|
83365
|
+
if (value !== void 0 && dateFns.isDate(value)) {
|
|
83366
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83367
|
+
QuickFilterLabel,
|
|
83141
83368
|
{
|
|
83142
|
-
|
|
83143
|
-
|
|
83369
|
+
enabled: true,
|
|
83370
|
+
disabled,
|
|
83371
|
+
label: `${headerName}: ${dateTime.format(value, "numeric-date")}`,
|
|
83372
|
+
onClear,
|
|
83373
|
+
ref
|
|
83144
83374
|
}
|
|
83145
83375
|
);
|
|
83146
|
-
}
|
|
83147
|
-
|
|
83148
|
-
|
|
83149
|
-
coreReact.FlexList,
|
|
83376
|
+
}
|
|
83377
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83378
|
+
QuickFilterLabel,
|
|
83150
83379
|
{
|
|
83151
|
-
|
|
83152
|
-
|
|
83153
|
-
|
|
83154
|
-
|
|
83155
|
-
|
|
83156
|
-
},
|
|
83157
|
-
quickFilters.map((filter) => {
|
|
83158
|
-
const colDef = getColumnDefinition(filter.field);
|
|
83159
|
-
const QuickFilter = colDef?.quickFilterRenderer;
|
|
83160
|
-
if (!colDef || !QuickFilter) {
|
|
83161
|
-
return null;
|
|
83162
|
-
}
|
|
83163
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83164
|
-
EmptyResultsControlTooltip,
|
|
83165
|
-
{
|
|
83166
|
-
featureI18nKey: "featureQuickFilter",
|
|
83167
|
-
enabled: hasNoContent
|
|
83168
|
-
},
|
|
83169
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
83170
|
-
QuickFilter,
|
|
83171
|
-
{
|
|
83172
|
-
key: filter.field,
|
|
83173
|
-
filter,
|
|
83174
|
-
columnDefinition: colDef,
|
|
83175
|
-
disabled: hasNoContent,
|
|
83176
|
-
onChange: (value) => tableRef?.current?.applyListFilter(filter.field, value),
|
|
83177
|
-
onRemove: () => tableRef?.current?.removeFilter(filter.field),
|
|
83178
|
-
overlayMatchesTriggerWidth
|
|
83179
|
-
}
|
|
83180
|
-
)
|
|
83181
|
-
);
|
|
83182
|
-
}),
|
|
83183
|
-
tokens.map((filter) => {
|
|
83184
|
-
const colDef = getColumnDefinition(filter.field);
|
|
83185
|
-
if (!colDef) {
|
|
83186
|
-
return null;
|
|
83187
|
-
}
|
|
83188
|
-
return /* @__PURE__ */ React76__default.default.createElement(StyledFilterTokenWrapper, { key: filter.field }, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken.Label, null, getFilterTokenText(colDef, filter.filterValues)), /* @__PURE__ */ React76__default.default.createElement(
|
|
83189
|
-
coreReact.UNSAFE_FilterToken.Remove,
|
|
83190
|
-
{
|
|
83191
|
-
onClick: () => tableRef?.current?.removeFilter(filter.field)
|
|
83192
|
-
}
|
|
83193
|
-
)));
|
|
83194
|
-
})
|
|
83380
|
+
enabled: false,
|
|
83381
|
+
disabled,
|
|
83382
|
+
label: `${headerName}: ${globalizationToolkit.getDatePlaceholder(i18n.locale, placeholders)}`,
|
|
83383
|
+
ref
|
|
83384
|
+
}
|
|
83195
83385
|
);
|
|
83386
|
+
});
|
|
83387
|
+
var DateQuickFilterRenderer_default = QuickDateFilterRenderer;
|
|
83388
|
+
var defaultGetId2 = (option) => option?.id;
|
|
83389
|
+
var defaultGetLabel2 = (option) => {
|
|
83390
|
+
return option?.label ?? option?.name ?? option;
|
|
83196
83391
|
};
|
|
83197
|
-
var
|
|
83198
|
-
|
|
83199
|
-
|
|
83200
|
-
|
|
83201
|
-
|
|
83202
|
-
|
|
83203
|
-
|
|
83204
|
-
|
|
83205
|
-
|
|
83206
|
-
|
|
83207
|
-
|
|
83208
|
-
|
|
83209
|
-
const
|
|
83210
|
-
|
|
83211
|
-
|
|
83212
|
-
|
|
83213
|
-
|
|
83214
|
-
|
|
83215
|
-
|
|
83216
|
-
|
|
83217
|
-
|
|
83218
|
-
|
|
83219
|
-
|
|
83220
|
-
|
|
83221
|
-
|
|
83222
|
-
|
|
83223
|
-
|
|
83224
|
-
|
|
83225
|
-
|
|
83226
|
-
|
|
83227
|
-
|
|
83228
|
-
|
|
83229
|
-
|
|
83230
|
-
|
|
83392
|
+
var useSuperSelectOptionAsValueWorkaround = ({
|
|
83393
|
+
originValue,
|
|
83394
|
+
originOptions,
|
|
83395
|
+
getId: getId3 = defaultGetId2,
|
|
83396
|
+
loading
|
|
83397
|
+
}) => {
|
|
83398
|
+
const isValueFromOptions = React76__default.default.useRef(false);
|
|
83399
|
+
const getValueFromOptions = () => {
|
|
83400
|
+
const valueIds = originValue.map(getId3);
|
|
83401
|
+
isValueFromOptions.current = true;
|
|
83402
|
+
return originOptions.filter((option) => valueIds.includes(getId3(option)));
|
|
83403
|
+
};
|
|
83404
|
+
const hasOptions = originOptions.length > 0 && !loading;
|
|
83405
|
+
const hasValue = originValue?.length > 0;
|
|
83406
|
+
const options = !hasOptions && hasValue ? originValue : originOptions;
|
|
83407
|
+
const value = !hasOptions ? originValue : isValueFromOptions.current ? originValue : getValueFromOptions();
|
|
83408
|
+
return {
|
|
83409
|
+
options,
|
|
83410
|
+
value,
|
|
83411
|
+
getOptionValue: (option) => option
|
|
83412
|
+
};
|
|
83413
|
+
};
|
|
83414
|
+
var LocationQuickFilterOverlay = React76__default.default.forwardRef(
|
|
83415
|
+
({
|
|
83416
|
+
getId: getId3,
|
|
83417
|
+
getLabel: getLabel3,
|
|
83418
|
+
loading,
|
|
83419
|
+
onSelect: _onSelect,
|
|
83420
|
+
onSelectAll,
|
|
83421
|
+
onSelectSublocations,
|
|
83422
|
+
enableSublocations,
|
|
83423
|
+
selectState,
|
|
83424
|
+
options,
|
|
83425
|
+
disabledOptions,
|
|
83426
|
+
columnDefinition,
|
|
83427
|
+
value
|
|
83428
|
+
}, ref) => {
|
|
83429
|
+
if (value && !Array.isArray(value)) {
|
|
83430
|
+
logger.warn(
|
|
83431
|
+
"a value was set that is not compatible with this LocationQuickFilterRenderer"
|
|
83432
|
+
);
|
|
83433
|
+
return null;
|
|
83434
|
+
}
|
|
83435
|
+
const [items, setItems] = React76__default.default.useState(options);
|
|
83436
|
+
const [searching, setSearching] = React76__default.default.useState(false);
|
|
83437
|
+
const menuRef = React76__default.default.useRef(null);
|
|
83438
|
+
const { menuProps, menuNavigationTriggerProps } = coreReact.UNSAFE_useMenuImperativeControlNavigation(menuRef);
|
|
83439
|
+
const I18n = coreReact.useI18nContext();
|
|
83440
|
+
const selectAllOption = {
|
|
83441
|
+
label: I18n.t("dataTable.filters.locationFilter.selectAll"),
|
|
83442
|
+
id: "select_all"
|
|
83443
|
+
};
|
|
83444
|
+
const includeSublocationOption = {
|
|
83445
|
+
label: I18n.t("dataTable.filters.locationFilter.includeSublocations"),
|
|
83446
|
+
id: "include_sublocations"
|
|
83447
|
+
};
|
|
83448
|
+
const onSelect = (selection) => {
|
|
83449
|
+
if (selection.item.id === selectAllOption.id) {
|
|
83450
|
+
return onSelectAll();
|
|
83231
83451
|
}
|
|
83232
|
-
|
|
83233
|
-
|
|
83234
|
-
|
|
83235
|
-
return null;
|
|
83236
|
-
}
|
|
83237
|
-
const isEmpty2 = quickFilterNames.length === 0 && tokenNames.length === 0;
|
|
83238
|
-
return isEmpty2 ? null : /* @__PURE__ */ React76__default.default.createElement(
|
|
83239
|
-
coreReact.FlexList,
|
|
83240
|
-
{
|
|
83241
|
-
padding: "xs none",
|
|
83242
|
-
size: "none",
|
|
83243
|
-
alignItems: "center",
|
|
83244
|
-
wrap: "wrap",
|
|
83245
|
-
gap: "sm",
|
|
83246
|
-
"data-qa": "data-table-quick-filters"
|
|
83247
|
-
},
|
|
83248
|
-
quickFilterNames.map((fieldName) => {
|
|
83249
|
-
const colDef = getColumnDefinition(fieldName);
|
|
83250
|
-
const QuickFilter = colDef?.quickFilterRenderer;
|
|
83251
|
-
if (!colDef || !QuickFilter) {
|
|
83252
|
-
return null;
|
|
83452
|
+
if (selection.item.id === includeSublocationOption.id) {
|
|
83453
|
+
_onSelect(selection);
|
|
83454
|
+
return onSelectSublocations();
|
|
83253
83455
|
}
|
|
83254
|
-
return
|
|
83255
|
-
|
|
83456
|
+
return _onSelect(selection);
|
|
83457
|
+
};
|
|
83458
|
+
function defaultOnSearch(e) {
|
|
83459
|
+
if (e.target.value === "") {
|
|
83460
|
+
setSearching(false);
|
|
83461
|
+
setItems(options);
|
|
83462
|
+
} else {
|
|
83463
|
+
setSearching(true);
|
|
83464
|
+
setItems(
|
|
83465
|
+
options.filter(
|
|
83466
|
+
(item) => getLabel3(item).toLowerCase().includes(e.target.value.toLowerCase())
|
|
83467
|
+
)
|
|
83468
|
+
);
|
|
83469
|
+
}
|
|
83470
|
+
}
|
|
83471
|
+
const _onSearch = columnDefinition.filterProps.onSearch || defaultOnSearch;
|
|
83472
|
+
React76__default.default.useEffect(() => {
|
|
83473
|
+
menuRef.current?.highlightSuggested();
|
|
83474
|
+
}, []);
|
|
83475
|
+
return /* @__PURE__ */ React76__default.default.createElement(coreReact.Card, { ref }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83476
|
+
coreReact.UNSAFE_Menu,
|
|
83477
|
+
{
|
|
83478
|
+
...menuProps,
|
|
83479
|
+
multiple: true,
|
|
83480
|
+
role: "listbox",
|
|
83481
|
+
ref: menuRef,
|
|
83482
|
+
onSelect,
|
|
83483
|
+
className: locationFilterStyles_default.locationFilterMenu
|
|
83484
|
+
},
|
|
83485
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
83486
|
+
coreReact.UNSAFE_Menu.Search,
|
|
83256
83487
|
{
|
|
83257
|
-
|
|
83258
|
-
|
|
83488
|
+
...menuNavigationTriggerProps,
|
|
83489
|
+
onChange: _onSearch
|
|
83490
|
+
}
|
|
83491
|
+
),
|
|
83492
|
+
/* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_Menu.Options, null, !searching && /* @__PURE__ */ React76__default.default.createElement(
|
|
83493
|
+
coreReact.Box,
|
|
83494
|
+
{
|
|
83495
|
+
className: locationFilterStyles_default.controlsContainer,
|
|
83496
|
+
...coreReact.UNSAFE_menuItemsWrapperAttribute
|
|
83259
83497
|
},
|
|
83260
83498
|
/* @__PURE__ */ React76__default.default.createElement(
|
|
83261
|
-
|
|
83499
|
+
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
83262
83500
|
{
|
|
83263
|
-
key:
|
|
83264
|
-
|
|
83265
|
-
|
|
83266
|
-
|
|
83267
|
-
|
|
83501
|
+
key: getId3(includeSublocationOption),
|
|
83502
|
+
item: includeSublocationOption,
|
|
83503
|
+
selected: enableSublocations
|
|
83504
|
+
},
|
|
83505
|
+
getLabel3(includeSublocationOption)
|
|
83506
|
+
),
|
|
83507
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
83508
|
+
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
83509
|
+
{
|
|
83510
|
+
key: getId3(selectAllOption),
|
|
83511
|
+
item: selectAllOption,
|
|
83512
|
+
selected: selectState === "all",
|
|
83513
|
+
indeterminate: selectState === "partial"
|
|
83514
|
+
},
|
|
83515
|
+
getLabel3(selectAllOption)
|
|
83268
83516
|
)
|
|
83269
|
-
)
|
|
83270
|
-
|
|
83271
|
-
|
|
83272
|
-
|
|
83273
|
-
|
|
83274
|
-
|
|
83275
|
-
|
|
83276
|
-
|
|
83277
|
-
|
|
83278
|
-
|
|
83279
|
-
|
|
83280
|
-
|
|
83281
|
-
|
|
83282
|
-
|
|
83283
|
-
|
|
83284
|
-
onClick: () => onClearFilter(fieldName)
|
|
83285
|
-
}
|
|
83286
|
-
)));
|
|
83287
|
-
})
|
|
83288
|
-
);
|
|
83289
|
-
};
|
|
83290
|
-
var QuickFilters = ({ overlayMatchesTriggerWidth }) => {
|
|
83291
|
-
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83292
|
-
if (onServerSideDataRequest) {
|
|
83293
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83294
|
-
ServerSideQuickFilters,
|
|
83295
|
-
{
|
|
83296
|
-
overlayMatchesTriggerWidth
|
|
83297
|
-
}
|
|
83298
|
-
);
|
|
83299
|
-
}
|
|
83300
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83301
|
-
ClientSideQuickFilters,
|
|
83302
|
-
{
|
|
83303
|
-
overlayMatchesTriggerWidth
|
|
83304
|
-
}
|
|
83305
|
-
);
|
|
83306
|
-
};
|
|
83307
|
-
var FiltersPanelButton = () => {
|
|
83308
|
-
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83309
|
-
if (onServerSideDataRequest) {
|
|
83310
|
-
return /* @__PURE__ */ React76__default.default.createElement(ServerSideFiltersPanelToggleButton, null);
|
|
83517
|
+
), !loading && items.map((item, i) => {
|
|
83518
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83519
|
+
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
83520
|
+
{
|
|
83521
|
+
key: getId3(item),
|
|
83522
|
+
item,
|
|
83523
|
+
selected: value.map(({ id }) => id).includes(getId3(item)) || disabledOptions.map(({ id }) => id).includes(getId3(item)),
|
|
83524
|
+
suggested: i === 0,
|
|
83525
|
+
disabled: disabledOptions.map(({ id }) => id).includes(getId3(item))
|
|
83526
|
+
},
|
|
83527
|
+
getLabel3(item)
|
|
83528
|
+
);
|
|
83529
|
+
})),
|
|
83530
|
+
loading && /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_Menu.Footer, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.Flex, { justifyContent: "center" }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Spinner, { size: "sm" })))
|
|
83531
|
+
));
|
|
83311
83532
|
}
|
|
83312
|
-
|
|
83313
|
-
|
|
83314
|
-
|
|
83533
|
+
);
|
|
83534
|
+
var LocationQuickFilterRenderer = ({
|
|
83535
|
+
columnDefinition,
|
|
83536
|
+
disabled
|
|
83537
|
+
}) => {
|
|
83315
83538
|
const {
|
|
83316
|
-
|
|
83317
|
-
|
|
83318
|
-
|
|
83319
|
-
|
|
83320
|
-
|
|
83321
|
-
|
|
83322
|
-
const
|
|
83323
|
-
|
|
83324
|
-
|
|
83325
|
-
|
|
83326
|
-
|
|
83327
|
-
|
|
83328
|
-
);
|
|
83329
|
-
const
|
|
83330
|
-
|
|
83331
|
-
|
|
83332
|
-
|
|
83333
|
-
return
|
|
83334
|
-
}
|
|
83335
|
-
|
|
83336
|
-
|
|
83337
|
-
|
|
83338
|
-
|
|
83539
|
+
options: originOptions,
|
|
83540
|
+
value: originValue = [],
|
|
83541
|
+
onChange,
|
|
83542
|
+
getOptions,
|
|
83543
|
+
loading
|
|
83544
|
+
} = useServerSideFilter({ columnDefinition });
|
|
83545
|
+
const { options, value } = useSuperSelectOptionAsValueWorkaround({
|
|
83546
|
+
originOptions,
|
|
83547
|
+
originValue,
|
|
83548
|
+
loading,
|
|
83549
|
+
getId: columnDefinition.filterProps?.getId
|
|
83550
|
+
});
|
|
83551
|
+
const I18n = coreReact.useI18nContext();
|
|
83552
|
+
const getId3 = columnDefinition.filterProps?.getId || defaultGetId2;
|
|
83553
|
+
const getLabel3 = columnDefinition.filterProps?.getLabel || defaultGetLabel2;
|
|
83554
|
+
const determineSelectedState = (selection) => {
|
|
83555
|
+
if (options.length === selection.length) {
|
|
83556
|
+
return "all";
|
|
83557
|
+
}
|
|
83558
|
+
if (selection.length && (options.length > selection.length || options.length < selection.length)) {
|
|
83559
|
+
return "partial";
|
|
83560
|
+
}
|
|
83561
|
+
if (selection.length === 0) {
|
|
83562
|
+
return "none";
|
|
83563
|
+
}
|
|
83564
|
+
return "none";
|
|
83565
|
+
};
|
|
83566
|
+
const ids = React76__default.default.useMemo(() => value.map(({ id }) => id), [value]);
|
|
83567
|
+
const [selectedValueIds, setSelectedValueIds] = React76__default.default.useState(ids);
|
|
83568
|
+
const [selectState, setSelectState] = React76__default.default.useState(
|
|
83569
|
+
determineSelectedState(value)
|
|
83339
83570
|
);
|
|
83340
|
-
const
|
|
83341
|
-
|
|
83342
|
-
|
|
83343
|
-
|
|
83344
|
-
|
|
83345
|
-
|
|
83346
|
-
|
|
83571
|
+
const [disabledValues, setDisabledValues] = React76__default.default.useState([]);
|
|
83572
|
+
const [enableSublocations, setEnableSublocations] = React76__default.default.useState(false);
|
|
83573
|
+
const onSelectSublocations = React76__default.default.useCallback(() => {
|
|
83574
|
+
if (enableSublocations) {
|
|
83575
|
+
setDisabledValues([]);
|
|
83576
|
+
} else {
|
|
83577
|
+
const newDisabledValues = [];
|
|
83578
|
+
value.forEach((location) => {
|
|
83579
|
+
newDisabledValues.push(...findSublocations(location));
|
|
83347
83580
|
});
|
|
83348
|
-
|
|
83349
|
-
|
|
83350
|
-
|
|
83581
|
+
const uniqDisabledValues = ramda.uniqBy(ramda.prop("id"), newDisabledValues).filter(
|
|
83582
|
+
({ id }) => !selectedValueIds.includes(id)
|
|
83583
|
+
);
|
|
83584
|
+
setDisabledValues(uniqDisabledValues);
|
|
83585
|
+
}
|
|
83586
|
+
setEnableSublocations(!enableSublocations);
|
|
83587
|
+
}, [enableSublocations, value, selectedValueIds, options]);
|
|
83588
|
+
const onSelectAll = React76__default.default.useCallback(() => {
|
|
83589
|
+
if (selectState === "none" || selectState === "partial") {
|
|
83590
|
+
setSelectState("all");
|
|
83591
|
+
setSelectedValueIds(options.map(({ id }) => id));
|
|
83592
|
+
onChange(options);
|
|
83593
|
+
}
|
|
83594
|
+
if (selectState === "all") {
|
|
83595
|
+
setSelectState("none");
|
|
83596
|
+
setSelectedValueIds([]);
|
|
83597
|
+
onChange([]);
|
|
83598
|
+
}
|
|
83599
|
+
}, [options, selectState, selectedValueIds]);
|
|
83600
|
+
const onSelect = (selection) => {
|
|
83601
|
+
if (selection.item.id === "select_all") {
|
|
83602
|
+
return;
|
|
83603
|
+
}
|
|
83604
|
+
if (selection.item.id === "include_sublocations") {
|
|
83605
|
+
return onChange(
|
|
83606
|
+
value.map((item) => ({
|
|
83607
|
+
...item,
|
|
83608
|
+
sublocations: enableSublocations ? [] : findSublocations(item)
|
|
83609
|
+
}))
|
|
83610
|
+
);
|
|
83611
|
+
}
|
|
83612
|
+
let newSelections = [];
|
|
83613
|
+
if (selectedValueIds.includes(getId3(selection.item))) {
|
|
83614
|
+
newSelections = removeSelections(selection.item, value);
|
|
83615
|
+
} else {
|
|
83616
|
+
newSelections = [...value, selection.item];
|
|
83617
|
+
const sublocationsToDisable = handleSelectSublocations(selection.item);
|
|
83618
|
+
const newDisabledValues = [
|
|
83619
|
+
...disabledValues,
|
|
83620
|
+
...sublocationsToDisable.filter(
|
|
83621
|
+
({ id }) => !selectedValueIds.includes(id)
|
|
83622
|
+
)
|
|
83623
|
+
];
|
|
83624
|
+
setDisabledValues(newDisabledValues);
|
|
83625
|
+
}
|
|
83626
|
+
setSelectState(determineSelectedState(newSelections));
|
|
83627
|
+
setSelectedValueIds(newSelections.map(({ id }) => id));
|
|
83628
|
+
onChange(
|
|
83629
|
+
newSelections.map((item) => ({
|
|
83630
|
+
...item,
|
|
83631
|
+
sublocations: handleSelectSublocations(item)
|
|
83632
|
+
}))
|
|
83633
|
+
);
|
|
83634
|
+
};
|
|
83635
|
+
const findSublocations = (selected) => {
|
|
83636
|
+
return options.filter((option) => {
|
|
83637
|
+
return ramda.startsWith(
|
|
83638
|
+
`${getLabel3(selected).toLowerCase()} > `,
|
|
83639
|
+
getLabel3(option).toLowerCase()
|
|
83640
|
+
);
|
|
83641
|
+
});
|
|
83642
|
+
};
|
|
83643
|
+
const handleSelectSublocations = (selected) => {
|
|
83644
|
+
if (enableSublocations) {
|
|
83645
|
+
const filteredOptions = findSublocations(selected);
|
|
83646
|
+
return filteredOptions;
|
|
83647
|
+
} else {
|
|
83648
|
+
return [];
|
|
83649
|
+
}
|
|
83650
|
+
};
|
|
83651
|
+
const removeSelections = React76__default.default.useCallback(
|
|
83652
|
+
function(selection, selected) {
|
|
83653
|
+
const sublocations = handleSelectSublocations(selection);
|
|
83654
|
+
const disabledValueIds = disabledValues.map(({ id }) => id);
|
|
83655
|
+
const sublocationsToRemoveFromDisabledIds = sublocations.filter(({ id }) => disabledValueIds.includes(id)).map(({ id }) => id);
|
|
83656
|
+
setDisabledValues(
|
|
83657
|
+
disabledValues.filter(
|
|
83658
|
+
({ id }) => !sublocationsToRemoveFromDisabledIds.includes(id)
|
|
83659
|
+
)
|
|
83660
|
+
);
|
|
83661
|
+
return selected.filter((item) => getId3(item) !== getId3(selection));
|
|
83351
83662
|
},
|
|
83352
|
-
[
|
|
83663
|
+
[enableSublocations, disabledValues]
|
|
83353
83664
|
);
|
|
83354
83665
|
React76__default.default.useEffect(() => {
|
|
83355
|
-
|
|
83356
|
-
|
|
83357
|
-
|
|
83358
|
-
|
|
83359
|
-
|
|
83360
|
-
|
|
83361
|
-
|
|
83362
|
-
|
|
83363
|
-
|
|
83666
|
+
setSelectState(determineSelectedState(value));
|
|
83667
|
+
}, [value]);
|
|
83668
|
+
const overlay = /* @__PURE__ */ React76__default.default.createElement(
|
|
83669
|
+
LocationQuickFilterOverlay,
|
|
83670
|
+
{
|
|
83671
|
+
columnDefinition,
|
|
83672
|
+
enableSublocations,
|
|
83673
|
+
onSelectAll,
|
|
83674
|
+
onSelectSublocations,
|
|
83675
|
+
selectState,
|
|
83676
|
+
value,
|
|
83677
|
+
options,
|
|
83678
|
+
disabledOptions: disabledValues,
|
|
83679
|
+
getId: getId3,
|
|
83680
|
+
getLabel: getLabel3,
|
|
83681
|
+
loading,
|
|
83682
|
+
onSelect,
|
|
83683
|
+
selectedValueIds
|
|
83364
83684
|
}
|
|
83365
|
-
|
|
83366
|
-
|
|
83367
|
-
onDisplayedColumnsChanged
|
|
83368
|
-
);
|
|
83369
|
-
return () => {
|
|
83370
|
-
removeEventListenerFromGrid(
|
|
83371
|
-
"displayedColumnsChanged",
|
|
83372
|
-
onDisplayedColumnsChanged,
|
|
83373
|
-
gridApi
|
|
83374
|
-
);
|
|
83375
|
-
};
|
|
83376
|
-
}, [gridApi]);
|
|
83377
|
-
if (groupableColumns.length === 0) {
|
|
83378
|
-
return null;
|
|
83379
|
-
}
|
|
83685
|
+
);
|
|
83686
|
+
const triggerLabel = value.length ? value.length === 1 ? `: ${value[0].label}` : `: (${value.length})` : "";
|
|
83380
83687
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83381
|
-
|
|
83688
|
+
coreReact.OverlayTrigger,
|
|
83382
83689
|
{
|
|
83383
|
-
|
|
83384
|
-
|
|
83690
|
+
overlay,
|
|
83691
|
+
beforeShow: getOptions,
|
|
83692
|
+
placement: "bottom-left"
|
|
83385
83693
|
},
|
|
83386
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
83387
|
-
|
|
83694
|
+
value.length ? /* @__PURE__ */ React76__default.default.createElement(
|
|
83695
|
+
QuickFilterLabel,
|
|
83388
83696
|
{
|
|
83389
|
-
|
|
83390
|
-
|
|
83391
|
-
|
|
83392
|
-
|
|
83393
|
-
|
|
83394
|
-
|
|
83395
|
-
|
|
83396
|
-
|
|
83397
|
-
|
|
83398
|
-
};
|
|
83399
|
-
function mapColumnsToOptions(columnDefinitions) {
|
|
83400
|
-
return columnDefinitions.map((col) => {
|
|
83401
|
-
return {
|
|
83402
|
-
label: col.headerName,
|
|
83403
|
-
id: col.field,
|
|
83404
|
-
key: col.field,
|
|
83405
|
-
group: col.columnGroupName
|
|
83406
|
-
};
|
|
83407
|
-
});
|
|
83408
|
-
}
|
|
83409
|
-
var cx21 = classnames__default.default.bind(quickControlsStyles_default);
|
|
83410
|
-
var ClientSideSearch = ({
|
|
83411
|
-
onSearch,
|
|
83412
|
-
placeholder
|
|
83413
|
-
}) => {
|
|
83414
|
-
const [internalValue, setInternalValue] = React76__default.default.useState("");
|
|
83415
|
-
const { tableRef } = useInternalTableContext();
|
|
83416
|
-
const hasNoContent = useTableHasNoContent();
|
|
83417
|
-
const I18n = coreReact.useI18nContext();
|
|
83418
|
-
const debouncedSetSearchValue = React76__default.default.useCallback(
|
|
83419
|
-
debounce5__default.default((value) => {
|
|
83420
|
-
tableRef?.current?.setSearchValue(value);
|
|
83421
|
-
}, 250),
|
|
83422
|
-
[tableRef?.current?.setSearchValue]
|
|
83423
|
-
);
|
|
83424
|
-
const onChange = React76__default.default.useCallback(
|
|
83425
|
-
(value, event) => {
|
|
83426
|
-
setInternalValue(value);
|
|
83427
|
-
if (onSearch) {
|
|
83428
|
-
onSearch(event);
|
|
83429
|
-
} else {
|
|
83430
|
-
debouncedSetSearchValue(value);
|
|
83697
|
+
enabled: true,
|
|
83698
|
+
disabled,
|
|
83699
|
+
label: `${I18n.t(
|
|
83700
|
+
"dataTable.filters.locationFilter.locations"
|
|
83701
|
+
)}${triggerLabel}`,
|
|
83702
|
+
onClear: () => {
|
|
83703
|
+
onChange([]);
|
|
83704
|
+
},
|
|
83705
|
+
block: true
|
|
83431
83706
|
}
|
|
83432
|
-
|
|
83433
|
-
|
|
83434
|
-
);
|
|
83435
|
-
return /* @__PURE__ */ React76__default.default.createElement(EmptyResultsControlTooltip, { hasSearch: true, enabled: hasNoContent }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83436
|
-
coreReact.Typeahead,
|
|
83437
|
-
{
|
|
83438
|
-
disabled: hasNoContent,
|
|
83439
|
-
"data-qa": "data-table-search",
|
|
83440
|
-
value: internalValue,
|
|
83441
|
-
className: cx21("search", {
|
|
83442
|
-
"search--empty": !internalValue.length
|
|
83443
|
-
}),
|
|
83444
|
-
onChange,
|
|
83445
|
-
placeholder: placeholder || I18n.t("dataTable.search")
|
|
83446
|
-
}
|
|
83447
|
-
));
|
|
83448
|
-
};
|
|
83449
|
-
var Search = (props) => {
|
|
83450
|
-
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83451
|
-
if (onServerSideDataRequest) {
|
|
83452
|
-
return /* @__PURE__ */ React76__default.default.createElement(ServerSideSearch, { ...props });
|
|
83453
|
-
}
|
|
83454
|
-
return /* @__PURE__ */ React76__default.default.createElement(ClientSideSearch, { ...props });
|
|
83455
|
-
};
|
|
83456
|
-
|
|
83457
|
-
// src/QuickControls/QuickControls.tsx
|
|
83458
|
-
var QuickControls = (props) => {
|
|
83459
|
-
const I18n = coreReact.useI18nContext();
|
|
83460
|
-
if (props.children) {
|
|
83461
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83462
|
-
coreReact.Box,
|
|
83707
|
+
) : /* @__PURE__ */ React76__default.default.createElement(
|
|
83708
|
+
QuickFilterLabel,
|
|
83463
83709
|
{
|
|
83464
|
-
|
|
83465
|
-
|
|
83466
|
-
|
|
83467
|
-
|
|
83468
|
-
|
|
83469
|
-
|
|
83470
|
-
}
|
|
83471
|
-
return /* @__PURE__ */ React76__default.default.createElement(coreReact.Box, { padding: "xs none", style: props.style }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Box, { padding: "xs none", display: "flex-row", justifyContent: "space-between" }, /* @__PURE__ */ React76__default.default.createElement(coreReact.FlexList, { size: "xs", alignItems: "center", marginRight: "sm" }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83472
|
-
Search,
|
|
83473
|
-
{
|
|
83474
|
-
onSearch: props.onSearch,
|
|
83475
|
-
placeholder: props.placeholder,
|
|
83476
|
-
disabled: props.disabledSearch
|
|
83477
|
-
}
|
|
83478
|
-
), /* @__PURE__ */ React76__default.default.createElement(FiltersPanelButton, null)), /* @__PURE__ */ React76__default.default.createElement(coreReact.FlexList, { size: "xs", alignItems: "center" }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83479
|
-
RowGroupSelector,
|
|
83480
|
-
{
|
|
83481
|
-
localeText: {
|
|
83482
|
-
reset: I18n.t("dataTable.tableSettings.reset"),
|
|
83483
|
-
placeholder: I18n.t("dataTable.tableSettings.selectColumnGroup"),
|
|
83484
|
-
selectedItemsPrefix: I18n.t("dataTable.tableSettings.groupBy")
|
|
83710
|
+
enabled: false,
|
|
83711
|
+
disabled,
|
|
83712
|
+
label: `${I18n.t(
|
|
83713
|
+
"dataTable.filters.locationFilter.locations"
|
|
83714
|
+
)}${triggerLabel}`,
|
|
83715
|
+
block: true
|
|
83485
83716
|
}
|
|
83486
|
-
|
|
83487
|
-
), /* @__PURE__ */ React76__default.default.createElement(ConfigPanelButton, null))), /* @__PURE__ */ React76__default.default.createElement(
|
|
83488
|
-
QuickFilters,
|
|
83489
|
-
{
|
|
83490
|
-
overlayMatchesTriggerWidth: props.filterOverlayMatchesTriggerWidth
|
|
83491
|
-
}
|
|
83492
|
-
));
|
|
83493
|
-
};
|
|
83494
|
-
|
|
83495
|
-
// src/utils/addSubcomponents.ts
|
|
83496
|
-
var addSubcomponents = (subs, parent) => {
|
|
83497
|
-
const assigned = parent;
|
|
83498
|
-
Object.keys(subs).forEach((key) => {
|
|
83499
|
-
assigned[key] = subs[key];
|
|
83500
|
-
});
|
|
83501
|
-
return assigned;
|
|
83502
|
-
};
|
|
83503
|
-
|
|
83504
|
-
// src/ClientSideDataTable.tsx
|
|
83505
|
-
var ClientSideDataTable = ({
|
|
83506
|
-
analytics,
|
|
83507
|
-
children,
|
|
83508
|
-
columnDefinitions: _columnDefinitions,
|
|
83509
|
-
customBulkEditorFields,
|
|
83510
|
-
enableDynamicRowHeight,
|
|
83511
|
-
enableGroupEditAndValidation,
|
|
83512
|
-
filterGroups,
|
|
83513
|
-
getRowId,
|
|
83514
|
-
initialTableConfig: _initialTableConfig,
|
|
83515
|
-
onBulkEditUpdate,
|
|
83516
|
-
onTableConfigChange,
|
|
83517
|
-
translations: translations2 = {},
|
|
83518
|
-
enableCellTextSelection,
|
|
83519
|
-
localStoragePersistenceKey
|
|
83520
|
-
}) => {
|
|
83521
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83522
|
-
DataTable,
|
|
83523
|
-
{
|
|
83524
|
-
analytics,
|
|
83525
|
-
columnDefinitions: _columnDefinitions,
|
|
83526
|
-
enableGroupEditAndValidation,
|
|
83527
|
-
enableDynamicRowHeight,
|
|
83528
|
-
filterGroups,
|
|
83529
|
-
getRowId,
|
|
83530
|
-
initialTableConfig: _initialTableConfig,
|
|
83531
|
-
onTableConfigChange,
|
|
83532
|
-
onBulkEditUpdate,
|
|
83533
|
-
showExpandCollapseAllToggle: true,
|
|
83534
|
-
translations: translations2,
|
|
83535
|
-
localStoragePersistenceKey,
|
|
83536
|
-
customBulkEditorFields,
|
|
83537
|
-
enableCellTextSelection
|
|
83538
|
-
},
|
|
83539
|
-
children
|
|
83717
|
+
)
|
|
83540
83718
|
);
|
|
83541
83719
|
};
|
|
83542
|
-
var
|
|
83543
|
-
|
|
83544
|
-
|
|
83545
|
-
internalTableContext.setTotalRowCount(props.rows?.length ?? 0);
|
|
83546
|
-
}, [props.rows]);
|
|
83547
|
-
return /* @__PURE__ */ React76__default.default.createElement(Table, { ...props, modules: [ClientSideRowModelModule] });
|
|
83548
|
-
};
|
|
83549
|
-
BulkActions.displayName = "ClientSideDataTable.BulkActions";
|
|
83550
|
-
ConfigPanelButton.displayName = "ClientSideDataTable.ConfigPanelButton";
|
|
83551
|
-
ContextPanel.displayName = "ClientSideDataTable.ContextPanel";
|
|
83552
|
-
QuickControls.displayName = "ClientSideDataTable.QuickControls";
|
|
83553
|
-
QuickFilters.displayName = "ClientSideDataTable.QuickFilters";
|
|
83554
|
-
RowGroupSelector.displayName = "ClientSideDataTable.RowGroupSelector";
|
|
83555
|
-
Search.displayName = "ClientSideDataTable.Search";
|
|
83556
|
-
Table2.displayName = "ClientSideDataTable.Table";
|
|
83557
|
-
FiltersPanel.displayName = "ClientSideDataTable.FiltersPanel";
|
|
83558
|
-
var ClientSideDataTable_default = addSubcomponents(
|
|
83559
|
-
{
|
|
83560
|
-
BulkActions,
|
|
83561
|
-
BulkEditActionButton,
|
|
83562
|
-
ConfigPanelButton,
|
|
83563
|
-
ContextPanel,
|
|
83564
|
-
QuickControls,
|
|
83565
|
-
QuickFilters,
|
|
83566
|
-
RowGroupSelector,
|
|
83567
|
-
Search,
|
|
83568
|
-
Table: Table2,
|
|
83569
|
-
FiltersPanel,
|
|
83570
|
-
FiltersPanelButton
|
|
83571
|
-
},
|
|
83572
|
-
ClientSideDataTable
|
|
83573
|
-
);
|
|
83574
|
-
var QuickFilterLabel = React76__default.default.forwardRef(({ enabled, ...props }, ref) => {
|
|
83575
|
-
return /* @__PURE__ */ React76__default.default.createElement(StyledQuickFilterLabel, { $enabled: enabled }, /* @__PURE__ */ React76__default.default.createElement(coreReact.SelectButton, { ref, ...props }));
|
|
83576
|
-
});
|
|
83577
|
-
var StyledQuickFilterLabel = styled4__default.default.div`
|
|
83578
|
-
${coreReact.StyledSelectButton} {
|
|
83579
|
-
width: auto;
|
|
83580
|
-
max-width: 380px;
|
|
83581
|
-
${({ $enabled }) => $enabled && styled4.css`
|
|
83582
|
-
background: ${coreReact.colors.blue96};
|
|
83583
|
-
border-color: ${coreReact.colors.blue96};
|
|
83584
|
-
font-weight: ${coreReact.typographyWeights.semibold};
|
|
83585
|
-
&:hover {
|
|
83586
|
-
background: ${coreReact.colors.blue90};
|
|
83587
|
-
border-color: ${coreReact.colors.blue90};
|
|
83588
|
-
}
|
|
83589
|
-
${coreReact.StyledSelectButtonLabel} {
|
|
83590
|
-
color: ${coreReact.colors.blue45};
|
|
83591
|
-
}
|
|
83592
|
-
${coreReact.StyledButton} {
|
|
83593
|
-
color: ${coreReact.colors.blue45};
|
|
83594
|
-
&:hover {
|
|
83595
|
-
background: white;
|
|
83596
|
-
}
|
|
83597
|
-
}
|
|
83598
|
-
${coreReact.StyledSelectArrow} {
|
|
83599
|
-
svg {
|
|
83600
|
-
fill: ${coreReact.colors.blue45};
|
|
83601
|
-
}
|
|
83602
|
-
}
|
|
83603
|
-
`}
|
|
83604
|
-
}
|
|
83720
|
+
var LocationQuickFilterRenderer_default = LocationQuickFilterRenderer;
|
|
83721
|
+
var StyledFilterPresetPopoverContent = styled3__default.default(coreReact.Popover.Content)`
|
|
83722
|
+
padding: ${coreReact.spacing.sm}px ${coreReact.spacing.lg}px;
|
|
83605
83723
|
`;
|
|
83606
|
-
|
|
83607
|
-
|
|
83608
|
-
|
|
83609
|
-
|
|
83610
|
-
return "bottom-left";
|
|
83611
|
-
}
|
|
83612
|
-
if (position === "start") {
|
|
83613
|
-
return "bottom-left";
|
|
83614
|
-
}
|
|
83615
|
-
return "bottom-right";
|
|
83616
|
-
}
|
|
83617
|
-
var OptionalDateTimeProvider2 = ({ timeZone, children }) => {
|
|
83618
|
-
return timeZone ? /* @__PURE__ */ React76__default.default.createElement(coreReact.DateTimeProvider, { timeZone }, children) : /* @__PURE__ */ React76__default.default.createElement(React76__default.default.Fragment, null, children);
|
|
83724
|
+
var getValueLabel = (isValueEmpty, value, placeholder, filterName) => {
|
|
83725
|
+
const prefixLabel = isValueEmpty ? placeholder || filterName : filterName;
|
|
83726
|
+
const valueLabel = value ? `${prefixLabel ? ": " : ""}${value}` : "";
|
|
83727
|
+
return `${prefixLabel}${valueLabel}`;
|
|
83619
83728
|
};
|
|
83620
|
-
var
|
|
83621
|
-
|
|
83622
|
-
|
|
83623
|
-
|
|
83624
|
-
|
|
83625
|
-
|
|
83626
|
-
|
|
83627
|
-
|
|
83628
|
-
|
|
83629
|
-
|
|
83630
|
-
|
|
83631
|
-
|
|
83632
|
-
|
|
83633
|
-
|
|
83634
|
-
|
|
83635
|
-
|
|
83636
|
-
|
|
83637
|
-
|
|
83638
|
-
|
|
83639
|
-
|
|
83640
|
-
|
|
83641
|
-
|
|
83642
|
-
|
|
83643
|
-
|
|
83644
|
-
|
|
83645
|
-
|
|
83646
|
-
|
|
83647
|
-
|
|
83648
|
-
|
|
83649
|
-
|
|
83650
|
-
|
|
83651
|
-
|
|
83652
|
-
|
|
83653
|
-
|
|
83654
|
-
|
|
83655
|
-
|
|
83656
|
-
|
|
83657
|
-
|
|
83658
|
-
|
|
83659
|
-
|
|
83660
|
-
|
|
83661
|
-
|
|
83662
|
-
|
|
83663
|
-
|
|
83664
|
-
|
|
83665
|
-
|
|
83666
|
-
|
|
83667
|
-
|
|
83668
|
-
|
|
83669
|
-
|
|
83670
|
-
|
|
83671
|
-
|
|
83672
|
-
|
|
83673
|
-
|
|
83674
|
-
|
|
83675
|
-
|
|
83676
|
-
|
|
83677
|
-
|
|
83678
|
-
|
|
83679
|
-
|
|
83680
|
-
|
|
83681
|
-
|
|
83682
|
-
|
|
83683
|
-
|
|
83684
|
-
|
|
83685
|
-
|
|
83686
|
-
|
|
83687
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
83688
|
-
DateQuickFilterLabel,
|
|
83689
|
-
{
|
|
83690
|
-
headerName,
|
|
83691
|
-
onClear,
|
|
83692
|
-
value: selectedDate,
|
|
83693
|
-
disabled
|
|
83729
|
+
var getSuperSelectFilterPreset = (columnDefinition) => {
|
|
83730
|
+
const filterName = columnDefinition.headerName;
|
|
83731
|
+
const getValueLabel_ = typeof columnDefinition.filterProps?.getFilterTokenText === "function" ? (value) => {
|
|
83732
|
+
return columnDefinition.filterProps?.getFilterTokenText?.({
|
|
83733
|
+
headerName: columnDefinition.headerName,
|
|
83734
|
+
value: Array.isArray(value) ? value : [value]
|
|
83735
|
+
});
|
|
83736
|
+
} : void 0;
|
|
83737
|
+
return {
|
|
83738
|
+
components: {
|
|
83739
|
+
Label: React76__default.default.forwardRef(() => {
|
|
83740
|
+
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
83741
|
+
const isValueEmpty = ["", null, void 0].includes(
|
|
83742
|
+
ctx.state.value
|
|
83743
|
+
);
|
|
83744
|
+
return /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_StyledSuperSelectLabel, { $hoverable: false }, typeof getValueLabel_ === "function" ? getValueLabel_(ctx.state.value) : getValueLabel(
|
|
83745
|
+
isValueEmpty,
|
|
83746
|
+
ctx.state.selectedLabel,
|
|
83747
|
+
ctx.config.placeholder,
|
|
83748
|
+
filterName
|
|
83749
|
+
));
|
|
83750
|
+
}),
|
|
83751
|
+
TriggerContainer: React76__default.default.forwardRef((props, ref) => {
|
|
83752
|
+
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
83753
|
+
if (!Array.isArray(ctx.state.value)) {
|
|
83754
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83755
|
+
coreReact.UNSAFE_StyledSuperSelectTrigger,
|
|
83756
|
+
{
|
|
83757
|
+
$block: ctx.config.block,
|
|
83758
|
+
...props,
|
|
83759
|
+
ref
|
|
83760
|
+
}
|
|
83761
|
+
);
|
|
83762
|
+
}
|
|
83763
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83764
|
+
coreReact.Popover,
|
|
83765
|
+
{
|
|
83766
|
+
placement: "top",
|
|
83767
|
+
trigger: ctx.state.value.length > 1 ? "hover" : "none",
|
|
83768
|
+
overlay: /* @__PURE__ */ React76__default.default.createElement(StyledFilterPresetPopoverContent, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.Typography, null, ctx.state.value.map((v) => {
|
|
83769
|
+
const option = ctx.state.options.find(
|
|
83770
|
+
(option2) => ctx.option.value(option2) === v
|
|
83771
|
+
);
|
|
83772
|
+
return option ? ctx.option.label(option) : "";
|
|
83773
|
+
}).join(", ")))
|
|
83774
|
+
},
|
|
83775
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
83776
|
+
coreReact.UNSAFE_StyledSuperSelectTrigger,
|
|
83777
|
+
{
|
|
83778
|
+
$block: ctx.config.block,
|
|
83779
|
+
...props,
|
|
83780
|
+
ref
|
|
83781
|
+
}
|
|
83782
|
+
)
|
|
83783
|
+
);
|
|
83784
|
+
}),
|
|
83785
|
+
MultiValueContainer: () => {
|
|
83786
|
+
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
83787
|
+
if (Array.isArray(ctx.state.value)) {
|
|
83788
|
+
const isValueEmpty = !ctx.state.value.length;
|
|
83789
|
+
const value = ctx.state.value.length > 1 ? `(${ctx.state.value.length})` : ctx.state.value.length === 1 ? `${ctx.state.selectedLabel}` : "";
|
|
83790
|
+
return /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_StyledSuperSelectLabel, { $hoverable: false }, typeof getValueLabel_ === "function" ? getValueLabel_(ctx.state.value) : getValueLabel(
|
|
83791
|
+
isValueEmpty,
|
|
83792
|
+
value,
|
|
83793
|
+
ctx.config.placeholder,
|
|
83794
|
+
filterName
|
|
83795
|
+
));
|
|
83694
83796
|
}
|
|
83695
|
-
|
|
83696
|
-
);
|
|
83697
|
-
}
|
|
83698
|
-
);
|
|
83699
|
-
function DateFilter3({
|
|
83700
|
-
// TODO: talk to design about potential loading UX for this.
|
|
83701
|
-
// core DateSelect doesn't have it
|
|
83702
|
-
// loading,
|
|
83703
|
-
headerName,
|
|
83704
|
-
onChange,
|
|
83705
|
-
selectionType = "either",
|
|
83706
|
-
value,
|
|
83707
|
-
disabled,
|
|
83708
|
-
...props
|
|
83709
|
-
}) {
|
|
83710
|
-
const [selectedValue, setSelectedValue] = React76__default.default.useState({
|
|
83711
|
-
type: selectionType === "either" ? "range" : selectionType
|
|
83712
|
-
});
|
|
83713
|
-
React76__default.default.useEffect(() => {
|
|
83714
|
-
const parsedValue = value.map((date) => {
|
|
83715
|
-
if (dateFns.isDate(date)) {
|
|
83716
|
-
return date;
|
|
83797
|
+
return /* @__PURE__ */ React76__default.default.createElement("div", null, "Value is not an array");
|
|
83717
83798
|
}
|
|
83718
|
-
return dateFns.parseISO(String(date));
|
|
83719
|
-
});
|
|
83720
|
-
const type = dateFns.isSameDay(parsedValue[0], parsedValue[1]) ? "single" : "range";
|
|
83721
|
-
setSelectedValue({ type, start: parsedValue[0], end: parsedValue[1] });
|
|
83722
|
-
}, [value]);
|
|
83723
|
-
const dateRangeEndDateRef = React76__default.default.useRef(null);
|
|
83724
|
-
function dateFilterOnChange(date, position) {
|
|
83725
|
-
const newValue = getValueFromSelection(selectedValue, date, position);
|
|
83726
|
-
setSelectedValue(newValue);
|
|
83727
|
-
if (isValidDateSelection(newValue)) {
|
|
83728
|
-
onChange(
|
|
83729
|
-
newValue.start || newValue.end ? [
|
|
83730
|
-
newValue.start,
|
|
83731
|
-
newValue.type === "single" ? newValue.start : newValue.end
|
|
83732
|
-
] : []
|
|
83733
|
-
);
|
|
83734
|
-
}
|
|
83735
|
-
}
|
|
83736
|
-
const onSelectionTypeChange = React76__default.default.useCallback(
|
|
83737
|
-
(newSelectionType) => {
|
|
83738
|
-
setSelectedValue({ type: newSelectionType });
|
|
83739
83799
|
},
|
|
83740
|
-
|
|
83741
|
-
|
|
83742
|
-
|
|
83743
|
-
|
|
83744
|
-
|
|
83745
|
-
|
|
83746
|
-
return true;
|
|
83800
|
+
selectionStyle: "highlight"
|
|
83801
|
+
};
|
|
83802
|
+
};
|
|
83803
|
+
var StyledSuperSelectWrapper = styled3__default.default.div`
|
|
83804
|
+
${coreReact.UNSAFE_StyledSuperSelectTrigger} {
|
|
83805
|
+
width: auto;
|
|
83747
83806
|
}
|
|
83748
|
-
|
|
83749
|
-
|
|
83750
|
-
|
|
83751
|
-
|
|
83752
|
-
|
|
83753
|
-
|
|
83754
|
-
|
|
83755
|
-
|
|
83756
|
-
|
|
83757
|
-
|
|
83758
|
-
|
|
83759
|
-
|
|
83760
|
-
|
|
83761
|
-
|
|
83762
|
-
|
|
83763
|
-
|
|
83764
|
-
|
|
83765
|
-
|
|
83766
|
-
|
|
83767
|
-
|
|
83768
|
-
|
|
83769
|
-
|
|
83770
|
-
|
|
83771
|
-
|
|
83772
|
-
|
|
83807
|
+
|
|
83808
|
+
${({ $enabled }) => $enabled && styled3.css`
|
|
83809
|
+
${coreReact.UNSAFE_StyledSuperSelectTrigger} {
|
|
83810
|
+
max-width: 360px;
|
|
83811
|
+
background: ${coreReact.colors.blue96};
|
|
83812
|
+
border-color: ${coreReact.colors.blue96};
|
|
83813
|
+
font-weight: ${coreReact.typographyWeights.semibold};
|
|
83814
|
+
|
|
83815
|
+
&:hover {
|
|
83816
|
+
background: ${coreReact.colors.blue90};
|
|
83817
|
+
border-color: ${coreReact.colors.blue90};
|
|
83818
|
+
}
|
|
83819
|
+
|
|
83820
|
+
${coreReact.UNSAFE_StyledSuperSelectLabel} {
|
|
83821
|
+
color: ${coreReact.colors.blue45};
|
|
83822
|
+
}
|
|
83823
|
+
|
|
83824
|
+
${coreReact.StyledButton} {
|
|
83825
|
+
color: ${coreReact.colors.blue45};
|
|
83826
|
+
|
|
83827
|
+
&:hover {
|
|
83828
|
+
background: white;
|
|
83829
|
+
}
|
|
83830
|
+
}
|
|
83831
|
+
|
|
83832
|
+
${coreReact.UNSAFE_StyledSuperSelectArrow} {
|
|
83833
|
+
svg {
|
|
83834
|
+
fill: ${coreReact.colors.blue45};
|
|
83835
|
+
}
|
|
83836
|
+
}
|
|
83837
|
+
}
|
|
83838
|
+
`}
|
|
83839
|
+
`;
|
|
83840
|
+
|
|
83841
|
+
// src/QuickFilterRenderers/types.ts
|
|
83842
|
+
function isClientSideFilterProps(_value, isServerSideDataRequest) {
|
|
83843
|
+
return !isServerSideDataRequest;
|
|
83773
83844
|
}
|
|
83774
|
-
|
|
83845
|
+
|
|
83846
|
+
// src/QuickFilterRenderers/MultiSelectQuickFilterRenderer.tsx
|
|
83847
|
+
var ClientSideMultiSelectQuickFilter = ({
|
|
83848
|
+
filter,
|
|
83775
83849
|
columnDefinition,
|
|
83850
|
+
onChange,
|
|
83851
|
+
onRemove,
|
|
83852
|
+
overlayMatchesTriggerWidth,
|
|
83776
83853
|
disabled
|
|
83777
|
-
}) {
|
|
83778
|
-
|
|
83779
|
-
|
|
83780
|
-
});
|
|
83781
|
-
const colDef = columnDefinition;
|
|
83782
|
-
return /* @__PURE__ */ React76__default.default.createElement(OptionalDateTimeProvider2, { timeZone: colDef.timeZone }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83783
|
-
DateFilter3,
|
|
83854
|
+
}) => {
|
|
83855
|
+
return /* @__PURE__ */ React76__default.default.createElement(StyledSuperSelectWrapper, { $enabled: Boolean(filter.filterValues?.length) }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83856
|
+
coreReact.UNSAFE_SuperSelect,
|
|
83784
83857
|
{
|
|
83785
|
-
|
|
83786
|
-
|
|
83858
|
+
overlayMatchesTriggerWidth,
|
|
83859
|
+
value: filter.filterValues === null ? [] : filter.filterValues,
|
|
83860
|
+
search: false,
|
|
83861
|
+
multiple: true,
|
|
83862
|
+
options: filter.options,
|
|
83787
83863
|
disabled,
|
|
83788
|
-
|
|
83789
|
-
|
|
83790
|
-
selected.map((date) => {
|
|
83791
|
-
return date ? {
|
|
83792
|
-
// future extensions can go here (month, day, year keys etc)
|
|
83793
|
-
date
|
|
83794
|
-
} : (
|
|
83795
|
-
// TODO: refactor out date-specific getId stuff from useServerSideFilterStorage
|
|
83796
|
-
date
|
|
83797
|
-
);
|
|
83798
|
-
})
|
|
83799
|
-
);
|
|
83864
|
+
getOptionValue: (option) => {
|
|
83865
|
+
return getId(columnDefinition.filterProps?.getId, option);
|
|
83800
83866
|
},
|
|
83801
|
-
|
|
83867
|
+
getOptionLabel: (option) => {
|
|
83868
|
+
return getLabel(columnDefinition.filterProps?.getLabel, option);
|
|
83869
|
+
},
|
|
83870
|
+
onChange: (values2) => {
|
|
83871
|
+
if (Array.isArray(values2) && !values2.length) {
|
|
83872
|
+
onRemove?.();
|
|
83873
|
+
return;
|
|
83874
|
+
}
|
|
83875
|
+
onChange?.(values2);
|
|
83876
|
+
},
|
|
83877
|
+
...getSuperSelectFilterPreset(columnDefinition)
|
|
83802
83878
|
}
|
|
83803
83879
|
));
|
|
83804
|
-
}
|
|
83805
|
-
var QuickDateFilterRenderer = (props) => {
|
|
83806
|
-
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83807
|
-
if (onServerSideDataRequest) {
|
|
83808
|
-
return /* @__PURE__ */ React76__default.default.createElement(ServerSideQuickDateFilterRenderer, { ...props });
|
|
83809
|
-
}
|
|
83810
|
-
logger.error(
|
|
83811
|
-
"Warning: Date Filters are currently only implemented for the serverside row model"
|
|
83812
|
-
);
|
|
83813
|
-
return null;
|
|
83814
|
-
};
|
|
83815
|
-
var dateInputLocales = {
|
|
83816
|
-
"fr-CA": {
|
|
83817
|
-
placeholders: { day: "jj", month: "mm", year: "aaaa" }
|
|
83818
|
-
},
|
|
83819
|
-
"fr-FR": {
|
|
83820
|
-
placeholders: { day: "jj", month: "mm", year: "aaaa" }
|
|
83821
|
-
},
|
|
83822
|
-
es: {
|
|
83823
|
-
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83824
|
-
},
|
|
83825
|
-
"es-ES": {
|
|
83826
|
-
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83827
|
-
},
|
|
83828
|
-
pt: {
|
|
83829
|
-
placeholders: { day: "dd", month: "mm", year: "aaaa" }
|
|
83830
|
-
},
|
|
83831
|
-
"is-IS": {
|
|
83832
|
-
placeholders: { day: "dd", month: "mm", year: "\xE1\xE1\xE1\xE1" }
|
|
83833
|
-
},
|
|
83834
|
-
"de-DE": {
|
|
83835
|
-
placeholders: { day: "tt", month: "MM", year: "jjjj" }
|
|
83836
|
-
}
|
|
83837
|
-
};
|
|
83838
|
-
var DateQuickFilterLabel = React76__default.default.forwardRef(({ headerName, onClear, value, disabled }, ref) => {
|
|
83839
|
-
const dateTime = coreReact.useDateTime();
|
|
83840
|
-
const i18n = coreReact.useI18nContext();
|
|
83841
|
-
const placeholders = dateInputLocales[i18n.locale]?.placeholders || {
|
|
83842
|
-
day: "dd",
|
|
83843
|
-
month: "mm",
|
|
83844
|
-
year: "yyyy"
|
|
83845
|
-
};
|
|
83846
|
-
if (value !== void 0 && dateFns.isDate(value)) {
|
|
83847
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83848
|
-
QuickFilterLabel,
|
|
83849
|
-
{
|
|
83850
|
-
enabled: true,
|
|
83851
|
-
disabled,
|
|
83852
|
-
label: `${headerName}: ${dateTime.format(value, "numeric-date")}`,
|
|
83853
|
-
onClear,
|
|
83854
|
-
ref
|
|
83855
|
-
}
|
|
83856
|
-
);
|
|
83857
|
-
}
|
|
83858
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83859
|
-
QuickFilterLabel,
|
|
83860
|
-
{
|
|
83861
|
-
enabled: false,
|
|
83862
|
-
disabled,
|
|
83863
|
-
label: `${headerName}: ${globalizationToolkit.getDatePlaceholder(i18n.locale, placeholders)}`,
|
|
83864
|
-
ref
|
|
83865
|
-
}
|
|
83866
|
-
);
|
|
83867
|
-
});
|
|
83868
|
-
var DateQuickFilterRenderer_default = QuickDateFilterRenderer;
|
|
83869
|
-
var defaultGetId2 = (option) => option?.id;
|
|
83870
|
-
var defaultGetLabel2 = (option) => {
|
|
83871
|
-
return option?.label ?? option?.name ?? option;
|
|
83872
83880
|
};
|
|
83873
|
-
var
|
|
83881
|
+
var useSuperSelectOptionAsValueWorkaround2 = ({
|
|
83874
83882
|
originValue,
|
|
83875
83883
|
originOptions,
|
|
83876
|
-
getId: getId3
|
|
83884
|
+
getId: getId3,
|
|
83877
83885
|
loading
|
|
83878
83886
|
}) => {
|
|
83879
83887
|
const isValueFromOptions = React76__default.default.useRef(false);
|
|
83880
83888
|
const getValueFromOptions = () => {
|
|
83881
|
-
const valueIds = originValue.map(getId3);
|
|
83889
|
+
const valueIds = originValue.map((option) => getId(getId3, option));
|
|
83882
83890
|
isValueFromOptions.current = true;
|
|
83883
|
-
return originOptions.filter(
|
|
83891
|
+
return originOptions.filter(
|
|
83892
|
+
(option) => valueIds.includes(getId(getId3, option))
|
|
83893
|
+
);
|
|
83884
83894
|
};
|
|
83885
83895
|
const hasOptions = originOptions.length > 0 && !loading;
|
|
83886
83896
|
const hasValue = originValue?.length > 0;
|
|
@@ -83892,684 +83902,814 @@ var useSuperSelectOptionAsValueWorkaround = ({
|
|
|
83892
83902
|
getOptionValue: (option) => option
|
|
83893
83903
|
};
|
|
83894
83904
|
};
|
|
83895
|
-
var
|
|
83896
|
-
|
|
83897
|
-
|
|
83898
|
-
|
|
83905
|
+
var ServerSideMultiSelectQuickFilter = ({ columnDefinition, overlayMatchesTriggerWidth, disabled }) => {
|
|
83906
|
+
const {
|
|
83907
|
+
options: originOptions,
|
|
83908
|
+
onClearFilter,
|
|
83909
|
+
fieldName,
|
|
83910
|
+
value: originValue = [],
|
|
83911
|
+
onChange,
|
|
83912
|
+
getOptions,
|
|
83913
|
+
loading
|
|
83914
|
+
} = useServerSideFilter({ columnDefinition });
|
|
83915
|
+
const { options, value, getOptionValue } = useSuperSelectOptionAsValueWorkaround2({
|
|
83916
|
+
originOptions,
|
|
83917
|
+
originValue,
|
|
83899
83918
|
loading,
|
|
83900
|
-
|
|
83901
|
-
|
|
83902
|
-
|
|
83903
|
-
|
|
83904
|
-
|
|
83905
|
-
|
|
83906
|
-
|
|
83907
|
-
|
|
83908
|
-
|
|
83909
|
-
|
|
83910
|
-
|
|
83911
|
-
|
|
83912
|
-
|
|
83913
|
-
|
|
83914
|
-
|
|
83915
|
-
|
|
83916
|
-
|
|
83917
|
-
|
|
83918
|
-
|
|
83919
|
-
|
|
83920
|
-
|
|
83921
|
-
|
|
83922
|
-
|
|
83923
|
-
|
|
83924
|
-
|
|
83925
|
-
|
|
83926
|
-
|
|
83927
|
-
|
|
83928
|
-
|
|
83929
|
-
|
|
83930
|
-
if (selection.item.id === selectAllOption.id) {
|
|
83931
|
-
return onSelectAll();
|
|
83932
|
-
}
|
|
83933
|
-
if (selection.item.id === includeSublocationOption.id) {
|
|
83934
|
-
_onSelect(selection);
|
|
83935
|
-
return onSelectSublocations();
|
|
83936
|
-
}
|
|
83937
|
-
return _onSelect(selection);
|
|
83938
|
-
};
|
|
83939
|
-
function defaultOnSearch(e) {
|
|
83940
|
-
if (e.target.value === "") {
|
|
83941
|
-
setSearching(false);
|
|
83942
|
-
setItems(options);
|
|
83943
|
-
} else {
|
|
83944
|
-
setSearching(true);
|
|
83945
|
-
setItems(
|
|
83946
|
-
options.filter(
|
|
83947
|
-
(item) => getLabel3(item).toLowerCase().includes(e.target.value.toLowerCase())
|
|
83948
|
-
)
|
|
83949
|
-
);
|
|
83950
|
-
}
|
|
83919
|
+
getId: columnDefinition.filterProps?.getId
|
|
83920
|
+
});
|
|
83921
|
+
return /* @__PURE__ */ React76__default.default.createElement(StyledSuperSelectWrapper, { $enabled: Boolean(value?.length) }, /* @__PURE__ */ React76__default.default.createElement(
|
|
83922
|
+
coreReact.UNSAFE_SuperSelect,
|
|
83923
|
+
{
|
|
83924
|
+
overlayMatchesTriggerWidth,
|
|
83925
|
+
loading,
|
|
83926
|
+
value: value === null ? [] : value,
|
|
83927
|
+
search: false,
|
|
83928
|
+
getOptionLabel: (option) => {
|
|
83929
|
+
return getLabel(columnDefinition.filterProps?.getLabel, option);
|
|
83930
|
+
},
|
|
83931
|
+
getOptionValue,
|
|
83932
|
+
multiple: true,
|
|
83933
|
+
options,
|
|
83934
|
+
disabled,
|
|
83935
|
+
onChange: (values2) => {
|
|
83936
|
+
if (Array.isArray(values2) && !values2.length) {
|
|
83937
|
+
onClearFilter?.(fieldName);
|
|
83938
|
+
getOptions();
|
|
83939
|
+
return;
|
|
83940
|
+
}
|
|
83941
|
+
onChange(values2);
|
|
83942
|
+
},
|
|
83943
|
+
onOpenChange: (open) => {
|
|
83944
|
+
if (open && !originOptions.length) {
|
|
83945
|
+
getOptions();
|
|
83946
|
+
}
|
|
83947
|
+
},
|
|
83948
|
+
...getSuperSelectFilterPreset(columnDefinition)
|
|
83951
83949
|
}
|
|
83952
|
-
|
|
83953
|
-
|
|
83954
|
-
|
|
83955
|
-
|
|
83956
|
-
|
|
83957
|
-
|
|
83950
|
+
));
|
|
83951
|
+
};
|
|
83952
|
+
var MultiSelectQuickFilterRenderer = (props) => {
|
|
83953
|
+
const { onServerSideDataRequest } = useInternalTableContext();
|
|
83954
|
+
if (!isClientSideFilterProps(props, !!onServerSideDataRequest)) {
|
|
83955
|
+
return /* @__PURE__ */ React76__default.default.createElement(ServerSideMultiSelectQuickFilter, { ...props });
|
|
83956
|
+
}
|
|
83957
|
+
return /* @__PURE__ */ React76__default.default.createElement(ClientSideMultiSelectQuickFilter, { ...props });
|
|
83958
|
+
};
|
|
83959
|
+
var MultiSelectQuickFilterRenderer_default = MultiSelectQuickFilterRenderer;
|
|
83960
|
+
function getFilterTokenText(columnDefinition, filterValue) {
|
|
83961
|
+
if (columnDefinition?.filterProps?.getFilterTokenText) {
|
|
83962
|
+
return columnDefinition?.filterProps?.getFilterTokenText?.({
|
|
83963
|
+
headerName: columnDefinition?.headerName || "",
|
|
83964
|
+
value: filterValue
|
|
83965
|
+
});
|
|
83966
|
+
}
|
|
83967
|
+
if (columnDefinition.filterRenderer === DateFilterRenderer_default) {
|
|
83968
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
83969
|
+
OptionalDateTimeProvider,
|
|
83958
83970
|
{
|
|
83959
|
-
|
|
83960
|
-
multiple: true,
|
|
83961
|
-
role: "listbox",
|
|
83962
|
-
ref: menuRef,
|
|
83963
|
-
onSelect,
|
|
83964
|
-
className: locationFilterStyles_default.locationFilterMenu
|
|
83971
|
+
timeZone: columnDefinition.timeZone
|
|
83965
83972
|
},
|
|
83966
83973
|
/* @__PURE__ */ React76__default.default.createElement(
|
|
83967
|
-
|
|
83974
|
+
DateFilterTokenText,
|
|
83968
83975
|
{
|
|
83969
|
-
|
|
83970
|
-
|
|
83976
|
+
headerName: columnDefinition.headerName,
|
|
83977
|
+
value: filterValue
|
|
83971
83978
|
}
|
|
83972
|
-
)
|
|
83973
|
-
|
|
83974
|
-
coreReact.Box,
|
|
83975
|
-
{
|
|
83976
|
-
className: locationFilterStyles_default.controlsContainer,
|
|
83977
|
-
...coreReact.UNSAFE_menuItemsWrapperAttribute
|
|
83978
|
-
},
|
|
83979
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
83980
|
-
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
83981
|
-
{
|
|
83982
|
-
key: getId3(includeSublocationOption),
|
|
83983
|
-
item: includeSublocationOption,
|
|
83984
|
-
selected: enableSublocations
|
|
83985
|
-
},
|
|
83986
|
-
getLabel3(includeSublocationOption)
|
|
83987
|
-
),
|
|
83988
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
83989
|
-
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
83990
|
-
{
|
|
83991
|
-
key: getId3(selectAllOption),
|
|
83992
|
-
item: selectAllOption,
|
|
83993
|
-
selected: selectState === "all",
|
|
83994
|
-
indeterminate: selectState === "partial"
|
|
83995
|
-
},
|
|
83996
|
-
getLabel3(selectAllOption)
|
|
83997
|
-
)
|
|
83998
|
-
), !loading && items.map((item, i) => {
|
|
83999
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84000
|
-
coreReact.UNSAFE_Menu.CheckboxItem,
|
|
84001
|
-
{
|
|
84002
|
-
key: getId3(item),
|
|
84003
|
-
item,
|
|
84004
|
-
selected: value.map(({ id }) => id).includes(getId3(item)) || disabledOptions.map(({ id }) => id).includes(getId3(item)),
|
|
84005
|
-
suggested: i === 0,
|
|
84006
|
-
disabled: disabledOptions.map(({ id }) => id).includes(getId3(item))
|
|
84007
|
-
},
|
|
84008
|
-
getLabel3(item)
|
|
84009
|
-
);
|
|
84010
|
-
})),
|
|
84011
|
-
loading && /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_Menu.Footer, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.Flex, { justifyContent: "center" }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Spinner, { size: "sm" })))
|
|
84012
|
-
));
|
|
83979
|
+
)
|
|
83980
|
+
);
|
|
84013
83981
|
}
|
|
84014
|
-
)
|
|
84015
|
-
|
|
83982
|
+
if (columnDefinition.filterRenderer === NumberFilterRenderer) {
|
|
83983
|
+
return columnDefinition?.headerName;
|
|
83984
|
+
}
|
|
83985
|
+
if (Array.isArray(filterValue)) {
|
|
83986
|
+
if (filterValue.length === 0) {
|
|
83987
|
+
return columnDefinition?.headerName;
|
|
83988
|
+
}
|
|
83989
|
+
if (filterValue.length === 1) {
|
|
83990
|
+
return `${columnDefinition?.headerName}: ${getLabel(
|
|
83991
|
+
columnDefinition.filterProps?.getLabel,
|
|
83992
|
+
filterValue[0]
|
|
83993
|
+
)}`;
|
|
83994
|
+
}
|
|
83995
|
+
return `${columnDefinition?.headerName}: (${filterValue.length})`;
|
|
83996
|
+
}
|
|
83997
|
+
return columnDefinition?.headerName;
|
|
83998
|
+
}
|
|
83999
|
+
var ensureArray = (input) => {
|
|
84000
|
+
if (input === null) {
|
|
84001
|
+
return [];
|
|
84002
|
+
}
|
|
84003
|
+
return Array.isArray(input) ? input : [input];
|
|
84004
|
+
};
|
|
84005
|
+
|
|
84006
|
+
// src/QuickFilterRenderers/SingleSelectQuickFilterRenderer.tsx
|
|
84007
|
+
var ClientSideSingleSelectQuickFilter = ({
|
|
84008
|
+
filter,
|
|
84016
84009
|
columnDefinition,
|
|
84010
|
+
onChange,
|
|
84011
|
+
onRemove,
|
|
84012
|
+
overlayMatchesTriggerWidth,
|
|
84017
84013
|
disabled
|
|
84018
84014
|
}) => {
|
|
84015
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84016
|
+
StyledSuperSelectWrapper,
|
|
84017
|
+
{
|
|
84018
|
+
$enabled: Boolean(filter.filterValues?.length),
|
|
84019
|
+
"data-test-id": "client-side-single-select-quick-filter"
|
|
84020
|
+
},
|
|
84021
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84022
|
+
coreReact.UNSAFE_SuperSelect,
|
|
84023
|
+
{
|
|
84024
|
+
overlayMatchesTriggerWidth,
|
|
84025
|
+
value: filter.filterValues ?? [],
|
|
84026
|
+
search: false,
|
|
84027
|
+
multiple: false,
|
|
84028
|
+
options: filter.options,
|
|
84029
|
+
disabled,
|
|
84030
|
+
getOptionValue: (option) => getId(columnDefinition.filterProps?.getId, option),
|
|
84031
|
+
getOptionLabel: (option) => getLabel(columnDefinition.filterProps?.getLabel, option),
|
|
84032
|
+
onChange: (values2) => {
|
|
84033
|
+
const valuesArray = ensureArray(values2);
|
|
84034
|
+
if (!valuesArray.length) {
|
|
84035
|
+
onRemove?.();
|
|
84036
|
+
return;
|
|
84037
|
+
}
|
|
84038
|
+
onChange?.(valuesArray);
|
|
84039
|
+
},
|
|
84040
|
+
...getSuperSelectFilterPreset(columnDefinition)
|
|
84041
|
+
}
|
|
84042
|
+
)
|
|
84043
|
+
);
|
|
84044
|
+
};
|
|
84045
|
+
var useSuperSelectOptionAsValueWorkaround3 = ({
|
|
84046
|
+
originValue,
|
|
84047
|
+
originOptions,
|
|
84048
|
+
getId: getId3,
|
|
84049
|
+
loading
|
|
84050
|
+
}) => {
|
|
84051
|
+
const isValueFromOptions = React76__default.default.useRef(false);
|
|
84052
|
+
const getValueFromOptions = () => {
|
|
84053
|
+
const valueIds = originValue.map((option) => getId(getId3, option));
|
|
84054
|
+
isValueFromOptions.current = true;
|
|
84055
|
+
return originOptions.filter(
|
|
84056
|
+
(option) => valueIds.includes(getId(getId3, option))
|
|
84057
|
+
);
|
|
84058
|
+
};
|
|
84059
|
+
const hasOptions = originOptions.length > 0 && !loading;
|
|
84060
|
+
const hasValue = originValue?.length > 0;
|
|
84061
|
+
const options = !hasOptions && hasValue ? originValue : originOptions;
|
|
84062
|
+
const value = !hasOptions ? originValue : isValueFromOptions.current ? originValue : getValueFromOptions();
|
|
84063
|
+
return {
|
|
84064
|
+
options,
|
|
84065
|
+
value,
|
|
84066
|
+
getOptionValue: (option) => option
|
|
84067
|
+
};
|
|
84068
|
+
};
|
|
84069
|
+
var ServerSideSingleSelectQuickFilter = ({ columnDefinition, overlayMatchesTriggerWidth, disabled }) => {
|
|
84019
84070
|
const {
|
|
84020
84071
|
options: originOptions,
|
|
84072
|
+
onClearFilter,
|
|
84073
|
+
fieldName,
|
|
84021
84074
|
value: originValue = [],
|
|
84022
84075
|
onChange,
|
|
84023
84076
|
getOptions,
|
|
84024
84077
|
loading
|
|
84025
84078
|
} = useServerSideFilter({ columnDefinition });
|
|
84026
|
-
const { options, value } =
|
|
84079
|
+
const { options, value, getOptionValue } = useSuperSelectOptionAsValueWorkaround3({
|
|
84027
84080
|
originOptions,
|
|
84028
84081
|
originValue,
|
|
84029
84082
|
loading,
|
|
84030
84083
|
getId: columnDefinition.filterProps?.getId
|
|
84031
84084
|
});
|
|
84032
|
-
const
|
|
84033
|
-
|
|
84034
|
-
|
|
84035
|
-
|
|
84036
|
-
|
|
84037
|
-
return "all";
|
|
84038
|
-
}
|
|
84039
|
-
if (selection.length && (options.length > selection.length || options.length < selection.length)) {
|
|
84040
|
-
return "partial";
|
|
84041
|
-
}
|
|
84042
|
-
if (selection.length === 0) {
|
|
84043
|
-
return "none";
|
|
84044
|
-
}
|
|
84045
|
-
return "none";
|
|
84046
|
-
};
|
|
84047
|
-
const ids = React76__default.default.useMemo(() => value.map(({ id }) => id), [value]);
|
|
84048
|
-
const [selectedValueIds, setSelectedValueIds] = React76__default.default.useState(ids);
|
|
84049
|
-
const [selectState, setSelectState] = React76__default.default.useState(
|
|
84050
|
-
determineSelectedState(value)
|
|
84051
|
-
);
|
|
84052
|
-
const [disabledValues, setDisabledValues] = React76__default.default.useState([]);
|
|
84053
|
-
const [enableSublocations, setEnableSublocations] = React76__default.default.useState(false);
|
|
84054
|
-
const onSelectSublocations = React76__default.default.useCallback(() => {
|
|
84055
|
-
if (enableSublocations) {
|
|
84056
|
-
setDisabledValues([]);
|
|
84057
|
-
} else {
|
|
84058
|
-
const newDisabledValues = [];
|
|
84059
|
-
value.forEach((location) => {
|
|
84060
|
-
newDisabledValues.push(...findSublocations(location));
|
|
84061
|
-
});
|
|
84062
|
-
const uniqDisabledValues = ramda.uniqBy(ramda.prop("id"), newDisabledValues).filter(
|
|
84063
|
-
({ id }) => !selectedValueIds.includes(id)
|
|
84064
|
-
);
|
|
84065
|
-
setDisabledValues(uniqDisabledValues);
|
|
84066
|
-
}
|
|
84067
|
-
setEnableSublocations(!enableSublocations);
|
|
84068
|
-
}, [enableSublocations, value, selectedValueIds, options]);
|
|
84069
|
-
const onSelectAll = React76__default.default.useCallback(() => {
|
|
84070
|
-
if (selectState === "none" || selectState === "partial") {
|
|
84071
|
-
setSelectState("all");
|
|
84072
|
-
setSelectedValueIds(options.map(({ id }) => id));
|
|
84073
|
-
onChange(options);
|
|
84074
|
-
}
|
|
84075
|
-
if (selectState === "all") {
|
|
84076
|
-
setSelectState("none");
|
|
84077
|
-
setSelectedValueIds([]);
|
|
84078
|
-
onChange([]);
|
|
84085
|
+
const hasFetchedOptions = React76__default.default.useRef(false);
|
|
84086
|
+
React76__default.default.useEffect(() => {
|
|
84087
|
+
if (!hasFetchedOptions.current && !originOptions.length) {
|
|
84088
|
+
getOptions();
|
|
84089
|
+
hasFetchedOptions.current = true;
|
|
84079
84090
|
}
|
|
84080
|
-
}, [
|
|
84081
|
-
const
|
|
84082
|
-
|
|
84091
|
+
}, [getOptions, originOptions.length]);
|
|
84092
|
+
const handleOnChange = (values2) => {
|
|
84093
|
+
const selectedValues = ensureArray(values2);
|
|
84094
|
+
if (!selectedValues.length) {
|
|
84095
|
+
onClearFilter?.(fieldName);
|
|
84096
|
+
getOptions();
|
|
84083
84097
|
return;
|
|
84084
84098
|
}
|
|
84085
|
-
|
|
84086
|
-
return onChange(
|
|
84087
|
-
value.map((item) => ({
|
|
84088
|
-
...item,
|
|
84089
|
-
sublocations: enableSublocations ? [] : findSublocations(item)
|
|
84090
|
-
}))
|
|
84091
|
-
);
|
|
84092
|
-
}
|
|
84093
|
-
let newSelections = [];
|
|
84094
|
-
if (selectedValueIds.includes(getId3(selection.item))) {
|
|
84095
|
-
newSelections = removeSelections(selection.item, value);
|
|
84096
|
-
} else {
|
|
84097
|
-
newSelections = [...value, selection.item];
|
|
84098
|
-
const sublocationsToDisable = handleSelectSublocations(selection.item);
|
|
84099
|
-
const newDisabledValues = [
|
|
84100
|
-
...disabledValues,
|
|
84101
|
-
...sublocationsToDisable.filter(
|
|
84102
|
-
({ id }) => !selectedValueIds.includes(id)
|
|
84103
|
-
)
|
|
84104
|
-
];
|
|
84105
|
-
setDisabledValues(newDisabledValues);
|
|
84106
|
-
}
|
|
84107
|
-
setSelectState(determineSelectedState(newSelections));
|
|
84108
|
-
setSelectedValueIds(newSelections.map(({ id }) => id));
|
|
84109
|
-
onChange(
|
|
84110
|
-
newSelections.map((item) => ({
|
|
84111
|
-
...item,
|
|
84112
|
-
sublocations: handleSelectSublocations(item)
|
|
84113
|
-
}))
|
|
84114
|
-
);
|
|
84115
|
-
};
|
|
84116
|
-
const findSublocations = (selected) => {
|
|
84117
|
-
return options.filter((option) => {
|
|
84118
|
-
return ramda.startsWith(
|
|
84119
|
-
`${getLabel3(selected).toLowerCase()} > `,
|
|
84120
|
-
getLabel3(option).toLowerCase()
|
|
84121
|
-
);
|
|
84122
|
-
});
|
|
84099
|
+
onChange(selectedValues);
|
|
84123
84100
|
};
|
|
84124
|
-
const
|
|
84125
|
-
if (
|
|
84126
|
-
|
|
84127
|
-
return filteredOptions;
|
|
84128
|
-
} else {
|
|
84129
|
-
return [];
|
|
84101
|
+
const handleOnOpenChange = (open) => {
|
|
84102
|
+
if (open && !originOptions.length) {
|
|
84103
|
+
getOptions();
|
|
84130
84104
|
}
|
|
84131
84105
|
};
|
|
84132
|
-
|
|
84133
|
-
|
|
84134
|
-
|
|
84135
|
-
|
|
84136
|
-
|
|
84137
|
-
setDisabledValues(
|
|
84138
|
-
disabledValues.filter(
|
|
84139
|
-
({ id }) => !sublocationsToRemoveFromDisabledIds.includes(id)
|
|
84140
|
-
)
|
|
84141
|
-
);
|
|
84142
|
-
return selected.filter((item) => getId3(item) !== getId3(selection));
|
|
84106
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84107
|
+
StyledSuperSelectWrapper,
|
|
84108
|
+
{
|
|
84109
|
+
$enabled: Boolean(value?.length),
|
|
84110
|
+
"data-test-id": "server-side-single-select-quick-filter"
|
|
84143
84111
|
},
|
|
84144
|
-
|
|
84112
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84113
|
+
coreReact.UNSAFE_SuperSelect,
|
|
84114
|
+
{
|
|
84115
|
+
overlayMatchesTriggerWidth,
|
|
84116
|
+
loading,
|
|
84117
|
+
value: value ?? [],
|
|
84118
|
+
search: false,
|
|
84119
|
+
disabled,
|
|
84120
|
+
getOptionLabel: (option) => getLabel(columnDefinition.filterProps?.getLabel, option),
|
|
84121
|
+
getOptionValue,
|
|
84122
|
+
multiple: false,
|
|
84123
|
+
options,
|
|
84124
|
+
onChange: handleOnChange,
|
|
84125
|
+
onOpenChange: handleOnOpenChange,
|
|
84126
|
+
...getSuperSelectFilterPreset(columnDefinition)
|
|
84127
|
+
}
|
|
84128
|
+
)
|
|
84145
84129
|
);
|
|
84146
|
-
|
|
84147
|
-
|
|
84148
|
-
}
|
|
84149
|
-
|
|
84150
|
-
|
|
84130
|
+
};
|
|
84131
|
+
var SingleSelectQuickFilterRenderer = (props) => {
|
|
84132
|
+
const { onServerSideDataRequest } = useInternalTableContext();
|
|
84133
|
+
if (!isClientSideFilterProps(props, !!onServerSideDataRequest)) {
|
|
84134
|
+
return /* @__PURE__ */ React76__default.default.createElement(ServerSideSingleSelectQuickFilter, { ...props });
|
|
84135
|
+
}
|
|
84136
|
+
return /* @__PURE__ */ React76__default.default.createElement(ClientSideSingleSelectQuickFilter, { ...props });
|
|
84137
|
+
};
|
|
84138
|
+
var SingleSelectQuickFilterRenderer_default = SingleSelectQuickFilterRenderer;
|
|
84139
|
+
var FiltersPanelToggleButton = ({ hasSelectedFilters, hasDefinedFilters }) => {
|
|
84140
|
+
const I18n = coreReact.useI18nContext();
|
|
84141
|
+
const { contextPanel } = useInternalTableContext();
|
|
84142
|
+
const hasNoContent = useTableHasNoContent();
|
|
84143
|
+
if (!hasDefinedFilters) {
|
|
84144
|
+
return null;
|
|
84145
|
+
}
|
|
84146
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84147
|
+
EmptyResultsControlTooltip,
|
|
84151
84148
|
{
|
|
84152
|
-
|
|
84153
|
-
|
|
84154
|
-
|
|
84155
|
-
|
|
84156
|
-
|
|
84157
|
-
|
|
84158
|
-
|
|
84159
|
-
|
|
84160
|
-
|
|
84161
|
-
|
|
84162
|
-
|
|
84163
|
-
|
|
84164
|
-
|
|
84149
|
+
featureI18nKey: "featureFilter",
|
|
84150
|
+
enabled: hasNoContent
|
|
84151
|
+
},
|
|
84152
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84153
|
+
coreReact.ToggleButton,
|
|
84154
|
+
{
|
|
84155
|
+
"data-qa": "data-table-show-filters-button",
|
|
84156
|
+
disabled: hasNoContent,
|
|
84157
|
+
icon: /* @__PURE__ */ React76__default.default.createElement(FilterIcon, null),
|
|
84158
|
+
onClick: () => {
|
|
84159
|
+
if (contextPanel.content === "filters") {
|
|
84160
|
+
contextPanel.hide();
|
|
84161
|
+
} else {
|
|
84162
|
+
contextPanel.show("filters");
|
|
84163
|
+
}
|
|
84164
|
+
},
|
|
84165
|
+
selected: contextPanel.content === "filters"
|
|
84166
|
+
},
|
|
84167
|
+
hasSelectedFilters ? I18n.t("dataTable.filters.moreFilters") : I18n.t("dataTable.filters.filters")
|
|
84168
|
+
)
|
|
84169
|
+
);
|
|
84170
|
+
};
|
|
84171
|
+
var ServerSideFiltersPanelToggleButton = () => {
|
|
84172
|
+
const {
|
|
84173
|
+
filterStorage: { hasDefinedFilters, hasSelectedFilters }
|
|
84174
|
+
} = useInternalTableContext();
|
|
84175
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84176
|
+
FiltersPanelToggleButton,
|
|
84177
|
+
{
|
|
84178
|
+
hasDefinedFilters,
|
|
84179
|
+
hasSelectedFilters
|
|
84165
84180
|
}
|
|
84166
84181
|
);
|
|
84167
|
-
|
|
84182
|
+
};
|
|
84183
|
+
var ClientSideFiltersPanelToggleButton = () => {
|
|
84184
|
+
const { filterState } = useInternalTableContext();
|
|
84185
|
+
const activeFilters = React76__default.default.useMemo(() => {
|
|
84186
|
+
return filterState.allAvailableFilters.filter(({ instance }) => {
|
|
84187
|
+
return instance.isFilterActive();
|
|
84188
|
+
});
|
|
84189
|
+
}, [filterState.allAvailableFilters]);
|
|
84168
84190
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84169
|
-
|
|
84191
|
+
FiltersPanelToggleButton,
|
|
84170
84192
|
{
|
|
84171
|
-
|
|
84172
|
-
|
|
84173
|
-
|
|
84193
|
+
hasDefinedFilters: filterState.allAvailableFilters.length > 0,
|
|
84194
|
+
hasSelectedFilters: activeFilters.length > 0
|
|
84195
|
+
}
|
|
84196
|
+
);
|
|
84197
|
+
};
|
|
84198
|
+
|
|
84199
|
+
// src/QuickControls/QuickFilters.tsx
|
|
84200
|
+
var defaultQuickFilterRenderers = {
|
|
84201
|
+
MultiSelectFilterRenderer: MultiSelectQuickFilterRenderer_default,
|
|
84202
|
+
DateFilterRenderer: DateQuickFilterRenderer_default,
|
|
84203
|
+
LocationFilterRenderer: LocationQuickFilterRenderer_default,
|
|
84204
|
+
SingleSelectFilterRenderer: SingleSelectQuickFilterRenderer_default
|
|
84205
|
+
};
|
|
84206
|
+
function getQuickFilterRenderer(colDef) {
|
|
84207
|
+
if (!colDef)
|
|
84208
|
+
return null;
|
|
84209
|
+
if (colDef.quickFilterRenderer) {
|
|
84210
|
+
return colDef.quickFilterRenderer;
|
|
84211
|
+
}
|
|
84212
|
+
const filterRendererName = colDef.filterRenderer?.displayName;
|
|
84213
|
+
if (filterRendererName) {
|
|
84214
|
+
return defaultQuickFilterRenderers[filterRendererName] || null;
|
|
84215
|
+
}
|
|
84216
|
+
return null;
|
|
84217
|
+
}
|
|
84218
|
+
var FilterIcon = () => {
|
|
84219
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84220
|
+
"svg",
|
|
84221
|
+
{
|
|
84222
|
+
focusable: false,
|
|
84223
|
+
width: "16",
|
|
84224
|
+
height: "16",
|
|
84225
|
+
viewBox: "0 0 20 20",
|
|
84226
|
+
fill: "none",
|
|
84227
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
84174
84228
|
},
|
|
84175
|
-
|
|
84176
|
-
|
|
84177
|
-
{
|
|
84178
|
-
enabled: true,
|
|
84179
|
-
disabled,
|
|
84180
|
-
label: `${I18n.t(
|
|
84181
|
-
"dataTable.filters.locationFilter.locations"
|
|
84182
|
-
)}${triggerLabel}`,
|
|
84183
|
-
onClear: () => {
|
|
84184
|
-
onChange([]);
|
|
84185
|
-
},
|
|
84186
|
-
block: true
|
|
84187
|
-
}
|
|
84188
|
-
) : /* @__PURE__ */ React76__default.default.createElement(
|
|
84189
|
-
QuickFilterLabel,
|
|
84229
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84230
|
+
"path",
|
|
84190
84231
|
{
|
|
84191
|
-
|
|
84192
|
-
|
|
84193
|
-
|
|
84194
|
-
|
|
84195
|
-
)}${triggerLabel}`,
|
|
84196
|
-
block: true
|
|
84232
|
+
fillRule: "evenodd",
|
|
84233
|
+
clipRule: "evenodd",
|
|
84234
|
+
d: "M3 5V7H17V5H3ZM8 15H12V13H8V15ZM15 11H5V9H15V11Z",
|
|
84235
|
+
fill: "currentColor"
|
|
84197
84236
|
}
|
|
84198
84237
|
)
|
|
84199
84238
|
);
|
|
84200
84239
|
};
|
|
84201
|
-
var
|
|
84202
|
-
|
|
84203
|
-
|
|
84240
|
+
var StyledFilterTokenWrapper = styled3__default.default.div`
|
|
84241
|
+
${coreReact.UNSAFE_StyledFilterTokenLabel} {
|
|
84242
|
+
font-weight: ${coreReact.typographyWeights.semibold};
|
|
84243
|
+
}
|
|
84204
84244
|
`;
|
|
84205
|
-
var
|
|
84206
|
-
const
|
|
84207
|
-
const
|
|
84208
|
-
|
|
84209
|
-
|
|
84210
|
-
|
|
84211
|
-
|
|
84212
|
-
|
|
84213
|
-
|
|
84214
|
-
headerName: columnDefinition.headerName,
|
|
84215
|
-
value: Array.isArray(value) ? value : [value]
|
|
84216
|
-
});
|
|
84217
|
-
} : void 0;
|
|
84218
|
-
return {
|
|
84219
|
-
components: {
|
|
84220
|
-
Label: React76__default.default.forwardRef(() => {
|
|
84221
|
-
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
84222
|
-
const isValueEmpty = ["", null, void 0].includes(
|
|
84223
|
-
ctx.state.value
|
|
84224
|
-
);
|
|
84225
|
-
return /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_StyledSuperSelectLabel, { $hoverable: false }, typeof getValueLabel_ === "function" ? getValueLabel_(ctx.state.value) : getValueLabel(
|
|
84226
|
-
isValueEmpty,
|
|
84227
|
-
ctx.state.selectedLabel,
|
|
84228
|
-
ctx.config.placeholder,
|
|
84229
|
-
filterName
|
|
84230
|
-
));
|
|
84231
|
-
}),
|
|
84232
|
-
TriggerContainer: React76__default.default.forwardRef((props, ref) => {
|
|
84233
|
-
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
84234
|
-
if (!Array.isArray(ctx.state.value)) {
|
|
84235
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84236
|
-
coreReact.UNSAFE_StyledSuperSelectTrigger,
|
|
84237
|
-
{
|
|
84238
|
-
$block: ctx.config.block,
|
|
84239
|
-
...props,
|
|
84240
|
-
ref
|
|
84241
|
-
}
|
|
84242
|
-
);
|
|
84245
|
+
var ClientSideQuickFilters = ({ overlayMatchesTriggerWidth }) => {
|
|
84246
|
+
const { tableRef, filterState, getColumnDefinition } = useInternalTableContext();
|
|
84247
|
+
const hasNoContent = useTableHasNoContent();
|
|
84248
|
+
const { quickFilters, tokens } = React76__default.default.useMemo(() => {
|
|
84249
|
+
return filterState.allAvailableFilters.reduce(
|
|
84250
|
+
(acc, filter) => {
|
|
84251
|
+
const colDef = getColumnDefinition(filter.field);
|
|
84252
|
+
if (!colDef) {
|
|
84253
|
+
return acc;
|
|
84243
84254
|
}
|
|
84244
|
-
|
|
84245
|
-
|
|
84246
|
-
|
|
84247
|
-
|
|
84248
|
-
|
|
84249
|
-
|
|
84250
|
-
|
|
84251
|
-
(option2) => ctx.option.value(option2) === v
|
|
84252
|
-
);
|
|
84253
|
-
return option ? ctx.option.label(option) : "";
|
|
84254
|
-
}).join(", ")))
|
|
84255
|
-
},
|
|
84256
|
-
/* @__PURE__ */ React76__default.default.createElement(
|
|
84257
|
-
coreReact.UNSAFE_StyledSuperSelectTrigger,
|
|
84258
|
-
{
|
|
84259
|
-
$block: ctx.config.block,
|
|
84260
|
-
...props,
|
|
84261
|
-
ref
|
|
84262
|
-
}
|
|
84263
|
-
)
|
|
84264
|
-
);
|
|
84265
|
-
}),
|
|
84266
|
-
MultiValueContainer: () => {
|
|
84267
|
-
const ctx = coreReact.UNSAFE_useSuperSelectContext();
|
|
84268
|
-
if (Array.isArray(ctx.state.value)) {
|
|
84269
|
-
const isValueEmpty = !ctx.state.value.length;
|
|
84270
|
-
const value = ctx.state.value.length > 1 ? `(${ctx.state.value.length})` : ctx.state.value.length === 1 ? `${ctx.state.selectedLabel}` : "";
|
|
84271
|
-
return /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_StyledSuperSelectLabel, { $hoverable: false }, typeof getValueLabel_ === "function" ? getValueLabel_(ctx.state.value) : getValueLabel(
|
|
84272
|
-
isValueEmpty,
|
|
84273
|
-
value,
|
|
84274
|
-
ctx.config.placeholder,
|
|
84275
|
-
filterName
|
|
84276
|
-
));
|
|
84255
|
+
const isInteractive = colDef?.filterProps?.isInteractiveFilterToken === true;
|
|
84256
|
+
const hasQuickFilterRenderer = !!colDef?.quickFilterRenderer;
|
|
84257
|
+
const filterIsActive = filter.instance.isFilterActive();
|
|
84258
|
+
if (hasQuickFilterRenderer || filterIsActive && isInteractive && getQuickFilterRenderer(colDef) !== null) {
|
|
84259
|
+
return { ...acc, quickFilters: [...acc.quickFilters, filter] };
|
|
84260
|
+
} else if (filterIsActive) {
|
|
84261
|
+
return { ...acc, tokens: [...acc.tokens, filter] };
|
|
84277
84262
|
}
|
|
84278
|
-
return
|
|
84263
|
+
return acc;
|
|
84264
|
+
},
|
|
84265
|
+
{
|
|
84266
|
+
quickFilters: [],
|
|
84267
|
+
tokens: []
|
|
84279
84268
|
}
|
|
84269
|
+
);
|
|
84270
|
+
}, [filterState.allAvailableFilters, getColumnDefinition]);
|
|
84271
|
+
const isEmpty2 = quickFilters.length === 0 && tokens.length === 0;
|
|
84272
|
+
return isEmpty2 ? null : /* @__PURE__ */ React76__default.default.createElement(
|
|
84273
|
+
coreReact.FlexList,
|
|
84274
|
+
{
|
|
84275
|
+
padding: "xs none",
|
|
84276
|
+
size: "none",
|
|
84277
|
+
alignItems: "center",
|
|
84278
|
+
wrap: "wrap",
|
|
84279
|
+
gap: "sm"
|
|
84280
84280
|
},
|
|
84281
|
-
|
|
84282
|
-
|
|
84283
|
-
|
|
84284
|
-
|
|
84285
|
-
|
|
84286
|
-
|
|
84287
|
-
|
|
84288
|
-
|
|
84289
|
-
|
|
84290
|
-
|
|
84291
|
-
|
|
84292
|
-
|
|
84293
|
-
|
|
84294
|
-
|
|
84295
|
-
|
|
84296
|
-
|
|
84297
|
-
|
|
84298
|
-
|
|
84281
|
+
quickFilters.map((filter) => {
|
|
84282
|
+
const colDef = getColumnDefinition(filter.field);
|
|
84283
|
+
const QuickFilter = getQuickFilterRenderer(colDef);
|
|
84284
|
+
if (!colDef || !QuickFilter) {
|
|
84285
|
+
return null;
|
|
84286
|
+
}
|
|
84287
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84288
|
+
EmptyResultsControlTooltip,
|
|
84289
|
+
{
|
|
84290
|
+
featureI18nKey: "featureQuickFilter",
|
|
84291
|
+
enabled: hasNoContent
|
|
84292
|
+
},
|
|
84293
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84294
|
+
QuickFilter,
|
|
84295
|
+
{
|
|
84296
|
+
key: filter.field,
|
|
84297
|
+
filter,
|
|
84298
|
+
columnDefinition: colDef,
|
|
84299
|
+
disabled: hasNoContent,
|
|
84300
|
+
onChange: (value) => tableRef?.current?.applyListFilter(filter.field, value),
|
|
84301
|
+
onRemove: () => tableRef?.current?.removeFilter(filter.field),
|
|
84302
|
+
overlayMatchesTriggerWidth
|
|
84303
|
+
}
|
|
84304
|
+
)
|
|
84305
|
+
);
|
|
84306
|
+
}),
|
|
84307
|
+
tokens.map((filter) => {
|
|
84308
|
+
const colDef = getColumnDefinition(filter.field);
|
|
84309
|
+
if (!colDef) {
|
|
84310
|
+
return null;
|
|
84311
|
+
}
|
|
84312
|
+
return /* @__PURE__ */ React76__default.default.createElement(StyledFilterTokenWrapper, { key: filter.field }, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken.Label, null, getFilterTokenText(colDef, filter.filterValues)), /* @__PURE__ */ React76__default.default.createElement(
|
|
84313
|
+
coreReact.UNSAFE_FilterToken.Remove,
|
|
84314
|
+
{
|
|
84315
|
+
onClick: () => tableRef?.current?.removeFilter(filter.field)
|
|
84299
84316
|
}
|
|
84300
|
-
|
|
84301
|
-
|
|
84302
|
-
|
|
84317
|
+
)));
|
|
84318
|
+
})
|
|
84319
|
+
);
|
|
84320
|
+
};
|
|
84321
|
+
var ServerSideQuickFilters = ({ overlayMatchesTriggerWidth }) => {
|
|
84322
|
+
const {
|
|
84323
|
+
filterStorage: {
|
|
84324
|
+
hasDefinedFilters,
|
|
84325
|
+
onClearFilter,
|
|
84326
|
+
possibleFilters,
|
|
84327
|
+
selectedFilters,
|
|
84328
|
+
getListFilter
|
|
84329
|
+
},
|
|
84330
|
+
getColumnDefinition
|
|
84331
|
+
} = useInternalTableContext();
|
|
84332
|
+
const hasNoContent = useTableHasNoContent();
|
|
84333
|
+
const { quickFilterNames, tokenNames } = React76__default.default.useMemo(() => {
|
|
84334
|
+
const appliedFilterNames = Object.keys(selectedFilters);
|
|
84335
|
+
const isActiveFilter = (filterName) => appliedFilterNames.includes(filterName);
|
|
84336
|
+
return possibleFilters.reduce(
|
|
84337
|
+
(acc, filterName) => {
|
|
84338
|
+
const colDef = getColumnDefinition(filterName);
|
|
84339
|
+
if (!colDef) {
|
|
84340
|
+
return acc;
|
|
84303
84341
|
}
|
|
84304
|
-
|
|
84305
|
-
|
|
84306
|
-
|
|
84307
|
-
|
|
84308
|
-
|
|
84309
|
-
|
|
84310
|
-
|
|
84342
|
+
const isInteractive = colDef?.filterProps?.isInteractiveFilterToken === true;
|
|
84343
|
+
const hasQuickFilterRenderer = !!colDef?.quickFilterRenderer;
|
|
84344
|
+
const filterIsActive = isActiveFilter(filterName);
|
|
84345
|
+
if (hasQuickFilterRenderer || filterIsActive && isInteractive && getQuickFilterRenderer(colDef) !== null) {
|
|
84346
|
+
return {
|
|
84347
|
+
...acc,
|
|
84348
|
+
quickFilterNames: [...acc.quickFilterNames, filterName]
|
|
84349
|
+
};
|
|
84350
|
+
} else if (filterIsActive) {
|
|
84351
|
+
return {
|
|
84352
|
+
...acc,
|
|
84353
|
+
tokenNames: [...acc.tokenNames, filterName]
|
|
84354
|
+
};
|
|
84311
84355
|
}
|
|
84312
|
-
|
|
84313
|
-
|
|
84314
|
-
|
|
84315
|
-
|
|
84356
|
+
return acc;
|
|
84357
|
+
},
|
|
84358
|
+
{
|
|
84359
|
+
quickFilterNames: [],
|
|
84360
|
+
tokenNames: []
|
|
84361
|
+
}
|
|
84362
|
+
);
|
|
84363
|
+
}, [possibleFilters, selectedFilters, getColumnDefinition]);
|
|
84364
|
+
if (!hasDefinedFilters) {
|
|
84365
|
+
return null;
|
|
84366
|
+
}
|
|
84367
|
+
const isEmpty2 = quickFilterNames.length === 0 && tokenNames.length === 0;
|
|
84368
|
+
return isEmpty2 ? null : /* @__PURE__ */ React76__default.default.createElement(
|
|
84369
|
+
coreReact.FlexList,
|
|
84370
|
+
{
|
|
84371
|
+
padding: "xs none",
|
|
84372
|
+
size: "none",
|
|
84373
|
+
alignItems: "center",
|
|
84374
|
+
wrap: "wrap",
|
|
84375
|
+
gap: "sm",
|
|
84376
|
+
"data-qa": "data-table-quick-filters"
|
|
84377
|
+
},
|
|
84378
|
+
quickFilterNames.map((fieldName) => {
|
|
84379
|
+
const colDef = getColumnDefinition(fieldName);
|
|
84380
|
+
const QuickFilter = getQuickFilterRenderer(colDef);
|
|
84381
|
+
if (!colDef || !QuickFilter) {
|
|
84382
|
+
return null;
|
|
84383
|
+
}
|
|
84384
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84385
|
+
EmptyResultsControlTooltip,
|
|
84386
|
+
{
|
|
84387
|
+
featureI18nKey: "featureQuickFilter",
|
|
84388
|
+
enabled: hasNoContent
|
|
84389
|
+
},
|
|
84390
|
+
/* @__PURE__ */ React76__default.default.createElement(
|
|
84391
|
+
QuickFilter,
|
|
84392
|
+
{
|
|
84393
|
+
key: fieldName,
|
|
84394
|
+
columnDefinition: colDef,
|
|
84395
|
+
disabled: hasNoContent,
|
|
84396
|
+
overlayMatchesTriggerWidth
|
|
84316
84397
|
}
|
|
84317
|
-
|
|
84398
|
+
)
|
|
84399
|
+
);
|
|
84400
|
+
}),
|
|
84401
|
+
tokenNames.map((fieldName) => {
|
|
84402
|
+
const colDef = getColumnDefinition(fieldName);
|
|
84403
|
+
if (!colDef) {
|
|
84404
|
+
return null;
|
|
84318
84405
|
}
|
|
84319
|
-
|
|
84320
|
-
|
|
84321
|
-
|
|
84322
|
-
|
|
84323
|
-
|
|
84324
|
-
|
|
84325
|
-
|
|
84326
|
-
|
|
84327
|
-
|
|
84328
|
-
var ClientSideMultiSelectQuickFilter = ({
|
|
84329
|
-
filter,
|
|
84330
|
-
columnDefinition,
|
|
84331
|
-
onChange,
|
|
84332
|
-
onRemove,
|
|
84333
|
-
overlayMatchesTriggerWidth,
|
|
84334
|
-
disabled
|
|
84335
|
-
}) => {
|
|
84336
|
-
return /* @__PURE__ */ React76__default.default.createElement(StyledSuperSelectWrapper, { $enabled: Boolean(filter.filterValues?.length) }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84337
|
-
coreReact.UNSAFE_SuperSelect,
|
|
84338
|
-
{
|
|
84339
|
-
overlayMatchesTriggerWidth,
|
|
84340
|
-
value: filter.filterValues === null ? [] : filter.filterValues,
|
|
84341
|
-
search: false,
|
|
84342
|
-
multiple: true,
|
|
84343
|
-
options: filter.options,
|
|
84344
|
-
disabled,
|
|
84345
|
-
getOptionValue: (option) => {
|
|
84346
|
-
return getId(columnDefinition.filterProps?.getId, option);
|
|
84347
|
-
},
|
|
84348
|
-
getOptionLabel: (option) => {
|
|
84349
|
-
return getLabel(columnDefinition.filterProps?.getLabel, option);
|
|
84350
|
-
},
|
|
84351
|
-
onChange: (values2) => {
|
|
84352
|
-
if (Array.isArray(values2) && !values2.length) {
|
|
84353
|
-
onRemove?.();
|
|
84354
|
-
return;
|
|
84406
|
+
const filter = getListFilter(fieldName);
|
|
84407
|
+
return /* @__PURE__ */ React76__default.default.createElement(StyledFilterTokenWrapper, { key: fieldName }, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken, null, /* @__PURE__ */ React76__default.default.createElement(coreReact.UNSAFE_FilterToken.Label, null, getFilterTokenText(
|
|
84408
|
+
colDef,
|
|
84409
|
+
colDef.filterRenderer === DateFilterRenderer_default ? filter.value : filter.selected
|
|
84410
|
+
)), /* @__PURE__ */ React76__default.default.createElement(
|
|
84411
|
+
coreReact.UNSAFE_FilterToken.Remove,
|
|
84412
|
+
{
|
|
84413
|
+
"data-qa": "data-table-quick-filter-remove-token",
|
|
84414
|
+
onClick: () => onClearFilter(fieldName)
|
|
84355
84415
|
}
|
|
84356
|
-
|
|
84357
|
-
|
|
84358
|
-
|
|
84359
|
-
}
|
|
84360
|
-
));
|
|
84416
|
+
)));
|
|
84417
|
+
})
|
|
84418
|
+
);
|
|
84361
84419
|
};
|
|
84362
|
-
var
|
|
84363
|
-
|
|
84364
|
-
|
|
84365
|
-
|
|
84366
|
-
|
|
84367
|
-
|
|
84368
|
-
|
|
84369
|
-
|
|
84370
|
-
const valueIds = originValue.map((option) => getId(getId3, option));
|
|
84371
|
-
isValueFromOptions.current = true;
|
|
84372
|
-
return originOptions.filter(
|
|
84373
|
-
(option) => valueIds.includes(getId(getId3, option))
|
|
84420
|
+
var QuickFilters = ({ overlayMatchesTriggerWidth }) => {
|
|
84421
|
+
const { onServerSideDataRequest } = useInternalTableContext();
|
|
84422
|
+
if (onServerSideDataRequest) {
|
|
84423
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84424
|
+
ServerSideQuickFilters,
|
|
84425
|
+
{
|
|
84426
|
+
overlayMatchesTriggerWidth
|
|
84427
|
+
}
|
|
84374
84428
|
);
|
|
84375
|
-
}
|
|
84376
|
-
|
|
84377
|
-
|
|
84378
|
-
const options = !hasOptions && hasValue ? originValue : originOptions;
|
|
84379
|
-
const value = !hasOptions ? originValue : isValueFromOptions.current ? originValue : getValueFromOptions();
|
|
84380
|
-
return {
|
|
84381
|
-
options,
|
|
84382
|
-
value,
|
|
84383
|
-
getOptionValue: (option) => option
|
|
84384
|
-
};
|
|
84385
|
-
};
|
|
84386
|
-
var ServerSideMultiSelectQuickFilter = ({ columnDefinition, overlayMatchesTriggerWidth, disabled }) => {
|
|
84387
|
-
const {
|
|
84388
|
-
options: originOptions,
|
|
84389
|
-
onClearFilter,
|
|
84390
|
-
fieldName,
|
|
84391
|
-
value: originValue = [],
|
|
84392
|
-
onChange,
|
|
84393
|
-
getOptions,
|
|
84394
|
-
loading
|
|
84395
|
-
} = useServerSideFilter({ columnDefinition });
|
|
84396
|
-
const { options, value, getOptionValue } = useSuperSelectOptionAsValueWorkaround2({
|
|
84397
|
-
originOptions,
|
|
84398
|
-
originValue,
|
|
84399
|
-
loading,
|
|
84400
|
-
getId: columnDefinition.filterProps?.getId
|
|
84401
|
-
});
|
|
84402
|
-
return /* @__PURE__ */ React76__default.default.createElement(StyledSuperSelectWrapper, { $enabled: Boolean(value?.length) }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84403
|
-
coreReact.UNSAFE_SuperSelect,
|
|
84429
|
+
}
|
|
84430
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84431
|
+
ClientSideQuickFilters,
|
|
84404
84432
|
{
|
|
84405
|
-
overlayMatchesTriggerWidth
|
|
84406
|
-
loading,
|
|
84407
|
-
value: value === null ? [] : value,
|
|
84408
|
-
search: false,
|
|
84409
|
-
getOptionLabel: (option) => {
|
|
84410
|
-
return getLabel(columnDefinition.filterProps?.getLabel, option);
|
|
84411
|
-
},
|
|
84412
|
-
getOptionValue,
|
|
84413
|
-
multiple: true,
|
|
84414
|
-
options,
|
|
84415
|
-
disabled,
|
|
84416
|
-
onChange: (values2) => {
|
|
84417
|
-
if (Array.isArray(values2) && !values2.length) {
|
|
84418
|
-
onClearFilter?.(fieldName);
|
|
84419
|
-
getOptions();
|
|
84420
|
-
return;
|
|
84421
|
-
}
|
|
84422
|
-
onChange(values2);
|
|
84423
|
-
},
|
|
84424
|
-
onOpenChange: (open) => {
|
|
84425
|
-
if (open && !originOptions.length) {
|
|
84426
|
-
getOptions();
|
|
84427
|
-
}
|
|
84428
|
-
},
|
|
84429
|
-
...getSuperSelectFilterPreset(columnDefinition)
|
|
84433
|
+
overlayMatchesTriggerWidth
|
|
84430
84434
|
}
|
|
84431
|
-
)
|
|
84435
|
+
);
|
|
84432
84436
|
};
|
|
84433
|
-
var
|
|
84437
|
+
var FiltersPanelButton = () => {
|
|
84434
84438
|
const { onServerSideDataRequest } = useInternalTableContext();
|
|
84435
|
-
if (
|
|
84436
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84439
|
+
if (onServerSideDataRequest) {
|
|
84440
|
+
return /* @__PURE__ */ React76__default.default.createElement(ServerSideFiltersPanelToggleButton, null);
|
|
84437
84441
|
}
|
|
84438
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84442
|
+
return /* @__PURE__ */ React76__default.default.createElement(ClientSideFiltersPanelToggleButton, null);
|
|
84439
84443
|
};
|
|
84440
|
-
var
|
|
84441
|
-
|
|
84442
|
-
|
|
84443
|
-
|
|
84444
|
-
|
|
84445
|
-
|
|
84446
|
-
|
|
84447
|
-
|
|
84448
|
-
|
|
84444
|
+
var RowGroupSelector = ({ localeText }) => {
|
|
84445
|
+
const {
|
|
84446
|
+
columnDefinitions: _columnDefinitions,
|
|
84447
|
+
columnApi,
|
|
84448
|
+
gridApi,
|
|
84449
|
+
tableRef
|
|
84450
|
+
} = useInternalTableContext();
|
|
84451
|
+
const hasNoContent = useTableHasNoContent();
|
|
84452
|
+
const [columnDefinitions, setColumnDefinitions] = React76__default.default.useState(_columnDefinitions);
|
|
84453
|
+
const groupableColumns = React76__default.default.useMemo(
|
|
84454
|
+
() => mapColumnsToOptions(
|
|
84455
|
+
columnDefinitions.filter((column2) => column2.enableRowGroup)
|
|
84456
|
+
),
|
|
84457
|
+
[columnDefinitions]
|
|
84458
|
+
);
|
|
84459
|
+
const groupedColumns = React76__default.default.useMemo(() => {
|
|
84460
|
+
const rowGrouping = columnApi?.getRowGroupColumns() ?? [];
|
|
84461
|
+
return rowGrouping.map((column2) => {
|
|
84462
|
+
const colDef = column2.getColDef();
|
|
84463
|
+
return transformToColumnDefinition(colDef);
|
|
84464
|
+
});
|
|
84465
|
+
}, [columnDefinitions]);
|
|
84466
|
+
const selectedColumns = React76__default.default.useMemo(
|
|
84467
|
+
() => mapColumnsToOptions(groupedColumns),
|
|
84468
|
+
[groupedColumns]
|
|
84469
|
+
);
|
|
84470
|
+
const onGroupedClear = React76__default.default.useCallback(() => {
|
|
84471
|
+
tableRef?.current?.setRowGrouping([]);
|
|
84472
|
+
}, [tableRef]);
|
|
84473
|
+
const onGroupedRowChange = React76__default.default.useCallback(
|
|
84474
|
+
(newValue) => {
|
|
84475
|
+
const fields = newValue.map((val) => {
|
|
84476
|
+
return val.id;
|
|
84477
|
+
});
|
|
84478
|
+
if (!ramda.equals(selectedColumns, newValue)) {
|
|
84479
|
+
tableRef?.current?.setRowGrouping(fields);
|
|
84480
|
+
}
|
|
84481
|
+
},
|
|
84482
|
+
[selectedColumns]
|
|
84483
|
+
);
|
|
84484
|
+
React76__default.default.useEffect(() => {
|
|
84485
|
+
function onDisplayedColumnsChanged(event) {
|
|
84486
|
+
const agColumnDefs = event.api.getColumnDefs();
|
|
84487
|
+
if (agColumnDefs?.length) {
|
|
84488
|
+
const flattenedAgColDefs = flattenColDefs(event.api.getColumnDefs());
|
|
84489
|
+
const dataTableColumnDefinitions = flattenedAgColDefs.map(
|
|
84490
|
+
transformToColumnDefinition
|
|
84491
|
+
);
|
|
84492
|
+
setColumnDefinitions(dataTableColumnDefinitions);
|
|
84493
|
+
}
|
|
84494
|
+
}
|
|
84495
|
+
gridApi?.addEventListener(
|
|
84496
|
+
"displayedColumnsChanged",
|
|
84497
|
+
onDisplayedColumnsChanged
|
|
84498
|
+
);
|
|
84499
|
+
return () => {
|
|
84500
|
+
removeEventListenerFromGrid(
|
|
84501
|
+
"displayedColumnsChanged",
|
|
84502
|
+
onDisplayedColumnsChanged,
|
|
84503
|
+
gridApi
|
|
84504
|
+
);
|
|
84505
|
+
};
|
|
84506
|
+
}, [gridApi]);
|
|
84507
|
+
if (groupableColumns.length === 0) {
|
|
84508
|
+
return null;
|
|
84509
|
+
}
|
|
84449
84510
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84450
|
-
|
|
84511
|
+
EmptyResultsControlTooltip,
|
|
84451
84512
|
{
|
|
84452
|
-
|
|
84453
|
-
|
|
84513
|
+
featureI18nKey: "featureGroupBy",
|
|
84514
|
+
enabled: hasNoContent
|
|
84454
84515
|
},
|
|
84455
84516
|
/* @__PURE__ */ React76__default.default.createElement(
|
|
84456
|
-
coreReact.
|
|
84517
|
+
coreReact.Tooltip,
|
|
84457
84518
|
{
|
|
84458
|
-
|
|
84459
|
-
|
|
84460
|
-
|
|
84461
|
-
|
|
84462
|
-
|
|
84463
|
-
|
|
84464
|
-
|
|
84465
|
-
|
|
84466
|
-
|
|
84467
|
-
|
|
84468
|
-
|
|
84469
|
-
|
|
84470
|
-
|
|
84471
|
-
|
|
84472
|
-
|
|
84473
|
-
|
|
84474
|
-
...getSuperSelectFilterPreset(columnDefinition)
|
|
84475
|
-
}
|
|
84519
|
+
overlay: localeText.placeholder,
|
|
84520
|
+
trigger: "hover",
|
|
84521
|
+
placement: "top",
|
|
84522
|
+
showDelay: 400
|
|
84523
|
+
},
|
|
84524
|
+
/* @__PURE__ */ React76__default.default.createElement(coreReact.Box, { style: { width: "100%" } }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84525
|
+
labsGroupBySelect.GroupBySelect,
|
|
84526
|
+
{
|
|
84527
|
+
isDisabled: hasNoContent,
|
|
84528
|
+
localeText,
|
|
84529
|
+
onBlur: onGroupedRowChange,
|
|
84530
|
+
onClear: onGroupedClear,
|
|
84531
|
+
options: groupableColumns,
|
|
84532
|
+
selected: selectedColumns
|
|
84533
|
+
}
|
|
84534
|
+
))
|
|
84476
84535
|
)
|
|
84477
84536
|
);
|
|
84478
84537
|
};
|
|
84479
|
-
|
|
84480
|
-
|
|
84481
|
-
|
|
84482
|
-
|
|
84483
|
-
|
|
84538
|
+
function mapColumnsToOptions(columnDefinitions) {
|
|
84539
|
+
return columnDefinitions.map((col) => {
|
|
84540
|
+
return {
|
|
84541
|
+
label: col.headerName,
|
|
84542
|
+
id: col.field,
|
|
84543
|
+
key: col.field,
|
|
84544
|
+
group: col.columnGroupName
|
|
84545
|
+
};
|
|
84546
|
+
});
|
|
84547
|
+
}
|
|
84548
|
+
var cx21 = classnames__default.default.bind(quickControlsStyles_default);
|
|
84549
|
+
var ClientSideSearch = ({
|
|
84550
|
+
onSearch,
|
|
84551
|
+
placeholder
|
|
84484
84552
|
}) => {
|
|
84485
|
-
const
|
|
84486
|
-
const
|
|
84487
|
-
|
|
84488
|
-
|
|
84489
|
-
|
|
84490
|
-
|
|
84491
|
-
|
|
84492
|
-
|
|
84493
|
-
|
|
84494
|
-
|
|
84495
|
-
const
|
|
84496
|
-
|
|
84497
|
-
|
|
84498
|
-
|
|
84499
|
-
|
|
84500
|
-
|
|
84501
|
-
|
|
84553
|
+
const [internalValue, setInternalValue] = React76__default.default.useState("");
|
|
84554
|
+
const { tableRef } = useInternalTableContext();
|
|
84555
|
+
const hasNoContent = useTableHasNoContent();
|
|
84556
|
+
const I18n = coreReact.useI18nContext();
|
|
84557
|
+
const debouncedSetSearchValue = React76__default.default.useCallback(
|
|
84558
|
+
debounce5__default.default((value) => {
|
|
84559
|
+
tableRef?.current?.setSearchValue(value);
|
|
84560
|
+
}, 250),
|
|
84561
|
+
[tableRef?.current?.setSearchValue]
|
|
84562
|
+
);
|
|
84563
|
+
const onChange = React76__default.default.useCallback(
|
|
84564
|
+
(value, event) => {
|
|
84565
|
+
setInternalValue(value);
|
|
84566
|
+
if (onSearch) {
|
|
84567
|
+
onSearch(event);
|
|
84568
|
+
} else {
|
|
84569
|
+
debouncedSetSearchValue(value);
|
|
84570
|
+
}
|
|
84571
|
+
},
|
|
84572
|
+
[debouncedSetSearchValue, onSearch]
|
|
84573
|
+
);
|
|
84574
|
+
return /* @__PURE__ */ React76__default.default.createElement(EmptyResultsControlTooltip, { hasSearch: true, enabled: hasNoContent }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84575
|
+
coreReact.Typeahead,
|
|
84576
|
+
{
|
|
84577
|
+
disabled: hasNoContent,
|
|
84578
|
+
"data-qa": "data-table-search",
|
|
84579
|
+
value: internalValue,
|
|
84580
|
+
className: cx21("search", {
|
|
84581
|
+
"search--empty": !internalValue.length
|
|
84582
|
+
}),
|
|
84583
|
+
onChange,
|
|
84584
|
+
placeholder: placeholder || I18n.t("dataTable.search")
|
|
84585
|
+
}
|
|
84586
|
+
));
|
|
84502
84587
|
};
|
|
84503
|
-
var
|
|
84504
|
-
const {
|
|
84505
|
-
|
|
84506
|
-
|
|
84507
|
-
|
|
84508
|
-
|
|
84509
|
-
|
|
84510
|
-
|
|
84511
|
-
|
|
84512
|
-
|
|
84513
|
-
const
|
|
84514
|
-
|
|
84515
|
-
|
|
84516
|
-
|
|
84517
|
-
|
|
84518
|
-
|
|
84519
|
-
|
|
84520
|
-
|
|
84521
|
-
|
|
84522
|
-
|
|
84523
|
-
|
|
84588
|
+
var Search = (props) => {
|
|
84589
|
+
const { onServerSideDataRequest } = useInternalTableContext();
|
|
84590
|
+
if (onServerSideDataRequest) {
|
|
84591
|
+
return /* @__PURE__ */ React76__default.default.createElement(ServerSideSearch, { ...props });
|
|
84592
|
+
}
|
|
84593
|
+
return /* @__PURE__ */ React76__default.default.createElement(ClientSideSearch, { ...props });
|
|
84594
|
+
};
|
|
84595
|
+
|
|
84596
|
+
// src/QuickControls/QuickControls.tsx
|
|
84597
|
+
var QuickControls = (props) => {
|
|
84598
|
+
const I18n = coreReact.useI18nContext();
|
|
84599
|
+
if (props.children) {
|
|
84600
|
+
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84601
|
+
coreReact.Box,
|
|
84602
|
+
{
|
|
84603
|
+
"data-qa": "data-table-quick-controls",
|
|
84604
|
+
padding: "xs none",
|
|
84605
|
+
style: props.style
|
|
84606
|
+
},
|
|
84607
|
+
props.children
|
|
84608
|
+
);
|
|
84609
|
+
}
|
|
84610
|
+
return /* @__PURE__ */ React76__default.default.createElement(coreReact.Box, { padding: "xs none", style: props.style }, /* @__PURE__ */ React76__default.default.createElement(coreReact.Box, { padding: "xs none", display: "flex-row", justifyContent: "space-between" }, /* @__PURE__ */ React76__default.default.createElement(coreReact.FlexList, { size: "xs", alignItems: "center", marginRight: "sm" }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84611
|
+
Search,
|
|
84612
|
+
{
|
|
84613
|
+
onSearch: props.onSearch,
|
|
84614
|
+
placeholder: props.placeholder,
|
|
84615
|
+
disabled: props.disabledSearch
|
|
84524
84616
|
}
|
|
84525
|
-
|
|
84526
|
-
|
|
84527
|
-
|
|
84528
|
-
|
|
84529
|
-
|
|
84530
|
-
|
|
84531
|
-
|
|
84617
|
+
), /* @__PURE__ */ React76__default.default.createElement(FiltersPanelButton, null)), /* @__PURE__ */ React76__default.default.createElement(coreReact.FlexList, { size: "xs", alignItems: "center" }, /* @__PURE__ */ React76__default.default.createElement(
|
|
84618
|
+
RowGroupSelector,
|
|
84619
|
+
{
|
|
84620
|
+
localeText: {
|
|
84621
|
+
reset: I18n.t("dataTable.tableSettings.reset"),
|
|
84622
|
+
placeholder: I18n.t("dataTable.tableSettings.selectColumnGroup"),
|
|
84623
|
+
selectedItemsPrefix: I18n.t("dataTable.tableSettings.groupBy")
|
|
84624
|
+
}
|
|
84532
84625
|
}
|
|
84533
|
-
|
|
84534
|
-
|
|
84535
|
-
|
|
84536
|
-
|
|
84537
|
-
getOptions();
|
|
84626
|
+
), /* @__PURE__ */ React76__default.default.createElement(ConfigPanelButton, null))), /* @__PURE__ */ React76__default.default.createElement(
|
|
84627
|
+
QuickFilters,
|
|
84628
|
+
{
|
|
84629
|
+
overlayMatchesTriggerWidth: props.filterOverlayMatchesTriggerWidth
|
|
84538
84630
|
}
|
|
84539
|
-
|
|
84631
|
+
));
|
|
84632
|
+
};
|
|
84633
|
+
|
|
84634
|
+
// src/utils/addSubcomponents.ts
|
|
84635
|
+
var addSubcomponents = (subs, parent) => {
|
|
84636
|
+
const assigned = parent;
|
|
84637
|
+
Object.keys(subs).forEach((key) => {
|
|
84638
|
+
assigned[key] = subs[key];
|
|
84639
|
+
});
|
|
84640
|
+
return assigned;
|
|
84641
|
+
};
|
|
84642
|
+
|
|
84643
|
+
// src/ClientSideDataTable.tsx
|
|
84644
|
+
var ClientSideDataTable = ({
|
|
84645
|
+
analytics,
|
|
84646
|
+
children,
|
|
84647
|
+
columnDefinitions: _columnDefinitions,
|
|
84648
|
+
customBulkEditorFields,
|
|
84649
|
+
enableDynamicRowHeight,
|
|
84650
|
+
enableGroupEditAndValidation,
|
|
84651
|
+
filterGroups,
|
|
84652
|
+
getRowId,
|
|
84653
|
+
initialTableConfig: _initialTableConfig,
|
|
84654
|
+
onBulkEditUpdate,
|
|
84655
|
+
onTableConfigChange,
|
|
84656
|
+
translations: translations2 = {},
|
|
84657
|
+
enableCellTextSelection,
|
|
84658
|
+
localStoragePersistenceKey
|
|
84659
|
+
}) => {
|
|
84540
84660
|
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84541
|
-
|
|
84661
|
+
DataTable,
|
|
84542
84662
|
{
|
|
84543
|
-
|
|
84544
|
-
|
|
84663
|
+
analytics,
|
|
84664
|
+
columnDefinitions: _columnDefinitions,
|
|
84665
|
+
enableGroupEditAndValidation,
|
|
84666
|
+
enableDynamicRowHeight,
|
|
84667
|
+
filterGroups,
|
|
84668
|
+
getRowId,
|
|
84669
|
+
initialTableConfig: _initialTableConfig,
|
|
84670
|
+
onTableConfigChange,
|
|
84671
|
+
onBulkEditUpdate,
|
|
84672
|
+
showExpandCollapseAllToggle: true,
|
|
84673
|
+
translations: translations2,
|
|
84674
|
+
localStoragePersistenceKey,
|
|
84675
|
+
customBulkEditorFields,
|
|
84676
|
+
enableCellTextSelection
|
|
84545
84677
|
},
|
|
84546
|
-
|
|
84547
|
-
coreReact.UNSAFE_SuperSelect,
|
|
84548
|
-
{
|
|
84549
|
-
overlayMatchesTriggerWidth,
|
|
84550
|
-
loading,
|
|
84551
|
-
value: value ?? [],
|
|
84552
|
-
search: false,
|
|
84553
|
-
disabled,
|
|
84554
|
-
getOptionLabel: (option) => getLabel(columnDefinition.filterProps?.getLabel, option),
|
|
84555
|
-
getOptionValue,
|
|
84556
|
-
multiple: false,
|
|
84557
|
-
options,
|
|
84558
|
-
onChange: handleOnChange,
|
|
84559
|
-
onOpenChange: handleOnOpenChange,
|
|
84560
|
-
...getSuperSelectFilterPreset(columnDefinition)
|
|
84561
|
-
}
|
|
84562
|
-
)
|
|
84678
|
+
children
|
|
84563
84679
|
);
|
|
84564
84680
|
};
|
|
84565
|
-
var
|
|
84566
|
-
const
|
|
84567
|
-
|
|
84568
|
-
|
|
84569
|
-
}
|
|
84570
|
-
return /* @__PURE__ */ React76__default.default.createElement(
|
|
84681
|
+
var Table2 = (props) => {
|
|
84682
|
+
const internalTableContext = useInternalTableContext();
|
|
84683
|
+
React76__default.default.useEffect(() => {
|
|
84684
|
+
internalTableContext.setTotalRowCount(props.rows?.length ?? 0);
|
|
84685
|
+
}, [props.rows]);
|
|
84686
|
+
return /* @__PURE__ */ React76__default.default.createElement(Table, { ...props, modules: [ClientSideRowModelModule] });
|
|
84571
84687
|
};
|
|
84572
|
-
|
|
84688
|
+
BulkActions.displayName = "ClientSideDataTable.BulkActions";
|
|
84689
|
+
ConfigPanelButton.displayName = "ClientSideDataTable.ConfigPanelButton";
|
|
84690
|
+
ContextPanel.displayName = "ClientSideDataTable.ContextPanel";
|
|
84691
|
+
QuickControls.displayName = "ClientSideDataTable.QuickControls";
|
|
84692
|
+
QuickFilters.displayName = "ClientSideDataTable.QuickFilters";
|
|
84693
|
+
RowGroupSelector.displayName = "ClientSideDataTable.RowGroupSelector";
|
|
84694
|
+
Search.displayName = "ClientSideDataTable.Search";
|
|
84695
|
+
Table2.displayName = "ClientSideDataTable.Table";
|
|
84696
|
+
FiltersPanel.displayName = "ClientSideDataTable.FiltersPanel";
|
|
84697
|
+
var ClientSideDataTable_default = addSubcomponents(
|
|
84698
|
+
{
|
|
84699
|
+
BulkActions,
|
|
84700
|
+
BulkEditActionButton,
|
|
84701
|
+
ConfigPanelButton,
|
|
84702
|
+
ContextPanel,
|
|
84703
|
+
QuickControls,
|
|
84704
|
+
QuickFilters,
|
|
84705
|
+
RowGroupSelector,
|
|
84706
|
+
Search,
|
|
84707
|
+
Table: Table2,
|
|
84708
|
+
FiltersPanel,
|
|
84709
|
+
FiltersPanelButton
|
|
84710
|
+
},
|
|
84711
|
+
ClientSideDataTable
|
|
84712
|
+
);
|
|
84573
84713
|
|
|
84574
84714
|
// ../../node_modules/@ag-grid-enterprise/server-side-row-model/dist/esm/es6/serverSideRowModel/stores/fullStore.mjs
|
|
84575
84715
|
var __decorate212 = function(decorators, target, key, desc) {
|
|
@@ -89151,6 +89291,7 @@ exports.SingleSelectQuickFilterRenderer = SingleSelectQuickFilterRenderer_defaul
|
|
|
89151
89291
|
exports.TextCellEditor = TextCellEditor2;
|
|
89152
89292
|
exports.TextCellRenderer = TextCellRenderer;
|
|
89153
89293
|
exports.UNSAFE_useTableContext = UNSAFE_useTableContext;
|
|
89294
|
+
exports.assignAlphabeticalFilterIndices = assignAlphabeticalFilterIndices;
|
|
89154
89295
|
exports.rowSize = rowSize;
|
|
89155
89296
|
exports.useAnalyticsContext = useAnalyticsContext;
|
|
89156
89297
|
exports.useRowSelectionState = useRowSelectionState;
|