unpoly-rails 0.31.2 → 0.32.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +49 -5
  3. data/README.md +21 -15
  4. data/README_RAILS.md +2 -2
  5. data/Rakefile +1 -1
  6. data/bower.json +4 -3
  7. data/design/homepage.txt +2 -2
  8. data/dist/unpoly-bootstrap3.css +3 -0
  9. data/dist/unpoly-bootstrap3.min.css +1 -1
  10. data/dist/unpoly.css +4 -4
  11. data/dist/unpoly.js +114 -80
  12. data/dist/unpoly.min.css +1 -1
  13. data/dist/unpoly.min.js +3 -3
  14. data/lib/assets/javascripts/unpoly/browser.js.coffee +1 -1
  15. data/lib/assets/javascripts/unpoly/bus.js.coffee +3 -3
  16. data/lib/assets/javascripts/unpoly/flow.js.coffee +15 -11
  17. data/lib/assets/javascripts/unpoly/form.js.coffee +1 -1
  18. data/lib/assets/javascripts/unpoly/layout.js.coffee +12 -9
  19. data/lib/assets/javascripts/unpoly/link.js.coffee +22 -7
  20. data/lib/assets/javascripts/unpoly/log.js.coffee +3 -2
  21. data/lib/assets/javascripts/unpoly/modal.js.coffee +11 -13
  22. data/lib/assets/javascripts/unpoly/motion.js.coffee +1 -1
  23. data/lib/assets/javascripts/unpoly/navigation.js.coffee +5 -5
  24. data/lib/assets/javascripts/unpoly/popup.js.coffee +8 -9
  25. data/lib/assets/javascripts/unpoly/proxy.js.coffee +2 -2
  26. data/lib/assets/javascripts/unpoly/syntax.js.coffee +19 -15
  27. data/lib/assets/javascripts/unpoly/util.js.coffee +19 -3
  28. data/lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.css.sass +6 -1
  29. data/lib/assets/stylesheets/unpoly/modal.css.sass +7 -2
  30. data/lib/unpoly/rails/version.rb +1 -1
  31. data/package.json +2 -2
  32. data/spec_app/Gemfile.lock +1 -1
  33. data/spec_app/app/assets/javascripts/bootstrap_manifest.coffee +2 -2
  34. data/spec_app/app/views/css_test/modal.erb +4 -0
  35. data/spec_app/app/views/css_test/modal_contents_wide.erb +5 -0
  36. data/spec_app/app/views/layouts/integration_test.erb +1 -0
  37. data/spec_app/spec/javascripts/helpers/knife.js.coffee +1 -1
  38. data/spec_app/spec/javascripts/up/browser_spec.js.coffee +1 -1
  39. data/spec_app/spec/javascripts/up/bus_spec.js.coffee +1 -1
  40. data/spec_app/spec/javascripts/up/flow_spec.js.coffee +63 -5
  41. data/spec_app/spec/javascripts/up/form_spec.js.coffee +2 -2
  42. data/spec_app/spec/javascripts/up/history_spec.js.coffee +1 -1
  43. data/spec_app/spec/javascripts/up/layout_spec.js.coffee +27 -1
  44. data/spec_app/spec/javascripts/up/link_spec.js.coffee +3 -3
  45. data/spec_app/spec/javascripts/up/log_spec.js.coffee +1 -1
  46. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +3 -3
  47. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +1 -1
  48. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +21 -3
  49. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +1 -1
  50. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +1 -1
  51. data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +1 -1
  52. data/spec_app/spec/javascripts/up/util_spec.js.coffee +2 -2
  53. data/spec_app/vendor/assets/bower_components/jasmine-jquery/README.md +2 -2
  54. data/unpoly-rails.gemspec +1 -1
  55. metadata +5 -4
