@solidxai/core-ui 0.1.14-beta.9 → 0.1.15-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/components/common/DropzonePlaceholder.d.ts +2 -1
  2. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  3. package/dist/components/common/DropzonePlaceholder.js +10 -7
  4. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  5. package/dist/components/common/DropzonePlaceholder.tsx +14 -9
  6. package/dist/components/core/card/CardItem.js +1 -1
  7. package/dist/components/core/card/CardItem.js.map +1 -1
  8. package/dist/components/core/card/CardItem.tsx +1 -1
  9. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  10. package/dist/components/core/card/SolidCardView.js +2 -2
  11. package/dist/components/core/card/SolidCardView.js.map +1 -1
  12. package/dist/components/core/card/SolidCardView.tsx +7 -12
  13. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  14. package/dist/components/core/common/SolidGlobalSearchElement.js +101 -86
  15. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  16. package/dist/components/core/common/SolidGlobalSearchElement.tsx +161 -98
  17. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  18. package/dist/components/core/form/SolidFormView.js +96 -72
  19. package/dist/components/core/form/SolidFormView.js.map +1 -1
  20. package/dist/components/core/form/SolidFormView.tsx +39 -17
  21. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  22. package/dist/components/core/form/fields/SolidMediaMultipleField.js +3 -2
  23. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  24. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +3 -1
  25. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  26. package/dist/components/core/form/fields/SolidMediaSingleField.js +3 -2
  27. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  28. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +3 -1
  29. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +1 -0
  30. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  31. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +20 -2
  32. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  33. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -2
  34. package/dist/components/core/form/fields/solidFields.module.css +7 -0
  35. package/dist/components/core/kanban/KanbanCard.js +1 -1
  36. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  37. package/dist/components/core/kanban/KanbanCard.tsx +1 -1
  38. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  39. package/dist/components/core/kanban/SolidKanbanView.js +7 -1
  40. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  41. package/dist/components/core/kanban/SolidKanbanView.tsx +10 -5
  42. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  43. package/dist/components/core/list/SolidListView.js +44 -88
  44. package/dist/components/core/list/SolidListView.js.map +1 -1
  45. package/dist/components/core/list/SolidListView.tsx +19 -93
  46. package/dist/components/core/list/SolidListViewColumn.d.ts +2 -1
  47. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  48. package/dist/components/core/list/SolidListViewColumn.js +2 -2
  49. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  50. package/dist/components/core/list/SolidListViewColumn.tsx +4 -3
  51. package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
  52. package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
  53. package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
  54. package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
  55. package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
  56. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
  57. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  58. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +5 -4
  59. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  60. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +5 -4
  61. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  62. package/dist/components/core/model/FieldMetaDataForm.js +147 -97
  63. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  64. package/dist/components/core/model/FieldMetaDataForm.tsx +123 -31
  65. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  66. package/dist/components/core/tree/SolidTreeView.js +1 -1
  67. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  68. package/dist/components/core/tree/SolidTreeView.tsx +4 -12
  69. package/dist/components/layout/AdminHeaderActions.js +1 -1
  70. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  71. package/dist/components/layout/AdminHeaderActions.tsx +1 -1
  72. package/dist/helpers/getAcceptedFileTypes.d.ts +12 -2
  73. package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -1
  74. package/dist/helpers/getAcceptedFileTypes.js +72 -16
  75. package/dist/helpers/getAcceptedFileTypes.js.map +1 -1
  76. package/dist/helpers/getAcceptedFileTypes.tsx +101 -18
  77. package/dist/helpers/registry.js +2 -1
  78. package/dist/helpers/registry.js.map +1 -1
  79. package/dist/helpers/registry.ts +3 -1
  80. package/dist/index.d.ts +1 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.ts +1 -2
  84. package/dist/resources/globals.css +259 -109
  85. package/dist/resources/solid-responsive.css +1 -5
  86. package/dist/resources/solid-tailwind-generated.css +1 -1
  87. package/dist/resources/themes/solid-light-modern/theme.css +3 -4
  88. package/dist/types/index.d.ts +2 -4
  89. package/dist/types/solid-core.d.ts +4 -13
  90. package/package.json +1 -1
@@ -54,8 +54,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
54
  }
55
55
  return to.concat(ar || Array.prototype.slice.call(from));
56
56
  };
