@solidxai/core-ui 0.1.14-beta.4 → 0.1.14-beta.9

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 (176) 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/SettingsComponent.module.css +4 -1
  5. package/dist/components/common/SolidFieldTooltip.d.ts.map +1 -1
  6. package/dist/components/common/SolidFieldTooltip.js +1 -1
  7. package/dist/components/common/SolidFieldTooltip.js.map +1 -1
  8. package/dist/components/common/SolidFieldTooltip.tsx +1 -0
  9. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  10. package/dist/components/common/SolidFormStepper.js +7 -6
  11. package/dist/components/common/SolidFormStepper.js.map +1 -1
  12. package/dist/components/common/SolidFormStepper.tsx +7 -1
  13. package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
  14. package/dist/components/common/SolidThemeProvider.js +127 -11
  15. package/dist/components/common/SolidThemeProvider.js.map +1 -1
  16. package/dist/components/common/SolidThemeProvider.tsx +104 -22
  17. package/dist/components/core/card/CardGrid.d.ts +1 -1
  18. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  19. package/dist/components/core/card/CardGrid.js +2 -2
  20. package/dist/components/core/card/CardGrid.js.map +1 -1
  21. package/dist/components/core/card/CardGrid.tsx +4 -0
  22. package/dist/components/core/card/CardItem.d.ts +2 -0
  23. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  24. package/dist/components/core/card/CardItem.js +4 -3
  25. package/dist/components/core/card/CardItem.js.map +1 -1
  26. package/dist/components/core/card/CardItem.tsx +15 -0
  27. package/dist/components/core/card/SolidCardView.d.ts +28 -1
  28. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  29. package/dist/components/core/card/SolidCardView.js +99 -44
  30. package/dist/components/core/card/SolidCardView.js.map +1 -1
  31. package/dist/components/core/card/SolidCardView.tsx +124 -7
  32. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  33. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  34. package/dist/components/core/card/SolidCardViewConfigure.js +15 -6
  35. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  36. package/dist/components/core/card/SolidCardViewConfigure.tsx +34 -0
  37. package/dist/components/core/card/cardViewRegistry.d.ts +7 -0
  38. package/dist/components/core/card/cardViewRegistry.d.ts.map +1 -0
  39. package/dist/components/core/card/cardViewRegistry.js +17 -0
  40. package/dist/components/core/card/cardViewRegistry.js.map +1 -0
  41. package/dist/components/core/card/cardViewRegistry.ts +23 -0
  42. package/dist/components/core/common/PDFViewer.d.ts +9 -5
  43. package/dist/components/core/common/PDFViewer.d.ts.map +1 -1
  44. package/dist/components/core/common/PDFViewer.js +10 -102
  45. package/dist/components/core/common/PDFViewer.js.map +1 -1
  46. package/dist/components/core/common/PDFViewer.tsx +29 -88
  47. package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts +12 -0
  48. package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts.map +1 -0
  49. package/dist/components/core/common/SolidCollectionRowActionMenuItems.js +50 -0
  50. package/dist/components/core/common/SolidCollectionRowActionMenuItems.js.map +1 -0
  51. package/dist/components/core/common/SolidCollectionRowActionMenuItems.tsx +91 -0
  52. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  53. package/dist/components/core/common/SolidCreateButton.js +2 -2
  54. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  55. package/dist/components/core/common/SolidCreateButton.tsx +22 -2
  56. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  57. package/dist/components/core/common/SolidGlobalSearchElement.js +137 -134
  58. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  59. package/dist/components/core/common/SolidGlobalSearchElement.tsx +127 -119
  60. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  61. package/dist/components/core/form/SolidFormActionHeader.js +21 -21
  62. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  63. package/dist/components/core/form/SolidFormActionHeader.tsx +62 -53
  64. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  65. package/dist/components/core/form/SolidFormView.js +5 -2
  66. package/dist/components/core/form/SolidFormView.js.map +1 -1
  67. package/dist/components/core/form/SolidFormView.tsx +7 -2
  68. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  69. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  70. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  71. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  72. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  73. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  74. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  75. package/dist/components/core/kanban/KanbanCard.js +4 -2
  76. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  77. package/dist/components/core/kanban/KanbanCard.tsx +14 -1
  78. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  79. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  80. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  81. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  82. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  83. package/dist/components/core/kanban/SolidKanbanView.d.ts +25 -1
  84. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  85. package/dist/components/core/kanban/SolidKanbanView.js +89 -50
  86. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  87. package/dist/components/core/kanban/SolidKanbanView.tsx +82 -9
  88. package/dist/components/core/kanban/kanbanViewRegistry.d.ts +7 -0
  89. package/dist/components/core/kanban/kanbanViewRegistry.d.ts.map +1 -0
  90. package/dist/components/core/kanban/kanbanViewRegistry.js +17 -0
  91. package/dist/components/core/kanban/kanbanViewRegistry.js.map +1 -0
  92. package/dist/components/core/kanban/kanbanViewRegistry.ts +23 -0
  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 +11 -6
  97. package/dist/components/core/list/SolidListView.js.map +1 -1
  98. package/dist/components/core/list/SolidListView.tsx +88 -45
  99. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  100. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  101. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  102. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  103. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
  104. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  105. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
  106. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  107. package/dist/components/core/model/CreateModel.js +2 -1
  108. package/dist/components/core/model/CreateModel.js.map +1 -1
  109. package/dist/components/core/model/CreateModel.tsx +2 -0
  110. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  111. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  112. package/dist/components/core/model/FieldMetaData.js +8 -8
  113. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  114. package/dist/components/core/model/FieldMetaData.tsx +2 -2
  115. package/dist/components/core/model/FieldMetaDataForm.css +119 -0
  116. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  117. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  118. package/dist/components/core/model/FieldMetaDataForm.tsx +1 -1
  119. package/dist/components/core/module/ModuleMetadataExplorer.css +64 -0
  120. package/dist/components/core/module/ModulePackageDialog.css +117 -12
  121. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  122. package/dist/components/core/tree/SolidTreeView.js +6 -3
  123. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  124. package/dist/components/core/tree/SolidTreeView.tsx +35 -13
  125. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  126. package/dist/components/layout/AdminHeaderActions.js +15 -10
  127. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  128. package/dist/components/layout/AdminHeaderActions.tsx +15 -8
  129. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  130. package/dist/components/layout/AdminTopHeader.js +1 -18
  131. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  132. package/dist/components/layout/AdminTopHeader.tsx +3 -21
  133. package/dist/helpers/resolveActiveUserId.d.ts +13 -0
  134. package/dist/helpers/resolveActiveUserId.d.ts.map +1 -0
  135. package/dist/helpers/resolveActiveUserId.js +86 -0
  136. package/dist/helpers/resolveActiveUserId.js.map +1 -0
  137. package/dist/helpers/resolveActiveUserId.ts +90 -0
  138. package/dist/index.d.ts +5 -0
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +3 -0
  141. package/dist/index.js.map +1 -1
  142. package/dist/index.ts +5 -0
  143. package/dist/resources/globals.css +15 -0
  144. package/dist/resources/solid-custom.css +18 -1
  145. package/dist/resources/solid-tailwind-generated.css +1 -1
  146. package/dist/resources/themes/solid-dark-enterprise/theme-variables.css +28 -0
  147. package/dist/resources/themes/solid-dark-enterprise/theme.css +926 -0
  148. package/dist/resources/themes/solid-dark-modern/theme-variables.css +27 -0
  149. package/dist/resources/themes/solid-dark-modern/theme.css +600 -0
  150. package/dist/resources/themes/solid-light-enterprise/theme-variables.css +28 -0
  151. package/dist/resources/themes/solid-light-enterprise/theme.css +930 -0
  152. package/dist/resources/themes/solid-light-modern/theme-variables.css +31 -0
  153. package/dist/resources/themes/solid-light-modern/theme.css +1041 -0
  154. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  155. package/dist/routes/pages/admin/core/CardPage.js +15 -2
  156. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  157. package/dist/routes/pages/admin/core/CardPage.tsx +17 -2
  158. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  159. package/dist/routes/pages/admin/core/DashboardPage.js +31 -3
  160. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  161. package/dist/routes/pages/admin/core/DashboardPage.tsx +39 -11
  162. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  163. package/dist/routes/pages/admin/core/KanbanPage.js +15 -2
  164. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  165. package/dist/routes/pages/admin/core/KanbanPage.tsx +17 -2
  166. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  167. package/dist/routes/pages/admin/core/ListPage.js +5 -13
  168. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  169. package/dist/routes/pages/admin/core/ListPage.tsx +5 -15
  170. package/dist/theme/theme-registry.d.ts +6 -0
  171. package/dist/theme/theme-registry.d.ts.map +1 -0
  172. package/dist/theme/theme-registry.js +65 -0
  173. package/dist/theme/theme-registry.js.map +1 -0
  174. package/dist/theme/theme-registry.ts +78 -0
  175. package/dist/types/solid-core.d.ts +8 -0
  176. package/package.json +1 -1
