unpoly-rails 0.28.1 → 0.29.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.
Potentially problematic release.
This version of unpoly-rails might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +19 -1
- data/dist/unpoly.js +376 -259
- data/dist/unpoly.min.js +3 -3
- data/lib/assets/javascripts/unpoly/browser.js.coffee +2 -2
- data/lib/assets/javascripts/unpoly/bus.js.coffee +40 -13
- data/lib/assets/javascripts/unpoly/flow.js.coffee +9 -9
- data/lib/assets/javascripts/unpoly/form.js.coffee +18 -18
- data/lib/assets/javascripts/unpoly/history.js.coffee +1 -1
- data/lib/assets/javascripts/unpoly/layout.js.coffee +9 -9
- data/lib/assets/javascripts/unpoly/link.js.coffee +34 -24
- data/lib/assets/javascripts/unpoly/modal.js.coffee +38 -37
- data/lib/assets/javascripts/unpoly/motion.js.coffee +20 -23
- data/lib/assets/javascripts/unpoly/navigation.js.coffee +101 -37
- data/lib/assets/javascripts/unpoly/popup.js.coffee +24 -16
- data/lib/assets/javascripts/unpoly/proxy.js.coffee +3 -3
- data/lib/assets/javascripts/unpoly/syntax.js.coffee +29 -37
- data/lib/assets/javascripts/unpoly/tooltip.js.coffee +18 -9
- data/lib/assets/javascripts/unpoly/util.js.coffee +15 -7
- data/lib/unpoly/rails/version.rb +1 -1
- data/spec_app/Gemfile.lock +1 -1
- data/spec_app/spec/javascripts/helpers/trigger.js.coffee +6 -0
- data/spec_app/spec/javascripts/up/bus_spec.js.coffee +9 -8
- data/spec_app/spec/javascripts/up/form_spec.js.coffee +10 -10
- data/spec_app/spec/javascripts/up/link_spec.js.coffee +25 -20
- data/spec_app/spec/javascripts/up/modal_spec.js.coffee +53 -44
- data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +8 -8
- data/spec_app/spec/javascripts/up/popup_spec.js.coffee +92 -44
- data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +46 -4
- metadata +2 -2
data/dist/unpoly.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
(function(){window.up={version:"0.28.1"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,D,E,T,C,P,O,F,R,U,L,I,_,M,N,j,K,W,q,H,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,ce,pe,fe,de,me,he,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,De,Ee,Te,Ce,Pe,Oe,Fe,Re,Ue,Le,Ie,_e,Me,Ne,je,Ke,We,qe,He,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt;return ge=n.noop,pe=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))}},ne=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},be=function(e,t){var n,r,o;return n=Ee(e),r=n.protocol+"//"+n.hostname,ne(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(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},Ee=function(e){var t;return t=null,re(e)?(t=n("<a>").attr({href:e}).get(0),N(t.hostname)&&(t.href=t.href)):t=Ye(e),t},ye=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],p=null,d=0,h=u.length;h>d;d++)switch(s=u[d],s[0]){case".":i.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),ee(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},qe=function(e){var t,r,o,i,u,a,s,l,c;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),c=Pe(t.attr("up-id")))l="[up-id='"+c+"']";else if(i=Pe(t.attr("id")))l="#"+i;else if(s=Pe(t.attr("name")))l="[name='"+s+"']";else if(r=Pe(ve(t)))for(l="",o=0,a=r.length;a>o;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},ve=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),We(n,function(e){return ee(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=b("head"),s.appendChild(a),c=b("title",p[1]),a.appendChild(c)),s):b("div",e)},T=n.extend,Ge=n.trim,$=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;i>n;r=++n)o=e[r],u.push(t(o,r));return u},le=$,Ve=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(t(r));return i},G=function(e){return null===e},oe=function(e){return void 0===e},K=function(e){return!oe(e)},X=function(e){return oe(e)||G(e)},J=function(e){return!X(e)},N=function(e){return X(e)||Z(e)&&0===Object.keys(e).length||0===e.length},Pe=function(e,t){return null==t&&(t=ee),t(e)?e:void 0},ee=function(e){return!N(e)},Q=function(e){return"function"==typeof e},re=function(e){return"string"==typeof e},Y=function(e){return"number"==typeof e},V=function(e){return"object"==typeof e&&!!e},Z=function(e){return V(e)||"function"==typeof e},q=function(e){return!(!e||1!==e.nodeType)},B=function(e){return e instanceof jQuery},te=function(e){return Z(e)&&Q(e.then)},j=function(e){return te(e)&&Q(e.resolve)},M=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},z=function(e){return up.browser.canFormData()&&e instanceof FormData},Xe=function(e){return Array.prototype.slice.call(e)},g=function(e){return M(e)?e.slice():V(e)?T({},e):void 0},Ye=function(e){return B(e)?e.get(0):e},fe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],T.apply(null,[{}].concat(e.call(t)))},De=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],J(i)?Z(n)&&Z(i)&&(o[r]=De(i,n)):o[r]=n;return o},xe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],S(t,J)},S=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){i=!1;break}return i},m=function(e){return We(e,J)},Ze=function(e){var t;return t={},We(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},We=function(e,t){var n;return n=[],$(e,function(e){return t(e)?n.push(e):void 0}),n},Re=function(e,t){return We(e,function(e){return!t(e)})},_=function(e,t){return We(e,function(e){return v(t,e)})},Oe=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;o>e;e++)n=r[e],i.push(t.attr(n));return i}(),S(o,ee)},ze=function(e,t){return e>0?setTimeout(t,e):t()},he=function(e){return setTimeout(e,0)},ae=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Ke=pe(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"50px",height:"50px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),A=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},Se=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}},Je=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):Se(i)},U=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),N(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},L=function(e){return e=Ye(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,c,p,f;return o=n(e),r=De(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),Ne()):(u=n.Deferred(),p=Object.keys(t),l={"transition-property":p.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),c=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;return t=e.originalEvent.propertyName,v(p,t)?(u.resolve(),c()):void 0},o.on("transitionend",s),u.then(c),f=U(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;return o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]),e?(L(o),o.css(a)):void 0}),u)},i="up-animation-deferred",F=function(e){return n(e).each(function(){var e;return(e=Te(this,i))?e.resolve():void 0})},ce=function(e,t){var r,o,i,u,a;return t=De(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},O=function(e,t){return e.find(t).addBack(t)},D=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},se=function(e){return e.getResponseHeader("X-Up-Location")},Be=function(e){return e.getResponseHeader("X-Up-Title")},de=function(e){return e.getResponseHeader("X-Up-Method")},Ae=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},E=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;r>n;n++)u=i[n],delete t[u];return t},ie=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},ue=function(e){var t;return t=oe(e.button)||0===e.button,t&&ie(e)},Ne=function(){var e;return e=n.Deferred(),e.resolve(),e},je=function(){return Ne().promise()},et=function(){return n.Deferred()},tt=function(){return et().promise()},we=function(){return n()},Me=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[Ne()].concat(e.call(t))),r.resolve=pe(function(){return $(t,function(e){return e.resolve()})}),r},He=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],X(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},Ue=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},me=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;i>o;o++)a=e[o],re(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=we(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||we()},u},p=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return null==t&&(t={}),h=void 0,d=function(e){return function(){var n;return n=t[e],Y(n)?n:Q(n)?n():void 0}},p=d("size"),o=d("expiry"),f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==p()&&0!==o()},r=function(){return h={}},r(),l=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix?(n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)):void 0},s=function(){return Object.keys(h)},c=function(){var e,t,n,r;return r=g(s()),e=p(),e&&r.length>=e&&(t=null,n=null,$(r,function(e){var r,o;return r=h[e],o=r.timestamp,!n||n>o?(t=e,n=o):void 0}),t)?delete h[t]:void 0},n=function(e,t){var n;return n=i(e,{silent:!0}),K(n)?m(t,n):void 0},v=function(){return(new Date).valueOf()},m=function(e,t){var n;return u()?(c(),n=f(e),h[n]={timestamp:v(),value:t}):void 0},Ue=function(e){var t;return t=f(e),delete h[t]},a=function(e){var t,n;return t=o(),t?(n=v()-e.timestamp,t>n):!0},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=h[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void Ue(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:m,remove:Ue,clear:r,keys:s}},h=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,Q(n)&&(n=n()),T(t,n)},t.reset(),Object.preventExtensions(t),t},nt=function(e){var t,n;return e=Ye(e),t=e.parentNode,n=Xe(e.childNodes),$(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},ke=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},H=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},R=function(e,t){var r,o,i,u;return r=n(e),o=ke(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},Le=function(e){var t,n,r,o,i,u,a;if(z(e))return up.fail("Cannot convert FormData into an array");for(u=Ie(e),t=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ee(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ie=function(e){var t;return z(e)?up.fail("Cannot convert FormData into a query string"):ee(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},_e=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},c=function(e,t,n){var r;return z(e)?e.append(t,n):M(e)?e.push({name:t,value:n}):Z(e)?e[t]=n:(re(e)||X(e))&&(r=Ie([{name:t,value:n}]),e=ee(e)?[e,r].join("&"):r),e},P=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],M(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),rt().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&","<":"<",">":">",'"':"""},x=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Ce=function(e,t){var n;return n=e[t],delete e[t],n},Te=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},C=function(e){var t;return t=ae(e),V(t)&&!B(t)?e.pop():{}},$e=function(e){var t;return t=n(e).css("opacity"),J(t)?parseFloat(t):void 0},rt=pe(function(){var e;return n.isReady?je():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),I=function(e){return e},W=function(e){return e=Ye(e),!jQuery.contains(document.documentElement,e)},Fe=function(t){var r,o;return r=n.Deferred(),o=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.apply(null,n).then(function(){return r.resolve()})},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=le(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;return!this.currentTask&&(this.currentTask=this.queue.shift())?(e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))):void 0},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=le(t,Fe),this.poke()},r}(),Qe=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},{sequence:function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return le(t,function(e){return e()})}},isDetached:W,requestDataAsArray:Le,requestDataAsQuery:Ie,appendRequestData:c,requestDataFromForm:_e,offsetParent:ke,fixedToAbsolute:R,isFixed:H,presentAttr:Oe,createElement:b,parseUrl:Ee,normalizeUrl:be,normalizeMethod:ye,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:qe,extend:T,copy:g,merge:fe,options:De,option:xe,fail:P,each:$,map:le,times:Ve,any:l,all:s,detect:S,select:We,reject:Re,intersect:_,compact:m,uniq:Ze,last:ae,isNull:G,isDefined:K,isUndefined:oe,isGiven:J,isMissing:X,isPresent:ee,isBlank:N,presence:Pe,isObject:Z,isFunction:Q,isString:re,isNumber:Y,isElement:q,isJQuery:B,isPromise:te,isDeferred:j,isHash:V,isArray:M,isFormData:z,isUnmodifiedKeyEvent:ie,isUnmodifiedMouseEvent:ue,nullJQuery:we,unJQuery:Ye,setTimer:ze,nextFrame:he,measure:ce,temporaryCss:Je,cssAnimate:k,finishCssAnimate:F,forceCompositing:U,forceRepaint:L,escapePressed:D,copyAttributes:y,findWithSelf:O,contains:v,toArray:Xe,castedAttr:f,locationFromXhr:se,titleFromXhr:Be,methodFromXhr:de,clientSize:d,only:Ae,except:E,trim:Ge,unresolvableDeferred:et,unresolvablePromise:tt,resolvedPromise:je,resolvedDeferred:Ne,resolvableWhen:Me,setMissingAttrs:He,remove:Ue,memoize:pe,scrollbarWidth:Ke,documentHasVerticalScrollbar:A,config:h,cache:p,unwrapElement:nt,multiSelector:me,error:P,pluckData:Te,pluckKey:Ce,extractOptions:C,isDetached:W,noop:ge,opacity:$e,whenReady:rt,identity:I,escapeHtml:x,DivertibleChain:u,submittedValue:Qe}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,c;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;i>o;o++)n=s[o],(c=t.attr(n))&&(l+=" "+n+'="'+c+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;t>e;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(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,whenEmitted;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||up.fail("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},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},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 emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})):void 0},live("up:framework:booted",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,whenEmitted:whenEmitted,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.log=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return h=up.util,r=up.browser,n="up.log.enabled",o=h.config({prefix:"[UP] ",enabled:h.option(r.sessionStorage().getItem(n),!1),collapse:!1}),d=function(){return o.reset()},c=function(e){return""+o.prefix+e},i=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["debug",c(n)].concat(e.call(t))):void 0},f=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["log",c(n)].concat(e.call(t))):void 0},v=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["warn",c(n)].concat(e.call(t))):void 0},l=function(){var t,n,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!o.enabled||!i)return n();u=o.collapse?"groupCollapsed":"group",r.puts.apply(r,[u,c(i)].concat(e.call(t)));try{return n()}finally{i&&r.puts("groupEnd")}},s=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?r.puts.apply(r,["error",c(n)].concat(e.call(t))):void 0},p=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=o.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",r.puts("log",e)},up.on("up:framework:boot",p),up.on("up:framework:reset",d),m=function(e){return r.sessionStorage().setItem(n,e),o.enabled=e},a=function(){return m(!0)},u=function(){return m(!1)},{puts:f,debug:i,error:s,warn:v,group:l,config:o,enable:a,disable:u}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,c,p;return p=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+p.escapeHtml(e)+"</span>"},c=p.config({$toast:null}),l=function(){return i(),c.reset()},a=function(t){return p.isArray(t)?(t[0]=p.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=p.escapeHtml(t),t},u=function(){return!!c.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),c.$toast=s},i=function(){return u()?(c.$toast.remove(),c.$toast=null):void 0},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y;return y=up.util,n="up-destructable",r="up-destructors",c=[],h=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[c].concat(e.call(t)))},m=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[h].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u;return up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(u=y.isString(e.keep)?e.keep:"",t.attr("up-keep",u)),i=e.callback.apply(n,[t,p(t)]),(r=f(i))?o(t,r):void 0},f=function(e){return y.isFunction(e)?e:y.isArray(e)&&y.all(e,y.isFunction)?y.sequence.apply(y,e):void 0},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,p;for(s=[h,c],p=[],o=0,u=s.length;u>o;o++)a=s[o],p.push(function(){var o,u,s;for(s=[],o=0,u=a.length;u>o;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return p})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;for(e=t(this),i=e.data(r),u=0,a=i.length;a>u;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)})},p=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(c,e),y.each(h,e)},v=function(){var e;return e=function(e){return e.isDefault},c=y.select(c,e),h=y.select(h,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:m,compile:s,clean:a,data:p}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,u=void 0,m=function(){return n.reset(),c=void 0,u=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 u&&(c=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},p=function(e,t){return t=v.options(t,{force:!1}),e=a(e),!t.force&&o(e)||!up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e})?void 0:(i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e}))},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},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,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},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 up.fail("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-viewport","[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),
|
2
|
-
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)||up.fail("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,i;for(o=$(config.fixedTop.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"top"));return i}(),e=function(){var e,t,o,i;for(o=$(config.fixedBottom.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"bottom"));return i}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),p=r.scrollTop(),s=p,c=void 0,l=void 0,v?(l=measureObstruction(),c=0):(l={top:0,bottom:0},c=p),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+c,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==p?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e,t){var n,r;return null==t&&(t={}),n=$(e),r=viewportSelector().seekUp(n),0===r.length&&t.strict!==!1&&up.fail("Could not find viewport for %o",n),r},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,i,u;for(i={},o=config.viewports,t=0,r=o.length;r>t;t++)u=o[t],e=$(u),e.length&&(n=u,u===document&&(n="document"),i[n]=e.scrollTop());return i},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 up.fail("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,config,destroy,emitFragmentInserted,emitFragmentKept,extract,filterScripts,findKeepPlan,findOldFragment,first,firstInLayer,firstInPriority,hello,isRealElement,layerOf,matchesLayer,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,reset,resolveSelector,setSource,shouldExtractTitle,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,config=u.config({runInlineScripts:!0,runLinkedScripts:!1}),reset=function(){return config.reset()},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)):up.fail("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,s,l;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),l=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(s={url:t,method:n.method,data:n.data,target:l,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},n.inspectResponse=function(){return up.browser.loadPage(t,u.only(n,"method","data"))},a=up.ajax(s),i=function(e,r,o){return processResponse(!0,l,t,s,o,n)},o=function(e,o,i){return processResponse(!1,r,t,s,e,n)},a=a.then(i,o)):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,c;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),a="GET"===i.method,(c=u.locationFromXhr(o))?(n=c,e&&up.proxy.isCachable(r)&&(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)),shouldExtractTitle(i)&&(i.title=u.titleFromXhr(o)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},shouldExtractTitle=function(e){return!(e.title===!1||u.isString(e.title)||e.history===!1&&e.title!==!0)},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;return n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),i=resolveSelector(e,n.origin),o=parseResponse(t,n),shouldExtractTitle(n)&&(n.title=o.title()),n.saveScroll!==!1&&up.layout.saveScroll(),r=u.resolvedPromise(),n.beforeSwap&&(r=r.then(n.beforeSwap)),r=r.then(function(){return updateHistory(n)}),r=r.then(function(){var e,t,r,u,a;for(a=[],r=parseImplantSteps(i,n),e=0,t=r.length;t>e;e++)u=r[e],up.log.group("Updating %s",u.selector,function(){var e,t,r;return t=findOldFragment(u.selector,n),e=o.first(u.selector),t&&e?(filterScripts(e,n),r=swapElements(t,e,u.pseudoClass,u.transition,n),a.push(r),n.reveal=!1):void 0});return $.when.apply($,a)}),n.afterSwap&&(r=r.then(n.afterSwap)),r})},findOldFragment=function(e,t){return first(e,t)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n,r;return t.requireMatch?(n=t.layer,"auto"===n&&(n="page, modal or popup"),r="Could not find selector %s in the current "+n,"#"===r[0]&&(r+=" (avoid using IDs)"),up.fail(r,e)):void 0},filterScripts=function(e,t){var n,r,o,i,a,s,l,c,p,f;for(c=u.option(t.runInlineScripts,config.runInlineScripts),p=u.option(t.runLinkedScripts,config.runLinkedScripts),r=u.findWithSelf(e,"script"),l=[],a=0,s=r.length;s>a;a++)f=r[a],n=$(f),i=u.isPresent(n.attr("src")),o=!i,i&&p||o&&c?l.push(void 0):l.push(n.remove());return l},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},first:function(r){var o,i;return(o=$.find(r,n)[0])?$(o):t.requireMatch?(i={label:"Open response",callback:t.inspectResponse},up.fail(["Could not find selector %s in response %o",r,e],{action:i})):void 0}}},updateHistory=function(e){return e=u.options(e,{historyMethod:"push"}),e.history&&up.history[e.historyMethod](e.history),e.title?document.title=e.title: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().wrapAll('<div class="up-insertion"></div>').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),e.is("body")?(up.syntax.clean(e),e.replaceWith(t)):t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,c,p;if(a=[],n.keep)for(p=e.find("[up-keep]"),i=0,l=p.length;l>i;i++)s=p[i],r=$(s),(c=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),c.$newElement.replaceWith(r),a.push(c));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)c=r[o],p=c.match(/^(.+?)(?:\:(before|after))?$/),p||up.fail('Could not parse selector atom "%s"',c),e=p[1],"html"===e&&(e="body"),s=p[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e,t){return t=u.options(t,{layer:"auto"}),"auto"===t.layer?firstInPriority(e,t.origin):firstInLayer(e,t.layer)},firstInPriority=function(e,t){var n,r,o,i,a,s;for(i=["popup","modal","page"],n=void 0,u.isPresent(t)&&(s=layerOf(t),u.remove(i,s),i.unshift(s)),r=0,a=i.length;a>r&&(o=i[r],!(n=firstInLayer(e,o)));r++);return n},firstInLayer=function(e,t){var n,r,o,i,u,a;for(r=$(e),o=void 0,u=0,a=r.length;a>u;u++)if(i=r[u],n=$(i),isRealElement(n)&&matchesLayer(n,t)){o=n;break}return o},layerOf=function(e){var t;return t=$(e),up.popup.contains(t)?"popup":up.modal.contains(t)?"modal":"page"},matchesLayer=function(e,t){return layerOf(e)===t},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)]),0===n.length?u.resolvedDeferred():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"),updateHistory(t),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("up:app:boot",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),up.on("up:framework:reset",reset),{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,config:config}}(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(){var e=[].slice;up.motion=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,D,E,T,C;return T=up.util,a={},c={},D={},p={},l=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return m(),a=T.copy(c),D=T.copy(p),l.reset()},v=function(){return l.enabled&&up.browser.canCssTransition()},o=function(e,n,r){var u;return u=t(e),m(u),r=i(r),"none"===n||n===!1?b():T.isFunction(n)?s(n(u,r),n):T.isString(n)?o(u,d(n),r):T.isHash(n)?v()?T.cssAnimate(u,n,r):(u.css(n),T.resolvedDeferred()):up.fail("Unknown animation type for %o",n)},i=function(){var t,n,r,o,i;return n=1<=arguments.length?e.call(arguments,0):[],i=n.shift()||{},t=T.isJQuery(n[0])?n.shift():T.nullJQuery(),o=T.isObject(n[0])?n.shift():{},r={},r.easing=T.option(i.easing,T.presentAttr(t,"up-easing"),o.easing,l.easing),r.duration=Number(T.option(i.duration,T.presentAttr(t,"up-duration"),o.duration,l.duration)),r.delay=Number(T.option(i.delay,T.presentAttr(t,"up-delay"),o.delay,l.delay)),r},d=function(e){return a[e]||up.fail("Unknown animation %o",e)},r="up-ghosting-deferred",n="up-ghosting",C=function(e,t,o,i){var u,a,s,l,c,p,f,d;return o.copy===!1||e.is(".up-ghost")||t.is(".up-ghost")?i(e,t):(p=void 0,l=void 0,f=void 0,c=void 0,a=up.layout.viewportOf(e),u=e.add(t),T.temporaryCss(t,{display:"none"},function(){return p=w(e,a),f=a.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(t,o),l=w(t,a),c=a.scrollTop()}),p.moveTop(c-f),e.hide(),d=T.temporaryCss(t,{opacity:"0"}),s=i(p.$ghost,l.$ghost),u.data(r,s),u.addClass(n),s.then(function(){return u.removeData(r),u.removeClass(n),d(),p.$bounds.remove(),l.$bounds.remove()}),s)},m=function(e){var r,o,i;return null==e&&(e=".up-animating"),o=t(e),r=T.findWithSelf(o,".up-animating"),T.finishCssAnimate(r),i=T.findWithSelf(o,"."+n),h(i)},h=function(e){return e.each(function(){var e,n;return e=t(this),(n=T.pluckData(e,r))?n.resolve():void 0})},s=function(e,t){return T.isDeferred(e)?e:up.fail("Did not return a promise with .then and .resolve methods: %o",t)},y=function(e,n,r,u){var l,c;return"none"===r&&(r=!1),u=T.options(u),c=t(e),l=t(n),f(c,r),f(l,r),up.log.group(r?"Morphing %o to %o (using %s, %o)":void 0,c.get(0),l.get(0),r,u,function(){var e,t,n,p;return t=T.only(u,"reveal","restoreScroll","source"),t=T.extend(t,i(u)),v()?(m(c),m(l),r?(e=a[r])?(A(c,l,t),o(l,e,t)):(p=T.presence(r,T.isFunction)||D[r])?C(c,l,t,function(e,n){var o;return o=p(e,n,t),s(o,r)}):T.isString(r)&&r.indexOf("/")>=0?(n=r.split("/"),p=function(e,t,r){return S(o(e,n[0],r),o(t,n[1],r))},y(c,l,p,t)):up.fail("Unknown transition %o",r):A(c,l,t)):A(c,l,t)})},f=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),up.fail("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},A=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},w=function(e,n){var r,o,i,u,a,s,l,c,p;for(u=T.measure(e,{relative:!0,inner:!0}),i=e.clone(),i.find("script").remove(),i.css({position:"static"===e.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=t('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),p=u.top,c=function(e){return 0!==e?(p+=e,r.css({top:p})):void 0},i.appendTo(r),r.insertBefore(e),c(e.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:c}},x=function(e,t){return D[e]=t},u=function(e,t){return a[e]=t},$=function(){return c=T.copy(a),p=T.copy(D)},S=T.resolvableWhen,b=T.resolvedDeferred,g=function(e){return e===!1||"none"===e||e===b},u("none",b),u("fade-in",function(e,t){return e.css({opacity:0}),o(e,{opacity:1},t)}),u("fade-out",function(e,t){return e.css({opacity:1}),o(e,{opacity:0},t)}),E=function(e,t){return{transform:"translate("+e+"px, "+t+"px)"}},u("move-to-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(E(0,0)),o(e,E(0,-r),t)}),u("move-from-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(E(0,-r)),o(e,E(0,0),t)}),u("move-to-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(E(0,0)),o(e,E(0,r),t)}),u("move-from-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(E(0,r)),o(e,E(0,0),t)}),u("move-to-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(E(0,0)),o(e,E(-r,0),t)}),u("move-from-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(E(-r,0)),o(e,E(0,0),t)}),u("move-to-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(E(0,0)),o(e,E(r,0),t)}),u("move-from-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(E(r,0)),o(e,E(0,0),t)}),u("roll-down",function(e,t){var n,r,i;return r=e.height(),i=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n=o(e,{height:r+"px"},t),n.then(i),n}),x("none",b),x("move-left",function(e,t,n){return S(o(e,"move-to-left",n),o(t,"move-from-right",n))}),x("move-right",function(e,t,n){return S(o(e,"move-to-right",n),o(t,"move-from-left",n))}),x("move-up",function(e,t,n){return S(o(e,"move-to-top",n),o(t,"move-from-bottom",n))}),x("move-down",function(e,t,n){return S(o(e,"move-to-bottom",n),o(t,"move-from-top",n))}),x("cross-fade",function(e,t,n){return S(o(e,"fade-out",n),o(t,"fade-in",n))}),up.on("up:framework:booted",$),up.on("up:framework:reset",k),{morph:y,animate:o,animateOptions:i,finish:m,transition:x,animation:u,config:l,isEnabled:v,defaults:function(){return up.fail("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:b,when:S,prependCopy:w,isNone: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,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,D,E,T,C,P,O,F,R,U,L;return L=up.util,n=void 0,x=void 0,F=void 0,S=void 0,R=void 0,E=[],p=L.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),u=function(e){return k(e),[e.url,e.method,L.requestDataAsQuery(e.data),e.target].join("|")},i=L.cache({size:function(){return p.cacheSize},expiry:function(){return p.cacheExpiry},key:u}),f=function(e){var t,n,r,o,u,a,s;if(e=k(e),m(e))for(n=[e],"html"!==e.target&&(a=L.merge(e,{target:"html"}),n.push(a),"body"!==e.target&&(u=L.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],s=i.get(t))return s},a=function(){return clearTimeout(x),x=null},s=function(){return clearTimeout(F),F=null},C=function(){return n=null,a(),s(),S=0,p.reset(),i.clear(),R=!1,E=[]},C(),k=function(e){return e._normalized||(e.method=L.normalizeMethod(e.method),e.url&&(e.url=L.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(){var t,n,r,o,i,u,a;return t=1<=arguments.length?e.call(arguments,0):[],o=L.extractOptions(t),L.isGiven(t[0])&&(o.url=t[0]),n=o.cache===!0,r=o.cache===!1,a=L.only(o,"url","method","data","target","headers","_normalized"),a=k(a),i=!0,h(a)||n?(u=f(a))&&!r?(up.puts("Re-using cached response for %s %s",a.method,a.url),i="pending"===u.state()):(u=b(a),O(a,u),u.fail(function(){return T(a)})):(c(),u=b(a)),i&&!o.preload&&(w(),u.always(y)),u},m=function(e){return!L.isFormData(e.data)},v=function(){return 0===S},d=function(){return S>0},w=function(){var e,t;return t=v(),S+=1,t?(e=function(){return d()?(up.emit("up:proxy:slow",{message:"Proxy is busy"}),R=!0):void 0},F=L.setTimer(p.slowDelay,e)):void 0},y=function(){return S-=1,v()&&R?(up.emit("up:proxy:recover",{message:"Proxy is idle"}),R=!1):void 0},b=function(e){return S<p.maxRequests?g(e):D(e)},D=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},E.push(r),n.promise()},g=function(e){var n;return up.emit("up:proxy:load",L.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=L.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,L.contains(p.wrapMethods,e.method)&&(e.data=L.appendRequestData(e.data,p.wrapMethodParam,e.method),e.method="POST"),L.isFormData(e.data)&&(e.contentType=!1,e.processData=!1),n=t.ajax(e),n.done(function(t,n,r){return P(e,r)}),n.fail(function(t,n,r){return P(e,t)}),n},P=function(e,t){var n;return up.emit("up:proxy:received",L.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),A()},A=function(){var t,n;(t=E.shift())&&(n=g(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)}))},o=i.alias,O=i.set,T=i.remove,c=i.clear,h=function(e){return k(e),L.contains(p.safeMethods,e.method)},l=function(e){var t,r;return r=parseInt(L.presentAttr(e,"up-delay"))||p.preloadDelay,e.is(n)?void 0:(n=e,a(),t=function(){return $(e),n=null},U(t,r))},U=function(e,t){return x=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=L.options(n),o=up.link.followMethod(r,n),h({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),L.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:l(t)}),up.on("up:framework:reset",C),{preload:$,ajax:r,get:f,alias:o,clear:c,remove:T,isIdle:v,isBusy:d,isCachable:m,config:p,defaults:function(){return up.fail("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.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.whenConfirmed(t).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(e){},onAction=function(e,t){var n;return followVariantSelectors.push(e),n=function(e){return up.navigation.withActiveMark(e,{enlarge:!0},function(){return t(e)})},up.on("click","a"+e+", [up-href]"+e,function(e,t){return shouldProcessLinkEvent(e,t)?t.is("[up-instant]")?e.preventDefault():(e.preventDefault(),n(t)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,t){return shouldProcessLinkEvent(e,t)?(e.preventDefault(),n(t)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-dash]",{priority:"last"},function(e){var t,n;return n=u.castedAttr(e,"up-dash"),e.removeAttr("up-dash"),t={"up-preload":"","up-instant":""},n===!0?makeFollowable(e):t["up-target"]=n,u.setMissingAttrs(e,t)}),up.macro("[up-expand]",{priority:"last"},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)}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeField,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a,s,l;return n=$(e).closest("form"),t=u.options(t),s=u.option(t.target,n.attr("up-target"),"body"),l=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.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.data=up.util.requestDataFromForm(n),t=u.merge(t,up.motion.animateOptions(t,n)),i=n.find("input[type=file]").length,r=!i||u.isFormData(t.data),o=up.browser.canPushState()||t.history===!1,t.validate&&(t.headers||(t.headers={}),t.transition=!1,t.failTransition=!1,t.headers["X-Up-Validate"]=t.validate,!r)?u.unresolvablePromise():(up.navigation.markActive(n),r&&o?(a=up.replace(s,l,t),a.always(function(){return up.navigation.unmarkActive(n)}),a):(n.get(0).submit(),u.unresolvablePromise()))},observe=function(){var $element,$fields,callback,callbackArg,delay,destructors,extraArgs,options,rawCallback,selectorOrElement;return selectorOrElement=arguments[0],extraArgs=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===extraArgs.length?callbackArg=extraArgs[0]:extraArgs.length>1&&(options=u.options(extraArgs[0]),callbackArg=extraArgs[1]),$element=$(selectorOrElement),$fields=u.multiSelector(config.fields).findWithSelf($element),callback=null,rawCallback=u.option(callbackArg,u.presentAttr($fields,"up-observe")),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||up.fail("up.observe: No change callback given"),delay=u.option($fields.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),destructors=u.map($fields,function(e){return observeField($(e),options,callback)}),u.sequence.apply(u,destructors)},observeField=function(e,t,n){var r,o,i,a,s,l,c,p;return l=null,o=null,r=u.resolvedPromise(),c=null,p=function(){var e;return c?(e=c(),c=null,e):void 0},a=function(){var o,i,a;return a=u.submittedValue(e),i=u.isNull(l),l===a||(l=a,i)?void 0:(s(),c=function(){return n.apply(e.get(0),[a,e])},o=function(){return r.then(function(){var e;return e=p(),r=u.isPromise(e)?e:u.resolvedPromise()})},u.setTimer(t,o))},s=function(){return clearTimeout(o)},i="input change",up.browser.canInputEvent()||(i+=" keypress paste cut click propertychange"),e.on(i,a),a(),function(){return e.off(i,a),s()}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),up.navigation.withActiveMark(t,function(){return submit(n)})})},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)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||up.fail("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return e.preventDefault(),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets,autosubmit:autosubmit}}(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 align,attachAsap,attachNow,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,isOpen,reset,state,u;return u=up.util,config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),state=u.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,coveredUrl:null,coveredTitle:null}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$popup)&&e.remove(),state.reset(),chain.reset(),config.reset()},align=function(){var e,t,n;switch(e={},n=u.measure(state.$popup),u.isFixed(state.$anchor)?(t=state.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=u.measure(state.$anchor),
|
3
|
-
state.position){case"bottom-right":e.top=t.top+t.height,e.left=t.left+t.width-n.width;break;case"bottom-left":e.top=t.top+t.height,e.left=t.left;break;case"top-right":e.top=t.top-n.height,e.left=t.left+t.width-n.width;break;case"top-left":e.top=t.top-n.height,e.left=t.left;break;default:up.fail("Unknown position option '%s'",state.position)}return state.$popup.attr("up-position",state.position),state.$popup.css(e)},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e){var t;return t=u.$createElementFromSelector(".up-popup"),u.$createPlaceholder(e,t),t.appendTo(document.body),state.$popup=t},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},attachAsap=function(e,t){var n;return n=function(){return attachNow(e,t)},isOpen()?chain.asap(closeNow,n):chain.asap(n),chain.promise()},attachNow=function(e,t){var n,r,o,i,a,s;return n=$(e),n.length||up.fail("Cannot attach popup to non-existing element %o",e),t=u.options(t),s=u.option(u.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=u.option(u.pluckKey(t,"html")),a=u.option(u.pluckKey(t,"target"),n.attr("up-popup"),"body"),i=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"),config.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")),t.method=up.link.followMethod(n,t),t.layer="popup",r=up.motion.animateOptions(t,n,{duration:config.openDuration,easing:config.openEasing}),up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:popup:open",{url:s,message:"Opening popup"}).then(function(){var e,l;return state.phase="opening",state.$anchor=n,state.position=i,t.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),state.sticky=t.sticky,t.beforeSwap=function(){return createFrame(a)},e=u.merge(t,{animation:!1}),l=o?up.extract(a,o,e):up.replace(a,s,e),l=l.then(function(){return align(),up.animate(state.$popup,t.animation,r)}),l=l.then(function(){return state.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t;return isOpen()?(e=u.options(e,{animation:config.closeAnimation,history:state.coveredUrl,title:state.coveredTitle}),t=up.motion.animateOptions(e,{duration:config.closeDuration,easing:config.closeEasing}),u.extend(e,t),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:state.$popup}).then(function(){return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,up.destroy(state.$popup,e).then(function(){return state.phase="closed",state.$popup=null,state.$anchor=null,state.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):u.resolvedPromise()},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},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")?closeAsap():attachAsap(e)}),up.on("mousedown","body",function(e,t){var n;return n=$(e.target),n.closest(".up-popup, [up-popup]").length?void 0:closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(closeAsap),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attachAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var animate,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,extractAsap,flavor,flavorDefault,flavorOverrides,followAsap,isOpen,markAsAnimating,openAsap,openNow,reset,shiftElements,state,templateHtml,u,unshiftElements,visitAsap;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:null,closeDuration:null,openEasing:null,closeEasing:null,backdropOpenAnimation:"fade-in",backdropCloseAnimation:"fade-out",closeLabel:"\xd7",closable:!0,sticky:!1,flavors:{"default":{}},template:function(e){return'<div class="up-modal">\n <div class="up-modal-backdrop"></div>\n <div class="up-modal-viewport">\n <div class="up-modal-dialog">\n <div class="up-modal-content"></div>\n <div class="up-modal-close" up-close>'+flavorDefault("closeLabel")+"</div>\n </div>\n </div>\n</div>"}}),state=u.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,unshifters:[]}}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$modal)&&e.remove(),unshiftElements(),state.reset(),chain.reset(),config.reset()},templateHtml=function(){var e;return e=flavorDefault("template"),u.isFunction(e)?e(config):e},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e,t){var n,r,o;return o=$(templateHtml()),o.attr("up-flavor",state.flavor),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),state.closable||o.find(".up-modal-close").remove(),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),state.$modal=o},shiftElements=function(){var e,t,n,r,o;return u.documentHasVerticalScrollbar()?(e=$("body"),r=u.scrollbarWidth(),t=parseInt(e.css("padding-right")),n=r+t,o=u.temporaryCss(e,{"padding-right":n+"px","overflow-y":"hidden"}),state.unshifters.push(o),up.layout.anchoredRight().each(function(){var e,t,n,o;return e=$(this),t=parseInt(e.css("right")),n=r+t,o=u.temporaryCss(e,{right:n}),state.unshifters.push(o)})):void 0},unshiftElements=function(){var e,t;for(e=[];t=state.unshifters.pop();)e.push(t());return e},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},followAsap=function(e,t){return t=u.options(t),t.$link=$(e),openAsap(t)},visitAsap=function(e,t){return t=u.options(t),t.url=e,openAsap(t)},extractAsap=function(e,t,n){return n=u.options(n),n.html=t,n.history=u.option(n.history,!1),n.target=e,openAsap(n)},openAsap=function(e){var t;return t=function(){return openNow(e)},isOpen()?chain.asap(closeNow,t):chain.asap(t),chain.promise()},openNow=function(e){var t,n,r,o,i;return e=u.options(e),t=u.option(u.pluckKey(e,"$link"),u.nullJQuery()),i=u.option(u.pluckKey(e,"url"),t.attr("up-href"),t.attr("href")),r=u.option(u.pluckKey(e,"html")),o=u.option(u.pluckKey(e,"target"),t.attr("up-modal"),"body"),e.flavor=u.option(e.flavor,t.attr("up-flavor")),e.width=u.option(e.width,t.attr("up-width"),flavorDefault("width",e.flavor)),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),flavorDefault("maxWidth",e.flavor)),e.height=u.option(e.height,t.attr("up-height"),flavorDefault("height")),e.animation=u.option(e.animation,t.attr("up-animation"),flavorDefault("openAnimation",e.flavor)),e.backdropAnimation=u.option(e.backdropAnimation,t.attr("up-backdrop-animation"),flavorDefault("backdropOpenAnimation",e.flavor)),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky"),flavorDefault("sticky",e.flavor)),e.closable=u.option(e.closable,u.castedAttr(t,"up-closable"),flavorDefault("closable",e.flavor)),e.confirm=u.option(e.confirm,t.attr("up-confirm")),e.method=up.link.followMethod(t,e),e.layer="modal",n=up.motion.animateOptions(e,t,{duration:flavorDefault("openDuration",e.flavor),easing:flavorDefault("openEasing",e.flavor)}),e.history=u.option(e.history,u.castedAttr(t,"up-history"),flavorDefault("history",e.flavor)),up.browser.canPushState()||(e.history=!1),up.browser.whenConfirmed(e).then(function(){return up.bus.whenEmitted("up:modal:open",{url:i,message:"Opening modal"}).then(function(){var t,a;return state.phase="opening",state.flavor=e.flavor,state.sticky=e.sticky,state.closable=e.closable,e.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),e.beforeSwap=function(){return createFrame(o,e)},t=u.merge(e,{animation:!1}),a=r?up.extract(o,r,t):up.replace(o,i,t),a=a.then(function(){return shiftElements(),animate(e.animation,e.backdropAnimation,n)}),a=a.then(function(){return state.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t,n,r,o;return isOpen()?(e=u.options(e),o=u.option(e.animation,flavorDefault("closeAnimation")),n=u.option(e.backdropAnimation,flavorDefault("backdropCloseAnimation")),t=up.motion.animateOptions(e,{duration:flavorDefault("closeDuration"),easing:flavorDefault("closeEasing")}),r=u.options(u.except(e,"animation","duration","easing","delay"),{history:state.coveredUrl,title:state.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:state.$modal,message:"Closing modal"}).then(function(){var e;return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,e=animate(o,n,t),e=e.then(function(){return up.destroy(state.$modal,r)}),e=e.then(function(){return unshiftElements(),state.phase="closed",state.$modal=null,state.flavor=null,state.sticky=null,state.closable=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):u.resolvedPromise()},markAsAnimating=function(e){return null==e&&(e=!0),state.$modal.toggleClass("up-modal-animating",e)},animate=function(e,t,n){var r;return up.motion.isNone(e)?u.resolvedPromise():(markAsAnimating(),r=$.when(up.animate(state.$modal.find(".up-modal-viewport"),e,n),up.animate(state.$modal.find(".up-modal-backdrop"),t,n)),r=r.then(function(){return markAsAnimating(!1)}))},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},flavor=function(e,t){return null==t&&(t={}),u.extend(flavorOverrides(e),t)},flavorOverrides=function(e){var t;return(t=config.flavors)[e]||(t[e]={})},flavorDefault=function(e,t){var n;return null==t&&(t=state.flavor),t&&(n=flavorOverrides(t)[e]),u.isMissing(n)&&(n=config[e]),n},up.link.onAction("[up-modal]",function(e){return followAsap(e)}),up.on("click","body",function(e,t){var n;if(state.closable)return n=$(e.target),n.closest(".up-modal-dialog").length||n.closest("[up-modal]").length?void 0:closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin)&&!up.popup.contains(t))return autoclose()}),up.bus.onEscape(function(){return state.closable?closeAsap():void 0}),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visitAsap,follow:followAsap,extract:extractAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen,flavor:flavor}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return f=up.util,a=f.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:100,closeDuration:50,openEasing:null,closeEasing:null}),p=f.config({phase:"closed",$anchor:null,$tooltip:null,position:null}),o=new f.DivertibleChain,c=function(){var e;return null!=(e=p.$tooltip)&&e.remove(),p.reset(),o.reset(),a.reset()},t=function(){var e,t,n;switch(e={},n=f.measure(p.$tooltip),f.isFixed(p.$anchor)?(t=p.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=f.measure(p.$anchor),p.position){case"top":e.top=t.top-n.height,e.left=t.left+.5*(t.width-n.width);break;case"left":e.top=t.top+.5*(t.height-n.height),e.left=t.left-n.width;break;case"right":e.top=t.top+.5*(t.height-n.height),e.left=t.left+t.width;break;case"bottom":e.top=t.top+t.height,e.left=t.left+.5*(t.width-n.width);break;default:up.fail("Unknown position option '%s'",p.position)}return p.$tooltip.attr("up-position",p.position),p.$tooltip.css(e)},s=function(e){var t;return t=f.$createElementFromSelector(".up-tooltip"),f.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),p.$tooltip=t},n=function(e,t){var n;return null==t&&(t={}),n=function(){return r(e,t)},l()?o.asap(u,n):o.asap(n),o.promise()},r=function(n,r){var o,i,u,l,c,d;return o=e(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),d=f.option(r.text,o.attr("up-tooltip")),c=f.option(r.position,o.attr("up-position"),a.position),u=f.option(r.animation,f.castedAttr(o,"up-animation"),a.openAnimation),i=up.motion.animateOptions(r,o,{duration:a.openDuration,easing:a.openEasing}),p.phase="opening",p.$anchor=o,s({text:d,html:l}),p.position=c,t(),up.animate(p.$tooltip,u,i).then(function(){return p.phase="opened"})},i=function(e){return l()&&o.asap(function(){return u(e)}),o.promise()},u=function(e){var t;return l()?(e=f.options(e,{animation:a.closeAnimation}),t=up.motion.animateOptions(e,{duration:a.closeDuration,easing:a.closeEasing}),f.extend(e,t),p.phase="closing",up.destroy(p.$tooltip,e).then(function(){return p.phase="closed",p.$tooltip=null,p.$anchor=null})):f.resolvedPromise()},l=function(){return"opening"===p.phase||"opened"===p.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseenter",function(){return n(e)}),e.on("mouseleave",function(){return i()})}),up.on("click","body",function(e,t){return i()}),up.on("up:framework:reset",c),up.bus.onEscape(function(){return i()}),{config:a,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){var e=[].slice;up.navigation=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h;return f=up.util,o=f.config({currentClasses:["up-current"]}),c=function(){return o.reset()},i=function(){var e;return e=o.currentClasses,e=e.concat(["up-current"]),e=f.uniq(e),e.join(" ")},n="up-active",r="a, [up-href]",l=function(e){return f.isPresent(e)?f.normalizeUrl(e):void 0},p=function(e){var t,n,r,o,i,u,a,s,c,p;for(s=[],u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(t=u[n],c=f.presentAttr(e,t))for(p="up-alias"===t?c.split(" "):[c],r=0,i=p.length;i>r;r++)a=p[r],"#"!==a&&(a=l(a),s.push(a));return s},m=function(e){var t,n,r,o;return e=f.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return f.contains(e,t)},n=function(t){return f.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return f.detect(e,r)},{matchesAny:o}},a=function(){var e,n;return e=m([l(up.browser.url()),l(up.modal.url()),l(up.modal.coveredUrl()),l(up.popup.url()),l(up.popup.coveredUrl())]),n=i(),f.each(t(r),function(r){var o,i;return o=t(r),i=p(o),e.matchesAny(i)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},u=function(e,n){var o;return o=t(e),n=f.options(n,{enlarge:!1}),n.enlarge?f.presence(o.parent(r))||o:o},s=function(e,t){var r;return r=u(e,t),r.addClass(n)},d=function(e,t){var r;return r=u(e,t),r.removeClass(n)},h=function(){var n,r,o,i,u,a;return i=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=r.pop(),u=f.options(r.pop()),n=t(i),s(n,u),a=o(),f.isPromise(a)?a.always(function(){return d(n,u)}):up.warn("Expected block to return a promise, but got %o",a),a},up.on("up:fragment:inserted",function(){return a()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?a():void 0}),up.on("up:framework:reset",c),{config:o,defaults:function(){return up.fail("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")},markActive:s,unmarkActive:d,withActiveMark:h}}(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,i;return t="data-"+e,i="up-"+e,up.compiler("["+t+"]",function(e){var u;return n()&&o(e)?(u={},u[i]=e.attr(t),r.setMissingAttrs(e,u),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={version:"0.29.0"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C,P,O,F,R,U,L,I,_,M,N,j,K,W,q,H,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,ce,pe,fe,de,me,he,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,Ee,De,Te,Ce,Pe,Oe,Fe,Re,Ue,Le,Ie,_e,Me,Ne,je,Ke,We,qe,He,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt,ot;return ge=n.noop,pe=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))}},ne=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},be=function(e,t){var n,r,o;return n=De(e),r=n.protocol+"//"+n.hostname,ne(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(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},De=function(e){var t;return t=null,re(e)?(t=n("<a>").attr({href:e}).get(0),N(t.hostname)&&(t.href=t.href)):t=Ze(e),t},ye=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],p=null,d=0,h=u.length;h>d;d++)switch(s=u[d],s[0]){case".":i.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),ee(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},qe=function(e){var t,r,o,i,u,a,s,l,c;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),c=Pe(t.attr("up-id")))l="[up-id='"+c+"']";else if(i=Pe(t.attr("id")))l="#"+i;else if(s=Pe(t.attr("name")))l="[name='"+s+"']";else if(r=Pe(ve(t)))for(l="",o=0,a=r.length;a>o;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},ve=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),We(n,function(e){return ee(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=b("head"),s.appendChild(a),c=b("title",p[1]),a.appendChild(c)),s):b("div",e)},T=n.extend,Ye=n.trim,$=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;i>n;r=++n)o=e[r],u.push(t(o,r));return u},le=$,Be=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(t(r));return i},G=function(e){return null===e},oe=function(e){return void 0===e},K=function(e){return!oe(e)},X=function(e){return oe(e)||G(e)},J=function(e){return!X(e)},N=function(e){return X(e)||Z(e)&&0===Object.keys(e).length||0===e.length},Pe=function(e,t){return null==t&&(t=ee),t(e)?e:void 0},ee=function(e){return!N(e)},Q=function(e){return"function"==typeof e},re=function(e){return"string"==typeof e},Y=function(e){return"number"==typeof e},V=function(e){return"object"==typeof e&&!!e},Z=function(e){return V(e)||"function"==typeof e},q=function(e){return!(!e||1!==e.nodeType)},B=function(e){return e instanceof jQuery},te=function(e){return Z(e)&&Q(e.then)},j=function(e){return te(e)&&Q(e.resolve)},M=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},z=function(e){return up.browser.canFormData()&&e instanceof FormData},Ge=function(e){return Array.prototype.slice.call(e)},g=function(e){return M(e)?e.slice():V(e)?T({},e):void 0},Ze=function(e){return B(e)?e.get(0):e},fe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],T.apply(null,[{}].concat(e.call(t)))},Ee=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],J(i)?Z(n)&&Z(i)&&(o[r]=Ee(i,n)):o[r]=n;return o},xe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],S(t,J)},S=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){i=!1;break}return i},m=function(e){return We(e,J)},et=function(e){var t;return t={},We(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},We=function(e,t){var n;return n=[],$(e,function(e){return t(e)?n.push(e):void 0}),n},Re=function(e,t){return We(e,function(e){return!t(e)})},_=function(e,t){return We(e,function(e){return v(t,e)})},Oe=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;o>e;e++)n=r[e],i.push(t.attr(n));return i}(),S(o,ee)},Qe=function(e,t){return e>0?setTimeout(t,e):t()},he=function(e){return setTimeout(e,0)},ae=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Ke=pe(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),A=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},Se=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}},Ve=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):Se(i)},U=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),N(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},L=function(e){return e=Ze(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,c,p,f;return o=n(e),r=Ee(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),Ne()):(u=n.Deferred(),p=Object.keys(t),l={"transition-property":p.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),c=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;return t=e.originalEvent.propertyName,v(p,t)?(u.resolve(),c()):void 0},o.on("transitionend",s),u.then(c),f=U(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;return o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]),e?(L(o),o.css(a)):void 0}),u)},i="up-animation-deferred",F=function(e){return n(e).each(function(){var e;return(e=Te(this,i))?e.resolve():void 0})},ce=function(e,t){var r,o,i,u,a;return t=Ee(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},O=function(e,t){return e.find(t).addBack(t)},E=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},se=function(e){return e.getResponseHeader("X-Up-Location")},Xe=function(e){return e.getResponseHeader("X-Up-Title")},de=function(e){return e.getResponseHeader("X-Up-Method")},Ae=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},D=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;r>n;n++)u=i[n],delete t[u];return t},ie=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},ue=function(e){var t;return t=oe(e.button)||0===e.button,t&&ie(e)},Ne=function(){var e;return e=n.Deferred(),e.resolve(),e},je=function(){return Ne().promise()},tt=function(){return n.Deferred()},nt=function(){return tt().promise()},we=function(){return n()},Me=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[Ne()].concat(e.call(t))),r.resolve=pe(function(){return $(t,function(e){return e.resolve()})}),r},ze=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],X(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},Ue=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},me=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;i>o;o++)a=e[o],re(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=we(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||we()},u},p=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return null==t&&(t={}),h=void 0,d=function(e){return function(){var n;return n=t[e],Y(n)?n:Q(n)?n():void 0}},p=d("size"),o=d("expiry"),f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==p()&&0!==o()},r=function(){return h={}},r(),l=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix?(n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)):void 0},s=function(){return Object.keys(h)},c=function(){var e,t,n,r;return r=g(s()),e=p(),e&&r.length>=e&&(t=null,n=null,$(r,function(e){var r,o;return r=h[e],o=r.timestamp,!n||n>o?(t=e,n=o):void 0}),t)?delete h[t]:void 0},n=function(e,t){var n;return n=i(e,{silent:!0}),K(n)?m(t,n):void 0},v=function(){return(new Date).valueOf()},m=function(e,t){var n;return u()?(c(),n=f(e),h[n]={timestamp:v(),value:t}):void 0},Ue=function(e){var t;return t=f(e),delete h[t]},a=function(e){var t,n;return t=o(),t?(n=v()-e.timestamp,t>n):!0},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=h[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void Ue(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:m,remove:Ue,clear:r,keys:s}},h=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,Q(n)&&(n=n()),T(t,n)},t.reset(),Object.preventExtensions(t),t},rt=function(e){var t,n;return e=Ze(e),t=e.parentNode,n=Ge(e.childNodes),$(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},ke=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},H=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},R=function(e,t){var r,o,i,u;return r=n(e),o=ke(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},Le=function(e){var t,n,r,o,i,u,a;if(z(e))return up.fail("Cannot convert FormData into an array");for(u=Ie(e),t=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ee(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ie=function(e){var t;return z(e)?up.fail("Cannot convert FormData into a query string"):ee(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},_e=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},c=function(e,t,n){var r;return z(e)?e.append(t,n):M(e)?e.push({name:t,value:n}):Z(e)?e[t]=n:(re(e)||X(e))&&(r=Ie([{name:t,value:n}]),e=ee(e)?[e,r].join("&"):r),e},P=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],M(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),ot().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&","<":"<",">":">",'"':"""},x=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Ce=function(e,t){var n;return n=e[t],delete e[t],n},Te=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},C=function(e){var t;return t=ae(e),V(t)&&!B(t)?e.pop():{}},$e=function(e){var t;return t=n(e).css("opacity"),J(t)?parseFloat(t):void 0},ot=pe(function(){var e;return n.isReady?je():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),I=function(e){return e},W=function(e){return e=Ze(e),!jQuery.contains(document.documentElement,e)},Fe=function(t){var r,o;return r=n.Deferred(),o=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.apply(null,n).then(function(){return r.resolve()})},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=le(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;return!this.currentTask&&(this.currentTask=this.queue.shift())?(e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))):void 0},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=le(t,Fe),this.poke()},r}(),Je=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},He=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return le(t,function(e){return e()})}},{isDetached:W,requestDataAsArray:Le,requestDataAsQuery:Ie,appendRequestData:c,requestDataFromForm:_e,offsetParent:ke,fixedToAbsolute:R,isFixed:H,presentAttr:Oe,createElement:b,parseUrl:De,normalizeUrl:be,normalizeMethod:ye,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:qe,extend:T,copy:g,merge:fe,options:Ee,option:xe,fail:P,each:$,map:le,times:Be,any:l,all:s,detect:S,select:We,reject:Re,intersect:_,compact:m,uniq:et,last:ae,isNull:G,isDefined:K,isUndefined:oe,isGiven:J,isMissing:X,isPresent:ee,isBlank:N,presence:Pe,isObject:Z,isFunction:Q,isString:re,isNumber:Y,isElement:q,isJQuery:B,isPromise:te,isDeferred:j,isHash:V,isArray:M,isFormData:z,isUnmodifiedKeyEvent:ie,isUnmodifiedMouseEvent:ue,nullJQuery:we,unJQuery:Ze,setTimer:Qe,nextFrame:he,measure:ce,temporaryCss:Ve,cssAnimate:k,finishCssAnimate:F,forceCompositing:U,forceRepaint:L,escapePressed:E,copyAttributes:y,findWithSelf:O,contains:v,toArray:Ge,castedAttr:f,locationFromXhr:se,titleFromXhr:Xe,methodFromXhr:de,clientSize:d,only:Ae,except:D,trim:Ye,unresolvableDeferred:tt,unresolvablePromise:nt,resolvedPromise:je,resolvedDeferred:Ne,resolvableWhen:Me,setMissingAttrs:ze,remove:Ue,memoize:pe,scrollbarWidth:Ke,documentHasVerticalScrollbar:A,config:h,cache:p,unwrapElement:rt,multiSelector:me,error:P,pluckData:Te,pluckKey:Ce,extractOptions:C,isDetached:W,noop:ge,opacity:$e,whenReady:ot,identity:I,escapeHtml:x,DivertibleChain:u,submittedValue:Je,sequence:He}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,c;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;i>o;o++)n=s[o],(c=t.attr(n))&&(l+=" "+n+'="'+c+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;t>e;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,consumeAction,emit,emitReset,forgetUpDescription,haltEvent,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener,whenEmitted;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||up.fail("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,n!==!1&&(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},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},haltEvent=function(e){return e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},consumeAction=function(e){return haltEvent(e),"up:action:consumed"!==e.type?emit("up:action:consumed",{$element:$(e.target),message:!1}):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 emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})):void 0},live("up:framework:booted",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,whenEmitted:whenEmitted,onEscape:onEscape,emitReset:emitReset,haltEvent:haltEvent,consumeAction:consumeAction,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.log=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return h=up.util,r=up.browser,n="up.log.enabled",o=h.config({prefix:"[UP] ",enabled:h.option(r.sessionStorage().getItem(n),!1),collapse:!1}),d=function(){return o.reset()},c=function(e){return""+o.prefix+e},i=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["debug",c(n)].concat(e.call(t))):void 0},f=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["log",c(n)].concat(e.call(t))):void 0},v=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["warn",c(n)].concat(e.call(t))):void 0},l=function(){var t,n,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!o.enabled||!i)return n();u=o.collapse?"groupCollapsed":"group",r.puts.apply(r,[u,c(i)].concat(e.call(t)));try{return n()}finally{i&&r.puts("groupEnd")}},s=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?r.puts.apply(r,["error",c(n)].concat(e.call(t))):void 0},p=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=o.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",r.puts("log",e)},up.on("up:framework:boot",p),up.on("up:framework:reset",d),m=function(e){return r.sessionStorage().setItem(n,e),o.enabled=e},a=function(){return m(!0)},u=function(){return m(!1)},{puts:f,debug:i,error:s,warn:v,group:l,config:o,enable:a,disable:u}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,c,p;return p=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+p.escapeHtml(e)+"</span>"},c=p.config({$toast:null}),l=function(){return i(),c.reset()},a=function(t){return p.isArray(t)?(t[0]=p.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=p.escapeHtml(t),t},u=function(){return!!c.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),c.$toast=s},i=function(){return u()?(c.$toast.remove(),c.$toast=null):void 0},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y;return y=up.util,n="up-destructable",r="up-destructors",c=[],h=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[c].concat(e.call(t)))},m=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[h].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u,a,s,l,c;for(up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(c=y.isString(e.keep)?e.keep:"",t.attr("up-keep",c)),l=e.callback.apply(n,[t,p(t)]),a=f(l),s=[],i=0,u=a.length;u>i;i++)r=a[i],s.push(o(t,r));return s},f=function(e){return y.isFunction(e)?[e]:y.isArray(e)&&y.all(e,y.isFunction)?e:[]},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,p;for(s=[h,c],p=[],o=0,u=s.length;u>o;o++)a=s[o],p.push(function(){var o,u,s;for(s=[],o=0,u=a.length;u>o;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return p})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;for(e=t(this),i=e.data(r),u=0,a=i.length;a>u;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)})},p=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(c,e),y.each(h,e)},v=function(){var e;return e=function(e){return e.isDefault},c=y.select(c,e),h=y.select(h,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:m,compile:s,clean:a,data:p}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,u=void 0,m=function(){return n.reset(),c=void 0,u=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 u&&(c=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},p=function(e,t){return t=v.options(t,{force:!1}),e=a(e),!t.force&&o(e)||!up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e})?void 0:(i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e}))},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},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,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},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 up.fail("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-viewport","[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),
|
2
|
+
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)||up.fail("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,i;for(o=$(config.fixedTop.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"top"));return i}(),e=function(){var e,t,o,i;for(o=$(config.fixedBottom.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"bottom"));return i}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),p=r.scrollTop(),s=p,c=void 0,l=void 0,v?(l=measureObstruction(),c=0):(l={top:0,bottom:0},c=p),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+c,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==p?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e,t){var n,r;return null==t&&(t={}),n=$(e),r=viewportSelector().seekUp(n),0===r.length&&t.strict!==!1&&up.fail("Could not find viewport for %o",n),r},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,i,u;for(i={},o=config.viewports,t=0,r=o.length;r>t;t++)u=o[t],e=$(u),e.length&&(n=u,u===document&&(n="document"),i[n]=e.scrollTop());return i},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 up.fail("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,config,destroy,emitFragmentInserted,emitFragmentKept,extract,filterScripts,findKeepPlan,findOldFragment,first,firstInLayer,firstInPriority,hello,isRealElement,layerOf,matchesLayer,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,reset,resolveSelector,setSource,shouldExtractTitle,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,config=u.config({runInlineScripts:!0,runLinkedScripts:!1}),reset=function(){return config.reset()},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)):up.fail("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,s,l;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),l=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(s={url:t,method:n.method,data:n.data,target:l,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},n.inspectResponse=function(){return up.browser.loadPage(t,u.only(n,"method","data"))},a=up.ajax(s),i=function(e,r,o){return processResponse(!0,l,t,s,o,n)},o=function(e,o,i){return processResponse(!1,r,t,s,e,n)},a=a.then(i,o)):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,c;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),a="GET"===i.method,(c=u.locationFromXhr(o))?(n=c,e&&up.proxy.isCachable(r)&&(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)),shouldExtractTitle(i)&&(i.title=u.titleFromXhr(o)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},shouldExtractTitle=function(e){return!(e.title===!1||u.isString(e.title)||e.history===!1&&e.title!==!0)},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;return n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),i=resolveSelector(e,n.origin),o=parseResponse(t,n),shouldExtractTitle(n)&&(n.title=o.title()),n.saveScroll!==!1&&up.layout.saveScroll(),r=u.resolvedPromise(),n.beforeSwap&&(r=r.then(n.beforeSwap)),r=r.then(function(){return updateHistory(n)}),r=r.then(function(){var e,t,r,u,a;for(a=[],r=parseImplantSteps(i,n),e=0,t=r.length;t>e;e++)u=r[e],up.log.group("Updating %s",u.selector,function(){var e,t,r;return t=findOldFragment(u.selector,n),e=o.first(u.selector),t&&e?(filterScripts(e,n),r=swapElements(t,e,u.pseudoClass,u.transition,n),a.push(r),n.reveal=!1):void 0});return $.when.apply($,a)}),n.afterSwap&&(r=r.then(n.afterSwap)),r})},findOldFragment=function(e,t){return first(e,t)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n,r;return t.requireMatch?(n=t.layer,"auto"===n&&(n="page, modal or popup"),r="Could not find selector %s in the current "+n,"#"===r[0]&&(r+=" (avoid using IDs)"),up.fail(r,e)):void 0},filterScripts=function(e,t){var n,r,o,i,a,s,l,c,p,f;for(c=u.option(t.runInlineScripts,config.runInlineScripts),p=u.option(t.runLinkedScripts,config.runLinkedScripts),r=u.findWithSelf(e,"script"),l=[],a=0,s=r.length;s>a;a++)f=r[a],n=$(f),i=u.isPresent(n.attr("src")),o=!i,i&&p||o&&c?l.push(void 0):l.push(n.remove());return l},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},first:function(r){var o,i;return(o=$.find(r,n)[0])?$(o):t.requireMatch?(i={label:"Open response",callback:t.inspectResponse},up.fail(["Could not find selector %s in response %o",r,e],{action:i})):void 0}}},updateHistory=function(e){return e=u.options(e,{historyMethod:"push"}),e.history&&up.history[e.historyMethod](e.history),e.title?document.title=e.title: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().wrapAll('<div class="up-insertion"></div>').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),e.is("body")?(up.syntax.clean(e),e.replaceWith(t)):t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,c,p;if(a=[],n.keep)for(p=e.find("[up-keep]"),i=0,l=p.length;l>i;i++)s=p[i],r=$(s),(c=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),c.$newElement.replaceWith(r),a.push(c));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)c=r[o],p=c.match(/^(.+?)(?:\:(before|after))?$/),p||up.fail('Could not parse selector atom "%s"',c),e=p[1],"html"===e&&(e="body"),s=p[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e,t){return t=u.options(t,{layer:"auto"}),"auto"===t.layer?firstInPriority(e,t.origin):firstInLayer(e,t.layer)},firstInPriority=function(e,t){var n,r,o,i,a,s;for(i=["popup","modal","page"],n=void 0,u.isPresent(t)&&(s=layerOf(t),u.remove(i,s),i.unshift(s)),r=0,a=i.length;a>r&&(o=i[r],!(n=firstInLayer(e,o)));r++);return n},firstInLayer=function(e,t){var n,r,o,i,u,a;for(r=$(e),o=void 0,u=0,a=r.length;a>u;u++)if(i=r[u],n=$(i),isRealElement(n)&&matchesLayer(n,t)){o=n;break}return o},layerOf=function(e){var t;return t=$(e),up.popup.contains(t)?"popup":up.modal.contains(t)?"modal":"page"},matchesLayer=function(e,t){return layerOf(e)===t},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)]),0===n.length?u.resolvedDeferred():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"),updateHistory(t),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("up:app:boot",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),up.on("up:framework:reset",reset),{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,config:config}}(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(){var e=[].slice;up.motion=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C;return T=up.util,a={},c={},E={},p={},l=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return m(),a=T.copy(c),E=T.copy(p),l.reset()},v=function(){return l.enabled&&up.browser.canCssTransition()},o=function(e,n,r){var u;return u=t(e),m(u),r=i(r),"none"===n||n===!1?b():T.isFunction(n)?s(n(u,r),n):T.isString(n)?o(u,d(n),r):T.isHash(n)?v()?T.cssAnimate(u,n,r):(u.css(n),T.resolvedDeferred()):up.fail("Unknown animation type for %o",n)},i=function(){var t,n,r,o,i;return n=1<=arguments.length?e.call(arguments,0):[],i=n.shift()||{},t=T.isJQuery(n[0])?n.shift():T.nullJQuery(),o=T.isObject(n[0])?n.shift():{},r={},r.easing=T.option(i.easing,T.presentAttr(t,"up-easing"),o.easing,l.easing),r.duration=Number(T.option(i.duration,T.presentAttr(t,"up-duration"),o.duration,l.duration)),r.delay=Number(T.option(i.delay,T.presentAttr(t,"up-delay"),o.delay,l.delay)),r},d=function(e){return a[e]||up.fail("Unknown animation %o",e)},r="up-ghosting-deferred",n="up-ghosting",C=function(e,t,o,i){var u,a,s,l,c,p,f,d;return o.copy===!1||e.is(".up-ghost")||t.is(".up-ghost")?i(e,t):(p=void 0,l=void 0,f=void 0,c=void 0,a=up.layout.viewportOf(e),u=e.add(t),T.temporaryCss(t,{display:"none"},function(){return p=w(e,a),f=a.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(t,o),l=w(t,a),c=a.scrollTop()}),p.moveTop(c-f),e.hide(),d=T.temporaryCss(t,{opacity:"0"}),s=i(p.$ghost,l.$ghost),u.data(r,s),u.addClass(n),s.then(function(){return u.removeData(r),u.removeClass(n),d(),p.$bounds.remove(),l.$bounds.remove()}),s)},m=function(e){var r,o,i;return null==e&&(e=".up-animating"),o=t(e),r=T.findWithSelf(o,".up-animating"),T.finishCssAnimate(r),i=T.findWithSelf(o,"."+n),h(i)},h=function(e){return e.each(function(){var e,n;return e=t(this),(n=T.pluckData(e,r))?n.resolve():void 0})},s=function(e,t){return T.isDeferred(e)?e:up.fail("Did not return a promise with .then and .resolve methods: %o",t)},y=function(e,n,r,u){var l,c;return"none"===r&&(r=!1),u=T.options(u),c=t(e),l=t(n),f(c,r),f(l,r),up.log.group(r?"Morphing %o to %o (using %s, %o)":void 0,c.get(0),l.get(0),r,u,function(){var e,t,n,p;return t=T.only(u,"reveal","restoreScroll","source"),t=T.extend(t,i(u)),v()?(m(c),m(l),r?(e=a[r])?(A(c,l,t),o(l,e,t)):(p=T.presence(r,T.isFunction)||E[r])?C(c,l,t,function(e,n){var o;return o=p(e,n,t),s(o,r)}):T.isString(r)&&r.indexOf("/")>=0?(n=r.split("/"),p=function(e,t,r){return S(o(e,n[0],r),o(t,n[1],r))},y(c,l,p,t)):up.fail("Unknown transition %o",r):A(c,l,t)):A(c,l,t)})},f=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),up.fail("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},A=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},w=function(e,n){var r,o,i,u,a,s,l,c,p;for(u=T.measure(e,{relative:!0,inner:!0}),i=e.clone(),i.find("script").remove(),i.css({position:"static"===e.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=t('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),p=u.top,c=function(e){return 0!==e?(p+=e,r.css({top:p})):void 0},i.appendTo(r),r.insertBefore(e),c(e.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:c}},x=function(e,t){return E[e]=t},u=function(e,t){return a[e]=t},$=function(){return c=T.copy(a),p=T.copy(E)},S=T.resolvableWhen,b=T.resolvedDeferred,g=function(e){return e===!1||"none"===e||e===b},u("none",b),u("fade-in",function(e,t){return e.css({opacity:0}),o(e,{opacity:1},t)}),u("fade-out",function(e,t){return e.css({opacity:1}),o(e,{opacity:0},t)}),D=function(e,t){return{transform:"translate("+e+"px, "+t+"px)"}},u("move-to-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,0)),o(e,D(0,-r),t)}),u("move-from-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,-r)),o(e,D(0,0),t)}),u("move-to-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,0)),o(e,D(0,r),t)}),u("move-from-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,r)),o(e,D(0,0),t)}),u("move-to-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(0,0)),o(e,D(-r,0),t)}),u("move-from-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(-r,0)),o(e,D(0,0),t)}),u("move-to-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(0,0)),o(e,D(r,0),t)}),u("move-from-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(r,0)),o(e,D(0,0),t)}),u("roll-down",function(e,t){var n,r,i;return r=e.height(),i=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n=o(e,{height:r+"px"},t),n.then(i),n}),x("none",b),x("move-left",function(e,t,n){return S(o(e,"move-to-left",n),o(t,"move-from-right",n))}),x("move-right",function(e,t,n){return S(o(e,"move-to-right",n),o(t,"move-from-left",n))}),x("move-up",function(e,t,n){return S(o(e,"move-to-top",n),o(t,"move-from-bottom",n))}),x("move-down",function(e,t,n){return S(o(e,"move-to-bottom",n),o(t,"move-from-top",n))}),x("cross-fade",function(e,t,n){return S(o(e,"fade-out",n),o(t,"fade-in",n))}),up.on("up:framework:booted",$),up.on("up:framework:reset",k),{morph:y,animate:o,animateOptions:i,finish:m,transition:x,animation:u,config:l,isEnabled:v,defaults:function(){return up.fail("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:b,when:S,prependCopy:w,isNone: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,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C,P,O,F,R,U,L;return L=up.util,n=void 0,x=void 0,F=void 0,S=void 0,R=void 0,D=[],p=L.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),u=function(e){return k(e),[e.url,e.method,L.requestDataAsQuery(e.data),e.target].join("|")},i=L.cache({size:function(){return p.cacheSize},expiry:function(){return p.cacheExpiry},key:u}),f=function(e){var t,n,r,o,u,a,s;if(e=k(e),m(e))for(n=[e],"html"!==e.target&&(a=L.merge(e,{target:"html"}),n.push(a),"body"!==e.target&&(u=L.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],s=i.get(t))return s},a=function(){return clearTimeout(x),x=null},s=function(){return clearTimeout(F),F=null},C=function(){return n=null,a(),s(),S=0,p.reset(),i.clear(),R=!1,D=[]},C(),k=function(e){return e._normalized||(e.method=L.normalizeMethod(e.method),e.url&&(e.url=L.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(){var t,n,r,o,i,u,a;return t=1<=arguments.length?e.call(arguments,0):[],o=L.extractOptions(t),L.isGiven(t[0])&&(o.url=t[0]),n=o.cache===!0,r=o.cache===!1,a=L.only(o,"url","method","data","target","headers","_normalized"),a=k(a),i=!0,h(a)||n?(u=f(a))&&!r?(up.puts("Re-using cached response for %s %s",a.method,a.url),i="pending"===u.state()):(u=b(a),O(a,u),u.fail(function(){return T(a)})):(c(),u=b(a)),i&&!o.preload&&(w(),u.always(y)),u},m=function(e){return!L.isFormData(e.data)},v=function(){return 0===S},d=function(){return S>0},w=function(){var e,t;return t=v(),S+=1,t?(e=function(){return d()?(up.emit("up:proxy:slow",{message:"Proxy is busy"}),R=!0):void 0},F=L.setTimer(p.slowDelay,e)):void 0},y=function(){return S-=1,v()&&R?(up.emit("up:proxy:recover",{message:"Proxy is idle"}),R=!1):void 0},b=function(e){return S<p.maxRequests?g(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},g=function(e){var n;return up.emit("up:proxy:load",L.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=L.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,L.contains(p.wrapMethods,e.method)&&(e.data=L.appendRequestData(e.data,p.wrapMethodParam,e.method),e.method="POST"),L.isFormData(e.data)&&(e.contentType=!1,e.processData=!1),n=t.ajax(e),n.done(function(t,n,r){return P(e,r)}),n.fail(function(t,n,r){return P(e,t)}),n},P=function(e,t){var n;return up.emit("up:proxy:received",L.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),A()},A=function(){var t,n;(t=D.shift())&&(n=g(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)}))},o=i.alias,O=i.set,T=i.remove,c=i.clear,h=function(e){return k(e),L.contains(p.safeMethods,e.method)},l=function(e){var t,r;return r=parseInt(L.presentAttr(e,"up-delay"))||p.preloadDelay,e.is(n)?void 0:(n=e,a(),t=function(){return $(e),n=null},U(t,r))},U=function(e,t){return x=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=L.options(n),o=up.link.followMethod(r,n),h({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),L.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:l(t)}),up.on("up:framework:reset",C),{preload:$,ajax:r,get:f,alias:o,clear:c,remove:T,isIdle:v,isBusy:d,isCachable:m,config:p,defaults:function(){return up.fail("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.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.whenConfirmed(t).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(e){},onAction=function(e,t){var n;return followVariantSelectors.push(e),n=function(e){return up.navigation.start(e,function(){return t(e)})},up.on("click","a"+e+", [up-href]"+e,function(e,t){return shouldProcessLinkEvent(e,t)?t.is("[up-instant]")?up.bus.haltEvent(e):(up.bus.consumeAction(e),n(t)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,t){return shouldProcessLinkEvent(e,t)?(up.bus.consumeAction(e),n(t)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-dash]",{priority:"last"},function(e){var t,n;return n=u.castedAttr(e,"up-dash"),e.removeAttr("up-dash"),t={"up-preload":"","up-instant":""},n===!0?makeFollowable(e):t["up-target"]=n,u.setMissingAttrs(e,t)}),up.macro("[up-expand]",{priority:"last"},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)}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeField,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a,s,l;return n=$(e).closest("form"),t=u.options(t),s=u.option(t.target,n.attr("up-target"),"body"),l=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.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.data=up.util.requestDataFromForm(n),t=u.merge(t,up.motion.animateOptions(t,n)),i=n.find("input[type=file]").length,r=!i||u.isFormData(t.data),o=up.browser.canPushState()||t.history===!1,t.validate&&(t.headers||(t.headers={}),t.transition=!1,t.failTransition=!1,t.headers["X-Up-Validate"]=t.validate,!r)?u.unresolvablePromise():(up.navigation.start(n),r&&o?(a=up.replace(s,l,t),a.always(function(){return up.navigation.stop(n)}),a):(n.get(0).submit(),u.unresolvablePromise()))},observe=function(){var $element,$fields,callback,callbackArg,delay,destructors,extraArgs,options,rawCallback,selectorOrElement;return selectorOrElement=arguments[0],extraArgs=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===extraArgs.length?callbackArg=extraArgs[0]:extraArgs.length>1&&(options=u.options(extraArgs[0]),callbackArg=extraArgs[1]),$element=$(selectorOrElement),$fields=u.multiSelector(config.fields).findWithSelf($element),callback=null,rawCallback=u.option(callbackArg,u.presentAttr($fields,"up-observe")),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||up.fail("up.observe: No change callback given"),delay=u.option($fields.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),destructors=u.map($fields,function(e){return observeField($(e),options,callback)}),u.sequence.apply(u,destructors)},observeField=function(e,t,n){var r,o,i,a,s,l,c,p;return l=null,o=null,r=u.resolvedPromise(),c=null,p=function(){var e;return c?(e=c(),c=null,e):void 0},a=function(){var o,i,a;return a=u.submittedValue(e),i=u.isNull(l),l===a||(l=a,i)?void 0:(s(),c=function(){return n.apply(e.get(0),[a,e])},o=function(){return r.then(function(){var e;return e=p(),r=u.isPromise(e)?e:u.resolvedPromise()})},u.setTimer(t,o))},s=function(){return clearTimeout(o)},i="input change",up.browser.canInputEvent()||(i+=" keypress paste cut click propertychange"),e.on(i,a),a(),function(){return e.off(i,a),s()}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),up.navigation.start(t,function(){return submit(n)})})},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)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||up.fail("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return up.bus.consumeAction(e),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets,autosubmit:autosubmit}}(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 align,attachAsap,attachNow,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,isOpen,reset,state,u;return u=up.util,config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),state=u.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,
|
3
|
+
coveredUrl:null,coveredTitle:null}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$popup)&&e.remove(),state.reset(),chain.reset(),config.reset()},align=function(){var e,t,n;switch(e={},n=u.measure(state.$popup),u.isFixed(state.$anchor)?(t=state.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=u.measure(state.$anchor),state.position){case"bottom-right":e.top=t.top+t.height,e.left=t.left+t.width-n.width;break;case"bottom-left":e.top=t.top+t.height,e.left=t.left;break;case"top-right":e.top=t.top-n.height,e.left=t.left+t.width-n.width;break;case"top-left":e.top=t.top-n.height,e.left=t.left;break;default:up.fail("Unknown position option '%s'",state.position)}return state.$popup.attr("up-position",state.position),state.$popup.css(e)},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e){var t;return t=u.$createElementFromSelector(".up-popup"),u.$createPlaceholder(e,t),t.appendTo(document.body),state.$popup=t},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},attachAsap=function(e,t){var n;return n=function(){return attachNow(e,t)},isOpen()?chain.asap(closeNow,n):chain.asap(n),chain.promise()},attachNow=function(e,t){var n,r,o,i,a,s;return n=$(e),n.length||up.fail("Cannot attach popup to non-existing element %o",e),t=u.options(t),s=u.option(u.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=u.option(u.pluckKey(t,"html")),a=u.option(u.pluckKey(t,"target"),n.attr("up-popup"),"body"),i=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"),config.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")),t.method=up.link.followMethod(n,t),t.layer="popup",r=up.motion.animateOptions(t,n,{duration:config.openDuration,easing:config.openEasing}),up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:popup:open",{url:s,message:"Opening popup"}).then(function(){var e,l;return state.phase="opening",state.$anchor=n,state.position=i,t.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),state.sticky=t.sticky,t.beforeSwap=function(){return createFrame(a)},e=u.merge(t,{animation:!1}),l=o?up.extract(a,o,e):up.replace(a,s,e),l=l.then(function(){return align(),up.animate(state.$popup,t.animation,r)}),l=l.then(function(){return state.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t;return isOpen()?(e=u.options(e,{animation:config.closeAnimation,history:state.coveredUrl,title:state.coveredTitle}),t=up.motion.animateOptions(e,{duration:config.closeDuration,easing:config.closeEasing}),u.extend(e,t),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:state.$popup}).then(function(){return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,up.destroy(state.$popup,e).then(function(){return state.phase="closed",state.$popup=null,state.$anchor=null,state.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):u.resolvedPromise()},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},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")?closeAsap():attachAsap(e)}),up.on("click up:action:consumed",function(e){var t;return t=$(e.target),t.closest(".up-popup, [up-popup]").length?void 0:closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(closeAsap),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attachAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var animate,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,extractAsap,flavor,flavorDefault,flavorOverrides,followAsap,isOpen,markAsAnimating,openAsap,openNow,reset,shiftElements,state,templateHtml,u,unshiftElements,visitAsap;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:null,closeDuration:null,openEasing:null,closeEasing:null,backdropOpenAnimation:"fade-in",backdropCloseAnimation:"fade-out",closeLabel:"\xd7",closable:!0,sticky:!1,flavors:{"default":{}},template:function(e){return'<div class="up-modal">\n <div class="up-modal-backdrop"></div>\n <div class="up-modal-viewport">\n <div class="up-modal-dialog">\n <div class="up-modal-content"></div>\n <div class="up-modal-close" up-close>'+flavorDefault("closeLabel")+"</div>\n </div>\n </div>\n</div>"}}),state=u.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,unshifters:[]}}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$modal)&&e.remove(),unshiftElements(),state.reset(),chain.reset(),config.reset()},templateHtml=function(){var e;return e=flavorDefault("template"),u.isFunction(e)?e(config):e},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e,t){var n,r,o;return o=$(templateHtml()),o.attr("up-flavor",state.flavor),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),state.closable||o.find(".up-modal-close").remove(),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),state.$modal=o},shiftElements=function(){var e,t,n,r,o;return u.documentHasVerticalScrollbar()?(e=$("body"),r=u.scrollbarWidth(),t=parseInt(e.css("padding-right")),n=r+t,o=u.temporaryCss(e,{"padding-right":n+"px","overflow-y":"hidden"}),state.unshifters.push(o),up.layout.anchoredRight().each(function(){var e,t,n,o;return e=$(this),t=parseInt(e.css("right")),n=r+t,o=u.temporaryCss(e,{right:n}),state.unshifters.push(o)})):void 0},unshiftElements=function(){var e,t;for(e=[];t=state.unshifters.pop();)e.push(t());return e},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},followAsap=function(e,t){return t=u.options(t),t.$link=$(e),openAsap(t)},visitAsap=function(e,t){return t=u.options(t),t.url=e,openAsap(t)},extractAsap=function(e,t,n){return n=u.options(n),n.html=t,n.history=u.option(n.history,!1),n.target=e,openAsap(n)},openAsap=function(e){var t;return t=function(){return openNow(e)},isOpen()?chain.asap(closeNow,t):chain.asap(t),chain.promise()},openNow=function(e){var t,n,r,o,i;return e=u.options(e),t=u.option(u.pluckKey(e,"$link"),u.nullJQuery()),i=u.option(u.pluckKey(e,"url"),t.attr("up-href"),t.attr("href")),r=u.option(u.pluckKey(e,"html")),o=u.option(u.pluckKey(e,"target"),t.attr("up-modal"),"body"),e.flavor=u.option(e.flavor,t.attr("up-flavor")),e.width=u.option(e.width,t.attr("up-width"),flavorDefault("width",e.flavor)),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),flavorDefault("maxWidth",e.flavor)),e.height=u.option(e.height,t.attr("up-height"),flavorDefault("height")),e.animation=u.option(e.animation,t.attr("up-animation"),flavorDefault("openAnimation",e.flavor)),e.backdropAnimation=u.option(e.backdropAnimation,t.attr("up-backdrop-animation"),flavorDefault("backdropOpenAnimation",e.flavor)),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky"),flavorDefault("sticky",e.flavor)),e.closable=u.option(e.closable,u.castedAttr(t,"up-closable"),flavorDefault("closable",e.flavor)),e.confirm=u.option(e.confirm,t.attr("up-confirm")),e.method=up.link.followMethod(t,e),e.layer="modal",n=up.motion.animateOptions(e,t,{duration:flavorDefault("openDuration",e.flavor),easing:flavorDefault("openEasing",e.flavor)}),e.history=u.option(e.history,u.castedAttr(t,"up-history"),flavorDefault("history",e.flavor)),up.browser.canPushState()||(e.history=!1),up.browser.whenConfirmed(e).then(function(){return up.bus.whenEmitted("up:modal:open",{url:i,message:"Opening modal"}).then(function(){var t,a;return state.phase="opening",state.flavor=e.flavor,state.sticky=e.sticky,state.closable=e.closable,e.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),e.beforeSwap=function(){return createFrame(o,e)},t=u.merge(e,{animation:!1}),a=r?up.extract(o,r,t):up.replace(o,i,t),a=a.then(function(){return shiftElements(),animate(e.animation,e.backdropAnimation,n)}),a=a.then(function(){return state.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t,n,r,o;return isOpen()?(e=u.options(e),o=u.option(e.animation,flavorDefault("closeAnimation")),n=u.option(e.backdropAnimation,flavorDefault("backdropCloseAnimation")),t=up.motion.animateOptions(e,{duration:flavorDefault("closeDuration"),easing:flavorDefault("closeEasing")}),r=u.options(u.except(e,"animation","duration","easing","delay"),{history:state.coveredUrl,title:state.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:state.$modal,message:"Closing modal"}).then(function(){var e;return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,e=animate(o,n,t),e=e.then(function(){return up.destroy(state.$modal,r)}),e=e.then(function(){return unshiftElements(),state.phase="closed",state.$modal=null,state.flavor=null,state.sticky=null,state.closable=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):u.resolvedPromise()},markAsAnimating=function(e){return null==e&&(e=!0),state.$modal.toggleClass("up-modal-animating",e)},animate=function(e,t,n){var r;return up.motion.isNone(e)?u.resolvedPromise():(markAsAnimating(),r=$.when(up.animate(state.$modal.find(".up-modal-viewport"),e,n),up.animate(state.$modal.find(".up-modal-backdrop"),t,n)),r=r.then(function(){return markAsAnimating(!1)}))},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},flavor=function(e,t){return null==t&&(t={}),u.extend(flavorOverrides(e),t)},flavorOverrides=function(e){var t;return(t=config.flavors)[e]||(t[e]={})},flavorDefault=function(e,t){var n;return null==t&&(t=state.flavor),t&&(n=flavorOverrides(t)[e]),u.isMissing(n)&&(n=config[e]),n},up.link.onAction("[up-modal]",function(e){return followAsap(e)}),up.on("click",function(e){var t;if(state.closable)return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),closeAsap())}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin)&&!up.popup.contains(t))return autoclose()}),up.bus.onEscape(function(){return state.closable?closeAsap():void 0}),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visitAsap,follow:followAsap,extract:extractAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen,flavor:flavor}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return f=up.util,a=f.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:100,closeDuration:50,openEasing:null,closeEasing:null}),p=f.config({phase:"closed",$anchor:null,$tooltip:null,position:null}),o=new f.DivertibleChain,c=function(){var e;return null!=(e=p.$tooltip)&&e.remove(),p.reset(),o.reset(),a.reset()},t=function(){var e,t,n;switch(e={},n=f.measure(p.$tooltip),f.isFixed(p.$anchor)?(t=p.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=f.measure(p.$anchor),p.position){case"top":e.top=t.top-n.height,e.left=t.left+.5*(t.width-n.width);break;case"left":e.top=t.top+.5*(t.height-n.height),e.left=t.left-n.width;break;case"right":e.top=t.top+.5*(t.height-n.height),e.left=t.left+t.width;break;case"bottom":e.top=t.top+t.height,e.left=t.left+.5*(t.width-n.width);break;default:up.fail("Unknown position option '%s'",p.position)}return p.$tooltip.attr("up-position",p.position),p.$tooltip.css(e)},s=function(e){var t;return t=f.$createElementFromSelector(".up-tooltip"),f.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),p.$tooltip=t},n=function(e,t){var n;return null==t&&(t={}),n=function(){return r(e,t)},l()?o.asap(u,n):o.asap(n),o.promise()},r=function(n,r){var o,i,u,l,c,d;return o=e(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),d=f.option(r.text,o.attr("up-tooltip")),c=f.option(r.position,o.attr("up-position"),a.position),u=f.option(r.animation,f.castedAttr(o,"up-animation"),a.openAnimation),i=up.motion.animateOptions(r,o,{duration:a.openDuration,easing:a.openEasing}),p.phase="opening",p.$anchor=o,s({text:d,html:l}),p.position=c,t(),up.animate(p.$tooltip,u,i).then(function(){return p.phase="opened"})},i=function(e){return l()&&o.asap(function(){return u(e)}),o.promise()},u=function(e){var t;return l()?(e=f.options(e,{animation:a.closeAnimation}),t=up.motion.animateOptions(e,{duration:a.closeDuration,easing:a.closeEasing}),f.extend(e,t),p.phase="closing",up.destroy(p.$tooltip,e).then(function(){return p.phase="closed",p.$tooltip=null,p.$anchor=null})):f.resolvedPromise()},l=function(){return"opening"===p.phase||"opened"===p.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseenter",function(){return n(e)}),e.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(e){return i()}),up.on("up:framework:reset",c),up.bus.onEscape(function(){return i()}),{config:a,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d;return f=up.util,r=f.config({currentClasses:["up-current"]}),s=function(){return r.reset()},o=function(){var e;return e=r.currentClasses,e=e.concat(["up-current"]),e=f.uniq(e),e.join(" ")},t="up-active",n="a, [up-href]",a=function(e){return f.isPresent(e)?f.normalizeUrl(e):void 0},l=function(e){var t,n,r,o,i,u,s,l,c,p;for(l=[],u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(t=u[n],c=f.presentAttr(e,t))for(p="up-alias"===t?c.split(" "):[c],r=0,i=p.length;i>r;r++)s=p[r],"#"!==s&&(s=a(s),l.push(s));return l},d=function(e){var t,n,r,o;return e=f.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return f.contains(e,t)},n=function(t){return f.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return f.detect(e,r)},{matchesAny:o}},u=function(){var t,r;return t=d([a(up.browser.url()),a(up.modal.url()),a(up.modal.coveredUrl()),a(up.popup.url()),a(up.popup.coveredUrl())]),r=o(),f.each(e(n),function(n){var o,i;return o=e(n),i=l(o),t.matchesAny(i)?o.addClass(r):o.hasClass(r)&&0===o.closest(".up-destroying").length?o.removeClass(r):void 0})},i=function(t){var r;return r=e(t),r.is(n)&&(r=f.presence(r.parent(n))||r),r},c=function(e,n){var r,o;return r=i(e),r.addClass(t),n?(o=n(),f.isPromise(o)?o.always(function(){return p(r)}):up.warn("Expected block to return a promise, but got %o",o),o):void 0},p=function(e){var n;return n=i(e),up.emit("up:navigated",{$element:n,message:!1}),n.removeClass(t)},up.on("up:fragment:inserted",function(){return u()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?u():void 0}),up.on("up:framework:reset",s),{config:r,defaults:function(){return up.fail("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")},start:c,stop:p}}(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,i;return t="data-"+e,i="up-"+e,up.compiler("["+t+"]",function(e){var u;return n()&&o(e)?(u={},u[i]=e.attr(t),r.setMissingAttrs(e,u),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);
|
@@ -60,7 +60,7 @@ up.browser = (($) ->
|
|
60
60
|
It also prints substitution strings (e.g. `console.log("From %o to %o", "a", "b")`)
|
61
61
|
as a single string if the browser console does not support substitution strings.
|
62
62
|
|
63
|
-
|
63
|
+
\#\#\# Example
|
64
64
|
|
65
65
|
up.browser.puts('log', 'Hi world');
|
66
66
|
up.browser.puts('error', 'There was an error in %o', obj);
|
@@ -220,7 +220,7 @@ up.browser = (($) ->
|
|
220
220
|
[string substitution](https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions)
|
221
221
|
in `console` functions.
|
222
222
|
|
223
|
-
|
223
|
+
\#\#\# Example for string substition
|
224
224
|
|
225
225
|
console.log("Hello %o!", "Judy");
|
226
226
|
|
@@ -107,7 +107,7 @@ up.bus = (($) ->
|
|
107
107
|
Other than jQuery, Unpoly will silently discard event listeners
|
108
108
|
on [unsupported browsers](/up.browser.isSupported).
|
109
109
|
|
110
|
-
|
110
|
+
\#\#\# Attaching structured data
|
111
111
|
|
112
112
|
In case you want to attach structured data to the event you're observing,
|
113
113
|
you can serialize the data to JSON and put it into an `[up-data]` attribute:
|
@@ -121,7 +121,7 @@ up.bus = (($) ->
|
|
121
121
|
console.log("This is %o who is %o years old", data.name, data.age);
|
122
122
|
});
|
123
123
|
|
124
|
-
|
124
|
+
\#\#\# Unbinding an event listener
|
125
125
|
|
126
126
|
`up.on` returns a function that unbinds the event listeners when called:
|
127
127
|
|
@@ -145,7 +145,7 @@ up.bus = (($) ->
|
|
145
145
|
// Unbind the listener
|
146
146
|
up.off('click', listener)
|
147
147
|
|
148
|
-
|
148
|
+
\#\#\# Migrating jQuery event handlers to `up.on`
|
149
149
|
|
150
150
|
Within the event handler, Unpoly will bind `this` to the
|
151
151
|
native DOM element to help you migrate your existing jQuery code to
|
@@ -199,7 +199,7 @@ up.bus = (($) ->
|
|
199
199
|
###*
|
200
200
|
Unbinds an event listener previously bound with [`up.on`](/up.on).
|
201
201
|
|
202
|
-
|
202
|
+
\#\#\# Example
|
203
203
|
|
204
204
|
Let's say you are listing to clicks on `.button` elements:
|
205
205
|
|
@@ -240,7 +240,7 @@ up.bus = (($) ->
|
|
240
240
|
Other code can subscribe to events with that name using
|
241
241
|
[`up.on`](/up.on) or by [binding a jQuery event listener](http://api.jquery.com/on/) to `document`.
|
242
242
|
|
243
|
-
|
243
|
+
\#\#\# Example
|
244
244
|
|
245
245
|
up.on('my:event', function(event) {
|
246
246
|
console.log(event.foo);
|
@@ -281,15 +281,16 @@ up.bus = (($) ->
|
|
281
281
|
if eventProps.hasOwnProperty('message')
|
282
282
|
niceMessage = eventProps.message
|
283
283
|
delete eventProps.message
|
284
|
-
if
|
285
|
-
|
286
|
-
|
287
|
-
niceMessageArgs = []
|
288
|
-
if niceMessage
|
289
|
-
if u.isPresent(eventProps)
|
290
|
-
up.puts "#{niceMessage} (%s (%o))", niceMessageArgs..., eventName, eventProps
|
284
|
+
if niceMessage != false
|
285
|
+
if u.isArray(niceMessage)
|
286
|
+
[niceMessage, niceMessageArgs...] = niceMessage
|
291
287
|
else
|
292
|
-
|
288
|
+
niceMessageArgs = []
|
289
|
+
if niceMessage
|
290
|
+
if u.isPresent(eventProps)
|
291
|
+
up.puts "#{niceMessage} (%s (%o))", niceMessageArgs..., eventName, eventProps
|
292
|
+
else
|
293
|
+
up.puts "#{niceMessage} (%s)", niceMessageArgs..., eventName
|
293
294
|
else
|
294
295
|
if u.isPresent(eventProps)
|
295
296
|
up.puts 'Emitted event %s (%o)', eventName, eventProps
|
@@ -353,6 +354,30 @@ up.bus = (($) ->
|
|
353
354
|
listener(event)
|
354
355
|
)
|
355
356
|
|
357
|
+
###*
|
358
|
+
Stops the given event from propagating and prevents the default action.
|
359
|
+
|
360
|
+
@function up.bus.haltEvent
|
361
|
+
@internal
|
362
|
+
###
|
363
|
+
haltEvent = (event) ->
|
364
|
+
event.stopImmediatePropagation()
|
365
|
+
event.stopPropagation()
|
366
|
+
event.preventDefault()
|
367
|
+
|
368
|
+
###*
|
369
|
+
@function up.bus.consumeAction
|
370
|
+
@internal
|
371
|
+
###
|
372
|
+
consumeAction = (event) ->
|
373
|
+
# Halt the event chain to stop duplicate processing of this user interaction.
|
374
|
+
haltEvent(event)
|
375
|
+
unless event.type == 'up:action:consumed'
|
376
|
+
# Although we have consumed this action and halted the event chain,
|
377
|
+
# other components might still need to react. E.g. a popup needs to close when
|
378
|
+
# an outside link consumes the user click. So we emit another event for that.
|
379
|
+
emit('up:action:consumed', $element: $(event.target), message: false)
|
380
|
+
|
356
381
|
###*
|
357
382
|
Makes a snapshot of the currently registered event listeners,
|
358
383
|
to later be restored through [`up.bus.reset`](/up.bus.reset).
|
@@ -442,6 +467,8 @@ up.bus = (($) ->
|
|
442
467
|
whenEmitted: whenEmitted
|
443
468
|
onEscape: onEscape
|
444
469
|
emitReset: emitReset
|
470
|
+
haltEvent: haltEvent
|
471
|
+
consumeAction: consumeAction
|
445
472
|
boot: boot
|
446
473
|
|
447
474
|
)(jQuery)
|
@@ -80,7 +80,7 @@ up.flow = (($) ->
|
|
80
80
|
|
81
81
|
The UJS variant of this is the [`a[up-target]`](/a-up-target) selector.
|
82
82
|
|
83
|
-
|
83
|
+
\#\#\# Example
|
84
84
|
|
85
85
|
Let's say your curent HTML looks like this:
|
86
86
|
|
@@ -105,7 +105,7 @@ up.flow = (($) ->
|
|
105
105
|
Note how only `.two` has changed. The update for `.one` was
|
106
106
|
discarded, since it didn't match the selector.
|
107
107
|
|
108
|
-
|
108
|
+
\#\#\# Appending or prepending instead of replacing
|
109
109
|
|
110
110
|
By default Unpoly will replace the given selector with the same
|
111
111
|
selector from a freshly fetched page. Instead of replacing you
|
@@ -126,7 +126,7 @@ up.flow = (($) ->
|
|
126
126
|
|
127
127
|
up.replace('.tasks:after', '/page/2')
|
128
128
|
|
129
|
-
|
129
|
+
\#\#\# Setting the window title from the server
|
130
130
|
|
131
131
|
If the `replace` call changes history, the document title will be set
|
132
132
|
to the contents of a `<title>` tag in the response.
|
@@ -134,7 +134,7 @@ up.flow = (($) ->
|
|
134
134
|
The server can also change the document title by setting
|
135
135
|
an `X-Up-Title` header in the response.
|
136
136
|
|
137
|
-
|
137
|
+
\#\#\# Optimizing response rendering
|
138
138
|
|
139
139
|
The server is free to optimize Unpoly requests by only rendering the HTML fragment
|
140
140
|
that is being updated. The request's `X-Up-Target` header will contain
|
@@ -143,7 +143,7 @@ up.flow = (($) ->
|
|
143
143
|
If you are using the `unpoly-rails` gem you can also access the selector via
|
144
144
|
`up.target` in all controllers, views and helpers.
|
145
145
|
|
146
|
-
|
146
|
+
\#\#\# Events
|
147
147
|
|
148
148
|
Unpoly will emit [`up:fragment:destroyed`](/up:fragment:destroyed) on the element
|
149
149
|
that was replaced and [`up:fragment:inserted`](/up:fragment:inserted) on the new
|
@@ -300,7 +300,7 @@ up.flow = (($) ->
|
|
300
300
|
Updates a selector on the current page with the
|
301
301
|
same selector from the given HTML string.
|
302
302
|
|
303
|
-
|
303
|
+
\#\#\# Example
|
304
304
|
|
305
305
|
Let's say your curent HTML looks like this:
|
306
306
|
|
@@ -539,7 +539,7 @@ up.flow = (($) ->
|
|
539
539
|
|
540
540
|
Emits events [`up:fragment:keep`](/up:fragment:keep) and [`up:fragment:kept`](/up:fragment:kept).
|
541
541
|
|
542
|
-
|
542
|
+
\#\#\# Controlling if an element will be kept
|
543
543
|
|
544
544
|
Unpoly will **only** keep an existing element if:
|
545
545
|
|
@@ -678,7 +678,7 @@ up.flow = (($) ->
|
|
678
678
|
When a page fragment has been [inserted or updated](/up.replace),
|
679
679
|
this event is [emitted](/up.emit) on the fragment.
|
680
680
|
|
681
|
-
|
681
|
+
\#\#\# Example
|
682
682
|
|
683
683
|
up.on('up:fragment:inserted', function(event, $fragment) {
|
684
684
|
console.log("Looks like we have a new %o!", $fragment);
|
@@ -866,7 +866,7 @@ up.flow = (($) ->
|
|
866
866
|
###*
|
867
867
|
Replaces the given element with a fresh copy fetched from the server.
|
868
868
|
|
869
|
-
|
869
|
+
\#\#\# Example
|
870
870
|
|
871
871
|
up.on('new-mail', function() {
|
872
872
|
up.reload('.inbox');
|
@@ -144,7 +144,7 @@ up.form = (($) ->
|
|
144
144
|
unless canAjaxSubmit
|
145
145
|
return u.unresolvablePromise()
|
146
146
|
|
147
|
-
up.navigation.
|
147
|
+
up.navigation.start($form)
|
148
148
|
|
149
149
|
# If we can't submit this form via AJAX or if we wouldn't be able to change
|
150
150
|
# the location URL as the result, fall back to a vanilla form submission.
|
@@ -153,7 +153,7 @@ up.form = (($) ->
|
|
153
153
|
return u.unresolvablePromise()
|
154
154
|
|
155
155
|
promise = up.replace(target, url, options)
|
156
|
-
promise.always -> up.navigation.
|
156
|
+
promise.always -> up.navigation.stop($form)
|
157
157
|
return promise
|
158
158
|
|
159
159
|
###*
|
@@ -163,7 +163,7 @@ up.form = (($) ->
|
|
163
163
|
|
164
164
|
The UJS variant of this is the [`up-observe`](/up-observe) attribute.
|
165
165
|
|
166
|
-
|
166
|
+
\#\#\# Example
|
167
167
|
|
168
168
|
The following would submit the form whenever the
|
169
169
|
text field value changes:
|
@@ -176,7 +176,7 @@ up.form = (($) ->
|
|
176
176
|
pass, a `<form>` or any container that contains form fields.
|
177
177
|
The callback will be run if any of the given fields change.
|
178
178
|
|
179
|
-
|
179
|
+
\#\#\# Preventing concurrency
|
180
180
|
|
181
181
|
Firing asynchronous code after a form field can cause
|
182
182
|
[concurrency issues](https://makandracards.com/makandra/961-concurrency-issues-with-find-as-you-type-boxes).
|
@@ -186,7 +186,7 @@ up.form = (($) ->
|
|
186
186
|
To take advantage of this, your callback code must return a promise.
|
187
187
|
Note that all asynchronous Unpoly functions return promises.
|
188
188
|
|
189
|
-
|
189
|
+
\#\#\# Throttling
|
190
190
|
|
191
191
|
If you are concerned about fast typists causing too much
|
192
192
|
load on your server, you can use a `delay` option to wait
|
@@ -322,7 +322,7 @@ up.form = (($) ->
|
|
322
322
|
autosubmit = (selectorOrElement, options) ->
|
323
323
|
observe(selectorOrElement, options, (value, $field) ->
|
324
324
|
$form = $field.closest('form')
|
325
|
-
up.navigation.
|
325
|
+
up.navigation.start $field, -> submit($form)
|
326
326
|
)
|
327
327
|
|
328
328
|
resolveValidateTarget = ($field, options) ->
|
@@ -350,7 +350,7 @@ up.form = (($) ->
|
|
350
350
|
See the documentation for [`[up-validate]`](/up-validate) for more information
|
351
351
|
on how server-side validation works in Unpoly.
|
352
352
|
|
353
|
-
|
353
|
+
\#\#\# Example
|
354
354
|
|
355
355
|
up.validate('input[name=email]', { target: '.email-errors' })
|
356
356
|
|
@@ -476,7 +476,7 @@ up.form = (($) ->
|
|
476
476
|
|
477
477
|
The programmatic variant of this is the [`up.submit`](/up.submit) function.
|
478
478
|
|
479
|
-
|
479
|
+
\#\#\# Failed submission
|
480
480
|
|
481
481
|
When the server was unable to save the form due to invalid data,
|
482
482
|
it will usually re-render an updated copy of the form with
|
@@ -509,7 +509,7 @@ up.form = (($) ->
|
|
509
509
|
[`up-validate`](/up-validate) attribute to perform server-side
|
510
510
|
validations while the user is completing fields.
|
511
511
|
|
512
|
-
|
512
|
+
\#\#\# Redirects
|
513
513
|
|
514
514
|
Unpoly requires two additional response headers to detect redirects,
|
515
515
|
which are otherwise undetectable for an AJAX client.
|
@@ -521,7 +521,7 @@ up.form = (($) ->
|
|
521
521
|
If you are using Unpoly via the `unpoly-rails` gem, these headers
|
522
522
|
are set automatically for every request.
|
523
523
|
|
524
|
-
|
524
|
+
\#\#\# Giving feedback while the form is processing
|
525
525
|
|
526
526
|
The `<form>` element will be assigned a CSS class `up-active` while
|
527
527
|
the submission is loading.
|
@@ -568,7 +568,7 @@ up.form = (($) ->
|
|
568
568
|
@stable
|
569
569
|
###
|
570
570
|
up.on 'submit', 'form[up-target]', (event, $form) ->
|
571
|
-
|
571
|
+
up.bus.consumeAction(event)
|
572
572
|
submit($form)
|
573
573
|
|
574
574
|
###*
|
@@ -578,7 +578,7 @@ up.form = (($) ->
|
|
578
578
|
|
579
579
|
The programmatic variant of this is the [`up.validate`](/up.validate) function.
|
580
580
|
|
581
|
-
|
581
|
+
\#\#\# Example
|
582
582
|
|
583
583
|
Let's look at a standard registration form that asks for an e-mail and password:
|
584
584
|
|
@@ -659,7 +659,7 @@ up.form = (($) ->
|
|
659
659
|
The `<label>` around the e-mail field is now updated to have the `has-error`
|
660
660
|
class and display the validation message.
|
661
661
|
|
662
|
-
|
662
|
+
\#\#\# How validation results are displayed
|
663
663
|
|
664
664
|
Although the server will usually respond to a validation with a complete,
|
665
665
|
fresh copy of the form, Unpoly will by default not update the entire form.
|
@@ -683,7 +683,7 @@ up.form = (($) ->
|
|
683
683
|
<input type="text" name="email" up-validate=".email-errors">
|
684
684
|
<span class="email-errors"></span>
|
685
685
|
|
686
|
-
|
686
|
+
\#\#\# Updating dependent fields
|
687
687
|
|
688
688
|
The `[up-validate]` behavior is also a great way to partially update a form
|
689
689
|
when one fields depends on the value of another field.
|
@@ -719,7 +719,7 @@ up.form = (($) ->
|
|
719
719
|
###*
|
720
720
|
Show or hide part of a form if certain options are selected or boxes are checked.
|
721
721
|
|
722
|
-
|
722
|
+
\#\#\# Example
|
723
723
|
|
724
724
|
The triggering input gets an `up-switch` attribute with a selector for the elements to show or hide:
|
725
725
|
|
@@ -799,7 +799,7 @@ up.form = (($) ->
|
|
799
799
|
|
800
800
|
The programmatic variant of this is the [`up.observe`](/up.observe) function.
|
801
801
|
|
802
|
-
|
802
|
+
\#\#\# Example
|
803
803
|
|
804
804
|
The following would run a global `showSuggestions(value)` function
|
805
805
|
whenever the `<input>` changes:
|
@@ -808,7 +808,7 @@ up.form = (($) ->
|
|
808
808
|
<input type="query" up-observe="showSuggestions(value)">
|
809
809
|
</form>
|
810
810
|
|
811
|
-
|
811
|
+
\#\#\# Callback context
|
812
812
|
|
813
813
|
The script given to `up-observe` runs with the following context:
|
814
814
|
|
@@ -835,7 +835,7 @@ up.form = (($) ->
|
|
835
835
|
|
836
836
|
The programmatic variant of this is the [`up.autosubmit`](/up.autosubmit) function.
|
837
837
|
|
838
|
-
|
838
|
+
\#\#\# Example
|
839
839
|
|
840
840
|
The following would submit the form whenever the
|
841
841
|
text field value changes:
|
@@ -78,13 +78,13 @@ up.layout = (($) ->
|
|
78
78
|
A "viewport" is an element that has scrollbars, e.g. `<body>` or
|
79
79
|
a container with `overflow-x: scroll`.
|
80
80
|
|
81
|
-
|
81
|
+
\#\#\# Example
|
82
82
|
|
83
83
|
This will scroll a `<div class="main">...</div>` to a Y-position of 100 pixels:
|
84
84
|
|
85
85
|
up.scroll('.main', 100);
|
86
86
|
|
87
|
-
|
87
|
+
\#\#\# Animating the scrolling motion
|
88
88
|
|
89
89
|
The scrolling can (optionally) be animated.
|
90
90
|
|
@@ -187,9 +187,9 @@ up.layout = (($) ->
|
|
187
187
|
|
188
188
|
By default Unpoly will always reveal an element before
|
189
189
|
updating it with Javascript functions like [`up.replace`](/up.replace)
|
190
|
-
or UJS behavior like [`[up-target]`](/up-target).
|
190
|
+
or UJS behavior like [`[up-target]`](/a-up-target).
|
191
191
|
|
192
|
-
|
192
|
+
\#\#\# How Unpoly finds the viewport
|
193
193
|
|
194
194
|
The viewport (the container that is going to be scrolled)
|
195
195
|
is the closest parent of the element that is either:
|
@@ -199,7 +199,7 @@ up.layout = (($) ->
|
|
199
199
|
- the `<body>` element
|
200
200
|
- an element matching the selector you have configured using `up.layout.config.viewports.push('my-custom-selector')`
|
201
201
|
|
202
|
-
|
202
|
+
\#\#\# Fixed elements obstruction the viewport
|
203
203
|
|
204
204
|
Many applications have a navigation bar fixed to the top or bottom,
|
205
205
|
obstructing the view on an element.
|
@@ -445,7 +445,7 @@ up.layout = (($) ->
|
|
445
445
|
[`up.reveal`](/up.reveal) will always try to scroll the viewport closest
|
446
446
|
to the element that is being revealed. By default this is the `<body>` element.
|
447
447
|
|
448
|
-
|
448
|
+
\#\#\# Example
|
449
449
|
|
450
450
|
Here is an example for a layout for an e-mail client, showing a list of e-mails
|
451
451
|
on the left side and the e-mail text on the right side:
|
@@ -495,7 +495,7 @@ up.layout = (($) ->
|
|
495
495
|
[`up.reveal`](/up.reveal) is aware of fixed elements and will scroll
|
496
496
|
the viewport far enough so the revealed element is fully visible.
|
497
497
|
|
498
|
-
|
498
|
+
\#\#\# Example
|
499
499
|
|
500
500
|
<div class="top-nav" up-fixed="top">...</div>
|
501
501
|
|
@@ -510,7 +510,7 @@ up.layout = (($) ->
|
|
510
510
|
[`up.reveal`](/up.reveal) is aware of fixed elements and will scroll
|
511
511
|
the viewport far enough so the revealed element is fully visible.
|
512
512
|
|
513
|
-
|
513
|
+
\#\#\# Example
|
514
514
|
|
515
515
|
<div class="bottom-nav" up-fixed="bottom">...</div>
|
516
516
|
|
@@ -526,7 +526,7 @@ up.layout = (($) ->
|
|
526
526
|
[`up.modal`](/up.modal) will move anchored elements to the left so they
|
527
527
|
don't appear to move when a modal dialog is opened or closed.
|
528
528
|
|
529
|
-
|
529
|
+
\#\#\# Example
|
530
530
|
|
531
531
|
<div class="bottom-nav" up-fixed="bottom">...</div>
|
532
532
|
|
@@ -12,13 +12,12 @@ Standard HTML links are a poor fit for modern applications:
|
|
12
12
|
- The user sees a "flash" as the browser loads and renders the new page,
|
13
13
|
even if large portions of the old and new page are the same (navigation, layout, etc.).
|
14
14
|
|
15
|
-
Unpoly fixes this by letting you annotate links with an [`up-target`](/up-target)
|
15
|
+
Unpoly fixes this by letting you annotate links with an [`up-target`](/a-up-target)
|
16
16
|
attribute. The value of this attribute is a CSS selector that indicates which page
|
17
17
|
fragment to update. The rest of the page will remain unchanged.
|
18
18
|
|
19
19
|
|
20
|
-
Example
|
21
|
-
-------
|
20
|
+
\#\#\# Example
|
22
21
|
|
23
22
|
Let's say we are rendering three pages with a tabbed navigation to switch between screens:
|
24
23
|
|
@@ -62,13 +61,13 @@ with an `up-target` attribute:
|
|
62
61
|
|
63
62
|
Note that instead of `article` you can use any other CSS selector like `#main .article`.
|
64
63
|
|
65
|
-
With these [`up-target`](/up-target) annotations Unpoly only updates the targeted part of the screen.
|
64
|
+
With these [`up-target`](/a-up-target) annotations Unpoly only updates the targeted part of the screen.
|
66
65
|
The Javascript environment will persist and the user will not see a white flash while the
|
67
66
|
new page is loading.
|
68
67
|
|
69
68
|
|
70
|
-
Read on
|
71
|
-
|
69
|
+
\#\#\# Read on
|
70
|
+
|
72
71
|
- You can [animate page transitions](/up.motion) by definining animations for fragments as they enter or leave the screen.
|
73
72
|
- The `up-target` mechanism also works with [forms](/up.form).
|
74
73
|
- As you switch through pages, Unpoly will [update your browser's location bar and history](/up.history)
|
@@ -235,22 +234,22 @@ up.link = (($) ->
|
|
235
234
|
onAction = (selector, handler) ->
|
236
235
|
followVariantSelectors.push(selector)
|
237
236
|
handlerWithActiveMark = ($link) ->
|
238
|
-
up.navigation.
|
237
|
+
up.navigation.start $link, -> handler($link)
|
239
238
|
up.on 'click', "a#{selector}, [up-href]#{selector}", (event, $link) ->
|
240
239
|
if shouldProcessLinkEvent(event, $link)
|
241
240
|
if $link.is('[up-instant]')
|
242
241
|
# If the link was already processed on mousedown, we still need
|
243
|
-
# to prevent
|
244
|
-
|
242
|
+
# to prevent this later click event's chain.
|
243
|
+
up.bus.haltEvent(event)
|
245
244
|
else
|
246
|
-
|
245
|
+
up.bus.consumeAction(event)
|
247
246
|
handlerWithActiveMark($link)
|
248
247
|
else
|
249
248
|
allowDefault(event)
|
250
249
|
|
251
250
|
up.on 'mousedown', "a#{selector}[up-instant], [up-href]#{selector}[up-instant]", (event, $link) ->
|
252
251
|
if shouldProcessLinkEvent(event, $link)
|
253
|
-
|
252
|
+
up.bus.consumeAction(event)
|
254
253
|
handlerWithActiveMark($link)
|
255
254
|
|
256
255
|
isFollowable = ($link) ->
|
@@ -276,7 +275,7 @@ up.link = (($) ->
|
|
276
275
|
|
277
276
|
<a href="/posts/5" up-target=".main">Read post</a>
|
278
277
|
|
279
|
-
|
278
|
+
\#\#\# Updating multiple fragments
|
280
279
|
|
281
280
|
You can update multiple fragments from a single request by separating
|
282
281
|
separators with a comma (like in CSS). E.g. if opening a post should
|
@@ -285,7 +284,7 @@ up.link = (($) ->
|
|
285
284
|
|
286
285
|
<a href="/posts/5" up-target=".main, .unread-count">Read post</a>
|
287
286
|
|
288
|
-
|
287
|
+
\#\#\# Appending or prepending instead of replacing
|
289
288
|
|
290
289
|
By default Unpoly will replace the given selector with the same
|
291
290
|
selector from a freshly fetched page. Instead of replacing you
|
@@ -307,7 +306,7 @@ up.link = (($) ->
|
|
307
306
|
Load more tasks
|
308
307
|
</a>
|
309
308
|
|
310
|
-
|
309
|
+
\#\#\# Following elements that are no links
|
311
310
|
|
312
311
|
You can also use `[up-target]` to turn an arbitrary element into a link.
|
313
312
|
In this case, put the link's destination into the `up-href` attribute:
|
@@ -320,13 +319,18 @@ up.link = (($) ->
|
|
320
319
|
@selector a[up-target]
|
321
320
|
@param {String} up-target
|
322
321
|
The CSS selector to replace
|
322
|
+
@param {String} [up-method='get']
|
323
|
+
The HTTP method to use for the request.
|
324
|
+
@param {String} [up-transition='none']
|
325
|
+
The [transition](/up.motion) to use for morphing between the old and new elements.
|
323
326
|
@param [up-fail-target='body']
|
324
327
|
The selector to replace if the server responds with a non-200 status code.
|
328
|
+
@param {String} [up-fail-transition='none']
|
329
|
+
The [transition](/up.motion) to use for morphing between the old and new elements
|
330
|
+
when the server responds with a non-200 status code.
|
325
331
|
@param {String} [up-href]
|
326
332
|
The destination URL to follow.
|
327
333
|
If omitted, the the link's `href` attribute will be used.
|
328
|
-
@param {String} [up-method='get']
|
329
|
-
The HTTP method to use for the request.
|
330
334
|
@param {String} [up-confirm]
|
331
335
|
A message that will be displayed in a cancelable confirmation dialog
|
332
336
|
before the link is followed.
|
@@ -385,11 +389,11 @@ up.link = (($) ->
|
|
385
389
|
To only update a fragment instead of the entire page, see
|
386
390
|
[`a[up-target]`](/a-up-target).
|
387
391
|
|
388
|
-
|
392
|
+
\#\#\# Example
|
389
393
|
|
390
394
|
<a href="/users" up-follow>User list</a>
|
391
395
|
|
392
|
-
|
396
|
+
\#\#\# Turn any element into a link
|
393
397
|
|
394
398
|
You can also use `[up-follow]` to turn an arbitrary element into a link.
|
395
399
|
In this case, put the link's destination into the `up-href` attribute:
|
@@ -400,13 +404,19 @@ up.link = (($) ->
|
|
400
404
|
opening the destination in a new tab.
|
401
405
|
|
402
406
|
@selector a[up-follow]
|
407
|
+
|
408
|
+
@param {String} [up-method='get']
|
409
|
+
The HTTP method to use for the request.
|
410
|
+
@param {String} [up-transition='none']
|
411
|
+
The [transition](/up.motion) to use for morphing between the old and new elements.
|
403
412
|
@param [up-fail-target='body']
|
404
413
|
The selector to replace if the server responds with a non-200 status code.
|
414
|
+
@param {String} [up-fail-transition='none']
|
415
|
+
The [transition](/up.motion) to use for morphing between the old and new elements
|
416
|
+
when the server responds with a non-200 status code.
|
405
417
|
@param [up-href]
|
406
418
|
The destination URL to follow.
|
407
419
|
If omitted, the the link's `href` attribute will be used.
|
408
|
-
@param {String} [up-method='get']
|
409
|
-
The HTTP method to use for the request.
|
410
420
|
@param {String} [up-confirm]
|
411
421
|
A message that will be displayed in a cancelable confirmation dialog
|
412
422
|
before the link is followed.
|
@@ -428,7 +438,7 @@ up.link = (($) ->
|
|
428
438
|
|
429
439
|
This is done by:
|
430
440
|
|
431
|
-
- [Following the link through AJAX](/up-target) instead of a full page load
|
441
|
+
- [Following the link through AJAX](/a-up-target) instead of a full page load
|
432
442
|
- [Preloading the link's destination URL](/up-preload)
|
433
443
|
- [Triggering the link on `mousedown`](/up-instant) instead of on `click`
|
434
444
|
|
@@ -463,9 +473,9 @@ up.link = (($) ->
|
|
463
473
|
in order to enlarge the link's click area.
|
464
474
|
|
465
475
|
`up-expand` honors all the UJS behavior in expanded links
|
466
|
-
([`up-target`](/up-target), [`up-instant`](/up-instant), [`up-preload`](/up-preload), etc.).
|
476
|
+
([`up-target`](/a-up-target), [`up-instant`](/up-instant), [`up-preload`](/up-preload), etc.).
|
467
477
|
|
468
|
-
|
478
|
+
\#\#\# Example
|
469
479
|
|
470
480
|
<div class="notification" up-expand>
|
471
481
|
Record was saved!
|
@@ -477,7 +487,7 @@ up.link = (($) ->
|
|
477
487
|
|
478
488
|
`up-expand` also expands links that open [modals](/up.modal) or [popups](/up.popup).
|
479
489
|
|
480
|
-
|
490
|
+
\#\#\# Elements with multiple contained links
|
481
491
|
|
482
492
|
If a container contains more than one link, you can set the value of the
|
483
493
|
`up-expand` attribute to a CSS selector to define which link should be expanded:
|