react-ifz
Version:
React wrapper conditions. Simple wrapper
2 lines (1 loc) • 3.41 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ReactIfz={},e.React)}(this,(function(e,n){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=t(n),r=function(){return r=Object.assign||function(e){for(var n,t=1,l=arguments.length;t<l;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},r.apply(this,arguments)},a=function(e){var n=e.condition,t=e.children;return i(n)?l.default.createElement(l.default.Fragment,null,t):null},u=function(e){var n=e.condition,t=e.children;if(!t)return null;var r=i(n),a=function(e,n){var t=[],r=[],a=[],u=!0;return l.default.Children.forEach(e,(function(e){if(l.default.isValidElement(e)){var o=e.props.condition;switch(e.type){case s:return void(n&&t.push(e));case c:return u=!1,void(!n&&i(o)&&r.push(e));case d:return u=!1,void(n||(u=!1,a.push(e)))}}})),f(t.length>1||r.length>1||a.length>1,"Multiple <Then /> or <ElseIf /> or <Else /> blocks found in <If />. Only the first will be rendered."),{tag:t[0]||r[0]||a[0],isSingle:u}}(t,r),u=a.tag,o=a.isSingle;return r&&o?l.default.createElement(l.default.Fragment,null,t):l.default.createElement(l.default.Fragment,null,u)};function i(e){return Boolean("function"==typeof e?e():e)}function o(e){return null==e}function f(e,n){if(e){"undefined"!=typeof console&&console.warn(n);try{throw new Error(n)}catch(e){}}}var c=function(e){return l.default.createElement(u,r({},e))},d=function(e){var n=e.children;return l.default.createElement(l.default.Fragment,null,n)},s=function(e){var n=e.children;return l.default.createElement(l.default.Fragment,null,n)},h=function(e){var n=e.children;return l.default.createElement(l.default.Fragment,null,n)},m=function(e){var n=e.children;return l.default.createElement(l.default.Fragment,null,n)};e.Case=m,e.Default=h,e.Else=d,e.ElseIf=c,e.If=u,e.IfCondition=function(e){var n=e.condition,t=e.children;return l.default.createElement(a,{condition:n},t)},e.IfElseCondition=function(e){var n=e.condition,t=e.children,r=e.elseChildren;return i(n)?l.default.createElement(l.default.Fragment,null,t):l.default.createElement(l.default.Fragment,null,r)},e.IfElseIfCondition=function(e){var n=e.condition,t=e.children,r=e.elseIfChildren,a=e.elseIfCondition,u=e.elseChildren;return i(n)?l.default.createElement(l.default.Fragment,null,t):i(a)?l.default.createElement(l.default.Fragment,null,r):l.default.createElement(l.default.Fragment,null,u)},e.Switch=function(e){var n=e.children,t=e.condition;if(!n)return null;var r=function(e,n){var t=[],r=[];o(n)?l.default.Children.forEach(e,(function(e){if(l.default.isValidElement(e)){var n=i(e.props.condition);switch(e.type){case m:return void(n&&t.push(e));case h:return void r.push(e)}}})):l.default.Children.forEach(e,(function(e){if(l.default.isValidElement(e)){var a=i(e.props.condition)===n;switch(e.type){case m:return void(a&&t.push(e));case h:return void r.push(e)}}}));return f(t.length>1||r.length>1,"Must contain exactly one <Case /> or <Default /> block."),{tagCase:t[0],tagDefault:r[0]}}(n,i(t)),a=r.tagCase,u=r.tagDefault;return l.default.createElement(l.default.Fragment,null,a||u)},e.Then=s,e.When=a,e.execConditions=i,e.isNil=o,Object.defineProperty(e,"__esModule",{value:!0})}));