@solidxai/core-ui 0.1.14 → 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 (180) hide show
  1. package/dist/components/auth/AuthLayout.js +1 -1
  2. package/dist/components/auth/AuthLayout.js.map +1 -1
  3. package/dist/components/auth/AuthLayout.tsx +2 -2
  4. package/dist/components/common/DropzonePlaceholder.d.ts +2 -1
  5. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  6. package/dist/components/common/DropzonePlaceholder.js +10 -7
  7. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  8. package/dist/components/common/DropzonePlaceholder.tsx +14 -9
  9. package/dist/components/common/SettingsComponent.module.css +4 -1
  10. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  11. package/dist/components/common/SolidFormStepper.js +7 -6
  12. package/dist/components/common/SolidFormStepper.js.map +1 -1
  13. package/dist/components/common/SolidFormStepper.tsx +7 -1
  14. package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
  15. package/dist/components/common/SolidThemeProvider.js +127 -11
  16. package/dist/components/common/SolidThemeProvider.js.map +1 -1
  17. package/dist/components/common/SolidThemeProvider.tsx +104 -22
  18. package/dist/components/core/card/CardGrid.d.ts +1 -1
  19. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  20. package/dist/components/core/card/CardGrid.js +2 -2
  21. package/dist/components/core/card/CardGrid.js.map +1 -1
  22. package/dist/components/core/card/CardGrid.tsx +4 -0
  23. package/dist/components/core/card/CardItem.d.ts +2 -0
  24. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  25. package/dist/components/core/card/CardItem.js +5 -4
  26. package/dist/components/core/card/CardItem.js.map +1 -1
  27. package/dist/components/core/card/CardItem.tsx +16 -1
  28. package/dist/components/core/card/SolidCardView.d.ts +28 -1
  29. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  30. package/dist/components/core/card/SolidCardView.js +99 -44
  31. package/dist/components/core/card/SolidCardView.js.map +1 -1
  32. package/dist/components/core/card/SolidCardView.tsx +119 -7
  33. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  34. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  35. package/dist/components/core/card/SolidCardViewConfigure.js +15 -6
  36. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  37. package/dist/components/core/card/SolidCardViewConfigure.tsx +34 -0
  38. package/dist/components/core/common/PDFViewer.d.ts +9 -5
  39. package/dist/components/core/common/PDFViewer.d.ts.map +1 -1
  40. package/dist/components/core/common/PDFViewer.js +10 -102
  41. package/dist/components/core/common/PDFViewer.js.map +1 -1
  42. package/dist/components/core/common/PDFViewer.tsx +29 -88
  43. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  44. package/dist/components/core/common/SolidCreateButton.js +2 -2
  45. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  46. package/dist/components/core/common/SolidCreateButton.tsx +22 -2
  47. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  48. package/dist/components/core/common/SolidGlobalSearchElement.js +216 -198
  49. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  50. package/dist/components/core/common/SolidGlobalSearchElement.tsx +287 -216
  51. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  52. package/dist/components/core/form/SolidFormActionHeader.js +21 -21
  53. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  54. package/dist/components/core/form/SolidFormActionHeader.tsx +62 -53
  55. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  56. package/dist/components/core/form/SolidFormView.js +101 -74
  57. package/dist/components/core/form/SolidFormView.js.map +1 -1
  58. package/dist/components/core/form/SolidFormView.tsx +46 -19
  59. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  60. package/dist/components/core/form/fields/SolidMediaMultipleField.js +3 -2
  61. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  62. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +3 -1
  63. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  64. package/dist/components/core/form/fields/SolidMediaSingleField.js +3 -2
  65. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  66. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +3 -1
  67. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +1 -0
  68. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  69. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +20 -2
  70. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  71. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -2
  72. package/dist/components/core/form/fields/solidFields.module.css +7 -0
  73. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  74. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  75. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  76. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  77. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  78. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  79. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  80. package/dist/components/core/kanban/KanbanCard.js +5 -3
  81. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  82. package/dist/components/core/kanban/KanbanCard.tsx +15 -2
  83. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  84. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  85. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  86. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  87. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  88. package/dist/components/core/kanban/SolidKanbanView.d.ts +25 -1
  89. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  90. package/dist/components/core/kanban/SolidKanbanView.js +95 -50
  91. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  92. package/dist/components/core/kanban/SolidKanbanView.tsx +87 -9
  93. package/dist/components/core/list/PLAN.md +1 -1
  94. package/dist/components/core/list/SolidListView.d.ts +11 -0
  95. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  96. package/dist/components/core/list/SolidListView.js +51 -90
  97. package/dist/components/core/list/SolidListView.js.map +1 -1
  98. package/dist/components/core/list/SolidListView.tsx +77 -112
  99. package/dist/components/core/list/SolidListViewColumn.d.ts +2 -1
  100. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  101. package/dist/components/core/list/SolidListViewColumn.js +2 -2
  102. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  103. package/dist/components/core/list/SolidListViewColumn.tsx +4 -3
  104. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  105. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  106. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  107. package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
  108. package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
  109. package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
  110. package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
  111. package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
  112. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
  113. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  114. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +5 -4
  115. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  116. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +5 -4
  117. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  118. package/dist/components/core/model/CreateModel.js +2 -1
  119. package/dist/components/core/model/CreateModel.js.map +1 -1
  120. package/dist/components/core/model/CreateModel.tsx +2 -0
  121. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  122. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  123. package/dist/components/core/model/FieldMetaData.js +8 -8
  124. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  125. package/dist/components/core/model/FieldMetaData.tsx +2 -2
  126. package/dist/components/core/model/FieldMetaDataForm.css +119 -0
  127. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  128. package/dist/components/core/model/FieldMetaDataForm.js +147 -97
  129. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  130. package/dist/components/core/model/FieldMetaDataForm.tsx +124 -32
  131. package/dist/components/core/module/ModuleMetadataExplorer.css +64 -0
  132. package/dist/components/core/module/ModulePackageDialog.css +117 -12
  133. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  134. package/dist/components/core/tree/SolidTreeView.js +6 -3
  135. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  136. package/dist/components/core/tree/SolidTreeView.tsx +27 -13
  137. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  138. package/dist/components/layout/AdminHeaderActions.js +16 -11
  139. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  140. package/dist/components/layout/AdminHeaderActions.tsx +16 -9
  141. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  142. package/dist/components/layout/AdminTopHeader.js +1 -18
  143. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  144. package/dist/components/layout/AdminTopHeader.tsx +3 -21
  145. package/dist/helpers/getAcceptedFileTypes.d.ts +12 -2
  146. package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -1
  147. package/dist/helpers/getAcceptedFileTypes.js +72 -16
  148. package/dist/helpers/getAcceptedFileTypes.js.map +1 -1
  149. package/dist/helpers/getAcceptedFileTypes.tsx +101 -18
  150. package/dist/helpers/registry.js +2 -1
  151. package/dist/helpers/registry.js.map +1 -1
  152. package/dist/helpers/registry.ts +3 -1
  153. package/dist/index.d.ts +6 -1
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +3 -0
  156. package/dist/index.js.map +1 -1
  157. package/dist/index.ts +6 -2
  158. package/dist/resources/globals.css +274 -109
  159. package/dist/resources/solid-custom.css +11 -0
  160. package/dist/resources/solid-responsive.css +1 -5
  161. package/dist/resources/solid-tailwind-generated.css +1 -1
  162. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  163. package/dist/routes/pages/admin/core/CardPage.js +15 -2
  164. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  165. package/dist/routes/pages/admin/core/CardPage.tsx +17 -2
  166. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  167. package/dist/routes/pages/admin/core/DashboardPage.js +31 -3
  168. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  169. package/dist/routes/pages/admin/core/DashboardPage.tsx +39 -11
  170. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  171. package/dist/routes/pages/admin/core/KanbanPage.js +15 -2
  172. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  173. package/dist/routes/pages/admin/core/KanbanPage.tsx +17 -2
  174. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  175. package/dist/routes/pages/admin/core/ListPage.js +5 -13
  176. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  177. package/dist/routes/pages/admin/core/ListPage.tsx +5 -15
  178. package/dist/types/index.d.ts +2 -4
  179. package/dist/types/solid-core.d.ts +12 -13
  180. package/package.json +1 -1
@@ -54,22 +54,20 @@ 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
- import { usePathname } from "../../../hooks/usePathname";
62
- import { useRouter } from "../../../hooks/useRouter";
63
- import { useSearchParams } from "../../../hooks/useSearchParams";
64
- import { clearFilterObjectFromLocalStorage, getFilterObjectFromLocalStorage, } from "./globalSearchPersistence";
61
+ import { clearFilterObjectFromLocalStorage, getFilterObjectFromLocalStorage, setFilterObjectToLocalStorage, } from "./globalSearchPersistence";
65
62
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
66
63
  import qs from "qs";
67
64
  import { SolidSaveCustomFilterForm } from "./SolidSaveCustomFilterForm";
68
65
  import { ERROR_MESSAGES } from "../../../constants/error-messages";
69
66
  import { hydrateRelationRules } from "../../../helpers/hydrateRelationRules";
70
67
  import { useSession } from '../../../hooks/useSession';
68
+ import { getUnboundSavedFilterVariableNames, parseSavedFilterQueryJson, resolveSavedFilterVariables } from '../../../helpers/resolveActiveUserId';
71
69
  import GroupingComponent from "./GroupingComponent";
72
- 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";
73
71
  import { SolidButton } from "../../shad-cn-ui/SolidButton";
74
72
  import { SolidInput } from "../../shad-cn-ui/SolidInput";
75
73
  import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, } from "../../shad-cn-ui/SolidDialog";
@@ -412,20 +410,22 @@ export var mergeAllDiffFilters = function (customFilter, searchFilter, savedFilt
412
410
  return filters;
413
411
  };
414
412
  var SavedFilterList = function (_a) {
415
- var savedfilter = _a.savedfilter, activeSavedFilter = _a.activeSavedFilter, applySavedFilter = _a.applySavedFilter, openSavedCustomFilter = _a.openSavedCustomFilter, setSavedFilterTobeDeleted = _a.setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible = _a.setIsDeleteSQDialogVisible, isFocused = _a.isFocused, onMouseEnter = _a.onMouseEnter;
416
- var isActive = (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey) ? activeSavedFilter === savedfilter.systemKey : Number(activeSavedFilter) == 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) {
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
+ var isActive = (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey)
415
+ ? activeSavedFilterReference === savedfilter.systemKey
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" : ""), 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,53 +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];
535
- var pathname = usePathname();
537
+ var _2 = useState(defaultState), initialState = _2[0], setInitialState = _2[1];
536
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) ||
537
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) ||
538
540
  "records";
539
- var searchParams = useSearchParams(); // Converts the query params to a string
540
- var activeSavedFilter = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("savedQuery");
541
- var router = useRouter();
542
541
  var chipsRef = useRef(null);
543
542
  // filterRules is used to maintian the ui of custom filter
544
543
  // customFilter is used to maintian the transformed filter object of custom filter
545
- var _1 = useState(initialState), filterRules = _1[0], setFilterRules = _1[1];
546
- var _2 = useState(null), customFilter = _2[0], setCustomFilter = _2[1];
547
- var _3 = useState([]), fields = _3[0], setFields = _3[1];
548
- var _4 = useState([]), searchableFields = _4[0], setSearchableFields = _4[1];
549
- var _5 = useState([]), groupableFields = _5[0], setGroupableFields = _5[1];
550
- var _6 = useState(defaultGroupingRules), groupingRules = _6[0], setGroupingRules = _6[1];
551
- 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];
552
551
  // used to show the list of predefined searches
553
- var _8 = useState([]), predefinedSearches = _8[0], setPredefinedSearches = _8[1];
552
+ var _10 = useState([]), predefinedSearches = _10[0], setPredefinedSearches = _10[1];
554
553
  // used to open / close the custom fitler popup
555
- var _9 = useState(false), showGlobalSearchElement = _9[0], setShowGlobalSearchElement = _9[1];
554
+ var _11 = useState(false), showGlobalSearchElement = _11[0], setShowGlobalSearchElement = _11[1];
556
555
  // used to open / close the group fitler popup
557
- var _10 = useState(false), showGroupFilterElement = _10[0], setShowGroupFilterElement = _10[1];
556
+ var _12 = useState(false), showGroupFilterElement = _12[0], setShowGroupFilterElement = _12[1];
558
557
  // searchChips maintain the ui to display searched query
