/
sinch.min.js
2 lines (2 loc) · 2.21 KB
/
sinch.min.js
1
2
// Sinch v0.4 (March 16, 2013)
(function(){function n(a){var b=[],c;for(c in a)b[c]=a[c];return b}function j(a){return Object.prototype.toString.call(a).match(/(\w+)\]/)[1].toLowerCase()}function l(a,b){for(var c in a)b(c,a[c])}function p(a){if("object"!=j(a))return a;var b={},c;for(c in a)b[c]=p(a[c]);return b}function r(a,b){if("object"==j(a||b)){a||(a={});for(var c in b)a[c]=r(a[c],b[c])}else a=a||b;return a}function s(a){if("function"==typeof a[a.length-1]&&!a[a.length-1].__deferred)return a.pop()}function t(a,b){function c(){0< e||(g||b(h),g=!0)}var e=0,h=[],f={},g;l(a,function(a,c){c.__deferred?(delete c.__deferred,e++,f[a]=c):h[a]=c});l(f,function(a,b){b(function(b){e--;h[a]=b;c()})});c()}function q(a,b){return"function"!=j(a)?a:function(){function c(c,f){b.callback=function(a){f(a)};var d=a.apply(b,c);d&&f&&f(d)}b=p(b)||{};var e=n(arguments),h;if(h=s(e))t(e,function(a){c(a,h)});else{var f=function(a){t(e,function(b){c(b,a)})};f.__deferred=!0;return f}}}function u(a,b){function c(c){f=!0;g=g||c||b;for(c=h;0<c.length;){var d= c.shift(),e=a[d[0]],k=n(d[1]),m=h[0];(d=d[2])&&k.push(d);(e=e.apply(g,k))&&d&&d(e);m&&"__cb"==m[0]&&e(h.shift()[1])}}var e={},h=[],f=!1,g;l(a,function(b,d){var g,k;if("array"==j(d)&&"function"==j(d[1]))g=d[0],k=d[1],a[b]=k;else if("function"!=j(d))return;e[b]=g?function(){var a=u(g.prototype),e=a.__trigger;delete a.__trigger;h.push([b,arguments,void 0]);f&&c();h.push(["__cb",function(a){a._onInit?a._onInit(e):e(a)},void 0]);f&&c();return a}:q(function(){n(arguments).push(this.callback);h.push([b, arguments,this.callback]);f&&c()})});e.__trigger=c;return e}function v(a){if("function"==typeof a)return q(a);var b=function(){var a=this,c=this.init,b=this;if(c){var b=u(this,this),g=n(arguments),j=b.__trigger,d=[],l=!1,k=s(g);k&&d.push(k);b["interface"]=!0;b._onInit=function(b){l?b(a):d.push(b)};this.callback=function(){j(a);for(var b in d)d[b](a);l=!0;delete a.callback};c.apply(this,g);delete b.init;delete this.init;delete b.__trigger}for(var m in this)"callback"!=m&&(this[m]=p(q(this[m],this))); return b};a.Extends&&(a=r(a,a.Extends.prototype),delete a.Extends);for(var c in a)b.prototype[c]=a[c];return b}"undefined"!==typeof module?module.exports=v:"undefined"!==typeof window&&(window.sinch=v)})();