UNPKG

@jswork/next

Version:

A javascript OOP toolkit for mobile & modern web.

1 lines 6.89 kB
!function(){var a,_,i,o,e,r,n,s,c,u,f,l,t="object"==typeof global&&global&&global.Object===Object&&global,p="object"==typeof self&&self&&self.Object===Object&&self,t=t||p||Function("return this")(),p="object"==typeof exports&&exports&&!exports.nodeType&&exports,h=p&&"object"==typeof module&&module&&!module.nodeType&&module,d=t.nx=t.nx||{BREAKER:{},NIL:{},VERSION:"1.5.2",DEBUG:!1,GLOBAL:t};function y(t){return t.toString().replace(n,".$1").replace(s,a).replace(c,"")}function b(){}function m(t,e){this.type=t,this.meta=e,this.base=e.extends||d.RootClass,this.$base=this.base.prototype,this.__class_meta__={},this.__class__=null,this.__constructor__=null}"function"==typeof define&&"object"==typeof define.amd&&define.amd?(t.nx=d,define(function(){return d})):h?(h.exports=d,h.exports.default=d,h.exports.nx=d,p.nx=d):t.nx=d,a=".",_="number",i="undefined",o=Array.prototype,e=Object.prototype.toString,r=Object.prototype.hasOwnProperty,n=/\[(\w+)\]/g,s=/[.]+/g,c=/^\.|\.$/g,d.noop=function(){},d.typeof=function(t){return null===t?"null":void 0===t?"undefined":"object"!=typeof t?typeof t:e.call(t).slice(8,-1).toLowerCase()},d.stubTrue=function(){return!0},d.stubFalse=function(){return!1},d.stubValue=function(t){return t},d.stubPromise=function(t){return void 0===t?Promise.resolve():Promise.resolve(t)},d.isBoolean=function(t){return"boolean"==typeof t},d.isString=function(t){return"string"==typeof t},d.isNumber=function(t){return typeof t==_&&!isNaN(t)},d.isNaN=function(t){return isNaN(t)},d.isFunction=function(t){return"function"==typeof t},d.isNil=function(t){return null==t},d.isNull=function(t){return null===t},d.isUndefined=function(t){return void 0===t},d.isArray=function(t){return Array.isArray(t)},d.isObject=function(t){return!Array.isArray(t)&&"object"==typeof t&&null!==t},d.isPromiseLike=function(t){return!!t&&"object"==typeof t&&"function"==typeof t.then},d.isPromise=function(t){return"object"==typeof t&&t instanceof Promise},d.try=function(t,e){e=e||d.noop;try{t()}catch(t){e(t)}},d.forEach=function(t,e,n){for(var o=t.length,i=0;i<o&&e.call(n,t[i],i,t)!==d.BREAKER;i++);},d.forIn=function(t,e,n){for(var o in t)if(r.call(t,o)&&e.call(n,o,t[o],t)===d.BREAKER)break},d.each=function(o,i,s){function t(t,e,n){return i.call(s,t,e,o,n)===d.BREAKER}var e,n;if(o)if(typeof(n=o.length)==_)for(e=0;e<n&&!t(e,o[e],!0);e++);else for(e in o)if(r.call(o,e)&&t(e,o[e],!1))break},d.mix=function(t){for(var n=t||{},e=arguments,o=1,i=e.length;o<i;o++)d.forIn(e[o],function(t,e){n[t]=e});return n},d.slice=function(t,e,n){return o.slice.call(t,e,n)},d.set=function(t,e,n){for(var o=y(e).split(a),i=t||d.GLOBAL,s=o.length-1,e=o[s],_=0;_<s;_++)var r=o[_],c=isNaN(+o[_+1])?{}:[],i=i[r]=i[r]||c;return i[e]=n,t},d.get=function(e,t,n){var o;return t?Array.isArray(t)?t.map(function(t){return d.get(e,t,n)}):(t=y(t).split(a),o=e||d.GLOBAL,t.forEach(function(t){o=o&&o[t]}),typeof n!=i&&typeof o==i?n:o):e},d.del=function(t,e){for(var n=y(e).split(a),o=0;o<n.length;o++){var i=n[o];if(o===n.length-1)return null!=t&&("object"==typeof t&&delete t[i],!0);t=t[i]}return!1},d.to=function(t){return t.then(function(t){return[void 0,t]}).catch(function(t){return[t,void 0]})},(h={__class_id__:0,__type__:"nx.RootClass",__base__:Object,__meta__:{},__static__:!1,__statics__:{},__properties__:{},__methods__:{},__method_init__:d.noop,__static_init__:d.noop}).__methods__=b.prototype=d.mix({constructor:b,init:d.noop,destroy:d.noop,toString:function(){return"[Class@"+this.__type__+"]"}},p={base:function(){var t=this.base.caller;if(t&&(t=t.__base__))return t.apply(this,arguments)},parent:function(t){var e=void 0===this.__id__,n=d.slice(arguments,1),o=e?this.__base__:this.__base__.prototype,e=this["@"+t].__type__,i=["get","set"][n.length];switch(e){case"method":return o[t].apply(this,n);case"property":return o["@"+t][i].apply(this,n)}}}),d.mix(h.__statics__,p),d.mix(b,h),d.mix(b,h.__statics__),d.RootClass=b,d.defineProperty=function(t,e,n,o){var i,s,_,r="@"+e,c=n&&"object"==typeof n?n:{value:n},c="value"in c?(s=c.value,_="_"+e,i=function(){return _ in this?this[_]:d.isFunction(s)?s.call(this):s},function(t){this[_]=t}):(i=n.get||t[r]&&t[r].get||d.noop,n.set||t[r]&&t[r].set||d.noop);return r in t&&(i.__base__=t[r].get,c.__base__=t[r].set),r=t[r]={__meta__:n,__name__:e,__type__:"property",__static__:!!o,get:i,set:c,configurable:!0},Object.defineProperty(t,e,r),r},d.defineMethod=function(t,e,n,o){var i="@"+e;return t[e]=n,t[i]={__meta__:n,__name__:e,__type__:"method",__static__:!!o}},d.defineBombMethod=function(n,t,o,i){t.split(",").forEach(function(t,e){d.defineMethod(n,t,o.call(n,t,e),i)})},d.defineMembers=function(n,o,t,i){d.forIn(t,function(t,e){-1<t.indexOf(",")?d.defineBombMethod(o,t,e,i):d["define"+n](o,t,e,i)})},u=1,f=0,l="nx.Anonymous",m.prototype={constructor:m,initMetaProcessor:function(){var t=this.meta,e=t.methods||{};d.mix(this.__class_meta__,{__type__:this.type,__meta__:t,__base__:this.base,__class_id__:u++,__method_init__:e.init||this.base.__method_init__,__static_init__:(t.statics||{}).init||this.base.__static_init__,__static__:!t.methods&&!!t.statics})},createClassProcessor:function(){var t=this;this.__class__=function(){this.__id__=f++,t.__constructor__.apply(this,arguments),t.registerDebug(this)}},inheritProcessor:function(){var t=this.__class_meta__;this.inheritedClass(t),this.defineMethods(t,!0),this.defineMethods(t,!1),this.defineProperties(t)},inheritedClass:function(t){function e(){}var n=this.__class__;e.prototype=this.$base,n.prototype=new e,n.prototype.$base=this.$base,n.prototype.constructor=n},defineMethods:function(t,e){var n=e?"statics":"methods",o="__"+n+"__",i=e?this.__class__:this.__class__.prototype,s=(e?this.base:this.base.prototype)[o]||{};d.forIn(this.meta[n],function(t,e){s[t]&&"function"==typeof e&&(e.__base__=s[t])}),i[o]=d.mix(t[o],s,this.meta[n]),d.defineMembers("Method",i,i[o],e)},defineProperties:function(t){var e=t.__static__,n=e?this.__class__:this.__class__.prototype,o=e?this.base:this.base.prototype;n.__properties__=d.mix(null,o.__properties__,t.__properties__,this.meta.properties),d.defineMembers("Property",n,n.__properties__,e)},methodsConstructorProcessor:function(){var t=this.__class_meta__;this.__constructor__=function(){t.__method_init__.apply(this,arguments)}},staticsConstructorProcessor:function(){this.__class_meta__.__static_init__.call(this.__class__)},registerProcessor:function(){var t=this.__class__,e=this.type,n=this.__class_meta__;d.mix(t.prototype,n),d.mix(t,n),-1===e.indexOf(l)&&d.set(d.GLOBAL,e,t)},registerDebug:function(t){d.DEBUG&&(d.set(d,"__instances__."+(f-1),t),d.set(d,"__instances__.length",f))}},d.define=function(t,e){e=new m("string"==typeof t?t:l+u,e||t);return e.initMetaProcessor(),e.createClassProcessor(),e.inheritProcessor(),e.methodsConstructorProcessor(),e.staticsConstructorProcessor(),e.registerProcessor(),e.__class__},d.declare=d.define}.call(this);