unpoly-rails 0.55.1 → 0.56.0

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

Potentially problematic release.


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

Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -2
  3. data/dist/unpoly-bootstrap3.js +6 -4
  4. data/dist/unpoly-bootstrap3.min.js +1 -1
  5. data/dist/unpoly.js +1323 -805
  6. data/dist/unpoly.min.js +4 -3
  7. data/lib/assets/javascripts/unpoly-bootstrap3/{navigation-ext.coffee → feedback-ext.coffee} +2 -0
  8. data/lib/assets/javascripts/unpoly/browser.coffee.erb +7 -7
  9. data/lib/assets/javascripts/unpoly/bus.coffee.erb +5 -6
  10. data/lib/assets/javascripts/unpoly/classes/css_transition.coffee +127 -0
  11. data/lib/assets/javascripts/unpoly/classes/extract_plan.coffee +1 -1
  12. data/lib/assets/javascripts/unpoly/classes/motion_tracker.coffee +62 -32
  13. data/lib/assets/javascripts/unpoly/classes/url_set.coffee +27 -0
  14. data/lib/assets/javascripts/unpoly/dom.coffee.erb +78 -99
  15. data/lib/assets/javascripts/unpoly/feedback.coffee +147 -96
  16. data/lib/assets/javascripts/unpoly/form.coffee.erb +26 -2
  17. data/lib/assets/javascripts/unpoly/history.coffee +2 -1
  18. data/lib/assets/javascripts/unpoly/layout.coffee.erb +68 -12
  19. data/lib/assets/javascripts/unpoly/link.coffee.erb +10 -4
  20. data/lib/assets/javascripts/unpoly/modal.coffee.erb +11 -9
  21. data/lib/assets/javascripts/unpoly/{motion.coffee → motion.coffee.erb} +184 -322
  22. data/lib/assets/javascripts/unpoly/popup.coffee.erb +13 -12
  23. data/lib/assets/javascripts/unpoly/radio.coffee +1 -1
  24. data/lib/assets/javascripts/unpoly/syntax.coffee +8 -17
  25. data/lib/assets/javascripts/unpoly/tooltip.coffee +11 -11
  26. data/lib/assets/javascripts/unpoly/util.coffee +332 -145
  27. data/lib/unpoly/rails/version.rb +1 -1
  28. data/package.json +1 -1
  29. data/spec_app/Gemfile.lock +1 -1
  30. data/spec_app/app/assets/javascripts/integration_test.coffee +1 -0
  31. data/spec_app/app/assets/stylesheets/integration_test.sass +1 -0
  32. data/spec_app/app/assets/stylesheets/jasmine_specs.sass +4 -0
  33. data/spec_app/app/views/motion_test/transitions.erb +13 -0
  34. data/spec_app/app/views/pages/start.erb +1 -0
  35. data/spec_app/spec/javascripts/helpers/to_be_attached.coffee +5 -0
  36. data/spec_app/spec/javascripts/helpers/to_be_detached.coffee +5 -0
  37. data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +1 -1
  38. data/spec_app/spec/javascripts/helpers/to_have_opacity.coffee +11 -0
  39. data/spec_app/spec/javascripts/helpers/to_have_own_property.js.coffee +5 -0
  40. data/spec_app/spec/javascripts/up/dom_spec.js.coffee +217 -102
  41. data/spec_app/spec/javascripts/up/feedback_spec.js.coffee +162 -44
  42. data/spec_app/spec/javascripts/up/layout_spec.js.coffee +97 -10
  43. data/spec_app/spec/javascripts/up/link_spec.js.coffee +3 -3
  44. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +22 -20
  45. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +344 -228
  46. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +1 -1
  47. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +1 -1
  48. data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +1 -1
  49. data/spec_app/spec/javascripts/up/util_spec.js.coffee +194 -0
  50. metadata +11 -4
