@solidxai/core-ui 0.1.3 → 0.1.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +7 -5
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +10 -8
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +48 -47
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +41 -10
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +1 -1
- package/dist/components/core/common/GroupingComponent.d.ts +54 -0
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
- package/dist/components/core/common/GroupingComponent.js +196 -0
- package/dist/components/core/common/GroupingComponent.js.map +1 -0
- package/dist/components/core/common/GroupingComponent.tsx +452 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +146 -47
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +191 -18
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
- package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
- package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
- package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
- package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
- package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
- package/dist/components/core/form/SolidFormFooter.js +4 -4
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +4 -4
- package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +51 -0
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +51 -0
- package/dist/components/core/kanban/SolidKanbanView.js +5 -5
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
- package/dist/components/core/list/SolidListView.d.ts +12 -7
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +138 -150
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +84 -91
- package/dist/components/core/list/listViewRegistry.js.map +1 -1
- package/dist/components/core/list/listViewRegistry.ts +1 -2
- package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
- package/dist/components/core/tree/SolidTreeView.js +1170 -0
- package/dist/components/core/tree/SolidTreeView.js.map +1 -0
- package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
- package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.js +17 -0
- package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
- package/dist/components/core/tree/treeViewRegistry.ts +23 -0
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +19 -6
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +39 -0
- package/dist/helpers/helpers.d.ts +2 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +3 -1
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +4 -1
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +2 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +6 -1
- package/dist/resources/globals.css +18 -4
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +2 -1
- package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
- package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.js +37 -0
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
- package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +3 -1
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/index.d.ts +8 -2
- package/dist/types/solid-core.d.ts +40 -0
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ const getRandomInt = (min: number, max: number) => {
|
|
|
66
66
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
export const
|
|
69
|
+
export const getFilterObjectFromLocalStorage = () => {
|
|
70
70
|
const currentPageUrl = window.location.pathname; // Get the current page URL
|
|
71
71
|
const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
|
|
72
72
|
|
|
@@ -85,7 +85,7 @@ export const queryStringToQueryObject = () => {
|
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
export const
|
|
88
|
+
export const getFilterObjectFromLocalStorageByUrl = (url) => {
|
|
89
89
|
const currentPageUrl = url; // Get the current page URL
|
|
90
90
|
const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
|
|
91
91
|
|
|
@@ -103,7 +103,7 @@ export const queryStringToQueryObjectByUrl = (url) => {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
export const
|
|
106
|
+
export const setFilterObjectToLocalStorage = (queryObject: string) => {
|
|
107
107
|
if (queryObject) {
|
|
108
108
|
const stringifiedObject = JSON.stringify(queryObject);
|
|
109
109
|
// const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: "brackets" });
|
|
@@ -116,7 +116,7 @@ export const queryObjectToQueryString = (queryObject: string) => {
|
|
|
116
116
|
};
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
export const
|
|
119
|
+
export const setFilterObjectToLocalStorageByUrl = (url, queryObject: string) => {
|
|
120
120
|
if (queryObject) {
|
|
121
121
|
const stringifiedObject = JSON.stringify(queryObject);
|
|
122
122
|
// const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: "brackets" });
|
|
@@ -175,7 +175,7 @@ export type SolidListViewHandle = {
|
|
|
175
175
|
* Updates sorting state and resets page offset to the first page.
|
|
176
176
|
* Use this for programmatic sort controls to match DataTable behavior.
|
|
177
177
|
*/
|
|
178
|
-
setSort: (
|
|
178
|
+
setSort: (nextMultiSortMeta: { field: string; order: 1 | -1 }[]) => void;
|
|
179
179
|
/**
|
|
180
180
|
* Toggles inclusion of archived/soft-deleted records.
|
|
181
181
|
* Use this to switch between active-only and inclusive list views.
|
|
@@ -188,8 +188,7 @@ export type SolidListViewHandle = {
|
|
|
188
188
|
getState: () => {
|
|
189
189
|
first: number;
|
|
190
190
|
rows: number;
|
|
191
|
-
|
|
192
|
-
sortOrder: 1 | -1 | 0;
|
|
191
|
+
multiSortMeta: { field: string; order: 1 | -1 }[];
|
|
193
192
|
showArchived: boolean;
|
|
194
193
|
filters: any;
|
|
195
194
|
filterPredicates: any;
|
|
@@ -217,8 +216,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
217
216
|
const [totalRecords, setTotalRecords] = useState(0);
|
|
218
217
|
const [first, setFirst] = useState(0);
|
|
219
218
|
const [rows, setRows] = useState(solidListViewLayout?.attrs?.defaultPageSize ? solidListViewLayout?.attrs?.defaultPageSize : 10);
|
|
220
|
-
const [
|
|
221
|
-
const [sortOrder, setSortOrder] = useState(-1);
|
|
219
|
+
const [multiSortMeta, setMultiSortMeta] = useState<{ field: string; order: 1 | -1 }[]>([{ field: "id", order: -1 }]);
|
|
222
220
|
const [toPopulate, setToPopulate] = useState<string[]>([]);
|
|
223
221
|
const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);
|
|
224
222
|
|
|
@@ -488,9 +486,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
488
486
|
const populate = toPopulate;
|
|
489
487
|
const populateMedia = toPopulateMedia;
|
|
490
488
|
const rows = currentLayout?.attrs?.defaultPageSize ?? 25;
|
|
491
|
-
const
|
|
492
|
-
|
|
493
|
-
return { sortField, sortOrder, rows, populate, populateMedia };
|
|
489
|
+
const multiSortMeta = [{ field: "id", order: -1 }];
|
|
490
|
+
return { multiSortMeta, rows, populate, populateMedia };
|
|
494
491
|
};
|
|
495
492
|
|
|
496
493
|
|
|
@@ -646,7 +643,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
646
643
|
);
|
|
647
644
|
setQueryDataLoaded(false)
|
|
648
645
|
if (solidListViewMetaData && solidListViewLayout) {
|
|
649
|
-
const queryObject =
|
|
646
|
+
const queryObject = getFilterObjectFromLocalStorage();
|
|
650
647
|
|
|
651
648
|
if (queryObject) {
|
|
652
649
|
const queryData = {
|
|
@@ -654,51 +651,29 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
654
651
|
limit: queryObject.limit || 25,
|
|
655
652
|
populate: queryObject.populate,
|
|
656
653
|
populateMedia: queryObject.populateMedia,
|
|
657
|
-
sort: queryObject.sort
|
|
658
|
-
? queryObject.sort?.map((sortItem: string) => {
|
|
659
|
-
const [field, order] = sortItem.split(":");
|
|
660
|
-
return { field, order };
|
|
661
|
-
})
|
|
662
|
-
: [`id:desc`],
|
|
654
|
+
sort: queryObject.sort,
|
|
663
655
|
filters: queryObject.filters,
|
|
664
656
|
};
|
|
665
|
-
|
|
666
|
-
// $and: [],
|
|
667
|
-
// };
|
|
668
|
-
|
|
669
|
-
// if (queryObject.custom_filter_predicate) {
|
|
670
|
-
// filters.$and.push(queryObject.custom_filter_predicate);
|
|
671
|
-
// }
|
|
672
|
-
// if (queryObject.search_predicate) {
|
|
673
|
-
// filters.$and.push(queryObject.search_predicate);
|
|
674
|
-
// }
|
|
675
|
-
// if (queryObject.saved_filter_predicate) {
|
|
676
|
-
// filters.$and.push(queryObject.saved_filter_predicate);
|
|
677
|
-
// }
|
|
678
|
-
// if (queryObject.predefined_search_predicate) {
|
|
679
|
-
// filters.$and.push(queryObject.predefined_search_predicate);
|
|
680
|
-
// }
|
|
681
|
-
|
|
682
|
-
// if (queryObject.s_filter) {
|
|
683
|
-
// filters.$and.push(queryObject.s_filter);
|
|
684
|
-
// }
|
|
685
|
-
// if (queryObject.c_filter) {
|
|
686
|
-
// filters.$and.push(queryObject.c_filter);
|
|
687
|
-
// }
|
|
657
|
+
|
|
688
658
|
setRows(Number(queryData.limit));
|
|
689
659
|
setFirst(Number(queryData?.offset));
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
660
|
+
const parsedMultiSortMeta: { field: string; order: 1 | -1 }[] =
|
|
661
|
+
Array.isArray(queryData.sort) && queryData.sort.length > 0
|
|
662
|
+
? queryData.sort.map((sortItem: string) => {
|
|
663
|
+
const [field, order] = sortItem.split(":");
|
|
664
|
+
return { field, order: order === "asc" ? 1 : -1 } as { field: string; order: 1 | -1 };
|
|
665
|
+
})
|
|
666
|
+
: [{ field: "id", order: -1 }];
|
|
667
|
+
|
|
668
|
+
setMultiSortMeta(parsedMultiSortMeta);
|
|
669
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
694
670
|
setToPopulate(populate);
|
|
695
671
|
setToPopulateMedia(populateMedia);
|
|
696
672
|
|
|
697
673
|
} else {
|
|
698
|
-
const {
|
|
674
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
699
675
|
setRows(rows);
|
|
700
|
-
|
|
701
|
-
setSortOrder(sortOrder);
|
|
676
|
+
setMultiSortMeta(multiSortMeta);
|
|
702
677
|
setToPopulate(populate);
|
|
703
678
|
setToPopulateMedia(populateMedia);
|
|
704
679
|
setFirst(0);
|
|
@@ -777,6 +752,13 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
777
752
|
// Create a ref that always has the latest filters
|
|
778
753
|
const latestFiltersRef = useRef(filters);
|
|
779
754
|
const latestFilterPredicatesRef = useRef(filterPredicates);
|
|
755
|
+
// 1. Add the ref (near the other latestXxxRef declarations)
|
|
756
|
+
const latestMultiSortMetaRef = useRef(multiSortMeta);
|
|
757
|
+
|
|
758
|
+
// 2. Keep it in sync
|
|
759
|
+
useEffect(() => {
|
|
760
|
+
latestMultiSortMetaRef.current = multiSortMeta;
|
|
761
|
+
}, [multiSortMeta]);
|
|
780
762
|
|
|
781
763
|
// Keep refs in sync
|
|
782
764
|
useEffect(() => {
|
|
@@ -789,20 +771,19 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
789
771
|
|
|
790
772
|
|
|
791
773
|
useEffect(() => {
|
|
792
|
-
console.log(`useEffect: [first- ${first}, rows- ${rows},
|
|
774
|
+
console.log(`useEffect: [first- ${first}, rows- ${rows}, multiSortMeta- ${multiSortMeta}, showArchived- ${showArchived}, toPopulate- ${toPopulate}, toPopulateMedia- ${toPopulateMedia}, queryDataLoaded- ${queryDataLoaded}, filterPredicates- ${filterPredicates}]`);
|
|
793
775
|
if (queryDataLoaded && filters && (filterPredicates || params.embeded == true)) {
|
|
794
776
|
setQueryString();
|
|
795
777
|
}
|
|
796
778
|
}, [
|
|
797
779
|
first,
|
|
798
780
|
rows,
|
|
799
|
-
|
|
800
|
-
sortOrder,
|
|
801
|
-
filters,
|
|
781
|
+
multiSortMeta,
|
|
802
782
|
showArchived,
|
|
803
783
|
toPopulate,
|
|
804
784
|
toPopulateMedia,
|
|
805
785
|
queryDataLoaded,
|
|
786
|
+
filters,
|
|
806
787
|
filterPredicates
|
|
807
788
|
]);
|
|
808
789
|
|
|
@@ -813,13 +794,27 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
813
794
|
};
|
|
814
795
|
|
|
815
796
|
// Handle sort event.
|
|
797
|
+
// const onSort = (event: DataTableStateEvent) => {
|
|
798
|
+
// const { sortField, sortOrder } = event;
|
|
799
|
+
// const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
|
|
800
|
+
// setSortField(sortField);
|
|
801
|
+
// setSortOrder(validSortOrder);
|
|
802
|
+
// setFirst(0);
|
|
803
|
+
|
|
804
|
+
// };
|
|
805
|
+
|
|
816
806
|
const onSort = (event: DataTableStateEvent) => {
|
|
817
|
-
const
|
|
818
|
-
const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;
|
|
819
|
-
setSortField(sortField);
|
|
820
|
-
setSortOrder(validSortOrder);
|
|
821
|
-
setFirst(0);
|
|
807
|
+
const meta = event.multiSortMeta || [];
|
|
822
808
|
|
|
809
|
+
const validMeta = meta
|
|
810
|
+
.filter((m) => m.order === 1 || m.order === -1)
|
|
811
|
+
.map((m) => ({
|
|
812
|
+
field: m.field,
|
|
813
|
+
order: m.order as 1 | -1,
|
|
814
|
+
}));
|
|
815
|
+
|
|
816
|
+
setMultiSortMeta(validMeta);
|
|
817
|
+
setFirst(0);
|
|
823
818
|
};
|
|
824
819
|
|
|
825
820
|
// handle change in the records which are currently selected...
|
|
@@ -853,22 +848,23 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
853
848
|
|
|
854
849
|
|
|
855
850
|
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
}
|
|
867
|
-
|
|
851
|
+
// ✅ Use ref instead of stale closure value
|
|
852
|
+
const currentSortMeta = latestMultiSortMetaRef.current;
|
|
853
|
+
|
|
854
|
+
if (currentSortMeta && currentSortMeta.length > 0) {
|
|
855
|
+
queryData.sort = currentSortMeta.map(({ field, order }) => {
|
|
856
|
+
const meta = solidFieldsMetadata?.[field];
|
|
857
|
+
let resolvedField = field;
|
|
858
|
+
if (meta?.type === "relation" && meta?.relationType === "many-to-one") {
|
|
859
|
+
resolvedField = `${field}.${meta?.relationModel?.userKeyField?.name}`;
|
|
860
|
+
}
|
|
861
|
+
return `${resolvedField}:${order === 1 ? "asc" : "desc"}`;
|
|
862
|
+
});
|
|
868
863
|
} else {
|
|
869
864
|
queryData.sort = [`id:desc`];
|
|
870
865
|
}
|
|
871
866
|
|
|
867
|
+
|
|
872
868
|
if (showArchived) {
|
|
873
869
|
queryData.showSoftDeleted = "inclusive";
|
|
874
870
|
}
|
|
@@ -910,14 +906,13 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
910
906
|
const queryString = qs.stringify(queryData, { encodeValuesOnly: true });
|
|
911
907
|
|
|
912
908
|
if (latestFilterPredicatesRef.current && latestFilterPredicatesRef.current.persistFilter) {
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
queryObjectToQueryString(urlData);
|
|
909
|
+
const fileterTobeStored = structuredClone(queryData);
|
|
910
|
+
delete fileterTobeStored.filters;
|
|
911
|
+
fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;
|
|
912
|
+
fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
|
|
913
|
+
fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;
|
|
914
|
+
fileterTobeStored.predefined_search_predicate = latestFilterPredicatesRef.current.predefined_search_predicate || null;
|
|
915
|
+
setFilterObjectToLocalStorage(fileterTobeStored);
|
|
921
916
|
}
|
|
922
917
|
triggerGetSolidEntities(queryString);
|
|
923
918
|
};
|
|
@@ -956,10 +951,9 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
956
951
|
// clear Filter
|
|
957
952
|
const clearFilter = () => {
|
|
958
953
|
if (solidListViewMetaData) {
|
|
959
|
-
const {
|
|
954
|
+
const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();
|
|
960
955
|
setRows(rows);
|
|
961
|
-
|
|
962
|
-
setSortOrder(sortOrder);
|
|
956
|
+
setMultiSortMeta(multiSortMeta);
|
|
963
957
|
setToPopulate(populate);
|
|
964
958
|
setToPopulateMedia(populateMedia);
|
|
965
959
|
}
|
|
@@ -993,9 +987,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
993
987
|
setFirst(nextFirst);
|
|
994
988
|
setRows(nextRows);
|
|
995
989
|
},
|
|
996
|
-
setSort: (
|
|
997
|
-
|
|
998
|
-
setSortOrder(nextSortOrder);
|
|
990
|
+
setSort: (nextMultiSortMeta) => {
|
|
991
|
+
setMultiSortMeta(nextMultiSortMeta);
|
|
999
992
|
setFirst(0);
|
|
1000
993
|
},
|
|
1001
994
|
setShowArchived: (value) => {
|
|
@@ -1004,8 +997,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1004
997
|
getState: () => ({
|
|
1005
998
|
first,
|
|
1006
999
|
rows,
|
|
1007
|
-
|
|
1008
|
-
sortOrder,
|
|
1000
|
+
multiSortMeta,
|
|
1009
1001
|
showArchived,
|
|
1010
1002
|
filters,
|
|
1011
1003
|
filterPredicates,
|
|
@@ -1016,8 +1008,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1016
1008
|
}), [
|
|
1017
1009
|
first,
|
|
1018
1010
|
rows,
|
|
1019
|
-
|
|
1020
|
-
sortOrder,
|
|
1011
|
+
multiSortMeta,
|
|
1021
1012
|
showArchived,
|
|
1022
1013
|
filters,
|
|
1023
1014
|
filterPredicates,
|
|
@@ -1408,6 +1399,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1408
1399
|
<div className="hidden lg:flex">
|
|
1409
1400
|
<SolidGlobalSearchElement
|
|
1410
1401
|
key={params.modelName}
|
|
1402
|
+
viewType="list"
|
|
1411
1403
|
showSaveFilterPopup={showSaveFilterPopup}
|
|
1412
1404
|
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1413
1405
|
ref={solidGlobalSearchElementRef}
|
|
@@ -1537,6 +1529,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1537
1529
|
params.embeded === false && (
|
|
1538
1530
|
<div className="flex lg:hidden">
|
|
1539
1531
|
<SolidGlobalSearchElement
|
|
1532
|
+
viewType="list"
|
|
1540
1533
|
showSaveFilterPopup={showSaveFilterPopup}
|
|
1541
1534
|
setShowSaveFilterPopup={setShowSaveFilterPopup}
|
|
1542
1535
|
ref={solidGlobalSearchElementRef}
|
|
@@ -1612,8 +1605,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1612
1605
|
first={first}
|
|
1613
1606
|
onPage={onPageChange}
|
|
1614
1607
|
onSort={(e: DataTableStateEvent) => onSort(e)}
|
|
1615
|
-
|
|
1616
|
-
sortOrder={sortOrder === 1 || sortOrder === -1 ? sortOrder : 0}
|
|
1608
|
+
multiSortMeta={multiSortMeta}
|
|
1617
1609
|
loading={false}
|
|
1618
1610
|
// loading={loading || isLoading}
|
|
1619
1611
|
// loadingIcon="pi pi-spinner"
|
|
@@ -1626,7 +1618,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
|
|
|
1626
1618
|
params.embeded === true ? undefined : onSelectionChange
|
|
1627
1619
|
}
|
|
1628
1620
|
selectionMode={params.embeded === true ? null : "checkbox"}
|
|
1629
|
-
removableSort
|
|
1621
|
+
removableSort={solidListViewLayout?.attrs?.removableSort ?? true}
|
|
1622
|
+
sortMode={solidListViewLayout?.attrs?.sortMode ?? "multiple"}
|
|
1630
1623
|
filterIcon={<FilterIcon />}
|
|
1631
1624
|
tableClassName="solid-data-table"
|
|
1632
1625
|
paginatorClassName="solid-paginator"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listViewRegistry.js","sourceRoot":"","sources":["../../../../src/components/core/list/listViewRegistry.ts"],"names":[],"mappings":"AAEA,IAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEhE,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,MAAc,EAAE,MAA2B;IAC1E,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,MAAc;IAC/C,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,MAAc;IACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,MAAc;IACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,wBAAwB,GAAG;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC","sourcesContent":["import type { SolidListViewHandle } from \"./SolidListView\";\n\nconst listViewRegistry = new Map<string, SolidListViewHandle>();\n\nexport const registerListView = (listId: string, handle: SolidListViewHandle): void => {\n listViewRegistry.set(listId, handle);\n};\n\nexport const unregisterListView = (listId: string): void => {\n listViewRegistry.delete(listId);\n};\n\nexport const getListView = (listId: string): SolidListViewHandle | undefined => {\n return listViewRegistry.get(listId);\n};\n\nexport const hasListView = (listId: string): boolean => {\n return listViewRegistry.has(listId);\n};\n\nexport const getRegisteredListViewIds = (): string[] => {\n return Array.from(listViewRegistry.keys());\n}
|
|
1
|
+
{"version":3,"file":"listViewRegistry.js","sourceRoot":"","sources":["../../../../src/components/core/list/listViewRegistry.ts"],"names":[],"mappings":"AAEA,IAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEhE,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,MAAc,EAAE,MAA2B;IAC1E,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,MAAc;IAC/C,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,MAAc;IACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,MAAc;IACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,wBAAwB,GAAG;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC","sourcesContent":["import type { SolidListViewHandle } from \"./SolidListView\";\n\nconst listViewRegistry = new Map<string, SolidListViewHandle>();\n\nexport const registerListView = (listId: string, handle: SolidListViewHandle): void => {\n listViewRegistry.set(listId, handle);\n};\n\nexport const unregisterListView = (listId: string): void => {\n listViewRegistry.delete(listId);\n};\n\nexport const getListView = (listId: string): SolidListViewHandle | undefined => {\n return listViewRegistry.get(listId);\n};\n\nexport const hasListView = (listId: string): boolean => {\n return listViewRegistry.has(listId);\n};\n\nexport const getRegisteredListViewIds = (): string[] => {\n return Array.from(listViewRegistry.keys());\n};"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidTreeViewParams = {
|
|
3
|
+
moduleName: string;
|
|
4
|
+
modelName: string;
|
|
5
|
+
inlineCreate?: boolean;
|
|
6
|
+
handlePopUpOpen?: any;
|
|
7
|
+
embeded?: boolean;
|
|
8
|
+
customLayout?: any;
|
|
9
|
+
customFilter?: any;
|
|
10
|
+
};
|
|
11
|
+
export type SolidTreeViewHandle = {
|
|
12
|
+
refresh: () => void;
|
|
13
|
+
clearFilters: () => void;
|
|
14
|
+
applyFilter: (filter: {
|
|
15
|
+
custom_filter_predicate?: any;
|
|
16
|
+
search_predicate?: any;
|
|
17
|
+
saved_filter_predicate?: any;
|
|
18
|
+
predefined_search_predicate?: any;
|
|
19
|
+
}) => void;
|
|
20
|
+
setPagination: (nextFirst: number, nextRows: number) => void;
|
|
21
|
+
setSort: (nextSortField: string, nextSortOrder: 1 | -1 | 0) => void;
|
|
22
|
+
setShowArchived: (value: boolean) => void;
|
|
23
|
+
getState: () => {
|
|
24
|
+
first: number;
|
|
25
|
+
rows: number;
|
|
26
|
+
sortField: string;
|
|
27
|
+
sortOrder: 1 | -1 | 0;
|
|
28
|
+
showArchived: boolean;
|
|
29
|
+
filters: any;
|
|
30
|
+
filterPredicates: any;
|
|
31
|
+
listData: any[];
|
|
32
|
+
totalRecords: number;
|
|
33
|
+
loading: boolean;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export declare const SolidTreeView: React.ForwardRefExoticComponent<SolidTreeViewParams & React.RefAttributes<SolidTreeViewHandle>>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=SolidTreeView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/tree/SolidTreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAqCf,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAsCF,eAAO,MAAM,aAAa,iGA48CxB,CAAC"}
|