%PDF- %PDF-
Direktori : /home1/dimen328/.trash/espace/verification/index/ |
Current File : //home1/dimen328/.trash/espace/verification/index/backbone-deep-model.js.tВlВchargement |
!function(t){"function"==typeof define&&define.amd?define(["underscore-deepExtend","backbone"],t):t(_,Backbone)}(function(t,i){function e(i){var n={},r=u.keyPathSeparator;for(var s in i){var h=i[s];if(h&&h.constructor===Object&&!t.isEmpty(h)){var a=e(h);for(var o in a){var c=a[o];n[s+r+o]=c}}else n[s]=h}return n}function n(i,e,n){for(var r=u.keyPathSeparator,s=e.split(r),h=i,a=0,o=s.length;o>a;a++){if(n&&!t.has(h,s[a]))return!1;if(h=h[s[a]],null==h&&o-1>a&&(h={}),void 0===h)return n?!0:h}return n?!0:h}function r(i,e,n,r){r=r||{};for(var s=u.keyPathSeparator,h=e.split(s),a=i,o=0,c=h.length;c>o&&void 0!==a;o++){var d=h[o];o===c-1?r.unset?delete a[d]:a[d]=n:(void 0!==a[d]&&t.isObject(a[d])||(a[d]={}),a=a[d])}}function s(t,i){r(t,i,null,{unset:!0})}var u=i.Model.extend({constructor:function(i,e){var n,r=i||{};this.cid=t.uniqueId("c"),this.attributes={},e&&e.collection&&(this.collection=e.collection),e&&e.parse&&(r=this.parse(r,e)||{}),(n=t.result(this,"defaults"))&&(r=t.deepExtend({},n,r)),this.set(r,e),this.changed={},this.initialize.apply(this,arguments)},toJSON:function(){return t.deepClone(this.attributes)},get:function(t){return n(this.attributes,t)},set:function(i,h,a){var o,c,d,l,f,g,p,v;if(null==i)return this;if("object"==typeof i?(c=i,a=h||{}):(c={})[i]=h,a||(a={}),!this._validate(c,a))return!1;d=a.unset,f=a.silent,l=[],g=this._changing,this._changing=!0,g||(this._previousAttributes=t.deepClone(this.attributes),this.changed={}),v=this.attributes,p=this._previousAttributes,this.idAttribute in c&&(this.id=c[this.idAttribute]),c=e(c);for(o in c)h=c[o],t.isEqual(n(v,o),h)||l.push(o),t.isEqual(n(p,o),h)?s(this.changed,o):r(this.changed,o,h),d?s(v,o):r(v,o,h);if(!f){l.length&&(this._pending=!0);for(var b=u.keyPathSeparator,_=0,y=l.length;y>_;_++){var i=l[_];this.trigger("change:"+i,this,n(v,i),a);for(var A=i.split(b),k=A.length-1;k>0;k--){var E=t.first(A,k).join(b),m=E+b+"*";this.trigger("change:"+m,this,n(v,E),a)}}}if(g)return this;if(!f)for(;this._pending;)this._pending=!1,this.trigger("change",this,a);return this._pending=!1,this._changing=!1,this},clear:function(i){var n={},r=e(this.attributes);for(var s in r)n[s]=void 0;return this.set(n,t.extend({},i,{unset:!0}))},hasChanged:function(i){return null==i?!t.isEmpty(this.changed):void 0!==n(this.changed,i)},changedAttributes:function(i){if(!i)return this.hasChanged()?e(this.changed):!1;var n=this._changing?this._previousAttributes:this.attributes;i=e(i),n=e(n);var r,s=!1;for(var u in i)t.isEqual(n[u],r=i[u])||((s||(s={}))[u]=r);return s},previous:function(t){return null!=t&&this._previousAttributes?n(this._previousAttributes,t):null},previousAttributes:function(){return t.deepClone(this._previousAttributes)}});return u.keyPathSeparator=".",i.DeepModel=u,"undefined"!=typeof module&&(module.exports=u),i});