57
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
58
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
57
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
58
+ import React, { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from "react";
59
59
  import FilterComponent, { FilterOperator, FilterRuleType } from "../../../components/core/common/FilterComponent";
60
60
  import { toTitleCase } from "../../../helpers/helpers";
61
61
  import { clearFilterObjectFromLocalStorage, getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage, } from "./globalSearchPersistence";
@@ -67,7 +67,7 @@ import { hydrateRelationRules } from "../../../helpers/hydrateRelationRules";
67
67
  import { useSession } from '../../../hooks/useSession';
68
68
  import { getUnboundSavedFilterVariableNames, parseSavedFilterQueryJson, resolveSavedFilterVariables } from '../../../helpers/resolveActiveUserId';
69
69
  import GroupingComponent from "./GroupingComponent";
70
- import { Bookmark, Check, Filter, ListFilter, Pencil, Plus, Search, SearchX, Trash2, X } from "lucide-react";
70
+ import { Bookmark, Check, Filter, Pencil, Plus, Search, SearchX, Sparkles, Trash2, X } from "lucide-react";
71
71
  import { SolidButton } from "../../shad-cn-ui/SolidButton";
72
72
  import { SolidInput } from "../../shad-cn-ui/SolidInput";
73
73
  import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../shad-cn-ui/SolidDialog";
@@ -410,22 +410,22 @@ export var mergeAllDiffFilters = function (customFilter, searchFilter, savedFilt
410
410
  return filters;
411
411
  };
412
412
  var SavedFilterList = function (_a) {
413
- var savedfilter = _a.savedfilter, activeSavedFilterReference = _a.activeSavedFilterReference, applySavedFilter = _a.applySavedFilter, openSavedCustomFilter = _a.openSavedCustomFilter, setSavedFilterTobeDeleted = _a.setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible = _a.setIsDeleteSQDialogVisible, isFocused = _a.isFocused, onMouseEnter = _a.onMouseEnter;
413
+ var savedfilter = _a.savedfilter, activeSavedFilterReference = _a.activeSavedFilterReference, applySavedFilter = _a.applySavedFilter, openSavedCustomFilter = _a.openSavedCustomFilter, setSavedFilterTobeDeleted = _a.setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible = _a.setIsDeleteSQDialogVisible, isFocused = _a.isFocused, onMouseEnter = _a.onMouseEnter, optionId = _a.optionId;
414
414
  var isActive = (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey)
415
415
  ? activeSavedFilterReference === savedfilter.systemKey
416
416
  : String(activeSavedFilterReference) === String(savedfilter.id);
417
- return (_jsxs("div", { className: "solid-saved-filter-item", onMouseEnter: onMouseEnter, children: [_jsx("div", { className: "solid-saved-filter-main-wrap", children: _jsx(SolidButton, { variant: "ghost", size: "sm", className: "solid-saved-filter-main w-full ".concat(isActive ? "is-active" : "", " ").concat(isFocused ? "solid-search-overlay-option-active" : ""), onMouseDown: function (e) {
417
+ return (_jsxs("div", { className: "solid-saved-filter-item", onMouseEnter: onMouseEnter, children: [_jsx("div", { className: "solid-saved-filter-main-wrap", children: _jsx(SolidButton, { variant: "ghost", size: "sm", className: "solid-saved-filter-main w-full ".concat(isActive ? "is-active" : "", " ").concat(isFocused ? "solid-search-overlay-option-active" : ""), id: optionId, role: "option", "aria-selected": isFocused, "aria-label": "".concat(savedfilter.name).concat(isActive ? ", applied" : ""), onMouseDown: function (e) {
418
418
  e.preventDefault();
419
419
  applySavedFilter(savedfilter);
420
- }, title: savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.description, children: savedfilter.name }) }), _jsx("div", { className: "solid-saved-filter-actions", children: savedfilter.isSeeded !== true && !savedfilter.systemKey &&
420
+ }, title: savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.description, children: _jsxs("span", { className: "solid-search-overlay-option-content", children: [_jsx("span", { className: "solid-search-overlay-option-icon", "aria-hidden": "true", children: _jsx(Bookmark, { size: 15 }) }), _jsxs("span", { className: "solid-search-overlay-option-copy", children: [_jsx("span", { className: "solid-search-overlay-option-title", children: savedfilter.name }), (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.description) && (_jsx("span", { className: "solid-search-overlay-option-description", children: savedfilter.description }))] }), isActive && (_jsx("span", { className: "solid-search-overlay-option-check", "aria-hidden": "true", children: _jsx(Check, { size: 14 }) }))] }) }) }), _jsx("div", { className: "solid-saved-filter-actions", children: savedfilter.isSeeded !== true && !savedfilter.systemKey &&
421
421
  _jsxs(_Fragment, { children: [_jsx(SolidButton, { variant: "outline", size: "sm", className: "solid-saved-filter-icon-btn", onMouseDown: function (e) {
422
422
  e.preventDefault();
423
423
  openSavedCustomFilter(savedfilter);
424
- }, children: _jsx(Pencil, { size: 14 }) }), _jsx(SolidButton, { variant: "outline", size: "sm", className: "solid-saved-filter-icon-btn is-danger", onMouseDown: function (e) {
424
+ }, "aria-label": "Edit ".concat(savedfilter.name), children: _jsx(Pencil, { size: 14 }) }), _jsx(SolidButton, { variant: "outline", size: "sm", className: "solid-saved-filter-icon-btn is-danger", onMouseDown: function (e) {
425
425
  e.preventDefault();
426
426
  setSavedFilterTobeDeleted(savedfilter.id),
427
427
  setIsDeleteSQDialogVisible(true);
428
- }, children: _jsx(Trash2, { size: 14 }) })] }) })] }));
428
+ }, "aria-label": "Delete ".concat(savedfilter.name), children: _jsx(Trash2, { size: 14 }) })] }) })] }));
429
429
  };
