UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

82 lines (81 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const mobx_react_1 = require("mobx-react"); const common_1 = require("../common"); const control_factory_helpers_1 = require("./control_factory_helpers"); const semantic_ui_react_1 = require("semantic-ui-react"); const editor_context_1 = require("../editor/editor_context"); const helpers_1 = require("../helpers"); exports.groupLabel = (theme) => common_1.css ` height: 30px; color: ${theme.headerColor}; background-color: ${theme.headerBackground}; display: flex; align-items: center; padding-left: 12px; border-top: 1px solid black; border-bottom: 1px solid black; white-space: nowrap; label: groupLabel; &.h1 { .group-label { font-size: 16px !important; } } &.h2 { padding: 0px !important; .group-label { font-size: 14px; margin-bottom: 3px; } } &.h3 { padding: 0px; .group-label { font-size: 12px; margin-bottom: 3px; } } i { flex: 0 0 18px; } span { flex: 1 1 100%; } .group-label.h3 { font-size: 12px !important; } `; const groupContent = common_1.css ` padding: 6px 12px; `; exports.PropertyHeader = mobx_react_1.observer(({ children, label, buttons, bare = false, className }) => { const context = React.useContext(editor_context_1.EditorContext); const groups = JSON.parse(localStorage.getItem('CORPIX_GROUPS') || '{}'); const [expanded, setExpanded] = React.useState(groups[label] == null ? true : groups[label]); return (React.createElement(React.Fragment, null, React.createElement("div", { className: exports.groupLabel(context.theme) }, React.createElement(semantic_ui_react_1.Icon, { className: common_1.pointer, onClick: () => { const groups = JSON.parse(localStorage.getItem('CORPIX_GROUPS') || '{}'); groups[label] = !expanded; localStorage.setItem('CORPIX_GROUPS', JSON.stringify(groups)); setExpanded(!expanded); }, name: expanded ? 'caret down' : 'caret right' }), label, React.createElement("span", null), buttons), expanded && children && (React.createElement("div", { className: common_1.names({ [groupContent]: !bare }, className) }, children)))); }); exports.Group = mobx_react_1.observer((controlProps) => { const { formElement, owner, handlers, catalogue } = controlProps; const editorState = React.useContext(editor_context_1.EditorContext); const { elements, props: props = {} } = formElement; const text = props.text; const label = helpers_1.getPropValue(controlProps, elements[0], editorState, 'label'); return (React.createElement(exports.PropertyHeader, { label: text, bare: props.bare || (elements.length === 1 && !label) }, elements && control_factory_helpers_1.renderElements(editorState, elements, owner, handlers, catalogue, editorState, controlProps.uid, controlProps.filter))); }); exports.Group.displayName = 'Group'; //# sourceMappingURL=group.js.map