@osdk/react-components 0.2.0-beta.12 → 0.2.0-beta.13
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 +14 -0
- package/build/browser/base-components/draggable-list/DraggableList.module.css +2 -2
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
- package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.js +3 -1
- package/build/browser/filter-list/base/FilterList.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.js +143 -3
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.module.css +6 -0
- package/build/browser/filter-list/base/FilterListContent.module.css.js +2 -1
- package/build/browser/filter-list/base/FilterListItem.js +11 -18
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +32 -0
- package/build/browser/filter-list/base/FilterListItem.module.css.js +3 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js +63 -0
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
- package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/browser/object-table/EditableCell.js +1 -2
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/TableRow.js +1 -2
- package/build/browser/object-table/TableRow.js.map +1 -1
- package/build/browser/styles.css +40 -2
- package/build/cjs/public/experimental.cjs +905 -677
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +34 -2
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +7 -0
- package/build/esm/base-components/draggable-list/DraggableList.module.css +2 -2
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
- package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.js +3 -1
- package/build/esm/filter-list/base/FilterList.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.js +143 -3
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.module.css +6 -0
- package/build/esm/filter-list/base/FilterListItem.js +11 -18
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +32 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js +63 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
- package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/esm/object-table/EditableCell.js +1 -2
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/TableRow.js +1 -2
- package/build/esm/object-table/TableRow.js.map +1 -1
- package/build/types/filter-list/FilterListApi.d.ts +7 -0
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
- package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListContent.d.ts +2 -1
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts +4 -1
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts +16 -0
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
- package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
- package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
- package/build/types/object-table/EditableCell.d.ts +1 -3
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/TableRow.d.ts +1 -2
- package/build/types/object-table/TableRow.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var button = require('@base-ui/react/button');
|
|
4
4
|
var classnames7 = require('classnames');
|
|
5
|
-
var
|
|
5
|
+
var React22 = require('react');
|
|
6
|
+
var core = require('@dnd-kit/core');
|
|
7
|
+
var sortable = require('@dnd-kit/sortable');
|
|
6
8
|
var checkbox = require('@base-ui/react/checkbox');
|
|
7
9
|
var icons = require('@blueprintjs/icons');
|
|
8
10
|
var experimental = require('@osdk/react/experimental');
|
|
@@ -11,13 +13,11 @@ var lodashEs = require('lodash-es');
|
|
|
11
13
|
var combobox = require('@base-ui/react/combobox');
|
|
12
14
|
var select = require('@base-ui/react/select');
|
|
13
15
|
var _switch = require('@base-ui/react/switch');
|
|
16
|
+
var utilities = require('@dnd-kit/utilities');
|
|
14
17
|
var reactTable = require('@tanstack/react-table');
|
|
15
18
|
var react = require('@osdk/react');
|
|
16
19
|
var collapsible = require('@base-ui/react/collapsible');
|
|
17
|
-
var sortable = require('@dnd-kit/sortable');
|
|
18
20
|
var dialog = require('@base-ui/react/dialog');
|
|
19
|
-
var core = require('@dnd-kit/core');
|
|
20
|
-
var utilities = require('@dnd-kit/utilities');
|
|
21
21
|
var menu = require('@base-ui/react/menu');
|
|
22
22
|
var reactVirtual = require('@tanstack/react-virtual');
|
|
23
23
|
var reactDom = require('react-dom');
|
|
@@ -25,7 +25,7 @@ var reactDom = require('react-dom');
|
|
|
25
25
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
26
|
|
|
27
27
|
var classnames7__default = /*#__PURE__*/_interopDefault(classnames7);
|
|
28
|
-
var
|
|
28
|
+
var React22__default = /*#__PURE__*/_interopDefault(React22);
|
|
29
29
|
|
|
30
30
|
// src/filter-list/base/FilterList.tsx
|
|
31
31
|
|
|
@@ -414,8 +414,8 @@ function useFilterListState(props) {
|
|
|
414
414
|
onFilterClauseChanged
|
|
415
415
|
} = props;
|
|
416
416
|
const objectType = objectSet.$objectSetInternals.def;
|
|
417
|
-
const [filterStates, setFilterStates] =
|
|
418
|
-
const setFilterState =
|
|
417
|
+
const [filterStates, setFilterStates] = React22.useState(() => buildInitialStates(filterDefinitions));
|
|
418
|
+
const setFilterState = React22.useCallback((filterKey, state) => {
|
|
419
419
|
let newWhereClause;
|
|
420
420
|
setFilterStates((prev) => {
|
|
421
421
|
const next = new Map(prev);
|
|
@@ -431,8 +431,8 @@ function useFilterListState(props) {
|
|
|
431
431
|
onFilterStateChanged?.(definition, state);
|
|
432
432
|
}
|
|
433
433
|
}, [filterDefinitions, filterOperator, objectType, onFilterClauseChanged, onFilterStateChanged]);
|
|
434
|
-
const whereClause =
|
|
435
|
-
const activeFilterCount =
|
|
434
|
+
const whereClause = React22.useMemo(() => buildWhereClause(filterDefinitions, filterStates, filterOperator, objectType), [filterDefinitions, filterStates, filterOperator, objectType]);
|
|
435
|
+
const activeFilterCount = React22.useMemo(() => {
|
|
436
436
|
let count = 0;
|
|
437
437
|
for (const state of filterStates.values()) {
|
|
438
438
|
if (filterHasActiveState(state)) {
|
|
@@ -441,13 +441,13 @@ function useFilterListState(props) {
|
|
|
441
441
|
}
|
|
442
442
|
return count;
|
|
443
443
|
}, [filterStates]);
|
|
444
|
-
const reset =
|
|
444
|
+
const reset = React22.useCallback(() => {
|
|
445
445
|
const initialStates = buildInitialStates(filterDefinitions);
|
|
446
446
|
setFilterStates(initialStates);
|
|
447
447
|
const newWhereClause = buildWhereClause(filterDefinitions, initialStates, filterOperator, objectType);
|
|
448
448
|
onFilterClauseChanged?.(newWhereClause);
|
|
449
449
|
}, [filterDefinitions, filterOperator, objectType, onFilterClauseChanged]);
|
|
450
|
-
return
|
|
450
|
+
return React22.useMemo(() => ({
|
|
451
451
|
filterStates,
|
|
452
452
|
setFilterState,
|
|
453
453
|
whereClause,
|
|
@@ -459,6 +459,26 @@ function useFilterListState(props) {
|
|
|
459
459
|
// src/filter-list/base/FilterList.module.css
|
|
460
460
|
var FilterList_default = {};
|
|
461
461
|
|
|
462
|
+
// src/filter-list/utils/getFilterLabel.ts
|
|
463
|
+
function getFilterLabel(definition) {
|
|
464
|
+
if ("label" in definition && definition.label) {
|
|
465
|
+
return definition.label;
|
|
466
|
+
}
|
|
467
|
+
switch (definition.type) {
|
|
468
|
+
case "PROPERTY":
|
|
469
|
+
return definition.key;
|
|
470
|
+
case "HAS_LINK":
|
|
471
|
+
case "LINKED_PROPERTY":
|
|
472
|
+
return definition.linkName;
|
|
473
|
+
case "KEYWORD_SEARCH":
|
|
474
|
+
return "Search";
|
|
475
|
+
case "CUSTOM":
|
|
476
|
+
return definition.key;
|
|
477
|
+
default:
|
|
478
|
+
return assertUnreachable(definition);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
462
482
|
// src/filter-list/base/FilterListContent.module.css
|
|
463
483
|
var FilterListContent_default = {};
|
|
464
484
|
|
|
@@ -466,7 +486,7 @@ var FilterListContent_default = {};
|
|
|
466
486
|
var ErrorBoundary_default = {};
|
|
467
487
|
|
|
468
488
|
// src/shared/ErrorBoundary.tsx
|
|
469
|
-
var ErrorBoundary = class extends
|
|
489
|
+
var ErrorBoundary = class extends React22.Component {
|
|
470
490
|
state = {
|
|
471
491
|
hasError: false,
|
|
472
492
|
error: null
|
|
@@ -493,11 +513,11 @@ var ErrorBoundary = class extends React21.Component {
|
|
|
493
513
|
if (this.props.fallback) {
|
|
494
514
|
return this.props.fallback;
|
|
495
515
|
}
|
|
496
|
-
return /* @__PURE__ */
|
|
516
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
497
517
|
className: ErrorBoundary_default.errorContainer
|
|
498
|
-
}, /* @__PURE__ */
|
|
518
|
+
}, /* @__PURE__ */ React22__default.default.createElement("p", {
|
|
499
519
|
className: ErrorBoundary_default.errorMessage
|
|
500
|
-
}, this.props.errorMessage ?? "Something went wrong"), /* @__PURE__ */
|
|
520
|
+
}, this.props.errorMessage ?? "Something went wrong"), /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
501
521
|
className: ErrorBoundary_default.retryButton,
|
|
502
522
|
onClick: this.handleRetry,
|
|
503
523
|
"aria-label": "Retry"
|
|
@@ -506,6 +526,39 @@ var ErrorBoundary = class extends React21.Component {
|
|
|
506
526
|
return this.props.children;
|
|
507
527
|
}
|
|
508
528
|
};
|
|
529
|
+
function DragHandleIcon() {
|
|
530
|
+
return /* @__PURE__ */ React22__default.default.createElement("svg", {
|
|
531
|
+
width: "16",
|
|
532
|
+
height: "16",
|
|
533
|
+
viewBox: "0 0 16 16",
|
|
534
|
+
fill: "currentColor",
|
|
535
|
+
"aria-hidden": "true"
|
|
536
|
+
}, /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
537
|
+
cx: "5.5",
|
|
538
|
+
cy: "3.5",
|
|
539
|
+
r: "1.5"
|
|
540
|
+
}), /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
541
|
+
cx: "10.5",
|
|
542
|
+
cy: "3.5",
|
|
543
|
+
r: "1.5"
|
|
544
|
+
}), /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
545
|
+
cx: "5.5",
|
|
546
|
+
cy: "8",
|
|
547
|
+
r: "1.5"
|
|
548
|
+
}), /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
549
|
+
cx: "10.5",
|
|
550
|
+
cy: "8",
|
|
551
|
+
r: "1.5"
|
|
552
|
+
}), /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
553
|
+
cx: "5.5",
|
|
554
|
+
cy: "12.5",
|
|
555
|
+
r: "1.5"
|
|
556
|
+
}), /* @__PURE__ */ React22__default.default.createElement("circle", {
|
|
557
|
+
cx: "10.5",
|
|
558
|
+
cy: "12.5",
|
|
559
|
+
r: "1.5"
|
|
560
|
+
}));
|
|
561
|
+
}
|
|
509
562
|
|
|
510
563
|
// src/filter-list/utils/coerceFilterValue.ts
|
|
511
564
|
function coerceToString(value) {
|
|
@@ -536,19 +589,19 @@ function Checkbox({
|
|
|
536
589
|
indicatorProps,
|
|
537
590
|
...rest
|
|
538
591
|
}) {
|
|
539
|
-
return /* @__PURE__ */
|
|
592
|
+
return /* @__PURE__ */ React22__default.default.createElement(checkbox.Checkbox.Root, _extends({
|
|
540
593
|
className: classnames7__default.default(Checkbox_default.osdkCheckboxRoot, className),
|
|
541
594
|
indeterminate
|
|
542
|
-
}, rest), /* @__PURE__ */
|
|
595
|
+
}, rest), /* @__PURE__ */ React22__default.default.createElement(checkbox.Checkbox.Indicator, _extends({}, indicatorProps, {
|
|
543
596
|
className: classnames7__default.default(Checkbox_default.osdkCheckboxIndicator, indicatorProps?.className)
|
|
544
|
-
}), indeterminate ? /* @__PURE__ */
|
|
597
|
+
}), indeterminate ? /* @__PURE__ */ React22__default.default.createElement(icons.Minus, {
|
|
545
598
|
color: "currentColor"
|
|
546
|
-
}) : /* @__PURE__ */
|
|
599
|
+
}) : /* @__PURE__ */ React22__default.default.createElement(icons.Tick, {
|
|
547
600
|
color: "currentColor"
|
|
548
601
|
})));
|
|
549
602
|
}
|
|
550
603
|
function usePropertyAggregation(objectType, propertyKey, options) {
|
|
551
|
-
const aggregateOptions =
|
|
604
|
+
const aggregateOptions = React22.useMemo(() => ({
|
|
552
605
|
$select: {
|
|
553
606
|
$count: "unordered"
|
|
554
607
|
},
|
|
@@ -568,7 +621,7 @@ function usePropertyAggregation(objectType, propertyKey, options) {
|
|
|
568
621
|
aggregate: aggregateOptions,
|
|
569
622
|
where: options?.where
|
|
570
623
|
});
|
|
571
|
-
const result =
|
|
624
|
+
const result = React22.useMemo(() => {
|
|
572
625
|
if (!countData) {
|
|
573
626
|
return {
|
|
574
627
|
data: [],
|
|
@@ -638,42 +691,42 @@ function CheckboxListInputInner({
|
|
|
638
691
|
} = usePropertyAggregation(objectType, propertyKey, {
|
|
639
692
|
where: whereClause
|
|
640
693
|
});
|
|
641
|
-
const values =
|
|
642
|
-
const selectedSet =
|
|
643
|
-
const toggleValue =
|
|
694
|
+
const values = React22.useMemo(() => data.map((item) => item.value), [data]);
|
|
695
|
+
const selectedSet = React22.useMemo(() => new Set(selectedValues), [selectedValues]);
|
|
696
|
+
const toggleValue = React22.useCallback((value) => {
|
|
644
697
|
if (selectedSet.has(value)) {
|
|
645
698
|
onChange(selectedValues.filter((v) => v !== value));
|
|
646
699
|
} else {
|
|
647
700
|
onChange([...selectedValues, value]);
|
|
648
701
|
}
|
|
649
702
|
}, [selectedValues, selectedSet, onChange]);
|
|
650
|
-
return /* @__PURE__ */
|
|
703
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
651
704
|
className: classnames7__default.default(CheckboxListInput_default.checkboxList, className),
|
|
652
705
|
style,
|
|
653
706
|
"data-loading": isLoading
|
|
654
|
-
}, error && /* @__PURE__ */
|
|
707
|
+
}, error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
655
708
|
className: shared_default.errorMessage
|
|
656
|
-
}, "Error loading values: ", error.message), !error && values.length === 0 && /* @__PURE__ */
|
|
709
|
+
}, "Error loading values: ", error.message), !error && values.length === 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
657
710
|
className: shared_default.emptyMessage
|
|
658
|
-
}, isLoading ? "Loading values..." : "No values available"), (values.length > 0 || isLoading) && /* @__PURE__ */
|
|
711
|
+
}, isLoading ? "Loading values..." : "No values available"), (values.length > 0 || isLoading) && /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, isLoading && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
659
712
|
className: shared_default.loadingMessage
|
|
660
713
|
}, "Updating..."), values.map((value) => {
|
|
661
714
|
const isSelected = selectedSet.has(value);
|
|
662
|
-
return /* @__PURE__ */
|
|
715
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
663
716
|
key: value,
|
|
664
717
|
className: CheckboxListInput_default.checkboxRow,
|
|
665
718
|
"data-selected": isSelected
|
|
666
|
-
}, /* @__PURE__ */
|
|
719
|
+
}, /* @__PURE__ */ React22__default.default.createElement("label", {
|
|
667
720
|
className: CheckboxListInput_default.checkboxLabel
|
|
668
|
-
}, /* @__PURE__ */
|
|
721
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
669
722
|
checked: isSelected,
|
|
670
723
|
onCheckedChange: () => toggleValue(value)
|
|
671
|
-
}), /* @__PURE__ */
|
|
724
|
+
}), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
672
725
|
className: CheckboxListInput_default.valueText
|
|
673
726
|
}, value)));
|
|
674
727
|
})));
|
|
675
728
|
}
|
|
676
|
-
var CheckboxListInput = /* @__PURE__ */
|
|
729
|
+
var CheckboxListInput = /* @__PURE__ */ React22.memo(CheckboxListInputInner);
|
|
677
730
|
|
|
678
731
|
// src/filter-list/base/inputs/ContainsTextInput.module.css
|
|
679
732
|
var ContainsTextInput_default = {};
|
|
@@ -689,57 +742,57 @@ function ContainsTextInputInner({
|
|
|
689
742
|
renderSearchIcon,
|
|
690
743
|
renderClearIcon
|
|
691
744
|
}) {
|
|
692
|
-
const [localValue, setLocalValue] =
|
|
693
|
-
const onChangeRef =
|
|
745
|
+
const [localValue, setLocalValue] = React22.useState(value ?? "");
|
|
746
|
+
const onChangeRef = React22.useRef(onChange);
|
|
694
747
|
onChangeRef.current = onChange;
|
|
695
|
-
const debouncedOnChange =
|
|
748
|
+
const debouncedOnChange = React22.useMemo(() => lodashEs.debounce((newValue) => {
|
|
696
749
|
onChangeRef.current(newValue.length > 0 ? newValue : void 0);
|
|
697
750
|
}, debounceMs), [debounceMs]);
|
|
698
|
-
|
|
751
|
+
React22.useEffect(() => {
|
|
699
752
|
return () => {
|
|
700
753
|
debouncedOnChange.cancel();
|
|
701
754
|
};
|
|
702
755
|
}, [debouncedOnChange]);
|
|
703
|
-
|
|
756
|
+
React22.useEffect(() => {
|
|
704
757
|
setLocalValue(value ?? "");
|
|
705
758
|
debouncedOnChange.cancel();
|
|
706
759
|
}, [value, debouncedOnChange]);
|
|
707
|
-
const handleInputChange =
|
|
760
|
+
const handleInputChange = React22.useCallback((e) => {
|
|
708
761
|
setLocalValue(e.target.value);
|
|
709
762
|
debouncedOnChange(e.target.value);
|
|
710
763
|
}, [debouncedOnChange]);
|
|
711
|
-
const handleClear =
|
|
764
|
+
const handleClear = React22.useCallback(() => {
|
|
712
765
|
setLocalValue("");
|
|
713
766
|
debouncedOnChange.cancel();
|
|
714
767
|
onChangeRef.current(void 0);
|
|
715
768
|
}, [debouncedOnChange]);
|
|
716
|
-
return /* @__PURE__ */
|
|
769
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
717
770
|
className: classnames7__default.default(ContainsTextInput_default.textInput, className),
|
|
718
771
|
style,
|
|
719
772
|
"data-has-value": !!localValue
|
|
720
|
-
}, /* @__PURE__ */
|
|
773
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
721
774
|
className: ContainsTextInput_default.inputGroup
|
|
722
|
-
}, renderSearchIcon ? renderSearchIcon() : /* @__PURE__ */
|
|
775
|
+
}, renderSearchIcon ? renderSearchIcon() : /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
723
776
|
className: ContainsTextInput_default.searchIcon
|
|
724
|
-
}, /* @__PURE__ */
|
|
777
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Search, {
|
|
725
778
|
color: "currentColor"
|
|
726
|
-
})), /* @__PURE__ */
|
|
779
|
+
})), /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
727
780
|
type: "text",
|
|
728
781
|
className: ContainsTextInput_default.input,
|
|
729
782
|
value: localValue,
|
|
730
783
|
onChange: handleInputChange,
|
|
731
784
|
placeholder,
|
|
732
785
|
"aria-label": placeholder
|
|
733
|
-
}), localValue && /* @__PURE__ */
|
|
786
|
+
}), localValue && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
734
787
|
type: "button",
|
|
735
788
|
className: ContainsTextInput_default.clearButton,
|
|
736
789
|
onClick: handleClear,
|
|
737
790
|
"aria-label": "Clear search"
|
|
738
|
-
}, renderClearIcon ? renderClearIcon() : /* @__PURE__ */
|
|
791
|
+
}, renderClearIcon ? renderClearIcon() : /* @__PURE__ */ React22__default.default.createElement(icons.Cross, {
|
|
739
792
|
color: "currentColor"
|
|
740
793
|
}))));
|
|
741
794
|
}
|
|
742
|
-
var ContainsTextInput = /* @__PURE__ */
|
|
795
|
+
var ContainsTextInput = /* @__PURE__ */ React22.memo(ContainsTextInputInner);
|
|
743
796
|
|
|
744
797
|
// src/filter-list/base/inputs/dateUtils.ts
|
|
745
798
|
function formatDateForInput(date) {
|
|
@@ -849,46 +902,46 @@ function RangeInputInner({
|
|
|
849
902
|
style,
|
|
850
903
|
config
|
|
851
904
|
}) {
|
|
852
|
-
const minInputId =
|
|
853
|
-
const maxInputId =
|
|
854
|
-
const [localMin, setLocalMin] =
|
|
855
|
-
const [localMax, setLocalMax] =
|
|
856
|
-
const onChangeRef =
|
|
905
|
+
const minInputId = React22.useId();
|
|
906
|
+
const maxInputId = React22.useId();
|
|
907
|
+
const [localMin, setLocalMin] = React22.useState(config.formatValue(minValue));
|
|
908
|
+
const [localMax, setLocalMax] = React22.useState(config.formatValue(maxValue));
|
|
909
|
+
const onChangeRef = React22.useRef(onChange);
|
|
857
910
|
onChangeRef.current = onChange;
|
|
858
|
-
const minValueRef =
|
|
911
|
+
const minValueRef = React22.useRef(minValue);
|
|
859
912
|
minValueRef.current = minValue;
|
|
860
|
-
const maxValueRef =
|
|
913
|
+
const maxValueRef = React22.useRef(maxValue);
|
|
861
914
|
maxValueRef.current = maxValue;
|
|
862
|
-
const debouncedMinChange =
|
|
915
|
+
const debouncedMinChange = React22.useMemo(() => lodashEs.debounce((newValue) => {
|
|
863
916
|
const parsed = config.parseValue(newValue);
|
|
864
917
|
onChangeRef.current(parsed, maxValueRef.current);
|
|
865
918
|
}, DEBOUNCE_MS), [config]);
|
|
866
|
-
const debouncedMaxChange =
|
|
919
|
+
const debouncedMaxChange = React22.useMemo(() => lodashEs.debounce((newValue) => {
|
|
867
920
|
const parsed = config.parseValue(newValue);
|
|
868
921
|
onChangeRef.current(minValueRef.current, parsed);
|
|
869
922
|
}, DEBOUNCE_MS), [config]);
|
|
870
|
-
|
|
923
|
+
React22.useEffect(() => {
|
|
871
924
|
setLocalMin(config.formatValue(minValue));
|
|
872
925
|
debouncedMinChange.cancel();
|
|
873
926
|
}, [minValue, config, debouncedMinChange]);
|
|
874
|
-
|
|
927
|
+
React22.useEffect(() => {
|
|
875
928
|
setLocalMax(config.formatValue(maxValue));
|
|
876
929
|
debouncedMaxChange.cancel();
|
|
877
930
|
}, [maxValue, config, debouncedMaxChange]);
|
|
878
|
-
|
|
931
|
+
React22.useEffect(() => {
|
|
879
932
|
return () => {
|
|
880
933
|
debouncedMinChange.cancel();
|
|
881
934
|
debouncedMaxChange.cancel();
|
|
882
935
|
};
|
|
883
936
|
}, [debouncedMinChange, debouncedMaxChange]);
|
|
884
|
-
const aggregateOptions =
|
|
937
|
+
const aggregateOptions = React22.useMemo(() => createGroupByAggregateOptions(propertyKey), [propertyKey]);
|
|
885
938
|
const {
|
|
886
939
|
data: aggregateData,
|
|
887
940
|
isLoading
|
|
888
941
|
} = experimental.useOsdkAggregation(objectType, {
|
|
889
942
|
aggregate: aggregateOptions
|
|
890
943
|
});
|
|
891
|
-
const valueCountPairs =
|
|
944
|
+
const valueCountPairs = React22.useMemo(() => {
|
|
892
945
|
if (!aggregateData) return [];
|
|
893
946
|
const dataArray = aggregateData;
|
|
894
947
|
const pairs = [];
|
|
@@ -906,7 +959,7 @@ function RangeInputInner({
|
|
|
906
959
|
}
|
|
907
960
|
return pairs;
|
|
908
961
|
}, [aggregateData, propertyKey, config]);
|
|
909
|
-
const computedRange =
|
|
962
|
+
const computedRange = React22.useMemo(() => {
|
|
910
963
|
if (valueCountPairs.length === 0) return {
|
|
911
964
|
min: void 0,
|
|
912
965
|
max: void 0
|
|
@@ -918,11 +971,11 @@ function RangeInputInner({
|
|
|
918
971
|
max: config.fromNumber(max)
|
|
919
972
|
};
|
|
920
973
|
}, [valueCountPairs, config]);
|
|
921
|
-
const dataRange =
|
|
974
|
+
const dataRange = React22.useMemo(() => ({
|
|
922
975
|
dataMin: computedRange.min,
|
|
923
976
|
dataMax: computedRange.max
|
|
924
977
|
}), [computedRange.min, computedRange.max]);
|
|
925
|
-
const buckets =
|
|
978
|
+
const buckets = React22.useMemo(() => {
|
|
926
979
|
if (!showHistogram || valueCountPairs.length === 0 || computedRange.min === void 0 || computedRange.max === void 0) {
|
|
927
980
|
return [];
|
|
928
981
|
}
|
|
@@ -931,27 +984,27 @@ function RangeInputInner({
|
|
|
931
984
|
max: computedRange.max
|
|
932
985
|
}, config.toNumber, config.fromNumber);
|
|
933
986
|
}, [showHistogram, valueCountPairs, computedRange, config]);
|
|
934
|
-
const maxBucketCount =
|
|
935
|
-
const handleMinChange =
|
|
987
|
+
const maxBucketCount = React22.useMemo(() => getMaxBucketCount(buckets), [buckets]);
|
|
988
|
+
const handleMinChange = React22.useCallback((e) => {
|
|
936
989
|
const newValue = e.target.value;
|
|
937
990
|
setLocalMin(newValue);
|
|
938
991
|
debouncedMinChange(newValue);
|
|
939
992
|
}, [debouncedMinChange]);
|
|
940
|
-
const handleMaxChange =
|
|
993
|
+
const handleMaxChange = React22.useCallback((e) => {
|
|
941
994
|
const newValue = e.target.value;
|
|
942
995
|
setLocalMax(newValue);
|
|
943
996
|
debouncedMaxChange(newValue);
|
|
944
997
|
}, [debouncedMaxChange]);
|
|
945
|
-
return /* @__PURE__ */
|
|
998
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
946
999
|
className: classnames7__default.default(RangeInput_default.rangeInput, className),
|
|
947
1000
|
style,
|
|
948
1001
|
"data-loading": isLoading
|
|
949
|
-
}, showHistogram && buckets.length > 0 && /* @__PURE__ */
|
|
1002
|
+
}, showHistogram && buckets.length > 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
950
1003
|
className: RangeInput_default.histogramContainer
|
|
951
1004
|
}, buckets.map((bucket, index) => {
|
|
952
1005
|
const height = bucket.count / maxBucketCount * 100;
|
|
953
1006
|
const isInRange = (minValue === void 0 || config.toNumber(bucket.max) >= config.toNumber(minValue)) && (maxValue === void 0 || config.toNumber(bucket.min) <= config.toNumber(maxValue));
|
|
954
|
-
return /* @__PURE__ */
|
|
1007
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
955
1008
|
key: index,
|
|
956
1009
|
className: RangeInput_default.histogramBar,
|
|
957
1010
|
"data-in-range": isInRange,
|
|
@@ -960,40 +1013,40 @@ function RangeInputInner({
|
|
|
960
1013
|
},
|
|
961
1014
|
title: config.formatTooltip(bucket.min, bucket.max, bucket.count)
|
|
962
1015
|
});
|
|
963
|
-
})), /* @__PURE__ */
|
|
1016
|
+
})), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
964
1017
|
className: RangeInput_default.rangeInputs
|
|
965
|
-
}, /* @__PURE__ */
|
|
1018
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
966
1019
|
className: RangeInput_default.inputWrapper
|
|
967
|
-
}, /* @__PURE__ */
|
|
1020
|
+
}, /* @__PURE__ */ React22__default.default.createElement("label", {
|
|
968
1021
|
htmlFor: minInputId,
|
|
969
1022
|
className: RangeInput_default.inputLabel
|
|
970
|
-
}, config.minLabel), /* @__PURE__ */
|
|
1023
|
+
}, config.minLabel), /* @__PURE__ */ React22__default.default.createElement(input.Input, _extends2({
|
|
971
1024
|
id: minInputId,
|
|
972
1025
|
type: config.inputType,
|
|
973
1026
|
className: RangeInput_default.input,
|
|
974
1027
|
value: localMin,
|
|
975
1028
|
onChange: handleMinChange,
|
|
976
1029
|
placeholder: dataRange.dataMin !== void 0 && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMin) : void 0
|
|
977
|
-
}, config.inputProps))), /* @__PURE__ */
|
|
1030
|
+
}, config.inputProps))), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
978
1031
|
className: RangeInput_default.separator,
|
|
979
1032
|
"aria-hidden": "true"
|
|
980
|
-
}, "\u2013"), /* @__PURE__ */
|
|
1033
|
+
}, "\u2013"), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
981
1034
|
className: RangeInput_default.inputWrapper
|
|
982
|
-
}, /* @__PURE__ */
|
|
1035
|
+
}, /* @__PURE__ */ React22__default.default.createElement("label", {
|
|
983
1036
|
htmlFor: maxInputId,
|
|
984
1037
|
className: RangeInput_default.inputLabel
|
|
985
|
-
}, config.maxLabel), /* @__PURE__ */
|
|
1038
|
+
}, config.maxLabel), /* @__PURE__ */ React22__default.default.createElement(input.Input, _extends2({
|
|
986
1039
|
id: maxInputId,
|
|
987
1040
|
type: config.inputType,
|
|
988
1041
|
className: RangeInput_default.input,
|
|
989
1042
|
value: localMax,
|
|
990
1043
|
onChange: handleMaxChange,
|
|
991
1044
|
placeholder: dataRange.dataMax !== void 0 && config.formatPlaceholder ? config.formatPlaceholder(dataRange.dataMax) : void 0
|
|
992
|
-
}, config.inputProps)))), isLoading && /* @__PURE__ */
|
|
1045
|
+
}, config.inputProps)))), isLoading && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
993
1046
|
className: shared_default.loadingMessage
|
|
994
1047
|
}, "Loading..."));
|
|
995
1048
|
}
|
|
996
|
-
var RangeInput = /* @__PURE__ */
|
|
1049
|
+
var RangeInput = /* @__PURE__ */ React22.memo(RangeInputInner);
|
|
997
1050
|
|
|
998
1051
|
// src/filter-list/base/inputs/DateRangeInput.tsx
|
|
999
1052
|
function _extends3() {
|
|
@@ -1016,11 +1069,11 @@ var dateConfig = {
|
|
|
1016
1069
|
formatTooltip: (min, max, count) => `${formatDateForInput(min)} - ${formatDateForInput(max)}: ${count.toLocaleString()}`
|
|
1017
1070
|
};
|
|
1018
1071
|
function DateRangeInputInner(props) {
|
|
1019
|
-
return /* @__PURE__ */
|
|
1072
|
+
return /* @__PURE__ */ React22__default.default.createElement(RangeInput, _extends3({}, props, {
|
|
1020
1073
|
config: dateConfig
|
|
1021
1074
|
}));
|
|
1022
1075
|
}
|
|
1023
|
-
var DateRangeInput = /* @__PURE__ */
|
|
1076
|
+
var DateRangeInput = /* @__PURE__ */ React22.memo(DateRangeInputInner);
|
|
1024
1077
|
|
|
1025
1078
|
// src/filter-list/base/inputs/LinkedPropertyInput.module.css
|
|
1026
1079
|
var LinkedPropertyInput_default = {};
|
|
@@ -1039,7 +1092,7 @@ function ListogramInputInner({
|
|
|
1039
1092
|
style,
|
|
1040
1093
|
maxVisibleItems
|
|
1041
1094
|
}) {
|
|
1042
|
-
const [isExpanded, setIsExpanded] =
|
|
1095
|
+
const [isExpanded, setIsExpanded] = React22.useState(false);
|
|
1043
1096
|
const {
|
|
1044
1097
|
data: values,
|
|
1045
1098
|
maxCount,
|
|
@@ -1048,30 +1101,30 @@ function ListogramInputInner({
|
|
|
1048
1101
|
} = usePropertyAggregation(objectType, propertyKey, {
|
|
1049
1102
|
where: whereClause
|
|
1050
1103
|
});
|
|
1051
|
-
const selectedSet =
|
|
1052
|
-
const toggleValue =
|
|
1104
|
+
const selectedSet = React22.useMemo(() => new Set(selectedValues), [selectedValues]);
|
|
1105
|
+
const toggleValue = React22.useCallback((value) => {
|
|
1053
1106
|
if (selectedSet.has(value)) {
|
|
1054
1107
|
onChange(selectedValues.filter((v) => v !== value));
|
|
1055
1108
|
} else {
|
|
1056
1109
|
onChange([...selectedValues, value]);
|
|
1057
1110
|
}
|
|
1058
1111
|
}, [selectedValues, selectedSet, onChange]);
|
|
1059
|
-
const displayValues =
|
|
1112
|
+
const displayValues = React22.useMemo(() => {
|
|
1060
1113
|
if (isExpanded || !maxVisibleItems) return values;
|
|
1061
1114
|
return values.slice(0, maxVisibleItems);
|
|
1062
1115
|
}, [values, maxVisibleItems, isExpanded]);
|
|
1063
1116
|
const hasMore = maxVisibleItems != null && values.length > maxVisibleItems;
|
|
1064
|
-
return /* @__PURE__ */
|
|
1117
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1065
1118
|
className: classnames7__default.default(ListogramInput_default.listogram, className),
|
|
1066
1119
|
style,
|
|
1067
1120
|
"data-loading": isLoading
|
|
1068
|
-
}, isLoading && /* @__PURE__ */
|
|
1121
|
+
}, isLoading && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1069
1122
|
className: shared_default.loadingMessage
|
|
1070
|
-
}, "Loading values..."), error && /* @__PURE__ */
|
|
1123
|
+
}, "Loading values..."), error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1071
1124
|
className: shared_default.errorMessage
|
|
1072
|
-
}, "Error loading values: ", error.message), !isLoading && !error && values.length === 0 && /* @__PURE__ */
|
|
1125
|
+
}, "Error loading values: ", error.message), !isLoading && !error && values.length === 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1073
1126
|
className: shared_default.emptyMessage
|
|
1074
|
-
}, "No values available"), (values.length > 0 || isLoading) && /* @__PURE__ */
|
|
1127
|
+
}, "No values available"), (values.length > 0 || isLoading) && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1075
1128
|
className: ListogramInput_default.container
|
|
1076
1129
|
}, displayValues.map(({
|
|
1077
1130
|
value,
|
|
@@ -1079,31 +1132,31 @@ function ListogramInputInner({
|
|
|
1079
1132
|
}) => {
|
|
1080
1133
|
const isSelected = selectedSet.has(value);
|
|
1081
1134
|
const percentage = maxCount > 0 ? count / maxCount * 100 : 0;
|
|
1082
|
-
return /* @__PURE__ */
|
|
1135
|
+
return /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1083
1136
|
key: value,
|
|
1084
1137
|
type: "button",
|
|
1085
1138
|
className: ListogramInput_default.row,
|
|
1086
1139
|
onClick: () => toggleValue(value),
|
|
1087
1140
|
"aria-pressed": isSelected
|
|
1088
|
-
}, /* @__PURE__ */
|
|
1141
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1089
1142
|
className: ListogramInput_default.label
|
|
1090
|
-
}, value), /* @__PURE__ */
|
|
1143
|
+
}, value), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1091
1144
|
className: ListogramInput_default.bar
|
|
1092
|
-
}, /* @__PURE__ */
|
|
1145
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1093
1146
|
className: ListogramInput_default.barFill,
|
|
1094
1147
|
style: {
|
|
1095
1148
|
width: `${percentage}%`
|
|
1096
1149
|
}
|
|
1097
|
-
})), /* @__PURE__ */
|
|
1150
|
+
})), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1098
1151
|
className: ListogramInput_default.count
|
|
1099
1152
|
}, count.toLocaleString()));
|
|
1100
|
-
}), hasMore && !isExpanded && /* @__PURE__ */
|
|
1153
|
+
}), hasMore && !isExpanded && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1101
1154
|
type: "button",
|
|
1102
1155
|
className: ListogramInput_default.row,
|
|
1103
1156
|
onClick: () => setIsExpanded(true)
|
|
1104
1157
|
}, "View all (", values.length, ")")));
|
|
1105
1158
|
}
|
|
1106
|
-
var ListogramInput = /* @__PURE__ */
|
|
1159
|
+
var ListogramInput = /* @__PURE__ */ React22.memo(ListogramInputInner);
|
|
1107
1160
|
|
|
1108
1161
|
// src/filter-list/base/inputs/MultiDateInput.module.css
|
|
1109
1162
|
var MultiDateInput_default = {};
|
|
@@ -1118,46 +1171,46 @@ function MultiDateInputInner({
|
|
|
1118
1171
|
maxDate,
|
|
1119
1172
|
showClearAll = true
|
|
1120
1173
|
}) {
|
|
1121
|
-
const addDate =
|
|
1174
|
+
const addDate = React22.useCallback((date) => {
|
|
1122
1175
|
const dateStr = formatDateForInput(date);
|
|
1123
1176
|
const exists = selectedDates.some((d) => formatDateForInput(d) === dateStr);
|
|
1124
1177
|
if (!exists) {
|
|
1125
1178
|
onChange([...selectedDates, date].sort((a, b) => a.getTime() - b.getTime()));
|
|
1126
1179
|
}
|
|
1127
1180
|
}, [selectedDates, onChange]);
|
|
1128
|
-
const removeDate =
|
|
1181
|
+
const removeDate = React22.useCallback((date) => {
|
|
1129
1182
|
const dateStr = formatDateForInput(date);
|
|
1130
1183
|
onChange(selectedDates.filter((d) => formatDateForInput(d) !== dateStr));
|
|
1131
1184
|
}, [selectedDates, onChange]);
|
|
1132
|
-
const clearAll =
|
|
1185
|
+
const clearAll = React22.useCallback(() => {
|
|
1133
1186
|
onChange([]);
|
|
1134
1187
|
}, [onChange]);
|
|
1135
|
-
const handleDateChange =
|
|
1188
|
+
const handleDateChange = React22.useCallback((e) => {
|
|
1136
1189
|
const date = parseDateFromInput(e.target.value);
|
|
1137
1190
|
if (date) {
|
|
1138
1191
|
addDate(date);
|
|
1139
1192
|
e.target.value = "";
|
|
1140
1193
|
}
|
|
1141
1194
|
}, [addDate]);
|
|
1142
|
-
return /* @__PURE__ */
|
|
1195
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1143
1196
|
className: classnames7__default.default(MultiDateInput_default.multiDate, className),
|
|
1144
1197
|
style
|
|
1145
|
-
}, selectedDates.length > 0 && /* @__PURE__ */
|
|
1198
|
+
}, selectedDates.length > 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1146
1199
|
className: shared_default.tagContainer
|
|
1147
|
-
}, selectedDates.map((date) => /* @__PURE__ */
|
|
1200
|
+
}, selectedDates.map((date) => /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1148
1201
|
key: date.toISOString(),
|
|
1149
1202
|
className: shared_default.tag
|
|
1150
|
-
}, formatDateForDisplay(date), /* @__PURE__ */
|
|
1203
|
+
}, formatDateForDisplay(date), /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1151
1204
|
className: shared_default.tagRemove,
|
|
1152
1205
|
onClick: () => removeDate(date),
|
|
1153
1206
|
"aria-label": `Remove ${formatDateForDisplay(date)}`
|
|
1154
|
-
}, "\xD7"))), showClearAll && selectedDates.length > 1 && /* @__PURE__ */
|
|
1207
|
+
}, "\xD7"))), showClearAll && selectedDates.length > 1 && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1155
1208
|
className: MultiDateInput_default.clearAll,
|
|
1156
1209
|
onClick: clearAll,
|
|
1157
1210
|
"aria-label": "Clear all dates"
|
|
1158
|
-
}, "Clear all")), /* @__PURE__ */
|
|
1211
|
+
}, "Clear all")), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1159
1212
|
className: MultiDateInput_default.calendarContainer
|
|
1160
|
-
}, /* @__PURE__ */
|
|
1213
|
+
}, /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
1161
1214
|
type: "date",
|
|
1162
1215
|
className: MultiDateInput_default.input,
|
|
1163
1216
|
onChange: handleDateChange,
|
|
@@ -1166,7 +1219,7 @@ function MultiDateInputInner({
|
|
|
1166
1219
|
"aria-label": "Add date"
|
|
1167
1220
|
})));
|
|
1168
1221
|
}
|
|
1169
|
-
var MultiDateInput = /* @__PURE__ */
|
|
1222
|
+
var MultiDateInput = /* @__PURE__ */ React22.memo(MultiDateInputInner);
|
|
1170
1223
|
|
|
1171
1224
|
// src/base-components/combobox/Combobox.module.css
|
|
1172
1225
|
var Combobox_default = {};
|
|
@@ -1185,12 +1238,12 @@ function ComboboxInput({
|
|
|
1185
1238
|
className,
|
|
1186
1239
|
...rest
|
|
1187
1240
|
}) {
|
|
1188
|
-
return /* @__PURE__ */
|
|
1241
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1189
1242
|
className: classnames7__default.default(Combobox_default.osdkComboboxInputWrapper, className)
|
|
1190
|
-
}, /* @__PURE__ */
|
|
1243
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Search, {
|
|
1191
1244
|
className: Combobox_default.osdkComboboxSearchIcon,
|
|
1192
1245
|
color: "currentColor"
|
|
1193
|
-
}), /* @__PURE__ */
|
|
1246
|
+
}), /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Input, _extends4({
|
|
1194
1247
|
className: Combobox_default.osdkComboboxInput
|
|
1195
1248
|
}, rest)));
|
|
1196
1249
|
}
|
|
@@ -1199,7 +1252,7 @@ function ComboboxPositioner({
|
|
|
1199
1252
|
children,
|
|
1200
1253
|
...rest
|
|
1201
1254
|
}) {
|
|
1202
|
-
return /* @__PURE__ */
|
|
1255
|
+
return /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Positioner, _extends4({
|
|
1203
1256
|
className: classnames7__default.default(Combobox_default.osdkComboboxPositioner, className),
|
|
1204
1257
|
sideOffset: 4
|
|
1205
1258
|
}, rest), children);
|
|
@@ -1209,7 +1262,7 @@ function ComboboxPopup({
|
|
|
1209
1262
|
children,
|
|
1210
1263
|
...rest
|
|
1211
1264
|
}) {
|
|
1212
|
-
return /* @__PURE__ */
|
|
1265
|
+
return /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Popup, _extends4({
|
|
1213
1266
|
className: classnames7__default.default(Combobox_default.osdkComboboxPopup, className)
|
|
1214
1267
|
}, rest), children);
|
|
1215
1268
|
}
|
|
@@ -1218,7 +1271,7 @@ function ComboboxItem({
|
|
|
1218
1271
|
children,
|
|
1219
1272
|
...rest
|
|
1220
1273
|
}) {
|
|
1221
|
-
return /* @__PURE__ */
|
|
1274
|
+
return /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Item, _extends4({
|
|
1222
1275
|
className: classnames7__default.default(Combobox_default.osdkComboboxItem, className)
|
|
1223
1276
|
}, rest), children);
|
|
1224
1277
|
}
|
|
@@ -1226,10 +1279,10 @@ function ComboboxClear({
|
|
|
1226
1279
|
className,
|
|
1227
1280
|
...rest
|
|
1228
1281
|
}) {
|
|
1229
|
-
return /* @__PURE__ */
|
|
1282
|
+
return /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Clear, _extends4({
|
|
1230
1283
|
className: classnames7__default.default(Combobox_default.osdkComboboxClear, className),
|
|
1231
1284
|
"aria-label": "Clear all"
|
|
1232
|
-
}, rest), /* @__PURE__ */
|
|
1285
|
+
}, rest), /* @__PURE__ */ React22__default.default.createElement(icons.Cross, {
|
|
1233
1286
|
color: "currentColor"
|
|
1234
1287
|
}));
|
|
1235
1288
|
}
|
|
@@ -1237,7 +1290,7 @@ function ComboboxEmpty({
|
|
|
1237
1290
|
children,
|
|
1238
1291
|
className
|
|
1239
1292
|
}) {
|
|
1240
|
-
return /* @__PURE__ */
|
|
1293
|
+
return /* @__PURE__ */ React22__default.default.createElement(combobox.Combobox.Empty, {
|
|
1241
1294
|
className: classnames7__default.default(Combobox_default.osdkComboboxEmpty, className)
|
|
1242
1295
|
}, children);
|
|
1243
1296
|
}
|
|
@@ -1275,63 +1328,63 @@ function MultiSelectInputInner({
|
|
|
1275
1328
|
} = usePropertyAggregation(objectType, propertyKey, {
|
|
1276
1329
|
where: whereClause
|
|
1277
1330
|
});
|
|
1278
|
-
const handleValueChange =
|
|
1331
|
+
const handleValueChange = React22.useCallback((newValues) => {
|
|
1279
1332
|
onChange(newValues ?? []);
|
|
1280
1333
|
}, [onChange]);
|
|
1281
|
-
const removeValue =
|
|
1334
|
+
const removeValue = React22.useCallback((value) => {
|
|
1282
1335
|
onChange(selectedValues.filter((v) => v !== value));
|
|
1283
1336
|
}, [selectedValues, onChange]);
|
|
1284
|
-
const clearAll =
|
|
1337
|
+
const clearAll = React22.useCallback(() => {
|
|
1285
1338
|
onChange([]);
|
|
1286
1339
|
}, [onChange]);
|
|
1287
1340
|
const displayedTags = selectedValues.slice(0, maxDisplayedTags);
|
|
1288
1341
|
const remainingCount = selectedValues.length - maxDisplayedTags;
|
|
1289
|
-
return /* @__PURE__ */
|
|
1342
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1290
1343
|
className: classnames7__default.default(MultiSelectInput_default.multiSelect, className),
|
|
1291
1344
|
style,
|
|
1292
1345
|
"data-loading": isLoading
|
|
1293
|
-
}, error && /* @__PURE__ */
|
|
1346
|
+
}, error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1294
1347
|
className: shared_default.errorMessage
|
|
1295
|
-
}, "Error loading options: ", error.message), !error && values.length === 0 && /* @__PURE__ */
|
|
1348
|
+
}, "Error loading options: ", error.message), !error && values.length === 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1296
1349
|
className: shared_default.emptyMessage
|
|
1297
|
-
}, isLoading ? "Loading options..." : "No options available"), (values.length > 0 || isLoading) && /* @__PURE__ */
|
|
1350
|
+
}, isLoading ? "Loading options..." : "No options available"), (values.length > 0 || isLoading) && /* @__PURE__ */ React22__default.default.createElement(Combobox.Root, {
|
|
1298
1351
|
multiple: true,
|
|
1299
1352
|
value: selectedValues,
|
|
1300
1353
|
onValueChange: handleValueChange
|
|
1301
|
-
}, isLoading && /* @__PURE__ */
|
|
1354
|
+
}, isLoading && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1302
1355
|
className: shared_default.loadingMessage
|
|
1303
|
-
}, "Updating..."), selectedValues.length > 0 && /* @__PURE__ */
|
|
1356
|
+
}, "Updating..."), selectedValues.length > 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1304
1357
|
className: shared_default.tagContainer
|
|
1305
|
-
}, displayedTags.map((value) => /* @__PURE__ */
|
|
1358
|
+
}, displayedTags.map((value) => /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1306
1359
|
key: value,
|
|
1307
1360
|
className: shared_default.tag
|
|
1308
|
-
}, value, /* @__PURE__ */
|
|
1361
|
+
}, value, /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1309
1362
|
type: "button",
|
|
1310
1363
|
className: shared_default.tagRemove,
|
|
1311
1364
|
onClick: () => removeValue(value),
|
|
1312
1365
|
"aria-label": `Remove ${value}`
|
|
1313
|
-
}, "\xD7"))), remainingCount > 0 && /* @__PURE__ */
|
|
1366
|
+
}, "\xD7"))), remainingCount > 0 && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1314
1367
|
className: shared_default.tag
|
|
1315
|
-
}, "+", remainingCount, " more")), /* @__PURE__ */
|
|
1368
|
+
}, "+", remainingCount, " more")), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1316
1369
|
className: MultiSelectInput_default.inputRow
|
|
1317
|
-
}, /* @__PURE__ */
|
|
1370
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Combobox.Input, {
|
|
1318
1371
|
placeholder: selectedValues.length > 0 ? `${selectedValues.length} selected` : placeholder,
|
|
1319
1372
|
"aria-label": `Search ${propertyKey} values`
|
|
1320
|
-
}), showClearAll && selectedValues.length > 0 && /* @__PURE__ */
|
|
1373
|
+
}), showClearAll && selectedValues.length > 0 && /* @__PURE__ */ React22__default.default.createElement(Combobox.Clear, {
|
|
1321
1374
|
className: MultiSelectInput_default.clearButton,
|
|
1322
1375
|
onClick: clearAll,
|
|
1323
1376
|
"aria-label": "Clear all selections"
|
|
1324
|
-
})), /* @__PURE__ */
|
|
1377
|
+
})), /* @__PURE__ */ React22__default.default.createElement(Combobox.Portal, null, /* @__PURE__ */ React22__default.default.createElement(Combobox.Positioner, null, /* @__PURE__ */ React22__default.default.createElement(Combobox.Popup, null, values.length === 0 ? /* @__PURE__ */ React22__default.default.createElement(Combobox.Empty, null, "No options available") : values.map(({
|
|
1325
1378
|
value,
|
|
1326
1379
|
count
|
|
1327
|
-
}) => /* @__PURE__ */
|
|
1380
|
+
}) => /* @__PURE__ */ React22__default.default.createElement(Combobox.Item, {
|
|
1328
1381
|
key: value,
|
|
1329
1382
|
value
|
|
1330
|
-
}, /* @__PURE__ */
|
|
1383
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", null, value), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1331
1384
|
className: MultiSelectInput_default.count
|
|
1332
1385
|
}, "(", count.toLocaleString(), ")"))))))));
|
|
1333
1386
|
}
|
|
1334
|
-
var MultiSelectInput = /* @__PURE__ */
|
|
1387
|
+
var MultiSelectInput = /* @__PURE__ */ React22.memo(MultiSelectInputInner);
|
|
1335
1388
|
function _extends5() {
|
|
1336
1389
|
return _extends5 = Object.assign ? Object.assign.bind() : function(n) {
|
|
1337
1390
|
for (var e = 1; e < arguments.length; e++) {
|
|
@@ -1364,11 +1417,11 @@ var numberConfig = {
|
|
|
1364
1417
|
}
|
|
1365
1418
|
};
|
|
1366
1419
|
function NumberRangeInputInner(props) {
|
|
1367
|
-
return /* @__PURE__ */
|
|
1420
|
+
return /* @__PURE__ */ React22__default.default.createElement(RangeInput, _extends5({}, props, {
|
|
1368
1421
|
config: numberConfig
|
|
1369
1422
|
}));
|
|
1370
1423
|
}
|
|
1371
|
-
var NumberRangeInput = /* @__PURE__ */
|
|
1424
|
+
var NumberRangeInput = /* @__PURE__ */ React22.memo(NumberRangeInputInner);
|
|
1372
1425
|
|
|
1373
1426
|
// src/filter-list/base/inputs/SingleDateInput.module.css
|
|
1374
1427
|
var SingleDateInput_default = {};
|
|
@@ -1384,19 +1437,19 @@ function SingleDateInputInner({
|
|
|
1384
1437
|
placeholder = "Select a date...",
|
|
1385
1438
|
showClearButton = true
|
|
1386
1439
|
}) {
|
|
1387
|
-
const handleChange =
|
|
1440
|
+
const handleChange = React22.useCallback((e) => {
|
|
1388
1441
|
const date = parseDateFromInput(e.target.value);
|
|
1389
1442
|
onChange(date);
|
|
1390
1443
|
}, [onChange]);
|
|
1391
|
-
const handleClear =
|
|
1444
|
+
const handleClear = React22.useCallback(() => {
|
|
1392
1445
|
onChange(void 0);
|
|
1393
1446
|
}, [onChange]);
|
|
1394
|
-
return /* @__PURE__ */
|
|
1447
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1395
1448
|
className: classnames7__default.default(SingleDateInput_default.singleDate, className),
|
|
1396
1449
|
style
|
|
1397
|
-
}, /* @__PURE__ */
|
|
1450
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1398
1451
|
className: SingleDateInput_default.dateContainer
|
|
1399
|
-
}, /* @__PURE__ */
|
|
1452
|
+
}, /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
1400
1453
|
type: "date",
|
|
1401
1454
|
className: SingleDateInput_default.input,
|
|
1402
1455
|
value: formatDateForInput(selectedDate),
|
|
@@ -1405,13 +1458,13 @@ function SingleDateInputInner({
|
|
|
1405
1458
|
max: maxDate ? formatDateForInput(maxDate) : void 0,
|
|
1406
1459
|
placeholder,
|
|
1407
1460
|
"aria-label": "Select date"
|
|
1408
|
-
}), showClearButton && selectedDate !== void 0 && /* @__PURE__ */
|
|
1461
|
+
}), showClearButton && selectedDate !== void 0 && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1409
1462
|
className: SingleDateInput_default.clearButton,
|
|
1410
1463
|
onClick: handleClear,
|
|
1411
1464
|
"aria-label": "Clear date"
|
|
1412
1465
|
}, "\xD7")));
|
|
1413
1466
|
}
|
|
1414
|
-
var SingleDateInput = /* @__PURE__ */
|
|
1467
|
+
var SingleDateInput = /* @__PURE__ */ React22.memo(SingleDateInputInner);
|
|
1415
1468
|
|
|
1416
1469
|
// src/base-components/select/Select.module.css
|
|
1417
1470
|
var Select_default = {};
|
|
@@ -1430,7 +1483,7 @@ function SelectRoot({
|
|
|
1430
1483
|
children,
|
|
1431
1484
|
...rest
|
|
1432
1485
|
}) {
|
|
1433
|
-
return /* @__PURE__ */
|
|
1486
|
+
return /* @__PURE__ */ React22__default.default.createElement(select.Select.Root, rest, children);
|
|
1434
1487
|
}
|
|
1435
1488
|
function SelectTrigger({
|
|
1436
1489
|
className,
|
|
@@ -1438,11 +1491,11 @@ function SelectTrigger({
|
|
|
1438
1491
|
children,
|
|
1439
1492
|
...rest
|
|
1440
1493
|
}) {
|
|
1441
|
-
return /* @__PURE__ */
|
|
1494
|
+
return /* @__PURE__ */ React22__default.default.createElement(select.Select.Trigger, _extends6({
|
|
1442
1495
|
className: classnames7__default.default(Select_default.osdkSelectTrigger, className)
|
|
1443
|
-
}, rest), children ?? /* @__PURE__ */
|
|
1496
|
+
}, rest), children ?? /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(select.Select.Value, null, (value) => value != null ? String(value) : placeholder), /* @__PURE__ */ React22__default.default.createElement(select.Select.Icon, {
|
|
1444
1497
|
className: Select_default.osdkSelectIcon
|
|
1445
|
-
}, /* @__PURE__ */
|
|
1498
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.CaretDown, {
|
|
1446
1499
|
color: "currentColor"
|
|
1447
1500
|
}))));
|
|
1448
1501
|
}
|
|
@@ -1451,7 +1504,7 @@ function SelectPositioner({
|
|
|
1451
1504
|
children,
|
|
1452
1505
|
...rest
|
|
1453
1506
|
}) {
|
|
1454
|
-
return /* @__PURE__ */
|
|
1507
|
+
return /* @__PURE__ */ React22__default.default.createElement(select.Select.Positioner, _extends6({
|
|
1455
1508
|
className: classnames7__default.default(Select_default.osdkSelectPositioner, className),
|
|
1456
1509
|
sideOffset: 4
|
|
1457
1510
|
}, rest), children);
|
|
@@ -1461,7 +1514,7 @@ function SelectPopup({
|
|
|
1461
1514
|
children,
|
|
1462
1515
|
...rest
|
|
1463
1516
|
}) {
|
|
1464
|
-
return /* @__PURE__ */
|
|
1517
|
+
return /* @__PURE__ */ React22__default.default.createElement(select.Select.Popup, _extends6({
|
|
1465
1518
|
className: classnames7__default.default(Select_default.osdkSelectPopup, className)
|
|
1466
1519
|
}, rest), children);
|
|
1467
1520
|
}
|
|
@@ -1470,9 +1523,9 @@ function SelectItem({
|
|
|
1470
1523
|
children,
|
|
1471
1524
|
...rest
|
|
1472
1525
|
}) {
|
|
1473
|
-
return /* @__PURE__ */
|
|
1526
|
+
return /* @__PURE__ */ React22__default.default.createElement(select.Select.Item, _extends6({
|
|
1474
1527
|
className: classnames7__default.default(Select_default.osdkSelectItem, className)
|
|
1475
|
-
}, rest), /* @__PURE__ */
|
|
1528
|
+
}, rest), /* @__PURE__ */ React22__default.default.createElement(select.Select.ItemText, null, children));
|
|
1476
1529
|
}
|
|
1477
1530
|
var Select = {
|
|
1478
1531
|
Root: SelectRoot,
|
|
@@ -1506,13 +1559,13 @@ function SingleSelectInputInner({
|
|
|
1506
1559
|
} = usePropertyAggregation(objectType, propertyKey, {
|
|
1507
1560
|
where: whereClause
|
|
1508
1561
|
});
|
|
1509
|
-
const handleValueChange =
|
|
1562
|
+
const handleValueChange = React22.useCallback((value) => {
|
|
1510
1563
|
onChange(value ?? void 0);
|
|
1511
1564
|
}, [onChange]);
|
|
1512
|
-
const handleClear =
|
|
1565
|
+
const handleClear = React22.useCallback(() => {
|
|
1513
1566
|
onChange(void 0);
|
|
1514
1567
|
}, [onChange]);
|
|
1515
|
-
const items =
|
|
1568
|
+
const items = React22.useMemo(() => {
|
|
1516
1569
|
const result = {};
|
|
1517
1570
|
for (const {
|
|
1518
1571
|
value,
|
|
@@ -1522,57 +1575,57 @@ function SingleSelectInputInner({
|
|
|
1522
1575
|
}
|
|
1523
1576
|
return result;
|
|
1524
1577
|
}, [values, showCounts]);
|
|
1525
|
-
return /* @__PURE__ */
|
|
1578
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1526
1579
|
className: classnames7__default.default(SingleSelectInput_default.singleSelect, className),
|
|
1527
1580
|
style,
|
|
1528
1581
|
"data-loading": isLoading
|
|
1529
|
-
}, isLoading && /* @__PURE__ */
|
|
1582
|
+
}, isLoading && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1530
1583
|
className: shared_default.loadingMessage
|
|
1531
|
-
}, "Loading options..."), error && /* @__PURE__ */
|
|
1584
|
+
}, "Loading options..."), error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1532
1585
|
className: shared_default.errorMessage
|
|
1533
|
-
}, "Error loading options: ", error.message), !isLoading && !error && values.length === 0 && /* @__PURE__ */
|
|
1586
|
+
}, "Error loading options: ", error.message), !isLoading && !error && values.length === 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1534
1587
|
className: shared_default.emptyMessage
|
|
1535
|
-
}, "No options available"), (values.length > 0 || isLoading) && /* @__PURE__ */
|
|
1588
|
+
}, "No options available"), (values.length > 0 || isLoading) && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1536
1589
|
className: SingleSelectInput_default.selectContainer
|
|
1537
|
-
}, /* @__PURE__ */
|
|
1590
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Select.Root, {
|
|
1538
1591
|
value: selectedValue ?? null,
|
|
1539
1592
|
onValueChange: handleValueChange,
|
|
1540
1593
|
items
|
|
1541
|
-
}, /* @__PURE__ */
|
|
1594
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Select.Trigger, {
|
|
1542
1595
|
placeholder,
|
|
1543
1596
|
"aria-label": `Select ${propertyKey}`
|
|
1544
|
-
}), /* @__PURE__ */
|
|
1597
|
+
}), /* @__PURE__ */ React22__default.default.createElement(Select.Portal, null, /* @__PURE__ */ React22__default.default.createElement(Select.Positioner, null, /* @__PURE__ */ React22__default.default.createElement(Select.Popup, null, values.map(({
|
|
1545
1598
|
value,
|
|
1546
1599
|
count
|
|
1547
|
-
}) => /* @__PURE__ */
|
|
1600
|
+
}) => /* @__PURE__ */ React22__default.default.createElement(Select.Item, {
|
|
1548
1601
|
key: value,
|
|
1549
1602
|
value
|
|
1550
|
-
}, showCounts ? `${value} (${count.toLocaleString()})` : value)))))), showClearButton && selectedValue !== void 0 && /* @__PURE__ */
|
|
1603
|
+
}, showCounts ? `${value} (${count.toLocaleString()})` : value)))))), showClearButton && selectedValue !== void 0 && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1551
1604
|
type: "button",
|
|
1552
1605
|
className: SingleSelectInput_default.clearButton,
|
|
1553
1606
|
onClick: handleClear,
|
|
1554
1607
|
"aria-label": "Clear selection"
|
|
1555
|
-
}, /* @__PURE__ */
|
|
1608
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Cross, {
|
|
1556
1609
|
color: "currentColor"
|
|
1557
1610
|
}))));
|
|
1558
1611
|
}
|
|
1559
|
-
var SingleSelectInput = /* @__PURE__ */
|
|
1612
|
+
var SingleSelectInput = /* @__PURE__ */ React22.memo(SingleSelectInputInner);
|
|
1560
1613
|
|
|
1561
1614
|
// src/filter-list/base/inputs/TextTagsInput.module.css
|
|
1562
1615
|
var TextTagsInput_default = {};
|
|
1563
1616
|
|
|
1564
1617
|
// src/filter-list/base/inputs/TextTagsInput.tsx
|
|
1565
1618
|
var TAG_SEPARATOR_PATTERN = /[,\n]/;
|
|
1566
|
-
var TagItem = /* @__PURE__ */
|
|
1619
|
+
var TagItem = /* @__PURE__ */ React22.memo(function TagItem2({
|
|
1567
1620
|
tag,
|
|
1568
1621
|
onRemove
|
|
1569
1622
|
}) {
|
|
1570
|
-
const handleRemove =
|
|
1623
|
+
const handleRemove = React22.useCallback(() => {
|
|
1571
1624
|
onRemove(tag);
|
|
1572
1625
|
}, [tag, onRemove]);
|
|
1573
|
-
return /* @__PURE__ */
|
|
1626
|
+
return /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1574
1627
|
className: shared_default.tag
|
|
1575
|
-
}, tag, /* @__PURE__ */
|
|
1628
|
+
}, tag, /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1576
1629
|
type: "button",
|
|
1577
1630
|
className: shared_default.tagRemove,
|
|
1578
1631
|
onClick: handleRemove,
|
|
@@ -1591,7 +1644,7 @@ function TextTagsInputInner({
|
|
|
1591
1644
|
allowCustomTags = true,
|
|
1592
1645
|
suggestionLimit = 10
|
|
1593
1646
|
}) {
|
|
1594
|
-
const [inputValue, setInputValue] =
|
|
1647
|
+
const [inputValue, setInputValue] = React22.useState("");
|
|
1595
1648
|
const {
|
|
1596
1649
|
data: suggestions,
|
|
1597
1650
|
isLoading,
|
|
@@ -1600,28 +1653,28 @@ function TextTagsInputInner({
|
|
|
1600
1653
|
limit: suggestionLimit ?? 0,
|
|
1601
1654
|
where: whereClause
|
|
1602
1655
|
});
|
|
1603
|
-
const filteredSuggestions =
|
|
1656
|
+
const filteredSuggestions = React22.useMemo(() => {
|
|
1604
1657
|
if (!suggestionLimit) return [];
|
|
1605
1658
|
const lowerInput = inputValue.toLowerCase();
|
|
1606
1659
|
return suggestions.filter((s) => (!inputValue.trim() || s.value.toLowerCase().includes(lowerInput)) && !tags.includes(s.value)).slice(0, suggestionLimit);
|
|
1607
1660
|
}, [suggestions, inputValue, tags, suggestionLimit]);
|
|
1608
|
-
const addTag =
|
|
1661
|
+
const addTag = React22.useCallback((tag) => {
|
|
1609
1662
|
const trimmedTag = tag.trim();
|
|
1610
1663
|
if (trimmedTag && !tags.includes(trimmedTag)) {
|
|
1611
1664
|
onChange([...tags, trimmedTag]);
|
|
1612
1665
|
}
|
|
1613
1666
|
setInputValue("");
|
|
1614
1667
|
}, [tags, onChange]);
|
|
1615
|
-
const removeTag =
|
|
1668
|
+
const removeTag = React22.useCallback((tag) => {
|
|
1616
1669
|
onChange(tags.filter((t) => t !== tag));
|
|
1617
1670
|
}, [tags, onChange]);
|
|
1618
|
-
const handleValueChange =
|
|
1671
|
+
const handleValueChange = React22.useCallback((newTags) => {
|
|
1619
1672
|
onChange(newTags ?? []);
|
|
1620
1673
|
}, [onChange]);
|
|
1621
|
-
const handleInputValueChange =
|
|
1674
|
+
const handleInputValueChange = React22.useCallback((value) => {
|
|
1622
1675
|
setInputValue(value);
|
|
1623
1676
|
}, []);
|
|
1624
|
-
const handleKeyDown =
|
|
1677
|
+
const handleKeyDown = React22.useCallback((e) => {
|
|
1625
1678
|
if (e.key === "Enter" && inputValue.trim()) {
|
|
1626
1679
|
if (filteredSuggestions.length > 0) {
|
|
1627
1680
|
return;
|
|
@@ -1634,7 +1687,7 @@ function TextTagsInputInner({
|
|
|
1634
1687
|
removeTag(tags[tags.length - 1]);
|
|
1635
1688
|
}
|
|
1636
1689
|
}, [inputValue, tags, addTag, removeTag, allowCustomTags, filteredSuggestions]);
|
|
1637
|
-
const handlePaste =
|
|
1690
|
+
const handlePaste = React22.useCallback((e) => {
|
|
1638
1691
|
const pastedText = e.clipboardData.getData("text");
|
|
1639
1692
|
if (TAG_SEPARATOR_PATTERN.test(pastedText)) {
|
|
1640
1693
|
e.preventDefault();
|
|
@@ -1644,41 +1697,41 @@ function TextTagsInputInner({
|
|
|
1644
1697
|
}
|
|
1645
1698
|
}
|
|
1646
1699
|
}, [tags, onChange]);
|
|
1647
|
-
return /* @__PURE__ */
|
|
1700
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1648
1701
|
className: classnames7__default.default(TextTagsInput_default.textTags, className),
|
|
1649
1702
|
style,
|
|
1650
1703
|
"data-loading": isLoading
|
|
1651
|
-
}, error && /* @__PURE__ */
|
|
1704
|
+
}, error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1652
1705
|
className: shared_default.errorMessage
|
|
1653
|
-
}, "Error loading suggestions: ", error.message), /* @__PURE__ */
|
|
1706
|
+
}, "Error loading suggestions: ", error.message), /* @__PURE__ */ React22__default.default.createElement(Combobox.Root, {
|
|
1654
1707
|
multiple: true,
|
|
1655
1708
|
value: tags,
|
|
1656
1709
|
onValueChange: handleValueChange,
|
|
1657
1710
|
inputValue,
|
|
1658
1711
|
onInputValueChange: handleInputValueChange
|
|
1659
|
-
}, tags.length > 0 && /* @__PURE__ */
|
|
1712
|
+
}, tags.length > 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1660
1713
|
className: shared_default.tagContainer
|
|
1661
|
-
}, tags.map((tag) => /* @__PURE__ */
|
|
1714
|
+
}, tags.map((tag) => /* @__PURE__ */ React22__default.default.createElement(TagItem, {
|
|
1662
1715
|
key: tag,
|
|
1663
1716
|
tag,
|
|
1664
1717
|
onRemove: removeTag
|
|
1665
|
-
}))), /* @__PURE__ */
|
|
1718
|
+
}))), /* @__PURE__ */ React22__default.default.createElement(Combobox.Input, {
|
|
1666
1719
|
className: TextTagsInput_default.input,
|
|
1667
1720
|
placeholder: tags.length > 0 ? "" : placeholder,
|
|
1668
1721
|
onKeyDown: handleKeyDown,
|
|
1669
1722
|
onPaste: handlePaste,
|
|
1670
1723
|
"aria-label": `Add ${propertyKey} tag`
|
|
1671
|
-
}), /* @__PURE__ */
|
|
1724
|
+
}), /* @__PURE__ */ React22__default.default.createElement(Combobox.Portal, null, /* @__PURE__ */ React22__default.default.createElement(Combobox.Positioner, null, /* @__PURE__ */ React22__default.default.createElement(Combobox.Popup, null, filteredSuggestions.length === 0 ? allowCustomTags && inputValue.trim() ? /* @__PURE__ */ React22__default.default.createElement(Combobox.Empty, null, 'Press Enter to add "', inputValue, '"') : /* @__PURE__ */ React22__default.default.createElement(Combobox.Empty, null, suggestionLimit ? "No suggestions" : "Type to add a tag") : filteredSuggestions.map(({
|
|
1672
1725
|
value,
|
|
1673
1726
|
count
|
|
1674
|
-
}) => /* @__PURE__ */
|
|
1727
|
+
}) => /* @__PURE__ */ React22__default.default.createElement(Combobox.Item, {
|
|
1675
1728
|
key: value,
|
|
1676
1729
|
value
|
|
1677
|
-
}, value, " (", count.toLocaleString(), ")")))))), isLoading && !!suggestionLimit && /* @__PURE__ */
|
|
1730
|
+
}, value, " (", count.toLocaleString(), ")")))))), isLoading && !!suggestionLimit && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1678
1731
|
className: shared_default.loadingMessage
|
|
1679
1732
|
}, "Loading suggestions..."));
|
|
1680
1733
|
}
|
|
1681
|
-
var TextTagsInput = /* @__PURE__ */
|
|
1734
|
+
var TextTagsInput = /* @__PURE__ */ React22.memo(TextTagsInputInner);
|
|
1682
1735
|
|
|
1683
1736
|
// src/filter-list/base/inputs/TimelineInput.module.css
|
|
1684
1737
|
var TimelineInput_default = {};
|
|
@@ -1692,31 +1745,31 @@ function TimelineInputInner({
|
|
|
1692
1745
|
minDate,
|
|
1693
1746
|
maxDate
|
|
1694
1747
|
}) {
|
|
1695
|
-
const handleStartChange =
|
|
1748
|
+
const handleStartChange = React22.useCallback((e) => {
|
|
1696
1749
|
const date = parseDateFromInput(e.target.value);
|
|
1697
1750
|
onChange(date, endDate);
|
|
1698
1751
|
}, [onChange, endDate]);
|
|
1699
|
-
const handleEndChange =
|
|
1752
|
+
const handleEndChange = React22.useCallback((e) => {
|
|
1700
1753
|
const date = parseDateFromInput(e.target.value);
|
|
1701
1754
|
onChange(startDate, date);
|
|
1702
1755
|
}, [onChange, startDate]);
|
|
1703
|
-
const handleClear =
|
|
1756
|
+
const handleClear = React22.useCallback(() => {
|
|
1704
1757
|
onChange(void 0, void 0);
|
|
1705
1758
|
}, [onChange]);
|
|
1706
|
-
const startInputMax =
|
|
1707
|
-
const endInputMin =
|
|
1708
|
-
return /* @__PURE__ */
|
|
1759
|
+
const startInputMax = React22.useMemo(() => endDate ?? maxDate, [endDate, maxDate]);
|
|
1760
|
+
const endInputMin = React22.useMemo(() => startDate ?? minDate, [startDate, minDate]);
|
|
1761
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1709
1762
|
className: classnames7__default.default(TimelineInput_default.timeline, className)
|
|
1710
|
-
}, /* @__PURE__ */
|
|
1763
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1711
1764
|
className: TimelineInput_default.labels
|
|
1712
|
-
}, /* @__PURE__ */
|
|
1765
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", null, formatDateForDisplay(startDate, "\u2014")), /* @__PURE__ */ React22__default.default.createElement("span", null, "to"), /* @__PURE__ */ React22__default.default.createElement("span", null, formatDateForDisplay(endDate, "\u2014")), (startDate || endDate) && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
1713
1766
|
type: "button",
|
|
1714
1767
|
className: TimelineInput_default.clearButton,
|
|
1715
1768
|
onClick: handleClear,
|
|
1716
1769
|
"aria-label": "Clear range"
|
|
1717
|
-
}, "\xD7")), /* @__PURE__ */
|
|
1770
|
+
}, "\xD7")), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1718
1771
|
className: TimelineInput_default.brush
|
|
1719
|
-
}, /* @__PURE__ */
|
|
1772
|
+
}, /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
1720
1773
|
type: "date",
|
|
1721
1774
|
className: TimelineInput_default.input,
|
|
1722
1775
|
value: formatDateForInput(startDate),
|
|
@@ -1724,7 +1777,7 @@ function TimelineInputInner({
|
|
|
1724
1777
|
min: minDate ? formatDateForInput(minDate) : void 0,
|
|
1725
1778
|
max: startInputMax ? formatDateForInput(startInputMax) : void 0,
|
|
1726
1779
|
"aria-label": "Start date"
|
|
1727
|
-
}), /* @__PURE__ */
|
|
1780
|
+
}), /* @__PURE__ */ React22__default.default.createElement("span", null, "\u2014"), /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
1728
1781
|
type: "date",
|
|
1729
1782
|
className: TimelineInput_default.input,
|
|
1730
1783
|
value: formatDateForInput(endDate),
|
|
@@ -1734,7 +1787,7 @@ function TimelineInputInner({
|
|
|
1734
1787
|
"aria-label": "End date"
|
|
1735
1788
|
})));
|
|
1736
1789
|
}
|
|
1737
|
-
var TimelineInput = /* @__PURE__ */
|
|
1790
|
+
var TimelineInput = /* @__PURE__ */ React22.memo(TimelineInputInner);
|
|
1738
1791
|
|
|
1739
1792
|
// src/base-components/switch/Switch.module.css
|
|
1740
1793
|
var Switch_default = {};
|
|
@@ -1754,9 +1807,9 @@ function Switch({
|
|
|
1754
1807
|
thumbProps,
|
|
1755
1808
|
...rest
|
|
1756
1809
|
}) {
|
|
1757
|
-
return /* @__PURE__ */
|
|
1810
|
+
return /* @__PURE__ */ React22__default.default.createElement(_switch.Switch.Root, _extends7({
|
|
1758
1811
|
className: classnames7__default.default(Switch_default.osdkSwitchRoot, className)
|
|
1759
|
-
}, rest), /* @__PURE__ */
|
|
1812
|
+
}, rest), /* @__PURE__ */ React22__default.default.createElement(_switch.Switch.Thumb, _extends7({}, thumbProps, {
|
|
1760
1813
|
className: classnames7__default.default(Switch_default.osdkSwitchThumb, thumbProps?.className)
|
|
1761
1814
|
})));
|
|
1762
1815
|
}
|
|
@@ -1773,20 +1826,20 @@ function ToggleInputInner({
|
|
|
1773
1826
|
style
|
|
1774
1827
|
}) {
|
|
1775
1828
|
const rootClassName = classnames7__default.default(ToggleInput_default.toggleInput, className);
|
|
1776
|
-
return /* @__PURE__ */
|
|
1829
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1777
1830
|
className: rootClassName,
|
|
1778
1831
|
style,
|
|
1779
1832
|
"data-enabled": enabled
|
|
1780
|
-
}, /* @__PURE__ */
|
|
1833
|
+
}, /* @__PURE__ */ React22__default.default.createElement("label", {
|
|
1781
1834
|
className: ToggleInput_default.toggleLabel
|
|
1782
|
-
}, /* @__PURE__ */
|
|
1835
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Switch, {
|
|
1783
1836
|
checked: enabled,
|
|
1784
1837
|
onCheckedChange: onChange
|
|
1785
|
-
}), label && /* @__PURE__ */
|
|
1838
|
+
}), label && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
1786
1839
|
className: ToggleInput_default.labelText
|
|
1787
1840
|
}, label)));
|
|
1788
1841
|
}
|
|
1789
|
-
var ToggleInput = /* @__PURE__ */
|
|
1842
|
+
var ToggleInput = /* @__PURE__ */ React22.memo(ToggleInputInner);
|
|
1790
1843
|
|
|
1791
1844
|
// src/filter-list/base/inputs/LinkedPropertyInput.tsx
|
|
1792
1845
|
function LinkedPropertyInputInner({
|
|
@@ -1797,45 +1850,45 @@ function LinkedPropertyInputInner({
|
|
|
1797
1850
|
className,
|
|
1798
1851
|
style
|
|
1799
1852
|
}) {
|
|
1800
|
-
const linkedObjectSet =
|
|
1853
|
+
const linkedObjectSet = React22.useMemo(() => objectSet.pivotTo(definition.linkName), [objectSet, definition.linkName]);
|
|
1801
1854
|
const linkedObjectType = linkedObjectSet.$objectSetInternals.def;
|
|
1802
1855
|
const linkedPropertyKey = definition.linkedPropertyKey;
|
|
1803
1856
|
const innerState = filterState?.type === "linkedProperty" ? filterState.linkedFilterState : void 0;
|
|
1804
1857
|
const isExcluding = innerState?.isExcluding ?? false;
|
|
1805
1858
|
const includeNull = innerState?.includeNull;
|
|
1806
|
-
const wrappedOnChange =
|
|
1859
|
+
const wrappedOnChange = React22.useCallback((innerFilterState) => {
|
|
1807
1860
|
onFilterStateChanged({
|
|
1808
1861
|
type: "linkedProperty",
|
|
1809
1862
|
linkedFilterState: innerFilterState
|
|
1810
1863
|
});
|
|
1811
1864
|
}, [onFilterStateChanged]);
|
|
1812
|
-
const onSelectChange =
|
|
1865
|
+
const onSelectChange = React22.useCallback((selectedValues) => {
|
|
1813
1866
|
wrappedOnChange({
|
|
1814
1867
|
type: "SELECT",
|
|
1815
1868
|
selectedValues,
|
|
1816
1869
|
isExcluding
|
|
1817
1870
|
});
|
|
1818
1871
|
}, [wrappedOnChange, isExcluding]);
|
|
1819
|
-
const onSingleSelectChange =
|
|
1872
|
+
const onSingleSelectChange = React22.useCallback((selectedValue) => {
|
|
1820
1873
|
wrappedOnChange({
|
|
1821
1874
|
type: "SELECT",
|
|
1822
1875
|
selectedValues: selectedValue !== void 0 ? [selectedValue] : [],
|
|
1823
1876
|
isExcluding
|
|
1824
1877
|
});
|
|
1825
1878
|
}, [wrappedOnChange, isExcluding]);
|
|
1826
|
-
const onContainsTextChange =
|
|
1879
|
+
const onContainsTextChange = React22.useCallback((value) => {
|
|
1827
1880
|
wrappedOnChange({
|
|
1828
1881
|
type: "CONTAINS_TEXT",
|
|
1829
1882
|
value
|
|
1830
1883
|
});
|
|
1831
1884
|
}, [wrappedOnChange]);
|
|
1832
|
-
const onToggleChange =
|
|
1885
|
+
const onToggleChange = React22.useCallback((enabled) => {
|
|
1833
1886
|
wrappedOnChange({
|
|
1834
1887
|
type: "TOGGLE",
|
|
1835
1888
|
enabled
|
|
1836
1889
|
});
|
|
1837
1890
|
}, [wrappedOnChange]);
|
|
1838
|
-
const onNumberRangeChange =
|
|
1891
|
+
const onNumberRangeChange = React22.useCallback((minValue, maxValue) => {
|
|
1839
1892
|
wrappedOnChange({
|
|
1840
1893
|
type: "NUMBER_RANGE",
|
|
1841
1894
|
minValue,
|
|
@@ -1843,7 +1896,7 @@ function LinkedPropertyInputInner({
|
|
|
1843
1896
|
includeNull
|
|
1844
1897
|
});
|
|
1845
1898
|
}, [wrappedOnChange, includeNull]);
|
|
1846
|
-
const onDateRangeChange =
|
|
1899
|
+
const onDateRangeChange = React22.useCallback((minValue, maxValue) => {
|
|
1847
1900
|
wrappedOnChange({
|
|
1848
1901
|
type: "DATE_RANGE",
|
|
1849
1902
|
minValue,
|
|
@@ -1851,27 +1904,27 @@ function LinkedPropertyInputInner({
|
|
|
1851
1904
|
includeNull
|
|
1852
1905
|
});
|
|
1853
1906
|
}, [wrappedOnChange, includeNull]);
|
|
1854
|
-
const onExactMatchChange =
|
|
1907
|
+
const onExactMatchChange = React22.useCallback((values) => {
|
|
1855
1908
|
wrappedOnChange({
|
|
1856
1909
|
type: "EXACT_MATCH",
|
|
1857
1910
|
values,
|
|
1858
1911
|
isExcluding
|
|
1859
1912
|
});
|
|
1860
1913
|
}, [wrappedOnChange, isExcluding]);
|
|
1861
|
-
const onDateSelectChange =
|
|
1914
|
+
const onDateSelectChange = React22.useCallback((date) => {
|
|
1862
1915
|
wrappedOnChange({
|
|
1863
1916
|
type: "SELECT",
|
|
1864
1917
|
selectedValues: date !== void 0 ? [date] : [],
|
|
1865
1918
|
isExcluding
|
|
1866
1919
|
});
|
|
1867
1920
|
}, [wrappedOnChange, isExcluding]);
|
|
1868
|
-
const onMultiDateChange =
|
|
1921
|
+
const onMultiDateChange = React22.useCallback((dates) => {
|
|
1869
1922
|
wrappedOnChange({
|
|
1870
1923
|
type: "SELECT",
|
|
1871
1924
|
selectedValues: dates
|
|
1872
1925
|
});
|
|
1873
1926
|
}, [wrappedOnChange]);
|
|
1874
|
-
const onTimelineChange =
|
|
1927
|
+
const onTimelineChange = React22.useCallback((start, end) => {
|
|
1875
1928
|
wrappedOnChange({
|
|
1876
1929
|
type: "TIMELINE",
|
|
1877
1930
|
startDate: start,
|
|
@@ -1879,15 +1932,15 @@ function LinkedPropertyInputInner({
|
|
|
1879
1932
|
isExcluding
|
|
1880
1933
|
});
|
|
1881
1934
|
}, [wrappedOnChange, isExcluding]);
|
|
1882
|
-
const selectStringValues =
|
|
1883
|
-
const singleSelectValue =
|
|
1884
|
-
const exactMatchValues =
|
|
1885
|
-
const selectedDates =
|
|
1886
|
-
const selectedDate =
|
|
1935
|
+
const selectStringValues = React22.useMemo(() => innerState?.type === "SELECT" ? coerceToStringArray(innerState.selectedValues) : [], [innerState]);
|
|
1936
|
+
const singleSelectValue = React22.useMemo(() => innerState?.type === "SELECT" ? coerceToString(innerState.selectedValues[0]) : void 0, [innerState]);
|
|
1937
|
+
const exactMatchValues = React22.useMemo(() => innerState?.type === "EXACT_MATCH" ? coerceToStringArray(innerState.values) : [], [innerState]);
|
|
1938
|
+
const selectedDates = React22.useMemo(() => innerState?.type === "SELECT" ? innerState.selectedValues.filter((v) => v instanceof Date) : [], [innerState]);
|
|
1939
|
+
const selectedDate = React22.useMemo(() => innerState?.type === "SELECT" && innerState.selectedValues[0] instanceof Date ? innerState.selectedValues[0] : void 0, [innerState]);
|
|
1887
1940
|
const content = (() => {
|
|
1888
1941
|
switch (definition.linkedFilterComponent) {
|
|
1889
1942
|
case "CHECKBOX_LIST":
|
|
1890
|
-
return /* @__PURE__ */
|
|
1943
|
+
return /* @__PURE__ */ React22__default.default.createElement(CheckboxListInput, {
|
|
1891
1944
|
objectType: linkedObjectType,
|
|
1892
1945
|
objectSet: linkedObjectSet,
|
|
1893
1946
|
propertyKey: linkedPropertyKey,
|
|
@@ -1895,7 +1948,7 @@ function LinkedPropertyInputInner({
|
|
|
1895
1948
|
onChange: onSelectChange
|
|
1896
1949
|
});
|
|
1897
1950
|
case "MULTI_SELECT":
|
|
1898
|
-
return /* @__PURE__ */
|
|
1951
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiSelectInput, {
|
|
1899
1952
|
objectType: linkedObjectType,
|
|
1900
1953
|
objectSet: linkedObjectSet,
|
|
1901
1954
|
propertyKey: linkedPropertyKey,
|
|
@@ -1903,7 +1956,7 @@ function LinkedPropertyInputInner({
|
|
|
1903
1956
|
onChange: onSelectChange
|
|
1904
1957
|
});
|
|
1905
1958
|
case "SINGLE_SELECT":
|
|
1906
|
-
return /* @__PURE__ */
|
|
1959
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleSelectInput, {
|
|
1907
1960
|
objectType: linkedObjectType,
|
|
1908
1961
|
objectSet: linkedObjectSet,
|
|
1909
1962
|
propertyKey: linkedPropertyKey,
|
|
@@ -1911,19 +1964,19 @@ function LinkedPropertyInputInner({
|
|
|
1911
1964
|
onChange: onSingleSelectChange
|
|
1912
1965
|
});
|
|
1913
1966
|
case "CONTAINS_TEXT":
|
|
1914
|
-
return /* @__PURE__ */
|
|
1967
|
+
return /* @__PURE__ */ React22__default.default.createElement(ContainsTextInput, {
|
|
1915
1968
|
value: innerState?.type === "CONTAINS_TEXT" ? innerState.value : void 0,
|
|
1916
1969
|
onChange: onContainsTextChange,
|
|
1917
1970
|
placeholder: `Search ${String(definition.linkedPropertyKey)}...`
|
|
1918
1971
|
});
|
|
1919
1972
|
case "TOGGLE":
|
|
1920
|
-
return /* @__PURE__ */
|
|
1973
|
+
return /* @__PURE__ */ React22__default.default.createElement(ToggleInput, {
|
|
1921
1974
|
enabled: innerState?.type === "TOGGLE" ? innerState.enabled : false,
|
|
1922
1975
|
onChange: onToggleChange
|
|
1923
1976
|
});
|
|
1924
1977
|
case "NUMBER_RANGE": {
|
|
1925
1978
|
const numberRange = innerState?.type === "NUMBER_RANGE" ? innerState : void 0;
|
|
1926
|
-
return /* @__PURE__ */
|
|
1979
|
+
return /* @__PURE__ */ React22__default.default.createElement(NumberRangeInput, {
|
|
1927
1980
|
objectType: linkedObjectType,
|
|
1928
1981
|
objectSet: linkedObjectSet,
|
|
1929
1982
|
propertyKey: linkedPropertyKey,
|
|
@@ -1934,7 +1987,7 @@ function LinkedPropertyInputInner({
|
|
|
1934
1987
|
}
|
|
1935
1988
|
case "DATE_RANGE": {
|
|
1936
1989
|
const dateRange = innerState?.type === "DATE_RANGE" ? innerState : void 0;
|
|
1937
|
-
return /* @__PURE__ */
|
|
1990
|
+
return /* @__PURE__ */ React22__default.default.createElement(DateRangeInput, {
|
|
1938
1991
|
objectType: linkedObjectType,
|
|
1939
1992
|
objectSet: linkedObjectSet,
|
|
1940
1993
|
propertyKey: linkedPropertyKey,
|
|
@@ -1944,7 +1997,7 @@ function LinkedPropertyInputInner({
|
|
|
1944
1997
|
});
|
|
1945
1998
|
}
|
|
1946
1999
|
case "LISTOGRAM":
|
|
1947
|
-
return /* @__PURE__ */
|
|
2000
|
+
return /* @__PURE__ */ React22__default.default.createElement(ListogramInput, {
|
|
1948
2001
|
objectType: linkedObjectType,
|
|
1949
2002
|
objectSet: linkedObjectSet,
|
|
1950
2003
|
propertyKey: linkedPropertyKey,
|
|
@@ -1952,7 +2005,7 @@ function LinkedPropertyInputInner({
|
|
|
1952
2005
|
onChange: onExactMatchChange
|
|
1953
2006
|
});
|
|
1954
2007
|
case "TEXT_TAGS":
|
|
1955
|
-
return /* @__PURE__ */
|
|
2008
|
+
return /* @__PURE__ */ React22__default.default.createElement(TextTagsInput, {
|
|
1956
2009
|
objectType: linkedObjectType,
|
|
1957
2010
|
objectSet: linkedObjectSet,
|
|
1958
2011
|
propertyKey: linkedPropertyKey,
|
|
@@ -1960,20 +2013,20 @@ function LinkedPropertyInputInner({
|
|
|
1960
2013
|
onChange: onExactMatchChange
|
|
1961
2014
|
});
|
|
1962
2015
|
case "SINGLE_DATE":
|
|
1963
|
-
return /* @__PURE__ */
|
|
2016
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleDateInput, {
|
|
1964
2017
|
selectedDate,
|
|
1965
2018
|
onChange: onDateSelectChange,
|
|
1966
2019
|
showClearButton: true
|
|
1967
2020
|
});
|
|
1968
2021
|
case "MULTI_DATE":
|
|
1969
|
-
return /* @__PURE__ */
|
|
2022
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiDateInput, {
|
|
1970
2023
|
selectedDates,
|
|
1971
2024
|
onChange: onMultiDateChange,
|
|
1972
2025
|
showClearAll: true
|
|
1973
2026
|
});
|
|
1974
2027
|
case "TIMELINE": {
|
|
1975
2028
|
const timeline = innerState?.type === "TIMELINE" ? innerState : void 0;
|
|
1976
|
-
return /* @__PURE__ */
|
|
2029
|
+
return /* @__PURE__ */ React22__default.default.createElement(TimelineInput, {
|
|
1977
2030
|
startDate: timeline?.startDate,
|
|
1978
2031
|
endDate: timeline?.endDate,
|
|
1979
2032
|
onChange: onTimelineChange
|
|
@@ -1983,12 +2036,12 @@ function LinkedPropertyInputInner({
|
|
|
1983
2036
|
return assertUnreachable(definition.linkedFilterComponent);
|
|
1984
2037
|
}
|
|
1985
2038
|
})();
|
|
1986
|
-
return /* @__PURE__ */
|
|
2039
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
1987
2040
|
className: classnames7__default.default(LinkedPropertyInput_default.linkedProperty, className),
|
|
1988
2041
|
style
|
|
1989
2042
|
}, content);
|
|
1990
2043
|
}
|
|
1991
|
-
var LinkedPropertyInput = /* @__PURE__ */
|
|
2044
|
+
var LinkedPropertyInput = /* @__PURE__ */ React22.memo(LinkedPropertyInputInner);
|
|
1992
2045
|
|
|
1993
2046
|
// src/filter-list/base/inputs/NullValueWrapper.module.css
|
|
1994
2047
|
var NullValueWrapper_default = {};
|
|
@@ -2004,8 +2057,8 @@ function NullValueWrapperInner({
|
|
|
2004
2057
|
className,
|
|
2005
2058
|
style
|
|
2006
2059
|
}) {
|
|
2007
|
-
const nullCountAggregateOptions =
|
|
2008
|
-
const nullWhereClause =
|
|
2060
|
+
const nullCountAggregateOptions = React22.useMemo(() => createNullCountAggregateOptions(), []);
|
|
2061
|
+
const nullWhereClause = React22.useMemo(() => createNullWhereClause(propertyKey), [propertyKey]);
|
|
2009
2062
|
const {
|
|
2010
2063
|
data: nullCountData,
|
|
2011
2064
|
isLoading,
|
|
@@ -2014,7 +2067,7 @@ function NullValueWrapperInner({
|
|
|
2014
2067
|
where: nullWhereClause,
|
|
2015
2068
|
aggregate: nullCountAggregateOptions
|
|
2016
2069
|
});
|
|
2017
|
-
const nullCount =
|
|
2070
|
+
const nullCount = React22.useMemo(() => {
|
|
2018
2071
|
if (!nullCountData) return 0;
|
|
2019
2072
|
const result = nullCountData;
|
|
2020
2073
|
if ("$count" in result && typeof result.$count === "number") {
|
|
@@ -2022,30 +2075,30 @@ function NullValueWrapperInner({
|
|
|
2022
2075
|
}
|
|
2023
2076
|
return 0;
|
|
2024
2077
|
}, [nullCountData]);
|
|
2025
|
-
const handleToggle =
|
|
2078
|
+
const handleToggle = React22.useCallback(() => {
|
|
2026
2079
|
onIncludeNullChange(!includeNull);
|
|
2027
2080
|
}, [includeNull, onIncludeNullChange]);
|
|
2028
|
-
return /* @__PURE__ */
|
|
2081
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2029
2082
|
className: classnames7__default.default(NullValueWrapper_default.nullWrapper, className),
|
|
2030
2083
|
style
|
|
2031
|
-
}, children, /* @__PURE__ */
|
|
2084
|
+
}, children, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2032
2085
|
className: NullValueWrapper_default.nullValueRow,
|
|
2033
2086
|
"data-checked": includeNull,
|
|
2034
2087
|
"data-loading": isLoading
|
|
2035
|
-
}, /* @__PURE__ */
|
|
2088
|
+
}, /* @__PURE__ */ React22__default.default.createElement("label", {
|
|
2036
2089
|
className: NullValueWrapper_default.nullLabel
|
|
2037
|
-
}, /* @__PURE__ */
|
|
2090
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
2038
2091
|
checked: includeNull,
|
|
2039
2092
|
onCheckedChange: handleToggle
|
|
2040
|
-
}), /* @__PURE__ */
|
|
2093
|
+
}), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2041
2094
|
className: NullValueWrapper_default.nullLabelText
|
|
2042
|
-
}, "No value")), showNullCount && !error && nullCount > 0 && /* @__PURE__ */
|
|
2095
|
+
}, "No value")), showNullCount && !error && nullCount > 0 && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2043
2096
|
className: NullValueWrapper_default.count
|
|
2044
|
-
}, nullCount.toLocaleString())), error && /* @__PURE__ */
|
|
2097
|
+
}, nullCount.toLocaleString())), error && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2045
2098
|
className: shared_default.errorMessage
|
|
2046
2099
|
}, "Failed to load null count"));
|
|
2047
2100
|
}
|
|
2048
|
-
var NullValueWrapper = /* @__PURE__ */
|
|
2101
|
+
var NullValueWrapper = /* @__PURE__ */ React22.memo(NullValueWrapperInner);
|
|
2049
2102
|
|
|
2050
2103
|
// src/filter-list/base/FilterInput.tsx
|
|
2051
2104
|
function FilterInputInner({
|
|
@@ -2056,7 +2109,7 @@ function FilterInputInner({
|
|
|
2056
2109
|
onFilterStateChanged,
|
|
2057
2110
|
whereClause
|
|
2058
2111
|
}) {
|
|
2059
|
-
return /* @__PURE__ */
|
|
2112
|
+
return /* @__PURE__ */ React22__default.default.createElement(FilterInputContent, {
|
|
2060
2113
|
objectType,
|
|
2061
2114
|
objectSet,
|
|
2062
2115
|
definition,
|
|
@@ -2065,7 +2118,7 @@ function FilterInputInner({
|
|
|
2065
2118
|
whereClause
|
|
2066
2119
|
});
|
|
2067
2120
|
}
|
|
2068
|
-
var FilterInput = /* @__PURE__ */
|
|
2121
|
+
var FilterInput = /* @__PURE__ */ React22.memo(FilterInputInner);
|
|
2069
2122
|
function FilterInputContent({
|
|
2070
2123
|
objectType,
|
|
2071
2124
|
objectSet,
|
|
@@ -2076,38 +2129,38 @@ function FilterInputContent({
|
|
|
2076
2129
|
}) {
|
|
2077
2130
|
switch (definition.type) {
|
|
2078
2131
|
case "HAS_LINK":
|
|
2079
|
-
return /* @__PURE__ */
|
|
2132
|
+
return /* @__PURE__ */ React22__default.default.createElement(HasLinkInput, {
|
|
2080
2133
|
filterState,
|
|
2081
2134
|
onFilterStateChanged
|
|
2082
2135
|
});
|
|
2083
2136
|
case "LINKED_PROPERTY":
|
|
2084
|
-
return /* @__PURE__ */
|
|
2137
|
+
return /* @__PURE__ */ React22__default.default.createElement(LinkedPropertyInput, {
|
|
2085
2138
|
objectSet,
|
|
2086
2139
|
definition,
|
|
2087
2140
|
filterState,
|
|
2088
2141
|
onFilterStateChanged
|
|
2089
2142
|
});
|
|
2090
2143
|
case "KEYWORD_SEARCH":
|
|
2091
|
-
return /* @__PURE__ */
|
|
2144
|
+
return /* @__PURE__ */ React22__default.default.createElement(KeywordSearchInput, {
|
|
2092
2145
|
filterState,
|
|
2093
2146
|
onFilterStateChanged,
|
|
2094
2147
|
placeholder: definition.label ?? "Search..."
|
|
2095
2148
|
});
|
|
2096
2149
|
case "CUSTOM": {
|
|
2097
2150
|
if (!definition.renderInput) {
|
|
2098
|
-
return /* @__PURE__ */
|
|
2151
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2099
2152
|
"data-unsupported": "true"
|
|
2100
2153
|
}, "Custom filter missing renderInput");
|
|
2101
2154
|
}
|
|
2102
2155
|
const customFilterState = filterState?.type === "custom" ? filterState : definition.filterState;
|
|
2103
|
-
return /* @__PURE__ */
|
|
2156
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, definition.renderInput({
|
|
2104
2157
|
objectSet,
|
|
2105
2158
|
filterState: customFilterState,
|
|
2106
2159
|
onFilterStateChanged: (state) => onFilterStateChanged(state)
|
|
2107
2160
|
}));
|
|
2108
2161
|
}
|
|
2109
2162
|
case "PROPERTY":
|
|
2110
|
-
return /* @__PURE__ */
|
|
2163
|
+
return /* @__PURE__ */ React22__default.default.createElement(PropertyFilterInput, {
|
|
2111
2164
|
objectType,
|
|
2112
2165
|
objectSet,
|
|
2113
2166
|
definition,
|
|
@@ -2116,42 +2169,42 @@ function FilterInputContent({
|
|
|
2116
2169
|
whereClause
|
|
2117
2170
|
});
|
|
2118
2171
|
default:
|
|
2119
|
-
return /* @__PURE__ */
|
|
2172
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2120
2173
|
"data-unsupported": "true"
|
|
2121
2174
|
}, "Unsupported filter type");
|
|
2122
2175
|
}
|
|
2123
2176
|
}
|
|
2124
|
-
var HasLinkInput = /* @__PURE__ */
|
|
2177
|
+
var HasLinkInput = /* @__PURE__ */ React22.memo(function HasLinkInput2({
|
|
2125
2178
|
filterState,
|
|
2126
2179
|
onFilterStateChanged
|
|
2127
2180
|
}) {
|
|
2128
2181
|
const hasLink = filterState?.type === "hasLink" ? filterState.hasLink : false;
|
|
2129
|
-
const handleChange =
|
|
2182
|
+
const handleChange = React22.useCallback((hasLink2) => {
|
|
2130
2183
|
onFilterStateChanged({
|
|
2131
2184
|
type: "hasLink",
|
|
2132
2185
|
hasLink: hasLink2
|
|
2133
2186
|
});
|
|
2134
2187
|
}, [onFilterStateChanged]);
|
|
2135
|
-
return /* @__PURE__ */
|
|
2188
|
+
return /* @__PURE__ */ React22__default.default.createElement(ToggleInput, {
|
|
2136
2189
|
enabled: hasLink,
|
|
2137
2190
|
onChange: handleChange
|
|
2138
2191
|
});
|
|
2139
2192
|
});
|
|
2140
|
-
var KeywordSearchInput = /* @__PURE__ */
|
|
2193
|
+
var KeywordSearchInput = /* @__PURE__ */ React22.memo(function KeywordSearchInput2({
|
|
2141
2194
|
filterState,
|
|
2142
2195
|
onFilterStateChanged,
|
|
2143
2196
|
placeholder
|
|
2144
2197
|
}) {
|
|
2145
2198
|
const searchTerm = filterState?.type === "keywordSearch" ? filterState.searchTerm : void 0;
|
|
2146
2199
|
const operator = filterState?.type === "keywordSearch" ? filterState.operator : "AND";
|
|
2147
|
-
const handleChange =
|
|
2200
|
+
const handleChange = React22.useCallback((newSearchTerm) => {
|
|
2148
2201
|
onFilterStateChanged({
|
|
2149
2202
|
type: "keywordSearch",
|
|
2150
2203
|
searchTerm: newSearchTerm ?? "",
|
|
2151
2204
|
operator
|
|
2152
2205
|
});
|
|
2153
2206
|
}, [onFilterStateChanged, operator]);
|
|
2154
|
-
return /* @__PURE__ */
|
|
2207
|
+
return /* @__PURE__ */ React22__default.default.createElement(ContainsTextInput, {
|
|
2155
2208
|
value: searchTerm,
|
|
2156
2209
|
onChange: handleChange,
|
|
2157
2210
|
placeholder
|
|
@@ -2167,7 +2220,7 @@ function PropertyFilterInputInner({
|
|
|
2167
2220
|
}) {
|
|
2168
2221
|
switch (definition.filterComponent) {
|
|
2169
2222
|
case "CHECKBOX_LIST":
|
|
2170
|
-
return /* @__PURE__ */
|
|
2223
|
+
return /* @__PURE__ */ React22__default.default.createElement(CheckboxListFilterInput, {
|
|
2171
2224
|
objectType,
|
|
2172
2225
|
objectSet,
|
|
2173
2226
|
propertyKey: definition.key,
|
|
@@ -2176,32 +2229,32 @@ function PropertyFilterInputInner({
|
|
|
2176
2229
|
whereClause
|
|
2177
2230
|
});
|
|
2178
2231
|
case "CONTAINS_TEXT":
|
|
2179
|
-
return /* @__PURE__ */
|
|
2232
|
+
return /* @__PURE__ */ React22__default.default.createElement(ContainsTextFilterInput, {
|
|
2180
2233
|
propertyKey: definition.key,
|
|
2181
2234
|
filterState,
|
|
2182
2235
|
onFilterStateChanged
|
|
2183
2236
|
});
|
|
2184
2237
|
case "TOGGLE":
|
|
2185
|
-
return /* @__PURE__ */
|
|
2238
|
+
return /* @__PURE__ */ React22__default.default.createElement(ToggleFilterInput, {
|
|
2186
2239
|
filterState,
|
|
2187
2240
|
onFilterStateChanged
|
|
2188
2241
|
});
|
|
2189
2242
|
case "NUMBER_RANGE":
|
|
2190
|
-
return /* @__PURE__ */
|
|
2243
|
+
return /* @__PURE__ */ React22__default.default.createElement(NumberRangeFilterInput, {
|
|
2191
2244
|
objectType,
|
|
2192
2245
|
propertyKey: definition.key,
|
|
2193
2246
|
filterState,
|
|
2194
2247
|
onFilterStateChanged
|
|
2195
2248
|
});
|
|
2196
2249
|
case "DATE_RANGE":
|
|
2197
|
-
return /* @__PURE__ */
|
|
2250
|
+
return /* @__PURE__ */ React22__default.default.createElement(DateRangeFilterInput, {
|
|
2198
2251
|
objectType,
|
|
2199
2252
|
propertyKey: definition.key,
|
|
2200
2253
|
filterState,
|
|
2201
2254
|
onFilterStateChanged
|
|
2202
2255
|
});
|
|
2203
2256
|
case "SINGLE_SELECT":
|
|
2204
|
-
return /* @__PURE__ */
|
|
2257
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleSelectFilterInput, {
|
|
2205
2258
|
objectType,
|
|
2206
2259
|
propertyKey: definition.key,
|
|
2207
2260
|
filterState,
|
|
@@ -2209,7 +2262,7 @@ function PropertyFilterInputInner({
|
|
|
2209
2262
|
whereClause
|
|
2210
2263
|
});
|
|
2211
2264
|
case "MULTI_SELECT":
|
|
2212
|
-
return /* @__PURE__ */
|
|
2265
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiSelectFilterInput, {
|
|
2213
2266
|
objectType,
|
|
2214
2267
|
propertyKey: definition.key,
|
|
2215
2268
|
filterState,
|
|
@@ -2217,17 +2270,17 @@ function PropertyFilterInputInner({
|
|
|
2217
2270
|
whereClause
|
|
2218
2271
|
});
|
|
2219
2272
|
case "SINGLE_DATE":
|
|
2220
|
-
return /* @__PURE__ */
|
|
2273
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleDateFilterInput, {
|
|
2221
2274
|
filterState,
|
|
2222
2275
|
onFilterStateChanged
|
|
2223
2276
|
});
|
|
2224
2277
|
case "MULTI_DATE":
|
|
2225
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiDateFilterInput, {
|
|
2226
2279
|
filterState,
|
|
2227
2280
|
onFilterStateChanged
|
|
2228
2281
|
});
|
|
2229
2282
|
case "LISTOGRAM":
|
|
2230
|
-
return /* @__PURE__ */
|
|
2283
|
+
return /* @__PURE__ */ React22__default.default.createElement(ListogramFilterInput, {
|
|
2231
2284
|
objectType,
|
|
2232
2285
|
propertyKey: definition.key,
|
|
2233
2286
|
filterState,
|
|
@@ -2235,7 +2288,7 @@ function PropertyFilterInputInner({
|
|
|
2235
2288
|
whereClause
|
|
2236
2289
|
});
|
|
2237
2290
|
case "TEXT_TAGS":
|
|
2238
|
-
return /* @__PURE__ */
|
|
2291
|
+
return /* @__PURE__ */ React22__default.default.createElement(TextTagsFilterInput, {
|
|
2239
2292
|
objectType,
|
|
2240
2293
|
propertyKey: definition.key,
|
|
2241
2294
|
filterState,
|
|
@@ -2243,17 +2296,17 @@ function PropertyFilterInputInner({
|
|
|
2243
2296
|
whereClause
|
|
2244
2297
|
});
|
|
2245
2298
|
case "TIMELINE":
|
|
2246
|
-
return /* @__PURE__ */
|
|
2299
|
+
return /* @__PURE__ */ React22__default.default.createElement(TimelineFilterInput, {
|
|
2247
2300
|
filterState,
|
|
2248
2301
|
onFilterStateChanged
|
|
2249
2302
|
});
|
|
2250
2303
|
default:
|
|
2251
|
-
return /* @__PURE__ */
|
|
2304
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2252
2305
|
"data-unsupported": "true"
|
|
2253
2306
|
}, "Unsupported filter component: ", definition.filterComponent);
|
|
2254
2307
|
}
|
|
2255
2308
|
}
|
|
2256
|
-
var PropertyFilterInput = /* @__PURE__ */
|
|
2309
|
+
var PropertyFilterInput = /* @__PURE__ */ React22.memo(PropertyFilterInputInner);
|
|
2257
2310
|
function CheckboxListFilterInputInner({
|
|
2258
2311
|
objectType,
|
|
2259
2312
|
objectSet,
|
|
@@ -2262,16 +2315,16 @@ function CheckboxListFilterInputInner({
|
|
|
2262
2315
|
onFilterStateChanged,
|
|
2263
2316
|
whereClause
|
|
2264
2317
|
}) {
|
|
2265
|
-
const selectedValues =
|
|
2318
|
+
const selectedValues = React22.useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
|
|
2266
2319
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2267
|
-
const handleChange =
|
|
2320
|
+
const handleChange = React22.useCallback((newSelectedValues) => {
|
|
2268
2321
|
onFilterStateChanged({
|
|
2269
2322
|
type: "SELECT",
|
|
2270
2323
|
selectedValues: newSelectedValues,
|
|
2271
2324
|
isExcluding
|
|
2272
2325
|
});
|
|
2273
2326
|
}, [onFilterStateChanged, isExcluding]);
|
|
2274
|
-
return /* @__PURE__ */
|
|
2327
|
+
return /* @__PURE__ */ React22__default.default.createElement(CheckboxListInput, {
|
|
2275
2328
|
objectType,
|
|
2276
2329
|
objectSet,
|
|
2277
2330
|
propertyKey,
|
|
@@ -2280,37 +2333,37 @@ function CheckboxListFilterInputInner({
|
|
|
2280
2333
|
whereClause
|
|
2281
2334
|
});
|
|
2282
2335
|
}
|
|
2283
|
-
var CheckboxListFilterInput = /* @__PURE__ */
|
|
2284
|
-
var ContainsTextFilterInput = /* @__PURE__ */
|
|
2336
|
+
var CheckboxListFilterInput = /* @__PURE__ */ React22.memo(CheckboxListFilterInputInner);
|
|
2337
|
+
var ContainsTextFilterInput = /* @__PURE__ */ React22.memo(function ContainsTextFilterInput2({
|
|
2285
2338
|
propertyKey,
|
|
2286
2339
|
filterState,
|
|
2287
2340
|
onFilterStateChanged
|
|
2288
2341
|
}) {
|
|
2289
|
-
const value =
|
|
2290
|
-
const handleChange =
|
|
2342
|
+
const value = React22.useMemo(() => filterState?.type === "CONTAINS_TEXT" ? filterState.value : void 0, [filterState]);
|
|
2343
|
+
const handleChange = React22.useCallback((value2) => {
|
|
2291
2344
|
onFilterStateChanged({
|
|
2292
2345
|
type: "CONTAINS_TEXT",
|
|
2293
2346
|
value: value2
|
|
2294
2347
|
});
|
|
2295
2348
|
}, [onFilterStateChanged]);
|
|
2296
|
-
return /* @__PURE__ */
|
|
2349
|
+
return /* @__PURE__ */ React22__default.default.createElement(ContainsTextInput, {
|
|
2297
2350
|
value,
|
|
2298
2351
|
onChange: handleChange,
|
|
2299
2352
|
placeholder: `Search ${propertyKey}...`
|
|
2300
2353
|
});
|
|
2301
2354
|
});
|
|
2302
|
-
var ToggleFilterInput = /* @__PURE__ */
|
|
2355
|
+
var ToggleFilterInput = /* @__PURE__ */ React22.memo(function ToggleFilterInput2({
|
|
2303
2356
|
filterState,
|
|
2304
2357
|
onFilterStateChanged
|
|
2305
2358
|
}) {
|
|
2306
2359
|
const enabled = filterState?.type === "TOGGLE" ? filterState.enabled : false;
|
|
2307
|
-
const handleChange =
|
|
2360
|
+
const handleChange = React22.useCallback((enabled2) => {
|
|
2308
2361
|
onFilterStateChanged({
|
|
2309
2362
|
type: "TOGGLE",
|
|
2310
2363
|
enabled: enabled2
|
|
2311
2364
|
});
|
|
2312
2365
|
}, [onFilterStateChanged]);
|
|
2313
|
-
return /* @__PURE__ */
|
|
2366
|
+
return /* @__PURE__ */ React22__default.default.createElement(ToggleInput, {
|
|
2314
2367
|
enabled,
|
|
2315
2368
|
onChange: handleChange
|
|
2316
2369
|
});
|
|
@@ -2321,9 +2374,9 @@ function NumberRangeFilterInputInner({
|
|
|
2321
2374
|
filterState,
|
|
2322
2375
|
onFilterStateChanged
|
|
2323
2376
|
}) {
|
|
2324
|
-
const numberRangeState =
|
|
2377
|
+
const numberRangeState = React22.useMemo(() => filterState?.type === "NUMBER_RANGE" ? filterState : void 0, [filterState]);
|
|
2325
2378
|
const includeNull = filterState?.includeNull;
|
|
2326
|
-
const handleNullChange =
|
|
2379
|
+
const handleNullChange = React22.useCallback((includeNull2) => {
|
|
2327
2380
|
onFilterStateChanged({
|
|
2328
2381
|
type: "NUMBER_RANGE",
|
|
2329
2382
|
minValue: numberRangeState?.minValue,
|
|
@@ -2331,7 +2384,7 @@ function NumberRangeFilterInputInner({
|
|
|
2331
2384
|
includeNull: includeNull2
|
|
2332
2385
|
});
|
|
2333
2386
|
}, [onFilterStateChanged, numberRangeState?.minValue, numberRangeState?.maxValue]);
|
|
2334
|
-
const handleRangeChange =
|
|
2387
|
+
const handleRangeChange = React22.useCallback((minValue, maxValue) => {
|
|
2335
2388
|
onFilterStateChanged({
|
|
2336
2389
|
type: "NUMBER_RANGE",
|
|
2337
2390
|
minValue,
|
|
@@ -2339,12 +2392,12 @@ function NumberRangeFilterInputInner({
|
|
|
2339
2392
|
includeNull
|
|
2340
2393
|
});
|
|
2341
2394
|
}, [onFilterStateChanged, includeNull]);
|
|
2342
|
-
return /* @__PURE__ */
|
|
2395
|
+
return /* @__PURE__ */ React22__default.default.createElement(NullValueWrapper, {
|
|
2343
2396
|
objectType,
|
|
2344
2397
|
propertyKey,
|
|
2345
2398
|
includeNull,
|
|
2346
2399
|
onIncludeNullChange: handleNullChange
|
|
2347
|
-
}, /* @__PURE__ */
|
|
2400
|
+
}, /* @__PURE__ */ React22__default.default.createElement(NumberRangeInput, {
|
|
2348
2401
|
objectType,
|
|
2349
2402
|
propertyKey,
|
|
2350
2403
|
minValue: numberRangeState?.minValue,
|
|
@@ -2352,16 +2405,16 @@ function NumberRangeFilterInputInner({
|
|
|
2352
2405
|
onChange: handleRangeChange
|
|
2353
2406
|
}));
|
|
2354
2407
|
}
|
|
2355
|
-
var NumberRangeFilterInput = /* @__PURE__ */
|
|
2408
|
+
var NumberRangeFilterInput = /* @__PURE__ */ React22.memo(NumberRangeFilterInputInner);
|
|
2356
2409
|
function DateRangeFilterInputInner({
|
|
2357
2410
|
objectType,
|
|
2358
2411
|
propertyKey,
|
|
2359
2412
|
filterState,
|
|
2360
2413
|
onFilterStateChanged
|
|
2361
2414
|
}) {
|
|
2362
|
-
const dateRangeState =
|
|
2415
|
+
const dateRangeState = React22.useMemo(() => filterState?.type === "DATE_RANGE" ? filterState : void 0, [filterState]);
|
|
2363
2416
|
const includeNull = filterState?.includeNull;
|
|
2364
|
-
const handleNullChange =
|
|
2417
|
+
const handleNullChange = React22.useCallback((includeNull2) => {
|
|
2365
2418
|
onFilterStateChanged({
|
|
2366
2419
|
type: "DATE_RANGE",
|
|
2367
2420
|
minValue: dateRangeState?.minValue,
|
|
@@ -2369,7 +2422,7 @@ function DateRangeFilterInputInner({
|
|
|
2369
2422
|
includeNull: includeNull2
|
|
2370
2423
|
});
|
|
2371
2424
|
}, [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue]);
|
|
2372
|
-
const handleRangeChange =
|
|
2425
|
+
const handleRangeChange = React22.useCallback((minValue, maxValue) => {
|
|
2373
2426
|
onFilterStateChanged({
|
|
2374
2427
|
type: "DATE_RANGE",
|
|
2375
2428
|
minValue,
|
|
@@ -2377,12 +2430,12 @@ function DateRangeFilterInputInner({
|
|
|
2377
2430
|
includeNull
|
|
2378
2431
|
});
|
|
2379
2432
|
}, [onFilterStateChanged, includeNull]);
|
|
2380
|
-
return /* @__PURE__ */
|
|
2433
|
+
return /* @__PURE__ */ React22__default.default.createElement(NullValueWrapper, {
|
|
2381
2434
|
objectType,
|
|
2382
2435
|
propertyKey,
|
|
2383
2436
|
includeNull,
|
|
2384
2437
|
onIncludeNullChange: handleNullChange
|
|
2385
|
-
}, /* @__PURE__ */
|
|
2438
|
+
}, /* @__PURE__ */ React22__default.default.createElement(DateRangeInput, {
|
|
2386
2439
|
objectType,
|
|
2387
2440
|
propertyKey,
|
|
2388
2441
|
minValue: dateRangeState?.minValue,
|
|
@@ -2390,7 +2443,7 @@ function DateRangeFilterInputInner({
|
|
|
2390
2443
|
onChange: handleRangeChange
|
|
2391
2444
|
}));
|
|
2392
2445
|
}
|
|
2393
|
-
var DateRangeFilterInput = /* @__PURE__ */
|
|
2446
|
+
var DateRangeFilterInput = /* @__PURE__ */ React22.memo(DateRangeFilterInputInner);
|
|
2394
2447
|
function SingleSelectFilterInputInner({
|
|
2395
2448
|
objectType,
|
|
2396
2449
|
propertyKey,
|
|
@@ -2398,16 +2451,16 @@ function SingleSelectFilterInputInner({
|
|
|
2398
2451
|
onFilterStateChanged,
|
|
2399
2452
|
whereClause
|
|
2400
2453
|
}) {
|
|
2401
|
-
const selectedValue =
|
|
2454
|
+
const selectedValue = React22.useMemo(() => filterState?.type === "SELECT" ? coerceToString(filterState.selectedValues[0]) : void 0, [filterState]);
|
|
2402
2455
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2403
|
-
const handleChange =
|
|
2456
|
+
const handleChange = React22.useCallback((value) => {
|
|
2404
2457
|
onFilterStateChanged({
|
|
2405
2458
|
type: "SELECT",
|
|
2406
2459
|
selectedValues: value !== void 0 ? [value] : [],
|
|
2407
2460
|
isExcluding
|
|
2408
2461
|
});
|
|
2409
2462
|
}, [onFilterStateChanged, isExcluding]);
|
|
2410
|
-
return /* @__PURE__ */
|
|
2463
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleSelectInput, {
|
|
2411
2464
|
objectType,
|
|
2412
2465
|
propertyKey,
|
|
2413
2466
|
selectedValue,
|
|
@@ -2415,7 +2468,7 @@ function SingleSelectFilterInputInner({
|
|
|
2415
2468
|
whereClause
|
|
2416
2469
|
});
|
|
2417
2470
|
}
|
|
2418
|
-
var SingleSelectFilterInput = /* @__PURE__ */
|
|
2471
|
+
var SingleSelectFilterInput = /* @__PURE__ */ React22.memo(SingleSelectFilterInputInner);
|
|
2419
2472
|
function MultiSelectFilterInputInner({
|
|
2420
2473
|
objectType,
|
|
2421
2474
|
propertyKey,
|
|
@@ -2423,16 +2476,16 @@ function MultiSelectFilterInputInner({
|
|
|
2423
2476
|
onFilterStateChanged,
|
|
2424
2477
|
whereClause
|
|
2425
2478
|
}) {
|
|
2426
|
-
const selectedValues =
|
|
2479
|
+
const selectedValues = React22.useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
|
|
2427
2480
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2428
|
-
const handleChange =
|
|
2481
|
+
const handleChange = React22.useCallback((selectedValues2) => {
|
|
2429
2482
|
onFilterStateChanged({
|
|
2430
2483
|
type: "SELECT",
|
|
2431
2484
|
selectedValues: selectedValues2,
|
|
2432
2485
|
isExcluding
|
|
2433
2486
|
});
|
|
2434
2487
|
}, [onFilterStateChanged, isExcluding]);
|
|
2435
|
-
return /* @__PURE__ */
|
|
2488
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiSelectInput, {
|
|
2436
2489
|
objectType,
|
|
2437
2490
|
propertyKey,
|
|
2438
2491
|
selectedValues,
|
|
@@ -2440,39 +2493,39 @@ function MultiSelectFilterInputInner({
|
|
|
2440
2493
|
whereClause
|
|
2441
2494
|
});
|
|
2442
2495
|
}
|
|
2443
|
-
var MultiSelectFilterInput = /* @__PURE__ */
|
|
2444
|
-
var SingleDateFilterInput = /* @__PURE__ */
|
|
2496
|
+
var MultiSelectFilterInput = /* @__PURE__ */ React22.memo(MultiSelectFilterInputInner);
|
|
2497
|
+
var SingleDateFilterInput = /* @__PURE__ */ React22.memo(function SingleDateFilterInput2({
|
|
2445
2498
|
filterState,
|
|
2446
2499
|
onFilterStateChanged
|
|
2447
2500
|
}) {
|
|
2448
|
-
const selectedDate =
|
|
2501
|
+
const selectedDate = React22.useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : void 0 : void 0, [filterState]);
|
|
2449
2502
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2450
|
-
const handleChange =
|
|
2503
|
+
const handleChange = React22.useCallback((selectedDate2) => {
|
|
2451
2504
|
onFilterStateChanged({
|
|
2452
2505
|
type: "SELECT",
|
|
2453
2506
|
selectedValues: selectedDate2 !== void 0 ? [selectedDate2] : [],
|
|
2454
2507
|
isExcluding
|
|
2455
2508
|
});
|
|
2456
2509
|
}, [onFilterStateChanged, isExcluding]);
|
|
2457
|
-
return /* @__PURE__ */
|
|
2510
|
+
return /* @__PURE__ */ React22__default.default.createElement(SingleDateInput, {
|
|
2458
2511
|
selectedDate,
|
|
2459
2512
|
onChange: handleChange
|
|
2460
2513
|
});
|
|
2461
2514
|
});
|
|
2462
|
-
var MultiDateFilterInput = /* @__PURE__ */
|
|
2515
|
+
var MultiDateFilterInput = /* @__PURE__ */ React22.memo(function MultiDateFilterInput2({
|
|
2463
2516
|
filterState,
|
|
2464
2517
|
onFilterStateChanged
|
|
2465
2518
|
}) {
|
|
2466
|
-
const selectedDates =
|
|
2519
|
+
const selectedDates = React22.useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues.filter((v) => v instanceof Date) : [], [filterState]);
|
|
2467
2520
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2468
|
-
const handleChange =
|
|
2521
|
+
const handleChange = React22.useCallback((selectedDates2) => {
|
|
2469
2522
|
onFilterStateChanged({
|
|
2470
2523
|
type: "SELECT",
|
|
2471
2524
|
selectedValues: selectedDates2,
|
|
2472
2525
|
isExcluding
|
|
2473
2526
|
});
|
|
2474
2527
|
}, [onFilterStateChanged, isExcluding]);
|
|
2475
|
-
return /* @__PURE__ */
|
|
2528
|
+
return /* @__PURE__ */ React22__default.default.createElement(MultiDateInput, {
|
|
2476
2529
|
selectedDates,
|
|
2477
2530
|
onChange: handleChange
|
|
2478
2531
|
});
|
|
@@ -2484,16 +2537,16 @@ function ListogramFilterInputInner({
|
|
|
2484
2537
|
onFilterStateChanged,
|
|
2485
2538
|
whereClause
|
|
2486
2539
|
}) {
|
|
2487
|
-
const selectedValues =
|
|
2540
|
+
const selectedValues = React22.useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
|
|
2488
2541
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2489
|
-
const handleChange =
|
|
2542
|
+
const handleChange = React22.useCallback((values) => {
|
|
2490
2543
|
onFilterStateChanged({
|
|
2491
2544
|
type: "EXACT_MATCH",
|
|
2492
2545
|
values,
|
|
2493
2546
|
isExcluding
|
|
2494
2547
|
});
|
|
2495
2548
|
}, [onFilterStateChanged, isExcluding]);
|
|
2496
|
-
return /* @__PURE__ */
|
|
2549
|
+
return /* @__PURE__ */ React22__default.default.createElement(ListogramInput, {
|
|
2497
2550
|
objectType,
|
|
2498
2551
|
propertyKey,
|
|
2499
2552
|
selectedValues,
|
|
@@ -2501,7 +2554,7 @@ function ListogramFilterInputInner({
|
|
|
2501
2554
|
whereClause
|
|
2502
2555
|
});
|
|
2503
2556
|
}
|
|
2504
|
-
var ListogramFilterInput = /* @__PURE__ */
|
|
2557
|
+
var ListogramFilterInput = /* @__PURE__ */ React22.memo(ListogramFilterInputInner);
|
|
2505
2558
|
function TextTagsFilterInputInner({
|
|
2506
2559
|
objectType,
|
|
2507
2560
|
propertyKey,
|
|
@@ -2509,16 +2562,16 @@ function TextTagsFilterInputInner({
|
|
|
2509
2562
|
onFilterStateChanged,
|
|
2510
2563
|
whereClause
|
|
2511
2564
|
}) {
|
|
2512
|
-
const tags =
|
|
2565
|
+
const tags = React22.useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
|
|
2513
2566
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2514
|
-
const handleChange =
|
|
2567
|
+
const handleChange = React22.useCallback((values) => {
|
|
2515
2568
|
onFilterStateChanged({
|
|
2516
2569
|
type: "EXACT_MATCH",
|
|
2517
2570
|
values,
|
|
2518
2571
|
isExcluding
|
|
2519
2572
|
});
|
|
2520
2573
|
}, [onFilterStateChanged, isExcluding]);
|
|
2521
|
-
return /* @__PURE__ */
|
|
2574
|
+
return /* @__PURE__ */ React22__default.default.createElement(TextTagsInput, {
|
|
2522
2575
|
objectType,
|
|
2523
2576
|
propertyKey,
|
|
2524
2577
|
tags,
|
|
@@ -2526,15 +2579,15 @@ function TextTagsFilterInputInner({
|
|
|
2526
2579
|
whereClause
|
|
2527
2580
|
});
|
|
2528
2581
|
}
|
|
2529
|
-
var TextTagsFilterInput = /* @__PURE__ */
|
|
2530
|
-
var TimelineFilterInput = /* @__PURE__ */
|
|
2582
|
+
var TextTagsFilterInput = /* @__PURE__ */ React22.memo(TextTagsFilterInputInner);
|
|
2583
|
+
var TimelineFilterInput = /* @__PURE__ */ React22.memo(function TimelineFilterInput2({
|
|
2531
2584
|
filterState,
|
|
2532
2585
|
onFilterStateChanged
|
|
2533
2586
|
}) {
|
|
2534
2587
|
const {
|
|
2535
2588
|
startDate,
|
|
2536
2589
|
endDate
|
|
2537
|
-
} =
|
|
2590
|
+
} = React22.useMemo(() => filterState?.type === "TIMELINE" ? {
|
|
2538
2591
|
startDate: filterState.startDate,
|
|
2539
2592
|
endDate: filterState.endDate
|
|
2540
2593
|
} : {
|
|
@@ -2542,7 +2595,7 @@ var TimelineFilterInput = /* @__PURE__ */ React21.memo(function TimelineFilterIn
|
|
|
2542
2595
|
endDate: void 0
|
|
2543
2596
|
}, [filterState]);
|
|
2544
2597
|
const isExcluding = filterState?.isExcluding ?? false;
|
|
2545
|
-
const handleChange =
|
|
2598
|
+
const handleChange = React22.useCallback((startDate2, endDate2) => {
|
|
2546
2599
|
onFilterStateChanged({
|
|
2547
2600
|
type: "TIMELINE",
|
|
2548
2601
|
startDate: startDate2,
|
|
@@ -2550,7 +2603,7 @@ var TimelineFilterInput = /* @__PURE__ */ React21.memo(function TimelineFilterIn
|
|
|
2550
2603
|
isExcluding
|
|
2551
2604
|
});
|
|
2552
2605
|
}, [onFilterStateChanged, isExcluding]);
|
|
2553
|
-
return /* @__PURE__ */
|
|
2606
|
+
return /* @__PURE__ */ React22__default.default.createElement(TimelineInput, {
|
|
2554
2607
|
startDate,
|
|
2555
2608
|
endDate,
|
|
2556
2609
|
onChange: handleChange
|
|
@@ -2561,6 +2614,15 @@ var TimelineFilterInput = /* @__PURE__ */ React21.memo(function TimelineFilterIn
|
|
|
2561
2614
|
var FilterListItem_default = {};
|
|
2562
2615
|
|
|
2563
2616
|
// src/filter-list/base/FilterListItem.tsx
|
|
2617
|
+
function _extends8() {
|
|
2618
|
+
return _extends8 = Object.assign ? Object.assign.bind() : function(n) {
|
|
2619
|
+
for (var e = 1; e < arguments.length; e++) {
|
|
2620
|
+
var t = arguments[e];
|
|
2621
|
+
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
2622
|
+
}
|
|
2623
|
+
return n;
|
|
2624
|
+
}, _extends8.apply(null, arguments);
|
|
2625
|
+
}
|
|
2564
2626
|
function FilterListItemInner({
|
|
2565
2627
|
objectType,
|
|
2566
2628
|
objectSet,
|
|
@@ -2569,26 +2631,32 @@ function FilterListItemInner({
|
|
|
2569
2631
|
filterState,
|
|
2570
2632
|
onFilterStateChanged,
|
|
2571
2633
|
whereClause,
|
|
2634
|
+
dragHandleAttributes,
|
|
2635
|
+
dragHandleListeners,
|
|
2572
2636
|
className,
|
|
2573
2637
|
style
|
|
2574
2638
|
}) {
|
|
2575
|
-
const label =
|
|
2576
|
-
const handleFilterStateChanged =
|
|
2639
|
+
const label = getFilterLabel(definition);
|
|
2640
|
+
const handleFilterStateChanged = React22.useCallback((newState) => {
|
|
2577
2641
|
onFilterStateChanged(filterKey, newState);
|
|
2578
2642
|
}, [filterKey, onFilterStateChanged]);
|
|
2579
|
-
return /* @__PURE__ */
|
|
2643
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2580
2644
|
className: classnames7__default.default(FilterListItem_default.filterItem, className),
|
|
2581
2645
|
style,
|
|
2582
2646
|
"data-filter-type": definition.type
|
|
2583
|
-
}, /* @__PURE__ */
|
|
2647
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2584
2648
|
className: FilterListItem_default.itemHeader
|
|
2585
|
-
}, /* @__PURE__ */
|
|
2649
|
+
}, dragHandleAttributes && /* @__PURE__ */ React22__default.default.createElement("button", _extends8({
|
|
2650
|
+
type: "button",
|
|
2651
|
+
className: FilterListItem_default.dragHandle,
|
|
2652
|
+
"aria-label": `Reorder ${label}`
|
|
2653
|
+
}, dragHandleAttributes, dragHandleListeners), /* @__PURE__ */ React22__default.default.createElement(DragHandleIcon, null)), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2586
2654
|
className: FilterListItem_default.itemLabel
|
|
2587
|
-
}, label)), /* @__PURE__ */
|
|
2655
|
+
}, label)), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2588
2656
|
className: FilterListItem_default.itemContent
|
|
2589
|
-
}, /* @__PURE__ */
|
|
2657
|
+
}, /* @__PURE__ */ React22__default.default.createElement(ErrorBoundary, {
|
|
2590
2658
|
errorMessage: "Error loading filter"
|
|
2591
|
-
}, /* @__PURE__ */
|
|
2659
|
+
}, /* @__PURE__ */ React22__default.default.createElement(FilterInput, {
|
|
2592
2660
|
objectType,
|
|
2593
2661
|
objectSet,
|
|
2594
2662
|
definition,
|
|
@@ -2597,25 +2665,59 @@ function FilterListItemInner({
|
|
|
2597
2665
|
whereClause
|
|
2598
2666
|
}))));
|
|
2599
2667
|
}
|
|
2600
|
-
var FilterListItem = /* @__PURE__ */
|
|
2601
|
-
function
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2668
|
+
var FilterListItem = /* @__PURE__ */ React22.memo(FilterListItemInner);
|
|
2669
|
+
function SortableFilterListItem({
|
|
2670
|
+
id,
|
|
2671
|
+
objectType,
|
|
2672
|
+
objectSet,
|
|
2673
|
+
definition,
|
|
2674
|
+
filterKey,
|
|
2675
|
+
filterState,
|
|
2676
|
+
onFilterStateChanged,
|
|
2677
|
+
whereClause
|
|
2678
|
+
}) {
|
|
2679
|
+
const {
|
|
2680
|
+
attributes,
|
|
2681
|
+
listeners,
|
|
2682
|
+
setNodeRef,
|
|
2683
|
+
transform,
|
|
2684
|
+
transition,
|
|
2685
|
+
isDragging
|
|
2686
|
+
} = sortable.useSortable({
|
|
2687
|
+
id
|
|
2688
|
+
});
|
|
2689
|
+
const style = React22.useMemo(() => ({
|
|
2690
|
+
transform: utilities.CSS.Transform.toString(transform),
|
|
2691
|
+
transition: transition ?? void 0
|
|
2692
|
+
}), [transform, transition]);
|
|
2693
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2694
|
+
ref: setNodeRef,
|
|
2695
|
+
style,
|
|
2696
|
+
className: classnames7__default.default(isDragging && FilterListItem_default.dragging)
|
|
2697
|
+
}, /* @__PURE__ */ React22__default.default.createElement(FilterListItem, {
|
|
2698
|
+
objectType,
|
|
2699
|
+
objectSet,
|
|
2700
|
+
definition,
|
|
2701
|
+
filterKey,
|
|
2702
|
+
filterState,
|
|
2703
|
+
onFilterStateChanged,
|
|
2704
|
+
whereClause,
|
|
2705
|
+
dragHandleAttributes: attributes,
|
|
2706
|
+
dragHandleListeners: listeners
|
|
2707
|
+
}));
|
|
2616
2708
|
}
|
|
2617
2709
|
|
|
2618
2710
|
// src/filter-list/base/FilterListContent.tsx
|
|
2711
|
+
var restrictToVerticalAxis = ({
|
|
2712
|
+
transform
|
|
2713
|
+
}) => ({
|
|
2714
|
+
...transform,
|
|
2715
|
+
x: 0
|
|
2716
|
+
});
|
|
2717
|
+
var POINTER_ACTIVATION_CONSTRAINT = {
|
|
2718
|
+
distance: 8
|
|
2719
|
+
};
|
|
2720
|
+
var MODIFIERS = [restrictToVerticalAxis];
|
|
2619
2721
|
function FilterListContent({
|
|
2620
2722
|
objectType,
|
|
2621
2723
|
objectSet,
|
|
@@ -2623,23 +2725,149 @@ function FilterListContent({
|
|
|
2623
2725
|
filterStates,
|
|
2624
2726
|
onFilterStateChanged,
|
|
2625
2727
|
whereClause,
|
|
2728
|
+
enableSorting,
|
|
2626
2729
|
className,
|
|
2627
2730
|
style
|
|
2628
2731
|
}) {
|
|
2629
|
-
|
|
2630
|
-
|
|
2732
|
+
const [internalOrder, setInternalOrder] = React22.useState(() => filterDefinitions ?? []);
|
|
2733
|
+
const [activeId, setActiveId] = React22.useState(null);
|
|
2734
|
+
React22.useEffect(() => {
|
|
2735
|
+
if (filterDefinitions) {
|
|
2736
|
+
setInternalOrder(filterDefinitions);
|
|
2737
|
+
}
|
|
2738
|
+
}, [filterDefinitions]);
|
|
2739
|
+
const renderDefinitions = enableSorting ? internalOrder : filterDefinitions;
|
|
2740
|
+
const sortableIds = React22.useMemo(() => enableSorting ? internalOrder.map((def) => getFilterKey(def)) : [], [enableSorting, internalOrder]);
|
|
2741
|
+
const pointerSensor = core.useSensor(core.PointerSensor, {
|
|
2742
|
+
activationConstraint: POINTER_ACTIVATION_CONSTRAINT
|
|
2743
|
+
});
|
|
2744
|
+
const keyboardSensor = core.useSensor(core.KeyboardSensor, {
|
|
2745
|
+
coordinateGetter: sortable.sortableKeyboardCoordinates
|
|
2746
|
+
});
|
|
2747
|
+
const sensors = core.useSensors(pointerSensor, keyboardSensor);
|
|
2748
|
+
const activeIndex = activeId != null ? sortableIds.indexOf(String(activeId)) : -1;
|
|
2749
|
+
const activeDefinition = activeIndex >= 0 ? internalOrder[activeIndex] : void 0;
|
|
2750
|
+
const activeFilterKey = React22.useMemo(() => activeDefinition ? getFilterKey(activeDefinition) : void 0, [activeDefinition]);
|
|
2751
|
+
const handleDragStart = React22.useCallback((event) => {
|
|
2752
|
+
setActiveId(event.active.id);
|
|
2753
|
+
}, []);
|
|
2754
|
+
const handleDragEnd = React22.useCallback((event) => {
|
|
2755
|
+
setActiveId(null);
|
|
2756
|
+
const {
|
|
2757
|
+
active,
|
|
2758
|
+
over
|
|
2759
|
+
} = event;
|
|
2760
|
+
if (!over || active.id === over.id) {
|
|
2761
|
+
return;
|
|
2762
|
+
}
|
|
2763
|
+
const oldIndex = sortableIds.indexOf(String(active.id));
|
|
2764
|
+
const newIndex = sortableIds.indexOf(String(over.id));
|
|
2765
|
+
if (oldIndex !== -1 && newIndex !== -1) {
|
|
2766
|
+
setInternalOrder(sortable.arrayMove(internalOrder, oldIndex, newIndex));
|
|
2767
|
+
}
|
|
2768
|
+
}, [internalOrder, sortableIds]);
|
|
2769
|
+
const handleDragCancel = React22.useCallback(() => {
|
|
2770
|
+
setActiveId(null);
|
|
2771
|
+
}, []);
|
|
2772
|
+
const announcements = React22.useMemo(() => ({
|
|
2773
|
+
onDragStart({
|
|
2774
|
+
active
|
|
2775
|
+
}) {
|
|
2776
|
+
const idx = sortableIds.indexOf(String(active.id));
|
|
2777
|
+
const def = idx >= 0 ? internalOrder[idx] : void 0;
|
|
2778
|
+
const label = def ? getFilterLabel(def) : "filter";
|
|
2779
|
+
return `Picked up ${label} filter`;
|
|
2780
|
+
},
|
|
2781
|
+
onDragOver({
|
|
2782
|
+
over
|
|
2783
|
+
}) {
|
|
2784
|
+
if (!over) {
|
|
2785
|
+
return "Not over a droppable area";
|
|
2786
|
+
}
|
|
2787
|
+
const overIdx = sortableIds.indexOf(String(over.id));
|
|
2788
|
+
return `Moved to position ${overIdx + 1} of ${sortableIds.length}`;
|
|
2789
|
+
},
|
|
2790
|
+
onDragEnd({
|
|
2791
|
+
active,
|
|
2792
|
+
over
|
|
2793
|
+
}) {
|
|
2794
|
+
const idx = sortableIds.indexOf(String(active.id));
|
|
2795
|
+
const def = idx >= 0 ? internalOrder[idx] : void 0;
|
|
2796
|
+
const label = def ? getFilterLabel(def) : "filter";
|
|
2797
|
+
if (over && active.id !== over.id) {
|
|
2798
|
+
const overIdx = sortableIds.indexOf(String(over.id));
|
|
2799
|
+
return `Dropped ${label} filter at position ${overIdx + 1}`;
|
|
2800
|
+
}
|
|
2801
|
+
return `Dropped ${label} filter back in its original position`;
|
|
2802
|
+
},
|
|
2803
|
+
onDragCancel({
|
|
2804
|
+
active
|
|
2805
|
+
}) {
|
|
2806
|
+
const idx = sortableIds.indexOf(String(active.id));
|
|
2807
|
+
const def = idx >= 0 ? internalOrder[idx] : void 0;
|
|
2808
|
+
const label = def ? getFilterLabel(def) : "filter";
|
|
2809
|
+
return `Cancelled dragging ${label} filter`;
|
|
2810
|
+
}
|
|
2811
|
+
}), [internalOrder, sortableIds]);
|
|
2812
|
+
if (!renderDefinitions || renderDefinitions.length === 0) {
|
|
2813
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2631
2814
|
className: classnames7__default.default(FilterListContent_default.content, className),
|
|
2632
2815
|
style,
|
|
2633
2816
|
"data-empty": "true"
|
|
2634
2817
|
});
|
|
2635
2818
|
}
|
|
2636
|
-
|
|
2819
|
+
if (enableSorting) {
|
|
2820
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2821
|
+
className: classnames7__default.default(FilterListContent_default.content, className),
|
|
2822
|
+
style
|
|
2823
|
+
}, /* @__PURE__ */ React22__default.default.createElement(core.DndContext, {
|
|
2824
|
+
sensors,
|
|
2825
|
+
collisionDetection: core.closestCenter,
|
|
2826
|
+
modifiers: MODIFIERS,
|
|
2827
|
+
onDragStart: handleDragStart,
|
|
2828
|
+
onDragEnd: handleDragEnd,
|
|
2829
|
+
onDragCancel: handleDragCancel,
|
|
2830
|
+
accessibility: {
|
|
2831
|
+
announcements
|
|
2832
|
+
}
|
|
2833
|
+
}, /* @__PURE__ */ React22__default.default.createElement(sortable.SortableContext, {
|
|
2834
|
+
items: sortableIds,
|
|
2835
|
+
strategy: sortable.verticalListSortingStrategy
|
|
2836
|
+
}, internalOrder.map((definition, index) => {
|
|
2837
|
+
const id = sortableIds[index];
|
|
2838
|
+
const filterKey = getFilterKey(definition);
|
|
2839
|
+
const state = filterStates.get(filterKey);
|
|
2840
|
+
return /* @__PURE__ */ React22__default.default.createElement(SortableFilterListItem, {
|
|
2841
|
+
key: id,
|
|
2842
|
+
id,
|
|
2843
|
+
objectType,
|
|
2844
|
+
objectSet,
|
|
2845
|
+
definition,
|
|
2846
|
+
filterKey,
|
|
2847
|
+
filterState: state,
|
|
2848
|
+
onFilterStateChanged,
|
|
2849
|
+
whereClause
|
|
2850
|
+
});
|
|
2851
|
+
})), /* @__PURE__ */ React22__default.default.createElement(core.DragOverlay, {
|
|
2852
|
+
dropAnimation: null,
|
|
2853
|
+
className: FilterListContent_default.dragOverlay
|
|
2854
|
+
}, activeDefinition && activeFilterKey && /* @__PURE__ */ React22__default.default.createElement(FilterListItem, {
|
|
2855
|
+
objectType,
|
|
2856
|
+
objectSet,
|
|
2857
|
+
definition: activeDefinition,
|
|
2858
|
+
filterKey: activeFilterKey,
|
|
2859
|
+
filterState: filterStates.get(activeFilterKey),
|
|
2860
|
+
onFilterStateChanged,
|
|
2861
|
+
whereClause
|
|
2862
|
+
}))));
|
|
2863
|
+
}
|
|
2864
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2637
2865
|
className: classnames7__default.default(FilterListContent_default.content, className),
|
|
2638
2866
|
style
|
|
2639
|
-
},
|
|
2867
|
+
}, renderDefinitions.map((definition) => {
|
|
2640
2868
|
const filterKey = getFilterKey(definition);
|
|
2641
2869
|
const state = filterStates.get(filterKey);
|
|
2642
|
-
return /* @__PURE__ */
|
|
2870
|
+
return /* @__PURE__ */ React22__default.default.createElement(FilterListItem, {
|
|
2643
2871
|
key: filterKey,
|
|
2644
2872
|
objectType,
|
|
2645
2873
|
objectSet,
|
|
@@ -2667,34 +2895,34 @@ function FilterListHeaderInner({
|
|
|
2667
2895
|
activeFilterCount = 0
|
|
2668
2896
|
}) {
|
|
2669
2897
|
const showCollapseButton = onCollapsedChange != null;
|
|
2670
|
-
const handleCollapseClick =
|
|
2898
|
+
const handleCollapseClick = React22.useCallback(() => {
|
|
2671
2899
|
onCollapsedChange?.(!collapsed);
|
|
2672
2900
|
}, [onCollapsedChange, collapsed]);
|
|
2673
|
-
return /* @__PURE__ */
|
|
2901
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2674
2902
|
className: FilterListHeader_default.header
|
|
2675
|
-
}, showCollapseButton && /* @__PURE__ */
|
|
2903
|
+
}, showCollapseButton && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
2676
2904
|
className: FilterListHeader_default.collapseButton,
|
|
2677
2905
|
onClick: handleCollapseClick,
|
|
2678
2906
|
"aria-expanded": !collapsed,
|
|
2679
2907
|
"aria-label": collapsed ? "Expand filters" : "Collapse filters"
|
|
2680
|
-
}, /* @__PURE__ */
|
|
2908
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2681
2909
|
className: FilterListHeader_default.collapseIcon,
|
|
2682
2910
|
"data-collapsed": collapsed
|
|
2683
|
-
})), !collapsed && /* @__PURE__ */
|
|
2911
|
+
})), !collapsed && /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2684
2912
|
className: FilterListHeader_default.titleContainer
|
|
2685
|
-
}, titleIcon && /* @__PURE__ */
|
|
2913
|
+
}, titleIcon && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2686
2914
|
className: FilterListHeader_default.titleIcon
|
|
2687
|
-
}, titleIcon), title && /* @__PURE__ */
|
|
2915
|
+
}, titleIcon), title && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2688
2916
|
className: FilterListHeader_default.title
|
|
2689
|
-
}, title), showActiveFilterCount && activeFilterCount > 0 && /* @__PURE__ */
|
|
2917
|
+
}, title), showActiveFilterCount && activeFilterCount > 0 && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
2690
2918
|
className: FilterListHeader_default.activeCount
|
|
2691
|
-
}, "(", activeFilterCount, ")")), showResetButton && /* @__PURE__ */
|
|
2919
|
+
}, "(", activeFilterCount, ")")), showResetButton && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
2692
2920
|
className: FilterListHeader_default.resetButton,
|
|
2693
2921
|
onClick: onReset,
|
|
2694
2922
|
disabled: activeFilterCount === 0
|
|
2695
2923
|
}, "Reset")));
|
|
2696
2924
|
}
|
|
2697
|
-
var FilterListHeader = /* @__PURE__ */
|
|
2925
|
+
var FilterListHeader = /* @__PURE__ */ React22.memo(FilterListHeaderInner);
|
|
2698
2926
|
|
|
2699
2927
|
// src/filter-list/base/FilterList.tsx
|
|
2700
2928
|
function FilterList(props) {
|
|
@@ -2707,6 +2935,7 @@ function FilterList(props) {
|
|
|
2707
2935
|
onReset,
|
|
2708
2936
|
onFilterAdded,
|
|
2709
2937
|
showActiveFilterCount = false,
|
|
2938
|
+
enableSorting,
|
|
2710
2939
|
className,
|
|
2711
2940
|
renderAddFilterButton
|
|
2712
2941
|
} = props;
|
|
@@ -2718,36 +2947,37 @@ function FilterList(props) {
|
|
|
2718
2947
|
activeFilterCount,
|
|
2719
2948
|
reset
|
|
2720
2949
|
} = useFilterListState(props);
|
|
2721
|
-
const handleReset =
|
|
2950
|
+
const handleReset = React22.useCallback(() => {
|
|
2722
2951
|
reset();
|
|
2723
2952
|
onReset?.();
|
|
2724
2953
|
}, [reset, onReset]);
|
|
2725
|
-
const visibleFilterDefinitions =
|
|
2954
|
+
const visibleFilterDefinitions = React22.useMemo(() => {
|
|
2726
2955
|
if (!filterDefinitions) return void 0;
|
|
2727
2956
|
return filterDefinitions.filter((def) => def.isVisible !== false);
|
|
2728
2957
|
}, [filterDefinitions]);
|
|
2729
2958
|
const showHeader = title || titleIcon || showResetButton || showActiveFilterCount;
|
|
2730
2959
|
const showAddButton = renderAddFilterButton != null || onFilterAdded != null;
|
|
2731
|
-
return /* @__PURE__ */
|
|
2960
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2732
2961
|
className: classnames7__default.default(FilterList_default.filterList, className),
|
|
2733
2962
|
"data-active-count": activeFilterCount
|
|
2734
|
-
}, showHeader && /* @__PURE__ */
|
|
2963
|
+
}, showHeader && /* @__PURE__ */ React22__default.default.createElement(FilterListHeader, {
|
|
2735
2964
|
title,
|
|
2736
2965
|
titleIcon,
|
|
2737
2966
|
showResetButton,
|
|
2738
2967
|
onReset: handleReset,
|
|
2739
2968
|
showActiveFilterCount,
|
|
2740
2969
|
activeFilterCount
|
|
2741
|
-
}), /* @__PURE__ */
|
|
2970
|
+
}), /* @__PURE__ */ React22__default.default.createElement(FilterListContent, {
|
|
2742
2971
|
objectType,
|
|
2743
2972
|
objectSet,
|
|
2744
2973
|
filterDefinitions: visibleFilterDefinitions,
|
|
2745
2974
|
filterStates,
|
|
2746
2975
|
onFilterStateChanged: setFilterState,
|
|
2747
|
-
whereClause
|
|
2748
|
-
|
|
2976
|
+
whereClause,
|
|
2977
|
+
enableSorting
|
|
2978
|
+
}), showAddButton && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
2749
2979
|
className: FilterList_default.addButtonContainer
|
|
2750
|
-
}, renderAddFilterButton ? renderAddFilterButton() : /* @__PURE__ */
|
|
2980
|
+
}, renderAddFilterButton ? renderAddFilterButton() : /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
2751
2981
|
type: "button",
|
|
2752
2982
|
className: FilterList_default.addButton
|
|
2753
2983
|
}, "+ Add filter")));
|
|
@@ -2780,7 +3010,7 @@ function parseValueByType(value, dataType) {
|
|
|
2780
3010
|
}
|
|
2781
3011
|
return parsedNumber;
|
|
2782
3012
|
}
|
|
2783
|
-
function
|
|
3013
|
+
function EditableCell({
|
|
2784
3014
|
initialValue,
|
|
2785
3015
|
currentValue,
|
|
2786
3016
|
cellId,
|
|
@@ -2790,12 +3020,12 @@ function EditableCellInner({
|
|
|
2790
3020
|
rowId,
|
|
2791
3021
|
columnId
|
|
2792
3022
|
}) {
|
|
2793
|
-
const [inputValue, setInputValue] =
|
|
2794
|
-
const isCancelled =
|
|
2795
|
-
|
|
3023
|
+
const [inputValue, setInputValue] = React22.useState(valueToString(currentValue));
|
|
3024
|
+
const isCancelled = React22.useRef(false);
|
|
3025
|
+
React22.useEffect(() => {
|
|
2796
3026
|
setInputValue(valueToString(currentValue));
|
|
2797
3027
|
}, [currentValue]);
|
|
2798
|
-
const handleBlur =
|
|
3028
|
+
const handleBlur = React22.useCallback(() => {
|
|
2799
3029
|
if (isCancelled.current) {
|
|
2800
3030
|
isCancelled.current = false;
|
|
2801
3031
|
return;
|
|
@@ -2809,10 +3039,10 @@ function EditableCellInner({
|
|
|
2809
3039
|
originalRowData
|
|
2810
3040
|
});
|
|
2811
3041
|
}, [inputValue, initialValue, onCellEdit, cellId, dataType, rowId, columnId, originalRowData]);
|
|
2812
|
-
const handleChange =
|
|
3042
|
+
const handleChange = React22.useCallback((value) => {
|
|
2813
3043
|
setInputValue(value);
|
|
2814
3044
|
}, []);
|
|
2815
|
-
const handleKeyDown =
|
|
3045
|
+
const handleKeyDown = React22.useCallback((e) => {
|
|
2816
3046
|
if (e.key === "Enter") {
|
|
2817
3047
|
e.currentTarget.blur();
|
|
2818
3048
|
}
|
|
@@ -2824,7 +3054,7 @@ function EditableCellInner({
|
|
|
2824
3054
|
}, [currentValue]);
|
|
2825
3055
|
const inputType = dataType && NUMBER_TYPES.includes(dataType) ? "number" : "text";
|
|
2826
3056
|
const isEdited = currentValue !== initialValue;
|
|
2827
|
-
return /* @__PURE__ */
|
|
3057
|
+
return /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
2828
3058
|
className: classnames7__default.default(EditableCell_default.osdkEditableInput, {
|
|
2829
3059
|
[EditableCell_default.osdkEditedInput]: isEdited
|
|
2830
3060
|
}),
|
|
@@ -2835,7 +3065,6 @@ function EditableCellInner({
|
|
|
2835
3065
|
onKeyDown: handleKeyDown
|
|
2836
3066
|
});
|
|
2837
3067
|
}
|
|
2838
|
-
var EditableCell = /* @__PURE__ */ React21__default.default.memo(EditableCellInner);
|
|
2839
3068
|
|
|
2840
3069
|
// src/object-table/utils/getCellId.ts
|
|
2841
3070
|
function getCellId(cellIdentifier) {
|
|
@@ -2847,7 +3076,7 @@ function renderDefaultCell(cellContext) {
|
|
|
2847
3076
|
const meta = cellContext.table.options.meta;
|
|
2848
3077
|
const columnMeta = cellContext.column.columnDef.meta;
|
|
2849
3078
|
if (!columnMeta?.editable || !meta?.onCellEdit || !meta?.isInEditMode) {
|
|
2850
|
-
return /* @__PURE__ */
|
|
3079
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, cellContext.getValue());
|
|
2851
3080
|
}
|
|
2852
3081
|
const rowId = cellContext.row.id;
|
|
2853
3082
|
const columnId = cellContext.column.id;
|
|
@@ -2858,7 +3087,7 @@ function renderDefaultCell(cellContext) {
|
|
|
2858
3087
|
const cellEdits = meta.cellEdits;
|
|
2859
3088
|
const editedValue = cellEdits?.[cellId];
|
|
2860
3089
|
const currentValue = editedValue?.newValue ?? cellContext.getValue();
|
|
2861
|
-
return /* @__PURE__ */
|
|
3090
|
+
return /* @__PURE__ */ React22__default.default.createElement(EditableCell, {
|
|
2862
3091
|
initialValue: cellContext.getValue(),
|
|
2863
3092
|
currentValue,
|
|
2864
3093
|
cellId,
|
|
@@ -2877,7 +3106,7 @@ function useColumnDefs(objectType, columnDefinitions) {
|
|
|
2877
3106
|
loading,
|
|
2878
3107
|
error
|
|
2879
3108
|
} = react.useOsdkMetadata(objectType);
|
|
2880
|
-
const columns =
|
|
3109
|
+
const columns = React22.useMemo(() => {
|
|
2881
3110
|
const objectProperties = metadata?.properties;
|
|
2882
3111
|
if (columnDefinitions) {
|
|
2883
3112
|
return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);
|
|
@@ -2959,11 +3188,11 @@ var useColumnPinning = ({
|
|
|
2959
3188
|
hasSelectionColumn,
|
|
2960
3189
|
onColumnsPinnedChanged
|
|
2961
3190
|
}) => {
|
|
2962
|
-
const [columnPinning, setColumnPinning] =
|
|
3191
|
+
const [columnPinning, setColumnPinning] = React22.useState({
|
|
2963
3192
|
left: [],
|
|
2964
3193
|
right: []
|
|
2965
3194
|
});
|
|
2966
|
-
|
|
3195
|
+
React22.useEffect(() => {
|
|
2967
3196
|
const defaultState = getColumnPinningStateFromColumnDefs(columnDefinitions);
|
|
2968
3197
|
const selectionCol = hasSelectionColumn ? [SELECTION_COLUMN_ID] : [];
|
|
2969
3198
|
setColumnPinning({
|
|
@@ -2971,7 +3200,7 @@ var useColumnPinning = ({
|
|
|
2971
3200
|
right: [...defaultState.right ?? []]
|
|
2972
3201
|
});
|
|
2973
3202
|
}, [columnDefinitions, hasSelectionColumn]);
|
|
2974
|
-
const onColumnPinningChange =
|
|
3203
|
+
const onColumnPinningChange = React22.useCallback((updater) => {
|
|
2975
3204
|
setColumnPinning((prev) => {
|
|
2976
3205
|
const newPinning = typeof updater === "function" ? updater(prev) : updater;
|
|
2977
3206
|
if (onColumnsPinnedChanged) {
|
|
@@ -3028,8 +3257,8 @@ function convertColumnPinningStateToArray(pinningState) {
|
|
|
3028
3257
|
var useColumnResize = ({
|
|
3029
3258
|
onColumnResize
|
|
3030
3259
|
}) => {
|
|
3031
|
-
const [columnSizing, setColumnSizing] =
|
|
3032
|
-
const onColumnSizingChange =
|
|
3260
|
+
const [columnSizing, setColumnSizing] = React22.useState({});
|
|
3261
|
+
const onColumnSizingChange = React22.useCallback((updater) => {
|
|
3033
3262
|
setColumnSizing((prev) => {
|
|
3034
3263
|
const newState = typeof updater === "function" ? updater(prev) : updater;
|
|
3035
3264
|
if (onColumnResize) {
|
|
@@ -3056,15 +3285,15 @@ var useColumnVisibility = ({
|
|
|
3056
3285
|
allColumns,
|
|
3057
3286
|
onColumnVisibilityChanged
|
|
3058
3287
|
}) => {
|
|
3059
|
-
const [columnVisibility, setColumnVisibility] =
|
|
3060
|
-
const [columnOrder, setColumnOrder] =
|
|
3061
|
-
|
|
3288
|
+
const [columnVisibility, setColumnVisibility] = React22.useState(() => getColumnVisibilityState(allColumns));
|
|
3289
|
+
const [columnOrder, setColumnOrder] = React22.useState(() => getColumnOrder(allColumns));
|
|
3290
|
+
React22.useEffect(() => {
|
|
3062
3291
|
setColumnVisibility(getColumnVisibilityState(allColumns));
|
|
3063
3292
|
}, [allColumns]);
|
|
3064
|
-
|
|
3293
|
+
React22.useEffect(() => {
|
|
3065
3294
|
setColumnOrder(getColumnOrder(allColumns));
|
|
3066
3295
|
}, [allColumns]);
|
|
3067
|
-
const onColumnVisibilityChange =
|
|
3296
|
+
const onColumnVisibilityChange = React22.useCallback((updaterOrValue) => {
|
|
3068
3297
|
setColumnVisibility((prev) => {
|
|
3069
3298
|
const newState = typeof updaterOrValue === "function" ? updaterOrValue(prev) : updaterOrValue;
|
|
3070
3299
|
if (onColumnVisibilityChanged) {
|
|
@@ -3077,7 +3306,7 @@ var useColumnVisibility = ({
|
|
|
3077
3306
|
return newState;
|
|
3078
3307
|
});
|
|
3079
3308
|
}, [onColumnVisibilityChanged]);
|
|
3080
|
-
const onColumnOrderChange =
|
|
3309
|
+
const onColumnOrderChange = React22.useCallback((updaterOrValue) => {
|
|
3081
3310
|
setColumnOrder((prev) => {
|
|
3082
3311
|
const newState = typeof updaterOrValue === "function" ? updaterOrValue(prev) : updaterOrValue;
|
|
3083
3312
|
return newState;
|
|
@@ -3110,9 +3339,9 @@ function useEditableTable({
|
|
|
3110
3339
|
onCellValueChanged,
|
|
3111
3340
|
onSubmitEdits
|
|
3112
3341
|
}) {
|
|
3113
|
-
const [isActive, setActive] =
|
|
3114
|
-
const [cellEdits, setCellEdits] =
|
|
3115
|
-
const handleCellEdit =
|
|
3342
|
+
const [isActive, setActive] = React22.useState(editMode === "always");
|
|
3343
|
+
const [cellEdits, setCellEdits] = React22.useState({});
|
|
3344
|
+
const handleCellEdit = React22.useCallback((cellId, info) => {
|
|
3116
3345
|
if (info.newValue === info.oldValue) {
|
|
3117
3346
|
setCellEdits((prev) => {
|
|
3118
3347
|
const {
|
|
@@ -3129,10 +3358,10 @@ function useEditableTable({
|
|
|
3129
3358
|
}
|
|
3130
3359
|
onCellValueChanged?.(info);
|
|
3131
3360
|
}, [onCellValueChanged]);
|
|
3132
|
-
const clearEdits =
|
|
3361
|
+
const clearEdits = React22.useCallback(() => {
|
|
3133
3362
|
setCellEdits({});
|
|
3134
3363
|
}, []);
|
|
3135
|
-
const handleSubmitEdits =
|
|
3364
|
+
const handleSubmitEdits = React22.useCallback(async () => {
|
|
3136
3365
|
const edits = Object.values(cellEdits);
|
|
3137
3366
|
return onSubmitEdits ? onSubmitEdits(edits) : false;
|
|
3138
3367
|
}, [cellEdits, onSubmitEdits]);
|
|
@@ -3154,7 +3383,7 @@ function useEditableTable({
|
|
|
3154
3383
|
}
|
|
3155
3384
|
var PAGE_SIZE = 50;
|
|
3156
3385
|
function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, sorting, objectSet, objectSetOptions) {
|
|
3157
|
-
const orderBy =
|
|
3386
|
+
const orderBy = React22.useMemo(() => {
|
|
3158
3387
|
if (!sorting || sorting.length === 0) {
|
|
3159
3388
|
return void 0;
|
|
3160
3389
|
}
|
|
@@ -3163,7 +3392,7 @@ function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, so
|
|
|
3163
3392
|
return acc;
|
|
3164
3393
|
}, {});
|
|
3165
3394
|
}, [sorting]);
|
|
3166
|
-
const withProperties =
|
|
3395
|
+
const withProperties = React22.useMemo(() => {
|
|
3167
3396
|
if (!columnDefinitions) {
|
|
3168
3397
|
return;
|
|
3169
3398
|
}
|
|
@@ -3224,11 +3453,11 @@ function useRowSelection({
|
|
|
3224
3453
|
onRowSelection,
|
|
3225
3454
|
data
|
|
3226
3455
|
}) {
|
|
3227
|
-
const [internalRowSelection, setInternalRowSelection] =
|
|
3228
|
-
const [lastSelectedRowIndex, setLastSelectedRowIndex] =
|
|
3456
|
+
const [internalRowSelection, setInternalRowSelection] = React22.useState({});
|
|
3457
|
+
const [lastSelectedRowIndex, setLastSelectedRowIndex] = React22.useState(null);
|
|
3229
3458
|
const isControlled = selectedRows !== void 0;
|
|
3230
3459
|
const enableRowSelection = selectionMode !== "none";
|
|
3231
|
-
const rowSelectionState =
|
|
3460
|
+
const rowSelectionState = React22.useMemo(() => {
|
|
3232
3461
|
if (!enableRowSelection) return {};
|
|
3233
3462
|
if (isControlled && selectedRows) {
|
|
3234
3463
|
return getRowSelectionState(selectedRows);
|
|
@@ -3239,7 +3468,7 @@ function useRowSelection({
|
|
|
3239
3468
|
const totalCount = data?.length ?? 0;
|
|
3240
3469
|
const isAllSelected = totalCount > 0 && selectedCount === totalCount;
|
|
3241
3470
|
const hasSelection = selectedCount > 0;
|
|
3242
|
-
const onToggleAll =
|
|
3471
|
+
const onToggleAll = React22.useCallback(() => {
|
|
3243
3472
|
if (!enableRowSelection || !data) return;
|
|
3244
3473
|
const newSelectedRows = isAllSelected ? [] : data.map((item) => item.$primaryKey);
|
|
3245
3474
|
if (!isControlled) {
|
|
@@ -3247,7 +3476,7 @@ function useRowSelection({
|
|
|
3247
3476
|
}
|
|
3248
3477
|
onRowSelection?.(newSelectedRows);
|
|
3249
3478
|
}, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);
|
|
3250
|
-
const onToggleRow =
|
|
3479
|
+
const onToggleRow = React22.useCallback((rowId, rowIndex, isShiftClick = false) => {
|
|
3251
3480
|
if (!enableRowSelection || !data) return;
|
|
3252
3481
|
let newSelectedRows = [];
|
|
3253
3482
|
if (selectionMode === "single") {
|
|
@@ -3374,7 +3603,7 @@ function SelectionHeaderCell({
|
|
|
3374
3603
|
hasSelection,
|
|
3375
3604
|
onToggleAll
|
|
3376
3605
|
}) {
|
|
3377
|
-
return /* @__PURE__ */
|
|
3606
|
+
return /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
3378
3607
|
indeterminate: hasSelection && !isAllSelected,
|
|
3379
3608
|
checked: isAllSelected,
|
|
3380
3609
|
onCheckedChange: onToggleAll,
|
|
@@ -3385,21 +3614,21 @@ function SelectionCell({
|
|
|
3385
3614
|
row,
|
|
3386
3615
|
onToggleRow
|
|
3387
3616
|
}) {
|
|
3388
|
-
const handleClick =
|
|
3617
|
+
const handleClick = React22.useCallback((event) => {
|
|
3389
3618
|
event.stopPropagation();
|
|
3390
3619
|
const isShiftClick = event.shiftKey;
|
|
3391
3620
|
onToggleRow(row.id, row.index, isShiftClick);
|
|
3392
3621
|
}, [onToggleRow, row.id, row.index]);
|
|
3393
|
-
const handleKeyDown =
|
|
3622
|
+
const handleKeyDown = React22.useCallback((event) => {
|
|
3394
3623
|
if (event.key === "Enter") {
|
|
3395
3624
|
const isShiftClick = event.shiftKey;
|
|
3396
3625
|
onToggleRow(row.id, row.index, isShiftClick);
|
|
3397
3626
|
}
|
|
3398
3627
|
}, [onToggleRow, row.id, row.index]);
|
|
3399
|
-
return /* @__PURE__ */
|
|
3628
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3400
3629
|
onClick: handleClick,
|
|
3401
3630
|
onKeyDown: handleKeyDown
|
|
3402
|
-
}, /* @__PURE__ */
|
|
3631
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
3403
3632
|
checked: row.getIsSelected(),
|
|
3404
3633
|
"aria-label": `Select row ${row.index + 1}`
|
|
3405
3634
|
}));
|
|
@@ -3413,26 +3642,26 @@ var useSelectionColumn = ({
|
|
|
3413
3642
|
onToggleAll,
|
|
3414
3643
|
onToggleRow
|
|
3415
3644
|
}) => {
|
|
3416
|
-
const isAllSelectedRef =
|
|
3645
|
+
const isAllSelectedRef = React22.useRef(isAllSelected);
|
|
3417
3646
|
isAllSelectedRef.current = isAllSelected;
|
|
3418
|
-
const hasSelectionRef =
|
|
3647
|
+
const hasSelectionRef = React22.useRef(hasSelection);
|
|
3419
3648
|
hasSelectionRef.current = hasSelection;
|
|
3420
|
-
const onToggleAllRef =
|
|
3649
|
+
const onToggleAllRef = React22.useRef(onToggleAll);
|
|
3421
3650
|
onToggleAllRef.current = onToggleAll;
|
|
3422
|
-
const onToggleRowRef =
|
|
3651
|
+
const onToggleRowRef = React22.useRef(onToggleRow);
|
|
3423
3652
|
onToggleRowRef.current = onToggleRow;
|
|
3424
|
-
const selectionColumn =
|
|
3653
|
+
const selectionColumn = React22.useMemo(() => {
|
|
3425
3654
|
if (selectionMode === "none") return null;
|
|
3426
3655
|
const colDef = {
|
|
3427
3656
|
id: SELECTION_COLUMN_ID,
|
|
3428
|
-
header: () => selectionMode === "multiple" ? /* @__PURE__ */
|
|
3657
|
+
header: () => selectionMode === "multiple" ? /* @__PURE__ */ React22__default.default.createElement(SelectionHeaderCell, {
|
|
3429
3658
|
isAllSelected: isAllSelectedRef.current,
|
|
3430
3659
|
hasSelection: hasSelectionRef.current,
|
|
3431
3660
|
onToggleAll: onToggleAllRef.current
|
|
3432
3661
|
}) : null,
|
|
3433
3662
|
cell: ({
|
|
3434
3663
|
row
|
|
3435
|
-
}) => /* @__PURE__ */
|
|
3664
|
+
}) => /* @__PURE__ */ React22__default.default.createElement(SelectionCell, {
|
|
3436
3665
|
row,
|
|
3437
3666
|
onToggleRow: onToggleRowRef.current
|
|
3438
3667
|
}),
|
|
@@ -3452,10 +3681,10 @@ var useTableSorting = ({
|
|
|
3452
3681
|
defaultOrderBy,
|
|
3453
3682
|
onOrderByChanged
|
|
3454
3683
|
}) => {
|
|
3455
|
-
const [internalSorting, setInternalSorting] =
|
|
3684
|
+
const [internalSorting, setInternalSorting] = React22.useState(() => defaultOrderBy ? convertOrderByToSortingState(defaultOrderBy) : []);
|
|
3456
3685
|
const isControlled = orderBy !== void 0;
|
|
3457
|
-
const sortingState =
|
|
3458
|
-
const onSortingChange =
|
|
3686
|
+
const sortingState = React22.useMemo(() => orderBy ? convertOrderByToSortingState(orderBy) : internalSorting, [orderBy, internalSorting]);
|
|
3687
|
+
const onSortingChange = React22.useCallback((updater) => {
|
|
3459
3688
|
const newSorting = typeof updater === "function" ? updater(sortingState) : updater;
|
|
3460
3689
|
if (!isControlled) {
|
|
3461
3690
|
setInternalSorting(newSorting);
|
|
@@ -3499,12 +3728,12 @@ var TableCell_default = {};
|
|
|
3499
3728
|
function LoadingCell({
|
|
3500
3729
|
width
|
|
3501
3730
|
}) {
|
|
3502
|
-
return /* @__PURE__ */
|
|
3731
|
+
return /* @__PURE__ */ React22__default.default.createElement("td", {
|
|
3503
3732
|
className: TableCell_default.osdkTableCell,
|
|
3504
3733
|
style: {
|
|
3505
3734
|
width
|
|
3506
3735
|
}
|
|
3507
|
-
}, /* @__PURE__ */
|
|
3736
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3508
3737
|
className: classnames7__default.default(LoadingCell_default.osdkLoadingCell, LoadingCell_default.osdkCellSkeleton)
|
|
3509
3738
|
}));
|
|
3510
3739
|
}
|
|
@@ -3520,17 +3749,17 @@ function LoadingRow({
|
|
|
3520
3749
|
rowHeight = 40,
|
|
3521
3750
|
columnWidth = 80
|
|
3522
3751
|
}) {
|
|
3523
|
-
return /* @__PURE__ */
|
|
3752
|
+
return /* @__PURE__ */ React22__default.default.createElement("tr", {
|
|
3524
3753
|
className: TableRow_default.osdkTableRow,
|
|
3525
3754
|
style: {
|
|
3526
3755
|
height: `${rowHeight}px`,
|
|
3527
3756
|
transform: `translateY(${translateY}px)`
|
|
3528
3757
|
}
|
|
3529
|
-
}, /* @__PURE__ */
|
|
3758
|
+
}, /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, Array.from({
|
|
3530
3759
|
length: columnCount
|
|
3531
3760
|
}).map((_, index) => {
|
|
3532
3761
|
const width = headers.length > index ? headers[index].getSize() : columnWidth;
|
|
3533
|
-
return /* @__PURE__ */
|
|
3762
|
+
return /* @__PURE__ */ React22__default.default.createElement(LoadingCell, {
|
|
3534
3763
|
key: `loading-cell-${index}`,
|
|
3535
3764
|
width
|
|
3536
3765
|
});
|
|
@@ -3544,21 +3773,21 @@ var TableBody_default = {};
|
|
|
3544
3773
|
var ActionButton_default = {};
|
|
3545
3774
|
|
|
3546
3775
|
// src/base-components/action-button/ActionButton.tsx
|
|
3547
|
-
function
|
|
3548
|
-
return
|
|
3776
|
+
function _extends9() {
|
|
3777
|
+
return _extends9 = Object.assign ? Object.assign.bind() : function(n) {
|
|
3549
3778
|
for (var e = 1; e < arguments.length; e++) {
|
|
3550
3779
|
var t = arguments[e];
|
|
3551
3780
|
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
3552
3781
|
}
|
|
3553
3782
|
return n;
|
|
3554
|
-
},
|
|
3783
|
+
}, _extends9.apply(null, arguments);
|
|
3555
3784
|
}
|
|
3556
3785
|
function ActionButton({
|
|
3557
3786
|
variant = "secondary",
|
|
3558
3787
|
className,
|
|
3559
3788
|
...rest
|
|
3560
3789
|
}) {
|
|
3561
|
-
return /* @__PURE__ */
|
|
3790
|
+
return /* @__PURE__ */ React22__default.default.createElement(button.Button, _extends9({
|
|
3562
3791
|
className: classnames7__default.default(ActionButton_default.button, variant === "primary" ? ActionButton_default.primaryButton : ActionButton_default.secondaryButton, className)
|
|
3563
3792
|
}, rest));
|
|
3564
3793
|
}
|
|
@@ -3575,25 +3804,25 @@ function Dialog({
|
|
|
3575
3804
|
footer,
|
|
3576
3805
|
className
|
|
3577
3806
|
}) {
|
|
3578
|
-
return /* @__PURE__ */
|
|
3807
|
+
return /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Root, {
|
|
3579
3808
|
open: isOpen,
|
|
3580
3809
|
onOpenChange
|
|
3581
|
-
}, /* @__PURE__ */
|
|
3810
|
+
}, /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Portal, null, /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Backdrop, {
|
|
3582
3811
|
className: Dialog_default.backdrop
|
|
3583
|
-
}), /* @__PURE__ */
|
|
3812
|
+
}), /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Popup, {
|
|
3584
3813
|
className: classnames7__default.default(Dialog_default.popup, className)
|
|
3585
|
-
}, /* @__PURE__ */
|
|
3814
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3586
3815
|
className: Dialog_default.header
|
|
3587
|
-
}, /* @__PURE__ */
|
|
3816
|
+
}, /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Title, {
|
|
3588
3817
|
className: Dialog_default.title
|
|
3589
|
-
}, title), /* @__PURE__ */
|
|
3818
|
+
}, title), /* @__PURE__ */ React22__default.default.createElement(dialog.Dialog.Close, {
|
|
3590
3819
|
className: Dialog_default.closeButton,
|
|
3591
3820
|
"aria-label": "Close dialog"
|
|
3592
|
-
}, /* @__PURE__ */
|
|
3821
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Cross, {
|
|
3593
3822
|
className: Dialog_default.closeIcon
|
|
3594
|
-
}))), /* @__PURE__ */
|
|
3823
|
+
}))), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3595
3824
|
className: Dialog_default.body
|
|
3596
|
-
}, children), footer != null && /* @__PURE__ */
|
|
3825
|
+
}, children), footer != null && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3597
3826
|
className: Dialog_default.footer
|
|
3598
3827
|
}, footer))));
|
|
3599
3828
|
}
|
|
@@ -3602,14 +3831,14 @@ function Dialog({
|
|
|
3602
3831
|
var DraggableList_default = {};
|
|
3603
3832
|
|
|
3604
3833
|
// src/base-components/draggable-list/DraggableList.tsx
|
|
3605
|
-
function
|
|
3606
|
-
return
|
|
3834
|
+
function _extends10() {
|
|
3835
|
+
return _extends10 = Object.assign ? Object.assign.bind() : function(n) {
|
|
3607
3836
|
for (var e = 1; e < arguments.length; e++) {
|
|
3608
3837
|
var t = arguments[e];
|
|
3609
3838
|
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
3610
3839
|
}
|
|
3611
3840
|
return n;
|
|
3612
|
-
},
|
|
3841
|
+
}, _extends10.apply(null, arguments);
|
|
3613
3842
|
}
|
|
3614
3843
|
function DraggableListItem({
|
|
3615
3844
|
item,
|
|
@@ -3631,27 +3860,27 @@ function DraggableListItem({
|
|
|
3631
3860
|
transform: utilities.CSS.Transform.toString(transform),
|
|
3632
3861
|
transition
|
|
3633
3862
|
};
|
|
3634
|
-
const handleRemove =
|
|
3863
|
+
const handleRemove = React22.useCallback(() => {
|
|
3635
3864
|
onRemove?.(item.id);
|
|
3636
3865
|
}, [item.id, onRemove]);
|
|
3637
3866
|
const RemoveIcon = removeIconVariant === "trash" ? icons.Trash : icons.SmallCross;
|
|
3638
|
-
return /* @__PURE__ */
|
|
3867
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3639
3868
|
ref: setNodeRef,
|
|
3640
3869
|
style,
|
|
3641
3870
|
className: DraggableList_default.draggableItem,
|
|
3642
3871
|
"data-dragging": isDragging
|
|
3643
|
-
}, /* @__PURE__ */
|
|
3872
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", _extends10({
|
|
3644
3873
|
className: DraggableList_default.dragHandle,
|
|
3645
3874
|
"aria-label": `Reorder ${item.label}`
|
|
3646
|
-
}, attributes, listeners), /* @__PURE__ */
|
|
3875
|
+
}, attributes, listeners), /* @__PURE__ */ React22__default.default.createElement(icons.DragHandleVertical, {
|
|
3647
3876
|
className: DraggableList_default.icon
|
|
3648
|
-
})), /* @__PURE__ */
|
|
3877
|
+
})), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3649
3878
|
className: DraggableList_default.itemContent
|
|
3650
|
-
}, renderContent ? renderContent(item) : item.label), onRemove && /* @__PURE__ */
|
|
3879
|
+
}, renderContent ? renderContent(item) : item.label), onRemove && /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
3651
3880
|
className: DraggableList_default.removeButton,
|
|
3652
3881
|
onClick: handleRemove,
|
|
3653
3882
|
"aria-label": `Remove ${item.label}`
|
|
3654
|
-
}, /* @__PURE__ */
|
|
3883
|
+
}, /* @__PURE__ */ React22__default.default.createElement(RemoveIcon, {
|
|
3655
3884
|
className: DraggableList_default.icon
|
|
3656
3885
|
})));
|
|
3657
3886
|
}
|
|
@@ -3664,7 +3893,7 @@ function DraggableList({
|
|
|
3664
3893
|
emptyMessage,
|
|
3665
3894
|
className
|
|
3666
3895
|
}) {
|
|
3667
|
-
const itemIds =
|
|
3896
|
+
const itemIds = React22.useMemo(() => items.map((item) => item.id), [items]);
|
|
3668
3897
|
const sensors = core.useSensors(core.useSensor(core.PointerSensor, {
|
|
3669
3898
|
activationConstraint: {
|
|
3670
3899
|
distance: 5
|
|
@@ -3672,7 +3901,7 @@ function DraggableList({
|
|
|
3672
3901
|
}), core.useSensor(core.KeyboardSensor, {
|
|
3673
3902
|
coordinateGetter: sortable.sortableKeyboardCoordinates
|
|
3674
3903
|
}));
|
|
3675
|
-
const handleDragEnd =
|
|
3904
|
+
const handleDragEnd = React22.useCallback((event) => {
|
|
3676
3905
|
const {
|
|
3677
3906
|
active,
|
|
3678
3907
|
over
|
|
@@ -3683,31 +3912,31 @@ function DraggableList({
|
|
|
3683
3912
|
onReorder(oldIndex, newIndex);
|
|
3684
3913
|
}
|
|
3685
3914
|
}, [items, onReorder]);
|
|
3686
|
-
const containerRef =
|
|
3915
|
+
const containerRef = React22.useRef(null);
|
|
3687
3916
|
useKeyboardEvents(containerRef);
|
|
3688
|
-
const
|
|
3689
|
-
return /* @__PURE__ */
|
|
3917
|
+
const DndContext2 = core.DndContext;
|
|
3918
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3690
3919
|
ref: containerRef,
|
|
3691
3920
|
className: classnames7__default.default(DraggableList_default.draggableListContainer, className)
|
|
3692
|
-
}, /* @__PURE__ */
|
|
3921
|
+
}, /* @__PURE__ */ React22__default.default.createElement(DndContext2, {
|
|
3693
3922
|
sensors,
|
|
3694
3923
|
collisionDetection: core.closestCenter,
|
|
3695
3924
|
onDragEnd: handleDragEnd
|
|
3696
|
-
}, /* @__PURE__ */
|
|
3925
|
+
}, /* @__PURE__ */ React22__default.default.createElement(sortable.SortableContext, {
|
|
3697
3926
|
items: itemIds,
|
|
3698
3927
|
strategy: sortable.verticalListSortingStrategy
|
|
3699
|
-
}, items.map((item) => /* @__PURE__ */
|
|
3928
|
+
}, items.map((item) => /* @__PURE__ */ React22__default.default.createElement(DraggableListItem, {
|
|
3700
3929
|
key: item.id,
|
|
3701
3930
|
item,
|
|
3702
3931
|
onRemove,
|
|
3703
3932
|
removeIconVariant,
|
|
3704
3933
|
renderContent
|
|
3705
|
-
})))), items.length === 0 && emptyMessage && /* @__PURE__ */
|
|
3934
|
+
})))), items.length === 0 && emptyMessage && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3706
3935
|
className: DraggableList_default.emptyState
|
|
3707
3936
|
}, emptyMessage));
|
|
3708
3937
|
}
|
|
3709
3938
|
var useKeyboardEvents = (containerRef) => {
|
|
3710
|
-
|
|
3939
|
+
React22.useEffect(() => {
|
|
3711
3940
|
const el = containerRef.current;
|
|
3712
3941
|
if (el == null) {
|
|
3713
3942
|
return;
|
|
@@ -3744,11 +3973,11 @@ function SearchBar({
|
|
|
3744
3973
|
className,
|
|
3745
3974
|
onKeyDown
|
|
3746
3975
|
}) {
|
|
3747
|
-
return /* @__PURE__ */
|
|
3976
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3748
3977
|
className: classnames7__default.default(SearchBar_default.searchBar, className)
|
|
3749
|
-
}, /* @__PURE__ */
|
|
3978
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Search, {
|
|
3750
3979
|
className: SearchBar_default.searchIcon
|
|
3751
|
-
}), /* @__PURE__ */
|
|
3980
|
+
}), /* @__PURE__ */ React22__default.default.createElement(input.Input, {
|
|
3752
3981
|
type: "text",
|
|
3753
3982
|
placeholder,
|
|
3754
3983
|
"aria-label": ariaLabel ?? placeholder,
|
|
@@ -3772,9 +4001,9 @@ function ColumnConfigDialog({
|
|
|
3772
4001
|
onApply,
|
|
3773
4002
|
isValidConfig
|
|
3774
4003
|
}) {
|
|
3775
|
-
const [visibleColumns, setVisibleColumns] =
|
|
3776
|
-
const [searchQuery, setSearchQuery] =
|
|
3777
|
-
const allColumns =
|
|
4004
|
+
const [visibleColumns, setVisibleColumns] = React22.useState([]);
|
|
4005
|
+
const [searchQuery, setSearchQuery] = React22.useState("");
|
|
4006
|
+
const allColumns = React22.useMemo(() => {
|
|
3778
4007
|
return columnOptions.map((opt) => {
|
|
3779
4008
|
const isVisible = currentVisibility ? currentVisibility[opt.id] : false;
|
|
3780
4009
|
return {
|
|
@@ -3784,7 +4013,7 @@ function ColumnConfigDialog({
|
|
|
3784
4013
|
};
|
|
3785
4014
|
});
|
|
3786
4015
|
}, [columnOptions, currentVisibility]);
|
|
3787
|
-
|
|
4016
|
+
React22.useEffect(() => {
|
|
3788
4017
|
if (isOpen) {
|
|
3789
4018
|
const visibleCols = allColumns.filter((col) => col.isVisible);
|
|
3790
4019
|
if (!!currentColumnOrder?.length) {
|
|
@@ -3800,19 +4029,19 @@ function ColumnConfigDialog({
|
|
|
3800
4029
|
setSearchQuery("");
|
|
3801
4030
|
}
|
|
3802
4031
|
}, [isOpen, allColumns, currentColumnOrder]);
|
|
3803
|
-
const handleApply =
|
|
4032
|
+
const handleApply = React22.useCallback(() => {
|
|
3804
4033
|
onApply(getColumnConfig(allColumns, visibleColumns));
|
|
3805
4034
|
onClose();
|
|
3806
4035
|
}, [allColumns, visibleColumns, onApply, onClose]);
|
|
3807
4036
|
const isValid = isValidConfig ? isValidConfig(getColumnConfig(allColumns, visibleColumns)) : true;
|
|
3808
4037
|
const isApplyDisabled = visibleColumns.length === 0 || !isValid;
|
|
3809
|
-
const handleReorderColumns =
|
|
4038
|
+
const handleReorderColumns = React22.useCallback((fromIndex, toIndex) => {
|
|
3810
4039
|
setVisibleColumns((items) => sortable.arrayMove(items, fromIndex, toIndex));
|
|
3811
4040
|
}, []);
|
|
3812
|
-
const handleRemoveColumn =
|
|
4041
|
+
const handleRemoveColumn = React22.useCallback((columnId) => {
|
|
3813
4042
|
setVisibleColumns((prev) => prev.filter((col) => col.id !== columnId));
|
|
3814
4043
|
}, []);
|
|
3815
|
-
const handleToggleColumn =
|
|
4044
|
+
const handleToggleColumn = React22.useCallback((column) => {
|
|
3816
4045
|
setVisibleColumns((prev) => {
|
|
3817
4046
|
const isCurrentlyVisible = prev.some((col) => col.id === column.id);
|
|
3818
4047
|
if (isCurrentlyVisible) {
|
|
@@ -3822,10 +4051,10 @@ function ColumnConfigDialog({
|
|
|
3822
4051
|
}
|
|
3823
4052
|
});
|
|
3824
4053
|
}, []);
|
|
3825
|
-
const handleSearchChange =
|
|
4054
|
+
const handleSearchChange = React22.useCallback((event) => {
|
|
3826
4055
|
setSearchQuery(event.target.value);
|
|
3827
4056
|
}, []);
|
|
3828
|
-
const handleSelectAll =
|
|
4057
|
+
const handleSelectAll = React22.useCallback((columns) => {
|
|
3829
4058
|
setVisibleColumns((prev) => {
|
|
3830
4059
|
const allSelected = columns.every((col) => prev.some((v) => v.id === col.id));
|
|
3831
4060
|
if (allSelected) {
|
|
@@ -3836,33 +4065,33 @@ function ColumnConfigDialog({
|
|
|
3836
4065
|
}
|
|
3837
4066
|
});
|
|
3838
4067
|
}, []);
|
|
3839
|
-
const filteredAvailableColumns =
|
|
4068
|
+
const filteredAvailableColumns = React22.useMemo(() => {
|
|
3840
4069
|
const query = searchQuery.toLowerCase().trim();
|
|
3841
4070
|
if (!query) {
|
|
3842
4071
|
return allColumns;
|
|
3843
4072
|
}
|
|
3844
4073
|
return allColumns.filter((col) => (col.label?.toLowerCase().includes(query) ?? false) || col.id.toLowerCase().includes(query));
|
|
3845
4074
|
}, [allColumns, searchQuery]);
|
|
3846
|
-
const footer =
|
|
4075
|
+
const footer = React22.useMemo(() => /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
3847
4076
|
onClick: onClose
|
|
3848
|
-
}, "Cancel"), /* @__PURE__ */
|
|
4077
|
+
}, "Cancel"), /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
3849
4078
|
variant: "primary",
|
|
3850
4079
|
onClick: handleApply,
|
|
3851
4080
|
disabled: isApplyDisabled
|
|
3852
4081
|
}, "Apply")), [onClose, handleApply, isApplyDisabled]);
|
|
3853
|
-
return /* @__PURE__ */
|
|
4082
|
+
return /* @__PURE__ */ React22__default.default.createElement(Dialog, {
|
|
3854
4083
|
isOpen,
|
|
3855
4084
|
onOpenChange: onClose,
|
|
3856
4085
|
title: DialogTitle,
|
|
3857
4086
|
footer,
|
|
3858
4087
|
className: ColumnConfigDialog_default.columnConfigDialog
|
|
3859
|
-
}, /* @__PURE__ */
|
|
4088
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3860
4089
|
className: ColumnConfigDialog_default.dialogLayout
|
|
3861
|
-
}, /* @__PURE__ */
|
|
4090
|
+
}, /* @__PURE__ */ React22__default.default.createElement(VisibleColumnsList, {
|
|
3862
4091
|
columns: visibleColumns,
|
|
3863
4092
|
onReorder: handleReorderColumns,
|
|
3864
4093
|
onRemove: handleRemoveColumn
|
|
3865
|
-
}), /* @__PURE__ */
|
|
4094
|
+
}), /* @__PURE__ */ React22__default.default.createElement(AvailableColumnsList, {
|
|
3866
4095
|
visibleColumns,
|
|
3867
4096
|
searchQuery,
|
|
3868
4097
|
onSearchChange: handleSearchChange,
|
|
@@ -3871,9 +4100,9 @@ function ColumnConfigDialog({
|
|
|
3871
4100
|
filteredColumns: filteredAvailableColumns
|
|
3872
4101
|
})));
|
|
3873
4102
|
}
|
|
3874
|
-
var DialogTitle = /* @__PURE__ */
|
|
4103
|
+
var DialogTitle = /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3875
4104
|
className: ColumnConfigDialog_default.title
|
|
3876
|
-
}, /* @__PURE__ */
|
|
4105
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Cog, null), "Configure Table Columns");
|
|
3877
4106
|
var getColumnConfig = (allColumns, visibleColumns) => {
|
|
3878
4107
|
const hiddenColumns = allColumns.filter((col) => !visibleColumns.some((v) => v.id === col.id));
|
|
3879
4108
|
return [...visibleColumns.map((col) => ({
|
|
@@ -3889,17 +4118,17 @@ function VisibleColumnsList({
|
|
|
3889
4118
|
onReorder,
|
|
3890
4119
|
onRemove
|
|
3891
4120
|
}) {
|
|
3892
|
-
return /* @__PURE__ */
|
|
4121
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3893
4122
|
className: ColumnConfigDialog_default.visibleColumnsContainer
|
|
3894
|
-
}, /* @__PURE__ */
|
|
4123
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3895
4124
|
className: ColumnConfigDialog_default.sectionHeader
|
|
3896
|
-
}, /* @__PURE__ */
|
|
4125
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3897
4126
|
className: ColumnConfigDialog_default.sectionTitle
|
|
3898
|
-
}, /* @__PURE__ */
|
|
4127
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", null, "Visible Columns"), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
3899
4128
|
className: ColumnConfigDialog_default.countTag
|
|
3900
|
-
}, columns.length)), /* @__PURE__ */
|
|
4129
|
+
}, columns.length)), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3901
4130
|
className: ColumnConfigDialog_default.sectionHint
|
|
3902
|
-
}, "Drag to reorder")), /* @__PURE__ */
|
|
4131
|
+
}, "Drag to reorder")), /* @__PURE__ */ React22__default.default.createElement(DraggableList, {
|
|
3903
4132
|
items: columns,
|
|
3904
4133
|
onReorder,
|
|
3905
4134
|
onRemove,
|
|
@@ -3920,42 +4149,42 @@ function AvailableColumnsList({
|
|
|
3920
4149
|
const totalCount = filteredColumns.length;
|
|
3921
4150
|
const allFilteredSelected = filteredColumns.every((col) => visibleColumns.some((v) => v.id === col.id));
|
|
3922
4151
|
const someFilteredSelected = filteredColumns.some((col) => visibleColumns.some((v) => v.id === col.id));
|
|
3923
|
-
const handleSelectAllClick =
|
|
4152
|
+
const handleSelectAllClick = React22.useCallback(() => {
|
|
3924
4153
|
onSelectAll(filteredColumns);
|
|
3925
4154
|
}, [filteredColumns, onSelectAll]);
|
|
3926
|
-
return /* @__PURE__ */
|
|
4155
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3927
4156
|
className: ColumnConfigDialog_default.availableColumnsContainer
|
|
3928
|
-
}, /* @__PURE__ */
|
|
4157
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3929
4158
|
className: classnames7__default.default(ColumnConfigDialog_default.sectionHeader, ColumnConfigDialog_default.sectionTitle)
|
|
3930
|
-
}, "Add or Remove Columns"), /* @__PURE__ */
|
|
4159
|
+
}, "Add or Remove Columns"), /* @__PURE__ */ React22__default.default.createElement(SearchBar, {
|
|
3931
4160
|
value: searchQuery,
|
|
3932
4161
|
onChange: onSearchChange,
|
|
3933
4162
|
placeholder: "Search...",
|
|
3934
4163
|
"aria-label": "Search available columns",
|
|
3935
4164
|
className: ColumnConfigDialog_default.searchContainer
|
|
3936
|
-
}), /* @__PURE__ */
|
|
4165
|
+
}), /* @__PURE__ */ React22__default.default.createElement(collapsible.Collapsible.Root, {
|
|
3937
4166
|
defaultOpen: true,
|
|
3938
4167
|
className: ColumnConfigDialog_default.propertiesList
|
|
3939
|
-
}, /* @__PURE__ */
|
|
4168
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3940
4169
|
className: ColumnConfigDialog_default.categoryHeader
|
|
3941
|
-
}, /* @__PURE__ */
|
|
4170
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
3942
4171
|
checked: allFilteredSelected,
|
|
3943
4172
|
indeterminate: someFilteredSelected && !allFilteredSelected,
|
|
3944
4173
|
onCheckedChange: handleSelectAllClick,
|
|
3945
4174
|
className: ColumnConfigDialog_default.checkbox
|
|
3946
|
-
}), /* @__PURE__ */
|
|
4175
|
+
}), /* @__PURE__ */ React22__default.default.createElement(collapsible.Collapsible.Trigger, {
|
|
3947
4176
|
className: ColumnConfigDialog_default.categoryTrigger
|
|
3948
|
-
}, /* @__PURE__ */
|
|
4177
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
3949
4178
|
className: ColumnConfigDialog_default.categoryTitle
|
|
3950
|
-
}, "All Columns"), /* @__PURE__ */
|
|
4179
|
+
}, "All Columns"), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
3951
4180
|
className: ColumnConfigDialog_default.categoryCount
|
|
3952
|
-
}, selectedCount, "/", totalCount), /* @__PURE__ */
|
|
4181
|
+
}, selectedCount, "/", totalCount), /* @__PURE__ */ React22__default.default.createElement(icons.CaretDown, {
|
|
3953
4182
|
className: ColumnConfigDialog_default.caretIcon
|
|
3954
|
-
}))), /* @__PURE__ */
|
|
4183
|
+
}))), /* @__PURE__ */ React22__default.default.createElement(collapsible.Collapsible.Panel, {
|
|
3955
4184
|
className: ColumnConfigDialog_default.propertyList
|
|
3956
|
-
}, filteredColumns.length === 0 ? /* @__PURE__ */
|
|
4185
|
+
}, filteredColumns.length === 0 ? /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3957
4186
|
className: ColumnConfigDialog_default.emptyState
|
|
3958
|
-
}, "No matching columns found") : filteredColumns.map((column) => /* @__PURE__ */
|
|
4187
|
+
}, "No matching columns found") : filteredColumns.map((column) => /* @__PURE__ */ React22__default.default.createElement(PropertyItem, {
|
|
3959
4188
|
key: column.id,
|
|
3960
4189
|
column,
|
|
3961
4190
|
isSelected: visibleColumns.some((v) => v.id === column.id),
|
|
@@ -3968,19 +4197,19 @@ function PropertyItem({
|
|
|
3968
4197
|
onToggle,
|
|
3969
4198
|
showInfoIcon = false
|
|
3970
4199
|
}) {
|
|
3971
|
-
const handleClick =
|
|
4200
|
+
const handleClick = React22.useCallback(() => {
|
|
3972
4201
|
onToggle(column);
|
|
3973
4202
|
}, [onToggle, column]);
|
|
3974
|
-
return /* @__PURE__ */
|
|
4203
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
3975
4204
|
className: ColumnConfigDialog_default.propertyItem
|
|
3976
|
-
}, /* @__PURE__ */
|
|
4205
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Checkbox, {
|
|
3977
4206
|
checked: isSelected,
|
|
3978
4207
|
onCheckedChange: handleClick,
|
|
3979
4208
|
className: ColumnConfigDialog_default.checkbox
|
|
3980
|
-
}), /* @__PURE__ */
|
|
4209
|
+
}), /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
3981
4210
|
onClick: handleClick,
|
|
3982
4211
|
className: ColumnConfigDialog_default.propertyName
|
|
3983
|
-
}, column.label), showInfoIcon && /* @__PURE__ */
|
|
4212
|
+
}, column.label), showInfoIcon && /* @__PURE__ */ React22__default.default.createElement(icons.SmallInfoSign, {
|
|
3984
4213
|
className: ColumnConfigDialog_default.infoIcon
|
|
3985
4214
|
}));
|
|
3986
4215
|
}
|
|
@@ -3993,8 +4222,8 @@ function SortableItemsList({
|
|
|
3993
4222
|
onRemove,
|
|
3994
4223
|
className
|
|
3995
4224
|
}) {
|
|
3996
|
-
const renderContent =
|
|
3997
|
-
return /* @__PURE__ */
|
|
4225
|
+
const renderContent = React22.useCallback((item) => item.content, []);
|
|
4226
|
+
return /* @__PURE__ */ React22__default.default.createElement(DraggableList, {
|
|
3998
4227
|
items,
|
|
3999
4228
|
onReorder,
|
|
4000
4229
|
onRemove,
|
|
@@ -4012,9 +4241,9 @@ function MultiColumnSortDialog({
|
|
|
4012
4241
|
currentSorting,
|
|
4013
4242
|
columnOptions
|
|
4014
4243
|
}) {
|
|
4015
|
-
const [selectedSortColumns, setSelectedSortColumns] =
|
|
4016
|
-
const [menuSearchQuery, setMenuSearchQuery] =
|
|
4017
|
-
|
|
4244
|
+
const [selectedSortColumns, setSelectedSortColumns] = React22.useState([]);
|
|
4245
|
+
const [menuSearchQuery, setMenuSearchQuery] = React22.useState("");
|
|
4246
|
+
React22.useEffect(() => {
|
|
4018
4247
|
if (isOpen) {
|
|
4019
4248
|
const selectedColumns = [];
|
|
4020
4249
|
for (const sort of currentSorting) {
|
|
@@ -4029,25 +4258,25 @@ function MultiColumnSortDialog({
|
|
|
4029
4258
|
setSelectedSortColumns(selectedColumns);
|
|
4030
4259
|
}
|
|
4031
4260
|
}, [isOpen, currentSorting, columnOptions]);
|
|
4032
|
-
const handleAddColumn =
|
|
4261
|
+
const handleAddColumn = React22.useCallback((column) => {
|
|
4033
4262
|
setSelectedSortColumns((prev) => [...prev, {
|
|
4034
4263
|
...column,
|
|
4035
4264
|
direction: "asc"
|
|
4036
4265
|
}]);
|
|
4037
4266
|
}, []);
|
|
4038
|
-
const handleRemoveSortColumn =
|
|
4267
|
+
const handleRemoveSortColumn = React22.useCallback((id) => {
|
|
4039
4268
|
setSelectedSortColumns((prev) => prev.filter((item) => item.id !== id));
|
|
4040
4269
|
}, []);
|
|
4041
|
-
const handleReorderSortColumns =
|
|
4270
|
+
const handleReorderSortColumns = React22.useCallback((fromIndex, toIndex) => {
|
|
4042
4271
|
setSelectedSortColumns((items) => sortable.arrayMove(items, fromIndex, toIndex));
|
|
4043
4272
|
}, []);
|
|
4044
|
-
const handleToggleSortDirection =
|
|
4273
|
+
const handleToggleSortDirection = React22.useCallback((id) => {
|
|
4045
4274
|
setSelectedSortColumns((prev) => prev.map((item) => item.id === id ? {
|
|
4046
4275
|
...item,
|
|
4047
4276
|
direction: item.direction === "asc" ? "desc" : "asc"
|
|
4048
4277
|
} : item));
|
|
4049
4278
|
}, []);
|
|
4050
|
-
const handleApply =
|
|
4279
|
+
const handleApply = React22.useCallback(() => {
|
|
4051
4280
|
const sortingState = selectedSortColumns.map((col) => ({
|
|
4052
4281
|
id: col.id,
|
|
4053
4282
|
desc: col.direction === "desc"
|
|
@@ -4055,100 +4284,100 @@ function MultiColumnSortDialog({
|
|
|
4055
4284
|
onApply(sortingState);
|
|
4056
4285
|
onClose();
|
|
4057
4286
|
}, [selectedSortColumns, onApply, onClose]);
|
|
4058
|
-
const availableColumns =
|
|
4059
|
-
const filteredAvailableColumns =
|
|
4287
|
+
const availableColumns = React22.useMemo(() => columnOptions.filter((col) => col.canSort && !selectedSortColumns.some((selected) => selected.id === col.id)), [columnOptions, selectedSortColumns]);
|
|
4288
|
+
const filteredAvailableColumns = React22.useMemo(() => {
|
|
4060
4289
|
const query = menuSearchQuery.toLowerCase().trim();
|
|
4061
4290
|
if (!query) {
|
|
4062
4291
|
return availableColumns;
|
|
4063
4292
|
}
|
|
4064
4293
|
return availableColumns.filter((col) => col.name.toLowerCase().includes(query));
|
|
4065
4294
|
}, [availableColumns, menuSearchQuery]);
|
|
4066
|
-
const handleMenuSearchChange =
|
|
4295
|
+
const handleMenuSearchChange = React22.useCallback((event) => {
|
|
4067
4296
|
setMenuSearchQuery(event.target.value);
|
|
4068
4297
|
}, []);
|
|
4069
|
-
const handleMenuOpenChange =
|
|
4298
|
+
const handleMenuOpenChange = React22.useCallback((open) => {
|
|
4070
4299
|
if (open) {
|
|
4071
4300
|
setMenuSearchQuery("");
|
|
4072
4301
|
}
|
|
4073
4302
|
}, []);
|
|
4074
|
-
const sortableItems =
|
|
4303
|
+
const sortableItems = React22.useMemo(() => {
|
|
4075
4304
|
return selectedSortColumns.map((item) => ({
|
|
4076
4305
|
id: item.id,
|
|
4077
4306
|
label: item.name,
|
|
4078
|
-
content: /* @__PURE__ */
|
|
4307
|
+
content: /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4079
4308
|
className: MultiColumnSortDialog_default.sortColumnItem
|
|
4080
|
-
}, /* @__PURE__ */
|
|
4309
|
+
}, /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
4081
4310
|
className: classnames7__default.default(MultiColumnSortDialog_default.sortColumnName, MultiColumnSortDialog_default.truncate)
|
|
4082
|
-
}, item.name), /* @__PURE__ */
|
|
4311
|
+
}, item.name), /* @__PURE__ */ React22__default.default.createElement(button.Button, {
|
|
4083
4312
|
className: MultiColumnSortDialog_default.sortDirectionButton,
|
|
4084
4313
|
onClick: () => handleToggleSortDirection(item.id),
|
|
4085
4314
|
"aria-label": `Toggle sort direction for ${item.name}`
|
|
4086
|
-
}, item.direction === "asc" ? /* @__PURE__ */
|
|
4315
|
+
}, item.direction === "asc" ? /* @__PURE__ */ React22__default.default.createElement(icons.SortAlphabetical, {
|
|
4087
4316
|
className: MultiColumnSortDialog_default.sortIcon
|
|
4088
|
-
}) : /* @__PURE__ */
|
|
4317
|
+
}) : /* @__PURE__ */ React22__default.default.createElement(icons.SortAlphabeticalDesc, {
|
|
4089
4318
|
className: MultiColumnSortDialog_default.sortIcon
|
|
4090
4319
|
})))
|
|
4091
4320
|
}));
|
|
4092
4321
|
}, [selectedSortColumns, handleToggleSortDirection]);
|
|
4093
|
-
const footer =
|
|
4322
|
+
const footer = React22.useMemo(() => /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
4094
4323
|
onClick: onClose
|
|
4095
|
-
}, "Cancel"), /* @__PURE__ */
|
|
4324
|
+
}, "Cancel"), /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
4096
4325
|
variant: "primary",
|
|
4097
4326
|
onClick: handleApply
|
|
4098
4327
|
}, "Apply")), [handleApply, onClose]);
|
|
4099
|
-
return /* @__PURE__ */
|
|
4328
|
+
return /* @__PURE__ */ React22__default.default.createElement(Dialog, {
|
|
4100
4329
|
isOpen,
|
|
4101
4330
|
onOpenChange: onClose,
|
|
4102
4331
|
title: DialogTitle2,
|
|
4103
4332
|
footer
|
|
4104
|
-
}, /* @__PURE__ */
|
|
4333
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4105
4334
|
className: MultiColumnSortDialog_default.sortColumnsList
|
|
4106
|
-
}, /* @__PURE__ */
|
|
4335
|
+
}, /* @__PURE__ */ React22__default.default.createElement(SortableItemsList, {
|
|
4107
4336
|
items: sortableItems,
|
|
4108
4337
|
onReorder: handleReorderSortColumns,
|
|
4109
4338
|
onRemove: handleRemoveSortColumn,
|
|
4110
4339
|
className: MultiColumnSortDialog_default.sortableList
|
|
4111
|
-
}), /* @__PURE__ */
|
|
4340
|
+
}), /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Root, {
|
|
4112
4341
|
onOpenChange: handleMenuOpenChange
|
|
4113
|
-
}, /* @__PURE__ */
|
|
4342
|
+
}, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Trigger, {
|
|
4114
4343
|
className: MultiColumnSortDialog_default.addColumnButton,
|
|
4115
4344
|
disabled: availableColumns.length === 0,
|
|
4116
4345
|
"aria-label": "Add column to sort"
|
|
4117
|
-
}, /* @__PURE__ */
|
|
4346
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Add, {
|
|
4118
4347
|
className: MultiColumnSortDialog_default.addIcon
|
|
4119
|
-
}), /* @__PURE__ */
|
|
4348
|
+
}), /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
4120
4349
|
className: MultiColumnSortDialog_default.addColumnText
|
|
4121
|
-
}, "Add Column to Sort"), /* @__PURE__ */
|
|
4350
|
+
}, "Add Column to Sort"), /* @__PURE__ */ React22__default.default.createElement(icons.CaretDown, {
|
|
4122
4351
|
color: "currentColor"
|
|
4123
|
-
})), /* @__PURE__ */
|
|
4352
|
+
})), /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Portal, null, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Positioner, {
|
|
4124
4353
|
className: MultiColumnSortDialog_default.menuPositioner,
|
|
4125
4354
|
sideOffset: 4
|
|
4126
|
-
}, /* @__PURE__ */
|
|
4355
|
+
}, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Popup, {
|
|
4127
4356
|
className: MultiColumnSortDialog_default.dropdownMenu
|
|
4128
|
-
}, /* @__PURE__ */
|
|
4357
|
+
}, /* @__PURE__ */ React22__default.default.createElement(SearchBar, {
|
|
4129
4358
|
value: menuSearchQuery,
|
|
4130
4359
|
onChange: handleMenuSearchChange,
|
|
4131
4360
|
placeholder: "Search columns",
|
|
4132
4361
|
"aria-label": "Search columns to sort",
|
|
4133
4362
|
className: MultiColumnSortDialog_default.menuSearchContainer,
|
|
4134
4363
|
onKeyDown: (e) => e.stopPropagation()
|
|
4135
|
-
}), filteredAvailableColumns.map((column) => /* @__PURE__ */
|
|
4364
|
+
}), filteredAvailableColumns.map((column) => /* @__PURE__ */ React22__default.default.createElement(AvailableColumnMenuItem, {
|
|
4136
4365
|
key: column.id,
|
|
4137
4366
|
column,
|
|
4138
4367
|
onAddColumn: handleAddColumn
|
|
4139
|
-
})), filteredAvailableColumns.length === 0 && /* @__PURE__ */
|
|
4368
|
+
})), filteredAvailableColumns.length === 0 && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4140
4369
|
className: MultiColumnSortDialog_default.menuEmptyState
|
|
4141
4370
|
}, "No matching columns")))))));
|
|
4142
4371
|
}
|
|
4143
|
-
var DialogTitle2 = /* @__PURE__ */
|
|
4372
|
+
var DialogTitle2 = /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4144
4373
|
className: MultiColumnSortDialog_default.title
|
|
4145
|
-
}, /* @__PURE__ */
|
|
4374
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.Cog, null), "Sort on Multiple Columns");
|
|
4146
4375
|
function AvailableColumnMenuItem({
|
|
4147
4376
|
column,
|
|
4148
4377
|
onAddColumn
|
|
4149
4378
|
}) {
|
|
4150
|
-
const onClick =
|
|
4151
|
-
return /* @__PURE__ */
|
|
4379
|
+
const onClick = React22.useCallback(() => onAddColumn(column), [onAddColumn, column]);
|
|
4380
|
+
return /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Item, {
|
|
4152
4381
|
className: classnames7__default.default(MultiColumnSortDialog_default.dropdownItem, MultiColumnSortDialog_default.truncate),
|
|
4153
4382
|
onClick
|
|
4154
4383
|
}, column.name);
|
|
@@ -4164,7 +4393,7 @@ var TableHeaderContent_default = {};
|
|
|
4164
4393
|
function TableHeaderContent({
|
|
4165
4394
|
header
|
|
4166
4395
|
}) {
|
|
4167
|
-
return /* @__PURE__ */
|
|
4396
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4168
4397
|
className: TableHeaderContent_default.osdkHeaderContent
|
|
4169
4398
|
}, reactTable.flexRender(header.column.columnDef.header, header.getContext()));
|
|
4170
4399
|
}
|
|
@@ -4179,14 +4408,14 @@ function HeaderMenuItem({
|
|
|
4179
4408
|
label,
|
|
4180
4409
|
active = false
|
|
4181
4410
|
}) {
|
|
4182
|
-
return /* @__PURE__ */
|
|
4411
|
+
return /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Item, {
|
|
4183
4412
|
closeOnClick: true,
|
|
4184
4413
|
className: classnames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderMenuItem, active && TableHeaderWithPopover_default.osdkHeaderActiveMenuItem),
|
|
4185
4414
|
onClick
|
|
4186
|
-
}, /* @__PURE__ */
|
|
4415
|
+
}, /* @__PURE__ */ React22__default.default.createElement(Icon, {
|
|
4187
4416
|
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
4188
4417
|
color: "currentColor"
|
|
4189
|
-
}), /* @__PURE__ */
|
|
4418
|
+
}), /* @__PURE__ */ React22__default.default.createElement("span", null, label));
|
|
4190
4419
|
}
|
|
4191
4420
|
function TableHeaderWithPopover({
|
|
4192
4421
|
header,
|
|
@@ -4209,8 +4438,8 @@ function TableHeaderWithPopover({
|
|
|
4209
4438
|
setSorting
|
|
4210
4439
|
} = table;
|
|
4211
4440
|
const currentSorting = table.getState().sorting;
|
|
4212
|
-
const [isOpen, setIsOpen] =
|
|
4213
|
-
const handlePinLeft =
|
|
4441
|
+
const [isOpen, setIsOpen] = React22.useState(false);
|
|
4442
|
+
const handlePinLeft = React22.useCallback(() => {
|
|
4214
4443
|
setColumnPinning((prev) => {
|
|
4215
4444
|
return {
|
|
4216
4445
|
left: [...prev.left || [], header.column.id],
|
|
@@ -4218,7 +4447,7 @@ function TableHeaderWithPopover({
|
|
|
4218
4447
|
};
|
|
4219
4448
|
});
|
|
4220
4449
|
}, [header.column.id, setColumnPinning]);
|
|
4221
|
-
const handleUnpin =
|
|
4450
|
+
const handleUnpin = React22.useCallback(() => {
|
|
4222
4451
|
setColumnPinning((prev) => {
|
|
4223
4452
|
return {
|
|
4224
4453
|
left: prev.left?.filter((id) => id !== header.column.id) || [],
|
|
@@ -4226,39 +4455,39 @@ function TableHeaderWithPopover({
|
|
|
4226
4455
|
};
|
|
4227
4456
|
});
|
|
4228
4457
|
}, [header.column.id, setColumnPinning]);
|
|
4229
|
-
const handleSortAscending =
|
|
4458
|
+
const handleSortAscending = React22.useCallback(() => {
|
|
4230
4459
|
header.column.toggleSorting(false);
|
|
4231
4460
|
setSorting?.([{
|
|
4232
4461
|
id: header.column.id,
|
|
4233
4462
|
desc: false
|
|
4234
4463
|
}]);
|
|
4235
4464
|
}, [header.column, setSorting]);
|
|
4236
|
-
const handleSortDescending =
|
|
4465
|
+
const handleSortDescending = React22.useCallback(() => {
|
|
4237
4466
|
header.column.toggleSorting(true);
|
|
4238
4467
|
setSorting?.([{
|
|
4239
4468
|
id: header.column.id,
|
|
4240
4469
|
desc: true
|
|
4241
4470
|
}]);
|
|
4242
4471
|
}, [header.column, setSorting]);
|
|
4243
|
-
const handleClearAllSorts =
|
|
4472
|
+
const handleClearAllSorts = React22.useCallback(() => {
|
|
4244
4473
|
header.column.clearSorting();
|
|
4245
4474
|
setSorting?.([]);
|
|
4246
4475
|
}, [header.column, setSorting]);
|
|
4247
|
-
const handleResetSize =
|
|
4476
|
+
const handleResetSize = React22.useCallback(() => {
|
|
4248
4477
|
header.column.resetSize();
|
|
4249
4478
|
if (onResetSize) {
|
|
4250
4479
|
onResetSize();
|
|
4251
4480
|
}
|
|
4252
4481
|
}, [header.column, onResetSize]);
|
|
4253
|
-
const handleInteraction =
|
|
4482
|
+
const handleInteraction = React22.useCallback((e) => {
|
|
4254
4483
|
e.preventDefault();
|
|
4255
4484
|
setIsOpen((prev) => !prev);
|
|
4256
4485
|
}, []);
|
|
4257
|
-
const handleOpenColumnConfig =
|
|
4486
|
+
const handleOpenColumnConfig = React22.useCallback(() => {
|
|
4258
4487
|
onOpenColumnConfig?.();
|
|
4259
4488
|
setIsOpen(false);
|
|
4260
4489
|
}, [onOpenColumnConfig]);
|
|
4261
|
-
const handleOpenMultiSort =
|
|
4490
|
+
const handleOpenMultiSort = React22.useCallback(() => {
|
|
4262
4491
|
onOpenMultiSort?.();
|
|
4263
4492
|
setIsOpen(false);
|
|
4264
4493
|
}, [onOpenMultiSort]);
|
|
@@ -4266,72 +4495,72 @@ function TableHeaderWithPopover({
|
|
|
4266
4495
|
const isSortable = header.column.getCanSort();
|
|
4267
4496
|
const sortIndex = currentSorting?.findIndex((s) => s.id === header.column.id) ?? -1;
|
|
4268
4497
|
const hasAnyMenuItems = showPinningItems || showSortingItems && isSortable || showResizeItem || showConfigItem;
|
|
4269
|
-
return /* @__PURE__ */
|
|
4498
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Root, {
|
|
4270
4499
|
open: isOpen,
|
|
4271
4500
|
onOpenChange: setIsOpen
|
|
4272
|
-
}, /* @__PURE__ */
|
|
4501
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4273
4502
|
className: classnames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContainer),
|
|
4274
4503
|
onContextMenu: handleInteraction
|
|
4275
|
-
}, /* @__PURE__ */
|
|
4504
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4276
4505
|
className: classnames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentLeft)
|
|
4277
|
-
}, isColumnPinned && /* @__PURE__ */
|
|
4506
|
+
}, isColumnPinned && /* @__PURE__ */ React22__default.default.createElement(icons.Pin, {
|
|
4278
4507
|
className: TableHeaderWithPopover_default.osdkHeaderIcon,
|
|
4279
4508
|
color: "currentColor"
|
|
4280
|
-
}), /* @__PURE__ */
|
|
4509
|
+
}), /* @__PURE__ */ React22__default.default.createElement(TableHeaderContent, {
|
|
4281
4510
|
header
|
|
4282
|
-
})), /* @__PURE__ */
|
|
4511
|
+
})), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4283
4512
|
className: classnames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentRight)
|
|
4284
|
-
}, isSorted && /* @__PURE__ */
|
|
4513
|
+
}, isSorted && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4285
4514
|
className: TableHeaderWithPopover_default.osdkCenterContainer
|
|
4286
|
-
}, isSorted === "asc" ? /* @__PURE__ */
|
|
4515
|
+
}, isSorted === "asc" ? /* @__PURE__ */ React22__default.default.createElement(icons.SortAlphabetical, {
|
|
4287
4516
|
className: TableHeaderWithPopover_default.osdkHeaderIcon
|
|
4288
|
-
}) : /* @__PURE__ */
|
|
4517
|
+
}) : /* @__PURE__ */ React22__default.default.createElement(icons.SortAlphabeticalDesc, {
|
|
4289
4518
|
className: TableHeaderWithPopover_default.osdkHeaderIcon
|
|
4290
|
-
}), currentSorting.length > 1 && sortIndex >= 0 && /* @__PURE__ */
|
|
4519
|
+
}), currentSorting.length > 1 && sortIndex >= 0 && /* @__PURE__ */ React22__default.default.createElement("span", {
|
|
4291
4520
|
className: TableHeaderWithPopover_default.sortIndex
|
|
4292
|
-
}, sortIndex + 1)), hasAnyMenuItems && /* @__PURE__ */
|
|
4521
|
+
}, sortIndex + 1)), hasAnyMenuItems && /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Trigger, {
|
|
4293
4522
|
"aria-label": `Open header menu for column with id=${header.column.id}`,
|
|
4294
4523
|
className: classnames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkHeaderPopoverTrigger)
|
|
4295
|
-
}, /* @__PURE__ */
|
|
4524
|
+
}, /* @__PURE__ */ React22__default.default.createElement(icons.ChevronDown, {
|
|
4296
4525
|
className: TableHeaderWithPopover_default.osdkHeaderIcon
|
|
4297
|
-
}))), /* @__PURE__ */
|
|
4526
|
+
}))), /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Portal, {
|
|
4298
4527
|
container: document.body
|
|
4299
|
-
}, /* @__PURE__ */
|
|
4528
|
+
}, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Positioner, {
|
|
4300
4529
|
sideOffset: 4
|
|
4301
|
-
}, /* @__PURE__ */
|
|
4530
|
+
}, /* @__PURE__ */ React22__default.default.createElement(menu.Menu.Popup, {
|
|
4302
4531
|
className: TableHeaderWithPopover_default.osdkHeaderPopup
|
|
4303
|
-
}, showPinningItems && !isColumnPinned && /* @__PURE__ */
|
|
4532
|
+
}, showPinningItems && !isColumnPinned && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4304
4533
|
onClick: handlePinLeft,
|
|
4305
4534
|
icon: icons.Pin,
|
|
4306
4535
|
label: "Pin column"
|
|
4307
|
-
}), showPinningItems && isColumnPinned && /* @__PURE__ */
|
|
4536
|
+
}), showPinningItems && isColumnPinned && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4308
4537
|
onClick: handleUnpin,
|
|
4309
4538
|
icon: icons.Unpin,
|
|
4310
4539
|
label: "Unpin Column",
|
|
4311
4540
|
active: true
|
|
4312
|
-
}), showSortingItems && isSortable && /* @__PURE__ */
|
|
4541
|
+
}), showSortingItems && isSortable && /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4313
4542
|
onClick: handleSortAscending,
|
|
4314
4543
|
icon: icons.SortAlphabetical,
|
|
4315
4544
|
label: "Sort ascending",
|
|
4316
4545
|
active: isSorted === "asc"
|
|
4317
|
-
}), /* @__PURE__ */
|
|
4546
|
+
}), /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4318
4547
|
onClick: handleSortDescending,
|
|
4319
4548
|
icon: icons.SortAlphabeticalDesc,
|
|
4320
4549
|
label: "Sort descending",
|
|
4321
4550
|
active: isSorted === "desc"
|
|
4322
|
-
}), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */
|
|
4551
|
+
}), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4323
4552
|
onClick: handleOpenMultiSort,
|
|
4324
4553
|
icon: icons.Sort,
|
|
4325
4554
|
label: "Sort on multiple columns"
|
|
4326
|
-
})), showSortingItems && !!currentSorting?.length && /* @__PURE__ */
|
|
4555
|
+
})), showSortingItems && !!currentSorting?.length && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4327
4556
|
onClick: handleClearAllSorts,
|
|
4328
4557
|
icon: icons.Remove,
|
|
4329
4558
|
label: "Clear all sorts"
|
|
4330
|
-
}), showResizeItem && /* @__PURE__ */
|
|
4559
|
+
}), showResizeItem && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4331
4560
|
onClick: handleResetSize,
|
|
4332
4561
|
icon: icons.VerticalDistribution,
|
|
4333
4562
|
label: "Reset Column Size"
|
|
4334
|
-
}), showConfigItem && /* @__PURE__ */
|
|
4563
|
+
}), showConfigItem && /* @__PURE__ */ React22__default.default.createElement(HeaderMenuItem, {
|
|
4335
4564
|
onClick: handleOpenColumnConfig,
|
|
4336
4565
|
icon: icons.Settings,
|
|
4337
4566
|
label: "Configure Columns"
|
|
@@ -4385,25 +4614,25 @@ function TableHeader({
|
|
|
4385
4614
|
const currentVisibility = table.getState().columnVisibility;
|
|
4386
4615
|
const currentColumnOrder = table.getState().columnOrder;
|
|
4387
4616
|
const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
|
|
4388
|
-
const [configDialogOpen, setConfigDialogOpen] =
|
|
4389
|
-
const [multiSortDialogOpen, setMultiSortDialogOpen] =
|
|
4390
|
-
const handleOpenColumnConfig =
|
|
4617
|
+
const [configDialogOpen, setConfigDialogOpen] = React22.useState(false);
|
|
4618
|
+
const [multiSortDialogOpen, setMultiSortDialogOpen] = React22.useState(false);
|
|
4619
|
+
const handleOpenColumnConfig = React22.useCallback(() => {
|
|
4391
4620
|
setConfigDialogOpen(true);
|
|
4392
4621
|
}, []);
|
|
4393
|
-
const handleCloseColumnConfig =
|
|
4622
|
+
const handleCloseColumnConfig = React22.useCallback(() => {
|
|
4394
4623
|
setConfigDialogOpen(false);
|
|
4395
4624
|
}, []);
|
|
4396
|
-
const handleOpenMultiSort =
|
|
4625
|
+
const handleOpenMultiSort = React22.useCallback(() => {
|
|
4397
4626
|
setMultiSortDialogOpen(true);
|
|
4398
4627
|
}, []);
|
|
4399
|
-
const handleCloseMultiSort =
|
|
4628
|
+
const handleCloseMultiSort = React22.useCallback(() => {
|
|
4400
4629
|
setMultiSortDialogOpen(false);
|
|
4401
4630
|
}, []);
|
|
4402
|
-
const handleApplyMultiSort =
|
|
4631
|
+
const handleApplyMultiSort = React22.useCallback((sortColumns) => {
|
|
4403
4632
|
setMultiSortDialogOpen(false);
|
|
4404
4633
|
setSorting?.(sortColumns);
|
|
4405
4634
|
}, [setSorting]);
|
|
4406
|
-
const handleApplyColumnConfig =
|
|
4635
|
+
const handleApplyColumnConfig = React22.useCallback((updates) => {
|
|
4407
4636
|
const newVisibilityState = {};
|
|
4408
4637
|
for (const update of updates) {
|
|
4409
4638
|
newVisibilityState[update.columnId] = update.isVisible;
|
|
@@ -4411,7 +4640,7 @@ function TableHeader({
|
|
|
4411
4640
|
setColumnOrder(updates.map((col) => col.columnId));
|
|
4412
4641
|
setColumnVisibility(newVisibilityState);
|
|
4413
4642
|
}, [setColumnOrder, setColumnVisibility]);
|
|
4414
|
-
const columnOptions =
|
|
4643
|
+
const columnOptions = React22.useMemo(() => {
|
|
4415
4644
|
const allHeaders = table.getHeaderGroups().flatMap((headerGroup) => headerGroup.headers);
|
|
4416
4645
|
return table.getAllColumns().filter((column) => column.id !== SELECTION_COLUMN_ID).map((column) => {
|
|
4417
4646
|
return {
|
|
@@ -4421,10 +4650,10 @@ function TableHeader({
|
|
|
4421
4650
|
};
|
|
4422
4651
|
});
|
|
4423
4652
|
}, [table]);
|
|
4424
|
-
return /* @__PURE__ */
|
|
4653
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement("thead", {
|
|
4425
4654
|
className: TableHeader_default.osdkTableHeader,
|
|
4426
4655
|
"data-resizing": isResizing
|
|
4427
|
-
}, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */
|
|
4656
|
+
}, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React22__default.default.createElement("tr", {
|
|
4428
4657
|
key: headerGroup.id,
|
|
4429
4658
|
className: TableHeader_default.osdkTableHeaderRow
|
|
4430
4659
|
}, headerGroup.headers.map((header) => {
|
|
@@ -4433,14 +4662,14 @@ function TableHeader({
|
|
|
4433
4662
|
} = getColumnPinningStyles(header.column);
|
|
4434
4663
|
const isColumnPinned = header.column.getIsPinned();
|
|
4435
4664
|
const isSelectColumn = header.id === SELECTION_COLUMN_ID;
|
|
4436
|
-
return /* @__PURE__ */
|
|
4665
|
+
return /* @__PURE__ */ React22__default.default.createElement("th", {
|
|
4437
4666
|
key: header.id,
|
|
4438
4667
|
"data-pinned": header.column.getIsPinned(),
|
|
4439
4668
|
className: TableHeader_default.osdkTableHeaderCell,
|
|
4440
4669
|
style: columnStyles
|
|
4441
|
-
}, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */
|
|
4670
|
+
}, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React22__default.default.createElement(TableHeaderContent, {
|
|
4442
4671
|
header
|
|
4443
|
-
}) : /* @__PURE__ */
|
|
4672
|
+
}) : /* @__PURE__ */ React22__default.default.createElement(TableHeaderWithPopover, {
|
|
4444
4673
|
table,
|
|
4445
4674
|
header,
|
|
4446
4675
|
isColumnPinned,
|
|
@@ -4448,20 +4677,20 @@ function TableHeader({
|
|
|
4448
4677
|
featureFlags: headerMenuFeatureFlags,
|
|
4449
4678
|
onOpenColumnConfig: handleOpenColumnConfig,
|
|
4450
4679
|
onOpenMultiSort: handleOpenMultiSort
|
|
4451
|
-
}), header.column.getCanResize() && headerMenuFeatureFlags?.showResizeItem !== false && /* @__PURE__ */
|
|
4680
|
+
}), header.column.getCanResize() && headerMenuFeatureFlags?.showResizeItem !== false && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4452
4681
|
className: TableHeader_default.osdkTableHeaderResizer,
|
|
4453
4682
|
onDoubleClick: () => header.column.resetSize(),
|
|
4454
4683
|
onMouseDown: header.getResizeHandler(),
|
|
4455
4684
|
onTouchStart: header.getResizeHandler()
|
|
4456
4685
|
}));
|
|
4457
|
-
})))), !!columnOptions?.length && /* @__PURE__ */
|
|
4686
|
+
})))), !!columnOptions?.length && /* @__PURE__ */ React22__default.default.createElement(ColumnConfigDialog, {
|
|
4458
4687
|
isOpen: configDialogOpen,
|
|
4459
4688
|
onClose: handleCloseColumnConfig,
|
|
4460
4689
|
columnOptions,
|
|
4461
4690
|
currentVisibility,
|
|
4462
4691
|
currentColumnOrder,
|
|
4463
4692
|
onApply: handleApplyColumnConfig
|
|
4464
|
-
}), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */
|
|
4693
|
+
}), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React22__default.default.createElement(MultiColumnSortDialog, {
|
|
4465
4694
|
isOpen: multiSortDialogOpen,
|
|
4466
4695
|
onClose: handleCloseMultiSort,
|
|
4467
4696
|
columnOptions,
|
|
@@ -4481,13 +4710,13 @@ function LoadingStateTable({
|
|
|
4481
4710
|
}) {
|
|
4482
4711
|
const enableRowSelection = table.options.enableRowSelection;
|
|
4483
4712
|
const minHeaderCount = enableRowSelection ? 1 : 0;
|
|
4484
|
-
const headers =
|
|
4713
|
+
const headers = React22.useMemo(() => headerGroups.length > 0 ? headerGroups[0].headers : [], [headerGroups]);
|
|
4485
4714
|
const hasHeadersLoaded = headers.length > minHeaderCount;
|
|
4486
|
-
const headerRef =
|
|
4487
|
-
const bodyRef =
|
|
4488
|
-
const [loadingRowCount, setLoadingRowCount] =
|
|
4489
|
-
const [loadingColumnCount, setLoadingColumnCount] =
|
|
4490
|
-
|
|
4715
|
+
const headerRef = React22.useRef(null);
|
|
4716
|
+
const bodyRef = React22.useRef(null);
|
|
4717
|
+
const [loadingRowCount, setLoadingRowCount] = React22.useState(MIN_ROWS);
|
|
4718
|
+
const [loadingColumnCount, setLoadingColumnCount] = React22.useState(headers.length);
|
|
4719
|
+
React22.useEffect(() => {
|
|
4491
4720
|
if (hasHeadersLoaded) {
|
|
4492
4721
|
setLoadingColumnCount(headers.length);
|
|
4493
4722
|
} else {
|
|
@@ -4500,7 +4729,7 @@ function LoadingStateTable({
|
|
|
4500
4729
|
}
|
|
4501
4730
|
}
|
|
4502
4731
|
}, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);
|
|
4503
|
-
|
|
4732
|
+
React22.useEffect(() => {
|
|
4504
4733
|
if (tableContainerRef.current) {
|
|
4505
4734
|
const containerHeight = tableContainerRef.current.clientHeight;
|
|
4506
4735
|
const availableHeight = containerHeight - rowHeight;
|
|
@@ -4510,32 +4739,32 @@ function LoadingStateTable({
|
|
|
4510
4739
|
}
|
|
4511
4740
|
}
|
|
4512
4741
|
}, [tableContainerRef, rowHeight]);
|
|
4513
|
-
return /* @__PURE__ */
|
|
4742
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, hasHeadersLoaded ? /* @__PURE__ */ React22__default.default.createElement(TableHeader, {
|
|
4514
4743
|
table
|
|
4515
|
-
}) : /* @__PURE__ */
|
|
4744
|
+
}) : /* @__PURE__ */ React22__default.default.createElement("thead", {
|
|
4516
4745
|
className: TableHeader_default.osdkTableHeader,
|
|
4517
4746
|
ref: headerRef
|
|
4518
|
-
}, /* @__PURE__ */
|
|
4747
|
+
}, /* @__PURE__ */ React22__default.default.createElement("tr", {
|
|
4519
4748
|
className: TableHeader_default.osdkTableHeaderRow
|
|
4520
4749
|
}, Array.from({
|
|
4521
4750
|
length: loadingColumnCount
|
|
4522
4751
|
}).map((_, index) => {
|
|
4523
4752
|
const width = headers.length > index ? headers[index].getSize() : columnWidth;
|
|
4524
|
-
return /* @__PURE__ */
|
|
4753
|
+
return /* @__PURE__ */ React22__default.default.createElement("th", {
|
|
4525
4754
|
key: `loading-header-${index}`,
|
|
4526
4755
|
className: TableHeader_default.osdkTableHeaderCell,
|
|
4527
4756
|
style: {
|
|
4528
4757
|
width
|
|
4529
4758
|
}
|
|
4530
|
-
}, /* @__PURE__ */
|
|
4759
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4531
4760
|
className: classnames7__default.default(TableHeader_default.osdkLoadingHeaderCell, LoadingCell_default.osdkCellSkeleton)
|
|
4532
4761
|
}));
|
|
4533
|
-
}))), /* @__PURE__ */
|
|
4762
|
+
}))), /* @__PURE__ */ React22__default.default.createElement("tbody", {
|
|
4534
4763
|
className: TableBody_default.osdkTableBody,
|
|
4535
4764
|
ref: bodyRef
|
|
4536
4765
|
}, Array.from({
|
|
4537
4766
|
length: loadingRowCount
|
|
4538
|
-
}).map((_, index) => /* @__PURE__ */
|
|
4767
|
+
}).map((_, index) => /* @__PURE__ */ React22__default.default.createElement(LoadingRow, {
|
|
4539
4768
|
key: `skeleton-${index}`,
|
|
4540
4769
|
columnCount: loadingColumnCount,
|
|
4541
4770
|
headers,
|
|
@@ -4552,9 +4781,9 @@ var NonIdealState_default = {};
|
|
|
4552
4781
|
function NonIdealState({
|
|
4553
4782
|
message
|
|
4554
4783
|
}) {
|
|
4555
|
-
return /* @__PURE__ */
|
|
4784
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4556
4785
|
className: NonIdealState_default.container
|
|
4557
|
-
}, /* @__PURE__ */
|
|
4786
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4558
4787
|
className: NonIdealState_default.message
|
|
4559
4788
|
}, message));
|
|
4560
4789
|
}
|
|
@@ -4572,8 +4801,8 @@ function CellContextMenu({
|
|
|
4572
4801
|
onClose,
|
|
4573
4802
|
renderContent
|
|
4574
4803
|
}) {
|
|
4575
|
-
const ref =
|
|
4576
|
-
|
|
4804
|
+
const ref = React22.useRef(null);
|
|
4805
|
+
React22.useEffect(() => {
|
|
4577
4806
|
const handleClickOutside = (event) => {
|
|
4578
4807
|
if (ref.current && !ref.current.contains(event.target)) {
|
|
4579
4808
|
onClose();
|
|
@@ -4584,7 +4813,7 @@ function CellContextMenu({
|
|
|
4584
4813
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
4585
4814
|
};
|
|
4586
4815
|
}, [onClose]);
|
|
4587
|
-
return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */
|
|
4816
|
+
return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4588
4817
|
ref,
|
|
4589
4818
|
className: CellContextMenu_default.osdkCellContextMenu,
|
|
4590
4819
|
style: {
|
|
@@ -4597,9 +4826,9 @@ function CellContextMenu({
|
|
|
4597
4826
|
var useCellContextMenu = ({
|
|
4598
4827
|
tdRef
|
|
4599
4828
|
}) => {
|
|
4600
|
-
const [popoverPosition, setPopoverPosition] =
|
|
4601
|
-
const [isContextMenuOpen, setIsContextMenuOpen] =
|
|
4602
|
-
const handleOpenContextMenu =
|
|
4829
|
+
const [popoverPosition, setPopoverPosition] = React22.useState(null);
|
|
4830
|
+
const [isContextMenuOpen, setIsContextMenuOpen] = React22.useState(false);
|
|
4831
|
+
const handleOpenContextMenu = React22.useCallback((event) => {
|
|
4603
4832
|
event.preventDefault();
|
|
4604
4833
|
event.stopPropagation();
|
|
4605
4834
|
if (tdRef.current) {
|
|
@@ -4613,7 +4842,7 @@ var useCellContextMenu = ({
|
|
|
4613
4842
|
setIsContextMenuOpen(true);
|
|
4614
4843
|
}
|
|
4615
4844
|
}, [tdRef]);
|
|
4616
|
-
const handleCloseContextMenu =
|
|
4845
|
+
const handleCloseContextMenu = React22.useCallback(() => {
|
|
4617
4846
|
setIsContextMenuOpen(false);
|
|
4618
4847
|
setPopoverPosition(null);
|
|
4619
4848
|
}, []);
|
|
@@ -4630,7 +4859,7 @@ function TableCell({
|
|
|
4630
4859
|
cell,
|
|
4631
4860
|
renderCellContextMenu
|
|
4632
4861
|
}) {
|
|
4633
|
-
const tdRef =
|
|
4862
|
+
const tdRef = React22.useRef(null);
|
|
4634
4863
|
const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;
|
|
4635
4864
|
const {
|
|
4636
4865
|
isContextMenuOpen,
|
|
@@ -4644,15 +4873,15 @@ function TableCell({
|
|
|
4644
4873
|
const {
|
|
4645
4874
|
columnStyles
|
|
4646
4875
|
} = getColumnPinningStyles(cell.column);
|
|
4647
|
-
return /* @__PURE__ */
|
|
4876
|
+
return /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement("td", {
|
|
4648
4877
|
ref: tdRef,
|
|
4649
4878
|
"data-pinned": cell.column.getIsPinned(),
|
|
4650
4879
|
className: TableCell_default.osdkTableCell,
|
|
4651
4880
|
style: columnStyles,
|
|
4652
4881
|
onContextMenu: handleOpenContextMenu
|
|
4653
|
-
}, /* @__PURE__ */
|
|
4882
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4654
4883
|
className: TableCell_default.osdkTableCellContent
|
|
4655
|
-
}, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /* @__PURE__ */
|
|
4884
|
+
}, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /* @__PURE__ */ React22__default.default.createElement(CellContextMenu, {
|
|
4656
4885
|
cell,
|
|
4657
4886
|
position: popoverPosition,
|
|
4658
4887
|
onClose: handleCloseContextMenu,
|
|
@@ -4661,7 +4890,7 @@ function TableCell({
|
|
|
4661
4890
|
}
|
|
4662
4891
|
|
|
4663
4892
|
// src/object-table/TableRow.tsx
|
|
4664
|
-
function
|
|
4893
|
+
function TableRow({
|
|
4665
4894
|
row,
|
|
4666
4895
|
virtualRow,
|
|
4667
4896
|
onRowClick,
|
|
@@ -4670,13 +4899,13 @@ function TableRowInner({
|
|
|
4670
4899
|
setFocusedRowId,
|
|
4671
4900
|
isInEditMode
|
|
4672
4901
|
}) {
|
|
4673
|
-
const handleClick =
|
|
4902
|
+
const handleClick = React22.useCallback(() => {
|
|
4674
4903
|
setFocusedRowId?.(row.id);
|
|
4675
4904
|
if (!isInEditMode) {
|
|
4676
4905
|
onRowClick?.(row.original);
|
|
4677
4906
|
}
|
|
4678
4907
|
}, [isInEditMode, onRowClick, row.original, row.id, setFocusedRowId]);
|
|
4679
|
-
return /* @__PURE__ */
|
|
4908
|
+
return /* @__PURE__ */ React22__default.default.createElement("tr", {
|
|
4680
4909
|
"data-selected": row.getIsSelected(),
|
|
4681
4910
|
"data-focused": focusedRowId === row.id,
|
|
4682
4911
|
className: TableRow_default.osdkTableRow,
|
|
@@ -4685,13 +4914,12 @@ function TableRowInner({
|
|
|
4685
4914
|
transform: `translateY(${virtualRow.start}px)`
|
|
4686
4915
|
},
|
|
4687
4916
|
onClick: handleClick
|
|
4688
|
-
}, row.getVisibleCells().map((cell) => /* @__PURE__ */
|
|
4917
|
+
}, row.getVisibleCells().map((cell) => /* @__PURE__ */ React22__default.default.createElement(TableCell, {
|
|
4689
4918
|
key: cell.id,
|
|
4690
4919
|
cell,
|
|
4691
4920
|
renderCellContextMenu
|
|
4692
4921
|
})));
|
|
4693
4922
|
}
|
|
4694
|
-
var TableRow = /* @__PURE__ */ React21__default.default.memo(TableRowInner);
|
|
4695
4923
|
|
|
4696
4924
|
// src/object-table/TableBody.tsx
|
|
4697
4925
|
function TableBody({
|
|
@@ -4712,20 +4940,20 @@ function TableBody({
|
|
|
4712
4940
|
getScrollElement: () => tableContainerRef.current,
|
|
4713
4941
|
overscan: 5
|
|
4714
4942
|
});
|
|
4715
|
-
|
|
4943
|
+
React22.useLayoutEffect(() => {
|
|
4716
4944
|
rowVirtualizer.measure();
|
|
4717
4945
|
}, [rowVirtualizer, rows.length]);
|
|
4718
4946
|
const totalSize = rowVirtualizer.getTotalSize();
|
|
4719
4947
|
const bodyHeight = isLoadingMore ? totalSize + rowHeight : totalSize;
|
|
4720
4948
|
const headers = headerGroups[0]?.headers ?? [];
|
|
4721
|
-
return /* @__PURE__ */
|
|
4949
|
+
return /* @__PURE__ */ React22__default.default.createElement("tbody", {
|
|
4722
4950
|
className: TableBody_default.osdkTableBody,
|
|
4723
4951
|
style: {
|
|
4724
4952
|
height: `${bodyHeight}px`
|
|
4725
4953
|
}
|
|
4726
4954
|
}, rowVirtualizer.getVirtualItems().map((virtualRow) => {
|
|
4727
4955
|
const row = rows[virtualRow.index];
|
|
4728
|
-
return /* @__PURE__ */
|
|
4956
|
+
return /* @__PURE__ */ React22__default.default.createElement(TableRow, {
|
|
4729
4957
|
key: row.id,
|
|
4730
4958
|
row,
|
|
4731
4959
|
virtualRow,
|
|
@@ -4735,7 +4963,7 @@ function TableBody({
|
|
|
4735
4963
|
setFocusedRowId,
|
|
4736
4964
|
isInEditMode
|
|
4737
4965
|
});
|
|
4738
|
-
}), isLoadingMore && /* @__PURE__ */
|
|
4966
|
+
}), isLoadingMore && /* @__PURE__ */ React22__default.default.createElement(LoadingRow, {
|
|
4739
4967
|
headers,
|
|
4740
4968
|
translateY: totalSize,
|
|
4741
4969
|
rowHeight,
|
|
@@ -4758,10 +4986,10 @@ function TableEditContainer({
|
|
|
4758
4986
|
editMode
|
|
4759
4987
|
} = editableConfig ?? {};
|
|
4760
4988
|
const hasEdits = Object.keys(cellEdits ?? {}).length > 0;
|
|
4761
|
-
const [isSubmitting, setIsSubmitting] =
|
|
4989
|
+
const [isSubmitting, setIsSubmitting] = React22.useState(false);
|
|
4762
4990
|
const isInEditMode = editMode?.isActive;
|
|
4763
4991
|
const canToggleEditMode = editMode?.type === "manual";
|
|
4764
|
-
const handleSubmitEdits =
|
|
4992
|
+
const handleSubmitEdits = React22.useCallback(async () => {
|
|
4765
4993
|
setIsSubmitting(true);
|
|
4766
4994
|
try {
|
|
4767
4995
|
const success = await onSubmitEdits?.();
|
|
@@ -4775,32 +5003,32 @@ function TableEditContainer({
|
|
|
4775
5003
|
setIsSubmitting(false);
|
|
4776
5004
|
}
|
|
4777
5005
|
}, [editMode, onSubmitEdits, clearEdits]);
|
|
4778
|
-
const handleCancelEdits =
|
|
5006
|
+
const handleCancelEdits = React22.useCallback(() => {
|
|
4779
5007
|
clearEdits?.();
|
|
4780
5008
|
if (editMode?.type === "manual") {
|
|
4781
5009
|
editMode.setActive(false);
|
|
4782
5010
|
}
|
|
4783
5011
|
}, [clearEdits, editMode]);
|
|
4784
|
-
const handleEnterEditMode =
|
|
5012
|
+
const handleEnterEditMode = React22.useCallback(() => {
|
|
4785
5013
|
if (editMode?.type === "manual") {
|
|
4786
5014
|
editMode.setActive(true);
|
|
4787
5015
|
}
|
|
4788
5016
|
}, [editMode]);
|
|
4789
|
-
return /* @__PURE__ */
|
|
5017
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4790
5018
|
className: TableEditContainer_default.tableEditContainer
|
|
4791
|
-
}, hasEdits ? /* @__PURE__ */
|
|
5019
|
+
}, hasEdits ? /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4792
5020
|
className: TableEditContainer_default.modificationCount
|
|
4793
|
-
}, `${cellEdits ? Object.keys(cellEdits).length : 0} modifications`) : isInEditMode && !focusedRowId && /* @__PURE__ */
|
|
5021
|
+
}, `${cellEdits ? Object.keys(cellEdits).length : 0} modifications`) : isInEditMode && !focusedRowId && /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4794
5022
|
className: TableEditContainer_default.placeholder
|
|
4795
|
-
}, "Select a row to edit data\u2026"), /* @__PURE__ */
|
|
5023
|
+
}, "Select a row to edit data\u2026"), /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4796
5024
|
className: TableEditContainer_default.editButtons
|
|
4797
|
-
}, !isInEditMode && canToggleEditMode && /* @__PURE__ */
|
|
5025
|
+
}, !isInEditMode && canToggleEditMode && /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
4798
5026
|
variant: "primary",
|
|
4799
5027
|
onClick: handleEnterEditMode
|
|
4800
|
-
}, "Edit Table"), isInEditMode && canToggleEditMode && /* @__PURE__ */
|
|
5028
|
+
}, "Edit Table"), isInEditMode && canToggleEditMode && /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
4801
5029
|
variant: "secondary",
|
|
4802
5030
|
onClick: handleCancelEdits
|
|
4803
|
-
}, "Cancel"), isInEditMode && !!onSubmitEdits && /* @__PURE__ */
|
|
5031
|
+
}, "Cancel"), isInEditMode && !!onSubmitEdits && /* @__PURE__ */ React22__default.default.createElement(ActionButton, {
|
|
4804
5032
|
variant: "primary",
|
|
4805
5033
|
onClick: handleSubmitEdits,
|
|
4806
5034
|
disabled: !hasEdits || isSubmitting
|
|
@@ -4820,16 +5048,16 @@ function BaseTable({
|
|
|
4820
5048
|
headerMenuFeatureFlags,
|
|
4821
5049
|
editableConfig
|
|
4822
5050
|
}) {
|
|
4823
|
-
const tableContainerRef =
|
|
4824
|
-
const [isLoadingMore, setIsLoadingMore] =
|
|
4825
|
-
const [focusedRowId, setFocusedRowId] =
|
|
4826
|
-
const fetchingRef =
|
|
4827
|
-
|
|
5051
|
+
const tableContainerRef = React22.useRef(null);
|
|
5052
|
+
const [isLoadingMore, setIsLoadingMore] = React22.useState(false);
|
|
5053
|
+
const [focusedRowId, setFocusedRowId] = React22.useState(null);
|
|
5054
|
+
const fetchingRef = React22.useRef(false);
|
|
5055
|
+
React22.useEffect(() => {
|
|
4828
5056
|
if (!isLoading || fetchNextPage == null) {
|
|
4829
5057
|
setIsLoadingMore(false);
|
|
4830
5058
|
}
|
|
4831
5059
|
}, [isLoading, fetchNextPage]);
|
|
4832
|
-
const fetchMoreOnEndReached =
|
|
5060
|
+
const fetchMoreOnEndReached = React22.useCallback(async (containerRefElement) => {
|
|
4833
5061
|
if (containerRefElement && !fetchingRef.current && !isLoadingMore) {
|
|
4834
5062
|
const {
|
|
4835
5063
|
scrollHeight,
|
|
@@ -4847,14 +5075,14 @@ function BaseTable({
|
|
|
4847
5075
|
}
|
|
4848
5076
|
}
|
|
4849
5077
|
}, [fetchNextPage, isLoading, isLoadingMore]);
|
|
4850
|
-
const handleScroll =
|
|
5078
|
+
const handleScroll = React22.useCallback(async (e) => {
|
|
4851
5079
|
await fetchMoreOnEndReached(e.currentTarget);
|
|
4852
5080
|
}, [fetchMoreOnEndReached]);
|
|
4853
5081
|
const rows = table.getRowModel().rows;
|
|
4854
5082
|
const headerGroups = table.getHeaderGroups();
|
|
4855
5083
|
const hasData = rows.length > 0;
|
|
4856
5084
|
const hasEditableColumns = table.getAllColumns().some((column) => column.columnDef.meta?.editable === true);
|
|
4857
|
-
|
|
5085
|
+
React22.useEffect(() => {
|
|
4858
5086
|
const handleClickOutside = (event) => {
|
|
4859
5087
|
if (tableContainerRef.current && !tableContainerRef.current.contains(event.target)) {
|
|
4860
5088
|
setFocusedRowId(null);
|
|
@@ -4865,21 +5093,21 @@ function BaseTable({
|
|
|
4865
5093
|
document.removeEventListener("click", handleClickOutside);
|
|
4866
5094
|
};
|
|
4867
5095
|
}, []);
|
|
4868
|
-
return /* @__PURE__ */
|
|
5096
|
+
return /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4869
5097
|
className: classnames7__default.default(Table_default.osdkTableWrapper, className)
|
|
4870
|
-
}, /* @__PURE__ */
|
|
5098
|
+
}, /* @__PURE__ */ React22__default.default.createElement("div", {
|
|
4871
5099
|
ref: tableContainerRef,
|
|
4872
5100
|
className: Table_default.osdkTableContainer,
|
|
4873
5101
|
onScroll: handleScroll
|
|
4874
|
-
}, /* @__PURE__ */
|
|
5102
|
+
}, /* @__PURE__ */ React22__default.default.createElement("table", null, isLoading && !hasData ? /* @__PURE__ */ React22__default.default.createElement(LoadingStateTable, {
|
|
4875
5103
|
table,
|
|
4876
5104
|
headerGroups,
|
|
4877
5105
|
rowHeight,
|
|
4878
5106
|
tableContainerRef
|
|
4879
|
-
}) : /* @__PURE__ */
|
|
5107
|
+
}) : /* @__PURE__ */ React22__default.default.createElement(React22__default.default.Fragment, null, /* @__PURE__ */ React22__default.default.createElement(TableHeader, {
|
|
4880
5108
|
table,
|
|
4881
5109
|
headerMenuFeatureFlags
|
|
4882
|
-
}), /* @__PURE__ */
|
|
5110
|
+
}), /* @__PURE__ */ React22__default.default.createElement(TableBody, {
|
|
4883
5111
|
rows,
|
|
4884
5112
|
tableContainerRef,
|
|
4885
5113
|
onRowClick,
|
|
@@ -4890,11 +5118,11 @@ function BaseTable({
|
|
|
4890
5118
|
focusedRowId,
|
|
4891
5119
|
setFocusedRowId,
|
|
4892
5120
|
isInEditMode: editableConfig?.editMode.isActive
|
|
4893
|
-
}))), !hasData && error == null && /* @__PURE__ */
|
|
5121
|
+
}))), !hasData && error == null && /* @__PURE__ */ React22__default.default.createElement(NonIdealState, {
|
|
4894
5122
|
message: "No Data"
|
|
4895
|
-
}), error != null && /* @__PURE__ */
|
|
5123
|
+
}), error != null && /* @__PURE__ */ React22__default.default.createElement(NonIdealState, {
|
|
4896
5124
|
message: `Error Loading Data: ${error.message}`
|
|
4897
|
-
})), hasEditableColumns && /* @__PURE__ */
|
|
5125
|
+
})), hasEditableColumns && /* @__PURE__ */ React22__default.default.createElement(TableEditContainer, {
|
|
4898
5126
|
editableConfig,
|
|
4899
5127
|
focusedRowId
|
|
4900
5128
|
}));
|
|
@@ -4987,7 +5215,7 @@ function ObjectTable({
|
|
|
4987
5215
|
hasSelectionColumn: enableRowSelection,
|
|
4988
5216
|
onColumnsPinnedChanged
|
|
4989
5217
|
});
|
|
4990
|
-
const allColumns =
|
|
5218
|
+
const allColumns = React22.useMemo(() => {
|
|
4991
5219
|
return selectionColumn ? [selectionColumn, ...columns] : columns;
|
|
4992
5220
|
}, [selectionColumn, columns]);
|
|
4993
5221
|
const editableConfig = useEditableTable({
|
|
@@ -5028,17 +5256,17 @@ function ObjectTable({
|
|
|
5028
5256
|
isInEditMode: editableConfig.editMode.isActive
|
|
5029
5257
|
}
|
|
5030
5258
|
});
|
|
5031
|
-
const onRenderCellContextMenu =
|
|
5259
|
+
const onRenderCellContextMenu = React22.useCallback((row, cell) => {
|
|
5032
5260
|
return renderCellContextMenu?.(row, cell.getValue());
|
|
5033
5261
|
}, [renderCellContextMenu]);
|
|
5034
5262
|
const isTableLoading = isLoading || isColumnsLoading;
|
|
5035
|
-
const headerMenuFeatureFlags =
|
|
5263
|
+
const headerMenuFeatureFlags = React22.useMemo(() => ({
|
|
5036
5264
|
showSortingItems: enableOrdering,
|
|
5037
5265
|
showPinningItems: enableColumnPinning,
|
|
5038
5266
|
showResizeItem: enableColumnResizing,
|
|
5039
5267
|
showConfigItem: enableColumnConfig
|
|
5040
5268
|
}), [enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig]);
|
|
5041
|
-
return /* @__PURE__ */
|
|
5269
|
+
return /* @__PURE__ */ React22__default.default.createElement(BaseTable, {
|
|
5042
5270
|
table,
|
|
5043
5271
|
isLoading: isTableLoading,
|
|
5044
5272
|
fetchNextPage: fetchMore,
|