synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
157 lines (156 loc) • 6.24 kB
JavaScript
import { jsx as e, jsxs as d, Fragment as k } from "react/jsx-runtime";
import { getValueOrMultiValue as B } from "./CardUtils.js";
import { formatDate as z } from "../../utils/functions/DateFormatter.js";
import { getColumnIndex as D } from "../../utils/functions/SqlFunctions.js";
import "../../utils/functions/EntityTypeUtils.js";
import "../../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 { isEmpty as G } from "lodash-es";
import { TargetEnum as M } from "../../utils/html/TargetEnum.js";
import { Tooltip as J } from "@mui/material";
import { ColumnTypeEnum as R } from "@sage-bionetworks/synapse-types";
import K from "dayjs";
import { Fragment as p } from "react";
import { EntityLink as Q } from "../EntityLink.js";
import { Markdown as b } from "../Markdown/MarkdownSynapse.js";
import { SmartLink as S } from "../SmartLink/SmartLink.js";
import { UserBadge as W } from "../UserCard/UserBadge.js";
import { EntityColumnImage as V } from "../widgets/EntityColumnImage.js";
import { LabelMaybeWithIcon as O } from "./LabelMaybeWithIcon.js";
import j from "./Linkify.js";
function Le(F) {
const {
value: s,
columnName: T,
labelLink: r,
selectColumns: y,
columnModels: I,
isHeader: H,
className: v,
rowData: w,
rowId: _,
columnIconOptions: P
} = F;
if (!s)
return /* @__PURE__ */ e("p", { children: s });
const { strList: t, str: i, selectColumn: E } = B({
columnName: T,
value: s,
selectColumns: y,
columnModels: I
}), L = E?.columnType, U = P?.columns?.[T], g = ", ";
if (!i)
return /* @__PURE__ */ e("p", { children: i });
let c = v;
const x = {};
if (H && (c = v?.concat(" ", "SRC-lightLink")), L === R.USERID_LIST && t)
return /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(W, { userId: n, className: c }),
o < t.length - 1 && g
] }, n)) });
if (L === R.USERID && i)
return /* @__PURE__ */ e(W, { userId: i, className: c });
if (L === R.DATE && i)
return /* @__PURE__ */ e("p", { children: z(K(Number(i))) });
if (!r)
return t ? /* @__PURE__ */ e(k, { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(O, { value: n, iconConfig: U, children: /* @__PURE__ */ e(j, { text: n, className: c }) }),
o < t.length - 1 && g
] }, n)) }) : /* @__PURE__ */ e(O, { value: i, iconConfig: U, children: /* @__PURE__ */ e(j, { text: i, className: c }) });
if ("resolveEntityName" in r && r.resolveEntityName && i) {
const { baseURL: n, URLColumnName: o } = r, a = `/${n}?${o}=${i}`;
return /* @__PURE__ */ e(Q, { entity: i, link: a, showIcon: !1 });
}
let l;
if ("isMapValueToReactNodeConfig" in r && r.isMapValueToReactNodeConfig) {
const { Component: n } = r;
l = /* @__PURE__ */ e(n, { value: t || i, selectColumn: E });
} else if ("isMarkdown" in r && r.isMarkdown)
t ? l = /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(b, { renderInline: !0, markdown: n }, n),
o < t.length - 1 && g
] }, n)) }) : l = /* @__PURE__ */ e(b, { renderInline: !0, markdown: s });
else if ("isEntityImage" in r && r.isEntityImage)
t ? l = /* @__PURE__ */ e("p", { children: t.map((n, o) => /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(V, { entityId: n }),
o < t.length - 1 && g
] }, n)) }) : l = /* @__PURE__ */ e(V, { entityId: s });
else {
const n = t || i.split(",");
let o;
if ("target" in r && (o = r.target), "linkColumnName" in r) {
const a = D(
r.linkColumnName,
y,
I
);
if (a == null)
console.warn(
`Could not determine column index of ${r.linkColumnName}`
), l = /* @__PURE__ */ e(k, { children: s });
else {
const N = w[a];
G(N) ? l = /* @__PURE__ */ e(k, { children: s }) : l = /* @__PURE__ */ e("p", { children: n.map((m, C) => /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(
S,
{
href: N ?? "",
target: o ?? M.NEW_WINDOW,
className: c,
style: x,
children: m
},
m
),
C < n.length - 1 && /* @__PURE__ */ e("span", { style: { marginRight: 4 }, children: ", " })
] }, m)) });
}
} else
l = /* @__PURE__ */ e("p", { children: n.map((a, N) => {
const m = r, C = m.overrideValueWithRowID ? _ : a;
let u = "";
if ("baseURL" in m) {
const {
baseURL: f,
URLColumnName: h,
wrapValueWithParens: q,
urlParamStyle: A = "query-param"
} = m, $ = q ? `(${C})` : C;
A === "path-segment" ? u = `/${f}/${encodeURIComponent(String($))}` : u = `/${f}?${h}=${$}`;
} else if ("overrideLinkURLColumnName" in m) {
const f = D(
m.overrideLinkURLColumnName,
y,
I
);
if (f) {
const h = w[f];
h && (m.overrideLinkURLColumnTransform ? u = m.overrideLinkURLColumnTransform(h) : u = h);
}
}
return /* @__PURE__ */ d(p, { children: [
/* @__PURE__ */ e(
S,
{
href: u,
className: c,
style: x,
target: o ?? M.CURRENT_WINDOW,
children: a
},
a
),
N < n.length - 1 && /* @__PURE__ */ e("span", { style: { marginRight: 4 }, children: ", " })
] }, a);
}) });
}
return "tooltipText" in r && r.tooltipText ? /* @__PURE__ */ e(J, { title: r.tooltipText, enterNextDelay: 300, children: /* @__PURE__ */ e("span", { children: l }) }) : l;
}
export {
Le as SynapseCardLabel
};
//# sourceMappingURL=SynapseCardLabel.js.map