-
Notifications
You must be signed in to change notification settings - Fork 0
/
baseviewmodel.min.js
1 lines (1 loc) · 1.31 KB
/
baseviewmodel.min.js
1
(function(a,b,c){"object"==typeof exports?module.exports=c(require("underscore"),require("knockout")):"function"==typeof define&&define.amd?define(["underscore","knockout"],c):b[a]=c(b._,b.ko)}).call(this,"BaseViewModel",this,function(a,b){"use strict";function c(c){var d=a.functions(c),e=a.omit(c,d);a.each(e,function(c,d){this[d]=a.isArray(c)?b.observableArray(c):b.observable(c)},this),a.each(d,function(a){this[a]=b.computed(c[a],this)},this)}function d(b){a.each(b,function(a,c){this[c]=b[c]},this)}function e(b,c){var d,e=this;d=b&&a.has(b,"constructor")?b.constructor:function(){return e.apply(this,arguments)},a.extend(d,e,c);var f=function(){this.constructor=d};return f.prototype=e.prototype,d.prototype=new f,b&&a.extend(d.prototype,b),d.__super__=e.prototype,d}if("undefined"==typeof a||"undefined"==typeof b)throw new Error("BaseViewModel depends on underscore and knockout");var f=function(e,f){e=e||{},f=f||{},this._model=a.clone(e),c.call(this,this.defaults),c.call(this,e),d.call(this,f),this.init.call(this,arguments),this.el&&b.applyBindings(this,"object"==typeof this.el?this.el:document.querySelector(this.el)[0])};return a.extend(f.prototype,{init:function(){},toModel:function(){var c={},d=b.toJS(this._model);return a.extend(c,d),c},toJSON:function(){var a=this.toModel();return JSON.stringify(a)}}),f.extend=e,f});