@@ -58,16 +58,14 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
58
58
  import React, { forwardRef, useCallback, useEffect, 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
70
  import { Bookmark, Check, Filter, ListFilter, Pencil, Plus, Search, SearchX, Trash2, X } from "lucide-react";
73
71
  import { SolidButton } from "../../shad-cn-ui/SolidButton";
@@ -412,8 +410,10 @@ 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;
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;
414
+ var isActive = (savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey)
415
+ ? activeSavedFilterReference === savedfilter.systemKey
416
+ : String(activeSavedFilterReference) === String(savedfilter.id);
417
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) {
418
418
  e.preventDefault();
419
419
  applySavedFilter(savedfilter);
@@ -532,13 +532,9 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
532
532
  { id: 1, fieldName: null, dateGrouping: null }
533
533
  ];
534
534
  var _0 = useState(defaultState), initialState = _0[0], setInitialState = _0[1];
535
- var pathname = usePathname();
536
535
  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
536
  ((_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
537
  "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
538
  var chipsRef = useRef(null);
543
539
  // filterRules is used to maintian the ui of custom filter
544
540
  // customFilter is used to maintian the transformed filter object of custom filter
@@ -569,15 +565,16 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
569
565
  // currentSavedFilterData is used to save the whole object of saved filter
570
566
  var _17 = useState(), currentSavedFilterData = _17[0], setCurrentSavedFilterData = _17[1];
571
567
  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];
568
+ var _19 = useState({}), currentSavedFilterVariables = _19[0], setCurrentSavedFilterVariables = _19[1];
569
+ var _20 = useState(), currentSavedFilterRules = _20[0], setCurrentSavedFilterRules = _20[1];
570
+ var _21 = useState(false), showSavedFilterComponent = _21[0], setShowSavedFilterComponent = _21[1];
571
+ var _22 = useState(), savedFilterTobeDeleted = _22[0], setSavedFilterTobeDeleted = _22[1];
572
+ var _23 = useState(false), isDeleteSQDialogVisible = _23[0], setIsDeleteSQDialogVisible = _23[1];
573
+ var _24 = useState(), savedFilterQueryString = _24[0], setSavedFilterQueryString = _24[1];
574
+ var _25 = useState(false), showOverlay = _25[0], setShowOverlay = _25[1];
578
575
  var overlayRef = useRef(null);
579
576
  var searchInputRef = useRef(null);
580
- var _25 = useState(false), showChipManager = _25[0], setShowChipManager = _25[1];
577
+ var _26 = useState(false), showChipManager = _26[0], setShowChipManager = _26[1];
581
578
  var chipManagerRef = useRef(null);
582
579
  var chipManagerTriggerRef = useRef(null);
583
580
  var focusSearchInput = function () {
@@ -597,12 +594,12 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
597
594
  }
598
595
  }