430
430
  var replacePlaceholders = function (obj, searchValue) {
431
431
  if (typeof obj === 'string') {
@@ -490,8 +490,11 @@ var areFilterStateValuesEqual = function (left, right) {
490
490
  return JSON.stringify(left !== null && left !== void 0 ? left : null) === JSON.stringify(right !== null && right !== void 0 ? right : null);
491
491
  };
492
492
  export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
493
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
494
- var viewData = _a.viewData, viewType = _a.viewType, handleApplyCustomFilter = _a.handleApplyCustomFilter, showSaveFilterPopup = _a.showSaveFilterPopup, setShowSaveFilterPopup = _a.setShowSaveFilterPopup, filterPredicates = _a.filterPredicates, definedFilters = _a.definedFilters, onRemoveDefinedFilter = _a.onRemoveDefinedFilter, onApplyDefinedFilter = _a.onApplyDefinedFilter;
493
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
494
+ var viewData = _a.viewData, viewType = _a.viewType, handleApplyCustomFilter = _a.handleApplyCustomFilter, showSaveFilterPopup = _a.showSaveFilterPopup, setShowSaveFilterPopup = _a.setShowSaveFilterPopup, filterPredicates = _a.filterPredicates;
495
+ var overlayInstanceId = useId();
496
+ var overlayListboxId = "".concat(overlayInstanceId, "-search-options");
497
+ var getOverlayOptionId = function (index) { return "".concat(overlayInstanceId, "-search-option-").concat(index); };
495
498
  var defaultState = [
496
499
  {
497
500
  id: 1,
@@ -531,50 +534,50 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
531
534
  var defaultGroupingRules = [
532
535
  { id: 1, fieldName: null, dateGrouping: null }
533
536
  ];
534
- var _0 = useState(defaultState), initialState = _0[0], setInitialState = _0[1];
537
+ var _2 = useState(defaultState), initialState = _2[0], setInitialState = _2[1];
535
538
  var searchableEntityLabel = ((_c = (_b = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _b === void 0 ? void 0 : _b.solidView) === null || _c === void 0 ? void 0 : _c.displayName) ||
536
539
  ((_f = (_e = (_d = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _d === void 0 ? void 0 : _d.solidView) === null || _e === void 0 ? void 0 : _e.model) === null || _f === void 0 ? void 0 : _f.displayName) ||
537
540
  "records";
538
541
  var chipsRef = useRef(null);
539
542
  // filterRules is used to maintian the ui of custom filter
540
543
  // customFilter is used to maintian the transformed filter object of custom filter
541
- var _1 = useState(initialState), filterRules = _1[0], setFilterRules = _1[1];
542
- var _2 = useState(null), customFilter = _2[0], setCustomFilter = _2[1];
543
- var _3 = useState([]), fields = _3[0], setFields = _3[1];
544
- var _4 = useState([]), searchableFields = _4[0], setSearchableFields = _4[1];
545
- var _5 = useState([]), groupableFields = _5[0], setGroupableFields = _5[1];
546
- var _6 = useState(defaultGroupingRules), groupingRules = _6[0], setGroupingRules = _6[1];
547
- var _7 = useState(defaultAggregationRules), aggregationRules = _7[0], setAggregationRules = _7[1];
544
+ var _3 = useState(initialState), filterRules = _3[0], setFilterRules = _3[1];
545
+ var _4 = useState(null), customFilter = _4[0], setCustomFilter = _4[1];
546
+ var _5 = useState([]), fields = _5[0], setFields = _5[1];
547
+ var _6 = useState([]), searchableFields = _6[0], setSearchableFields = _6[1];
548
+ var _7 = useState([]), groupableFields = _7[0], setGroupableFields = _7[1];
549
+ var _8 = useState(defaultGroupingRules), groupingRules = _8[0], setGroupingRules = _8[1];
550
+ var _9 = useState(defaultAggregationRules), aggregationRules = _9[0], setAggregationRules = _9[1];
548
551
  // used to show the list of predefined searches
549
- var _8 = useState([]), predefinedSearches = _8[0], setPredefinedSearches = _8[1];
552
+ var _10 = useState([]), predefinedSearches = _10[0], setPredefinedSearches = _10[1];
550
553
  // used to open / close the custom fitler popup
551
- var _9 = useState(false), showGlobalSearchElement = _9[0], setShowGlobalSearchElement = _9[1];
554
+ var _11 = useState(false), showGlobalSearchElement = _11[0], setShowGlobalSearchElement = _11[1];
552
555
  // used to open / close the group fitler popup
553
- var _10 = useState(false), showGroupFilterElement = _10[0], setShowGroupFilterElement = _10[1];
556
+ var _12 = useState(false), showGroupFilterElement = _12[0], setShowGroupFilterElement = _12[1];
554
557
  // searchChips maintain the ui to display searched query
555
558
  // searchFilter maintain the transformed filter of the searched query
556
- var _11 = useState([]), searchChips = _11[0], setSearchChips = _11[1];
557
- var _12 = useState(null), searchFilter = _12[0], setSearchFilter = _12[1];
559
+ var _13 = useState([]), searchChips = _13[0], setSearchChips = _13[1];
560
+ var _14 = useState(null), searchFilter = _14[0], setSearchFilter = _14[1];
558
561
  // predefinedSearchChip maintain the ui to display predefined searches query
559
- var _13 = useState(null), predefinedSearchChip = _13[0], setPredefinedSearchChip = _13[1];
562
+ var _15 = useState(null), predefinedSearchChip = _15[0], setPredefinedSearchChip = _15[1];
560
563
  // state to maintain the text typed in the search input box
561
- var _14 = useState(""), inputValue = _14[0], setInputValue = _14[1];
562
- var _15 = useState(-1), focusedIndex = _15[0], setFocusedIndex = _15[1];
564
+ var _16 = useState(""), inputValue = _16[0], setInputValue = _16[1];
565
+ var _17 = useState(-1), focusedIndex = _17[0], setFocusedIndex = _17[1];
563
566
  // flag to prevent un necessary re renders
564
- var _16 = useState(false), hasSearched = _16[0], setHasSearched = _16[1];
567
+ var _18 = useState(false), hasSearched = _18[0], setHasSearched = _18[1];
565
568
  // currentSavedFilterData is used to save the whole object of saved filter
566
- var _17 = useState(), currentSavedFilterData = _17[0], setCurrentSavedFilterData = _17[1];
567
- var _18 = useState(), currentSavedFilterQuery = _18[0], setCurrentSavedFilterQuery = _18[1];
568
- var _19 = useState({}), currentSavedFilterVariables = _19[0], setCurrentSavedFilterVariables = _19[1];
569
- var _20 = useState(), currentSavedFilterRules = _20[0], setCurrentSavedFilterRules = _20[1];
570
- var _21 = useState(false), showSavedFilterComponent = _21[0], setShowSavedFilterComponent = _21[1];
571
- var _22 = useState(), savedFilterTobeDeleted = _22[0], setSavedFilterTobeDeleted = _22[1];
572
- var _23 = useState(false), isDeleteSQDialogVisible = _23[0], setIsDeleteSQDialogVisible = _23[1];
573
- var _24 = useState(), savedFilterQueryString = _24[0], setSavedFilterQueryString = _24[1];
574
- var _25 = useState(false), showOverlay = _25[0], setShowOverlay = _25[1];
569
+ var _19 = useState(), currentSavedFilterData = _19[0], setCurrentSavedFilterData = _19[1];
570
+ var _20 = useState(), currentSavedFilterQuery = _20[0], setCurrentSavedFilterQuery = _20[1];
571
+ var _21 = useState({}), currentSavedFilterVariables = _21[0], setCurrentSavedFilterVariables = _21[1];
572
+ var _22 = useState(), currentSavedFilterRules = _22[0], setCurrentSavedFilterRules = _22[1];
573
+ var _23 = useState(false), showSavedFilterComponent = _23[0], setShowSavedFilterComponent = _23[1];
574
+ var _24 = useState(), savedFilterTobeDeleted = _24[0], setSavedFilterTobeDeleted = _24[1];
575
+ var _25 = useState(false), isDeleteSQDialogVisible = _25[0], setIsDeleteSQDialogVisible = _25[1];
576
+ var _26 = useState(), savedFilterQueryString = _26[0], setSavedFilterQueryString = _26[1];
577
+ var _27 = useState(false), showOverlay = _27[0], setShowOverlay = _27[1];
575
578
  var overlayRef = useRef(null);
576
579
  var searchInputRef = useRef(null);
577
- var _26 = useState(false), showChipManager = _26[0], setShowChipManager = _26[1];
580
+ var _28 = useState(false), showChipManager = _28[0], setShowChipManager = _28[1];
578
581
  var chipManagerRef = useRef(null);
579
582
  var chipManagerTriggerRef = useRef(null);
580
583
  var focusSearchInput = function () {
@@ -584,8 +587,9 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
584
587
  });
585
588
  };
586
589
  useEffect(function () {
590
+ var _a;
587
591
  if (focusedIndex >= 0 && showOverlay) {
588
- var activeElement = document.querySelector(".solid-search-overlay-option-active");
592
+ var activeElement = (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(".solid-search-overlay-option-active");
589
593
  if (activeElement) {
590
594
  activeElement.scrollIntoView({
591
595
  block: 'nearest',
@@ -594,12 +598,12 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
594
598
  }
595
599
  }
596
600
  }, [focusedIndex, showOverlay]);
597
- var _27 = useSession(), session = _27.data, status = _27.status;
601
+ var _29 = useSession(), session = _29.data, status = _29.status;
598
602
  var user = session === null || session === void 0 ? void 0 : session.user;
599
- var _28 = useState(0), refreshKey = _28[0], setRefreshKey = _28[1];
600
- var _29 = useState(null), predefinedSearchBaseFilter = _29[0], setPredefinedSearchBaseFilter = _29[1];
601
- var _30 = useState([]), savedFilters = _30[0], setSavedFilters = _30[1];
602
- var _31 = useState(false), savedFiltersLoaded = _31[0], setSavedFiltersLoaded = _31[1];
603
+ var _30 = useState(0), refreshKey = _30[0], setRefreshKey = _30[1];
604
+ var _31 = useState(null), predefinedSearchBaseFilter = _31[0], setPredefinedSearchBaseFilter = _31[1];
605
+ var _32 = useState([]), savedFilters = _32[0], setSavedFilters = _32[1];
606
+ var _33 = useState(false), savedFiltersLoaded = _33[0], setSavedFiltersLoaded = _33[1];
603
607
  var isDraftPublishWorkflowEnabled = ((_j = (_h = (_g = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _g === void 0 ? void 0 : _g.solidView) === null || _h === void 0 ? void 0 : _h.model) === null || _j === void 0 ? void 0 : _j.draftPublishWorkflow) === true;
604
608
  var workflowPublishedVersionsSavedFilter = useMemo(function () {
605
609
  if (!isDraftPublishWorkflowEnabled)
@@ -629,11 +633,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
629
633
  }); }, [allAvailableSavedFilters]);
630
634
  var entityApi = createSolidEntityApi("savedFilters");
631
635
  var useCreateSolidEntityMutation = entityApi.useCreateSolidEntityMutation, useDeleteSolidEntityMutation = entityApi.useDeleteSolidEntityMutation, useGetSolidEntityByIdQuery = entityApi.useGetSolidEntityByIdQuery, useUpdateSolidEntityMutation = entityApi.useUpdateSolidEntityMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery;
632
- var _32 = useCreateSolidEntityMutation(), createEntity = _32[0], _33 = _32[1], isEntityCreateSuccess = _33.isSuccess, isEntityCreateError = _33.isError, entityCreateError = _33.error;
633
- var _34 = useUpdateSolidEntityMutation(), updateEntity = _34[0], _35 = _34[1], isEntityUpdateSuceess = _35.isSuccess, isEntityUpdateError = _35.isError, entityUpdateError = _35.error;
634
- var _36 = useDeleteSolidEntityMutation(), deleteEntity = _36[0], _37 = _36[1], isEntityDeleteSuceess = _37.isSuccess, isEntityDeleteError = _37.isError, entityDeleteError = _37.error;
635
- var _38 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _38[0], _39 = _38[1], solidEntityListViewData = _39.data, isSavedFilterLoading = _39.isLoading, error = _39.error;
636
- var _40 = useState(0), savedFilterFetchDataRefreshKey = _40[0], setSavedFilterFetchDataRefreshKey = _40[1];
636
+ var _34 = useCreateSolidEntityMutation(), createEntity = _34[0], _35 = _34[1], isEntityCreateSuccess = _35.isSuccess, isEntityCreateError = _35.isError, entityCreateError = _35.error;
637
+ var _36 = useUpdateSolidEntityMutation(), updateEntity = _36[0], _37 = _36[1], isEntityUpdateSuceess = _37.isSuccess, isEntityUpdateError = _37.isError, entityUpdateError = _37.error;
638
+ var _38 = useDeleteSolidEntityMutation(), deleteEntity = _38[0], _39 = _38[1], isEntityDeleteSuceess = _39.isSuccess, isEntityDeleteError = _39.isError, entityDeleteError = _39.error;
639
+ var _40 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _40[0], _41 = _40[1], solidEntityListViewData = _41.data, isSavedFilterLoading = _41.isLoading, error = _41.error;
640
+ var _42 = useState(0), savedFilterFetchDataRefreshKey = _42[0], setSavedFilterFetchDataRefreshKey = _42[1];
637
641
  useEffect(function () {
638
642
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
639
643
  var filters, queryData, queryString, savedFilter;
@@ -1374,6 +1378,21 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1374
1378
  console.error("Unable to apply saved filter '".concat(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.name, "': missing variables ").concat(resolved.missingVariables.join(", ")));
1375
1379
  return false;
1376
1380
  }
1381
+ // Applying the already-active filter must be a no-op. This is important
1382
+ // for lifecycle extensions: applying a filter causes a new list load,
1383
+ // which invokes onBeforeListDataLoad/onListLoad again.
1384
+ var sameSavedFilterReference = ((currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id) != null &&
1385
+ (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id) != null &&
1386
+ areFilterStateValuesEqual(currentSavedFilterData.id, savedfilter.id)) ||
1387
+ ((currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.systemKey) != null &&
1388
+ (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey) != null &&
1389
+ areFilterStateValuesEqual(currentSavedFilterData.systemKey, savedfilter.systemKey));
1390
+ var sameSavedFilter = sameSavedFilterReference &&
1391
+ areFilterStateValuesEqual(currentSavedFilterQuery, filterJson) &&
1392
+ areFilterStateValuesEqual(currentSavedFilterVariables, variables);
1393
+ if (sameSavedFilter) {
1394
+ return true;
1395
+ }
1377
1396
  setSearchChips([]);
1378
1397
  setSearchFilter(null);
1379
1398
  setFilterRules(initialState);
@@ -1489,16 +1508,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1489
1508
  onRemove: function () { return handleRemoveChipGroup(column); },
1490
1509
  });
1491
1510
  });
1492
- (definedFilters || []).forEach(function (definedFilter) {
1493
- if (!(definedFilter === null || definedFilter === void 0 ? void 0 : definedFilter.applied))
1494
- return;
1495
- items.push({
1496
- id: "handler:".concat(definedFilter.key),
1497
- type: "handler",
1498
- label: definedFilter.label,
1499
- onRemove: function () { return onRemoveDefinedFilter === null || onRemoveDefinedFilter === void 0 ? void 0 : onRemoveDefinedFilter(definedFilter.key); },
1500
- });
1501
- });
1502
1511
  return items;
1503
1512
  }, [
1504
1513
  currentSavedFilterData,
@@ -1508,8 +1517,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1508
1517
  groupingRules,
1509
1518
  groupedSearchChips,
1510
1519
  searchableFields,
1511
- definedFilters,
1512
- onRemoveDefinedFilter,
1513
1520
  ]);
1514
1521
  var MAX_VISIBLE_CHIPS = 3;
1515
1522
  var visibleChipItems = managedChipItems.slice(0, MAX_VISIBLE_CHIPS);
@@ -1561,7 +1568,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1561
1568
  kind: "grouping",
1562
1569
  }]
