ds.oop

by david_i_smith

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

JavaScript

(function(){window.ds=window.ds||{};var g={},h={};ds.extend=function(b,d){for(var a in d)d.hasOwnProperty(a)&&(b[a]=d[a])};ds.module=function(b,d){function a(a,c){h[b][a]=p(c);return f}function p(a){for(var c=a[a.length-1],f=[],k=0;k<a.length-1;k++)f.push(h[b][a[k]]);return c.apply(this,f)}function k(a){for(var c=0;c<a.length;c++){var f=g[a[c]];g[b]=g[b].concat(f);k(f)}}g[b]=g[b]||[];h[b]=h[b]||{};if(d&&0<d.length){g[b]=g[b].concat(d);k(d);d=g[b];for(var c=0;c<d.length;c++)ds.extend(h[b],h[d[c]])}var f=
{factory:a,controller:a};return f}})();(function(){function g(a,b){return a.filter(function(a){return 0>b.indexOf(a)})}function h(a,b){var k=[],c;for(c in a)"function"==typeof a[c]&&(b?k.push(c+": "+a[c].length):k[c]=c+": "+a[c].toString());return k}window.ds=window.ds||{};ds.object=ds.object||{};ds.make=ds.make||{};ds.make["static"]=ds.make["static"]||{};ds["static"]=ds["static"]||{};var b=ds.object.copy=ds.copy=function(a,d,k,c,f){"undefined"===typeof c&&(c=!0);"undefined"===typeof f&&(f=!0);d||(d=a instanceof Array?[]:{});for(var e in a){var g=
!0;k&&-1!=k.indexOf(e)&&(g=!1);g&&(f||Object.defineProperty(d,e,{enumerable:!1,writable:!0}),c&&!d[e]||!c)&&(d[e]="function"==typeof a[e]?a[e]:a[e]==a?a:a[e].constructor===Number||a[e].constructor===String||a[e].constructor===Boolean?a[e]:b(a[e]))}return d};ds.make["enum"]=ds["enum"]=function(a){for(var b={},d=Object.keys(a),c=0;c<d.length;c++){var f=a[d[c]];b[d[c]]=f;b[f]=d[c]}return b};var d=ds.make["class"]=ds["class"]=function(a,d){function k(c){var d=c.type;b(c,a,["type","constructor"],!0);return d}
var c=a.inherits;if(c)try{var f;if(c instanceof Array){f=[];for(var e=0;e<c.length;e++)f.push(k(c[e].prototype))}else f=k(c.prototype);c=f}catch(r){throw"ERROR: Unable to inherit classes in "+a.type+". Make sure your have created the class with ds.make.class() before attempting to inherit it!";}if(e=a["implements"]){e instanceof Array||(e=[e]);for(c=0;c<e.length;c++){f=h(e[c],!0);var...