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

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 (136) 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 +1 -4
  5. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  6. package/dist/components/common/SolidFormStepper.js +6 -7
  7. package/dist/components/common/SolidFormStepper.js.map +1 -1
  8. package/dist/components/common/SolidFormStepper.tsx +1 -7
  9. package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
  10. package/dist/components/common/SolidThemeProvider.js +11 -127
  11. package/dist/components/common/SolidThemeProvider.js.map +1 -1
  12. package/dist/components/common/SolidThemeProvider.tsx +22 -104
  13. package/dist/components/core/card/CardGrid.d.ts +1 -1
  14. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  15. package/dist/components/core/card/CardGrid.js +2 -2
  16. package/dist/components/core/card/CardGrid.js.map +1 -1
  17. package/dist/components/core/card/CardGrid.tsx +0 -4
  18. package/dist/components/core/card/CardItem.d.ts +0 -2
  19. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  20. package/dist/components/core/card/CardItem.js +3 -4
  21. package/dist/components/core/card/CardItem.js.map +1 -1
  22. package/dist/components/core/card/CardItem.tsx +0 -15
  23. package/dist/components/core/card/SolidCardView.d.ts +1 -28
  24. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  25. package/dist/components/core/card/SolidCardView.js +44 -99
  26. package/dist/components/core/card/SolidCardView.js.map +1 -1
  27. package/dist/components/core/card/SolidCardView.tsx +7 -124
  28. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  29. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  30. package/dist/components/core/card/SolidCardViewConfigure.js +6 -15
  31. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  32. package/dist/components/core/card/SolidCardViewConfigure.tsx +0 -34
  33. package/dist/components/core/common/PDFViewer.d.ts +5 -9
  34. package/dist/components/core/common/PDFViewer.d.ts.map +1 -1
  35. package/dist/components/core/common/PDFViewer.js +102 -10
  36. package/dist/components/core/common/PDFViewer.js.map +1 -1
  37. package/dist/components/core/common/PDFViewer.tsx +88 -29
  38. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  39. package/dist/components/core/common/SolidCreateButton.js +2 -2
  40. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  41. package/dist/components/core/common/SolidCreateButton.tsx +2 -22
  42. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  43. package/dist/components/core/common/SolidGlobalSearchElement.js +134 -137
  44. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  45. package/dist/components/core/common/SolidGlobalSearchElement.tsx +119 -127
  46. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  47. package/dist/components/core/form/SolidFormActionHeader.js +21 -21
  48. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  49. package/dist/components/core/form/SolidFormActionHeader.tsx +53 -62
  50. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  51. package/dist/components/core/form/SolidFormView.js +2 -5
  52. package/dist/components/core/form/SolidFormView.js.map +1 -1
  53. package/dist/components/core/form/SolidFormView.tsx +2 -7
  54. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  55. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  56. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  57. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  58. package/dist/components/core/kanban/KanbanBoard.tsx +1 -3
  59. package/dist/components/core/kanban/KanbanCard.d.ts +0 -2
  60. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  61. package/dist/components/core/kanban/KanbanCard.js +2 -4
  62. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  63. package/dist/components/core/kanban/KanbanCard.tsx +1 -14
  64. package/dist/components/core/kanban/KanbanColumn.d.ts +1 -3
  65. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  66. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  67. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  68. package/dist/components/core/kanban/KanbanColumn.tsx +2 -4
  69. package/dist/components/core/kanban/SolidKanbanView.d.ts +1 -25
  70. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  71. package/dist/components/core/kanban/SolidKanbanView.js +50 -89
  72. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  73. package/dist/components/core/kanban/SolidKanbanView.tsx +9 -82
  74. package/dist/components/core/list/PLAN.md +1 -1
  75. package/dist/components/core/list/SolidListView.d.ts +0 -11
  76. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  77. package/dist/components/core/list/SolidListView.js +3 -8
  78. package/dist/components/core/list/SolidListView.js.map +1 -1
  79. package/dist/components/core/list/SolidListView.tsx +43 -82
  80. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  81. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  82. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  83. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  84. package/dist/components/core/model/CreateModel.js +1 -2
  85. package/dist/components/core/model/CreateModel.js.map +1 -1
  86. package/dist/components/core/model/CreateModel.tsx +0 -2
  87. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  88. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  89. package/dist/components/core/model/FieldMetaData.js +8 -8
  90. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  91. package/dist/components/core/model/FieldMetaData.tsx +2 -2
  92. package/dist/components/core/model/FieldMetaDataForm.css +0 -119
  93. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  94. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  95. package/dist/components/core/model/FieldMetaDataForm.tsx +1 -1
  96. package/dist/components/core/module/ModuleMetadataExplorer.css +0 -64
  97. package/dist/components/core/module/ModulePackageDialog.css +12 -117
  98. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  99. package/dist/components/core/tree/SolidTreeView.js +3 -6
  100. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  101. package/dist/components/core/tree/SolidTreeView.tsx +13 -35
  102. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  103. package/dist/components/layout/AdminHeaderActions.js +10 -15
  104. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  105. package/dist/components/layout/AdminHeaderActions.tsx +8 -15
  106. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  107. package/dist/components/layout/AdminTopHeader.js +18 -1
  108. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  109. package/dist/components/layout/AdminTopHeader.tsx +21 -3
  110. package/dist/index.d.ts +0 -5
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +0 -3
  113. package/dist/index.js.map +1 -1
  114. package/dist/index.ts +0 -5
  115. package/dist/resources/globals.css +0 -15
  116. package/dist/resources/solid-custom.css +0 -11
  117. package/dist/resources/solid-tailwind-generated.css +1 -1
  118. package/dist/resources/themes/solid-light-modern/theme.css +3 -4
  119. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  120. package/dist/routes/pages/admin/core/CardPage.js +2 -15
  121. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  122. package/dist/routes/pages/admin/core/CardPage.tsx +2 -17
  123. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  124. package/dist/routes/pages/admin/core/DashboardPage.js +3 -31
  125. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  126. package/dist/routes/pages/admin/core/DashboardPage.tsx +11 -39
  127. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  128. package/dist/routes/pages/admin/core/KanbanPage.js +2 -15
  129. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  130. package/dist/routes/pages/admin/core/KanbanPage.tsx +2 -17
  131. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  132. package/dist/routes/pages/admin/core/ListPage.js +13 -5
  133. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  134. package/dist/routes/pages/admin/core/ListPage.tsx +15 -5
  135. package/dist/types/solid-core.d.ts +0 -8
  136. package/package.json +1 -1
