Skip to content

Instantly share code, notes, and snippets.

@steveluscher
Created May 17, 2013 23:45
Show Gist options
  • Save steveluscher/5602649 to your computer and use it in GitHub Desktop.
Save steveluscher/5602649 to your computer and use it in GitHub Desktop.
// Knockout JavaScript library v
// (c) Steven Sanderson - http://knockoutjs.com/
// License: MIT (http://www.opensource.org/licenses/mit-license.php)
(function() {function j(k){throw k;}var n=!0,q=null,v=!1;function J(k){return function(){return k}};(function(k){var z=this||(0,eval)("this"),s=z.document,V=z.navigator,t=z.jQuery,H=z.JSON;!function(k){"function"===typeof require&&"object"===typeof exports&&"object"===typeof module?k(module.exports||exports):"function"===typeof define&&define.amd?define(["exports"],k):k(z.ko={})}(function(A){function sa(a,d,c,e,f){var g=[];a=b.j(function(){var a=d(c,f,O(g))||[];0<g.length&&(b.a.eb(g,a),e&&b.m.w(e,q,[c,a,f]));g.splice(0,g.length);b.a.R(g,a)},q,{Z:a,Qa:function(){return!b.a.pb(g)}});return{N:g,j:a.ua()?
a:k}}function O(a){for(;a.length&&!b.a.$(a[0]);)a.splice(0,1);if(1<a.length){for(var d=a[0],c=a[a.length-1],e=[d];d!==c;){d=d.nextSibling;if(!d)return;e.push(d)}Array.prototype.splice.apply(a,[0,a.length].concat(e))}return a}function W(a,b,c,e,f){var g=Math.min,h=Math.max,m=[],l,u=a.length,p,k=b.length,E=k-u||1,t=u+k+1,s,w,x;for(l=0;l<=u;l++){w=s;m.push(s=[]);x=g(k,l+E);for(p=h(0,l-1);p<=x;p++)s[p]=p?l?a[l-1]===b[p-1]?w[p-1]:g(w[p]||t,s[p-1]||t)+1:p+1:l+1}g=[];h=[];E=[];l=u;for(p=k;l||p;)k=m[l][p]-
1,p&&k===m[l][p-1]?h.push(g[g.length]={status:c,value:b[--p],index:p}):l&&k===m[l-1][p]?E.push(g[g.length]={status:e,value:a[--l],index:l}):(g.push({status:"retained",value:b[--p]}),--l);if(h.length&&E.length){a=10*u;var r;for(b=c=0;(f||b<a)&&(r=h[c]);c++){for(e=0;m=E[e];e++)if(r.value===m.value){r.moved=m.index;m.moved=r.index;E.splice(e,1);b=e=0;break}b+=e}}return g.reverse()}function X(a,d,c,e,f){f=f||{};var g=a&&P(a),g=g&&g.ownerDocument,h=f.templateEngine||Q;b.Ga.Cb(c,h,g);c=h.renderTemplate(c,
e,f,g);("number"!=typeof c.length||0<c.length&&"number"!=typeof c[0].nodeType)&&j(Error("Template engine must return an array of DOM nodes"));g=v;switch(d){case "replaceChildren":b.e.O(a,c);g=n;break;case "replaceNode":b.a.eb(a,c);g=n;break;case "ignoreTargetNode":break;default:j(Error("Unknown renderMode: "+d))}g&&(Y(c,e),f.afterRender&&b.m.w(f.afterRender,q,[c,e.$data]));return c}function P(a){return a.nodeType?a:0<a.length?a[0]:q}function Y(a,d){if(a.length){var c=a[0],e=a[a.length-1];Z(c,e,function(a){b.Ka(d,
a)});Z(c,e,function(a){b.s.nb(a,[d])})}}function Z(a,d,c){var e;for(d=b.e.nextSibling(d);a&&(e=a)!==d;)a=b.e.nextSibling(e),(1===e.nodeType||8===e.nodeType)&&c(e)}function $(a,d,c,e){a=b.g.Aa(a);for(var f=b.g.S,g=0;g<a.length;g++){var h=a[g].key;if(f.hasOwnProperty(h)){var m=f[h];"function"===typeof m?(h=m(a[g].value))&&j(Error(h)):m||j(Error("This template engine does not support the '"+h+"' binding within its templates"))}}c="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+
b.g.da(a,{valueAccessors:n})+" } })()},'"+c.toLowerCase()+"')";return e.createJavaScriptEvaluatorBlock(c)+d}function K(a,d){return d.has("checkedValue")?b.a.c(d.get("checkedValue")):a.value}function L(a){return a&&a instanceof b.z?a:new b.z(b.a.ca(a))}function aa(a,d,c,e){var f=b.a.f.get(a,ba);d||(f&&j(Error("You cannot apply bindings multiple times to the same element.")),b.a.f.set(a,ba,n));!f&&e&&b.jb(a,c);d||(e=b.K.instance,d=b.m.w(e.getBindingAccessors||ta,e,[a,c]));var g;if(d){var h=function(){return b.a.xa(d,
ua)};h.get=function(a){return d[a]&&(0,d[a])()};h.has=function(a){return a in d};b.a.D(d,function(e){b.m.w(function(){var f=b.getBindingHandler(e);f&&8===a.nodeType&&!b.e.J[e]&&j(Error("The binding '"+e+"' cannot be used with virtual elements"));if(f&&"function"==typeof f.init&&(f=(0,f.init)(a,d[e],h,c.$data,c))&&f.controlsDescendantBindings)g!==k&&j(Error("Multiple bindings ("+g+" and "+e+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.")),
g=e});b.j(function(){var f=b.getBindingHandler(e);f&&"function"==typeof f.update&&(0,f.update)(a,d[e],h,c.$data,c)},q,{Z:a})})}return{shouldBindDescendants:g===k}}function ca(a,d,c){var e=n,f=1===d.nodeType;f&&b.e.Za(d);if(f&&c||b.K.instance.nodeHasBindings(d))e=aa(d,q,a,c).shouldBindDescendants;e&&da(a,d,!f)}function da(a,d,c){for(var e=b.e.firstChild(d);d=e;)e=b.e.nextSibling(d),ca(a,d,c)}function ta(a,b){return ea(this.getBindings.bind(this,a,b))}function ea(a){return b.a.xa(b.m.w(a),function(b,
c){return function(){return a()[c]}})}function ua(a){return a()}function va(a){return function(){return a}}function fa(a,b){var c=ga(a,b);return c?0<c.length?c[c.length-1].nextSibling:a.nextSibling:q}function ga(a,b){for(var c=a,e=1,f=[];c=c.nextSibling;){if(M(c)&&(e--,0===e))return f;f.push(c);B(c)&&e++}b||j(Error("Cannot find closing comment tag to match: "+a.nodeValue));return q}function M(a){return 8==a.nodeType&&(N?a.text:a.nodeValue).match(wa)}function B(a){return 8==a.nodeType&&(N?a.text:a.nodeValue).match(xa)}
function ha(a){a=b.a.fa(a);123===a.charCodeAt(0)&&(a=a.slice(1,-1));var d=[],c=a.match(ia),e,f,g=0;if(c){c.push(",");for(var h=0,m;m=c[h];++h){var l=m.charCodeAt(0);if(44===l){if(0>=g){e&&d.push(f?{key:e,value:f.join("")}:{unknown:e});e=f=g=0;continue}}else if(58===l){if(!f)continue}else if(47===l&&h&&1<m.length){if((l=c[h-1].match(ya))&&!za[l[0]])a=a.substr(a.indexOf(m)+1),c=a.match(ia),c.push(","),h=-1,m="/"}else if(40===l||123===l||91===l)++g;else if(41===l||125===l||93===l)--g;else if(!e&&!f){e=
34===l||39===l?m.slice(1,-1):m;continue}f?f.push(m):f=[m]}}return d}function ja(){this.keys=[];this.Ja=[]}function ka(a,d,c){function e(b){var e=d(a[b]);switch(typeof e){case "boolean":case "number":case "string":case "function":f[b]=e;break;case "object":case "undefined":var g=c.get(e);f[b]=g!==k?g:ka(e,d,c)}}c=c||new ja;a=d(a);if(!("object"==typeof a&&a!==q&&a!==k&&!(a instanceof Date)&&!(a instanceof String)&&!(a instanceof Number)&&!(a instanceof Boolean)))return a;var f=a instanceof Array?[]:
{};c.save(a,f);var g=a;if(g instanceof Array){for(var h=0;h<g.length;h++)e(h);"function"==typeof g.toJSON&&e("toJSON")}else for(h in g)("function"!==typeof g[h]||b.L(g[h]))&&e(h);return f}function la(a,d){if(a)if(8==a.nodeType){var c=b.s.$a(a.nodeValue);c!=q&&d.push({zb:a,Mb:c})}else if(1==a.nodeType)for(var c=0,e=a.childNodes,f=e.length;c<f;c++)la(e[c],d)}function R(a,b){for(var c in a)a.hasOwnProperty(c)&&b(c,a[c])}function S(a,d){if("input"!==b.a.u(a)||!a.type||"click"!=d.toLowerCase())return v;
var c=a.type;return"checkbox"==c||"radio"==c}function T(a,d,c,e){b.d[a]={init:function(a){b.a.f.set(a,ma,{});return{controlsDescendantBindings:n}},update:function(a,g,h,m,l){h=b.a.f.get(a,ma);g=b.a.c(g());m=!c!==!g;var u=!h.fb;if(u||d||m!==h.xb)u&&(h.fb=b.a.Oa(b.e.childNodes(a),n)),m?(u||b.e.O(a,b.a.Oa(h.fb)),b.La(e?e(l,g):l,a)):b.e.aa(a),h.xb=m}};b.g.S[a]=v;b.e.J[a]=n}function na(a,d,c){c&&d!==b.h.o(a)&&b.h.V(a,d);d!==b.h.o(a)&&b.m.w(b.a.Ia,q,[a,"change"])}var b="undefined"!==typeof A?A:{};b.b=function(a,
d){for(var c=a.split("."),e=b,f=0;f<c.length-1;f++)e=e[c[f]];e[c[c.length-1]]=d};b.r=function(a,b,c){a[b]=c};b.version="";b.b("version",b.version);A=b;var y={},oa={};y[V&&/Firefox\/2/i.test(V.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"];y.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" ");R(y,function(a,b){if(b.length)for(var c=0,e=b.length;c<e;c++)oa[b[c]]=a});var Aa={propertychange:n};if(y=s){for(var y=
3,pa=s.createElement("div"),Ba=pa.getElementsByTagName("i");pa.innerHTML="\x3c!--[if gt IE "+ ++y+"]><i></i><![endif]--\x3e",Ba[0];);y=4<y?y:k}var C=y;A.a={Ta:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],p:function(a,b){for(var c=0,e=a.length;c<e;c++)b(a[c])},k:function(a,b){if("function"==typeof Array.prototype.indexOf)return Array.prototype.indexOf.call(a,b);for(var c=0,e=a.length;c<e;c++)if(a[c]===b)return c;return-1},Ma:function(a,b,c){for(var e=0,f=a.length;e<f;e++)if(b.call(c,
a[e]))return a[e];return q},la:function(a,d){var c=b.a.k(a,d);0<=c&&a.splice(c,1)},Na:function(a){a=a||[];for(var d=[],c=0,e=a.length;c<e;c++)0>b.a.k(d,a[c])&&d.push(a[c]);return d},Y:function(a,b){a=a||[];for(var c=[],e=0,f=a.length;e<f;e++)c.push(b(a[e]));return c},X:function(a,b){a=a||[];for(var c=[],e=0,f=a.length;e<f;e++)b(a[e])&&c.push(a[e]);return c},R:function(a,b){if(b instanceof Array)a.push.apply(a,b);else for(var c=0,e=b.length;c<e;c++)a.push(b[c]);return a},ja:function(a,d,c){var e=a.indexOf?
a.indexOf(d):b.a.k(a,d);0>e?c&&a.push(d):c||a.splice(e,1)},extend:function(a,b){if(b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a},D:R,xa:function(a,b){if(!a)return a;var c={},e;for(e in a)a.hasOwnProperty(e)&&(c[e]=b(a[e],e,a));return c},pa:function(a){for(;a.firstChild;)b.removeNode(a.firstChild)},Ob:function(a){a=b.a.M(a);for(var d=s.createElement("div"),c=0,e=a.length;c<e;c++)d.appendChild(b.G(a[c]));return d},Oa:function(a,d){for(var c=0,e=a.length,f=[];c<e;c++){var g=a[c].cloneNode(n);
f.push(d?b.G(g):g)}return f},O:function(a,d){b.a.pa(a);if(d)for(var c=0,e=d.length;c<e;c++)a.appendChild(d[c])},eb:function(a,d){var c=a.nodeType?[a]:a;if(0<c.length){for(var e=c[0],f=e.parentNode,g=0,h=d.length;g<h;g++)f.insertBefore(d[g],e);g=0;for(h=c.length;g<h;g++)b.removeNode(c[g])}},hb:function(a,b){7>C?a.setAttribute("selected",b):a.selected=b},fa:function(a){return a===q||a===k?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Yb:function(a,d){for(var c=[],e=(a||"").split(d),
f=0,g=e.length;f<g;f++){var h=b.a.fa(e[f]);""!==h&&c.push(h)}return c},Ub:function(a,b){a=a||"";return b.length>a.length?v:a.substring(0,b.length)===b},Ab:function(a,b){if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a!=q;){if(a==b)return n;a=a.parentNode}return v},$:function(a){return b.a.Ab(a,a.ownerDocument)},pb:function(a){return!!b.a.Ma(a,b.a.$)},u:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},q:function(a,d,c){var e=C&&Aa[d];if(!e&&"undefined"!=typeof t){if(S(a,
d)){var f=c;c=function(a,b){var d=this.checked;b&&(this.checked=b.ub!==n);f.call(this,a);this.checked=d}}t(a).bind(d,c)}else if(!e&&"function"==typeof a.addEventListener)a.addEventListener(d,c,v);else if("undefined"!=typeof a.attachEvent){var g=function(b){c.call(a,b)},h="on"+d;a.attachEvent(h,g);b.a.B.ia(a,function(){a.detachEvent(h,g)})}else j(Error("Browser doesn't support addEventListener or attachEvent"))},Ia:function(a,b){(!a||!a.nodeType)&&j(Error("element must be a DOM node when calling triggerEvent"));
if("undefined"!=typeof t){var c=[];S(a,b)&&c.push({ub:a.checked});t(a).trigger(b,c)}else"function"==typeof s.createEvent?"function"==typeof a.dispatchEvent?(c=s.createEvent(oa[b]||"HTMLEvents"),c.initEvent(b,n,n,z,0,0,0,0,0,v,v,v,v,0,a),a.dispatchEvent(c)):j(Error("The supplied element doesn't support dispatchEvent")):"undefined"!=typeof a.fireEvent?(S(a,b)&&(a.checked=a.checked!==n),a.fireEvent("on"+b)):j(Error("Browser doesn't support triggering events"))},c:function(a){return b.L(a)?a():a},ca:function(a){return b.L(a)?
a.t():a},ga:function(a,d,c){if(d){var e=/\S+/g,f=a.className.match(e)||[];b.a.p(d.match(e),function(a){b.a.ja(f,a,c)});a.className=f.join(" ")}},ib:function(a,d){var c=b.a.c(d);if(c===q||c===k)c="";var e=b.e.firstChild(a);!e||3!=e.nodeType||b.e.nextSibling(e)?b.e.O(a,[s.createTextNode(c)]):e.data=c;b.a.Db(a)},gb:function(a,b){a.name=b;if(7>=C)try{a.mergeAttributes(s.createElement("<input name='"+a.name+"'/>"),v)}catch(c){}},Db:function(a){9<=C&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=
a.style.zoom))},Bb:function(a){if(C){var b=a.style.width;a.style.width=0;a.style.width=b}},Sb:function(a,d){a=b.a.c(a);d=b.a.c(d);for(var c=[],e=a;e<=d;e++)c.push(e);return c},M:function(a){for(var b=[],c=0,e=a.length;c<e;c++)b.push(a[c]);return b},Vb:6===C,Wb:7===C,ba:C,Ua:function(a,d){for(var c=b.a.M(a.getElementsByTagName("input")).concat(b.a.M(a.getElementsByTagName("textarea"))),e="string"==typeof d?function(a){return a.name===d}:function(a){return d.test(a.name)},f=[],g=c.length-1;0<=g;g--)e(c[g])&&
f.push(c[g]);return f},Pb:function(a){return"string"==typeof a&&(a=b.a.fa(a))?H&&H.parse?H.parse(a):(new Function("return "+a))():q},Ea:function(a,d,c){(!H||!H.stringify)&&j(Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"));return H.stringify(b.a.c(a),d,c)},Qb:function(a,d,c){c=c||{};var e=c.params||{},f=c.includeFields||this.Ta,g=a;if("object"==
typeof a&&"form"===b.a.u(a))for(var g=a.action,h=f.length-1;0<=h;h--)for(var m=b.a.Ua(a,f[h]),l=m.length-1;0<=l;l--)e[m[l].name]=m[l].value;d=b.a.c(d);var u=s.createElement("form");u.style.display="none";u.action=g;u.method="post";for(var p in d)a=s.createElement("input"),a.name=p,a.value=b.a.Ea(b.a.c(d[p])),u.appendChild(a);R(e,function(a,b){var c=s.createElement("input");c.name=a;c.value=b;u.appendChild(c)});s.body.appendChild(u);c.submitter?c.submitter(u):u.submit();setTimeout(function(){u.parentNode.removeChild(u)},
0)}};b.b("utils",b.a);b.b("utils.arrayForEach",b.a.p);b.b("utils.arrayFirst",b.a.Ma);b.b("utils.arrayFilter",b.a.X);b.b("utils.arrayGetDistinctValues",b.a.Na);b.b("utils.arrayIndexOf",b.a.k);b.b("utils.arrayMap",b.a.Y);b.b("utils.arrayPushAll",b.a.R);b.b("utils.arrayRemoveItem",b.a.la);b.b("utils.extend",b.a.extend);b.b("utils.fieldsIncludedWithJsonPost",b.a.Ta);b.b("utils.getFormFields",b.a.Ua);b.b("utils.peekObservable",b.a.ca);b.b("utils.postJson",b.a.Qb);b.b("utils.parseJson",b.a.Pb);b.b("utils.registerEventHandler",
b.a.q);b.b("utils.stringifyJson",b.a.Ea);b.b("utils.range",b.a.Sb);b.b("utils.toggleDomNodeCssClass",b.a.ga);b.b("utils.triggerEvent",b.a.Ia);b.b("utils.unwrapObservable",b.a.c);b.b("utils.objectForEach",b.a.D);b.b("utils.addOrRemoveItem",b.a.ja);b.b("unwrap",b.a.c);Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Array.prototype.slice.call(arguments);a=c.shift();return function(){return b.apply(a,c.concat(Array.prototype.slice.call(arguments)))}});b.a.f=new function(){var a=
0,d="__ko__"+(new Date).getTime(),c={};return{get:function(a,c){var d=b.a.f.qa(a,v);return d===k?k:d[c]},set:function(a,c,d){d===k&&b.a.f.qa(a,v)===k||(b.a.f.qa(a,n)[c]=d)},qa:function(b,f){var g=b[d];if(!g||!("null"!==g&&c[g])){if(!f)return k;g=b[d]="ko"+a++;c[g]={}}return c[g]},clear:function(a){var b=a[d];return b?(delete c[b],a[d]=q,n):v}}};b.b("utils.domData",b.a.f);b.b("utils.domData.clear",b.a.f.clear);b.a.B=new function(){function a(a,d){var e=b.a.f.get(a,c);e===k&&d&&(e=[],b.a.f.set(a,c,
e));return e}function d(c){var e=a(c,v);if(e)for(var e=e.slice(0),m=0;m<e.length;m++)e[m](c);b.a.f.clear(c);"function"==typeof t&&"function"==typeof t.cleanData&&t.cleanData([c]);if(f[c.nodeType])for(e=c.firstChild;c=e;)e=c.nextSibling,8===c.nodeType&&d(c)}var c="__ko_domNodeDisposal__"+(new Date).getTime(),e={1:n,8:n,9:n},f={1:n,9:n};return{ia:function(b,c){"function"!=typeof c&&j(Error("Callback must be a function"));a(b,n).push(c)},cb:function(d,e){var f=a(d,v);f&&(b.a.la(f,e),0==f.length&&b.a.f.set(d,
c,k))},G:function(a){if(e[a.nodeType]&&(d(a),f[a.nodeType])){var c=[];b.a.R(c,a.getElementsByTagName("*"));for(var m=0,l=c.length;m<l;m++)d(c[m])}return a},removeNode:function(a){b.G(a);a.parentNode&&a.parentNode.removeChild(a)}}};b.G=b.a.B.G;b.removeNode=b.a.B.removeNode;b.b("cleanNode",b.G);b.b("removeNode",b.removeNode);b.b("utils.domNodeDisposal",b.a.B);b.b("utils.domNodeDisposal.addDisposeCallback",b.a.B.ia);b.b("utils.domNodeDisposal.removeDisposeCallback",b.a.B.cb);b.a.za=function(a){var d;
if("undefined"!=typeof t)if(t.parseHTML)d=t.parseHTML(a)||[];else{if((d=t.clean([a]))&&d[0]){for(a=d[0];a.parentNode&&11!==a.parentNode.nodeType;)a=a.parentNode;a.parentNode&&a.parentNode.removeChild(a)}}else{var c=b.a.fa(a).toLowerCase();d=s.createElement("div");c=c.match(/^<(thead|tbody|tfoot)/)&&[1,"<table>","</table>"]||!c.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!c.indexOf("<td")||!c.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||[0,"",""];a="ignored<div>"+
c[1]+a+c[2]+"</div>";for("function"==typeof z.innerShiv?d.appendChild(z.innerShiv(a)):d.innerHTML=a;c[0]--;)d=d.lastChild;d=b.a.M(d.lastChild.childNodes)}return d};b.a.ea=function(a,d){b.a.pa(a);d=b.a.c(d);if(d!==q&&d!==k)if("string"!=typeof d&&(d=d.toString()),"undefined"!=typeof t)t(a).html(d);else for(var c=b.a.za(d),e=0;e<c.length;e++)a.appendChild(c[e])};b.b("utils.parseHtmlFragment",b.a.za);b.b("utils.setHtml",b.a.ea);var U={};b.s={wa:function(a){"function"!=typeof a&&j(Error("You can only pass a function to ko.memoization.memoize()"));
var b=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);U[b]=a;return"\x3c!--[ko_memo:"+b+"]--\x3e"},mb:function(a,b){var c=U[a];c===k&&j(Error("Couldn't find any memo with ID "+a+". Perhaps it's already been unmemoized."));try{return c.apply(q,b||[]),n}finally{delete U[a]}},nb:function(a,d){var c=[];la(a,c);for(var e=0,f=c.length;e<f;e++){var g=c[e].zb,h=[g];d&&b.a.R(h,d);b.s.mb(c[e].Mb,h);g.nodeValue="";g.parentNode&&g.parentNode.removeChild(g)}},
$a:function(a){return(a=a.match(/^\[ko_memo\:(.*?)\]$/))?a[1]:q}};b.b("memoization",b.s);b.b("memoization.memoize",b.s.wa);b.b("memoization.unmemoize",b.s.mb);b.b("memoization.parseMemoText",b.s.$a);b.b("memoization.unmemoizeDomNodeAndDescendants",b.s.nb);b.Sa={throttle:function(a,d){a.throttleEvaluation=d;var c=q;return b.j({read:a,write:function(b){clearTimeout(c);c=setTimeout(function(){a(b)},d)}})},notify:function(a,d){a.equalityComparer="always"==d?J(v):b.n.fn.equalityComparer;return a}};b.b("extenders",
b.Sa);b.kb=function(a,d,c){this.target=a;this.ma=d;this.yb=c;b.r(this,"dispose",this.A)};b.kb.prototype.A=function(){this.Jb=n;this.yb()};b.U=function(){this.F={};b.a.extend(this,b.U.fn);b.r(this,"subscribe",this.Fa);b.r(this,"extend",this.extend);b.r(this,"getSubscriptionsCount",this.Fb)};b.U.fn={Fa:function(a,d,c){c=c||"change";var e=new b.kb(this,d?a.bind(d):a,function(){b.a.la(this.F[c],e)}.bind(this));this.F[c]||(this.F[c]=[]);this.F[c].push(e);return e},notifySubscribers:function(a,d){d=d||
"change";this.F[d]&&b.m.w(function(){b.a.p(this.F[d].slice(0),function(b){b&&b.Jb!==n&&b.ma(a)})},this)},Fb:function(){var a=0;b.a.D(this.F,function(b,c){a+=c.length});return a},extend:function(a){var d=this;a&&b.a.D(a,function(a,e){var f=b.Sa[a];"function"==typeof f&&(d=f(d,e))});return d}};b.Wa=function(a){return a!=q&&"function"==typeof a.Fa&&"function"==typeof a.notifySubscribers};b.b("subscribable",b.U);b.b("isSubscribable",b.Wa);var G=[];b.m={sb:function(a){G.push({ma:a,Ra:[]})},end:function(){G.pop()},
bb:function(a){b.Wa(a)||j(Error("Only subscribable things can act as dependencies"));if(0<G.length){var d=G[G.length-1];d&&!(0<=b.a.k(d.Ra,a))&&(d.Ra.push(a),d.ma(a))}},w:function(a,b,c){try{return G.push(q),a.apply(b,c||[])}finally{G.pop()}}};var Ca={undefined:n,"boolean":n,number:n,string:n};b.n=function(a){function d(){if(0<arguments.length){if(!d.equalityComparer||!d.equalityComparer(c,arguments[0]))d.I(),c=arguments[0],d.H();return this}b.m.bb(d);return c}var c=a;b.U.call(d);d.t=function(){return c};
d.H=function(){d.notifySubscribers(c)};d.I=function(){d.notifySubscribers(c,"beforeChange")};b.a.extend(d,b.n.fn);b.r(d,"peek",d.t);b.r(d,"valueHasMutated",d.H);b.r(d,"valueWillMutate",d.I);return d};b.n.fn={equalityComparer:function(a,b){return a===q||typeof a in Ca?a===b:v}};var I=b.n.Rb="__ko_proto__";b.n.fn[I]=b.n;b.ra=function(a,d){return a===q||a===k||a[I]===k?v:a[I]===d?n:b.ra(a[I],d)};b.L=function(a){return b.ra(a,b.n)};b.Xa=function(a){return"function"==typeof a&&a[I]===b.n||"function"==
typeof a&&a[I]===b.j&&a.Gb?n:v};b.b("observable",b.n);b.b("isObservable",b.L);b.b("isWriteableObservable",b.Xa);b.T=function(a){a=a||[];("object"!=typeof a||!("length"in a))&&j(Error("The argument passed when initializing an observable array must be an array, or null, or undefined."));a=b.n(a);b.a.extend(a,b.T.fn);return a};b.T.fn={remove:function(a){for(var b=this.t(),c=[],e="function"==typeof a?a:function(b){return b===a},f=0;f<b.length;f++){var g=b[f];e(g)&&(0===c.length&&this.I(),c.push(g),b.splice(f,
1),f--)}c.length&&this.H();return c},removeAll:function(a){if(a===k){var d=this.t(),c=d.slice(0);this.I();d.splice(0,d.length);this.H();return c}return!a?[]:this.remove(function(c){return 0<=b.a.k(a,c)})},destroy:function(a){var b=this.t(),c="function"==typeof a?a:function(b){return b===a};this.I();for(var e=b.length-1;0<=e;e--)c(b[e])&&(b[e]._destroy=n);this.H()},destroyAll:function(a){return a===k?this.destroy(J(n)):!a?[]:this.destroy(function(d){return 0<=b.a.k(a,d)})},indexOf:function(a){var d=
this();return b.a.k(d,a)},replace:function(a,b){var c=this.indexOf(a);0<=c&&(this.I(),this.t()[c]=b,this.H())}};b.a.p("pop push reverse shift sort splice unshift".split(" "),function(a){b.T.fn[a]=function(){var b=this.t();this.I();b=b[a].apply(b,arguments);this.H();return b}});b.a.p(["slice"],function(a){b.T.fn[a]=function(){var b=this();return b[a].apply(b,arguments)}});b.b("observableArray",b.T);b.j=function(a,d,c){function e(){b.a.p(x,function(a){a.A()});x=[]}function f(){var a=h.throttleEvaluation;
a&&0<=a?(clearTimeout(r),r=setTimeout(g,a)):g()}function g(){if(!p)if(u&&s())w();else{p=n;try{var a=b.a.Y(x,function(a){return a.target});b.m.sb(function(c){var d;0<=(d=b.a.k(a,c))?a[d]=k:x.push(c.Fa(f))});for(var c=F.call(d),e=a.length-1;0<=e;e--)a[e]&&x.splice(e,1)[0].A();u=n;h.notifySubscribers(l,"beforeChange");l=c}finally{b.m.end()}h.notifySubscribers(l);p=v;x.length||w()}}function h(){if(0<arguments.length)return"function"===typeof E?E.apply(d,arguments):j(Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.")),
this;u||g();b.m.bb(h);return l}function m(){return!u||0<x.length}var l,u=v,p=v,F=a;F&&"object"==typeof F?(c=F,F=c.read):(c=c||{},F||(F=c.read));"function"!=typeof F&&j(Error("Pass a function that returns the value of the ko.computed"));var E=c.write,t=c.disposeWhenNodeIsRemoved||c.Z||q,s=c.disposeWhen||c.Qa||J(v),w=e,x=[],r=q;d||(d=c.owner);h.t=function(){u||g();return l};h.Eb=function(){return x.length};h.Gb="function"===typeof c.write;h.A=function(){w()};h.ua=m;b.U.call(h);b.a.extend(h,b.j.fn);
b.r(h,"peek",h.t);b.r(h,"dispose",h.A);b.r(h,"isActive",h.ua);b.r(h,"getDependenciesCount",h.Eb);c.deferEvaluation!==n&&g();if(t&&m()){w=function(){b.a.B.cb(t,w);e()};b.a.B.ia(t,w);var D=s,s=function(){return!b.a.$(t)||D()}}return h};b.Ib=function(a){return b.ra(a,b.j)};A=b.n.Rb;b.j[A]=b.n;b.j.fn={};b.j.fn[A]=b.j;b.b("dependentObservable",b.j);b.b("computed",b.j);b.b("isComputed",b.Ib);b.lb=function(a){0==arguments.length&&j(Error("When calling ko.toJS, pass the object you want to convert."));return ka(a,
function(a){for(var c=0;b.L(a)&&10>c;c++)a=a();return a})};b.toJSON=function(a,d,c){a=b.lb(a);return b.a.Ea(a,d,c)};ja.prototype={save:function(a,d){var c=b.a.k(this.keys,a);0<=c?this.Ja[c]=d:(this.keys.push(a),this.Ja.push(d))},get:function(a){a=b.a.k(this.keys,a);return 0<=a?this.Ja[a]:k}};b.b("toJS",b.lb);b.b("toJSON",b.toJSON);b.h={o:function(a){switch(b.a.u(a)){case "option":return a.__ko__hasDomDataOptionValue__===n?b.a.f.get(a,b.d.options.ya):7>=b.a.ba?a.getAttributeNode("value")&&a.getAttributeNode("value").specified?
a.value:a.text:a.value;case "select":return 0<=a.selectedIndex?b.h.o(a.options[a.selectedIndex]):k;default:return a.value}},V:function(a,d){switch(b.a.u(a)){case "option":switch(typeof d){case "string":b.a.f.set(a,b.d.options.ya,k);"__ko__hasDomDataOptionValue__"in a&&delete a.__ko__hasDomDataOptionValue__;a.value=d;break;default:b.a.f.set(a,b.d.options.ya,d),a.__ko__hasDomDataOptionValue__=n,a.value="number"===typeof d?d:""}break;case "select":""===d&&(d=k);if(d===q||d===k)a.selectedIndex=-1;for(var c=
a.options.length-1;0<=c;c--)if(b.h.o(a.options[c])==d){a.selectedIndex=c;break}!(1<a.size)&&-1===a.selectedIndex&&(a.selectedIndex=0);break;default:if(d===q||d===k)d="";a.value=d}}};b.b("selectExtensions",b.h);b.b("selectExtensions.readValue",b.h.o);b.b("selectExtensions.writeValue",b.h.V);var Da=["true","false","null","undefined"],Ea=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,ia=RegExp("\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|[^\\s:,/][^,\"'{}()/:[\\]]*[^\\s,\"'{}()/:[\\]]|[^\\s]",
"g"),ya=/[\])"'A-Za-z0-9_$]+$/,za={"in":1,"return":1,"typeof":1},qa={};b.g={S:[],P:qa,Aa:ha,da:function(a,d){function c(a,d){var h,p=b.getBindingHandler(a);if(p&&p.preprocess?d=p.preprocess(d,a,c):1){if(p=qa[a])h=d,0<=b.a.k(Da,h)?h=v:(p=h.match(Ea),h=p===q?v:p[1]?"Object("+p[1]+")"+p[2]:h),p=h;p&&f.push("'"+a+"':function(_z){"+h+"=_z}");g&&(d="function(){return "+d+"}");e.push("'"+a+"':"+d)}}d=d||{};var e=[],f=[],g=d.valueAccessors,h="string"===typeof a?ha(a):a;b.a.p(h,function(a){c(a.key||a.unknown,
a.value)});f.length&&c("_ko_property_writers","{"+f.join(",")+"}");return e.join(",")},Lb:function(a,b){for(var c=0;c<a.length;c++)if(a[c].key==b)return n;return v},ha:function(a,d,c,e,f){if(!a||!b.L(a)){if((a=d.get("_ko_property_writers"))&&a[c])a[c](e)}else b.Xa(a)&&(!f||a.t()!==e)&&a(e)}};b.b("expressionRewriting",b.g);b.b("expressionRewriting.bindingRewriteValidators",b.g.S);b.b("expressionRewriting.parseObjectLiteral",b.g.Aa);b.b("expressionRewriting.preProcessBindings",b.g.da);b.b("expressionRewriting._twoWayBindings",
b.g.P);b.b("jsonExpressionRewriting",b.g);b.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",b.g.da);var N=s&&"\x3c!--test--\x3e"===s.createComment("test").text,xa=N?/^\x3c!--\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*--\x3e$/:/^\s*ko(?:\s+(.+\s*\:[\s\S]*))?\s*$/,wa=N?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,Fa={ul:n,ol:n};b.e={J:{},childNodes:function(a){return B(a)?ga(a):a.childNodes},aa:function(a){if(B(a)){a=b.e.childNodes(a);for(var d=0,c=a.length;d<c;d++)b.removeNode(a[d])}else b.a.pa(a)},
O:function(a,d){if(B(a)){b.e.aa(a);for(var c=a.nextSibling,e=0,f=d.length;e<f;e++)c.parentNode.insertBefore(d[e],c)}else b.a.O(a,d)},ab:function(a,b){B(a)?a.parentNode.insertBefore(b,a.nextSibling):a.firstChild?a.insertBefore(b,a.firstChild):a.appendChild(b)},Va:function(a,d,c){c?B(a)?a.parentNode.insertBefore(d,c.nextSibling):c.nextSibling?a.insertBefore(d,c.nextSibling):a.appendChild(d):b.e.ab(a,d)},firstChild:function(a){return!B(a)?a.firstChild:!a.nextSibling||M(a.nextSibling)?q:a.nextSibling},
nextSibling:function(a){B(a)&&(a=fa(a));return a.nextSibling&&M(a.nextSibling)?q:a.nextSibling},ob:function(a){return(a=B(a))?a[1]:q},Za:function(a){if(Fa[b.a.u(a)]){var d=a.firstChild;if(d){do if(1===d.nodeType){var c;c=d.firstChild;var e=q;if(c){do if(e)e.push(c);else if(B(c)){var f=fa(c,n);f?c=f:e=[c]}else M(c)&&(e=[c]);while(c=c.nextSibling)}if(c=e){e=d.nextSibling;for(f=0;f<c.length;f++)e?a.insertBefore(c[f],e):a.appendChild(c[f])}}while(d=d.nextSibling)}}}};b.b("virtualElements",b.e);b.b("virtualElements.allowedBindings",
b.e.J);b.b("virtualElements.emptyNode",b.e.aa);b.b("virtualElements.insertAfter",b.e.Va);b.b("virtualElements.prepend",b.e.ab);b.b("virtualElements.setDomNodeChildren",b.e.O);b.K=function(){this.tb={}};b.a.extend(b.K.prototype,{nodeHasBindings:function(a){switch(a.nodeType){case 1:return a.getAttribute("data-bind")!=q;case 8:return b.e.ob(a)!=q;default:return v}},getBindings:function(a,b){var c=this.getBindingsString(a,b);return c?this.parseBindingsString(c,b,a):q},getBindingAccessors:function(a,
b){var c=this.getBindingsString(a,b);return c?this.parseBindingsString(c,b,a,{valueAccessors:n}):q},getBindingsString:function(a){switch(a.nodeType){case 1:return a.getAttribute("data-bind");case 8:return b.e.ob(a);default:return q}},parseBindingsString:function(a,d,c,e){try{var f=this.tb,g=a+(e&&e.valueAccessors||""),h;if(!(h=f[g])){var m,l="with($context){with($data||{}){return{"+b.g.da(a,e)+"}}}";m=new Function("$context","$element",l);h=f[g]=m}return h(d,c)}catch(k){k.message="Unable to parse bindings.\nBindings value: "+
a+"\nMessage: "+k.message,j(k)}}});b.K.instance=new b.K;b.b("bindingProvider",b.K);b.d={};b.getBindingHandler=function(a){return b.d[a]};b.z=function(a,d,c){d?(b.a.extend(this,d),this.$parentContext=d,this.$parent=d.$data,this.$parents=(d.$parents||[]).slice(0),this.$parents.unshift(this.$parent)):(this.$parents=[],this.$root=a,this.ko=b);this.$data=a;c&&(this[c]=a)};b.z.prototype.createChildContext=function(a,d){return new b.z(a,this,d)};b.z.prototype.extend=function(a){var d=b.a.extend(new b.z,
this);return b.a.extend(d,a)};var ba="__ko_boundElement";b.jb=function(a,d){if(2==arguments.length)b.a.f.set(a,"__ko_bindingContext__",d);else return b.a.f.get(a,"__ko_bindingContext__")};b.ka=function(a,d,c){1===a.nodeType&&b.e.Za(a);return aa(a,d,L(c),n)};b.qb=function(a,d,c){c=L(c);return b.ka(a,"function"===typeof d?ea(d.bind(q,c,a)):b.a.xa(d,va),c)};b.La=function(a,b){(1===b.nodeType||8===b.nodeType)&&da(L(a),b,n)};b.Ka=function(a,b){b&&(1!==b.nodeType&&8!==b.nodeType)&&j(Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"));
b=b||z.document.body;ca(L(a),b,n)};b.oa=function(a){switch(a.nodeType){case 1:case 8:var d=b.jb(a);if(d)return d;if(a.parentNode)return b.oa(a.parentNode)}return k};b.wb=function(a){return(a=b.oa(a))?a.$data:k};b.b("bindingHandlers",b.d);b.b("applyBindings",b.Ka);b.b("applyBindingsToDescendants",b.La);b.b("applyBindingAccessorsToNode",b.ka);b.b("applyBindingsToNode",b.qb);b.b("contextFor",b.oa);b.b("dataFor",b.wb);var ra={"class":"className","for":"htmlFor"};b.d.attr={update:function(a,d){var c=b.a.c(d())||
{};b.a.D(c,function(c,d){d=b.a.c(d);var g=d===v||d===q||d===k;g&&a.removeAttribute(c);8>=b.a.ba&&c in ra?(c=ra[c],g?a.removeAttribute(c):a[c]=d):g||a.setAttribute(c,d.toString());"name"===c&&b.a.gb(a,g?"":d.toString())})}};b.d.checked={init:function(a,d,c){b.a.q(a,"click",function(){var e;if("checkbox"==a.type)e=a.checked;else if("radio"==a.type&&a.checked)e=K(a,c);else return;var f=d(),g=b.a.c(f);"checkbox"==a.type&&g instanceof Array?b.a.ja(f,K(a,c),a.checked):b.g.ha(f,c,"checked",e,n)});"radio"==
a.type&&!a.name&&b.d.uniqueName.init(a,J(n))},update:function(a,d,c){d=b.a.c(d());"checkbox"==a.type?a.checked=d instanceof Array?0<=b.a.k(d,K(a,c)):d:"radio"==a.type&&(a.checked=K(a,c)===d)}};b.g.P.checked=n;b.d.checkedValue={update:function(a,d){a.value=b.a.c(d())}};b.d.css={update:function(a,d){var c=b.a.c(d());"object"==typeof c?b.a.D(c,function(c,d){d=b.a.c(d);b.a.ga(a,c,d)}):(c=String(c||""),b.a.ga(a,a.__ko__cssValue,v),a.__ko__cssValue=c,b.a.ga(a,c,n))}};b.d.enable={update:function(a,d){var c=
b.a.c(d());c&&a.disabled?a.removeAttribute("disabled"):!c&&!a.disabled&&(a.disabled=n)}};b.d.disable={update:function(a,d){b.d.enable.update(a,function(){return!b.a.c(d())})}};b.d.event={init:function(a,d,c,e){var f=d()||{};b.a.D(f,function(f){"string"==typeof f&&b.a.q(a,f,function(a){var m,l=d()[f];if(l){try{var k=b.a.M(arguments);k.unshift(e);m=l.apply(e,k)}finally{m!==n&&(a.preventDefault?a.preventDefault():a.returnValue=v)}c.get(f+"Bubble")===v&&(a.cancelBubble=n,a.stopPropagation&&a.stopPropagation())}})})}};
b.d.foreach={Ya:function(a){return function(){var d=a(),c=b.a.ca(d);if(!c||"number"==typeof c.length)return{foreach:d,templateEngine:b.C.ta};b.a.c(d);return{foreach:c.data,as:c.as,includeDestroyed:c.includeDestroyed,afterAdd:c.afterAdd,beforeRemove:c.beforeRemove,afterRender:c.afterRender,beforeMove:c.beforeMove,afterMove:c.afterMove,templateEngine:b.C.ta}}},init:function(a,d){return b.d.template.init(a,b.d.foreach.Ya(d))},update:function(a,d,c,e,f){return b.d.template.update(a,b.d.foreach.Ya(d),
c,e,f)}};b.g.S.foreach=v;b.e.J.foreach=n;b.d.hasfocus={init:function(a,d,c){function e(e){a.__ko_hasfocusUpdating=n;var f=a.ownerDocument;if("activeElement"in f){var g;try{g=f.activeElement}catch(k){g=f.body}e=g===a}f=d();b.g.ha(f,c,"hasfocus",e,n);a.__ko_hasfocusLastValue=e;a.__ko_hasfocusUpdating=v}var f=e.bind(q,n),g=e.bind(q,v);b.a.q(a,"focus",f);b.a.q(a,"focusin",f);b.a.q(a,"blur",g);b.a.q(a,"focusout",g)},update:function(a,d){var c=!!b.a.c(d());!a.__ko_hasfocusUpdating&&a.__ko_hasfocusLastValue!==
c&&(c?a.focus():a.blur(),b.m.w(b.a.Ia,q,[a,c?"focusin":"focusout"]))}};b.g.P.hasfocus=n;b.d.hasFocus=b.d.hasfocus;b.g.P.hasFocus=n;b.d.html={init:function(){return{controlsDescendantBindings:n}},update:function(a,d){b.a.ea(a,d())}};var ma="__ko_withIfBindingData";T("if");T("ifnot",v,n);T("with",n,v,function(a,b){return a.createChildContext(b)});b.d.options={init:function(a){for("select"!==b.a.u(a)&&j(Error("options binding applies only to SELECT elements"));0<a.length;)a.remove(0)},update:function(a,
d,c){function e(a,b,c){var d=typeof b;return"function"==d?b(a):"string"==d?a[b]:c}var f=0==a.length,g=!f&&a.multiple?a.scrollTop:q;d=b.a.c(d());var h=c.get("optionsIncludeDestroyed"),m={},l;a.multiple?l=b.a.Y(a.Xb||b.a.X(a.childNodes,function(a){return a.tagName&&"option"===b.a.u(a)&&a.selected}),function(a){return b.h.o(a)}):0<=a.selectedIndex&&(l=[b.h.o(a.options[a.selectedIndex])]);if(d){"undefined"==typeof d.length&&(d=[d]);var u=b.a.X(d,function(a){return h||a===k||a===q||!b.a.c(a._destroy)});
c.has("optionsCaption")&&u.unshift(m)}else d=[];b.a.Ca(a,u,function(a,d,f){f.length&&(l=f[0].selected&&[b.h.o(f[0])]);d=s.createElement("option");a===m?(b.a.ea(d,c.get("optionsCaption")),b.h.V(d,k)):(f=e(a,c.get("optionsValue"),a),b.h.V(d,b.a.c(f)),a=e(a,c.get("optionsText"),f),b.a.ib(d,a));return[d]},q,function(a,c){if(l){var d=0<=b.a.k(l,b.h.o(c[0]));b.a.hb(c[0],d)}});l=q;f&&c.has("value")&&na(a,b.a.ca(c.get("value")),n);b.a.Bb(a);g&&20<Math.abs(g-a.scrollTop)&&(a.scrollTop=g)}};b.d.options.ya=
"__ko.optionValueDomData__";b.d.selectedOptions={init:function(a,d,c){b.a.q(a,"change",function(){var e=d(),f=[];b.a.p(a.getElementsByTagName("option"),function(a){a.selected&&f.push(b.h.o(a))});b.g.ha(e,c,"selectedOptions",f)})},update:function(a,d){"select"!=b.a.u(a)&&j(Error("values binding applies only to SELECT elements"));var c=b.a.c(d());c&&"number"==typeof c.length&&b.a.p(a.getElementsByTagName("option"),function(a){var d=0<=b.a.k(c,b.h.o(a));b.a.hb(a,d)})}};b.g.P.selectedOptions=n;b.d.style=
{update:function(a,d){var c=b.a.c(d()||{});b.a.D(c,function(c,d){d=b.a.c(d);a.style[c]=d||""})}};b.d.submit={init:function(a,d,c,e){"function"!=typeof d()&&j(Error("The value for a submit binding must be a function"));b.a.q(a,"submit",function(b){var c,h=d();try{c=h.call(e,a)}finally{c!==n&&(b.preventDefault?b.preventDefault():b.returnValue=v)}})}};b.d.text={update:function(a,d){b.a.ib(a,d())}};b.e.J.text=n;b.d.uniqueName={init:function(a,d){if(d()){var c="ko_unique_"+ ++b.d.uniqueName.vb;b.a.gb(a,
c)}}};b.d.uniqueName.vb=0;b.d.value={init:function(a,d,c){function e(){h=v;var e=d(),f=b.h.o(a);b.g.ha(e,c,"value",f)}var f=["change"],g=c.get("valueUpdate"),h=v;g&&("string"==typeof g&&(g=[g]),b.a.R(f,g),f=b.a.Na(f));if(b.a.ba&&("input"==a.tagName.toLowerCase()&&"text"==a.type&&"off"!=a.autocomplete&&(!a.form||"off"!=a.form.autocomplete))&&-1==b.a.k(f,"propertychange"))b.a.q(a,"propertychange",function(){h=n}),b.a.q(a,"blur",function(){h&&e()});b.a.p(f,function(c){var d=e;b.a.Ub(c,"after")&&(d=function(){setTimeout(e,
0)},c=c.substring(5));b.a.q(a,c,d)})},update:function(a,d){var c="select"===b.a.u(a),e=b.a.c(d()),f=b.h.o(a);e!==f&&(f=function(){b.h.V(a,e)},f(),c&&setTimeout(f,0));c&&0<a.length&&na(a,e,v)}};b.g.P.value=n;b.d.visible={update:function(a,d){var c=b.a.c(d()),e="none"!=a.style.display;c&&!e?a.style.display="":!c&&e&&(a.style.display="none")}};b.d.click={init:function(a,d,c,e){return b.d.event.init.call(this,a,function(){var a={};a.click=d();return a},c,e)}};b.v=function(){};b.v.prototype.renderTemplateSource=
function(){j(Error("Override renderTemplateSource"))};b.v.prototype.createJavaScriptEvaluatorBlock=function(){j(Error("Override createJavaScriptEvaluatorBlock"))};b.v.prototype.makeTemplateSource=function(a,d){if("string"==typeof a){d=d||s;var c=d.getElementById(a);c||j(Error("Cannot find template with ID "+a));return new b.l.i(c)}if(1==a.nodeType||8==a.nodeType)return new b.l.Q(a);j(Error("Unknown template type: "+a))};b.v.prototype.renderTemplate=function(a,b,c,e){a=this.makeTemplateSource(a,e);
return this.renderTemplateSource(a,b,c)};b.v.prototype.isTemplateRewritten=function(a,b){return this.allowTemplateRewriting===v?n:this.makeTemplateSource(a,b).data("isRewritten")};b.v.prototype.rewriteTemplate=function(a,b,c){a=this.makeTemplateSource(a,c);b=b(a.text());a.text(b);a.data("isRewritten",n)};b.b("templateEngine",b.v);var Ga=/(<([a-z]+\d*)(?:\s+(?!data-bind=)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\3/gi,Ha=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;b.Ga=
{Cb:function(a,d,c){d.isTemplateRewritten(a,c)||d.rewriteTemplate(a,function(a){return b.Ga.Nb(a,d)},c)},Nb:function(a,b){return a.replace(Ga,function(a,e,f,g,h){return $(h,e,f,b)}).replace(Ha,function(a,e){return $(e,"\x3c!-- ko --\x3e","#comment",b)})},rb:function(a,d){return b.s.wa(function(c,e){var f=c.nextSibling;f&&f.nodeName.toLowerCase()===d&&b.ka(f,a(e,f),e)})}};b.b("__tr_ambtns",b.Ga.rb);b.l={};b.l.i=function(a){this.i=a};b.l.i.prototype.text=function(){var a=b.a.u(this.i),a="script"===
a?"text":"textarea"===a?"value":"innerHTML";if(0==arguments.length)return this.i[a];var d=arguments[0];"innerHTML"===a?b.a.ea(this.i,d):this.i[a]=d};b.l.i.prototype.data=function(a){if(1===arguments.length)return b.a.f.get(this.i,"templateSourceData_"+a);b.a.f.set(this.i,"templateSourceData_"+a,arguments[1])};b.l.Q=function(a){this.i=a};b.l.Q.prototype=new b.l.i;b.l.Q.prototype.text=function(){if(0==arguments.length){var a=b.a.f.get(this.i,"__ko_anon_template__")||{};a.Ha===k&&a.na&&(a.Ha=a.na.innerHTML);
return a.Ha}b.a.f.set(this.i,"__ko_anon_template__",{Ha:arguments[0]})};b.l.i.prototype.nodes=function(){if(0==arguments.length)return(b.a.f.get(this.i,"__ko_anon_template__")||{}).na;b.a.f.set(this.i,"__ko_anon_template__",{na:arguments[0]})};b.b("templateSources",b.l);b.b("templateSources.domElement",b.l.i);b.b("templateSources.anonymousTemplate",b.l.Q);var Q;b.Da=function(a){a!=k&&!(a instanceof b.v)&&j(Error("templateEngine must inherit from ko.templateEngine"));Q=a};b.Ba=function(a,d,c,e,f){c=
c||{};(c.templateEngine||Q)==k&&j(Error("Set a template engine before calling renderTemplate"));f=f||"replaceChildren";if(e){var g=P(e);return b.j(function(){var h=d&&d instanceof b.z?d:new b.z(b.a.c(d)),k="function"==typeof a?a(h.$data,h):a,h=X(e,f,k,h,c);"replaceNode"==f&&(e=h,g=P(e))},q,{Qa:function(){return!g||!b.a.$(g)},Z:g&&"replaceNode"==f?g.parentNode:g})}return b.s.wa(function(e){b.Ba(a,d,c,e,"replaceNode")})};b.Tb=function(a,d,c,e,f){function g(a,b){Y(b,m);c.afterRender&&c.afterRender(b,
a)}function h(d,e){m=f.createChildContext(b.a.c(d),c.as);m.$index=e;var g="function"==typeof a?a(d,m):a;return X(q,"ignoreTargetNode",g,m,c)}var m;return b.j(function(){var a=b.a.c(d)||[];"undefined"==typeof a.length&&(a=[a]);a=b.a.X(a,function(a){return c.includeDestroyed||a===k||a===q||!b.a.c(a._destroy)});b.m.w(b.a.Ca,q,[e,a,h,c,g])},q,{Z:e})};b.d.template={init:function(a,d){var c=b.a.c(d());if("string"!=typeof c&&!c.name&&(1==a.nodeType||8==a.nodeType))c=1==a.nodeType?a.childNodes:b.e.childNodes(a),
c=b.a.Ob(c),(new b.l.Q(a)).nodes(c);return{controlsDescendantBindings:n}},update:function(a,d,c,e,f){d=b.a.c(d());c={};e=n;var g,h=q;"string"!=typeof d&&(c=d,d=b.a.c(c.name),"if"in c&&(e=b.a.c(c["if"])),e&&"ifnot"in c&&(e=!b.a.c(c.ifnot)),g=b.a.c(c.data));"foreach"in c?h=b.Tb(d||a,e&&c.foreach||[],c,a,f):e?(f="data"in c?f.createChildContext(g,c.as):f,h=b.Ba(d||a,f,c,a)):b.e.aa(a);f=h;(g=b.a.f.get(a,"__ko__templateComputedDomDataKey__"))&&"function"==typeof g.A&&g.A();b.a.f.set(a,"__ko__templateComputedDomDataKey__",
f&&f.ua()?f:k)}};b.g.S.template=function(a){a=b.g.Aa(a);return 1==a.length&&a[0].unknown||b.g.Lb(a,"name")?q:"This template engine does not support anonymous templates nested within its templates"};b.e.J.template=n;b.b("setTemplateEngine",b.Da);b.b("renderTemplate",b.Ba);b.a.Pa=function(a,b,c){a=a||[];b=b||[];return a.length<=b.length?W(a,b,"added","deleted",c):W(b,a,"deleted","added",c)};b.b("utils.compareArrays",b.a.Pa);b.a.Ca=function(a,d,c,e,f){function g(a,b){r=l[b];A!==b&&(x[a]=r);r.sa(A++);
O(r.N);t.push(r);w.push(r)}function h(a,c){if(a)for(var d=0,e=c.length;d<e;d++)c[d]&&b.a.p(c[d].N,function(b){a(b,d,c[d].W)})}d=d||[];e=e||{};var m=b.a.f.get(a,"setDomNodeChildrenFromArrayMapping_lastMappingResult")===k,l=b.a.f.get(a,"setDomNodeChildrenFromArrayMapping_lastMappingResult")||[],u=b.a.Y(l,function(a){return a.W}),p=b.a.Pa(u,d,e.dontLimitMoves),t=[],s=0,A=0,B=[],w=[];d=[];for(var x=[],u=[],r,D=0,y,z;y=p[D];D++)switch(z=y.moved,y.status){case "deleted":z===k&&(r=l[s],r.j&&r.j.A(),B.push.apply(B,
O(r.N)),e.beforeRemove&&(d[D]=r,w.push(r)));s++;break;case "retained":g(D,s++);break;case "added":z!==k?g(D,z):(r={W:y.value,sa:b.n(A++)},t.push(r),w.push(r),m||(u[D]=r))}h(e.beforeMove,x);b.a.p(B,e.beforeRemove?b.G:b.removeNode);for(var D=0,m=b.e.firstChild(a),C;r=w[D];D++){r.N||b.a.extend(r,sa(a,c,r.W,f,r.sa));for(s=0;p=r.N[s];m=p.nextSibling,C=p,s++)p!==m&&b.e.Va(a,p,C);!r.Hb&&f&&(f(r.W,r.N,r.sa),r.Hb=n)}h(e.beforeRemove,d);h(e.afterMove,x);h(e.afterAdd,u);b.a.f.set(a,"setDomNodeChildrenFromArrayMapping_lastMappingResult",
t)};b.b("utils.setDomNodeChildrenFromArrayMapping",b.a.Ca);b.C=function(){this.allowTemplateRewriting=v};b.C.prototype=new b.v;b.C.prototype.renderTemplateSource=function(a){var d=!(9>b.a.ba)&&a.nodes?a.nodes():q;if(d)return b.a.M(d.cloneNode(n).childNodes);a=a.text();return b.a.za(a)};b.C.ta=new b.C;b.Da(b.C.ta);b.b("nativeTemplateEngine",b.C);b.va=function(){var a=this.Kb=function(){if("undefined"==typeof t||!t.tmpl)return 0;try{if(0<=t.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();
this.renderTemplateSource=function(b,c,e){e=e||{};2>a&&j(Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."));var f=b.data("precompiled");f||(f=b.text()||"",f=t.template(q,"{{ko_with $item.koBindingContext}}"+f+"{{/ko_with}}"),b.data("precompiled",f));b=[c.$data];c=t.extend({koBindingContext:c},e.templateOptions);c=t.tmpl(f,b,c);c.appendTo(s.createElement("div"));t.fragments={};return c};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+
a+" })()) }}"};this.addTemplate=function(a,b){s.write("<script type='text/html' id='"+a+"'>"+b+"\x3c/script>")};0<a&&(t.tmpl.tag.ko_code={open:"__.push($1 || '');"},t.tmpl.tag.ko_with={open:"with($1) {",close:"} "})};b.va.prototype=new b.v;A=new b.va;0<A.Kb&&b.Da(A);b.b("jqueryTmplTemplateEngine",b.va)})})();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment