synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
322 lines (321 loc) • 7.36 kB
JavaScript
import { isEntityView as T, convertToEntityType as r, isDataset as u, isDatasetCollection as i, isSubmissionView as I } from "../../utils/functions/EntityTypeUtils.js";
import { ENTITY_VIEW_TYPE_MASK_FILE as o, ENTITY_VIEW_TYPE_MASK_DATASET as l, ColumnTypeEnum as e } from "@sage-bionetworks/synapse-types";
const E = [e.JSON];
function d(t, s) {
return Object.values(e).filter(
(n) => t ? !E.includes(n) : !0
).filter((n) => {
if (s)
switch (n) {
// JSON Subcolumns cannot be JSON or LIST types
case e.JSON:
case e.STRING_LIST:
case e.INTEGER_LIST:
case e.BOOLEAN_LIST:
case e.DATE_LIST:
case e.USERID_LIST:
case e.ENTITYID_LIST:
return !1;
default:
return !0;
}
return !0;
});
}
function A(t) {
switch (t) {
case "enumeration":
return "Values";
case "range":
return "Range";
default:
return t;
}
}
function R(t) {
switch (t) {
case e.STRING:
return "String";
case e.DOUBLE:
return "Double";
case e.BOOLEAN:
return "Boolean";
case e.INTEGER:
return "Integer";
case e.DATE:
return "Date";
case e.FILEHANDLEID:
return "File";
case e.ENTITYID:
return "Entity";
case e.LINK:
return "Link";
case e.MEDIUMTEXT:
return "MediumText";
case e.LARGETEXT:
return "LargeText";
case e.USERID:
return "User";
case e.STRING_LIST:
return "String List";
case e.INTEGER_LIST:
return "Integer List";
case e.BOOLEAN_LIST:
return "Boolean List";
case e.DATE_LIST:
return "Date List";
case e.USERID_LIST:
return "User ID List";
case e.ENTITYID_LIST:
return "Entity ID List";
case e.EVALUATIONID:
return "Evaluation";
case e.SUBMISSIONID:
return "Submission";
case e.JSON:
return "JSON";
default:
return t;
}
}
function g(t) {
switch (t) {
case e.STRING:
case e.STRING_LIST:
case e.LINK:
return !0;
default:
return !1;
}
}
function O(t) {
switch (t) {
case e.STRING_LIST:
case e.BOOLEAN_LIST:
case e.DATE_LIST:
case e.INTEGER_LIST:
case e.ENTITYID_LIST:
return !0;
default:
return !1;
}
}
function y(t, s) {
let n;
switch (t) {
case e.INTEGER:
case e.INTEGER_LIST:
n = ["enumeration", "range"];
break;
case e.STRING:
case e.BOOLEAN:
case e.USERID:
case e.ENTITYID:
case e.STRING_LIST:
case e.BOOLEAN_LIST:
case e.ENTITYID_LIST:
case e.USERID_LIST:
case e.EVALUATIONID:
n = ["enumeration"];
break;
case e.DOUBLE:
case e.DATE:
case e.DATE_LIST:
n = ["range"];
break;
default:
n = null;
}
return n && !s && (n = [void 0, ...n]), n;
}
function h(t, s, n) {
if (s)
return !1;
if (n)
return !1;
switch (t) {
case e.ENTITYID:
case e.ENTITYID_LIST:
case e.FILEHANDLEID:
case e.USERID:
case e.USERID_LIST:
case e.MEDIUMTEXT:
case e.LARGETEXT:
case e.JSON:
case e.SUBMISSIONID:
case e.EVALUATIONID:
return !1;
default:
return !0;
}
}
const G = 50, S = 1e3, M = 100;
function w(t) {
switch (t) {
case e.STRING:
case e.STRING_LIST:
case e.LINK:
return S;
default:
throw new Error(`Type is not known to have a max size: ${t}`);
}
}
function U(t, s) {
if (s)
return !1;
switch (t) {
case e.STRING:
case e.INTEGER:
case e.ENTITYID:
return !0;
default:
return !1;
}
}
function L(t, s) {
return s === e.INTEGER ? t.map((n) => parseInt(n)) : t;
}
function v(t, s = []) {
return t.map((n) => ({
...n,
columnType: n.columnType,
maximumSize: n.maximumSize == null ? void 0 : n.maximumSize.toString(),
maximumListLength: n.maximumListLength == null ? void 0 : n.maximumListLength.toString(),
isSelected: !1,
// If the name matches a known default column model, then we consider it to be a default column model itself
isOriginallyDefaultColumn: s.some(
(a) => a.name === n.name
),
jsonSubColumns: n.jsonSubColumns ? n.jsonSubColumns.map(
(a) => ({
...a,
columnType: a.columnType,
isSelected: !1
})
) : void 0,
// If this is defaultValue for a LIST column, the value is a serialized string
defaultValue: n.defaultValue && n.columnType.endsWith("_LIST") ? JSON.parse(n.defaultValue) : n.defaultValue,
enumValues: n.enumValues != null ? L(n.enumValues, n.columnType) : void 0
}));
}
function V(t) {
if (T(t))
return {
scope: t.scopeIds,
viewTypeMask: t.viewTypeMask,
viewEntityType: r(
t.concreteType
)
};
if (u(t) || i(t)) {
const s = u(t) ? o : l;
return {
scope: (t.items ?? []).map(
(n) => `${n.entityId}.${n.versionNumber}`
),
viewTypeMask: s,
viewEntityType: r(
t.concreteType
)
};
} else if (I(t))
return {
scope: t.scopeIds,
viewTypeMask: void 0,
viewEntityType: r(
t.concreteType
)
};
}
function F(t) {
switch (t) {
case e.STRING:
case e.STRING_LIST:
return { type: "string", minLength: 1 };
case e.DOUBLE:
return { type: "number" };
case e.BOOLEAN:
case e.BOOLEAN_LIST:
return { type: "boolean" };
case e.INTEGER:
case e.INTEGER_LIST:
return { type: "integer" };
case e.DATE:
case e.DATE_LIST:
return { type: "string", format: "datetime" };
case e.FILEHANDLEID:
case e.ENTITYID:
case e.ENTITYID_LIST:
case e.LINK:
case e.MEDIUMTEXT:
case e.LARGETEXT:
case e.USERID:
case e.USERID_LIST:
case e.SUBMISSIONID:
case e.JSON:
case e.EVALUATIONID:
default:
return { type: "string", minLength: 1 };
}
}
const m = (t, s) => t.name === s.name && t.columnType === s.columnType, N = (t, s) => {
let n;
for (const a of t)
if (m(a, s)) {
n = a;
break;
}
return n;
};
function f(t) {
const s = t !== null ? parseFloat(String(t)) : null;
return Number.isInteger(s) ? s : null;
}
const c = (t, s) => {
const n = f(t);
return s != null && n != null && n > 0 ? n < s : !1;
};
function D(t, s) {
return s ? !(c(
t.maximumSize,
s.maximumSize
) || c(
t.maximumListLength,
s.maximumListLength
)) : !0;
}
function b(t, s) {
return t.filter((n) => {
const a = N(
s,
n
);
return !D(
n,
a
);
}).length;
}
export {
G as DEFAULT_STRING_SIZE,
M as MAX_LIST_LENGTH,
S as MAX_STRING_SIZE,
h as canHaveDefault,
O as canHaveMaxListLength,
U as canHaveRestrictedValues,
g as canHaveSize,
y as configureFacetsForType,
D as doesColumnModelSatisfyAnnotationMinimums,
N as findMatchingColumnModel,
d as getAllowedColumnTypes,
R as getColumnTypeFriendlyName,
A as getFacetTypeFriendlyName,
f as getFormDataValueAsNumber,
F as getJsonSchemaItemDefinitionForColumnType,
w as getMaxSizeForType,
b as getNumberOfColumnModelsWithValuesBelowMinimumRecommendedSizes,
V as getViewScopeForEntity,
c as isFormDataValueSmallerThanRecommendedValue,
v as transformColumnModelsToFormData
};
//# sourceMappingURL=TableColumnSchemaEditorUtils.js.map