@@ -1,7 +1,10 @@
1
1
  import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
2
2
  import FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from "../../../components/core/common/FilterComponent";
3
3
  import { toTitleCase } from "../../../helpers/helpers";
4
- import {clearFilterObjectFromLocalStorage,getFilterObjectFromLocalStorage,setFilterObjectToLocalStorage,
4
+ import { usePathname } from "../../../hooks/usePathname";
5
+ import { useRouter } from "../../../hooks/useRouter";
6
+ import { useSearchParams } from "../../../hooks/useSearchParams";
7
+ import {clearFilterObjectFromLocalStorage,getFilterObjectFromLocalStorage,
5
8
  } from "./globalSearchPersistence";
6
9
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
7
10
  import qs from "qs";
@@ -9,7 +12,6 @@ import { SolidSaveCustomFilterForm } from "./SolidSaveCustomFilterForm";
9
12
  import { ERROR_MESSAGES } from "../../../constants/error-messages";
10
13
  import { hydrateRelationRules } from "../../../helpers/hydrateRelationRules";
11
14
  import { useSession } from '../../../hooks/useSession'
12
- import { getUnboundSavedFilterVariableNames, parseSavedFilterQueryJson, resolveSavedFilterVariables } from '../../../helpers/resolveActiveUserId';
13
15
  import GroupingComponent, { AggregationRule, GroupingRule, DateGroupingFormat } from "./GroupingComponent";
14
16
  import { Bookmark, Check, Filter, ListFilter, Pencil, Plus, Search, SearchX, Trash2, X } from "lucide-react";
15
17
  import { SolidButton } from "../../shad-cn-ui/SolidButton";
@@ -418,10 +420,8 @@ export const mergeAllDiffFilters = (customFilter: any, searchFilter: any, savedF
418
420
  return filters;
419
421
  }
420
422
 
421
- const SavedFilterList = ({ savedfilter, activeSavedFilterReference, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused, onMouseEnter }: any) => {
422
- const isActive = savedfilter?.systemKey
423
- ? activeSavedFilterReference === savedfilter.systemKey
424
- : String(activeSavedFilterReference) === String(savedfilter.id);
423
+ const SavedFilterList = ({ savedfilter, activeSavedFilter, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused, onMouseEnter }: any) => {
424
+ const isActive = savedfilter?.systemKey ? activeSavedFilter === savedfilter.systemKey : Number(activeSavedFilter) == savedfilter.id;
425
425
 
426
426
  return (
427
427
  <div className="solid-saved-filter-item" onMouseEnter={onMouseEnter}>
@@ -608,11 +608,18 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
608
608
  ];
609
609
 
610
610
  const [initialState, setInitialState] = useState(defaultState);
611
+ const pathname = usePathname();
611
612
  const searchableEntityLabel =
612
613
  viewData?.data?.solidView?.displayName ||
613
614
  viewData?.data?.solidView?.model?.displayName ||
614
615
  "records";
615
616
 
617
+
618
+ const searchParams = useSearchParams() // Converts the query params to a string
619
+ const activeSavedFilter = searchParams?.get("savedQuery");
620
+
621
+ const router = useRouter();
622
+
616
623
  const chipsRef = useRef<HTMLDivElement | null | any>(null);
617
624
 
618
625
  // filterRules is used to maintian the ui of custom filter
@@ -655,7 +662,6 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
655
662
  // currentSavedFilterData is used to save the whole object of saved filter
656
663
  const [currentSavedFilterData, setCurrentSavedFilterData] = useState<any>();
657
664
  const [currentSavedFilterQuery, setCurrentSavedFilterQuery] = useState<any>();
658
- const [currentSavedFilterVariables, setCurrentSavedFilterVariables] = useState<Record<string, any>>({});
659
665
  const [currentSavedFilterRules, setCurrentSavedFilterRules] = useState<any>();
660
666
  const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);
661
667
 
@@ -714,23 +720,12 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
714
720
  };
715
721
  }, [isDraftPublishWorkflowEnabled]);
716
722
 