559
558
  // searchFilter maintain the transformed filter of the searched query
560
- var _11 = useState([]), searchChips = _11[0], setSearchChips = _11[1];
561
- 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];
562
561
  // predefinedSearchChip maintain the ui to display predefined searches query
563
- var _13 = useState(null), predefinedSearchChip = _13[0], setPredefinedSearchChip = _13[1];
562
+ var _15 = useState(null), predefinedSearchChip = _15[0], setPredefinedSearchChip = _15[1];
564
563
  // state to maintain the text typed in the search input box
565
- var _14 = useState(""), inputValue = _14[0], setInputValue = _14[1];
566
- 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];
567
566
  // flag to prevent un necessary re renders
568
- var _16 = useState(false), hasSearched = _16[0], setHasSearched = _16[1];
567
+ var _18 = useState(false), hasSearched = _18[0], setHasSearched = _18[1];
569
568
  // currentSavedFilterData is used to save the whole object of saved filter
570
- var _17 = useState(), currentSavedFilterData = _17[0], setCurrentSavedFilterData = _17[1];
571
- var _18 = useState(), currentSavedFilterQuery = _18[0], setCurrentSavedFilterQuery = _18[1];
572
- var _19 = useState(), currentSavedFilterRules = _19[0], setCurrentSavedFilterRules = _19[1];
573
- var _20 = useState(false), showSavedFilterComponent = _20[0], setShowSavedFilterComponent = _20[1];
574
- var _21 = useState(), savedFilterTobeDeleted = _21[0], setSavedFilterTobeDeleted = _21[1];
575
- var _22 = useState(false), isDeleteSQDialogVisible = _22[0], setIsDeleteSQDialogVisible = _22[1];
576
- var _23 = useState(), savedFilterQueryString = _23[0], setSavedFilterQueryString = _23[1];
577
- var _24 = useState(false), showOverlay = _24[0], setShowOverlay = _24[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];
578
578
  var overlayRef = useRef(null);
579
579
  var searchInputRef = useRef(null);
580
- var _25 = useState(false), showChipManager = _25[0], setShowChipManager = _25[1];
580
+ var _28 = useState(false), showChipManager = _28[0], setShowChipManager = _28[1];
581
581
  var chipManagerRef = useRef(null);
582
582
  var chipManagerTriggerRef = useRef(null);
583
583
  var focusSearchInput = function () {
@@ -587,8 +587,9 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
587
587
  });
588
588
  };
589
589
  useEffect(function () {
590
+ var _a;
590
591
  if (focusedIndex >= 0 && showOverlay) {
591
- 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");
592
593
  if (activeElement) {
593
594
  activeElement.scrollIntoView({
594
595
  block: 'nearest',
@@ -597,12 +598,12 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
597
598
  }
598
599
  }
599
600
  }, [focusedIndex, showOverlay]);
600
- var _26 = useSession(), session = _26.data, status = _26.status;
601
+ var _29 = useSession(), session = _29.data, status = _29.status;
601
602
  var user = session === null || session === void 0 ? void 0 : session.user;
602
- var _27 = useState(0), refreshKey = _27[0], setRefreshKey = _27[1];
603
- var _28 = useState(null), predefinedSearchBaseFilter = _28[0], setPredefinedSearchBaseFilter = _28[1];
604
- var _29 = useState([]), savedFilters = _29[0], setSavedFilters = _29[1];
605
- var _30 = useState(false), savedFiltersLoaded = _30[0], setSavedFiltersLoaded = _30[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];
606
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;
607
608
  var workflowPublishedVersionsSavedFilter = useMemo(function () {
608
609
  if (!isDraftPublishWorkflowEnabled)
@@ -619,26 +620,24 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
619
620
  }),
620
621
  };
621
622
  }, [isDraftPublishWorkflowEnabled]);
