@solidxai/core-ui 0.1.13-beta.0 → 0.1.13-beta.1
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/adapters/auth/sessionInvalidation.d.ts +3 -0
- package/dist/adapters/auth/sessionInvalidation.d.ts.map +1 -0
- package/dist/adapters/auth/sessionInvalidation.js +70 -0
- package/dist/adapters/auth/sessionInvalidation.js.map +1 -0
- package/dist/adapters/auth/sessionInvalidation.ts +22 -0
- package/dist/adapters/auth/signOut.d.ts.map +1 -1
- package/dist/adapters/auth/signOut.js +0 -2
- package/dist/adapters/auth/signOut.js.map +1 -1
- package/dist/adapters/auth/signOut.ts +0 -2
- 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 +2 -0
- package/dist/components/core/card/CardItem.d.ts +1 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +2 -2
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +11 -0
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +82 -30
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +68 -7
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +4 -14
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +4 -15
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +2 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +3 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +2 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +2 -1
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +32 -2
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +3 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
- package/dist/components/core/common/globalSearchPersistence.d.ts +7 -0
- package/dist/components/core/common/globalSearchPersistence.d.ts.map +1 -0
- package/dist/components/core/common/globalSearchPersistence.js +89 -0
- package/dist/components/core/common/globalSearchPersistence.js.map +1 -0
- package/dist/components/core/common/globalSearchPersistence.ts +88 -0
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +6 -8
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +36 -55
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +2 -2
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts +0 -6
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +1 -89
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +5 -95
- package/dist/components/core/model/CreateModel.css +1 -0
- package/dist/components/core/module/CreateModule.css +1 -0
- package/dist/components/core/module/CreateModule.js +1 -1
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +1 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +135 -41
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +96 -34
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +2 -0
- package/dist/http/solidHttp.d.ts.map +1 -1
- package/dist/http/solidHttp.js +28 -16
- package/dist/http/solidHttp.js.map +1 -1
- package/dist/http/solidHttp.ts +7 -1
- package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
- package/dist/redux/api/fetchBaseQuery.js +25 -19
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +5 -0
- package/dist/redux/api/solidChatterMessageApi.d.ts +2 -2
- package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.js +3 -3
- package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.ts +3 -3
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -1
- package/dist/resources/solid-custom.css +5 -1
- package/dist/routes/pages/admin/core/DashboardPage.module.css +4 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { toTitleCase } from "../../../helpers/helpers";
|
|
|
4
4
|
import { usePathname } from "../../../hooks/usePathname";
|
|
5
5
|
import { useRouter } from "../../../hooks/useRouter";
|
|
6
6
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
7
|
-
import { getFilterObjectFromLocalStorage } from "
|
|
7
|
+
import { getFilterObjectFromLocalStorage } from "./globalSearchPersistence";
|
|
8
8
|
import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
|
|
9
9
|
import qs from "qs";
|
|
10
10
|
import { SolidSaveCustomFilterForm } from "./SolidSaveCustomFilterForm";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const hasMeaningfulPersistedFilter: (filterObject: any) => boolean;
|
|
2
|
+
export declare const hasStoredFilterPredicates: (queryObject: any) => boolean;
|
|
3
|
+
export declare const getFilterObjectFromLocalStorage: () => any;
|
|
4
|
+
export declare const getFilterObjectFromLocalStorageByUrl: (url: string) => any;
|
|
5
|
+
export declare const setFilterObjectToLocalStorage: (queryObject: any) => string | null;
|
|
6
|
+
export declare const setFilterObjectToLocalStorageByUrl: (url: string, queryObject: any) => string | null;
|
|
7
|
+
//# sourceMappingURL=globalSearchPersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalSearchPersistence.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/globalSearchPersistence.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,4BAA4B,iBAAkB,GAAG,KAAG,OAgBhE,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBAAiB,GAAG,KAAG,OAIW,CAAC;AAEzE,eAAO,MAAM,+BAA+B,WAgB3C,CAAC;AAEF,eAAO,MAAM,oCAAoC,QAAS,MAAM,QAe/D,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAAiB,GAAG,kBAQ7D,CAAC;AAEF,eAAO,MAAM,kCAAkC,QAAS,MAAM,eAAe,GAAG,kBAO/E,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
2
|
+
var hasMeaningfulPersistedFilterValue = function (value) {
|
|
3
|
+
if (value === null || value === undefined)
|
|
4
|
+
return false;
|
|
5
|
+
if (typeof value === "string")
|
|
6
|
+
return value.trim().length > 0;
|
|
7
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
8
|
+
return true;
|
|
9
|
+
if (Array.isArray(value))
|
|
10
|
+
return value.some(function (item) { return hasMeaningfulPersistedFilterValue(item); });
|
|
11
|
+
if (typeof value === "object")
|
|
12
|
+
return hasMeaningfulPersistedFilter(value);
|
|
13
|
+
return false;
|
|
14
|
+
};
|
|
15
|
+
export var hasMeaningfulPersistedFilter = function (filterObject) {
|
|
16
|
+
if (!filterObject || typeof filterObject !== "object")
|
|
17
|
+
return false;
|
|
18
|
+
if (Array.isArray(filterObject)) {
|
|
19
|
+
return filterObject.some(function (item) { return hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item); });
|
|
20
|
+
}
|
|
21
|
+
return Object.entries(filterObject).some(function (_a) {
|
|
22
|
+
var key = _a[0], value = _a[1];
|
|
23
|
+
if (key === "matchMode" || key === "operator")
|
|
24
|
+
return false;
|
|
25
|
+
if (key === "value")
|
|
26
|
+
return hasMeaningfulPersistedFilterValue(value);
|
|
27
|
+
if ((key === "$and" || key === "$or") && Array.isArray(value)) {
|
|
28
|
+
return value.some(function (item) { return hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item); });
|
|
29
|
+
}
|
|
30
|
+
if (typeof value === "object")
|
|
31
|
+
return hasMeaningfulPersistedFilter(value);
|
|
32
|
+
return hasMeaningfulPersistedFilterValue(value);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
export var hasStoredFilterPredicates = function (queryObject) {
|
|
36
|
+
return hasMeaningfulPersistedFilter(queryObject === null || queryObject === void 0 ? void 0 : queryObject.custom_filter_predicate) ||
|
|
37
|
+
hasMeaningfulPersistedFilter(queryObject === null || queryObject === void 0 ? void 0 : queryObject.search_predicate) ||
|
|
38
|
+
hasMeaningfulPersistedFilter(queryObject === null || queryObject === void 0 ? void 0 : queryObject.saved_filter_predicate) ||
|
|
39
|
+
hasMeaningfulPersistedFilter(queryObject === null || queryObject === void 0 ? void 0 : queryObject.predefined_search_predicate);
|
|
40
|
+
};
|
|
41
|
+
export var getFilterObjectFromLocalStorage = function () {
|
|
42
|
+
if (typeof window === "undefined")
|
|
43
|
+
return null;
|
|
44
|
+
var currentPageUrl = window.location.pathname;
|
|
45
|
+
var encodedQueryString = localStorage.getItem(currentPageUrl);
|
|
46
|
+
if (encodedQueryString) {
|
|
47
|
+
try {
|
|
48
|
+
var decodedQueryString = atob(encodedQueryString);
|
|
49
|
+
return JSON.parse(decodedQueryString);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error(ERROR_MESSAGES.ERROR_DECODING, error);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
};
|
|
57
|
+
export var getFilterObjectFromLocalStorageByUrl = function (url) {
|
|
58
|
+
if (typeof window === "undefined")
|
|
59
|
+
return null;
|
|
60
|
+
var encodedQueryString = localStorage.getItem(url);
|
|
61
|
+
if (encodedQueryString) {
|
|
62
|
+
try {
|
|
63
|
+
var decodedQueryString = atob(encodedQueryString);
|
|
64
|
+
return JSON.parse(decodedQueryString);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error(ERROR_MESSAGES.ERROR_DECODING, error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
export var setFilterObjectToLocalStorage = function (queryObject) {
|
|
73
|
+
if (typeof window === "undefined" || !queryObject)
|
|
74
|
+
return null;
|
|
75
|
+
var stringifiedObject = JSON.stringify(queryObject);
|
|
76
|
+
var encodedQueryString = btoa(stringifiedObject);
|
|
77
|
+
var currentPageUrl = window.location.pathname;
|
|
78
|
+
localStorage.setItem(currentPageUrl, encodedQueryString);
|
|
79
|
+
return encodedQueryString;
|
|
80
|
+
};
|
|
81
|
+
export var setFilterObjectToLocalStorageByUrl = function (url, queryObject) {
|
|
82
|
+
if (typeof window === "undefined" || !queryObject)
|
|
83
|
+
return null;
|
|
84
|
+
var stringifiedObject = JSON.stringify(queryObject);
|
|
85
|
+
var encodedQueryString = btoa(stringifiedObject);
|
|
86
|
+
localStorage.setItem(url, encodedQueryString);
|
|
87
|
+
return encodedQueryString;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=globalSearchPersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalSearchPersistence.js","sourceRoot":"","sources":["../../../../src/components/core/common/globalSearchPersistence.ts"],"names":[],"mappings":"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","sourcesContent":["import { ERROR_MESSAGES } from \"../../../constants/error-messages\";\n\nconst hasMeaningfulPersistedFilterValue = (value: any): boolean => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (typeof value === \"number\" || typeof value === \"boolean\") return true;\n if (Array.isArray(value)) return value.some((item) => hasMeaningfulPersistedFilterValue(item));\n if (typeof value === \"object\") return hasMeaningfulPersistedFilter(value);\n return false;\n};\n\nexport const hasMeaningfulPersistedFilter = (filterObject: any): boolean => {\n if (!filterObject || typeof filterObject !== \"object\") return false;\n\n if (Array.isArray(filterObject)) {\n return filterObject.some((item) => hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item));\n }\n\n return Object.entries(filterObject).some(([key, value]) => {\n if (key === \"matchMode\" || key === \"operator\") return false;\n if (key === \"value\") return hasMeaningfulPersistedFilterValue(value);\n if ((key === \"$and\" || key === \"$or\") && Array.isArray(value)) {\n return value.some((item) => hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item));\n }\n if (typeof value === \"object\") return hasMeaningfulPersistedFilter(value);\n return hasMeaningfulPersistedFilterValue(value);\n });\n};\n\nexport const hasStoredFilterPredicates = (queryObject: any): boolean =>\n hasMeaningfulPersistedFilter(queryObject?.custom_filter_predicate) ||\n hasMeaningfulPersistedFilter(queryObject?.search_predicate) ||\n hasMeaningfulPersistedFilter(queryObject?.saved_filter_predicate) ||\n hasMeaningfulPersistedFilter(queryObject?.predefined_search_predicate);\n\nexport const getFilterObjectFromLocalStorage = () => {\n if (typeof window === \"undefined\") return null;\n\n const currentPageUrl = window.location.pathname;\n const encodedQueryString = localStorage.getItem(currentPageUrl);\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString);\n return JSON.parse(decodedQueryString);\n } catch (error) {\n console.error(ERROR_MESSAGES.ERROR_DECODING, error);\n }\n }\n\n return null;\n};\n\nexport const getFilterObjectFromLocalStorageByUrl = (url: string) => {\n if (typeof window === \"undefined\") return null;\n\n const encodedQueryString = localStorage.getItem(url);\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString);\n return JSON.parse(decodedQueryString);\n } catch (error) {\n console.error(ERROR_MESSAGES.ERROR_DECODING, error);\n }\n }\n\n return null;\n};\n\nexport const setFilterObjectToLocalStorage = (queryObject: any) => {\n if (typeof window === \"undefined\" || !queryObject) return null;\n\n const stringifiedObject = JSON.stringify(queryObject);\n const encodedQueryString = btoa(stringifiedObject);\n const currentPageUrl = window.location.pathname;\n localStorage.setItem(currentPageUrl, encodedQueryString);\n return encodedQueryString;\n};\n\nexport const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: any) => {\n if (typeof window === \"undefined\" || !queryObject) return null;\n\n const stringifiedObject = JSON.stringify(queryObject);\n const encodedQueryString = btoa(stringifiedObject);\n localStorage.setItem(url, encodedQueryString);\n return encodedQueryString;\n};\n"]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
2
|
+
|
|
3
|
+
const hasMeaningfulPersistedFilterValue = (value: any): boolean => {
|
|
4
|
+
if (value === null || value === undefined) return false;
|
|
5
|
+
if (typeof value === "string") return value.trim().length > 0;
|
|
6
|
+
if (typeof value === "number" || typeof value === "boolean") return true;
|
|
7
|
+
if (Array.isArray(value)) return value.some((item) => hasMeaningfulPersistedFilterValue(item));
|
|
8
|
+
if (typeof value === "object") return hasMeaningfulPersistedFilter(value);
|
|
9
|
+
return false;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const hasMeaningfulPersistedFilter = (filterObject: any): boolean => {
|
|
13
|
+
if (!filterObject || typeof filterObject !== "object") return false;
|
|
14
|
+
|
|
15
|
+
if (Array.isArray(filterObject)) {
|
|
16
|
+
return filterObject.some((item) => hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return Object.entries(filterObject).some(([key, value]) => {
|
|
20
|
+
if (key === "matchMode" || key === "operator") return false;
|
|
21
|
+
if (key === "value") return hasMeaningfulPersistedFilterValue(value);
|
|
22
|
+
if ((key === "$and" || key === "$or") && Array.isArray(value)) {
|
|
23
|
+
return value.some((item) => hasMeaningfulPersistedFilter(item) || hasMeaningfulPersistedFilterValue(item));
|
|
24
|
+
}
|
|
25
|
+
if (typeof value === "object") return hasMeaningfulPersistedFilter(value);
|
|
26
|
+
return hasMeaningfulPersistedFilterValue(value);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const hasStoredFilterPredicates = (queryObject: any): boolean =>
|
|
31
|
+
hasMeaningfulPersistedFilter(queryObject?.custom_filter_predicate) ||
|
|
32
|
+
hasMeaningfulPersistedFilter(queryObject?.search_predicate) ||
|
|
33
|
+
hasMeaningfulPersistedFilter(queryObject?.saved_filter_predicate) ||
|
|
34
|
+
hasMeaningfulPersistedFilter(queryObject?.predefined_search_predicate);
|
|
35
|
+
|
|
36
|
+
export const getFilterObjectFromLocalStorage = () => {
|
|
37
|
+
if (typeof window === "undefined") return null;
|
|
38
|
+
|
|
39
|
+
const currentPageUrl = window.location.pathname;
|
|
40
|
+
const encodedQueryString = localStorage.getItem(currentPageUrl);
|
|
41
|
+
|
|
42
|
+
if (encodedQueryString) {
|
|
43
|
+
try {
|
|
44
|
+
const decodedQueryString = atob(encodedQueryString);
|
|
45
|
+
return JSON.parse(decodedQueryString);
|
|
46
|
+
} catch (error) {
|
|
47
|
+
console.error(ERROR_MESSAGES.ERROR_DECODING, error);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return null;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const getFilterObjectFromLocalStorageByUrl = (url: string) => {
|
|
55
|
+
if (typeof window === "undefined") return null;
|
|
56
|
+
|
|
57
|
+
const encodedQueryString = localStorage.getItem(url);
|
|
58
|
+
|
|
59
|
+
if (encodedQueryString) {
|
|
60
|
+
try {
|
|
61
|
+
const decodedQueryString = atob(encodedQueryString);
|
|
62
|
+
return JSON.parse(decodedQueryString);
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error(ERROR_MESSAGES.ERROR_DECODING, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return null;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const setFilterObjectToLocalStorage = (queryObject: any) => {
|
|
72
|
+
if (typeof window === "undefined" || !queryObject) return null;
|
|
73
|
+
|
|
74
|
+
const stringifiedObject = JSON.stringify(queryObject);
|
|
75
|
+
const encodedQueryString = btoa(stringifiedObject);
|
|
76
|
+
const currentPageUrl = window.location.pathname;
|
|
77
|
+
localStorage.setItem(currentPageUrl, encodedQueryString);
|
|
78
|
+
return encodedQueryString;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: any) => {
|
|
82
|
+
if (typeof window === "undefined" || !queryObject) return null;
|
|
83
|
+
|
|
84
|
+
const stringifiedObject = JSON.stringify(queryObject);
|
|
85
|
+
const encodedQueryString = btoa(stringifiedObject);
|
|
86
|
+
localStorage.setItem(url, encodedQueryString);
|
|
87
|
+
return encodedQueryString;
|
|
88
|
+
};
|
|
@@ -49,7 +49,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
49
49
|
import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
|
|
50
50
|
import { useEffect, useState } from "react";
|
|
51
51
|
import qs from "qs";
|
|
52
|
-
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../
|
|
52
|
+
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../common/globalSearchPersistence";
|
|
53
53
|
import { usePathname } from "../../../hooks/usePathname";
|
|
54
54
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
55
55
|
import { useRouter } from "../../../hooks/useRouter";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from \"../list/SolidListView\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidButton, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from \"../../shad-cn-ui\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n internationalisationEnabled?: boolean;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params, internationalisationEnabled = false }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n const rewriteLocaleFilter = (filterNode: any, locale: string): any => {\n if (!filterNode || typeof filterNode !== \"object\") return filterNode;\n\n if (Array.isArray(filterNode)) {\n return filterNode.map((item) => rewriteLocaleFilter(item, locale));\n }\n\n const nextNode = { ...filterNode };\n\n if (Object.prototype.hasOwnProperty.call(nextNode, \"localeName\")) {\n const localeFilter = nextNode.localeName;\n\n if (localeFilter && typeof localeFilter === \"object\" && !Array.isArray(localeFilter)) {\n const updatedLocaleFilter: Record<string, any> = { ...localeFilter };\n Object.keys(updatedLocaleFilter).forEach((operator) => {\n const operatorValue = updatedLocaleFilter[operator];\n if (Array.isArray(operatorValue)) {\n updatedLocaleFilter[operator] = [locale];\n } else {\n updatedLocaleFilter[operator] = locale;\n }\n });\n nextNode.localeName = updatedLocaleFilter;\n } else {\n nextNode.localeName = locale;\n }\n }\n\n Object.keys(nextNode).forEach((key) => {\n if (key === \"localeName\") return;\n nextNode[key] = rewriteLocaleFilter(nextNode[key], locale);\n });\n\n return nextNode;\n };\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath) || {};\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.embeded === true) {\n setPrevNav(null);\n setNextNav(null);\n setMeta(null);\n return;\n }\n\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n const defaultQueryObject = queryObject || {};\n const locale = searchParams.get(\"locale\");\n const defaultEntityLocaleId = searchParams.get(\"defaultEntityLocaleId\");\n const resolvedFilters = internationalisationEnabled && locale\n ? rewriteLocaleFilter(defaultQueryObject.finalFullFilter || null, locale)\n : (defaultQueryObject.finalFullFilter || null);\n\n const requiresPopulate =\n Array.isArray(defaultQueryObject.sort) &&\n defaultQueryObject.sort[0].split(\":\")[0].includes(\".\");\n const queryData = {\n offset: defaultQueryObject.offset || 0,\n limit: defaultQueryObject.limit || 25,\n filters: resolvedFilters,\n // fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: defaultQueryObject.sort,\n ...(requiresPopulate && {\n populate: defaultQueryObject.populate,\n }),\n };\n\n if (locale) {\n queryData.locale = locale;\n }\n\n if (defaultEntityLocaleId && defaultEntityLocaleId !== \"new\") {\n queryData.defaultEntityLocaleId = defaultEntityLocaleId;\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id, params.embeded, params.modelName, searchParams, triggerGetNavigation]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"solid-form-footer flex justify-end items-center gap-2 p-1\"\n >{meta &&\n <span className=\"solid-form-footer-pagination-meta p-2\">{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-left\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Previous</SolidTooltipContent>\n </SolidTooltip>\n )}\n\n {nextNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-right\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleNext()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Next</SolidTooltipContent>\n </SolidTooltip>\n )}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from \"../common/globalSearchPersistence\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidButton, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from \"../../shad-cn-ui\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n internationalisationEnabled?: boolean;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params, internationalisationEnabled = false }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n const rewriteLocaleFilter = (filterNode: any, locale: string): any => {\n if (!filterNode || typeof filterNode !== \"object\") return filterNode;\n\n if (Array.isArray(filterNode)) {\n return filterNode.map((item) => rewriteLocaleFilter(item, locale));\n }\n\n const nextNode = { ...filterNode };\n\n if (Object.prototype.hasOwnProperty.call(nextNode, \"localeName\")) {\n const localeFilter = nextNode.localeName;\n\n if (localeFilter && typeof localeFilter === \"object\" && !Array.isArray(localeFilter)) {\n const updatedLocaleFilter: Record<string, any> = { ...localeFilter };\n Object.keys(updatedLocaleFilter).forEach((operator) => {\n const operatorValue = updatedLocaleFilter[operator];\n if (Array.isArray(operatorValue)) {\n updatedLocaleFilter[operator] = [locale];\n } else {\n updatedLocaleFilter[operator] = locale;\n }\n });\n nextNode.localeName = updatedLocaleFilter;\n } else {\n nextNode.localeName = locale;\n }\n }\n\n Object.keys(nextNode).forEach((key) => {\n if (key === \"localeName\") return;\n nextNode[key] = rewriteLocaleFilter(nextNode[key], locale);\n });\n\n return nextNode;\n };\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath) || {};\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.embeded === true) {\n setPrevNav(null);\n setNextNav(null);\n setMeta(null);\n return;\n }\n\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n const defaultQueryObject = queryObject || {};\n const locale = searchParams.get(\"locale\");\n const defaultEntityLocaleId = searchParams.get(\"defaultEntityLocaleId\");\n const resolvedFilters = internationalisationEnabled && locale\n ? rewriteLocaleFilter(defaultQueryObject.finalFullFilter || null, locale)\n : (defaultQueryObject.finalFullFilter || null);\n\n const requiresPopulate =\n Array.isArray(defaultQueryObject.sort) &&\n defaultQueryObject.sort[0].split(\":\")[0].includes(\".\");\n const queryData = {\n offset: defaultQueryObject.offset || 0,\n limit: defaultQueryObject.limit || 25,\n filters: resolvedFilters,\n // fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: defaultQueryObject.sort,\n ...(requiresPopulate && {\n populate: defaultQueryObject.populate,\n }),\n };\n\n if (locale) {\n queryData.locale = locale;\n }\n\n if (defaultEntityLocaleId && defaultEntityLocaleId !== \"new\") {\n queryData.defaultEntityLocaleId = defaultEntityLocaleId;\n }\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id, params.embeded, params.modelName, searchParams, triggerGetNavigation]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"solid-form-footer flex justify-end items-center gap-2 p-1\"\n >{meta &&\n <span className=\"solid-form-footer-pagination-meta p-2\">{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-left\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Previous</SolidTooltipContent>\n </SolidTooltip>\n )}\n\n {nextNav && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidButton\n icon=\"si si-angle-right\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleNext()}\n disabled={isLoading}\n />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"top\">Next</SolidTooltipContent>\n </SolidTooltip>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import qs from "qs";
|
|
6
|
-
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../
|
|
6
|
+
import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../common/globalSearchPersistence";
|
|
7
7
|
import { SolidFormViewProps } from "./SolidFormView";
|
|
8
8
|
import { usePathname } from "../../../hooks/usePathname";
|
|
9
9
|
import { useSearchParams } from "../../../hooks/useSearchParams";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidMediaMultipleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaMultipleField.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAA6B,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAMzG,qBAAa,uBAAwB,YAAW,WAAW;IAEvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAYnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiD9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAGD,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAwW5I,CAAA;AAED,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"SolidMediaMultipleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaMultipleField.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK3E,OAAO,EAA6B,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAMzG,qBAAa,uBAAwB,YAAW,WAAW;IAEvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAYnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiD9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAmC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAGD,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAwW5I,CAAA;AAED,eAAO,MAAM,kCAAkC,+DAAgE,8BAA8B,4CAqK5I,CAAA"}
|
|
@@ -482,19 +482,17 @@ export var DefaultMediaMultipleFormViewWidget = function (_a) {
|
|
|
482
482
|
setOpenLightbox === null || setOpenLightbox === void 0 ? void 0 : setOpenLightbox(true);
|
|
483
483
|
}
|
|
484
484
|
};
|
|
485
|
+
var renderMediaFileCard = function (file, className) {
|
|
486
|
+
if (className === void 0) { className = ""; }
|
|
487
|
+
return (_jsx("div", { className: "".concat(styles.mediaAttachmentCard, " ").concat(className).trim(), children: _jsxs("div", { className: "".concat(styles.mediaAttachmentRow, " flex items-center md:gap-2"), children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "".concat(styles.mediaAttachmentMeta, " w-full"), children: [_jsxs("div", { className: "flex items-start justify-between gap-4", children: [_jsx("button", { type: "button", className: styles.mediaAttachmentName, onClick: function () { return handleFileView(file); }, title: file.name, children: file.name }), _jsx("div", { className: "".concat(styles.mediaAttachmentActions, " flex items-center md:gap-2"), children: _jsx("button", { type: "button", className: "solid-file-icon-btn", "aria-label": "Download file", onClick: function () { return downloadMediaFile(file === null || file === void 0 ? void 0 : file.fileUrl, file === null || file === void 0 ? void 0 : file.name); }, children: _jsx(SolidIcon, { name: "si-download", "aria-hidden": true }) }) })] }), _jsx("div", { className: styles.mediaAttachmentSize, children: formatFileSize(file.size) })] })] }) }));
|
|
488
|
+
};
|
|
485
489
|
return (_jsxs("div", { className: styles.fieldViewWrapper, children: [showFieldLabel != false &&
|
|
486
490
|
_jsxs("p", { className: "".concat(styles.fieldViewLabel, " form-field-label"), children: [fieldLabel, _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), fileDetails.length > 0 &&
|
|
487
|
-
|
|
488
|
-
height: 16,
|
|
489
|
-
width: 16
|
|
490
|
-
}, onClick: function () { var _a, _b; return downloadMediaFile((_a = fileDetails[0]) === null || _a === void 0 ? void 0 : _a.fileUrl, (_b = fileDetails[0]) === null || _b === void 0 ? void 0 : _b.name); } }) }) })] }), _jsx("div", { className: "flex items-center gap-2 text-sm", children: formatFileSize(fileDetails[0].size) })] })] }) }), fileDetails.length > 1 &&
|
|
491
|
+
renderMediaFileCard(fileDetails[0], styles.mediaAttachmentCardView), fileDetails.length > 1 &&
|
|
491
492
|
_jsxs("div", { className: "flex items-center mt-1", children: [_jsxs("p", { className: "m-0", children: [fileDetails.length - 1, " items"] }), _jsx("div", { children: _jsx(SolidButton, { type: "button", size: "sm", variant: "ghost", onClick: function () { return setShowAllFiles(true); }, children: "View" }) })] }), _jsxs(SolidDialog, { open: isShowAllFiles, onOpenChange: setShowAllFiles, style: { minWidth: 450 }, children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Items Uploaded" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogBody, { children: fileDetails.length > 1 &&
|
|
492
493
|
fileDetails.map(function (file, index) {
|
|
493
494
|
var fileId = "".concat(file.name, "-").concat(file.size);
|
|
494
|
-
return (_jsx("div", { className:
|
|
495
|
-
height: 16,
|
|
496
|
-
width: 16
|
|
497
|
-
}, onClick: function () { return downloadMediaFile(file === null || file === void 0 ? void 0 : file.fileUrl, file === null || file === void 0 ? void 0 : file.name); } }) }) })] }), _jsx("div", { className: "flex items-center gap-2 text-sm", children: formatFileSize(file.size) })] })] }) }, fileId));
|
|
495
|
+
return (_jsx("div", { className: index === fileDetails.length - 1 ? "" : "mb-3", children: renderMediaFileCard(file) }, fileId));
|
|
498
496
|
}) })] })] }));
|
|
499
497
|
};
|
|
500
498
|
//# sourceMappingURL=SolidMediaMultipleField.js.map
|