upjs-rails 0.18.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/dist/up.min.js CHANGED
@@ -1,2 +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,c,p,f,d,m,h,v,g,y,b,w,k,S,x,T,$,C,E,A,P,D,U,O,F,R,M,j,z,L,I,K,N,W,_,q,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,Tt,$t,Ct,Et,At,Pt,Dt,Ut,Ot,Ft,Rt,Mt,jt,zt,Lt;return et=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},at=function(e,t){var n,r,o;return n=mt(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},mt=function(e){var n;return n=null,Q(e)?(n=t("<a>").attr({href:e}).get(0),U(n.hostname)&&(n.href=n.href)):n=Ft(e),n},it=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,p=f=0,m=v.length;m>f;p=++f){for(a=v[p],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===p&&(o=n),r=n}return o},m=function(e,t){var n;return n=document.createElement(e),_(t)&&(n.innerHTML=t),n},g=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n="[UP] "+n,(r=up.browser).puts.apply(r,["debug",n].concat(e.call(t)))},Lt=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n="[UP] "+n,(r=up.browser).puts.apply(r,["warn",n].concat(e.call(t)))},w=function(){var n,r,o,u;throw r=1<=arguments.length?e.call(arguments,0):[],r[0]="[UP] "+r[0],(u=up.browser).puts.apply(u,["error"].concat(e.call(r))),o=S.apply(null,r),n=ht(t(".up-error"))||t('<div class="up-error"></div>').prependTo("body"),n.addClass("up-error"),n.text(o),new Error(o)},o=/\%[odisf]/g,S=function(){var t,n,r,u;return t=1<=arguments.length?e.call(arguments,0):[],u=t[0],n=0,r=80,u.replace(o,function(){var e,o;return n+=1,e=t[n],o=typeof e,"string"===o?(e=e.replace(/\s+/g," "),e.length>r&&(e=e.substr(0,r)+"\u2026"),e='"'+e+'"'):e="undefined"===o?"undefined":"number"===o||"function"===o?e.toString():JSON.stringify(e),e.length>r&&(e=e.substr(0,r)+" \u2026",("object"===o||"function"===o)&&(e+=" }")),e})},Ct=function(e){var n,r,o,u,i,a,s,l,c;if(n=t(e),l=void 0,g("Creating selector from element %o",n.get(0)),c=ht(n.attr("up-id")))l="[up-id='"+c+"']";else if(o=ht(n.attr("id")))l="#"+o;else if(s=ht(n.attr("name")))l="[name='"+s+"']";else if(r=ht(ut(n)))for(console.log("using klass!",r),l="",u=0,a=r.length;a>u;u++)i=r[u],l+="."+i;else l=n.prop("tagName").toLowerCase();return l},ut=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),$t(n,function(e){return _(e)&&!e.match(/^up-/)})},h=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=m("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=m("head"),s.appendChild(a),c=m("title",p[1]),a.appendChild(c)),s):m("div",e)},T=t.extend,Ot=t.trim,b=function(e,t){var n,r,o,u,i;for(i=[],n=o=0,u=e.length;u>o;n=++o)r=e[n],i.push(t(r,n));return i},Y=b,Pt=function(e,t){var n,r,o,u;for(u=[],n=r=0,o=e-1;o>=0?o>=r:r>=o;n=o>=0?++r:--r)u.push(t(n));return u},K=function(e){return null===e},V=function(e){return void 0===e},F=function(e){return!V(e)},I=function(e){return V(e)||K(e)},j=function(e){return!I(e)},U=function(e){return I(e)||W(e)&&0===Object.keys(e).length||0===e.length},ht=function(e,t){return null==t&&(t=_),t(e)?e:void 0},_=function(e){return!U(e)},M=function(e){return"function"==typeof e},Q=function(e){return"string"==typeof e},N=function(e){return"number"==typeof e},z=function(e){return"object"==typeof e&&!!e},W=function(e){return z(e)||"function"==typeof e},R=function(e){return!(!e||1!==e.nodeType)},L=function(e){return e instanceof jQuery},q=function(e){return W(e)&&M(e.then)},O=function(e){return q(e)&&M(e.resolve)},D=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ut=function(e){return Array.prototype.slice.call(e)},f=function(e){return D(e)?e.slice():T({},e)},Ft=function(e){return L(e)?e.get(0):e},tt=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],T.apply(null,[{}].concat(e.call(t)))},dt=function(e,t){var n,r,o,u;if(o=e?f(e):{},t)for(r in t)n=t[r],u=o[r],j(u)?W(n)&&W(u)&&(o[r]=dt(u,n)):o[r]=n;return o},ft=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],y(t,j)},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},u=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},l=function(e){return $t(e,j)},Rt=function(e){var t;return t={},$t(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},$t=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 $t(e,function(e){return!t(e)})},P=function(e,t){return $t(e,function(e){return p(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,_)},ot=function(e){return setTimeout(e,0)},X=function(e){return e[e.length-1]},s=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Tt=et(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}),ct=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}},At=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()):ct(r)},A=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),U(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},v=function(e,n,o){var u,i,a,s,l,c;return u=t(e),o=dt(o,{duration:300,delay:0,easing:"ease"}),i=t.Deferred(),s={"transition-property":Object.keys(n).join(", "),"transition-duration":o.duration+"ms","transition-delay":o.delay+"ms","transition-timing-function":o.easing},l=A(u),c=At(u,s),u.css(n),i.then(l),i.then(c),u.data(r,i),i.then(function(){return u.removeData(r)}),a=setTimeout(function(){return i.resolve()},o.duration+o.delay),i.then(function(){return clearTimeout(a)}),i},r="up-animation-promise",C=function(e){return t(e).each(function(){var e;return(e=t(this).data(r))?e.resolve():void 0})},Z=function(e,n){var r,o,u,i,a,l;return n=dt(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&&(l=s(),o.right=l.width-(o.left+o.width),o.bottom=l.height-(o.top+o.height)),o},d=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},p=function(e,t){return e.indexOf(t)>=0},a=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},G=function(e){return e.getResponseHeader("X-Up-Location")},Dt=function(e){return e.getResponseHeader("X-Up-Title")},nt=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},x=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t=f(o),n=0,r=u.length;r>n;n++)i=u[n],delete t[i];return t},J=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},B=function(e){var t;return t=V(e.button)||0===e.button,t&&J(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()},st=function(){return t()},kt=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},Et=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],r.push(I(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},rt=function(e){var n,r,o,i,a,s,l;for(a={},l=[],r=[],o=0,i=e.length;i>o;o++)s=e[o],Q(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=st(),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),u(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||st()},a},i=function(t){var n,r,o,u,i,a,s,l,c,p,d,m;return null==t&&(t={}),d=void 0,r=function(){return d={}},r(),s=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.log?(n[0]="["+t.log+"] "+n[0],g.apply(null,n)):void 0},a=function(){return Object.keys(d)},l=function(){return I(t.size)?void 0:M(t.size)?t.size():N(t.size)?t.size:w("Invalid size config: %o",t.size)},o=function(){return I(t.expiry)?void 0:M(t.expiry)?t.expiry():N(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=f(a()),n=l(),n&&r.length>n&&(e=null,t=null,b(r,function(n){var r,o;return r=d[n],o=r.timestamp,!t||t>o?(e=n,t=o):void 0}),e)?delete d[e]:void 0},n=function(e,t){var n;return n=u(e),F(n)?p(t,n):void 0},m=function(){return(new Date).valueOf()},p=function(e,t){var n;return n=c(e),d[n]={timestamp:m(),value:t}},yt=function(e){var t;return t=c(e),delete d[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=void 0),r=c(e),(n=d[r])?i(n)?(s("Cache hit for %o",e),n.value):(s("Discarding stale cache entry for %o",e),yt(e),t):(s("Cache miss for %o",e),t)},{alias:n,get:u,set:p,remove:yt,clear:r,keys:a}},c=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){return T(t,e)},t.reset(),Object.preventExtensions(t),t},zt=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)},lt=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},E=function(e,n){var r,o,u,i;return r=t(e),o=lt(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;if(I(e))return[];if(D(e))return e;if(W(e)){n=[];for(t in e)r=e[t],n.push({name:t,value:r});return n}return w("Unknown options.data type for %o",e)},wt=function(e){var t,n;return t=bt(e),n="",_(t)&&(n+="?",b(t,function(e,t){return 0!==t&&(n+="&"),n+=encodeURIComponent(e.name)+"="+encodeURIComponent(e.value)})),n},{requestDataAsArray:bt,requestDataAsQueryString:wt,offsetParent:lt,fixedToAbsolute:E,presentAttr:vt,createElement:m,parseUrl:mt,normalizeUrl:at,normalizeMethod:it,createElementFromHtml:h,$createElementFromSelector:n,selectorForElement:Ct,extend:T,copy:f,merge:tt,options:dt,option:ft,error:w,debug:g,warn:Lt,each:b,map:Y,times:Pt,any:u,detect:y,select:$t,reject:gt,intersect:P,compact:l,uniq:Rt,last:X,isNull:K,isDefined:F,isUndefined:V,isGiven:j,isMissing:I,isPresent:_,isBlank:U,presence:ht,isObject:W,isFunction:M,isString:Q,isElement:R,isJQuery:L,isPromise:q,isDeferred:O,isHash:z,isUnmodifiedKeyEvent:J,isUnmodifiedMouseEvent:B,nullJQuery:st,unJQuery:Ft,nextFrame:ot,measure:Z,temporaryCss:At,cssAnimate:v,finishCssAnimate:C,forceCompositing:A,escapePressed:k,copyAttributes:d,findWithSelf:$,contains:p,isArray:D,toArray:Ut,castedAttr:a,locationFromXhr:G,titleFromXhr:Dt,methodFromXhr:nt,clientSize:s,only:pt,except:x,trim:Ot,unresolvableDeferred:Mt,unresolvablePromise:jt,resolvedPromise:xt,resolvedDeferred:St,resolvableWhen:kt,setMissingAttrs:Et,remove:yt,memoize:et,scrollbarWidth:Tt,config:c,cache:i,unwrapElement:zt,multiSelector:rt,evalConsoleTemplate:S}}($),up.error=up.util.error,up.warn=up.util.warn,up.debug=up.util.debug}.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;return h=up.util,f=function(e,n){var r,o,u,i;return null==n&&(n={}),i=h.option(n.method,"get").toLowerCase(),"get"===i?location.href=e+h.requestDataAsQueryString(n.data):(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),h.each(h.requestDataAsArray(n.data),o),r.hide().appendTo("body"),r.submit())},m=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],h.isDefined(console[r])||(r="log"),o()?console[r].apply(console,t):(n=h.evalConsoleTemplate.apply(h,t),console[r](n))},v=function(){return location.href},s=h.memoize(function(){return h.isUndefined(document.addEventListener)}),l=h.memoize(function(){return s()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),u=h.memoize(function(){return h.isDefined(history.pushState)&&"get"===a()}),n=h.memoize(function(){return"transition"in document.documentElement.style}),r=h.memoize(function(){return"oninput"in document.createElement("input")}),o=h.memoize(function(){return!l()}),c=h.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}),d=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,h.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},i=function(e){return h.isBlank(e)||i(e)?h.resolvedPromise():h.unresolvablePromise()},a=h.memoize(function(){return(d("_up_request_method")||"get").toLowerCase()}),p=function(){return!s()&&c()},{url:v,loadPage:f,confirm:i,canPushState:u,canCssTransition:n,canInputEvent:r,canLogSubstitution:o,isSupported:p,puts:m}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,emit,emitReset,forgetUpDescription,live,liveUpDescriptions,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||$(document),u.debug("Emitting %o on %o with props %o",e,n,t),n.trigger(r),r},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),!t.isDefaultPrevented()},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")},boot=function(){return up.browser.isSupported()?up.emit("up:framework:boot"):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;return m=up.util,n="up-destroyable",r="up-destroyer",a=[],l=null,i=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()?(i=t.pop(),n=m.options(t[0],{batch:!1}),a.push({selector:r,callback:i,batch:n.batch})):void 0},o=function(e,t,o){var u;return m.debug("Applying compiler %o on %o",e.selector,o),u=e.callback.apply(o,[t,s(t)]),m.isFunction(u)?(t.addClass(n),t.data(r,u)):void 0},u=function(e){var n,r,u,s;for(m.debug("Compiling fragment %o",e),s=[],r=0,u=a.length;u>r;r++)i=a[r],n=m.findWithSelf(e,i.selector),s.push(n.length?i.batch?o(i,n,n.get()):n.each(function(){return o(i,t(this),this)}):void 0);return s},f=function(e){return m.findWithSelf(e,"."+n).each(function(){var e,n;return e=t(this),(n=e.data(r))()})},s=function(e){var n,r;return n=t(e),r=n.attr("up-data"),m.isString(r)&&""!==m.trim(r)?JSON.parse(r):{}},d=function(){return l=m.copy(a)},p=function(){return a=m.copy(l)},c=function(e,n){var r,o;return r=t(e),o=m.options(n,{$element:r}),up.emit("up:fragment:inserted",o),r},up.on("ready",function(){return c(document.body)}),up.on("up:fragment:inserted",function(e,t){return u(t)}),up.on("up:fragment:destroy",function(e,t){return f(t)}),up.on("up:framework:boot",d),up.on("up:framework:reset",p),{compiler:i,hello:c,data:s}}(jQuery),up.compiler=up.syntax.compiler,up.hello=up.syntax.hello,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 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(),v.debug("Changing history to URL %o (%o)",n,e),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,o;return o=r(),v.debug("Restoring state %o (now on "+o+")",e),t=n.popTargets.join(", "),up.replace(t,o,{history:!1,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})},l=function(e){var t;return v.debug("History state popped to URL %o",r()),s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,(null!=t?t.fromUp:void 0)?h(t):v.debug("Discarding unknown state %o",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 %o",n,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 u.debug("Revealing %o",e),t=u.options(t),n=$(e),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()),u.debug("Saving scroll positions for URL %o: %o",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i,a,s,l,c;null==e&&(e={}),c=up.history.url(),o=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),o=t.add(n)):o=viewports(),l=lastScrollTops.get(c),u.debug("Restoring scroll positions for URL %o (viewports are %o, saved tops are %o)",c,o,l);for(i in l)s=l[i],a="document"===i?document:i,r=o.filter(a),scroll(r,s,{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,elementsInserted,findOldFragment,first,implant,isRealElement,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,resolveSelector,setSource,source,swapElements,u;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 %o in selector %o, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a;return u.debug("Replace %o with %o (options %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.proxy.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;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,(l=u.locationFromXhr(o))?(n=l,e&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(n+=u.requestDataAsQueryString(i.data)),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():implant(t,o.responseText,i)},implant=function(e,t,n){var r,o,i,a,s,l,c,p,f,d,m,h;for(n=u.options(n,{historyMethod:"push",requireMatch:!0}),m=resolveSelector(e,n.origin),d=parseResponse(t,n),n.title||(n.title=d.title()),n.saveScroll!==!1&&up.layout.saveScroll(),"function"==typeof n.beforeSwap&&n.beforeSwap(o,r),a=[],c=parseImplantSteps(m,n),s=0,l=c.length;l>s;s++)h=c[s],o=findOldFragment(h.selector,n),r=null!=(p=d.find(h.selector))?p.first():void 0,o&&r&&(i=swapElements(o,r,h.pseudoClass,h.transition,n),a.push(i));return"function"==typeof n.afterSwap&&n.afterSwap(o,r),(f=up.motion).when.apply(f,a)},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 %o 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 %o in response %o",r,e):void 0}}},elementsInserted=function(e,t){return t.history&&(t.title&&(document.title=t.title),up.history[t.historyMethod](t.history)),t.source!==!1&&setSource(e,t.source),autofocus(e),up.hello(e,{origin:t.origin})},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?(a="before"===n?"prepend":"append",i=t.contents().wrap('<span class="up-insertion"></span>').parent(),e[a](i),u.copyAttributes(t,e),elementsInserted(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)})):(l=function(){return t.insertBefore(e),elementsInserted(t,o),e.is("body")&&"none"!==r&&u.error("Cannot apply transitions to body-elements (%o)",r),up.morph(e,t,r,o)},destroy(e,{animation:l}))},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),u.isPresent(d)&&(m=d.split(n)),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 %o",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},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;return n=$(e),up.bus.nobodyPrevents("up:fragment:destroy",{$element:n})?(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.emit("up:fragment:destroyed",{$element:n}),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(){return setSource(document.body,up.browser.url())}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,implant:implant,first:first,source:source,resolveSelector:resolveSelector}}(jQuery),up.replace=up.flow.replace,up.implant=up.flow.implant,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first}.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 x=up.util,u={},s={},S={},l={},a=x.config({duration:300,delay:0,easing:"ease",enabled:!0}),g=function(){return u=x.copy(s),S=x.copy(l),a.reset()},d=function(){return a.enabled&&up.browser.canCssTransition()},n=function(t,o,u){var a;return a=e(t),p(a),u=r(u),"none"===o||o===!1?h():x.isFunction(o)?i(o(a,u),o):x.isString(o)?n(a,c(o),u):x.isHash(o)?d()?x.cssAnimate(a,o,u):(a.css(o),x.resolvedDeferred()):x.error("Unknown animation type for %o",o)},r=function(e,t){var n;return null==t&&(t=null),e=x.options(e),n={},n.easing=x.option(e.easing,null!=t?t.attr("up-easing"):void 0,a.easing),n.duration=Number(x.option(e.duration,null!=t?t.attr("up-duration"):void 0,a.duration)),n.delay=Number(x.option(e.delay,null!=t?t.attr("up-delay"):void 0,a.delay)),n
2
- },c=function(e){return u[e]||x.error("Unknown animation %o",e)},t="up-ghosting-promise",T=function(e,n,r,o){var u,i,a,s,l,c,p;return s=void 0,i=void 0,l=void 0,a=void 0,u=up.layout.viewportOf(e),x.temporaryCss(n,{display:"none"},function(){return s=v(e,u),s.$ghost.addClass("up-destroying"),s.$bounds.addClass("up-destroying"),l=u.scrollTop()}),x.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(n,r),i=v(n,u),a=u.scrollTop()}),s.moveTop(a-l),e.hide(),p=x.temporaryCss(n,{opacity:"0"}),c=o(s.$ghost,i.$ghost),e.data(t,c),n.data(t,c),c.then(function(){return e.removeData(t),n.removeData(t),p(),s.$bounds.remove(),i.$bounds.remove()}),c},p=function(t){return e(t).each(function(){var t;return t=e(this),x.finishCssAnimate(t),f(t)})},f=function(e){var n;return(n=e.data(t))?(x.debug("Canceling existing ghosting on %o",e),"function"==typeof n.resolve?n.resolve():void 0):void 0},i=function(e,t){return x.isDeferred(e)?e:x.error("Did not return a promise with .then and .resolve methods: %o",t)},m=function(t,o,a,s){var l,c,f,h,v,g;return x.debug("Morphing %o to %o (using %o)",t,o,a),c=e(t),l=e(o),h=x.only(s,"reveal","restoreScroll","source"),h=x.extend(h,r(s)),d()?(p(c),p(l),"none"===a||a===!1?b(c,l,h):(f=u[a])?(b(c,l,h),n(l,f,h)):(g=x.presence(a,x.isFunction)||S[a])?T(c,l,h,function(e,t){var n;return n=g(e,t,h),i(n,a)}):x.isString(a)&&a.indexOf("/")>=0?(v=a.split("/"),g=function(e,t,r){return y(n(e,v[0],r),n(t,v[1],r))},m(c,l,g,h)):x.error("Unknown transition %o",a)):b(c,l,h)},b=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},v=function(t,n){var r,o,u,i,a,s,l,c,p;for(i=x.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],x.fixedToAbsolute(a,n);return{$ghost:u,$bounds:r,moveTop:c}},k=function(e,t){return S[e]=t},o=function(e,t){return u[e]=t},w=function(){return s=x.copy(u),l=x.copy(S)},y=x.resolvableWhen,h=x.resolvedDeferred,o("none",h),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=x.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=x.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=x.measure(e),o=x.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=x.measure(e),o=x.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=x.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=x.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=x.measure(e),o=x.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=x.measure(e),o=x.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=x.temporaryCss(e,{height:"0px",overflow:"hidden"}),n(e,{height:r+"px"},t).then(o)}),k("none",h),k("move-left",function(e,t,r){return y(n(e,"move-to-left",r),n(t,"move-from-right",r))}),k("move-right",function(e,t,r){return y(n(e,"move-to-right",r),n(t,"move-from-left",r))}),k("move-up",function(e,t,r){return y(n(e,"move-to-top",r),n(t,"move-from-bottom",r))}),k("move-down",function(e,t,r){return y(n(e,"move-to-bottom",r),n(t,"move-from-top",r))}),k("cross-fade",function(e,t,r){return y(n(e,"fade-out",r),n(t,"fade-in",r))}),up.on("up:framework:boot",w),up.on("up:framework:reset",g),{morph:m,animate:n,animateOptions:r,finish:p,transition:k,animation:o,config:a,isEnabled:d,defaults:function(){return x.error("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:h,when:y,prependCopy:v}}(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,$,C,E,A,P,D,U,O,F;return F=up.util,n=void 0,C=void 0,i=void 0,x=void 0,a=void 0,A=[],m=F.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=F.cache({size:function(){return m.cacheSize},expiry:function(){return m.cacheExpiry},key:l,log:"up.proxy"}),h=function(e){var t,n,r,o,u,i,a;for(e=S(e),n=[e],"html"!==e.target&&(i=F.merge(e,{target:"html"}),n.push(i),"body"!==e.target&&(u=F.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},U=s.set,P=s.remove,d=s.clear,p=function(){return clearTimeout(C),C=null},c=function(){return clearTimeout(i),i=null},D=function(){return n=null,p(),c(),x=0,m.reset(),a=!1,s.clear(),A=[]},D(),o=s.alias,S=function(e){return e._normalized||(e.method=F.normalizeMethod(e.method),e.url&&(e.url=F.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=F.only(e,"url","method","data","target","headers","_normalized"),r=!0,g(u)||t?(o=h(u))&&!n?r="pending"===o.state():(o=w(u),U(u,o),o.fail(function(){return P(u)})):(d(),o=w(u)),r&&!e.preload&&(k(),o.always(b)),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"),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"),a=!1):void 0},w=function(e){return x<m.maxRequests?y(e):E(e)},E=function(e){var n,r;return F.debug("Queuing URL %o",e.url),n=t.Deferred(),r={deferred:n,request:e},A.push(r),n.promise()},y=function(e){var n;return F.debug("Fetching %o via %o",e.url,e.method),up.emit("up:proxy:load",e),e=F.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,e.data=F.requestDataAsArray(e.data),F.contains(m.wrapMethods,e.method)&&(e.data.push({name:m.wrapMethodParam,value:e.method}),e.method="POST"),n=t.ajax(e),n.always(function(){return up.emit("up:proxy:received",e),T()}),n},T=function(){var t,n;return(t=A.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),F.contains(m.safeMethods,e.method)},f=function(e){var t,r;return r=parseInt(F.presentAttr(e,"up-delay"))||m.preloadDelay,e.is(n)?void 0:(n=e,p(),t=function(){return $(e),n=null},O(t,r))},O=function(e,t){return C=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=F.options(n),o=up.link.followMethod(r,n),g({method:o})?(F.debug("Preloading %o",r),n.preload=!0,up.follow(r,n)):(F.debug("Won't preload %o due to unsafe method %o",r,o),F.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",D),{preload:$,ajax:r,get:h,alias:o,clear:d,remove:P,idle:v,busy:u,config:m,defaults:function(){return F.error("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery)}.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,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.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)&&up.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)&&error("Could not find default validation target for %o (tried ancestors %o)",e,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]")?(console.log("-- it is a radio button --"),t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),console.log("checked button is %o",t),console.log("checked button val is %o",t.val()),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(console.log("-- else -- for %o",e),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),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 %o",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,r;return r=u.$createElementFromSelector(".up-popup"),t.sticky&&r.attr("up-sticky",""),r.attr("up-covered-url",up.browser.url()),r.attr("up-covered-title",document.title),n=u.$createElementFromSelector(e),n.appendTo(r),r.appendTo(document.body),r},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})?(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")})):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")}),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,i;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"),i=u.$createElementFromSelector(e),i.appendTo(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})?(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")})):u.unresolvablePromise()})},close=function(e){var t,n;return t=$(".up-modal"),t.length?up.bus.nobodyPrevents("up:modal: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=n.then(function(){return unshiftElements(),up.emit("up: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 %o",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)},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);
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 Up.js (%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);
@@ -21,7 +21,9 @@ up.browser = (($) ->
21
21
  loadPage = (url, options = {}) ->
22
22
  method = u.option(options.method, 'get').toLowerCase()
23
23
  if method == 'get'
24
- location.href = url + u.requestDataAsQueryString(options.data)
24
+ query = u.requestDataAsQuery(options.data)
25
+ url = "#{url}?#{query}" if query
26
+ location.href = url
25
27
  else
26
28
  $form = $("<form method='post' action='#{url}'></form>")
27
29
  addField = (field) ->
@@ -58,7 +58,9 @@ up.flow = (($) ->
58
58
  Replaces elements on the current page with corresponding elements
59
59
  from a new page fetched from the server.
60
60
 
61
- The current and new elements must have the same CSS selector.
61
+ The current and new elements must both match the given CSS selector.
62
+
63
+ The UJS variant of this is the [`a[up-target]`](/a-up-target) selector.
62
64
 
63
65
  \#\#\#\# Example
64
66
 
@@ -76,7 +78,7 @@ up.flow = (($) ->
76
78
  <div class="one">new one</div>
77
79
  <div class="two">new two</div>
78
80
 
79
- Up.js looks for the selector `.two` in the response and [implants](/up.implant) it into
81
+ Up.js looks for the selector `.two` in the response and [implants](/up.extract) it into
80
82
  the current page. The current page now looks like this:
81
83
 
82
84
  <div class="one">old one</div>
@@ -198,7 +200,7 @@ up.flow = (($) ->
198
200
  preload: options.preload
199
201
  headers: options.headers
200
202
 
201
- promise = up.proxy.ajax(request)
203
+ promise = up.ajax(request)
202
204
 
203
205
  promise.done (html, textStatus, xhr) ->
204
206
  processResponse(true, target, url, request, xhr, options)
@@ -226,7 +228,8 @@ up.flow = (($) ->
226
228
  target: selector
227
229
  up.proxy.alias(request, newRequest)
228
230
  else if isReloadable
229
- url = url + u.requestDataAsQueryString(options.data)
231
+ if query = u.requestDataAsQuery(options.data)
232
+ url = "#{url}?#{query}"
230
233
 
231
234
  if isSuccess
232
235
  if isReloadable # e.g. GET returns 200 OK
@@ -248,9 +251,7 @@ up.flow = (($) ->
248
251
  if options.preload
249
252
  u.resolvedPromise()
250
253
  else
251
- implant(selector, xhr.responseText, options)
252
-
253
-
254
+ extract(selector, xhr.responseText, options)
254
255
 
255
256
  ###*
256
257
  Updates a selector on the current page with the
@@ -269,7 +270,7 @@ up.flow = (($) ->
269
270
  html = '<div class="one">new one</div>' +
270
271
  '<div class="two">new two</div>';
271
272
 
272
- up.flow.implant('.two', html);
273
+ up.extract('.two', html);
273
274
 
274
275
  Up.js looks for the selector `.two` in the strings and updates its
275
276
  contents in the current page. The current page now looks like this:
@@ -280,7 +281,7 @@ up.flow = (($) ->
280
281
  Note how only `.two` has changed. The update for `.one` was
281
282
  discarded, since it didn't match the selector.
282
283
 
283
- @function up.implant
284
+ @function up.extract
284
285
  @param {String|Element|jQuery} selectorOrElement
285
286
  @param {String} html
286
287
  @param {Object} [options]
@@ -290,29 +291,34 @@ up.flow = (($) ->
290
291
  and all animation has finished.
291
292
  @experimental
292
293
  ###
293
- implant = (selectorOrElement, html, options) ->
294
- options = u.options(options,
295
- historyMethod: 'push',
296
- requireMatch: true
297
- )
298
- selector = resolveSelector(selectorOrElement, options.origin)
299
- response = parseResponse(html, options)
300
- options.title ||= response.title()
301
-
302
- up.layout.saveScroll() unless options.saveScroll == false
303
-
304
- options.beforeSwap?($old, $new)
305
- deferreds = []
306
-
307
- for step in parseImplantSteps(selector, options)
308
- $old = findOldFragment(step.selector, options)
309
- $new = response.find(step.selector)?.first()
310
- if $old && $new
311
- deferred = swapElements($old, $new, step.pseudoClass, step.transition, options)
312
- deferreds.push(deferred)
313
-
314
- options.afterSwap?($old, $new)
315
- return up.motion.when(deferreds...)
294
+ extract = (selectorOrElement, html, options) ->
295
+ up.log.group 'Extracting %s from %d bytes of HTML', selectorOrElement, html?.length, ->
296
+ options = u.options(options,
297
+ historyMethod: 'push',
298
+ requireMatch: true,
299
+ keep: true
300
+ )
301
+ selector = resolveSelector(selectorOrElement, options.origin)
302
+ response = parseResponse(html, options)
303
+ options.title ||= response.title()
304
+
305
+ up.layout.saveScroll() unless options.saveScroll == false
306
+
307
+ options.beforeSwap?()
308
+ deferreds = []
309
+
310
+ updateHistory(options)
311
+
312
+ for step in parseImplantSteps(selector, options)
313
+ up.log.group 'Updating %s', step.selector, ->
314
+ $old = findOldFragment(step.selector, options)
315
+ $new = response.find(step.selector)?.first()
316
+ if $old && $new
317
+ deferred = swapElements($old, $new, step.pseudoClass, step.transition, options)
318
+ deferreds.push(deferred)
319
+
320
+ options.afterSwap?()
321
+ up.motion.when(deferreds...)
316
322
 
317
323
  findOldFragment = (selector, options) ->
318
324
  # Prefer to replace fragments in an open popup or modal
@@ -343,18 +349,10 @@ up.flow = (($) ->
343
349
  else if options.requireMatch
344
350
  u.error("Could not find selector %s in response %o", selector, html)
345
351
 
346
- elementsInserted = ($new, options) ->
352
+ updateHistory = (options) ->
347
353
  if options.history
348
354
  document.title = options.title if options.title
349
355
  up.history[options.historyMethod](options.history)
350
- # Remember where the element came from so we can
351
- # offer reload functionality.
352
- unless options.source is false
353
- setSource($new, options.source)
354
- autofocus($new)
355
- # The fragment should be compiled before animating,
356
- # so transitions see .up-current classes
357
- up.hello($new, origin: options.origin)
358
356
 
359
357
  swapElements = ($old, $new, pseudoClass, transition, options) ->
360
358
  transition ||= 'none'
@@ -366,8 +364,6 @@ up.flow = (($) ->
366
364
  up.motion.finish($old)
367
365
 
368
366
  if pseudoClass
369
- insertionMethod = if pseudoClass == 'before' then 'prepend' else 'append'
370
-
371
367
  # Text nodes are wrapped in a .up-insertion container so we can
372
368
  # animate them and measure their position/size for scrolling.
373
369
  # This is not possible for container-less text nodes.
@@ -375,42 +371,189 @@ up.flow = (($) ->
375
371
 
376
372
  # Note that since we're prepending/appending instead of replacing,
377
373
  # `$new` will not actually be inserted into the DOM, only its children.
378
- $old[insertionMethod]($wrapper)
374
+ if pseudoClass == 'before'
375
+ $old.prepend($wrapper)
376
+ else
377
+ $old.append($wrapper)
379
378
 
380
- u.copyAttributes($new, $old)
381
- elementsInserted($wrapper.children(), options)
379
+ hello($wrapper.children(), options)
382
380
 
383
381
  # Reveal element that was being prepended/appended.
384
382
  promise = up.layout.revealOrRestoreScroll($wrapper, options)
385
- promise = promise.then ->
386
- # Since we're adding content instead of replacing, we'll only
387
- # animate $new instead of morphing between $old and $new
388
- up.animate($wrapper, transition, options)
389
- promise = promise.then ->
390
- u.unwrapElement($wrapper)
391
- promise
383
+
384
+ # Since we're adding content instead of replacing, we'll only
385
+ # animate $new instead of morphing between $old and $new
386
+ promise = promise.then -> up.animate($wrapper, transition, options)
387
+
388
+ # Remove the wrapper now that is has served it purpose
389
+ promise = promise.then -> u.unwrapElement($wrapper)
390
+
391
+ else if keepPlan = findKeepPlan($old, $new, options)
392
+ emitFragmentKept(keepPlan)
393
+ promise = u.resolvedPromise()
392
394
 
393
395
  else
394
396
  replacement = ->
395
- # Don't insert the new element after the old element.
396
- # For some reason this will make the browser scroll to the
397
- # bottom of the new element.
397
+
398
+ options.keepPlans = transferKeepableElements($old, $new, options)
399
+
400
+ # Don't insert the new element after the old element. For some reason
401
+ # this will make the browser scroll to the bottom of the new element.
398
402
  $new.insertBefore($old)
399
- elementsInserted($new, options)
400
- if $old.is('body') && transition != 'none'
401
- u.error('Cannot apply transitions to body-elements')
403
+
404
+ # Remember where the element came from so we can
405
+ # offer reload functionality.
406
+ setSource($new, options.source) unless options.source is false
407
+
408
+ autofocus($new)
409
+
410
+ # The fragment should be compiled before animating,
411
+ # so transitions see .up-current classes
412
+ hello($new, options)
413
+
402
414
  # Morphing will also process options.reveal
403
415
  up.morph($old, $new, transition, options)
404
416
 
405
417
  # Wrap the replacement as a destroy animation, so $old will
406
418
  # get marked as .up-destroying right away.
407
- destroy $old, animation: replacement
419
+ promise = destroy($old, animation: replacement)
420
+
421
+ promise
422
+
423
+ transferKeepableElements = ($old, $new, options) ->
424
+ keepPlans = []
425
+ if options.keep
426
+ for keepable in $old.find('[up-keep]')
427
+ $keepable = $(keepable)
428
+ if plan = findKeepPlan($keepable, $new, u.merge(options, descendantsOnly: true))
429
+ # Replace $keepable with its clone so it looks good in a transition between
430
+ # $old and $new. Note that $keepable will still point to the same element
431
+ # after the replacement, which is now detached.
432
+ $keepableClone = $keepable.clone()
433
+ $keepable.replaceWith($keepableClone)
434
+ # Since we're going to swap the entire $old and $new containers afterwards,
435
+ # replace the matching element with $keepable so it will eventually return to the DOM.
436
+ plan.$newElement.replaceWith($keepable)
437
+ keepPlans.push(plan)
438
+ keepPlans
439
+
440
+ findKeepPlan = ($element, $new, options) ->
441
+ if options.keep
442
+ $keepable = $element
443
+ if partnerSelector = u.castedAttr($keepable, 'up-keep')
444
+ u.isString(partnerSelector) or partnerSelector = '&'
445
+ partnerSelector = resolveSelector(partnerSelector, $keepable)
446
+ if options.descendantsOnly
447
+ $partner = $new.find(partnerSelector)
448
+ else
449
+ $partner = u.findWithSelf($new, partnerSelector)
450
+ $partner = $partner.first()
451
+ if $partner.length && $partner.is('[up-keep]')
452
+ description =
453
+ $element: $keepable # the element that should be kept
454
+ $newElement: $partner # the element that would have replaced it but now does not
455
+ newData: up.syntax.data($partner) # the parsed up-data attribute of the element we will discard
456
+ keepEventArgs = u.merge(description, message: ['Keeping element %o', $keepable.get(0)])
457
+ if up.bus.nobodyPrevents('up:fragment:keep', keepEventArgs)
458
+ description
459
+
460
+ ###*
461
+ Elements with an `up-keep` attribute will be persisted during
462
+ [fragment updates](/a-up-target).
463
+
464
+ For example:
465
+
466
+ <audio up-keep src="song.mp3"></audio>
467
+
468
+ The element you're keeping should have an umambiguous class name, ID or `up-id`
469
+ attribute so Up.js can find its new position within the page update.
470
+
471
+ Emits events [`up:fragment:keep`](/up:fragment:keep) and [`up:fragment:kept`](/up:fragment:kept).
472
+
473
+ \#\#\#\# Controlling if an element will be kept
474
+
475
+ Up.js will **only** keep an existing element if:
476
+
477
+ - The existing element has an `up-keep` attribute
478
+ - The response contains an element matching the CSS selector of the existing element
479
+ - The matching element *also* has an `up-keep` attribute
480
+ - The [`up:fragment:keep`](/up:fragment:keep) event that is [emitted](/up.emit) on the existing element
481
+ is not prevented by a event listener.
482
+
483
+ Let's say we want only keep an `<audio>` element as long as it plays
484
+ the same song (as identified by the tag's `src` attribute).
485
+
486
+ On the client we can achieve this by listening to an `up:keep:fragment` event
487
+ and preventing it if the `src` attribute of the old and new element differ:
488
+
489
+ up.compiler('audio', function($element) {
490
+ $element.on('up:fragment:keep', function(event) {
491
+ if $element.attr('src') !== event.$newElement.attr('src') {
492
+ event.preventDefault();
493
+ }
494
+ });
495
+ });
496
+
497
+ If we don't want to solve this on the client, we can achieve the same effect
498
+ on the server. By setting the value of the `up-keep` attribute we can
499
+ define the CSS selector used for matching elements.
500
+
501
+ <audio up-keep="audio[src='song.mp3']" src="song.mp3"></audio>
502
+
503
+ Now, if a response no longer contains an `<audio src="song.mp3">` tag, the existing
504
+ element will be destroyed and replaced by a fragment from the response.
505
+
506
+ @selector [up-keep]
507
+ @stable
508
+ ###
509
+
510
+ ###*
511
+ This event is [emitted](/up.emit) before an existing element is [kept](/up-keep) during
512
+ a page update.
513
+
514
+ Event listeners can call `event.preventDefault()` on an `up:fragment:keep` event
515
+ to prevent the element from being persisted. If the event is prevented, the element
516
+ will be replaced by a fragment from the response.
517
+
518
+ @event up:fragment:keep
519
+ @param event.preventDefault()
520
+ Event listeners may call this method to prevent the element from being preserved.
521
+ @param {jQuery} event.$element
522
+ The fragment that will be kept.
523
+ @param {jqQuery} event.$newElement
524
+ The discarded element.
525
+ @param {jQuery} event.newData
526
+ The value of the [`up-data`](/up-data) attribute of the discarded element,
527
+ parsed as a JSON object.
528
+ @stable
529
+ ###
530
+
531
+ ###*
532
+ This event is [emitted](/up.emit) when an existing element has been [kept](/up-keep)
533
+ during a page update.
534
+
535
+ Event listeners can inspect the discarded update through `event.$newElement`
536
+ and `event.newData` and then modify the preserved element when necessary.
537
+
538
+ @event up:fragment:kept
539
+ @param {jQuery} event.$element
540
+ The fragment that has been kept.
541
+ @param {jqQuery} event.$newElement
542
+ The discarded element.
543
+ @param {jQuery} event.newData
544
+ The value of the [`up-data`](/up-data) attribute of the discarded element,
545
+ parsed as a JSON object.
546
+ @stable
547
+ ###
408
548
 
409
549
  parseImplantSteps = (selector, options) ->
410
- transitionString = options.transition || options.animation || 'none'
550
+ transitionArg = options.transition || options.animation || 'none'
411
551
  comma = /\ *,\ */
412
552
  disjunction = selector.split(comma)
413
- transitions = transitionString.split(comma) if u.isPresent(transitionString)
553
+ if u.isString(transitions)
554
+ transitions = transitionArg.split(comma)
555
+ else
556
+ transitions = [transitionArg]
414
557
  for selectorAtom, i in disjunction
415
558
  # Splitting the atom
416
559
  selectorParts = selectorAtom.match(/^(.+?)(?:\:(before|after))?$/)
@@ -426,6 +569,68 @@ up.flow = (($) ->
426
569
  pseudoClass: pseudoClass
427
570
  transition: transition
428
571
 
572
+ ###*
573
+ Compiles a page fragment that has been inserted into the DOM
574
+ without Up.js.
575
+
576
+ **As long as you manipulate the DOM using Up.js, you will never
577
+ need to call this method.** You only need to use `up.hello` if the
578
+ DOM is manipulated without Up.js' involvement, e.g. by setting
579
+ the `innerHTML` property or calling jQuery methods like
580
+ `html`, `insertAfter` or `appendTo`:
581
+
582
+ $element = $('.element');
583
+ $element.html('<div>...</div>');
584
+ up.hello($element);
585
+
586
+ This function emits the [`up:fragment:inserted`](/up:fragment:inserted)
587
+ event.
588
+
589
+ @function up.hello
590
+ @param {String|Element|jQuery} selectorOrElement
591
+ @param {String|Element|jQuery} [options.origin]
592
+ @param {String|Element|jQuery} [options.kept]
593
+ @return {jQuery}
594
+ The compiled element
595
+ @stable
596
+ ###
597
+ hello = (selectorOrElement, options) ->
598
+ $element = $(selectorOrElement)
599
+ options = u.options(options, keepPlans: [])
600
+ keptElements = []
601
+ for plan in options.keepPlans
602
+ emitFragmentKept(plan)
603
+ keptElements.push(plan.$element)
604
+ up.syntax.compile($element, skip: keptElements)
605
+ emitFragmentInserted($element, options)
606
+ $element
607
+
608
+ ###*
609
+ When a page fragment has been [inserted or updated](/up.replace),
610
+ this event is [emitted](/up.emit) on the fragment.
611
+
612
+ \#\#\#\# Example
613
+
614
+ up.on('up:fragment:inserted', function(event, $fragment) {
615
+ console.log("Looks like we have a new %o!", $fragment);
616
+ });
617
+
618
+ @event up:fragment:inserted
619
+ @param {jQuery} event.$element
620
+ The fragment that has been inserted or updated.
621
+ @stable
622
+ ###
623
+ emitFragmentInserted = (fragment, options) ->
624
+ $fragment = $(fragment)
625
+ up.emit 'up:fragment:inserted',
626
+ $element: $fragment
627
+ message: ['Inserted fragment %o', $fragment.get(0)]
628
+ origin: options.origin
629
+
630
+ emitFragmentKept = (keepPlan) ->
631
+ eventAttrs = u.merge(keepPlan, message: ['Kept fragment %o', keepPlan.$element.get(0)])
632
+ up.emit('up:fragment:kept', eventAttrs)
633
+
429
634
  autofocus = ($element) ->
430
635
  selector = '[autofocus]:last'
431
636
  $control = u.findWithSelf($element, selector)
@@ -513,6 +718,7 @@ up.flow = (($) ->
513
718
  animationDeferred = u.presence(options.animation, u.isDeferred) ||
514
719
  up.motion.animate($element, options.animation, animateOptions)
515
720
  animationDeferred.then ->
721
+ up.syntax.clean($element)
516
722
  # Emit this while $element is still part of the DOM, so event
517
723
  # listeners bound to the document will receive the event.
518
724
  up.emit 'up:fragment:destroyed', $element: $element, message: destroyedMessage
@@ -577,23 +783,27 @@ up.flow = (($) ->
577
783
  sourceUrl = options.url || source(selectorOrElement)
578
784
  replace(selectorOrElement, sourceUrl, options)
579
785
 
580
- up.on('ready', ->
581
- setSource(document.body, up.browser.url())
582
- )
786
+ up.on 'ready', ->
787
+ $body = $(document.body)
788
+ setSource($body, up.browser.url())
789
+ hello($body)
583
790
 
584
791
  knife: eval(Knife?.point)
585
792
  replace: replace
586
793
  reload: reload
587
794
  destroy: destroy
588
- implant: implant
795
+ extract: extract
589
796
  first: first
590
797
  source: source
591
798
  resolveSelector: resolveSelector
799
+ hello: hello
592
800
 
593
801
  )(jQuery)
594
802
 
595
803
  up.replace = up.flow.replace
596
- up.implant = up.flow.implant
804
+ up.extract = up.flow.extract
597
805
  up.reload = up.flow.reload
598
806
  up.destroy = up.flow.destroy
599
807
  up.first = up.flow.first
808
+ up.hello = up.flow.hello
809
+