717
- const allAvailableSavedFilters = useMemo(
723
+ const availableSavedFilters = useMemo(
718
724
  () => workflowPublishedVersionsSavedFilter
719
725
  ? [workflowPublishedVersionsSavedFilter, ...(savedFilters || [])]
720
726
  : (savedFilters || []),
721
727
  [workflowPublishedVersionsSavedFilter, savedFilters]
722
728
  );
723
- const availableSavedFilters = allAvailableSavedFilters;
724
- const selectableSavedFilters = useMemo(
725
- () => allAvailableSavedFilters.filter((filter: any) => {
726
- try {
727
- return getUnboundSavedFilterVariableNames(parseSavedFilterQueryJson(filter.filterQueryJson || "{}")).length === 0;
728
- } catch {
729
- return false;
730
- }
731
- }),
732
- [allAvailableSavedFilters]
733
- );
734
729
 
735
730
  const entityApi = createSolidEntityApi("savedFilters");
736
731
  const {
@@ -760,6 +755,20 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
760
755
 
761
756
  const [savedFilterFetchDataRefreshKey, setSavedFilterFetchDataRefreshKey] = useState(0);
762
757
 
758
+ const buildSavedFilterUrl = (savedQueryId?: string | number | null) => {
759
+ const params = new URLSearchParams(searchParams.toString());
760
+
761
+ if (savedQueryId === null || savedQueryId === undefined || savedQueryId === "") {
762
+ params.delete("savedQuery");
763
+ } else {
764
+ params.set("savedQuery", String(savedQueryId));
765
+ }
766
+
767
+ const queryString = params.toString();
768
+ return queryString ? `${pathname}?${queryString}` : pathname;
769
+ };
770
+
771
+
763
772
  useEffect(() => {
764
773
  const fn = async () => {
765
774
  if (!viewData?.data?.solidView?.model?.id || !viewData?.data?.solidView?.id || !user?.id) {
@@ -805,6 +814,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
805
814
  }
806
815
  fn()
807
816
  }, [
817
+ activeSavedFilter,
808
818
  savedFilterFetchDataRefreshKey,
809
819
  viewData?.data?.solidView?.id,
810
820
  viewData?.data?.solidView?.model?.id,
@@ -819,12 +829,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
819
829
  ? queryObject.custom_filter_predicate
820
830
  : null;
821
831
  const nextPredefinedBaseFilter = queryObject?.predefined_search_predicate || null;
822
- const nextPredefinedSearchChip =
823
- nextPredefinedBaseFilter && queryObject?.predefined_search_chip
824
- ? queryObject.predefined_search_chip
825
- : null;
826
832
  const nextSavedFilter = queryObject?.saved_filter_predicate || null;
827
- const nextSavedFilterVariables = queryObject?.saved_filter_variables ?? {};
828
833
  const nextSavedFilterData = nextSavedFilter
829
834
  ? availableSavedFilters.find((savedFilter: any) => {
830
835
  if (queryObject?.saved_filter_system_key) {
@@ -846,10 +851,8 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
846
851
  setSearchChips((prev) => areFilterStateValuesEqual(prev, nextSearchChips) ? prev : nextSearchChips);
847
852
  setCustomFilter((prev: any) => areFilterStateValuesEqual(prev, nextCustomFilter) ? prev : nextCustomFilter);
848
853
  setPredefinedSearchBaseFilter((prev: any) => areFilterStateValuesEqual(prev, nextPredefinedBaseFilter) ? prev : nextPredefinedBaseFilter);
849
- setPredefinedSearchChip((prev) => areFilterStateValuesEqual(prev, nextPredefinedSearchChip) ? prev : nextPredefinedSearchChip);
850
854
  setCurrentSavedFilterData((prev: any) => areFilterStateValuesEqual(prev, nextSavedFilterData) ? prev : nextSavedFilterData);
851
855
  setCurrentSavedFilterQuery((prev: any) => areFilterStateValuesEqual(prev, nextSavedFilter) ? prev : nextSavedFilter);
852
- setCurrentSavedFilterVariables((prev) => areFilterStateValuesEqual(prev, nextSavedFilterVariables) ? prev : nextSavedFilterVariables);
853
856
 
854
857
  if (nextCustomFilter && viewData?.data) {
855
858
  const rules: FilterRule = transformFiltersToRules(nextCustomFilter);
@@ -896,7 +899,6 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
896
899
  setPredefinedSearchBaseFilter(null);
897
900
  setCurrentSavedFilterData(null);
898
901
  setCurrentSavedFilterQuery(null);
899
- setCurrentSavedFilterVariables({});
900
902
  setCurrentSavedFilterRules(null);
901
903
  if (!preserveGrouping) {
902
904
  setGroupingRules(defaultGroupingRules);
@@ -907,6 +909,13 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
907
909
  setInputValue("");
908
910
  clearFilterObjectFromLocalStorage();
909
911
 
912
+ if (activeSavedFilter) {
913
+ const params = new URLSearchParams(searchParams.toString());
914
+ params.delete("savedQuery");
915
+ const nextUrl = params.toString() ? `${pathname}?${params.toString()}` : pathname;
916
+ router.replace(nextUrl);
917
+ }
918
+
910
919
  setHasSearched(true);
911
920
  setRefreshKey((prev) => prev + 1);
912
921
  };
@@ -915,15 +924,6 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
915
924
  clearFilter: () => {
916
925
  resetAppliedFilters();
917
926
  },
918
- getSavedFilters: () => availableSavedFilters.map((filter: any) => ({ ...filter })),
919
- applySavedFilterByName: (name: string, variables: Record<string, any> = {}) => {
920
- const savedFilter = allAvailableSavedFilters.find((filter: any) => filter?.name === name);
921
- if (!savedFilter) {
922
- return false;
923
- }
924
-
925
- return applySavedFilter(savedFilter, variables);
926
- },
927
927
  clearAppliedFilters: (options?: { preserveGrouping?: boolean }) => {
928
928
  resetAppliedFilters(options);
929
929
  },
@@ -945,15 +945,35 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
945
945
  useEffect(() => {
946
946
  const fn = async () => {
947
947
  if (savedFiltersLoaded) {
948
+
949
+ if (activeSavedFilter && availableSavedFilters.length === 0) return;
950
+
948
951
  const queryObject = getFilterObjectFromLocalStorage();
949
- await syncFilterUiStateFromSharedSource(queryObject);
952
+ let nextQueryObject = queryObject;
953
+ if (activeSavedFilter) {
954
+ const currentSavedFilterId = Number(activeSavedFilter);
955
+ const currentSavedFilterData: any = availableSavedFilters.find((savedFilter: any) => savedFilter.id === currentSavedFilterId);
956
+ if (currentSavedFilterData) {
957
+ const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);
958
+ if (filterJson) {
959
+ nextQueryObject = {
960
+ ...(queryObject || {}),
961
+ saved_filter_predicate: filterJson,
962
+ saved_filter_id: currentSavedFilterData.id,
963
+ saved_filter_system_key: currentSavedFilterData.systemKey,
964
+ saved_filter_name: currentSavedFilterData.name,
965
+ };
966
+ }
967
+ }
968
+ }
969
+ await syncFilterUiStateFromSharedSource(nextQueryObject);
950
970
 
951
971
  setRefreshKey((prev) => prev + 1)
952
972
  setHasSearched(true);
953
973
  }
954
974
  }
955
975
  fn()
956
- }, [availableSavedFilters, savedFiltersLoaded, syncFilterUiStateFromSharedSource, viewData?.data?.solidView?.id])
976
+ }, [activeSavedFilter, availableSavedFilters, savedFiltersLoaded, syncFilterUiStateFromSharedSource, viewData?.data?.solidView?.id])
957
977
 
958
978
  useEffect(() => {
959
979
  const fn = async () => {
@@ -1243,16 +1263,6 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1243
1263
 
1244
1264
  const finalCustomFilter = customFilter
1245
1265
  const finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules)
1246
- finalFilter.predefined_search_chip =
1247
- finalPredefinedFilter && predefinedSearchChip
1248
- ? predefinedSearchChip
1249
- : null;
1250
- if (finalSavedFilter && Object.keys(finalSavedFilter).length > 0) {
1251
- const resolved = resolveSavedFilterVariables(finalSavedFilter, user?.id, currentSavedFilterVariables);
1252
- if (resolved.missingVariables.length > 0) return;
1253
- finalFilter.resolved_saved_filter_predicate = resolved.value;
1254
- finalFilter.saved_filter_variables = currentSavedFilterVariables;
1255
- }
1256
1266
  if (currentSavedFilterData?.id) {
1257
1267
  finalFilter.saved_filter_id = currentSavedFilterData.id;
1258
1268
  }
@@ -1281,6 +1291,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1281
1291
 
1282
1292
  const openSavedCustomFilter = async (savedfilter: any) => {
1283
1293
  //Open custom filter popup
1294
+ // router.push(`?savedQuery=${savedfilter.id}`);
1284
1295
  // setShowGlobalSearchElement(true);
1285
1296
  // // dont refetch the data yet
1286
1297
  // const customFilter = JSON.parse(savedfilter.filterQueryJson);
@@ -1298,13 +1309,15 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1298
1309
  setPredefinedSearchChip(null);
1299
1310
  setPredefinedSearchBaseFilter(null);
1300
1311
 
1312
+ // push the savedQuery=1 in url
1301
1313
  if (savedfilter?.id) {
1302
1314
  const savedfilterId = savedfilter.id;
1315
+ // router.push(`?savedQuery=${savedfilter.id}`);
1303
1316
  setShowOverlay(false);
1304
1317
  const currentSavedFilterData: any = availableSavedFilters.find((savedFilter: any) => savedFilter.id === savedfilterId);
1305
1318
  setCurrentSavedFilterData(currentSavedFilterData);
1306
1319
  if (currentSavedFilterData) {
1307
- const filterJson = parseSavedFilterQueryJson(currentSavedFilterData?.filterQueryJson);
1320
+ const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);
1308
1321
  if (filterJson) {
1309
1322
  let finalSavedFilter = filterJson
1310
1323
  setCurrentSavedFilterQuery(finalSavedFilter)
@@ -1322,50 +1335,14 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1322
1335
  }
1323
1336
  }
1324
1337
 
1325
- const persistActiveSavedFilter = (savedFilter: any, filterJson: any, variables: Record<string, any>) => {
1326
- const persistedFilter = {
1327
- ...(getFilterObjectFromLocalStorage() || {}),
1328
- custom_filter_predicate: null,
1329
- search_predicate: null,
1330
- predefined_search_predicate: null,
1331
- predefined_search_chip: null,
1332
- saved_filter_predicate: filterJson,
1333
- saved_filter_variables: variables,
1334
- saved_filter_id: savedFilter?.id ?? null,
1335
- saved_filter_system_key: savedFilter?.systemKey ?? null,
1336
- saved_filter_name: savedFilter?.name ?? null,
1337
- };
1338
- delete persistedFilter.finalFullFilter;
1339
- setFilterObjectToLocalStorage(persistedFilter);
1340
- };
1341
-
1342
- const clearActiveSavedFilter = () => {
1343
- setCurrentSavedFilterData(null);
1344
- setCurrentSavedFilterQuery(null);
1345
- setCurrentSavedFilterVariables({});
1346
- setCurrentSavedFilterRules(null);
1347
- setShowSavedFilterComponent(false);
1348
-
1349
- const persistedFilter = {
1350
- ...(getFilterObjectFromLocalStorage() || {}),
1351
- saved_filter_predicate: null,
1352
- saved_filter_variables: {},
1353
- saved_filter_id: null,
1354
- saved_filter_system_key: null,
1355
- saved_filter_name: null,
1356
- };
1357
- delete persistedFilter.finalFullFilter;
1358
- setFilterObjectToLocalStorage(persistedFilter);
1359
-
1360
- setHasSearched(true);
1361
- setRefreshKey((prev) => prev + 1);
1362
- };
1363
-
1364
1338
  const deleteSavedFilter = async () => {
1365
1339
  // delte the saved filter with id
1366
1340
  await deleteEntity(savedFilterTobeDeleted);
1367
- if (String(savedFilterTobeDeleted) === String(currentSavedFilterData?.id)) {
1368
- clearActiveSavedFilter();
1341
+ // triggerGetSolidEntities(savedFilterQueryString);
1342
+ let parsedSearchParams = searchParams;
1343
+ const savedQuery = parsedSearchParams?.get("savedQuery");
1344
+ if (savedFilterTobeDeleted == savedQuery) {
1345
+ router.push(buildSavedFilterUrl(null));
1369
1346
  }
1370
1347
  setIsDeleteSQDialogVisible(false);
1371
1348
  setTimeout(() => {
@@ -1394,6 +1371,8 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1394
1371
  setCustomFilter(null)
1395
1372
  setPredefinedSearchChip(null);
1396
1373
  setPredefinedSearchBaseFilter(null);
1374
+ clearFilterObjectFromLocalStorage();
1375
+
1397
1376
  // Apply the rename immediately, both to the active filter and to
1398
1377
  // the cached list — otherwise the list still holds the pre-rename
1399
1378
  // entry, which wins the id-based lookup the next time saved-filter
@@ -1403,9 +1382,12 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1403
1382
  setSavedFilters((prev) => prev.map((f: any) => String(f?.id) === String(formValues.id) ? { ...f, ...savedFilterRecord } : f));
1404
1383
  setCurrentSavedFilterData(savedFilterRecord);
1405
1384
  setCurrentSavedFilterQuery(filterJson);
1406
- persistActiveSavedFilter(savedFilterRecord, filterJson, currentSavedFilterVariables);
1407
1385
  setHasSearched(true);
1408
1386
  setRefreshKey((prev) => prev + 1);
1387
+
1388
+ setTimeout(() => {
1389
+ router.push(buildSavedFilterUrl(formValues.id));
1390
+ }, 500)
1409
1391
  } else {
1410
1392
 
1411
1393
  const filterJson = customFilter;
@@ -1424,16 +1406,21 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1424
1406
  setCustomFilter(null)
1425
1407
  setPredefinedSearchChip(null);
1426
1408
  setPredefinedSearchBaseFilter(null);
1409
+ clearFilterObjectFromLocalStorage();
1410
+
1427
1411
  // The custom filter just became this saved filter — apply it, and
1428
1412
  // seed the cached list with it, immediately (see rename branch above).
1429
1413
  const savedFilterRecord = { id: result.data.id, name: formValues.name, isPrivate: formValues.isPrivate, filterQueryJson: JSON.stringify(filterJson, null, 2) };
1430
1414
  setSavedFilters((prev) => [savedFilterRecord, ...prev]);
1431
1415
  setCurrentSavedFilterData(savedFilterRecord);
1432
1416
  setCurrentSavedFilterQuery(filterJson);
1433
- setCurrentSavedFilterVariables({});
1434
- persistActiveSavedFilter(savedFilterRecord, filterJson, {});
1435
1417
  setHasSearched(true);
1436
1418
  setRefreshKey((prev) => prev + 1);
1419
+
1420
+ setTimeout(() => {
1421
+ router.push(buildSavedFilterUrl(result.data.id));
1422
+ }, 500)
1423
+
1437
1424
  }
1438
1425
  } catch (error) {
1439
1426
 
@@ -1509,25 +1496,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1509
1496
 
1510
1497
  //saved filter related code start
1511
1498
 
1512
- const applySavedFilter = (savedfilter: any, variables: Record<string, any> = {}) => {
1513
- if (!savedfilter?.id && !savedfilter?.systemKey) {
1514
- console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1515
- return false;
1516
- }
1517
-
1518
- let filterJson: any;
1519
- try {
1520
- filterJson = parseSavedFilterQueryJson(savedfilter?.filterQueryJson);
1521
- } catch {
1522
- console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1523
- return false;
1524
- }
1525
-
1526
- const resolved = resolveSavedFilterVariables(filterJson, user?.id, variables);
1527
- if (resolved.missingVariables.length > 0) {
1528
- console.error(`Unable to apply saved filter '${savedfilter?.name}': missing variables ${resolved.missingVariables.join(", ")}`);
1529
- return false;
1530
- }
1499
+ const applySavedFilter = (savedfilter: any) => {
1531
1500
 
1532
1501
  setSearchChips([]);
1533
1502
  setSearchFilter(null);
@@ -1535,18 +1504,41 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1535
1504
  setCustomFilter(null)
1536
1505
  setPredefinedSearchChip(null);
1537
1506
  setPredefinedSearchBaseFilter(null);
1538
- setCurrentSavedFilterData(savedfilter);
1539
- setCurrentSavedFilterQuery(filterJson);
1540
- setCurrentSavedFilterVariables(variables);
1541
- persistActiveSavedFilter(savedfilter, filterJson, variables);
1542
- setShowOverlay(false);
1543
- setHasSearched(true);
1544
- setRefreshKey((prev) => prev + 1);
1545
- return true;
1507
+ clearFilterObjectFromLocalStorage();
1508
+ if (savedfilter?.systemKey) {
1509
+ setCurrentSavedFilterData(savedfilter);
1510
+ try {
1511
+ const filterJson = JSON.parse(savedfilter.filterQueryJson);
1512
+ if (filterJson) {
1513
+ setCurrentSavedFilterQuery(filterJson);
1514
+ }
1515
+ } catch {
1516
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1517
+ }
1518
+ setShowOverlay(false);
1519
+ setHasSearched(true);
1520
+ setRefreshKey((prev) => prev + 1);
1521
+ return;
1522
+ }
1523
+ // push the savedQuery=1 in url
1524
+ if (savedfilter?.id) {
1525
+ router.push(buildSavedFilterUrl(savedfilter.id));
1526
+ setShowOverlay(false);
1527
+ } else {
1528
+ console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);
1529
+ }
1546
1530
  }
1547
1531
 
1548
1532
  const removeSavedFilter = () => {
1549
- clearActiveSavedFilter();
1533
+ setCurrentSavedFilterData(null);
1534
+ setCurrentSavedFilterQuery(null);
1535
+ setCurrentSavedFilterRules(null);
1536
+ setShowSavedFilterComponent(false);
1537
+ if (searchParams.has("savedQuery")) {
1538
+ router.replace(buildSavedFilterUrl(null));
1539
+ }
1540
+ setHasSearched(true);
1541
+ setRefreshKey((prev) => prev + 1);
1550
1542
  }
1551
1543
 
1552
1544
  const SavedFiltersChip = () => {
@@ -1767,7 +1759,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1767
1759
  predefined: p,
1768
1760
  }))
1769
1761
  : [];
1770
- const saved: OverlayOption[] = (selectableSavedFilters || []).map((s: any) => ({
1762
+ const saved: OverlayOption[] = (availableSavedFilters || []).map((s: any) => ({
1771
1763
  id: `saved:${s.id}`,
1772
1764
  kind: "saved" as const,
1773
1765
  saved: s,
@@ -1785,7 +1777,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1785
1777
  : [];
1786
1778
 
1787
1779
  return [...fields, ...predefined, ...saved, ...custom, ...grouping];
1788
- }, [inputValue, searchableFields, predefinedSearches, selectableSavedFilters, viewType]);
1780
+ }, [inputValue, searchableFields, predefinedSearches, availableSavedFilters, viewType]);
1789
1781
 
1790
1782
  const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
1791
1783
  const currentValue = inputValue?.trim() || "";
@@ -1850,7 +1842,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1850
1842
  } else if (predefinedSearchChip) {
1851
1843
  setPredefinedSearchChip(null);
1852
1844
  setPredefinedSearchBaseFilter(null);
1853
- } else if (currentSavedFilterData) {
1845
+ } else if (activeSavedFilter) {
1854
1846
  removeSavedFilter();
1855
1847
  }
1856
1848
  setHasSearched(true);
@@ -2242,7 +2234,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
2242
2234
  <div className="solid-filter-dialog-sep" />
2243
2235
  </>
2244
2236
  }
2245
- {selectableSavedFilters.length > 0 &&
2237
+ {availableSavedFilters.length > 0 &&
2246
2238
  <>
2247
2239
  <div className="p-3 solid-search-overlay-section">
2248
2240
  <div className="solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact">
@@ -2257,11 +2249,11 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
2257
2249
  </div>
2258
2250
  </div>
2259
2251
  <div className="flex flex-col solid-search-overlay-saved-list">
2260
- {selectableSavedFilters.map((savedfilter: any, index: number) => (
2252
+ {availableSavedFilters.map((savedfilter: any, index: number) => (
2261
2253
  <SavedFilterList
2262
2254
  key={savedfilter.id}
2263
2255
  savedfilter={savedfilter}
2264
- activeSavedFilterReference={currentSavedFilterData?.systemKey || currentSavedFilterData?.id}
2256
+ activeSavedFilter={activeSavedFilter || currentSavedFilterData?.systemKey || currentSavedFilterData?.id}
2265
2257
  applySavedFilter={applySavedFilter}
2266
2258
  openSavedCustomFilter={openSavedCustomFilter}
2267
2259
  setSavedFilterTobeDeleted={setSavedFilterTobeDeleted}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormActionHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormActionHeader.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,qBAAqB,2dAA4d,GAAG,4CA6oBhgB,CAAA"}
1
+ {"version":3,"file":"SolidFormActionHeader.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormActionHeader.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,qBAAqB,2dAA4d,GAAG,4CAooBhgB,CAAA"}
@@ -103,7 +103,7 @@ export var SolidFormActionHeader = function (_a) {
103
103
  var FormActionDropdown = function () {
104
104
  var _a, _b;
105
105
  var closeMenu = function () { return setFormActionsMenuOpen(false); };
106
- return (_jsxs(SolidPopover, { open: formActionsMenuOpen, onOpenChange: setFormActionsMenuOpen, children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { variant: "outline", type: "button", icon: 'si si-cog', size: "sm", className: "solid-icon-button bg-[var(--surface-card)] max-[576px]:hidden sm:hidden lg:flex" }) }), _jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { variant: "outline", type: "button", icon: 'si si-cog', size: "sm", className: "solid-icon-button bg-[var(--surface-card)] lg:hidden" }) })] }), _jsx(SolidPopoverContent, { side: "bottom", align: "end", className: "solid-form-actions-popover", onClick: function (event) { return event.stopPropagation(); }, children: _jsxs("div", { className: "solid-row-actions-menu solid-form-actions-menu", children: [params.embeded !== true &&
106
+ return (_jsxs(SolidPopover, { open: formActionsMenuOpen, onOpenChange: setFormActionsMenuOpen, children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { variant: "outline", type: "button", icon: 'si si-cog', size: "sm", className: "solid-icon-button hidden bg-[var(--surface-card)] md:flex" }) }), _jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { variant: "outline", type: "button", icon: 'si si-cog', size: "sm", className: "solid-icon-button bg-[var(--surface-card)] md:hidden" }) })] }), _jsx(SolidPopoverContent, { side: "bottom", align: "end", className: "solid-form-actions-popover", onClick: function (event) { return event.stopPropagation(); }, children: _jsxs("div", { className: "solid-row-actions-menu solid-form-actions-menu", children: [params.embeded !== true &&
107
107
  params.id !== "new" &&
108
108
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) &&
109
109
  !isPublished &&
@@ -126,41 +126,41 @@ export var SolidFormActionHeader = function (_a) {
126
126
  };
127
127
  return (_jsx(_Fragment, { children: _jsx("div", { className: "page-header solid-list-toolbar flex-col lg:flex-row", children: _jsx("div", { className: "flex justify-between w-full solid-form-toolbar-row", children: params.id === "new" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex gap-4 items-center solid-form-toolbar-left", children: [params.embeded == true &&
128
128
  _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: createHeaderTitle }), params.embeded !== true &&
129
- _jsx(SolidFormStepper, { solidFormViewMetaData: solidFormViewMetaData, initialEntityData: initialEntityData, modelName: params.modelName, id: params.id, solidWorkflowFieldValue: solidWorkflowFieldValue, setSolidWorkflowFieldValue: setSolidWorkflowFieldValue, onStepperUpdate: onStepperUpdate })] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-form-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: activeHeaderRequestStatusLabel }), _jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex solid-header-buttons-wrapper", children: normalHeaderButtons.map(function (button, index) {
129
+ _jsx(SolidFormStepper, { solidFormViewMetaData: solidFormViewMetaData, initialEntityData: initialEntityData, modelName: params.modelName, id: params.id, solidWorkflowFieldValue: solidWorkflowFieldValue, setSolidWorkflowFieldValue: setSolidWorkflowFieldValue, onStepperUpdate: onStepperUpdate })] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-form-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: activeHeaderRequestStatusLabel }), _jsx("div", { className: "hidden lg:flex solid-header-buttons-wrapper", children: normalHeaderButtons.map(function (button, index) {
130
130
  return (_jsx(SolidFormViewNormalHeaderButton, { button: button, params: params, formik: formik, formData: formData, solidFormViewMetaData: solidFormViewMetaData, handleCustomButtonClick: handleCustomButtonClick }, index));
131
131
  }) }), params.embeded !== true &&
132
132
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) &&
133
133
  !formViewLayout.attrs.readonly &&
134
- _jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save", size: "sm", type: "submit", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), _jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: params.embeded !== true && params.draftEnabled &&
134
+ _jsxs("div", { children: [_jsx(SolidButton, { label: "Save", size: "sm", type: "submit", className: "hidden lg:flex", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), _jsx("div", { className: "hidden lg:flex", children: params.embeded !== true && params.draftEnabled &&
135
135
  !formViewLayout.attrs.readonly && params.publish !== 'null' &&
136
136
  formik.dirty &&
137
137
  _jsx("div", { children: _jsx(SolidButton, { label: "Draft", size: "sm", type: "button" }) }) }), params.embeded == true &&
138
138
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) &&
139
139
  !formViewLayout.attrs.readonly &&
140
- _jsx(_Fragment, { children: showEmbeddedRelationSaveAndNew ? (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save & Close", size: "sm", onClick: function () {
141
- setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("close");
142
- setRedirectToList(params.redirectToPath ? true : false);
143
- }, type: "submit", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", onClick: function () {
140
+ _jsx(_Fragment, { children: showEmbeddedRelationSaveAndNew ? (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx(SolidButton, { label: "Save & Close", size: "sm", onClick: function () {
144
141
  setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("close");
145
142
  setRedirectToList(params.redirectToPath ? true : false);
146
- }, type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting, "aria-label": "Save & Close" })] }), _jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save & New", size: "sm", variant: "outline", onClick: function () {
147
- setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("new");
148
- setRedirectToList(false);
149
- }, type: "submit", className: "bg-[var(--primary-color-text)]", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", variant: "outline", onClick: function () {
143
+ }, type: "submit", className: "hidden lg:flex", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", onClick: function () {
144
+ setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("close");
145
+ setRedirectToList(params.redirectToPath ? true : false);
146
+ }, type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting, "aria-label": "Save & Close" })] }), _jsxs("div", { children: [_jsx(SolidButton, { label: "Save & New", size: "sm", variant: "outline", onClick: function () {
150
147
  setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("new");
151
148
  setRedirectToList(false);
152
- }, type: "submit", className: "lg:hidden solid-icon-button bg-[var(--primary-color-text)]", icon: "si si-plus", loading: isSubmitting, disabled: isSubmitting, "aria-label": "Save & New" })] })] })) : (_jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save", size: "sm", onClick: function () {
153
- setRedirectToList(params.redirectToPath ? true : false);
154
- }, type: "submit", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", onClick: function () {
149
+ }, type: "submit", className: "hidden lg:flex bg-[var(--primary-color-text)]", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", variant: "outline", onClick: function () {
150
+ setEmbeddedRelationSubmitAction === null || setEmbeddedRelationSubmitAction === void 0 ? void 0 : setEmbeddedRelationSubmitAction("new");
151
+ setRedirectToList(false);
152
+ }, type: "submit", className: "lg:hidden solid-icon-button bg-[var(--primary-color-text)]", icon: "si si-plus", loading: isSubmitting, disabled: isSubmitting, "aria-label": "Save & New" })] })] })) : (_jsxs("div", { children: [_jsx(SolidButton, { label: "Save", size: "sm", onClick: function () {
153
+ setRedirectToList(params.redirectToPath ? true : false);
154
+ }, type: "submit", className: "hidden lg:flex", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", onClick: function () {
155
155
  setRedirectToList(params.redirectToPath ? true : false);
156
156
  }, type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] })) }), params.embeded == true &&
