JSFiddle - React, Tailwind, and code Playground

by psteele

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.js"></script>

JavaScript

-//v2.0.3 - C 2013, Dave Herren, License: MIT 
(function(){function y(b,g){var e=b?b[g.full]||b[g.parent]||b[g.name]||{}:{};p&&p(g,e,b);return e}function r(b){return null===b||void 0===b}function u(b){return null===b||void 0===b||b.constructor===String||b.constructor===Number||b.constructor===Boolean||b instanceof Date}function n(b,g,e,c){var f,a,d,h,k,l,m;c=c||y(g,e);if(f=c.custom)l=!0,"function"===typeof f?(a=f(b),r(a)||(a.___$mapCustom=f)):(a=f.map(b),r(a)||(a.___$mapCustom=f.map,f.unmap&&(a.___$unmapCustom=f.unmap)));else if(c.append)l=!0,
a=b;else{if(c.exclude)return l=!0,v;if(u(b))a=e.parentIsArray?b:B(b);else if(b instanceof Array){a=[];d=0;for(f=b.length;d<f;d++)a[d]=n(b[d],g,{name:"[i]",parent:e.name+"[i]",full:e.full+"[i]",parentIsArray:!0});if(!e.parentIsArray||z){h={name:"[i]",parent:e.name+"[i]",full:e.full+"[i]",parentIsArray:!0};a=C(a);if(b=c.arrayChildId)a.___$childIdName=b;a.pushFromModel=function(b){b=n(b,g,h);a.push(b)};a.unshiftFromModel=function(b){b=n(b,g,h);a.unshift(b)};a.popToModel=function(b){b=a.pop();return s(b,
h)};a.shiftToModel=function(b){b=a.shift();return s(b,h)}}}else if(b.constructor===Object)for(d in a={},b)h={name:d,parent:("[i]"===e.name?e.parent:e.name)+"."+d,full:e.full+"."+d},m=b[d],(f=u(m)?y(g,h):void 0)&&f.custom?(a.___$customChildren=a.___$customChildren||{},a.___$customChildren[d]=f.custom,a[d]="function"===typeof f.custom?f.custom(b[d]):f.custom.map(b[d])):(f=n(m,g,h,f),f!==v&&(a[d]=f))}if(!l&&(k=c.extend))"function"===typeof k?a=k(a)||a:k.constructor===Object&&("function"===typeof k.map&&
(a=k.map(a)||a),"function"===typeof k.unmap&&(a.___$unmapExtend=k.unmap));return a}function s(b,g){var e,c,f,a=q(b),d;d=b!==a;p&&p(g);if(!d&&b&&b.constructor===Function)return v;if(b&&b.___$unmapCustom)e=b.___$unmapCustom(b);else if(d&&u(a)||r(a))e=a;else if(a instanceof Array){e=[];c=0;for(f=a.length;c<f;c++)e[c]=s(a[c],{name:"[i]",parent:g.name+"[i]",full:g.full+"[i]"})}else if(a.constructor===Object)for(c in...