data/dist/unpoly.min.css CHANGED
@@ -1 +1 @@
1
- [up-close]{cursor:pointer}.up-insertion{display:inline-block}[up-href]{cursor:pointer}.up-modal{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000;overflow-x:hidden}.up-modal-backdrop{z-index:11000;background-color:rgba(90,90,90,0.4);position:absolute;top:0;right:0;bottom:0;left:0}.up-modal-viewport{position:absolute;top:0;left:0;bottom:0;right:0;z-index:12000;overflow-x:hidden;overflow-y:scroll;text-align:center}.up-modal.up-modal-animating{overflow-y:scroll}.up-modal.up-modal-animating .up-modal-viewport{overflow-y:hidden}.up-modal-dialog{z-index:13000;position:relative;box-sizing:border-box;margin:30px 10px;max-width:100%;display:inline-block;text-align:left}.up-modal-content{z-index:14000;padding:20px;background-color:#fff;box-shadow:0 0 10px 1px rgba(0,0,0,0.3)}.up-modal-close{z-index:15000;position:absolute;right:0;top:0;width:36px;text-align:center;line-height:36px;height:36px;font-size:34px;color:#666;cursor:pointer}.up-modal[up-flavor='drawer'] .up-modal-viewport{text-align:left}.up-modal[up-flavor='drawer'][up-position='right'] .up-modal-viewport{text-align:right}.up-modal[up-flavor='drawer'] .up-modal-dialog{margin:0;max-width:350px}.up-modal[up-flavor='drawer'] .up-modal-content{min-height:100vh;box-sizing:border-box}.up-popup{z-index:20000;position:absolute;background-color:#fff;padding:15px;box-shadow:0 0 4px rgba(0,0,0,0.3)}.up-toast{border-top:3px solid #28b;background-color:white;color:#333;padding:10px;font-family:monospace;font-size:14px;line-height:15px;position:fixed;left:0;bottom:0;right:0;z-index:99999999}.up-toast-variable{font-weight:normal;color:#838383}.up-toast-actions{margin-top:7px}.up-toast-action{display:inline-block;word-spacing:-4px;text-decoration:underline;color:#28b;cursor:pointer}.up-toast-action+.up-toast-action{margin-left:12px}.up-tooltip{position:absolute;z-index:30000;background-color:#111;color:white;padding:6px 9px;white-space:nowrap;pointer-events:none}.up-tooltip:after{content:"";position:absolute;display:block;width:0;height:0;border:8px solid transparent}.up-tooltip[up-position=top]{margin-top:-6px}.up-tooltip[up-position=top]:after{border-top-color:#111;border-bottom-width:0;bottom:-8px;left:50%;margin-left:-8px}.up-tooltip[up-position=left]{margin-left:-6px}.up-tooltip[up-position=left]:after{border-left-color:#111;border-right-width:0;right:-8px;top:50%;margin-top:-8px}.up-tooltip[up-position=right]{margin-left:6px}.up-tooltip[up-position=right]:after{border-right-color:#111;border-left-width:0;left:-8px;top:50%;margin-top:-8px}.up-tooltip[up-position=bottom]{margin-top:6px}.up-tooltip[up-position=bottom]:after{border-bottom-color:#111;border-top-width:0;top:-8px;left:50%;margin-left:-8px}
1
+ [up-close]{cursor:pointer}.up-insertion{display:inline-block}[up-href]{cursor:pointer}.up-modal{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000;overflow-x:hidden}.up-modal-backdrop{z-index:11000;background-color:rgba(90,90,90,0.4);position:absolute;top:0;right:0;bottom:0;left:0}.up-modal-viewport{position:absolute;top:0;left:0;bottom:0;right:0;z-index:12000;overflow-x:hidden;overflow-y:scroll;text-align:center;padding:30px 10px}.up-modal.up-modal-animating{overflow-y:scroll}.up-modal.up-modal-animating .up-modal-viewport{overflow-y:hidden}.up-modal-dialog{z-index:13000;position:relative;box-sizing:border-box;max-width:100%;display:inline-block;text-align:left}.up-modal-content{z-index:14000;padding:20px;background-color:#fff;box-shadow:0 0 10px 1px rgba(0,0,0,0.3)}.up-modal-close{z-index:15000;position:absolute;right:0;top:0;width:36px;text-align:center;line-height:36px;height:36px;font-size:34px;color:#666;cursor:pointer}.up-modal[up-flavor='drawer'] .up-modal-viewport{text-align:left;padding:0}.up-modal[up-flavor='drawer'][up-position='right'] .up-modal-viewport{text-align:right}.up-modal[up-flavor='drawer'] .up-modal-dialog{max-width:350px}.up-modal[up-flavor='drawer'] .up-modal-content{min-height:100vh;box-sizing:border-box}.up-popup{z-index:20000;position:absolute;background-color:#fff;padding:15px;box-shadow:0 0 4px rgba(0,0,0,0.3)}.up-toast{border-top:3px solid #28b;background-color:white;color:#333;padding:10px;font-family:monospace;font-size:14px;line-height:15px;position:fixed;left:0;bottom:0;right:0;z-index:99999999}.up-toast-variable{font-weight:normal;color:#838383}.up-toast-actions{margin-top:7px}.up-toast-action{display:inline-block;word-spacing:-4px;text-decoration:underline;color:#28b;cursor:pointer}.up-toast-action+.up-toast-action{margin-left:12px}.up-tooltip{position:absolute;z-index:30000;background-color:#111;color:white;padding:6px 9px;white-space:nowrap;pointer-events:none}.up-tooltip:after{content:"";position:absolute;display:block;width:0;height:0;border:8px solid transparent}.up-tooltip[up-position=top]{margin-top:-6px}.up-tooltip[up-position=top]:after{border-top-color:#111;border-bottom-width:0;bottom:-8px;left:50%;margin-left:-8px}.up-tooltip[up-position=left]{margin-left:-6px}.up-tooltip[up-position=left]:after{border-left-color:#111;border-right-width:0;right:-8px;top:50%;margin-top:-8px}.up-tooltip[up-position=right]{margin-left:6px}.up-tooltip[up-position=right]:after{border-right-color:#111;border-left-width:0;left:-8px;top:50%;margin-top:-8px}.up-tooltip[up-position=bottom]{margin-top:6px}.up-tooltip[up-position=bottom]:after{border-bottom-color:#111;border-top-width:0;top:-8px;left:50%;margin-left:-8px}
data/dist/unpoly.min.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){var e;e="undefined"!=typeof global?global:this,e.up={version:"0.31.2"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,O,C,P,F,R,U,L,I,_,M,j,K,N,W,q,H,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,pe,ce,fe,de,me,he,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,Ee,De,Te,Oe,Ce,Pe,Fe,Re,Ue,Le,Ie,_e,Me,je,Ke,Ne,We,qe,He,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt,ot,it,ut,at,st;return be=n.noop,de=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},oe=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},ke=function(e,t){var n,r,o;return n=Ce(e),r=n.protocol+"//"+n.hostname,oe(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},Ce=function(e){var t;return t=null,ie(e)?(t=n("<a>").attr({href:e}).get(0),N(t.hostname)&&(t.href=t.href)):t=rt(e),t},we=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,p,c,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=p=0,m=v.length;m>p;f=++p){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],c=null,d=0,h=u.length;h>d;d++)switch(s=u[d],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+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),ne(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},Je=function(e){var t,r,o,i,u,a,s,l,p;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),p=Re(t.attr("up-id")))l="[up-id='"+p+"']";else if(i=Re(t.attr("id")))l="#"+i;else if(s=Re(t.attr("name")))l="[name='"+s+"']";else if(r=Re(ye(t)))for(l="",o=0,a=r.length;a>o;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},ye=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Qe(n,function(e){return ne(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,p,c,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(c=e.match(f))&&(a=b("head"),s.appendChild(a),p=b("title",c[1]),a.appendChild(p)),s):b("div",e)},O=n.extend,nt=n.trim,$=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;i>n;r=++n)o=e[r],u.push(t(o,r));return u},ce=$,Ze=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(t(r));return i},Z=function(e){return null===e},ue=function(e){return void 0===e},q=function(e){return!ue(e)},Y=function(e){return ue(e)||Z(e)},B=function(e){return!Y(e)},N=function(e){return Y(e)||te(e)&&0===Object.keys(e).length||0===e.length},Re=function(e,t){return null==t&&(t=ne),t(e)?e:void 0},ne=function(e){return!N(e)},V=function(e){return"function"==typeof e},ie=function(e){return"string"==typeof e},ee=function(e){return"number"==typeof e},X=function(e){return"object"==typeof e&&!!e},te=function(e){return X(e)||"function"==typeof e},z=function(e){return!(!e||1!==e.nodeType)},G=function(e){return e instanceof jQuery},re=function(e){return te(e)&&V(e.then)},W=function(e){return re(e)&&V(e.resolve)},K=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},J=function(e){return up.browser.canFormData()&&e instanceof FormData},tt=function(e){return Array.prototype.slice.call(e)},g=function(e){return K(e)?e.slice():X(e)?O({},e):void 0},rt=function(e){return G(e)?e.get(0):e},me=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],O.apply(null,[{}].concat(e.call(t)))},Oe=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],B(i)?te(n)&&te(i)&&(o[r]=Oe(i,n)):o[r]=n;return o},Te=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],S(t,B)},S=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){i=!1;break}return i},m=function(e){return Qe(e,B)},ot=function(e){var t;return t={},Qe(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},Qe=function(e,t){var n;return n=[],$(e,function(e){return t(e)?n.push(e):void 0}),n},_e=function(e,t){return Qe(e,function(e){return!t(e)})},j=function(e,t){return Qe(e,function(e){return v(t,e)})},Ue=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;o>e;e++)n=r[e],i.push(t.attr(n));return i}(),S(o,ne)},Xe=function(e,t){return e>0?setTimeout(t,e):void t()},ge=function(e){return setTimeout(e,0)},le=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},ze=de(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),A=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},$e=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Ye=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):$e(i)},L=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),N(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},I=function(e){return e=rt(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,p,c,f;return o=n(e),r=Oe(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),qe()):(u=n.Deferred(),c=Object.keys(t),l={"transition-property":c.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),p=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;return t=e.originalEvent.propertyName,v(c,t)?(u.resolve(),p()):void 0},o.on("transitionend",s),u.then(p),f=L(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;return o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]),e?(I(o),o.css(a)):void 0}),u)},i="up-animation-deferred",R=function(e){return n(e).each(function(){var e;return(e=Pe(this,i))?e.resolve():void 0})},fe=function(e,t){var r,o,i,u,a;return t=Oe(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},F=function(e,t){return e.find(t).addBack(t)},E=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},pe=function(e){return e.getResponseHeader("X-Up-Location")},et=function(e){return e.getResponseHeader("X-Up-Title")},he=function(e){return e.getResponseHeader("X-Up-Method")},xe=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},T=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;r>n;n++)u=i[n],delete t[u];return t},ae=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},se=function(e){var t;return t=ue(e.button)||0===e.button,t&&ae(e)},qe=function(){var e;return e=n.Deferred(),e.resolve(),e},He=function(){return qe().promise()},it=function(){return n.Deferred()},ut=function(){return it().promise()},Se=function(){return n()},We=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[qe()].concat(e.call(t))),r.resolve=de(function(){return $(t,function(e){return e.resolve()})}),r},Be=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],Y(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},Me=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},ve=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;i>o;o++)a=e[o],ie(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=Se(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||Se()},u},D=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],V(n)?n.apply(null,t):n},c=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,m,h;return null==t&&(t={}),m=void 0,c=function(){return D(t.size)},o=function(){return D(t.expiry)},f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==c()&&0!==o()},r=function(){return m={}},r(),l=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix?(n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)):void 0},s=function(){return Object.keys(m)},p=function(){var e,t,n,r;return r=g(s()),e=c(),e&&r.length>=e&&(t=null,n=null,$(r,function(e){var r,o;return r=m[e],o=r.timestamp,!n||n>o?(t=e,n=o):void 0}),t)?delete m[t]:void 0},n=function(e,t){var n;return n=i(e,{silent:!0}),q(n)?d(t,n):void 0},h=function(){return(new Date).valueOf()},d=function(e,t){var n;return u()?(p(),n=f(e),m[n]={timestamp:h(),value:t}):void 0},Me=function(e){var t;return t=f(e),delete m[t]},a=function(e){var t,n;return t=o(),t?(n=h()-e.timestamp,t>n):!0},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=m[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void Me(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:d,remove:Me,clear:r,keys:s}},h=function(e){var t;return t=De(e),Object.preventExtensions(t),t},De=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,V(n)&&(n=n()),O(t,n)},t.reset(),t},at=function(e){var t,n;return e=rt(e),t=e.parentNode,n=tt(e.childNodes),$(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},Ae=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},Q=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},U=function(e,t){var r,o,i,u;return r=n(e),o=Ae(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},je=function(e){var t,n,r,o,i,u,a;if(J(e))return up.fail("Cannot convert FormData into an array");for(u=Ke(e),t=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ne(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ke=function(e){var t;return J(e)?up.fail("Cannot convert FormData into a query string"):ne(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},Ne=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},p=function(e,t,n){var r;return J(e)?e.append(t,n):K(e)?e.push({name:t,value:n}):te(e)?e[t]=n:(ie(e)||Y(e))&&(r=Ke([{name:t,value:n}]),e=ne(e)?[e,r].join("&"):r),e},P=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],K(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),st().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"},x=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Fe=function(e,t){var n;return n=e[t],delete e[t],n},Pe=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},C=function(e){var t;return t=le(e),X(t)&&!G(t)?e.pop():{}},Ee=function(e){var t;return t=n(e).css("opacity"),B(t)?parseFloat(t):void 0},st=de(function(){var e;return n.isReady?He():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),M=function(e){return e},H=function(e){return e=rt(e),!jQuery.contains(document.documentElement,e)},Le=function(t){var r,o;return r=n.Deferred(),o=function(){var n,o;return n=1<=arguments.length?e.call(arguments,0):[],o=t.apply(null,n),re(o)?o.then(function(){return r.resolve(o)}):r.resolve(o),o},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=ce(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;return!this.currentTask&&(this.currentTask=this.queue.shift())?(e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))):void 0},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=ce(t,Le),this.poke()},r}(),Ge=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},Ve=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return ce(t,function(e){return e()})}},Ie=function(e){var t,r;return t=n.Deferred(),r=Xe(e,function(){return t.resolve()}),t.cancel=function(){return clearTimeout(r)},t},_=function(e){var t,n,r,o;return t=fe(e),r=d(),n=t.left+.5*t.width,o=.5*r.width,o>n?"left":"right"},{isDetached:H,requestDataAsArray:je,requestDataAsQuery:Ke,appendRequestData:p,requestDataFromForm:Ne,offsetParent:Ae,fixedToAbsolute:U,isFixed:Q,presentAttr:Ue,createElement:b,parseUrl:Ce,normalizeUrl:ke,normalizeMethod:we,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:Je,extend:O,copy:g,merge:me,options:Oe,option:Te,fail:P,each:$,map:ce,times:Ze,any:l,all:s,detect:S,select:Qe,reject:_e,intersect:j,compact:m,uniq:ot,last:le,isNull:Z,isDefined:q,isUndefined:ue,isGiven:B,isMissing:Y,isPresent:ne,isBlank:N,presence:Re,isObject:te,isFunction:V,isString:ie,isNumber:ee,isElement:z,isJQuery:G,isPromise:re,isDeferred:W,isHash:X,isArray:K,isFormData:J,isUnmodifiedKeyEvent:ae,isUnmodifiedMouseEvent:se,nullJQuery:Se,unJQuery:rt,setTimer:Xe,nextFrame:ge,measure:fe,temporaryCss:Ye,cssAnimate:k,finishCssAnimate:R,forceCompositing:L,forceRepaint:I,escapePressed:E,copyAttributes:y,findWithSelf:F,contains:v,toArray:tt,castedAttr:f,locationFromXhr:pe,titleFromXhr:et,methodFromXhr:he,clientSize:d,only:xe,except:T,trim:nt,unresolvableDeferred:it,unresolvablePromise:ut,resolvedPromise:He,resolvedDeferred:qe,resolvableWhen:We,setMissingAttrs:Be,remove:Me,memoize:de,scrollbarWidth:ze,documentHasVerticalScrollbar:A,config:h,openConfig:De,cache:c,unwrapElement:at,multiSelector:ve,error:P,pluckData:Pe,pluckKey:Fe,extractOptions:C,isDetached:H,noop:be,opacity:Ee,whenReady:st,identity:M,escapeHtml:x,DivertibleChain:u,submittedValue:Ge,sequence:Ve,promiseTimer:Ie,previewable:Le,evalOption:D,horizontalScreenHalf:_}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,p;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;i>o;o++)n=s[o],(p=t.attr(n))&&(l+=" "+n+'="'+p+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;t>e;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,consumeAction,emit,emitReset,forgetUpDescription,haltEvent,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener,whenEmitted;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||up.fail("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,n!==!1&&(u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n)?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},haltEvent=function(e){return e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},consumeAction=function(e){return haltEvent(e),"up:action:consumed"!==e.type?emit("up:action:consumed",{$element:$(e.target),message:!1}):void 0},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})):void 0},live("up:framework:booted",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,whenEmitted:whenEmitted,onEscape:onEscape,emitReset:emitReset,haltEvent:haltEvent,consumeAction:consumeAction,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.log=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,m,h,v;return h=up.util,r=up.browser,n="up.log.enabled",o=h.config({prefix:"[UP] ",enabled:h.option(r.sessionStorage().getItem(n),!1),collapse:!1}),d=function(){return o.reset()},p=function(e){return""+o.prefix+e},i=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["debug",p(n)].concat(e.call(t))):void 0},f=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["log",p(n)].concat(e.call(t))):void 0},v=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["warn",p(n)].concat(e.call(t))):void 0},l=function(){var t,n,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!o.enabled||!i)return n();u=o.collapse?"groupCollapsed":"group",r.puts.apply(r,[u,p(i)].concat(e.call(t)));try{return n()}finally{i&&r.puts("groupEnd")}},s=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?r.puts.apply(r,["error",p(n)].concat(e.call(t))):void 0},c=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=o.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",r.puts("log",e)},up.on("up:framework:boot",c),up.on("up:framework:reset",d),m=function(e){return r.sessionStorage().setItem(n,e),o.enabled=e},a=function(){return m(!0)},u=function(){return m(!1)},{puts:f,debug:i,error:s,warn:v,group:l,config:o,enable:a,disable:u}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,p,c;return c=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+c.escapeHtml(e)+"</span>"},p=c.config({$toast:null}),l=function(){return i(),p.reset()},a=function(t){return c.isArray(t)?(t[0]=c.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=c.escapeHtml(t),t},u=function(){return!!p.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),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 e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,m,h,v,g,y;return y=up.util,n="up-destructable",r="up-destructors",p=[],h=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[p].concat(e.call(t)))},m=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[h].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u,a,s,l,p;for(up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(p=y.isString(e.keep)?e.keep:"",t.attr("up-keep",p)),l=e.callback.apply(n,[t,c(t)]),a=f(l),s=[],i=0,u=a.length;u>i;i++)r=a[i],s.push(o(t,r));return s},f=function(e){return y.isFunction(e)?[e]:y.isArray(e)&&y.all(e,y.isFunction)?e:[]},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,c;for(s=[h,p],c=[],o=0,u=s.length;u>o;o++)a=s[o],c.push(function(){var o,u,s;for(s=[],o=0,u=a.length;u>o;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return c})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;for(e=t(this),i=e.data(r),u=0,a=i.length;a>u;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)})},c=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(p,e),y.each(h,e)},v=function(){var e;return e=function(e){return e.isDefault},p=y.select(p,e),h=y.select(h,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:m,compile:s,clean:a,data:c}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,p,c,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),p=void 0,u=void 0,m=function(){return n.reset(),p=void 0,u=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return u&&(p=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},c=function(e,t){return t=v.options(t,{force:!1}),e=a(e),!t.force&&o(e)||!up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e})?void 0:(i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e}))},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:p}),t=e.originalEvent.state,h(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(p)?(v.setMissingAttrs(e,{"up-href":p,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return up.fail("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:c,replace:d,url:r,previousUrl:function(){return p},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,
2
- config=u.config({duration:0,viewports:[document,".up-modal-viewport","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||up.fail("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,i;for(o=$(config.fixedTop.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"top"));return i}(),e=function(){var e,t,o,i;for(o=$(config.fixedBottom.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"bottom"));return i}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),c=r.scrollTop(),s=c,p=void 0,l=void 0,v?(l=measureObstruction(),p=0):(l={top:0,bottom:0},p=c),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+p,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==c?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e,t){var n,r;return null==t&&(t={}),n=$(e),r=viewportSelector().seekUp(n),0===r.length&&t.strict!==!1&&up.fail("Could not find viewport for %o",n),r},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,i,u;for(i={},o=config.viewports,t=0,r=o.length;r>t;t++)u=o[t],e=$(u),e.length&&(n=u,u===document&&(n="document"),i[n]=e.scrollTop());return i},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return up.fail("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,config,destroy,emitFragmentInserted,emitFragmentKept,extract,filterScripts,findKeepPlan,findOldFragment,first,firstInLayer,firstInPriority,hello,isRealElement,layerOf,matchesLayer,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,reset,resolveSelector,setSource,shouldExtractTitle,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,config=u.config({runInlineScripts:!0,runLinkedScripts:!1}),reset=function(){return config.reset()},setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):up.fail("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a,s,l;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),l=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(s={url:t,method:n.method,data:n.data,target:l,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},n.inspectResponse=function(){return up.browser.loadPage(t,u.only(n,"method","data"))},a=up.ajax(s),i=function(e,r,o){return processResponse(!0,l,t,s,o,n)},o=function(e,o,i){return processResponse(!1,r,t,s,e,n)},a=a.then(i,o)):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,p;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),a="GET"===i.method,(p=u.locationFromXhr(o))?(n=p,e&&up.proxy.isCachable(r)&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),shouldExtractTitle(i)&&(i.title=u.titleFromXhr(o)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},shouldExtractTitle=function(e){return!(e.title===!1||u.isString(e.title)||e.history===!1&&e.title!==!0)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i;return n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),i=resolveSelector(e,n.origin),o=parseResponse(t,n),shouldExtractTitle(n)&&(n.title=o.title()),n.saveScroll!==!1&&up.layout.saveScroll(),r=u.resolvedPromise(),n.beforeSwap&&(r=r.then(n.beforeSwap)),r=r.then(function(){return updateHistory(n)}),r=r.then(function(){var e,t,r,u,a;for(a=[],r=parseImplantSteps(i,n),e=0,t=r.length;t>e;e++)u=r[e],up.log.group("Updating %s",u.selector,function(){var e,t,r;return t=findOldFragment(u.selector,n),e=o.first(u.selector),t&&e?(filterScripts(e,n),r=swapElements(t,e,u.pseudoClass,u.transition,n),a.push(r),n.reveal=!1):void 0});return $.when.apply($,a)}),n.afterSwap&&(r=r.then(n.afterSwap)),r})},findOldFragment=function(e,t){return first(e,t)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n,r;return t.requireMatch?(n=t.layer,"auto"===n&&(n="page, modal or popup"),r="Could not find selector %s in the current "+n,"#"===r[0]&&(r+=" (avoid using IDs)"),up.fail(r,e)):void 0},filterScripts=function(e,t){var n,r,o,i,a,s,l,p,c,f;for(p=u.option(t.runInlineScripts,config.runInlineScripts),c=u.option(t.runLinkedScripts,config.runLinkedScripts),r=u.findWithSelf(e,"script"),l=[],a=0,s=r.length;s>a;a++)f=r[a],n=$(f),i=u.isPresent(n.attr("src")),o=!i,i&&c||o&&p?l.push(void 0):l.push(n.remove());return l},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},first:function(r){var o,i;return(o=$.find(r,n)[0])?$(o):t.requireMatch?(i={label:"Open response",callback:t.inspectResponse},up.fail(["Could not find selector %s in response %o",r,e],{action:i})):void 0}}},updateHistory=function(e){return e=u.options(e,{historyMethod:"push"}),e.history&&up.history[e.historyMethod](e.history),e.title?document.title=e.title:void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrapAll('<div class="up-insertion"></div>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)}),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),e.is("body")?(up.syntax.clean(e),e.replaceWith(t)):t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,p,c;if(a=[],n.keep)for(c=e.find("[up-keep]"),i=0,l=c.length;l>i;i++)s=c[i],r=$(s),(p=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),p.$newElement.replaceWith(r),a.push(p));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)p=r[o],c=p.match(/^(.+?)(?:\:(before|after))?$/),c||up.fail('Could not parse selector atom "%s"',p),e=c[1],"html"===e&&(e="body"),s=c[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e,t){return t=u.options(t,{layer:"auto"}),"auto"===t.layer?firstInPriority(e,t.origin):firstInLayer(e,t.layer)},firstInPriority=function(e,t){var n,r,o,i,a,s;for(i=["popup","modal","page"],n=void 0,u.isPresent(t)&&(s=layerOf(t),u.remove(i,s),i.unshift(s)),r=0,a=i.length;a>r&&(o=i[r],!(n=firstInLayer(e,o)));r++);return n},firstInLayer=function(e,t){var n,r,o,i,u,a;for(r=$(e),o=void 0,u=0,a=r.length;a>u;u++)if(i=r[u],n=$(i),isRealElement(n)&&matchesLayer(n,t)){o=n;break}return o},layerOf=function(e){var t;return t=$(e),up.popup.contains(t)?"popup":up.modal.contains(t)?"modal":"page"},matchesLayer=function(e,t){return layerOf(e)===t},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),0===n.length?u.resolvedDeferred():up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),updateHistory(t),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("up:app:boot",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello,config:config}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){var e=[].slice;up.motion=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,O;return T=up.util,a={},p={},E={},c={},l=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return m(),a=T.copy(p),E=T.copy(c),l.reset()},v=function(){return l.enabled&&up.browser.canCssTransition()},o=function(e,n,r){var u;return u=t(e),m(u),r=i(r),"none"===n||n===!1||T.isMissing(n)?b():T.isFunction(n)?s(n(u,r),n):T.isString(n)?o(u,d(n),r):T.isHash(n)?v()?T.cssAnimate(u,n,r):(u.css(n),T.resolvedDeferred()):up.fail("Unknown animation type for %o",n)},i=function(){var t,n,r,o,i;return n=1<=arguments.length?e.call(arguments,0):[],i=n.shift()||{},t=T.isJQuery(n[0])?n.shift():T.nullJQuery(),o=T.isObject(n[0])?n.shift():{},r={},r.easing=T.option(i.easing,T.presentAttr(t,"up-easing"),o.easing,l.easing),r.duration=Number(T.option(i.duration,T.presentAttr(t,"up-duration"),o.duration,l.duration)),r.delay=Number(T.option(i.delay,T.presentAttr(t,"up-delay"),o.delay,l.delay)),r},d=function(e){return a[e]||up.fail("Unknown animation %o",e)},r="up-ghosting-deferred",n="up-ghosting",O=function(e,t,o,i){var u,a,s,l,p,c,f,d;return o.copy===!1||e.is(".up-ghost")||t.is(".up-ghost")?i(e,t):(c=void 0,l=void 0,f=void 0,p=void 0,a=up.layout.viewportOf(e),u=e.add(t),T.temporaryCss(t,{display:"none"},function(){return c=w(e,a),f=a.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(t,o),l=w(t,a),p=a.scrollTop()}),c.moveTop(p-f),e.hide(),d=T.temporaryCss(t,{opacity:"0"}),s=i(c.$ghost,l.$ghost),u.data(r,s),u.addClass(n),s.then(function(){return u.removeData(r),u.removeClass(n),d(),c.$bounds.remove(),l.$bounds.remove()}),s)},m=function(e){var r,o,i;return null==e&&(e=".up-animating"),o=t(e),r=T.findWithSelf(o,".up-animating"),T.finishCssAnimate(r),i=T.findWithSelf(o,"."+n),h(i)},h=function(e){return e.each(function(){var e,n;return e=t(this),(n=T.pluckData(e,r))?n.resolve():void 0})},s=function(e,t){return T.isDeferred(e)?e:up.fail("Did not return a promise with .then and .resolve methods: %o",t)},y=function(e,n,r,u){var l,p;return"none"===r&&(r=!1),u=T.options(u),p=t(e),l=t(n),f(p,r),f(l,r),up.log.group(r?"Morphing %o to %o (using %s, %o)":void 0,p.get(0),l.get(0),r,u,function(){var e,t,n,c;return t=T.only(u,"reveal","restoreScroll","source"),t=T.extend(t,i(u)),v()?(m(p),m(l),r?(e=a[r])?(A(p,l,t),o(l,e,t)):(c=T.presence(r,T.isFunction)||E[r])?O(p,l,t,function(e,n){var o;return o=c(e,n,t),s(o,r)}):T.isString(r)&&r.indexOf("/")>=0?(n=r.split("/"),c=function(e,t,r){return S(o(e,n[0],r),o(t,n[1],r))},y(p,l,c,t)):up.fail("Unknown transition %o",r):A(p,l,t)):A(p,l,t)})},f=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),up.fail("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},A=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},w=function(e,n){var r,o,i,u,a,s,l,p,c;for(u=T.measure(e,{relative:!0,inner:!0}),i=e.clone(),i.find("script").remove(),i.css({position:"static"===e.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=t('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),c=u.top,p=function(e){return 0!==e?(c+=e,r.css({top:c})):void 0},i.appendTo(r),r.insertBefore(e),p(e.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:p}},x=function(e,t){return E[e]=t},u=function(e,t){return a[e]=t},$=function(){return p=T.copy(a),c=T.copy(E)},S=T.resolvableWhen,b=T.resolvedDeferred,g=function(e){return e===!1||"none"===e||e===b},u("none",b),u("fade-in",function(e,t){return e.css({opacity:0}),o(e,{opacity:1},t)}),u("fade-out",function(e,t){return e.css({opacity:1}),o(e,{opacity:0},t)}),D=function(e,t){return{transform:"translate("+e+"px, "+t+"px)"}},u("move-to-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,0)),o(e,D(0,-r),t)}),u("move-from-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,-r)),o(e,D(0,0),t)}),u("move-to-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,0)),o(e,D(0,r),t)}),u("move-from-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,r)),o(e,D(0,0),t)}),u("move-to-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(0,0)),o(e,D(-r,0),t)}),u("move-from-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(-r,0)),o(e,D(0,0),t)}),u("move-to-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(0,0)),o(e,D(r,0),t)}),u("move-from-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(r,0)),o(e,D(0,0),t)}),u("roll-down",function(e,t){var n,r,i;return r=e.height(),i=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n=o(e,{height:r+"px"},t),n.then(i),n}),x("none",b),x("move-left",function(e,t,n){return S(o(e,"move-to-left",n),o(t,"move-from-right",n))}),x("move-right",function(e,t,n){return S(o(e,"move-to-right",n),o(t,"move-from-left",n))}),x("move-up",function(e,t,n){return S(o(e,"move-to-top",n),o(t,"move-from-bottom",n))}),x("move-down",function(e,t,n){return S(o(e,"move-to-bottom",n),o(t,"move-from-top",n))}),x("cross-fade",function(e,t,n){return S(o(e,"fade-out",n),o(t,"fade-in",n))}),up.on("up:framework:booted",$),up.on("up:framework:reset",k),{morph:y,animate:o,animateOptions:i,finish:m,transition:x,animation:u,config:l,isEnabled:v,defaults:function(){return up.fail("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:b,when:S,prependCopy:w,isNone:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,O,C,P,F,R,U,L;return L=up.util,n=void 0,x=void 0,F=void 0,S=void 0,R=void 0,D=[],c=L.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),u=function(e){return k(e),[e.url,e.method,L.requestDataAsQuery(e.data),e.target].join("|")},i=L.cache({size:function(){return c.cacheSize},expiry:function(){return c.cacheExpiry},key:u}),f=function(e){var t,n,r,o,u,a,s;if(e=k(e),m(e))for(n=[e],"html"!==e.target&&(a=L.merge(e,{target:"html"}),n.push(a),"body"!==e.target&&(u=L.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],s=i.get(t))return s},a=function(){return clearTimeout(x),x=null},s=function(){return clearTimeout(F),F=null},O=function(){return n=null,a(),s(),S=0,c.reset(),i.clear(),R=!1,D=[]},O(),k=function(e){return e._normalized||(e.method=L.normalizeMethod(e.method),e.url&&(e.url=L.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(){var t,n,r,o,i,u,a;return t=1<=arguments.length?e.call(arguments,0):[],o=L.extractOptions(t),L.isGiven(t[0])&&(o.url=t[0]),n=o.cache===!0,r=o.cache===!1,a=L.only(o,"url","method","data","target","headers","_normalized"),a=k(a),i=!0,h(a)||n?(u=f(a))&&!r?(up.puts("Re-using cached response for %s %s",a.method,a.url),i="pending"===u.state()):(u=b(a),P(a,u),u.fail(function(){return T(a)})):(p(),u=b(a)),i&&!o.preload&&(w(),u.always(y)),u},m=function(e){return!L.isFormData(e.data)},v=function(){return 0===S},d=function(){return S>0},w=function(){var e,t;return t=v(),S+=1,t?(e=function(){return d()?(up.emit("up:proxy:slow",{message:"Proxy is busy"}),R=!0):void 0},F=L.setTimer(c.slowDelay,e)):void 0},y=function(){return S-=1,v()&&R?(up.emit("up:proxy:recover",{message:"Proxy is idle"}),R=!1):void 0},b=function(e){return S<c.maxRequests?g(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},g=function(e){var n;return up.emit("up:proxy:load",L.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=L.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,L.contains(c.wrapMethods,e.method)&&(e.data=L.appendRequestData(e.data,c.wrapMethodParam,e.method),e.method="POST"),L.isFormData(e.data)&&(e.contentType=!1,e.processData=!1),n=t.ajax(e),n.done(function(t,n,r){return C(e,r)}),n.fail(function(t,n,r){return C(e,t)}),n},C=function(e,t){var n;return up.emit("up:proxy:received",L.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),A()},A=function(){var t,n;(t=D.shift())&&(n=g(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)}))},o=i.alias,P=i.set,T=i.remove,p=i.clear,h=function(e){return k(e),L.contains(c.safeMethods,e.method)},l=function(e){var t,r;return r=parseInt(L.presentAttr(e,"up-delay"))||c.preloadDelay,e.is(n)?void 0:(n=e,a(),t=function(){return $(e),n=null},U(t,r))},U=function(e,t){return x=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=L.options(n),o=up.link.followMethod(r,n),h({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),L.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:l(t)}),up.on("up:framework:reset",O),{preload:$,ajax:r,get:f,alias:o,clear:p,remove:T,isIdle:v,isBusy:d,isCachable:m,config:c,defaults:function(){return up.fail("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.whenConfirmed(t).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(e){},onAction=function(e,t){var n;return followVariantSelectors.push(e),n=function(e){return up.navigation.start(e,function(){return t(e)})},up.on("click","a"+e+", [up-href]"+e,function(e,t){return shouldProcessLinkEvent(e,t)?t.is("[up-instant]")?up.bus.haltEvent(e):(up.bus.consumeAction(e),n(t)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,t){return shouldProcessLinkEvent(e,t)?(up.bus.consumeAction(e),n(t)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-dash]",{priority:"last"},function(e){var t,n;return n=u.castedAttr(e,"up-dash"),e.removeAttr("up-dash"),t={"up-preload":"","up-instant":""},n===!0?makeFollowable(e):t["up-target"]=n,u.setMissingAttrs(e,t)}),up.macro("[up-expand]",{priority:"last"},function(e){var t,n,r,o,i,a,s,l,p,c;if(t=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(t=t.filter(p)),i=t.get(0)){for(c=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(c)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeField,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a,s,l;return n=$(e).closest("form"),t=u.options(t),s=u.option(t.target,n.attr("up-target"),"body"),l=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.data=up.util.requestDataFromForm(n),t=u.merge(t,up.motion.animateOptions(t,n)),i=n.find("input[type=file]").length,r=!i||u.isFormData(t.data),o=up.browser.canPushState()||t.history===!1,t.validate&&(t.headers||(t.headers={}),t.transition=!1,t.failTransition=!1,t.headers["X-Up-Validate"]=t.validate,!r)?u.unresolvablePromise():(up.navigation.start(n),r&&o?(a=up.replace(s,l,t),a.always(function(){return up.navigation.stop(n)}),a):(n.get(0).submit(),u.unresolvablePromise()))},observe=function(){var $element,$fields,callback,callbackArg,delay,destructors,extraArgs,options,rawCallback,selectorOrElement;return selectorOrElement=arguments[0],extraArgs=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===extraArgs.length?callbackArg=extraArgs[0]:extraArgs.length>1&&(options=u.options(extraArgs[0]),callbackArg=extraArgs[1]),$element=$(selectorOrElement),$fields=u.multiSelector(config.fields).findWithSelf($element),callback=null,rawCallback=u.option(callbackArg,u.presentAttr($fields,"up-observe")),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||up.fail("up.observe: No change callback given"),delay=u.option($fields.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),destructors=u.map($fields,function(e){return observeField($(e),delay,callback)}),u.sequence.apply(u,destructors)},observeField=function(e,t,n){var r,o,i,a,s,l;return a=u.submittedValue(e),l=void 0,i=u.resolvedPromise(),s=function(t){var r;return a=t,r=n.apply(e.get(0),[t,e]),i=u.isPromise(r)?r:r},o=function(){var n,r;return r=u.submittedValue(e),a!==r?(n=function(){return s(r)},null!=l&&l.cancel(),l=u.promiseTimer(t),$.when(l,i).then(n)):void 0},r="input change",up.browser.canInputEvent()||(r+=" keypress paste cut click propertychange"),e.on(r,o),function(){return e.off(r,o),null!=l?l.cancel():void 0}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),up.navigation.start(t,function(){return submit(n)})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||up.fail("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return up.bus.consumeAction(e),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets,autosubmit:autosubmit}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),
3
- function(){up.popup=function($){var align,attachAsap,attachNow,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,isOpen,reset,state,u;return u=up.util,config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),state=u.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,coveredUrl:null,coveredTitle:null}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$popup)&&e.remove(),state.reset(),chain.reset(),config.reset()},align=function(){var e,t,n;switch(e={},n=u.measure(state.$popup),u.isFixed(state.$anchor)?(t=state.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=u.measure(state.$anchor),state.position){case"bottom-right":e.top=t.top+t.height,e.left=t.left+t.width-n.width;break;case"bottom-left":e.top=t.top+t.height,e.left=t.left;break;case"top-right":e.top=t.top-n.height,e.left=t.left+t.width-n.width;break;case"top-left":e.top=t.top-n.height,e.left=t.left;break;default:up.fail("Unknown position option '%s'",state.position)}return state.$popup.attr("up-position",state.position),state.$popup.css(e)},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e){var t;return t=u.$createElementFromSelector(".up-popup"),u.$createPlaceholder(e,t),t.appendTo(document.body),state.$popup=t},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},attachAsap=function(e,t){var n;return n=function(){return attachNow(e,t)},isOpen()?chain.asap(closeNow,n):chain.asap(n),chain.promise()},attachNow=function(e,t){var n,r,o,i,a,s;return n=$(e),n.length||up.fail("Cannot attach popup to non-existing element %o",e),t=u.options(t),s=u.option(u.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=u.option(u.pluckKey(t,"html")),a=u.option(u.pluckKey(t,"target"),n.attr("up-popup"),"body"),i=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky"),config.sticky),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),t.method=up.link.followMethod(n,t),t.layer="popup",r=up.motion.animateOptions(t,n,{duration:config.openDuration,easing:config.openEasing}),up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:popup:open",{url:s,message:"Opening popup"}).then(function(){var e,l;return state.phase="opening",state.$anchor=n,state.position=i,t.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),state.sticky=t.sticky,t.beforeSwap=function(){return createFrame(a)},e=u.merge(t,{animation:!1}),l=o?up.extract(a,o,e):up.replace(a,s,e),l=l.then(function(){return align(),up.animate(state.$popup,t.animation,r)}),l=l.then(function(){return state.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t;return isOpen()?(e=u.options(e,{animation:config.closeAnimation,history:state.coveredUrl,title:state.coveredTitle}),t=up.motion.animateOptions(e,{duration:config.closeDuration,easing:config.closeEasing}),u.extend(e,t),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:state.$popup}).then(function(){return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,up.destroy(state.$popup,e).then(function(){return state.phase="closed",state.$popup=null,state.$anchor=null,state.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):u.resolvedPromise()},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?closeAsap():attachAsap(e)}),up.on("click up:action:consumed",function(e){var t;return t=$(e.target),t.closest(".up-popup, [up-popup]").length?void 0:closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(closeAsap),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attachAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var animate,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,extractAsap,flavor,flavorDefault,flavorOverrides,flavors,followAsap,isOpen,markAsAnimating,openAsap,openNow,reset,shiftElements,state,templateHtml,u,unshiftElements,visitAsap;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:null,closeDuration:null,openEasing:null,closeEasing:null,backdropOpenAnimation:"fade-in",backdropCloseAnimation:"fade-out",closeLabel:"\xd7",closable:!0,sticky:!1,flavor:"default",position:null,template:function(e){return'<div class="up-modal">\n <div class="up-modal-backdrop"></div>\n <div class="up-modal-viewport">\n <div class="up-modal-dialog">\n <div class="up-modal-content"></div>\n <div class="up-modal-close" up-close>'+e.closeLabel+"</div>\n </div>\n </div>\n</div>"}}),flavors=u.openConfig({"default":{}}),state=u.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,position:null,unshifters:[]}}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$modal)&&e.remove(),unshiftElements(),state.reset(),chain.reset(),config.reset(),flavors.reset()},templateHtml=function(){var e;return e=flavorDefault("template"),u.evalOption(e,{closeLabel:flavorDefault("closeLabel")})},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e,t){var n,r,o;return o=$(templateHtml()),o.attr("up-flavor",state.flavor),u.isPresent(state.position)&&o.attr("up-position",state.position),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),state.closable||o.find(".up-modal-close").remove(),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),state.$modal=o},shiftElements=function(){var e,t,n,r,o;return u.documentHasVerticalScrollbar()?(e=$("body"),r=u.scrollbarWidth(),t=parseInt(e.css("padding-right")),n=r+t,o=u.temporaryCss(e,{"padding-right":n+"px","overflow-y":"hidden"}),state.unshifters.push(o),up.layout.anchoredRight().each(function(){var e,t,n,o;return e=$(this),t=parseInt(e.css("right")),n=r+t,o=u.temporaryCss(e,{right:n}),state.unshifters.push(o)})):void 0},unshiftElements=function(){var e,t;for(e=[];t=state.unshifters.pop();)e.push(t());return e},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},followAsap=function(e,t){return t=u.options(t),t.$link=$(e),openAsap(t)},visitAsap=function(e,t){return t=u.options(t),t.url=e,openAsap(t)},extractAsap=function(e,t,n){return n=u.options(n),n.html=t,n.history=u.option(n.history,!1),n.target=e,openAsap(n)},openAsap=function(e){var t;return t=function(){return openNow(e)},isOpen()?chain.asap(closeNow,t):chain.asap(t),chain.promise()},openNow=function(e){var t,n,r,o,i;return e=u.options(e),t=u.option(u.pluckKey(e,"$link"),u.nullJQuery()),i=u.option(u.pluckKey(e,"url"),t.attr("up-href"),t.attr("href")),r=u.option(u.pluckKey(e,"html")),o=u.option(u.pluckKey(e,"target"),t.attr("up-modal"),"body"),e.flavor=u.option(e.flavor,t.attr("up-flavor"),config.flavor),e.position=u.option(e.position,t.attr("up-position"),flavorDefault("position",e.flavor)),e.position=u.evalOption(e.position,{$link:t}),e.width=u.option(e.width,t.attr("up-width"),flavorDefault("width",e.flavor)),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),flavorDefault("maxWidth",e.flavor)),e.height=u.option(e.height,t.attr("up-height"),flavorDefault("height")),e.animation=u.option(e.animation,t.attr("up-animation"),flavorDefault("openAnimation",e.flavor)),e.animation=u.evalOption(e.animation,{position:e.position}),e.backdropAnimation=u.option(e.backdropAnimation,t.attr("up-backdrop-animation"),flavorDefault("backdropOpenAnimation",e.flavor)),e.backdropAnimation=u.evalOption(e.backdropAnimation,{position:e.position}),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky"),flavorDefault("sticky",e.flavor)),e.closable=u.option(e.closable,u.castedAttr(t,"up-closable"),flavorDefault("closable",e.flavor)),e.confirm=u.option(e.confirm,t.attr("up-confirm")),e.method=up.link.followMethod(t,e),e.layer="modal",n=up.motion.animateOptions(e,t,{duration:flavorDefault("openDuration",e.flavor),easing:flavorDefault("openEasing",e.flavor)}),e.history=u.option(e.history,u.castedAttr(t,"up-history"),flavorDefault("history",e.flavor)),up.browser.canPushState()||(e.history=!1),up.browser.whenConfirmed(e).then(function(){return up.bus.whenEmitted("up:modal:open",{url:i,message:"Opening modal"}).then(function(){var t,a;return state.phase="opening",state.flavor=e.flavor,state.sticky=e.sticky,state.closable=e.closable,state.position=e.position,e.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),e.beforeSwap=function(){return createFrame(o,e)},t=u.merge(e,{animation:!1}),a=r?up.extract(o,r,t):up.replace(o,i,t),a=a.then(function(){return shiftElements(),animate(e.animation,e.backdropAnimation,n)}),a=a.then(function(){return state.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t,n,r,o;return isOpen()?(e=u.options(e),o=u.option(e.animation,flavorDefault("closeAnimation")),o=u.evalOption(o,{position:state.position}),n=u.option(e.backdropAnimation,flavorDefault("backdropCloseAnimation")),n=u.evalOption(n,{position:state.position}),t=up.motion.animateOptions(e,{duration:flavorDefault("closeDuration"),easing:flavorDefault("closeEasing")}),r=u.options(u.except(e,"animation","duration","easing","delay"),{history:state.coveredUrl,title:state.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:state.$modal,message:"Closing modal"}).then(function(){var e;return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,e=animate(o,n,t),e=e.then(function(){return up.destroy(state.$modal,r)}),e=e.then(function(){return unshiftElements(),state.phase="closed",state.$modal=null,state.flavor=null,state.sticky=null,state.closable=null,state.position=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):u.resolvedPromise()},markAsAnimating=function(e){return null==e&&(e=!0),state.$modal.toggleClass("up-modal-animating",e)},animate=function(e,t,n){var r;return up.motion.isNone(e)?u.resolvedPromise():(markAsAnimating(),r=$.when(up.animate(state.$modal.find(".up-modal-viewport"),e,n),up.animate(state.$modal.find(".up-modal-backdrop"),t,n)),r=r.then(function(){return markAsAnimating(!1)}))},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},flavor=function(e,t){return null==t&&(t={}),up.log.warn("The up.modal.flavor function is deprecated. Use the up.modal.flavors property instead."),u.extend(flavorOverrides(e),t)},flavorOverrides=function(e){return flavors[e]||(flavors[e]={})},flavorDefault=function(e,t){var n;return null==t&&(t=state.flavor),t&&(n=flavorOverrides(t)[e]),u.isMissing(n)&&(n=config[e]),n},up.link.onAction("[up-modal]",function(e){return followAsap(e)}),up.on("click",function(e){var t;if(state.closable)return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),closeAsap())}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin)&&!up.popup.contains(t))return autoclose()}),up.bus.onEscape(function(){return state.closable?closeAsap():void 0}),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.macro("[up-drawer]",function(e){var t;return t=e.attr("up-drawer"),e.attr({"up-modal":t,"up-flavor":"drawer"})}),flavors.drawer={openAnimation:function(e){switch(e.position){case"left":return"move-from-left";case"right":return"move-from-right"}},closeAnimation:function(e){switch(e.position){case"left":return"move-to-left";case"right":return"move-to-right"}},position:function(e){return u.isPresent(e.$link)?u.horizontalScreenHalf(e.$link):"left"}},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visitAsap,follow:followAsap,extract:extractAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,flavors:flavors,contains:contains,isOpen:isOpen,flavor:flavor}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,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 e;return null!=(e=c.$tooltip)&&e.remove(),c.reset(),o.reset(),a.reset()},t=function(){var e,t,n;switch(e={},n=f.measure(c.$tooltip),f.isFixed(c.$anchor)?(t=c.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=f.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),c.$tooltip.css(e)},s=function(e){var t;return t=f.$createElementFromSelector(".up-tooltip"),f.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),c.$tooltip=t},n=function(e,t){var n;return null==t&&(t={}),n=function(){return r(e,t)},l()?o.asap(u,n):o.asap(n),o.promise()},r=function(n,r){var o,i,u,l,p,d;return o=e(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),d=f.option(r.text,o.attr("up-tooltip")),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:d,html:l}),c.position=p,t(),up.animate(c.$tooltip,u,i).then(function(){return c.phase="opened"})},i=function(e){return l()&&o.asap(function(){return u(e)}),o.promise()},u=function(e){var t;return l()?(e=f.options(e,{animation:a.closeAnimation}),t=up.motion.animateOptions(e,{duration:a.closeDuration,easing:a.closeEasing}),f.extend(e,t),c.phase="closing",up.destroy(c.$tooltip,e).then(function(){return c.phase="closed",c.$tooltip=null,c.$anchor=null})):f.resolvedPromise()},l=function(){return"opening"===c.phase||"opened"===c.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseenter",function(){return n(e)}),e.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(e){return i()}),up.on("up:framework:reset",p),up.bus.onEscape(function(){return i()}),{config:a,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,i,u,a,s,l,p,c,f,d;return f=up.util,r=f.config({currentClasses:["up-current"]}),s=function(){return r.reset()},o=function(){var e;return e=r.currentClasses,e=e.concat(["up-current"]),e=f.uniq(e),e.join(" ")},t="up-active",n="a, [up-href]",a=function(e){return f.isPresent(e)?f.normalizeUrl(e):void 0},l=function(e){var t,n,r,o,i,u,s,l,p,c;for(l=[],u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(t=u[n],p=f.presentAttr(e,t))for(c="up-alias"===t?p.split(" "):[p],r=0,i=c.length;i>r;r++)s=c[r],"#"!==s&&(s=a(s),l.push(s));return l},d=function(e){var t,n,r,o;return e=f.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return f.contains(e,t)},n=function(t){return f.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return f.detect(e,r)},{matchesAny:o}},u=function(){var t,r;return t=d([a(up.browser.url()),a(up.modal.url()),a(up.modal.coveredUrl()),a(up.popup.url()),a(up.popup.coveredUrl())]),r=o(),f.each(e(n),function(n){var o,i;return o=e(n),i=l(o),t.matchesAny(i)?o.addClass(r):o.hasClass(r)&&0===o.closest(".up-destroying").length?o.removeClass(r):void 0})},i=function(t){var r;return r=e(t),r.is(n)&&(r=f.presence(r.parent(n))||r),r},p=function(e,n){var r,o;return r=i(e),r.addClass(t),n?(o=n(),f.isPromise(o)?o.always(function(){return c(r)}):up.warn("Expected block to return a promise, but got %o",o),o):void 0},c=function(e){var n;return n=i(e),up.emit("up:navigated",{$element:n,message:!1}),n.removeClass(t)},up.on("up:fragment:inserted",function(){return u()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?u():void 0}),up.on("up:framework:reset",s),{config:r,defaults:function(){return up.fail("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")},start:p,stop:c}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,i;return t="data-"+e,i="up-"+e,up.compiler("["+t+"]",function(e){var u;return n()&&o(e)?(u={},u[i]=e.attr(t),r.setMissingAttrs(e,u),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
1
+ (function(){var e;e="undefined"!=typeof global?global:this,e.up={version:"0.32.0"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,p,c,f,d,h,m,v,g,y,b,w,k,S,A,$,x,E,D,T,O,C,P,F,R,U,L,I,_,M,j,K,N,W,H,q,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,pe,ce,fe,de,he,me,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,Ee,De,Te,Oe,Ce,Pe,Fe,Re,Ue,Le,Ie,_e,Me,je,Ke,Ne,We,He,qe,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt,ot,it,ut,at,st,lt;return we=n.noop,he=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},ie=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},Se=function(e,t){var n,r,o;return n=Pe(e),r=n.protocol+"//"+n.hostname,ie(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},Pe=function(e){var t;return t=null,ue(e)?(t=n("<a>").attr({href:e}).get(0),W(t.hostname)&&(t.href=t.href)):t=ot(e),t},ke=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,p,c,f,d,h,m,v,g;for(v=e.split(/[ >]/),o=null,f=p=0,h=v.length;p<h;f=++p){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],c=null,d=0,m=u.length;d<m;d++)switch(s=u[d],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+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),re(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},Ve=function(e){var t,r,o,i,u,a,s,l,p;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),p=Ue(t.attr("up-id")))l="[up-id='"+p+"']";else if(i=Ue(t.attr("id")))l="#"+i;else if(s=Ue(t.attr("name")))l="[name='"+s+"']";else if(r=Ue(be(t)))for(l="",o=0,a=r.length;o<a;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},be=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Je(n,function(e){return re(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,p,c,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(c=e.match(f))&&(a=b("head"),s.appendChild(a),p=b("title",c[1]),a.appendChild(p)),s):b("div",e)},C=n.extend,rt=n.trim,x=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;n<i;r=++n)o=e[r],u.push(t(o,r));return u},fe=x,et=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;0<=o?n<=o:n>=o;r=0<=o?++n:--n)i.push(t(r));return i},ee=function(e){return null===e},ae=function(e){return void 0===e},q=function(e){return!ae(e)},Z=function(e){return ae(e)||ee(e)},X=function(e){return!Z(e)},W=function(e){return Z(e)||ne(e)&&0===Object.keys(e).length||0===e.length},Ue=function(e,t){return null==t&&(t=re),t(e)?e:void 0},re=function(e){return!W(e)},B=function(e){return"function"==typeof e},ue=function(e){return"string"==typeof e},te=function(e){return"number"==typeof e},G=function(e){return"object"==typeof e&&!!e},ne=function(e){return G(e)||"function"==typeof e},Q=function(e){return!(!e||1!==e.nodeType)},Y=function(e){return e instanceof jQuery},oe=function(e){return ne(e)&&B(e.then)},H=function(e){return oe(e)&&B(e.resolve)},N=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},V=function(e){return up.browser.canFormData()&&e instanceof FormData},nt=function(e){return Array.prototype.slice.call(e)},g=function(e){return N(e)?e.slice():G(e)?C({},e):void 0},ot=function(e){return Y(e)?e.get(0):e},me=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],C.apply(null,[{}].concat(e.call(t)))},Ce=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],X(i)?ne(n)&&ne(i)&&(o[r]=Ce(i,n)):o[r]=n;return o},Oe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],A(t,X)},A=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;r<o;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;r<o;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;r<o;r++)if(n=e[r],!t(n)){i=!1;break}return i},h=function(e){return Je(e,X)},it=function(e){var t;return t={},Je(e,function(e){return!t.hasOwnProperty(e)&&(t[e]=!0)})},Je=function(e,t){var n;return n=[],x(e,function(e){if(t(e))return n.push(e)}),n},Me=function(e,t){return Je(e,function(e){return!t(e)})},K=function(e,t){return Je(e,function(e){return v(t,e)})},Le=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;e<o;e++)n=r[e],i.push(t.attr(n));return i}(),A(o,re)},Ge=function(e,t){return e>0?setTimeout(t,e):void t()},ye=function(e){return setTimeout(e,0)},pe=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Qe=he(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),$=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},xe=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Ze=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):xe(i)},I=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),W(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},_=function(e){return e=ot(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,p,c,f;return o=n(e),r=Ce(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),qe()):(u=n.Deferred(),c=Object.keys(t),l={"transition-property":c.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),p=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;if(t=e.originalEvent.propertyName,v(c,t))return u.resolve(),p()},o.on("transitionend",s),u.then(p),f=I(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;if(o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]))return _(o),o.css(a)}),u)},i="up-animation-deferred",U=function(e){return n(e).each(function(){var e;if(e=Fe(this,i))return e.resolve()})},de=function(e,t){var r,o,i,u,a;return t=Ce(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;r<o;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},R=function(e,t){return e.find(t).addBack(t)},D=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},ce=function(e){return e.getResponseHeader("X-Up-Location")},tt=function(e){return e.getResponseHeader("X-Up-Title")},ve=function(e){return e.getResponseHeader("X-Up-Method")},Ee=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;n<r;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},O=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;n<r;n++)u=i[n],delete t[u];return t},se=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},le=function(e){var t;return t=ae(e.button)||0===e.button,t&&se(e)},qe=function(){var e;return e=n.Deferred(),e.resolve(),e},ze=function(){return qe().promise()},ut=function(){return n.Deferred()},at=function(){return ut().promise()},Ae=function(){return n()},He=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[qe()].concat(e.call(t))),r.resolve=he(function(){return x(t,function(e){return e.resolve()})}),r},Xe=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],Z(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},je=function(e,t){var n;if(n=e.indexOf(t),n>=0)return e.splice(n,1),t},ge=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;o<i;o++)a=e[o],ue(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=Ae(),a=u.parsed,o=0,i=a.length;o<i;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||Ae()},u},T=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],B(n)?n.apply(null,t):n},c=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,h,m;return null==t&&(t={}),h=void 0,c=function(){return T(t.size)},o=function(){return T(t.expiry)},f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==c()&&0!==o()},r=function(){return h={}},r(),l=function(){var n;if(n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix)return n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)},s=function(){return Object.keys(h)},p=function(){var e,t,n,r;if(r=g(s()),e=c(),e&&r.length>=e&&(t=null,n=null,x(r,function(e){var r,o;if(r=h[e],o=r.timestamp,!n||n>o)return t=e,n=o}),t))return delete h[t]},n=function(e,t){var n;if(n=i(e,{silent:!0}),q(n))return d(t,n)},m=function(){return(new Date).valueOf()},d=function(e,t){var n;if(u())return p(),n=f(e),h[n]={timestamp:m(),value:t}},je=function(e){var t;return t=f(e),delete h[t]},a=function(e){var t,n;return t=o(),!t||(n=m()-e.timestamp,n<t)},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=h[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void je(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:d,remove:je,clear:r,keys:s}},m=function(e){var t;return t=Te(e),Object.preventExtensions(t),t},Te=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,B(n)&&(n=n()),C(t,n)},t.reset(),t},st=function(e){var t,n;return e=ot(e),t=e.parentNode,n=nt(e.childNodes),x(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},$e=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},J=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},L=function(e,t){var r,o,i,u;return r=n(e),o=$e(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},Ke=function(e){var t,n,r,o,i,u,a;if(V(e))return up.fail("Cannot convert FormData into an array");for(u=Ne(e),t=[],a=u.split("&"),n=0,r=a.length;n<r;n++)i=a[n],re(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ne=function(e){var t;return V(e)?up.fail("Cannot convert FormData into a query string"):re(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},We=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},p=function(e,t,n){var r;return V(e)?e.append(t,n):N(e)?e.push({name:t,value:n}):ne(e)?e[t]=n:(ue(e)||Z(e))&&(r=Ne([{name:t,value:n}]),e=re(e)?[e,r].join("&"):r),e},F=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],N(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),lt().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"},E=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Re=function(e,t){var n;return n=e[t],delete e[t],n},Fe=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},P=function(e){var t;return t=pe(e),G(t)&&!Y(t)?e.pop():{}},De=function(e){var t;return t=n(e).css("opacity"),X(t)?parseFloat(t):void 0},lt=he(function(){var e;return n.isReady?ze():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),j=function(e){return e},z=function(e){return e=ot(e),!jQuery.contains(document.documentElement,e)},Ie=function(t){var r,o;return r=n.Deferred(),o=function(){var n,o;return n=1<=arguments.length?e.call(arguments,0):[],o=t.apply(null,n),oe(o)?o.then(function(){return r.resolve(o)}):r.resolve(o),o},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=fe(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;if(!this.currentTask&&(this.currentTask=this.queue.shift()))return e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=fe(t,Ie),this.poke()},r}(),Ye=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},Be=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return fe(t,function(e){return e()})}},_e=function(e){var t,r;return t=n.Deferred(),r=Ge(e,function(){return t.resolve()}),t.cancel=function(){return clearTimeout(r)},t},M=function(e){var t,n,r,o;return t=de(e),r=d(),n=t.left+.5*t.width,o=.5*r.width,n<o?"left":"right"},S=function(e,t){var r;return r=n("<div></div>"),r.insertAfter(e),e.detach(),r.replaceWith(t),e},{isDetached:z,requestDataAsArray:Ke,requestDataAsQuery:Ne,appendRequestData:p,requestDataFromForm:We,offsetParent:$e,fixedToAbsolute:L,isFixed:J,presentAttr:Le,createElement:b,parseUrl:Pe,normalizeUrl:Se,normalizeMethod:ke,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:Ve,extend:C,copy:g,merge:me,options:Ce,option:Oe,fail:F,each:x,map:fe,times:et,any:l,all:s,detect:A,select:Je,reject:Me,intersect:K,compact:h,uniq:it,last:pe,isNull:ee,isDefined:q,isUndefined:ae,isGiven:X,isMissing:Z,isPresent:re,isBlank:W,presence:Ue,isObject:ne,isFunction:B,isString:ue,isNumber:te,isElement:Q,isJQuery:Y,isPromise:oe,isDeferred:H,isHash:G,isArray:N,isFormData:V,isUnmodifiedKeyEvent:se,isUnmodifiedMouseEvent:le,nullJQuery:Ae,unJQuery:ot,setTimer:Ge,nextFrame:ye,measure:de,temporaryCss:Ze,cssAnimate:k,finishCssAnimate:U,forceCompositing:I,forceRepaint:_,escapePressed:D,copyAttributes:y,findWithSelf:R,contains:v,toArray:nt,castedAttr:f,locationFromXhr:ce,titleFromXhr:tt,methodFromXhr:ve,clientSize:d,only:Ee,except:O,trim:rt,unresolvableDeferred:ut,unresolvablePromise:at,resolvedPromise:ze,resolvedDeferred:qe,resolvableWhen:He,setMissingAttrs:Xe,remove:je,memoize:he,scrollbarWidth:Qe,documentHasVerticalScrollbar:$,config:m,openConfig:Te,cache:c,unwrapElement:st,multiSelector:ge,error:F,pluckData:Fe,pluckKey:Re,extractOptions:P,isDetached:z,noop:we,opacity:De,whenReady:lt,identity:j,escapeHtml:E,DivertibleChain:u,submittedValue:Ye,sequence:Be,promiseTimer:_e,previewable:Ie,evalOption:T,horizontalScreenHalf:M,detachWith:S}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,p;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;o<i;o++)n=s[o],(p=t.attr(n))&&(l+=" "+n+'="'+p+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||navigator.appVersion.indexOf("MSIE 9.")!==-1}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;e<t;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,consumeAction,emit,emitReset,forgetUpDescription,haltEvent,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener,whenEmitted;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||up.fail("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,n!==!1&&(u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n)?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),!t.isDefaultPrevented()||(up.puts("An observer prevented the event %s",e[0]),!1)},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},onEscape=function(e){return live("keydown","body",function(t){if(u.escapePressed(t))return e(t)})},haltEvent=function(e){return e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},consumeAction=function(e){if(haltEvent(e),"up:action:consumed"!==e.type)return emit("up:action:consumed",{$element:$(e.target),message:!1})},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;t<n;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;n<r;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){if(up.browser.isSupported())return up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})},live("up:framework:booted",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,whenEmitted:whenEmitted,onEscape:onEscape,emitReset:emitReset,haltEvent:haltEvent,consumeAction:consumeAction,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.log=function(){var t,n,r,o,i,u,a,s,l,p,c,f,d,h,m;return h=up.util,n=up.browser,t="up.log.enabled",r=h.config({prefix:"[UP] ",enabled:"true"===n.sessionStorage().getItem(t),collapse:!1}),f=function(){return r.reset()},l=function(e){return""+r.prefix+e},o=function(){var t,o;if(o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r.enabled&&o)return n.puts.apply(n,["debug",l(o)].concat(e.call(t)))},c=function(){var t,o;if(o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r.enabled&&o)return n.puts.apply(n,["log",l(o)].concat(e.call(t)))},m=function(){var t,o;if(o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r.enabled&&o)return n.puts.apply(n,["warn",l(o)].concat(e.call(t)))},s=function(){var t,o,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o=t.pop(),!r.enabled||!i)return o();u=r.collapse?"groupCollapsed":"group",n.puts.apply(n,[u,l(i)].concat(e.call(t)));try{return o()}finally{i&&n.puts("groupEnd")}},a=function(){var t,r;if(r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r)return n.puts.apply(n,["error",l(r)].concat(e.call(t)))},p=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=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",e)},up.on("up:framework:boot",p),up.on("up:framework:reset",f),d=function(e){return n.sessionStorage().setItem(t,e.toString()),r.enabled=e},u=function(){return d(!0)},i=function(){return d(!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 e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,p,c;return c=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+c.escapeHtml(e)+"</span>"},p=c.config({$toast:null}),l=function(){return i(),p.reset()},a=function(t){return c.isArray(t)?(t[0]=c.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=c.escapeHtml(t),t},u=function(){return!!p.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),p.$toast=s},i=function(){if(u())return p.$toast.remove(),p.$toast=null},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,h,m,v,g,y;return y=up.util,n="up-destructible",r="up-destructors",p=[],m=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[p].concat(e.call(t)))},h=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[m].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u,a,s,l,p;for(up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(p=y.isString(e.keep)?e.keep:"",t.attr("up-keep",p)),l=e.callback.apply(n,[t,c(t)]),a=f(l),s=[],i=0,u=a.length;i<u;i++)r=a[i],s.push(o(t,r));return s},f=function(e){return y.isFunction(e)?[e]:y.isArray(e)&&y.all(e,y.isFunction)?e:[]},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,c;for(s=[m,p],c=[],o=0,u=s.length;o<u;o++)a=s[o],c.push(function(){var o,u,s;for(s=[],o=0,u=a.length;o<u;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return c})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;if(e=t(this),i=e.data(r)){for(u=0,a=i.length;u<a;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)}})},c=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(p,e),y.each(m,e)},v=function(){var e;return e=function(e){return e.isDefault},p=y.select(p,e),m=y.select(m,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:h,compile:s,clean:a,data:c}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,p,c,f,d,h,m,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),p=void 0,u=void 0,h=function(){return n.reset(),p=void 0,u=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return u&&(p=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},c=function(e,t){if(t=v.options(t,{force:!1}),e=a(e),(t.force||!o(e))&&up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e}))return i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e})},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},t=function(){return{fromUp:!0}},m=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:p}),t=e.originalEvent.state,m(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){if(v.isPresent(p))return v.setMissingAttrs(e,{"up-href":p,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)}),up.on("up:framework:reset",h),{config:n,defaults:function(){return up.fail("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:c,replace:d,url:r,previousUrl:function(){return p},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;
2
+ return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal-viewport","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;if(e=$(this).data(SCROLL_PROMISE_KEY))return e.resolve()})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||up.fail("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,i;for(o=$(config.fixedTop.join(", ")),i=[],e=0,t=o.length;e<t;e++)r=o[e],i.push(n(r,"top"));return i}(),e=function(){var e,t,o,i;for(o=$(config.fixedBottom.join(", ")),i=[],e=0,t=o.length;e<t;e++)r=o[e],i.push(n(r,"bottom"));return i}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,h,m,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),h=u.option(t.snap,config.snap),v=r.is(document),m=v?u.clientSize().height:r.outerHeight(),c=r.scrollTop(),s=c,p=void 0,l=void 0,v?(l=measureObstruction(),p=0):(l={top:0,bottom:0},p=c),f=function(){return s+l.top},d=function(){return s+m-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+p,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),s<h&&o.top<.5*m&&(s=0),s!==c?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e,t){var n,r;return null==t&&(t={}),n=$(e),r=viewportSelector().seekUp(n),0===r.length&&t.strict!==!1&&up.fail("Could not find viewport for %o",n),r},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,i,u;for(i={},o=config.viewports,t=0,r=o.length;t<r;t++)u=o[t],e=$(u),e.length&&(n=u,u===document&&(n="document"),i[n]=e.scrollTop());return i},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i,a;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(a={},t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r,a.top=!0))),reveal(n,a)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return up.fail("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,config,destroy,emitFragmentInserted,emitFragmentKept,extract,filterScripts,findKeepPlan,findOldFragment,first,firstInLayer,firstInPriority,hello,isRealElement,layerOf,matchesLayer,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,reset,resolveSelector,setSource,shouldExtractTitle,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,config=u.config({runInlineScripts:!0,runLinkedScripts:!1}),reset=function(){return config.reset()},setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):up.fail("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a,s,l;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),l=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(s={url:t,method:n.method,data:n.data,target:l,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},n.inspectResponse=function(){return up.browser.loadPage(t,u.only(n,"method","data"))},a=up.ajax(s),i=function(e,r,o){return processResponse(!0,l,t,s,o,n)},o=function(e){return processResponse(!1,r,t,s,e,n)},a=a.then(i,o)):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,p;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),a="GET"===i.method,(p=u.locationFromXhr(o))?(n=p,e&&up.proxy.isCachable(r)&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),shouldExtractTitle(i)&&(i.title=u.titleFromXhr(o)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},shouldExtractTitle=function(e){return!(e.title===!1||u.isString(e.title)||e.history===!1&&e.title!==!0)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i;return n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),i=resolveSelector(e,n.origin),o=parseResponse(t,n),shouldExtractTitle(n)&&(n.title=o.title()),n.saveScroll!==!1&&up.layout.saveScroll(),r=u.resolvedPromise(),n.beforeSwap&&(r=r.then(n.beforeSwap)),r=r.then(function(){return updateHistory(n)}),r=r.then(function(){var e,t,r,u,a;for(a=[],r=parseImplantSteps(i,n),e=0,t=r.length;e<t;e++)u=r[e],up.log.group("Updating %s",u.selector,function(){var e,t,r;if(t=findOldFragment(u.selector,n),e=o.first(u.selector),t&&e)return filterScripts(e,n),r=swapElements(t,e,u.pseudoClass,u.transition,n),a.push(r),n.reveal=!1});return $.when.apply($,a)}),n.afterSwap&&(r=r.then(n.afterSwap)),r})},findOldFragment=function(e,t){return first(e,t)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n,r;if(t.requireMatch)return n=t.layer,"auto"===n&&(n="page, modal or popup"),r="Could not find selector %s in the current "+n,"#"===r[0]&&(r+=" (avoid using IDs)"),up.fail(r,e)},filterScripts=function(e,t){var n,r,o,i,a,s,l,p,c,f;for(p=u.option(t.runInlineScripts,config.runInlineScripts),c=u.option(t.runLinkedScripts,config.runLinkedScripts),r=u.findWithSelf(e,"script"),l=[],a=0,s=r.length;a<s;a++)f=r[a],n=$(f),i=u.isPresent(n.attr("src")),o=!i,i&&c||o&&p?l.push(void 0):l.push(n.remove());return l},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},first:function(r){var o,i;return(o=$.find(r,n)[0])?$(o):t.requireMatch?(i={label:"Open response",callback:t.inspectResponse},up.fail(["Could not find selector %s in response %o",r,e],{action:i})):void 0}}},updateHistory=function(e){if(e=u.options(e,{historyMethod:"push"}),e.history&&up.history[e.historyMethod](e.history),e.title)return document.title=e.title},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrapAll('<div class="up-insertion"></div>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)}),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),e.is("body")?(up.syntax.clean(e),e.replaceWith(t)):t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,p,c;if(a=[],n.keep)for(c=e.find("[up-keep]"),i=0,l=c.length;i<l;i++)s=c[i],r=$(s),(p=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),up.util.detachWith(r,o),p.$newElement.replaceWith(r),a.push(p));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;if(n.keep&&(r=e,(a=u.castedAttr(r,"up-keep"))&&(u.isString(a)||(a="&"),a=resolveSelector(a,r),o=n.descendantsOnly?t.find(a):u.findWithSelf(t,a),o=o.first(),o.length&&o.is("[up-keep]")&&(s={$element:r,$newElement:o,newData:up.syntax.data(o)},i=u.merge(s,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",i)))))return s},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,h;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),h=u.isString(h)?d.split(n):[d],l=[],o=i=0,a=r.length;i<a;o=++i)p=r[o],c=p.match(/^(.+?)(?:\:(before|after))?$/),c||up.fail('Could not parse selector atom "%s"',p),e=c[1],"html"===e&&(e="body"),s=c[2],f=h[o]||u.last(h),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;r<i;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;if(n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement)return t.focus()},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e,t){return t=u.options(t,{layer:"auto"}),"auto"===t.layer?firstInPriority(e,t.origin):firstInLayer(e,t.layer)},firstInPriority=function(e,t){var n,r,o,i,a,s;for(i=["popup","modal","page"],n=void 0,u.isPresent(t)&&(s=layerOf(t),u.remove(i,s),i.unshift(s)),r=0,a=i.length;r<a&&(o=i[r],!(n=firstInLayer(e,o)));r++);return n},firstInLayer=function(e,t){var n,r,o,i,u,a;for(r=$(e),o=void 0,u=0,a=r.length;u<a;u++)if(i=r[u],n=$(i),isRealElement(n)&&matchesLayer(n,t)){o=n;break}return o},layerOf=function(e){var t;return t=$(e),up.popup.contains(t)?"popup":up.modal.contains(t)?"modal":"page"},matchesLayer=function(e,t){return layerOf(e)===t},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),0===n.length?u.resolvedDeferred():up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),updateHistory(t),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("up:app:boot",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello,config:config}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){var e=[].slice;up.motion=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,h,m,v,g,y,b,w,k,S,A,$,x,E,D,T,O;return T=up.util,a={},p={},E={},c={},l=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return h(),a=T.copy(p),E=T.copy(c),l.reset()},v=function(){return l.enabled&&up.browser.canCssTransition()},o=function(e,n,r){var u;return u=t(e),h(u),r=i(r),"none"===n||n===!1||T.isMissing(n)?b():T.isFunction(n)?s(n(u,r),n):T.isString(n)?o(u,d(n),r):T.isHash(n)?v()?T.cssAnimate(u,n,r):(u.css(n),T.resolvedDeferred()):up.fail("Unknown animation type for %o",n)},i=function(){var t,n,r,o,i;return n=1<=arguments.length?e.call(arguments,0):[],i=n.shift()||{},t=T.isJQuery(n[0])?n.shift():T.nullJQuery(),o=T.isObject(n[0])?n.shift():{},r={},r.easing=T.option(i.easing,T.presentAttr(t,"up-easing"),o.easing,l.easing),r.duration=Number(T.option(i.duration,T.presentAttr(t,"up-duration"),o.duration,l.duration)),r.delay=Number(T.option(i.delay,T.presentAttr(t,"up-delay"),o.delay,l.delay)),r},d=function(e){return a[e]||up.fail("Unknown animation %o",e)},r="up-ghosting-deferred",n="up-ghosting",O=function(e,t,o,i){var u,a,s,l,p,c,f,d;return o.copy===!1||e.is(".up-ghost")||t.is(".up-ghost")?i(e,t):(c=void 0,l=void 0,f=void 0,p=void 0,a=up.layout.viewportOf(e),u=e.add(t),T.temporaryCss(t,{display:"none"},function(){return c=w(e,a),f=a.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(t,o),l=w(t,a),p=a.scrollTop()}),c.moveTop(p-f),e.hide(),d=T.temporaryCss(t,{opacity:"0"}),s=i(c.$ghost,l.$ghost),u.data(r,s),u.addClass(n),s.then(function(){return u.removeData(r),u.removeClass(n),d(),c.$bounds.remove(),l.$bounds.remove()}),s)},h=function(e){var r,o,i;return null==e&&(e=".up-animating"),o=t(e),r=T.findWithSelf(o,".up-animating"),T.finishCssAnimate(r),i=T.findWithSelf(o,"."+n),m(i)},m=function(e){return e.each(function(){var e,n;if(e=t(this),n=T.pluckData(e,r))return n.resolve()})},s=function(e,t){return T.isDeferred(e)?e:up.fail("Did not return a promise with .then and .resolve methods: %o",t)},y=function(e,n,r,u){var l,p;return"none"===r&&(r=!1),u=T.options(u),p=t(e),l=t(n),f(p,r),f(l,r),up.log.group(r?"Morphing %o to %o (using %s, %o)":void 0,p.get(0),l.get(0),r,u,function(){var e,t,n,c;return t=T.only(u,"reveal","restoreScroll","source"),t=T.extend(t,i(u)),v()?(h(p),h(l),r?(e=a[r])?(A(p,l,t),o(l,e,t)):(c=T.presence(r,T.isFunction)||E[r])?O(p,l,t,function(e,n){var o;return o=c(e,n,t),s(o,r)}):T.isString(r)&&r.indexOf("/")>=0?(n=r.split("/"),c=function(e,t,r){return S(o(e,n[0],r),o(t,n[1],r))},y(p,l,c,t)):up.fail("Unknown transition %o",r):A(p,l,t)):A(p,l,t)})},f=function(e,t){var n;if(t&&0===e.parents("body").length)return n=e.get(0),up.fail("Can't morph a <%s> element (%o)",n.tagName,n)},A=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},w=function(e,n){var r,o,i,u,a,s,l,p,c;for(u=T.measure(e,{relative:!0,inner:!0}),i=e.clone(),i.find("script").remove(),i.css({position:"static"===e.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=t('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),c=u.top,p=function(e){if(0!==e)return c+=e,r.css({top:c})},i.appendTo(r),r.insertBefore(e),p(e.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;s<l;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:p}},x=function(e,t){return E[e]=t},u=function(e,t){return a[e]=t},$=function(){return p=T.copy(a),c=T.copy(E)},S=T.resolvableWhen,b=T.resolvedDeferred,g=function(e){return e===!1||"none"===e||e===b},u("none",b),u("fade-in",function(e,t){return e.css({opacity:0}),o(e,{opacity:1},t)}),u("fade-out",function(e,t){return e.css({opacity:1}),o(e,{opacity:0},t)}),D=function(e,t){return{transform:"translate("+e+"px, "+t+"px)"}},u("move-to-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,0)),o(e,D(0,-r),t)}),u("move-from-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,-r)),o(e,D(0,0),t)}),u("move-to-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,0)),o(e,D(0,r),t)}),u("move-from-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,r)),o(e,D(0,0),t)}),u("move-to-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(0,0)),o(e,D(-r,0),t)}),u("move-from-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(-r,0)),o(e,D(0,0),t)}),u("move-to-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(0,0)),o(e,D(r,0),t)}),u("move-from-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(r,0)),o(e,D(0,0),t)}),u("roll-down",function(e,t){var n,r,i;return r=e.height(),i=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n=o(e,{height:r+"px"},t),n.then(i),n}),x("none",b),x("move-left",function(e,t,n){return S(o(e,"move-to-left",n),o(t,"move-from-right",n))}),x("move-right",function(e,t,n){return S(o(e,"move-to-right",n),o(t,"move-from-left",n))}),x("move-up",function(e,t,n){return S(o(e,"move-to-top",n),o(t,"move-from-bottom",n))}),x("move-down",function(e,t,n){return S(o(e,"move-to-bottom",n),o(t,"move-from-top",n))}),x("cross-fade",function(e,t,n){return S(o(e,"fade-out",n),o(t,"fade-in",n))}),up.on("up:framework:booted",$),up.on("up:framework:reset",k),{morph:y,animate:o,animateOptions:i,finish:h,transition:x,animation:u,config:l,isEnabled:v,defaults:function(){return up.fail("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:b,when:S,prependCopy:w,isNone:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,i,u,a,s,l,p,c,f,d,h,m,v,g,y,b,w,k,S,A,$,x,E,D,T,O,C,P,F,R,U,L;return L=up.util,n=void 0,x=void 0,F=void 0,S=void 0,R=void 0,D=[],c=L.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),u=function(e){return k(e),[e.url,e.method,L.requestDataAsQuery(e.data),e.target].join("|")},i=L.cache({size:function(){return c.cacheSize},expiry:function(){return c.cacheExpiry},key:u}),f=function(e){var t,n,r,o,u,a,s;if(e=k(e),h(e))for(n=[e],"html"!==e.target&&(a=L.merge(e,{target:"html"}),n.push(a),"body"!==e.target&&(u=L.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;r<o;r++)if(t=n[r],s=i.get(t))return s},a=function(){return clearTimeout(x),x=null},s=function(){return clearTimeout(F),F=null},O=function(){return n=null,a(),s(),S=0,c.reset(),i.clear(),R=!1,D=[]},O(),k=function(e){return e._normalized||(e.method=L.normalizeMethod(e.method),e.url&&(e.url=L.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(){var t,n,r,o,i,u,a;return t=1<=arguments.length?e.call(arguments,0):[],o=L.extractOptions(t),L.isGiven(t[0])&&(o.url=t[0]),n=o.cache===!0,r=o.cache===!1,a=L.only(o,"url","method","data","target","headers","_normalized"),a=k(a),i=!0,m(a)||n?(u=f(a))&&!r?(up.puts("Re-using cached response for %s %s",a.method,a.url),i="pending"===u.state()):(u=b(a),P(a,u),u.fail(function(){return T(a)})):(p(),u=b(a)),i&&!o.preload&&(w(),u.always(y)),u},h=function(e){return!L.isFormData(e.data)},v=function(){return 0===S},d=function(){return S>0},w=function(){var e,t;if(t=v(),S+=1,t)return e=function(){if(d())return up.emit("up:proxy:slow",{message:"Proxy is busy"}),R=!0},F=L.setTimer(c.slowDelay,e)},y=function(){if(S-=1,v()&&R)return up.emit("up:proxy:recover",{message:"Proxy is idle"}),R=!1},b=function(e){return S<c.maxRequests?g(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},g=function(e){var n;return up.emit("up:proxy:load",L.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=L.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,L.contains(c.wrapMethods,e.method)&&(e.data=L.appendRequestData(e.data,c.wrapMethodParam,e.method),e.method="POST"),L.isFormData(e.data)&&(e.contentType=!1,e.processData=!1),n=t.ajax(e),n.done(function(t,n,r){return C(e,r)}),n.fail(function(t){return C(e,t)}),n},C=function(e,t){var n;return up.emit("up:proxy:received",L.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),A()},A=function(){var t,n;(t=D.shift())&&(n=g(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)}))},o=i.alias,P=i.set,T=i.remove,p=i.clear,m=function(e){return k(e),L.contains(c.safeMethods,e.method)},l=function(e){var t,r;if(r=parseInt(L.presentAttr(e,"up-delay"))||c.preloadDelay,!e.is(n))return n=e,a(),t=function(){return $(e),n=null},U(t,r)},U=function(e,t){return x=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=L.options(n),o=up.link.followMethod(r,n),m({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),L.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){if(!up.link.childClicked(e,t))return l(t)}),up.on("up:framework:reset",O),{preload:$,ajax:r,get:f,alias:o,clear:p,remove:T,isIdle:v,isBusy:d,isCachable:h,config:c,defaults:function(){return up.fail("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.whenConfirmed(t).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(){},onAction=function(e,t){var n;return followVariantSelectors.push(e),n=function(e){return up.navigation.start(e,function(){return t(e)})},up.on("click","a"+e+", [up-href]"+e,function(e,t){return shouldProcessLinkEvent(e,t)?t.is("[up-instant]")?up.bus.haltEvent(e):(up.bus.consumeAction(e),n(t)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,t){if(shouldProcessLinkEvent(e,t))return up.bus.consumeAction(e),n(t)})},isFollowable=function(e){var t;return t=$(e),u.any(followVariantSelectors,function(e){return t.is(e)})},makeFollowable=function(e){var t;if(t=$(e),!isFollowable(t))return t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-dash]",{priority:"last"},function(e){var t,n;return n=u.castedAttr(e,"up-dash"),e.removeAttr("up-dash"),t={"up-preload":"","up-instant":""},n===!0?makeFollowable(e):t["up-target"]=n,u.setMissingAttrs(e,t)}),up.macro("[up-expand]",{priority:"last"},function(e){var t,n,r,o,i,a,s,l,p,c;if(t=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(t=t.filter(p)),i=t.get(0)){for(c=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;r<o;r++)n=l[r],a=n.name,a.match(c)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,isFollowable:isFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeField,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a,s,l;return n=$(e).closest("form"),t=u.options(t),s=u.option(t.target,n.attr("up-target"),"body"),l=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.data=up.util.requestDataFromForm(n),t=u.merge(t,up.motion.animateOptions(t,n)),i=n.find("input[type=file]").length,r=!i||u.isFormData(t.data),o=up.browser.canPushState()||t.history===!1,t.validate&&(t.headers||(t.headers={}),t.transition=!1,t.failTransition=!1,t.headers["X-Up-Validate"]=t.validate,!r)?u.unresolvablePromise():(up.navigation.start(n),r&&o?(a=up.replace(s,l,t),a.always(function(){return up.navigation.stop(n)}),a):(n.get(0).submit(),u.unresolvablePromise()))},observe=function(){var $element,$fields,callback,callbackArg,delay,destructors,extraArgs,options,rawCallback,selectorOrElement;return selectorOrElement=arguments[0],extraArgs=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===extraArgs.length?callbackArg=extraArgs[0]:extraArgs.length>1&&(options=u.options(extraArgs[0]),callbackArg=extraArgs[1]),$element=$(selectorOrElement),$fields=u.multiSelector(config.fields).findWithSelf($element),callback=null,rawCallback=u.option(callbackArg,u.presentAttr($fields,"up-observe")),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||up.fail("up.observe: No change callback given"),delay=u.option($fields.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),destructors=u.map($fields,function(e){return observeField($(e),delay,callback)}),u.sequence.apply(u,destructors)},observeField=function(e,t,n){var r,o,i,a,s,l;return a=u.submittedValue(e),l=void 0,i=u.resolvedPromise(),s=function(t){var r;return a=t,r=n.apply(e.get(0),[t,e]),i=u.isPromise(r)?r:r},o=function(){var n,r;if(r=u.submittedValue(e),a!==r)return n=function(){return s(r)},null!=l&&l.cancel(),l=u.promiseTimer(t),$.when(l,i).then(n)},r="input change",up.browser.canInputEvent()||(r+=" keypress paste cut click propertychange"),e.on(r,o),function(){return e.off(r,o),null!=l?l.cancel():void 0}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),up.navigation.start(t,function(){return submit(n)})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||up.fail("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return up.bus.consumeAction(e),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets,autosubmit:autosubmit}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),
3
+ function(){up.popup=function($){var align,attachAsap,attachNow,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,isOpen,reset,state,u;return u=up.util,config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),state=u.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,coveredUrl:null,coveredTitle:null}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$popup)&&e.remove(),state.reset(),chain.reset(),config.reset()},align=function(){var e,t,n;switch(e={},n=u.measure(state.$popup),u.isFixed(state.$anchor)?(t=state.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=u.measure(state.$anchor),state.position){case"bottom-right":e.top=t.top+t.height,e.left=t.left+t.width-n.width;break;case"bottom-left":e.top=t.top+t.height,e.left=t.left;break;case"top-right":e.top=t.top-n.height,e.left=t.left+t.width-n.width;break;case"top-left":e.top=t.top-n.height,e.left=t.left;break;default:up.fail("Unknown position option '%s'",state.position)}return state.$popup.attr("up-position",state.position),state.$popup.css(e)},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e){var t;return t=u.$createElementFromSelector(".up-popup"),u.$createPlaceholder(e,t),t.appendTo(document.body),state.$popup=t},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},attachAsap=function(e,t){var n;return n=function(){return attachNow(e,t)},isOpen()?chain.asap(closeNow,n):chain.asap(n),chain.promise()},attachNow=function(e,t){var n,r,o,i,a,s;return n=$(e),n.length||up.fail("Cannot attach popup to non-existing element %o",e),t=u.options(t),s=u.option(u.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=u.option(u.pluckKey(t,"html")),a=u.option(u.pluckKey(t,"target"),n.attr("up-popup"),"body"),i=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky"),config.sticky),t.history=!!up.browser.canPushState()&&u.option(t.history,u.castedAttr(n,"up-history"),config.history),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t.method=up.link.followMethod(n,t),t.layer="popup",r=up.motion.animateOptions(t,n,{duration:config.openDuration,easing:config.openEasing}),up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:popup:open",{url:s,message:"Opening popup"}).then(function(){var e,l;return state.phase="opening",state.$anchor=n,state.position=i,t.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),state.sticky=t.sticky,t.beforeSwap=function(){return createFrame(a)},e=u.merge(t,{animation:!1}),l=o?up.extract(a,o,e):up.replace(a,s,e),l=l.then(function(){return align(),up.animate(state.$popup,t.animation,r)}),l=l.then(function(){return state.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t;return isOpen()?(e=u.options(e,{animation:config.closeAnimation,history:state.coveredUrl,title:state.coveredTitle}),t=up.motion.animateOptions(e,{duration:config.closeDuration,easing:config.closeEasing}),u.extend(e,t),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:state.$popup}).then(function(){return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,up.destroy(state.$popup,e).then(function(){return state.phase="closed",state.$popup=null,state.$anchor=null,state.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):u.resolvedPromise()},autoclose=function(){if(!state.sticky)return discardHistory(),closeAsap()},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?closeAsap():attachAsap(e)}),up.on("click up:action:consumed",function(e){var t;if(t=$(e.target),!t.closest(".up-popup, [up-popup]").length)return closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(closeAsap),up.on("click",".up-popup [up-close]",function(e){return closeAsap(),up.bus.consumeAction(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attachAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var animate,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,extractAsap,flavor,flavorDefault,flavorOverrides,flavors,followAsap,isOpen,markAsAnimating,openAsap,openNow,reset,shiftElements,state,templateHtml,u,unshiftElements,visitAsap;return u=up.util,config=u.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(e){return'<div class="up-modal">\n <div class="up-modal-backdrop"></div>\n <div class="up-modal-viewport">\n <div class="up-modal-dialog">\n <div class="up-modal-content"></div>\n <div class="up-modal-close" up-close>'+e.closeLabel+"</div>\n </div>\n </div>\n</div>"}}),flavors=u.openConfig({"default":{}}),state=u.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,position:null,unshifters:[]}}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$modal)&&e.remove(),unshiftElements(),state.reset(),chain.reset(),config.reset(),flavors.reset()},templateHtml=function(){var e;return e=flavorDefault("template"),u.evalOption(e,{closeLabel:flavorDefault("closeLabel")})},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e,t){var n,r,o;return o=$(templateHtml()),o.attr("up-flavor",state.flavor),u.isPresent(state.position)&&o.attr("up-position",state.position),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),state.closable||o.find(".up-modal-close").remove(),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),state.$modal=o},shiftElements=function(){var e,t,n,r,o;if(u.documentHasVerticalScrollbar())return e=$("body"),r=u.scrollbarWidth(),t=parseInt(e.css("padding-right")),n=r+t,o=u.temporaryCss(e,{"padding-right":n+"px","overflow-y":"hidden"}),state.unshifters.push(o),up.layout.anchoredRight().each(function(){var e,t,n,o;return e=$(this),t=parseInt(e.css("right")),n=r+t,o=u.temporaryCss(e,{right:n}),state.unshifters.push(o)})},unshiftElements=function(){var e,t;for(e=[];t=state.unshifters.pop();)e.push(t());return e},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},followAsap=function(e,t){return t=u.options(t),t.$link=$(e),openAsap(t)},visitAsap=function(e,t){return t=u.options(t),t.url=e,openAsap(t)},extractAsap=function(e,t,n){return n=u.options(n),n.html=t,n.history=u.option(n.history,!1),n.target=e,openAsap(n)},openAsap=function(e){var t;return t=function(){return openNow(e)},isOpen()?chain.asap(closeNow,t):chain.asap(t),chain.promise()},openNow=function(e){var t,n,r,o,i;return e=u.options(e),t=u.option(u.pluckKey(e,"$link"),u.nullJQuery()),i=u.option(u.pluckKey(e,"url"),t.attr("up-href"),t.attr("href")),r=u.option(u.pluckKey(e,"html")),o=u.option(u.pluckKey(e,"target"),t.attr("up-modal"),"body"),e.flavor=u.option(e.flavor,t.attr("up-flavor"),config.flavor),e.position=u.option(e.position,t.attr("up-position"),flavorDefault("position",e.flavor)),e.position=u.evalOption(e.position,{$link:t}),e.width=u.option(e.width,t.attr("up-width"),flavorDefault("width",e.flavor)),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),flavorDefault("maxWidth",e.flavor)),e.height=u.option(e.height,t.attr("up-height"),flavorDefault("height")),e.animation=u.option(e.animation,t.attr("up-animation"),flavorDefault("openAnimation",e.flavor)),e.animation=u.evalOption(e.animation,{position:e.position}),e.backdropAnimation=u.option(e.backdropAnimation,t.attr("up-backdrop-animation"),flavorDefault("backdropOpenAnimation",e.flavor)),e.backdropAnimation=u.evalOption(e.backdropAnimation,{position:e.position}),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky"),flavorDefault("sticky",e.flavor)),e.closable=u.option(e.closable,u.castedAttr(t,"up-closable"),flavorDefault("closable",e.flavor)),e.confirm=u.option(e.confirm,t.attr("up-confirm")),e.method=up.link.followMethod(t,e),e.layer="modal",n=up.motion.animateOptions(e,t,{duration:flavorDefault("openDuration",e.flavor),easing:flavorDefault("openEasing",e.flavor)}),e.history=u.option(e.history,u.castedAttr(t,"up-history"),flavorDefault("history",e.flavor)),up.browser.canPushState()||(e.history=!1),up.browser.whenConfirmed(e).then(function(){return up.bus.whenEmitted("up:modal:open",{url:i,message:"Opening modal"}).then(function(){var t,a;return state.phase="opening",state.flavor=e.flavor,state.sticky=e.sticky,state.closable=e.closable,state.position=e.position,e.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),e.beforeSwap=function(){return createFrame(o,e)},t=u.merge(e,{animation:!1}),a=r?up.extract(o,r,t):up.replace(o,i,t),a=a.then(function(){return shiftElements(),animate(e.animation,e.backdropAnimation,n)}),a=a.then(function(){return state.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t,n,r,o;return isOpen()?(e=u.options(e),o=u.option(e.animation,flavorDefault("closeAnimation")),o=u.evalOption(o,{position:state.position}),n=u.option(e.backdropAnimation,flavorDefault("backdropCloseAnimation")),n=u.evalOption(n,{position:state.position}),t=up.motion.animateOptions(e,{duration:flavorDefault("closeDuration"),easing:flavorDefault("closeEasing")}),r=u.options(u.except(e,"animation","duration","easing","delay"),{history:state.coveredUrl,title:state.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:state.$modal,message:"Closing modal"}).then(function(){var e;return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,e=animate(o,n,t),e=e.then(function(){return up.destroy(state.$modal,r)}),e=e.then(function(){return unshiftElements(),state.phase="closed",state.$modal=null,state.flavor=null,state.sticky=null,state.closable=null,state.position=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):u.resolvedPromise()},markAsAnimating=function(e){return null==e&&(e=!0),state.$modal.toggleClass("up-modal-animating",e)},animate=function(e,t,n){var r;return up.motion.isNone(e)?u.resolvedPromise():(markAsAnimating(),r=$.when(up.animate(state.$modal.find(".up-modal-viewport"),e,n),up.animate(state.$modal.find(".up-modal-backdrop"),t,n)),r=r.then(function(){return markAsAnimating(!1)}))},autoclose=function(){if(!state.sticky)return discardHistory(),closeAsap()},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},flavor=function(e,t){return null==t&&(t={}),up.log.warn("The up.modal.flavor function is deprecated. Use the up.modal.flavors property instead."),u.extend(flavorOverrides(e),t)},flavorOverrides=function(e){return flavors[e]||(flavors[e]={})},flavorDefault=function(e,t){var n;return null==t&&(t=state.flavor),t&&(n=flavorOverrides(t)[e]),u.isMissing(n)&&(n=config[e]),n},up.link.onAction("[up-modal]",function(e){return followAsap(e)}),up.on("click",function(e){var t;if(state.closable)return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),closeAsap())}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin)&&!up.popup.contains(t))return autoclose()}),up.bus.onEscape(function(){if(state.closable)return closeAsap()}),up.on("click",".up-modal [up-close]",function(e){return closeAsap(),up.bus.consumeAction(e)}),up.macro("[up-drawer]",function(e){var t;return t=e.attr("up-drawer"),e.attr({"up-modal":t,"up-flavor":"drawer"})}),flavors.drawer={openAnimation:function(e){switch(e.position){case"left":return"move-from-left";case"right":return"move-from-right"}},closeAnimation:function(e){switch(e.position){case"left":return"move-to-left";case"right":return"move-to-right"}},position:function(e){return u.isPresent(e.$link)?u.horizontalScreenHalf(e.$link):"left"}},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visitAsap,follow:followAsap,extract:extractAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,flavors:flavors,contains:contains,isOpen:isOpen,flavor:flavor}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,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 e;return null!=(e=c.$tooltip)&&e.remove(),c.reset(),o.reset(),a.reset()},t=function(){var e,t,n;switch(e={},n=f.measure(c.$tooltip),f.isFixed(c.$anchor)?(t=c.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=f.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),c.$tooltip.css(e)},s=function(e){var t;return t=f.$createElementFromSelector(".up-tooltip"),f.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),c.$tooltip=t},n=function(e,t){var n;return null==t&&(t={}),n=function(){return r(e,t)},l()?o.asap(u,n):o.asap(n),o.promise()},r=function(n,r){var o,i,u,l,p,d;return o=e(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),d=f.option(r.text,o.attr("up-tooltip")),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:d,html:l}),c.position=p,t(),up.animate(c.$tooltip,u,i).then(function(){return c.phase="opened"})},i=function(e){return l()&&o.asap(function(){return u(e)}),o.promise()},u=function(e){var t;return l()?(e=f.options(e,{animation:a.closeAnimation}),t=up.motion.animateOptions(e,{duration:a.closeDuration,easing:a.closeEasing}),f.extend(e,t),c.phase="closing",up.destroy(c.$tooltip,e).then(function(){return c.phase="closed",c.$tooltip=null,c.$anchor=null})):f.resolvedPromise()},l=function(){return"opening"===c.phase||"opened"===c.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseenter",function(){return n(e)}),e.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(){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(){up.navigation=function(e){var t,n,r,o,i,u,a,s,l,p,c,f,d;return f=up.util,r=f.config({currentClasses:["up-current"]}),s=function(){return r.reset()},o=function(){var e;return e=r.currentClasses,e=e.concat(["up-current"]),e=f.uniq(e),e.join(" ")},t="up-active",n="a, [up-href]",a=function(e){if(f.isPresent(e))return f.normalizeUrl(e)},l=function(e){var t,n,r,o,i,u,s,l,p,c;for(l=[],u=["href","up-href","up-alias"],n=0,o=u.length;n<o;n++)if(t=u[n],p=f.presentAttr(e,t))for(c="up-alias"===t?p.split(" "):[p],r=0,i=c.length;r<i;r++)s=c[r],"#"!==s&&(s=a(s),l.push(s));return l},d=function(e){var t,n,r,o;return e=f.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return f.contains(e,t)},n=function(t){return f.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return f.detect(e,r)},{matchesAny:o}},u=function(){var t,r;return t=d([a(up.browser.url()),a(up.modal.url()),a(up.modal.coveredUrl()),a(up.popup.url()),a(up.popup.coveredUrl())]),r=o(),f.each(e(n),function(n){var o,i;return o=e(n),i=l(o),t.matchesAny(i)?o.addClass(r):o.hasClass(r)&&0===o.closest(".up-destroying").length?o.removeClass(r):void 0})},i=function(t){var r;return r=e(t),r.is(n)&&(r=f.presence(r.parent(n))||r),r},p=function(e,n){var r,o;if(r=i(e),r.addClass(t),n)return o=n(),f.isPromise(o)?o.always(function(){return c(r)}):up.warn("Expected block to return a promise, but got %o",o),o},c=function(e){var n;return n=i(e),up.emit("up:navigated",{$element:n,message:!1}),n.removeClass(t)},up.on("up:fragment:inserted",function(){return u()}),up.on("up:fragment:destroyed",function(e,t){if(t.is(".up-modal, .up-popup"))return u()}),up.on("up:framework:reset",s),{config:r,defaults:function(){return up.fail("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")},start:p,stop:c}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,i;return t="data-"+e,i="up-"+e,up.compiler("["+t+"]",function(e){var u;if(n()&&o(e))return u={},u[i]=e.attr(t),r.setMissingAttrs(e,u),e.removeAttr(t)})}),t=function(){if(n())return{name:e.rails.csrfParam(),value:e.rails.csrfToken()}},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
@@ -261,7 +261,7 @@ up.browser = (($) ->
261
261
 
262
262
  # Server-side companion libraries like unpoly-rails set this cookie so we
263
263
  # have a way to detect the request method of the initial page load.
264
- # There is no Javascript API for this.
264
+ # There is no JavaScript API for this.
265
265
  initialRequestMethod = u.memoize ->
266
266
  (popCookie('_up_request_method') || 'get').toLowerCase()
267
267
 
@@ -36,8 +36,8 @@ use the more convenient [`up.on`](/up.on):
36
36
  This improves jQuery's [`on`](http://api.jquery.com/on/) in multiple ways:
37
37
 
38
38
  - Event listeners on [unsupported browsers](/up.browser.isSupported) are silently discarded,
39
- leaving you with an application without Javascript. This is typically preferable to
40
- a soup of randomly broken Javascript in ancient browsers.
39
+ leaving you with an application without JavaScript. This is typically preferable to
40
+ a soup of randomly broken JavaScript in ancient browsers.
41
41
  - A jQuery object with the target element is automatically passed to the event handler
42
42
  as a second argument. You no longer need to write `$(this)` in the handler function.
43
43
  - You use an [`up-data`](/up-data) attribute to [attach structured data](/up.on#attaching-structured-data)
@@ -424,7 +424,7 @@ up.bus = (($) ->
424
424
  ###*
425
425
  Boots the Unpoly framework.
426
426
 
427
- **This is called automatically** by including the Unpoly Javascript files.
427
+ **This is called automatically** by including the Unpoly JavaScript files.
428
428
 
429
429
  Unpoly will not boot if the current browser is [not supported](/up.browser.isSupported).
430
430
  This leaves you with a classic server-side application on legacy browsers.
@@ -1,12 +1,12 @@
1
1
  ###*
2
- Changing page fragments programmatically
3
- ========================================
2
+ Fragment update API
3
+ ===================
4
4
 
5
5
  This module contains Unpoly's core functions to [change](/up.replace) or
6
- [destroy](/up.destroy) page fragments via Javascript.
6
+ [destroy](/up.destroy) page fragments via JavaScript.
7
7
 
8
- All the other Unpoly modules (like [`up.link`](/up.link) or [`up.modal`](/up.modal))
9
- are based on this module.
8
+ Other Unpoly modules (like [`up.link`](/up.link) or [`up.modal`](/up.modal))
9
+ build upon this module to offer higher level API functions.
10
10
 
11
11
  @class up.flow
12
12
  ###
@@ -22,7 +22,7 @@ up.flow = (($) ->
22
22
  Whether inline `<script>` tags inside inserted HTML fragments will be executed.
23
23
  @param {Boolean} [options.runLinkedScripts=false]
24
24
  Whether `<script src='...'>` tags inside inserted HTML fragments will fetch and execute
25
- the linked Javascript file.
25
+ the linked JavaScript file.
26
26
  @stable
27
27
  ###
28
28
  config = u.config
@@ -332,7 +332,7 @@ up.flow = (($) ->
332
332
  @return {Promise}
333
333
  A promise that will be resolved then the selector was updated
334
334
  and all animation has finished.
335
- @experimental
335
+ @stable
336
336
  ###
337
337
  extract = (selectorOrElement, html, options) ->
338
338
  up.log.group 'Extracting %s from %d bytes of HTML', selectorOrElement, html?.length, ->
@@ -449,6 +449,8 @@ up.flow = (($) ->
449
449
  promise = promise.then -> u.unwrapElement($wrapper)
450
450
 
451
451
  else if keepPlan = findKeepPlan($old, $new, options)
452
+ # Since we're keeping the element that was requested to be swapped,
453
+ # there is nothing left to do here.
452
454
  emitFragmentKept(keepPlan)
453
455
  promise = u.resolvedPromise()
454
456
 
@@ -499,7 +501,9 @@ up.flow = (($) ->
499
501
  # $old and $new. Note that $keepable will still point to the same element
500
502
  # after the replacement, which is now detached.
501
503
  $keepableClone = $keepable.clone()
502
- $keepable.replaceWith($keepableClone)
504
+ up.util.detachWith($keepable, $keepableClone)
505
+
506
+ # $keepable.replaceWith($keepableClone)
503
507
  # Since we're going to swap the entire $old and $new containers afterwards,
504
508
  # replace the matching element with $keepable so it will eventually return to the DOM.
505
509
  plan.$newElement.replaceWith($keepable)
@@ -518,13 +522,13 @@ up.flow = (($) ->
518
522
  $partner = u.findWithSelf($new, partnerSelector)
519
523
  $partner = $partner.first()
520
524
  if $partner.length && $partner.is('[up-keep]')
521
- description =
525
+ plan =
522
526
  $element: $keepable # the element that should be kept
523
527
  $newElement: $partner # the element that would have replaced it but now does not
524
528
  newData: up.syntax.data($partner) # the parsed up-data attribute of the element we will discard
525
- keepEventArgs = u.merge(description, message: ['Keeping element %o', $keepable.get(0)])
529
+ keepEventArgs = u.merge(plan, message: ['Keeping element %o', $keepable.get(0)])
526
530
  if up.bus.nobodyPrevents('up:fragment:keep', keepEventArgs)
527
- description
531
+ plan
528
532
 
529
533
  ###*
530
534
  Elements with an `up-keep` attribute will be persisted during
@@ -221,7 +221,7 @@ up.form = (($) ->
221
221
  @param {Function(value, $field)|String} onChange
222
222
  The callback to run when the field's value changes.
223
223
  If given as a function, it must take two arguments (`value`, `$field`).
224
- If given as a string, it will be evaled as Javascript code in a context where
224
+ If given as a string, it will be evaled as JavaScript code in a context where
225
225
  (`value`, `$field`) are set.
226
226
  @return {Function}
227
227
  A destructor function that removes the observe watch when called.
@@ -186,7 +186,7 @@ up.layout = (($) ->
186
186
  element are visible for the user.
187
187
 
188
188
  By default Unpoly will always reveal an element before
189
- updating it with Javascript functions like [`up.replace`](/up.replace)
189
+ updating it with JavaScript functions like [`up.replace`](/up.replace)
190
190
  or UJS behavior like [`[up-target]`](/a-up-target).
191
191
 
192
192
  \#\#\# How Unpoly finds the viewport
@@ -233,7 +233,7 @@ up.layout = (($) ->
233
233
  snap = u.option(options.snap, config.snap)
234
234
 
235
235
  viewportIsDocument = $viewport.is(document)
236
- viewportHeight = if viewportIsDocument then u.clientSize().height else $viewport.height()
236
+ viewportHeight = if viewportIsDocument then u.clientSize().height else $viewport.outerHeight()
237
237
  originalScrollPos = $viewport.scrollTop()
238
238
  newScrollPos = originalScrollPos
239
239
 
@@ -249,8 +249,9 @@ up.layout = (($) ->
249
249
  else
250
250
  obstruction = { top: 0, bottom: 0 }
251
251
  # When the scrolled element is not <body> but instead a container
252
- # with overflow-y: scroll, $.position returns the position the
253
- # viewport's top edge instead of the first row of the canvas buffer.
252
+ # with overflow-y: scroll, $.position returns the distance to the
253
+ # viewport's currently visible top edge (instead of the distance to
254
+ # the first row of the viewport's entire canvas buffer).
254
255
  # http://codepen.io/anon/pen/jPojGE
255
256
  offsetShift = originalScrollPos
256
257
 
@@ -259,7 +260,6 @@ up.layout = (($) ->
259
260
 
260
261
  elementDims = u.measure($element, relative: $viewport)
261
262
  firstElementRow = elementDims.top + offsetShift
262
-
263
263
  lastElementRow = firstElementRow + Math.min(elementDims.height, config.substance) - 1
264
264
 
265
265
  if lastElementRow > predictLastVisibleRow()
@@ -270,7 +270,7 @@ up.layout = (($) ->
270
270
  # If the full element does not fit, scroll to the first row
271
271
  newScrollPos = firstElementRow - obstruction.top
272
272
 
273
- if newScrollPos < snap
273
+ if newScrollPos < snap && elementDims.top < (0.5 * viewportHeight)
274
274
  newScrollPos = 0
275
275
 
276
276
  if newScrollPos != originalScrollPos
@@ -416,7 +416,7 @@ up.layout = (($) ->
416
416
  ###*
417
417
  @function up.layout.revealOrRestoreScroll
418
418
  @return {Deferred}
419
- A promise for when the revealing or scroll restauration ends
419
+ A promise for when the revealing or scroll restoration ends
420
420
  @internal
421
421
  ###
422
422
  revealOrRestoreScroll = (selectorOrElement, options) ->
@@ -424,13 +424,16 @@ up.layout = (($) ->
424
424
  if options.restoreScroll
425
425
  restoreScroll(around: $element)
426
426
  else if options.reveal
427
+ revealOptions = {}
427
428
  if options.source
428
429
  parsed = u.parseUrl(options.source)
429
430
  if parsed.hash && parsed.hash != '#'
430
431
  id = parsed.hash.substr(1)
431
432
  $target = u.findWithSelf($element, "##{id}, a[name='#{id}']")
432
- $element = $target if $target.length
433
- reveal($element)
433
+ if $target.length
434
+ $element = $target
435
+ revealOptions.top = true
436
+ reveal($element, revealOptions)
434
437
  else
435
438
  u.resolvedDeferred()
436
439
 
@@ -6,7 +6,7 @@ Standard HTML links are a poor fit for modern applications:
6
6
 
7
7
  - State changes caused by AJAX updates get lost during the page transition.
8
8
  - Unsaved form changes get lost during the page transition.
9
- - The Javascript VM is reset during the page transition.
9
+ - The JavaScript VM is reset during the page transition.
10
10
  - If the page layout is composed from multiple srollable containers
11
11
  (e.g. a pane view), the scroll positions get lost during the page transition.
12
12
  - The user sees a "flash" as the browser loads and renders the new page,
@@ -62,7 +62,7 @@ with an `up-target` attribute:
62
62
  Note that instead of `article` you can use any other CSS selector like `#main .article`.
63
63
 
64
64
  With these [`up-target`](/a-up-target) annotations Unpoly only updates the targeted part of the screen.
65
- The Javascript environment will persist and the user will not see a white flash while the
65
+ The JavaScript environment will persist and the user will not see a white flash while the
66
66
  new page is loading.
67
67
 
68
68
 
@@ -73,7 +73,7 @@ new page is loading.
73
73
  - As you switch through pages, Unpoly will [update your browser's location bar and history](/up.history)
74
74
  - You can [open fragments in popups or modal dialogs](/up.modal).
75
75
  - You can give users [immediate feedback](/up.navigation) when a link is clicked or becomes current, without waiting for the server.
76
- - [Controlling Unpoly pragmatically through Javascript](/up.flow)
76
+ - [Controlling Unpoly pragmatically through JavaScript](/up.flow)
77
77
  - [Defining custom tags](/up.syntax)
78
78
 
79
79
 
@@ -252,17 +252,31 @@ up.link = (($) ->
252
252
  up.bus.consumeAction(event)
253
253
  handlerWithActiveMark($link)
254
254
 
255
- isFollowable = ($link) ->
255
+ ###*
256
+ Returns whether the given link will be handled by Unpoly instead of making a full page load.
257
+
258
+ A link will be handled by Unpoly if it has an attribute
259
+ like `up-target` or `up-modal`.
260
+
261
+ @function up.link.isFollowable
262
+ @param {Element|jQuery|String} linkOrSelector
263
+ The link to check.
264
+ @experimental
265
+ ###
266
+ isFollowable = (link) ->
267
+ $link = $(link)
256
268
  u.any followVariantSelectors, (selector) -> $link.is(selector)
257
269
 
258
270
  ###*
259
- Makes sure that the given link is handled by Unpoly.
271
+ Makes sure that the given link will be handled by Unpoly instead of making a full page load.
260
272
 
261
273
  This is done by giving the link an `up-follow` attribute
262
- unless it already have it an `up-target` or `up-follow` attribute.
274
+ unless it already have it an attribute like `up-target` or `up-modal`.
263
275
 
264
276
  @function up.link.makeFollowable
265
- @internal
277
+ @param {Element|jQuery|String} linkOrSelector
278
+ The link to process.
279
+ @experimental
266
280
  ###
267
281
  makeFollowable = (link) ->
268
282
  $link = $(link)
@@ -525,6 +539,7 @@ up.link = (($) ->
525
539
  visit: visit
526
540
  follow: follow
527
541
  makeFollowable: makeFollowable
542
+ isFollowable: isFollowable
528
543
  shouldProcessLinkEvent: shouldProcessLinkEvent
529
544
  childClicked: childClicked
530
545
  followMethod: followMethod
@@ -41,7 +41,7 @@ up.log = (($) ->
41
41
  ###
42
42
  config = u.config
43
43
  prefix: '[UP] '
44
- enabled: u.option(b.sessionStorage().getItem(SESSION_KEY_ENABLED), false)
44
+ enabled: (b.sessionStorage().getItem(SESSION_KEY_ENABLED) == 'true')
45
45
  collapse: false
46
46
 
47
47
  reset = ->
@@ -126,7 +126,8 @@ up.log = (($) ->
126
126
  up.on 'up:framework:reset', reset
127
127
 
128
128
  setEnabled = (value) ->
129
- b.sessionStorage().setItem(SESSION_KEY_ENABLED, value)
129
+ # Session storage can only store string values
130
+ b.sessionStorage().setItem(SESSION_KEY_ENABLED, value.toString())
130
131
  config.enabled = value
131
132
 
132
133
  ###*
@@ -122,7 +122,6 @@ up.modal = (($) ->
122
122
  ###
123
123
  config = u.config
124
124
  maxWidth: null
125
- minWidth: null
126
125
  width: null
127
126
  height: null
128
127
  history: true
@@ -638,7 +637,7 @@ up.modal = (($) ->
638
637
  Clicking this link will load the destination via AJAX and open
639
638
  the given selector in a modal dialog.
640
639
 
641
- \#\#\#\# Example
640
+ \#\#\# Example
642
641
 
643
642
  <a href="/blogs" up-modal=".blog-list">Switch blog</a>
644
643
 
@@ -718,17 +717,16 @@ up.modal = (($) ->
718
717
 
719
718
  <a href="/fallback" up-close>Okay</a>
720
719
 
721
- @selector [up-close]
720
+ @selector .up-modal [up-close]
722
721
  @stable
723
722
  ###
724
- up.on('click', '[up-close]', (event, $element) ->
725
- if contains($element)
726
- closeAsap()
727
- # If the user closes the modal by clicking on the background, we want to halt the event chain here.
728
- # The event should not trigger anything else. The user needs to click again for another interaction.
729
- # Also only prevent the default when we actually closed a modal.
730
- # This way we can have buttons that close a modal when within a modal, but link to a destination if not.
731
- up.bus.consumeAction(event)
723
+ up.on('click', '.up-modal [up-close]', (event, $element) ->
724
+ closeAsap()
725
+ # If the user closes the modal by clicking on the background, we want to halt the event chain here.
726
+ # The event should not trigger anything else. The user needs to click again for another interaction.
727
+ # Also only prevent the default when we actually closed a modal.
728
+ # This way we can have buttons that close a modal when within a modal, but link to a destination if not.
729
+ up.bus.consumeAction(event)
732
730
  )
733
731
 
734
732
  ###*
@@ -737,7 +735,7 @@ up.modal = (($) ->
737
735
 
738
736
  You can configure drawers using the [`up.modal.flavors.drawer`](/up.modal.flavors.drawer) property.
739
737
 
740
- \#\#\#\# Example
738
+ \#\#\# Example
741
739
 
742
740
  <a href="/blogs" up-drawer=".blog-list">Switch blog</a>
743
741
 
@@ -755,7 +753,7 @@ up.modal = (($) ->
755
753
  Valid values are `'left'`, `'right'` and `'auto'`. If set to `'auto'`, the
756
754
  drawer will slide in from left if the opening link is on the left half of the screen.
757
755
  Otherwise it will slide in from the right.
758
- @experimental
756
+ @stable
759
757
  ###
760
758
  up.macro '[up-drawer]', ($link) ->
761
759
  target = $link.attr('up-drawer')
@@ -2,7 +2,7 @@
2
2
  Animation
3
3
  =========
4
4
 
5
- Whenever you [update a page fragment](/up-link) you can animate the change.
5
+ Whenever you [update a page fragment](/up.link) you can animate the change.
6
6
 
7
7
  Let's say you are using an [`up-target`](/a-up-target) link to update an element
8
8
  with content from the server. You can add an attribute [`up-transition`](/a-up-target#up-transition)
@@ -1,6 +1,6 @@
1
1
  ###*
2
- Navigation bars
3
- ===============
2
+ Navigation feedback
3
+ ===================
4
4
 
5
5
  Unpoly automatically adds CSS classes to links while they are
6
6
  currently loading ([`.up-active`](/up-active)) or
@@ -135,7 +135,7 @@ up.navigation = (($) ->
135
135
  Marks the given element as currently loading, by assigning the CSS class [`up-active`](/up-active).
136
136
 
137
137
  This happens automatically when following links or submitting forms through the Unpoly API.
138
- Use this function if you make custom network calls from your own Javascript code.
138
+ Use this function if you make custom network calls from your own JavaScript code.
139
139
 
140
140
  If the given element is a link within an [expanded click area](/up-expand),
141
141
  the class will be assigned to the expanded area.
@@ -211,7 +211,7 @@ up.navigation = (($) ->
211
211
  Marks the given element as no longer loading, by removing the CSS class [`up-active`](/up-active).
212
212
 
213
213
  This happens automatically when network requests initiated by the Unpoly API have completed.
214
- Use this function if you make custom network calls from your own Javascript code.
214
+ Use this function if you make custom network calls from your own JavaScript code.
215
215
 
216
216
  @function up.navigation.stop
217
217
  @param {jQuery} event.$element
@@ -255,7 +255,7 @@ up.navigation = (($) ->
255
255
  - the link's [`up-href`](#turn-any-element-into-a-link) attribute
256
256
  - a space-separated list of URLs in the link's `up-alias` attribute
257
257
 
258
- \#\#\#\# Matching URL by prefix
258
+ \#\#\# Matching URL by prefix
259
259
 
260
260
  You can mark a link as `.up-current` whenever the current URL matches a prefix.
261
261
  To do so, end the `up-alias` attribute in an asterisk (`*`).
@@ -7,7 +7,7 @@ to show a fragment in a popup overlay that rolls down from an anchoring element.
7
7
 
8
8
  To open a popup, add an [`up-popup` attribute](/up-popup) to a link:
9
9
 
10
- <a href="/options" up-modal=".menu">Show options</a>
10
+ <a href="/options" up-popup=".menu">Show options</a>
11
11
 
12
12
  When this link is clicked, Unpoly will request the path `/options` and extract
13
13
  an element matching the selector `.menu` from the response. The matching element
@@ -434,16 +434,15 @@ up.popup = (($) ->
434
434
 
435
435
  <a href="/fallback" up-close>Okay</a>
436
436
 
437
- @selector [up-close]
437
+ @selector .up-popup [up-close]
438
438
  @stable
439
439
  ###
440
- up.on 'click', '[up-close]', (event, $element) ->
441
- if contains($element)
442
- closeAsap()
443
- # Only prevent the default when we actually closed a popup.
444
- # This way we can have buttons that close a popup when within a popup,
445
- # but link to a destination if not.
446
- up.bus.consumeAction(event)
440
+ up.on 'click', '.up-popup [up-close]', (event, $element) ->
441
+ closeAsap()
442
+ # Only prevent the default when we actually closed a popup.
443
+ # This way we can have buttons that close a popup when within a popup,
444
+ # but link to a destination if not.
445
+ up.bus.consumeAction(event)
447
446
 
448
447
  # The framework is reset between tests
449
448
  up.on 'up:framework:reset', reset
@@ -6,7 +6,7 @@ Unpoly caches server responses for a few minutes,
6
6
  making requests to these URLs return instantly.
7
7
 
8
8
  All Unpoly functions and selectors go through this cache.
9
- If you need to make cache-aware requests from your [custom Javascript](/up.syntax),
9
+ If you need to make cache-aware requests from your [custom JavaScript](/up.syntax),
10
10
  use [`up.ajax`](/up.ajax).
11
11
 
12
12
  \#\#\# How the cache is cleared
@@ -318,7 +318,7 @@ up.proxy = (($) ->
318
318
 
319
319
  <div class="spinner">Please wait!</div>
320
320
 
321
- Here is the Javascript to make it alive:
321
+ Here is the JavaScript to make it alive:
322
322
 
323
323
  up.compiler('.spinner', function($element) {
324
324
 
@@ -1,11 +1,11 @@
1
1
  ###*
2
- Custom Javascript
2
+ Custom JavaScript
3
3
  =================
4
4
 
5
- Every app needs a way to pair Javascript snippets with certain HTML elements,
5
+ Every app needs a way to pair JavaScript snippets with certain HTML elements,
6
6
  in order to integrate libraries or implement custom behavior.
7
7
 
8
- Unpoly lets you organize your Javascript snippets using [compilers](/up.compiler).
8
+ Unpoly lets you organize your JavaScript snippets using [compilers](/up.compiler).
9
9
 
10
10
  For instance, to activate the [Masonry](http://masonry.desandro.com/) jQuery plugin for every element
11
11
  with a `grid` class, use this compiler:
@@ -23,7 +23,7 @@ up.syntax = (($) ->
23
23
 
24
24
  u = up.util
25
25
 
26
- DESTRUCTABLE_CLASS = 'up-destructable'
26
+ DESTRUCTIBLE_CLASS = 'up-destructible'
27
27
  DESTRUCTORS_KEY = 'up-destructors'
28
28
 
29
29
  compilers = []
@@ -48,14 +48,14 @@ up.syntax = (($) ->
48
48
  \#\#\# Integrating jQuery plugins
49
49
 
50
50
  `up.compiler` is a great way to integrate jQuery plugins.
51
- Let's say your Javascript plugin wants you to call `lightboxify()`
51
+ Let's say your JavaScript plugin wants you to call `lightboxify()`
52
52
  on links that should open a lightbox. You decide to
53
53
  do this for all links with an `lightbox` class:
54
54
 
55
55
  <a href="river.png" class="lightbox">River</a>
56
56
  <a href="ocean.png" class="lightbox">Ocean</a>
57
57
 
58
- This Javascript will do exactly that:
58
+ This JavaScript will do exactly that:
59
59
 
60
60
  up.compiler('a.lightbox', function($element) {
61
61
  $element.lightboxify();
@@ -68,7 +68,7 @@ up.syntax = (($) ->
68
68
 
69
69
  <clock></clock>
70
70
 
71
- Here is the Javascript that inserts the current time into to these elements:
71
+ Here is the JavaScript that inserts the current time into to these elements:
72
72
 
73
73
  up.compiler('clock', function($element) {
74
74
  var now = new Date();
@@ -79,7 +79,7 @@ up.syntax = (($) ->
79
79
  \#\#\# Cleaning up after yourself
80
80
 
81
81
  If your compiler returns a function, Unpoly will use this as a *destructor* to
82
- clean up if the element leaves the DOM. Note that in Unpoly the same DOM ad Javascript environment
82
+ clean up if the element leaves the DOM. Note that in Unpoly the same DOM ad JavaScript environment
83
83
  will persist through many page loads, so it's important to not create
84
84
  [memory leaks](https://makandracards.com/makandra/31325-how-to-create-memory-leaks-in-jquery).
85
85
 
@@ -283,7 +283,7 @@ up.syntax = (($) ->
283
283
  []
284
284
 
285
285
  addDestructor = ($jqueryElement, destructor) ->
286
- $jqueryElement.addClass(DESTRUCTABLE_CLASS)
286
+ $jqueryElement.addClass(DESTRUCTIBLE_CLASS)
287
287
  destructors = $jqueryElement.data(DESTRUCTORS_KEY) || []
288
288
  destructors.push(destructor)
289
289
  $jqueryElement.data(DESTRUCTORS_KEY, destructors)
@@ -327,12 +327,16 @@ up.syntax = (($) ->
327
327
  @internal
328
328
  ###
329
329
  clean = ($fragment) ->
330
- u.findWithSelf($fragment, ".#{DESTRUCTABLE_CLASS}").each ->
330
+ u.findWithSelf($fragment, ".#{DESTRUCTIBLE_CLASS}").each ->
331
331
  $element = $(this)
332
332
  destructors = $element.data(DESTRUCTORS_KEY)
333
- destructor() for destructor in destructors
334
- $element.removeData(DESTRUCTORS_KEY)
335
- $element.removeClass(DESTRUCTABLE_CLASS)
333
+ # Although destructible elements should always have an array of destructors, we might be
334
+ # destroying a clone of such an element. E.g. Unpoly creates a clone when keeping an
335
+ # [up-keep] element, and that clone still has the .up-destructible class.
336
+ if destructors
337
+ destructor() for destructor in destructors
338
+ $element.removeData(DESTRUCTORS_KEY)
339
+ $element.removeClass(DESTRUCTIBLE_CLASS)
336
340
 
337
341
  ###*
338
342
  Checks if the given element has an [`up-data`](/up-data) attribute.
@@ -346,7 +350,7 @@ up.syntax = (($) ->
346
350
 
347
351
  <span class="person" up-data="{ age: 18, name: 'Bob' }">Bob</span>
348
352
 
349
- Calling `up.syntax.data` will deserialize the JSON string into a Javascript object:
353
+ Calling `up.syntax.data` will deserialize the JSON string into a JavaScript object:
350
354
 
351
355
  up.syntax.data('.person') // returns { age: 18, name: 'Bob' }
352
356
 
@@ -356,7 +360,7 @@ up.syntax = (($) ->
356
360
  The JSON-decoded value of the `up-data` attribute.
357
361
 
358
362
  Returns an empty object (`{}`) if the element has no (or an empty) `up-data` attribute.
359
- @experimental
363
+ @stable
360
364
  ###
361
365
 
362
366
  ###*