WordPress/wp-includes/js/backbone.min.js

1 line
18 KiB
JavaScript
Raw Normal View History

(function(){{var a,b=this,c=b.Backbone,d=[],e=(d.push,d.slice);d.splice}a="undefined"!=typeof exports?exports:b.Backbone={},a.VERSION="1.1.0";var f=b._;f||"undefined"==typeof require||(f=require("underscore")),a.$=b.jQuery||b.Zepto||b.ender||b.$,a.noConflict=function(){return b.Backbone=c,this},a.emulateHTTP=!1,a.emulateJSON=!1;var g=a.Events={on:function(a,b,c){if(!i(this,"on",a,[b,c])||!b)return this;this._events||(this._events={});var d=this._events[a]||(this._events[a]=[]);return d.push({callback:b,context:c,ctx:c||this}),this},once:function(a,b,c){if(!i(this,"once",a,[b,c])||!b)return this;var d=this,e=f.once(function(){d.off(a,e),b.apply(this,arguments)});return e._callback=b,this.on(a,e,c)},off:function(a,b,c){var d,e,g,h,j,k,l,m;if(!this._events||!i(this,"off",a,[b,c]))return this;if(!a&&!b&&!c)return this._events={},this;for(h=a?[a]:f.keys(this._events),j=0,k=h.length;k>j;j++)if(a=h[j],g=this._events[a]){if(this._events[a]=d=[],b||c)for(l=0,m=g.length;m>l;l++)e=g[l],(b&&b!==e.callback&&b!==e.callback._callback||c&&c!==e.context)&&d.push(e);d.length||delete this._events[a]}return this},trigger:function(a){if(!this._events)return this;var b=e.call(arguments,1);if(!i(this,"trigger",a,b))return this;var c=this._events[a],d=this._events.all;return c&&j(c,b),d&&j(d,arguments),this},stopListening:function(a,b,c){var d=this._listeningTo;if(!d)return this;var e=!b&&!c;c||"object"!=typeof b||(c=this),a&&((d={})[a._listenId]=a);for(var g in d)a=d[g],a.off(b,c,this),(e||f.isEmpty(a._events))&&delete this._listeningTo[g];return this}},h=/\s+/,i=function(a,b,c,d){if(!c)return!0;if("object"==typeof c){for(var e in c)a[b].apply(a,[e,c[e]].concat(d));return!1}if(h.test(c)){for(var f=c.split(h),g=0,i=f.length;i>g;g++)a[b].apply(a,[f[g]].concat(d));return!1}return!0},j=function(a,b){var c,d=-1,e=a.length,f=b[0],g=b[1],h=b[2];switch(b.length){case 0:for(;++d<e;)(c=a[d]).callback.call(c.ctx);return;case 1:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f);return;case 2:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f,g);return;case 3:for(;++d<e;)(c=a[d]).callback.call(c.ctx,f,g,h);return;default:for(;++d<e;)(c=a[d]).callback.apply(c.ctx,b)}},k={listenTo:"on",listenToOnce:"once"};f.each(k,function(a,b){g[b]=function(b,c,d){var e=this._listeningTo||(this._listeningTo={}),g=b._listenId||(b._listenId=f.uniqueId("l"));return e[g]=b,d||"object"!=typeof c||(d=this),b[a](c,d,this),this}}),g.bind=g.on,g.unbind=g.off,f.extend(a,g);var l=a.Model=function(a,b){var c=a||{};b||(b={}),this.cid=f.uniqueId("c"),this.attributes={},b.collection&&(this.collection=b.collection),b.parse&&(c=this.parse(c,b)||{}),c=f.defaults({},c,f.result(this,"defaults")),this.set(c,b),this.changed={},this.initialize.apply(this,arguments)};f.extend(l.prototype,g,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},sync:function(){return a.sync.apply(this,arguments)},get:function(a){return this.attributes[a]},escape:function(a){return f.escape(this.get(a))},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e,g,h,i,j,k,l;if(null==a)return this;if("object"==typeof a?(e=a,c=b):(e={})[a]=b,c||(c={}),!this._validate(e,c))return!1;g=c.unset,i=c.silent,h=[],j=this._changing,this._changing=!0,j||(this._previousAttributes=f.clone(this.attributes),this.changed={}),l=this.attributes,k=this._previousAttributes,this.idAttribute in e&&(this.id=e[this.idAttribute]);for(d in e)b=e[d],f.isEqual(l[d],b)||h.push(d),f.isEqual(k[d],b)?delete this.changed[d]:this.changed[d]=b,g?delete l[d]:l[d]=b;if(!i){h.length&&(this._pending=!0);for(var m=0,n=h.length;n>m;m++)this.trigger("change:"+h[m],this,l[h[m]],c)}if(j)return this;if(!i)for(;this._pending;)this._pending=!1,this.trigger("change",this,c);return this._pending=!1,this._changing=!1,this},unset:function(a,b){return this.set(a,void 0,f.extend({},b,{unset:!0}))},clear:function(a){var b={};for(var c in this.attributes)b[c]=void 0;return this.set(b,f.extend({},a,{unset:!0}))},hasChanged:function(a){return null==a?!f.isEmpty(this.changed):f.has(this.changed,a)},change