@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
51 lines • 1.87 kB
JavaScript
;
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