157
- _jsxs(_Fragment, { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", label: "Close", onClick: function () { return params.handlePopupClose(); }, className: 'bg-[var(--primary-color-text)]', style: { minWidth: 66 } }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", icon: "si si-times", onClick: function () { return params.handlePopupClose(); }, className: 'solid-icon-button bg-[var(--primary-color-text)]' }) })] }), ((_c = formViewLayout === null || formViewLayout === void 0 ? void 0 : formViewLayout.attrs) === null || _c === void 0 ? void 0 : _c.showCogWheelFormButton) !== false &&
157
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", label: "Close", onClick: function () { return params.handlePopupClose(); }, className: 'bg-[var(--primary-color-text)]', style: { minWidth: 66 } }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", icon: "si si-times", onClick: function () { return params.handlePopupClose(); }, className: 'solid-icon-button bg-[var(--primary-color-text)]' }) })] }), ((_c = formViewLayout === null || formViewLayout === void 0 ? void 0 : formViewLayout.attrs) === null || _c === void 0 ? void 0 : _c.showCogWheelFormButton) !== false &&
158
158
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
159
159
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) &&
160
160
  _jsx(FormActionDropdown, {}), showMobileOpenChatter &&
161
161
  _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { type: "button", icon: "si si-comments", size: "sm", className: "solid-icon-button", onClick: onMobileOpenChatter, "aria-label": "Open chatter" }) })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex gap-4 items-center solid-form-toolbar-left", children: [params.embeded !== true &&