599
596
  }, [focusedIndex, showOverlay]);
600
- var _26 = useSession(), session = _26.data, status = _26.status;
597
+ var _27 = useSession(), session = _27.data, status = _27.status;
601
598
  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];
599
+ var _28 = useState(0), refreshKey = _28[0], setRefreshKey = _28[1];
600
+ var _29 = useState(null), predefinedSearchBaseFilter = _29[0], setPredefinedSearchBaseFilter = _29[1];
601
+ var _30 = useState([]), savedFilters = _30[0], setSavedFilters = _30[1];
602
+ var _31 = useState(false), savedFiltersLoaded = _31[0], setSavedFiltersLoaded = _31[1];
606
603
  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
604
  var workflowPublishedVersionsSavedFilter = useMemo(function () {
608
605
  if (!isDraftPublishWorkflowEnabled)
@@ -619,26 +616,24 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
619
616
  }),
620
617
  };
621
618
  }, [isDraftPublishWorkflowEnabled]);
622
- var availableSavedFilters = useMemo(function () { return workflowPublishedVersionsSavedFilter
619
+ var allAvailableSavedFilters = useMemo(function () { return workflowPublishedVersionsSavedFilter
623
620
  ? __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");
621
+ var availableSavedFilters = allAvailableSavedFilters;
622
+ var selectableSavedFilters = useMemo(function () { return allAvailableSavedFilters.filter(function (filter) {
623
+ try {
624
+ return getUnboundSavedFilterVariableNames(parseSavedFilterQueryJson(filter.filterQueryJson || "{}")).length === 0;
635
625
  }
636
- else {
637
- params.set("savedQuery", String(savedQueryId));
626
+ catch (_a) {
627
+ return false;
638
628
  }
639
- var queryString = params.toString();
640
- return queryString ? "".concat(pathname, "?").concat(queryString) : pathname;
641
- };
629
+ }); }, [allAvailableSavedFilters]);
630
+ var entityApi = createSolidEntityApi("savedFilters");
631
+ var useCreateSolidEntityMutation = entityApi.useCreateSolidEntityMutation, useDeleteSolidEntityMutation = entityApi.useDeleteSolidEntityMutation, useGetSolidEntityByIdQuery = entityApi.useGetSolidEntityByIdQuery, useUpdateSolidEntityMutation = entityApi.useUpdateSolidEntityMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery;
632
+ var _32 = useCreateSolidEntityMutation(), createEntity = _32[0], _33 = _32[1], isEntityCreateSuccess = _33.isSuccess, isEntityCreateError = _33.isError, entityCreateError = _33.error;
633
+ var _34 = useUpdateSolidEntityMutation(), updateEntity = _34[0], _35 = _34[1], isEntityUpdateSuceess = _35.isSuccess, isEntityUpdateError = _35.isError, entityUpdateError = _35.error;
634
+ var _36 = useDeleteSolidEntityMutation(), deleteEntity = _36[0], _37 = _36[1], isEntityDeleteSuceess = _37.isSuccess, isEntityDeleteError = _37.isError, entityDeleteError = _37.error;
635
+ var _38 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _38[0], _39 = _38[1], solidEntityListViewData = _39.data, isSavedFilterLoading = _39.isLoading, error = _39.error;
636
+ var _40 = useState(0), savedFilterFetchDataRefreshKey = _40[0], setSavedFilterFetchDataRefreshKey = _40[1];
642
637
  useEffect(function () {
643
638
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
644
639
  var filters, queryData, queryString, savedFilter;
@@ -692,7 +687,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
692
687
  }); };
693
688
  fn();
694
689
  }, [
695
- activeSavedFilter,
696
690
  savedFilterFetchDataRefreshKey,
697
691
  (_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
692
  (_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 +694,10 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
700
694
  ]);
701
695
  // Updates search, custom filter, grouping, aggregation, and UI state from a single shared filter source.
702
696
  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) {
697
+ var nextSearchFilter, nextSearchChips, nextCustomFilter, nextPredefinedBaseFilter, nextPredefinedSearchChip, nextSavedFilter, nextSavedFilterVariables, nextSavedFilterData, rules, hydratedRules_1, hasGroupingRules, nextGroupingRules, layoutGroupBy, nextAggregationRules;
698
+ var _a, _b, _c, _d, _e, _f;
699
+ return __generator(this, function (_g) {
700
+ switch (_g.label) {
707
701
  case 0:
708
702
  nextSearchFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.search_predicate) || null;
709
703
  nextSearchChips = nextSearchFilter ? extractChips(nextSearchFilter) : [];
@@ -711,7 +705,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
711
705
  ? queryObject.custom_filter_predicate
712
706
  : null;
713
707
  nextPredefinedBaseFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.predefined_search_predicate) || null;
708
+ nextPredefinedSearchChip = nextPredefinedBaseFilter && (queryObject === null || queryObject === void 0 ? void 0 : queryObject.predefined_search_chip)
709
+ ? queryObject.predefined_search_chip
710
+ : null;
714
711
  nextSavedFilter = (queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_predicate) || null;
712
+ nextSavedFilterVariables = (_a = queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_variables) !== null && _a !== void 0 ? _a : {};
715
713
  nextSavedFilterData = nextSavedFilter
716
714
  ? availableSavedFilters.find(function (savedFilter) {
717
715
  if (queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_system_key) {
@@ -732,26 +730,28 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
732
730
  setSearchChips(function (prev) { return areFilterStateValuesEqual(prev, nextSearchChips) ? prev : nextSearchChips; });
733
731
  setCustomFilter(function (prev) { return areFilterStateValuesEqual(prev, nextCustomFilter) ? prev : nextCustomFilter; });
734
732
  setPredefinedSearchBaseFilter(function (prev) { return areFilterStateValuesEqual(prev, nextPredefinedBaseFilter) ? prev : nextPredefinedBaseFilter; });
733
+ setPredefinedSearchChip(function (prev) { return areFilterStateValuesEqual(prev, nextPredefinedSearchChip) ? prev : nextPredefinedSearchChip; });
735
734
  setCurrentSavedFilterData(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilterData) ? prev : nextSavedFilterData; });
736
735
  setCurrentSavedFilterQuery(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilter) ? prev : nextSavedFilter; });
736
+ setCurrentSavedFilterVariables(function (prev) { return areFilterStateValuesEqual(prev, nextSavedFilterVariables) ? prev : nextSavedFilterVariables; });
737
737
  if (!(nextCustomFilter && (viewData === null || viewData === void 0 ? void 0 : viewData.data))) return [3 /*break*/, 2];
738
738
  rules = transformFiltersToRules(nextCustomFilter);
739
739
  return [4 /*yield*/, hydrateRelationRules([rules], viewData)];
740
740
  case 1:
741
- hydratedRules_1 = _f.sent();
741
+ hydratedRules_1 = _g.sent();
742
742
  setFilterRules(function (prev) { return areFilterStateValuesEqual(prev, hydratedRules_1) ? prev : hydratedRules_1; });
743
743
  return [3 /*break*/, 3];
744
744
  case 2:
745
745
  setFilterRules(function (prev) { return areFilterStateValuesEqual(prev, initialState) ? prev : initialState; });
746
- _f.label = 3;
746
+ _g.label = 3;
747
747
  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; });
748
+ 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
749
  nextGroupingRules = [{ id: 1, fieldName: null, dateGrouping: null }];
750
750
  if (hasGroupingRules) {
751
751
  nextGroupingRules = queryObject.grouping_rules;
752
752
  }
753
753
  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;
754
+ 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
755
  if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {
756
756
  nextGroupingRules = layoutGroupBy.map(function (groupStr, index) {
757
757
  var _a = groupStr.split(":"), fieldName = _a[0], dateGrouping = _a[1];
@@ -782,6 +782,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
782
782
  setPredefinedSearchBaseFilter(null);
783
783
  setCurrentSavedFilterData(null);
784
784
  setCurrentSavedFilterQuery(null);
785
+ setCurrentSavedFilterVariables({});
785
786
  setCurrentSavedFilterRules(null);
786
787
  if (!preserveGrouping) {
787
788
  setGroupingRules(defaultGroupingRules);
@@ -791,12 +792,6 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
791
792
  setShowChipManager(false);
792
793
  setInputValue("");
793
794
  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
795
  setHasSearched(true);
801
796
  setRefreshKey(function (prev) { return prev + 1; });
802
797
  };
@@ -804,6 +799,15 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
804
799
  clearFilter: function () {
805
800
  resetAppliedFilters();
806
801
  },
802
+ getSavedFilters: function () { return availableSavedFilters.map(function (filter) { return (__assign({}, filter)); }); },
803
+ applySavedFilterByName: function (name, variables) {
804
+ if (variables === void 0) { variables = {}; }
805
+ var savedFilter = allAvailableSavedFilters.find(function (filter) { return (filter === null || filter === void 0 ? void 0 : filter.name) === name; });
806
+ if (!savedFilter) {
807
+ return false;
808
+ }
809
+ return applySavedFilter(savedFilter, variables);
810
+ },
807
811
  clearAppliedFilters: function (options) {
808
812
  resetAppliedFilters(options);
809
813
  },
@@ -824,26 +828,13 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
824
828
  }, [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
829
  useEffect(function () {
826
830
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
827
- var queryObject, nextQueryObject, currentSavedFilterId_1, currentSavedFilterData_1, filterJson;
831
+ var queryObject;
828
832
  return __generator(this, function (_a) {
829
833
  switch (_a.label) {
830
834
  case 0:
831
835
  if (!savedFiltersLoaded) return [3 /*break*/, 2];
832
- if (activeSavedFilter && availableSavedFilters.length === 0)
833
- return [2 /*return*/];
834
836
  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)];
837
+ return [4 /*yield*/, syncFilterUiStateFromSharedSource(queryObject)];
847
838
  case 1:
848
839
  _a.sent();
849
840
  setRefreshKey(function (prev) { return prev + 1; });
@@ -854,7 +845,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
854
845
  });
855
846
  }); };
856
847
  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]);
