UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

322 lines (321 loc) 7.36 kB
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