162
162
  _jsx(SolidFormStepper, { solidFormViewMetaData: solidFormViewMetaData, initialEntityData: initialEntityData, modelName: params.modelName, id: params.id, solidWorkflowFieldValue: solidWorkflowFieldValue, setSolidWorkflowFieldValue: setSolidWorkflowFieldValue, onStepperUpdate: onStepperUpdate }), params.embeded == true &&
163
- _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: viewMode === "edit" ? editHeaderTitle : solidView.model.displayName })] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-form-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: activeHeaderRequestStatusLabel }), _jsx("div", { className: "hidden items-center lg:flex solid-header-buttons-wrapper", children: normalHeaderButtons.map(function (button, index) {
163
+ _jsx("p", { className: "m-0 view-title solid-text-wrapper", children: viewMode === "edit" ? editHeaderTitle : solidView.model.displayName })] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-form-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: activeHeaderRequestStatusLabel }), _jsx("div", { className: "hidden lg:flex solid-header-buttons-wrapper", children: normalHeaderButtons.map(function (button, index) {
164
164
  return (
165
165
  // <SolidButton
166
166
  // text
@@ -187,7 +187,7 @@ export var SolidFormActionHeader = function (_a) {
187
187
  params.embeded !== true &&
188
188
  viewMode === "view" &&
189
189
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) &&
190
- _jsxs(_Fragment, { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { type: "button", label: "Add", size: 'sm', onClick: function () {
190
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { type: "button", label: "Add", size: 'sm', onClick: function () {
191
191
  setIsNavigating(true);
192
192
  router.replace("".concat(normalizeSolidFormActionPath(pathname, "form"), "/new?viewMode=edit"));
193
193
  }, loading: isNavigating, disabled: isNavigating }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { type: "button", icon: "si si-plus", size: 'sm', onClick: function () {
@@ -199,12 +199,12 @@ export var SolidFormActionHeader = function (_a) {
199
199
  viewMode === "view" &&
200
200
  isLatestVersion &&
201
201
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
202
- _jsxs(_Fragment, { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { label: "Edit", size: "sm", onClick: function () { return updateViewMode("edit"); }, type: "button" }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { icon: "si si-pencil", size: "sm", onClick: function () { return updateViewMode("edit"); }, type: "button", className: "solid-icon-button" }) })] }), params.embeded !== true &&
202
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { label: "Edit", size: "sm", onClick: function () { return updateViewMode("edit"); }, type: "button" }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { icon: "si si-pencil", size: "sm", onClick: function () { return updateViewMode("edit"); }, type: "button", className: "solid-icon-button" }) })] }), params.embeded !== true &&
203
203
  isLatestVersion &&
204
204
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
205
205
  !formViewLayout.attrs.readonly &&
206
206
  shouldShowSaveForExistingRecord &&
207
- _jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save", size: "sm", type: "submit", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), params.embeded !== true &&
207
+ _jsxs("div", { children: [_jsx(SolidButton, { label: "Save", size: "sm", type: "submit", className: "hidden lg:flex", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), params.embeded !== true &&
208
208
  showDraftPublishActions &&
209
209
  !formViewLayout.attrs.readonly &&
210
210
  !isPublished &&
@@ -219,7 +219,7 @@ export var SolidFormActionHeader = function (_a) {
219
219
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
220
220
  !formViewLayout.attrs.readonly &&
221
221
  shouldShowSaveForExistingRecord &&
222
- _jsxs("div", { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx(SolidButton, { label: "Save", size: "sm", type: "submit", loading: isSubmitting, disabled: isSubmitting }) }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), params.embeded == true &&
222
+ _jsxs("div", { children: [_jsx(SolidButton, { label: "Save", size: "sm", type: "submit", className: "hidden lg:flex", loading: isSubmitting, disabled: isSubmitting }), _jsx(SolidButton, { size: "sm", type: "submit", className: "lg:hidden solid-icon-button", icon: "si si-check", loading: isSubmitting, disabled: isSubmitting })] }), params.embeded == true &&
223
223
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) &&
224
224
  ((_f = formViewLayout.attrs) === null || _f === void 0 ? void 0 : _f.showDeleteFormButton) !== false &&
225
225
  !formViewLayout.attrs.readonly &&
@@ -235,7 +235,7 @@ export var SolidFormActionHeader = function (_a) {
235
235
  isPublished &&
236
236
  actionsAllowed.includes(permissionExpression(params.modelName, 'unpublish')) &&
237
237
  _jsx("div", { children: _jsx(SolidButton, { label: "Unpublish", size: "sm", type: "button", variant: "destructive", onClick: function () { return handleDraftPublishWorkFlow('unpublish'); } }) }), params.embeded == true &&
238
- _jsxs(_Fragment, { children: [_jsx("div", { className: "max-[576px]:hidden sm:hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", label: "Close", onClick: function () { return params.handlePopupClose(); }, className: 'bg-[var(--primary-color-text)]', style: { minWidth: 66 } }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", icon: "si si-times", onClick: function () { return params.handlePopupClose(); }, className: 'solid-icon-button bg-[var(--primary-color-text)]' }) })] }), ((_g = formViewLayout === null || formViewLayout === void 0 ? void 0 : formViewLayout.attrs) === null || _g === void 0 ? void 0 : _g.showCogWheelFormButton) !== false &&
238
+ _jsxs(_Fragment, { children: [_jsx("div", { className: "hidden lg:flex", children: _jsx("div", { children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", label: "Close", onClick: function () { return params.handlePopupClose(); }, className: 'bg-[var(--primary-color-text)]', style: { minWidth: 66 } }) }) }), _jsx("div", { className: "lg:hidden", children: _jsx(SolidButton, { variant: "outline", size: "sm", type: "button", icon: "si si-times", onClick: function () { return params.handlePopupClose(); }, className: 'solid-icon-button bg-[var(--primary-color-text)]' }) })] }), ((_g = formViewLayout === null || formViewLayout === void 0 ? void 0 : formViewLayout.attrs) === null || _g === void 0 ? void 0 : _g.showCogWheelFormButton) !== false &&
239
239
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'update'))) &&
240
240
  actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) &&
241
241
  _jsx(FormActionDropdown, {}), showMobileOpenChatter &&