UNPKG

@arudovwen/react-form-builder

Version:
45 lines (44 loc) 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ToggleFieldsContainer; var _react = _interopRequireWildcard(require("react")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function ToggleFieldsContainer({ toggleVisibility, fields = [], results = {}, data, children }) { const dependentValue = (0, _react.useMemo)(() => results?.[data?.dependentField], [results, data]); const toggleResult = (0, _react.useMemo)(() => fields.every(field => { const value = results?.[field.field_name]; const operator = field.operator || 'equals'; if (field.id && field.label && field.fieldType && field.value != null) { const valA = field.value; const valB = value; switch (operator) { case 'equals': return String(valA).toLowerCase() === String(valB).toLowerCase(); case 'not_equals': return String(valA).toLowerCase() !== String(valB).toLowerCase(); case 'greater': return Number(valB) > Number(valA); case 'less': return Number(valB) < Number(valA); case 'contains': return String(valB).toLowerCase().includes(String(valA).toLowerCase()); case 'not_contains': return !String(valB).toLowerCase().includes(String(valA).toLowerCase()); default: return false; } } return false; }), [fields, results]); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { className: data?.isCascade && !dependentValue || toggleVisibility && (!toggleResult || !fields.length) ? 'opacity-10 h-0 overflow-hidden' : '' }, children)); }