848
+ }, [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
849
  useEffect(function () {
859
850
  var fn = function () { return __awaiter(void 0, void 0, void 0, function () {
860
851
  return __generator(this, function (_a) {
@@ -1137,6 +1128,17 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1137
1128
  var finalPredefinedFilter = predefinedSearchBaseFilter;
1138
1129
  var finalCustomFilter = customFilter;
1139
1130
  var finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules);
1131
+ finalFilter.predefined_search_chip =
1132
+ finalPredefinedFilter && predefinedSearchChip
1133
+ ? predefinedSearchChip
1134
+ : null;
1135
+ if (finalSavedFilter && Object.keys(finalSavedFilter).length > 0) {
1136
+ var resolved = resolveSavedFilterVariables(finalSavedFilter, user === null || user === void 0 ? void 0 : user.id, currentSavedFilterVariables);
1137
+ if (resolved.missingVariables.length > 0)
1138
+ return;
1139
+ finalFilter.resolved_saved_filter_predicate = resolved.value;
1140
+ finalFilter.saved_filter_variables = currentSavedFilterVariables;
1141
+ }
1140
1142
  if (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id) {
1141
1143
  finalFilter.saved_filter_id = currentSavedFilterData.id;
1142
1144
  }
@@ -1160,12 +1162,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1160
1162
  return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);
1161
1163
  };
1162
1164
  var openSavedCustomFilter = function (savedfilter) { return __awaiter(void 0, void 0, void 0, function () {
1163
- var savedfilterId_1, currentSavedFilterData_2, filterJson, finalSavedFilter, rules, hydratedRules;
1165
+ var savedfilterId_1, currentSavedFilterData_1, filterJson, finalSavedFilter, rules, hydratedRules;
1164
1166
  return __generator(this, function (_a) {
1165
1167
  switch (_a.label) {
1166
1168
  case 0:
1167
1169
  //Open custom filter popup
1168
- // router.push(`?savedQuery=${savedfilter.id}`);
1169
1170
  // setShowGlobalSearchElement(true);
1170
1171
  // // dont refetch the data yet
1171
1172
  // const customFilter = JSON.parse(savedfilter.filterQueryJson);
@@ -1182,12 +1183,11 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1182
1183
  setPredefinedSearchBaseFilter(null);
1183
1184
  if (!(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id)) return [3 /*break*/, 3];
1184
1185
  savedfilterId_1 = savedfilter.id;
1185
- // router.push(`?savedQuery=${savedfilter.id}`);
1186
1186
  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);
1187
+ currentSavedFilterData_1 = availableSavedFilters.find(function (savedFilter) { return savedFilter.id === savedfilterId_1; });
1188
+ setCurrentSavedFilterData(currentSavedFilterData_1);
1189
+ if (!currentSavedFilterData_1) return [3 /*break*/, 2];
1190
+ filterJson = parseSavedFilterQueryJson(currentSavedFilterData_1 === null || currentSavedFilterData_1 === void 0 ? void 0 : currentSavedFilterData_1.filterQueryJson);
1191
1191
  if (!filterJson) return [3 /*break*/, 2];
1192
1192
  finalSavedFilter = filterJson;
1193
1193
  setCurrentSavedFilterQuery(finalSavedFilter);
@@ -1206,8 +1206,25 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1206
1206
  }
1207
1207
  });
1208
1208
  }); };
1209
+ var persistActiveSavedFilter = function (savedFilter, filterJson, variables) {
1210
+ var _a, _b, _c;
1211
+ 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 });
1212
+ delete persistedFilter.finalFullFilter;
1213
+ setFilterObjectToLocalStorage(persistedFilter);
1214
+ };
1215
+ var clearActiveSavedFilter = function () {
1216
+ setCurrentSavedFilterData(null);
1217
+ setCurrentSavedFilterQuery(null);
1218
+ setCurrentSavedFilterVariables({});
1219
+ setCurrentSavedFilterRules(null);
1220
+ setShowSavedFilterComponent(false);
1221
+ 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 });
1222
+ delete persistedFilter.finalFullFilter;
1223
+ setFilterObjectToLocalStorage(persistedFilter);
1224
+ setHasSearched(true);
1225
+ setRefreshKey(function (prev) { return prev + 1; });
1226
+ };
1209
1227
  var deleteSavedFilter = function () { return __awaiter(void 0, void 0, void 0, function () {
1210
- var parsedSearchParams, savedQuery;
1211
1228
  return __generator(this, function (_a) {
1212
1229
  switch (_a.label) {
1213
1230
  case 0:
@@ -1216,10 +1233,8 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1216
1233
  case 1:
1217
1234
  // delte the saved filter with id
1218
1235
  _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));
1236
+ if (String(savedFilterTobeDeleted) === String(currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id)) {
1237
+ clearActiveSavedFilter();
1223
1238
  }
1224
1239
  setIsDeleteSQDialogVisible(false);
1225
1240
  setTimeout(function () {
@@ -1230,7 +1245,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1230
1245
  });
1231
1246
  }); };
1232
1247
  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;
1248
+ var filterJson, formData, savedFilterRecord_1, filterJson, formData, result, savedFilterRecord_2, error_1;
1234
1249
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1235
1250
  return __generator(this, function (_l) {
1236
1251
  switch (_l.label) {
@@ -1257,16 +1272,13 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1257
1272
  setCustomFilter(null);
1258
1273
  setPredefinedSearchChip(null);
1259
1274
  setPredefinedSearchBaseFilter(null);
1260
- clearFilterObjectFromLocalStorage();
1261
1275
  savedFilterRecord_1 = { id: formValues.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1262
1276
  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
1277
  setCurrentSavedFilterData(savedFilterRecord_1);
1264
1278
  setCurrentSavedFilterQuery(filterJson);
1279
+ persistActiveSavedFilter(savedFilterRecord_1, filterJson, currentSavedFilterVariables);
1265
1280
  setHasSearched(true);
1266
1281
  setRefreshKey(function (prev) { return prev + 1; });
1267
- setTimeout(function () {
1268
- router.push(buildSavedFilterUrl(formValues.id));
1269
- }, 500);
1270
1282
  return [3 /*break*/, 5];
1271
1283
  case 3:
1272
1284
  filterJson = customFilter;
@@ -1279,23 +1291,21 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1279
1291
  formData.append("userId", user === null || user === void 0 ? void 0 : user.id);
1280
1292
  return [4 /*yield*/, createEntity(formData).unwrap()];
1281
1293
  case 4:
1282
- result_1 = _l.sent();
1294
+ result = _l.sent();
1283
1295
  setSearchChips([]);
1284
1296
  setSearchFilter(null);
1285
1297
  setFilterRules(initialState);
1286
1298
  setCustomFilter(null);
1287
1299
  setPredefinedSearchChip(null);
1288
1300
  setPredefinedSearchBaseFilter(null);
1289
- clearFilterObjectFromLocalStorage();
1290
- savedFilterRecord_2 = { id: result_1.data.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1301
+ savedFilterRecord_2 = { id: result.data.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1291
1302
  setSavedFilters(function (prev) { return __spreadArray([savedFilterRecord_2], prev, true); });
1292
1303
  setCurrentSavedFilterData(savedFilterRecord_2);
1293
1304
  setCurrentSavedFilterQuery(filterJson);
1305
+ setCurrentSavedFilterVariables({});
1306
+ persistActiveSavedFilter(savedFilterRecord_2, filterJson, {});
1294
1307
  setHasSearched(true);
1295
1308
  setRefreshKey(function (prev) { return prev + 1; });
1296
- setTimeout(function () {
1297
- router.push(buildSavedFilterUrl(result_1.data.id));
1298
- }, 500);
1299
1309
  _l.label = 5;
1300
1310
  case 5: return [3 /*break*/, 7];
1301
1311
  case 6:
@@ -1345,49 +1355,42 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1345
1355
  }, 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
1356
  };
1347
1357
  //saved filter related code start
1348
- var applySavedFilter = function (savedfilter) {
1358
+ var applySavedFilter = function (savedfilter, variables) {
1359
+ if (variables === void 0) { variables = {}; }
1360
+ if (!(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.id) && !(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.systemKey)) {
1361
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1362
+ return false;
1363
+ }
1364
+ var filterJson;
1365
+ try {
1366
+ filterJson = parseSavedFilterQueryJson(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.filterQueryJson);
1367
+ }
1368
+ catch (_a) {
1369
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1370
+ return false;
1371
+ }
1372
+ var resolved = resolveSavedFilterVariables(filterJson, user === null || user === void 0 ? void 0 : user.id, variables);
1373
+ if (resolved.missingVariables.length > 0) {
1374
+ console.error("Unable to apply saved filter '".concat(savedfilter === null || savedfilter === void 0 ? void 0 : savedfilter.name, "': missing variables ").concat(resolved.missingVariables.join(", ")));
1375
+ return false;
1376
+ }
1349
1377
  setSearchChips([]);
1350
1378
  setSearchFilter(null);
1351
1379
  setFilterRules(initialState);
1352
1380
  setCustomFilter(null);
1353
1381
  setPredefinedSearchChip(null);
1354
1382
  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
- }
1383
+ setCurrentSavedFilterData(savedfilter);
1384
+ setCurrentSavedFilterQuery(filterJson);
1385
+ setCurrentSavedFilterVariables(variables);
1386
+ persistActiveSavedFilter(savedfilter, filterJson, variables);
1387
+ setShowOverlay(false);
1389
1388
  setHasSearched(true);
1390
1389
  setRefreshKey(function (prev) { return prev + 1; });
1390
+ return true;
1391
+ };
1392
+ var removeSavedFilter = function () {
1393
+ clearActiveSavedFilter();
1391
1394
  };
1392
1395
  var SavedFiltersChip = function () {
1393
1396
  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 () {
@@ -1543,7 +1546,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1543
1546
  predefined: p,
1544
1547
  }); })
1545
1548
  : [];
1546
- var saved = (availableSavedFilters || []).map(function (s) { return ({
1549
+ var saved = (selectableSavedFilters || []).map(function (s) { return ({
1547
1550
  id: "saved:".concat(s.id),
1548
1551
  kind: "saved",
1549
1552
  saved: s,
@@ -1559,7 +1562,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1559
1562
  }]
1560
1563
  : [];
1561
1564
  return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], fields, true), predefined, true), saved, true), custom, true), grouping, true);
1562
- }, [inputValue, searchableFields, predefinedSearches, availableSavedFilters, viewType]);
1565
+ }, [inputValue, searchableFields, predefinedSearches, selectableSavedFilters, viewType]);
1563
1566
  var handleKeyDown = function (e) {
1564
1567
  var currentValue = (inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim()) || "";
1565
1568
  var applyFieldOption = function (value) {
@@ -1628,7 +1631,7 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1628
1631
  setPredefinedSearchChip(null);
1629
1632
  setPredefinedSearchBaseFilter(null);
1630
1633
  }
1631
- else if (activeSavedFilter) {
1634
+ else if (currentSavedFilterData) {
1632
1635
  removeSavedFilter();
1633
1636
  }
1634
1637
  setHasSearched(true);
@@ -1742,10 +1745,10 @@ export var SolidGlobalSearchElement = forwardRef(function (_a, ref) {
1742
1745
  e.preventDefault();
1743
1746
  handlePredefinedSearch(predefinedSearch);
1744
1747
  }, onMouseEnter: function () { return setFocusedIndex(searchableFields.length + index); }, children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsxs("strong", { children: [predefinedSearch.name, ":"] }), _jsxs("span", { className: "font-bold text-color pr-1", children: [inputValue, " "] })] }), _jsx("div", { className: "text-xs", children: predefinedSearch.description })] }, index)); })] })] }))] })) :
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) {
1748
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "p-3 solid-search-overlay-empty", children: _jsxs("div", { className: "solid-search-overlay-panel-callout", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Search, { size: 13 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("div", { className: "solid-search-overlay-empty-title", children: "Start typing to search" }), _jsxs("div", { className: "solid-search-overlay-empty-subtitle", children: ["Start typing in search input to see all fields on which you can search ", searchableEntityLabel, " by."] })] })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" })] }), selectableSavedFilters.length > 0 &&
1749
+ _jsx(_Fragment, { children: _jsxs("div", { className: "p-3 solid-search-overlay-section", children: [_jsxs("div", { className: "solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact", children: [_jsx("div", { className: "solid-search-overlay-panel-callout-icon", children: _jsx(Bookmark, { size: 13 }) }), _jsxs("div", { className: "solid-search-overlay-panel-callout-copy", children: [_jsx("p", { className: "solid-search-overlay-heading solid-search-overlay-section-title", children: "Saved filters" }), _jsx("div", { className: "solid-search-overlay-empty-subtitle", children: "Reusable filter sets available for this view." })] })] }), _jsx("div", { className: "flex flex-col solid-search-overlay-saved-list", children: selectableSavedFilters.map(function (savedfilter, index) {
1747
1750
  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 () {
1751
+ return (_jsx(SavedFilterList, { savedfilter: savedfilter, activeSavedFilterReference: (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.systemKey) || (currentSavedFilterData === null || currentSavedFilterData === void 0 ? void 0 : currentSavedFilterData.id), applySavedFilter: applySavedFilter, openSavedCustomFilter: openSavedCustomFilter, setSavedFilterTobeDeleted: setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible: setIsDeleteSQDialogVisible, isFocused: ((_a = overlayOptions[focusedIndex]) === null || _a === void 0 ? void 0 : _a.id) === "saved:".concat(savedfilter.id), onMouseEnter: function () {
1749
1752
  var optIndex = overlayOptions.findIndex(function (o) { return o.id === "saved:".concat(savedfilter.id); });
1750
1753
  if (optIndex !== -1)
1751
1754
  setFocusedIndex(optIndex);