622
- var availableSavedFilters = useMemo(function () { return workflowPublishedVersionsSavedFilter
623
+ var allAvailableSavedFilters = useMemo(function () { return workflowPublishedVersionsSavedFilter
623
624
  ? __spreadArray([workflowPublishedVersionsSavedFilter], (savedFilters || []), true) : (savedFilters || []); }, [workflowPublishedVersionsSavedFilter, savedFilters]);
624
- var entityApi = createSolidEntityApi("savedFilters");
625
- var useCreateSolidEntityMutation = entityApi.useCreateSolidEntityMutation, useDeleteSolidEntityMutation = entityApi.useDeleteSolidEntityMutation, useGetSolidEntityByIdQuery = entityApi.useGetSolidEntityByIdQuery, useUpdateSolidEntityMutation = entityApi.useUpdateSolidEntityMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery;
626
- var _31 = useCreateSolidEntityMutation(), createEntity = _31[0], _32 = _31[1], isEntityCreateSuccess = _32.isSuccess, isEntityCreateError = _32.isError, entityCreateError = _32.error;
627
- var _33 = useUpdateSolidEntityMutation(), updateEntity = _33[0], _34 = _33[1], isEntityUpdateSuceess = _34.isSuccess, isEntityUpdateError = _34.isError, entityUpdateError = _34.error;
628
- var _35 = useDeleteSolidEntityMutation(), deleteEntity = _35[0], _36 = _35[1], isEntityDeleteSuceess = _36.isSuccess, isEntityDeleteError = _36.isError, entityDeleteError = _36.error;
629
- var _37 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _37[0], _38 = _37[1], solidEntityListViewData = _38.data, isSavedFilterLoading = _38.isLoading, error = _38.error;
630
- var _39 = useState(0), savedFilterFetchDataRefreshKey = _39[0], setSavedFilterFetchDataRefreshKey = _39[1];
631
- var buildSavedFilterUrl = function (savedQueryId) {
632
- var params = new URLSearchParams(searchParams.toString());
633
- if (savedQueryId === null || savedQueryId === undefined || savedQueryId === "") {
634
- params.delete("savedQuery");
625
+ var availableSavedFilters = allAvailableSavedFilters;
626
+ var selectableSavedFilters = useMemo(function () { return allAvailableSavedFilters.filter(function (filter) {
627
+ try {
628
+ return getUnboundSavedFilterVariableNames(parseSavedFilterQueryJson(filter.filterQueryJson || "{}")).length === 0;
635
629
  }
636
- else {
637
- params.set("savedQuery", String(savedQueryId));
630
+ catch (_a) {
631
+ return false;
638
632
  }
639
- var queryString = params.toString();
640
- return queryString ? "".concat(pathname, "?").concat(queryString) : pathname;
641
- };
633
+ }); }, [allAvailableSavedFilters]);
634
+ var entityApi = createSolidEntityApi("savedFilters");
635
+ var useCreateSolidEntityMutation = entityApi.useCreateSolidEntityMutation, useDeleteSolidEntityMutation = entityApi.useDeleteSolidEntityMutation, useGetSolidEntityByIdQuery = entityApi.useGetSolidEntityByIdQuery, useUpdateSolidEntityMutation = entityApi.useUpdateSolidEntityMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery;
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];
642
641
  useEffect(function () {
643
642
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
644
643
  var filters, queryData, queryString, savedFilter;
@@ -692,7 +691,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
692
691
  }); };
693
692
  fn();
694
693
  }, [
695
- activeSavedFilter,
696
694
  savedFilterFetchDataRefreshKey,
697
695
  (_l = (_k = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _k === void 0 ? void 0 : _k.solidView) === null || _l === void 0 ? void 0 : _l.id,
698
696
  (_p = (_o = (_m = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _m === void 0 ? void 0 : _m.solidView) === null || _o === void 0 ? void 0 : _o.model) === null || _p === void 0 ? void 0 : _p.id,
@@ -700,10 +698,10 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
700
698
  ]);
701
699
  // Updates search, custom filter, grouping, aggregation, and UI state from a single shared filter source.
702
700
  var syncFilterUiStateFromSharedSource = useCallback(function (queryObject) { return __awaiter(void 0, void 0, void 0, function () {
703
- var nextSearchFilter, nextSearchChips, nextCustomFilter, nextPredefinedBaseFilter, nextSavedFilter, nextSavedFilterData, rules, hydratedRules_1, hasGroupingRules, nextGroupingRules, layoutGroupBy, nextAggregationRules;
704
- var _a, _b, _c, _d, _e;
705
- return __generator(this, function (_f) {
706
- switch (_f.label) {
701
+ var nextSearchFilter, nextSearchChips, nextCustomFilter, nextPredefinedBaseFilter, nextPredefinedSearchChip, nextSavedFilter, nextSavedFilterVariables, nextSavedFilterData, rules, hydratedRules_1, hasGroupingRules, nextGroupingRules, layoutGroupBy, nextAggregationRules;
702
+ var _a, _b, _c, _d, _e, _f;
703
+ return __generator(this, function (_g) {
704
+ switch (_g.label) {
707
705
  case 0:
708
706
  nextSearchFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.search_predicate) || null;
709
707
  nextSearchChips = nextSearchFilter ? extractChips(nextSearchFilter) : [];
@@ -711,7 +709,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
711
709
  ? queryObject.custom_filter_predicate
712
710
  : null;
713
711
  nextPredefinedBaseFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.predefined_search_predicate) || null;
712
+ nextPredefinedSearchChip = nextPredefinedBaseFilter && (queryObject === null || queryObject === void 0 ? void 0 : queryObject.predefined_search_chip)
713
+ ? queryObject.predefined_search_chip
714
+ : null;
714
715
  nextSavedFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_predicate) || null;
716
+ nextSavedFilterVariables = (_a = queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_variables) !== null && _a !== void 0 ? _a : {};
715
717
  nextSavedFilterData = nextSavedFilter
716
718
  ? availableSavedFilters.find(function (savedFilter) {
717
719
  if (queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_system_key) {
@@ -732,26 +734,28 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
732
734
  setSearchChips(function (prev) { return areFilterStateValuesEqual(prev, nextSearchChips) ? prev : nextSearchChips; });
733
735
  setCustomFilter(function (prev) { return areFilterStateValuesEqual(prev, nextCustomFilter) ? prev : nextCustomFilter; });
734
736
  setPredefinedSearchBaseFilter(function (prev) { return areFilterStateValuesEqual(prev, nextPredefinedBaseFilter) ? prev : nextPredefinedBaseFilter; });
737
+ setPredefinedSearchChip(function (prev) { return areFilterStateValuesEqual(prev, nextPredefinedSearchChip) ? prev : nextPredefinedSearchChip; });
735
738
  setCurrentSavedFilterData(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilterData) ? prev : nextSavedFilterData; });
736
739
  setCurrentSavedFilterQuery(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilter) ? prev : nextSavedFilter; });
740
+ setCurrentSavedFilterVariables(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilterVariables) ? prev : nextSavedFilterVariables; });
737
741
  if (!(nextCustomFilter && (viewData === null || viewData === void 0 ? void 0 : viewData.data))) return [3 /*break*/, 2];
738
742
  rules = transformFiltersToRules(nextCustomFilter);
739
743
  return [4 /*yield*/, hydrateRelationRules([rules], viewData)];
740
744
  case 1:
741
- hydratedRules_1 = _f.sent();
745
+ hydratedRules_1 = _g.sent();
742
746
  setFilterRules(function (prev) { return areFilterStateValuesEqual(prev, hydratedRules_1) ? prev : hydratedRules_1; });
743
747
  return [3 /*break*/, 3];
744
748
  case 2:
745
749
  setFilterRules(function (prev) { return areFilterStateValuesEqual(prev, initialState) ? prev : initialState; });
746
- _f.label = 3;
750
+ _g.label = 3;
747
751
  case 3:
748
- hasGroupingRules = (_a = queryObject === null || queryObject === void 0 ? void 0 : queryObject.grouping_rules) === null || _a === void 0 ? void 0 : _a.some(function (rule) { return rule.fieldName !== null; });
752
+ hasGroupingRules = (_b = queryObject === null || queryObject === void 0 ? void 0 : queryObject.grouping_rules) === null || _b === void 0 ? void 0 : _b.some(function (rule) { return rule.fieldName !== null; });
749
753
  nextGroupingRules = [{ id: 1, fieldName: null, dateGrouping: null }];
750
754
  if (hasGroupingRules) {
751
755
  nextGroupingRules = queryObject.grouping_rules;
752
756
  }
753
757
  else {
754
- layoutGroupBy = (_e = (_d = (_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.layout) === null || _d === void 0 ? void 0 : _d.attrs) === null || _e === void 0 ? void 0 : _e.groupBy;
758
+ layoutGroupBy = (_f = (_e = (_d = (_c = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _c === void 0 ? void 0 : _c.solidView) === null || _d === void 0 ? void 0 : _d.layout) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.groupBy;
755
759
  if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {
756
760
  nextGroupingRules = layoutGroupBy.map(function (groupStr, index) {
757
761
  var _a = groupStr.split(":"), fieldName = _a[0], dateGrouping = _a[1];
@@ -782,6 +786,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
782
786
  setPredefinedSearchBaseFilter(null);
783
787
  setCurrentSavedFilterData(null);
784
788
  setCurrentSavedFilterQuery(null);
789
+ setCurrentSavedFilterVariables({});
785
790
  setCurrentSavedFilterRules(null);
786
791
  if (!preserveGrouping) {
787
792
  setGroupingRules(defaultGroupingRules);
@@ -791,12 +796,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
791
796
  setShowChipManager(false);
792
797
  setInputValue("");
793
798
  clearFilterObjectFromLocalStorage();
794
- if (activeSavedFilter) {
795
- var params = new URLSearchParams(searchParams.toString());
796
- params.delete("savedQuery");
797
- var nextUrl = params.toString() ? "".concat(pathname, "?").concat(params.toString()) : pathname;
798
- router.replace(nextUrl);
799
- }
800
799
  setHasSearched(true);
801
800
  setRefreshKey(function (prev) { return prev + 1; });
802
801
  };
@@ -804,6 +803,15 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
804
803
  clearFilter: function () {
805
804
  resetAppliedFilters();
806
805
  },
806
+ getSavedFilters: function () { return availableSavedFilters.map(function (filter) { return (__assign({}, filter)); }); },
807
+ applySavedFilterByName: function (name, variables) {
808
+ if (variables === void 0) { variables = {}; }
809
+ var savedFilter = allAvailableSavedFilters.find(function (filter) { return (filter === null || filter === void 0 ? void 0 : filter.name) === name; });
810
+ if (!savedFilter) {
811
+ return false;
812
+ }
813
+ return applySavedFilter(savedFilter, variables);
814
+ },
807
815
  clearAppliedFilters: function (options) {
808
816
  resetAppliedFilters(options);
809
817
  },
@@ -824,26 +832,13 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
824
832
  }, [syncFilterUiStateFromSharedSource, (_r = (_q = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _q === void 0 ? void 0 : _q.solidView) === null || _r === void 0 ? void 0 : _r.id]);
825
833
  useEffect(function () {
826
834
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
827
- var queryObject, nextQueryObject, currentSavedFilterId_1, currentSavedFilterData_1, filterJson;
835
+ var queryObject;
828
836
  return __generator(this, function (_a) {
829
837
  switch (_a.label) {
830
838
  case 0:
831
839
  if (!savedFiltersLoaded) return [3 /*break*/, 2];
832
- if (activeSavedFilter && availableSavedFilters.length === 0)
833
- return [2 /*return*/];
834
840
  queryObject = getFilterObjectFromLocalStorage();
835
- nextQueryObject = queryObject;
836
- if (activeSavedFilter) {
837
- currentSavedFilterId_1 = Number(activeSavedFilter);
838
- currentSavedFilterData_1 = availableSavedFilters.find(function (savedFilter) { return savedFilter.id === currentSavedFilterId_1; });
839
- if (currentSavedFilterData_1) {
840
- filterJson = JSON.parse(currentSavedFilterData_1 === null || currentSavedFilterData_1 === void 0 ? void 0 : currentSavedFilterData_1.filterQueryJson);
841
- if (filterJson) {
842
- nextQueryObject = __assign(__assign({}, (queryObject || {})), { saved_filter_predicate: filterJson, saved_filter_id: currentSavedFilterData_1.id, saved_filter_system_key: currentSavedFilterData_1.systemKey, saved_filter_name: currentSavedFilterData_1.name });
843
- }
844
- }
845
- }
846
- return [4 /*yield*/, syncFilterUiStateFromSharedSource(nextQueryObject)];
841
+ return [4 /*yield*/, syncFilterUiStateFromSharedSource(queryObject)];
847
842
  case 1:
848
843
  _a.sent();
849
844
  setRefreshKey(function (prev) { return prev + 1; });
@@ -854,7 +849,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
854
849
  });
855
850
  }); };
856
851
  fn();
857
- }, [activeSavedFilter, availableSavedFilters, savedFiltersLoaded, syncFilterUiStateFromSharedSource, (_t = (_s = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _s === void 0 ? void 0 : _s.solidView) === null || _t === void 0 ? void 0 : _t.id]);
852
+ }, [availableSavedFilters, savedFiltersLoaded, syncFilterUiStateFromSharedSource, (_t = (_s = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _s === void 0 ? void 0 : _s.solidView) === null || _t === void 0 ? void 0 : _t.id]);
858
853
  useEffect(function () {
859
854
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
860
855
  return __generator(this, function (_a) {
@@ -1137,6 +1132,17 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1137
1132
  var finalPredefinedFilter = predefinedSearchBaseFilter;
1138
1133
  var finalCustomFilter = customFilter;
1139
1134
  var finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules);
1135
+ finalFilter.predefined_search_chip =
1136
+ finalPredefinedFilter && predefinedSearchChip
1137
+ ? predefinedSearchChip
1138
+ : null;
1139
+ if (finalSavedFilter && Object.keys(finalSavedFilter).length > 0) {
1140
+ var resolved = resolveSavedFilterVariables(finalSavedFilter, user === null || user === void 0 ? void 0 : user.id, currentSavedFilterVariables);
1141
+ if (resolved.missingVariables.length > 0)
1142
+ return;
1143
+ finalFilter.resolved_saved_filter_predicate = resolved.value;
1144
+ finalFilter.saved_filter_variables = currentSavedFilterVariables;
1145
+ }
1140
1146
  if (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id) {
1141
1147
  finalFilter.saved_filter_id = currentSavedFilterData.id;
1142
1148
  }
@@ -1160,12 +1166,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1160
1166
  return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);
1161
1167
  };
1162
1168
  var openSavedCustomFilter = function (savedfilter) { return __awaiter(void 0, void 0, void 0, function () {
1163
- var savedfilterId_1, currentSavedFilterData_2, filterJson, finalSavedFilter, rules, hydratedRules;
1169
+ var savedfilterId_1, currentSavedFilterData_1, filterJson, finalSavedFilter, rules, hydratedRules;
1164
1170
  return __generator(this, function (_a) {
1165
1171
  switch (_a.label) {
1166
1172
  case 0:
1167
1173
  //Open custom filter popup
1168
- // router.push(`?savedQuery=${savedfilter.id}`);
1169
1174
  // setShowGlobalSearchElement(true);
1170
1175
  // // dont refetch the data yet
1171
1176
  // const customFilter = JSON.parse(savedfilter.filterQueryJson);
@@ -1182,12 +1187,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1182
1187
  setPredefinedSearchBaseFilter(null);
1183
1188
  if (!(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id)) return [3 /*break*/, 3];
1184
1189
  savedfilterId_1 = savedfilter.id;
1185
- // router.push(`?savedQuery=${savedfilter.id}`);
1186
1190
  setShowOverlay(false);
1187
- currentSavedFilterData_2 = availableSavedFilters.find(function (savedFilter) { return savedFilter.id === savedfilterId_1; });
1188
- setCurrentSavedFilterData(currentSavedFilterData_2);
1189
- if (!currentSavedFilterData_2) return [3 /*break*/, 2];
1190
- filterJson = JSON.parse(currentSavedFilterData_2 === null || currentSavedFilterData_2 === void 0 ? void 0 : currentSavedFilterData_2.filterQueryJson);
1191
+ currentSavedFilterData_1 = availableSavedFilters.find(function (savedFilter) { return savedFilter.id === savedfilterId_1; });
1192
+ setCurrentSavedFilterData(currentSavedFilterData_1);
1193
+ if (!currentSavedFilterData_1) return [3 /*break*/, 2];
1194
+ filterJson = parseSavedFilterQueryJson(currentSavedFilterData_1 === null || currentSavedFilterData_1 === void 0 ? void 0 : currentSavedFilterData_1.filterQueryJson);
1191
1195
  if (!filterJson) return [3 /*break*/, 2];
1192
1196
  finalSavedFilter = filterJson;
1193
1197
  setCurrentSavedFilterQuery(finalSavedFilter);
@@ -1206,8 +1210,25 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1206
1210
  }
1207
1211
  });
1208
1212
  }); };
1213
+ var persistActiveSavedFilter = function (savedFilter, filterJson, variables) {
1214
+ var _a, _b, _c;
1215
+ var persistedFilter = __assign(__assign({}, (getFilterObjectFromLocalStorage() || {})), { custom_filter_predicate: null, search_predicate: null, predefined_search_predicate: null, predefined_search_chip: null, saved_filter_predicate: filterJson, saved_filter_variables: variables, saved_filter_id: (_a = savedFilter === null || savedFilter === void 0 ? void 0 : savedFilter.id) !== null && _a !== void 0 ? _a : null, saved_filter_system_key: (_b = savedFilter === null || savedFilter === void 0 ? void 0 : savedFilter.systemKey) !== null && _b !== void 0 ? _b : null, saved_filter_name: (_c = savedFilter === null || savedFilter === void 0 ? void 0 : savedFilter.name) !== null && _c !== void 0 ? _c : null });
1216
+ delete persistedFilter.finalFullFilter;
1217
+ setFilterObjectToLocalStorage(persistedFilter);
1218
+ };
1219
+ var clearActiveSavedFilter = function () {
1220
+ setCurrentSavedFilterData(null);
1221
+ setCurrentSavedFilterQuery(null);
1222
+ setCurrentSavedFilterVariables({});
1223
+ setCurrentSavedFilterRules(null);
1224
+ setShowSavedFilterComponent(false);
1225
+ var persistedFilter = __assign(__assign({}, (getFilterObjectFromLocalStorage() || {})), { saved_filter_predicate: null, saved_filter_variables: {}, saved_filter_id: null, saved_filter_system_key: null, saved_filter_name: null });
1226
+ delete persistedFilter.finalFullFilter;
1227
+ setFilterObjectToLocalStorage(persistedFilter);
1228
+ setHasSearched(true);
1229
+ setRefreshKey(function (prev) { return prev + 1; });
1230
+ };
1209
1231
  var deleteSavedFilter = function () { return __awaiter(void 0, void 0, void 0, function () {
1210
- var parsedSearchParams, savedQuery;
1211
1232
  return __generator(this, function (_a) {
1212
1233
  switch (_a.label) {
1213
1234
  case 0:
@@ -1216,10 +1237,8 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1216
1237
  case 1:
1217
1238
  // delte the saved filter with id
1218
1239
  _a.sent();
1219
- parsedSearchParams = searchParams;
1220
- savedQuery = parsedSearchParams === null || parsedSearchParams === void 0 ? void 0 : parsedSearchParams.get("savedQuery");
1221
- if (savedFilterTobeDeleted == savedQuery) {
1222
- router.push(buildSavedFilterUrl(null));
1240
+ if (String(savedFilterTobeDeleted) === String(currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id)) {
1241
+ clearActiveSavedFilter();
1223
1242
  }
1224
1243
  setIsDeleteSQDialogVisible(false);
1225
1244
  setTimeout(function () {
@@ -1230,7 +1249,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1230
1249
  });
1231
1250
  }); };
1232
1251
  var handleSaveFilter = function (formValues) { return __awaiter(void 0, void 0, void 0, function () {
1233
- var filterJson, formData, savedFilterRecord_1, filterJson, formData, result_1, savedFilterRecord_2, error_1;
1252
+ var filterJson, formData, savedFilterRecord_1, filterJson, formData, result, savedFilterRecord_2, error_1;
1234
1253
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1235
1254
  return __generator(this, function (_l) {
1236
1255
  switch (_l.label) {
@@ -1257,16 +1276,13 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1257
1276
  setCustomFilter(null);
1258
1277
  setPredefinedSearchChip(null);
1259
1278
  setPredefinedSearchBaseFilter(null);
1260
- clearFilterObjectFromLocalStorage();
1261
1279
  savedFilterRecord_1 = { id: formValues.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1262
1280
  setSavedFilters(function (prev) { return prev.map(function (f) { return String(f === null || f === void 0 ? void 0 : f.id) === String(formValues.id) ? __assign(__assign({}, f), savedFilterRecord_1) : f; }); });
1263
1281
  setCurrentSavedFilterData(savedFilterRecord_1);
1264
1282
  setCurrentSavedFilterQuery(filterJson);
1283
+ persistActiveSavedFilter(savedFilterRecord_1, filterJson, currentSavedFilterVariables);
1265
1284
  setHasSearched(true);
1266
1285
  setRefreshKey(function (prev) { return prev + 1; });
1267
- setTimeout(function () {
1268
- router.push(buildSavedFilterUrl(formValues.id));
1269
- }, 500);
1270
1286
  return [3 /*break*/, 5];
1271
1287
  case 3:
1272
1288
  filterJson = customFilter;
@@ -1279,23 +1295,21 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1279
1295
  formData.append("userId", user === null || user === void 0 ? void 0 : user.id);
1280
1296
  return [4 /*yield*/, createEntity(formData).unwrap()];
1281
1297
  case 4:
1282
- result_1 = _l.sent();
1298
+ result = _l.sent();
1283
1299
  setSearchChips([]);
1284
1300
  setSearchFilter(null);
1285
1301
  setFilterRules(initialState);
1286
1302
  setCustomFilter(null);
1287
1303
  setPredefinedSearchChip(null);
1288
1304
  setPredefinedSearchBaseFilter(null);
1289
- clearFilterObjectFromLocalStorage();
1290
- savedFilterRecord_2 = { id: result_1.data.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1305
+ savedFilterRecord_2 = { id: result.data.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1291
1306
  setSavedFilters(function (prev) { return __spreadArray([savedFilterRecord_2], prev, true); });
1292
1307
  setCurrentSavedFilterData(savedFilterRecord_2);
1293
1308
  setCurrentSavedFilterQuery(filterJson);
1309
+ setCurrentSavedFilterVariables({});
1310
+ persistActiveSavedFilter(savedFilterRecord_2, filterJson, {});
1294
1311
  setHasSearched(true);
1295
1312
  setRefreshKey(function (prev) { return prev + 1; });
1296
- setTimeout(function () {
1297
- router.push(buildSavedFilterUrl(result_1.data.id));
1298
- }, 500);
1299
1313
  _l.label = 5;
1300
1314
  case 5: return [3 /*break*/, 7];
1301
1315
  case 6:
@@ -1345,49 +1359,57 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1345
1359
  }, children: [_jsx("rect", { width: "20", height: "20", rx: "4", fill: "var(--primary-color, var(--primary))" }), _jsx("path", { d: "M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z", fill: "white" })] }), _jsxs("span", { children: [_jsx("strong", { children: ruleCount }), " rules applied"] })] }), _jsx("button", { type: "button", onClick: clearCustomFilter, style: { cursor: "pointer" }, className: "ml-1", children: _jsx(X, { size: 14 }) })] }) }));
1346
1360
  };
1347
1361
  //saved filter related code start
1348
- var applySavedFilter = function (savedfilter) {
1362
+ var applySavedFilter = function (savedfilter, variables) {
1363
+ if (variables === void 0) { variables = {}; }
1364
+ if (!(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id) && !(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey)) {
1365
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1366
+ return false;
1367
+ }
1368
+ var filterJson;
1369
+ try {
1370
+ filterJson = parseSavedFilterQueryJson(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.filterQueryJson);
1371
+ }
1372
+ catch (_a) {
1373
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1374
+ return false;
1375
+ }
1376
+ var resolved = resolveSavedFilterVariables(filterJson, user === null || user === void 0 ? void 0 : user.id, variables);
1377
+ if (resolved.missingVariables.length > 0) {
1378
+ console.error("Unable to apply saved filter '".concat(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.name, "': missing variables ").concat(resolved.missingVariables.join(", ")));
1379
+ return false;
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
+ }
1349
1396
  setSearchChips([]);
1350
1397
  setSearchFilter(null);
1351
1398
  setFilterRules(initialState);
1352
1399
  setCustomFilter(null);
1353
1400
  setPredefinedSearchChip(null);
1354
1401
  setPredefinedSearchBaseFilter(null);
1355
- clearFilterObjectFromLocalStorage();
1356
- if (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey) {
1357
- setCurrentSavedFilterData(savedfilter);
1358
- try {
1359
- var filterJson = JSON.parse(savedfilter.filterQueryJson);
1360
- if (filterJson) {
1361
- setCurrentSavedFilterQuery(filterJson);
1362
- }
1363
- }
1364
- catch (_a) {
1365
- console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1366
- }
1367
- setShowOverlay(false);
1368
- setHasSearched(true);
1369
- setRefreshKey(function (prev) { return prev + 1; });
1370
- return;
1371
- }
1372
- // push the savedQuery=1 in url
1373
- if (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id) {
1374
- router.push(buildSavedFilterUrl(savedfilter.id));
1375
- setShowOverlay(false);
1376
- }
1377
- else {
1378
- console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1379
- }
1380
- };
1381
- var removeSavedFilter = function () {
1382
- setCurrentSavedFilterData(null);
1383
- setCurrentSavedFilterQuery(null);
1384
- setCurrentSavedFilterRules(null);
1385
- setShowSavedFilterComponent(false);
1386
- if (searchParams.has("savedQuery")) {
1387
- router.replace(buildSavedFilterUrl(null));
1388
- }
1402
+ setCurrentSavedFilterData(savedfilter);
1403
+ setCurrentSavedFilterQuery(filterJson);
1404
+ setCurrentSavedFilterVariables(variables);
1405
+ persistActiveSavedFilter(savedfilter, filterJson, variables);
1406
+ setShowOverlay(false);
1389
1407
  setHasSearched(true);
1390
1408
  setRefreshKey(function (prev) { return prev + 1; });
1409
+ return true;
1410
+ };
1411
+ var removeSavedFilter = function () {
1412
+ clearActiveSavedFilter();
1391
1413
  };
1392
1414
  var SavedFiltersChip = function () {
1393
1415
  return (_jsx("li", { children: _jsxs("div", { className: "custom-filter-chip-type", children: [_jsxs("div", { className: "flex items-center gap-2 text-base", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", onClick: function () {
@@ -1486,16 +1508,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1486
1508
  onRemove: function () { return handleRemoveChipGroup(column); },
1487
1509
  });
1488
1510
  });
1489
- (definedFilters || []).forEach(function (definedFilter) {
1490
- if (!(definedFilter === null || definedFilter === void 0 ? void 0 : definedFilter.applied))
1491
- return;
1492
- items.push({
1493
- id: "handler:".concat(definedFilter.key),
1494
- type: "handler",
1495
- label: definedFilter.label,
1496
- onRemove: function () { return onRemoveDefinedFilter === null || onRemoveDefinedFilter === void 0 ? void 0 : onRemoveDefinedFilter(definedFilter.key); },
1497
- });
1498
- });
1499
1511
  return items;
1500
1512
  }, [
1501
1513
  currentSavedFilterData,
@@ -1505,8 +1517,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1505
1517
  groupingRules,
1506
1518
  groupedSearchChips,
1507
1519
  searchableFields,
1508
- definedFilters,
1509
- onRemoveDefinedFilter,
1510
1520
  ]);
1511
1521
  var MAX_VISIBLE_CHIPS = 3;
1512
1522
  var visibleChipItems = managedChipItems.slice(0, MAX_VISIBLE_CHIPS);
@@ -1543,7 +1553,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1543
1553
  predefined: p,
1544
1554
  }); })
1545
1555
  : [];
1546
- var saved = (availableSavedFilters || []).map(function (s) { return ({
1556
+ var saved = (selectableSavedFilters || []).map(function (s) { return ({
1547
1557
  id: "saved:".concat(s.id),
1548
1558
  kind: "saved",
1549
1559
  saved: s,
@@ -1558,8 +1568,8 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1558
1568
  kind: "grouping",
1559
1569
  }]
1560
1570
  : [];
1561
- return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], fields, true), predefined, true), saved, true), custom, true), grouping, true);
1562
- }, [inputValue, searchableFields, predefinedSearches, availableSavedFilters, viewType]);
1571
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], predefined, true), fields, true), saved, true), custom, true), grouping, true);
1572
+ }, [inputValue, searchableFields, predefinedSearches, selectableSavedFilters, viewType]);
1563
1573
  var handleKeyDown = function (e) {
1564
1574
  var currentValue = (inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim()) || "";
1565
1575
  var applyFieldOption = function (value) {
@@ -1580,6 +1590,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1580
1590
  setRefreshKey(function (prev) { return prev + 1; });
1581
1591
  setShowOverlay(false);
1582
1592
  };
1593
+ if (e.key === "Escape") {
1594
+ e.preventDefault();
1595
+ setShowOverlay(false);
1596
+ return;
1597
+ }
1583
1598
  if ((e.key === "ArrowDown" || e.key === "ArrowUp") && overlayOptions.length > 0) {
1584
1599
  e.preventDefault();
1585
1600
  setShowOverlay(true);
@@ -1589,6 +1604,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1589
1604
  setFocusedIndex(nextIndex);
1590
1605
  return;
1591
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
+ }
1592
1612
  if (e.key === "Enter") {
1593
1613
  if (currentValue || focusedIndex >= 0) {
1594
1614
  e.preventDefault();
@@ -1628,7 +1648,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1628
1648
  setPredefinedSearchChip(null);
1629
1649
  setPredefinedSearchBaseFilter(null);
1630
1650
  }
1631
- else if (activeSavedFilter) {
1651
+ else if (currentSavedFilterData) {
1632
1652
  removeSavedFilter();
1633
1653
  }
1634
1654
  setHasSearched(true);
@@ -1693,7 +1713,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1693
1713
  };
1694
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 }) })] }) })); };
1695
1715
  // predefinedfilter related code end
