unpoly-rails 0.20.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of unpoly-rails might be problematic. Click here for more details.

data/dist/unpoly.min.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){window.up={}}).call(this),function(){var e=[].slice;up.util=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$,P,E,C,D,A,U,O,F,R,M,j,K,z,L,I,W,N,q,H,_,Q,V,J,B,X,G,Y,Z,et,tt,nt,rt,ot,ut,it,at,st,lt,pt,ct,ft,dt,mt,ht,vt,gt,yt,bt,wt,kt,St,xt,Tt,$t,Pt,Et,Ct,Dt,At,Ut,Ot,Ft,Rt,Mt,jt;return Z=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},H=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},it=function(e,t){var n,r,o;return n=dt(e),r=n.protocol+"//"+n.hostname,H(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},dt=function(e){var n;return n=null,_(e)?(n=t("<a>").attr({href:e}).get(0),A(n.hostname)&&(n.href=n.href)):n=Ot(e),n},ut=function(e){return e?e.toUpperCase():"GET"},n=function(e){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=p=0,m=v.length;m>p;f=++p){for(a=v[f],i=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",u=[],c=null,d=0,h=i.length;h>d;d++)switch(s=i[d],s[0]){case".":u.push(s.substr(1));break;case"#":c=s.substr(1);break;default:g=s}l="<"+g,u.length&&(l+=' class="'+u.join(" ")+'"'),c&&(l+=' id="'+c+'"'),l+=">",n=t(l),r&&n.appendTo(r),0===f&&(o=n),r=n}return o},h=function(e,t){var n;return n=document.createElement(e),N(t)&&(n.innerHTML=t),n},r=function(e,t){var r;return null==t&&(t=document.body),r=n(e),r.addClass("up-placeholder"),r.appendTo(t),r},$t=function(e){var n,r,o,u,i,a,s,l,p;if(n=t(e),l=void 0,up.puts("Creating selector from element %o",n.get(0)),p=mt(n.attr("up-id")))l="[up-id='"+p+"']";else if(u=mt(n.attr("id")))l="#"+u;else if(s=mt(n.attr("name")))l="[name='"+s+"']";else if(r=mt(ot(n)))for(l="",o=0,a=r.length;a>o;o++)i=r[o],l+="."+i;else l=n.prop("tagName").toLowerCase();return l},ot=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Tt(n,function(e){return N(e)&&!e.match(/^up-/)})},v=function(e){var t,n,r,o,u,i,a,s,l,p,c,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},i=function(e){return"</"+e+">"},t="(?:.|\\n)*?",u=function(e){return"("+e+")"},f=new RegExp(l("head")+t+l("title")+u(t)+i("title")+t+i("body"),"i"),o=new RegExp(l("body")+u(t)+i("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=h("body",r[1]),s.appendChild(n),(c=e.match(f))&&(a=h("head"),s.appendChild(a),p=h("title",c[1]),a.appendChild(p)),s):h("div",e)},x=t.extend,Ut=t.trim,b=function(e,t){var n,r,o,u,i;for(i=[],r=n=0,u=e.length;u>n;r=++n)o=e[r],i.push(t(o,r));return i},G=b,Ct=function(e,t){var n,r,o,u;for(u=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)u.push(t(r));return u},L=function(e){return null===e},Q=function(e){return void 0===e},O=function(e){return!Q(e)},z=function(e){return Q(e)||L(e)},M=function(e){return!z(e)},A=function(e){return z(e)||W(e)&&0===Object.keys(e).length||0===e.length},mt=function(e,t){return null==t&&(t=N),t(e)?e:void 0},N=function(e){return!A(e)},R=function(e){return"function"==typeof e},_=function(e){return"string"==typeof e},I=function(e){return"number"==typeof e},j=function(e){return"object"==typeof e&&!!e},W=function(e){return j(e)||"function"==typeof e},F=function(e){return!(!e||1!==e.nodeType)},K=function(e){return e instanceof jQuery},q=function(e){return W(e)&&R(e.then)},U=function(e){return q(e)&&R(e.resolve)},D=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},At=function(e){return Array.prototype.slice.call(e)},d=function(e){return D(e)?e.slice():x({},e)},Ot=function(e){return K(e)?e.get(0):e},et=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],x.apply(null,[{}].concat(e.call(t)))},ft=function(e,t){var n,r,o,u;if(o=e?d(e):{},t)for(r in t)n=t[r],u=o[r],M(u)?W(n)&&W(u)&&(o[r]=ft(u,n)):o[r]=n;return o},ct=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],y(t,M)},y=function(e,t){var n,r,o,u;for(u=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=n;break}return u},i=function(e,t){var n,r,o,u;for(u=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=!0;break}return u},u=function(e,t){var n,r,o,u;for(u=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){u=!1;break}return u},p=function(e){return Tt(e,M)},Ft=function(e){var t;return t={},Tt(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},Tt=function(e,t){var n;return n=[],b(e,function(e){return t(e)?n.push(e):void 0}),n},vt=function(e,t){return Tt(e,function(e){return!t(e)})},C=function(e,t){return Tt(e,function(e){return f(t,e)})},ht=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,u;for(u=[],e=0,o=r.length;o>e;e++)n=r[e],u.push(t.attr(n));return u}(),y(o,N)},rt=function(e){return setTimeout(e,0)},B=function(e){return e[e.length-1]},l=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},xt=Z(function(){var e,n,r;return e=t("<div>").css({position:"absolute",top:"0",left:"0",width:"50px",height:"50px",overflowY:"scroll"}),e.appendTo(document.body),n=e.get(0),r=n.offsetWidth-n.clientWidth,e.remove(),r}),lt=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Et=function(e,t,n){var r,o;return o=e.css(Object.keys(t)),e.css(t),r=function(){return e.css(o)},n?(n(),r()):lt(r)},E=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),A(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},g=function(e,n,r){var u,i,a,s,l,p;return u=t(e),r=ft(r,{duration:300,delay:0,easing:"ease"}),i=t.Deferred(),s={"transition-property":Object.keys(n).join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},l=E(u),p=Et(u,s),u.css(n),i.then(l),i.then(p),u.data(o,i),i.then(function(){return u.removeData(o)}),a=setTimeout(function(){return i.resolve()},r.duration+r.delay),i.then(function(){return clearTimeout(a)}),i},o="up-animation-promise",$=function(e){return t(e).each(function(){var e;return(e=t(this).data(o))?e.resolve():void 0})},Y=function(e,n){var r,o,u,i,a,s;return n=ft(n,{relative:!1,inner:!1,full:!1}),n.relative?n.relative===!0?i=e.position():(r=t(n.relative),a=e.offset(),r.is(document)?i=a:(u=r.offset(),i={left:a.left-u.left,top:a.top-u.top})):i=e.offset(),o={left:i.left,top:i.top},n.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),n.full&&(s=l(),o.right=s.width-(o.left+o.width),o.bottom=s.height-(o.top+o.height)),o},m=function(e,t){var n,r,o,u,i;for(u=e.get(0).attributes,i=[],r=0,o=u.length;o>r;r++)n=u[r],i.push(n.specified?t.attr(n.name,n.value):void 0);return i},T=function(e,t){return e.find(t).addBack(t)},k=function(e){return 27===e.keyCode},f=function(e,t){return e.indexOf(t)>=0},s=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},X=function(e){return e.getResponseHeader("X-Up-Location")},Dt=function(e){return e.getResponseHeader("X-Up-Title")},tt=function(e){return e.getResponseHeader("X-Up-Method")},pt=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=u.length;r>n;n++)i=u[n],o.hasOwnProperty(i)&&(t[i]=o[i]);return t},S=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t=d(o),n=0,r=u.length;r>n;n++)i=u[n],delete t[i];return t},V=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},J=function(e){var t;return t=Q(e.button)||0===e.button,t&&V(e)},kt=function(){var e;return e=t.Deferred(),e.resolve(),e},St=function(){return kt().promise()},Rt=function(){return t.Deferred()},Mt=function(){return Rt().promise()},at=function(){return t()},wt=function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],r=t.when.apply(t,n),r.resolve=function(){return b(n,function(e){return"function"==typeof e.resolve?e.resolve():void 0})},r},Pt=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],r.push(z(e.attr(n))?e.attr(n,o):void 0);return r},gt=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},nt=function(e){var n,r,o,u,a,s,l;for(a={},l=[],r=[],o=0,u=e.length;u>o;o++)s=e[o],_(s)?l.push(s):r.push(s);return a.parsed=r,l.length&&(n=l.join(", "),a.parsed.push(n)),a.select=function(){return a.find(void 0)},a.find=function(e){var n,r,o,u,i,s;for(r=at(),i=a.parsed,o=0,u=i.length;u>o;o++)s=i[o],n=e?e.find(s):t(s),r=r.add(n);return r},a.findWithSelf=function(e){var t;return t=a.find(e),a.doesMatch(e)&&(t=t.add(e)),t},a.doesMatch=function(e){var n;return n=t(e),i(a.parsed,function(e){return n.is(e)})},a.seekUp=function(e){var n,r,o;for(o=t(e),n=o,r=void 0;n.length;){if(a.doesMatch(n)){r=n;break}n=n.parent()}return r||at()},a},a=function(t){var n,r,o,u,i,a,s,l,p,c,f,m;return null==t&&(t={}),f=void 0,r=function(){return f={}},r(),s=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.log?(n[0]="["+t.log+"] "+n[0],up.puts.apply(up,n)):void 0},a=function(){return Object.keys(f)},l=function(){return z(t.size)?void 0:R(t.size)?t.size():I(t.size)?t.size:w("Invalid size config: %o",t.size)},o=function(){return z(t.expiry)?void 0:R(t.expiry)?t.expiry():I(t.expiry)?t.expiry:w("Invalid expiry config: %o",t.expiry)},p=function(e){return t.key?t.key(e):e.toString()},Ut=function(){var e,t,n,r;return r=d(a()),n=l(),n&&r.length>n&&(e=null,t=null,b(r,function(n){var r,o;return r=f[n],o=r.timestamp,!t||t>o?(e=n,t=o):void 0}),e)?delete f[e]:void 0},n=function(e,t){var n;return n=u(e,{silent:!0}),O(n)?c(t,n):void 0},m=function(){return(new Date).valueOf()},c=function(e,t){var n;return n=p(e),f[n]={timestamp:m(),value:t}},gt=function(e){var t;return t=p(e),delete f[t]},i=function(e){var t,n;return t=o(),t?(n=m()-e.timestamp,n<o()):!0},u=function(e,t){var n,r;return null==t&&(t={}),r=p(e),(n=f[r])?i(n)?(t.silent||s("Cache hit for '%s'",e),n.value):(t.silent||s("Discarding stale cache entry for '%s'",e),void gt(e)):void(t.silent||s("Cache miss for '%s'",e))},{alias:n,get:u,set:c,remove:gt,clear:r,keys:a}},c=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){return x(t,e)},t.reset(),Object.preventExtensions(t),t},jt=function(e){var t,n;return e=Ot(e),t=e.parentNode,n=At(e.childNodes),b(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},st=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},P=function(e,n){var r,o,u,i;return r=t(e),o=st(r),u=r.position(),i=o.offset(),r.css({position:"absolute",left:u.left-i.left,top:u.top-i.top+n.scrollTop(),right:"",bottom:""})},yt=function(e){var t,n,r,o,u,i,a;for(i=bt(e),t=[],a=i.split("&"),n=0,r=a.length;r>n;n++)u=a[n],N(u)&&(o=u.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},bt=function(e){var n;return e?(n=t.param(e),n=n.replace(/\+/g,"%20")):""},w=function(){var n,r,o,u,i;throw r=1<=arguments.length?e.call(arguments,0):[],(u=up.log).error.apply(u,r),o=(i=up.browser).sprintf.apply(i,r),n=mt(t(".up-error"))||t('<div class="up-error"></div>').prependTo("body"),n.addClass("up-error"),n.text(o),new Error(o)},{requestDataAsArray:yt,requestDataAsQuery:bt,offsetParent:st,fixedToAbsolute:P,presentAttr:ht,createElement:h,parseUrl:dt,normalizeUrl:it,normalizeMethod:ut,createElementFromHtml:v,$createElementFromSelector:n,$createPlaceholder:r,selectorForElement:$t,extend:x,copy:d,merge:et,options:ft,option:ct,error:w,each:b,map:G,times:Ct,any:i,all:u,detect:y,select:Tt,reject:vt,intersect:C,compact:p,uniq:Ft,last:B,isNull:L,isDefined:O,isUndefined:Q,isGiven:M,isMissing:z,isPresent:N,isBlank:A,presence:mt,isObject:W,isFunction:R,isString:_,isElement:F,isJQuery:K,isPromise:q,isDeferred:U,isHash:j,isUnmodifiedKeyEvent:V,isUnmodifiedMouseEvent:J,nullJQuery:at,unJQuery:Ot,nextFrame:rt,measure:Y,temporaryCss:Et,cssAnimate:g,finishCssAnimate:$,forceCompositing:E,escapePressed:k,copyAttributes:m,findWithSelf:T,contains:f,isArray:D,toArray:At,castedAttr:s,locationFromXhr:X,titleFromXhr:Dt,methodFromXhr:tt,clientSize:l,only:pt,except:S,trim:Ut,unresolvableDeferred:Rt,unresolvablePromise:Mt,resolvedPromise:St,resolvedDeferred:kt,resolvableWhen:wt,setMissingAttrs:Pt,remove:gt,memoize:Z,scrollbarWidth:xt,config:c,cache:a,unwrapElement:jt,multiSelector:nt,error:w}}($),up.error=up.util.error}.call(this),function(){var e=[].slice;up.log=function(){var t,n,r,o,u,i;return o=function(e){return"\u1d1c\u1d18 "+e},t=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["debug",o(n)].concat(e.call(t))):void 0},u=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["log",o(n)].concat(e.call(t))):void 0},i=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["warn",o(n)].concat(e.call(t))):void 0},r=function(){var t,n,r,u;if(r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!r)return n();(u=up.browser).puts.apply(u,["groupCollapsed",o(r)].concat(e.call(t)));try{return n()}finally{r&&console.groupEnd()}},n=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["error",o(n)].concat(e.call(t))):void 0},{puts:u,debug:t,error:n,warn:i,group:r}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.browser=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b;return y=up.util,m=function(e,n){var r,o,u,i,a;return null==n&&(n={}),i=y.option(n.method,"get").toLowerCase(),"get"===i?(a=y.requestDataAsQuery(n.data),a&&(e=e+"?"+a),location.href=e):(r=t("<form method='post' action='"+e+"'></form>"),o=function(e){var n;return n=t('<input type="hidden">'),n.attr(e.name,e.value),n.appendTo(r)},o({name:up.proxy.config.wrapMethodParam,value:i}),(u=up.rails.csrfField())&&o(u),y.each(y.requestDataAsArray(n.data),o),r.hide().appendTo("body"),r.submit())},v=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],y.isDefined(console[r])||(r="log"),u()?console[r].apply(console,t):(n=g.apply(null,t),console[r](n))},n=/\%[odisf]/g,g=function(){var t,r,o,u;return u=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r=0,o=80,u.replace(n,function(){var e,n;return e=t[r],n=typeof e,"string"===n?(e=e.replace(/\s+/g," "),e.length>o&&(e=e.substr(0,o)+"\u2026"),e='"'+e+'"'):e="undefined"===n?"undefined":"number"===n||"function"===n?e.toString():JSON.stringify(e),e.length>o&&(e=e.substr(0,o)+" \u2026",("object"===n||"function"===n)&&(e+=" }")),r+=1,e})},b=function(){return location.href},p=y.memoize(function(){return y.isUndefined(document.addEventListener)}),c=y.memoize(function(){return p()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),i=y.memoize(function(){return y.isDefined(history.pushState)&&"get"===s()}),r=y.memoize(function(){return"transition"in document.documentElement.style}),o=y.memoize(function(){return"oninput"in document.createElement("input")}),u=y.memoize(function(){return!c()}),f=y.memoize(function(){var e,n,r,o;return o=t.fn.jquery,r=o.split("."),e=parseInt(r[0]),n=parseInt(r[1]),e>=2||1===e&&n>=9}),h=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,y.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},a=function(e){return y.isBlank(e)||a(e)?y.resolvedPromise():y.unresolvablePromise()},s=y.memoize(function(){return(h("_up_request_method")||"get").toLowerCase()}),d=function(){return!p()&&f()},l=function(){return console.group||(console.group=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["group"].concat(e.call(t)))}),console.groupCollapsed||(console.groupCollapsed=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupCollapsed"].concat(e.call(t)))}),console.groupEnd||(console.groupEnd=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupEnd"].concat(e.call(t)))})},{url:b,loadPage:m,confirm:a,canPushState:i,canCssTransition:r,canInputEvent:o,canLogSubstitution:u,isSupported:d,installPolyfills:l,puts:v,sprintf:g}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,emit,emitReset,forgetUpDescription,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||u.error("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return up.emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),up.emit("up:framework:boot",{message:"Booting framework"})):void 0},live("up:framework:boot",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,onEscape:onEscape,emitReset:emitReset,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,u,i,a,s,l,p,c,f;return f=up.util,n="up-destroyable",r="up-destroyer",s=[],a=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()?(a=t.pop(),n=f.options(t[0]),s.push({selector:r,callback:a,batch:n.batch,keep:n.keep})):void 0},o=function(e,t,o){var u,i;return up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,o),e.keep&&(i=f.isString(e.keep)?e.keep:"",t.attr("up-keep",i)),u=e.callback.apply(o,[t,l(t)]),f.isFunction(u)?(t.addClass(n),t.data(r,u)):void 0},i=function(e,n){var r;return n=f.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,u,i,l;for(l=[],u=0,i=s.length;i>u;u++)a=s[u],n=f.findWithSelf(e,a.selector),n=n.filter(function(){var e;return e=t(this),f.all(r,function(t){return 0===e.closest(t).length})}),l.push(n.length?up.log.group(a.isDefault?void 0:"Compiling '%s' on %d element(s)",a.selector,n.length,function(){return a.batch?o(a,n,n.get()):n.each(function(){return o(a,t(this),this)})}):void 0);return l})},u=function(e){return f.findWithSelf(e,"."+n).each(function(){var e,n;return e=t(this),(n=e.data(r))()})},l=function(e){var n,r;return n=t(e),r=n.attr("up-data"),f.isString(r)&&""!==f.trim(r)?JSON.parse(r):{}},c=function(){var e,t,n;for(n=[],e=0,t=s.length;t>e;e++)a=s[e],n.push(a.isDefault=!0);return n},p=function(){return s=f.select(s,function(e){return e.isDefault})},up.on("up:framework:boot",c),up.on("up:framework:reset",p),{compiler:a,compile:i,clean:u,data:l}}(jQuery),up.compiler=up.syntax.compiler,up.ready=function(){return up.util.error("up.ready no longer exists. Please use up.hello instead.")},up.awaken=function(){return up.util.error("up.awaken no longer exists. Please use up.compiler instead.")}}.call(this),function(){up.history=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),p=void 0,i=void 0,m=function(){return n.reset(),p=void 0,i=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return i&&(p=i,i=void 0),i=e},d=function(e,t){return u("replace",e,t)},c=function(e,t){return up.puts("Current location is now %s",e),u("push",e,t)},u=function(e,n,u){var i,a;return u=v.options(u,{force:!1}),u.force||!o(n)?up.browser.canPushState()?(i=e+"State",a=t(),window.history[i](a,"",n),s(r())):v.error("This browser doesn't support history.pushState"):void 0},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){return up.log.group("History state popped to URL %s",r(),function(){var t;return s(r()),up.layout.saveScroll({url:p}),t=e.originalEvent.state,h(t)})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(p)?(v.setMissingAttrs(e,{"up-href":p,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return v.error("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:c,replace:d,url:r,previousUrl:function(){return p},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||u.error("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,u;for(o=$(config.fixedTop.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"top"));return u}(),e=function(){var e,t,o,u;for(o=$(config.fixedBottom.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"bottom"));return u}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),c=r.scrollTop(),s=c,p=void 0,l=void 0,v?(l=measureObstruction(),p=0):(l={top:0,bottom:0},p=c),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+p,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==c?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e){var t,n;return t=$(e),n=viewportSelector().seekUp(t),n.length||u.error("Could not find viewport for %o",t),n},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,u,i;for(u={},o=config.viewports,t=0,r=o.length;r>t;t++)i=o[t],e=$(i),e.length&&(n=i,i===document&&(n="document"),u[n]=e.scrollTop());return u},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return u.error("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,destroy,emitFragmentInserted,emitFragmentKept,extract,findKeepPlan,findOldFragment,first,hello,isRealElement,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,resolveSelector,setSource,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):u.error("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),a=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(i={url:t,method:n.method,data:n.data,target:a,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},o=up.ajax(i),o.done(function(e,r,o){return processResponse(!0,a,t,i,o,n)}),o.fail(function(e){return processResponse(!1,r,t,i,e,n)}),o):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,p;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),i.title=u.option(u.titleFromXhr(o),i.title),a="GET"===i.method,(p=u.locationFromXhr(o))?(n=p,e&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i,a,s,l,p,c;for(n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0}),p=resolveSelector(e,n.origin),l=parseResponse(t,n),n.title||(n.title=l.title()),n.saveScroll!==!1&&up.layout.saveScroll(),"function"==typeof n.beforeSwap&&n.beforeSwap(),r=[],updateHistory(n),a=parseImplantSteps(p,n),o=0,i=a.length;i>o;o++)c=a[o],up.log.group("Updating %s",c.selector,function(){var e,t,o,u;return t=findOldFragment(c.selector,n),e=null!=(u=l.find(c.selector))?u.first():void 0,t&&e?(o=swapElements(t,e,c.pseudoClass,c.transition,n),r.push(o)):void 0});return"function"==typeof n.afterSwap&&n.afterSwap(),(s=up.motion).when.apply(s,r)})},findOldFragment=function(e,t){return first(".up-popup "+e)||first(".up-modal "+e)||first(e)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n;return t.requireMatch?(n="Could not find selector %s in current body HTML","#"===n[0]&&(n+=" (avoid using IDs)"),u.error(n,e)):void 0},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},find:function(r){var o;return(o=$.find(r,n)[0])?$(o):t.requireMatch?u.error("Could not find selector %s in response %o",r,e):void 0}}},updateHistory=function(e){return e.history?(e.title&&(document.title=e.title),up.history[e.historyMethod](e.history)):void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrap('<span class="up-insertion"></span>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)}),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,p,c;if(a=[],n.keep)for(c=e.find("[up-keep]"),i=0,l=c.length;l>i;i++)s=c[i],r=$(s),(p=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),p.$newElement.replaceWith(r),a.push(p));
2
- return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)p=r[o],c=p.match(/^(.+?)(?:\:(before|after))?$/),c||u.error('Could not parse selector atom "%s"',p),e=c[1],"html"===e&&(e="body"),s=c[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e){var t,n,r,o,i,a;for(o=void 0,o=u.isString(e)?$(e).get():e,n=void 0,i=0,a=o.length;a>i;i++)if(r=o[i],t=$(r),isRealElement(t)){n=t;break}return n},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),u.isPresent(t.url)&&up.history.push(t.url),u.isPresent(t.title)&&(document.title=t.title),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("ready",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){up.motion=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$;return T=up.util,u={},s={},x={},l={},a=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),y=function(){return u=T.copy(s),x=T.copy(l),a.reset()},m=function(){return a.enabled&&up.browser.canCssTransition()},n=function(t,o,u){var a;return a=e(t),f(a),u=r(u),"none"===o||o===!1?v():T.isFunction(o)?i(o(a,u),o):T.isString(o)?n(a,c(o),u):T.isHash(o)?m()?T.cssAnimate(a,o,u):(a.css(o),T.resolvedDeferred()):T.error("Unknown animation type for %o",o)},r=function(e,t){var n;return null==t&&(t=null),e=T.options(e),n={},n.easing=T.option(e.easing,null!=t?t.attr("up-easing"):void 0,a.easing),n.duration=Number(T.option(e.duration,null!=t?t.attr("up-duration"):void 0,a.duration)),n.delay=Number(T.option(e.delay,null!=t?t.attr("up-delay"):void 0,a.delay)),n},c=function(e){return u[e]||T.error("Unknown animation %o",e)},t="up-ghosting-promise",$=function(e,n,r,o){var u,i,a,s,l,p,c;return s=void 0,i=void 0,l=void 0,a=void 0,u=up.layout.viewportOf(e),T.temporaryCss(n,{display:"none"},function(){return s=g(e,u),s.$ghost.addClass("up-destroying"),s.$bounds.addClass("up-destroying"),l=u.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(n,r),i=g(n,u),a=u.scrollTop()}),s.moveTop(a-l),e.hide(),c=T.temporaryCss(n,{opacity:"0"}),p=o(s.$ghost,i.$ghost),e.data(t,p),n.data(t,p),p.then(function(){return e.removeData(t),n.removeData(t),c(),s.$bounds.remove(),i.$bounds.remove()}),p},f=function(t){return e(t).each(function(){var t;return t=e(this),T.finishCssAnimate(t),d(t)})},d=function(e){var n;return(n=e.data(t))?(up.puts("Canceling existing ghosting on %o",e),"function"==typeof n.resolve?n.resolve():void 0):void 0},i=function(e,t){return T.isDeferred(e)?e:T.error("Did not return a promise with .then and .resolve methods: %o",t)},h=function(t,o,a,s){var l,c;return"none"===a&&(a=!1),c=e(t),l=e(o),p(c,a),p(l,a),up.log.group(a?"Morphing %o to %o (using %o)":void 0,t,o,a,function(){var e,t,o,p;return t=T.only(s,"reveal","restoreScroll","source"),t=T.extend(t,r(s)),m()?(f(c),f(l),a?(e=u[a])?(w(c,l,t),n(l,e,t)):(p=T.presence(a,T.isFunction)||x[a])?$(c,l,t,function(e,n){var r;return r=p(e,n,t),i(r,a)}):T.isString(a)&&a.indexOf("/")>=0?(o=a.split("/"),p=function(e,t,r){return b(n(e,o[0],r),n(t,o[1],r))},h(c,l,p,t)):T.error("Unknown transition %o",a):w(c,l,t)):w(c,l,t)})},p=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),T.error("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},w=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},g=function(t,n){var r,o,u,i,a,s,l,p,c;for(i=T.measure(t,{relative:!0,inner:!0}),u=t.clone(),u.find("script").remove(),u.css({position:"static"===t.css("position")?"static":"relative",top:"",right:"",bottom:"",left:"",width:"100%",height:"100%"}),u.addClass("up-ghost"),r=e('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(i),c=i.top,p=function(e){return 0!==e?(c+=e,r.css({top:c})):void 0},u.appendTo(r),r.insertBefore(t),p(t.offset().top-u.offset().top),o=up.layout.fixedChildren(u),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:u,$bounds:r,moveTop:p}},S=function(e,t){return x[e]=t},o=function(e,t){return u[e]=t},k=function(){return s=T.copy(u),l=T.copy(x)},b=T.resolvableWhen,v=T.resolvedDeferred,o("none",v),o("fade-in",function(e,t){return e.css({opacity:0}),n(e,{opacity:1},t)}),o("fade-out",function(e,t){return e.css({opacity:1}),n(e,{opacity:0},t)}),o("move-to-top",function(e,t){var r,o;return r=T.measure(e),o=r.top+r.height,e.css({"margin-top":"0px"}),n(e,{"margin-top":"-"+o+"px"},t)}),o("move-from-top",function(e,t){var r,o;return r=T.measure(e),o=r.top+r.height,e.css({"margin-top":"-"+o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-bottom",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().height-r.top,e.css({"margin-top":"0px"}),n(e,{"margin-top":o+"px"},t)}),o("move-from-bottom",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().height-r.top,e.css({"margin-top":o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-left",function(e,t){var r,o;return r=T.measure(e),o=r.left+r.width,e.css({"margin-left":"0px"}),n(e,{"margin-left":"-"+o+"px"},t)}),o("move-from-left",function(e,t){var r,o;return r=T.measure(e),o=r.left+r.width,e.css({"margin-left":"-"+o+"px"}),n(e,{"margin-left":"0px"},t)}),o("move-to-right",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().width-r.left,e.css({"margin-left":"0px"}),n(e,{"margin-left":o+"px"},t)}),o("move-from-right",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().width-r.left,e.css({"margin-left":o+"px"}),n(e,{"margin-left":"0px"},t)}),o("roll-down",function(e,t){var r,o;return r=e.height(),o=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n(e,{height:r+"px"},t).then(o)}),S("none",v),S("move-left",function(e,t,r){return b(n(e,"move-to-left",r),n(t,"move-from-right",r))}),S("move-right",function(e,t,r){return b(n(e,"move-to-right",r),n(t,"move-from-left",r))}),S("move-up",function(e,t,r){return b(n(e,"move-to-top",r),n(t,"move-from-bottom",r))}),S("move-down",function(e,t,r){return b(n(e,"move-to-bottom",r),n(t,"move-from-top",r))}),S("cross-fade",function(e,t,r){return b(n(e,"fade-out",r),n(t,"fade-in",r))}),up.on("up:framework:boot",k),up.on("up:framework:reset",y),{morph:h,animate:n,animateOptions:r,finish:f,transition:S,animation:o,config:a,isEnabled:m,defaults:function(){return T.error("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:v,when:b,prependCopy:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$,P,E,C,D,A,U,O,F,R;return R=up.util,n=void 0,P=void 0,i=void 0,x=void 0,a=void 0,C=[],m=R.config({busyDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),l=function(e){return S(e),[e.url,e.method,e.data,e.target].join("|")},s=R.cache({size:function(){return m.cacheSize},expiry:function(){return m.cacheExpiry},key:l}),h=function(e){var t,n,r,o,u,i,a;for(e=S(e),n=[e],"html"!==e.target&&(i=R.merge(e,{target:"html"}),n.push(i),"body"!==e.target&&(u=R.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],a=s.get(t))return a},O=s.set,D=s.remove,d=s.clear,c=function(){return clearTimeout(P),P=null},p=function(){return clearTimeout(i),i=null},A=function(){return n=null,c(),p(),x=0,m.reset(),a=!1,s.clear(),C=[]},A(),o=s.alias,S=function(e){return e._normalized||(e.method=R.normalizeMethod(e.method),e.url&&(e.url=R.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(e){var t,n,r,o,u;return t=e.cache===!0,n=e.cache===!1,u=R.only(e,"url","method","data","target","headers","_normalized"),u=S(u),r=!0,g(u)||t?(o=h(u))&&!n?(up.puts("Re-using cached response for %s %s",u.method,u.url),r="pending"===o.state()):(o=w(u),O(u,o),o.fail(function(){return D(u)})):(d(),o=w(u)),r&&!e.preload&&(k(),o.always(b)),console.groupEnd(),o},v=function(){return 0===x},u=function(){return x>0},k=function(){var e,t;return t=v(),x+=1,t?(e=function(){return u()?(up.emit("up:proxy:busy",{message:"Proxy is busy"}),a=!0):void 0},m.busyDelay>0?i=setTimeout(e,m.busyDelay):e()):void 0},b=function(){return x-=1,v()&&a?(up.emit("up:proxy:idle",{message:"Proxy is idle"}),a=!1):void 0},w=function(e){return x<m.maxRequests?y(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},C.push(r),n.promise()},y=function(e){var n;return up.emit("up:proxy:load",R.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=R.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,e.data=R.requestDataAsArray(e.data),R.contains(m.wrapMethods,e.method)&&(e.data.push({name:m.wrapMethodParam,value:e.method}),e.method="POST"),n=t.ajax(e),n.done(function(t,n,r){return U(e,r)}),n.fail(function(t){return U(e,t)}),n},U=function(e,t){var n;return up.emit("up:proxy:received",R.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),T()},T=function(){var t,n;return(t=C.shift())?(n=y(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)})):void 0},g=function(e){return S(e),R.contains(m.safeMethods,e.method)},f=function(e){var t,r;return r=parseInt(R.presentAttr(e,"up-delay"))||m.preloadDelay,e.is(n)?void 0:(n=e,c(),t=function(){return $(e),n=null},F(t,r))},F=function(e,t){return P=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=R.options(n),o=up.link.followMethod(r,n),g({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),R.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:f(t)}),up.on("up:framework:reset",A),{preload:$,ajax:r,get:h,alias:o,clear:d,remove:D,idle:v,busy:u,config:m,defaults:function(){return R.error("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.confirm(t.confirm).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(){},onAction=function(e,t){return followVariantSelectors.push(e),up.on("click","a"+e+", [up-href]"+e,function(e,n){return shouldProcessLinkEvent(e,n)?n.is("[up-instant]")?e.preventDefault():(e.preventDefault(),t(n)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,n){return shouldProcessLinkEvent(e,n)?(e.preventDefault(),t(n)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.compiler("[up-expand]",function(e){var t,n,r,o,i,a,s,l,p,c;if(t=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(t=t.filter(p)),i=t.get(0)){for(c=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(c)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),up.compiler("[up-dash]",function(e){var t,n;return n=u.castedAttr(e,"up-dash"),t={"up-preload":"true","up-instant":"true"},n===!0?t["up-follow"]="":t["up-target"]=n,u.setMissingAttrs(e,t),e.removeAttr("up-dash")}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForToggle,observe,observeForm,reset,resolveValidateTarget,submit,toggleTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a;return n=$(e).closest("form"),t=u.options(t),i=u.option(t.target,n.attr("up-target"),"body"),a=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.data=n.serializeArray(),t=u.merge(t,up.motion.animateOptions(t,n)),r=n.find("input[type=file]").length,t.validate&&(t.headers||(t.headers={}),t.headers["X-Up-Validate"]=t.validate,r)?u.unresolvablePromise():(n.addClass("up-active"),r||!up.browser.canPushState()&&t.history!==!1?(n.get(0).submit(),u.unresolvablePromise()):(o=up.replace(i,a,t),o.always(function(){return n.removeClass("up-active")}),o))},observe=function(){var $element,args,callback,callbackArg,callbackPromise,callbackTimer,changeEvents,check,clearTimer,delay,knownValue,nextCallback,options,rawCallback,runNextCallback,selectorOrElement;return selectorOrElement=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===args.length&&(callbackArg=args[0]),args.length>1&&(options=u.options(args[0]),callbackArg=args[1]),$element=$(selectorOrElement),options=u.options(options),delay=u.option($element.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),callback=null,u.isGiven(options.change)&&u.error("up.observe now takes the change callback as the last argument"),rawCallback=u.option(u.presentAttr($element,"op-observe"),callbackArg),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||u.error("up.observe: No change callback given"),$element.is("form")?observeForm($element,options,callback):(knownValue=null,callbackTimer=null,callbackPromise=u.resolvedPromise(),nextCallback=null,runNextCallback=function(){var e;return nextCallback?(e=nextCallback(),nextCallback=null,e):void 0},check=function(){var e,t,n;return n=$element.val(),t=u.isNull(knownValue),knownValue===n||(knownValue=n,t)?void 0:(clearTimer(),nextCallback=function(){return callback.apply($element.get(0),[n,$element])},e=function(){return callbackPromise.then(function(){var e;return e=runNextCallback(),callbackPromise=u.isPromise(e)?e:u.resolvedPromise()})},0===delay?e():setTimeout(e,delay))},clearTimer=function(){return clearTimeout(callbackTimer)},changeEvents=up.browser.canInputEvent()?"input change":"input change keypress paste cut click propertychange",$element.on(changeEvents,check),check(),function(){return $element.off(changeEvents,check),clearTimer()})},observeForm=function(e,t,n){var r,o;return r=u.multiSelector(config.fields).find(e),o=u.map(r,function(e){return observe(e,n)}),function(){var e,t,n,r;for(r=[],t=0,n=o.length;n>t;t++)e=o[t],r.push(e());return r}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),t.addClass("up-active"),submit(n).always(function(){return t.removeClass("up-active")})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&u.error("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForToggle=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForToggle=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},toggleTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-toggle")),u.isPresent(o)||u.error("No toggle target given for %o",n.get(0)),r=currentValuesForToggle(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return e.preventDefault(),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-toggle]",function(e,t){return console.log("CHANGE EVENT"),toggleTargets(t)}),up.compiler("[up-toggle]",function(e){return toggleTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,toggleTargets:toggleTargets}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),function(){up.popup=function($){var attach,autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,ensureInViewport,isOpen,reset,setPosition,u;return u=up.util,currentUrl=void 0,coveredUrl=function(){return $(".up-popup").attr("up-covered-url")},config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",position:"bottom-right",history:!1}),reset=function(){return close({animation:!1}),config.reset()},setPosition=function(e,t){var n,r,o;return o=u.measure(e,{full:!0}),r=function(){switch(t){case"bottom-right":return{right:o.right,top:o.top+o.height};case"bottom-left":return{left:o.left,top:o.top+o.height};case"top-right":return{right:o.right,bottom:o.top};case"top-left":return{left:o.left,bottom:o.top};default:return u.error("Unknown position option '%s'",t)}}(),n=$(".up-popup"),n.attr("up-position",t),n.css(r),ensureInViewport(n)},ensureInViewport=function(e){var t,n,r,o,i,a,s;if(n=u.measure(e,{full:!0}),r=null,o=null,n.right<0&&(r=-n.right),n.bottom<0&&(o=-n.bottom),n.left<0&&(r=n.left),n.top<0&&(o=n.top),r&&((i=parseInt(e.css("left")))?e.css("left",i-r):(a=parseInt(e.css("right")))&&e.css("right",a+r)),o){if(s=parseInt(e.css("top")))return e.css("top",s-o);if(t=parseInt(e.css("bottom")))return e.css("bottom",t+o)}},discardHistory=function(){var e;return e=$(".up-popup"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n;return n=u.$createElementFromSelector(".up-popup"),t.sticky&&n.attr("up-sticky",""),n.attr("up-covered-url",up.browser.url()),n.attr("up-covered-title",document.title),u.$createPlaceholder(e,n),n.appendTo(document.body),n},isOpen=function(){return $(".up-popup").length>0},attach=function(e,t){var n,r,o,i;return n=$(e),n.length||u.error("Cannot attach popup to non-existing element %o",e),t=u.options(t),i=u.option(t.url,n.attr("href")),o=u.option(t.target,n.attr("up-popup"),"body"),t.position=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky")),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),r=up.motion.animateOptions(t,n),up.browser.confirm(t.confirm).then(function(){var e,a;return up.bus.nobodyPrevents("up:popup:open",{url:i,message:"Opening popup"})?(a=isOpen(),a&&close({animation:!1}),t.beforeSwap=function(){return createFrame(o,t)},e=up.replace(o,i,u.merge(t,{animation:!1})),e=e.then(function(){return setPosition(n,t.position)}),a||(e=e.then(function(){return up.animate($(".up-popup"),t.animation,r)})),e=e.then(function(){return up.emit("up:popup:opened",{message:"Popup opened"})})):u.unresolvableDeferred()})},close=function(e){var t,n;return t=$(".up-popup"),t.length?up.bus.nobodyPrevents("up:popup:close",{$element:t})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n.then(function(){return up.emit("up:popup:closed",{message:"Popup closed"})}),n):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-popup").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?close():attach(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-popup").length||t.closest("[up-popup]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-popup").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attach,close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.popup.defaults(...) no longer exists. Set values on he up.popup.config property instead.")},contains:contains,open:function(){return up.error("up.popup.open no longer exists. Please use up.popup.attach instead.")},source:function(){return up.error("up.popup.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,follow,isOpen,open,reset,shiftElements,templateHtml,u,unshiftElements,unshifters,visit;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",closeLabel:"\xd7",template:function(e){return'<div class="up-modal">\n <div class="up-modal-dialog">\n <div class="up-modal-close" up-close>'+e.closeLabel+'</div>\n <div class="up-modal-content"></div>\n </div>\n</div>'}}),currentUrl=void 0,coveredUrl=function(){return $(".up-modal").attr("up-covered-url")},reset=function(){return close({animation:!1}),currentUrl=void 0,config.reset()},templateHtml=function(){var e;return e=config.template,u.isFunction(e)?e(config):e},discardHistory=function(){var e;return e=$(".up-modal"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n,r,o;return shiftElements(),o=$(templateHtml()),t.sticky&&o.attr("up-sticky",""),o.attr("up-covered-url",up.browser.url()),o.attr("up-covered-title",document.title),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),o},unshifters=[],shiftElements=function(){var e,t,n,r;return n=u.scrollbarWidth(),e=parseInt($("body").css("padding-right")),t=n+e,r=u.temporaryCss($("body"),{"padding-right":t+"px","overflow-y":"hidden"}),unshifters.push(r),up.layout.anchoredRight().each(function(){var e,t,r,o;return e=$(this),t=parseInt(e.css("right")),r=n+t,o=u.temporaryCss(e,{right:r}),unshifters.push(o)})},unshiftElements=function(){var e,t;for(e=[];t=unshifters.pop();)e.push(t());return e},isOpen=function(){return $(".up-modal").length>0},follow=function(e,t){return t=u.options(t),t.$link=$(e),open(t)},visit=function(e,t){return t=u.options(t),t.url=e,open(t)},open=function(e){var t,n,r,o;return e=u.options(e),t=u.option(e.$link,u.nullJQuery()),o=u.option(e.url,t.attr("up-href"),t.attr("href")),r=u.option(e.target,t.attr("up-modal"),"body"),e.width=u.option(e.width,t.attr("up-width"),config.width),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),config.maxWidth),e.height=u.option(e.height,t.attr("up-height"),config.height),e.animation=u.option(e.animation,t.attr("up-animation"),config.openAnimation),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky")),e.history=up.browser.canPushState()?u.option(e.history,u.castedAttr(t,"up-history"),config.history):!1,e.confirm=u.option(e.confirm,t.attr("up-confirm")),n=up.motion.animateOptions(e,t),up.browser.confirm(e.confirm).then(function(){var t,i;return up.bus.nobodyPrevents("up:modal:open",{url:o,message:"Opening modal"})?(i=isOpen(),i&&close({animation:!1}),e.beforeSwap=function(){return createFrame(r,e)},t=up.replace(r,o,u.merge(e,{animation:!1})),i||(t=t.then(function(){return up.animate($(".up-modal"),e.animation,n)})),t=t.then(function(){return up.emit("up:modal:opened",{message:"Modal opened"})})):u.unresolvablePromise()})},close=function(e){var t,n;return t=$(".up-modal"),t.length?up.bus.nobodyPrevents("up:modal:close",{$element:t,message:"Closing modal"})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n=n.then(function(){return unshiftElements(),up.emit("up:modal:closed",{message:"Modal closed"})})):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-modal").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},up.link.onAction("[up-modal]",function(e){return follow(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(!up.popup.contains(t)&&contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-modal").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,open:function(){return up.error("up.modal.open no longer exists. Please use either up.modal.follow or up.modal.visit.")},close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.modal.defaults(...) no longer exists. Set values on he up.modal.config property instead.")},contains:contains,source:function(){return up.error("up.modal.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,u,i,a;return a=up.util,r=a.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out"}),u=function(){return r.reset()},i=function(e,t,n){var r,o,u;return o=a.measure(e),u=a.measure(t),r=function(){switch(n){case"top":return{left:o.left+.5*(o.width-u.width),top:o.top-u.height};case"bottom":return{left:o.left+.5*(o.width-u.width),top:o.top+o.height};default:return a.error("Unknown position option '%s'",n)}}(),t.attr("up-position",n),t.css(r)},o=function(e){var t;return t=a.$createElementFromSelector(".up-tooltip"),a.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),t},t=function(t,u){var s,l,p,c,f,d,m;return null==u&&(u={}),s=e(t),f=a.option(u.html,s.attr("up-tooltip-html")),m=a.option(u.text,s.attr("up-tooltip")),d=a.option(u.position,s.attr("up-position"),r.position),c=a.option(u.animation,a.castedAttr(s,"up-animation"),r.openAnimation),p=up.motion.animateOptions(u,s),n(),l=o({text:m,html:f}),i(s,l,d),up.animate(l,c,p)},n=function(t){var n;return n=e(".up-tooltip"),n.length?(t=a.options(t,{animation:r.closeAnimation}),t=a.merge(t,up.motion.animateOptions(t)),up.destroy(n,t)):void 0
3
- },up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseover",function(){return t(e)}),e.on("mouseout",function(){return n()})}),up.on("click","body",function(){return n()}),up.on("up:framework:reset",n),up.bus.onEscape(function(){return n()}),up.on("up:framework:reset",u),{attach:t,close:n,open:function(){return a.error("up.tooltip.open no longer exists. Use up.tooltip.attach instead.")}}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g;return h=up.util,i=h.config({currentClasses:["up-current"]}),c=function(){return i.reset()},a=function(){var e;return e=i.currentClasses,e=e.concat(["up-current"]),e=h.uniq(e),e.join(" ")},t="up-active",n=["a","[up-href]","[up-alias]"],o=n.join(", "),u=function(){var e,t,r;for(r=[],e=0,t=n.length;t>e;e++)m=n[e],r.push(m+"[up-instant]");return r}().join(", "),r="."+t,p=function(e){return h.isPresent(e)?h.normalizeUrl(e,{search:!1,stripTrailingSlash:!0}):void 0},d=function(e){var t,n,r,o,u,i,a,s,l,c;for(s=[],i=["href","up-href","up-alias"],n=0,o=i.length;o>n;n++)if(t=i[n],l=h.presentAttr(e,t))for(c="up-alias"===t?l.split(" "):[l],r=0,u=c.length;u>r;r++)a=c[r],"#"!==a&&(a=p(a),s.push(a));return s},g=function(e){var t,n,r,o;return e=h.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return h.contains(e,t)},n=function(t){return h.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return h.detect(e,r)},{matchesAny:o}},l=function(){var t,n;return t=g([p(up.browser.url()),p(up.modal.url()),p(up.modal.coveredUrl()),p(up.popup.url()),p(up.popup.coveredUrl())]),n=a(),h.each(e(o),function(r){var o,u;return o=e(r),u=d(o),t.matchesAny(u)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},f=function(e){return v(),e=s(e),e.addClass(t)},s=function(e){return h.presence(e.parents(o))||e},v=function(){return e(r).removeClass(t)},up.on("click",o,function(e,t){return h.isUnmodifiedMouseEvent(e)&&!t.is("[up-instant]")?f(t):void 0}),up.on("mousedown",u,function(e,t){return h.isUnmodifiedMouseEvent(e)?f(t):void 0}),up.on("up:fragment:inserted",function(){return v(),l()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?l():void 0}),up.on("up:framework:reset",c),{config:i,defaults:function(){return h.error("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")}}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,u;return t="data-"+e,u="up-"+e,up.compiler("["+t+"]",function(e){var i;return n()&&o(e)?(i={},i[u]=e.attr(t),r.setMissingAttrs(e,i),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
1
+ (function(){window.up={}}).call(this),function(){var e=[].slice;up.util=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T,P,E,D,C,A,U,O,F,R,M,j,K,z,L,I,W,q,N,H,_,Q,V,J,B,X,G,Y,Z,et,tt,nt,rt,ot,ut,it,at,st,lt,ct,pt,ft,dt,mt,ht,vt,gt,yt,bt,wt,kt,St,xt,$t,Tt,Pt,Et,Dt,Ct,At,Ut,Ot,Ft,Rt,Mt,jt,Kt;return Z=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},H=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},it=function(e,t){var n,r,o;return n=dt(e),r=n.protocol+"//"+n.hostname,H(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},dt=function(e){var n;return n=null,_(e)?(n=t("<a>").attr({href:e}).get(0),A(n.hostname)&&(n.href=n.href)):n=Ft(e),n},ut=function(e){return e?e.toUpperCase():"GET"},n=function(e){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],i=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",u=[],p=null,d=0,h=i.length;h>d;d++)switch(s=i[d],s[0]){case".":u.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,u.length&&(l+=' class="'+u.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",n=t(l),r&&n.appendTo(r),0===f&&(o=n),r=n}return o},h=function(e,t){var n;return n=document.createElement(e),q(t)&&(n.innerHTML=t),n},r=function(e,t){var r;return null==t&&(t=document.body),r=n(e),r.addClass("up-placeholder"),r.appendTo(t),r},Pt=function(e){var n,r,o,u,i,a,s,l,c;if(n=t(e),l=void 0,up.puts("Creating selector from element %o",n.get(0)),c=ht(n.attr("up-id")))l="[up-id='"+c+"']";else if(u=ht(n.attr("id")))l="#"+u;else if(s=ht(n.attr("name")))l="[name='"+s+"']";else if(r=ht(ot(n)))for(l="",o=0,a=r.length;a>o;o++)i=r[o],l+="."+i;else l=n.prop("tagName").toLowerCase();return l},ot=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Tt(n,function(e){return q(e)&&!e.match(/^up-/)})},v=function(e){var t,n,r,o,u,i,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},i=function(e){return"</"+e+">"},t="(?:.|\\n)*?",u=function(e){return"("+e+")"},f=new RegExp(l("head")+t+l("title")+u(t)+i("title")+t+i("body"),"i"),o=new RegExp(l("body")+u(t)+i("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=h("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=h("head"),s.appendChild(a),c=h("title",p[1]),a.appendChild(c)),s):h("div",e)},x=t.extend,Ot=t.trim,b=function(e,t){var n,r,o,u,i;for(i=[],r=n=0,u=e.length;u>n;r=++n)o=e[r],i.push(t(o,r));return i},G=b,Ct=function(e,t){var n,r,o,u;for(u=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)u.push(t(r));return u},L=function(e){return null===e},Q=function(e){return void 0===e},O=function(e){return!Q(e)},z=function(e){return Q(e)||L(e)},M=function(e){return!z(e)},A=function(e){return z(e)||W(e)&&0===Object.keys(e).length||0===e.length},ht=function(e,t){return null==t&&(t=q),t(e)?e:void 0},q=function(e){return!A(e)},R=function(e){return"function"==typeof e},_=function(e){return"string"==typeof e},I=function(e){return"number"==typeof e},j=function(e){return"object"==typeof e&&!!e},W=function(e){return j(e)||"function"==typeof e},F=function(e){return!(!e||1!==e.nodeType)},K=function(e){return e instanceof jQuery},N=function(e){return W(e)&&R(e.then)},U=function(e){return N(e)&&R(e.resolve)},C=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ut=function(e){return Array.prototype.slice.call(e)},d=function(e){return C(e)?e.slice():x({},e)},Ft=function(e){return K(e)?e.get(0):e},et=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],x.apply(null,[{}].concat(e.call(t)))},ft=function(e,t){var n,r,o,u;if(o=e?d(e):{},t)for(r in t)n=t[r],u=o[r],M(u)?W(n)&&W(u)&&(o[r]=ft(u,n)):o[r]=n;return o},pt=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],y(t,M)},y=function(e,t){var n,r,o,u;for(u=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=n;break}return u},i=function(e,t){var n,r,o,u;for(u=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=!0;break}return u},u=function(e,t){var n,r,o,u;for(u=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){u=!1;break}return u},c=function(e){return Tt(e,M)},Rt=function(e){var t;return t={},Tt(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},Tt=function(e,t){var n;return n=[],b(e,function(e){return t(e)?n.push(e):void 0}),n},gt=function(e,t){return Tt(e,function(e){return!t(e)})},D=function(e,t){return Tt(e,function(e){return f(t,e)})},vt=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,u;for(u=[],e=0,o=r.length;o>e;e++)n=r[e],u.push(t.attr(n));return u}(),y(o,q)},rt=function(e){return setTimeout(e,0)},B=function(e){return e[e.length-1]},l=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},$t=Z(function(){var e,n,r;return e=t("<div>").css({position:"absolute",top:"0",left:"0",width:"50px",height:"50px",overflowY:"scroll"}),e.appendTo(document.body),n=e.get(0),r=n.offsetWidth-n.clientWidth,e.remove(),r}),lt=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Dt=function(e,t,n){var r,o;return o=e.css(Object.keys(t)),e.css(t),r=function(){return e.css(o)},n?(n(),r()):lt(r)},E=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),A(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},g=function(e,n,r){var u,i,a,s,l,c;return u=t(e),r=ft(r,{duration:300,delay:0,easing:"ease"}),i=t.Deferred(),s={"transition-property":Object.keys(n).join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},l=E(u),c=Dt(u,s),u.css(n),i.then(l),i.then(c),u.data(o,i),i.then(function(){return u.removeData(o)}),a=setTimeout(function(){return i.resolve()},r.duration+r.delay),i.then(function(){return clearTimeout(a)}),i},o="up-animation-deferred",T=function(e){return t(e).each(function(){var e;return(e=mt(this,o))?e.resolve():void 0})},Y=function(e,n){var r,o,u,i,a,s;return n=ft(n,{relative:!1,inner:!1,full:!1}),n.relative?n.relative===!0?i=e.position():(r=t(n.relative),a=e.offset(),r.is(document)?i=a:(u=r.offset(),i={left:a.left-u.left,top:a.top-u.top})):i=e.offset(),o={left:i.left,top:i.top},n.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),n.full&&(s=l(),o.right=s.width-(o.left+o.width),o.bottom=s.height-(o.top+o.height)),o},m=function(e,t){var n,r,o,u,i;for(u=e.get(0).attributes,i=[],r=0,o=u.length;o>r;r++)n=u[r],i.push(n.specified?t.attr(n.name,n.value):void 0);return i},$=function(e,t){return e.find(t).addBack(t)},k=function(e){return 27===e.keyCode},f=function(e,t){return e.indexOf(t)>=0},s=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},X=function(e){return e.getResponseHeader("X-Up-Location")},At=function(e){return e.getResponseHeader("X-Up-Title")},tt=function(e){return e.getResponseHeader("X-Up-Method")},ct=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=u.length;r>n;n++)i=u[n],o.hasOwnProperty(i)&&(t[i]=o[i]);return t},S=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t=d(o),n=0,r=u.length;r>n;n++)i=u[n],delete t[i];return t},V=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},J=function(e){var t;return t=Q(e.button)||0===e.button,t&&V(e)},St=function(){var e;return e=t.Deferred(),e.resolve(),e},xt=function(){return St().promise()},Mt=function(){return t.Deferred()},jt=function(){return Mt().promise()},at=function(){return t()},kt=function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],r=t.when.apply(t,[St()].concat(e.call(n))),r.resolve=Z(function(){return b(n,function(e){return e.resolve()})}),r},Et=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],r.push(z(e.attr(n))?e.attr(n,o):void 0);return r},yt=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},nt=function(e){var n,r,o,u,a,s,l;for(a={},l=[],r=[],o=0,u=e.length;u>o;o++)s=e[o],_(s)?l.push(s):r.push(s);return a.parsed=r,l.length&&(n=l.join(", "),a.parsed.push(n)),a.select=function(){return a.find(void 0)},a.find=function(e){var n,r,o,u,i,s;for(r=at(),i=a.parsed,o=0,u=i.length;u>o;o++)s=i[o],n=e?e.find(s):t(s),r=r.add(n);return r},a.findWithSelf=function(e){var t;return t=a.find(e),a.doesMatch(e)&&(t=t.add(e)),t},a.doesMatch=function(e){var n;return n=t(e),i(a.parsed,function(e){return n.is(e)})},a.seekUp=function(e){var n,r,o;for(o=t(e),n=o,r=void 0;n.length;){if(a.doesMatch(n)){r=n;break}n=n.parent()}return r||at()},a},a=function(t){var n,r,o,u,i,a,s,l,c,p,f,m;return null==t&&(t={}),f=void 0,r=function(){return f={}},r(),s=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.log?(n[0]="["+t.log+"] "+n[0],up.puts.apply(up,n)):void 0},a=function(){return Object.keys(f)},l=function(){return z(t.size)?void 0:R(t.size)?t.size():I(t.size)?t.size:w("Invalid size config: %o",t.size)},o=function(){return z(t.expiry)?void 0:R(t.expiry)?t.expiry():I(t.expiry)?t.expiry:w("Invalid expiry config: %o",t.expiry)},c=function(e){return t.key?t.key(e):e.toString()},Ot=function(){var e,t,n,r;return r=d(a()),n=l(),n&&r.length>n&&(e=null,t=null,b(r,function(n){var r,o;return r=f[n],o=r.timestamp,!t||t>o?(e=n,t=o):void 0}),e)?delete f[e]:void 0},n=function(e,t){var n;return n=u(e,{silent:!0}),O(n)?p(t,n):void 0},m=function(){return(new Date).valueOf()},p=function(e,t){var n;return n=c(e),f[n]={timestamp:m(),value:t}},yt=function(e){var t;return t=c(e),delete f[t]},i=function(e){var t,n;return t=o(),t?(n=m()-e.timestamp,n<o()):!0},u=function(e,t){var n,r;return null==t&&(t={}),r=c(e),(n=f[r])?i(n)?(t.silent||s("Cache hit for '%s'",e),n.value):(t.silent||s("Discarding stale cache entry for '%s'",e),void yt(e)):void(t.silent||s("Cache miss for '%s'",e))},{alias:n,get:u,set:p,remove:yt,clear:r,keys:a}},p=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){return x(t,e)},t.reset(),Object.preventExtensions(t),t},Kt=function(e){var t,n;return e=Ft(e),t=e.parentNode,n=Ut(e.childNodes),b(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},st=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},P=function(e,n){var r,o,u,i;return r=t(e),o=st(r),u=r.position(),i=o.offset(),r.css({position:"absolute",left:u.left-i.left,top:u.top-i.top+n.scrollTop(),right:"",bottom:""})},bt=function(e){var t,n,r,o,u,i,a;for(i=wt(e),t=[],a=i.split("&"),n=0,r=a.length;r>n;n++)u=a[n],q(u)&&(o=u.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},wt=function(e){var n;return e?(n=t.param(e),n=n.replace(/\+/g,"%20")):""},w=function(){var n,r,o,u,i;throw r=1<=arguments.length?e.call(arguments,0):[],(u=up.log).error.apply(u,r),o=(i=up.browser).sprintf.apply(i,r),n=ht(t(".up-error"))||t('<div class="up-error"></div>').prependTo("body"),n.addClass("up-error"),n.text(o),new Error(o)},mt=function(e,n){var r,o;return r=t(e),o=r.data(n),r.removeData(n),o},{requestDataAsArray:bt,requestDataAsQuery:wt,offsetParent:st,fixedToAbsolute:P,presentAttr:vt,createElement:h,parseUrl:dt,normalizeUrl:it,normalizeMethod:ut,createElementFromHtml:v,$createElementFromSelector:n,$createPlaceholder:r,selectorForElement:Pt,extend:x,copy:d,merge:et,options:ft,option:pt,error:w,each:b,map:G,times:Ct,any:i,all:u,detect:y,select:Tt,reject:gt,intersect:D,compact:c,uniq:Rt,last:B,isNull:L,isDefined:O,isUndefined:Q,isGiven:M,isMissing:z,isPresent:q,isBlank:A,presence:ht,isObject:W,isFunction:R,isString:_,isElement:F,isJQuery:K,isPromise:N,isDeferred:U,isHash:j,isUnmodifiedKeyEvent:V,isUnmodifiedMouseEvent:J,nullJQuery:at,unJQuery:Ft,nextFrame:rt,measure:Y,temporaryCss:Dt,cssAnimate:g,finishCssAnimate:T,forceCompositing:E,escapePressed:k,copyAttributes:m,findWithSelf:$,contains:f,isArray:C,toArray:Ut,castedAttr:s,locationFromXhr:X,titleFromXhr:At,methodFromXhr:tt,clientSize:l,only:ct,except:S,trim:Ot,unresolvableDeferred:Mt,unresolvablePromise:jt,resolvedPromise:xt,resolvedDeferred:St,resolvableWhen:kt,setMissingAttrs:Et,remove:yt,memoize:Z,scrollbarWidth:$t,config:p,cache:a,unwrapElement:Kt,multiSelector:nt,error:w,pluckData:mt}}($),up.error=up.util.error}.call(this),function(){var e=[].slice;up.log=function(){var t,n,r,o,u,i;return o=function(e){return"\u1d1c\u1d18 "+e},t=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["debug",o(n)].concat(e.call(t))):void 0},u=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["log",o(n)].concat(e.call(t))):void 0},i=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["warn",o(n)].concat(e.call(t))):void 0},r=function(){var t,n,r,u;if(r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!r)return n();(u=up.browser).puts.apply(u,["groupCollapsed",o(r)].concat(e.call(t)));try{return n()}finally{r&&console.groupEnd()}},n=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["error",o(n)].concat(e.call(t))):void 0},{puts:u,debug:t,error:n,warn:i,group:r}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.browser=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b;return y=up.util,m=function(e,n){var r,o,u,i,a;return null==n&&(n={}),i=y.option(n.method,"get").toLowerCase(),"get"===i?(a=y.requestDataAsQuery(n.data),a&&(e=e+"?"+a),location.href=e):(r=t("<form method='post' action='"+e+"'></form>"),o=function(e){var n;return n=t('<input type="hidden">'),n.attr(e.name,e.value),n.appendTo(r)},o({name:up.proxy.config.wrapMethodParam,value:i}),(u=up.rails.csrfField())&&o(u),y.each(y.requestDataAsArray(n.data),o),r.hide().appendTo("body"),r.submit())},v=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],y.isDefined(console[r])||(r="log"),u()?console[r].apply(console,t):(n=g.apply(null,t),console[r](n))},n=/\%[odisf]/g,g=function(){var t,r,o,u;return u=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r=0,o=80,u.replace(n,function(){var e,n;return e=t[r],n=typeof e,"string"===n?(e=e.replace(/\s+/g," "),e.length>o&&(e=e.substr(0,o)+"\u2026"),e='"'+e+'"'):e="undefined"===n?"undefined":"number"===n||"function"===n?e.toString():JSON.stringify(e),e.length>o&&(e=e.substr(0,o)+" \u2026",("object"===n||"function"===n)&&(e+=" }")),r+=1,e})},b=function(){return location.href},c=y.memoize(function(){return y.isUndefined(document.addEventListener)}),p=y.memoize(function(){return c()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),i=y.memoize(function(){return y.isDefined(history.pushState)&&"get"===s()}),r=y.memoize(function(){return"transition"in document.documentElement.style}),o=y.memoize(function(){return"oninput"in document.createElement("input")}),u=y.memoize(function(){return!p()}),f=y.memoize(function(){var e,n,r,o;return o=t.fn.jquery,r=o.split("."),e=parseInt(r[0]),n=parseInt(r[1]),e>=2||1===e&&n>=9}),h=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,y.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},a=function(e){return y.isBlank(e)||a(e)?y.resolvedPromise():y.unresolvablePromise()},s=y.memoize(function(){return(h("_up_request_method")||"get").toLowerCase()}),d=function(){return!c()&&f()},l=function(){return console.group||(console.group=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["group"].concat(e.call(t)))}),console.groupCollapsed||(console.groupCollapsed=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupCollapsed"].concat(e.call(t)))}),console.groupEnd||(console.groupEnd=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupEnd"].concat(e.call(t)))})},{url:b,loadPage:m,confirm:a,canPushState:i,canCssTransition:r,canInputEvent:o,canLogSubstitution:u,isSupported:d,installPolyfills:l,puts:v,sprintf:g}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,emit,emitReset,forgetUpDescription,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||u.error("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return up.emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),up.emit("up:framework:boot",{message:"Booting framework"})):void 0},live("up:framework:boot",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,onEscape:onEscape,emitReset:emitReset,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v;return v=up.util,n="up-destroyable",r="up-destroyer",l=[],d=[],s=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],p.apply(null,[l].concat(e.call(t)))},f=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],p.apply(null,[d].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=v.options(t[0],{priority:0}),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},p=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority<=r.priority;)n+=1;return i.splice(n,0,r)}},o=function(e,t,o){var u,i;return up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,o),e.keep&&(i=v.isString(e.keep)?e.keep:"",t.attr("up-keep",i)),u=e.callback.apply(o,[t,c(t)]),v.isFunction(u)?(t.addClass(n),t.data(r,u)):void 0},a=function(e,n){var r;return n=v.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,u,i,a,c,p;for(c=[d,l],p=[],u=0,i=c.length;i>u;u++)a=c[u],p.push(function(){var u,i,l;for(l=[],u=0,i=a.length;i>u;u++)s=a[u],n=v.findWithSelf(e,s.selector),n=n.filter(function(){var e;return e=t(this),v.all(r,function(t){return 0===e.closest(t).length})}),l.push(n.length?up.log.group(s.isDefault?void 0:"Compiling '%s' on %d element(s)",s.selector,n.length,function(){return s.batch?o(s,n,n.get()):n.each(function(){return o(s,t(this),this)})}):void 0);return l}());return p})},i=function(e){return v.findWithSelf(e,"."+n).each(function(){var e,n;return e=t(this),(n=e.data(r))()})},c=function(e){var n,r;return n=t(e),r=n.attr("up-data"),v.isString(r)&&""!==v.trim(r)?JSON.parse(r):{}},h=function(){var e,t,n;for(n=[],e=0,t=l.length;t>e;e++)s=l[e],n.push(s.isDefault=!0);return n},m=function(){return l=v.select(l,function(e){return e.isDefault})},up.on("up:framework:boot",h),up.on("up:framework:reset",m),{compiler:s,macro:f,compile:a,clean:i,data:c}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro,up.ready=function(){return up.util.error("up.ready no longer exists. Please use up.hello instead.")},up.awaken=function(){return up.util.error("up.awaken no longer exists. Please use up.compiler instead.")}}.call(this),function(){up.history=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,i=void 0,m=function(){return n.reset(),c=void 0,i=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return i&&(c=i,i=void 0),i=e},d=function(e,t){return u("replace",e,t)},p=function(e,t){return up.puts("Current location is now %s",e),u("push",e,t)},u=function(e,n,u){var i,a;return u=v.options(u,{force:!1}),u.force||!o(n)?up.browser.canPushState()?(i=e+"State",a=t(),window.history[i](a,"",n),s(r())):v.error("This browser doesn't support history.pushState"):void 0},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){return up.log.group("History state popped to URL %s",r(),function(){var t;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t)})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(c)?(v.setMissingAttrs(e,{"up-href":c,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return v.error("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:p,replace:d,url:r,previousUrl:function(){return c},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||u.error("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,u;for(o=$(config.fixedTop.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"top"));return u}(),e=function(){var e,t,o,u;for(o=$(config.fixedBottom.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"bottom"));return u}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),p=r.scrollTop(),s=p,c=void 0,l=void 0,v?(l=measureObstruction(),c=0):(l={top:0,bottom:0},c=p),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+c,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==p?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e){var t,n;return t=$(e),n=viewportSelector().seekUp(t),n.length||u.error("Could not find viewport for %o",t),n},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,u,i;for(u={},o=config.viewports,t=0,r=o.length;r>t;t++)i=o[t],e=$(i),e.length&&(n=i,i===document&&(n="document"),u[n]=e.scrollTop());return u},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return u.error("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,destroy,emitFragmentInserted,emitFragmentKept,extract,findKeepPlan,findOldFragment,first,hello,isRealElement,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,resolveSelector,setSource,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):u.error("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),a=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(i={url:t,method:n.method,data:n.data,target:a,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},o=up.ajax(i),o.done(function(e,r,o){return processResponse(!0,a,t,i,o,n)}),o.fail(function(e){return processResponse(!1,r,t,i,e,n)}),o):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,c;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),i.title=u.option(u.titleFromXhr(o),i.title),a="GET"===i.method,(c=u.locationFromXhr(o))?(n=c,e&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i,a,s,l,c,p;for(n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0}),c=resolveSelector(e,n.origin),l=parseResponse(t,n),n.title||(n.title=l.title()),n.saveScroll!==!1&&up.layout.saveScroll(),"function"==typeof n.beforeSwap&&n.beforeSwap(),r=[],updateHistory(n),a=parseImplantSteps(c,n),o=0,i=a.length;i>o;o++)p=a[o],up.log.group("Updating %s",p.selector,function(){var e,t,o,u;return t=findOldFragment(p.selector,n),e=null!=(u=l.find(p.selector))?u.first():void 0,t&&e?(o=swapElements(t,e,p.pseudoClass,p.transition,n),r.push(o)):void 0});return"function"==typeof n.afterSwap&&n.afterSwap(),(s=up.motion).when.apply(s,r)})},findOldFragment=function(e,t){return first(".up-popup "+e)||first(".up-modal "+e)||first(e)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n;return t.requireMatch?(n="Could not find selector %s in current body HTML","#"===n[0]&&(n+=" (avoid using IDs)"),u.error(n,e)):void 0},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},find:function(r){var o;return(o=$.find(r,n)[0])?$(o):t.requireMatch?u.error("Could not find selector %s in response %o",r,e):void 0}}},updateHistory=function(e){return e.history?(e.title&&(document.title=e.title),up.history[e.historyMethod](e.history)):void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrap('<span class="up-insertion"></span>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)
2
+ }),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,c,p;if(a=[],n.keep)for(p=e.find("[up-keep]"),i=0,l=p.length;l>i;i++)s=p[i],r=$(s),(c=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),c.$newElement.replaceWith(r),a.push(c));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)c=r[o],p=c.match(/^(.+?)(?:\:(before|after))?$/),p||u.error('Could not parse selector atom "%s"',c),e=p[1],"html"===e&&(e="body"),s=p[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e){var t,n,r,o,i,a;for(o=void 0,o=u.isString(e)?$(e).get():e,n=void 0,i=0,a=o.length;a>i;i++)if(r=o[i],t=$(r),isRealElement(t)){n=t;break}return n},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),u.isPresent(t.url)&&up.history.push(t.url),u.isPresent(t.title)&&(document.title=t.title),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("ready",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){up.motion=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T;return $=up.util,u={},s={},x={},l={},a=$.config({duration:300,delay:0,easing:"ease",enabled:!0}),y=function(){return u=$.copy(s),x=$.copy(l),a.reset()},m=function(){return a.enabled&&up.browser.canCssTransition()},n=function(t,o,u){var a;return a=e(t),f(a),u=r(u),"none"===o||o===!1?v():$.isFunction(o)?i(o(a,u),o):$.isString(o)?n(a,p(o),u):$.isHash(o)?m()?$.cssAnimate(a,o,u):(a.css(o),$.resolvedDeferred()):$.error("Unknown animation type for %o",o)},r=function(e,t){var n;return null==t&&(t=null),e=$.options(e),n={},n.easing=$.option(e.easing,null!=t?t.attr("up-easing"):void 0,a.easing),n.duration=Number($.option(e.duration,null!=t?t.attr("up-duration"):void 0,a.duration)),n.delay=Number($.option(e.delay,null!=t?t.attr("up-delay"):void 0,a.delay)),n},p=function(e){return u[e]||$.error("Unknown animation %o",e)},t="up-ghosting-deferred",T=function(e,n,r,o){var u,i,a,s,l,c,p;return l=void 0,a=void 0,c=void 0,s=void 0,u=up.layout.viewportOf(e),$.temporaryCss(n,{display:"none"},function(){return l=g(e,u),c=u.scrollTop()}),$.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(n,r),a=g(n,u),s=u.scrollTop()}),l.moveTop(s-c),e.hide(),p=$.temporaryCss(n,{opacity:"0"}),i=o(l.$ghost,a.$ghost),e.data(t,i),n.data(t,i),i.then(function(){return e.removeData(t),n.removeData(t),p(),l.$bounds.remove(),a.$bounds.remove()}),i},f=function(t){var n;return n=e(t),$.finishCssAnimate(n),d(n)},d=function(n){return n.each(function(){var n,r;return n=e(this),(r=$.pluckData(n,t))?r.resolve():void 0})},i=function(e,t){return $.isDeferred(e)?e:$.error("Did not return a promise with .then and .resolve methods: %o",t)},h=function(t,o,a,s){var l,p;return"none"===a&&(a=!1),p=e(t),l=e(o),c(p,a),c(l,a),up.log.group(a?"Morphing %o to %o (using %s)":void 0,p.get(0),l.get(0),a,function(){var e,t,o,c;return t=$.only(s,"reveal","restoreScroll","source"),t=$.extend(t,r(s)),m()?(f(p),f(l),a?(e=u[a])?(w(p,l,t),n(l,e,t)):(c=$.presence(a,$.isFunction)||x[a])?T(p,l,t,function(e,n){var r;return r=c(e,n,t),i(r,a)}):$.isString(a)&&a.indexOf("/")>=0?(o=a.split("/"),c=function(e,t,r){return b(n(e,o[0],r),n(t,o[1],r))},h(p,l,c,t)):$.error("Unknown transition %o",a):w(p,l,t)):w(p,l,t)})},c=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),$.error("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},w=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},g=function(t,n){var r,o,u,i,a,s,l,c,p;for(i=$.measure(t,{relative:!0,inner:!0}),u=t.clone(),u.find("script").remove(),u.css({position:"static"===t.css("position")?"static":"relative",top:"",right:"",bottom:"",left:"",width:"100%",height:"100%"}),u.addClass("up-ghost"),r=e('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(i),p=i.top,c=function(e){return 0!==e?(p+=e,r.css({top:p})):void 0},u.appendTo(r),r.insertBefore(t),c(t.offset().top-u.offset().top),o=up.layout.fixedChildren(u),s=0,l=o.length;l>s;s++)a=o[s],$.fixedToAbsolute(a,n);return{$ghost:u,$bounds:r,moveTop:c}},S=function(e,t){return x[e]=t},o=function(e,t){return u[e]=t},k=function(){return s=$.copy(u),l=$.copy(x)},b=$.resolvableWhen,v=$.resolvedDeferred,o("none",v),o("fade-in",function(e,t){return e.css({opacity:0}),n(e,{opacity:1},t)}),o("fade-out",function(e,t){return e.css({opacity:1}),n(e,{opacity:0},t)}),o("move-to-top",function(e,t){var r,o;return r=$.measure(e),o=r.top+r.height,e.css({"margin-top":"0px"}),n(e,{"margin-top":"-"+o+"px"},t)}),o("move-from-top",function(e,t){var r,o;return r=$.measure(e),o=r.top+r.height,e.css({"margin-top":"-"+o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-bottom",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().height-r.top,e.css({"margin-top":"0px"}),n(e,{"margin-top":o+"px"},t)}),o("move-from-bottom",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().height-r.top,e.css({"margin-top":o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-left",function(e,t){var r,o;return r=$.measure(e),o=r.left+r.width,e.css({"margin-left":"0px"}),n(e,{"margin-left":"-"+o+"px"},t)}),o("move-from-left",function(e,t){var r,o;return r=$.measure(e),o=r.left+r.width,e.css({"margin-left":"-"+o+"px"}),n(e,{"margin-left":"0px"},t)}),o("move-to-right",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().width-r.left,e.css({"margin-left":"0px"}),n(e,{"margin-left":o+"px"},t)}),o("move-from-right",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().width-r.left,e.css({"margin-left":o+"px"}),n(e,{"margin-left":"0px"},t)}),o("roll-down",function(e,t){var r,o;return r=e.height(),o=$.temporaryCss(e,{height:"0px",overflow:"hidden"}),n(e,{height:r+"px"},t).then(o)}),S("none",v),S("move-left",function(e,t,r){return b(n(e,"move-to-left",r),n(t,"move-from-right",r))}),S("move-right",function(e,t,r){return b(n(e,"move-to-right",r),n(t,"move-from-left",r))}),S("move-up",function(e,t,r){return b(n(e,"move-to-top",r),n(t,"move-from-bottom",r))}),S("move-down",function(e,t,r){return b(n(e,"move-to-bottom",r),n(t,"move-from-top",r))}),S("cross-fade",function(e,t,r){return b(n(e,"fade-out",r),n(t,"fade-in",r))}),up.on("up:framework:boot",k),up.on("up:framework:reset",y),{morph:h,animate:n,animateOptions:r,finish:f,transition:S,animation:o,config:a,isEnabled:m,defaults:function(){return $.error("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:v,when:b,prependCopy:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T,P,E,D,C,A,U,O,F,R;return R=up.util,n=void 0,P=void 0,i=void 0,x=void 0,a=void 0,D=[],m=R.config({busyDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),l=function(e){return S(e),[e.url,e.method,e.data,e.target].join("|")},s=R.cache({size:function(){return m.cacheSize},expiry:function(){return m.cacheExpiry},key:l}),h=function(e){var t,n,r,o,u,i,a;for(e=S(e),n=[e],"html"!==e.target&&(i=R.merge(e,{target:"html"}),n.push(i),"body"!==e.target&&(u=R.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],a=s.get(t))return a},O=s.set,C=s.remove,d=s.clear,p=function(){return clearTimeout(P),P=null},c=function(){return clearTimeout(i),i=null},A=function(){return n=null,p(),c(),x=0,m.reset(),a=!1,s.clear(),D=[]},A(),o=s.alias,S=function(e){return e._normalized||(e.method=R.normalizeMethod(e.method),e.url&&(e.url=R.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(e){var t,n,r,o,u;return t=e.cache===!0,n=e.cache===!1,u=R.only(e,"url","method","data","target","headers","_normalized"),u=S(u),r=!0,g(u)||t?(o=h(u))&&!n?(up.puts("Re-using cached response for %s %s",u.method,u.url),r="pending"===o.state()):(o=w(u),O(u,o),o.fail(function(){return C(u)})):(d(),o=w(u)),r&&!e.preload&&(k(),o.always(b)),console.groupEnd(),o},v=function(){return 0===x},u=function(){return x>0},k=function(){var e,t;return t=v(),x+=1,t?(e=function(){return u()?(up.emit("up:proxy:busy",{message:"Proxy is busy"}),a=!0):void 0},m.busyDelay>0?i=setTimeout(e,m.busyDelay):e()):void 0},b=function(){return x-=1,v()&&a?(up.emit("up:proxy:idle",{message:"Proxy is idle"}),a=!1):void 0},w=function(e){return x<m.maxRequests?y(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},y=function(e){var n;return up.emit("up:proxy:load",R.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=R.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,e.data=R.requestDataAsArray(e.data),R.contains(m.wrapMethods,e.method)&&(e.data.push({name:m.wrapMethodParam,value:e.method}),e.method="POST"),n=t.ajax(e),n.done(function(t,n,r){return U(e,r)}),n.fail(function(t){return U(e,t)}),n},U=function(e,t){var n;return up.emit("up:proxy:received",R.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),$()},$=function(){var t,n;return(t=D.shift())?(n=y(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)})):void 0},g=function(e){return S(e),R.contains(m.safeMethods,e.method)},f=function(e){var t,r;return r=parseInt(R.presentAttr(e,"up-delay"))||m.preloadDelay,e.is(n)?void 0:(n=e,p(),t=function(){return T(e),n=null},F(t,r))},F=function(e,t){return P=setTimeout(e,t)},T=function(e,n){var r,o;return r=t(e),n=R.options(n),o=up.link.followMethod(r,n),g({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),R.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:f(t)}),up.on("up:framework:reset",A),{preload:T,ajax:r,get:h,alias:o,clear:d,remove:C,idle:v,busy:u,config:m,defaults:function(){return R.error("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.confirm(t.confirm).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(){},onAction=function(e,t){return followVariantSelectors.push(e),up.on("click","a"+e+", [up-href]"+e,function(e,n){return shouldProcessLinkEvent(e,n)?n.is("[up-instant]")?e.preventDefault():(e.preventDefault(),t(n)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,n){return shouldProcessLinkEvent(e,n)?(e.preventDefault(),t(n)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-expand]",function(e){var t,n,r,o,i,a,s,l,c,p;if(t=e.find("a, [up-href]"),(c=e.attr("up-expand"))&&(t=t.filter(c)),i=t.get(0)){for(p=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(p)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),up.macro("[up-dash]",function(e){var t,n;return n=u.castedAttr(e,"up-dash"),t={"up-preload":"true","up-instant":"true"},n===!0?t["up-follow"]="":t["up-target"]=n,u.setMissingAttrs(e,t),e.removeAttr("up-dash")}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeForm,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a;return n=$(e).closest("form"),t=u.options(t),i=u.option(t.target,n.attr("up-target"),"body"),a=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.data=n.serializeArray(),t=u.merge(t,up.motion.animateOptions(t,n)),r=n.find("input[type=file]").length,t.validate&&(t.headers||(t.headers={}),t.headers["X-Up-Validate"]=t.validate,r)?u.unresolvablePromise():(n.addClass("up-active"),r||!up.browser.canPushState()&&t.history!==!1?(n.get(0).submit(),u.unresolvablePromise()):(o=up.replace(i,a,t),o.always(function(){return n.removeClass("up-active")}),o))},observe=function(){var $element,args,callback,callbackArg,callbackPromise,callbackTimer,changeEvents,check,clearTimer,delay,knownValue,nextCallback,options,rawCallback,runNextCallback,selectorOrElement;return selectorOrElement=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===args.length&&(callbackArg=args[0]),args.length>1&&(options=u.options(args[0]),callbackArg=args[1]),$element=$(selectorOrElement),options=u.options(options),delay=u.option($element.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),callback=null,u.isGiven(options.change)&&u.error("up.observe now takes the change callback as the last argument"),rawCallback=u.option(u.presentAttr($element,"op-observe"),callbackArg),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||u.error("up.observe: No change callback given"),$element.is("form")?observeForm($element,options,callback):(knownValue=null,callbackTimer=null,callbackPromise=u.resolvedPromise(),nextCallback=null,runNextCallback=function(){var e;return nextCallback?(e=nextCallback(),nextCallback=null,e):void 0},check=function(){var e,t,n;return n=$element.val(),t=u.isNull(knownValue),knownValue===n||(knownValue=n,t)?void 0:(clearTimer(),nextCallback=function(){return callback.apply($element.get(0),[n,$element])},e=function(){return callbackPromise.then(function(){var e;return e=runNextCallback(),callbackPromise=u.isPromise(e)?e:u.resolvedPromise()})},0===delay?e():setTimeout(e,delay))},clearTimer=function(){return clearTimeout(callbackTimer)},changeEvents=up.browser.canInputEvent()?"input change":"input change keypress paste cut click propertychange",$element.on(changeEvents,check),check(),function(){return $element.off(changeEvents,check),clearTimer()})},observeForm=function(e,t,n){var r,o;return r=u.multiSelector(config.fields).find(e),o=u.map(r,function(e){return observe(e,n)}),function(){var e,t,n,r;for(r=[],t=0,n=o.length;n>t;t++)e=o[t],r.push(e());return r}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),t.addClass("up-active"),submit(n).always(function(){return t.removeClass("up-active")})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&u.error("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||u.error("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return e.preventDefault(),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),function(){up.popup=function($){var attach,autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,ensureInViewport,isOpen,reset,setPosition,u;return u=up.util,currentUrl=void 0,coveredUrl=function(){return $(".up-popup").attr("up-covered-url")},config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",position:"bottom-right",history:!1}),reset=function(){return close({animation:!1}),config.reset()},setPosition=function(e,t){var n,r,o;return o=u.measure(e,{full:!0}),r=function(){switch(t){case"bottom-right":return{right:o.right,top:o.top+o.height};case"bottom-left":return{left:o.left,top:o.top+o.height};case"top-right":return{right:o.right,bottom:o.top};case"top-left":return{left:o.left,bottom:o.top};default:return u.error("Unknown position option '%s'",t)}}(),n=$(".up-popup"),n.attr("up-position",t),n.css(r),ensureInViewport(n)},ensureInViewport=function(e){var t,n,r,o,i,a,s;if(n=u.measure(e,{full:!0}),r=null,o=null,n.right<0&&(r=-n.right),n.bottom<0&&(o=-n.bottom),n.left<0&&(r=n.left),n.top<0&&(o=n.top),r&&((i=parseInt(e.css("left")))?e.css("left",i-r):(a=parseInt(e.css("right")))&&e.css("right",a+r)),o){if(s=parseInt(e.css("top")))return e.css("top",s-o);if(t=parseInt(e.css("bottom")))return e.css("bottom",t+o)}},discardHistory=function(){var e;return e=$(".up-popup"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n;return n=u.$createElementFromSelector(".up-popup"),t.sticky&&n.attr("up-sticky",""),n.attr("up-covered-url",up.browser.url()),n.attr("up-covered-title",document.title),u.$createPlaceholder(e,n),n.appendTo(document.body),n},isOpen=function(){return $(".up-popup").length>0},attach=function(e,t){var n,r,o,i;return n=$(e),n.length||u.error("Cannot attach popup to non-existing element %o",e),t=u.options(t),i=u.option(t.url,n.attr("href")),o=u.option(t.target,n.attr("up-popup"),"body"),t.position=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky")),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),r=up.motion.animateOptions(t,n),up.browser.confirm(t.confirm).then(function(){var e,a;return up.bus.nobodyPrevents("up:popup:open",{url:i,message:"Opening popup"})?(a=isOpen(),a&&close({animation:!1}),t.beforeSwap=function(){return createFrame(o,t)},e=up.replace(o,i,u.merge(t,{animation:!1})),e=e.then(function(){return setPosition(n,t.position)}),a||(e=e.then(function(){return up.animate($(".up-popup"),t.animation,r)})),e=e.then(function(){return up.emit("up:popup:opened",{message:"Popup opened"})})):u.unresolvableDeferred()})},close=function(e){var t,n;return t=$(".up-popup"),t.length?up.bus.nobodyPrevents("up:popup:close",{$element:t})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n.then(function(){return up.emit("up:popup:closed",{message:"Popup closed"})}),n):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-popup").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?close():attach(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-popup").length||t.closest("[up-popup]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-popup").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attach,close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.popup.defaults(...) no longer exists. Set values on he up.popup.config property instead.")},contains:contains,open:function(){return up.error("up.popup.open no longer exists. Please use up.popup.attach instead.")},source:function(){return up.error("up.popup.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,follow,isOpen,open,reset,shiftElements,templateHtml,u,unshiftElements,unshifters,visit;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",closeLabel:"\xd7",template:function(e){return'<div class="up-modal">\n <div class="up-modal-dialog">\n <div class="up-modal-close" up-close>'+e.closeLabel+'</div>\n <div class="up-modal-content"></div>\n </div>\n</div>'}}),currentUrl=void 0,coveredUrl=function(){return $(".up-modal").attr("up-covered-url")},reset=function(){return close({animation:!1}),currentUrl=void 0,config.reset()},templateHtml=function(){var e;return e=config.template,u.isFunction(e)?e(config):e},discardHistory=function(){var e;return e=$(".up-modal"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n,r,o;return shiftElements(),o=$(templateHtml()),t.sticky&&o.attr("up-sticky",""),o.attr("up-covered-url",up.browser.url()),o.attr("up-covered-title",document.title),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),o},unshifters=[],shiftElements=function(){var e,t,n,r;return n=u.scrollbarWidth(),e=parseInt($("body").css("padding-right")),t=n+e,r=u.temporaryCss($("body"),{"padding-right":t+"px","overflow-y":"hidden"}),unshifters.push(r),up.layout.anchoredRight().each(function(){var e,t,r,o;return e=$(this),t=parseInt(e.css("right")),r=n+t,o=u.temporaryCss(e,{right:r}),unshifters.push(o)})},unshiftElements=function(){var e,t;for(e=[];t=unshifters.pop();)e.push(t());return e},isOpen=function(){return $(".up-modal").length>0},follow=function(e,t){return t=u.options(t),t.$link=$(e),open(t)},visit=function(e,t){return t=u.options(t),t.url=e,open(t)},open=function(e){var t,n,r,o;return e=u.options(e),t=u.option(e.$link,u.nullJQuery()),o=u.option(e.url,t.attr("up-href"),t.attr("href")),r=u.option(e.target,t.attr("up-modal"),"body"),e.width=u.option(e.width,t.attr("up-width"),config.width),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),config.maxWidth),e.height=u.option(e.height,t.attr("up-height"),config.height),e.animation=u.option(e.animation,t.attr("up-animation"),config.openAnimation),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky")),e.history=up.browser.canPushState()?u.option(e.history,u.castedAttr(t,"up-history"),config.history):!1,e.confirm=u.option(e.confirm,t.attr("up-confirm")),n=up.motion.animateOptions(e,t),up.browser.confirm(e.confirm).then(function(){var t,i;return up.bus.nobodyPrevents("up:modal:open",{url:o,message:"Opening modal"})?(i=isOpen(),i&&close({animation:!1}),e.beforeSwap=function(){return createFrame(r,e)},t=up.replace(r,o,u.merge(e,{animation:!1})),i||(t=t.then(function(){return up.animate($(".up-modal"),e.animation,n)})),t=t.then(function(){return up.emit("up:modal:opened",{message:"Modal opened"})})):u.unresolvablePromise()})},close=function(e){var t,n;return t=$(".up-modal"),t.length?up.bus.nobodyPrevents("up:modal:close",{$element:t,message:"Closing modal"})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n=n.then(function(){return unshiftElements(),up.emit("up:modal:closed",{message:"Modal closed"})})):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-modal").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},up.link.onAction("[up-modal]",function(e){return follow(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(!up.popup.contains(t)&&contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-modal").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,open:function(){return up.error("up.modal.open no longer exists. Please use either up.modal.follow or up.modal.visit.")},close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.modal.defaults(...) no longer exists. Set values on he up.modal.config property instead.")},contains:contains,source:function(){return up.error("up.modal.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,u,i,a;return a=up.util,r=a.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out"}),u=function(){return r.reset()},i=function(e,t,n){var r,o,u;return o=a.measure(e),u=a.measure(t),r=function(){switch(n){case"top":return{left:o.left+.5*(o.width-u.width),top:o.top-u.height};case"bottom":return{left:o.left+.5*(o.width-u.width),top:o.top+o.height};default:return a.error("Unknown position option '%s'",n)}}(),t.attr("up-position",n),t.css(r)},o=function(e){var t;return t=a.$createElementFromSelector(".up-tooltip"),a.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),t},t=function(t,u){var s,l,c,p,f,d,m;return null==u&&(u={}),s=e(t),f=a.option(u.html,s.attr("up-tooltip-html")),m=a.option(u.text,s.attr("up-tooltip")),d=a.option(u.position,s.attr("up-position"),r.position),p=a.option(u.animation,a.castedAttr(s,"up-animation"),r.openAnimation),c=up.motion.animateOptions(u,s),n(),l=o({text:m,html:f}),i(s,l,d),up.animate(l,p,c)
3
+ },n=function(t){var n;return n=e(".up-tooltip"),n.length?(t=a.options(t,{animation:r.closeAnimation}),t=a.merge(t,up.motion.animateOptions(t)),up.destroy(n,t)):void 0},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseover",function(){return t(e)}),e.on("mouseout",function(){return n()})}),up.on("click","body",function(){return n()}),up.on("up:framework:reset",n),up.bus.onEscape(function(){return n()}),up.on("up:framework:reset",u),{attach:t,close:n,open:function(){return a.error("up.tooltip.open no longer exists. Use up.tooltip.attach instead.")}}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g;return h=up.util,i=h.config({currentClasses:["up-current"]}),p=function(){return i.reset()},a=function(){var e;return e=i.currentClasses,e=e.concat(["up-current"]),e=h.uniq(e),e.join(" ")},t="up-active",n=["a","[up-href]","[up-alias]"],o=n.join(", "),u=function(){var e,t,r;for(r=[],e=0,t=n.length;t>e;e++)m=n[e],r.push(m+"[up-instant]");return r}().join(", "),r="."+t,c=function(e){return h.isPresent(e)?h.normalizeUrl(e,{search:!1,stripTrailingSlash:!0}):void 0},d=function(e){var t,n,r,o,u,i,a,s,l,p;for(s=[],i=["href","up-href","up-alias"],n=0,o=i.length;o>n;n++)if(t=i[n],l=h.presentAttr(e,t))for(p="up-alias"===t?l.split(" "):[l],r=0,u=p.length;u>r;r++)a=p[r],"#"!==a&&(a=c(a),s.push(a));return s},g=function(e){var t,n,r,o;return e=h.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return h.contains(e,t)},n=function(t){return h.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return h.detect(e,r)},{matchesAny:o}},l=function(){var t,n;return t=g([c(up.browser.url()),c(up.modal.url()),c(up.modal.coveredUrl()),c(up.popup.url()),c(up.popup.coveredUrl())]),n=a(),h.each(e(o),function(r){var o,u;return o=e(r),u=d(o),t.matchesAny(u)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},f=function(e){return v(),e=s(e),e.addClass(t)},s=function(e){return h.presence(e.parents(o))||e},v=function(){return e(r).removeClass(t)},up.on("click",o,function(e,t){return h.isUnmodifiedMouseEvent(e)&&!t.is("[up-instant]")?f(t):void 0}),up.on("mousedown",u,function(e,t){return h.isUnmodifiedMouseEvent(e)?f(t):void 0}),up.on("up:fragment:inserted",function(){return v(),l()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?l():void 0}),up.on("up:framework:reset",p),{config:i,defaults:function(){return h.error("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")}}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,u;return t="data-"+e,u="up-"+e,up.compiler("["+t+"]",function(e){var i;return n()&&o(e)?(i={},i[u]=e.attr(t),r.setMissingAttrs(e,i),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
@@ -379,7 +379,7 @@ up.form = (($) ->
379
379
  promise = up.submit($form, options)
380
380
  promise
381
381
 
382
- currentValuesForToggle = ($field) ->
382
+ currentValuesForSwitch = ($field) ->
383
383
  values = undefined
384
384
  if $field.is('input[type=checkbox]')
385
385
  if $field.is(':checked')
@@ -400,7 +400,7 @@ up.form = (($) ->
400
400
  values = [':blank']
401
401
  values
402
402
 
403
- currentValuesForToggle = ($field) ->
403
+ currentValuesForSwitch = ($field) ->
404
404
  if $field.is('input[type=checkbox]')
405
405
  if $field.is(':checked')
406
406
  value = $field.val()
@@ -429,25 +429,25 @@ up.form = (($) ->
429
429
  ###*
430
430
  Shows or hides a target selector depending on the value.
431
431
 
432
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
432
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
433
433
 
434
434
  This function does not currently have a very useful API outside
435
- of our use for `up-toggle`'s UJS behavior, that's why it's currently
435
+ of our use for `up-switch`'s UJS behavior, that's why it's currently
436
436
  still marked `@internal`.
437
437
 
438
- @function up.form.toggle
438
+ @function up.form.switchTargets
439
439
  @param {String|Element|jQuery} fieldOrSelector
440
440
  @param {String} [options.target]
441
- The target selectors to toggle.
442
- Defaults to an `up-toggle` attribute on the given field.
441
+ The target selectors to switch.
442
+ Defaults to an `up-switch` attribute on the given field.
443
443
  @internal
444
444
  ###
445
- toggleTargets = (fieldOrSelector, options) ->
445
+ switchTargets = (fieldOrSelector, options) ->
446
446
  $field = $(fieldOrSelector)
447
447
  options = u.options(options)
448
- targets = u.option(options.target, $field.attr('up-toggle'))
449
- u.isPresent(targets) or u.error("No toggle target given for %o", $field.get(0))
450
- fieldValues = currentValuesForToggle($field)
448
+ targets = u.option(options.target, $field.attr('up-switch'))
449
+ u.isPresent(targets) or u.error("No switch target given for %o", $field.get(0))
450
+ fieldValues = currentValuesForSwitch($field)
451
451
  $(targets).each ->
452
452
  $target = $(this)
453
453
  if hideValues = $target.attr('up-hide-for')
@@ -716,9 +716,9 @@ up.form = (($) ->
716
716
 
717
717
  \#\#\#\# Example
718
718
 
719
- The triggering input gets an `up-toggle` attribute with a selector for the elements to show or hide:
719
+ The triggering input gets an `up-switch` attribute with a selector for the elements to show or hide:
720
720
 
721
- <select name="advancedness" up-toggle=".target">
721
+ <select name="advancedness" up-switch=".target">
722
722
  <option value="basic">Basic parts</option>
723
723
  <option value="advanced">Advanced parts</option>
724
724
  <option value="very-advanced">Very advanced parts</option>
@@ -740,7 +740,7 @@ up.form = (($) ->
740
740
 
741
741
  For checkboxes you can also use the pseudo-values `:checked` or `:unchecked` like so:
742
742
 
743
- <input type="checkbox" name="flag" up-toggle=".target">
743
+ <input type="checkbox" name="flag" up-switch=".target">
744
744
 
745
745
  <div class="target" up-show-for=":checked">
746
746
  only shown when checkbox is checked
@@ -749,20 +749,20 @@ up.form = (($) ->
749
749
  You can also use the pseudo-values `:blank` to match an empty input value,
750
750
  or `:present` to match a non-empty input value:
751
751
 
752
- <input type="text" name="email" up-toggle=".target">
752
+ <input type="text" name="email" up-switch=".target">
753
753
 
754
754
  <div class="target" up-show-for=":blank">
755
755
  please enter an email address
756
756
  </div>
757
757
 
758
- @selector [up-toggle]
758
+ @selector [up-switch]
759
759
  @stable
760
760
  ###
761
761
 
762
762
  ###*
763
763
  Show this element only if a form field has a given value.
764
764
 
765
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
765
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
766
766
 
767
767
  @selector [up-show-for]
768
768
  @param up-show-for
@@ -773,7 +773,7 @@ up.form = (($) ->
773
773
  ###*
774
774
  Hide this element if a form field has a given value.
775
775
 
776
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
776
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
777
777
 
778
778
  @selector [up-hide-for]
779
779
  @param up-hide-for
@@ -781,12 +781,11 @@ up.form = (($) ->
781
781
  @stable
782
782
  ###
783
783
 
784
- up.on 'change', '[up-toggle]', (event, $field) ->
785
- console.log("CHANGE EVENT")
786
- toggleTargets($field)
784
+ up.on 'change', '[up-switch]', (event, $field) ->
785
+ switchTargets($field)
787
786
 
788
- up.compiler '[up-toggle]', ($field) ->
789
- toggleTargets($field)
787
+ up.compiler '[up-switch]', ($field) ->
788
+ switchTargets($field)
790
789
 
791
790
  ###*
792
791
  Observes this field or form and runs a callback when a value changes.
@@ -854,7 +853,7 @@ up.form = (($) ->
854
853
  submit: submit
855
854
  observe: observe
856
855
  validate: validate
857
- toggleTargets: toggleTargets
856
+ switchTargets: switchTargets
858
857
 
859
858
  )(jQuery)
860
859
 
@@ -505,6 +505,22 @@ up.layout = (($) ->
505
505
  @stable
506
506
  ###
507
507
 
508
+
509
+ ###*
510
+ Marks this element as a navigation anchored to the right edge of the screen
511
+ using `position: fixed` or `position:absolute`.
512
+
513
+ [`up.modal`](/up.modal) will move anchored elements to the left so they
514
+ don't appear to move when a modal dialog is opened or closed.
515
+
516
+ \#\#\#\# Example
517
+
518
+ <div class="bottom-nav" up-fixed="bottom">...</div>
519
+
520
+ @selector [up-anchored=right]
521
+ @stable
522
+ ###
523
+
508
524
  up.on 'up:framework:reset', reset
509
525
 
510
526
  knife: eval(Knife?.point)
@@ -166,6 +166,7 @@ up.link = (($) ->
166
166
  $link = $(linkOrSelector)
167
167
 
168
168
  options = u.options(options)
169
+
169
170
  url = u.option($link.attr('up-href'), $link.attr('href'))
170
171
  target = u.option(options.target, $link.attr('up-target'), 'body')
171
172
  options.failTarget = u.option(options.failTarget, $link.attr('up-fail-target'), 'body')
@@ -430,7 +431,7 @@ up.link = (($) ->
430
431
  If omitted, the first contained link will be expanded.
431
432
  @stable
432
433
  ###
433
- up.compiler '[up-expand]', ($area) ->
434
+ up.macro '[up-expand]', ($area) ->
434
435
  $childLinks = $area.find('a, [up-href]')
435
436
  if selector = $area.attr('up-expand')
436
437
  $childLinks = $childLinks.filter(selector)
@@ -465,7 +466,7 @@ up.link = (($) ->
465
466
  @selector [up-dash]
466
467
  @stable
467
468
  ###
468
- up.compiler '[up-dash]', ($element) ->
469
+ up.macro '[up-dash]', ($element) ->
469
470
  target = u.castedAttr($element, 'up-dash')
470
471
  newAttrs = {
471
472
  'up-preload': 'true',
@@ -46,7 +46,7 @@ up.log = (($) ->
46
46
  block = args.pop() # Coffeescript copies the arguments array
47
47
  if message
48
48
  up.browser.puts('groupCollapsed', prefix(message), args...)
49
- # up.browser.puts('log', prefix(message), args...)
49
+ # up.browser.puts('group', prefix(message), args...)
50
50
  try
51
51
  block()
52
52
  finally
@@ -189,7 +189,7 @@ up.motion = (($) ->
189
189
  findAnimation = (name) ->
190
190
  animations[name] or u.error("Unknown animation %o", name)
191
191
 
192
- GHOSTING_PROMISE_KEY = 'up-ghosting-promise'
192
+ GHOSTING_DEFERRED_KEY = 'up-ghosting-deferred'
193
193
 
194
194
  withGhosts = ($old, $new, options, block) ->
195
195
 
@@ -203,8 +203,6 @@ up.motion = (($) ->
203
203
  u.temporaryCss $new, display: 'none', ->
204
204
  # Within this block, $new is hidden but $old is visible
205
205
  oldCopy = prependCopy($old, $viewport)
206
- oldCopy.$ghost.addClass('up-destroying')
207
- oldCopy.$bounds.addClass('up-destroying')
208
206
  # Remember the previous scroll position in case we will reveal $new below.
209
207
  oldScrollTop = $viewport.scrollTop()
210
208
  # $viewport.scrollTop(oldScrollTop + 1)
@@ -231,24 +229,24 @@ up.motion = (($) ->
231
229
  # shown again, causing a flicker while the browser is painting.
232
230
  showNew = u.temporaryCss($new, opacity: '0')
233
231
 
234
- promise = block(oldCopy.$ghost, newCopy.$ghost)
232
+ deferred = block(oldCopy.$ghost, newCopy.$ghost)
235
233
 
236
234
  # Make a way to look at $old and $new and see if an animation is
237
235
  # already in progress. If someone attempted a new animation on the
238
236
  # same elements, the stored promises would be resolved by the second
239
237
  # animation call, making the transition jump to the last frame instantly.
240
- $old.data(GHOSTING_PROMISE_KEY, promise)
241
- $new.data(GHOSTING_PROMISE_KEY, promise)
238
+ $old.data(GHOSTING_DEFERRED_KEY, deferred)
239
+ $new.data(GHOSTING_DEFERRED_KEY, deferred)
242
240
 
243
- promise.then ->
244
- $old.removeData(GHOSTING_PROMISE_KEY)
245
- $new.removeData(GHOSTING_PROMISE_KEY)
241
+ deferred.then ->
242
+ $old.removeData(GHOSTING_DEFERRED_KEY)
243
+ $new.removeData(GHOSTING_DEFERRED_KEY)
246
244
  # Now that the transition is over we show $new again.
247
245
  showNew()
248
246
  oldCopy.$bounds.remove()
249
247
  newCopy.$bounds.remove()
250
248
 
251
- promise
249
+ deferred
252
250
 
253
251
  ###*
254
252
  Completes all [animations](/up.animate) and [transitions](/up.morph)
@@ -263,15 +261,15 @@ up.motion = (($) ->
263
261
  @stable
264
262
  ###
265
263
  finish = (elementOrSelector) ->
266
- $(elementOrSelector).each ->
264
+ $element = $(elementOrSelector)
265
+ u.finishCssAnimate($element)
266
+ finishGhosting($element)
267
+
268
+ finishGhosting = ($collection) ->
269
+ $collection.each ->
267
270
  $element = $(this)
268
- u.finishCssAnimate($element)
269
- finishGhosting($element)
270
-
271
- finishGhosting = ($element) ->
272
- if existingGhosting = $element.data(GHOSTING_PROMISE_KEY)
273
- up.puts('Canceling existing ghosting on %o', $element)
274
- existingGhosting.resolve?()
271
+ if existingGhosting = u.pluckData($element, GHOSTING_DEFERRED_KEY)
272
+ existingGhosting.resolve()
275
273
 
276
274
  assertIsDeferred = (object, source) ->
277
275
  if u.isDeferred(object)
@@ -352,7 +350,7 @@ up.motion = (($) ->
352
350
  ensureMorphable($old, transitionOrName)
353
351
  ensureMorphable($new, transitionOrName)
354
352
 
355
- up.log.group ('Morphing %o to %o (using %o)' if transitionOrName), source, target, transitionOrName, ->
353
+ up.log.group ('Morphing %o to %o (using %s)' if transitionOrName), $old.get(0), $new.get(0), transitionOrName, ->
356
354
 
357
355
  parsedOptions = u.only(options, 'reveal', 'restoreScroll', 'source')
358
356
  parsedOptions = u.extend(parsedOptions, animateOptions(options))
@@ -39,6 +39,8 @@ up.syntax = (($) ->
39
39
  DESTROYABLE_CLASS = 'up-destroyable'
40
40
  DESTROYER_KEY = 'up-destroyer'
41
41
 
42
+ compilers = []
43
+ macros = []
42
44
 
43
45
  ###*
44
46
  Registers a function to be called whenever an element with
@@ -177,6 +179,10 @@ up.syntax = (($) ->
177
179
  @function up.compiler
178
180
  @param {String} selector
179
181
  The selector to match.
182
+ @param {Number} [options.priority=0]
183
+ The priority of this compilers.
184
+ Compilers with a higher priority are run first.
185
+ Two compilers with the same priority are run in the order they were registered.
180
186
  @param {Boolean} [options.batch=false]
181
187
  If set to `true` and a fragment insertion contains multiple
182
188
  elements matching the selector, `compiler` is only called once
@@ -199,18 +205,69 @@ up.syntax = (($) ->
199
205
  is already handled by [`up.destroy`](/up.destroy).
200
206
  @stable
201
207
  ###
202
- compilers = []
208
+ compiler = (args...) ->
209
+ insertCompiler(compilers, args...)
210
+
211
+ ###*
212
+ Registers a [compiler](/up.compiler) that is run before all other compilers.
213
+
214
+ You can use `up.macro` to register a compiler that sets other UJS attributes.
215
+
216
+ \#\#\#\# Example
217
+
218
+ You will sometimes find yourself setting the same combination of UJS attributes again and again:
219
+
220
+ <a href="/page1" up-target=".content" up-transition="cross-fade" up-duration="300">Page 1</a>
221
+ <a href="/page2" up-target=".content" up-transition="cross-fade" up-duration="300">Page 2</a>
222
+ <a href="/page3" up-target=".content" up-transition="cross-fade" up-duration="300">Page 3</a>
223
+
224
+ We would much rather define a new `content-link` attribute that let's us
225
+ write the same links like this:
226
+
227
+ <a href="/page1" content-link>Page 1</a>
228
+ <a href="/page2" content-link>Page 2</a>
229
+ <a href="/page3" content-link>Page 3</a>
230
+
231
+ We can define the `content-link` attribute by registering a macro that
232
+ sets the `up-target`, `up-transition` and `up-duration` attributes for us:
203
233
 
204
- compiler = (selector, args...) ->
234
+ up.macro('[content-link]', function($link) {
235
+ $link.attr('up-target', '.content');
236
+ $link.attr('up-transition', 'cross-fade');
237
+ $link.attr('up-duration', '300');
238
+ });
239
+
240
+ Examples for built-in macros are [`up-dash`](/up-dash) and [`up-expand`](/up-expand).
241
+
242
+ @param {String} selector
243
+ The selector to match.
244
+ @param {Object} options
245
+ See options for [`up.compiler`](/up.compiler).
246
+ @param {Function($element, data)} compiler
247
+ The function to call when a matching element is inserted.
248
+ See [`up.compiler`](/up.compiler) for details.
249
+ @stable
250
+ ###
251
+ macro = (args...) ->
252
+ insertCompiler(macros, args...)
253
+
254
+ buildCompiler = (selector, args...) ->
255
+ callback = args.pop()
256
+ options = u.options(args[0], priority: 0)
257
+ selector: selector
258
+ callback: callback
259
+ priority: options.priority
260
+ batch: options.batch
261
+ keep: options.keep
262
+
263
+ insertCompiler = (queue, args...) ->
205
264
  # Silently discard any compilers that are registered on unsupported browsers
206
265
  return unless up.browser.isSupported()
207
- compiler = args.pop()
208
- options = u.options(args[0])
209
- compilers.push
210
- selector: selector
211
- callback: compiler
212
- batch: options.batch
213
- keep: options.keep
266
+ newCompiler = buildCompiler(args...)
267
+ index = 0
268
+ while (oldCompiler = queue[index]) && (oldCompiler.priority <= newCompiler.priority)
269
+ index += 1
270
+ queue.splice(index, 0, newCompiler)
214
271
 
215
272
  applyCompiler = (compiler, $jqueryElement, nativeElement) ->
216
273
  up.puts ("Compiling '%s' on %o" unless compiler.isDefault), compiler.selector, nativeElement
@@ -236,20 +293,21 @@ up.syntax = (($) ->
236
293
  $skipSubtrees = $(options.skip)
237
294
 
238
295
  up.log.group "Compiling fragment %o", $fragment.get(0), ->
239
- for compiler in compilers
240
- $matches = u.findWithSelf($fragment, compiler.selector)
241
-
242
- $matches = $matches.filter ->
243
- $match = $(this)
244
- u.all $skipSubtrees, (element) ->
245
- $match.closest(element).length == 0
246
-
247
- if $matches.length
248
- up.log.group ("Compiling '%s' on %d element(s)" unless compiler.isDefault), compiler.selector, $matches.length, ->
249
- if compiler.batch
250
- applyCompiler(compiler, $matches, $matches.get())
251
- else
252
- $matches.each -> applyCompiler(compiler, $(this), this)
296
+ for queue in [macros, compilers]
297
+ for compiler in queue
298
+ $matches = u.findWithSelf($fragment, compiler.selector)
299
+
300
+ $matches = $matches.filter ->
301
+ $match = $(this)
302
+ u.all $skipSubtrees, (element) ->
303
+ $match.closest(element).length == 0
304
+
305
+ if $matches.length
306
+ up.log.group ("Compiling '%s' on %d element(s)" unless compiler.isDefault), compiler.selector, $matches.length, ->
307
+ if compiler.batch
308
+ applyCompiler(compiler, $matches, $matches.get())
309
+ else
310
+ $matches.each -> applyCompiler(compiler, $(this), this)
253
311
 
254
312
  ###*
255
313
  Runs any destroyers on the given fragment and its descendants.
@@ -325,6 +383,7 @@ up.syntax = (($) ->
325
383
  up.on 'up:framework:reset', reset
326
384
 
327
385
  compiler: compiler
386
+ macro: macro
328
387
  compile: compile
329
388
  clean: clean
330
389
  data: data
@@ -332,6 +391,7 @@ up.syntax = (($) ->
332
391
  )(jQuery)
333
392
 
334
393
  up.compiler = up.syntax.compiler
394
+ up.macro = up.syntax.macro
335
395
 
336
396
  up.ready = -> up.util.error('up.ready no longer exists. Please use up.hello instead.')
337
397
  up.awaken = -> up.util.error('up.awaken no longer exists. Please use up.compiler instead.')
@@ -901,8 +901,8 @@ up.util = (($) ->
901
901
  $element.css(lastFrame)
902
902
  deferred.then(withoutCompositing)
903
903
  deferred.then(withoutTransition)
904
- $element.data(ANIMATION_PROMISE_KEY, deferred)
905
- deferred.then(-> $element.removeData(ANIMATION_PROMISE_KEY))
904
+ $element.data(ANIMATION_DEFERRED_KEY, deferred)
905
+ deferred.then(-> $element.removeData(ANIMATION_DEFERRED_KEY))
906
906
  endTimeout = setTimeout((-> deferred.resolve()), opts.duration + opts.delay)
907
907
  deferred.then(-> clearTimeout(endTimeout)) # clean up in case we're canceled
908
908
  # Return the whole deferred and not just return a thenable.
@@ -910,7 +910,7 @@ up.util = (($) ->
910
910
  # by resolving the deferred.
911
911
  deferred
912
912
 
913
- ANIMATION_PROMISE_KEY = 'up-animation-promise'
913
+ ANIMATION_DEFERRED_KEY = 'up-animation-deferred'
914
914
 
915
915
  ###*
916
916
  Completes the animation for the given element by jumping
@@ -927,7 +927,7 @@ up.util = (($) ->
927
927
  ###
928
928
  finishCssAnimate = (elementOrSelector) ->
929
929
  $(elementOrSelector).each ->
930
- if existingAnimation = $(this).data(ANIMATION_PROMISE_KEY)
930
+ if existingAnimation = pluckData(this, ANIMATION_DEFERRED_KEY)
931
931
  existingAnimation.resolve()
932
932
 
933
933
  ###*
@@ -1160,9 +1160,13 @@ up.util = (($) ->
1160
1160
  @internal
1161
1161
  ###
1162
1162
  resolvableWhen = (deferreds...) ->
1163
- joined = $.when(deferreds...)
1164
- joined.resolve = ->
1165
- each deferreds, (deferred) -> deferred.resolve?()
1163
+ # Pass an additional resolved deferred to $.when so $.when will
1164
+ # not return the given deferred if only one deferred is passed.
1165
+ joined = $.when(resolvedDeferred(), deferreds...)
1166
+ joined.resolve = memoize(->
1167
+ each deferreds, (deferred) ->
1168
+ deferred.resolve()
1169
+ )
1166
1170
  joined
1167
1171
 
1168
1172
  # resolvableSequence = (first, callbacks...) ->
@@ -1500,6 +1504,12 @@ up.util = (($) ->
1500
1504
  $error.text(asString)
1501
1505
  throw new Error(asString)
1502
1506
 
1507
+ pluckData = (elementOrSelector, key) ->
1508
+ $element = $(elementOrSelector)
1509
+ value = $element.data(key)
1510
+ $element.removeData(key)
1511
+ value
1512
+
1503
1513
  requestDataAsArray: requestDataAsArray
1504
1514
  requestDataAsQuery: requestDataAsQuery
1505
1515
  offsetParent: offsetParent
@@ -1587,6 +1597,7 @@ up.util = (($) ->
1587
1597
  unwrapElement: unwrapElement
1588
1598
  multiSelector: multiSelector
1589
1599
  error: error
1600
+ pluckData: pluckData
1590
1601
 
1591
1602
  )($)
1592
1603