synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
107 lines (106 loc) • 3.28 kB
JavaScript
import { jsx as n, jsxs as y } from "react/jsx-runtime";
import C from "./EcosystemCard.js";
import f from "./EcosystemSkeleton.js";
import { Markdown as I } from "../Markdown/MarkdownSynapse.js";
import { ImageFileHandle as O } from "../widgets/ImageFileHandle.js";
import { useGetFullTableQueryResults as S } from "../../synapse-queries/entity/useGetQueryResultBundle.js";
import { parseEntityIdFromSqlStatement as U, getColumnIndex as i } from "../../utils/functions/SqlFunctions.js";
import "../../utils/functions/EntityTypeUtils.js";
import { BUNDLE_MASK_QUERY_RESULTS as _ } from "../../utils/SynapseConstants.js";
import "../../synapse-client/SynapseClient.js";
import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
import "@sage-bionetworks/synapse-client/util/SynapseClientError";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import "lodash-es";
import { Alert as g, Stack as q } from "@mui/material";
import { FileHandleAssociateType as N } from "@sage-bionetworks/synapse-types";
import T from "lodash-es/uniq";
import A from "./EcosystemLayout.js";
const l = {
RESOURCE_CATEGORY: "resourcecategory",
RESOURCE_NAME: "resourcename",
RESOURCE_DESCRIPTION: "resourcedescription",
RESOURCE_URL: "resourceurl",
RESOURCE_ICON_IMAGE: "resourceiconimage"
};
function M(m) {
const { row: r, headers: o, tableEntityId: t } = m, E = i(
l.RESOURCE_NAME,
o
), u = r.values[E], a = i(
l.RESOURCE_URL,
o
), d = r.values[a], R = i(
l.RESOURCE_DESCRIPTION,
o
), e = r.values[R];
let c = null;
const s = i(
l.RESOURCE_ICON_IMAGE,
o
);
if (s) {
const p = r.values[s];
p && (c = /* @__PURE__ */ n(
O,
{
fileHandleAssociation: {
fileHandleId: p,
associateObjectId: t,
associateObjectType: N.TableEntity
}
}
));
}
return /* @__PURE__ */ n(
C,
{
title: u,
titleUrl: d,
description: /* @__PURE__ */ n(I, { markdown: e }),
image: c
}
);
}
function J(m) {
const { query: r } = m, o = U(r.sql), { data: t, isLoading: E, error: u } = S({
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
entityId: o,
query: r,
partMask: _
});
if (!t?.queryResult)
return E ? /* @__PURE__ */ n(f, {}) : u ? /* @__PURE__ */ y(g, { color: "error", children: [
"Error loading Ecosystem data: ",
u.message
] }) : null;
const a = i(
l.RESOURCE_CATEGORY,
t.queryResult.queryResults.headers
), R = T(
t.queryResult.queryResults.rows.map((e) => e.values[a]).filter((e) => !!e)
// Remove null values
).map((e) => {
const c = t.queryResult.queryResults.rows.filter(
(s) => s.values[a] === e
);
return {
title: e,
content: /* @__PURE__ */ n(q, { children: c.map((s) => /* @__PURE__ */ n(
M,
{
row: s,
headers: t.queryResult.queryResults.headers,
tableEntityId: o
},
s.values.join("-")
)) })
};
});
return /* @__PURE__ */ n(A, { config: R });
}
export {
J as default
};
//# sourceMappingURL=TableQueryEcosystem.js.map