1563
1570
  : [];
1564
- return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], fields, true), predefined, true), saved, true), custom, true), grouping, true);
1571
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], predefined, true), fields, true), saved, true), custom, true), grouping, true);
1565
1572
  }, [inputValue, searchableFields, predefinedSearches, selectableSavedFilters, viewType]);
1566
1573
  var handleKeyDown = function (e) {
1567
1574
  var currentValue = (inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim()) || "";
@@ -1583,6 +1590,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1583
1590
  setRefreshKey(function (prev) { return prev + 1; });
1584
1591
  setShowOverlay(false);
1585
1592
  };
1593
+ if (e.key === "Escape") {
1594
+ e.preventDefault();
1595
+ setShowOverlay(false);
1596
+ return;
1597
+ }
1586
1598
  if ((e.key === "ArrowDown" || e.key === "ArrowUp") && overlayOptions.length > 0) {
1587
1599
  e.preventDefault();
1588
1600
  setShowOverlay(true);
@@ -1592,6 +1604,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1592
1604
  setFocusedIndex(nextIndex);
1593
1605
  return;
1594
1606
  }
1607
+ if ((e.key === "Home" || e.key === "End") && showOverlay && overlayOptions.length > 0) {
1608
+ e.preventDefault();
1609
+ setFocusedIndex(e.key === "Home" ? 0 : overlayOptions.length - 1);
1610
+ return;
1611
+ }
1595
1612
  if (e.key === "Enter") {
1596
1613
  if (currentValue || focusedIndex >= 0) {
1597
1614
  e.preventDefault();
@@ -1696,7 +1713,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1696
1713
  };
1697
1714
  var PredefinedSearchChip = function () { return (_jsx("li", { children: _jsxs("div", { className: "search-filter-chip-type", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("strong", { children: [predefinedSearchChip === null || predefinedSearchChip === void 0 ? void 0 : predefinedSearchChip.name, ":"] }), _jsx("span", { className: "custom-chip-value", children: predefinedSearchChip === null || predefinedSearchChip === void 0 ? void 0 : predefinedSearchChip.value })] }), _jsx("button", { type: "button", className: "ml-1", style: { cursor: "pointer" }, onClick: removePredefinedSearchChip, children: _jsx(X, { size: 14 }) })] }) })); };
