UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

39 lines (38 loc) 2.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ArrayValue; const jsx_runtime_1 = require("react/jsx-runtime"); const mui_1 = require("tss-react/mui"); const Attributes_1 = __importDefault(require("./Attributes")); const BasicValue_1 = __importDefault(require("./BasicValue")); const FieldName_1 = __importDefault(require("./FieldName")); const util_1 = require("../../util"); const useStyles = (0, mui_1.makeStyles)()(theme => ({ field: { display: 'flex', flexWrap: 'wrap', }, fieldSubvalue: { wordBreak: 'break-word', maxHeight: 300, padding: theme.spacing(0.5), border: `1px solid ${theme.palette.action.selected}`, boxSizing: 'border-box', overflow: 'auto', }, })); function ArrayValue({ name, value, description, formatter, prefix = [], }) { const { classes } = useStyles(); if (value.length === 1) { return (0, util_1.isObject)(value[0]) ? ((0, jsx_runtime_1.jsx)(Attributes_1.default, { formatter: formatter, attributes: value[0], prefix: [...prefix, name] })) : ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: formatter ? formatter(value[0], name) : value[0] })] })); } else if (value.every(val => (0, util_1.isObject)(val))) { return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: value.map((val, i) => ((0, jsx_runtime_1.jsx)(Attributes_1.default, { formatter: formatter, attributes: val, prefix: [...prefix, `${name}-${i}`] }, `${JSON.stringify(val)}-${i}`))) })); } else { return ((0, jsx_runtime_1.jsxs)("div", { className: classes.field, children: [(0, jsx_runtime_1.jsx)(FieldName_1.default, { prefix: prefix, description: description, name: name }), value.map((val, i) => ((0, jsx_runtime_1.jsx)("div", { className: classes.fieldSubvalue, children: (0, jsx_runtime_1.jsx)(BasicValue_1.default, { value: formatter ? formatter(val, name) : val }) }, `${JSON.stringify(val)}-${i}`)))] })); } }