@ixo/editor 6.29.1 → 6.30.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.
|
@@ -9658,7 +9658,7 @@ var ClaimsEvaluation = ({ collectionId, adminAddress, deedId, claim, onRefresh }
|
|
|
9658
9658
|
|
|
9659
9659
|
// src/mantine/blocks/list/ListSelectionPanel.tsx
|
|
9660
9660
|
var supportTabsLists = ["claims"];
|
|
9661
|
-
var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRole, onClose, onRefresh, block, editor }) => {
|
|
9661
|
+
var ListSelectionPanel = ({ selectedIds, listConfig, listData: listData2, listType, userRole, onClose, onRefresh, block, editor }) => {
|
|
9662
9662
|
const { closePanel } = usePanelStore();
|
|
9663
9663
|
const handlers = useBlocknoteHandlers();
|
|
9664
9664
|
const handleClose = () => {
|
|
@@ -9690,7 +9690,7 @@ var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRol
|
|
|
9690
9690
|
try {
|
|
9691
9691
|
const handlerKey = panelConfig.detailsHandlerKey;
|
|
9692
9692
|
const handler = handlers[handlerKey];
|
|
9693
|
-
const listItemData =
|
|
9693
|
+
const listItemData = listData2?.items?.find((item) => item?.id === selectedItemId || item?.did === selectedItemId || item.claimId === selectedItemId);
|
|
9694
9694
|
if (typeof handler === "function") {
|
|
9695
9695
|
const details = await handler(selectedItemId, listItemData);
|
|
9696
9696
|
setItemHandlerData(details);
|
|
@@ -9706,7 +9706,7 @@ var ListSelectionPanel = ({ selectedIds, listConfig, listData, listType, userRol
|
|
|
9706
9706
|
}
|
|
9707
9707
|
};
|
|
9708
9708
|
fetchItemDetails();
|
|
9709
|
-
}, [selectedItemId, listType, handlers, panelConfig,
|
|
9709
|
+
}, [selectedItemId, listType, handlers, panelConfig, listData2?.items]);
|
|
9710
9710
|
const tabs = useMemo40(() => {
|
|
9711
9711
|
switch (listType) {
|
|
9712
9712
|
case "claims":
|
|
@@ -9953,103 +9953,6 @@ function downloadArrayAsCsv(rows, options) {
|
|
|
9953
9953
|
// src/mantine/blocks/list/flow/ListFlowView.tsx
|
|
9954
9954
|
import { useDisclosure as useDisclosure3 } from "@mantine/hooks";
|
|
9955
9955
|
|
|
9956
|
-
// src/core/utils/links.ts
|
|
9957
|
-
function cleanUrlString(url) {
|
|
9958
|
-
const regex = /(?<!https?:)\/\//g;
|
|
9959
|
-
const cleanedUrl = url.replace(/\s+/g, "").replace(regex, "/");
|
|
9960
|
-
return cleanedUrl;
|
|
9961
|
-
}
|
|
9962
|
-
var transformIpfsToCfIpfsData = (uri) => {
|
|
9963
|
-
let uriIdentifier = "";
|
|
9964
|
-
if (uri.startsWith("https://ipfs.gateway.ixo.world/ipfs/")) {
|
|
9965
|
-
return uri;
|
|
9966
|
-
}
|
|
9967
|
-
if (!uri || !uri.includes("ipfs")) return uri;
|
|
9968
|
-
if (uri.startsWith("web3:")) uriIdentifier = uri.replace("web3:", "");
|
|
9969
|
-
if (uri.startsWith("https://cellnode")) return uri;
|
|
9970
|
-
if (uri.startsWith("https://ipfs.io/")) uriIdentifier = uri.replace("https://ipfs.io/ipfs/", "");
|
|
9971
|
-
if (uri.startsWith("https://cf-ipfs.com/ipfs/")) uriIdentifier = uri.replace("https://cf-ipfs.com/ipfs/", "");
|
|
9972
|
-
if (uri.startsWith("https://blocksync") || uri.startsWith("https://testnet") || uri.startsWith("https://devnet") || uri.endsWith("ipfs.w3s.link") || uri.endsWith("ipfs.w3s.link/")) {
|
|
9973
|
-
const uriIpfsIndex = uri.indexOf("/ipfs");
|
|
9974
|
-
if (uriIpfsIndex === -1) {
|
|
9975
|
-
const identifier = uri.split("https://")[1].split(".")[0];
|
|
9976
|
-
return `https://ipfs.gateway.ixo.world/ipfs/${identifier}`;
|
|
9977
|
-
}
|
|
9978
|
-
const uriIpfsOffset = 6;
|
|
9979
|
-
uriIdentifier = uri.substring(uriIpfsIndex + uriIpfsOffset);
|
|
9980
|
-
return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
|
|
9981
|
-
}
|
|
9982
|
-
return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
|
|
9983
|
-
};
|
|
9984
|
-
|
|
9985
|
-
// src/core/lib/getFullServiceEndpoint.ts
|
|
9986
|
-
var getFullServiceEndpoint = (serviceEndpoint, services) => {
|
|
9987
|
-
if (!serviceEndpoint) throw new Error("Service endpoint is not provided");
|
|
9988
|
-
if (serviceEndpoint.startsWith("http://") || serviceEndpoint.startsWith("https://")) return cleanUrlString(serviceEndpoint);
|
|
9989
|
-
const pos = serviceEndpoint.indexOf(":");
|
|
9990
|
-
if (pos === -1) return cleanUrlString(serviceEndpoint);
|
|
9991
|
-
const serviceId = serviceEndpoint.substring(0, pos);
|
|
9992
|
-
const endUrl = serviceEndpoint.substring(pos + 1);
|
|
9993
|
-
const neededService = services.find((s) => {
|
|
9994
|
-
const posHash = s.id.indexOf("#");
|
|
9995
|
-
const id = s.id.substring(posHash + 1);
|
|
9996
|
-
return id === serviceId;
|
|
9997
|
-
});
|
|
9998
|
-
let firstPartOfServiceEndpoint = "";
|
|
9999
|
-
if (neededService?.serviceEndpoint?.endsWith("/\r\n")) {
|
|
10000
|
-
firstPartOfServiceEndpoint = neededService?.serviceEndpoint.replace(/\r?\n$/, "").replace(/\/$/, "");
|
|
10001
|
-
} else {
|
|
10002
|
-
firstPartOfServiceEndpoint = neededService?.serviceEndpoint || "";
|
|
10003
|
-
}
|
|
10004
|
-
if (!firstPartOfServiceEndpoint) return serviceEndpoint;
|
|
10005
|
-
let resultUrl = firstPartOfServiceEndpoint + endUrl;
|
|
10006
|
-
if (resultUrl.includes("ipfs.gateway") && !resultUrl.includes("/ipfs/")) {
|
|
10007
|
-
resultUrl = "https://ipfs.gateway.ixo.world/ipfs/" + endUrl;
|
|
10008
|
-
}
|
|
10009
|
-
return cleanUrlString(resultUrl);
|
|
10010
|
-
};
|
|
10011
|
-
var getFullServiceEndpoint_default = getFullServiceEndpoint;
|
|
10012
|
-
|
|
10013
|
-
// src/core/lib/categorizeResources.ts
|
|
10014
|
-
var mediaTypeDictionary = {
|
|
10015
|
-
"application/pdf": "pdf",
|
|
10016
|
-
"application/html": "html",
|
|
10017
|
-
"application/json": "json",
|
|
10018
|
-
"application/ld+json": "jsonld",
|
|
10019
|
-
"ld+json": "jsonld",
|
|
10020
|
-
"image/png": "imagePng",
|
|
10021
|
-
"text/plain": "text"
|
|
10022
|
-
};
|
|
10023
|
-
function extendResourcesWithFormat(resources) {
|
|
10024
|
-
if (!resources) return [];
|
|
10025
|
-
return Object.values(resources).flat().map((resource) => ({
|
|
10026
|
-
...resource,
|
|
10027
|
-
format: Object.keys(resources).find((key) => resources[key].some((item) => item.id === resource.id))
|
|
10028
|
-
}));
|
|
10029
|
-
}
|
|
10030
|
-
function categorizeResources(linkedResources, services) {
|
|
10031
|
-
const categorizedResources = {
|
|
10032
|
-
pdf: [],
|
|
10033
|
-
html: [],
|
|
10034
|
-
json: [],
|
|
10035
|
-
jsonld: [],
|
|
10036
|
-
imagePng: [],
|
|
10037
|
-
text: []
|
|
10038
|
-
};
|
|
10039
|
-
if (!linkedResources) return [];
|
|
10040
|
-
for (const resource of linkedResources) {
|
|
10041
|
-
const serviceEndpoint = resource.serviceEndpoint;
|
|
10042
|
-
categorizedResources[mediaTypeDictionary[resource.mediaType]]?.push({
|
|
10043
|
-
id: serviceEndpoint,
|
|
10044
|
-
link: transformIpfsToCfIpfsData(getFullServiceEndpoint_default(serviceEndpoint, services)),
|
|
10045
|
-
description: resource?.description || "No description",
|
|
10046
|
-
type: resource.type,
|
|
10047
|
-
access: resource.type.startsWith("display")
|
|
10048
|
-
});
|
|
10049
|
-
}
|
|
10050
|
-
return extendResourcesWithFormat(categorizedResources);
|
|
10051
|
-
}
|
|
10052
|
-
|
|
10053
9956
|
// src/mantine/blocks/list/ListActionsMenu.tsx
|
|
10054
9957
|
import React92, { useState as useState37 } from "react";
|
|
10055
9958
|
import { Menu, Text as Text59, ActionIcon as ActionIcon14, Flex as Flex27, Box as Box29, Collapse, Tooltip as Tooltip9 } from "@mantine/core";
|
|
@@ -10163,6 +10066,362 @@ var ListActionsMenu = React92.forwardRef(
|
|
|
10163
10066
|
);
|
|
10164
10067
|
ListActionsMenu.displayName = "ListActionsMenu";
|
|
10165
10068
|
|
|
10069
|
+
// src/core/utils/links.ts
|
|
10070
|
+
function cleanUrlString(url) {
|
|
10071
|
+
const regex = /(?<!https?:)\/\//g;
|
|
10072
|
+
const cleanedUrl = url.replace(/\s+/g, "").replace(regex, "/");
|
|
10073
|
+
return cleanedUrl;
|
|
10074
|
+
}
|
|
10075
|
+
var transformIpfsToCfIpfsData = (uri) => {
|
|
10076
|
+
let uriIdentifier = "";
|
|
10077
|
+
if (uri.startsWith("https://ipfs.gateway.ixo.world/ipfs/")) {
|
|
10078
|
+
return uri;
|
|
10079
|
+
}
|
|
10080
|
+
if (!uri || !uri.includes("ipfs")) return uri;
|
|
10081
|
+
if (uri.startsWith("web3:")) uriIdentifier = uri.replace("web3:", "");
|
|
10082
|
+
if (uri.startsWith("https://cellnode")) return uri;
|
|
10083
|
+
if (uri.startsWith("https://ipfs.io/")) uriIdentifier = uri.replace("https://ipfs.io/ipfs/", "");
|
|
10084
|
+
if (uri.startsWith("https://cf-ipfs.com/ipfs/")) uriIdentifier = uri.replace("https://cf-ipfs.com/ipfs/", "");
|
|
10085
|
+
if (uri.startsWith("https://blocksync") || uri.startsWith("https://testnet") || uri.startsWith("https://devnet") || uri.endsWith("ipfs.w3s.link") || uri.endsWith("ipfs.w3s.link/")) {
|
|
10086
|
+
const uriIpfsIndex = uri.indexOf("/ipfs");
|
|
10087
|
+
if (uriIpfsIndex === -1) {
|
|
10088
|
+
const identifier = uri.split("https://")[1].split(".")[0];
|
|
10089
|
+
return `https://ipfs.gateway.ixo.world/ipfs/${identifier}`;
|
|
10090
|
+
}
|
|
10091
|
+
const uriIpfsOffset = 6;
|
|
10092
|
+
uriIdentifier = uri.substring(uriIpfsIndex + uriIpfsOffset);
|
|
10093
|
+
return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
|
|
10094
|
+
}
|
|
10095
|
+
return `https://ipfs.gateway.ixo.world/ipfs/${uriIdentifier}`;
|
|
10096
|
+
};
|
|
10097
|
+
|
|
10098
|
+
// src/core/lib/getFullServiceEndpoint.ts
|
|
10099
|
+
var getFullServiceEndpoint = (serviceEndpoint, services) => {
|
|
10100
|
+
if (!serviceEndpoint) throw new Error("Service endpoint is not provided");
|
|
10101
|
+
if (serviceEndpoint.startsWith("http://") || serviceEndpoint.startsWith("https://")) return cleanUrlString(serviceEndpoint);
|
|
10102
|
+
const pos = serviceEndpoint.indexOf(":");
|
|
10103
|
+
if (pos === -1) return cleanUrlString(serviceEndpoint);
|
|
10104
|
+
const serviceId = serviceEndpoint.substring(0, pos);
|
|
10105
|
+
const endUrl = serviceEndpoint.substring(pos + 1);
|
|
10106
|
+
const neededService = services.find((s) => {
|
|
10107
|
+
const posHash = s.id.indexOf("#");
|
|
10108
|
+
const id = s.id.substring(posHash + 1);
|
|
10109
|
+
return id === serviceId;
|
|
10110
|
+
});
|
|
10111
|
+
let firstPartOfServiceEndpoint = "";
|
|
10112
|
+
if (neededService?.serviceEndpoint?.endsWith("/\r\n")) {
|
|
10113
|
+
firstPartOfServiceEndpoint = neededService?.serviceEndpoint.replace(/\r?\n$/, "").replace(/\/$/, "");
|
|
10114
|
+
} else {
|
|
10115
|
+
firstPartOfServiceEndpoint = neededService?.serviceEndpoint || "";
|
|
10116
|
+
}
|
|
10117
|
+
if (!firstPartOfServiceEndpoint) return serviceEndpoint;
|
|
10118
|
+
let resultUrl = firstPartOfServiceEndpoint + endUrl;
|
|
10119
|
+
if (resultUrl.includes("ipfs.gateway") && !resultUrl.includes("/ipfs/")) {
|
|
10120
|
+
resultUrl = "https://ipfs.gateway.ixo.world/ipfs/" + endUrl;
|
|
10121
|
+
}
|
|
10122
|
+
return cleanUrlString(resultUrl);
|
|
10123
|
+
};
|
|
10124
|
+
var getFullServiceEndpoint_default = getFullServiceEndpoint;
|
|
10125
|
+
|
|
10126
|
+
// src/core/lib/categorizeResources.ts
|
|
10127
|
+
var mediaTypeDictionary = {
|
|
10128
|
+
"application/pdf": "pdf",
|
|
10129
|
+
"application/html": "html",
|
|
10130
|
+
"application/json": "json",
|
|
10131
|
+
"application/ld+json": "jsonld",
|
|
10132
|
+
"ld+json": "jsonld",
|
|
10133
|
+
"image/png": "imagePng",
|
|
10134
|
+
"text/plain": "text"
|
|
10135
|
+
};
|
|
10136
|
+
function extendResourcesWithFormat(resources) {
|
|
10137
|
+
if (!resources) return [];
|
|
10138
|
+
return Object.values(resources).flat().map((resource) => ({
|
|
10139
|
+
...resource,
|
|
10140
|
+
format: Object.keys(resources).find((key) => resources[key].some((item) => item.id === resource.id))
|
|
10141
|
+
}));
|
|
10142
|
+
}
|
|
10143
|
+
function categorizeResources(linkedResources, services) {
|
|
10144
|
+
const categorizedResources = {
|
|
10145
|
+
pdf: [],
|
|
10146
|
+
html: [],
|
|
10147
|
+
json: [],
|
|
10148
|
+
jsonld: [],
|
|
10149
|
+
imagePng: [],
|
|
10150
|
+
text: []
|
|
10151
|
+
};
|
|
10152
|
+
if (!linkedResources) return [];
|
|
10153
|
+
for (const resource of linkedResources) {
|
|
10154
|
+
const serviceEndpoint = resource.serviceEndpoint;
|
|
10155
|
+
categorizedResources[mediaTypeDictionary[resource.mediaType]]?.push({
|
|
10156
|
+
id: serviceEndpoint,
|
|
10157
|
+
link: transformIpfsToCfIpfsData(getFullServiceEndpoint_default(serviceEndpoint, services)),
|
|
10158
|
+
description: resource?.description || "No description",
|
|
10159
|
+
type: resource.type,
|
|
10160
|
+
access: resource.type.startsWith("display")
|
|
10161
|
+
});
|
|
10162
|
+
}
|
|
10163
|
+
return extendResourcesWithFormat(categorizedResources);
|
|
10164
|
+
}
|
|
10165
|
+
|
|
10166
|
+
// src/mantine/blocks/list/flow/fetchListData.ts
|
|
10167
|
+
var INTERNAL_LINKED_RESOURCE_TAGS = ["pge", "flw", "dmn", "pri", "lgo", "set", "page"];
|
|
10168
|
+
function listData(items) {
|
|
10169
|
+
return { items };
|
|
10170
|
+
}
|
|
10171
|
+
function getTotalPages(totalCount) {
|
|
10172
|
+
return typeof totalCount === "number" && totalCount > 0 ? Math.ceil(totalCount / DEFAULT_PAGE_SIZE) : 0;
|
|
10173
|
+
}
|
|
10174
|
+
function requireValue(value, message) {
|
|
10175
|
+
const str = typeof value === "string" ? value.trim() : typeof value === "number" && Number.isFinite(value) ? String(value) : "";
|
|
10176
|
+
if (!str) throw new Error(message);
|
|
10177
|
+
return str;
|
|
10178
|
+
}
|
|
10179
|
+
function getCurrentUserAddress(handlers) {
|
|
10180
|
+
const user = handlers.getCurrentUser?.();
|
|
10181
|
+
return typeof user?.address === "string" ? user.address : "";
|
|
10182
|
+
}
|
|
10183
|
+
function resolveRelayerDid(handlers, listConfig) {
|
|
10184
|
+
return requireValue(listConfig.relayedNodeDid || handlers.getRelayerDid?.(), "Relayer is required");
|
|
10185
|
+
}
|
|
10186
|
+
function coerceIdList(value) {
|
|
10187
|
+
if (Array.isArray(value)) {
|
|
10188
|
+
return value.map((item) => String(item).trim()).filter(Boolean);
|
|
10189
|
+
}
|
|
10190
|
+
if (typeof value !== "string") return [];
|
|
10191
|
+
const trimmed = value.trim();
|
|
10192
|
+
if (!trimmed) return [];
|
|
10193
|
+
if (trimmed.startsWith("[")) {
|
|
10194
|
+
try {
|
|
10195
|
+
return coerceIdList(JSON.parse(trimmed));
|
|
10196
|
+
} catch {
|
|
10197
|
+
return [trimmed];
|
|
10198
|
+
}
|
|
10199
|
+
}
|
|
10200
|
+
return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
|
|
10201
|
+
}
|
|
10202
|
+
async function fetchListData(options) {
|
|
10203
|
+
const { handlers, listType, listConfig, page, runtimeSearchValue, daoRoleFilter, roomId, matrixClient } = options;
|
|
10204
|
+
switch (listType) {
|
|
10205
|
+
case "linked_resources": {
|
|
10206
|
+
const did = requireValue(listConfig.did || handlers.getEntityDid?.(), "DID is required");
|
|
10207
|
+
const entity = await handlers.getEntity(did);
|
|
10208
|
+
const linkedResources = Array.isArray(entity?.linkedResource) ? entity.linkedResource : Array.isArray(entity?.iidById?.linkedResource) ? entity.iidById.linkedResource : [];
|
|
10209
|
+
const services = Array.isArray(entity?.service) ? entity.service : [];
|
|
10210
|
+
const filteredResources = linkedResources.filter((resource) => !INTERNAL_LINKED_RESOURCE_TAGS.some((tag) => String(resource.id).includes(`#${tag}`)));
|
|
10211
|
+
return {
|
|
10212
|
+
data: listData(categorizeResources(filteredResources, services)),
|
|
10213
|
+
totalPages: 0,
|
|
10214
|
+
userRole: null
|
|
10215
|
+
};
|
|
10216
|
+
}
|
|
10217
|
+
case "assets": {
|
|
10218
|
+
const collectionDid = requireValue(listConfig.collectionDid || handlers.getEntityDid?.(), "Collection DID is required");
|
|
10219
|
+
const ownerAddress = listConfig.ownerBased ? requireValue(getCurrentUserAddress(handlers), "Address is required for owner-based assets") : void 0;
|
|
10220
|
+
const result = ownerAddress ? await handlers.getAssets(collectionDid, page, ownerAddress) : await handlers.getAssets(collectionDid, page);
|
|
10221
|
+
return {
|
|
10222
|
+
data: listData(result.data),
|
|
10223
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10224
|
+
userRole: null
|
|
10225
|
+
};
|
|
10226
|
+
}
|
|
10227
|
+
case "transactions": {
|
|
10228
|
+
const address = requireValue(runtimeSearchValue || listConfig.address, "Address is required");
|
|
10229
|
+
const result = await handlers.getTransactions(address, page);
|
|
10230
|
+
return {
|
|
10231
|
+
data: listData(result.data),
|
|
10232
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10233
|
+
userRole: null
|
|
10234
|
+
};
|
|
10235
|
+
}
|
|
10236
|
+
case "collections": {
|
|
10237
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10238
|
+
const result = await handlers.getCollections(relayerDid, page);
|
|
10239
|
+
return {
|
|
10240
|
+
data: listData(result.data),
|
|
10241
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10242
|
+
userRole: null
|
|
10243
|
+
};
|
|
10244
|
+
}
|
|
10245
|
+
case "investments": {
|
|
10246
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10247
|
+
const result = await handlers.getInvestments(relayerDid, page);
|
|
10248
|
+
return {
|
|
10249
|
+
data: listData(result.data),
|
|
10250
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10251
|
+
userRole: null
|
|
10252
|
+
};
|
|
10253
|
+
}
|
|
10254
|
+
case "oracles": {
|
|
10255
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10256
|
+
const result = await handlers.getOracles(relayerDid, page);
|
|
10257
|
+
return {
|
|
10258
|
+
data: listData(result.data),
|
|
10259
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10260
|
+
userRole: null
|
|
10261
|
+
};
|
|
10262
|
+
}
|
|
10263
|
+
case "pods": {
|
|
10264
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10265
|
+
const result = await handlers.getPODs(relayerDid, page);
|
|
10266
|
+
return {
|
|
10267
|
+
data: listData(result.data),
|
|
10268
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10269
|
+
userRole: null
|
|
10270
|
+
};
|
|
10271
|
+
}
|
|
10272
|
+
case "proposals": {
|
|
10273
|
+
const groupCoreAddress = requireValue(listConfig.groupCoreAddress, "GroupCoreAddress is required");
|
|
10274
|
+
const result = await handlers.getProposals(groupCoreAddress, page);
|
|
10275
|
+
return {
|
|
10276
|
+
data: listData(result.data),
|
|
10277
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10278
|
+
userRole: null
|
|
10279
|
+
};
|
|
10280
|
+
}
|
|
10281
|
+
case "requests": {
|
|
10282
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10283
|
+
const result = await handlers.getRequests(relayerDid, page);
|
|
10284
|
+
return {
|
|
10285
|
+
data: listData(result.data),
|
|
10286
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10287
|
+
userRole: null
|
|
10288
|
+
};
|
|
10289
|
+
}
|
|
10290
|
+
case "projects": {
|
|
10291
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10292
|
+
const result = await handlers.getProjects(relayerDid, page);
|
|
10293
|
+
return {
|
|
10294
|
+
data: listData(result.data),
|
|
10295
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10296
|
+
userRole: null
|
|
10297
|
+
};
|
|
10298
|
+
}
|
|
10299
|
+
case "daos": {
|
|
10300
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10301
|
+
let result;
|
|
10302
|
+
switch (listConfig.daoType) {
|
|
10303
|
+
case "pod":
|
|
10304
|
+
result = await handlers.getPODs(relayerDid, page, daoRoleFilter);
|
|
10305
|
+
break;
|
|
10306
|
+
case "group":
|
|
10307
|
+
if (!handlers.getDaoGroups) throw new Error("getDaoGroups handler is not configured");
|
|
10308
|
+
result = await handlers.getDaoGroups(relayerDid, page, daoRoleFilter);
|
|
10309
|
+
break;
|
|
10310
|
+
default:
|
|
10311
|
+
result = await handlers.getDaos(relayerDid, page, daoRoleFilter);
|
|
10312
|
+
break;
|
|
10313
|
+
}
|
|
10314
|
+
return {
|
|
10315
|
+
data: listData(result.data),
|
|
10316
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10317
|
+
userRole: null
|
|
10318
|
+
};
|
|
10319
|
+
}
|
|
10320
|
+
case "group_members": {
|
|
10321
|
+
const address = requireValue(listConfig.address, "Address is required");
|
|
10322
|
+
const groupCoreAddress = requireValue(listConfig.groupCoreAddress, "Group Core Address is required");
|
|
10323
|
+
const result = await handlers.getMembers(address, groupCoreAddress, !!listConfig.withBalance, page);
|
|
10324
|
+
return {
|
|
10325
|
+
data: listData(result.data),
|
|
10326
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10327
|
+
userRole: null
|
|
10328
|
+
};
|
|
10329
|
+
}
|
|
10330
|
+
case "validators": {
|
|
10331
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10332
|
+
const result = await handlers.getValidators(relayerDid, page);
|
|
10333
|
+
return {
|
|
10334
|
+
data: listData(result.data),
|
|
10335
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10336
|
+
userRole: null
|
|
10337
|
+
};
|
|
10338
|
+
}
|
|
10339
|
+
case "balances": {
|
|
10340
|
+
const address = requireValue(listConfig.address || getCurrentUserAddress(handlers), "Address is required");
|
|
10341
|
+
const result = await handlers.getBalances(address);
|
|
10342
|
+
return {
|
|
10343
|
+
data: listData(result.data),
|
|
10344
|
+
totalPages: 0,
|
|
10345
|
+
userRole: null
|
|
10346
|
+
};
|
|
10347
|
+
}
|
|
10348
|
+
case "dao_members": {
|
|
10349
|
+
const address = requireValue(listConfig.address || getCurrentUserAddress(handlers), "Address is required");
|
|
10350
|
+
const configuredGroupIds = coerceIdList(listConfig.groupIds);
|
|
10351
|
+
const fallbackGroupIds = configuredGroupIds.length > 0 ? [] : coerceIdList(await handlers.getDaoGroupsIds());
|
|
10352
|
+
const groupIds = configuredGroupIds.length > 0 ? configuredGroupIds : fallbackGroupIds;
|
|
10353
|
+
if (groupIds.length === 0) throw new Error("Group Ids are required");
|
|
10354
|
+
const result = await handlers.getDaoMembers(address, groupIds, !!listConfig.withBalance, page);
|
|
10355
|
+
return {
|
|
10356
|
+
data: listData(result.data),
|
|
10357
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10358
|
+
userRole: null
|
|
10359
|
+
};
|
|
10360
|
+
}
|
|
10361
|
+
case "matrix_members": {
|
|
10362
|
+
if (!roomId || !matrixClient) throw new Error("Room ID and Matrix client are required");
|
|
10363
|
+
const members = await handlers.getRoomMembers(roomId, matrixClient);
|
|
10364
|
+
return {
|
|
10365
|
+
data: listData(members),
|
|
10366
|
+
totalPages: 0,
|
|
10367
|
+
userRole: null
|
|
10368
|
+
};
|
|
10369
|
+
}
|
|
10370
|
+
case "deed_subscriptions": {
|
|
10371
|
+
const relayerDid = resolveRelayerDid(handlers, listConfig);
|
|
10372
|
+
const result = await handlers.getDeedSubscriptions(relayerDid, page);
|
|
10373
|
+
return {
|
|
10374
|
+
data: listData(result.data),
|
|
10375
|
+
totalPages: getTotalPages(result.totalCount),
|
|
10376
|
+
userRole: null
|
|
10377
|
+
};
|
|
10378
|
+
}
|
|
10379
|
+
case "claims": {
|
|
10380
|
+
const deedDid = requireValue(listConfig.deedDid, "Configure issue: please configure deed DID, claim collection ID, and admin address.");
|
|
10381
|
+
const claimCollectionId = requireValue(
|
|
10382
|
+
listConfig.claimCollectionId || coerceIdList(listConfig.selectedCollections)[0],
|
|
10383
|
+
"Configure issue: please configure deed DID, claim collection ID, and admin address."
|
|
10384
|
+
);
|
|
10385
|
+
const adminAddress = requireValue(listConfig.adminAddress, "Configure issue: please configure deed DID, claim collection ID, and admin address.");
|
|
10386
|
+
const userAddress = requireValue(getCurrentUserAddress(handlers), "Unable to determine current user.");
|
|
10387
|
+
let userRole = null;
|
|
10388
|
+
try {
|
|
10389
|
+
const roles = await handlers.getUserRoles({
|
|
10390
|
+
userAddress,
|
|
10391
|
+
adminAddress,
|
|
10392
|
+
deedDid,
|
|
10393
|
+
collectionIds: [claimCollectionId]
|
|
10394
|
+
});
|
|
10395
|
+
const roleData = roles?.find((role) => role.collectionId === claimCollectionId);
|
|
10396
|
+
userRole = roleData?.role || null;
|
|
10397
|
+
} catch (error) {
|
|
10398
|
+
console.error("Failed to fetch user roles:", error);
|
|
10399
|
+
}
|
|
10400
|
+
const allClaims = await handlers.getClaimsPerCollectionId({ collectionId: claimCollectionId });
|
|
10401
|
+
const claimsWithStatuses = allClaims.map((claim) => {
|
|
10402
|
+
const { status } = getClaimStatus(claim);
|
|
10403
|
+
const statusLower = status.toLowerCase();
|
|
10404
|
+
return { ...claim, [statusLower]: true };
|
|
10405
|
+
});
|
|
10406
|
+
let filteredClaims;
|
|
10407
|
+
if (userRole === "EA" /* Evaluator */) {
|
|
10408
|
+
filteredClaims = claimsWithStatuses;
|
|
10409
|
+
} else if (userRole === "SA" /* ServiceProvider */) {
|
|
10410
|
+
filteredClaims = claimsWithStatuses.filter((claim) => claim.agentAddress === userAddress);
|
|
10411
|
+
} else {
|
|
10412
|
+
filteredClaims = [];
|
|
10413
|
+
}
|
|
10414
|
+
return {
|
|
10415
|
+
data: listData(filteredClaims),
|
|
10416
|
+
totalPages: 0,
|
|
10417
|
+
userRole
|
|
10418
|
+
};
|
|
10419
|
+
}
|
|
10420
|
+
default:
|
|
10421
|
+
throw new Error(`Unknown list type: ${listType}`);
|
|
10422
|
+
}
|
|
10423
|
+
}
|
|
10424
|
+
|
|
10166
10425
|
// src/mantine/blocks/list/flow/ListFlowView.tsx
|
|
10167
10426
|
var LIST_FLOW_PANEL_ID = "list-flow-panel";
|
|
10168
10427
|
var LIST_SELECTION_FLOW_PANEL_ID = "list-selection-flow-panel";
|
|
@@ -10323,216 +10582,40 @@ var ListFlowView = ({ block, editor }) => {
|
|
|
10323
10582
|
};
|
|
10324
10583
|
const daoRoleFilter = listType === "daos" && (listFilterConfig?.key === "isOwner" || listFilterConfig?.key === "isController") ? listFilterConfig.key : void 0;
|
|
10325
10584
|
const fetchData = useCallback31(async () => {
|
|
10326
|
-
if (!handlers || !listType
|
|
10585
|
+
if (!handlers || !listType) return;
|
|
10327
10586
|
setLoading(true);
|
|
10328
10587
|
setError(null);
|
|
10329
10588
|
setUserRole(null);
|
|
10330
10589
|
try {
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
return !excludedResources.some((tag) => id.includes(`#${tag}`));
|
|
10345
|
-
});
|
|
10346
|
-
const resources = categorizeResources(filteredResources, service);
|
|
10347
|
-
setData({ items: resources });
|
|
10348
|
-
break;
|
|
10349
|
-
case "assets":
|
|
10350
|
-
did = handlers.getEntityDid();
|
|
10351
|
-
if (!did && !listConfig.collectionDid) throw new Error("Collection DID is required");
|
|
10352
|
-
if (listConfig.ownerBased) {
|
|
10353
|
-
user = handlers.getCurrentUser();
|
|
10354
|
-
result = await handlers.getAssets(listConfig.collectionDid || did, page, user.address);
|
|
10355
|
-
} else {
|
|
10356
|
-
result = await handlers.getAssets(listConfig.collectionDid || did, page);
|
|
10357
|
-
}
|
|
10358
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10359
|
-
setData({ items: result.data });
|
|
10360
|
-
break;
|
|
10361
|
-
case "transactions":
|
|
10362
|
-
const effectiveAddress = runtimeSearchValue || listConfig.address;
|
|
10363
|
-
if (!effectiveAddress) throw new Error("Address is required");
|
|
10364
|
-
result = await handlers.getTransactions(effectiveAddress, page);
|
|
10365
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10366
|
-
setData({ items: result.data });
|
|
10367
|
-
break;
|
|
10368
|
-
case "collections":
|
|
10369
|
-
relayerDid = handlers.getRelayerDid();
|
|
10370
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10371
|
-
result = await handlers.getCollections(listConfig.relayedNodeDid || relayerDid, page);
|
|
10372
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10373
|
-
setData({ items: result.data });
|
|
10374
|
-
break;
|
|
10375
|
-
case "investments":
|
|
10376
|
-
relayerDid = handlers.getRelayerDid();
|
|
10377
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10378
|
-
result = await handlers.getInvestments(listConfig.relayedNodeDid || relayerDid, page);
|
|
10379
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10380
|
-
setData({ items: result.data });
|
|
10381
|
-
break;
|
|
10382
|
-
case "oracles":
|
|
10383
|
-
relayerDid = handlers.getRelayerDid();
|
|
10384
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10385
|
-
result = await handlers.getOracles(listConfig.relayedNodeDid || relayerDid, page);
|
|
10386
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10387
|
-
setData({ items: result.data });
|
|
10388
|
-
break;
|
|
10389
|
-
case "pods":
|
|
10390
|
-
relayerDid = handlers.getRelayerDid();
|
|
10391
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10392
|
-
result = await handlers.getPODs(listConfig.relayedNodeDid || relayerDid, page);
|
|
10393
|
-
setData({ items: result.data });
|
|
10394
|
-
break;
|
|
10395
|
-
case "proposals":
|
|
10396
|
-
if (!listConfig.groupCoreAddress) throw new Error("GroupCoreAddress is required");
|
|
10397
|
-
result = await handlers.getProposals(listConfig.groupCoreAddress, page);
|
|
10398
|
-
setData({ items: result.data });
|
|
10399
|
-
break;
|
|
10400
|
-
case "requests":
|
|
10401
|
-
relayerDid = handlers.getRelayerDid();
|
|
10402
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10403
|
-
result = await handlers.getRequests(listConfig.relayedNodeDid || relayerDid, page);
|
|
10404
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10405
|
-
setData({ items: result.data });
|
|
10406
|
-
break;
|
|
10407
|
-
case "projects":
|
|
10408
|
-
relayerDid = handlers.getRelayerDid();
|
|
10409
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10410
|
-
result = await handlers.getProjects(listConfig.relayedNodeDid || relayerDid, page);
|
|
10411
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10412
|
-
setData({ items: result.data });
|
|
10413
|
-
break;
|
|
10414
|
-
case "daos":
|
|
10415
|
-
relayerDid = handlers.getRelayerDid();
|
|
10416
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10417
|
-
const daoRelayerDid = listConfig.relayedNodeDid || relayerDid;
|
|
10418
|
-
switch (listConfig.daoType) {
|
|
10419
|
-
case "pod":
|
|
10420
|
-
result = await handlers.getPODs(daoRelayerDid, page, daoRoleFilter);
|
|
10421
|
-
break;
|
|
10422
|
-
case "group":
|
|
10423
|
-
if (!handlers.getDaoGroups) throw new Error("getDaoGroups handler is not configured");
|
|
10424
|
-
result = await handlers.getDaoGroups(daoRelayerDid, page, daoRoleFilter);
|
|
10425
|
-
break;
|
|
10426
|
-
default:
|
|
10427
|
-
result = await handlers.getDaos(daoRelayerDid, page, daoRoleFilter);
|
|
10428
|
-
break;
|
|
10429
|
-
}
|
|
10430
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10431
|
-
setData({ items: result.data });
|
|
10432
|
-
break;
|
|
10433
|
-
case "group_members":
|
|
10434
|
-
if (!listConfig.address) throw new Error("Address is required");
|
|
10435
|
-
if (!listConfig.groupCoreAddress) throw new Error("Group Core Address is required");
|
|
10436
|
-
result = await handlers.getMembers(listConfig.address, listConfig.groupCoreAddress, listConfig.withBalance, page);
|
|
10437
|
-
setData({ items: result.data });
|
|
10438
|
-
break;
|
|
10439
|
-
case "validators":
|
|
10440
|
-
relayerDid = handlers.getRelayerDid();
|
|
10441
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10442
|
-
result = await handlers.getValidators(listConfig.relayedNodeDid || relayerDid, page);
|
|
10443
|
-
setData({ items: result.data });
|
|
10444
|
-
break;
|
|
10445
|
-
case "balances":
|
|
10446
|
-
user = handlers.getCurrentUser();
|
|
10447
|
-
if (!user.address && !listConfig.address) throw new Error("Address is required");
|
|
10448
|
-
result = await handlers.getBalances(listConfig.address || user.address);
|
|
10449
|
-
setData({ items: result.data });
|
|
10450
|
-
break;
|
|
10451
|
-
case "dao_members":
|
|
10452
|
-
user = handlers.getCurrentUser();
|
|
10453
|
-
groupIds = await handlers.getDaoGroupsIds();
|
|
10454
|
-
if (!user.address && !listConfig.address) throw new Error("Address is required");
|
|
10455
|
-
if (!groupIds && !listConfig.groupIds) throw new Error("Group Ids are required");
|
|
10456
|
-
result = await handlers.getDaoMembers(listConfig.address || user.address, listConfig.groupIds || groupIds, listConfig.withBalance, page);
|
|
10457
|
-
setData({ items: result.data });
|
|
10458
|
-
break;
|
|
10459
|
-
case "deed_subscriptions":
|
|
10460
|
-
relayerDid = handlers.getRelayerDid();
|
|
10461
|
-
if (!relayerDid && !listConfig.relayedNodeDid) throw new Error("Relayer is required");
|
|
10462
|
-
result = await handlers.getDeedSubscriptions(listConfig.relayedNodeDid || relayerDid, page);
|
|
10463
|
-
setTotalPages(Math.ceil(result.totalCount / DEFAULT_PAGE_SIZE));
|
|
10464
|
-
setData({ items: result.data });
|
|
10465
|
-
break;
|
|
10466
|
-
case "claims":
|
|
10467
|
-
const deedDid = listConfig.deedDid || "";
|
|
10468
|
-
const claimCollectionId = listConfig.claimCollectionId || "";
|
|
10469
|
-
const adminAddress = listConfig.adminAddress || "";
|
|
10470
|
-
if (!deedDid || !claimCollectionId || !adminAddress) {
|
|
10471
|
-
setError("Configure issue: please configure deed DID, claim collection ID, and admin address.");
|
|
10472
|
-
setData({ items: [] });
|
|
10473
|
-
} else {
|
|
10474
|
-
const user2 = handlers.getCurrentUser();
|
|
10475
|
-
if (!user2 || !user2.address) {
|
|
10476
|
-
setError("Unable to determine current user.");
|
|
10477
|
-
setData({ items: [] });
|
|
10478
|
-
break;
|
|
10479
|
-
}
|
|
10480
|
-
let fetchedUserRole = null;
|
|
10481
|
-
try {
|
|
10482
|
-
const roles = await handlers.getUserRoles({
|
|
10483
|
-
userAddress: user2.address,
|
|
10484
|
-
adminAddress,
|
|
10485
|
-
deedDid,
|
|
10486
|
-
collectionIds: [claimCollectionId]
|
|
10487
|
-
});
|
|
10488
|
-
const roleData = roles?.find((r) => r.collectionId === claimCollectionId);
|
|
10489
|
-
fetchedUserRole = roleData?.role || null;
|
|
10490
|
-
setUserRole(fetchedUserRole);
|
|
10491
|
-
} catch (error2) {
|
|
10492
|
-
console.error("Failed to fetch user roles:", error2);
|
|
10493
|
-
setUserRole(null);
|
|
10494
|
-
}
|
|
10495
|
-
const allClaims = await handlers.getClaimsPerCollectionId({ collectionId: claimCollectionId });
|
|
10496
|
-
const claimsWithStatuses = allClaims.map((claim) => {
|
|
10497
|
-
const { status } = getClaimStatus(claim);
|
|
10498
|
-
const statusLower = status.toLowerCase();
|
|
10499
|
-
return { ...claim, [statusLower]: true };
|
|
10500
|
-
});
|
|
10501
|
-
let filteredClaims;
|
|
10502
|
-
if (fetchedUserRole === "EA" /* Evaluator */) {
|
|
10503
|
-
filteredClaims = claimsWithStatuses;
|
|
10504
|
-
} else if (fetchedUserRole === "SA" /* ServiceProvider */) {
|
|
10505
|
-
filteredClaims = claimsWithStatuses.filter((claim) => claim.agentAddress === user2.address);
|
|
10506
|
-
} else {
|
|
10507
|
-
filteredClaims = [];
|
|
10508
|
-
}
|
|
10509
|
-
setData({ items: filteredClaims });
|
|
10510
|
-
}
|
|
10511
|
-
break;
|
|
10512
|
-
case "matrix_members":
|
|
10513
|
-
const roomId = editor.getRoomId?.();
|
|
10514
|
-
const mx = editor.getMatrixClient?.();
|
|
10515
|
-
if (!roomId || !mx) throw new Error("Room ID and Matrix client are required");
|
|
10516
|
-
const members = await handlers.getRoomMembers(roomId, mx);
|
|
10517
|
-
setData({ items: members });
|
|
10518
|
-
break;
|
|
10519
|
-
default:
|
|
10520
|
-
throw new Error(`Unknown list type: ${listType}`);
|
|
10521
|
-
}
|
|
10590
|
+
const result = await fetchListData({
|
|
10591
|
+
handlers,
|
|
10592
|
+
listType,
|
|
10593
|
+
listConfig,
|
|
10594
|
+
page,
|
|
10595
|
+
runtimeSearchValue,
|
|
10596
|
+
daoRoleFilter,
|
|
10597
|
+
roomId: editor.getRoomId?.(),
|
|
10598
|
+
matrixClient: editor.getMatrixClient?.()
|
|
10599
|
+
});
|
|
10600
|
+
setData(result.data);
|
|
10601
|
+
setTotalPages(result.totalPages);
|
|
10602
|
+
setUserRole(result.userRole);
|
|
10522
10603
|
} catch (err) {
|
|
10604
|
+
setData({ items: [] });
|
|
10605
|
+
setTotalPages(0);
|
|
10523
10606
|
setError(err instanceof Error ? err.message : "Failed to fetch data");
|
|
10524
10607
|
} finally {
|
|
10525
10608
|
setLoading(false);
|
|
10526
10609
|
}
|
|
10527
|
-
}, [handlers, page, listType, listConfig, runtimeSearchValue, daoRoleFilter]);
|
|
10610
|
+
}, [handlers, page, listType, listConfig, runtimeSearchValue, daoRoleFilter, editor]);
|
|
10528
10611
|
useEffect36(() => {
|
|
10529
10612
|
fetchDataRef.current = fetchData;
|
|
10530
10613
|
}, [fetchData]);
|
|
10531
10614
|
useEffect36(() => {
|
|
10532
|
-
if (listType
|
|
10615
|
+
if (listType) {
|
|
10533
10616
|
fetchData();
|
|
10534
10617
|
}
|
|
10535
|
-
}, [
|
|
10618
|
+
}, [fetchData, listType]);
|
|
10536
10619
|
const handleFilterChange = (filterOption) => {
|
|
10537
10620
|
if (filterOption?.key === listFilterConfig?.key && filterOption?.value === listFilterConfig?.value) {
|
|
10538
10621
|
if (listType === "daos") setPage(1);
|
|
@@ -10603,7 +10686,7 @@ var ListFlowView = ({ block, editor }) => {
|
|
|
10603
10686
|
if (!listType) {
|
|
10604
10687
|
return /* @__PURE__ */ React93.createElement(Center9, { py: "xl" }, /* @__PURE__ */ React93.createElement(Text60, { size: "sm", c: "dimmed" }, "List not configured"));
|
|
10605
10688
|
}
|
|
10606
|
-
return /* @__PURE__ */ React93.createElement(Stack59, { w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React93.createElement(Title5, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React93.createElement(Tooltip10, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon15, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React93.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React93.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React93.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React93.createElement(Stack59, { mih: totalPages
|
|
10689
|
+
return /* @__PURE__ */ React93.createElement(Stack59, { w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { px: 5, align: "center", justify: "space-between" }, /* @__PURE__ */ React93.createElement(Title5, { order: 4 }, getListNameByType(listType)), /* @__PURE__ */ React93.createElement(Tooltip10, { label: opened ? "Collapse" : "Expand", withArrow: true }, /* @__PURE__ */ React93.createElement(ActionIcon15, { variant: "subtle", size: "sm", onClick: toggle, "aria-label": opened ? "Collapse" : "Expand" }, opened ? /* @__PURE__ */ React93.createElement(IconChevronUp, { size: 18 }) : /* @__PURE__ */ React93.createElement(IconChevronDown2, { size: 18 })))), /* @__PURE__ */ React93.createElement(Collapse2, { pb: 5, px: 5, in: opened }, /* @__PURE__ */ React93.createElement(Stack59, { mih: totalPages > 1 ? 500 : void 0, w: "100%" }, /* @__PURE__ */ React93.createElement(Flex28, { align: "center", gap: "xs" }, listSortConfig?.key && /* @__PURE__ */ React93.createElement(Flex28, { align: "center" }, /* @__PURE__ */ React93.createElement(Text60, { size: "xs" }, listSortConfig.key?.replace(/([A-Z])/g, " $1").replace(
|
|
10607
10690
|
/^./,
|
|
10608
10691
|
(str) => str.toUpperCase()
|
|
10609
10692
|
), " "), /* @__PURE__ */ React93.createElement(Text60, { lh: 0.5 }, listSortConfig.direction === "asc" && /* @__PURE__ */ React93.createElement(IconArrowUp3, { size: 18 }), listSortConfig.direction === "desc" && /* @__PURE__ */ React93.createElement(IconArrowDown2, { size: 18 }))), isMultiSelect && /* @__PURE__ */ React93.createElement(Text60, { lh: 0.5 }, "Multi Selection")), /* @__PURE__ */ React93.createElement(Flex28, { justify: "space-between" }, /* @__PURE__ */ React93.createElement(Flex28, { gap: "xs", align: "center" }, /* @__PURE__ */ React93.createElement(FilterTab, { key: "All", label: "All", isActive: !listFilterConfig?.key, onClick: () => handleFilterChange(null) }), Array.isArray(listFilterConfigOptions) && listFilterConfigOptions.length > 0 && listFilterConfigOptions.map(({ key, label, type }) => /* @__PURE__ */ React93.createElement(
|
|
@@ -10636,7 +10719,7 @@ var ListFlowView = ({ block, editor }) => {
|
|
|
10636
10719
|
isSearchActive: isSearchOpen || !!runtimeSearchValue
|
|
10637
10720
|
}
|
|
10638
10721
|
)
|
|
10639
|
-
))), /* @__PURE__ */ React93.createElement(Flex28, { flex: 1 }, loading ? /* @__PURE__ */ React93.createElement(Center9, { py: "xl", w: "100%" }, /* @__PURE__ */ React93.createElement(Loader16, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React93.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React93.createElement(Stack59, { flex: 1 }, /* @__PURE__ */ React93.createElement(Stack59, { gap: "md" }, renderListComponent(), /* @__PURE__ */ React93.createElement(
|
|
10722
|
+
))), /* @__PURE__ */ React93.createElement(Flex28, { flex: 1 }, loading ? /* @__PURE__ */ React93.createElement(Center9, { py: "xl", w: "100%" }, /* @__PURE__ */ React93.createElement(Loader16, { size: "md", mx: "auto" })) : error ? /* @__PURE__ */ React93.createElement(BaseAlert, { onRetry: fetchData, errMsg: error }) : /* @__PURE__ */ React93.createElement(Stack59, { flex: 1 }, /* @__PURE__ */ React93.createElement(Stack59, { gap: "md" }, renderListComponent(), totalPages > 1 && /* @__PURE__ */ React93.createElement(
|
|
10640
10723
|
ListPagination,
|
|
10641
10724
|
{
|
|
10642
10725
|
page,
|
|
@@ -57734,4 +57817,4 @@ export {
|
|
|
57734
57817
|
ixoGraphQLClient,
|
|
57735
57818
|
getEntity
|
|
57736
57819
|
};
|
|
57737
|
-
//# sourceMappingURL=chunk-
|
|
57820
|
+
//# sourceMappingURL=chunk-W5CKNMDB.js.map
|