/* knockback.js 1.2.2 Copyright (c) 2011-2017 Kevin Malakoff. License: MIT (http://www.opensource.org/licenses/mit-license.php) Source: https://github.com/kmalakoff/knockback Dependencies: Knockout.js, Backbone.js, and Underscore.js (or LoDash.js). Optional dependencies: Backbone.ModelRef.js and BackboneORM. */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("backbone"),require("underscore"),require("knockout")):"function"==typeof define&&define.amd?define(["backbone","underscore","knockout"],t):"object"==typeof exports?exports.kb=t(require("backbone"),require("underscore"),require("knockout")):e.kb=t(e.Backbone,e._,e.ko)}(this,function(e,t,r){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=31)}([function(e,t,r){(function(t){var n,o,i,s,a,l;l=null!=l?l:t,a=r(30),o=["release","destroy","dispose"],e.exports=s=function(){function e(){}var t;return e.VERSION="1.2.2",e.TYPE_UNKNOWN=0,e.TYPE_SIMPLE=1,e.TYPE_ARRAY=2,e.TYPE_MODEL=3,e.TYPE_COLLECTION=4,e.wasReleased=function(e){return!e||e.__kb_released},e.isReleaseable=function(t,r){var n,i,s,l,u;if(null==r&&(r=0),!t||t!==Object(t)||t.__kb_released)return!1;if(a.isObservable(t)||t instanceof e.ViewModel)return!0;if("function"==typeof t||e.isModel(t)||e.isCollection(t))return!1;for(n=0,s=o.length;n0)return!1;for(i in t)if(u=t[i],"__kb"!==i&&e.isReleaseable(u,r+1))return!0;return!1},e.release=function(t){var r,n,s,l,u,c;if(e.isReleaseable(t)){if(t.__kb_released=!0,!i.isArray(t)){if(a.isObservable(t)&&i.isArray(r=e.peek(t))){if(t.__kb_is_co||t.__kb_is_o&&t.valueType()===e.TYPE_COLLECTION)return"function"==typeof t.destroy?t.destroy():void 0;for(n in r)c=r[n],e.isReleaseable(c)&&(r[n]=null,e.release(c));return void("function"==typeof t.dispose&&t.dispose())}for(s=0,l=o.length;s=d;s=0<=d?++u:--u)try{a.storedBindingContextForNode(i,a.contextFor(i.childNodes[s]));break}catch(e){}return e.releaseOnNodeRemove(r,i),c.dispose(),r.afterRender&&!n.afterRender&&r.afterRender(i),i},e.applyBindings=function(t,r){var n,o,i,s,l;if(r.length)for(l=[document.createElement("div"),r],r=l[0],o=l[1],i=0,s=o.length;i=0)return o.Store.instances.splice(e,1)},e.prototype.clear=function(){var e,t,r,n,o,i,s,a,l,u;a=[this.observable_records,{}],i=a[0],this.observable_records=a[1];for(t in i){s=i[t];for(e in s)o=s[e],this.release(o,!0)}for(l=[this.replaced_observables,[]],u=l[0],this.replaced_observables=l[1],r=0,n=u.length;r0)return;this._clearStoreReferences(e)}return this._remove(e),e.__kb_released?void 0:t||this._refCount(e)<=1?o.release(e):void 0},e.prototype.find=function(e,t){var r,n,o;return(n=this.observable_records[this._creatorId(t)])?(null!=(o=r=n[this._cid(e)])?o.__kb_released:void 0)?(delete n[this._cid(e)],null):r:null},e.prototype._refCount=function(e){var t;return e.__kb_released?("undefined"!=typeof console&&null!==console&&console.log("Observable already released"),0):(t=o.utils.get(e,"stores_references"))?n.reduce(t,function(e,t){return e+t.ref_count},0):1},e.prototype._canRegister=function(e){return e&&!i.isObservable(e)&&!e.__kb_is_co},e.prototype._cid=function(e){return e?e.cid||(e.cid=n.uniqueId("c")):"null"},e.prototype._creatorId=function(e){var t,r,o,i,s;for(t=e.create||e,t.__kb_cids||(t.__kb_cids=[]),s=t.__kb_cids,r=0,i=s.length;r1?i.pop():r,t={},p=0,b=i.length;p=0;)l=l.replace("{"+i+"}",u),a=e.indexOf("{"+i+"}",a+1);return l},i.parseFormattedString=function(e,t){var r,o,i,s,a,l,u,c,d,p,f,_,b;for(p=t.slice(),i=0,l=0,c={};p.search("\\{"+i+"\\}")>=0;){for(u=t.indexOf("{"+i+"}");u>=0;)p=p.replace("{"+i+"}","(.*)"),c[u]=i,l++,u=t.indexOf("{"+i+"}",u+1);i++}if(r=i,d=new RegExp(p),a=d.exec(e),a&&a.shift(),!a||a.length!==l){for(f=[];r-- >0;)f.push("");return f}b=n.sortBy(n.keys(c),function(e,t){return parseInt(e,10)}),o={};for(s in b)u=b[s],i=c[u],o.hasOwnProperty(i)||(o[i]=s);for(_=[],i=0;i=0)||(c=d.length),p.$active_error&&c