@solidxai/core-ui 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/AuthLayout.js +1 -1
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +2 -2
- package/dist/components/common/DropzonePlaceholder.d.ts +2 -1
- package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
- package/dist/components/common/DropzonePlaceholder.js +10 -7
- package/dist/components/common/DropzonePlaceholder.js.map +1 -1
- package/dist/components/common/DropzonePlaceholder.tsx +14 -9
- package/dist/components/common/SettingsComponent.module.css +4 -1
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +7 -6
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +7 -1
- package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
- package/dist/components/common/SolidThemeProvider.js +127 -11
- package/dist/components/common/SolidThemeProvider.js.map +1 -1
- package/dist/components/common/SolidThemeProvider.tsx +104 -22
- package/dist/components/core/card/CardGrid.d.ts +1 -1
- package/dist/components/core/card/CardGrid.d.ts.map +1 -1
- package/dist/components/core/card/CardGrid.js +2 -2
- package/dist/components/core/card/CardGrid.js.map +1 -1
- package/dist/components/core/card/CardGrid.tsx +4 -0
- package/dist/components/core/card/CardItem.d.ts +2 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +5 -4
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +16 -1
- package/dist/components/core/card/SolidCardView.d.ts +28 -1
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +99 -44
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +119 -7
- package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +15 -6
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +34 -0
- package/dist/components/core/common/PDFViewer.d.ts +9 -5
- package/dist/components/core/common/PDFViewer.d.ts.map +1 -1
- package/dist/components/core/common/PDFViewer.js +10 -102
- package/dist/components/core/common/PDFViewer.js.map +1 -1
- package/dist/components/core/common/PDFViewer.tsx +29 -88
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +2 -2
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +22 -2
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +216 -198
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +287 -216
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +21 -21
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +62 -53
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +101 -74
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +46 -19
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +3 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +3 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +3 -2
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +1 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +20 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -2
- package/dist/components/core/form/fields/solidFields.module.css +7 -0
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +5 -3
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +15 -2
- package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +2 -2
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
- package/dist/components/core/kanban/SolidKanbanView.d.ts +25 -1
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +95 -50
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +87 -9
- package/dist/components/core/list/PLAN.md +1 -1
- package/dist/components/core/list/SolidListView.d.ts +11 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +51 -90
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +77 -112
- package/dist/components/core/list/SolidListViewColumn.d.ts +2 -1
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +2 -2
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +4 -3
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
- package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +5 -4
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +5 -4
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +2 -1
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +2 -0
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +8 -8
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +2 -2
- package/dist/components/core/model/FieldMetaDataForm.css +119 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +147 -97
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +124 -32
- package/dist/components/core/module/ModuleMetadataExplorer.css +64 -0
- package/dist/components/core/module/ModulePackageDialog.css +117 -12
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +6 -3
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +27 -13
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +16 -11
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +16 -9
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +1 -18
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +3 -21
- package/dist/helpers/getAcceptedFileTypes.d.ts +12 -2
- package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -1
- package/dist/helpers/getAcceptedFileTypes.js +72 -16
- package/dist/helpers/getAcceptedFileTypes.js.map +1 -1
- package/dist/helpers/getAcceptedFileTypes.tsx +101 -18
- package/dist/helpers/registry.js +2 -1
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +3 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +6 -2
- package/dist/resources/globals.css +274 -109
- package/dist/resources/solid-custom.css +11 -0
- package/dist/resources/solid-responsive.css +1 -5
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.js +15 -2
- package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.tsx +17 -2
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +31 -3
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.tsx +39 -11
- package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.js +15 -2
- package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.tsx +17 -2
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +5 -13
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +5 -15
- package/dist/types/index.d.ts +2 -4
- package/dist/types/solid-core.d.ts +12 -13
- package/package.json +1 -1
|
@@ -29,9 +29,10 @@ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
|
|
|
29
29
|
import { useDispatch, useSelector } from "react-redux";
|
|
30
30
|
import styles from "./SolidListViewWrapper.module.css";
|
|
31
31
|
import { isArchivedListRow } from "./columns/PublishStatusColumnDefaults";
|
|
32
|
-
import { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList
|
|
32
|
+
import { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList } from "../../../types/solid-core";
|
|
33
33
|
import { getExtensionFunction } from "../../../helpers/registry";
|
|
34
34
|
import { useSession } from "../../../hooks/useSession";
|
|
35
|
+
import { resolveActiveUserId } from "../../../helpers/resolveActiveUserId";
|
|
35
36
|
import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
36
37
|
import { getSettingsMap, resolveRecordClickAction } from "../../../helpers/settingsPayload";
|
|
37
38
|
import { useGetSolidSettingsQuery } from "../../../redux/api/solidSettingsApi";
|
|
@@ -106,6 +107,17 @@ export type SolidListViewHandle = {
|
|
|
106
107
|
saved_filter_predicate?: any;
|
|
107
108
|
predefined_search_predicate?: any;
|
|
108
109
|
}) => void;
|
|
110
|
+
/**
|
|
111
|
+
* Returns the saved filters currently available in the list view, including
|
|
112
|
+
* any seeded/system filters supplied by the view.
|
|
113
|
+
*/
|
|
114
|
+
getSavedFilters: () => any[];
|
|
115
|
+
/**
|
|
116
|
+
* Applies the currently available saved filter with the given name using the
|
|
117
|
+
* same selection path as clicking that filter in the search UI.
|
|
118
|
+
* Returns false when no saved filter with that name is available.
|
|
119
|
+
*/
|
|
120
|
+
applySavedFilter: (name: string, variables?: Record<string, any>) => boolean;
|
|
109
121
|
/**
|
|
110
122
|
* Updates pagination state directly.
|
|
111
123
|
* Use this when a caller needs to jump to a specific page window
|
|
@@ -197,12 +209,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
197
209
|
const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);
|
|
198
210
|
const suppressNextFilterPaginationResetRef = useRef(false);
|
|
199
211
|
|
|
200
|
-
// Filters offered by an onBeforeListDataLoad handler (event.definedFilters).
|
|
201
|
-
// Each stays independently removable via the search bar's pill UI rather
|
|
202
|
-
// than being baked directly into the outgoing query filter.
|
|
203
|
-
const [definedFilters, setDefinedFilters] = useState<SolidDefinedFilter[]>([]);
|
|
204
|
-
const definedFilterOverridesRef = useRef<Record<string, boolean>>({});
|
|
205
|
-
|
|
206
212
|
const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
|
|
207
213
|
|
|
208
214
|
const handleCustomButtonClick = useHandleListCustomButtonClick();
|
|
@@ -219,7 +225,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
219
225
|
() => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || "form"),
|
|
220
226
|
[editButtonUrl, pathname]
|
|
221
227
|
);
|
|
222
|
-
const
|
|
228
|
+
const recordClickFormMode = useMemo(() => {
|
|
223
229
|
const isSystemModule = solidListViewMetaData?.data?.solidView?.module?.isSystem === true;
|
|
224
230
|
|
|
225
231
|
if (isSystemModule) {
|
|
@@ -665,6 +671,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
665
671
|
listData: listViewData,
|
|
666
672
|
totalRecords: totalRecords,
|
|
667
673
|
type: "onListLoad",
|
|
674
|
+
isInitialLoad: !hasFiredInitialOnListLoadRef.current,
|
|
668
675
|
viewMetadata: solidListViewMetaData?.data?.solidView,
|
|
669
676
|
listViewLayout: listLayout,
|
|
670
677
|
queryParams: {
|
|
@@ -677,6 +684,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
677
684
|
session: session.data,
|
|
678
685
|
params: params
|
|
679
686
|
};
|
|
687
|
+
hasFiredInitialOnListLoadRef.current = true;
|
|
680
688
|
|
|
681
689
|
if (dynamicHeader) {
|
|
682
690
|
dynamicExtensionFunction = getExtensionFunction(dynamicHeader);
|
|
@@ -709,6 +717,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
709
717
|
const latestFilterPredicatesRef = useRef<any>(filterPredicates);
|
|
710
718
|
const latestSortFieldRef = useRef<string>(sortField);
|
|
711
719
|
const latestSortOrderRef = useRef<1 | -1 | 0>(sortOrder);
|
|
720
|
+
const hasFiredInitialOnBeforeListDataLoadRef = useRef(false);
|
|
721
|
+
const hasFiredInitialOnListLoadRef = useRef(false);
|
|
712
722
|
|
|
713
723
|
useEffect(() => {
|
|
714
724
|
latestSortFieldRef.current = sortField;
|
|
@@ -830,8 +840,11 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
830
840
|
// SolidBeforeListDataLoad Event that allows filter modification just before api call
|
|
831
841
|
const dynamicHeader = solidListViewMetaData?.data?.solidView?.layout?.onBeforeListDataLoad;
|
|
832
842
|
let dynamicExtensionFunction = null;
|
|
843
|
+
const isInitialLoad = !hasFiredInitialOnBeforeListDataLoadRef.current;
|
|
844
|
+
hasFiredInitialOnBeforeListDataLoadRef.current = true;
|
|
833
845
|
const event: SolidBeforeListDataLoad = {
|
|
834
846
|
type: "onBeforeListDataLoad",
|
|
847
|
+
isInitialLoad,
|
|
835
848
|
fieldsMetadata: solidListViewMetaData?.data?.solidFieldsMetadata,
|
|
836
849
|
viewMetadata: solidListViewMetaData?.data?.solidView,
|
|
837
850
|
listViewLayout: solidListViewMetaData?.data.solidView.layout,
|
|
@@ -855,48 +868,10 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
855
868
|
if (updatedListData && updatedListData?.filterApplied && updatedListData?.newFilter) {
|
|
856
869
|
queryData = updatedListData?.newFilter;
|
|
857
870
|
}
|
|
858
|
-
|
|
859
|
-
// Reconcile handler-offered filters against any user removals from
|
|
860
|
-
// this mount (definedFilterOverridesRef), then merge the ones still
|
|
861
|
-
// applied into the outgoing query. Stale keys (no longer offered by
|
|
862
|
-
// the handler) are dropped from the override map.
|
|
863
|
-
const nextDefinedFilters = updatedListData?.definedFilters ?? [];
|
|
864
|
-
const reconciledDefinedFilters: SolidDefinedFilter[] = nextDefinedFilters.map((def) => {
|
|
865
|
-
const hasOverride = Object.prototype.hasOwnProperty.call(definedFilterOverridesRef.current, def.key);
|
|
866
|
-
const applied = hasOverride ? definedFilterOverridesRef.current[def.key] : def.applied;
|
|
867
|
-
definedFilterOverridesRef.current[def.key] = applied;
|
|
868
|
-
return { ...def, applied };
|
|
869
|
-
});
|
|
870
|
-
Object.keys(definedFilterOverridesRef.current).forEach((key) => {
|
|
871
|
-
if (!reconciledDefinedFilters.some((def) => def.key === key)) {
|
|
872
|
-
delete definedFilterOverridesRef.current[key];
|
|
873
|
-
}
|
|
874
|
-
});
|
|
875
|
-
setDefinedFilters(reconciledDefinedFilters);
|
|
876
|
-
|
|
877
|
-
const activeDefinedFilterPredicates = reconciledDefinedFilters
|
|
878
|
-
.filter((def) => def.applied)
|
|
879
|
-
.map((def) => def.predicate);
|
|
880
|
-
if (activeDefinedFilterPredicates.length > 0) {
|
|
881
|
-
// queryData.filters may be the same object reference as
|
|
882
|
-
// latestFiltersRef.current (see assignment above) when the
|
|
883
|
-
// handler didn't return a newFilter. Clone before mutating so we
|
|
884
|
-
// never permanently bake handler predicates into that ref -
|
|
885
|
-
// otherwise they'd accumulate/duplicate on every subsequent
|
|
886
|
-
// fetch (pagination, sort, removal, ...) instead of being
|
|
887
|
-
// recomputed fresh each time.
|
|
888
|
-
const mergedFilters = queryData.filters ? structuredClone(queryData.filters) : {};
|
|
889
|
-
mergedFilters.$and = Array.isArray(mergedFilters.$and) ? mergedFilters.$and : [];
|
|
890
|
-
mergedFilters.$and.push(...activeDefinedFilterPredicates);
|
|
891
|
-
queryData.filters = mergedFilters;
|
|
892
|
-
}
|
|
893
871
|
} catch (err) {
|
|
894
872
|
console.error("Error executing onBeforeListDataLoad extension:", err);
|
|
895
873
|
}
|
|
896
874
|
}
|
|
897
|
-
} else if (Object.keys(definedFilterOverridesRef.current).length > 0) {
|
|
898
|
-
definedFilterOverridesRef.current = {};
|
|
899
|
-
setDefinedFilters([]);
|
|
900
875
|
}
|
|
901
876
|
|
|
902
877
|
const queryString = qs.stringify(queryData, { encodeValuesOnly: true });
|
|
@@ -908,6 +883,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
908
883
|
fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;
|
|
909
884
|
fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
|
|
910
885
|
fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;
|
|
886
|
+
fileterTobeStored.saved_filter_variables = latestFilterPredicatesRef.current.saved_filter_variables || {};
|
|
911
887
|
fileterTobeStored.saved_filter_id = latestFilterPredicatesRef.current.saved_filter_id || null;
|
|
912
888
|
fileterTobeStored.saved_filter_system_key = latestFilterPredicatesRef.current.saved_filter_system_key || null;
|
|
913
889
|
fileterTobeStored.saved_filter_name = latestFilterPredicatesRef.current.saved_filter_name || null;
|
|
@@ -930,7 +906,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
930
906
|
queryfilter.$and.push(filterPredicates.search_predicate);
|
|
931
907
|
}
|
|
932
908
|
if (filterPredicates.saved_filter_predicate) {
|
|
933
|
-
queryfilter.$and.push(filterPredicates.
|
|
909
|
+
queryfilter.$and.push(filterPredicates.resolved_saved_filter_predicate ||
|
|
910
|
+
resolveActiveUserId(filterPredicates.saved_filter_predicate, user?.id));
|
|
934
911
|
}
|
|
935
912
|
if (filterPredicates.predefined_search_predicate) {
|
|
936
913
|
queryfilter.$and.push(filterPredicates.predefined_search_predicate);
|
|
@@ -1012,26 +989,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1012
989
|
// Force synchronous state updates
|
|
1013
990
|
};
|
|
1014
991
|
|
|
1015
|
-
// Removes a single handler-offered filter pill. The override persists for
|
|
1016
|
-
// the rest of this mount (setQueryString reconciliation keeps it applied:false
|
|
1017
|
-
// on subsequent fetches) but is not persisted beyond it.
|
|
1018
|
-
const removeDefinedFilter = (key: string) => {
|
|
1019
|
-
definedFilterOverridesRef.current[key] = false;
|
|
1020
|
-
setDefinedFilters((prev) => prev.map((def) => (def.key === key ? { ...def, applied: false } : def)));
|
|
1021
|
-
setFirst(0);
|
|
1022
|
-
void setQueryString();
|
|
1023
|
-
};
|
|
1024
|
-
|
|
1025
|
-
// Applies a handler-offered filter the user picked from the "defined
|
|
1026
|
-
// filters" list (one the handler returned with applied:false by default).
|
|
1027
|
-
// Mirrors removeDefinedFilter in the other direction.
|
|
1028
|
-
const applyDefinedFilter = (key: string) => {
|
|
1029
|
-
definedFilterOverridesRef.current[key] = true;
|
|
1030
|
-
setDefinedFilters((prev) => prev.map((def) => (def.key === key ? { ...def, applied: true } : def)));
|
|
1031
|
-
setFirst(0);
|
|
1032
|
-
void setQueryString();
|
|
1033
|
-
};
|
|
1034
|
-
|
|
1035
992
|
// clear Filter
|
|
1036
993
|
const clearFilter = () => {
|
|
1037
994
|
if (solidListViewMetaData) {
|
|
@@ -1069,6 +1026,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1069
1026
|
applyFilter: (filter) => {
|
|
1070
1027
|
handleApplyCustomFilter(filter);
|
|
1071
1028
|
},
|
|
1029
|
+
getSavedFilters: () => solidGlobalSearchElementRef.current?.getSavedFilters?.() ?? [],
|
|
1030
|
+
applySavedFilter: (name, variables) => solidGlobalSearchElementRef.current?.applySavedFilterByName?.(name, variables) ?? false,
|
|
1072
1031
|
setPagination: (nextFirst, nextRows) => {
|
|
1073
1032
|
setFirst(nextFirst);
|
|
1074
1033
|
setRows(nextRows);
|
|
@@ -1224,7 +1183,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1224
1183
|
column,
|
|
1225
1184
|
setLightboxUrls,
|
|
1226
1185
|
setOpenLightbox,
|
|
1227
|
-
embeded: params.embeded
|
|
1186
|
+
embeded: params.embeded,
|
|
1187
|
+
recordClickAction: recordClickFormMode
|
|
1228
1188
|
});
|
|
1229
1189
|
} else {
|
|
1230
1190
|
return null;
|
|
@@ -1236,7 +1196,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1236
1196
|
column,
|
|
1237
1197
|
setLightboxUrls,
|
|
1238
1198
|
setOpenLightbox,
|
|
1239
|
-
embeded: params.embeded
|
|
1199
|
+
embeded: params.embeded,
|
|
1200
|
+
recordClickAction: recordClickFormMode
|
|
1240
1201
|
});
|
|
1241
1202
|
}
|
|
1242
1203
|
});
|
|
@@ -1462,30 +1423,34 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1462
1423
|
</p>
|
|
1463
1424
|
</div> */}
|
|
1464
1425
|
{params.embeded === false && (
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1426
|
+
<>
|
|
1427
|
+
|
|
1428
|
+
{/* Global search element: always visible on desktop (lg+), toggled via search button below lg */}
|
|
1429
|
+
{/* Base `hidden` must be avoided here: the consuming app's Tailwind CSS loads after this
|
|
1430
|
+
library's generated CSS, so the app's base `.hidden` would override our media-scoped
|
|
1431
|
+
`lg:flex`. Only media-scoped visibility classes are safe on this element. */}
|
|
1432
|
+
<div className={`${showGlobalSearchElement ? "flex" : "max-lg:hidden lg:flex"} w-full mt-3 lg:mt-0 lg:min-w-0`}>
|
|
1433
|
+
{/* Keep global search mounted for now because list bootstrap/filter hydration still flows through this element. */}
|
|
1434
|
+
<SolidGlobalSearchElement
|
|
1435
|
+
key={params.modelName}
|
|
1436
|
+
viewType="list"
|
|
1437
|
+
showSaveFilterPopup={showSaveFilterPopup}
|
|
1438
|
+
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1439
|
+
ref={solidGlobalSearchElementRef}
|
|
1440
|
+
viewData={solidListViewMetaData}
|
|
1441
|
+
handleApplyCustomFilter={handleApplyCustomFilter}
|
|
1442
|
+
filterPredicates={filterPredicates}
|
|
1443
|
+
>
|
|
1444
|
+
</SolidGlobalSearchElement>
|
|
1445
|
+
</div>
|
|
1446
|
+
</>
|
|
1482
1447
|
)}
|
|
1483
1448
|
|
|
1484
1449
|
</div>
|
|
1485
1450
|
<div className="flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto">
|
|
1486
1451
|
<SolidHeaderRequestStatus label={headerRequestStatusLabel} />
|
|
1487
1452
|
{params.embeded === false && (
|
|
1488
|
-
<div className="
|
|
1453
|
+
<div className="solid-list-search-toggle">
|
|
1489
1454
|
<SolidButton
|
|
1490
1455
|
type="button"
|
|
1491
1456
|
size="small"
|
|
@@ -1675,7 +1640,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1675
1640
|
params.handleEditClickForEmbeddedView(rowData?.id);
|
|
1676
1641
|
} else {
|
|
1677
1642
|
storeCurrentModelViewContext();
|
|
1678
|
-
router.push(`${editBaseUrl}/${rowData?.id}?viewMode=${
|
|
1643
|
+
router.push(`${editBaseUrl}/${rowData?.id}?viewMode=${recordClickFormMode}&${buildEditNavigationQueryString(rowData)}`);
|
|
1679
1644
|
}
|
|
1680
1645
|
}
|
|
1681
1646
|
}
|
|
@@ -1716,30 +1681,30 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1716
1681
|
const presentation = resolveButtonPresentation(button?.attrs);
|
|
1717
1682
|
if (!presentation.showIcon && !presentation.showLabel) return null;
|
|
1718
1683
|
return (
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1684
|
+
<SolidButton
|
|
1685
|
+
type="button"
|
|
1686
|
+
icon={presentation.icon}
|
|
1687
|
+
iconPos={presentation.iconPos}
|
|
1688
|
+
label={presentation.label}
|
|
1689
|
+
tooltip={presentation.tooltip}
|
|
1690
|
+
aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
|
|
1691
|
+
className={[
|
|
1692
|
+
"solid-inline-row-button w-full text-left gap-2",
|
|
1693
|
+
presentation.isIconOnly ? "solid-icon-button" : "",
|
|
1694
|
+
presentation.buttonClassName ? presentation.buttonClassName : ""
|
|
1695
|
+
].filter(Boolean).join(" ")}
|
|
1696
|
+
size="small"
|
|
1697
|
+
variant="ghost"
|
|
1698
|
+
onClick={() => {
|
|
1699
|
+
const event = {
|
|
1700
|
+
params,
|
|
1701
|
+
rowData: rowData,
|
|
1702
|
+
solidListViewMetaData:
|
|
1703
|
+
solidListViewMetaData?.data,
|
|
1704
|
+
};
|
|
1705
|
+
handleCustomButtonClick(button.attrs, event);
|
|
1706
|
+
}}
|
|
1707
|
+
/>
|
|
1743
1708
|
);
|
|
1744
1709
|
})()
|
|
1745
1710
|
);
|
|
@@ -6,9 +6,10 @@ export type SolidListViewColumnParams = {
|
|
|
6
6
|
setLightboxUrls?: any;
|
|
7
7
|
setOpenLightbox?: any;
|
|
8
8
|
embeded?: boolean;
|
|
9
|
+
recordClickAction?: 'view' | 'edit';
|
|
9
10
|
};
|
|
10
11
|
export declare const isFieldSortable: (fieldMetadata: any) => boolean;
|
|
11
12
|
export declare const getNumberOfInputs: (matchMode: any) => number | null;
|
|
12
13
|
export declare const applyListColumnLayoutAttrs: (columnElement: React.ReactNode, column: any) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined;
|
|
13
|
-
export declare const SolidListViewColumn: ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined;
|
|
14
|
+
export declare const SolidListViewColumn: ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded, recordClickAction }: SolidListViewColumnParams) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined;
|
|
14
15
|
//# sourceMappingURL=SolidListViewColumn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListViewColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,MAAM,yBAAyB,GAAG;IACpC,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SolidListViewColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,MAAM,yBAAyB,GAAG;IACpC,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,eAAe,kBAAmB,GAAG,KAAG,OAMpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,GAAG,KAAG,MAAM,GAAG,IAyB3D,CAAA;AAUD,eAAO,MAAM,0BAA0B,kBAAmB,MAAM,SAAS,UAAU,GAAG,kJAkCrF,CAAC;AAoBF,eAAO,MAAM,mBAAmB,mHAAoH,yBAAyB,kJAoG5K,CAAC"}
|
|
@@ -114,7 +114,7 @@ export var applyListColumnLayoutAttrs = function (columnElement, column) {
|
|
|
114
114
|
// };
|
|
115
115
|
export var SolidListViewColumn = function (_a) {
|
|
116
116
|
var _b;
|
|
117
|
-
var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, embeded = _a.embeded;
|
|
117
|
+
var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, embeded = _a.embeded, recordClickAction = _a.recordClickAction;
|
|
118
118
|
if (!isFieldSortable(fieldMetadata) && ((_b = column === null || column === void 0 ? void 0 : column.attrs) === null || _b === void 0 ? void 0 : _b.sortable)) {
|
|
119
119
|
column = __assign(__assign({}, column), { attrs: __assign(__assign({}, column.attrs), { sortable: false }) });
|
|
120
120
|
}
|
|
@@ -160,7 +160,7 @@ export var SolidListViewColumn = function (_a) {
|
|
|
160
160
|
renderedColumn = SolidTimeColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column });
|
|
161
161
|
}
|
|
162
162
|
else if (fieldMetadata.type === 'relation') {
|
|
163
|
-
renderedColumn = SolidRelationColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column, embeded: embeded });
|
|
163
|
+
renderedColumn = SolidRelationColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column, embeded: embeded, recordClickAction: recordClickAction });
|
|
164
164
|
}
|
|
165
165
|
else if (fieldMetadata.type === 'mediaSingle') {
|
|
166
166
|
renderedColumn = SolidMediaSingleColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListViewColumn.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport SolidBigintColumn from \"./columns/SolidBigintColumn\";\nimport SolidBooleanColumn from \"./columns/SolidBooleanColumn\";\nimport SolidComputedColumn from \"./columns/SolidComputedColumn\";\nimport SolidDateColumn from \"./columns/SolidDateColumn\";\nimport SolidDatetimeColumn from \"./columns/SolidDatetimeColumn\";\nimport SolidDecimalColumn from \"./columns/SolidDecimalColumn\";\nimport SolidExternalIdColumn from \"./columns/SolidExternalIdColumn\";\nimport SolidFloatColumn from \"./columns/SolidFloatColumn\";\nimport SolidIntColumn from \"./columns/SolidIntColumn\";\nimport SolidLongTextColumn from \"./columns/SolidLongTextColumn\";\nimport SolidMediaMultipleColumn from \"./columns/SolidMediaMultipleColumn\";\nimport SolidMediaSingleColumn from \"./columns/SolidMediaSingleColumn\";\nimport SolidRelationColumn from \"./columns/SolidRelationColumn\";\nimport SolidRichTextColumn from \"./columns/SolidRichTextColumn\";\nimport SolidSelectionDynamicColumn from \"./columns/SolidSelectionDynamicColumn\";\nimport SolidSelectionStaticColumn from \"./columns/SolidSelectionStaticColumn\";\nimport SolidShortTextColumn from \"./columns/SolidShortTextColumn\";\nimport SolidTimeColumn from \"./columns/SolidTimeColumn\";\nimport SolidUuidColumn from \"./columns/SolidUuidColumn\";\n\nexport type SolidListViewColumnParams = {\n solidListViewMetaData: any;\n fieldMetadata: any,\n column: any,\n setLightboxUrls?: any,\n setOpenLightbox?: any,\n embeded?: boolean; \n};\n\nexport const isFieldSortable = (fieldMetadata: any): boolean => {\n if (!fieldMetadata) return false;\n const type = fieldMetadata.type;\n if (type === 'mediaSingle' || type === 'mediaMultiple') return false;\n if (type === 'relation') return fieldMetadata.relationType === 'many-to-one';\n return true;\n};\n\nexport const getNumberOfInputs = (matchMode: any): number | null => {\n if (matchMode.label && matchMode.label === 'Not In') {\n matchMode = 'notIn';\n }\n\n switch (matchMode) {\n case 'between':\n return 2;\n case 'in':\n case 'notIn':\n return null;\n case 'startsWith':\n case 'contains':\n case 'notContains':\n case 'endsWith':\n case 'equals':\n case 'notEquals':\n case 'lt':\n case 'lte':\n case 'gt':\n case 'gte':\n return 1;\n default:\n return 1; // Default to single input if no specific match is found\n }\n}\n\nconst mergeClassNames = (...classNames: Array<string | undefined | null | false>) =>\n classNames.filter(Boolean).join(\" \");\n\nconst mergeStyles = (...styles: Array<React.CSSProperties | undefined | null>) =>\n styles.reduce<React.CSSProperties>((mergedStyles, style) => {\n return style ? { ...mergedStyles, ...style } : mergedStyles;\n }, {});\n\nexport const applyListColumnLayoutAttrs = (columnElement: React.ReactNode, column: any) => {\n if (!React.isValidElement(columnElement)) {\n return columnElement;\n }\n\n const attrs = column?.attrs ?? {};\n const props = columnElement.props as any;\n const className = mergeClassNames(\n props.className,\n attrs.className,\n attrs.columnClassName,\n attrs.cellClassName,\n );\n const headerClassName = mergeClassNames(\n props.headerClassName,\n attrs.headerClassName,\n );\n const style = mergeStyles(\n props.style,\n attrs.style,\n attrs.columnStyle,\n attrs.cellStyle,\n );\n const headerStyle = mergeStyles(\n props.headerStyle,\n attrs.headerStyle,\n );\n\n return React.cloneElement(columnElement, {\n className: className || undefined,\n headerClassName: headerClassName || undefined,\n style: Object.keys(style).length > 0 ? style : undefined,\n headerStyle: Object.keys(headerStyle).length > 0 ? headerStyle : undefined,\n } as any);\n};\n\n// // @ts-ignore\n// const components = require.context('./columns', false, /Solid.*Column\\.tsx$/);\n\n// // Define a function to dynamically load components based on type\n// const loadComponentByType = async (type: string) => {\n// try {\n// const componentName = `./columns/Solid${type.charAt(0).toUpperCase() + type.slice(1)}Column.tsx`;\n\n// // Dynamically import the component based on type\n// const componentModule = await import(componentName);\n\n// return componentModule.default;\n// } catch (error) {\n// console.error(`Failed to load component for type: ${type}`, error);\n// return null;\n// }\n// };\n\nexport const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => {\n\n if (!isFieldSortable(fieldMetadata) && column?.attrs?.sortable) {\n column = { ...column, attrs: { ...column.attrs, sortable: false } };\n }\n\n let renderedColumn: React.ReactNode;\n\n // And finally we can implement additional switching logic based on certain special fields. \n if (fieldMetadata.name === 'id') {\n renderedColumn = SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'int') {\n renderedColumn = SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'bigint') {\n renderedColumn = SolidBigintColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'float') {\n renderedColumn = SolidFloatColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'decimal') {\n renderedColumn = SolidDecimalColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'shortText') {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'longText') {\n renderedColumn = SolidLongTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'richText') {\n renderedColumn = SolidRichTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'email') {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'boolean') {\n renderedColumn = SolidBooleanColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'date') {\n renderedColumn = SolidDateColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'datetime') {\n renderedColumn = SolidDatetimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'time') {\n renderedColumn = SolidTimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'relation') {\n renderedColumn = SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded });\n }\n else if (fieldMetadata.type === 'mediaSingle') {\n renderedColumn = SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'mediaMultiple') {\n renderedColumn = SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'selectionStatic') {\n renderedColumn = SolidSelectionStaticColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'selectionDynamic') {\n renderedColumn = SolidSelectionDynamicColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'computed') {\n renderedColumn = SolidComputedColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'externalId') {\n renderedColumn = SolidExternalIdColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'uuid') {\n renderedColumn = SolidUuidColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n\n return applyListColumnLayoutAttrs(renderedColumn, column);\n // // Load everything else based on type and dynamically.\n // else {\n // const ComponentFound = await loadComponentByType(fieldMetadata.type);\n // const ComponentNotFound = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => (\n // <Column\n // key={fieldMetadata.name}\n // field={fieldMetadata.name}\n // header={fieldMetadata.displayName}\n // className=\"text-sm\"\n // sortable={false}\n // filter={false}\n // showFilterOperator={false}\n // body={() => (<span>Type not supported</span>)}\n // style={{ minWidth: \"12rem\" }}\n // headerClassName=\"table-header-fs\"\n // ></Column>\n // );\n\n // return ComponentFound ? ComponentFound({ solidListViewMetaData, fieldMetadata, column }) : ComponentNotFound({ solidListViewMetaData, fieldMetadata, column });\n // }\n\n // TODO: we can implement additional switching logic based on the widget type being used to render the list view column.\n\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SolidListViewColumn.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport SolidBigintColumn from \"./columns/SolidBigintColumn\";\nimport SolidBooleanColumn from \"./columns/SolidBooleanColumn\";\nimport SolidComputedColumn from \"./columns/SolidComputedColumn\";\nimport SolidDateColumn from \"./columns/SolidDateColumn\";\nimport SolidDatetimeColumn from \"./columns/SolidDatetimeColumn\";\nimport SolidDecimalColumn from \"./columns/SolidDecimalColumn\";\nimport SolidExternalIdColumn from \"./columns/SolidExternalIdColumn\";\nimport SolidFloatColumn from \"./columns/SolidFloatColumn\";\nimport SolidIntColumn from \"./columns/SolidIntColumn\";\nimport SolidLongTextColumn from \"./columns/SolidLongTextColumn\";\nimport SolidMediaMultipleColumn from \"./columns/SolidMediaMultipleColumn\";\nimport SolidMediaSingleColumn from \"./columns/SolidMediaSingleColumn\";\nimport SolidRelationColumn from \"./columns/SolidRelationColumn\";\nimport SolidRichTextColumn from \"./columns/SolidRichTextColumn\";\nimport SolidSelectionDynamicColumn from \"./columns/SolidSelectionDynamicColumn\";\nimport SolidSelectionStaticColumn from \"./columns/SolidSelectionStaticColumn\";\nimport SolidShortTextColumn from \"./columns/SolidShortTextColumn\";\nimport SolidTimeColumn from \"./columns/SolidTimeColumn\";\nimport SolidUuidColumn from \"./columns/SolidUuidColumn\";\n\nexport type SolidListViewColumnParams = {\n solidListViewMetaData: any;\n fieldMetadata: any,\n column: any,\n setLightboxUrls?: any,\n setOpenLightbox?: any,\n embeded?: boolean,\n recordClickAction?: 'view' | 'edit'; \n};\n\nexport const isFieldSortable = (fieldMetadata: any): boolean => {\n if (!fieldMetadata) return false;\n const type = fieldMetadata.type;\n if (type === 'mediaSingle' || type === 'mediaMultiple') return false;\n if (type === 'relation') return fieldMetadata.relationType === 'many-to-one';\n return true;\n};\n\nexport const getNumberOfInputs = (matchMode: any): number | null => {\n if (matchMode.label && matchMode.label === 'Not In') {\n matchMode = 'notIn';\n }\n\n switch (matchMode) {\n case 'between':\n return 2;\n case 'in':\n case 'notIn':\n return null;\n case 'startsWith':\n case 'contains':\n case 'notContains':\n case 'endsWith':\n case 'equals':\n case 'notEquals':\n case 'lt':\n case 'lte':\n case 'gt':\n case 'gte':\n return 1;\n default:\n return 1; // Default to single input if no specific match is found\n }\n}\n\nconst mergeClassNames = (...classNames: Array<string | undefined | null | false>) =>\n classNames.filter(Boolean).join(\" \");\n\nconst mergeStyles = (...styles: Array<React.CSSProperties | undefined | null>) =>\n styles.reduce<React.CSSProperties>((mergedStyles, style) => {\n return style ? { ...mergedStyles, ...style } : mergedStyles;\n }, {});\n\nexport const applyListColumnLayoutAttrs = (columnElement: React.ReactNode, column: any) => {\n if (!React.isValidElement(columnElement)) {\n return columnElement;\n }\n\n const attrs = column?.attrs ?? {};\n const props = columnElement.props as any;\n const className = mergeClassNames(\n props.className,\n attrs.className,\n attrs.columnClassName,\n attrs.cellClassName,\n );\n const headerClassName = mergeClassNames(\n props.headerClassName,\n attrs.headerClassName,\n );\n const style = mergeStyles(\n props.style,\n attrs.style,\n attrs.columnStyle,\n attrs.cellStyle,\n );\n const headerStyle = mergeStyles(\n props.headerStyle,\n attrs.headerStyle,\n );\n\n return React.cloneElement(columnElement, {\n className: className || undefined,\n headerClassName: headerClassName || undefined,\n style: Object.keys(style).length > 0 ? style : undefined,\n headerStyle: Object.keys(headerStyle).length > 0 ? headerStyle : undefined,\n } as any);\n};\n\n// // @ts-ignore\n// const components = require.context('./columns', false, /Solid.*Column\\.tsx$/);\n\n// // Define a function to dynamically load components based on type\n// const loadComponentByType = async (type: string) => {\n// try {\n// const componentName = `./columns/Solid${type.charAt(0).toUpperCase() + type.slice(1)}Column.tsx`;\n\n// // Dynamically import the component based on type\n// const componentModule = await import(componentName);\n\n// return componentModule.default;\n// } catch (error) {\n// console.error(`Failed to load component for type: ${type}`, error);\n// return null;\n// }\n// };\n\nexport const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded, recordClickAction }: SolidListViewColumnParams) => {\n\n if (!isFieldSortable(fieldMetadata) && column?.attrs?.sortable) {\n column = { ...column, attrs: { ...column.attrs, sortable: false } };\n }\n\n let renderedColumn: React.ReactNode;\n\n // And finally we can implement additional switching logic based on certain special fields. \n if (fieldMetadata.name === 'id') {\n renderedColumn = SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'int') {\n renderedColumn = SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'bigint') {\n renderedColumn = SolidBigintColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'float') {\n renderedColumn = SolidFloatColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'decimal') {\n renderedColumn = SolidDecimalColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'shortText') {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'longText') {\n renderedColumn = SolidLongTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'richText') {\n renderedColumn = SolidRichTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'email') {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'boolean') {\n renderedColumn = SolidBooleanColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'date') {\n renderedColumn = SolidDateColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'datetime') {\n renderedColumn = SolidDatetimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'time') {\n renderedColumn = SolidTimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'relation') {\n renderedColumn = SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded, recordClickAction });\n }\n else if (fieldMetadata.type === 'mediaSingle') {\n renderedColumn = SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'mediaMultiple') {\n renderedColumn = SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n else if (fieldMetadata.type === 'selectionStatic') {\n renderedColumn = SolidSelectionStaticColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'selectionDynamic') {\n renderedColumn = SolidSelectionDynamicColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'computed') {\n renderedColumn = SolidComputedColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'externalId') {\n renderedColumn = SolidExternalIdColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else if (fieldMetadata.type === 'uuid') {\n renderedColumn = SolidUuidColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n else {\n renderedColumn = SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n\n return applyListColumnLayoutAttrs(renderedColumn, column);\n // // Load everything else based on type and dynamically.\n // else {\n // const ComponentFound = await loadComponentByType(fieldMetadata.type);\n // const ComponentNotFound = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => (\n // <Column\n // key={fieldMetadata.name}\n // field={fieldMetadata.name}\n // header={fieldMetadata.displayName}\n // className=\"text-sm\"\n // sortable={false}\n // filter={false}\n // showFilterOperator={false}\n // body={() => (<span>Type not supported</span>)}\n // style={{ minWidth: \"12rem\" }}\n // headerClassName=\"table-header-fs\"\n // ></Column>\n // );\n\n // return ComponentFound ? ComponentFound({ solidListViewMetaData, fieldMetadata, column }) : ComponentNotFound({ solidListViewMetaData, fieldMetadata, column });\n // }\n\n // TODO: we can implement additional switching logic based on the widget type being used to render the list view column.\n\n};\n"]}
|
|
@@ -25,7 +25,8 @@ export type SolidListViewColumnParams = {
|
|
|
25
25
|
column: any,
|
|
26
26
|
setLightboxUrls?: any,
|
|
27
27
|
setOpenLightbox?: any,
|
|
28
|
-
embeded?: boolean
|
|
28
|
+
embeded?: boolean,
|
|
29
|
+
recordClickAction?: 'view' | 'edit';
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
export const isFieldSortable = (fieldMetadata: any): boolean => {
|
|
@@ -125,7 +126,7 @@ export const applyListColumnLayoutAttrs = (columnElement: React.ReactNode, colum
|
|
|
125
126
|
// }
|
|
126
127
|
// };
|
|
127
128
|
|
|
128
|
-
export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => {
|
|
129
|
+
export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded, recordClickAction }: SolidListViewColumnParams) => {
|
|
129
130
|
|
|
130
131
|
if (!isFieldSortable(fieldMetadata) && column?.attrs?.sortable) {
|
|
131
132
|
column = { ...column, attrs: { ...column.attrs, sortable: false } };
|
|
@@ -174,7 +175,7 @@ export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, colu
|
|
|
174
175
|
renderedColumn = SolidTimeColumn({ solidListViewMetaData, fieldMetadata, column });
|
|
175
176
|
}
|
|
176
177
|
else if (fieldMetadata.type === 'relation') {
|
|
177
|
-
renderedColumn = SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded });
|
|
178
|
+
renderedColumn = SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded, recordClickAction });
|
|
178
179
|
}
|
|
179
180
|
else if (fieldMetadata.type === 'mediaSingle') {
|
|
180
181
|
renderedColumn = SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
|
|
@@ -158,7 +158,7 @@ export var SolidListViewConfigure = function (_a) {
|
|
|
158
158
|
true) && _jsx(SolidDropdownMenuSeparator, {}), isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes("".concat(permissionExpression('userViewMetadata', 'create'))) && (_jsxs(SolidDropdownMenuSub, { children: [_jsxs(SolidDropdownMenuSubTrigger, { className: "solid-header-dropdown-item", children: [_jsx(SlidersHorizontal, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Layout" })] }), _jsxs(SolidDropdownMenuSubContent, { className: "customize-layout-panel", children: [showSwitchType && (_jsxs(_Fragment, { children: [_jsx(SolidDropdownMenuLabel, { children: "Switch Type" }), _jsx(SolidDropdownMenuRadioGroup, { value: view, onValueChange: handleViewTypeChange, children: visibleViewModes.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.type, children: capitalize(option.type) }, option.type)); }) }), _jsx(SolidDropdownMenuSeparator, {})] })), _jsx(SolidDropdownMenuLabel, { children: "Row Spacing" }), _jsx(SolidDropdownMenuRadioGroup, { value: size, onValueChange: function (value) { return setSize(value); }, children: sizeOptions.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.value, children: option.label }, option.value)); }) }), _jsx(SolidDropdownMenuSeparator, {}), _jsxs(SolidDropdownMenuItem, { onSelect: function () {
|
|
159
159
|
setShowColumnSelectorDialog(true);
|
|
160
160
|
setIsCogMenuOpen(false);
|
|
161
|
-
}, children: [_jsx(Table, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "
|
|
161
|
+
}, children: [_jsx(Table, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Columns" })] })] })] })), isHeaderActionEnabled('savedFilters') && actionsAllowed.includes("".concat(permissionExpression('savedFilters', 'create'))) && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
|
|
162
162
|
setShowSaveFilterPopup(true);
|
|
163
163
|
setIsCogMenuOpen(false);
|
|
164
164
|
}, children: [_jsx(Save, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Save Custom Filter" })] })), _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
|