UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

51 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const dynamic_form_1 = require("@tomino/dynamic-form"); const helpers_1 = require("../helpers"); const context_1 = require("../context"); const common_1 = require("../common"); exports.IfView = controlProps => { const { formElement, owner } = controlProps; const { props: props } = formElement; const context = React.useContext(context_1.Context); if (!common_1.prop(controlProps.formElement)) { return React.createElement("div", null, "Component not bound."); } const value = helpers_1.getValue(controlProps, context); let isTrue = true; if (props.exists && !value) { isTrue = false; } else if (props.notExists && value) { isTrue = false; } else if (props.equal && value != value) { isTrue = false; } else if (props.notEqual && value == parseFloat(value)) { isTrue = false; } else if (props.biggerThan && value <= parseFloat(value)) { isTrue = false; } else if (props.biggerOrEqualThan && value < parseFloat(value)) { isTrue = false; } else if (props.smallerThan && value <= parseFloat(value)) { isTrue = false; } else if (props.smallerOrEqualThan && value > parseFloat(value)) { isTrue = false; } else if (props.expression) { isTrue = dynamic_form_1.safeEval(owner, props.expression, owner); } if (formElement.elements && formElement.elements.length) { return controlProps.catalogue.createComponent(controlProps, formElement.elements[isTrue ? 0 : 1], context); } return React.createElement("div", null, "Empty template"); }; exports.IfView.displayName = 'IfView'; //# sourceMappingURL=if_view.js.map