1698
1715
  // predefinedfilter related code end
1699
- return (_jsx(_Fragment, { children: _jsxs("div", { className: "relative flex justify-center solid-custom-filter-wrapper", children: [_jsx("div", { className: "solid-global-search-element", children: _jsxs("ul", { className: "solid-global-search-chip-list", children: [visibleChipItems.map(function (chip) { return (_jsx("li", { children: _jsxs("div", { className: "search-filter-chip-type solid-chip-pill solid-chip-tone-".concat(chip.type), children: [chip.onOpen ? (_jsx("button", { type: "button", className: "solid-chip-label-button", title: chip.label, "aria-label": "Open ".concat(chip.label), onMouseDown: function (e) { return e.preventDefault(); }, onClick: function () { return handleManagedChipOpen(chip); }, children: _jsx("span", { className: "custom-chip-value solid-chip-pill-label", title: chip.label, children: chip.label }) })) : (_jsx("span", { className: "custom-chip-value solid-chip-pill-label", title: chip.label, children: chip.label })), _jsx("button", { type: "button", className: "solid-chip-pill-remove", onMouseDown: function (e) { return e.preventDefault(); }, onClick: chip.onRemove, "aria-label": "Remove ".concat(chip.label), children: _jsx(X, { size: 14 }) })] }) }, chip.id)); }), hiddenChipCount > 0 && (_jsx("li", { children: _jsxs("button", { type: "button", ref: chipManagerTriggerRef, className: "solid-chip-manage-trigger", onMouseDown: function (e) { return e.preventDefault(); }, onClick: function () { return setShowChipManager(function (prev) { return !prev; }); }, children: ["+", hiddenChipCount, " more"] }) })), _jsx("li", { ref: chipsRef, className: "solid-global-search-input-item", children: _jsxs("div", { className: "relative solid-global-search-element-wrapper", children: [_jsx(SolidInput, { ref: searchInputRef, className: "solid-global-search-input", value: inputValue || "", placeholder: "Search.", onChange: function (e) {
1716
+ return (_jsx(_Fragment, { children: _jsxs("div", { className: "relative flex justify-center solid-custom-filter-wrapper", children: [_jsx("div", { className: "solid-global-search-element", children: _jsxs("ul", { className: "solid-global-search-chip-list", children: [visibleChipItems.map(function (chip) { return (_jsx("li", { children: _jsxs("div", { className: "search-filter-chip-type solid-chip-pill solid-chip-tone-".concat(chip.type), children: [chip.onOpen ? (_jsx("button", { type: "button", className: "solid-chip-label-button", title: chip.label, "aria-label": "Open ".concat(chip.label), onMouseDown: function (e) { return e.preventDefault(); }, onClick: function () { return handleManagedChipOpen(chip); }, children: _jsx("span", { className: "custom-chip-value solid-chip-pill-label", title: chip.label, children: chip.label }) })) : (_jsx("span", { className: "custom-chip-value solid-chip-pill-label", title: chip.label, children: chip.label })), _jsx("button", { type: "button", className: "solid-chip-pill-remove", onMouseDown: function (e) { return e.preventDefault(); }, onClick: chip.onRemove, "aria-label": "Remove ".concat(chip.label), children: _jsx(X, { size: 14 }) })] }) }, chip.id)); }), hiddenChipCount > 0 && (_jsx("li", { children: _jsxs("button", { type: "button", ref: chipManagerTriggerRef, className: "solid-chip-manage-trigger", onMouseDown: function (e) { return e.preventDefault(); }, onClick: function () { return setShowChipManager(function (prev) { return !prev; }); }, children: ["+", hiddenChipCount, " more"] }) })), _jsx("li", { ref: chipsRef, className: "solid-global-search-input-item", children: _jsxs("div", { className: "relative solid-global-search-element-wrapper", children: [_jsx(SolidInput, { ref: searchInputRef, className: "solid-global-search-input", value: inputValue || "", placeholder: "Search\u2026", role: "combobox", "aria-label": "Search and filter", "aria-autocomplete": "list", "aria-expanded": showOverlay, "aria-controls": showOverlay ? overlayListboxId : undefined, "aria-activedescendant": showOverlay && focusedIndex >= 0 ? getOverlayOptionId(focusedIndex) : undefined, onChange: function (e) {
1700
1717
  setInputValue(e.target.value);
1701
1718
  setShowChipManager(false);
1702
1719
  setShowOverlay(true);
@@ -1715,14 +1732,15 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1715
1732
  setShowChipManager(false);
1716
1733
  setShowOverlay(true);
1717
1734
  focusSearchInput();
1718
- }, className: "custom-filter-button solid-global-search-trigger", children: _jsx(Search, { size: 14 }) })] }) })] }) }), showOverlay && (_jsxs("div", { ref: overlayRef, className: "absolute w-full shadow-md solid-search-overlay-pannel", children: [_jsxs("div", { className: "solid-search-overlay-scroll", children: [(definedFilters || []).some(function (f) { return !(f === null || f === void 0 ? void 0 : f.applied); }) && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "custom-filter-search-options solid-search-overlay-section flex flex-col px-3 py-2", children: [_jsxs("h6", { className: "my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon", children: [_jsx(ListFilter, { size: 13 }), _jsx("span", { children: "Defined filters" })] }), _jsx("div", { className: "solid-defined-filter-badge-row", children: (definedFilters || [])
1719
- .filter(function (f) { return !(f === null || f === void 0 ? void 0 : f.applied); })
1720
- .map(function (definedFilter) { return (_jsxs("button", { type: "button", className: "solid-defined-filter-badge", onMouseDown: function (e) {
1721
- e.preventDefault();
1722
- onApplyDefinedFilter === null || onApplyDefinedFilter === void 0 ? void 0 : onApplyDefinedFilter(definedFilter.key);
1723
- setShowOverlay(false);
1724
- }, children: [_jsx(Plus, { size: 12 }), _jsx("span", { className: "solid-defined-filter-badge-label", children: definedFilter.label })] }, definedFilter.key)); }) })] }), _jsx("div", { className: "solid-filter-dialog-sep" })] })), inputValue ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "custom-filter-search-options solid-search-overlay-section flex flex-col px-3 py-1", children: [_jsxs("h6", { className: "my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon", children: [_jsx(Search, { size: 13 }), _jsx("span", { children: "Search by fields" })] }), searchableFields.length > 0 ? (searchableFields.map(function (value, index) {
1725
- return (_jsxs(SolidButton, { variant: "ghost", size: "sm", className: "flex justify-start gap-1 text-color solid-search-overlay-option ".concat(focusedIndex === index ? "solid-search-overlay-option-active" : ""), onMouseDown: function (e) {
1735
+ }, className: "custom-filter-button solid-global-search-trigger", "aria-label": "Open search options", children: _jsx(Search, { size: 14 }) })] }) })] }) }), showOverlay && (_jsxs("div", { ref: overlayRef, id: overlayListboxId, role: "listbox", "aria-label": "Search and filter options", className: "solid-search-overlay-panel", children: [_jsxs("div", { className: "solid-search-overlay-scroll", children: [inputValue ? (_jsxs(_Fragment, { children: [predefinedSearches && predefinedSearches.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "solid-search-overlay-section solid-search-overlay-section--predefined", children: [_jsxs("h6", { className: "my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon", children: [_jsx(Sparkles, { size: 14 }), _jsx("span", { children: "Suggested searches" }), _jsx("span", { className: "solid-search-overlay-section-count", children: predefinedSearches.length })] }), predefinedSearches.map(function (predefinedSearch, index) {
1736
+ var optionIndex = overlayOptions.findIndex(function (option) { return option.id === "predefined:".concat(predefinedSearch.name || index); });
1737
+ return (_jsx(SolidButton, { id: getOverlayOptionId(optionIndex), role: "option", "aria-selected": focusedIndex === optionIndex, variant: "ghost", size: "sm", className: "text-color solid-search-overlay-option ".concat(focusedIndex === optionIndex ? "solid-search-overlay-option-active" : ""), onMouseDown: function (e) {
1738
+ e.preventDefault();
1739
+ handlePredefinedSearch(predefinedSearch);
1740
+ }, onMouseEnter: function () { return setFocusedIndex(optionIndex); }, children: _jsxs("span", { className: "solid-search-overlay-option-content", children: [_jsx("span", { className: "solid-search-overlay-option-icon", "aria-hidden": "true", children: _jsx(Sparkles, { size: 15 }) }), _jsxs("span", { className: "solid-search-overlay-option-copy", children: [_jsx("span", { className: "solid-search-overlay-option-title", children: predefinedSearch.name }), _jsxs("span", { className: "solid-search-overlay-option-description", children: ["Search for \u201C", inputValue, "\u201D", predefinedSearch.description ? " \u2014 ".concat(predefinedSearch.description) : ""] })] })] }) }, index));
1741
+ })] }), _jsx("div", { className: "solid-filter-dialog-sep" })] })), _jsxs("div", { className: "solid-search-overlay-section solid-search-overlay-section--search", children: [_jsxs("h6", { className: "my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon", children: [_jsx(Search, { size: 13 }), _jsx("span", { children: "Search individual fields" }), _jsx("span", { className: "solid-search-overlay-section-count", children: searchableFields.length })] }), searchableFields.length > 0 ? (searchableFields.map(function (value, index) {
1742
+ var optionIndex = overlayOptions.findIndex(function (option) { return option.id === "field:".concat(value.fieldName); });
1743
+ return (_jsx(SolidButton, { id: getOverlayOptionId(optionIndex), role: "option", "aria-selected": focusedIndex === optionIndex, variant: "ghost", size: "sm", className: "text-color solid-search-overlay-option ".concat(focusedIndex === optionIndex ? "solid-search-overlay-option-active" : ""), onMouseDown: function (e) {
1726
1744
  e.preventDefault();
1727
1745
  var currentValue = inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim();
1728
1746
  if (currentValue) {
@@ -1740,34 +1758,31 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1740
1758
  setRefreshKey(function (prev) { return prev + 1; });
1741
1759
  setShowOverlay(false);
1742
1760
  }
1743
- }, onMouseEnter: function () { return setFocusedIndex(index); }, children: ["Search ", _jsx("strong", { style: { paddingLeft: "2px" }, children: toTitleCase(value.displayName.trim()) }), "\u00A0for:\u00A0 ", _jsx("span", { className: "font-bold text-color", children: inputValue })] }, index));
1744
- })) : (_jsxs("div", { className: "solid-search-overlay-no-fields", children: [_jsx("div", { className: "solid-search-overlay-no-fields-icon", children: _jsx(SearchX, { size: 14 }) }), _jsx("div", { className: "solid-search-overlay-no-fields-text", children: "No fields configured for search." })] }))] }), predefinedSearches && predefinedSearches.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "custom-filter-search-options solid-search-overlay-section flex flex-col px-3 py-1", children: [_jsx("h6", { className: "my-1 solid-search-overlay-heading solid-search-overlay-section-title", children: "Predefined searches" }), predefinedSearches.map(function (predefinedSearch, index) { return (_jsxs(SolidButton, { variant: "ghost", size: "sm", className: "flex flex-col items-start gap-1 text-color solid-search-overlay-option solid-search-overlay-option-stacked ".concat(focusedIndex === searchableFields.length + index ? "solid-search-overlay-option-active" : ""), onMouseDown: function (e) {
1745
- e.preventDefault();
1746
- handlePredefinedSearch(predefinedSearch);
1747
- }, onMouseEnter: function () { return setFocusedIndex(searchableFields.length + index); }, children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsxs("strong", { children: [predefinedSearch.name, ":"] }), _jsxs("span", { className: "font-bold text-color pr-1", children: [inputValue, " "] })] }), _jsx("div", { className: "text-xs", children: predefinedSearch.description })] }, index)); })] })] }))] })) :
1748
- _jsxs(_Fragment, { children: [_jsx("div", { className: "p-3 solid-search-overlay-empty", children: _jsxs("div", { className: "solid-search-overlay-panel-callout", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Search, { size: 13 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-empty-title", children: "Start typing to search" }), _jsxs("div", { className: "solid-search-overlay-empty-subtitle", children: ["Start typing in search input to see all fields on which you can search ", searchableEntityLabel, " by."] })] })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" })] }), selectableSavedFilters.length > 0 &&
1749
- _jsx(_Fragment, { children: _jsxs("div", { className: "p-3 solid-search-overlay-section", children: [_jsxs("div", { className: "solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Bookmark, { size: 13 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("p", { className: "solid-search-overlay-heading solid-search-overlay-section-title", children: "Saved filters" }), _jsx("div", { className: "solid-search-overlay-empty-subtitle", children: "Reusable filter sets available for this view." })] })] }), _jsx("div", { className: "flex flex-col solid-search-overlay-saved-list", children: selectableSavedFilters.map(function (savedfilter, index) {
1750
- var _a;
1751
- return (_jsx(SavedFilterList, { savedfilter: savedfilter, activeSavedFilterReference: (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.systemKey) || (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id), applySavedFilter: applySavedFilter, openSavedCustomFilter: openSavedCustomFilter, setSavedFilterTobeDeleted: setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible: setIsDeleteSQDialogVisible, isFocused: ((_a = overlayOptions[focusedIndex]) === null || _a === void 0 ? void 0 : _a.id) === "saved:".concat(savedfilter.id), onMouseEnter: function () {
1752
- var optIndex = overlayOptions.findIndex(function (o) { return o.id === "saved:".concat(savedfilter.id); });
1753
- if (optIndex !== -1)
1754
- setFocusedIndex(optIndex);
1755
- } }, savedfilter.id));
1756
- }) })] }) })] }), _jsxs("div", { className: "solid-search-overlay-footer", children: [_jsx("button", { type: "button", className: "flex flex-col px-3 py-2 solid-search-overlay-footer-action ".concat(((_y = overlayOptions[focusedIndex]) === null || _y === void 0 ? void 0 : _y.id) === "footer:custom" ? "solid-search-overlay-option-active" : ""), onMouseDown: function (event) {
1761
+ }, onMouseEnter: function () { return setFocusedIndex(optionIndex); }, children: _jsxs("span", { className: "solid-search-overlay-option-content", children: [_jsx("span", { className: "solid-search-overlay-option-icon", "aria-hidden": "true", children: _jsx(Search, { size: 15 }) }), _jsxs("span", { className: "solid-search-overlay-option-copy", children: [_jsx("span", { className: "solid-search-overlay-option-title", children: toTitleCase(value.displayName.trim()) }), _jsxs("span", { className: "solid-search-overlay-option-description", children: ["Search for \u201C", inputValue, "\u201D"] })] })] }) }, index));
1762
+ })) : (_jsxs("div", { className: "solid-search-overlay-no-fields", children: [_jsx("div", { className: "solid-search-overlay-no-fields-icon", children: _jsx(SearchX, { size: 14 }) }), _jsx("div", { className: "solid-search-overlay-no-fields-text", children: "No fields configured for search." })] }))] })] })) :
1763
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "solid-search-overlay-empty", children: _jsxs("div", { className: "solid-search-overlay-panel-callout", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Search, { size: 13 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-empty-title", children: "Start typing to search" }), _jsxs("div", { className: "solid-search-overlay-empty-subtitle", children: ["Enter a value to see suggested searches and searchable ", searchableEntityLabel, " fields."] })] })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" })] }), selectableSavedFilters.length > 0 &&
1764
+ _jsxs(_Fragment, { children: [_jsx("hr", { className: "solid-search-overlay-section-separator" }), _jsxs("div", { className: "solid-search-overlay-section solid-search-overlay-section--saved", children: [_jsxs("div", { className: "solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Bookmark, { size: 13 }) }), _jsx("div", { className: "solid-search-overlay-panel-callout-copy", children: _jsxs("p", { className: "solid-search-overlay-heading solid-search-overlay-section-title", children: [_jsx("span", { children: "Saved filters" }), _jsx("span", { className: "solid-search-overlay-section-count", children: selectableSavedFilters.length })] }) })] }), _jsx("div", { className: "solid-search-overlay-saved-list", children: selectableSavedFilters.map(function (savedfilter, index) {
1765
+ var _a;
1766
+ return (_jsx(SavedFilterList, { savedfilter: savedfilter, activeSavedFilterReference: (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.systemKey) || (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id), applySavedFilter: applySavedFilter, openSavedCustomFilter: openSavedCustomFilter, setSavedFilterTobeDeleted: setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible: setIsDeleteSQDialogVisible, isFocused: ((_a = overlayOptions[focusedIndex]) === null || _a === void 0 ? void 0 : _a.id) === "saved:".concat(savedfilter.id), onMouseEnter: function () {
1767
+ var optIndex = overlayOptions.findIndex(function (o) { return o.id === "saved:".concat(savedfilter.id); });
1768
+ if (optIndex !== -1)
1769
+ setFocusedIndex(optIndex);
1770
+ }, optionId: getOverlayOptionId(overlayOptions.findIndex(function (o) { return o.id === "saved:".concat(savedfilter.id); })) }, savedfilter.id));
1771
+ }) })] })] })] }), _jsxs("div", { className: "solid-search-overlay-footer", children: [_jsx("button", { type: "button", id: getOverlayOptionId(overlayOptions.findIndex(function (option) { return option.id === "footer:custom"; })), role: "option", "aria-selected": ((_y = overlayOptions[focusedIndex]) === null || _y === void 0 ? void 0 : _y.id) === "footer:custom", className: "solid-search-overlay-footer-action solid-search-overlay-footer-action--custom ".concat(((_z = overlayOptions[focusedIndex]) === null || _z === void 0 ? void 0 : _z.id) === "footer:custom" ? "solid-search-overlay-option-active" : ""), onMouseDown: function (event) {
1757
1772
  event.preventDefault();
1758
1773
  openCustomFilterDialog();
1759
1774
  }, onMouseEnter: function () {
1760
1775
  var optIndex = overlayOptions.findIndex(function (o) { return o.id === "footer:custom"; });
1761
1776
  if (optIndex !== -1)
1762
1777
  setFocusedIndex(optIndex);
1763
- }, children: _jsxs("div", { className: "solid-search-overlay-footer-action-main", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Filter, { size: 14 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-footer-title solid-search-overlay-section-title", children: "Click here to apply custom filters" }), _jsx("div", { className: "solid-search-overlay-footer-subtitle", children: "Use custom filters to apply conditions on any field using any operator." })] })] }) }), viewType === "tree" && (_jsx("button", { type: "button", className: "flex flex-col px-3 py-2 solid-search-overlay-footer-action solid-search-overlay-footer-action-secondary ".concat(((_z = overlayOptions[focusedIndex]) === null || _z === void 0 ? void 0 : _z.id) === "footer:grouping" ? "solid-search-overlay-option-active" : ""), onMouseDown: function (event) {
1778
+ }, children: _jsxs("div", { className: "solid-search-overlay-footer-action-main", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Filter, { size: 14 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-footer-title solid-search-overlay-section-title", children: "Advanced filters" }), _jsx("div", { className: "solid-search-overlay-footer-subtitle", children: "Combine fields, operators and values." })] })] }) }), viewType === "tree" && (_jsx("button", { type: "button", id: getOverlayOptionId(overlayOptions.findIndex(function (option) { return option.id === "footer:grouping"; })), role: "option", "aria-selected": ((_0 = overlayOptions[focusedIndex]) === null || _0 === void 0 ? void 0 : _0.id) === "footer:grouping", className: "solid-search-overlay-footer-action solid-search-overlay-footer-action-secondary ".concat(((_1 = overlayOptions[focusedIndex]) === null || _1 === void 0 ? void 0 : _1.id) === "footer:grouping" ? "solid-search-overlay-option-active" : ""), onMouseDown: function (event) {
1764
1779
  event.preventDefault();
1765
1780
  openGroupingDialog();
1766
1781
  }, onMouseEnter: function () {
1767
1782
  var optIndex = overlayOptions.findIndex(function (o) { return o.id === "footer:grouping"; });
1768
1783
  if (optIndex !== -1)
1769
1784
  setFocusedIndex(optIndex);
1770
- }, children: _jsxs("div", { className: "solid-search-overlay-footer-action-main", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Plus, { size: 14 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-footer-title solid-search-overlay-section-title", children: "Click here to do custom grouping" }), _jsx("div", { className: "solid-search-overlay-footer-subtitle", children: "Configure grouping rules and aggregations for the tree view." })] })] }) }))] })] })), _jsxs(SolidDialog, { open: showGlobalSearchElement, onOpenChange: setShowGlobalSearchElement, className: "solid-global-search-filter solid-filter-dialog-shell", style: { width: "min(960px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Add Custom Filter" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Apply conditions on any field with operators." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: fields.length > 0 &&
1785
+ }, children: _jsxs("div", { className: "solid-search-overlay-footer-action-main", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Plus, { size: 14 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-footer-title solid-search-overlay-section-title", children: "Group and aggregate" }), _jsx("div", { className: "solid-search-overlay-footer-subtitle", children: "Organise records and calculate aggregate values." })] })] }) }))] })] })), _jsxs(SolidDialog, { open: showGlobalSearchElement, onOpenChange: setShowGlobalSearchElement, className: "solid-global-search-filter solid-filter-dialog-shell", style: { width: "min(960px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Add Custom Filter" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Apply conditions on any field with operators." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: fields.length > 0 &&
1771
1786
  _jsx(FilterComponent, { viewData: viewData, fields: fields, filterRules: filterRules, setFilterRules: setFilterRules, transformFilterRules: transformCustomFilterRules, closeDialog: function () { return setShowGlobalSearchElement(false); } }) })] }), _jsxs(SolidDialog, { open: showGroupFilterElement, onOpenChange: setShowGroupFilterElement, className: "solid-global-search-filter solid-filter-dialog-shell solid-filter-dialog-shell-grouping", style: { width: "min(560px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Grouping" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Configure grouping and aggregation." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: groupableFields.length > 0 &&
1772
1787
  _jsx(GroupingComponent, { viewData: viewData, fields: groupableFields, groupingRules: groupingRules, setGroupingRules: setGroupingRules, aggregationRules: aggregationRules, setAggregationRules: setAggregationRules, applyGrouping: applyGrouping, closeDialog: function () { return setShowGroupFilterElement(false); } }) })] }), _jsxs(SolidDialog, { open: showSavedFilterComponent, onOpenChange: setShowSavedFilterComponent, className: "solid-global-search-filter solid-filter-dialog-shell", style: { width: "min(960px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Saved Filter" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Review and refine the saved filter conditions." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: fields.length > 0 &&
1773
1788
  _jsx(FilterComponent, { viewData: viewData, fields: fields, filterRules: currentSavedFilterRules, setFilterRules: setCurrentSavedFilterRules, transformFilterRules: transformSavedFilterRules, closeDialog: function () { return setShowSavedFilterComponent(false); } }) })] }), _jsxs(SolidDialog, { open: showSaveFilterPopup, onOpenChange: setShowSaveFilterPopup, className: "solid-custom-filter-dialog solid-save-filter-dialog", style: { width: "min(420px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Save Custom Filter" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Name this filter so you can reuse it later." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsx(SolidSaveCustomFilterForm, { currentSavedFilterData: currentSavedFilterData, handleSaveFilter: handleSaveFilter, closeDialog: function () { return setShowSaveFilterPopup(false); } }) })] }), _jsxs(SolidDialog, { open: isDeleteSQDialogVisible, onOpenChange: setIsDeleteSQDialogVisible, className: "solid-confirm-dialog", style: { width: "min(420px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { children: "Confirm Delete" }), _jsxs(SolidDialogDescription, { children: ["Are you sure you want to delete the ", currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.name, " saved query?"] })] }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, {}), _jsxs(SolidDialogFooter, { className: "justify-center", children: [_jsxs(SolidButton, { variant: "destructive", size: "sm", onClick: deleteSavedFilter, children: [_jsx(Check, { size: 14 }), "Yes"] }), _jsxs(SolidButton, { variant: "outline", size: "sm", onClick: function () { return setIsDeleteSQDialogVisible(false); }, children: [_jsx(X, { size: 14 }), "No"] })] })] })] }) }));