data/dist/unpoly.min.js CHANGED
@@ -1,3 +1,4 @@
1
- (function(){window.up={version:"0.55.1",renamedModule:function(t,e){return"function"==typeof Object.defineProperty?Object.defineProperty(up,t,{get:function(){return up.log.warn("up."+t+" has been renamed to up."+e),up[e]}}):void 0}}}).call(this),function(){var t=[].slice,e={}.hasOwnProperty,n=function(t,e){return function(){return t.apply(e,arguments)}};up.util=function(r){var o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C,F,A,$,D,O,R,j,M,U,q,_,N,H,z,L,K,Q,V,I,W,B,X,J,G,Z,Y,te,ee,ne,re,oe,ie,ue,ae,se,le,pe,ce,fe,he,de,me,ve,ge,ye,be,we,ke,Te,Se,xe,Ee,Pe,Ce,Fe,Ae,$e,De,Oe,Re,je,Me,Ue,qe,_e,Ne,He,ze,Le,Ke,Qe,Ve,Ie,We,Be,Xe,Je,Ge,Ze,Ye,tn,en,nn,rn,on,un,an,sn,ln,pn,cn,fn,hn,dn,mn,vn,gn,yn,bn;return Fe=r.noop,ye=function(e){var n,r;return r=void 0,n=!1,function(){var o;return o=1<=arguments.length?t.call(arguments,0):[],n?r:(n=!0,r=e.apply(null,o))}},ae=function(t,e){return e=e.toString(),(""===e||"80"===e)&&"http:"===t||"443"===e&&"https:"===t},$e=function(t,e){var n,r,o;return r=Ne(t),n=r.protocol+"//"+r.hostname,ae(r.protocol,r.port)||(n+=":"+r.port),o=r.pathname,"/"!==o[0]&&(o="/"+o),(null!=e?e.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),n+=o,(null!=e?e.hash:void 0)===!0&&(n+=r.hash),(null!=e?e.search:void 0)!==!1&&(n+=r.search),n},V=function(t){var e;return e=Ne(location.href),t=Ne(t),e.protocol!==t.protocol||e.host!==t.host},Ne=function(t){var e;return t=dn(t),t.pathname?t:(e=r("<a>").attr({href:t}).get(0),K(e.hostname)&&(e.href=e.href),e)},Ae=function(t){return t?t.toUpperCase():"GET"},ke=function(t){return"GET"!==t&&"HEAD"!==t},o=function(t){var e,n,o,i,u,a,s,l,p,c,f,h,d,m,v,g;for(v=t.split(/[ >]/),o=null,f=p=0,d=v.length;d>p;f=++p){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],c=null,h=0,m=u.length;m>h;h++)switch(s=u[h],s[0]){case".":i.push(s.substr(1));break;case"#":c=s.substr(1);break;default:g=s}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),c&&(l+=' id="'+c+'"'),l+=">",e=r(l),n&&e.appendTo(n),0===f&&(o=e),n=e}return o},i=function(t,e){var n;return null==e&&(e=document.body),n=o(t),n.addClass("up-placeholder"),n.appendTo(e),n},rn=function(t){var e,n,o,i,u,a,s,l,p,c,f;if(e=r(t),p=void 0,c=e.prop("tagName").toLowerCase(),f=Le(e.attr("up-id")))p=m("up-id",f);else if(u=Le(e.attr("id")))p=u.match(/^[a-z0-9\-_]+$/i)?"#"+u:m("id",u);else if(l=Le(e.attr("name")))p=c+m("name",l);else if(o=Le(Ce(e)))for(p="",i=0,s=o.length;s>i;i++)a=o[i],p+="."+a;else p=(n=Le(e.attr("aria-label")))?m("aria-label",n):c;return p},m=function(t,e){return e=e.replace(/"/g,'\\"'),"["+t+'="'+e+'"]'},Ce=function(t){var e,n;return e=t.attr("class")||"",n=e.split(" "),tn(n,function(t){return ie(t)&&!t.match(/^up-/)})},S=function(t){var e;return e=new DOMParser,e.parseFromString(t,"text/html")},d=function(){var n,r,o,i,u,a,s;for(a=arguments[0],u=2<=arguments.length?t.call(arguments,1):[],n=0,o=u.length;o>n;n++){i=u[n];for(r in i)e.call(i,r)&&(s=i[r],a[r]=s)}return a},h=Object.assign||d,hn=r.trim,de=function(t){return se(t)?function(e){return e[t]}:t},me=function(t,e){var n,r,o,i,u;for(e=de(e),u=[],r=n=0,i=t.length;i>n;r=++n)o=t[r],u.push(e(o,r));return u},F=me,cn=function(t,e){var n,r,o,i;for(i=[],r=n=0,o=t-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(e(r));return i},ee=function(t){return null===t},pe=function(t){return void 0===t},I=function(t){return!pe(t)},te=function(t){return pe(t)||ee(t)},Z=function(t){return!te(t)},K=function(t){return te(t)||re(t)&&0===Object.keys(t).length||0===t.length},Le=function(t,e){return null==e&&(e=ie),e(t)?t:void 0},ie=function(t){return!K(t)},G=function(t){return"function"==typeof t},se=function(t){return"string"==typeof t||t instanceof String},ne=function(t){return"number"==typeof t||t instanceof Number},oe=function(t){return!("object"!=typeof t||ee(t)||Y(t)||ue(t)||J(t)||L(t))},re=function(t){var e;return e=typeof t,"object"===e&&!ee(t)||"function"===e},B=function(t){return!(!t||1!==t.nodeType)},Y=function(t){return t instanceof jQuery},ue=function(t){return re(t)&&G(t.then)},L=Array.isArray,J=function(t){return t instanceof FormData},fn=function(t){return Array.prototype.slice.call(t)},k=function(t){return L(t)?t=t.slice():re(t)&&!G(t)?t=h({},t):up.fail("Cannot copy %o",t),t},dn=function(t){return Y(t)?t.get(0):t},be=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],h.apply(null,[{}].concat(t.call(e)))},_e=function(t,e){var n,r,o,i;if(o=t?k(t):{},e)for(r in e)n=e[r],i=o[r],Z(i)?re(n)&&re(i)&&(o[r]=_e(i,n)):o[r]=n;return o},qe=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],P(e,Z)},P=function(t,e){var n,r,o,i;for(i=void 0,r=0,o=t.length;o>r;r++)if(n=t[r],e(n)){i=n;break}return i},c=function(t,e){var n,r,o,i,u;for(e=de(e),u=!1,o=r=0,i=t.length;i>r;o=++r)if(n=t[o],e(n,o)){u=!0;break}return u},l=function(t,e){var n,r,o,i,u;for(e=de(e),u=!0,o=r=0,i=t.length;i>r;o=++r)if(n=t[o],!e(n,o)){u=!1;break}return u},y=function(t){return tn(t,Z)},mn=function(t){var e;return t.length<2?t:(e=new Set,F(t,function(t){return e.add(t)}),sn(e))},vn=function(t,e){var n;return t.length<2?t:(e=de(e),n=new Set,tn(t,function(t,r){var o;return o=e(t,r),n.has(o)?!1:(n.add(o),!0)}))},sn=function(t){var e;return e=[],t.forEach(function(t){return e.push(t)}),e},tn=function(t,e){var n;return e=de(e),n=[],F(t,function(t,r){return e(t,r)?n.push(t):void 0}),n},Ie=function(t,e){return e=de(e),tn(t,function(t,n){return!e(t,n)})},z=function(t,e){return tn(t,function(t){return w(e,t)})},Ke=function(){var e,n,r,o;return e=arguments[0],r=2<=arguments.length?t.call(arguments,1):[],o=function(){var t,o,i;for(i=[],t=0,o=r.length;o>t;t++)n=r[t],i.push(e.attr(n));return i}(),P(o,ie)},an=function(t,e){return setTimeout(e,t)},Pe=function(t){return setTimeout(t,0)},Te=function(t){return Promise.resolve().then(t)},he=function(t){return t[t.length-1]},g=function(){var t;return t=document.documentElement,{width:t.clientWidth,height:t.clientHeight}},Ye=ye(function(){var t,e,n;return t=r("<div>"),t.attr("up-viewport",""),t.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),t.appendTo(document.body),e=t.get(0),n=e.offsetWidth-e.clientWidth,t.remove(),n}),C=function(){var t,e,n,o,i,u;return e=document.body,t=r(e),u=document.documentElement,n=t.css("overflow-y"),i="scroll"===n,o="hidden"===n,i||!o&&u.scrollHeight>u.clientHeight},Re=function(e){var n;return n=void 0,function(){var r;return r=1<=arguments.length?t.call(arguments,0):[],null!=e&&(n=e.apply(null,r)),e=void 0,n}},pn=function(t,e,n){var o,i,u;return o=r(t),u=o.css(Object.keys(e)),o.css(e),i=function(){return o.css(u)},n?(n(),i()):Re(i)},q=function(t){var e,n;return n=t.css(["transform","-webkit-transform"]),K(n)||"none"===n.transform?(e=function(){return t.css(n)},t.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):e=function(){},e},_=function(t){return t=dn(t),t.offsetHeight},x=function(){},ve=function(t){var e,n;return e=r(t),n=e.css(["margin-top","margin-right","margin-bottom","margin-left"]),{top:parseFloat(n["margin-top"]),right:parseFloat(n["margin-right"]),bottom:parseFloat(n["margin-bottom"]),left:parseFloat(n["margin-left"])}},ge=function(t,e){var n,o,i,u,a,s;return e=_e(e,{relative:!1,inner:!1,includeMargin:!1}),e.relative?e.relative===!0?u=t.position():(n=r(e.relative),a=t.offset(),n.is(document)?u=a:(i=n.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=t.offset(),o={left:u.left,top:u.top},e.inner?(o.width=t.width(),o.height=t.height()):(o.width=t.outerWidth(),o.height=t.outerHeight()),e.includeMargin&&(s=ve(t),o.left-=s.left,o.top-=s.top,o.height+=s.top+s.bottom,o.width+=s.left+s.right),o},T=function(t,e){var n,r,o,i,u;for(i=t.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],u.push(n.specified?e.attr(n.name,n.value):void 0);return u},nn=function(t,e){return t.find(e).addBack(e)},en=function(t,e){var n,r;return r=nn(t,e),n=t.parents(e),r.add(n)},$=function(t){return 27===t.keyCode},w=function(t,e){return t.indexOf(e)>=0},v=function(t,e){var n;switch(n=t.attr(e)){case"false":return!1;case"true":case"":case e:return!0;default:return n}},je=function(){var e,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],e={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(e[u]=o[u]);return e},O=function(){var e,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],e=k(o),n=0,r=i.length;r>n;n++)u=i[n],delete e[u];return e},ce=function(t){return!(t.metaKey||t.shiftKey||t.ctrlKey)},fe=function(t){var e;return e=pe(t.button)||0===t.button,e&&ce(t)},gn=function(){return new Promise(Fe)},De=function(){return r()},un=function(t,e){var n,r,o;r=[];for(n in e)o=e[n],r.push(te(t.attr(n))?t.attr(n,o):void 0);return r},Be=function(t,e){var n;return n=t.indexOf(e),n>=0?(t.splice(n,1),e):void 0},Se=function(t){var e,n,o,i,u,a,s;for(u={},s=[],n=[],o=0,i=t.length;i>o;o++)a=t[o],se(a)?s.push(a):n.push(a);return u.parsed=n,s.length&&(e=s.join(", "),u.parsed.push(e)),u.select=function(){return u.find(void 0)},u.find=function(t){var e,n,o,i,a,s;for(n=De(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],e=t?t.find(s):r(s),n=n.add(e);return n},u.selectInSubtree=function(t){var e;return e=u.find(t),u.doesMatch(t)&&(e=e.add(t)),e},u.doesMatch=function(t){var e;return e=r(t),c(u.parsed,function(t){return e.is(t)})},u.seekUp=function(t){var e,n,o;for(o=r(t),e=o,n=void 0;e.length;){if(u.doesMatch(e)){n=e;break}e=e.parent()}return n||De()},u},D=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],G(n)?n.apply(null,e):n},b=function(t){var e;return e=Ue(t),Object.preventExtensions(e),e},Ue=function(t){var e;return null==t&&(t={}),e={},e.reset=function(){var n;return n=t,G(n)&&(n=n()),h(e,n)},e.reset(),e},yn=function(t){var e,n;return t=dn(t),e=t.parentNode,n=fn(t.childNodes),F(n,function(n){return e.insertBefore(n,t)}),e.removeChild(t)},Oe=function(t){var e,n;for(e=void 0;(t=t.parent())&&t.length;)if(n=t.css("position"),"absolute"===n||"relative"===n||t.is("body")){e=t;break}return e},X=function(t){var e,n;for(e=r(t);;){if(n=e.css("position"),"fixed"===n)return!0;if(e=e.parent(),0===e.length||e.is(document))return!1}},M=function(t,e){var n,o,i,u;return n=r(t),o=Oe(n),i=n.position(),u=o.offset(),n.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+e.scrollTop(),right:"",bottom:""})},Je=function(t){var e,n,r,o,i,u,a;if(L(t),J(t))return up.fail("Cannot convert FormData into an array");for(u=Ge(t),e=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ie(i)&&(o=i.split("="),e.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return e},Ge=function(t,e){var n;if(e=_e(e,{purpose:"url"}),se(t))return t.replace(/^\?/,"");if(J(t))return up.fail("Cannot convert FormData into a query string");if(ie(t)){switch(n=r.param(t),e.purpose){case"url":n=n.replace(/\+/g,"%20");break;case"form":n=n.replace(/\%20/g,"+");break;default:up.fail("Unknown purpose %o",e.purpose)}return n}return""},u=function(t){var e,n;return n="input[type=submit], button[type=submit], button:not([type])",e=r(document.activeElement),e.is(n)&&t.has(e)?e:t.find(n).first()},Ze=function(t){var e,n,o,i,a,s;return n=r(t),s=n.find("input[type=file]").length,e=u(n),o=e.attr("name"),i=e.val(),a=s?new FormData(n.get(0)):n.serializeArray(),ie(o)&&f(a,o,i),a},f=function(t,e,n,r){var o;return t||(t=[]),L(t)?t.push({name:e,value:n}):J(t)?t.append(e,n):re(t)?t[e]=n:se(t)&&(o=Ge([{name:e,value:n}],r),t=[t,o].join("&")),t},we=function(t,e){return F(Je(e),function(e){return t=f(t,e.name,e.value)}),t},j=function(){var e,n,r,o,i,u;throw e=1<=arguments.length?t.call(arguments,0):[],L(e[0])?(r=e[0],u=e[1]||{}):(r=e,u={}),(o=up.log).error.apply(o,r),bn().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},s={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"},A=function(t){return t.replace(/[&<>"]/g,function(t){return s[t]})},ze=function(t,e){var n;return n=t[e],delete t[e],n},Xe=function(t,e,n){return t[n]=ze(t,e)},He=function(t,e){var n,o;return n=r(t),o=n.data(e),n.removeData(e),o},R=function(t){var e;return e=he(t),oe(e)?t.pop():{}},Me=function(t){var e;return e=r(t).css("opacity"),Z(e)?parseFloat(e):void 0},bn=ye(function(){return r.isReady?Promise.resolve():new Promise(function(t){return r(t)})}),H=function(t){return t},W=function(t){return t=dn(t),!r.contains(document.documentElement,t)},Qe=function(e){var n,r;return n=Ee(),r=function(){var r,o;return r=1<=arguments.length?t.call(arguments,0):[],o=e.apply(null,r),n.resolve(o),o},r.promise=n.promise(),r},a=function(){function e(){this.asap=n(this.asap,this),this.poke=n(this.poke,this),this.allTasks=n(this.allTasks,this),this.promise=n(this.promise,this),this.reset=n(this.reset,this),this.reset()}return e.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},e.prototype.promise=function(){var t;return t=he(this.allTasks()),(null!=t?t.promise:void 0)||Promise.resolve()},e.prototype.allTasks=function(){var t;return t=[],this.currentTask&&t.push(this.currentTask),t=t.concat(this.queue)},e.prototype.poke=function(){var t;return!this.currentTask&&(this.currentTask=this.queue.shift())?(t=this.currentTask(),p(t,function(t){return function(){return t.currentTask=void 0,t.poke()}}(this))):void 0},e.prototype.asap=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],this.queue=me(e,Qe),this.poke(),this.promise()},e}(),ln=function(t){var e;return e=r(t),e.is("[type=checkbox], [type=radio]")&&!e.is(":checked")?void 0:e.val()},on=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],function(){return me(e,function(t){return t()})}},Ve=function(t){var e,n;return n=void 0,e=new Promise(function(e){return n=an(t,e)}),e.cancel=function(){return clearTimeout(n)},e},N=function(t){var e,n,r,o;return e=ge(t),r=g(),n=e.left+.5*e.width,o=.5*r.width,o>n?"left":"right"},E=function(t,e){var n;return n=r("<div></div>"),n.insertAfter(t),t.detach(),n.replaceWith(e),t},U=function(t){var e,n,r,o;for(e=[],n=0,r=t.length;r>n;n++)o=t[n],L(o)?e=e.concat(o):e.push(o);return e},le=function(t){return!!t},p=function(t,e){return t.then(e,e)},xe=function(t){return null!=t?t["catch"](Fe):void 0},Ee=function(){var t,e;return e=void 0,Ie=void 0,t=new Promise(function(t,n){return e=t,Ie=n}),t.resolve=e,t.reject=Ie,t.promise=function(){return t},t},We=function(t){var e;try{return t()}catch(n){return e=n,Promise.reject(e)}},Q=function(t){return r(t).parents("body").length>0},{requestDataAsArray:Je,requestDataAsQuery:Ge,appendRequestData:f,mergeRequestData:we,requestDataFromForm:Ze,offsetParent:Oe,fixedToAbsolute:M,isFixed:X,presentAttr:Ke,parseUrl:Ne,normalizeUrl:$e,normalizeMethod:Ae,methodAllowsPayload:ke,createElementFromHtml:S,$createElementFromSelector:o,$createPlaceholder:i,selectorForElement:rn,assign:h,assignPolyfill:d,copy:k,merge:be,options:_e,option:qe,fail:j,each:F,map:me,times:cn,any:c,all:l,detect:P,select:tn,reject:Ie,intersect:z,compact:y,uniq:mn,uniqBy:vn,last:he,isNull:ee,isDefined:I,isUndefined:pe,isGiven:Z,isMissing:te,isPresent:ie,isBlank:K,presence:Le,isObject:re,isFunction:G,isString:se,isNumber:ne,isElement:B,isJQuery:Y,isPromise:ue,isOptions:oe,isArray:L,isFormData:J,isUnmodifiedKeyEvent:ce,isUnmodifiedMouseEvent:fe,nullJQuery:De,unJQuery:dn,setTimer:an,nextFrame:Pe,measure:ge,temporaryCss:pn,cssAnimate:x,forceCompositing:q,forceRepaint:_,escapePressed:$,copyAttributes:T,selectInSubtree:nn,selectInDynasty:en,contains:w,toArray:fn,castedAttr:v,clientSize:g,only:je,except:O,trim:hn,unresolvablePromise:gn,setMissingAttrs:un,remove:Be,memoize:ye,scrollbarWidth:Ye,documentHasVerticalScrollbar:C,config:b,openConfig:Ue,unwrapElement:yn,multiSelector:Se,error:j,pluckData:He,pluckKey:ze,renameKey:Xe,extractOptions:R,isDetached:W,noop:Fe,opacity:Me,whenReady:bn,identity:H,escapeHtml:A,DivertibleChain:a,submittedValue:ln,sequence:on,promiseTimer:Ve,previewable:Qe,evalOption:D,horizontalScreenHalf:N,detachWith:E,flatten:U,isTruthy:le,newDeferred:Ee,always:p,muteRejection:xe,rejectOnError:We,isBodyDescendant:Q,isCrossDomain:V,microtask:Te}}(jQuery),up.fail=up.util.fail}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.Cache=function(){function r(t){this.config=null!=t?t:{},this.get=e(this.get,this),this.isFresh=e(this.isFresh,this),this.remove=e(this.remove,this),this.set=e(this.set,this),this.timestamp=e(this.timestamp,this),this.alias=e(this.alias,this),this.makeRoomForAnotherKey=e(this.makeRoomForAnotherKey,this),this.keys=e(this.keys,this),this.log=e(this.log,this),this.clear=e(this.clear,this),this.isCachable=e(this.isCachable,this),this.isEnabled=e(this.isEnabled,this),this.normalizeStoreKey=e(this.normalizeStoreKey,this),this.expiryMillis=e(this.expiryMillis,this),this.maxKeys=e(this.maxKeys,this),this.store={}}return r.prototype.maxKeys=function(){return t.evalOption(this.config.size)},r.prototype.expiryMillis=function(){return t.evalOption(this.config.expiry)},r.prototype.normalizeStoreKey=function(t){return this.config.key?this.config.key(t):this.key.toString()},r.prototype.isEnabled=function(){return 0!==this.maxKeys()&&0!==this.expiryMillis()},r.prototype.isCachable=function(t){return this.config.cachable?this.config.cachable(t):!0},r.prototype.clear=function(){return this.store={}},r.prototype.log=function(){var t;return t=1<=arguments.length?n.call(arguments,0):[],this.config.logPrefix?(t[0]="["+this.config.logPrefix+"] "+t[0],up.puts.apply(up,t)):void 0},r.prototype.keys=function(){return Object.keys(this.store)},r.prototype.makeRoomForAnotherKey=function(){var e,n,r,o;return o=t.copy(this.keys()),e=this.maxKeys(),e&&o.length>=e&&(n=null,r=null,t.each(o,function(t){return function(e){var o,i;return o=t.store[e],i=o.timestamp,!r||r>i?(n=e,r=i):void 0}}(this)),n)?delete this.store[n]:void 0},r.prototype.alias=function(e,n){var r;return r=this.get(e,{silent:!0}),t.isDefined(r)?this.set(n,r):void 0},r.prototype.timestamp=function(){return(new Date).valueOf()},r.prototype.set=function(t,e){var n;return this.isEnabled()&&this.isCachable(t)?(this.makeRoomForAnotherKey(),n=this.normalizeStoreKey(t),this.log("Setting entry %o to %o",n,e),this.store[n]={timestamp:this.timestamp(),value:e}):void 0},r.prototype.remove=function(t){var e;return this.isCachable(t)?(e=this.normalizeStoreKey(t),delete this.store[e]):void 0},r.prototype.isFresh=function(t){var e,n;return e=this.expiryMillis(),e?(n=this.timestamp()-t.timestamp,e>n):!0},r.prototype.get=function(t,e){var n;return null==e&&(e={}),this.isCachable(t)&&(n=this.store[this.normalizeStoreKey(t)])?this.isFresh(n)?(e.silent||this.log("Cache hit for '%s'",t),n.value):(e.silent||this.log("Discarding stale cache entry for '%s'",t),void this.remove(t)):void(e.silent||this.log("Cache miss for '%s'",t))},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.ExtractCascade=function(){function n(n,r){this.oldPlanNotFound=e(this.oldPlanNotFound,this),this.matchingPlanNotFound=e(this.matchingPlanNotFound,this),this.bestMatchingSteps=e(this.bestMatchingSteps,this),this.bestPreflightSelector=e(this.bestPreflightSelector,this),this.detectPlan=e(this.detectPlan,this),this.matchingPlan=e(this.matchingPlan,this),this.newPlan=e(this.newPlan,this),this.oldPlan=e(this.oldPlan,this),this.options=t.options(r,{humanizedTarget:"selector",layer:"auto"}),this.options.transition=t.option(this.options.transition,this.options.animation),this.options.hungry=t.option(this.options.hungry,!0),this.candidates=this.buildCandidates(n),this.plans=t.map(this.candidates,function(e){return function(n,r){var o;return o=t.copy(e.options),r>0&&(o.transition=t.option(up.dom.config.fallbackTransition,e.options.transition)),new up.ExtractPlan(n,o)}}(this))}return n.prototype.buildCandidates=function(e){var n;return n=[e,this.options.fallback,up.dom.config.fallbacks],n=t.flatten(n),n=t.select(n,t.isTruthy),n=t.uniq(n),(this.options.fallback===!1||this.options.provideTarget)&&(n=[n[0]]),n},n.prototype.oldPlan=function(){return this.detectPlan("oldExists")},n.prototype.newPlan=function(){return this.detectPlan("newExists")},n.prototype.matchingPlan=function(){return this.detectPlan("matchExists")},n.prototype.detectPlan=function(e){return t.detect(this.plans,function(t){return t[e]()})},n.prototype.bestPreflightSelector=function(){var t;return t=this.options.provideTarget?this.plans[0]:this.oldPlan(),t?(t.resolveNesting(),t.selector()):this.oldPlanNotFound()},n.prototype.bestMatchingSteps=function(){var t;return(t=this.matchingPlan())?(t.addHungrySteps(),t.resolveNesting(),t.steps):this.matchingPlanNotFound()},n.prototype.matchingPlanNotFound=function(){var t,e;return this.newPlan()?this.oldPlanNotFound():(e=this.oldPlan()?"Could not find "+this.options.humanizedTarget+" in response":"Could not match "+this.options.humanizedTarget+" in current page and response",this.options.inspectResponse&&(t={label:"Open response",callback:this.options.inspectResponse}),up.fail([e+" (tried %o)",this.candidates],{action:t}))},n.prototype.oldPlanNotFound=function(){var t;return t=this.options.layer,"auto"===t&&(t="page, modal or popup"),up.fail("Could not find "+this.options.humanizedTarget+" in current "+t+" (tried %o)",this.candidates)},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.ExtractPlan=function(){function n(t,n){this.addHungrySteps=e(this.addHungrySteps,this),this.parseSteps=e(this.parseSteps,this),this.selector=e(this.selector,this),this.resolveNesting=e(this.resolveNesting,this),this.addSteps=e(this.addSteps,this),this.matchExists=e(this.matchExists,this),this.newExists=e(this.newExists,this),this.oldExists=e(this.oldExists,this),this.findNew=e(this.findNew,this),this.findOld=e(this.findOld,this);var r;this.reveal=n.reveal,this.origin=n.origin,this.hungry=n.hungry,this.transition=n.transition,this.response=n.response,this.oldLayer=n.layer,r=up.dom.resolveSelector(t,this.origin),this.parseSteps(r)}return n.prototype.findOld=function(){return t.each(this.steps,function(t){return function(e){return e.$old=up.dom.first(e.selector,{layer:t.oldLayer})}}(this))},n.prototype.findNew=function(){return t.each(this.steps,function(t){return function(e){return e.$new=t.response.first(e.selector)}}(this))},n.prototype.oldExists=function(){return this.findOld(),t.all(this.steps,function(t){return t.$old})},n.prototype.newExists=function(){return this.findNew(),t.all(this.steps,function(t){return t.$new})},n.prototype.matchExists=function(){return this.oldExists()&&this.newExists()},n.prototype.addSteps=function(t){return this.steps=this.steps.concat(t)},n.prototype.resolveNesting=function(){var e;if(!(this.steps.length<2))return e=t.copy(this.steps),e=t.uniqBy(e,function(t){return t.$old[0]}),e=t.select(e,function(){return function(n,r){return t.all(e,function(t,e){var o,i;return e===r?!0:(o=n.$old[0],i=t.$old[0],t.pseudoClass||!$.contains(i,o))})}}(this)),e[0].reveal=this.steps[0].reveal,this.steps=e},n.prototype.selector=function(){return t.map(this.steps,"expression").join(", ")},n.prototype.parseSteps=function(e){var n,r;return n=/\ *,\ */,this.steps=[],r=e.split(n),t.each(r,function(t){return function(e,n){var r,o,i,u;return o=e.match(/^(.+?)(?:\:(before|after))?$/),o||up.fail('Could not parse selector literal "%s"',e),u=o[1],"html"===u&&(u="body"),i=o[2],r=0===n?t.reveal:!1,t.steps.push({expression:e,selector:u,pseudoClass:i,transition:t.transition,origin:t.origin,reveal:r})}}(this))},n.prototype.addHungrySteps=function(){var e,n,r,o,i,u,a,s,l;if(i=[],this.hungry)for(e=up.radio.hungrySelector().select(),l=t.option(up.radio.config.hungryTransition,this.transition),u=0,a=e.length;a>u;u++)o=e[u],n=$(o),s=t.selectorForElement(n),(r=this.response.first(s))&&i.push({selector:s,$old:n,$new:r,transition:l,reveal:!1,origin:null});return this.addSteps(i)},n}()}.call(this),function(){var t;t=up.util,up.ExtractStep=function(){function t(){}return t}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.FieldObserver=function(){function n(t,n){this.$field=t,this.check=e(this.check,this),this.readFieldValue=e(this.readFieldValue,this),this.requestCallback=e(this.requestCallback,this),this.isNewValue=e(this.isNewValue,this),this.scheduleTimer=e(this.scheduleTimer,this),this.cancelTimer=e(this.cancelTimer,this),this.stop=e(this.stop,this),this.start=e(this.start,this),this.delay=n.delay,this.callback=n.callback}var r;return r="input change",n.prototype.start=function(){return this.scheduledValue=null,this.processedValue=this.readFieldValue(),this.currentTimer=void 0,this.currentCallback=void 0,this.$field.on(r,this.check)},n.prototype.stop=function(){return this.$field.off(r,this.check),this.cancelTimer()},n.prototype.cancelTimer=function(){return clearTimeout(this.currentTimer),this.currentTimer=void 0},n.prototype.scheduleTimer=function(){return this.currentTimer=t.setTimer(this.delay,function(t){return function(){return t.currentTimer=void 0,t.requestCallback()}}(this))},n.prototype.isNewValue=function(t){return t!==this.processedValue&&(null===this.scheduledValue||this.scheduledValue!==t)},n.prototype.requestCallback=function(){var e;return null===this.scheduledValue||this.currentTimer||this.currentCallback?void 0:(this.processedValue=this.scheduledValue,this.scheduledValue=null,this.currentCallback=function(t){return function(){return t.callback.call(t.$field.get(0),t.processedValue,t.$field)}}(this),e=Promise.resolve(this.currentCallback()),t.always(e,function(t){return function(){return t.currentCallback=void 0,t.requestCallback()}}(this)))},n.prototype.readFieldValue=function(){return t.submittedValue(this.$field)},n.prototype.check=function(){var t;return t=this.readFieldValue(),this.isNewValue(t)?(this.scheduledValue=t,this.cancelTimer(),this.scheduleTimer()):void 0},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.FollowVariant=function(){function r(t,n){this.matchesLink=e(this.matchesLink,this),this.preloadLink=e(this.preloadLink,this),this.followLink=e(this.followLink,this),this.fullSelector=e(this.fullSelector,this),this.onMousedown=e(this.onMousedown,this),this.onClick=e(this.onClick,this),this.followNow=n.follow,this.preloadNow=n.preload,this.selectors=t.split(/\s*,\s*/)}return r.prototype.onClick=function(t,e){return up.link.shouldProcessEvent(t,e)?e.is("[up-instant]")?up.bus.haltEvent(t):(up.bus.consumeAction(t),this.followLink(e)):up.link.allowDefault(t)},r.prototype.onMousedown=function(t,e){return up.link.shouldProcessEvent(t,e)?(up.bus.consumeAction(t),this.followLink(e)):void 0},r.prototype.fullSelector=function(t){var e;return null==t&&(t=""),e=[],this.selectors.forEach(function(n){return["a","[up-href]"].forEach(function(r){return e.push(""+r+n+t)})}),e.join(", ")},r.prototype.registerEvents=function(){return up.on("click",this.fullSelector(),function(e){return function(){var r;return r=1<=arguments.length?n.call(arguments,0):[],t.muteRejection(e.onClick.apply(e,r))}}(this)),up.on("mousedown",this.fullSelector("[up-instant]"),function(e){return function(){var r;return r=1<=arguments.length?n.call(arguments,0):[],t.muteRejection(e.onMousedown.apply(e,r))}}(this))},r.prototype.followLink=function(t,e){return null==e&&(e={}),up.bus.whenEmitted("up:link:follow",{$element:t}).then(function(n){return function(){return up.feedback.start(t,e,function(){return n.followNow(t,e)})}}(this))},r.prototype.preloadLink=function(t,e){return null==e&&(e={}),this.preloadNow(t,e)},r.prototype.matchesLink=function(t){return t.is(this.fullSelector())},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.MotionTracker=function(){function n(t){this.forwardFinishEvent=e(this.forwardFinishEvent,this),this.unmarkElement=e(this.unmarkElement,this),this.markElement=e(this.markElement,this),this.whenElementFinished=e(this.whenElementFinished,this),this.finishOneElement=e(this.finishOneElement,this),this.finish=e(this.finish,this),this.claim=e(this.claim,this),this.className="up-"+t,this.dataKey="up-"+t+"-finished",this.selector="."+this.className,this.finishEvent="up:"+t+":finish"}return n.prototype.claim=function(t,e){return this.finish(t).then(function(n){return function(){return n.start(t,e)}}(this))},n.prototype.start=function(t,e){var n;return n=e(t),this.markElement(t,n),n.then(function(e){return function(){return e.unmarkElement(t)}}(this)),n},n.prototype.finish=function(e){var n,r;return n=this.expandFinishRequest(e),r=t.map(n,this.finishOneElement),Promise.all(r)},n.prototype.expandFinishRequest=function(e){return e?t.selectInDynasty($(e),this.selector):$(this.selector)},n.prototype.finishOneElement=function(t){var e;return e=$(t),e.trigger(this.finishEvent),this.whenElementFinished(e)},n.prototype.whenElementFinished=function(t){return t.data(this.dataKey)||Promise.resolve()},n.prototype.markElement=function(t,e){return t.addClass(this.className),t.data(this.dataKey,e)},n.prototype.unmarkElement=function(t){return t.removeClass(this.className),t.removeData(this.dataKey)},n.prototype.forwardFinishEvent=function(t,e,n){return this.start(t,function(r){return function(){var o;return o=function(){return e.trigger(r.finishEvent)},t.on(r.finishEvent,o),n.then(function(){return t.off(r.finishEvent,o)})}}(this))},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.Record=function(){function r(n){this.copy=e(this.copy,this),this.attributes=e(this.attributes,this),t.assign(this,this.attributes(n))}return r.prototype.fields=function(){throw"Return an array of property names"},r.prototype.attributes=function(e){return null==e&&(e=this),t.only.apply(t,[e].concat(n.call(this.fields())))},r.prototype.copy=function(e){var n;return null==e&&(e={}),n=t.merge(this.attributes(),e),new this.constructor(n)},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t=up.util,up.Request=function(r){function o(t){this.cacheKey=e(this.cacheKey,this),this.isCachable=e(this.isCachable,this),this.buildResponse=e(this.buildResponse,this),this.isCrossDomain=e(this.isCrossDomain,this),this.csrfToken=e(this.csrfToken,this),this.navigate=e(this.navigate,this),this.send=e(this.send,this),this.isSafe=e(this.isSafe,this),this.transferSearchToData=e(this.transferSearchToData,this),this.transferDataToUrl=e(this.transferDataToUrl,this),this.extractHashFromUrl=e(this.extractHashFromUrl,this),this.normalize=e(this.normalize,this),o.__super__.constructor.call(this,t),this.normalize()}return n(o,r),o.prototype.fields=function(){return["method","url","data","target","failTarget","headers","timeout"]},o.prototype.normalize=function(){return this.method=t.normalizeMethod(this.method),this.headers||(this.headers={}),this.extractHashFromUrl(),t.methodAllowsPayload(this.method)?this.transferSearchToData():this.transferDataToUrl()},o.prototype.extractHashFromUrl=function(){var e;return e=t.parseUrl(this.url),this.hash=e.hash,this.url=t.normalizeUrl(e,{hash:!1})},o.prototype.transferDataToUrl=function(){var e,n;return this.data&&!t.isFormData(this.data)?(e=t.requestDataAsQuery(this.data),n=t.contains(this.url,"?")?"&":"?",this.url+=n+e,this.data=void 0):void 0},o.prototype.transferSearchToData=function(){var e,n;return n=t.parseUrl(this.url),e=n.search,e?(this.data=t.mergeRequestData(this.data,e),this.url=t.normalizeUrl(n,{search:!1})):void 0},o.prototype.isSafe=function(){return up.proxy.isSafeMethod(this.method)},o.prototype.send=function(){return new Promise(function(e){return function(n,r){var o,i,u,a,s,l,p,c,f,h;l=new XMLHttpRequest,c=t.copy(e.headers),p=e.data,f=e.method,h=e.url,u=up.proxy.wrapMethod(f,p),f=u[0],p=u[1],t.isFormData(p)?delete c["Content-Type"]:t.isPresent(p)?(p=t.requestDataAsQuery(p,{purpose:"form"}),c["Content-Type"]="application/x-www-form-urlencoded"):p=null,e.target&&(c[up.protocol.config.targetHeader]=e.target),e.failTarget&&(c[up.protocol.config.failTargetHeader]=e.failTarget),e.isCrossDomain()||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest"),(o=e.csrfToken())&&(c[up.protocol.config.csrfHeader]=o),l.open(f,h);for(i in c)s=c[i],l.setRequestHeader(i,s);return a=function(){var t;return t=e.buildResponse(l),t.isSuccess()?n(t):r(t)},l.onload=a,l.onerror=a,l.ontimeout=a,e.timeout&&(l.timeout=e.timeout),l.send(p)}}(this))},o.prototype.navigate=function(){var e,n,r,o,i;return this.transferSearchToData(),e=$('<form class="up-page-loader"></form>'),n=function(t){return $('<input type="hidden">').attr(t).appendTo(e)
2
- },"GET"===this.method?i="GET":(n({name:up.protocol.config.methodParam,value:this.method}),i="POST"),e.attr({method:i,action:this.url}),(r=up.protocol.csrfParam())&&(o=this.csrfToken())&&n({name:r,value:o}),t.each(t.requestDataAsArray(this.data),n),e.hide().appendTo("body"),up.browser.submitForm(e)},o.prototype.csrfToken=function(){return this.isSafe()||this.isCrossDomain()?void 0:up.protocol.csrfToken()},o.prototype.isCrossDomain=function(){return t.isCrossDomain(this.url)},o.prototype.buildResponse=function(t){var e,n,r;return n={method:this.method,url:this.url,text:t.responseText,status:t.status,request:this,xhr:t},(r=up.protocol.locationFromXhr(t))&&(n.url=r,n.method=null!=(e=up.protocol.methodFromXhr(t))?e:"GET"),n.title=up.protocol.titleFromXhr(t),new up.Response(n)},o.prototype.isCachable=function(){return this.isSafe()&&!t.isFormData(this.data)},o.prototype.cacheKey=function(){return[this.url,this.method,t.requestDataAsQuery(this.data),this.target].join("|")},o.wrap=function(t){return t instanceof this?t:new this(t)},o}(up.Record)}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t=up.util,up.Response=function(r){function o(t){this.isFatalError=e(this.isFatalError,this),this.isError=e(this.isError,this),this.isSuccess=e(this.isSuccess,this),o.__super__.constructor.call(this,t)}return n(o,r),o.prototype.fields=function(){return["method","url","text","status","request","xhr","title"]},o.prototype.isSuccess=function(){return this.status&&this.status>=200&&this.status<=299},o.prototype.isError=function(){return!this.isSuccess()},o.prototype.isFatalError=function(){return this.isError()&&t.isBlank(this.text)},o}(up.Record)}.call(this),function(){var t=[].slice;up.browser=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E;return S=up.util,d=function(t,e){var n;return null==e&&(e={}),n=new up.Request(S.merge(e,{url:t})),n.navigate()},T=function(t){return t.submit()},g=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],console[n].apply(console,e)},n=/\%[odisf]/g,k=function(t){var n,r,o,i,u,a,s,l,p;if(a=200,o="",S.isString(t))l=t.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',o='"';else if(S.isUndefined(t))l="undefined";else if(S.isNumber(t)||S.isFunction(t))l=t.toString();else if(S.isArray(t))l="["+S.map(t,k).join(", ")+"]",o="]";else if(S.isJQuery(t))l="$("+S.map(t,k).join(", ")+")",o=")";else if(S.isElement(t)){for(n=e(t),l="<"+t.tagName.toLowerCase(),s=["id","name","class"],i=0,u=s.length;u>i;i++)r=s[i],(p=n.attr(r))&&(l+=" "+r+'="'+p+'"');l+=">",o=">"}else l=JSON.stringify(t);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=o),l},b=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],w.apply(null,[S.identity,n].concat(t.call(e)))},w=function(){var e,r,o,i;return r=arguments[0],i=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],S.isBlank(i)?"":(o=0,i.replace(n,function(){var t;return t=e[o],t=r(k(t)),o+=1,t}))},x=function(){return location.href},c=S.memoize(function(){return!window.atob}),l=function(){return S.isDefined(history.pushState)&&"get"===up.protocol.initialRequestMethod()},o=function(){return"transition"in document.documentElement.style},a=function(){return"oninput"in document.createElement("input")},s=function(){return!!window.Promise},u=function(){return!!window.FormData},i=function(){return!!window.DOMParser},r=function(){return window.console&&console.debug&&console.info&&console.warn&&console.error&&console.group&&console.groupCollapsed&&console.groupEnd},f=function(){var t,n,r,o;return o=e.fn.jquery,r=o.split("."),t=parseInt(r[0]),n=parseInt(r[1]),t>=2||1===t&&n>=9},v=function(t){var e,n;return n=null!=(e=document.cookie.match(new RegExp(t+"=(\\w+)")))?e[1]:void 0,S.isPresent(n)&&(document.cookie=t+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},E=function(t){return t.preload||S.isBlank(t.confirm)||window.confirm(t.confirm)?Promise.resolve():Promise.reject(new Error("User canceled action"))},h=function(){return!c()&&f()&&r()&&i()&&u()&&o()&&a()&&s()},y=S.memoize(function(){try{return window.sessionStorage}catch(t){return m()}}),m=function(){var t;return t={},{getItem:function(e){return t[e]},setItem:function(e,n){return t[e]=n}}},p=function(t){return t||(t=location.hash),t||(t=""),"#"===t[0]&&(t=t.substr(1)),S.presence(t)},{url:x,navigate:d,submitForm:T,canPushState:l,whenConfirmed:E,isSupported:h,puts:g,sprintf:b,sprintfWithFormattedArgs:w,sessionStorage:y,popCookie:v,hash:p}}(jQuery)}.call(this),function(){var t=[].slice;up.bus=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E;return w=up.util,p={},f=0,g={},x=function(t){return function(n){var r;return r=n.$element||e(this),t.apply(r.get(0),[n,r,up.syntax.data(r)])}},S=function(t,e){var n,r,o;return n=w.copy(t),u(n),o=n.pop(),r=void 0,e?(r=x(o),o._asJqueryListener=r,o._descriptionNumber=++f):(r=o._asJqueryListener,r||up.fail("up.off(): The callback %o was never registered through up.on()",o)),n.push(r),n},u=function(t){var e;return e=t[0].split(/\s+/),e=w.map(e,function(t){var e;return(e=g[t])?(up.log.warn(t+" has been renamed to "+e),e):t}),t[0]=e.join(" ")},l=function(){var n,r,o;return o=1<=arguments.length?t.call(arguments,0):[],up.browser.isSupported()?(n=S(o,!0),m(o),(r=e(document)).on.apply(r,n),function(){return k.apply(null,o)}):function(){}},k=function(){var n,r,o;return o=1<=arguments.length?t.call(arguments,0):[],n=S(o,!1),a(o),(r=e(document)).off.apply(r,n)},m=function(t){var e;return e=T(t),p[e]=t},a=function(t){var e;return e=T(t),delete p[e]},T=function(t){return w.last(t)._descriptionNumber},o=function(t,n){var r,o;return null==n&&(n={}),o=e.Event(t,n),(r=n.$element)?delete n.$element:r=e(document),c(t,n),r.trigger(o),o},c=function(e,n){var r,o,i;return n.hasOwnProperty("message")?(r=n.message,delete n.message,r!==!1&&(w.isArray(r)?(i=r,r=i[0],o=2<=i.length?t.call(i,1):[]):o=[],r)?w.isPresent(n)?up.puts.apply(up,[r+" (%s (%o))"].concat(t.call(o),[e],[n])):up.puts.apply(up,[r+" (%s)"].concat(t.call(o),[e])):void 0):w.isPresent(n)?up.puts("Emitted event %s (%o)",e,n):up.puts("Emitted event %s",e)},h=function(){var e,n;return e=1<=arguments.length?t.call(arguments,0):[],n=o.apply(null,e),!n.isDefaultPrevented()},E=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],new Promise(function(t,n){return h.apply(null,e)?t():n(new Error("Event "+e[0]+" was prevented"))})},d=function(t){return l("keydown","body",function(e){return w.escapePressed(e)?t(e):void 0})},s=function(t){return t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault()},r=function(t){return s(t),"up:action:consumed"!==t.type?o("up:action:consumed",{$element:e(t.target),message:!1}):void 0},b=function(){var t,e,n;n=[];for(e in p)t=p[e],n.push(t.isDefault=!0);return n},y=function(){var t,e,n,r,o,i;e=[];for(o in p)t=p[o],t.isDefault||e.push(t);for(i=[],n=0,r=e.length;r>n;n++)t=e[n],i.push(k.apply(null,t));return i},i=function(){return o("up:framework:reset",{message:"Resetting framework"}),up.protocol.reset()},v=function(t,e){return g[t]=e},n=function(){return up.browser.isSupported()?(o("up:framework:boot",{message:"Booting framework"}),o("up:framework:booted",{message:"Framework booted"}),w.nextFrame(function(){return w.whenReady().then(function(){return o("up:app:boot",{message:"Booting user application"}),o("up:app:booted",{message:"User application booted"})})})):"function"==typeof console.log?console.log("Unpoly doesn't support this browser. Framework was not booted."):void 0},l("up:framework:booted",b),l("up:framework:reset",y),{on:l,off:k,emit:o,nobodyPrevents:h,whenEmitted:E,onEscape:d,emitReset:i,haltEvent:s,consumeAction:r,renamedEvent:v,boot:n}}(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(){up.protocol=function(t){var e,n,r,o,i,u,a,s,l;return l=up.util,i=function(t){return t.getResponseHeader(e.locationHeader)||t.responseURL},s=function(t){return t.getResponseHeader(e.titleHeader)},u=function(t){var n;return(n=t.getResponseHeader(e.methodHeader))?l.normalizeMethod(n):void 0},o=l.memoize(function(){var t;return t=up.browser.popCookie(e.methodCookie),(t||"get").toLowerCase()}),up.bus.on("up:framework:booted",o),e=l.config({targetHeader:"X-Up-Target",failTargetHeader:"X-Up-Fail-Target",locationHeader:"X-Up-Location",validateHeader:"X-Up-Validate",titleHeader:"X-Up-Title",methodHeader:"X-Up-Method",methodCookie:"_up_method",methodParam:"_method",csrfParam:function(){return t('meta[name="csrf-param"]').attr("content")},csrfToken:function(){return t('meta[name="csrf-token"]').attr("content")},csrfHeader:"X-CSRF-Token"}),n=function(){return l.evalOption(e.csrfParam)},r=function(){return l.evalOption(e.csrfToken)},a=function(){return e.reset()},{config:e,reset:a,locationFromXhr:i,titleFromXhr:s,methodFromXhr:u,csrfParam:n,csrfToken:r,initialRequestMethod:o}}(jQuery)}.call(this),function(){var t=[].slice;up.log=function(){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m;return d=up.util,n=up.browser,e="up.log.enabled",r=d.config({prefix:"[UP] ",enabled:"true"===n.sessionStorage().getItem(e),collapse:!1}),f=function(){return r.reset()},l=function(t){return""+r.prefix+t},o=function(){var e,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r.enabled&&o?n.puts.apply(n,["debug",l(o)].concat(t.call(e))):void 0},c=function(){var e,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r.enabled&&o?n.puts.apply(n,["log",l(o)].concat(t.call(e))):void 0},m=function(){var e,r;return r=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r?n.puts.apply(n,["warn",l(r)].concat(t.call(e))):void 0},s=function(){var e,o,i,u;if(i=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],o=e.pop(),!r.enabled||!i)return o();u=r.collapse?"groupCollapsed":"group",n.puts.apply(n,[u,l(i)].concat(t.call(e)));try{return o()}finally{i&&n.puts("groupEnd")}},a=function(){var e,r;return r=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r?n.puts.apply(n,["error",l(r)].concat(t.call(e))):void 0},p=function(){var t;return t=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",t+=r.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",n.puts("log",t)},up.on("up:framework:boot",p),up.on("up:framework:reset",f),h=function(t){return n.sessionStorage().setItem(e,t.toString()),r.enabled=t},u=function(){return h(!0)},i=function(){return h(!1)},{puts:c,debug:o,error:a,warn:m,group:s,config:r,enable:u,disable:i}}(jQuery),up.puts=up.log.puts}.call(this),function(){var t=[].slice;up.toast=function(e){var n,r,o,i,u,a,s,l,p,c;return c=up.util,o=up.browser,n=function(t){return"<span class='up-toast-variable'>"+c.escapeHtml(t)+"</span>"},p=c.config({$toast:null}),l=function(){return i(),p.reset()},a=function(e){return c.isArray(e)?(e[0]=c.escapeHtml(e[0]),e=o.sprintfWithFormattedArgs.apply(o,[n].concat(t.call(e)))):e=c.escapeHtml(e),e},u=function(){return!!p.$toast},r=function(t,n,r){var o;return o=e('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(t)},s=function(t,n){var o,u,s,l;return null==n&&(n={}),i(),s=e('<div class="up-toast"></div>').prependTo("body"),u=e('<div class="up-toast-message"></div>').appendTo(s),o=e('<div class="up-toast-actions"></div>').appendTo(s),t=a(t),u.html(t),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),p.$toast=s},i=function(){return u()?(p.$toast.remove(),p.$toast=null):void 0},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var t=[].slice;up.syntax=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T;return T=up.util,n="up-destructible",r="up-destructors",o={"[up-back]":-100,"[up-drawer]":-200,"[up-dash]":-200,"[up-expand]":-300,"[data-method]":-400,"[data-confirm]":-400},m=!0,c=[],g=[],p=function(){var e,n,r,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],up.browser.isSupported()?(n=e.pop(),r=T.options(e[0]),d(c,o,r,n)):void 0},v=function(){var e,n,r,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],up.browser.isSupported()?(n=e.pop(),r=T.options(e[0]),m&&(r.priority=h(o)||up.fail("Unregistered priority for system macro %o",o)),d(g,o,r,n)):void 0},h=function(t){var e,n;for(n in o)if(e=o[n],t.indexOf(n)>=0)return e},a=function(t,e,n){return{selector:t,callback:n,isSystem:m,priority:e.priority||0,batch:e.batch,keep:e.keep}},d=function(t,e,n,r){var o,i,u;if(up.browser.isSupported()){for(i=a(e,n,r),o=0;(u=t[o])&&u.priority>=i.priority;)o+=1;return t.splice(o,0,i)}},u=function(t,e,n){var r,o;return up.puts(t.isSystem?void 0:"Compiling '%s' on %o",t.selector,n),t.keep&&(o=T.isString(t.keep)?t.keep:"",e.attr("up-keep",o)),r=t.callback.apply(n,[e,f(e)]),i(e,r)},y=function(t){return T.isFunction(t)?t:T.isArray(t)&&T.all(t,T.isFunction)?T.sequence.apply(T,t):void 0},i=function(t,e){var o;return(e=y(e))?(t.addClass(n),o=t.data(r)||function(){return w(t)},o=T.sequence(o,e),t.data(r,o)):void 0},w=function(t){return t.removeData(r),t.removeClass(n)},l=function(t,n){var r;return n=T.options(n),r=e(n.skip),up.log.group("Compiling fragment %o",t.get(0),function(){var n,o,i,a,s,l;for(s=[g,c],l=[],o=0,i=s.length;i>o;o++)a=s[o],l.push(function(){var o,i,s;for(s=[],o=0,i=a.length;i>o;o++)p=a[o],n=T.selectInSubtree(t,p.selector),r.length&&(n=n.filter(function(){var t;return t=e(this),T.all(r,function(e){return 0===t.closest(e).length})})),s.push(n.length?up.log.group(p.isSystem?void 0:"Compiling '%s' on %d element(s)",p.selector,n.length,function(){return p.batch?u(p,n,n.get()):n.each(function(){return u(p,e(this),this)})}):void 0);return s}());return l})},s=function(t){return b(t)()},b=function(t){var o,i;return o=T.selectInSubtree(t,"."+n),i=T.map(o,function(t){return e(t).data(r)}),i=T.compact(i),T.sequence.apply(T,i)},f=function(t){var n,r;return n=e(t),r=n.attr("up-data"),T.isString(r)&&""!==T.trim(r)?JSON.parse(r):{}},k=function(){var t;return t=function(t){return t.isSystem},c=T.select(c,t),g=T.select(g,t)},up.on("up:framework:booted",function(){return m=!1}),up.on("up:framework:reset",k),{compiler:p,macro:v,compile:l,clean:s,prepareClean:b,data:f}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(t){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m,v;return v=up.util,n=v.config({enabled:!0,popTargets:["body"],restoreScroll:!0}),p=void 0,u=void 0,d=function(){return n.reset(),p=void 0,u=void 0},a=function(t,e){return e||(e={}),e.hash=!0,v.normalizeUrl(t,e)},r=function(t){return a(up.browser.url(),t)},o=function(t){var e;return e={stripTrailingSlash:!0},a(t,e)===r(e)},s=function(t){return u&&(p=u,u=void 0),u=t},h=function(t){return i("replaceState",t)},c=function(t,e){return e=v.options(e,{force:!1}),t=a(t),!e.force&&o(t)||!up.bus.nobodyPrevents("up:history:push",{url:t,message:"Adding history entry for "+t})?void 0:i("pushState",t)?up.emit("up:history:pushed",{url:t,message:"Advanced to location "+t}):up.emit("up:history:muted",{url:t,message:"Did not advance to "+t+" (history is unavailable)"})},i=function(t,o){var i;return up.browser.canPushState()&&n.enabled?(i=e(),window.history[t](i,"",o),s(r()),!0):!1},e=function(){return{fromUp:!0}},m=function(t){var e,o,i;return(null!=t?t.fromUp:void 0)?(i=r(),up.emit("up:history:restore",{url:i,message:"Restoring location "+i}),e=n.popTargets.join(", "),o=up.replace(e,i,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll,layer:"page"}),o.then(function(){return i=r(),up.emit("up:history:restored",{url:i,message:"Restored location "+i})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",t)},l=function(t){var e;return s(r()),up.layout.saveScroll({url:p}),e=t.originalEvent.state,m(e)},up.browser.canPushState()&&(f=function(){return t(window).on("popstate",l),h(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.macro("a[up-back], [up-href][up-back]",function(t){return v.isPresent(p)?(v.setMissingAttrs(t,{"up-href":p,"up-restore-scroll":""}),t.removeAttr("up-back"),up.link.makeFollowable(t)):void 0}),up.on("up:framework:reset",d),{config:n,push:c,replace:h,url:r,isUrl:o,previousUrl:function(){return p},normalizeUrl:a}}(jQuery)}.call(this),function(){var t=[].slice;up.layout=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C;return S=up.util,r=S.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"}),a=new up.Cache({size:30,key:up.history.normalizeUrl}),T=new up.MotionTracker("scrolling"),l=function(){return r.reset(),a.clear(),T.finish()},v=function(t,e,n){var i;return i=k(t),n=S.options(n),n.duration=S.option(n.duration,r.duration),n.easing=S.option(n.easing,r.easing),o(i).then(function(){return up.motion.isEnabled()&&n.duration>0?w(i,e,n):g(i,e)})},k=function(t){var n;return n=e(t),n.get(0)===document?e("html, body"):n},w=function(t,e,n){var r;return r=function(){var r,o;return r=function(){return t.finish()},t.on(T.eventName,r),o=t.animate({scrollTop:e},n).promise(),o.then(function(){return t.off(T.eventName)}),o},T.claim(t,r)},g=function(t,e){return t.scrollTop(e),Promise.resolve()},o=function(t){var e;return e=k(t),T.finish(e)},n=function(){return S.multiSelector(r.anchoredRight).select()},s=function(){var n,o,i,u;return i=function(t,n){var r,o;return r=e(t),o=r.css(n),S.isPresent(o)||up.fail("Fixed element %o must have a CSS attribute %s",r.get(0),n),parseFloat(o)+r.height()},o=function(){var t,n,o,a;for(o=e(r.fixedTop.join(", ")),a=[],t=0,n=o.length;n>t;t++)u=o[t],a.push(i(u,"top"));return a}(),n=function(){var t,n,o,a;for(o=e(r.fixedBottom.join(", ")),a=[],t=0,n=o.length;n>t;t++)u=o[t],a.push(i(u,"bottom"));return a}(),{top:Math.max.apply(Math,[0].concat(t.call(o))),bottom:Math.max.apply(Math,[0].concat(t.call(n)))}},c=function(t,n){var o;return o=e(t).first(),up.puts("Revealing fragment %o",o.get(0)),n=S.options(n),S.rejectOnError(function(){var t,i,u,a,l,p,c,f,h,d,m,g,y;return t=n.viewport?e(n.viewport):x(o),m=S.option(n.snap,r.snap),y=t.is(document),g=y?S.clientSize().height:t.outerHeight(),f=t.scrollTop(),l=f,c=void 0,p=void 0,y?(p=s(),c=0):(p={top:0,bottom:0},c=f),h=function(){return l+p.top},d=function(){return l+g-p.bottom-1},i=S.measure(o,{relative:t,includeMargin:!0}),u=i.top+c,a=u+Math.min(i.height,r.substance)-1,a>d()&&(l+=a-d()),(u<h()||n.top)&&(l=u-p.top),m>l&&i.top<.5*g&&(l=0),l!==f?v(t,l,n):Promise.resolve()})},f=function(){var t,e;return(e=up.browser.hash())&&(t=i(e))?c(t):Promise.resolve()},E=function(){return S.multiSelector(r.viewports)},x=function(t,n){var r,o;return null==n&&(n={}),r=e(t),o=E().seekUp(r),0===o.length&&n.strict!==!1&&up.fail("Could not find viewport for %o",r),o},C=function(t){var n;return n=e(t),E().selectInSubtree(n)},P=function(){return E().select()},y=function(t){var n;return n=e(t),n.is(document)?"document":S.selectorForElement(n)},b=function(){var t,n,o,i,u;for(u={},i=r.viewports,n=0,o=i.length;o>n;n++)t=i[n],e(t).each(function(){var t,n,r;return t=e(this),n=y(t),r=t.scrollTop(),u[n]=r});return u},u=function(t){var n,o;return null==t&&(t=void 0),t||(t=document.body),o=e(t),n=o.find("[up-fixed]"),S.isPresent(r.fixedTop)&&(n=n.add(o.find(r.fixedTop.join(", ")))),S.isPresent(r.fixedBottom)&&(n=n.add(o.find(r.fixedBottom.join(", ")))),n},m=function(t){var e,n;return null==t&&(t={}),n=S.option(t.url,up.history.url()),e=S.option(t.tops,b()),a.set(n,e)},p=function(t){var e,n,r,o,i;return null==t&&(t={}),i=up.history.url(),r=void 0,t.around?(n=C(t.around),e=x(t.around),r=e.add(n)):r=P(),o=a.get(i)||{},up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var t;return t=S.map(r,function(t){var e,n;return e=y(t),n=o[e]||0,v(t,n,{duration:0})}),Promise.all(t)})},h=function(t,n){var r,o,i;return n=S.options(n),r=e(t),n.restoreScroll?p({around:r}):n.reveal&&(o={duration:n.duration},S.isString(n.reveal)&&(i=d(n.reveal,n),r=up.first(i)||r,o.top=!0),r.length)?c(r,o):Promise.resolve()},d=function(t,e){return t=up.dom.resolveSelector(t,e.origin),"#"===t[0]&&(t+=", a[name='"+t+"']"),t},i=function(t){return(t=up.browser.hash(t))?up.first("[id='"+t+"'], a[name='"+t+"']"):void 0},up.on("up:app:booted",f),up.on("up:framework:reset",l),{reveal:c,revealHash:f,firstHashTarget:i,scroll:v,config:r,viewportOf:x,viewportsWithin:C,viewports:P,scrollTops:b,saveScroll:m,restoreScroll:p,revealOrRestoreScroll:h,anchoredRight:n,fixedChildren:u}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal,up.revealHash=up.layout.revealHash}.call(this),function(){up.dom=function(t){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C,F,A,$,D,O,R,j;return R=up.util,o=R.config({fallbacks:["body"],fallbackTransition:null}),S=function(){return o.reset()},E=function(e,n){var r;return r=t(e),R.isPresent(n)&&(n=R.normalizeUrl(n)),r.attr("up-source",n)},A=function(e){var n;return n=t(e).closest("[up-source]"),R.presence(n.attr("up-source"))||up.browser.url()},x=function(t,e){var n,r;return R.isString(t)?(r=t,R.contains(r,"&")&&(R.isPresent(e)?(n=R.selectorForElement(e),r=r.replace(/\&/,n)):up.fail("Found origin reference (%s) in selector %s, but no origin was given","&",r))):r=R.selectorForElement(t),r},T=function(t,e,n){var o,i,u,a,s,l,p,c,f,h;if(n=R.options(n),n.inspectResponse=u=function(){return up.browser.navigate(e,R.only(n,"method","data"))},!up.browser.canPushState()&&n.history!==!1)return n.preload||u(),R.unresolvablePromise();h=R.merge(n,{humanizedTarget:"target"}),i=R.merge(n,{humanizedTarget:"failure target",provideTarget:void 0,restoreScroll:!1}),R.renameKey(i,"failTransition","transition"),R.renameKey(i,"failLayer","layer"),R.renameKey(i,"failReveal","reveal");try{s=r(t,h),a=r(n.failTarget,i)}catch(d){return o=d,Promise.reject(o)}return f={url:e,method:n.method,data:n.data,target:s,failTarget:a,cache:n.cache,preload:n.preload,headers:n.headers,timeout:n.timeout},p=function(t){return w(!0,s,t,h)},l=function(t){var e,n;return n=function(){return Promise.reject(t)},t.isFatalError()?n():(e=w(!1,a,t,i),R.always(e,n))},c=up.request(f),n.preload||(c=c.then(p,l)),c},w=function(t,e,n,r){var o,i,u,a,s;return a=n.request,s=n.url,i=s,o=a.hash,r.reveal===!0&&o&&(r.reveal=o,i+=o),u="GET"===n.method,t?u?(r.history===!1||R.isString(r.history)||(r.history=i),r.source===!1||R.isString(r.source)||(r.source=s)):(R.isString(r.history)||(r.history=!1),R.isString(r.source)||(r.source="keep")):u?(r.history!==!1&&(r.history=i),r.source!==!1&&(r.source=s)):(r.history=!1,r.source="keep"),P(r)&&n.title&&(r.title=n.title),l(e,n.text,r)},P=function(t){return!(t.title===!1||R.isString(t.title)||t.history===!1&&t.title!==!0)},l=function(t,e,r){return up.log.group("Extracting %s from %d bytes of HTML",t,null!=e?e.length:void 0,function(){return r=R.options(r,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),r.saveScroll!==!1&&up.layout.saveScroll(),R.rejectOnError(function(){var o,i,u,a,s,l,p;for("function"==typeof r.provideTarget&&r.provideTarget(),a=b(e),o=n(t,a,r),P(r)&&(s=a.title())&&(r.title=s),j(r),p=[],i=0,u=o.length;u>i;i++)l=o[i],up.log.group("Updating %s",l.selector,function(){var t,e;return t=R.merge(r,R.only(l,"origin","reveal")),d(l.$new),e=$(l.$old,l.$new,l.pseudoClass,l.transition,t),p.push(e)});return Promise.all(p)})})},r=function(t,e){var n;return n=new up.ExtractCascade(t,e),n.bestPreflightSelector()},n=function(t,e,n){var r;return n=R.merge(n,{response:e}),r=new up.ExtractCascade(t,n),r.bestMatchingSteps()},d=function(t){var e,n,r,o,i;for(n=[],u(t.get(0),n),i=[],r=0,o=n.length;o>r;r++)e=n[r],i.push(e());return i},u=function(t,e){var n,r,o,i,a,s;if("NOSCRIPT"===t.tagName)return r=document.createElement("noscript"),r.textContent=t.innerHTML,e.push(function(){return t.parentNode.replaceChild(r,t)});if("SCRIPT"===t.tagName)return e.push(function(){return t.parentNode.removeChild(t)});for(a=t.children,s=[],o=0,i=a.length;i>o;o++)n=a[o],s.push(u(n,e));return s},b=function(e){var n;return n=R.createElementFromHtml(e),{title:function(){var t;return null!=(t=n.querySelector("head title"))?t.textContent:void 0},first:function(e){var r;return(r=t.find(e,n)[0])?t(r):void 0}}},j=function(t){return t=R.options(t,{historyMethod:"push"}),t.history&&up.history[t.historyMethod](t.history),R.isString(t.title)?document.title=t.title:void 0},$=function(t,n,r,o,u){var a,l,c,f,h;return o||(o="none"),"keep"===u.source&&(u=R.merge(u,{source:A(t)})),up.motion.finish(t),r?(a=n.contents().wrapAll('<div class="up-insertion"></div>').parent(),"before"===r?t.prepend(a):t.append(a),m(a.children(),u),f=up.layout.revealOrRestoreScroll(a,u),f=f.then(function(){return up.animate(a,o,u)}),f=f.then(function(){return R.unwrapElement(a)})):(c=p(t,n,u))?(s(c),f=Promise.resolve()):(u.keepPlans=O(t,n,u),l=up.syntax.prepareClean(t),h=function(){return F(t,n,o,u)?(D(t,n),o=!1):n.insertBefore(t),u.source!==!1&&E(n,u.source),e(n),m(n,u),up.morph(t,n,o,u)},f=i(t,{clean:l,beforeWipe:h,log:!1})),f},F=function(t,e,n,r){var o;return o=t.add(e),t.is("body")||!up.motion.willAnimate(o,n,r)},D=function(t,e){return t.replaceWith(e)},O=function(e,n,r){var o,i,u,a,s,l,c,f;if(a=[],r.keep)for(f=e.find("[up-keep]"),u=0,l=f.length;l>u;u++)s=f[u],o=t(s),(c=p(o,n,R.merge(r,{descendantsOnly:!0})))&&(i=o.clone(),up.util.detachWith(o,i),c.$newElement.replaceWith(o),a.push(c));return a},p=function(t,e,n){var r,o,i,u,a;return n.keep&&(r=t,(u=R.castedAttr(r,"up-keep"))&&(R.isString(u)||(u="&"),u=x(u,r),o=n.descendantsOnly?e.find(u):R.selectInSubtree(e,u),o=o.first(),o.length&&o.is("[up-keep]")&&(a={$element:r,$newElement:o,newData:up.syntax.data(o)},i=R.merge(a,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",i))))?a:void 0},m=function(e,n){var r,o,i,u,l,p;for(r=t(e),n=R.options(n,{keepPlans:[]}),i=[],p=n.keepPlans,o=0,u=p.length;u>o;o++)l=p[o],s(l),i.push(l.$element);return up.syntax.compile(r,{skip:i}),a(r,n),r},a=function(e,n){var r;return r=t(e),up.emit("up:fragment:inserted",{$element:r,message:["Inserted fragment %o",r.get(0)],origin:n.origin})},s=function(t){var e;return e=R.merge(t,{message:["Kept fragment %o",t.$element.get(0)]}),up.emit("up:fragment:kept",e)},e=function(t){var e,n;return n="[autofocus]:last",e=R.selectInSubtree(t,n),e.length&&e.get(0)!==document.activeElement?e.focus():void 0},v=function(t){var e;return e=".up-ghost, .up-destroying",0===t.closest(e).length},c=function(t,e){var n;return e=R.options(e,{layer:"auto"}),n=x(t,e.origin),"auto"===e.layer?h(n,e.origin):f(n,e.layer)},h=function(t,e){var n,r,o,i,u,a;for(i=["popup","modal","page"],n=void 0,R.isPresent(e)&&(a=g(e),R.remove(i,a),i.unshift(a)),r=0,u=i.length;u>r&&(o=i[r],!(n=f(t,o)));r++);return n},f=function(e,n){var r,o,i,u,a,s;for(o=t(e),i=void 0,a=0,s=o.length;s>a;a++)if(u=o[a],r=t(u),v(r)&&y(r,n)){i=r;break}return i},g=function(e){var n;return n=t(e),up.popup.contains(n)?"popup":up.modal.contains(n)?"modal":"page"},y=function(t,e){return g(t)===e},i=function(e,n){var r,o,i,u,a,s;return r=t(e),n=R.options(n,{animation:!1}),C(r,n)&&(u=["Destroying fragment %o",r.get(0)],a=["Destroyed fragment %o",r.get(0)]),0===r.length?Promise.resolve():(up.emit("up:fragment:destroy",{$element:r,message:u}),r.addClass("up-destroying"),j(n),o=function(){var t;return t=up.motion.animateOptions(n),up.motion.animate(r,n.animation,t)},i=n.beforeWipe||Promise.resolve(),s=function(){return n.clean||(n.clean=function(){return up.syntax.clean(r)}),n.clean(),up.syntax.clean(r),up.emit("up:fragment:destroyed",{$element:r,message:a}),r.remove()},o().then(i).then(s))},C=function(t,e){return e.log!==!1&&!t.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")},k=function(t,e){var n;return e=R.options(e,{cache:!1}),n=e.url||A(t),T(t,n,e)},up.on("up:app:boot",function(){var e;return e=t(document.body),E(e,up.browser.url()),m(e)}),up.on("up:framework:reset",S),{replace:T,reload:k,destroy:i,extract:l,first:c,source:A,resolveSelector:x,hello:m,config:o}}(jQuery),up.replace=up.dom.replace,up.extract=up.dom.extract,up.reload=up.dom.reload,up.destroy=up.dom.destroy,up.first=up.dom.first,up.hello=up.dom.hello,up.renamedModule("flow","dom")}.call(this),function(){var t=[].slice;up.motion=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C,F;return P=up.util,v={},u={},g={},a={},m=new up.MotionTracker("motion"),i=P.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return p(),v=P.copy(u),g=P.copy(a),i.reset()},f=function(){return i.enabled},n=function(t,i,u){var a;return a=e(t),u=r(u),c(a,u).then(function(){return C(a,i,u)?P.isFunction(i)?i(a,u):P.isString(i)?n(a,s(i),u):P.isOptions(i)?o(a,i,u):up.fail("Animation must be a function, animation name or object of CSS properties, but it was %o",i):T(a,i)})},C=function(t,e,n){return n=r(n),f()&&!h(e)&&n.duration>0&&P.all(t,P.isBodyDescendant)},T=function(t,e){return P.isOptions(e)&&t.css(e),Promise.resolve()},o=function(t,e,n){var r;return r=function(){var r,o,i,u,a,s,l,p,c,f;return p=Object.keys(e),l={"transition-property":p.join(", "),"transition-duration":n.duration+"ms","transition-delay":n.delay+"ms","transition-timing-function":n.easing},u=t.css(Object.keys(l)),o=P.newDeferred(),i=function(){return o.resolve()},s=function(t){var e;return e=t.originalEvent.propertyName,P.contains(p,e)?i():void 0},a=i,t.on(m.finishEvent,a),t.on("transitionend",s),c=5,r=P.setTimer(n.duration+c,i),o.then(function(){var e;return t.off(m.finishEvent,a),t.off("transitionend",s),clearTimeout(r),f(),t.css({transition:"none"}),e=!("none"===u["transition-property"]||"all"===u["transition-property"]&&"0"===u["transition-duration"][0]),e?(P.forceRepaint(t),t.css(u)):void 0}),f=P.forceCompositing(t),t.css(l),t.css(e),o.promise()},m.start(t,r)},r=function(){var e,n,r,o,u;return n=1<=arguments.length?t.call(arguments,0):[],u=n.shift()||{},e=P.isJQuery(n[0])?n.shift():P.nullJQuery(),o=P.isObject(n[0])?n.shift():{},r={},r.easing=P.option(u.easing,P.presentAttr(e,"up-easing"),o.easing,i.easing),r.duration=Number(P.option(u.duration,P.presentAttr(e,"up-duration"),o.duration,i.duration)),r.delay=Number(P.option(u.delay,P.presentAttr(e,"up-delay"),o.delay,i.delay)),r.finishedMotion=u.finishedMotion,r},s=function(t){return v[t]||up.fail("Unknown animation %o",t)},F=function(t,e,n,r){var o,i,u,a,s,l;return n.copy===!1||t.is(".up-ghost")||e.is(".up-ghost")?r(t,e,n):(a=void 0,i=void 0,s=void 0,u=void 0,o=up.layout.viewportOf(t),P.temporaryCss(e,{display:"none"},function(){return a=y(t,o),s=o.scrollTop()}),t.hide(),l=P.merge(n,{duration:0}),up.layout.revealOrRestoreScroll(e,l).then(function(){var l,p,c,f;return i=y(e,o),u=o.scrollTop(),a.moveTop(u-s),c=P.temporaryCss(e,{opacity:"0"}),f=r(a.$ghost,i.$ghost,n),l=a.$ghost.add(i.$ghost),p=t.add(e),m.forwardFinishEvent(p,l,f),f.then(function(){return c(),a.$bounds.remove(),i.$bounds.remove()})}))},p=function(t){return m.finish(t)},d=function(t,n,o,i){var u,a,s,p,f;return i=P.options(i),i=P.assign(i,r(i)),s=e(t),a=e(n),u=s.add(a),p=l(o),f=C(u,p,i),up.log.group(f?"Morphing %o to %o with transition %o":void 0,s.get(0),a.get(0),o,function(){return c(u,i).then(function(){return f?p?F(s,a,i,p):up.fail("Unknown transition %o",o):S(s,a,i)})})},c=function(t,e){return e.finishedMotion?Promise.resolve():(e.finishedMotion=!0,p(t))},l=function(t){var e;if(h(t))return void 0;if(P.isFunction(t))return t;if(P.isArray(t))return h(t[0])&&h(t[1])?void 0:function(e,r,o){return Promise.all([n(e,t[0],o),n(r,t[1],o)])};if(P.isString(t)){if(t.indexOf("/")>=0)return l(t.split("/"));if(e=g[t])return l(e)}},S=function(t,e,n){var r;return t.hide(),r=P.merge(n,{duration:0}),up.layout.revealOrRestoreScroll(e,r)},y=function(t,n){var r,o,i,u,a,s,l,p,c;for(u=P.measure(t,{relative:!0,inner:!0}),i=t.clone(),i.find("script").remove(),i.css({position:"static"===t.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=e('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),c=u.top,p=function(t){return 0!==t?(c+=t,r.css({top:c})):void 0},i.appendTo(r),r.insertBefore(t),p(t.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;l>s;s++)a=o[s],P.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:p}
3
- },w=function(t,e){return g[t]=e},b=function(t,e){return v[t]=e},x=function(){return u=P.copy(v),a=P.copy(g)},h=function(t){return!t||"none"===t||P.isOptions(t)&&P.isBlank(t)},b("fade-in",function(t,e){return t.css({opacity:0}),n(t,{opacity:1},e)}),b("fade-out",function(t,e){return t.css({opacity:1}),n(t,{opacity:0},e)}),E=function(t,e){return{transform:"translate("+t+"px, "+e+"px)"}},b("move-to-top",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=r.top+r.height,n(t,E(0,-o),e)}),b("move-from-top",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=r.top+r.height,t.css(E(0,-o)),n(t,E(0,0),e)}),b("move-to-bottom",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=P.clientSize().height-r.top,n(t,E(0,o),e)}),b("move-from-bottom",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=P.clientSize().height-r.top,t.css(E(0,o)),n(t,E(0,0),e)}),b("move-to-left",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=r.left+r.width,n(t,E(-o,0),e)}),b("move-from-left",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=r.left+r.width,t.css(E(-o,0)),n(t,E(0,0),e)}),b("move-to-right",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=P.clientSize().width-r.left,n(t,E(o,0),e)}),b("move-from-right",function(t,e){var r,o;return t.css(E(0,0)),r=P.measure(t),o=P.clientSize().width-r.left,t.css(E(o,0)),n(t,E(0,0),e)}),b("roll-down",function(t,e){var r,o,i;return o=t.height(),i=P.temporaryCss(t,{height:"0px",overflow:"hidden"}),r=n(t,{height:o+"px"},e),r.then(i),r}),w("move-left","move-to-left/move-from-right"),w("move-right","move-to-right/move-from-left"),w("move-up","move-to-top/move-from-bottom"),w("move-down","move-to-bottom/move-from-top"),w("cross-fade","fade-out/fade-in"),up.on("up:framework:booted",x),up.on("up:framework:reset",k),{morph:d,animate:n,animateOptions:r,willAnimate:C,finish:p,transition:w,animation:b,config:i,isEnabled:f,prependCopy:y,isNone:h}}(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 t=[].slice;up.proxy=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C,F,A,$,D,O,R,j,M,U;return M=up.util,n=void 0,S=void 0,D=void 0,b=void 0,O=void 0,E=[],l=M.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],safeMethods:["GET","OPTIONS","HEAD"]}),i=new up.Cache({size:function(){return l.cacheSize},expiry:function(){return l.cacheExpiry},key:function(t){return up.Request.wrap(t).cacheKey()},cachable:function(t){return up.Request.wrap(t).isCachable()}}),p=function(t){var e,n,r,o,u,a,s;for(t=up.Request.wrap(t),n=[t],"html"!==t.target&&(a=t.copy({target:"html"}),n.push(a),"body"!==t.target&&(u=t.copy({target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(e=n[r],s=i.get(e))return s},u=function(){return clearTimeout(S),S=null},a=function(){return clearTimeout(D),D=null},F=function(){return n=null,u(),a(),b=0,l.reset(),i.clear(),O=!1,E=[]},F(),y=function(){var e,n,r,o,i;return e=1<=arguments.length?t.call(arguments,0):[],r=M.extractOptions(e),M.isGiven(e[0])&&(r.url=e[0]),n=r.cache===!1,i=up.Request.wrap(r),i.isSafe()||s(),!n&&(o=p(i))?up.puts("Re-using cached response for %s %s",i.method,i.url):(o=v(i),$(i,o),o["catch"](function(){return C(i)})),r.preload||(g(),M.always(o,m)),o},r=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],up.log.warn("up.ajax() has been deprecated. Use up.request() instead."),new Promise(function(t,n){var r;return r=function(e){return t(e.text)},y.apply(null,e).then(r,n)})},f=function(){return 0===b},c=function(){return b>0},g=function(){var t;return b+=1,D?void 0:(t=function(){return c()?(up.emit("up:proxy:slow",{message:"Proxy is slow to respond"}),O=!0):void 0},D=M.setTimer(l.slowDelay,t))},m=function(){return b-=1,f()&&(a(),O)?(up.emit("up:proxy:recover",{message:"Proxy has recovered from slow response"}),O=!1):void 0},v=function(t){return b<l.maxRequests?d(t):x(t)},x=function(t){var e;return up.puts("Queuing request for %s %s",t.method,t.url),e=function(){return d(t)},e=M.previewable(e),E.push(e),e.promise},d=function(t){var e,n;return e={request:t,message:["Loading %s %s",t.method,t.url]},up.bus.nobodyPrevents("up:proxy:load",e)?(n=t.send(),M.always(n,A),M.always(n,w),n):(M.microtask(w),Promise.reject(new Error("Event up:proxy:load was prevented")))},P=function(t){var e,n;return n=t.request,t.url&&n.url!==t.url?(e=n.copy({method:t.method,url:t.url}),up.proxy.alias(n,e)):void 0},A=function(t){return t.isFatalError()?up.emit("up:proxy:fatal",{message:"Fatal error during request",request:t.request,response:t}):(t.isError()||P(t),up.emit("up:proxy:loaded",{message:["Server responded with HTTP %d (%d bytes)",t.status,t.text.length],request:t.request,response:t}))},w=function(){var t;return void("function"==typeof(t=E.shift())&&t())},o=i.alias,$=i.set,C=i.remove,s=i.clear,up.bus.renamedEvent("up:proxy:received","up:proxy:loaded"),T=function(t){var e,r;return r=parseInt(M.presentAttr(t,"up-delay"))||l.preloadDelay,t.is(n)?void 0:(n=t,u(),e=function(){return M.muteRejection(k(t)),n=null},R(e,r))},R=function(t,e){return S=setTimeout(t,e)},j=function(t){return t.is(n)?(n=void 0,u()):void 0},k=function(t){var n;return n=e(t),up.link.isSafe(n)?up.log.group("Preloading link %o",n.get(0),function(){var t;return t=up.link.followVariantForLink(n),t.preloadLink(n)}):Promise.reject(new Error("Won't preload unsafe link"))},h=function(t){return M.contains(l.safeMethods,t)},U=function(t,e,n){return M.contains(l.wrapMethods,t)&&(e=M.appendRequestData(e,up.protocol.config.methodParam,t,n),t="POST"),[t,e]},up.compiler("a[up-preload], [up-href][up-preload]",function(t){return up.link.isSafe(t)?(t.on("mouseenter touchstart",function(e){return up.link.shouldProcessEvent(e,t)?T(t):void 0}),t.on("mouseleave",function(){return j(t)})):void 0}),up.on("up:framework:reset",F),{preload:k,ajax:r,request:y,get:p,alias:o,clear:s,remove:C,isIdle:f,isBusy:c,isSafeMethod:h,wrapMethod:U,config:l}}(jQuery),up.ajax=up.proxy.ajax,up.request=up.proxy.request}.call(this),function(){up.link=function(t){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m;return d=up.util,m=function(t,e){var n;return e=d.options(e),n=d.option(e.target,"body"),up.replace(n,t,e)},u=function(e,n){var r,o;return r=t(e),o=s(r),o.followLink(r,n)},o=function(e,n){var r,o,i;return r=t(e),n=d.options(n),i=d.option(r.attr("up-href"),r.attr("href")),o=d.option(n.target,r.attr("up-target")),n.failTarget=d.option(n.failTarget,r.attr("up-fail-target")),n.fallback=d.option(n.fallback,r.attr("up-fallback")),n.transition=d.option(n.transition,d.castedAttr(r,"up-transition"),"none"),n.failTransition=d.option(n.failTransition,d.castedAttr(r,"up-fail-transition"),"none"),n.history=d.option(n.history,d.castedAttr(r,"up-history")),n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!0),n.failReveal=d.option(n.failReveal,d.castedAttr(r,"up-fail-reveal"),!0),n.cache=d.option(n.cache,d.castedAttr(r,"up-cache")),n.restoreScroll=d.option(n.restoreScroll,d.castedAttr(r,"up-restore-scroll")),n.method=a(r,n),n.origin=d.option(n.origin,r),n.layer=d.option(n.layer,r.attr("up-layer"),"auto"),n.failLayer=d.option(n.failLayer,r.attr("up-fail-layer"),"auto"),n.confirm=d.option(n.confirm,r.attr("up-confirm")),n=d.merge(n,up.motion.animateOptions(n,r)),up.browser.whenConfirmed(n).then(function(){return up.replace(o,i,n)})},i=function(t,e){return e=d.options(e),e.preload=!0,o(t,e)},a=function(e,n){var r;return r=t(e),n=d.options(n),d.option(n.method,r.attr("up-method"),r.attr("data-method"),"get").toUpperCase()},r=function(){},l=[],n=function(t,e){var n;return n=new up.FollowVariant(t,e),l.push(n),n.registerEvents(),n},p=function(t){return!!s(t,{"default":!1})},s=function(n,r){var o,i;return r=d.options(r),o=t(n),i=d.detect(l,function(t){return t.matchesLink(o)}),r["default"]!==!1&&(i||(i=e)),i},f=function(e){var n;return n=t(e),p(n)?void 0:n.attr("up-follow","")},h=function(e,n){var r,o,i;return r=t(e.target),o=r.closest("a, [up-href]").not(n),i=up.form.fieldSelector().seekUp(r),0===o.length&&0===i.length&&d.isUnmodifiedMouseEvent(e)},c=function(e,n){var r,o;return r=t(e),o=a(r,n),up.proxy.isSafeMethod(o)},e=n("[up-target], [up-follow]",{follow:function(t,e){return o(t,e)},preload:function(t,e){return i(t,e)}}),up.macro("[up-dash]",function(t){var e,n;return n=d.castedAttr(t,"up-dash"),t.removeAttr("up-dash"),e={"up-preload":"","up-instant":""},n===!0?f(t):e["up-target"]=n,d.setMissingAttrs(t,e)}),up.macro("[up-expand]",function(e){var n,r,o,i,u,a,s,l,p,c;if(n=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(n=n.filter(p)),u=n.get(0)){for(c=/^up-/,s={},s["up-href"]=t(u).attr("href"),l=u.attributes,o=0,i=l.length;i>o;o++)r=l[o],a=r.name,a.match(c)&&(s[a]=r.value);return d.setMissingAttrs(e,s),e.removeAttr("up-expand"),f(e)}}),{visit:m,follow:u,makeFollowable:f,isSafe:c,isFollowable:p,shouldProcessEvent:h,followMethod:a,addFollowVariant:n,followVariantForLink:s,allowDefault:r}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var t=[].slice;up.form=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d,m;return d=up.util,r=d.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),s=function(){return r.reset()},o=function(){return d.multiSelector(r.fields)},p=function(t,n){var r,o,i;return r=e(t).closest("form"),n=d.options(n),o=d.option(n.target,r.attr("up-target"),"body"),i=d.option(n.url,r.attr("action"),up.browser.url()),n.failTarget=d.option(n.failTarget,r.attr("up-fail-target"))||d.selectorForElement(r),n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!0),n.failReveal=d.option(n.failReveal,d.castedAttr(r,"up-fail-reveal"),!0),n.fallback=d.option(n.fallback,r.attr("up-fallback")),n.history=d.option(n.history,d.castedAttr(r,"up-history"),!0),n.transition=d.option(n.transition,d.castedAttr(r,"up-transition"),"none"),n.failTransition=d.option(n.failTransition,d.castedAttr(r,"up-fail-transition"),"none"),n.method=d.option(n.method,r.attr("up-method"),r.attr("data-method"),r.attr("method"),"post").toUpperCase(),n.headers=d.option(n.headers,{}),n.cache=d.option(n.cache,d.castedAttr(r,"up-cache")),n.restoreScroll=d.option(n.restoreScroll,d.castedAttr(r,"up-restore-scroll")),n.origin=d.option(n.origin,r),n.layer=d.option(n.layer,r.attr("up-layer"),"auto"),n.failLayer=d.option(n.failLayer,r.attr("up-fail-layer"),"auto"),n.data=d.requestDataFromForm(r),n=d.merge(n,up.motion.animateOptions(n,r)),n.validate&&(n.headers||(n.headers={}),n.transition=!1,n.failTransition=!1,n.headers[up.protocol.config.validateHeader]=n.validate),up.bus.whenEmitted("up:form:submit",{$element:r}).then(function(){var t;return up.feedback.start(r),up.browser.canPushState()||n.history===!1?(t=up.replace(o,i,n),d.always(t,function(){return up.feedback.stop(r)}),t):(r.get(0).submit(),d.unresolvablePromise())})},u=function(){var n,i,u,s,l,p,c,f,h,m;return m=arguments[0],c=2<=arguments.length?t.call(arguments,1):[],f={},s=void 0,1===c.length?s=c[0]:c.length>1&&(f=d.options(c[0]),s=c[1]),n=e(m),u=null,h=d.option(s,d.presentAttr(n,"up-observe")),u=d.isString(h)?new Function("value","$field",h):h||up.fail("up.observe: No change callback given"),l=d.option(d.presentAttr(n,"up-delay"),f.delay,r.observeDelay),l=parseInt(l),i=o().selectInSubtree(n),p=d.map(i,function(t){return a(e(t),l,u)}),d.sequence.apply(d,p)},a=function(t,e,n){var r;return r=new up.FieldObserver(t,{delay:e,callback:n}),r.start(),r.stop},n=function(t,e){return u(t,e,function(t,e){var n;return n=e.closest("form"),up.feedback.start(e,function(){return p(n)})})},l=function(t,e){var n;return n=d.option(e.target,t.attr("up-validate")),d.isBlank(n)&&(n||(n=d.detect(r.validateTargets,function(n){var r;return r=up.dom.resolveSelector(n,e.origin),t.closest(r).length}))),d.isBlank(n)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",t.get(0),r.validateTargets),d.isString(n)||(n=d.selectorForElement(n)),n},m=function(t,n){var r,o,i;return r=e(t),n=d.options(n),n.origin=r,n.target=l(r,n),n.failTarget=n.target,n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!1),n.history=!1,n.headers=d.option(n.headers,{}),n.validate=r.attr("name")||"__none__",n=d.merge(n,up.motion.animateOptions(n,r)),o=r.closest("form"),i=up.submit(o,n)},h=function(t){var e,n,r,o;return t.is("input[type=checkbox]")?t.is(":checked")?(r=t.val(),n=":checked"):n=":unchecked":t.is("input[type=radio]")?(e=t.closest("form, body").find("input[type='radio'][name='"+t.attr("name")+"']:checked"),e.length?(n=":checked",r=e.val()):n=":unchecked"):r=t.val(),o=[],d.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),d.isPresent(n)&&o.push(n),o},f=function(t,n){var r,o,i;return r=e(t),n=d.options(n),i=d.option(n.target,r.attr("up-switch")),d.isPresent(i)||up.fail("No switch target given for %o",r.get(0)),o=h(r),e(i).each(function(){return c(e(this),o)})},c=function(t,n){var r,o,u,a;return r=e(t),n||(n=h(i(r))),(o=r.attr("up-hide-for"))?(o=o.split(" "),u=0===d.intersect(n,o).length):(a=(a=r.attr("up-show-for"))?a.split(" "):[":present",":checked"],u=d.intersect(n,a).length>0),r.toggle(u),r.addClass("up-switched")},i=function(t){var n,r;return n=e("[up-switch]"),r=d.detect(n,function(n){var r;return r=e(n).attr("up-switch"),t.is(r)}),r?e(r):d.fail("Could not find [up-switch] field for %o",t.get(0))},up.on("submit","form[up-target]",function(t,e){return up.bus.consumeAction(t),d.muteRejection(p(e))}),up.on("change","[up-validate]",function(t,e){return d.muteRejection(m(e))}),up.compiler("[up-switch]",function(t){return f(t)}),up.on("change","[up-switch]",function(t,e){return f(e)}),up.compiler("[up-show-for]:not(.up-switched), [up-hide-for]:not(.up-switched)",function(t){return c(t)}),up.compiler("[up-observe]",function(t){return u(t)}),up.compiler("[up-autosubmit]",function(t){return n(t)}),up.on("up:framework:reset",s),{config:r,submit:p,observe:u,validate:m,switchTargets:f,autosubmit:n,fieldSelector:o}}(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(t){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y;return g=up.util,s=g.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),m=g.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,coveredUrl:null,coveredTitle:null}),i=new g.DivertibleChain,d=function(){var t;return null!=(t=m.$popup)&&t.remove(),m.reset(),i.reset(),s.reset()},e=function(){var t,e,n;switch(t={},n=g.measure(m.$popup),g.isFixed(m.$anchor)?(e=m.$anchor.get(0).getBoundingClientRect(),t.position="fixed"):e=g.measure(m.$anchor),m.position){case"bottom-right":t.top=e.top+e.height,t.left=e.left+e.width-n.width;break;case"bottom-left":t.top=e.top+e.height,t.left=e.left;break;case"top-right":t.top=e.top-n.height,t.left=e.left+e.width-n.width;break;case"top-left":t.top=e.top-n.height,t.left=e.left;break;default:up.fail("Unknown position option '%s'",m.position)}return m.$popup.attr("up-position",m.position),m.$popup.css(t)},c=function(){return m.coveredTitle=null,m.coveredUrl=null},p=function(t){var e;return e=g.$createElementFromSelector(".up-popup"),g.$createPlaceholder(t,e),e.hide(),e.appendTo(document.body),m.$popup=e},y=function(){return m.$popup.show()},f=function(){return"opened"===m.phase||"opening"===m.phase},n=function(t,e){return i.asap(a,function(){return r(t,e)})},r=function(n,r){var o,i,u,a,l,c,f;return o=t(n),o.length||up.fail("Cannot attach popup to non-existing element %o",n),r=g.options(r),f=g.option(g.pluckKey(r,"url"),o.attr("up-href"),o.attr("href")),a=g.option(g.pluckKey(r,"html")),f||a||up.fail("up.popup.attach() requires either an { url } or { html } option"),c=g.option(g.pluckKey(r,"target"),o.attr("up-popup"))||up.fail("No target selector given for [up-popup]"),l=g.option(r.position,o.attr("up-position"),s.position),r.animation=g.option(r.animation,o.attr("up-animation"),s.openAnimation),r.sticky=g.option(r.sticky,g.castedAttr(o,"up-sticky"),s.sticky),r.history=up.browser.canPushState()?g.option(r.history,g.castedAttr(o,"up-history"),s.history):!1,r.confirm=g.option(r.confirm,o.attr("up-confirm")),r.method=up.link.followMethod(o,r),r.layer="popup",r.failTarget=g.option(r.failTarget,o.attr("up-fail-target")),r.failLayer=g.option(r.failLayer,o.attr("up-fail-layer"),"auto"),r.provideTarget=function(){return p(c)},i=up.motion.animateOptions(r,o,{duration:s.openDuration,easing:s.openEasing}),u=g.merge(r,{animation:!1}),r.preload&&f?up.replace(c,f,r):up.browser.whenConfirmed(r).then(function(){return up.bus.whenEmitted("up:popup:open",{url:f,message:"Opening popup"}).then(function(){var t;return m.phase="opening",m.$anchor=o,m.position=l,r.history&&(m.coveredUrl=up.browser.url(),m.coveredTitle=document.title),m.sticky=r.sticky,t=a?up.extract(c,a,u):up.replace(c,f,u),t=t.then(function(){return e(),y(),up.animate(m.$popup,r.animation,i)}),t=t.then(function(){return m.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},u=function(t){return i.asap(function(){return a(t)})},a=function(t){var e;return f()?(t=g.options(t,{animation:s.closeAnimation,history:m.coveredUrl,title:m.coveredTitle}),e=up.motion.animateOptions(t,{duration:s.closeDuration,easing:s.closeEasing}),g.assign(t,e),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:m.$popup}).then(function(){return m.phase="closing",m.url=null,m.coveredUrl=null,m.coveredTitle=null,up.destroy(m.$popup,t).then(function(){return m.phase="closed",m.$popup=null,m.$anchor=null,m.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):Promise.resolve()},h=function(t,e){return e=g.options(e),e.preload=!0,r(t,e)},v=function(t,e){return t.is(".up-current")?u():n(t,e)},o=function(){return m.sticky?void 0:(c(),u())},l=function(e){var n;return n=t(e),n.closest(".up-popup").length>0},up.link.addFollowVariant("[up-popup]",{follow:function(t,e){return v(t,e)},preload:function(t,e){return h(t,e)}}),up.on("click up:action:consumed",function(e){var n;return n=t(e.target),n.closest(".up-popup, [up-popup]").length?void 0:u()}),up.on("up:fragment:inserted",function(t,e){var n;if(l(e)){if(n=e.attr("up-source"))return m.url=n}else if(t.origin&&l(t.origin))return o()}),up.bus.onEscape(u),up.on("click",".up-popup [up-close]",function(t){return u(),up.bus.consumeAction(t)}),up.on("up:history:restore",u),up.on("up:framework:reset",d),{attach:n,close:u,url:function(){return m.url},coveredUrl:function(){return m.coveredUrl},config:s,contains:l,isOpen:f}}(jQuery)}.call(this),function(){up.modal=function(t){var e,n,r,o,i,u,a,s,l,p,c,f,h,d,m,v,g,y,b,w,k,T,S,x,E,P,C,F;return E=up.util,u=E.config({maxWidth: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,flavor:"default",position:null,template:function(t){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>'+t.closeLabel+"</div>\n </div>\n </div>\n</div>"}}),d=E.openConfig({"default":{}}),S=E.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,position:null,unshifters:[]}}),r=new E.DivertibleChain,k=function(){var t;return null!=(t=S.$modal)&&t.remove(),P(),S.reset(),r.reset(),u.reset(),d.reset()},x=function(){var t;return t=f("template"),E.evalOption(t,{closeLabel:f("closeLabel")})},l=function(){return S.coveredTitle=null,S.coveredUrl=null},s=function(e,n){var r,o,i;return i=t(x()),i.attr("up-flavor",S.flavor),E.isPresent(S.position)&&i.attr("up-position",S.position),o=i.find(".up-modal-dialog"),E.isPresent(n.width)&&o.css("width",n.width),E.isPresent(n.maxWidth)&&o.css("max-width",n.maxWidth),E.isPresent(n.height)&&o.css("height",n.height),S.closable||i.find(".up-modal-close").remove(),r=i.find(".up-modal-content"),E.$createPlaceholder(e,r),i.hide(),i.appendTo(document.body),S.$modal=i},C=function(){return S.$modal.show()},T=function(){var e,n,r,o,i;return E.documentHasVerticalScrollbar()?(e=t("body"),o=E.scrollbarWidth(),n=parseFloat(e.css("padding-right")),r=o+n,i=E.temporaryCss(e,{"padding-right":r+"px","overflow-y":"hidden"}),S.unshifters.push(i),up.layout.anchoredRight().each(function(){var e,n,r,i;return e=t(this),n=parseFloat(e.css("right")),r=o+n,i=E.temporaryCss(e,{right:r}),S.unshifters.push(i)})):void 0},P=function(){var t,e;for(t=[];e=S.unshifters.pop();)t.push(e());return t},v=function(){return"opened"===S.phase||"opening"===S.phase},m=function(e,n){return n=E.options(n),n.$link=t(e),y(n)},w=function(t,e){return e=E.options(e),e.$link=t,e.preload=!0,b(e)},F=function(t,e){return e=E.options(e),e.url=t,y(e)},p=function(t,e,n){return n=E.options(n),n.html=e,n.history=E.option(n.history,!1),n.target=t,y(n)},y=function(t){return r.asap(i,function(){return b(t)})},b=function(t){var n,r,o,i,a;return t=E.options(t),n=E.option(E.pluckKey(t,"$link"),E.nullJQuery()),a=E.option(E.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=E.option(E.pluckKey(t,"html")),i=E.option(E.pluckKey(t,"target"),n.attr("up-modal"),"body"),t.flavor=E.option(t.flavor,n.attr("up-flavor"),u.flavor),t.position=E.option(t.position,n.attr("up-position"),f("position",t.flavor)),t.position=E.evalOption(t.position,{$link:n}),t.width=E.option(t.width,n.attr("up-width"),f("width",t.flavor)),t.maxWidth=E.option(t.maxWidth,n.attr("up-max-width"),f("maxWidth",t.flavor)),t.height=E.option(t.height,n.attr("up-height"),f("height")),t.animation=E.option(t.animation,n.attr("up-animation"),f("openAnimation",t.flavor)),t.animation=E.evalOption(t.animation,{position:t.position}),t.backdropAnimation=E.option(t.backdropAnimation,n.attr("up-backdrop-animation"),f("backdropOpenAnimation",t.flavor)),t.backdropAnimation=E.evalOption(t.backdropAnimation,{position:t.position}),t.sticky=E.option(t.sticky,E.castedAttr(n,"up-sticky"),f("sticky",t.flavor)),t.closable=E.option(t.closable,E.castedAttr(n,"up-closable"),f("closable",t.flavor)),t.confirm=E.option(t.confirm,n.attr("up-confirm")),t.method=up.link.followMethod(n,t),t.layer="modal",t.failTarget=E.option(t.failTarget,n.attr("up-fail-target")),t.failLayer=E.option(t.failLayer,n.attr("up-fail-layer"),"auto"),r=up.motion.animateOptions(t,n,{duration:f("openDuration",t.flavor),easing:f("openEasing",t.flavor)}),t.history=E.option(t.history,E.castedAttr(n,"up-history"),f("history",t.flavor)),up.browser.canPushState()||(t.history=!1),t.provideTarget=function(){return s(i,t)},t.preload?up.replace(i,a,t):up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:modal:open",{url:a,message:"Opening modal"}).then(function(){var n,u;return S.phase="opening",S.flavor=t.flavor,S.sticky=t.sticky,S.closable=t.closable,S.position=t.position,t.history&&(S.coveredUrl=up.browser.url(),S.coveredTitle=document.title),n=E.merge(t,{animation:!1}),u=o?up.extract(i,o,n):up.replace(i,a,n),u=u.then(function(){return T(),C(),e(t.animation,t.backdropAnimation,r)}),u=u.then(function(){return S.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},o=function(t){return r.asap(function(){return i(t)})},i=function(t){var n,r,o,i;return t=E.options(t),v()?(i=E.option(t.animation,f("closeAnimation")),i=E.evalOption(i,{position:S.position}),r=E.option(t.backdropAnimation,f("backdropCloseAnimation")),r=E.evalOption(r,{position:S.position}),n=up.motion.animateOptions(t,{duration:f("closeDuration"),easing:f("closeEasing")}),o=E.options(E.except(t,"animation","duration","easing","delay"),{history:S.coveredUrl,title:S.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:S.$modal,message:"Closing modal"}).then(function(){var t;return S.phase="closing",S.url=null,S.coveredUrl=null,S.coveredTitle=null,t=e(i,r,n),t=t.then(function(){return up.destroy(S.$modal,o)}),t=t.then(function(){return P(),S.phase="closed",S.$modal=null,S.flavor=null,S.sticky=null,S.closable=null,S.position=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):Promise.resolve()},g=function(t){return null==t&&(t=!0),S.$modal.toggleClass("up-modal-animating",t)},e=function(t,e,n){var r;return up.motion.isNone(t)?Promise.resolve():(g(),r=Promise.all([up.animate(S.$modal.find(".up-modal-viewport"),t,n),up.animate(S.$modal.find(".up-modal-backdrop"),e,n)]),r=r.then(function(){return g(!1)}))},n=function(){return S.sticky?void 0:(l(),o())},a=function(e){var n;return n=t(e),n.closest(".up-modal").length>0},c=function(t,e){return null==e&&(e={}),up.log.warn("up.modal.flavor() is deprecated. Use the up.modal.flavors property instead."),E.assign(h(t),e)},h=function(t){return d[t]||(d[t]={})},f=function(t,e){var n;return null==e&&(e=S.flavor),e&&(n=h(e)[t]),E.isMissing(n)&&(n=u[t]),n},up.link.addFollowVariant("[up-modal]",{follow:function(t,e){return m(t,e)},preload:function(t,e){return w(t,e)}}),up.on("click",".up-modal",function(e){var n;if(S.closable)return n=t(e.target),n.closest(".up-modal-dialog").length||n.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),o())}),up.on("up:fragment:inserted",function(t,e){var r;if(a(e)){if(r=e.attr("up-source"))return S.url=r}else if(t.origin&&a(t.origin)&&!up.popup.contains(e))return n()}),up.bus.onEscape(function(){return S.closable?o():void 0}),up.on("click",".up-modal [up-close]",function(t){return o(),up.bus.consumeAction(t)}),up.macro("a[up-drawer], [up-href][up-drawer]",function(t){var e;return e=t.attr("up-drawer"),t.attr({"up-modal":e,"up-flavor":"drawer"})}),d.drawer={openAnimation:function(t){switch(t.position){case"left":return"move-from-left";case"right":return"move-from-right"}},closeAnimation:function(t){switch(t.position){case"left":return"move-to-left";case"right":return"move-to-right"}},position:function(t){return E.isPresent(t.$link)?E.horizontalScreenHalf(t.$link):"left"}},up.on("up:history:restore",o),up.on("up:framework:reset",k),{visit:F,follow:m,extract:p,close:o,url:function(){return S.url},coveredUrl:function(){return S.coveredUrl},config:u,flavors:d,contains:a,isOpen:v,flavor:c}}(jQuery)}.call(this),function(){up.tooltip=function(t){var e,n,r,o,i,u,a,s,l,p,c,f;return f=up.util,a=f.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:100,closeDuration:50,openEasing:null,closeEasing:null}),c=f.config({phase:"closed",$anchor:null,$tooltip:null,position:null}),o=new f.DivertibleChain,p=function(){var t;return null!=(t=c.$tooltip)&&t.remove(),c.reset(),o.reset(),a.reset()},e=function(){var t,e,n;switch(t={},n=f.measure(c.$tooltip),f.isFixed(c.$anchor)?(e=c.$anchor.get(0).getBoundingClientRect(),t.position="fixed"):e=f.measure(c.$anchor),c.position){case"top":t.top=e.top-n.height,t.left=e.left+.5*(e.width-n.width);break;case"left":t.top=e.top+.5*(e.height-n.height),t.left=e.left-n.width;break;case"right":t.top=e.top+.5*(e.height-n.height),t.left=e.left+e.width;break;case"bottom":t.top=e.top+e.height,t.left=e.left+.5*(e.width-n.width);break;default:up.fail("Unknown position option '%s'",c.position)}return c.$tooltip.attr("up-position",c.position),c.$tooltip.css(t)},s=function(t){var e;return e=f.$createElementFromSelector(".up-tooltip"),f.isGiven(t.text)?e.text(t.text):e.html(t.html),e.appendTo(document.body),c.$tooltip=e},n=function(t,e){return null==e&&(e={}),o.asap(u,function(){return r(t,e)})},r=function(n,r){var o,i,u,l,p,h;return o=t(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),h=f.option(r.text,o.attr("up-tooltip")),p=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}),c.phase="opening",c.$anchor=o,s({text:h,html:l}),c.position=p,e(),up.animate(c.$tooltip,u,i).then(function(){return c.phase="opened"})},i=function(t){return o.asap(function(){return u(t)})},u=function(t){var e;return l()?(t=f.options(t,{animation:a.closeAnimation}),e=up.motion.animateOptions(t,{duration:a.closeDuration,easing:a.closeEasing}),f.assign(t,e),c.phase="closing",up.destroy(c.$tooltip,t).then(function(){return c.phase="closed",c.$tooltip=null,c.$anchor=null})):Promise.resolve()},l=function(){return"opening"===c.phase||"opened"===c.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(t){return t.on("mouseenter",function(){return n(t)}),t.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(){return i()}),up.on("up:framework:reset",p),up.bus.onEscape(function(){return i()}),{config:a,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){var t=[].slice;up.feedback=function(e){var n,r,o,i,u,a,s,l,p,c,f,h,d;return h=up.util,o=h.config({currentClasses:["up-current"]}),l=function(){return o.reset()},i=function(){var t;return t=o.currentClasses,t=t.concat(["up-current"]),t=h.uniq(t),t.join(" ")},n="up-active",r="a, [up-href]",s=function(t){return h.isPresent(t)?h.normalizeUrl(t,{stripTrailingSlash:!0}):void 0},p=function(t){var e,n,r,o,i,u,a,l,p,c;for(l=[],u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(e=u[n],p=h.presentAttr(t,e))for(c="up-alias"===e?p.split(" "):[p],r=0,i=c.length;i>r;r++)a=c[r],"#"!==a&&(a=s(a),l.push(a));return l},d=function(t){var e,n,r,o;return t=h.map(t,s),t=h.compact(t),r=function(t){return"*"===t.substr(-1)?n(t.slice(0,-1)):e(t)},e=function(e){return h.contains(t,e)},n=function(e){return h.detect(t,function(t){return 0===t.indexOf(e)})},o=function(t){return h.detect(t,r)},{matchesAny:o}},a=function(){var t,n;return t=d([up.browser.url(),up.modal.url(),up.modal.coveredUrl(),up.popup.url(),up.popup.coveredUrl()]),n=i(),h.each(e(r),function(r){var o,i;return o=e(r),i=p(o),up.link.isSafe(o)&&t.matchesAny(i)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},u=function(t){var n;return n=e(t),n.is(r)&&(n=h.presence(n.parent(r))||n),n},c=function(){var e,r,o,i,a,s;return o=1<=arguments.length?t.call(arguments,0):[],i=o.shift(),r=o.pop(),a=h.options(o[0]),e=u(i),a.preload||e.addClass(n),r?(s=r(),h.isPromise(s)?h.always(s,function(){return f(e)}):up.warn("Expected block to return a promise, but got %o",s),s):void 0},f=function(t){var e;return e=u(t),e.removeClass(n)},up.on("up:fragment:inserted",function(){return a()}),up.on("up:fragment:destroyed",function(t,e){return e.is(".up-modal, .up-popup")?a():void 0}),up.on("up:framework:reset",l),{config:o,start:c,stop:f}}(jQuery),up.renamedModule("navigation","feedback")}.call(this),function(){up.radio=function(){var t,e,n,r;return r=up.util,t=r.config({hungry:["[up-hungry]"],hungryTransition:null}),n=function(){return t.reset()},e=function(){return r.multiSelector(t.hungry)},up.on("up:framework:reset",n),{config:t,hungrySelector:e}}(jQuery)}.call(this),function(){up.rails=function(t){var e,n;return n=up.util,e=function(){return!!t.rails},n.each(["method","confirm"],function(t){var r,o;return r="data-"+t,o="up-"+t,up.macro("["+r+"]",function(t){var i;return e()&&up.link.isFollowable(t)?(i={},i[o]=t.attr(r),n.setMissingAttrs(t,i),t.removeAttr(r)):void 0})})}(jQuery)}.call(this),function(){up.boot()}.call(this);
1
+ (function(){window.up={version:"0.56.0",renamedModule:function(t,e){return"function"==typeof Object.defineProperty?Object.defineProperty(up,t,{get:function(){return up.log.warn("up."+t+" has been renamed to up."+e),up[e]}}):void 0}}}).call(this),function(){var t=[].slice,e={}.hasOwnProperty,n=function(t,e){return function(){return t.apply(e,arguments)}};up.util=function(r){var o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F,$,A,D,O,M,R,U,j,q,L,z,_,N,I,H,K,Q,V,B,W,X,G,J,Y,Z,te,ee,ne,re,oe,ie,ue,se,ae,le,pe,ce,he,fe,de,me,ve,ge,ye,be,we,ke,Te,Se,Ee,Ce,xe,Pe,Fe,$e,Ae,De,Oe,Me,Re,Ue,je,qe,Le,ze,_e,Ne,Ie,He,Ke,Qe,Ve,Be,We,Xe,Ge,Je,Ye,Ze,tn,en,nn,rn,on,un,sn,an,ln,pn,cn,hn,fn,dn,mn,vn,gn,yn,bn,wn,kn,Tn,Sn,En,Cn,xn,Pn,Fn,$n,An,Dn,On,Mn,Rn,Un,jn,qn,Ln,zn,_n,Nn;return Ve=function(){},w=function(){return Promise.resolve()},qe=function(e){var n,r;return r=void 0,n=!1,function(){var o;return o=1<=arguments.length?t.call(arguments,0):[],n?r:(n=!0,r=e.apply(null,o))}},Ee=function(t,e){return e=e.toString(),(""===e||"80"===e)&&"http:"===t||"443"===e&&"https:"===t},Xe=function(t,e){var n,r,o;return r=rn(t),n=r.protocol+"//"+r.hostname,Ee(r.protocol,r.port)||(n+=":"+r.port),o=r.pathname,"/"!==o[0]&&(o="/"+o),(null!=e?e.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),n+=o,(null!=e?e.hash:void 0)===!0&&(n+=r.hash),(null!=e?e.search:void 0)!==!1&&(n+=r.search),n},se=function(t){var e;return e=rn(location.href),t=rn(t),e.protocol!==t.protocol||e.host!==t.host},rn=function(t){var e;return ve(t)&&(t=J(t)),t.pathname?t:(e=r("<a>").attr({href:t}).get(0),ie(e.hostname)&&(e.href=e.href),e)},Be=function(t){return t?t.toUpperCase():"GET"},_e=function(t){return"GET"!==t&&"HEAD"!==t},o=function(t){var e,n,o,i,u,s,a,l,p,c,h,f,d,m,v,g;for(v=t.split(/[ >]/),o=null,c=h=0,d=v.length;d>h;c=++h){for(s=v[c],u=s.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],p=null,f=0,m=u.length;m>f;f++)switch(a=u[f],a[0]){case".":i.push(a.substr(1));break;case"#":p=a.substr(1);break;default:g=a}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",e=r(l),n&&e.appendTo(n),0===c&&(o=e),n=e}return o},i=function(t,e){var n;return null==e&&(e=document.body),n=o(t),n.addClass("up-placeholder"),n.appendTo(e),n},xn=function(t){var e,n,o,i,u,s,a,l,p,c,h;if(e=r(t),p=void 0,c=e.prop("tagName").toLowerCase(),h=sn(e.attr("up-id")))p=k("up-id",h);else if(i=sn(e.attr("id")))p=i.match(/^[a-z0-9\-_]+$/i)?"#"+i:k("id",i);else if(l=sn(e.attr("name")))p=c+k("name",l);else if(o=sn(Qe(e)))for(p="",u=0,a=o.length;a>u;u++)s=o[u],p+="."+s;else p=(n=sn(e.attr("aria-label")))?k("aria-label",n):c;return p},k=function(t,e){return e=e.replace(/"/g,'\\"'),"["+t+'="'+e+'"]'},Qe=function(t){var e,n;return e=t.attr("class")||"",n=e.split(" "),Sn(n,function(t){return Te(t)&&!t.match(/^up-/)})},U=function(t){var e;return e=new DOMParser,e.parseFromString(t,"text/html")},b=function(){var n,r,o,i,u,s,a;for(s=arguments[0],u=2<=arguments.length?t.call(arguments,1):[],n=0,o=u.length;o>n;n++){i=u[n];for(r in i)e.call(i,r)&&(a=i[r],s[r]=a)}return s},y=Object.assign||b,Rn=r.trim,Me=function(t){return Ce(t)?function(e){return e[t]}:t},Re=function(t,e){var n,r,o,i,u;if(0===t.length)return[];for(e=Me(e),u=[],n=o=0,i=t.length;i>o;n=++o)r=t[n],u.push(e(r,n));return u},_=Re,On=function(t,e){var n,r,o,i;for(i=[],n=r=0,o=t-1;o>=0?o>=r:r>=o;n=o>=0?++r:--r)i.push(e(n));return i},ye=function(t){return null===t},Pe=function(t){return void 0===t},ae=function(t){return!Pe(t)},ge=function(t){return Pe(t)||ye(t)},me=function(t){return!ge(t)},ie=function(t){return ge(t)?!0:de(t)?!1:we(t)&&0===Object.keys(t).length?!0:0===t.length?!0:!1},sn=function(t,e){return null==e&&(e=Te),e(t)?t:void 0},Te=function(t){return!ie(t)},de=function(t){return"function"==typeof t},Ce=function(t){return"string"==typeof t||t instanceof String},be=function(t){return"number"==typeof t||t instanceof Number},ke=function(t){return!("object"!=typeof t||ye(t)||ve(t)||Se(t)||fe(t)||oe(t))},we=function(t){var e;return e=typeof t,"object"===e&&!ye(t)||"function"===e},pe=function(t){return!(!t||1!==t.nodeType)},ve=function(t){return t instanceof jQuery},Se=function(t){return we(t)&&de(t.then)},oe=Array.isArray,fe=function(t){return t instanceof FormData},Mn=function(t){return Array.prototype.slice.call(t)},O=function(t){return oe(t)?t=t.slice():we(t)&&!de(t)?t=y({},t):up.fail("Cannot copy %o",t),t},J=function(t){return ve(t)?t.get(0):Ce(t)?r(t).get(0):t},Le=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],y.apply(null,[{}].concat(t.call(e)))},nn=function(t,e){var n,r,o,i;if(o=t?O(t):{},e)for(r in e)n=e[r],i=o[r],ge(i)&&(i=n),o[r]=i;return o},en=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],L(e,me)},L=function(t,e){var n,r,o,i;for(i=void 0,r=0,o=t.length;o>r;r++)if(n=t[r],e(n)){i=n;break}return i},m=function(t,e){var n,r,o,i,u;for(e=Me(e),u=!1,r=o=0,i=t.length;i>o;r=++o)if(n=t[r],e(n,r)){u=!0;break}return u},f=function(t,e){var n,r,o,i,u;for(e=Me(e),u=!0,r=o=0,i=t.length;i>o;r=++o)if(n=t[r],!e(n,r)){u=!1;break}return u},P=function(t){return Sn(t,me)},Un=function(t){return t.length<2?t:An(g(t))},jn=function(t,e){var n;return t.length<2?t:(e=Me(e),n=new Set,Sn(t,function(t,r){var o;return o=e(t,r),n.has(o)?!1:(n.add(o),!0)}))},An=function(t){var e;return e=[],t.forEach(function(t){return e.push(t)}),e},g=function(t){var e;return e=new Set,t.forEach(function(t){return e.add(t)}),e},Sn=function(t,e){var n;return e=Me(e),n=[],_(t,function(t,r){return e(t,r)?n.push(t):void 0}),n},dn=function(t,e){return e=Me(e),Sn(t,function(t,n){return!e(t,n)})},re=function(t,e){return Sn(t,function(t){return A(e,t)})},c=function(t,e){return C(t,e,"add")},gn=function(t,e){return C(t,e,"remove")},C=function(t,e,n){var r;return r=J(t).classList,oe(e)?_(e,function(t){return r[n](t)}):r[n](e)},h=function(t,e){return c(t,e),function(){return gn(t,e)}},Y=function(t,e){var n;return n=J(t).classList,n.contains(e)},an=function(){var e,n,r,o;return e=arguments[0],r=2<=arguments.length?t.call(arguments,1):[],o=function(){var t,o,i;for(i=[],t=0,o=r.length;o>t;t++)n=r[t],i.push(e.attr(n));return i}(),L(o,Te)},$n=function(t,e){return setTimeout(e,t)},Ke=function(t){return setTimeout(t,0)},Ne=function(t){return Promise.resolve().then(t)},Oe=function(t){return t[t.length-1]},x=function(){var t;return t=document.documentElement,{width:t.clientWidth,height:t.clientHeight}},Tn=qe(function(){var t,e,n;return t=r("<div>"),e=t.get(0),t.attr("up-viewport",""),_n(e,{position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),t.appendTo(document.body),n=e.offsetWidth-e.clientWidth,t.remove(),n}),z=function(){var t,e,n,o,i,u;return e=document.body,t=r(e),u=document.documentElement,n=cn(t,"overflowY"),i="scroll"===n,o="hidden"===n,i||!o&&u.scrollHeight>u.clientHeight},Nn=function(t,e,n){var o,i,u;return o=r(t),i=fn(o,Object.keys(e)),u=function(){return _n(o,i)},_n(o,e),n?(n(),u()):u},G=function(t){return t=J(t),t.offsetHeight},F=function(t){var e;return e=Nn(t,{transition:"none"}),G(t),e},Ue=function(t){var e;return e=J(t),{top:hn(e,"marginTop"),right:hn(e,"marginRight"),bottom:hn(e,"marginBottom"),left:hn(e,"marginLeft")}},je=function(t,e){var n,o,i,u,s,a;return e=nn(e,{relative:!1,inner:!1,includeMargin:!1}),e.relative?e.relative===!0?u=t.position():(n=r(e.relative),s=t.offset(),n.is(document)?u=s:(i=n.offset(),u={left:s.left-i.left,top:s.top-i.top})):u=t.offset(),o={left:u.left,top:u.top},e.inner?(o.width=t.width(),o.height=t.height()):(o.width=t.outerWidth(),o.height=t.outerHeight()),e.includeMargin&&(a=Ue(t),o.left-=a.left,o.top-=a.top,o.height+=a.top+a.bottom,o.width+=a.left+a.right),o},M=function(t,e){var n,r,o,i,u;for(i=t.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],u.push(n.specified?e.attr(n.name,n.value):void 0);return u},Cn=function(t,e){var n;return n=r(),t.is(e)&&(n=n.add(t)),n=n.add(t.find(e))},En=function(t,e){var n,r;return r=Cn(t,e),n=t.parents(e),r.add(n)},I=function(t){return 27===t.keyCode},A=function(t,e){return t.indexOf(e)>=0},E=function(t,e){var n;switch(n=t.attr(e)){case"false":return!1;case"true":case"":case e:return!0;default:return n}},Ye=function(){var e,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],e={},n=0,r=i.length;r>n;n++)u=i[n],u in o&&(e[u]=o[u]);return e},K=function(){var e,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],e=O(o),n=0,r=i.length;r>n;n++)u=i[n],delete e[u];return e},Fe=function(t){return!(t.metaKey||t.shiftKey||t.ctrlKey)},$e=function(t){var e;return e=Pe(t.button)||0===t.button,e&&Fe(t)},qn=function(){return new Promise(Ve)},Ge=function(){return r()},Fn=function(t,e){var n,r,o;r=[];for(n in e)o=e[n],r.push(ge(t.attr(n))?t.attr(n,o):void 0);return r},vn=function(t,e){var n;return n=t.indexOf(e),n>=0?(t.splice(n,1),e):void 0},H=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],de(n)?n.apply(null,e):n},$=function(t){var e;return e=tn(t),Object.preventExtensions(e),e},tn=function(t){var e;return null==t&&(t={}),e={},e.reset=function(){var n;return n=t,de(n)&&(n=n()),y(e,n)},e.reset(),e},Ln=function(t){var e,n;return t=J(t),e=t.parentNode,n=Mn(t.childNodes),_(n,function(n){return e.insertBefore(n,t)}),e.removeChild(t)},Je=function(t){var e,n;for(e=void 0;(t=t.parent())&&t.length;)if(n=cn(t,"position"),"absolute"===n||"relative"===n||t.is("body")){e=t;break}return e},he=function(t){var e,n;for(e=r(t);;){if(n=cn(e,"position"),"fixed"===n)return!0;if(e=e.parent(),0===e.length||e.is(document))return!1}},W=function(t,e){var n,o,i,u;return n=r(t),o=Je(n),i=n.position(),u=o.offset(),_n(n,{position:"absolute",left:i.left-u.left,top:i.top-u.top+e.scrollTop(),right:"",bottom:""})},bn=function(t){var e,n,r,o,i,u,s;if(oe(t),fe(t))return up.fail("Cannot convert FormData into an array");for(u=wn(t),e=[],s=u.split("&"),n=0,r=s.length;r>n;n++)i=s[n],Te(i)&&(o=i.split("="),e.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return e},wn=function(t,e){var n;if(e=nn(e,{purpose:"url"}),Ce(t))return t.replace(/^\?/,"");if(fe(t))return up.fail("Cannot convert FormData into a query string");if(Te(t)){switch(n=r.param(t),e.purpose){case"url":n=n.replace(/\+/g,"%20");break;case"form":n=n.replace(/\%20/g,"+");break;default:up.fail("Unknown purpose %o",e.purpose)}return n}return""},u=function(t){var e,n;return n="input[type=submit], button[type=submit], button:not([type])",e=r(document.activeElement),e.is(n)&&t.has(e)?e:t.find(n).first()},kn=function(t){var e,n,o,i,s,a;return n=r(t),a=n.find("input[type=file]").length,e=u(n),o=e.attr("name"),i=e.val(),s=a?new FormData(n.get(0)):n.serializeArray(),Te(o)&&v(s,o,i),s},v=function(t,e,n,r){var o;return t||(t=[]),oe(t)?t.push({name:e,value:n}):fe(t)?t.append(e,n):we(t)?t[e]=n:Ce(t)&&(o=wn([{name:e,value:n}],r),t=[t,o].join("&")),t},ze=function(t,e){return _(bn(e),function(e){return t=v(t,e.name,e.value)}),t},B=function(){var e,n,r,o,i,u;throw e=1<=arguments.length?t.call(arguments,0):[],oe(e[0])?(r=e[0],u=e[1]||{}):(r=e,u={}),(o=up.log).error.apply(o,r),zn().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},p={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"},N=function(t){return t.replace(/[&<>"]/g,function(t){return p[t]})},un=function(t,e){var n;return n=t[e],delete t[e],n},yn=function(t,e,n){return t[n]=un(t,e)},on=function(t,e){var n,o;return n=r(t),o=n.data(e),n.removeData(e),o},V=function(t){var e;return e=Oe(t),ke(e)?t.pop():{}},s=/[^\-\_]+?(?=[A-Z\-\_]|$)/g,D=function(t,e,n){var r;return r=t.match(s),r=Re(r,n),r.join(e)},Ae=function(t){return D(t,"-",function(t){return t.toLowerCase()})},T=function(t){return D(t,"",function(t,e){return 0===e?t.toLowerCase():t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})},De=function(t){return R(t,Ae)},S=function(t){return R(t,T)},R=function(t,e){var n,r,o;r={};for(n in t)o=t[n],n=e(n),r[n]=o;return r},Ze=function(t){return hn(t,"opacity")},zn=qe(function(){return r.isReady?Promise.resolve():new Promise(function(t){return r(t)})}),ne=function(t){return t},le=function(t){return t=J(t),!r.contains(document.documentElement,t)},ln=function(e){var n,r;return n=He(),r=function(){var r,o;return r=1<=arguments.length?t.call(arguments,0):[],o=e.apply(null,r),n.resolve(o),o},r.promise=n.promise(),r},l=function(){function e(){this.asap=n(this.asap,this),this.poke=n(this.poke,this),this.allTasks=n(this.allTasks,this),this.promise=n(this.promise,this),this.reset=n(this.reset,this),this.reset()}return e.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},e.prototype.promise=function(){var t;return t=Oe(this.allTasks()),(null!=t?t.promise:void 0)||Promise.resolve()},e.prototype.allTasks=function(){var t;return t=[],this.currentTask&&t.push(this.currentTask),t=t.concat(this.queue)},e.prototype.poke=function(){var t;return!this.currentTask&&(this.currentTask=this.queue.shift())?(t=this.currentTask(),d(t,function(t){return function(){return t.currentTask=void 0,t.poke()}}(this))):void 0},e.prototype.asap=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],this.queue=Re(e,ln),this.poke(),this.promise()},e}(),Dn=function(t){var e;return e=r(t),e.is("[type=checkbox], [type=radio]")&&!e.is(":checked")?void 0:e.val()},Pn=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],function(){return Re(e,function(t){return t()})}},pn=function(t){var e,n;return n=void 0,e=new Promise(function(e){return n=$n(t,e)}),e.cancel=function(){return clearTimeout(n)},e},ee=function(t){var e,n,r,o;return e=je(t),r=x(),n=e.left+.5*e.width,o=.5*r.width,o>n?"left":"right"},q=function(t,e){var n;return n=r("<div></div>"),n.insertAfter(t),t.detach(),n.replaceWith(e),t},te=function(t){return _n(t,{display:"none"})},cn=function(t,e){var n;return t=J(t),n=window.getComputedStyle(t),Q(n,e)},hn=function(t,e){var n;return n=cn(t,e),me(n)?parseFloat(n):void 0},fn=function(t,e){var n;return t=J(t),n=t.style,Q(n,e)},Q=function(e,n){return Ce(n)?e[n]:Ye.apply(null,[e].concat(t.call(n)))},_n=function(t,e){var n,r,o,i;t=J(t),o=t.style,r=[];for(n in e)i=e[n],i=We(n,i),r.push(o[n]=i);return r},We=function(t,e){return ge(e)?e="":a.has(t)&&(e=j(e)),e},a=g(["top","right","bottom","left","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","marginTop","marginRight","marginBottom","marginLeft","width","height","maxWidth","maxHeight","minWidth","minHeight"]),j=function(t){return be(t)||Ce(t)&&/^\d+$/.test(t)?t.toString()+"px":t},Z=function(t){var e,n,r,o,i;return ke(t)?i=t:(n=J(n),i=getComputedStyle(n)),o=i.transitionProperty,e=i.transitionDuration,r="none"===o||"all"===o&&0===e,!r},X=function(t){var e,n,r,o;for(e=[],n=0,r=t.length;r>n;n++)o=t[n],oe(o)?e=e.concat(o):e.push(o);return e},xe=function(t){return!!t},d=function(t,e){return t.then(e,e)},Ie=function(t){return null!=t?t["catch"](Ve):void 0},He=function(){var t,e;return e=void 0,dn=void 0,t=new Promise(function(t,n){return e=t,dn=n}),t.resolve=e,t.reject=dn,t.promise=function(){return t},t},mn=function(t){var e;try{return t()}catch(n){return e=n,Promise.reject(e)}},ue=function(t){return r(t).parents("body").length>0},ce=function(t,e){return typeof t!=typeof e?!1:oe(t)?t.length===e.length&&f(t,function(t,n){return ce(t,e[n])}):we(t)?B("isEqual cannot compare objects yet"):t===e},{requestDataAsArray:bn,requestDataAsQuery:wn,appendRequestData:v,mergeRequestData:ze,requestDataFromForm:kn,offsetParent:Je,fixedToAbsolute:W,isFixed:he,presentAttr:an,parseUrl:rn,normalizeUrl:Xe,normalizeMethod:Be,methodAllowsPayload:_e,createElementFromHtml:U,$createElementFromSelector:o,$createPlaceholder:i,selectorForElement:xn,assign:y,assignPolyfill:b,copy:O,merge:Le,options:nn,option:en,fail:B,each:_,map:Re,times:On,any:m,all:f,detect:L,select:Sn,reject:dn,intersect:re,compact:P,uniq:Un,uniqBy:jn,last:Oe,isNull:ye,isDefined:ae,isUndefined:Pe,isGiven:me,isMissing:ge,isPresent:Te,isBlank:ie,presence:sn,isObject:we,isFunction:de,isString:Ce,isNumber:be,isElement:pe,isJQuery:ve,isPromise:Se,isOptions:ke,isArray:oe,isFormData:fe,isUnmodifiedKeyEvent:Fe,isUnmodifiedMouseEvent:$e,nullJQuery:Ge,element:J,setTimer:$n,nextFrame:Ke,measure:je,addClass:c,removeClass:gn,hasClass:Y,addTemporaryClass:h,writeTemporaryStyle:Nn,forceRepaint:G,concludeCssTransition:F,escapePressed:I,copyAttributes:M,selectInSubtree:Cn,selectInDynasty:En,contains:A,toArray:Mn,castedAttr:E,clientSize:x,only:Ye,except:K,trim:Rn,unresolvablePromise:qn,setMissingAttrs:Fn,remove:vn,memoize:qe,scrollbarWidth:Tn,documentHasVerticalScrollbar:z,config:$,openConfig:tn,unwrapElement:Ln,camelCase:T,camelCaseKeys:S,kebabCase:Ae,kebabCaseKeys:De,error:B,pluckData:on,pluckKey:un,renameKey:yn,extractOptions:V,isDetached:le,noop:Ve,asyncNoop:w,opacity:Ze,whenReady:zn,identity:ne,escapeHtml:N,DivertibleChain:l,submittedValue:Dn,sequence:Pn,promiseTimer:pn,previewable:ln,evalOption:H,horizontalScreenHalf:ee,detachWith:q,flatten:X,isTruthy:xe,newDeferred:He,always:d,muteRejection:Ie,rejectOnError:mn,isBodyDescendant:ue,isCrossDomain:se,microtask:Ne,isEqual:ce,hide:te,cssLength:j,readComputedStyle:cn,readComputedStyleNumber:hn,readInlineStyle:fn,writeInlineStyle:_n,hasCssTransition:Z}}(jQuery),up.fail=up.util.fail}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.Cache=function(){function r(t){this.config=null!=t?t:{},this.get=e(this.get,this),this.isFresh=e(this.isFresh,this),this.remove=e(this.remove,this),this.set=e(this.set,this),this.timestamp=e(this.timestamp,this),this.alias=e(this.alias,this),this.makeRoomForAnotherKey=e(this.makeRoomForAnotherKey,this),this.keys=e(this.keys,this),this.log=e(this.log,this),this.clear=e(this.clear,this),this.isCachable=e(this.isCachable,this),this.isEnabled=e(this.isEnabled,this),this.normalizeStoreKey=e(this.normalizeStoreKey,this),this.expiryMillis=e(this.expiryMillis,this),this.maxKeys=e(this.maxKeys,this),this.store={}}return r.prototype.maxKeys=function(){return t.evalOption(this.config.size)},r.prototype.expiryMillis=function(){return t.evalOption(this.config.expiry)},r.prototype.normalizeStoreKey=function(t){return this.config.key?this.config.key(t):this.key.toString()},r.prototype.isEnabled=function(){return 0!==this.maxKeys()&&0!==this.expiryMillis()},r.prototype.isCachable=function(t){return this.config.cachable?this.config.cachable(t):!0},r.prototype.clear=function(){return this.store={}},r.prototype.log=function(){var t;return t=1<=arguments.length?n.call(arguments,0):[],this.config.logPrefix?(t[0]="["+this.config.logPrefix+"] "+t[0],up.puts.apply(up,t)):void 0},r.prototype.keys=function(){return Object.keys(this.store)},r.prototype.makeRoomForAnotherKey=function(){var e,n,r,o;return o=t.copy(this.keys()),e=this.maxKeys(),e&&o.length>=e&&(n=null,r=null,t.each(o,function(t){return function(e){var o,i;return o=t.store[e],i=o.timestamp,!r||r>i?(n=e,r=i):void 0}}(this)),n)?delete this.store[n]:void 0},r.prototype.alias=function(e,n){var r;return r=this.get(e,{silent:!0}),t.isDefined(r)?this.set(n,r):void 0},r.prototype.timestamp=function(){return(new Date).valueOf()},r.prototype.set=function(t,e){var n;return this.isEnabled()&&this.isCachable(t)?(this.makeRoomForAnotherKey(),n=this.normalizeStoreKey(t),this.log("Setting entry %o to %o",n,e),this.store[n]={timestamp:this.timestamp(),value:e}):void 0},r.prototype.remove=function(t){var e;return this.isCachable(t)?(e=this.normalizeStoreKey(t),delete this.store[e]):void 0},r.prototype.isFresh=function(t){var e,n;return e=this.expiryMillis(),e?(n=this.timestamp()-t.timestamp,e>n):!0},r.prototype.get=function(t,e){var n;return null==e&&(e={}),this.isCachable(t)&&(n=this.store[this.normalizeStoreKey(t)])?this.isFresh(n)?(e.silent||this.log("Cache hit for '%s'",t),n.value):(e.silent||this.log("Discarding stale cache entry for '%s'",t),void this.remove(t)):void(e.silent||this.log("Cache miss for '%s'",t))},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.CssTransition=function(){function n(n,r,o){this.startMotion=e(this.startMotion,this),this.resumeOldTransition=e(this.resumeOldTransition,this),this.pauseOldTransition=e(this.pauseOldTransition,this),this.finish=e(this.finish,this),this.onTransitionEnd=e(this.onTransitionEnd,this),this.stopListenToTransitionEnd=e(this.stopListenToTransitionEnd,this),this.listenToTransitionEnd=e(this.listenToTransitionEnd,this),this.stopFallbackTimer=e(this.stopFallbackTimer,this),this.startFallbackTimer=e(this.startFallbackTimer,this),this.onFinishEvent=e(this.onFinishEvent,this),this.stopListenToFinishEvent=e(this.stopListenToFinishEvent,this),this.listenToFinishEvent=e(this.listenToFinishEvent,this),this.start=e(this.start,this),this.$element=n,this.element=t.element(n),this.lastFrameCamel=t.camelCaseKeys(r),this.lastFrameKebab=t.kebabCaseKeys(r),this.lastFrameKeysKebab=Object.keys(this.lastFrameKebab),this.finishEvent=o.finishEvent,this.duration=o.duration,this.delay=o.delay,this.totalDuration=this.delay+this.duration,this.easing=o.easing,this.finished=!1}return n.prototype.start=function(){return 0===this.lastFrameKeysKebab.length?(this.finished=!0,Promise.resolve()):(this.deferred=t.newDeferred(),this.pauseOldTransition(),this.startTime=new Date,this.startFallbackTimer(),this.listenToFinishEvent(),this.listenToTransitionEnd(),this.startMotion(),this.deferred.promise())},n.prototype.listenToFinishEvent=function(){return this.finishEvent?this.$element.on(this.finishEvent,this.onFinishEvent):void 0},n.prototype.stopListenToFinishEvent=function(){return this.finishEvent?this.$element.off(this.finishEvent,this.onFinishEvent):void 0},n.prototype.onFinishEvent=function(t){return t.stopPropagation(),this.finish()},n.prototype.startFallbackTimer=function(){var e;return e=100,this.fallbackTimer=t.setTimer(this.totalDuration+e,function(t){return function(){return t.finish()}}(this))},n.prototype.stopFallbackTimer=function(){return clearTimeout(this.fallbackTimer)},n.prototype.listenToTransitionEnd=function(){return this.$element.on("transitionend",this.onTransitionEnd)},n.prototype.stopListenToTransitionEnd=function(){return this.$element.off("transitionend",this.onTransitionEnd)},n.prototype.onTransitionEnd=function(e){var n,r;if(e.target===this.element&&(r=new Date-this.startTime,r>.25*this.totalDuration&&(n=e.originalEvent.propertyName,t.contains(this.lastFrameKeysKebab,n))))return this.finish()},n.prototype.finish=function(){return this.finished?void 0:(this.finished=!0,this.stopFallbackTimer(),this.stopListenToFinishEvent(),this.stopListenToTransitionEnd(),t.concludeCssTransition(this.element),this.resumeOldTransition(),this.deferred.resolve())},n.prototype.pauseOldTransition=function(){var e,n,r,o;return e=t.readComputedStyle(this.element,["transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction"]),t.hasCssTransition(e)?("all"!==e.transitionProperty&&(o=e.transitionProperty.split(/\s*,\s*/),r=t.readComputedStyle(this.element,o),n=t.camelCaseKeys(r),this.setOldTransitionTargetFrame=t.writeTemporaryStyle(this.element,n)),this.setOldTransition=t.concludeCssTransition(this.element)):void 0},n.prototype.resumeOldTransition=function(){return"function"==typeof this.setOldTransitionTargetFrame&&this.setOldTransitionTargetFrame(),"function"==typeof this.setOldTransition?this.setOldTransition():void 0},n.prototype.startMotion=function(){return t.writeInlineStyle(this.element,{transitionProperty:Object.keys(this.lastFrameKebab).join(", "),transitionDuration:this.duration+"ms",transitionDelay:this.delay+"ms",transitionTimingFunction:this.easing}),t.writeInlineStyle(this.element,this.lastFrameCamel)},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.ExtractCascade=function(){function n(n,r){this.oldPlanNotFound=e(this.oldPlanNotFound,this),this.matchingPlanNotFound=e(this.matchingPlanNotFound,this),this.bestMatchingSteps=e(this.bestMatchingSteps,this),this.bestPreflightSelector=e(this.bestPreflightSelector,this),this.detectPlan=e(this.detectPlan,this),this.matchingPlan=e(this.matchingPlan,this),this.newPlan=e(this.newPlan,this),this.oldPlan=e(this.oldPlan,this),this.options=t.options(r,{humanizedTarget:"selector",layer:"auto"}),this.options.transition=t.option(this.options.transition,this.options.animation),this.options.hungry=t.option(this.options.hungry,!0),this.candidates=this.buildCandidates(n),this.plans=t.map(this.candidates,function(e){return function(n,r){var o;return o=t.copy(e.options),r>0&&(o.transition=t.option(up.dom.config.fallbackTransition,e.options.transition)),new up.ExtractPlan(n,o)}}(this))}return n.prototype.buildCandidates=function(e){var n;return n=[e,this.options.fallback,up.dom.config.fallbacks],n=t.flatten(n),n=t.select(n,t.isTruthy),n=t.uniq(n),(this.options.fallback===!1||this.options.provideTarget)&&(n=[n[0]]),n},n.prototype.oldPlan=function(){return this.detectPlan("oldExists")},n.prototype.newPlan=function(){return this.detectPlan("newExists")},n.prototype.matchingPlan=function(){return this.detectPlan("matchExists")},n.prototype.detectPlan=function(e){return t.detect(this.plans,function(t){return t[e]()})},n.prototype.bestPreflightSelector=function(){var t;return t=this.options.provideTarget?this.plans[0]:this.oldPlan(),t?(t.resolveNesting(),t.selector()):this.oldPlanNotFound()},n.prototype.bestMatchingSteps=function(){var t;return(t=this.matchingPlan())?(t.addHungrySteps(),t.resolveNesting(),t.steps):this.matchingPlanNotFound()},n.prototype.matchingPlanNotFound=function(){var t,e;return this.newPlan()?this.oldPlanNotFound():(e=this.oldPlan()?"Could not find "+this.options.humanizedTarget+" in response":"Could not match "+this.options.humanizedTarget+" in current page and response",this.options.inspectResponse&&(t={label:"Open response",callback:this.options.inspectResponse}),up.fail([e+" (tried %o)",this.candidates],{action:t}))},n.prototype.oldPlanNotFound=function(){var t;return t=this.options.layer,"auto"===t&&(t="page, modal or popup"),up.fail("Could not find "+this.options.humanizedTarget+" in current "+t+" (tried %o)",this.candidates)},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.ExtractPlan=function(){function n(t,n){this.addHungrySteps=e(this.addHungrySteps,this),this.parseSteps=e(this.parseSteps,this),this.selector=e(this.selector,this),this.resolveNesting=e(this.resolveNesting,this),this.addSteps=e(this.addSteps,this),this.matchExists=e(this.matchExists,this),this.newExists=e(this.newExists,this),this.oldExists=e(this.oldExists,this),this.findNew=e(this.findNew,this),this.findOld=e(this.findOld,this);var r;this.reveal=n.reveal,this.origin=n.origin,this.hungry=n.hungry,this.transition=n.transition,this.response=n.response,this.oldLayer=n.layer,r=up.dom.resolveSelector(t,this.origin),this.parseSteps(r)}return n.prototype.findOld=function(){return t.each(this.steps,function(t){return function(e){return e.$old=up.dom.first(e.selector,{layer:t.oldLayer})}}(this))},n.prototype.findNew=function(){return t.each(this.steps,function(t){return function(e){return e.$new=t.response.first(e.selector)}}(this))},n.prototype.oldExists=function(){return this.findOld(),t.all(this.steps,function(t){return t.$old})},n.prototype.newExists=function(){return this.findNew(),t.all(this.steps,function(t){return t.$new})},n.prototype.matchExists=function(){return this.oldExists()&&this.newExists()},n.prototype.addSteps=function(t){return this.steps=this.steps.concat(t)},n.prototype.resolveNesting=function(){var e;if(!(this.steps.length<2))return e=t.copy(this.steps),e=t.uniqBy(e,function(t){return t.$old[0]}),e=t.select(e,function(){return function(n,r){return t.all(e,function(t,e){var o,i;return e===r?!0:(o=n.$old[0],i=t.$old[0],t.pseudoClass||!$.contains(i,o))})}}(this)),e[0].reveal=this.steps[0].reveal,this.steps=e},n.prototype.selector=function(){return t.map(this.steps,"expression").join(", ")},n.prototype.parseSteps=function(e){var n,r;return n=/\ *,\ */,this.steps=[],r=e.split(n),t.each(r,function(t){return function(e,n){var r,o,i,u;return o=e.match(/^(.+?)(?:\:(before|after))?$/),o||up.fail('Could not parse selector literal "%s"',e),u=o[1],"html"===u&&(u="body"),i=o[2],r=0===n?t.reveal:!1,t.steps.push({expression:e,selector:u,pseudoClass:i,transition:t.transition,origin:t.origin,reveal:r})}}(this))},n.prototype.addHungrySteps=function(){var e,n,r,o,i,u,s,a,l;if(i=[],this.hungry)for(e=$(up.radio.hungrySelector()),l=t.option(up.radio.config.hungryTransition,this.transition),u=0,s=e.length;s>u;u++)o=e[u],n=$(o),a=t.selectorForElement(n),(r=this.response.first(a))&&i.push({selector:a,$old:n,$new:r,transition:l,reveal:!1,origin:null});return this.addSteps(i)},n}()}.call(this),function(){var t;t=up.util,up.ExtractStep=function(){function t(){}return t}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.FieldObserver=function(){function n(t,n){this.$field=t,this.check=e(this.check,this),this.readFieldValue=e(this.readFieldValue,this),this.requestCallback=e(this.requestCallback,this),this.isNewValue=e(this.isNewValue,this),this.scheduleTimer=e(this.scheduleTimer,this),this.cancelTimer=e(this.cancelTimer,this),this.stop=e(this.stop,this),this.start=e(this.start,this),this.delay=n.delay,this.callback=n.callback}var r;return r="input change",n.prototype.start=function(){return this.scheduledValue=null,this.processedValue=this.readFieldValue(),this.currentTimer=void 0,this.currentCallback=void 0,this.$field.on(r,this.check)},n.prototype.stop=function(){return this.$field.off(r,this.check),this.cancelTimer()},n.prototype.cancelTimer=function(){return clearTimeout(this.currentTimer),this.currentTimer=void 0},n.prototype.scheduleTimer=function(){return this.currentTimer=t.setTimer(this.delay,function(t){return function(){return t.currentTimer=void 0,t.requestCallback()}}(this))},n.prototype.isNewValue=function(t){return t!==this.processedValue&&(null===this.scheduledValue||this.scheduledValue!==t)},n.prototype.requestCallback=function(){var e;return null===this.scheduledValue||this.currentTimer||this.currentCallback?void 0:(this.processedValue=this.scheduledValue,this.scheduledValue=null,this.currentCallback=function(t){return function(){return t.callback.call(t.$field.get(0),t.processedValue,t.$field)}}(this),e=Promise.resolve(this.currentCallback()),t.always(e,function(t){return function(){return t.currentCallback=void 0,t.requestCallback()}}(this)))},n.prototype.readFieldValue=function(){return t.submittedValue(this.$field)},n.prototype.check=function(){var t;return t=this.readFieldValue(),this.isNewValue(t)?(this.scheduledValue=t,this.cancelTimer(),this.scheduleTimer()):void 0},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.FollowVariant=function(){function r(t,n){this.matchesLink=e(this.matchesLink,this),this.preloadLink=e(this.preloadLink,this),this.followLink=e(this.followLink,this),this.fullSelector=e(this.fullSelector,this),this.onMousedown=e(this.onMousedown,this),this.onClick=e(this.onClick,this),this.followNow=n.follow,this.preloadNow=n.preload,this.selectors=t.split(/\s*,\s*/)}return r.prototype.onClick=function(t,e){return up.link.shouldProcessEvent(t,e)?e.is("[up-instant]")?up.bus.haltEvent(t):(up.bus.consumeAction(t),this.followLink(e)):up.link.allowDefault(t)},r.prototype.onMousedown=function(t,e){return up.link.shouldProcessEvent(t,e)?(up.bus.consumeAction(t),this.followLink(e)):void 0},r.prototype.fullSelector=function(t){var e;return null==t&&(t=""),e=[],this.selectors.forEach(function(n){return["a","[up-href]"].forEach(function(r){return e.push(""+r+n+t)})}),e.join(", ")},r.prototype.registerEvents=function(){return up.on("click",this.fullSelector(),function(e){return function(){var r;return r=1<=arguments.length?n.call(arguments,0):[],t.muteRejection(e.onClick.apply(e,r))}}(this)),up.on("mousedown",this.fullSelector("[up-instant]"),function(e){return function(){var r;return r=1<=arguments.length?n.call(arguments,0):[],t.muteRejection(e.onMousedown.apply(e,r))}}(this))},r.prototype.followLink=function(t,e){return null==e&&(e={}),up.bus.whenEmitted("up:link:follow",{$element:t}).then(function(n){return function(){return up.feedback.start(t,e,function(){return n.followNow(t,e)})}}(this))},r.prototype.preloadLink=function(t,e){return null==e&&(e={}),this.preloadNow(t,e)},r.prototype.matchesLink=function(t){return t.is(this.fullSelector())},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.MotionTracker=function(){function n(t){this.reset=e(this.reset,this),this.whileForwardingFinishEvent=e(this.whileForwardingFinishEvent,this),this.forwardFinishEvent=e(this.forwardFinishEvent,this),this.unmarkCluster=e(this.unmarkCluster,this),this.markCluster=e(this.markCluster,this),this.whenElementFinished=e(this.whenElementFinished,this),this.emitFinishEvent=e(this.emitFinishEvent,this),this.finishOneElement=e(this.finishOneElement,this),this.isActive=e(this.isActive,this),this.expandFinishRequest=e(this.expandFinishRequest,this),this.finish=e(this.finish,this),this.claim=e(this.claim,this),this.activeClass="up-"+t,this.dataKey="up-"+t+"-finished",this.selector="."+this.activeClass,this.finishEvent="up:"+t+":finish",this.finishCount=0,this.clusterCount=0
2
+ }return n.prototype.claim=function(e,n,r){var o;return null==r&&(r={}),o=$(e),r.trackMotion=t.option(r.trackMotion,up.motion.isEnabled()),r.trackMotion===!1?t.microtask(n):(r.trackMotion=!1,this.finish(o).then(function(t){return function(){var e;return e=t.whileForwardingFinishEvent(o,n),e=e.then(function(){return t.unmarkCluster(o)}),t.markCluster(o,e),e}}(this)))},n.prototype.finish=function(e){var n,r;return this.finishCount++,0!==this.clusterCount&&up.motion.isEnabled()?(n=this.expandFinishRequest(e),r=t.map(n,this.finishOneElement),Promise.all(r)):Promise.resolve()},n.prototype.expandFinishRequest=function(e){return e?t.selectInDynasty($(e),this.selector):$(this.selector)},n.prototype.isActive=function(e){return t.hasClass(e,this.activeClass)},n.prototype.finishOneElement=function(t){var e;return e=$(t),this.emitFinishEvent(e),this.whenElementFinished(e)},n.prototype.emitFinishEvent=function(e,n){return null==n&&(n={}),n=t.merge({$element:e,message:!1},n),up.emit(this.finishEvent,n)},n.prototype.whenElementFinished=function(t){return t.data(this.dataKey)||Promise.resolve()},n.prototype.markCluster=function(t,e){return this.clusterCount++,t.addClass(this.activeClass),t.data(this.dataKey,e)},n.prototype.unmarkCluster=function(t){return this.clusterCount--,t.removeClass(this.activeClass),t.removeData(this.dataKey)},n.prototype.forwardFinishEvent=function(t,e,n){return this.start(t,function(r){return function(){var o;return o=function(){return e.trigger(r.finishEvent)},t.on(r.finishEvent,o),n.then(function(){return t.off(r.finishEvent,o)})}}(this))},n.prototype.whileForwardingFinishEvent=function(e,n){var r;return e.length<2?n():(r=function(n){return function(r){return r.forwarded?void 0:t.each(e,function(t){var e;return e=$(t),t!==r.target&&n.isActive(e)?n.emitFinishEvent(e,{forwarded:!0}):void 0})}}(this),e.on(this.finishEvent,r),n().then(function(t){return function(){return e.off(t.finishEvent,r)}}(this)))},n.prototype.reset=function(){return this.finish().then(function(t){return function(){return t.finishCount=0,t.clusterCount=0}}(this))},n}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=[].slice;t=up.util,up.Record=function(){function r(n){this.copy=e(this.copy,this),this.attributes=e(this.attributes,this),t.assign(this,this.attributes(n))}return r.prototype.fields=function(){throw"Return an array of property names"},r.prototype.attributes=function(e){return null==e&&(e=this),t.only.apply(t,[e].concat(n.call(this.fields())))},r.prototype.copy=function(e){var n;return null==e&&(e={}),n=t.merge(this.attributes(),e),new this.constructor(n)},r}()}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t=up.util,up.Request=function(r){function o(t){this.cacheKey=e(this.cacheKey,this),this.isCachable=e(this.isCachable,this),this.buildResponse=e(this.buildResponse,this),this.isCrossDomain=e(this.isCrossDomain,this),this.csrfToken=e(this.csrfToken,this),this.navigate=e(this.navigate,this),this.send=e(this.send,this),this.isSafe=e(this.isSafe,this),this.transferSearchToData=e(this.transferSearchToData,this),this.transferDataToUrl=e(this.transferDataToUrl,this),this.extractHashFromUrl=e(this.extractHashFromUrl,this),this.normalize=e(this.normalize,this),o.__super__.constructor.call(this,t),this.normalize()}return n(o,r),o.prototype.fields=function(){return["method","url","data","target","failTarget","headers","timeout"]},o.prototype.normalize=function(){return this.method=t.normalizeMethod(this.method),this.headers||(this.headers={}),this.extractHashFromUrl(),t.methodAllowsPayload(this.method)?this.transferSearchToData():this.transferDataToUrl()},o.prototype.extractHashFromUrl=function(){var e;return e=t.parseUrl(this.url),this.hash=e.hash,this.url=t.normalizeUrl(e,{hash:!1})},o.prototype.transferDataToUrl=function(){var e,n;return this.data&&!t.isFormData(this.data)?(e=t.requestDataAsQuery(this.data),n=t.contains(this.url,"?")?"&":"?",this.url+=n+e,this.data=void 0):void 0},o.prototype.transferSearchToData=function(){var e,n;return n=t.parseUrl(this.url),e=n.search,e?(this.data=t.mergeRequestData(this.data,e),this.url=t.normalizeUrl(n,{search:!1})):void 0},o.prototype.isSafe=function(){return up.proxy.isSafeMethod(this.method)},o.prototype.send=function(){return new Promise(function(e){return function(n,r){var o,i,u,s,a,l,p,c,h,f;l=new XMLHttpRequest,c=t.copy(e.headers),p=e.data,h=e.method,f=e.url,u=up.proxy.wrapMethod(h,p),h=u[0],p=u[1],t.isFormData(p)?delete c["Content-Type"]:t.isPresent(p)?(p=t.requestDataAsQuery(p,{purpose:"form"}),c["Content-Type"]="application/x-www-form-urlencoded"):p=null,e.target&&(c[up.protocol.config.targetHeader]=e.target),e.failTarget&&(c[up.protocol.config.failTargetHeader]=e.failTarget),e.isCrossDomain()||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest"),(o=e.csrfToken())&&(c[up.protocol.config.csrfHeader]=o),l.open(h,f);for(i in c)a=c[i],l.setRequestHeader(i,a);return s=function(){var t;return t=e.buildResponse(l),t.isSuccess()?n(t):r(t)},l.onload=s,l.onerror=s,l.ontimeout=s,e.timeout&&(l.timeout=e.timeout),l.send(p)}}(this))},o.prototype.navigate=function(){var e,n,r,o,i;return this.transferSearchToData(),e=$('<form class="up-page-loader"></form>'),n=function(t){return $('<input type="hidden">').attr(t).appendTo(e)},"GET"===this.method?i="GET":(n({name:up.protocol.config.methodParam,value:this.method}),i="POST"),e.attr({method:i,action:this.url}),(r=up.protocol.csrfParam())&&(o=this.csrfToken())&&n({name:r,value:o}),t.each(t.requestDataAsArray(this.data),n),e.hide().appendTo("body"),up.browser.submitForm(e)},o.prototype.csrfToken=function(){return this.isSafe()||this.isCrossDomain()?void 0:up.protocol.csrfToken()},o.prototype.isCrossDomain=function(){return t.isCrossDomain(this.url)},o.prototype.buildResponse=function(t){var e,n,r;return n={method:this.method,url:this.url,text:t.responseText,status:t.status,request:this,xhr:t},(r=up.protocol.locationFromXhr(t))&&(n.url=r,n.method=null!=(e=up.protocol.methodFromXhr(t))?e:"GET"),n.title=up.protocol.titleFromXhr(t),new up.Response(n)},o.prototype.isCachable=function(){return this.isSafe()&&!t.isFormData(this.data)},o.prototype.cacheKey=function(){return[this.url,this.method,t.requestDataAsQuery(this.data),this.target].join("|")},o.wrap=function(t){return t instanceof this?t:new this(t)},o}(up.Record)}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}},n=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;t=up.util,up.Response=function(r){function o(t){this.isFatalError=e(this.isFatalError,this),this.isError=e(this.isError,this),this.isSuccess=e(this.isSuccess,this),o.__super__.constructor.call(this,t)}return n(o,r),o.prototype.fields=function(){return["method","url","text","status","request","xhr","title"]},o.prototype.isSuccess=function(){return this.status&&this.status>=200&&this.status<=299},o.prototype.isError=function(){return!this.isSuccess()},o.prototype.isFatalError=function(){return this.isError()&&t.isBlank(this.text)},o}(up.Record)}.call(this),function(){var t,e=function(t,e){return function(){return t.apply(e,arguments)}};t=up.util,up.UrlSet=function(){function n(n,r){this.urls=n,null==r&&(r={}),this.isEqual=e(this.isEqual,this),this.matchesAny=e(this.matchesAny,this),this.doesMatchPrefix=e(this.doesMatchPrefix,this),this.doesMatchFully=e(this.doesMatchFully,this),this.matches=e(this.matches,this),this.normalizeUrl=r.normalizeUrl||t.normalizeUrl,this.urls=t.map(this.urls,this.normalizeUrl),this.urls=t.compact(this.urls)}return n.prototype.matches=function(t){return"*"===t.substr(-1)?this.doesMatchPrefix(t.slice(0,-1)):this.doesMatchFully(t)},n.prototype.doesMatchFully=function(e){return t.contains(this.urls,e)},n.prototype.doesMatchPrefix=function(e){return t.detect(this.urls,function(t){return 0===t.indexOf(e)})},n.prototype.matchesAny=function(e){return t.detect(e,this.matches)},n.prototype.isEqual=function(e){return t.isEqual(this.urls,null!=e?e.urls:void 0)},n}()}.call(this),function(){var t=[].slice;up.browser=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C;return S=up.util,d=function(t,e){var n;return null==e&&(e={}),n=new up.Request(S.merge(e,{url:t})),n.navigate()},T=function(t){return t.submit()},g=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],console[n].apply(console,e)},n=/\%[odisf]/g,k=function(t){var n,r,o,i,u,s,a,l,p;if(s=200,o="",S.isString(t))l=t.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',o='"';else if(S.isUndefined(t))l="undefined";else if(S.isNumber(t)||S.isFunction(t))l=t.toString();else if(S.isArray(t))l="["+S.map(t,k).join(", ")+"]",o="]";else if(S.isJQuery(t))l="$("+S.map(t,k).join(", ")+")",o=")";else if(S.isElement(t)){for(n=e(t),l="<"+t.tagName.toLowerCase(),a=["id","name","class"],i=0,u=a.length;u>i;i++)r=a[i],(p=n.attr(r))&&(l+=" "+r+'="'+p+'"');l+=">",o=">"}else l=JSON.stringify(t);return l.length>s&&(l=l.substr(0,s)+" \u2026",l+=o),l},b=function(){var e,n;return n=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],w.apply(null,[S.identity,n].concat(t.call(e)))},w=function(){var e,r,o,i;return r=arguments[0],i=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],S.isBlank(i)?"":(o=0,i.replace(n,function(){var t;return t=e[o],t=r(k(t)),o+=1,t}))},E=function(){return location.href},c=S.memoize(function(){return!window.atob}),l=function(){return S.isDefined(history.pushState)&&"get"===up.protocol.initialRequestMethod()},o=S.memoize(function(){return"transition"in document.documentElement.style}),s=S.memoize(function(){return"oninput"in document.createElement("input")}),a=S.memoize(function(){return!!window.Promise}),u=S.memoize(function(){return!!window.FormData}),i=S.memoize(function(){return!!window.DOMParser}),r=S.memoize(function(){return window.console&&console.debug&&console.info&&console.warn&&console.error&&console.group&&console.groupCollapsed&&console.groupEnd}),h=S.memoize(function(){var t,n,r,o;return o=e.fn.jquery,r=o.split("."),t=parseInt(r[0]),n=parseInt(r[1]),t>=2||1===t&&n>=9}),v=function(t){var e,n;return n=null!=(e=document.cookie.match(new RegExp(t+"=(\\w+)")))?e[1]:void 0,S.isPresent(n)&&(document.cookie=t+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},C=function(t){return t.preload||S.isBlank(t.confirm)||window.confirm(t.confirm)?Promise.resolve():Promise.reject(new Error("User canceled action"))},f=function(){return!c()&&h()&&r()&&i()&&u()&&o()&&s()&&a()},y=S.memoize(function(){try{return window.sessionStorage}catch(t){return m()}}),m=function(){var t;return t={},{getItem:function(e){return t[e]},setItem:function(e,n){return t[e]=n}}},p=function(t){return t||(t=location.hash),t||(t=""),"#"===t[0]&&(t=t.substr(1)),S.presence(t)},{url:E,navigate:d,submitForm:T,canPushState:l,whenConfirmed:C,isSupported:f,puts:g,sprintf:b,sprintfWithFormattedArgs:w,sessionStorage:y,popCookie:v,hash:p}}(jQuery)}.call(this),function(){var t=[].slice;up.bus=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C;return w=up.util,p={},h=0,g={},E=function(t){return function(n){var r;return r=n.$element||e(this),t.apply(r.get(0),[n,r,up.syntax.data(r)])}},S=function(t,e){var n,r,o;return n=w.copy(t),u(n),o=n.pop(),r=void 0,e?(r=E(o),o._asJqueryListener=r,o._descriptionNumber=++h):(r=o._asJqueryListener,r||up.fail("up.off(): The callback %o was never registered through up.on()",o)),n.push(r),n},u=function(t){var e;return e=t[0].split(/\s+/),e=w.map(e,function(t){var e;return(e=g[t])?(up.log.warn(t+" has been renamed to "+e),e):t}),t[0]=e.join(" ")},l=function(){var n,r,o;return o=1<=arguments.length?t.call(arguments,0):[],up.browser.isSupported()?(n=S(o,!0),m(o),(r=e(document)).on.apply(r,n),function(){return k.apply(null,o)}):function(){}},k=function(){var n,r,o;return o=1<=arguments.length?t.call(arguments,0):[],n=S(o,!1),s(o),(r=e(document)).off.apply(r,n)},m=function(t){var e;return e=T(t),p[e]=t},s=function(t){var e;return e=T(t),delete p[e]},T=function(t){return w.last(t)._descriptionNumber},o=function(t,n){var r,o;return null==n&&(n={}),o=e.Event(t,n),r=n.$target||n.$element||e(document),c(t,n),r.trigger(o),o},c=function(e,n){var r,o,i;return n.hasOwnProperty("message")?(r=n.message,delete n.message,r!==!1&&(w.isArray(r)?(i=r,r=i[0],o=2<=i.length?t.call(i,1):[]):o=[],r)?w.isPresent(n)?up.puts.apply(up,[r+" (%s (%o))"].concat(t.call(o),[e],[n])):up.puts.apply(up,[r+" (%s)"].concat(t.call(o),[e])):void 0):w.isPresent(n)?up.puts("Emitted event %s (%o)",e,n):up.puts("Emitted event %s",e)},f=function(){var e,n;return e=1<=arguments.length?t.call(arguments,0):[],n=o.apply(null,e),!n.isDefaultPrevented()},C=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],new Promise(function(t,n){return f.apply(null,e)?t():n(new Error("Event "+e[0]+" was prevented"))})},d=function(t){return l("keydown","body",function(e){return w.escapePressed(e)?t(e):void 0})},a=function(t){return t.stopImmediatePropagation(),t.stopPropagation(),t.preventDefault()},r=function(t){return a(t),"up:action:consumed"!==t.type?o("up:action:consumed",{$element:e(t.target),message:!1}):void 0},b=function(){var t,e,n;n=[];for(e in p)t=p[e],n.push(t.isDefault=!0);return n},y=function(){var t,e,n,r,o,i;e=[];for(o in p)t=p[o],t.isDefault||e.push(t);for(i=[],n=0,r=e.length;r>n;n++)t=e[n],i.push(k.apply(null,t));return i},i=function(){return o("up:framework:reset",{message:"Resetting framework"}),up.protocol.reset()},v=function(t,e){return g[t]=e},n=function(){return up.browser.isSupported()?(o("up:framework:boot",{message:"Booting framework"}),o("up:framework:booted",{message:"Framework booted"}),w.nextFrame(function(){return w.whenReady().then(function(){return o("up:app:boot",{message:"Booting user application"}),o("up:app:booted",{message:"User application booted"})})})):"function"==typeof console.log?console.log("Unpoly doesn't support this browser. Framework was not booted."):void 0},l("up:framework:booted",b),l("up:framework:reset",y),{on:l,off:k,emit:o,nobodyPrevents:f,whenEmitted:C,onEscape:d,emitReset:i,haltEvent:a,consumeAction:r,renamedEvent:v,boot:n}}(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(){up.protocol=function(t){var e,n,r,o,i,u,s,a,l;return l=up.util,i=function(t){return t.getResponseHeader(e.locationHeader)||t.responseURL},a=function(t){return t.getResponseHeader(e.titleHeader)},u=function(t){var n;return(n=t.getResponseHeader(e.methodHeader))?l.normalizeMethod(n):void 0},o=l.memoize(function(){var t;return t=up.browser.popCookie(e.methodCookie),(t||"get").toLowerCase()}),up.bus.on("up:framework:booted",o),e=l.config({targetHeader:"X-Up-Target",failTargetHeader:"X-Up-Fail-Target",locationHeader:"X-Up-Location",validateHeader:"X-Up-Validate",titleHeader:"X-Up-Title",methodHeader:"X-Up-Method",methodCookie:"_up_method",methodParam:"_method",csrfParam:function(){return t('meta[name="csrf-param"]').attr("content")},csrfToken:function(){return t('meta[name="csrf-token"]').attr("content")},csrfHeader:"X-CSRF-Token"}),n=function(){return l.evalOption(e.csrfParam)},r=function(){return l.evalOption(e.csrfToken)},s=function(){return e.reset()},{config:e,reset:s,locationFromXhr:i,titleFromXhr:a,methodFromXhr:u,csrfParam:n,csrfToken:r,initialRequestMethod:o}}(jQuery)}.call(this),function(){var t=[].slice;up.log=function(){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m;return d=up.util,n=up.browser,e="up.log.enabled",r=d.config({prefix:"[UP] ",enabled:"true"===n.sessionStorage().getItem(e),collapse:!1}),h=function(){return r.reset()},l=function(t){return""+r.prefix+t},o=function(){var e,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r.enabled&&o?n.puts.apply(n,["debug",l(o)].concat(t.call(e))):void 0},c=function(){var e,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r.enabled&&o?n.puts.apply(n,["log",l(o)].concat(t.call(e))):void 0},m=function(){var e,r;return r=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r?n.puts.apply(n,["warn",l(r)].concat(t.call(e))):void 0},a=function(){var e,o,i,u;if(i=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],o=e.pop(),!r.enabled||!i)return o();u=r.collapse?"groupCollapsed":"group",n.puts.apply(n,[u,l(i)].concat(t.call(e)));try{return o()}finally{i&&n.puts("groupEnd")}},s=function(){var e,r;return r=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],r?n.puts.apply(n,["error",l(r)].concat(t.call(e))):void 0},p=function(){var t;return t=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",t+=r.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",n.puts("log",t)},up.on("up:framework:boot",p),up.on("up:framework:reset",h),f=function(t){return n.sessionStorage().setItem(e,t.toString()),r.enabled=t},u=function(){return f(!0)},i=function(){return f(!1)},{puts:c,debug:o,error:s,warn:m,group:a,config:r,enable:u,disable:i}}(jQuery),up.puts=up.log.puts}.call(this),function(){var t=[].slice;up.toast=function(e){var n,r,o,i,u,s,a,l,p,c;return c=up.util,o=up.browser,n=function(t){return"<span class='up-toast-variable'>"+c.escapeHtml(t)+"</span>"},p=c.config({$toast:null}),l=function(){return i(),p.reset()},s=function(e){return c.isArray(e)?(e[0]=c.escapeHtml(e[0]),e=o.sprintfWithFormattedArgs.apply(o,[n].concat(t.call(e)))):e=c.escapeHtml(e),e},u=function(){return!!p.$toast},r=function(t,n,r){var o;return o=e('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(t)},a=function(t,n){var o,u,a,l;return null==n&&(n={}),i(),a=e('<div class="up-toast"></div>').prependTo("body"),u=e('<div class="up-toast-message"></div>').appendTo(a),o=e('<div class="up-toast-actions"></div>').appendTo(a),t=s(t),u.html(t),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),p.$toast=a},i=function(){return u()?(p.$toast.remove(),p.$toast=null):void 0},up.on("up:framework:reset",l),{open:a,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var t=[].slice;up.syntax=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k;return k=up.util,n="up-destructible",r="up-destructors",o={"[up-back]":-100,"[up-drawer]":-200,"[up-dash]":-200,"[up-expand]":-300,"[data-method]":-400,"[data-confirm]":-400},m=!0,c=[],g=[],p=function(){var e,n,r,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],up.browser.isSupported()?(n=e.pop(),r=k.options(e[0]),d(c,o,r,n)):void 0},v=function(){var e,n,r,o;return o=arguments[0],e=2<=arguments.length?t.call(arguments,1):[],up.browser.isSupported()?(n=e.pop(),r=k.options(e[0]),m&&(r.priority=f(o)||up.fail("Unregistered priority for system macro %o",o)),d(g,o,r,n)):void 0},f=function(t){var e,n;for(n in o)if(e=o[n],t.indexOf(n)>=0)return e},s=function(t,e,n){return{selector:t,callback:n,isSystem:m,priority:e.priority||0,batch:e.batch,keep:e.keep}},d=function(t,e,n,r){var o,i,u;if(up.browser.isSupported()){for(i=s(e,n,r),o=0;(u=t[o])&&u.priority>=i.priority;)o+=1;return t.splice(o,0,i)}},u=function(t,e,n){var r,o;return up.puts(t.isSystem?void 0:"Compiling '%s' on %o",t.selector,n),t.keep&&(o=k.isString(t.keep)?t.keep:"",e.attr("up-keep",o)),r=t.callback.apply(n,[e,h(e)]),i(e,r)},y=function(t){return k.isFunction(t)?t:k.isArray(t)&&k.all(t,k.isFunction)?k.sequence.apply(k,t):void 0},i=function(t,e){var o;return(e=y(e))?(t.addClass(n),o=t.data(r)||function(){return b(t)},o=k.sequence(o,e),t.data(r,o)):void 0},b=function(t){return t.removeData(r),t.removeClass(n)},l=function(t,n){var r;return n=k.options(n),r=e(n.skip),up.log.group("Compiling fragment %o",t.get(0),function(){var n,o,i,s,a,l;for(a=[g,c],l=[],o=0,i=a.length;i>o;o++)s=a[o],l.push(function(){var o,i,a;for(a=[],o=0,i=s.length;i>o;o++)p=s[o],n=k.selectInSubtree(t,p.selector),r.length&&(n=n.filter(function(){var t;return t=e(this),k.all(r,function(e){return 0===t.closest(e).length})})),a.push(n.length?up.log.group(p.isSystem?void 0:"Compiling '%s' on %d element(s)",p.selector,n.length,function(){return p.batch?u(p,n,n.get()):n.each(function(){return u(p,e(this),this)})}):void 0);return a}());return l})},a=function(t){var o;return o=k.selectInSubtree(t,"."+n),k.each(o,function(t){var n;return(n=e(t).data(r))?n():void 0})},h=function(t){var n,r;return n=e(t),r=n.attr("up-data"),k.isString(r)&&""!==k.trim(r)?JSON.parse(r):{}},w=function(){var t;return t=function(t){return t.isSystem},c=k.select(c,t),g=k.select(g,t)},up.on("up:framework:booted",function(){return m=!1}),up.on("up:framework:reset",w),{compiler:p,macro:v,compile:l,clean:a,data:h}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(t){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m,v;return v=up.util,n=v.config({enabled:!0,popTargets:["body"],restoreScroll:!0}),p=void 0,u=void 0,d=function(){return n.reset(),p=void 0,u=void 0},s=function(t,e){return e||(e={}),e.hash=!0,v.normalizeUrl(t,e)},r=function(t){return s(up.browser.url(),t)},o=function(t){var e;return e={stripTrailingSlash:!0},s(t,e)===r(e)},a=function(t){return u&&(p=u,u=void 0),u=t},f=function(t){return i("replaceState",t)?up.emit("up:history:replaced",{url:t}):void 0},c=function(t,e){return e=v.options(e,{force:!1}),t=s(t),!e.force&&o(t)||!up.bus.nobodyPrevents("up:history:push",{url:t,message:"Adding history entry for "+t})?void 0:i("pushState",t)?up.emit("up:history:pushed",{url:t,message:"Advanced to location "+t}):up.emit("up:history:muted",{url:t,message:"Did not advance to "+t+" (history is unavailable)"})},i=function(t,o){var i;return up.browser.canPushState()&&n.enabled?(i=e(),window.history[t](i,"",o),a(r()),!0):!1},e=function(){return{fromUp:!0}},m=function(t){var e,o,i;return(null!=t?t.fromUp:void 0)?(i=r(),up.emit("up:history:restore",{url:i,message:"Restoring location "+i}),e=n.popTargets.join(", "),o=up.replace(e,i,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll,layer:"page"}),o.then(function(){return i=r(),up.emit("up:history:restored",{url:i,message:"Restored location "+i})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",t)},l=function(t){var e;return a(r()),up.layout.saveScroll({url:p}),e=t.originalEvent.state,m(e)},up.browser.canPushState()&&(h=function(){return t(window).on("popstate",l),f(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?h():setTimeout(h,100)),up.macro("a[up-back], [up-href][up-back]",function(t){return v.isPresent(p)?(v.setMissingAttrs(t,{"up-href":p,"up-restore-scroll":""}),t.removeAttr("up-back"),up.link.makeFollowable(t)):void 0}),up.on("up:framework:reset",d),{config:n,push:c,replace:f,url:r,isUrl:o,previousUrl:function(){return p},normalizeUrl:s}}(jQuery)}.call(this),function(){var t=[].slice;up.layout=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F;return E=up.util,o=E.config({duration:0,viewports:[".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"}),a=new up.Cache({size:30,key:up.history.normalizeUrl}),S=new up.MotionTracker("scrolling"),p=function(){return o.reset(),a.clear(),S.reset()},g=function(t,e,n){var r;return r=T(t),n=E.options(n),n.duration=E.option(n.duration,o.duration),n.easing=E.option(n.easing,o.easing),i(r).then(function(){return up.motion.isEnabled()&&n.duration>0?k(r,e,n):y(r,e)})},T=function(t){var n;return n=e(t),n.get(0)===document?e("html, body"):n},k=function(t,e,n){var r;return r=function(){var r,o;return r=function(){return t.finish()},t.on(S.eventName,r),o=t.animate({scrollTop:e},n).promise(),o.then(function(){return t.off(S.eventName)}),o},S.claim(t,r)},y=function(t,e){return t.scrollTop(e),Promise.resolve()},i=function(t){var e;return up.motion.isEnabled()?(e=T(t),S.finish(e)):Promise.resolve()},r=function(){var t;return t=o.anchoredRight.join(","),e(t)},l=function(){var n,r,i,u;return i=function(t,n){var r,o;return r=e(t),o=E.readComputedStyleNumber(r,n),E.isPresent(o)||up.fail("Fixed element %o must have a CSS attribute %s",r.get(0),n),o+r.height()},r=function(){var t,n,r,s;for(r=e(o.fixedTop.join(", ")),s=[],t=0,n=r.length;n>t;t++)u=r[t],s.push(i(u,"top"));return s}(),n=function(){var t,n,r,s;for(r=e(o.fixedBottom.join(", ")),s=[],t=0,n=r.length;n>t;t++)u=r[t],s.push(i(u,"bottom"));return s}(),{top:Math.max.apply(Math,[0].concat(t.call(r))),bottom:Math.max.apply(Math,[0].concat(t.call(n)))}},h=function(t,n){var r;return r=e(t).first(),up.puts("Revealing fragment %o",r.get(0)),n=E.options(n),E.rejectOnError(function(){var t,i,u,s,a,p,c,h,f,d,m,v,y;return t=n.viewport?e(n.viewport):C(r),m=E.option(n.snap,o.snap),y=t.is(document),v=y?E.clientSize().height:t.outerHeight(),h=t.scrollTop(),a=h,c=void 0,p=void 0,y?(p=l(),c=0):(p={top:0,bottom:0},c=h),f=function(){return a+p.top},d=function(){return a+v-p.bottom-1},i=E.measure(r,{relative:t,includeMargin:!0}),u=i.top+c,s=u+Math.min(i.height,o.substance)-1,s>d()&&(a+=s-d()),(u<f()||n.top)&&(a=u-p.top),m>a&&i.top<.5*v&&(a=0),a!==h?g(t,a,n):Promise.resolve()})},f=function(){var t,e;return(e=up.browser.hash())&&(t=u(e))?h(t):Promise.resolve()},x=function(){return o.viewports.join(",")},C=function(t,n){var r,o;return null==n&&(n={}),r=e(t),o=r.closest(x()),0===o.length&&(o=e(document)),o},F=function(t){var n;return n=e(t),E.selectInSubtree(n,x())},P=function(){return e(document).add(x())},b=function(t){var n;return n=e(t),n.is(document)?"document":E.selectorForElement(n)},w=function(){var t,n,r,i,u;for(u={},i=o.viewports,n=0,r=i.length;r>n;n++)t=i[n],e(t).each(function(){var t,n,r;return t=e(this),n=b(t),r=t.scrollTop(),u[n]=r});return u},s=function(t){var n,r;return null==t&&(t=void 0),t||(t=document.body),r=e(t),n=r.find("[up-fixed]"),E.isPresent(o.fixedTop)&&(n=n.add(r.find(o.fixedTop.join(", ")))),E.isPresent(o.fixedBottom)&&(n=n.add(r.find(o.fixedBottom.join(", ")))),n},v=function(t){var e,n;return null==t&&(t={}),n=E.option(t.url,up.history.url()),e=E.option(t.tops,w()),a.set(n,e)},c=function(t){var e,n,r,o,i;return null==t&&(t={}),i=up.history.url(),r=void 0,t.around?(n=F(t.around),e=C(t.around),r=e.add(n)):r=P(),o=a.get(i)||{},up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var t;return t=E.map(r,function(t){var e,n;return e=b(t),n=o[e]||0,g(t,n,{duration:0})}),Promise.all(t)})},d=function(t,n){var r,o,i;return n=E.options(n),r=e(t),n.restoreScroll?c({around:r}):n.reveal&&(o={duration:n.duration},E.isString(n.reveal)&&(i=m(n.reveal,n),r=up.first(i)||r,o.top=!0),r.length)?h(r,o):Promise.resolve()},m=function(t,e){return t=up.dom.resolveSelector(t,e.origin),"#"===t[0]&&(t+=", a[name='"+t+"']"),t},n=function(t,n){var r,o,i,u,s,a,l,p,c,h,f;for(n=E.options(n,{afterMeasure:E.noop}),i=up.layout.viewportOf(t),c=E.measure(t,{relative:!0,inner:!0}),h=t.offset(),n.afterMeasure(),E.writeInlineStyle(t,{position:"static"===E.readComputedStyle(t,"position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),r=e('<div class="up-bounds"></div>'),u=E.merge(c,{position:"absolute"}),E.writeInlineStyle(r,u),r.insertBefore(t),t.appendTo(r),f=c.top,p=function(t){return 0!==t?(f+=t,E.writeInlineStyle(r,{top:f})):void 0},p(h.top-t.offset().top),o=up.layout.fixedChildren(t),a=0,l=o.length;l>a;a++)s=o[a],E.fixedToAbsolute(s,i);return{$element:t,$bounds:r,moveTop:p}},u=function(t){return(t=up.browser.hash(t))?up.first("[id='"+t+"'], a[name='"+t+"']"):void 0},up.on("up:app:booted",f),up.on("up:framework:reset",p),{reveal:h,revealHash:f,firstHashTarget:u,scroll:g,config:o,viewportOf:C,viewportsWithin:F,viewports:P,scrollTops:w,saveScroll:v,restoreScroll:c,revealOrRestoreScroll:d,anchoredRight:r,fixedChildren:s,absolutize:n}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal,up.revealHash=up.layout.revealHash}.call(this),function(){up.dom=function(t){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F,$,A,D,O,M,R;return M=up.util,r=M.config({fallbacks:["body"],fallbackTransition:null}),C=function(){return r.reset()},P=function(e,n){var r;return n!==!1?(r=t(e),M.isPresent(n)&&(n=M.normalizeUrl(n)),r.attr("up-source",n)):void 0},A=function(e){var n;return n=t(e).closest("[up-source]"),M.presence(n.attr("up-source"))||up.browser.url()},x=function(t,e){var n,r;return M.isString(t)?(r=t,M.contains(r,"&")&&(M.isPresent(e)?(n=M.selectorForElement(e),r=r.replace(/\&/,n)):up.fail("Found origin reference (%s) in selector %s, but no origin was given","&",r))):r=M.selectorForElement(t),r},E=function(t,e,r){var o,i,u,s,a,l,p,c,h,f;if(r=M.options(r),r.inspectResponse=u=function(){return up.browser.navigate(e,M.only(r,"method","data"))},!up.browser.canPushState()&&r.history!==!1)return r.preload||u(),M.unresolvablePromise();f=M.merge(r,{humanizedTarget:"target"}),i=M.merge(r,{humanizedTarget:"failure target",provideTarget:void 0,restoreScroll:!1}),M.renameKey(i,"failTransition","transition"),M.renameKey(i,"failLayer","layer"),M.renameKey(i,"failReveal","reveal");try{a=n(t,f),s=n(r.failTarget,i)}catch(d){return o=d,Promise.reject(o)}return h={url:e,method:r.method,data:r.data,target:a,failTarget:s,cache:r.cache,preload:r.preload,headers:r.headers,timeout:r.timeout},p=function(t){return T(!0,a,t,f)},l=function(t){var e,n;return n=function(){return Promise.reject(t)},t.isFatalError()?n():(e=T(!1,s,t,i),M.always(e,n))},c=up.request(h),r.preload||(c=c.then(p,l)),c},T=function(t,e,n,r){var o,i,u,s,a;return s=n.request,a=n.url,i=a,o=s.hash,r.reveal===!0&&o&&(r.reveal=o,i+=o),u="GET"===n.method,t?u?(r.history===!1||M.isString(r.history)||(r.history=i),r.source===!1||M.isString(r.source)||(r.source=a)):(M.isString(r.history)||(r.history=!1),M.isString(r.source)||(r.source="keep")):u?(r.history!==!1&&(r.history=i),r.source!==!1&&(r.source=a)):(r.history=!1,r.source="keep"),F(r)&&n.title&&(r.title=n.title),p(e,n.text,r)},F=function(t){return!(t.title===!1||M.isString(t.title)||t.history===!1&&t.title!==!0)},p=function(t,n,r){return up.log.group("Extracting %s from %d bytes of HTML",t,null!=n?n.length:void 0,function(){return r=M.options(r,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),r.saveScroll!==!1&&up.layout.saveScroll(),M.rejectOnError(function(){var o,i,u,s,a,l,p;for("function"==typeof r.provideTarget&&r.provideTarget(),s=k(n),o=e(t,s,r),F(r)&&(a=s.title())&&(r.title=a),R(r),p=[],i=0,u=o.length;u>i;i++)l=o[i],up.log.group("Swapping fragment %s",l.selector,function(){var t,e;return t=M.merge(r,M.only(l,"origin","reveal")),m(l.$new),e=D(l.$old,l.$new,l.pseudoClass,l.transition,t),p.push(e)});return Promise.all(p)})})},n=function(t,e){var n;return n=new up.ExtractCascade(t,e),n.bestPreflightSelector()},e=function(t,e,n){var r;return n=M.merge(n,{response:e}),r=new up.ExtractCascade(t,n),r.bestMatchingSteps()},m=function(t){var e,n,r,o,u;for(n=[],i(t.get(0),n),u=[],r=0,o=n.length;o>r;r++)e=n[r],u.push(e());return u},i=function(t,e){var n,r,o,u,s,a;if("NOSCRIPT"===t.tagName)return r=document.createElement("noscript"),r.textContent=t.innerHTML,e.push(function(){return t.parentNode.replaceChild(r,t)});if("SCRIPT"===t.tagName)return e.push(function(){return t.parentNode.removeChild(t)});for(s=t.children,a=[],o=0,u=s.length;u>o;o++)n=s[o],a.push(i(n,e));return a},k=function(e){var n;return n=M.createElementFromHtml(e),{title:function(){var t;return null!=(t=n.querySelector("head title"))?t.textContent:void 0},first:function(e){var r;return(r=t.find(e,n)[0])?t(r):void 0}}},R=function(t){return t=M.options(t,{historyMethod:"push"}),t.history&&up.history[t.historyMethod](t.history),M.isString(t.title)?document.title=t.title:void 0},D=function(t,e,n,r,o){var i,a,p,h,f;return r||(r="none"),"keep"===o.source&&(o=M.merge(o,{source:A(t)})),P(e,o.source),n?(a=e.contents().wrapAll('<div class="up-insertion"></div>').parent(),"before"===n?t.prepend(a):t.append(a),v(a.children(),o),f=up.layout.revealOrRestoreScroll(a,o),f=f.then(function(){return up.animate(a,r,o)}),f=f.then(function(){return M.unwrapElement(a)})):(p=c(t,e,o))?(l(p),Promise.resolve()):(o.keepPlans=O(t,e,o),i=t.parent(),h=M.merge(o,{afterInsert:function(){return up.hello(e,o),b(t),u(t,{log:!1})},beforeDetach:function(){return up.syntax.clean(t)},afterDetach:function(){return t.remove(),s(t,{$parent:i,log:!1})
3
+ }}),up.morph(t,e,r,h))},O=function(e,n,r){var o,i,u,s,a,l,p,h;if(s=[],r.keep)for(h=e.find("[up-keep]"),u=0,l=h.length;l>u;u++)a=h[u],o=t(a),(p=c(o,n,M.merge(r,{descendantsOnly:!0})))&&(i=o.clone(),M.detachWith(o,i),p.$newElement.replaceWith(o),s.push(p));return s},c=function(t,e,n){var r,o,i,u,s;return n.keep&&(r=t,(u=M.castedAttr(r,"up-keep"))&&(M.isString(u)||(u="&"),u=x(u,r),o=n.descendantsOnly?e.find(u):M.selectInSubtree(e,u),o=o.first(),o.length&&o.is("[up-keep]")&&(s={$element:r,$newElement:o,newData:up.syntax.data(o)},i=M.merge(s,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",i))))?s:void 0},v=function(e,n){var r,o,i,u,s,p;for(r=t(e),n=M.options(n,{keepPlans:[]}),i=[],p=n.keepPlans,o=0,u=p.length;u>o;o++)s=p[o],l(s),i.push(s.$element);return up.syntax.compile(r,{skip:i}),a(r,n),r},a=function(t,e){return up.emit("up:fragment:inserted",{$element:t,message:["Inserted fragment %o",t.get(0)],origin:e.origin})},l=function(t){var e;return e=M.merge(t,{message:["Kept fragment %o",t.$element.get(0)]}),up.emit("up:fragment:kept",e)},u=function(t,e){var n;return $(t,e)&&(n=["Destroying fragment %o",t.get(0)]),up.emit("up:fragment:destroy",{$element:t,message:n})},s=function(t,e){var n,r;return $(t,e)&&(r=["Destroyed fragment %o",t.get(0)]),n=e.$parent||up.fail("Missing { $parent } option"),up.emit("up:fragment:destroyed",{$target:n,$parent:n,$element:t,message:r})},g=function(t){var e;return e=".up-destroying",0===t.closest(e).length},h=function(t,e){var n;return e=M.options(e,{layer:"auto"}),n=x(t,e.origin),"auto"===e.layer?d(n,e.origin):f(n,e.layer)},d=function(t,e){var n,r,o,i,u,s;for(i=["popup","modal","page"],n=void 0,M.isPresent(e)&&(s=y(e),M.remove(i,s),i.unshift(s)),r=0,u=i.length;u>r&&(o=i[r],!(n=f(t,o)));r++);return n},f=function(e,n){var r,o,i,u,s,a;for(o=t(e),i=void 0,s=0,a=o.length;a>s;s++)if(u=o[s],r=t(u),g(r)&&w(r,n)){i=r;break}return i},y=function(e){var n;return n=t(e),up.popup.contains(n)?"popup":up.modal.contains(n)?"modal":"page"},w=function(t,e){return y(t)===e},o=function(e,n){var r,o,i;return r=t(e),n=M.options(n,{animation:!1}),0===r.length?Promise.resolve():(b(r),u(r,n),R(n),o=function(){var t;return t=up.motion.animateOptions(n),up.motion.animate(r,n.animation,t)},i=function(){var t;return t=r.parent(),up.syntax.clean(r),r.remove(),s(r,{$parent:t})},o().then(i))},$=function(t,e){return e.log!==!1&&!t.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")},b=function(t){return t.addClass("up-destroying")},S=function(t,e){var n;return e=M.options(e,{cache:!1}),n=e.url||A(t),E(t,n,e)},up.on("up:app:boot",function(){var e;return e=t(document.body),P(e,up.browser.url()),v(e)}),up.on("up:framework:reset",C),{replace:E,reload:S,destroy:o,extract:p,first:h,source:A,resolveSelector:x,hello:v,config:r}}(jQuery),up.replace=up.dom.replace,up.extract=up.dom.extract,up.reload=up.dom.reload,up.destroy=up.dom.destroy,up.first=up.dom.first,up.hello=up.dom.hello,up.renamedModule("flow","dom")}.call(this),function(){var t=[].slice;up.motion=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F,$;return F=up.util,b={},a={},w={},l={},y=new up.MotionTracker("motion"),s=F.config({duration:300,delay:0,easing:"ease",enabled:!0}),S=function(){return y.reset(),b=F.copy(a),w=F.copy(l),s.reset()},d=function(){return s.enabled},r=function(t,n,r){var o,u,s,a;return o=e(t),r=i(r),u=p(n),a=$(o,n,r),a?(s=function(){return u(o,r)},y.claim(o,s,r)):E(o,n)},$=function(t,e,n){return n=i(n),d()&&!m(e)&&n.duration>0&&!v(t)},v=function(t){return t.is("body")},E=function(t,e){return F.isOptions(e)&&F.writeInlineStyle(t,e),Promise.resolve()},n=0,o=function(t,e,n){var r;return n=F.merge(n,{finishEvent:y.finishEvent}),r=new up.CssTransition(t,e,n),r.start()},i=function(){var e,n,r,o,i;return n=1<=arguments.length?t.call(arguments,0):[],i=n.shift()||{},e=F.isJQuery(n[0])?n.shift():F.nullJQuery(),o=F.isObject(n[0])?n.shift():{},r={},r.easing=F.option(i.easing,F.presentAttr(e,"up-easing"),o.easing,s.easing),r.duration=Number(F.option(i.duration,F.presentAttr(e,"up-duration"),o.duration,s.duration)),r.delay=Number(F.option(i.delay,F.presentAttr(e,"up-delay"),o.delay,s.delay)),r.trackMotion=i.trackMotion,r},c=function(t){return b[t]||up.fail("Unknown animation %o",t)},f=function(t){return y.finish(t)},g=function(t,n,r,o){var u,s,a,l,p,c,f,d,m,v,g;return o=F.options(o),o=F.assign(o,i(o)),a=e(t),s=e(n),u=a.add(s),v=h(r),g=$(a,v,o),o.afterInsert||(o.afterInsert=F.noop),o.beforeDetach||(o.beforeDetach=F.noop),o.afterDetach||(o.afterDetach=F.noop),f=function(){var t;return t=F.merge(o,{duration:0}),up.layout.revealOrRestoreScroll(s,t)},g?y.isActive(a)&&o.trackMotion===!1?v(a,s,o):(up.puts("Morphing %o to %o with transition %o",a.get(0),s.get(0),r),l=up.layout.viewportOf(a),d=l.scrollTop(),p=up.layout.absolutize(a,{afterMeasure:function(){return s.insertBefore(a),o.afterInsert()}}),m=function(){var t;return t=f(),t=t.then(function(){var t;return t=l.scrollTop(),p.moveTop(t-d),v(a,s,o)}),t=t.then(function(){return o.beforeDetach(),a.detach(),p.$bounds.remove(),o.afterDetach()})},y.claim(u,m,o)):(o.beforeDetach(),x(a,s),o.afterInsert(),o.afterDetach(),c=f())},h=function(t){var e;return m(t)?void 0:F.isFunction(t)?t:F.isArray(t)?u.apply(null,t):F.isString(t)?t.indexOf("/")>=0?u.apply(null,t.split("/")):(e=w[t])?h(e):void 0:up.fail("Unknown transition %o",t)},u=function(t,e){var n,r;return m(t)&&m(t)?void 0:(r=p(t)||F.asyncNoop,n=p(e)||F.asyncNoop,function(t,e,o){return Promise.all([r(t,o),n(e,o)])})},p=function(t){return m(t)?void 0:F.isFunction(t)?t:F.isString(t)?c(t):F.isOptions(t)?function(e,n){return o(e,t,n)}:up.fail("Unknown animation %o",t)},x=function(t,e){return t.replaceWith(e)},T=function(t,e){return w[t]=h(e)},k=function(t,e){return b[t]=p(e)},C=function(){return a=F.copy(b),l=F.copy(w)},m=function(t){return!t||"none"===t||F.isBlank(t)},k("fade-in",function(t,e){return F.writeInlineStyle(t,{opacity:0}),o(t,{opacity:1},e)}),k("fade-out",function(t,e){return F.writeInlineStyle(t,{opacity:1}),o(t,{opacity:0},e)}),P=function(t,e){return{transform:"translate("+t+"px, "+e+"px)"}},k("move-to-top",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=n.top+n.height,o(t,P(0,-r),e)}),k("move-from-top",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=n.top+n.height,F.writeInlineStyle(t,P(0,-r)),o(t,P(0,0),e)}),k("move-to-bottom",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=F.clientSize().height-n.top,o(t,P(0,r),e)}),k("move-from-bottom",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=F.clientSize().height-n.top,F.writeInlineStyle(t,P(0,r)),o(t,P(0,0),e)}),k("move-to-left",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=n.left+n.width,o(t,P(-r,0),e)}),k("move-from-left",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=n.left+n.width,F.writeInlineStyle(t,P(-r,0)),o(t,P(0,0),e)}),k("move-to-right",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=F.clientSize().width-n.left,o(t,P(r,0),e)}),k("move-from-right",function(t,e){var n,r;return F.writeInlineStyle(t,P(0,0)),n=F.measure(t),r=F.clientSize().width-n.left,F.writeInlineStyle(t,P(r,0)),o(t,P(0,0),e)}),k("roll-down",function(t,e){var n,o,i;return o=t.height(),i=F.writeTemporaryStyle(t,{height:"0px",overflow:"hidden"}),n=r(t,{height:o+"px"},e),n.then(i),n}),T("move-left",["move-to-left","move-from-right"]),T("move-right",["move-to-right","move-from-left"]),T("move-up",["move-to-top","move-from-bottom"]),T("move-down",["move-to-bottom","move-from-top"]),T("cross-fade",["fade-out","fade-in"]),up.on("up:framework:booted",C),up.on("up:framework:reset",S),{morph:g,animate:r,animateOptions:i,willAnimate:$,finish:f,finishCount:function(){return y.finishCount},transition:T,animation:k,config:s,isEnabled:d,isNone:m}}(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 t=[].slice;up.proxy=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F,$,A,D,O,M,R,U,j;return U=up.util,n=void 0,S=void 0,D=void 0,b=void 0,O=void 0,C=[],l=U.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],safeMethods:["GET","OPTIONS","HEAD"]}),i=new up.Cache({size:function(){return l.cacheSize},expiry:function(){return l.cacheExpiry},key:function(t){return up.Request.wrap(t).cacheKey()},cachable:function(t){return up.Request.wrap(t).isCachable()}}),p=function(t){var e,n,r,o,u,s,a;for(t=up.Request.wrap(t),n=[t],"html"!==t.target&&(s=t.copy({target:"html"}),n.push(s),"body"!==t.target&&(u=t.copy({target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(e=n[r],a=i.get(e))return a},u=function(){return clearTimeout(S),S=null},s=function(){return clearTimeout(D),D=null},F=function(){return n=null,u(),s(),b=0,l.reset(),i.clear(),O=!1,C=[]},F(),y=function(){var e,n,r,o,i;return e=1<=arguments.length?t.call(arguments,0):[],r=U.extractOptions(e),U.isGiven(e[0])&&(r.url=e[0]),n=r.cache===!1,i=up.Request.wrap(r),i.isSafe()||a(),!n&&(o=p(i))?up.puts("Re-using cached response for %s %s",i.method,i.url):(o=v(i),A(i,o),o["catch"](function(){return P(i)})),r.preload||(g(),U.always(o,m)),o},r=function(){var e;return e=1<=arguments.length?t.call(arguments,0):[],up.log.warn("up.ajax() has been deprecated. Use up.request() instead."),new Promise(function(t,n){var r;return r=function(e){return t(e.text)},y.apply(null,e).then(r,n)})},h=function(){return 0===b},c=function(){return b>0},g=function(){var t;return b+=1,D?void 0:(t=function(){return c()?(up.emit("up:proxy:slow",{message:"Proxy is slow to respond"}),O=!0):void 0},D=U.setTimer(l.slowDelay,t))},m=function(){return b-=1,h()&&(s(),O)?(up.emit("up:proxy:recover",{message:"Proxy has recovered from slow response"}),O=!1):void 0},v=function(t){return b<l.maxRequests?d(t):E(t)},E=function(t){var e;return up.puts("Queuing request for %s %s",t.method,t.url),e=function(){return d(t)},e=U.previewable(e),C.push(e),e.promise},d=function(t){var e,n;return e={request:t,message:["Loading %s %s",t.method,t.url]},up.bus.nobodyPrevents("up:proxy:load",e)?(n=t.send(),U.always(n,$),U.always(n,w),n):(U.microtask(w),Promise.reject(new Error("Event up:proxy:load was prevented")))},x=function(t){var e,n;return n=t.request,t.url&&n.url!==t.url?(e=n.copy({method:t.method,url:t.url}),up.proxy.alias(n,e)):void 0},$=function(t){return t.isFatalError()?up.emit("up:proxy:fatal",{message:"Fatal error during request",request:t.request,response:t}):(t.isError()||x(t),up.emit("up:proxy:loaded",{message:["Server responded with HTTP %d (%d bytes)",t.status,t.text.length],request:t.request,response:t}))},w=function(){var t;return void("function"==typeof(t=C.shift())&&t())},o=i.alias,A=i.set,P=i.remove,a=i.clear,up.bus.renamedEvent("up:proxy:received","up:proxy:loaded"),T=function(t){var e,r;return r=parseInt(U.presentAttr(t,"up-delay"))||l.preloadDelay,t.is(n)?void 0:(n=t,u(),e=function(){return U.muteRejection(k(t)),n=null},M(e,r))},M=function(t,e){return S=setTimeout(t,e)},R=function(t){return t.is(n)?(n=void 0,u()):void 0},k=function(t){var n;return n=e(t),up.link.isSafe(n)?up.log.group("Preloading link %o",n.get(0),function(){var t;return t=up.link.followVariantForLink(n),t.preloadLink(n)}):Promise.reject(new Error("Won't preload unsafe link"))},f=function(t){return U.contains(l.safeMethods,t)},j=function(t,e,n){return U.contains(l.wrapMethods,t)&&(e=U.appendRequestData(e,up.protocol.config.methodParam,t,n),t="POST"),[t,e]},up.compiler("a[up-preload], [up-href][up-preload]",function(t){return up.link.isSafe(t)?(t.on("mouseenter touchstart",function(e){return up.link.shouldProcessEvent(e,t)?T(t):void 0}),t.on("mouseleave",function(){return R(t)})):void 0}),up.on("up:framework:reset",F),{preload:k,ajax:r,request:y,get:p,alias:o,clear:a,remove:P,isIdle:h,isBusy:c,isSafeMethod:f,wrapMethod:j,config:l}}(jQuery),up.ajax=up.proxy.ajax,up.request=up.proxy.request}.call(this),function(){up.link=function(t){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m;return d=up.util,m=function(t,e){var n;return e=d.options(e),n=d.option(e.target,"body"),up.replace(n,t,e)},u=function(e,n){var r,o;return r=t(e),o=a(r),o.followLink(r,n)},o=function(e,n){var r,o,i;return r=t(e),n=d.options(n),i=d.option(r.attr("up-href"),r.attr("href")),o=d.option(n.target,r.attr("up-target")),n.failTarget=d.option(n.failTarget,r.attr("up-fail-target")),n.fallback=d.option(n.fallback,r.attr("up-fallback")),n.transition=d.option(n.transition,d.castedAttr(r,"up-transition"),"none"),n.failTransition=d.option(n.failTransition,d.castedAttr(r,"up-fail-transition"),"none"),n.history=d.option(n.history,d.castedAttr(r,"up-history")),n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!0),n.failReveal=d.option(n.failReveal,d.castedAttr(r,"up-fail-reveal"),!0),n.cache=d.option(n.cache,d.castedAttr(r,"up-cache")),n.restoreScroll=d.option(n.restoreScroll,d.castedAttr(r,"up-restore-scroll")),n.method=s(r,n),n.origin=d.option(n.origin,r),n.layer=d.option(n.layer,r.attr("up-layer"),"auto"),n.failLayer=d.option(n.failLayer,r.attr("up-fail-layer"),"auto"),n.confirm=d.option(n.confirm,r.attr("up-confirm")),n=d.merge(n,up.motion.animateOptions(n,r)),up.browser.whenConfirmed(n).then(function(){return up.replace(o,i,n)})},i=function(t,e){return e=d.options(e),e.preload=!0,o(t,e)},s=function(e,n){var r;return r=t(e),n=d.options(n),d.option(n.method,r.attr("up-method"),r.attr("data-method"),"get").toUpperCase()},r=function(){},l=[],n=function(t,e){var n;return n=new up.FollowVariant(t,e),l.push(n),n.registerEvents(),n},p=function(t){return!!a(t,{"default":!1})},a=function(n,r){var o,i;return r=d.options(r),o=t(n),i=d.detect(l,function(t){return t.matchesLink(o)}),r["default"]!==!1&&(i||(i=e)),i},h=function(e){var n;return n=t(e),p(n)?void 0:n.attr("up-follow","")},f=function(e,n){var r,o;return o=e.target,d.isUnmodifiedMouseEvent(e)?o===n.get(0)?!0:(r=t(o).closest("a, [up-href], "+up.form.fieldSelector()).not(n),r.length?!1:!0):!1},c=function(e,n){var r,o;return r=t(e),o=s(r,n),up.proxy.isSafeMethod(o)},e=n("[up-target], [up-follow]",{follow:function(t,e){return o(t,e)},preload:function(t,e){return i(t,e)}}),up.macro("[up-dash]",function(t){var e,n;return n=d.castedAttr(t,"up-dash"),t.removeAttr("up-dash"),e={"up-preload":"","up-instant":""},n===!0?h(t):e["up-target"]=n,d.setMissingAttrs(t,e)}),up.macro("[up-expand]",function(e){var n,r,o,i,u,s,a,l,p,c;if(n=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(n=n.filter(p)),u=n.get(0)){for(c=/^up-/,a={},a["up-href"]=t(u).attr("href"),l=u.attributes,o=0,i=l.length;i>o;o++)r=l[o],s=r.name,s.match(c)&&(a[s]=r.value);return d.setMissingAttrs(e,a),e.removeAttr("up-expand"),h(e)}}),{visit:m,follow:u,makeFollowable:h,isSafe:c,isFollowable:p,shouldProcessEvent:f,followMethod:s,addFollowVariant:n,followVariantForLink:a,allowDefault:r}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var t=[].slice;up.form=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m;return d=up.util,r=d.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),a=function(){return r.reset()},o=function(){return r.fields.join(",")},p=function(t,n){var r,o,i;return r=e(t).closest("form"),n=d.options(n),o=d.option(n.target,r.attr("up-target"),"body"),i=d.option(n.url,r.attr("action"),up.browser.url()),n.failTarget=d.option(n.failTarget,r.attr("up-fail-target"))||d.selectorForElement(r),n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!0),n.failReveal=d.option(n.failReveal,d.castedAttr(r,"up-fail-reveal"),!0),n.fallback=d.option(n.fallback,r.attr("up-fallback")),n.history=d.option(n.history,d.castedAttr(r,"up-history"),!0),n.transition=d.option(n.transition,d.castedAttr(r,"up-transition"),"none"),n.failTransition=d.option(n.failTransition,d.castedAttr(r,"up-fail-transition"),"none"),n.method=d.option(n.method,r.attr("up-method"),r.attr("data-method"),r.attr("method"),"post").toUpperCase(),n.headers=d.option(n.headers,{}),n.cache=d.option(n.cache,d.castedAttr(r,"up-cache")),n.restoreScroll=d.option(n.restoreScroll,d.castedAttr(r,"up-restore-scroll")),n.origin=d.option(n.origin,r),n.layer=d.option(n.layer,r.attr("up-layer"),"auto"),n.failLayer=d.option(n.failLayer,r.attr("up-fail-layer"),"auto"),n.data=d.requestDataFromForm(r),n=d.merge(n,up.motion.animateOptions(n,r)),n.validate&&(n.headers||(n.headers={}),n.transition=!1,n.failTransition=!1,n.headers[up.protocol.config.validateHeader]=n.validate),up.bus.whenEmitted("up:form:submit",{$element:r}).then(function(){var t;return up.feedback.start(r),up.browser.canPushState()||n.history===!1?(t=up.replace(o,i,n),d.always(t,function(){return up.feedback.stop(r)}),t):(r.get(0).submit(),d.unresolvablePromise())})},u=function(){var n,i,u,a,l,p,c,h,f,m;return m=arguments[0],c=2<=arguments.length?t.call(arguments,1):[],h={},a=void 0,1===c.length?a=c[0]:c.length>1&&(h=d.options(c[0]),a=c[1]),n=e(m),u=null,f=d.option(a,d.presentAttr(n,"up-observe")),u=d.isString(f)?new Function("value","$field",f):f||up.fail("up.observe: No change callback given"),l=d.option(d.presentAttr(n,"up-delay"),h.delay,r.observeDelay),l=parseInt(l),i=d.selectInSubtree(n,o()),p=d.map(i,function(t){return s(e(t),l,u)}),d.sequence.apply(d,p)},s=function(t,e,n){var r;return r=new up.FieldObserver(t,{delay:e,callback:n}),r.start(),r.stop},n=function(t,e){return u(t,e,function(t,e){var n;return n=e.closest("form"),up.feedback.start(e,function(){return p(n)})})},l=function(t,e){var n;return n=d.option(e.target,t.attr("up-validate")),d.isBlank(n)&&(n||(n=d.detect(r.validateTargets,function(n){var r;return r=up.dom.resolveSelector(n,e.origin),t.closest(r).length}))),d.isBlank(n)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",t.get(0),r.validateTargets),d.isString(n)||(n=d.selectorForElement(n)),n},m=function(t,n){var r,o,i;return r=e(t),n=d.options(n),n.origin=r,n.target=l(r,n),n.failTarget=n.target,n.reveal=d.option(n.reveal,d.castedAttr(r,"up-reveal"),!1),n.history=!1,n.headers=d.option(n.headers,{}),n.validate=r.attr("name")||"__none__",n=d.merge(n,up.motion.animateOptions(n,r)),o=r.closest("form"),i=up.submit(o,n)},f=function(t){var e,n,r,o;return t.is("input[type=checkbox]")?t.is(":checked")?(r=t.val(),n=":checked"):n=":unchecked":t.is("input[type=radio]")?(e=t.closest("form, body").find("input[type='radio'][name='"+t.attr("name")+"']:checked"),e.length?(n=":checked",r=e.val()):n=":unchecked"):r=t.val(),o=[],d.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),d.isPresent(n)&&o.push(n),o},h=function(t,n){var r,o,i;return r=e(t),n=d.options(n),i=d.option(n.target,r.attr("up-switch")),d.isPresent(i)||up.fail("No switch target given for %o",r.get(0)),o=f(r),e(i).each(function(){return c(e(this),o)})},c=function(t,n){var r,o,u,s;return r=e(t),n||(n=f(i(r))),(o=r.attr("up-hide-for"))?(o=o.split(" "),u=0===d.intersect(n,o).length):(s=(s=r.attr("up-show-for"))?s.split(" "):[":present",":checked"],u=d.intersect(n,s).length>0),r.toggle(u),r.addClass("up-switched")},i=function(t){var n,r;return n=e("[up-switch]"),r=d.detect(n,function(n){var r;return r=e(n).attr("up-switch"),t.is(r)}),r?e(r):d.fail("Could not find [up-switch] field for %o",t.get(0))},up.on("submit","form[up-target]",function(t,e){return up.bus.consumeAction(t),d.muteRejection(p(e))}),up.on("change","[up-validate]",function(t,e){return d.muteRejection(m(e))}),up.compiler("[up-switch]",function(t){return h(t)}),up.on("change","[up-switch]",function(t,e){return h(e)}),up.compiler("[up-show-for]:not(.up-switched), [up-hide-for]:not(.up-switched)",function(t){return c(t)}),up.compiler("[up-observe]",function(t){return u(t)}),up.compiler("[up-autosubmit]",function(t){return n(t)}),up.compiler("[autofocus]",{batch:!0},function(t){return t.last().focus()}),up.on("up:framework:reset",a),{config:r,submit:p,observe:u,validate:m,switchTargets:h,autosubmit:n,fieldSelector:o}}(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(t){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y;return g=up.util,a=g.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),m=g.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,coveredUrl:null,coveredTitle:null}),i=new g.DivertibleChain,d=function(){var t;return null!=(t=m.$popup)&&t.remove(),m.reset(),i.reset(),a.reset()},e=function(){var t,e,n;switch(n={},e=g.measure(m.$popup),g.isFixed(m.$anchor)?(t=m.$anchor.get(0).getBoundingClientRect(),n.position="fixed"):t=g.measure(m.$anchor),m.position){case"bottom-right":n.top=t.top+t.height,n.left=t.left+t.width-e.width;break;case"bottom-left":n.top=t.top+t.height,n.left=t.left;break;case"top-right":n.top=t.top-e.height,n.left=t.left+t.width-e.width;break;case"top-left":n.top=t.top-e.height,n.left=t.left;break;default:up.fail("Unknown position option '%s'",m.position)}return m.$popup.attr("up-position",m.position),g.writeInlineStyle(m.$popup,n)},c=function(){return m.coveredTitle=null,m.coveredUrl=null},p=function(t){var e;return e=g.$createElementFromSelector(".up-popup"),g.$createPlaceholder(t,e),e.hide(),e.appendTo(document.body),m.$popup=e},y=function(){return m.$popup.show()},h=function(){return"opened"===m.phase||"opening"===m.phase},n=function(t,e){return i.asap(s,function(){return r(t,e)})},r=function(n,r){var o,i,u,s,l,c,h;return o=t(n),o.length||up.fail("Cannot attach popup to non-existing element %o",n),r=g.options(r),h=g.option(g.pluckKey(r,"url"),o.attr("up-href"),o.attr("href")),s=g.option(g.pluckKey(r,"html")),h||s||up.fail("up.popup.attach() requires either an { url } or { html } option"),c=g.option(g.pluckKey(r,"target"),o.attr("up-popup"))||up.fail("No target selector given for [up-popup]"),l=g.option(r.position,o.attr("up-position"),a.position),r.animation=g.option(r.animation,o.attr("up-animation"),a.openAnimation),r.sticky=g.option(r.sticky,g.castedAttr(o,"up-sticky"),a.sticky),r.history=up.browser.canPushState()?g.option(r.history,g.castedAttr(o,"up-history"),a.history):!1,r.confirm=g.option(r.confirm,o.attr("up-confirm")),r.method=up.link.followMethod(o,r),r.layer="popup",r.failTarget=g.option(r.failTarget,o.attr("up-fail-target")),r.failLayer=g.option(r.failLayer,o.attr("up-fail-layer"),"auto"),r.provideTarget=function(){return p(c)},i=up.motion.animateOptions(r,o,{duration:a.openDuration,easing:a.openEasing}),u=g.merge(r,{animation:!1}),r.preload&&h?up.replace(c,h,r):up.browser.whenConfirmed(r).then(function(){return up.bus.whenEmitted("up:popup:open",{url:h,message:"Opening popup"}).then(function(){var t;return m.phase="opening",m.$anchor=o,m.position=l,r.history&&(m.coveredUrl=up.browser.url(),m.coveredTitle=document.title),m.sticky=r.sticky,t=s?up.extract(c,s,u):up.replace(c,h,u),t=t.then(function(){return e(),y(),up.animate(m.$popup,r.animation,i)}),t=t.then(function(){return m.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},u=function(t){return i.asap(function(){return s(t)})},s=function(t){var e;return h()?(t=g.options(t,{animation:a.closeAnimation,history:m.coveredUrl,title:m.coveredTitle}),e=up.motion.animateOptions(t,{duration:a.closeDuration,easing:a.closeEasing}),g.assign(t,e),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:m.$popup}).then(function(){return m.phase="closing",m.url=null,m.coveredUrl=null,m.coveredTitle=null,up.destroy(m.$popup,t).then(function(){return m.phase="closed",m.$popup=null,m.$anchor=null,m.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):Promise.resolve()},f=function(t,e){return e=g.options(e),e.preload=!0,r(t,e)},v=function(t,e){return g.hasClass(t,"up-current")?u():n(t,e)},o=function(){return m.sticky?void 0:(c(),u())},l=function(e){var n;return n=t(e),n.closest(".up-popup").length>0},up.link.addFollowVariant("[up-popup]",{follow:function(t,e){return v(t,e)},preload:function(t,e){return f(t,e)}}),up.on("click up:action:consumed",function(e){var n;return n=t(e.target),n.closest(".up-popup, [up-popup]").length?void 0:u()}),up.on("up:fragment:inserted",function(t,e){var n;if(l(e)){if(n=e.attr("up-source"))return m.url=n}else if(t.origin&&l(t.origin))return o()}),up.bus.onEscape(u),up.on("click",".up-popup [up-close]",function(t){return u(),up.bus.consumeAction(t)}),up.on("up:history:restore",u),up.on("up:framework:reset",d),{attach:n,close:u,url:function(){return m.url},coveredUrl:function(){return m.coveredUrl},config:a,contains:l,isOpen:h}}(jQuery)}.call(this),function(){up.modal=function(t){var e,n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k,T,S,E,C,x,P,F;return C=up.util,u=C.config({maxWidth: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,flavor:"default",position:null,template:function(t){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>'+t.closeLabel+"</div>\n </div>\n </div>\n</div>"}}),d=C.openConfig({"default":{}}),S=C.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,position:null,unshifters:[]}}),r=new C.DivertibleChain,k=function(){var t;return null!=(t=S.$modal)&&t.remove(),x(),S.reset(),r.reset(),u.reset(),d.reset()},E=function(){var t;return t=h("template"),C.evalOption(t,{closeLabel:h("closeLabel")})},l=function(){return S.coveredTitle=null,S.coveredUrl=null},a=function(e,n){var r,o,i,u;return i=t(E()),i.attr("up-flavor",S.flavor),C.isPresent(S.position)&&i.attr("up-position",S.position),o=i.find(".up-modal-dialog"),u=C.only(n,"width","maxWidth","height"),C.writeInlineStyle(o,u),S.closable||i.find(".up-modal-close").remove(),r=i.find(".up-modal-content"),C.$createPlaceholder(e,r),i.hide(),i.appendTo(document.body),S.$modal=i},P=function(){return S.$modal.show()},T=function(){var e,n,r,o,i;return C.documentHasVerticalScrollbar()?(e=t("body"),o=C.scrollbarWidth(),n=C.readComputedStyleNumber(e,"paddingRight"),r=o+n,i=C.writeTemporaryStyle(e,{paddingRight:r,overflowY:"hidden"}),S.unshifters.push(i),up.layout.anchoredRight().each(function(){var e,n,r,i;return e=t(this),n=C.readComputedStyleNumber(e,"right"),r=o+n,i=C.writeTemporaryStyle(e,{right:r}),S.unshifters.push(i)})):void 0},x=function(){var t,e;for(t=[];e=S.unshifters.pop();)t.push(e());return t},v=function(){return"opened"===S.phase||"opening"===S.phase},m=function(e,n){return n=C.options(n),n.$link=t(e),y(n)},w=function(t,e){return e=C.options(e),e.$link=t,e.preload=!0,b(e)},F=function(t,e){return e=C.options(e),e.url=t,y(e)},p=function(t,e,n){return n=C.options(n),n.html=e,n.history=C.option(n.history,!1),n.target=t,y(n)},y=function(t){return r.asap(i,function(){return b(t)})},b=function(t){var n,r,o,i,s;return t=C.options(t),n=C.option(C.pluckKey(t,"$link"),C.nullJQuery()),s=C.option(C.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=C.option(C.pluckKey(t,"html")),i=C.option(C.pluckKey(t,"target"),n.attr("up-modal"),"body"),t.flavor=C.option(t.flavor,n.attr("up-flavor"),u.flavor),t.position=C.option(t.position,n.attr("up-position"),h("position",t.flavor)),t.position=C.evalOption(t.position,{$link:n}),t.width=C.option(t.width,n.attr("up-width"),h("width",t.flavor)),t.maxWidth=C.option(t.maxWidth,n.attr("up-max-width"),h("maxWidth",t.flavor)),t.height=C.option(t.height,n.attr("up-height"),h("height")),t.animation=C.option(t.animation,n.attr("up-animation"),h("openAnimation",t.flavor)),t.animation=C.evalOption(t.animation,{position:t.position}),t.backdropAnimation=C.option(t.backdropAnimation,n.attr("up-backdrop-animation"),h("backdropOpenAnimation",t.flavor)),t.backdropAnimation=C.evalOption(t.backdropAnimation,{position:t.position}),t.sticky=C.option(t.sticky,C.castedAttr(n,"up-sticky"),h("sticky",t.flavor)),t.closable=C.option(t.closable,C.castedAttr(n,"up-closable"),h("closable",t.flavor)),t.confirm=C.option(t.confirm,n.attr("up-confirm")),t.method=up.link.followMethod(n,t),t.layer="modal",t.failTarget=C.option(t.failTarget,n.attr("up-fail-target")),t.failLayer=C.option(t.failLayer,n.attr("up-fail-layer"),"auto"),r=up.motion.animateOptions(t,n,{duration:h("openDuration",t.flavor),easing:h("openEasing",t.flavor)}),t.history=C.option(t.history,C.castedAttr(n,"up-history"),h("history",t.flavor)),up.browser.canPushState()||(t.history=!1),t.provideTarget=function(){return a(i,t)},t.preload?up.replace(i,s,t):up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:modal:open",{url:s,message:"Opening modal"}).then(function(){var n,u;return S.phase="opening",S.flavor=t.flavor,S.sticky=t.sticky,S.closable=t.closable,S.position=t.position,t.history&&(S.coveredUrl=up.browser.url(),S.coveredTitle=document.title),n=C.merge(t,{animation:!1}),u=o?up.extract(i,o,n):up.replace(i,s,n),u=u.then(function(){return T(),P(),e(t.animation,t.backdropAnimation,r)}),u=u.then(function(){return S.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},o=function(t){return r.asap(function(){return i(t)})},i=function(t){var n,r,o,i;return t=C.options(t),v()?(i=C.option(t.animation,h("closeAnimation")),i=C.evalOption(i,{position:S.position}),r=C.option(t.backdropAnimation,h("backdropCloseAnimation")),r=C.evalOption(r,{position:S.position}),n=up.motion.animateOptions(t,{duration:h("closeDuration"),easing:h("closeEasing")}),o=C.options(C.except(t,"animation","duration","easing","delay"),{history:S.coveredUrl,title:S.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:S.$modal,message:"Closing modal"}).then(function(){var t;return S.phase="closing",S.url=null,S.coveredUrl=null,S.coveredTitle=null,t=e(i,r,n),t=t.then(function(){return up.destroy(S.$modal,o)}),t=t.then(function(){return x(),S.phase="closed",S.$modal=null,S.flavor=null,S.sticky=null,S.closable=null,S.position=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):Promise.resolve()},g=function(t){return null==t&&(t=!0),S.$modal.toggleClass("up-modal-animating",t)},e=function(t,e,n){var r;return up.motion.isNone(t)?Promise.resolve():(g(),r=Promise.all([up.animate(S.$modal.find(".up-modal-viewport"),t,n),up.animate(S.$modal.find(".up-modal-backdrop"),e,n)]),r=r.then(function(){return g(!1)}))},n=function(){return S.sticky?void 0:(l(),o())},s=function(e){var n;return n=t(e),n.closest(".up-modal").length>0},c=function(t,e){return null==e&&(e={}),up.log.warn("up.modal.flavor() is deprecated. Use the up.modal.flavors property instead."),C.assign(f(t),e)},f=function(t){return d[t]||(d[t]={})},h=function(t,e){var n;return null==e&&(e=S.flavor),e&&(n=f(e)[t]),C.isMissing(n)&&(n=u[t]),n},up.link.addFollowVariant("[up-modal]",{follow:function(t,e){return m(t,e)},preload:function(t,e){return w(t,e)}}),up.on("click",".up-modal",function(e){var n;if(S.closable)return n=t(e.target),n.closest(".up-modal-dialog").length||n.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),o())}),up.on("up:fragment:inserted",function(t,e){var r;if(s(e)){if(r=e.attr("up-source"))return S.url=r}else if(t.origin&&s(t.origin)&&!up.popup.contains(e))return n()}),up.bus.onEscape(function(){return S.closable?o():void 0}),up.on("click",".up-modal [up-close]",function(t){return o(),up.bus.consumeAction(t)}),up.macro("a[up-drawer], [up-href][up-drawer]",function(t){var e;return e=t.attr("up-drawer"),t.attr({"up-modal":e,"up-flavor":"drawer"})}),d.drawer={openAnimation:function(t){switch(t.position){case"left":return"move-from-left";case"right":return"move-from-right"}},closeAnimation:function(t){switch(t.position){case"left":return"move-to-left";case"right":return"move-to-right"}},position:function(t){return C.isPresent(t.$link)?C.horizontalScreenHalf(t.$link):"left"}},up.on("up:history:restore",o),up.on("up:framework:reset",k),{visit:F,follow:m,extract:p,close:o,url:function(){return S.url},coveredUrl:function(){return S.coveredUrl},config:u,flavors:d,contains:s,isOpen:v,flavor:c}}(jQuery)}.call(this),function(){up.tooltip=function(t){var e,n,r,o,i,u,s,a,l,p,c,h;return h=up.util,s=h.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:100,closeDuration:50,openEasing:null,closeEasing:null}),c=h.config({phase:"closed",$anchor:null,$tooltip:null,position:null}),o=new h.DivertibleChain,p=function(){var t;
4
+ return null!=(t=c.$tooltip)&&t.remove(),c.reset(),o.reset(),s.reset()},e=function(){var t,e,n;switch(e={},n=h.measure(c.$tooltip),h.isFixed(c.$anchor)?(t=c.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=h.measure(c.$anchor),c.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'",c.position)}return c.$tooltip.attr("up-position",c.position),h.writeInlineStyle(c.$tooltip,e)},a=function(t){var e;return e=h.$createElementFromSelector(".up-tooltip"),h.isGiven(t.text)?e.text(t.text):e.html(t.html),e.appendTo(document.body),c.$tooltip=e},n=function(t,e){return null==e&&(e={}),o.asap(u,function(){return r(t,e)})},r=function(n,r){var o,i,u,l,p,f;return o=t(n),r=h.options(r),l=h.option(r.html,o.attr("up-tooltip-html")),f=h.option(r.text,o.attr("up-tooltip")),p=h.option(r.position,o.attr("up-position"),s.position),u=h.option(r.animation,h.castedAttr(o,"up-animation"),s.openAnimation),i=up.motion.animateOptions(r,o,{duration:s.openDuration,easing:s.openEasing}),c.phase="opening",c.$anchor=o,a({text:f,html:l}),c.position=p,e(),up.animate(c.$tooltip,u,i).then(function(){return c.phase="opened"})},i=function(t){return o.asap(function(){return u(t)})},u=function(t){var e;return l()?(t=h.options(t,{animation:s.closeAnimation}),e=up.motion.animateOptions(t,{duration:s.closeDuration,easing:s.closeEasing}),h.assign(t,e),c.phase="closing",up.destroy(c.$tooltip,t).then(function(){return c.phase="closed",c.$tooltip=null,c.$anchor=null})):Promise.resolve()},l=function(){return"opening"===c.phase||"opened"===c.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(t){return t.on("mouseenter",function(){return n(t)}),t.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(){return i()}),up.on("up:framework:reset",p),up.bus.onEscape(function(){return i()}),{config:s,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){var t=[].slice;up.feedback=function(e){var n,r,o,i,u,s,a,l,p,c,h,f,d,m,v,g,y,b,w,k;return g=up.util,s=g.config({currentClasses:["up-current"],navs:["[up-nav]"]}),h=void 0,a=void 0,f=function(){return s.reset(),h=void 0,a=void 0},n="up-active",o="a, [up-href]",p=function(){return s.navs.join(",")},c=function(t){return g.isPresent(t)?g.normalizeUrl(t,{stripTrailingSlash:!0}):void 0},r="up-normalized-urls",d=function(t){var e;return(e=t.data(r))||(e=u(t),t.data(r,e)),e},u=function(t){var e,n,r,o,i,u,s,a,l,p;if(l=[],up.link.isSafe(t))for(u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(e=u[n],p=g.presentAttr(t,e))for(s=p.split(/\s+/),r=0,i=s.length;i>r;r++)a=s[r],"#"!==a&&(a=c(a),l.push(a));return l},i=function(){var t;return t=[up.browser.url(),up.modal.url(),up.modal.coveredUrl(),up.popup.url(),up.popup.coveredUrl()],new up.UrlSet(t,{normalizeUrl:c})},b=function(){return h=a,a=i(),a.isEqual(h)?void 0:y(e("body"))},y=function(t){var e,n;return e=g.selectInSubtree(t,p()),n=g.selectInSubtree(e,o),w(n)},k=function(t){var e;return t.closest(p()).length?(e=g.selectInSubtree(t,o),w(e)):y(t)},w=function(t){return a||(a=i()),g.each(t,function(t){var n,r,o,i,u,l,p,c,h,f,m,v;if(n=e(t),v=d(n),r=t.classList,a.matchesAny(v)){for(c=s.currentClasses,f=[],o=0,l=c.length;l>o;o++)u=c[o],f.push(r.add(u));return f}for(h=s.currentClasses,m=[],i=0,p=h.length;p>i;i++)u=h[i],m.push(r.remove(u));return m})},l=function(t){var n;return n=e(t),n.is(o)&&(n=g.presence(n.parent(o))||n),n},m=function(){var e,r,o,i,u,s;return o=1<=arguments.length?t.call(arguments,0):[],i=o.shift(),r=o.pop(),u=g.options(o[0]),e=l(i),u.preload||e.addClass(n),r?(s=r(),g.isPromise(s)?g.always(s,function(){return v(e)}):up.warn("Expected block to return a promise, but got %o",s),s):void 0},v=function(t){var e;return e=l(t),e.removeClass(n)},up.on("up:history:pushed up:history:replaced up:history:restored up:modal:opened up:modal:closed up:popup:opened up:popup:closed",function(){return b()}),up.on("up:fragment:inserted",function(t,e){return k(e)}),up.on("up:framework:reset",f),{config:s,start:m,stop:v}}(jQuery),up.renamedModule("navigation","feedback")}.call(this),function(){up.radio=function(){var t,e,n,r;return r=up.util,t=r.config({hungry:["[up-hungry]"],hungryTransition:null}),n=function(){return t.reset()},e=function(){return t.hungry.join(",")},up.on("up:framework:reset",n),{config:t,hungrySelector:e}}(jQuery)}.call(this),function(){up.rails=function(t){var e,n;return n=up.util,e=function(){return!!t.rails},n.each(["method","confirm"],function(t){var r,o;return r="data-"+t,o="up-"+t,up.macro("["+r+"]",function(t){var i;return e()&&up.link.isFollowable(t)?(i={},i[o]=t.attr(r),n.setMissingAttrs(t,i),t.removeAttr(r)):void 0})})}(jQuery)}.call(this),function(){up.boot()}.call(this);
@@ -1,3 +1,5 @@
1
1
  # Bootstrap uses the class `active` to highlight the current section
2
2
  # of a navigation bar.
3
3
  up.feedback.config.currentClasses.push('active')
4
+
5
+ up.feedback.config.navSelectors.push('.nav')
@@ -168,7 +168,7 @@ up.browser = (($) ->
168
168
  @return {boolean}
169
169
  @internal
170
170
  ###
171
- canCssTransition = ->
171
+ canCssTransition = u.memoize ->
172
172
  'transition' of document.documentElement.style
173
173
 
174
174
  ###**
@@ -178,7 +178,7 @@ up.browser = (($) ->
178
178
  @return {boolean}
179
179
  @internal
180
180
  ###
181
- canInputEvent = ->
181
+ canInputEvent = u.memoize ->
182
182
  'oninput' of document.createElement('input')
183
183
 
184
184
  ###**
@@ -188,7 +188,7 @@ up.browser = (($) ->
188
188
  @return {boolean}
189
189
  @internal
190
190
  ###
191
- canPromise = ->
191
+ canPromise = u.memoize ->
192
192
  !!window.Promise
193
193
 
194
194
  ###**
@@ -199,7 +199,7 @@ up.browser = (($) ->
199
199
  @return {boolean}
200
200
  @experimental
201
201
  ###
202
- canFormData = ->
202
+ canFormData = u.memoize ->
203
203
  !!window.FormData
204
204
 
205
205
  ###**
@@ -210,7 +210,7 @@ up.browser = (($) ->
210
210
  @return {boolean}
211
211
  @internal
212
212
  ###
213
- canDOMParser = ->
213
+ canDOMParser = u.memoize ->
214
214
  !!window.DOMParser
215
215
 
216
216
  ###**
@@ -220,7 +220,7 @@ up.browser = (($) ->
220
220
  @return {boolean}
221
221
  @internal
222
222
  ###
223
- canConsole = ->
223
+ canConsole = u.memoize ->
224
224
  window.console &&
225
225
  console.debug &&
226
226
  console.info &&
@@ -230,7 +230,7 @@ up.browser = (($) ->
230
230
  console.groupCollapsed &&
231
231
  console.groupEnd
232
232
 
233
- isRecentJQuery = ->
233
+ isRecentJQuery = u.memoize ->
234
234
  version = $.fn.jquery
235
235
  parts = version.split('.')
236
236
  major = parseInt(parts[0])
@@ -287,12 +287,11 @@ up.bus = (($) ->
287
287
  ###
288
288
  emit = (eventName, eventProps = {}) ->
289
289
  event = $.Event(eventName, eventProps)
290
- if $target = eventProps.$element
291
- # If a `.$element` option is given, we trigger the event
292
- # on that element instead of the document.
293
- delete eventProps.$element
294
- else
295
- $target = $(document)
290
+ # Three cases:
291
+ # - Event is triggered on document (default)
292
+ # - Event is triggered on { $element }
293
+ # - Event is triggered on { $target }, but should have an { $element } property
294
+ $target = eventProps.$target || eventProps.$element || $(document)
296
295
  logEmission(eventName, eventProps)
297
296
  $target.trigger(event)
298
297
  event
@@ -0,0 +1,127 @@
1
+ u = up.util
2
+
3
+ class up.CssTransition
4
+
5
+ constructor: ($element, lastFrame, options) ->
6
+ @$element = $element
7
+ @element = u.element($element)
8
+ @lastFrameCamel = u.camelCaseKeys(lastFrame)
9
+ @lastFrameKebab = u.kebabCaseKeys(lastFrame)
10
+ @lastFrameKeysKebab = Object.keys(@lastFrameKebab)
11
+ @finishEvent = options.finishEvent
12
+ @duration = options.duration
13
+ @delay = options.delay
14
+ @totalDuration = @delay + @duration
15
+ @easing = options.easing
16
+ @finished = false
17
+
18
+ start: =>
19
+ if @lastFrameKeysKebab.length == 0
20
+ @finished = true
21
+ # If we have nothing to animate, we will never get a transitionEnd event
22
+ # and the returned promise will never resolve.
23
+ return Promise.resolve()
24
+
25
+ @deferred = u.newDeferred()
26
+ @pauseOldTransition()
27
+ @startTime = new Date()
28
+ @startFallbackTimer()
29
+ @listenToFinishEvent()
30
+ @listenToTransitionEnd()
31
+
32
+ @startMotion()
33
+
34
+ return @deferred.promise()
35
+
36
+ listenToFinishEvent: =>
37
+ if @finishEvent
38
+ @$element.on(@finishEvent, @onFinishEvent)
39
+
40
+ stopListenToFinishEvent: =>
41
+ if @finishEvent
42
+ @$element.off(@finishEvent, @onFinishEvent)
43
+
44
+ onFinishEvent: (event) =>
45
+ # don't waste time letting the event bubble up the DOM
46
+ event.stopPropagation()
47
+ @finish()
48
+
49
+ startFallbackTimer: =>
50
+ timingTolerance = 100
51
+ @fallbackTimer = u.setTimer (@totalDuration + timingTolerance), =>
52
+ @finish()
53
+
54
+ stopFallbackTimer: =>
55
+ clearTimeout(@fallbackTimer)
56
+
57
+ listenToTransitionEnd: =>
58
+ @$element.on 'transitionend', @onTransitionEnd
59
+
60
+ stopListenToTransitionEnd: =>
61
+ @$element.off 'transitionend', @onTransitionEnd
62
+
63
+ onTransitionEnd: (event) =>
64
+ # Check if the transitionend event was caused by our own transition,
65
+ # and not by some other transition that happens to affect this element.
66
+ return unless event.target == @element
67
+
68
+ # Check if we are receiving a late transitionEnd event
69
+ # from a previous CSS transition.
70
+ elapsed = new Date() - @startTime
71
+ return unless elapsed > 0.25 * @totalDuration
72
+
73
+ completedPropertyKebab = event.originalEvent.propertyName
74
+ return unless u.contains(@lastFrameKeysKebab, completedPropertyKebab)
75
+
76
+ @finish()
77
+
78
+ finish: =>
79
+ # Make sure that any queued events won't finish multiple times.
80
+ return if @finished
81
+ @finished = true
82
+
83
+ @stopFallbackTimer()
84
+ @stopListenToFinishEvent()
85
+ @stopListenToTransitionEnd()
86
+
87
+ # Cleanly finish our own transition so the old transition
88
+ # (or any other transition set right after that) will be able to take effect.
89
+ u.concludeCssTransition(@element)
90
+
91
+ @resumeOldTransition()
92
+
93
+ @deferred.resolve()
94
+
95
+ pauseOldTransition: =>
96
+ oldTransition = u.readComputedStyle(@element, [
97
+ 'transitionProperty',
98
+ 'transitionDuration',
99
+ 'transitionDelay',
100
+ 'transitionTimingFunction'
101
+ ])
102
+
103
+ if u.hasCssTransition(oldTransition)
104
+ # Freeze the previous transition at its current place, by setting the currently computed,
105
+ # animated CSS properties as inline styles. Transitions on all properties will not be frozen,
106
+ # since that would involve setting every single CSS property as an inline style.
107
+ unless oldTransition.transitionProperty == 'all'
108
+ oldTransitionProperties = oldTransition.transitionProperty.split(/\s*,\s*/)
109
+ oldTransitionFrameKebab = u.readComputedStyle(@element, oldTransitionProperties)
110
+ oldTransitionFrameCamel = u.camelCaseKeys(oldTransitionFrameKebab)
111
+ @setOldTransitionTargetFrame = u.writeTemporaryStyle(@element, oldTransitionFrameCamel)
112
+
113
+ # Stop the existing CSS transition so it does not emit transitionEnd events
114
+ @setOldTransition = u.concludeCssTransition(@element)
115
+
116
+ resumeOldTransition: =>
117
+ @setOldTransitionTargetFrame?()
118
+ @setOldTransition?()
119
+
120
+ startMotion: =>
121
+ u.writeInlineStyle @element,
122
+ transitionProperty: Object.keys(@lastFrameKebab).join(', ')
123
+ transitionDuration: "#{@duration}ms"
124
+ transitionDelay: "#{@delay}ms"
125
+ transitionTimingFunction: @easing
126
+ u.writeInlineStyle(@element, @lastFrameCamel)
127
+
@@ -93,7 +93,7 @@ class up.ExtractPlan
93
93
  addHungrySteps: =>
94
94
  hungrySteps = []
95
95
  if @hungry
96
- $hungries = up.radio.hungrySelector().select()
96
+ $hungries = $(up.radio.hungrySelector())
97
97
  transition = u.option(up.radio.config.hungryTransition, @transition)
98
98
  for hungry in $hungries
99
99
  $hungry = $(hungry)
@@ -3,43 +3,43 @@ u = up.util
3
3
  class up.MotionTracker
4
4
 
5
5
  constructor: (name) ->
6
- @className = "up-#{name}"
6
+ @activeClass = "up-#{name}"
7
7
  @dataKey = "up-#{name}-finished"
8
- @selector = ".#{@className}"
8
+ @selector = ".#{@activeClass}"
9
9
  @finishEvent = "up:#{name}:finish"
10
+ @finishCount = 0
11
+ @clusterCount = 0
10
12
 
11
13
  ###**
12
- Finishes all animations in the given element's ancestors and descendants,
14
+ Finishes all animations in the given element cluster's ancestors and descendants,
13
15
  then calls the animator.
14
16
 
15
- @method claim
16
- @param {jQuery} $element
17
- @param {Function(jQuery): Promise} animator
18
- @return {Promise} A promise that is fulfilled when the new animation ends.
19
- ###
20
- claim: ($element, animator) =>
21
- @finish($element).then =>
22
- @start($element, animator)
23
-
24
- ###**
25
- Calls the given animator to animate the given element.
26
-
27
17
  The animation returned by the animator is tracked so it can be
28
18
  [`finished`](/up.MotionTracker.finish) later.
29
19
 
30
- No animations are finished before starting the new animation.
31
- Use [`claim()`](/up.MotionTracker.claim) for that.
32
-
33
20
  @method claim
34
- @param {jQuery} $element
21
+ @param {jQuery} $cluster
35
22
  @param {Function(jQuery): Promise} animator
23
+ @param {Object} memory.trackMotion = true
24
+ Whether
36
25
  @return {Promise} A promise that is fulfilled when the new animation ends.
37
26
  ###
38
- start: ($element, animator) ->
39
- promise = animator($element)
40
- @markElement($element, promise)
41
- promise.then => @unmarkElement($element)
42
- promise
27
+ claim: (cluster, animator, memory = {}) =>
28
+ $cluster = $(cluster)
29
+ memory.trackMotion = u.option(memory.trackMotion, up.motion.isEnabled())
30
+ if memory.trackMotion is false
31
+ # Since we don't want recursive tracking or finishing, we could run
32
+ # the animator() now. However, since the else branch is async, we push
33
+ # the animator into the microtask queue to be async as well.
34
+ u.microtask(animator)
35
+ else
36
+ memory.trackMotion = false
37
+ @finish($cluster).then =>
38
+ promise = @whileForwardingFinishEvent($cluster, animator)
39
+ promise = promise.then => @unmarkCluster($cluster)
40
+ # Attach the modified promise to the cluster's elements
41
+ @markCluster($cluster, promise)
42
+ promise
43
43
 
44
44
  ###**
45
45
  @method finish
@@ -49,42 +49,53 @@ class up.MotionTracker
49
49
  @return {Promise} A promise that is fulfilled when animations have finished.
50
50
  ###
51
51
  finish: (elements) =>
52
+ @finishCount++
53
+ return Promise.resolve() if @clusterCount == 0 || !up.motion.isEnabled()
52
54
  $elements = @expandFinishRequest(elements)
53
55
  allFinished = u.map($elements, @finishOneElement)
54
56
  Promise.all(allFinished)
55
57
 
56
- expandFinishRequest: (elements) ->
58
+ expandFinishRequest: (elements) =>
57
59
  if elements
58
60
  u.selectInDynasty($(elements), @selector)
59
61
  else
60
62
  $(@selector)
61
63
 
64
+ isActive: (element) =>
65
+ u.hasClass(element, @activeClass)
66
+
62
67
  finishOneElement: (element) =>
63
68
  $element = $(element)
64
69
 
65
70
  # Animating code is expected to listen to this event, fast-forward
66
71
  # the animation and resolve their promise. All built-ins like
67
72
  # `up.animate`, `up.morph`, or `up.scroll` behave that way.
68
- $element.trigger(@finishEvent)
73
+ @emitFinishEvent($element)
69
74
 
70
75
  # If animating code ignores the event, we cannot force the animation to
71
76
  # finish from here. We will wait for the animation to end naturally before
72
77
  # starting the next animation.
73
78
  @whenElementFinished($element)
74
79
 
80
+ emitFinishEvent: ($element, eventAttrs = {}) =>
81
+ eventAttrs = u.merge({ $element: $element, message: false }, eventAttrs)
82
+ up.emit(@finishEvent, eventAttrs)
83
+
75
84
  whenElementFinished: ($element) =>
76
85
  # There are some cases related to element ghosting where an element
77
86
  # has the class, but not the data value. In that case simply return
78
87
  # a resolved promise.
79
88
  $element.data(@dataKey) || Promise.resolve()
80
89
 
81
- markElement: ($element, promise) =>
82
- $element.addClass(@className)
83
- $element.data(@dataKey, promise)
90
+ markCluster: ($cluster, promise) =>
91
+ @clusterCount++
92
+ $cluster.addClass(@activeClass)
93
+ $cluster.data(@dataKey, promise)
84
94
 
85
- unmarkElement: ($element) =>
86
- $element.removeClass(@className)
87
- $element.removeData(@dataKey)
95
+ unmarkCluster: ($cluster) =>
96
+ @clusterCount--
97
+ $cluster.removeClass(@activeClass)
98
+ $cluster.removeData(@dataKey)
88
99
 
89
100
  forwardFinishEvent: ($original, $ghost, duration) =>
90
101
  @start $original, =>
@@ -93,3 +104,22 @@ class up.MotionTracker
93
104
  $original.on @finishEvent, doForward
94
105
  # Our own pseudo-animation finishes when the actual animation on $ghost finishes
95
106
  duration.then => $original.off @finishEvent, doForward
107
+
108
+ whileForwardingFinishEvent: ($elements, fn) =>
109
+ return fn() if $elements.length < 2
110
+ doForward = (event) =>
111
+ unless event.forwarded
112
+ u.each $elements, (element) =>
113
+ $element = $(element)
114
+ if element != event.target && @isActive($element)
115
+ @emitFinishEvent($element, forwarded: true)
116
+
117
+ # Forward the finish event to the $ghost that is actually animating
118
+ $elements.on @finishEvent, doForward
119
+ # Our own pseudo-animation finishes when the actual animation on $ghost finishes
120
+ fn().then => $elements.off @finishEvent, doForward
121
+
122
+ reset: =>
123
+ @finish().then =>
124
+ @finishCount = 0
125
+ @clusterCount = 0
@@ -0,0 +1,27 @@
1
+ u = up.util
2
+
3
+ class up.UrlSet
4
+
5
+ constructor: (@urls, options = {}) ->
6
+ @normalizeUrl = options.normalizeUrl || u.normalizeUrl
7
+ @urls = u.map(@urls, @normalizeUrl)
8
+ @urls = u.compact(@urls)
9
+
10
+ matches: (testUrl) =>
11
+ if testUrl.substr(-1) == '*'
12
+ @doesMatchPrefix(testUrl.slice(0, -1))
13
+ else
14
+ @doesMatchFully(testUrl)
15
+
16
+ doesMatchFully: (testUrl) =>
17
+ u.contains(@urls, testUrl)
18
+
19
+ doesMatchPrefix: (prefix) =>
20
+ u.detect @urls, (url) ->
21
+ url.indexOf(prefix) == 0
22
+
23
+ matchesAny: (testUrls) =>
24
+ u.detect(testUrls, @matches)
25
+
26
+ isEqual: (otherSet) =>
27
+ u.isEqual(@urls, otherSet?.urls)
@@ -42,9 +42,10 @@ up.dom = (($) ->
42
42
  config.reset()
43
43
 
44
44
  setSource = (element, sourceUrl) ->
45
- $element = $(element)
46
- sourceUrl = u.normalizeUrl(sourceUrl) if u.isPresent(sourceUrl)
47
- $element.attr("up-source", sourceUrl)
45
+ unless sourceUrl is false
46
+ $element = $(element)
47
+ sourceUrl = u.normalizeUrl(sourceUrl) if u.isPresent(sourceUrl)
48
+ $element.attr("up-source", sourceUrl)
48
49
 
49
50
  ###**
50
51
  Returns the URL the given element was retrieved from.
@@ -394,7 +395,7 @@ up.dom = (($) ->
394
395
  swapPromises = []
395
396
 
396
397
  for step in extractSteps
397
- up.log.group 'Updating %s', step.selector, ->
398
+ up.log.group 'Swapping fragment %s', step.selector, ->
398
399
  # Note that we must copy the options hash instead of changing it in-place, since the
399
400
  # async swapElements() is scheduled for the next microtask and we must not change the options
400
401
  # for the previous iteration.
@@ -474,11 +475,13 @@ up.dom = (($) ->
474
475
  swapElements = ($old, $new, pseudoClass, transition, options) ->
475
476
  transition ||= 'none'
476
477
 
478
+ # When the server responds with an error, or when the request method is not
479
+ # reloadable (not GET), we keep the same source as before.
477
480
  if options.source == 'keep'
478
481
  options = u.merge(options, source: source($old))
479
482
 
480
- # Ensure that all transitions and animations have completed.
481
- up.motion.finish($old)
483
+ # Remember where the element came from in case someone needs to up.reload($new) later.
484
+ setSource($new, options.source)
482
485
 
483
486
  if pseudoClass
484
487
  # Text nodes are wrapped in a .up-insertion container so we can
@@ -507,63 +510,37 @@ up.dom = (($) ->
507
510
  # Remove the wrapper now that is has served it purpose
508
511
  promise = promise.then -> u.unwrapElement($wrapper)
509
512
 
513
+ return promise
514
+
510
515
  else if keepPlan = findKeepPlan($old, $new, options)
511
516
  # Since we're keeping the element that was requested to be swapped,
512
- # there is nothing left to do here.
517
+ # there is nothing left to do here, except notify event listeners.
513
518
  emitFragmentKept(keepPlan)
514
- promise = Promise.resolve()
519
+ return Promise.resolve()
515
520
 
516
521
  else
517
522
  # This needs to happen before prepareClean() below.
523
+ # Otherwise we would collect destructors for elements we want to keep.
518
524
  options.keepPlans = transferKeepableElements($old, $new, options)
519
525
 
520
- # Collect destructor functions before swapping the elements.
521
- # Detaching an element from the DOM will cause jQuery to remove the data properties
522
- # where we store constructor functions.
523
- clean = up.syntax.prepareClean($old)
524
-
525
- replacement = ->
526
- if shouldSwapElementsDirectly($old, $new, transition, options)
527
- # jQuery will actually let us .insertBefore the new <body> tag,
528
- # but that's probably bad Karma.
529
- swapElementsDirectly($old, $new)
530
- # We cannot morph the <body> tag. Also in case we have found that we won't
531
- # animate above, save ourselves from reepeating the expensive check in up.morph().
532
- transition = false
533
- else
534
- # Don't insert the new element after the old element. For some reason
535
- # this will make the browser scroll to the bottom of the new element.
536
- $new.insertBefore($old)
537
-
538
- # Remember where the element came from so we can
539
- # offer reload functionality.
540
- setSource($new, options.source) unless options.source is false
526
+ $parent = $old.parent()
541
527
 
542
- autofocus($new)
528
+ morphOptions = u.merge options,
529
+ afterInsert: ->
530
+ up.hello($new, options)
531
+ markElementAsDestroying($old)
532
+ emitFragmentDestroy($old, log: false)
533
+ beforeDetach: ->
534
+ up.syntax.clean($old)
535
+ afterDetach: ->
536
+ $old.remove() # clean up jQuery data
537
+ emitFragmentDestroyed($old, $parent: $parent, log: false)
543
538
 
544
- # The fragment should be compiled before animating,
545
- # so transitions see .up-current classes
546
- hello($new, options)
547
-
548
- # Morphing will also process options.reveal
549
- up.morph($old, $new, transition, options)
550
-
551
- # Wrap the replacement as a destroy animation, so $old will
552
- # get marked as .up-destroying right away.
553
- promise = destroy($old, { clean, beforeWipe: replacement, log: false })
554
-
555
- promise
556
-
557
- shouldSwapElementsDirectly = ($old, $new, transition, options) ->
558
- $both = $old.add($new)
559
- $old.is('body') || !up.motion.willAnimate($both, transition, options)
560
-
561
- # This is a separate method so we can mock it in specs
562
- swapElementsDirectly = ($old, $new) ->
563
- # jQuery will actually let us .insertBefore the new <body> tag,
564
- # but that's probably bad Karma.
565
- $old.replaceWith($new)
539
+ return up.morph($old, $new, transition, morphOptions)
566
540
 
541
+ # This will find all [up-keep] descendants in $old an, overwrite their partner
542
+ # element in $new and leave a visually identical clone in $old for a later transition.
543
+ # Returns an array of keepPlans.
567
544
  transferKeepableElements = ($old, $new, options) ->
568
545
  keepPlans = []
569
546
  if options.keep
@@ -574,7 +551,7 @@ up.dom = (($) ->
574
551
  # $old and $new. Note that $keepable will still point to the same element
575
552
  # after the replacement, which is now detached.
576
553
  $keepableClone = $keepable.clone()
577
- up.util.detachWith($keepable, $keepableClone)
554
+ u.detachWith($keepable, $keepableClone)
578
555
 
579
556
  # $keepable.replaceWith($keepableClone)
580
557
  # Since we're going to swap the entire $old and $new containers afterwards,
@@ -743,27 +720,35 @@ up.dom = (($) ->
743
720
  The fragment that has been inserted or updated.
744
721
  @stable
745
722
  ###
746
- emitFragmentInserted = (fragment, options) ->
747
- $fragment = $(fragment)
723
+ emitFragmentInserted = ($element, options) ->
748
724
  up.emit 'up:fragment:inserted',
749
- $element: $fragment
750
- message: ['Inserted fragment %o', $fragment.get(0)]
725
+ $element: $element
726
+ message: ['Inserted fragment %o', $element.get(0)]
751
727
  origin: options.origin
752
728
 
753
729
  emitFragmentKept = (keepPlan) ->
754
730
  eventAttrs = u.merge(keepPlan, message: ['Kept fragment %o', keepPlan.$element.get(0)])
755
731
  up.emit('up:fragment:kept', eventAttrs)
756
732
 
757
- autofocus = ($element) ->
758
- selector = '[autofocus]:last'
759
- $control = u.selectInSubtree($element, selector)
760
- if $control.length && $control.get(0) != document.activeElement
761
- $control.focus()
733
+ emitFragmentDestroy = ($element, options) ->
734
+ if shouldLogDestruction($element, options)
735
+ message = ['Destroying fragment %o', $element.get(0)]
736
+ up.emit 'up:fragment:destroy', { $element, message }
737
+
738
+ emitFragmentDestroyed = ($element, options) ->
739
+ if shouldLogDestruction($element, options)
740
+ message = ['Destroyed fragment %o', $element.get(0)]
741
+
742
+ $parent = options.$parent or up.fail("Missing { $parent } option")
743
+
744
+ up.emit 'up:fragment:destroyed',
745
+ $target: $parent,
746
+ $parent: $parent,
747
+ $element: $element,
748
+ message: message
762
749
 
763
750
  isRealElement = ($element) ->
764
- unreal = '.up-ghost, .up-destroying'
765
- # Closest matches both the element itself
766
- # as well as its ancestors
751
+ unreal = '.up-destroying'
767
752
  $element.closest(unreal).length == 0
768
753
 
769
754
  ###**
@@ -867,41 +852,33 @@ up.dom = (($) ->
867
852
  $element = $(selectorOrElement)
868
853
  options = u.options(options, animation: false)
869
854
 
870
- if shouldLogDestruction($element, options)
871
- destroyMessage = ['Destroying fragment %o', $element.get(0)]
872
- destroyedMessage = ['Destroyed fragment %o', $element.get(0)]
873
-
874
855
  if $element.length == 0
875
- Promise.resolve()
876
- else
877
- up.emit 'up:fragment:destroy', $element: $element, message: destroyMessage
878
- $element.addClass('up-destroying')
879
- # If e.g. a modal or popup asks us to restore a URL, do this
880
- # before emitting `fragment:destroy`. This way up.navigate sees the
881
- # new URL and can assign/remove .up-current classes accordingly.
882
- updateHistoryAndTitle(options)
883
-
884
- animate = ->
885
- animateOptions = up.motion.animateOptions(options)
886
- up.motion.animate($element, options.animation, animateOptions)
887
-
888
- beforeWipe = options.beforeWipe || Promise.resolve()
889
-
890
- wipe = ->
891
- options.clean ||= -> up.syntax.clean($element)
892
- options.clean()
893
- up.syntax.clean($element)
894
- # Emit this while $element is still part of the DOM, so event
895
- # listeners bound to the document will receive the event.
896
- up.emit 'up:fragment:destroyed', $element: $element, message: destroyedMessage
897
- $element.remove()
898
-
899
- animate().then(beforeWipe).then(wipe)
856
+ return Promise.resolve()
857
+
858
+ markElementAsDestroying($element)
859
+ emitFragmentDestroy($element, options)
860
+
861
+ updateHistoryAndTitle(options)
862
+
863
+ animate = ->
864
+ animateOptions = up.motion.animateOptions(options)
865
+ up.motion.animate($element, options.animation, animateOptions)
866
+
867
+ wipe = ->
868
+ $parent = $element.parent()
869
+ up.syntax.clean($element)
870
+ $element.remove()
871
+ emitFragmentDestroyed($element, { $parent })
872
+
873
+ animate().then(wipe)
900
874
 
901
875
  shouldLogDestruction = ($element, options) ->
902
876
  # Don't log destruction for elements that are either Unpoly internals or frequently destroyed
903
877
  options.log != false && !$element.is('.up-placeholder, .up-tooltip, .up-modal, .up-popup')
904
878
 
879
+ markElementAsDestroying = ($element) ->
880
+ $element.addClass('up-destroying')
881
+
905
882
  ###**
906
883
  Before a page fragment is being [destroyed](/up.destroy), this
907
884
  event is [emitted](/up.emit) on the fragment.
@@ -916,15 +893,17 @@ up.dom = (($) ->
916
893
  ###
917
894
 
918
895
  ###**
919
- This event is [emitted](/up.emit) right before a [destroyed](/up.destroy)
920
- page fragment is removed from the DOM.
896
+ This event is [emitted](/up.emit) after a page fragment was [destroyed](/up.destroy) and removed from the DOM.
897
+
898
+ If the destruction is animated, this event is emitted after the animation has ended.
921
899
 
922
- If the destruction is animated, this event is emitted after
923
- the animation has ended.
900
+ The event is emitted on the parent element of the fragment that was removed.
924
901
 
925
902
  @event up:fragment:destroyed
926
903
  @param {jQuery} event.$element
927
- The page fragment that is about to be removed from the DOM.
904
+ The page fragment that has been removed from the DOM.
905
+ @param {jQuery} event.$parent
906
+ The parent element of the fragment that has been removed from the DOM.
928
907
  @stable
929
908
  ###
930
909