1696
- 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) {
1697
1717
  setInputValue(e.target.value);
1698
1718
  setShowChipManager(false);
1699
1719
  setShowOverlay(true);
@@ -1712,14 +1732,15 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1712
1732
  setShowChipManager(false);
1713
1733
  setShowOverlay(true);
1714
1734
  focusSearchInput();
1715
- }, 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 || [])
1716
- .filter(function (f) { return !(f === null || f === void 0 ? void 0 : f.applied); })
1717
- .map(function (definedFilter) { return (_jsxs("button", { type: "button", className: "solid-defined-filter-badge", onMouseDown: function (e) {
1718
- e.preventDefault();
1719
- onApplyDefinedFilter === null || onApplyDefinedFilter === void 0 ? void 0 : onApplyDefinedFilter(definedFilter.key);
1720
- setShowOverlay(false);
1721
- }, 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) {
1722
- 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) {
1723
1744
  e.preventDefault();
1724
1745
  var currentValue = inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim();
1725
1746
  if (currentValue) {
@@ -1737,34 +1758,31 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1737
1758
  setRefreshKey(function (prev) { return prev + 1; });
1738
1759
  setShowOverlay(false);
1739
1760
  }
1740
- }, 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));
1741
- })) : (_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) {
1742
- e.preventDefault();
1743
- handlePredefinedSearch(predefinedSearch);
1744
- }, 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)); })] })] }))] })) :
1745
- _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" })] }), availableSavedFilters.length > 0 &&
1746
- _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: availableSavedFilters.map(function (savedfilter, index) {
1747
- var _a;
1748
- return (_jsx(SavedFilterList, { savedfilter: savedfilter, activeSavedFilter: activeSavedFilter || (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 () {
1749
- var optIndex = overlayOptions.findIndex(function (o) { return o.id === "saved:".concat(savedfilter.id); });
1750
- if (optIndex !== -1)
1751
- setFocusedIndex(optIndex);
1752
- } }, savedfilter.id));
1753
- }) })] }) })] }), _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) {
1754
1772
  event.preventDefault();
1755
1773
  openCustomFilterDialog();
1756
1774
  }, onMouseEnter: function () {
1757
1775
  var optIndex = overlayOptions.findIndex(function (o) { return o.id === "footer:custom"; });
1758
1776
  if (optIndex !== -1)
1759
1777
  setFocusedIndex(optIndex);
1760
- }, 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) {
1761
1779
  event.preventDefault();
1762
1780
  openGroupingDialog();
1763
1781
  }, onMouseEnter: function () {
1764
1782
  var optIndex = overlayOptions.findIndex(function (o) { return o.id === "footer:grouping"; });
1765
1783
  if (optIndex !== -1)
1766
1784
  setFocusedIndex(optIndex);
1767
- }, 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 &&
1768
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 &&
1769
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 &&
1770
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"] })] })] })] }) }));