unpoly-rails 0.29.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of unpoly-rails might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/dist/unpoly-bootstrap3.css +0 -3
- data/dist/unpoly-bootstrap3.min.css +1 -1
- data/dist/unpoly.js +78 -51
- data/dist/unpoly.min.js +1 -1
- data/lib/assets/javascripts/unpoly/form.js.coffee +21 -9
- data/lib/assets/javascripts/unpoly/modal.js.coffee +2 -3
- data/lib/assets/javascripts/unpoly/popup.js.coffee +22 -19
- data/lib/assets/javascripts/unpoly/proxy.js.coffee +26 -13
- data/lib/assets/javascripts/unpoly/tooltip.js.coffee +6 -6
- data/lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.css.sass +0 -5
- data/lib/unpoly/rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8c90c3524cc53bceb112f2a7fe498d4a7eda786
|
4
|
+
data.tar.gz: 979eaa1084743303e20c6ecd7f430e64751797bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42c4bd9af359d17e34a0741e0a06a1074ae90ee87143cd150679f47b2035a18f2b613e12df74c4ba313b5eddf5abdf84710f5c324bd030a80ca9e33802f71caa
|
7
|
+
data.tar.gz: 74539855e8eadf62b68ca6a88e09b2ef2b6f5227eedb616c0395579e1d48eda87e4b1ca998fe9bdf5c13b48114caee59db83377c96892d8cfd6578d65b445b43
|
data/CHANGELOG.md
CHANGED
@@ -15,6 +15,16 @@ Unreleased
|
|
15
15
|
|
16
16
|
|
17
17
|
|
18
|
+
0.30.0
|
19
|
+
------
|
20
|
+
|
21
|
+
### Breaking changes
|
22
|
+
|
23
|
+
- If you are using Unpoly's Boostrap integration, you now need to include `unpoly-bootstrap3.js` *after* you include the Bootstrap CSS.
|
24
|
+
- Fix some issues when using Unpoly together with Bootstrap modals.
|
25
|
+
|
26
|
+
|
27
|
+
|
18
28
|
0.29.0
|
19
29
|
------
|
20
30
|
|
@@ -28,7 +38,7 @@ Unreleased
|
|
28
38
|
|
29
39
|
### Breaking changes
|
30
40
|
|
31
|
-
- Events handled by Unpoly selectors will
|
41
|
+
- Events handled by Unpoly selectors will no longer bubble up the DOM.
|
32
42
|
|
33
43
|
|
34
44
|
0.28.1
|
data/dist/unpoly-bootstrap3.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
.up-modal-
|
1
|
+
.up-modal-content{padding:0}
|
data/dist/unpoly.js
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
(function() {
|
7
7
|
window.up = {
|
8
|
-
version: "0.
|
8
|
+
version: "0.30.0"
|
9
9
|
};
|
10
10
|
|
11
11
|
}).call(this);
|
@@ -6656,18 +6656,31 @@ You can define custom animations using [`up.transition`](/up.transition) and
|
|
6656
6656
|
Caching and preloading
|
6657
6657
|
======================
|
6658
6658
|
|
6659
|
-
|
6660
|
-
It caches a [limited](/up.proxy.config) number of server responses
|
6661
|
-
for a [limited](/up.proxy.config) amount of time,
|
6659
|
+
Unpoly caches server responses for a few minutes,
|
6662
6660
|
making requests to these URLs return instantly.
|
6663
|
-
|
6664
|
-
The cache is cleared whenever the user makes a non-`GET` request
|
6665
|
-
(like `POST`, `PUT` or `DELETE`).
|
6666
6661
|
|
6667
|
-
|
6668
|
-
|
6669
|
-
|
6670
|
-
|
6662
|
+
All Unpoly functions and selectors go through this cache.
|
6663
|
+
If you need to make cache-aware requests from your [custom Javascript](/up.syntax),
|
6664
|
+
use [`up.ajax`](/up.ajax).
|
6665
|
+
|
6666
|
+
\#\#\# How the cache is cleared
|
6667
|
+
|
6668
|
+
The cache holds up to 70 responses for 5 minutes. You can configure the cache size and expiry using
|
6669
|
+
[`up.proxy.config`](/up.proxy.config), or clear the cache manually using [`up.proxy.clear`](/up.proxy.clear).
|
6670
|
+
|
6671
|
+
Also the entire cache is cleared with every non-`GET` request (like `POST` or `PUT`).
|
6672
|
+
|
6673
|
+
\#\#\# Preloading
|
6674
|
+
|
6675
|
+
Unpoly also lets you speed up reaction times by [preloading
|
6676
|
+
links](/up-preload) when the user hovers over the click area (or puts the mouse/finger
|
6677
|
+
down). This way the response will already be cached when
|
6678
|
+
the user releases the mouse/finger.
|
6679
|
+
|
6680
|
+
\#\#\# Spinners
|
6681
|
+
|
6682
|
+
You can listen to the [`up:proxy:slow`](/up:proxy:slow) event to implement a spinner
|
6683
|
+
that appears during a long-running request.
|
6671
6684
|
|
6672
6685
|
@class up.proxy
|
6673
6686
|
*/
|
@@ -7003,7 +7016,7 @@ the user performs the click.
|
|
7003
7016
|
};
|
7004
7017
|
|
7005
7018
|
/**
|
7006
|
-
This event is [emitted]/
|
7019
|
+
This event is [emitted](/up.emit) when [AJAX requests](/up.ajax)
|
7007
7020
|
have [taken long to finish](/up:proxy:slow), but have finished now.
|
7008
7021
|
|
7009
7022
|
See [`up:proxy:slow`](/up:proxy:slow) for more documentation on
|
@@ -7134,7 +7147,7 @@ the user performs the click.
|
|
7134
7147
|
clear = cache.clear;
|
7135
7148
|
|
7136
7149
|
/**
|
7137
|
-
This event is [emitted]/
|
7150
|
+
This event is [emitted](/up.emit) before an [AJAX request](/up.ajax)
|
7138
7151
|
is starting to load.
|
7139
7152
|
|
7140
7153
|
@event up:proxy:load
|
@@ -7145,7 +7158,7 @@ the user performs the click.
|
|
7145
7158
|
*/
|
7146
7159
|
|
7147
7160
|
/**
|
7148
|
-
This event is [emitted]/
|
7161
|
+
This event is [emitted](/up.emit) when the response to an [AJAX request](/up.ajax)
|
7149
7162
|
has been received.
|
7150
7163
|
|
7151
7164
|
@event up:proxy:received
|
@@ -7982,28 +7995,40 @@ open dialogs with sub-forms, etc. all without losing form state.
|
|
7982
7995
|
|
7983
7996
|
\#\#\# Example
|
7984
7997
|
|
7985
|
-
The following would
|
7986
|
-
text field value changes:
|
7998
|
+
The following would print to the console whenever an input field changes:
|
7987
7999
|
|
7988
|
-
up.observe('input
|
8000
|
+
up.observe('input.query', function(value, $input) {
|
7989
8001
|
console.log('Query is now ' + value);
|
7990
8002
|
});
|
7991
8003
|
|
7992
|
-
Instead of a single form field, you can also
|
7993
|
-
|
8004
|
+
Instead of a single form field, you can also pass multiple fields,
|
8005
|
+
a `<form>` or any container that contains form fields.
|
7994
8006
|
The callback will be run if any of the given fields change.
|
7995
8007
|
|
7996
8008
|
\#\#\# Preventing concurrency
|
7997
8009
|
|
7998
|
-
|
8010
|
+
Making network requests whenever a form field changes can cause
|
7999
8011
|
[concurrency issues](https://makandracards.com/makandra/961-concurrency-issues-with-find-as-you-type-boxes).
|
8012
|
+
Since `up.observe` can trigger many requests in a short period of time,
|
8013
|
+
the responses might not arrive in the same order.
|
8000
8014
|
|
8001
8015
|
To mitigate this, `up.observe` will try to never run a callback
|
8002
8016
|
before the previous callback has completed.
|
8003
|
-
|
8004
|
-
|
8017
|
+
For this your callback code must return a promise that resolves
|
8018
|
+
when your request completes.
|
8019
|
+
|
8020
|
+
The following would submit a form whenever an input field changes,
|
8021
|
+
but never make more than one request at a time:
|
8005
8022
|
|
8006
|
-
|
8023
|
+
up.observe('input.query', function(value, $input) {
|
8024
|
+
var submitDone = up.submit($input);
|
8025
|
+
return submitDone;
|
8026
|
+
});
|
8027
|
+
|
8028
|
+
Note that many Unpoly functions like [`up.submit`](/up.submit) or
|
8029
|
+
[`up.replace`](/up.replace) return promises.
|
8030
|
+
|
8031
|
+
\#\#\# Debouncing
|
8007
8032
|
|
8008
8033
|
If you are concerned about fast typists causing too much
|
8009
8034
|
load on your server, you can use a `delay` option to wait
|
@@ -8730,40 +8755,43 @@ Pop-up overlays
|
|
8730
8755
|
Instead of [linking to a page fragment](/up.link), you can choose
|
8731
8756
|
to show a fragment in a popup overlay that rolls down from an anchoring element.
|
8732
8757
|
|
8733
|
-
To open a popup, add an [`up-popup` attribute](/up-popup) to a link
|
8734
|
-
|
8758
|
+
To open a popup, add an [`up-popup` attribute](/up-popup) to a link:
|
8759
|
+
|
8760
|
+
<a href="/options" up-modal=".menu">Show options</a>
|
8761
|
+
|
8762
|
+
When this link is clicked, Unpoly will request the path `/options` and extract
|
8763
|
+
an element matching the selector `.menu` from the response. The matching element
|
8764
|
+
will then be placed in the popup overlay.
|
8765
|
+
|
8766
|
+
|
8767
|
+
\#\#\# Closing behavior
|
8768
|
+
|
8769
|
+
The popup closes when the user clicks anywhere outside the popup area.
|
8770
|
+
|
8771
|
+
The popup also closes *when a link within the popup changes a fragment behind the popup*.
|
8772
|
+
This is useful to have the popup interact with the page that
|
8773
|
+
opened it, e.g. by updating parts of a larger form.
|
8774
|
+
|
8775
|
+
To disable this behavior, give the opening link an [`up-sticky`](/up-popup#up-sticky) attribute.
|
8735
8776
|
|
8736
|
-
For modal dialogs see [up.modal](/up.modal) instead.
|
8737
8777
|
|
8738
8778
|
\#\#\# Customizing the popup design
|
8739
8779
|
|
8740
|
-
|
8780
|
+
Popups have a minimal default design:
|
8741
8781
|
|
8742
8782
|
- Popup contents are displayed in a white box
|
8743
8783
|
- There is a a subtle box shadow around the popup
|
8744
8784
|
- The box will grow to fit the popup contents
|
8745
8785
|
|
8746
|
-
The easiest way to change how the popup looks is
|
8786
|
+
The easiest way to change how the popup looks is to override the
|
8787
|
+
[default CSS styles](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/popup.css.sass).
|
8747
8788
|
|
8748
|
-
|
8789
|
+
The HTML of a popup element is simply this:
|
8749
8790
|
|
8750
8791
|
<div class="up-popup">
|
8751
8792
|
...
|
8752
8793
|
</div>
|
8753
8794
|
|
8754
|
-
\#\#\# Closing behavior
|
8755
|
-
|
8756
|
-
The popup closes when the user clicks anywhere outside the popup area.
|
8757
|
-
|
8758
|
-
By default the popup also closes
|
8759
|
-
*when a link within the popup changes a fragment behind the popup*.
|
8760
|
-
This is useful to have the popup interact with the page that
|
8761
|
-
opened it, e.g. by updating parts of a larger form or by signing in a user
|
8762
|
-
and revealing additional information.
|
8763
|
-
|
8764
|
-
To disable this behavior, give the opening link an `up-sticky` attribute:
|
8765
|
-
|
8766
|
-
<a href="/settings" up-popup=".options" up-sticky>Settings</a>
|
8767
8795
|
|
8768
8796
|
@class up.popup
|
8769
8797
|
*/
|
@@ -9248,8 +9276,7 @@ will then be placed in a modal dialog.
|
|
9248
9276
|
By default the dialog automatically closes
|
9249
9277
|
*when a link inside a modal changes a fragment behind the modal*.
|
9250
9278
|
This is useful to have the dialog interact with the page that
|
9251
|
-
opened it, e.g. by updating parts of a larger form
|
9252
|
-
and revealing additional information.
|
9279
|
+
opened it, e.g. by updating parts of a larger form.
|
9253
9280
|
|
9254
9281
|
To disable this behavior, give the opening link an [`up-sticky`](/up-modal#up-sticky) attribute:
|
9255
9282
|
|
@@ -9263,7 +9290,7 @@ Dialogs have a minimal default design:
|
|
9263
9290
|
- The box is placed over a semi-transparent backdrop to dim the rest of the page
|
9264
9291
|
- There is a button to close the dialog in the top-right corner
|
9265
9292
|
|
9266
|
-
The easiest way to change how the dialog looks is
|
9293
|
+
The easiest way to change how the dialog looks is to override the
|
9267
9294
|
[default CSS styles](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/modal.css.sass).
|
9268
9295
|
|
9269
9296
|
By default the dialog uses the following DOM structure:
|
@@ -10034,20 +10061,20 @@ Tooltips
|
|
10034
10061
|
|
10035
10062
|
Unpoly comes with a basic tooltip implementation.
|
10036
10063
|
|
10037
|
-
|
10038
|
-
|
10064
|
+
Add an [`up-tooltip`](/up-tooltip) attribute to any HTML tag to show a tooltip whenever
|
10065
|
+
the user hovers over the element:
|
10039
10066
|
|
10040
10067
|
<a href="/decks" up-tooltip="Show all decks">Decks</a>
|
10041
10068
|
|
10042
10069
|
|
10043
10070
|
\#\#\# Styling
|
10044
10071
|
|
10045
|
-
The
|
10046
|
-
|
10072
|
+
The default styles
|
10073
|
+
render a tooltip with white text on a gray background.
|
10047
10074
|
A gray triangle points to the element.
|
10048
10075
|
|
10049
|
-
To change the styling, simply override CSS rules for the `.up-tooltip` selector and its `:after`
|
10050
|
-
selector that is used the triangle.
|
10076
|
+
To change the styling, simply override the [CSS rules](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/tooltip.css.sass) for the `.up-tooltip` selector and its `:after`
|
10077
|
+
selector that is used for the triangle.
|
10051
10078
|
|
10052
10079
|
The HTML of a tooltip element is simply this:
|
10053
10080
|
|
data/dist/unpoly.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
(function(){window.up={version:"0.29.0"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C,P,O,F,R,U,L,I,_,M,N,j,K,W,q,H,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,ce,pe,fe,de,me,he,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,Ee,De,Te,Ce,Pe,Oe,Fe,Re,Ue,Le,Ie,_e,Me,Ne,je,Ke,We,qe,He,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt,ot;return ge=n.noop,pe=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},ne=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},be=function(e,t){var n,r,o;return n=De(e),r=n.protocol+"//"+n.hostname,ne(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},De=function(e){var t;return t=null,re(e)?(t=n("<a>").attr({href:e}).get(0),N(t.hostname)&&(t.href=t.href)):t=Ze(e),t},ye=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],p=null,d=0,h=u.length;h>d;d++)switch(s=u[d],s[0]){case".":i.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),ee(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},qe=function(e){var t,r,o,i,u,a,s,l,c;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),c=Pe(t.attr("up-id")))l="[up-id='"+c+"']";else if(i=Pe(t.attr("id")))l="#"+i;else if(s=Pe(t.attr("name")))l="[name='"+s+"']";else if(r=Pe(ve(t)))for(l="",o=0,a=r.length;a>o;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},ve=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),We(n,function(e){return ee(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=b("head"),s.appendChild(a),c=b("title",p[1]),a.appendChild(c)),s):b("div",e)},T=n.extend,Ye=n.trim,$=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;i>n;r=++n)o=e[r],u.push(t(o,r));return u},le=$,Be=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(t(r));return i},G=function(e){return null===e},oe=function(e){return void 0===e},K=function(e){return!oe(e)},X=function(e){return oe(e)||G(e)},J=function(e){return!X(e)},N=function(e){return X(e)||Z(e)&&0===Object.keys(e).length||0===e.length},Pe=function(e,t){return null==t&&(t=ee),t(e)?e:void 0},ee=function(e){return!N(e)},Q=function(e){return"function"==typeof e},re=function(e){return"string"==typeof e},Y=function(e){return"number"==typeof e},V=function(e){return"object"==typeof e&&!!e},Z=function(e){return V(e)||"function"==typeof e},q=function(e){return!(!e||1!==e.nodeType)},B=function(e){return e instanceof jQuery},te=function(e){return Z(e)&&Q(e.then)},j=function(e){return te(e)&&Q(e.resolve)},M=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},z=function(e){return up.browser.canFormData()&&e instanceof FormData},Ge=function(e){return Array.prototype.slice.call(e)},g=function(e){return M(e)?e.slice():V(e)?T({},e):void 0},Ze=function(e){return B(e)?e.get(0):e},fe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],T.apply(null,[{}].concat(e.call(t)))},Ee=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],J(i)?Z(n)&&Z(i)&&(o[r]=Ee(i,n)):o[r]=n;return o},xe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],S(t,J)},S=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){i=!1;break}return i},m=function(e){return We(e,J)},et=function(e){var t;return t={},We(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},We=function(e,t){var n;return n=[],$(e,function(e){return t(e)?n.push(e):void 0}),n},Re=function(e,t){return We(e,function(e){return!t(e)})},_=function(e,t){return We(e,function(e){return v(t,e)})},Oe=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;o>e;e++)n=r[e],i.push(t.attr(n));return i}(),S(o,ee)},Qe=function(e,t){return e>0?setTimeout(t,e):t()},he=function(e){return setTimeout(e,0)},ae=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Ke=pe(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),A=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},Se=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Ve=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):Se(i)},U=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),N(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},L=function(e){return e=Ze(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,c,p,f;return o=n(e),r=Ee(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),Ne()):(u=n.Deferred(),p=Object.keys(t),l={"transition-property":p.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),c=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;return t=e.originalEvent.propertyName,v(p,t)?(u.resolve(),c()):void 0},o.on("transitionend",s),u.then(c),f=U(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;return o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]),e?(L(o),o.css(a)):void 0}),u)},i="up-animation-deferred",F=function(e){return n(e).each(function(){var e;return(e=Te(this,i))?e.resolve():void 0})},ce=function(e,t){var r,o,i,u,a;return t=Ee(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},O=function(e,t){return e.find(t).addBack(t)},E=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},se=function(e){return e.getResponseHeader("X-Up-Location")},Xe=function(e){return e.getResponseHeader("X-Up-Title")},de=function(e){return e.getResponseHeader("X-Up-Method")},Ae=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},D=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;r>n;n++)u=i[n],delete t[u];return t},ie=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},ue=function(e){var t;return t=oe(e.button)||0===e.button,t&&ie(e)},Ne=function(){var e;return e=n.Deferred(),e.resolve(),e},je=function(){return Ne().promise()},tt=function(){return n.Deferred()},nt=function(){return tt().promise()},we=function(){return n()},Me=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[Ne()].concat(e.call(t))),r.resolve=pe(function(){return $(t,function(e){return e.resolve()})}),r},ze=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],X(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},Ue=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},me=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;i>o;o++)a=e[o],re(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=we(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||we()},u},p=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return null==t&&(t={}),h=void 0,d=function(e){return function(){var n;return n=t[e],Y(n)?n:Q(n)?n():void 0}},p=d("size"),o=d("expiry"),f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==p()&&0!==o()},r=function(){return h={}},r(),l=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix?(n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)):void 0},s=function(){return Object.keys(h)},c=function(){var e,t,n,r;return r=g(s()),e=p(),e&&r.length>=e&&(t=null,n=null,$(r,function(e){var r,o;return r=h[e],o=r.timestamp,!n||n>o?(t=e,n=o):void 0}),t)?delete h[t]:void 0},n=function(e,t){var n;return n=i(e,{silent:!0}),K(n)?m(t,n):void 0},v=function(){return(new Date).valueOf()},m=function(e,t){var n;return u()?(c(),n=f(e),h[n]={timestamp:v(),value:t}):void 0},Ue=function(e){var t;return t=f(e),delete h[t]},a=function(e){var t,n;return t=o(),t?(n=v()-e.timestamp,t>n):!0},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=h[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void Ue(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:m,remove:Ue,clear:r,keys:s}},h=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,Q(n)&&(n=n()),T(t,n)},t.reset(),Object.preventExtensions(t),t},rt=function(e){var t,n;return e=Ze(e),t=e.parentNode,n=Ge(e.childNodes),$(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},ke=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},H=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},R=function(e,t){var r,o,i,u;return r=n(e),o=ke(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},Le=function(e){var t,n,r,o,i,u,a;if(z(e))return up.fail("Cannot convert FormData into an array");for(u=Ie(e),t=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ee(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ie=function(e){var t;return z(e)?up.fail("Cannot convert FormData into a query string"):ee(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},_e=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},c=function(e,t,n){var r;return z(e)?e.append(t,n):M(e)?e.push({name:t,value:n}):Z(e)?e[t]=n:(re(e)||X(e))&&(r=Ie([{name:t,value:n}]),e=ee(e)?[e,r].join("&"):r),e},P=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],M(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),ot().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&","<":"<",">":">",'"':"""},x=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Ce=function(e,t){var n;return n=e[t],delete e[t],n},Te=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},C=function(e){var t;return t=ae(e),V(t)&&!B(t)?e.pop():{}},$e=function(e){var t;return t=n(e).css("opacity"),J(t)?parseFloat(t):void 0},ot=pe(function(){var e;return n.isReady?je():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),I=function(e){return e},W=function(e){return e=Ze(e),!jQuery.contains(document.documentElement,e)},Fe=function(t){var r,o;return r=n.Deferred(),o=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.apply(null,n).then(function(){return r.resolve()})},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=le(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;return!this.currentTask&&(this.currentTask=this.queue.shift())?(e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))):void 0},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=le(t,Fe),this.poke()},r}(),Je=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},He=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return le(t,function(e){return e()})}},{isDetached:W,requestDataAsArray:Le,requestDataAsQuery:Ie,appendRequestData:c,requestDataFromForm:_e,offsetParent:ke,fixedToAbsolute:R,isFixed:H,presentAttr:Oe,createElement:b,parseUrl:De,normalizeUrl:be,normalizeMethod:ye,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:qe,extend:T,copy:g,merge:fe,options:Ee,option:xe,fail:P,each:$,map:le,times:Be,any:l,all:s,detect:S,select:We,reject:Re,intersect:_,compact:m,uniq:et,last:ae,isNull:G,isDefined:K,isUndefined:oe,isGiven:J,isMissing:X,isPresent:ee,isBlank:N,presence:Pe,isObject:Z,isFunction:Q,isString:re,isNumber:Y,isElement:q,isJQuery:B,isPromise:te,isDeferred:j,isHash:V,isArray:M,isFormData:z,isUnmodifiedKeyEvent:ie,isUnmodifiedMouseEvent:ue,nullJQuery:we,unJQuery:Ze,setTimer:Qe,nextFrame:he,measure:ce,temporaryCss:Ve,cssAnimate:k,finishCssAnimate:F,forceCompositing:U,forceRepaint:L,escapePressed:E,copyAttributes:y,findWithSelf:O,contains:v,toArray:Ge,castedAttr:f,locationFromXhr:se,titleFromXhr:Xe,methodFromXhr:de,clientSize:d,only:Ae,except:D,trim:Ye,unresolvableDeferred:tt,unresolvablePromise:nt,resolvedPromise:je,resolvedDeferred:Ne,resolvableWhen:Me,setMissingAttrs:ze,remove:Ue,memoize:pe,scrollbarWidth:Ke,documentHasVerticalScrollbar:A,config:h,cache:p,unwrapElement:rt,multiSelector:me,error:P,pluckData:Te,pluckKey:Ce,extractOptions:C,isDetached:W,noop:ge,opacity:$e,whenReady:ot,identity:I,escapeHtml:x,DivertibleChain:u,submittedValue:Je,sequence:He}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,c;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;i>o;o++)n=s[o],(c=t.attr(n))&&(l+=" "+n+'="'+c+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;t>e;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,consumeAction,emit,emitReset,forgetUpDescription,haltEvent,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener,whenEmitted;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||up.fail("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,n!==!1&&(u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n)?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},haltEvent=function(e){return e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},consumeAction=function(e){return haltEvent(e),"up:action:consumed"!==e.type?emit("up:action:consumed",{$element:$(e.target),message:!1}):void 0},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})):void 0},live("up:framework:booted",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,whenEmitted:whenEmitted,onEscape:onEscape,emitReset:emitReset,haltEvent:haltEvent,consumeAction:consumeAction,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.log=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return h=up.util,r=up.browser,n="up.log.enabled",o=h.config({prefix:"[UP] ",enabled:h.option(r.sessionStorage().getItem(n),!1),collapse:!1}),d=function(){return o.reset()},c=function(e){return""+o.prefix+e},i=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["debug",c(n)].concat(e.call(t))):void 0},f=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["log",c(n)].concat(e.call(t))):void 0},v=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["warn",c(n)].concat(e.call(t))):void 0},l=function(){var t,n,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!o.enabled||!i)return n();u=o.collapse?"groupCollapsed":"group",r.puts.apply(r,[u,c(i)].concat(e.call(t)));try{return n()}finally{i&&r.puts("groupEnd")}},s=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?r.puts.apply(r,["error",c(n)].concat(e.call(t))):void 0},p=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=o.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",r.puts("log",e)},up.on("up:framework:boot",p),up.on("up:framework:reset",d),m=function(e){return r.sessionStorage().setItem(n,e),o.enabled=e},a=function(){return m(!0)},u=function(){return m(!1)},{puts:f,debug:i,error:s,warn:v,group:l,config:o,enable:a,disable:u}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,c,p;return p=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+p.escapeHtml(e)+"</span>"},c=p.config({$toast:null}),l=function(){return i(),c.reset()},a=function(t){return p.isArray(t)?(t[0]=p.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=p.escapeHtml(t),t},u=function(){return!!c.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),c.$toast=s},i=function(){return u()?(c.$toast.remove(),c.$toast=null):void 0},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y;return y=up.util,n="up-destructable",r="up-destructors",c=[],h=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[c].concat(e.call(t)))},m=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[h].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u,a,s,l,c;for(up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(c=y.isString(e.keep)?e.keep:"",t.attr("up-keep",c)),l=e.callback.apply(n,[t,p(t)]),a=f(l),s=[],i=0,u=a.length;u>i;i++)r=a[i],s.push(o(t,r));return s},f=function(e){return y.isFunction(e)?[e]:y.isArray(e)&&y.all(e,y.isFunction)?e:[]},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,p;for(s=[h,c],p=[],o=0,u=s.length;u>o;o++)a=s[o],p.push(function(){var o,u,s;for(s=[],o=0,u=a.length;u>o;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return p})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;for(e=t(this),i=e.data(r),u=0,a=i.length;a>u;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)})},p=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(c,e),y.each(h,e)},v=function(){var e;return e=function(e){return e.isDefault},c=y.select(c,e),h=y.select(h,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:m,compile:s,clean:a,data:p}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,u=void 0,m=function(){return n.reset(),c=void 0,u=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return u&&(c=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},p=function(e,t){return t=v.options(t,{force:!1}),e=a(e),!t.force&&o(e)||!up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e})?void 0:(i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e}))},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(c)?(v.setMissingAttrs(e,{"up-href":c,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return up.fail("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:p,replace:d,url:r,previousUrl:function(){return c},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal-viewport","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),
|
1
|
+
(function(){window.up={version:"0.30.0"}}).call(this),function(){var e=[].slice,t=function(e,t){return function(){return e.apply(t,arguments)}};up.util=function(n){var r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C,P,O,F,R,U,L,I,_,M,N,j,K,W,q,H,z,Q,J,V,B,X,G,Y,Z,ee,te,ne,re,oe,ie,ue,ae,se,le,ce,pe,fe,de,me,he,ve,ge,ye,be,we,ke,Se,Ae,$e,xe,Ee,De,Te,Ce,Pe,Oe,Fe,Re,Ue,Le,Ie,_e,Me,Ne,je,Ke,We,qe,He,ze,Qe,Je,Ve,Be,Xe,Ge,Ye,Ze,et,tt,nt,rt,ot;return ge=n.noop,pe=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},ne=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},be=function(e,t){var n,r,o;return n=De(e),r=n.protocol+"//"+n.hostname,ne(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)!==!1&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},De=function(e){var t;return t=null,re(e)?(t=n("<a>").attr({href:e}).get(0),N(t.hostname)&&(t.href=t.href)):t=Ze(e),t},ye=function(e){return e?e.toUpperCase():"GET"},r=function(e){var t,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],u=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",i=[],p=null,d=0,h=u.length;h>d;d++)switch(s=u[d],s[0]){case".":i.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,i.length&&(l+=' class="'+i.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",t=n(l),r&&t.appendTo(r),0===f&&(o=t),r=t}return o},b=function(e,t){var n;return n=document.createElement(e),ee(t)&&(n.innerHTML=t),n},o=function(e,t){var n;return null==t&&(t=document.body),n=r(e),n.addClass("up-placeholder"),n.appendTo(t),n},qe=function(e){var t,r,o,i,u,a,s,l,c;if(t=n(e),l=void 0,up.puts("Creating selector from element %o",t.get(0)),c=Pe(t.attr("up-id")))l="[up-id='"+c+"']";else if(i=Pe(t.attr("id")))l="#"+i;else if(s=Pe(t.attr("name")))l="[name='"+s+"']";else if(r=Pe(ve(t)))for(l="",o=0,a=r.length;a>o;o++)u=r[o],l+="."+u;else l=t.prop("tagName").toLowerCase();return l},ve=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),We(n,function(e){return ee(e)&&!e.match(/^up-/)})},w=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},u=function(e){return"</"+e+">"},t="(?:.|\\s)*?",i=function(e){return"("+e+")"},f=new RegExp(l("title")+i(t)+u("title"),"i"),o=new RegExp(l("body")+i(t)+u("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=b("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=b("head"),s.appendChild(a),c=b("title",p[1]),a.appendChild(c)),s):b("div",e)},T=n.extend,Ye=n.trim,$=function(e,t){var n,r,o,i,u;for(u=[],r=n=0,i=e.length;i>n;r=++n)o=e[r],u.push(t(o,r));return u},le=$,Be=function(e,t){var n,r,o,i;for(i=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)i.push(t(r));return i},G=function(e){return null===e},oe=function(e){return void 0===e},K=function(e){return!oe(e)},X=function(e){return oe(e)||G(e)},J=function(e){return!X(e)},N=function(e){return X(e)||Z(e)&&0===Object.keys(e).length||0===e.length},Pe=function(e,t){return null==t&&(t=ee),t(e)?e:void 0},ee=function(e){return!N(e)},Q=function(e){return"function"==typeof e},re=function(e){return"string"==typeof e},Y=function(e){return"number"==typeof e},V=function(e){return"object"==typeof e&&!!e},Z=function(e){return V(e)||"function"==typeof e},q=function(e){return!(!e||1!==e.nodeType)},B=function(e){return e instanceof jQuery},te=function(e){return Z(e)&&Q(e.then)},j=function(e){return te(e)&&Q(e.resolve)},M=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},z=function(e){return up.browser.canFormData()&&e instanceof FormData},Ge=function(e){return Array.prototype.slice.call(e)},g=function(e){return M(e)?e.slice():V(e)?T({},e):void 0},Ze=function(e){return B(e)?e.get(0):e},fe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],T.apply(null,[{}].concat(e.call(t)))},Ee=function(e,t){var n,r,o,i;if(o=e?g(e):{},t)for(r in t)n=t[r],i=o[r],J(i)?Z(n)&&Z(i)&&(o[r]=Ee(i,n)):o[r]=n;return o},xe=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],S(t,J)},S=function(e,t){var n,r,o,i;for(i=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=n;break}return i},l=function(e,t){var n,r,o,i;for(i=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){i=!0;break}return i},s=function(e,t){var n,r,o,i;for(i=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){i=!1;break}return i},m=function(e){return We(e,J)},et=function(e){var t;return t={},We(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},We=function(e,t){var n;return n=[],$(e,function(e){return t(e)?n.push(e):void 0}),n},Re=function(e,t){return We(e,function(e){return!t(e)})},_=function(e,t){return We(e,function(e){return v(t,e)})},Oe=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,i;for(i=[],e=0,o=r.length;o>e;e++)n=r[e],i.push(t.attr(n));return i}(),S(o,ee)},Qe=function(e,t){return e>0?setTimeout(t,e):t()},he=function(e){return setTimeout(e,0)},ae=function(e){return e[e.length-1]},d=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},Ke=pe(function(){var e,t,r;return e=n("<div>"),e.attr("up-viewport",""),e.css({position:"absolute",top:"0",left:"0",width:"100px",height:"100px",overflowY:"scroll"}),e.appendTo(document.body),t=e.get(0),r=t.offsetWidth-t.clientWidth,e.remove(),r}),A=function(){var e,t,r,o,i,u;return t=document.body,e=n(t),u=document.documentElement,r=e.css("overflow-y"),i="scroll"===r,o="hidden"===r,i||!o&&u.scrollHeight>u.clientHeight},Se=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Ve=function(e,t,r){var o,i,u;return o=n(e),u=o.css(Object.keys(t)),o.css(t),i=function(){return o.css(u)},r?(r(),i()):Se(i)},U=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),N(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},L=function(e){return e=Ze(e),e.offsetHeight},k=function(e,t,r){var o,u,a,s,l,c,p,f;return o=n(e),r=Ee(r,{duration:300,delay:0,easing:"ease"}),0===r.duration?(o.css(t),Ne()):(u=n.Deferred(),p=Object.keys(t),l={"transition-property":p.join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},a=o.css(Object.keys(l)),o.addClass("up-animating"),c=function(){return o.removeClass("up-animating"),o.off("transitionend",s)},s=function(e){var t;return t=e.originalEvent.propertyName,v(p,t)?(u.resolve(),c()):void 0},o.on("transitionend",s),u.then(c),f=U(o),o.css(l),o.css(t),o.data(i,u),u.then(function(){var e;return o.removeData(i),f(),o.css({transition:"none"}),e=!("none"===a["transition-property"]||"all"===a["transition-property"]&&"0"===a["transition-duration"][0]),e?(L(o),o.css(a)):void 0}),u)},i="up-animation-deferred",F=function(e){return n(e).each(function(){var e;return(e=Te(this,i))?e.resolve():void 0})},ce=function(e,t){var r,o,i,u,a;return t=Ee(t,{relative:!1,inner:!1}),t.relative?t.relative===!0?u=e.position():(r=n(t.relative),a=e.offset(),r.is(document)?u=a:(i=r.offset(),u={left:a.left-i.left,top:a.top-i.top})):u=e.offset(),o={left:u.left,top:u.top},t.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),o},y=function(e,t){var n,r,o,i,u;for(i=e.get(0).attributes,u=[],r=0,o=i.length;o>r;r++)n=i[r],n.specified?u.push(t.attr(n.name,n.value)):u.push(void 0);return u},O=function(e,t){return e.find(t).addBack(t)},E=function(e){return 27===e.keyCode},v=function(e,t){return e.indexOf(t)>=0},f=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},se=function(e){return e.getResponseHeader("X-Up-Location")},Xe=function(e){return e.getResponseHeader("X-Up-Title")},de=function(e){return e.getResponseHeader("X-Up-Method")},Ae=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=i.length;r>n;n++)u=i[n],o.hasOwnProperty(u)&&(t[u]=o[u]);return t},D=function(){var t,n,r,o,i,u;for(o=arguments[0],i=2<=arguments.length?e.call(arguments,1):[],t=g(o),n=0,r=i.length;r>n;n++)u=i[n],delete t[u];return t},ie=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},ue=function(e){var t;return t=oe(e.button)||0===e.button,t&&ie(e)},Ne=function(){var e;return e=n.Deferred(),e.resolve(),e},je=function(){return Ne().promise()},tt=function(){return n.Deferred()},nt=function(){return tt().promise()},we=function(){return n()},Me=function(){var t,r;return t=1<=arguments.length?e.call(arguments,0):[],r=n.when.apply(n,[Ne()].concat(e.call(t))),r.resolve=pe(function(){return $(t,function(e){return e.resolve()})}),r},ze=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],X(e.attr(n))?r.push(e.attr(n,o)):r.push(void 0);return r},Ue=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},me=function(e){var t,r,o,i,u,a,s;for(u={},s=[],r=[],o=0,i=e.length;i>o;o++)a=e[o],re(a)?s.push(a):r.push(a);return u.parsed=r,s.length&&(t=s.join(", "),u.parsed.push(t)),u.select=function(){return u.find(void 0)},u.find=function(e){var t,r,o,i,a,s;for(r=we(),a=u.parsed,o=0,i=a.length;i>o;o++)s=a[o],t=e?e.find(s):n(s),r=r.add(t);return r},u.findWithSelf=function(e){var t;return t=u.find(e),u.doesMatch(e)&&(t=t.add(e)),t},u.doesMatch=function(e){var t;return t=n(e),l(u.parsed,function(e){return t.is(e)})},u.seekUp=function(e){var t,r,o;for(o=n(e),t=o,r=void 0;t.length;){if(u.doesMatch(t)){r=t;break}t=t.parent()}return r||we()},u},p=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return null==t&&(t={}),h=void 0,d=function(e){return function(){var n;return n=t[e],Y(n)?n:Q(n)?n():void 0}},p=d("size"),o=d("expiry"),f=function(e){return t.key?t.key(e):e.toString()},u=function(){return 0!==p()&&0!==o()},r=function(){return h={}},r(),l=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.logPrefix?(n[0]="["+t.logPrefix+"] "+n[0],up.puts.apply(up,n)):void 0},s=function(){return Object.keys(h)},c=function(){var e,t,n,r;return r=g(s()),e=p(),e&&r.length>=e&&(t=null,n=null,$(r,function(e){var r,o;return r=h[e],o=r.timestamp,!n||n>o?(t=e,n=o):void 0}),t)?delete h[t]:void 0},n=function(e,t){var n;return n=i(e,{silent:!0}),K(n)?m(t,n):void 0},v=function(){return(new Date).valueOf()},m=function(e,t){var n;return u()?(c(),n=f(e),h[n]={timestamp:v(),value:t}):void 0},Ue=function(e){var t;return t=f(e),delete h[t]},a=function(e){var t,n;return t=o(),t?(n=v()-e.timestamp,t>n):!0},i=function(e,t){var n,r;return null==t&&(t={}),r=f(e),(n=h[r])?a(n)?(t.silent||l("Cache hit for '%s'",e),n.value):(t.silent||l("Discarding stale cache entry for '%s'",e),void Ue(e)):void(t.silent||l("Cache miss for '%s'",e))},{alias:n,get:i,set:m,remove:Ue,clear:r,keys:s}},h=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){var n;return n=e,Q(n)&&(n=n()),T(t,n)},t.reset(),Object.preventExtensions(t),t},rt=function(e){var t,n;return e=Ze(e),t=e.parentNode,n=Ge(e.childNodes),$(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},ke=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},H=function(e){var t,r;for(t=n(e);;){if(r=t.css("position"),"fixed"===r)return!0;if(t=t.parent(),0===t.length||t.is(document))return!1}},R=function(e,t){var r,o,i,u;return r=n(e),o=ke(r),i=r.position(),u=o.offset(),r.css({position:"absolute",left:i.left-u.left,top:i.top-u.top+t.scrollTop(),right:"",bottom:""})},Le=function(e){var t,n,r,o,i,u,a;if(z(e))return up.fail("Cannot convert FormData into an array");for(u=Ie(e),t=[],a=u.split("&"),n=0,r=a.length;r>n;n++)i=a[n],ee(i)&&(o=i.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},Ie=function(e){var t;return z(e)?up.fail("Cannot convert FormData into a query string"):ee(e)?(t=n.param(e),t=t.replace(/\+/g,"%20")):""},_e=function(e){var t,r;return t=n(e),r=t.find("input[type=file]").length,r&&up.browser.canFormData()?new FormData(t.get(0)):t.serializeArray()},c=function(e,t,n){var r;return z(e)?e.append(t,n):M(e)?e.push({name:t,value:n}):Z(e)?e[t]=n:(re(e)||X(e))&&(r=Ie([{name:t,value:n}]),e=ee(e)?[e,r].join("&"):r),e},P=function(){var t,n,r,o,i,u;throw t=1<=arguments.length?e.call(arguments,0):[],M(t[0])?(r=t[0],u=t[1]||{}):(r=t,u={}),(o=up.log).error.apply(o,r),ot().then(function(){return up.toast.open(r,u)}),n=(i=up.browser).sprintf.apply(i,r),new Error(n)},a={"&":"&","<":"<",">":">",'"':"""},x=function(e){return e.replace(/[&<>"]/g,function(e){return a[e]})},Ce=function(e,t){var n;return n=e[t],delete e[t],n},Te=function(e,t){var r,o;return r=n(e),o=r.data(t),r.removeData(t),o},C=function(e){var t;return t=ae(e),V(t)&&!B(t)?e.pop():{}},$e=function(e){var t;return t=n(e).css("opacity"),J(t)?parseFloat(t):void 0},ot=pe(function(){var e;return n.isReady?je():(e=n.Deferred(),n(function(){return e.resolve()}),e.promise())}),I=function(e){return e},W=function(e){return e=Ze(e),!jQuery.contains(document.documentElement,e)},Fe=function(t){var r,o;return r=n.Deferred(),o=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.apply(null,n).then(function(){return r.resolve()})},o.promise=r.promise(),o},u=function(){function r(){this.asap=t(this.asap,this),this.poke=t(this.poke,this),this.allTasks=t(this.allTasks,this),this.promise=t(this.promise,this),this.reset=t(this.reset,this),this.reset()}return r.prototype.reset=function(){return this.queue=[],this.currentTask=void 0},r.prototype.promise=function(){var e;return e=le(this.allTasks(),function(e){return e.promise}),n.when.apply(n,e)},r.prototype.allTasks=function(){var e;return e=[],this.currentTask&&e.push(this.currentTask),e=e.concat(this.queue)},r.prototype.poke=function(){var e;return!this.currentTask&&(this.currentTask=this.queue.shift())?(e=this.currentTask(),e.always(function(e){return function(){return e.currentTask=void 0,e.poke()}}(this))):void 0},r.prototype.asap=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],this.queue=le(t,Fe),this.poke()},r}(),Je=function(e){var t;return t=n(e),t.is("[type=checkbox], [type=radio]")&&!t.is(":checked")?void 0:t.val()},He=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],function(){return le(t,function(e){return e()})}},{isDetached:W,requestDataAsArray:Le,requestDataAsQuery:Ie,appendRequestData:c,requestDataFromForm:_e,offsetParent:ke,fixedToAbsolute:R,isFixed:H,presentAttr:Oe,createElement:b,parseUrl:De,normalizeUrl:be,normalizeMethod:ye,createElementFromHtml:w,$createElementFromSelector:r,$createPlaceholder:o,selectorForElement:qe,extend:T,copy:g,merge:fe,options:Ee,option:xe,fail:P,each:$,map:le,times:Be,any:l,all:s,detect:S,select:We,reject:Re,intersect:_,compact:m,uniq:et,last:ae,isNull:G,isDefined:K,isUndefined:oe,isGiven:J,isMissing:X,isPresent:ee,isBlank:N,presence:Pe,isObject:Z,isFunction:Q,isString:re,isNumber:Y,isElement:q,isJQuery:B,isPromise:te,isDeferred:j,isHash:V,isArray:M,isFormData:z,isUnmodifiedKeyEvent:ie,isUnmodifiedMouseEvent:ue,nullJQuery:we,unJQuery:Ze,setTimer:Qe,nextFrame:he,measure:ce,temporaryCss:Ve,cssAnimate:k,finishCssAnimate:F,forceCompositing:U,forceRepaint:L,escapePressed:E,copyAttributes:y,findWithSelf:O,contains:v,toArray:Ge,castedAttr:f,locationFromXhr:se,titleFromXhr:Xe,methodFromXhr:de,clientSize:d,only:Ae,except:D,trim:Ye,unresolvableDeferred:tt,unresolvablePromise:nt,resolvedPromise:je,resolvedDeferred:Ne,resolvableWhen:Me,setMissingAttrs:ze,remove:Ue,memoize:pe,scrollbarWidth:Ke,documentHasVerticalScrollbar:A,config:h,cache:p,unwrapElement:rt,multiSelector:me,error:P,pluckData:Te,pluckKey:Ce,extractOptions:C,isDetached:W,noop:ge,opacity:$e,whenReady:ot,identity:I,escapeHtml:x,DivertibleChain:u,submittedValue:Je,sequence:He}}($),up.fail=up.util.fail}.call(this),function(){var slice=[].slice;up.browser=function($){var CONSOLE_PLACEHOLDERS,canCssTransition,canFormData,canInputEvent,canLogSubstitution,canPushState,initialRequestMethod,installPolyfills,isIE8OrWorse,isIE9OrWorse,isRecentJQuery,isSupported,loadPage,popCookie,puts,sessionStorage,setLocationHref,sprintf,sprintfWithFormattedArgs,stringifyArg,submitForm,u,url,whenConfirmed;return u=up.util,loadPage=function(e,t){var n,r,o,i,a;return null==t&&(t={}),i=u.option(t.method,"get").toLowerCase(),"get"===i?(a=u.requestDataAsQuery(t.data),a&&(e=e+"?"+a),setLocationHref(e)):(n=$("<form method='post' action='"+e+"' class='up-page-loader'></form>"),r=function(e){var t;return t=$('<input type="hidden">'),t.attr(e),t.appendTo(n)},r({name:up.proxy.config.wrapMethodParam,value:i}),(o=up.rails.csrfField())&&r(o),u.each(u.requestDataAsArray(t.data),r),n.hide().appendTo("body"),submitForm(n))},submitForm=function(e){return e.submit()},setLocationHref=function(e){return location.href=e},puts=function(){var e,t,n;return n=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],canLogSubstitution()?console[n].apply(console,e):(t=sprintf.apply(null,e),console[n](t))},CONSOLE_PLACEHOLDERS=/\%[odisf]/g,stringifyArg=function(e){var t,n,r,o,i,a,s,l,c;if(a=200,r="",u.isString(e))l=e.replace(/[\n\r\t ]+/g," "),l=l.replace(/^[\n\r\t ]+/,""),l=l.replace(/[\n\r\t ]$/,""),l='"'+l+'"',r='"';else if(u.isUndefined(e))l="undefined";else if(u.isNumber(e)||u.isFunction(e))l=e.toString();else if(u.isArray(e))l="["+u.map(e,stringifyArg).join(", ")+"]",r="]";else if(u.isJQuery(e))l="$("+u.map(e,stringifyArg).join(", ")+")",r=")";else if(u.isElement(e)){for(t=$(e),l="<"+e.tagName.toLowerCase(),s=["id","name","class"],o=0,i=s.length;i>o;o++)n=s[o],(c=t.attr(n))&&(l+=" "+n+'="'+c+'"');l+=">",r=">"}else l=JSON.stringify(e);return l.length>a&&(l=l.substr(0,a)+" \u2026",l+=r),l},sprintf=function(){var e,t;return t=arguments[0],e=2<=arguments.length?slice.call(arguments,1):[],sprintfWithFormattedArgs.apply(null,[u.identity,t].concat(slice.call(e)))},sprintfWithFormattedArgs=function(){var e,t,n,r;return t=arguments[0],r=arguments[1],e=3<=arguments.length?slice.call(arguments,2):[],u.isBlank(r)?"":(n=0,r.replace(CONSOLE_PLACEHOLDERS,function(){var r;return r=e[n],r=t(stringifyArg(r)),n+=1,r}))},url=function(){return location.href},isIE8OrWorse=u.memoize(function(){return u.isUndefined(document.addEventListener)}),isIE9OrWorse=u.memoize(function(){return isIE8OrWorse()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),canPushState=u.memoize(function(){return u.isDefined(history.pushState)&&"get"===initialRequestMethod()}),canCssTransition=u.memoize(function(){return"transition"in document.documentElement.style}),canInputEvent=u.memoize(function(){return"oninput"in document.createElement("input")}),canFormData=u.memoize(function(){return!!window.FormData}),canLogSubstitution=u.memoize(function(){return!isIE9OrWorse()}),isRecentJQuery=u.memoize(function(){var e,t,n,r;return r=$.fn.jquery,n=r.split("."),e=parseInt(n[0]),t=parseInt(n[1]),e>=2||1===e&&t>=9}),popCookie=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,u.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},whenConfirmed=function(e){return e.preload||u.isBlank(e.confirm)||window.confirm(e.confirm)?u.resolvedPromise():u.unresolvablePromise()},initialRequestMethod=u.memoize(function(){return(popCookie("_up_request_method")||"get").toLowerCase()}),isSupported=function(){return!isIE8OrWorse()&&isRecentJQuery()},installPolyfills=function(){var e,t,n,r;for(null==window.console&&(window.console={}),r=["debug","info","warn","error","group","groupCollapsed","groupEnd"],e=0,t=r.length;t>e;e++)n=r[e],null==console[n]&&(console[n]=function(){var e;return e=1<=arguments.length?slice.call(arguments,0):[],puts.apply(null,["log"].concat(slice.call(e)))});return null!=console.log?console.log:console.log=u.noop},sessionStorage=u.memoize(function(){return window.sessionStorage||{getItem:u.noop,setItem:u.noop,removeItem:u.noop}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),url:url,loadPage:loadPage,whenConfirmed:whenConfirmed,canPushState:canPushState,canCssTransition:canCssTransition,canInputEvent:canInputEvent,canFormData:canFormData,canLogSubstitution:canLogSubstitution,isSupported:isSupported,installPolyfills:installPolyfills,puts:puts,sprintf:sprintf,sprintfWithFormattedArgs:sprintfWithFormattedArgs,sessionStorage:sessionStorage}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,consumeAction,emit,emitReset,forgetUpDescription,haltEvent,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener,whenEmitted;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||up.fail("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,n!==!1&&(u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n)?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},whenEmitted=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=$.Deferred(),nobodyPrevents.apply(null,e)&&t.resolve(),t.promise()},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},haltEvent=function(e){return e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},consumeAction=function(e){return haltEvent(e),"up:action:consumed"!==e.type?emit("up:action:consumed",{$element:$(e.target),message:!1}):void 0},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),emit("up:framework:boot",{message:"Booting framework"}),emit("up:framework:booted",{message:"Framework booted"}),u.nextFrame(function(){return u.whenReady().then(function(){return emit("up:app:boot",{message:"Booting user application"}),emit("up:app:booted",{message:"User application booted"})})})):void 0},live("up:framework:booted",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,whenEmitted:whenEmitted,onEscape:onEscape,emitReset:emitReset,haltEvent:haltEvent,consumeAction:consumeAction,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.log=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return h=up.util,r=up.browser,n="up.log.enabled",o=h.config({prefix:"[UP] ",enabled:h.option(r.sessionStorage().getItem(n),!1),collapse:!1}),d=function(){return o.reset()},c=function(e){return""+o.prefix+e},i=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["debug",c(n)].concat(e.call(t))):void 0},f=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["log",c(n)].concat(e.call(t))):void 0},v=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],o.enabled&&n?r.puts.apply(r,["warn",c(n)].concat(e.call(t))):void 0},l=function(){var t,n,i,u;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!o.enabled||!i)return n();u=o.collapse?"groupCollapsed":"group",r.puts.apply(r,[u,c(i)].concat(e.call(t)));try{return n()}finally{i&&r.puts("groupEnd")}},s=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?r.puts.apply(r,["error",c(n)].concat(e.call(t))):void 0},p=function(){var e;return e=" __ _____ ___ ___ / /_ __\n"+("/ // / _ \\/ _ \\/ _ \\/ / // / "+up.version+"\n")+"\\___/_//_/ .__/\\___/_/\\_. / \n / / / /\n\n",e+=o.enabled?"Call `up.log.disable()` to disable logging for this session.":"Call `up.log.enable()` to enable logging for this session.",r.puts("log",e)},up.on("up:framework:boot",p),up.on("up:framework:reset",d),m=function(e){return r.sessionStorage().setItem(n,e),o.enabled=e},a=function(){return m(!0)},u=function(){return m(!1)},{puts:f,debug:i,error:s,warn:v,group:l,config:o,enable:a,disable:u}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.toast=function(t){var n,r,o,i,u,a,s,l,c,p;return p=up.util,o=up.browser,n=function(e){return"<span class='up-toast-variable'>"+p.escapeHtml(e)+"</span>"},c=p.config({$toast:null}),l=function(){return i(),c.reset()},a=function(t){return p.isArray(t)?(t[0]=p.escapeHtml(t[0]),t=o.sprintfWithFormattedArgs.apply(o,[n].concat(e.call(t)))):t=p.escapeHtml(t),t},u=function(){return!!c.$toast},r=function(e,n,r){var o;return o=t('<span class="up-toast-action"></span>').text(n),o.on("click",r),o.appendTo(e)},s=function(e,n){var o,u,s,l;return null==n&&(n={}),i(),s=t('<div class="up-toast"></div>').prependTo("body"),u=t('<div class="up-toast-message"></div>').appendTo(s),o=t('<div class="up-toast-actions"></div>').appendTo(s),e=a(e),u.html(e),(l=n.action||n.inspect)&&r(o,l.label,l.callback),r(o,"Close",i),c.$toast=s},i=function(){return u()?(c.$toast.remove(),c.$toast=null):void 0},up.on("up:framework:reset",l),{open:s,close:i,reset:l,isOpen:u}}(jQuery)}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y;return y=up.util,n="up-destructable",r="up-destructors",c=[],h=[],l=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[c].concat(e.call(t)))},m=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],d.apply(null,[h].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=y.options(t[0],{priority:0}),"first"===r.priority?r.priority=Number.POSITIVE_INFINITY:"last"===r.priority&&(r.priority=Number.NEGATIVE_INFINITY),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},d=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority>=r.priority;)n+=1;return i.splice(n,0,r)}},i=function(e,t,n){var r,i,u,a,s,l,c;for(up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,n),e.keep&&(c=y.isString(e.keep)?e.keep:"",t.attr("up-keep",c)),l=e.callback.apply(n,[t,p(t)]),a=f(l),s=[],i=0,u=a.length;u>i;i++)r=a[i],s.push(o(t,r));return s},f=function(e){return y.isFunction(e)?[e]:y.isArray(e)&&y.all(e,y.isFunction)?e:[]},o=function(e,t){var o;return e.addClass(n),o=e.data(r)||[],o.push(t),e.data(r,o)},s=function(e,n){var r;return n=y.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,o,u,a,s,p;for(s=[h,c],p=[],o=0,u=s.length;u>o;o++)a=s[o],p.push(function(){var o,u,s;for(s=[],o=0,u=a.length;u>o;o++)l=a[o],n=y.findWithSelf(e,l.selector),n=n.filter(function(){var e;return e=t(this),y.all(r,function(t){return 0===e.closest(t).length})}),n.length?s.push(up.log.group(l.isDefault?void 0:"Compiling '%s' on %d element(s)",l.selector,n.length,function(){return l.batch?i(l,n,n.get()):n.each(function(){return i(l,t(this),this)})})):s.push(void 0);return s}());return p})},a=function(e){return y.findWithSelf(e,"."+n).each(function(){var e,o,i,u,a;for(e=t(this),i=e.data(r),u=0,a=i.length;a>u;u++)(o=i[u])();return e.removeData(r),e.removeClass(n)})},p=function(e){var n,r;return n=t(e),r=n.attr("up-data"),y.isString(r)&&""!==y.trim(r)?JSON.parse(r):{}},g=function(){var e;return e=function(e){return e.isDefault=!0},y.each(c,e),y.each(h,e)},v=function(){var e;return e=function(e){return e.isDefault},c=y.select(c,e),h=y.select(h,e)},up.on("up:framework:booted",g),up.on("up:framework:reset",v),{compiler:l,macro:m,compile:s,clean:a,data:p}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro}.call(this),function(){up.history=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,u=void 0,m=function(){return n.reset(),c=void 0,u=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return u&&(c=u,u=void 0),u=e},d=function(e){return i("replaceState",e)},p=function(e,t){return t=v.options(t,{force:!1}),e=a(e),!t.force&&o(e)||!up.bus.nobodyPrevents("up:history:push",{url:e,message:"Adding history entry for "+e})?void 0:(i("pushState",e),up.emit("up:history:pushed",{url:e,message:"Advanced to location "+e}))},i=function(e,n){var o;return up.browser.canPushState()?(o=t(),window.history[e](o,"",n),s(r())):up.fail("This browser doesn't support history."+e)},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,title:!0,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){var t,n;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t),n=r(),up.emit("up:history:restored",{url:n,message:"Restored location "+n})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(c)?(v.setMissingAttrs(e,{"up-href":c,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return up.fail("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:p,replace:d,url:r,previousUrl:function(){return c},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal-viewport","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),
|
2
2
|
i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||up.fail("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,i;for(o=$(config.fixedTop.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"top"));return i}(),e=function(){var e,t,o,i;for(o=$(config.fixedBottom.join(", ")),i=[],e=0,t=o.length;t>e;e++)r=o[e],i.push(n(r,"bottom"));return i}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),p=r.scrollTop(),s=p,c=void 0,l=void 0,v?(l=measureObstruction(),c=0):(l={top:0,bottom:0},c=p),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+c,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==p?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e,t){var n,r;return null==t&&(t={}),n=$(e),r=viewportSelector().seekUp(n),0===r.length&&t.strict!==!1&&up.fail("Could not find viewport for %o",n),r},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,i,u;for(i={},o=config.viewports,t=0,r=o.length;r>t;t++)u=o[t],e=$(u),e.length&&(n=u,u===document&&(n="document"),i[n]=e.scrollTop());return i},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return up.fail("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,config,destroy,emitFragmentInserted,emitFragmentKept,extract,filterScripts,findKeepPlan,findOldFragment,first,firstInLayer,firstInPriority,hello,isRealElement,layerOf,matchesLayer,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,reset,resolveSelector,setSource,shouldExtractTitle,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,config=u.config({runInlineScripts:!0,runLinkedScripts:!1}),reset=function(){return config.reset()},setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):up.fail("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a,s,l;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),l=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(s={url:t,method:n.method,data:n.data,target:l,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},n.inspectResponse=function(){return up.browser.loadPage(t,u.only(n,"method","data"))},a=up.ajax(s),i=function(e,r,o){return processResponse(!0,l,t,s,o,n)},o=function(e,o,i){return processResponse(!1,r,t,s,e,n)},a=a.then(i,o)):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,c;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),a="GET"===i.method,(c=u.locationFromXhr(o))?(n=c,e&&up.proxy.isCachable(r)&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),shouldExtractTitle(i)&&(i.title=u.titleFromXhr(o)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},shouldExtractTitle=function(e){return!(e.title===!1||u.isString(e.title)||e.history===!1&&e.title!==!0)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i;return n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0,layer:"auto"}),i=resolveSelector(e,n.origin),o=parseResponse(t,n),shouldExtractTitle(n)&&(n.title=o.title()),n.saveScroll!==!1&&up.layout.saveScroll(),r=u.resolvedPromise(),n.beforeSwap&&(r=r.then(n.beforeSwap)),r=r.then(function(){return updateHistory(n)}),r=r.then(function(){var e,t,r,u,a;for(a=[],r=parseImplantSteps(i,n),e=0,t=r.length;t>e;e++)u=r[e],up.log.group("Updating %s",u.selector,function(){var e,t,r;return t=findOldFragment(u.selector,n),e=o.first(u.selector),t&&e?(filterScripts(e,n),r=swapElements(t,e,u.pseudoClass,u.transition,n),a.push(r),n.reveal=!1):void 0});return $.when.apply($,a)}),n.afterSwap&&(r=r.then(n.afterSwap)),r})},findOldFragment=function(e,t){return first(e,t)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n,r;return t.requireMatch?(n=t.layer,"auto"===n&&(n="page, modal or popup"),r="Could not find selector %s in the current "+n,"#"===r[0]&&(r+=" (avoid using IDs)"),up.fail(r,e)):void 0},filterScripts=function(e,t){var n,r,o,i,a,s,l,c,p,f;for(c=u.option(t.runInlineScripts,config.runInlineScripts),p=u.option(t.runLinkedScripts,config.runLinkedScripts),r=u.findWithSelf(e,"script"),l=[],a=0,s=r.length;s>a;a++)f=r[a],n=$(f),i=u.isPresent(n.attr("src")),o=!i,i&&p||o&&c?l.push(void 0):l.push(n.remove());return l},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},first:function(r){var o,i;return(o=$.find(r,n)[0])?$(o):t.requireMatch?(i={label:"Open response",callback:t.inspectResponse},up.fail(["Could not find selector %s in response %o",r,e],{action:i})):void 0}}},updateHistory=function(e){return e=u.options(e,{historyMethod:"push"}),e.history&&up.history[e.historyMethod](e.history),e.title?document.title=e.title:void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrapAll('<div class="up-insertion"></div>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)}),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),e.is("body")?(up.syntax.clean(e),e.replaceWith(t)):t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,c,p;if(a=[],n.keep)for(p=e.find("[up-keep]"),i=0,l=p.length;l>i;i++)s=p[i],r=$(s),(c=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),c.$newElement.replaceWith(r),a.push(c));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)c=r[o],p=c.match(/^(.+?)(?:\:(before|after))?$/),p||up.fail('Could not parse selector atom "%s"',c),e=p[1],"html"===e&&(e="body"),s=p[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e,t){return t=u.options(t,{layer:"auto"}),"auto"===t.layer?firstInPriority(e,t.origin):firstInLayer(e,t.layer)},firstInPriority=function(e,t){var n,r,o,i,a,s;for(i=["popup","modal","page"],n=void 0,u.isPresent(t)&&(s=layerOf(t),u.remove(i,s),i.unshift(s)),r=0,a=i.length;a>r&&(o=i[r],!(n=firstInLayer(e,o)));r++);return n},firstInLayer=function(e,t){var n,r,o,i,u,a;for(r=$(e),o=void 0,u=0,a=r.length;a>u;u++)if(i=r[u],n=$(i),isRealElement(n)&&matchesLayer(n,t)){o=n;break}return o},layerOf=function(e){var t;return t=$(e),up.popup.contains(t)?"popup":up.modal.contains(t)?"modal":"page"},matchesLayer=function(e,t){return layerOf(e)===t},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),0===n.length?u.resolvedDeferred():up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),updateHistory(t),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("up:app:boot",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello,config:config}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){var e=[].slice;up.motion=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C;return T=up.util,a={},c={},E={},p={},l=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),k=function(){return m(),a=T.copy(c),E=T.copy(p),l.reset()},v=function(){return l.enabled&&up.browser.canCssTransition()},o=function(e,n,r){var u;return u=t(e),m(u),r=i(r),"none"===n||n===!1?b():T.isFunction(n)?s(n(u,r),n):T.isString(n)?o(u,d(n),r):T.isHash(n)?v()?T.cssAnimate(u,n,r):(u.css(n),T.resolvedDeferred()):up.fail("Unknown animation type for %o",n)},i=function(){var t,n,r,o,i;return n=1<=arguments.length?e.call(arguments,0):[],i=n.shift()||{},t=T.isJQuery(n[0])?n.shift():T.nullJQuery(),o=T.isObject(n[0])?n.shift():{},r={},r.easing=T.option(i.easing,T.presentAttr(t,"up-easing"),o.easing,l.easing),r.duration=Number(T.option(i.duration,T.presentAttr(t,"up-duration"),o.duration,l.duration)),r.delay=Number(T.option(i.delay,T.presentAttr(t,"up-delay"),o.delay,l.delay)),r},d=function(e){return a[e]||up.fail("Unknown animation %o",e)},r="up-ghosting-deferred",n="up-ghosting",C=function(e,t,o,i){var u,a,s,l,c,p,f,d;return o.copy===!1||e.is(".up-ghost")||t.is(".up-ghost")?i(e,t):(p=void 0,l=void 0,f=void 0,c=void 0,a=up.layout.viewportOf(e),u=e.add(t),T.temporaryCss(t,{display:"none"},function(){return p=w(e,a),f=a.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(t,o),l=w(t,a),c=a.scrollTop()}),p.moveTop(c-f),e.hide(),d=T.temporaryCss(t,{opacity:"0"}),s=i(p.$ghost,l.$ghost),u.data(r,s),u.addClass(n),s.then(function(){return u.removeData(r),u.removeClass(n),d(),p.$bounds.remove(),l.$bounds.remove()}),s)},m=function(e){var r,o,i;return null==e&&(e=".up-animating"),o=t(e),r=T.findWithSelf(o,".up-animating"),T.finishCssAnimate(r),i=T.findWithSelf(o,"."+n),h(i)},h=function(e){return e.each(function(){var e,n;return e=t(this),(n=T.pluckData(e,r))?n.resolve():void 0})},s=function(e,t){return T.isDeferred(e)?e:up.fail("Did not return a promise with .then and .resolve methods: %o",t)},y=function(e,n,r,u){var l,c;return"none"===r&&(r=!1),u=T.options(u),c=t(e),l=t(n),f(c,r),f(l,r),up.log.group(r?"Morphing %o to %o (using %s, %o)":void 0,c.get(0),l.get(0),r,u,function(){var e,t,n,p;return t=T.only(u,"reveal","restoreScroll","source"),t=T.extend(t,i(u)),v()?(m(c),m(l),r?(e=a[r])?(A(c,l,t),o(l,e,t)):(p=T.presence(r,T.isFunction)||E[r])?C(c,l,t,function(e,n){var o;return o=p(e,n,t),s(o,r)}):T.isString(r)&&r.indexOf("/")>=0?(n=r.split("/"),p=function(e,t,r){return S(o(e,n[0],r),o(t,n[1],r))},y(c,l,p,t)):up.fail("Unknown transition %o",r):A(c,l,t)):A(c,l,t)})},f=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),up.fail("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},A=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},w=function(e,n){var r,o,i,u,a,s,l,c,p;for(u=T.measure(e,{relative:!0,inner:!0}),i=e.clone(),i.find("script").remove(),i.css({position:"static"===e.css("position")?"static":"relative",top:"auto",right:"auto",bottom:"auto",left:"auto",width:"100%",height:"100%"}),i.addClass("up-ghost"),r=t('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(u),p=u.top,c=function(e){return 0!==e?(p+=e,r.css({top:p})):void 0},i.appendTo(r),r.insertBefore(e),c(e.offset().top-i.offset().top),o=up.layout.fixedChildren(i),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:i,$bounds:r,moveTop:c}},x=function(e,t){return E[e]=t},u=function(e,t){return a[e]=t},$=function(){return c=T.copy(a),p=T.copy(E)},S=T.resolvableWhen,b=T.resolvedDeferred,g=function(e){return e===!1||"none"===e||e===b},u("none",b),u("fade-in",function(e,t){return e.css({opacity:0}),o(e,{opacity:1},t)}),u("fade-out",function(e,t){return e.css({opacity:1}),o(e,{opacity:0},t)}),D=function(e,t){return{transform:"translate("+e+"px, "+t+"px)"}},u("move-to-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,0)),o(e,D(0,-r),t)}),u("move-from-top",function(e,t){var n,r;return n=T.measure(e),r=n.top+n.height,e.css(D(0,-r)),o(e,D(0,0),t)}),u("move-to-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,0)),o(e,D(0,r),t)}),u("move-from-bottom",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().height-n.top,e.css(D(0,r)),o(e,D(0,0),t)}),u("move-to-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(0,0)),o(e,D(-r,0),t)}),u("move-from-left",function(e,t){var n,r;return n=T.measure(e),r=n.left+n.width,e.css(D(-r,0)),o(e,D(0,0),t)}),u("move-to-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(0,0)),o(e,D(r,0),t)}),u("move-from-right",function(e,t){var n,r;return n=T.measure(e),r=T.clientSize().width-n.left,e.css(D(r,0)),o(e,D(0,0),t)}),u("roll-down",function(e,t){var n,r,i;return r=e.height(),i=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n=o(e,{height:r+"px"},t),n.then(i),n}),x("none",b),x("move-left",function(e,t,n){return S(o(e,"move-to-left",n),o(t,"move-from-right",n))}),x("move-right",function(e,t,n){return S(o(e,"move-to-right",n),o(t,"move-from-left",n))}),x("move-up",function(e,t,n){return S(o(e,"move-to-top",n),o(t,"move-from-bottom",n))}),x("move-down",function(e,t,n){return S(o(e,"move-to-bottom",n),o(t,"move-from-top",n))}),x("cross-fade",function(e,t,n){return S(o(e,"fade-out",n),o(t,"fade-in",n))}),up.on("up:framework:booted",$),up.on("up:framework:reset",k),{morph:y,animate:o,animateOptions:i,finish:m,transition:x,animation:u,config:l,isEnabled:v,defaults:function(){return up.fail("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:b,when:S,prependCopy:w,isNone:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,i,u,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,A,$,x,E,D,T,C,P,O,F,R,U,L;return L=up.util,n=void 0,x=void 0,F=void 0,S=void 0,R=void 0,D=[],p=L.config({slowDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),u=function(e){return k(e),[e.url,e.method,L.requestDataAsQuery(e.data),e.target].join("|")},i=L.cache({size:function(){return p.cacheSize},expiry:function(){return p.cacheExpiry},key:u}),f=function(e){var t,n,r,o,u,a,s;if(e=k(e),m(e))for(n=[e],"html"!==e.target&&(a=L.merge(e,{target:"html"}),n.push(a),"body"!==e.target&&(u=L.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],s=i.get(t))return s},a=function(){return clearTimeout(x),x=null},s=function(){return clearTimeout(F),F=null},C=function(){return n=null,a(),s(),S=0,p.reset(),i.clear(),R=!1,D=[]},C(),k=function(e){return e._normalized||(e.method=L.normalizeMethod(e.method),e.url&&(e.url=L.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(){var t,n,r,o,i,u,a;return t=1<=arguments.length?e.call(arguments,0):[],o=L.extractOptions(t),L.isGiven(t[0])&&(o.url=t[0]),n=o.cache===!0,r=o.cache===!1,a=L.only(o,"url","method","data","target","headers","_normalized"),a=k(a),i=!0,h(a)||n?(u=f(a))&&!r?(up.puts("Re-using cached response for %s %s",a.method,a.url),i="pending"===u.state()):(u=b(a),O(a,u),u.fail(function(){return T(a)})):(c(),u=b(a)),i&&!o.preload&&(w(),u.always(y)),u},m=function(e){return!L.isFormData(e.data)},v=function(){return 0===S},d=function(){return S>0},w=function(){var e,t;return t=v(),S+=1,t?(e=function(){return d()?(up.emit("up:proxy:slow",{message:"Proxy is busy"}),R=!0):void 0},F=L.setTimer(p.slowDelay,e)):void 0},y=function(){return S-=1,v()&&R?(up.emit("up:proxy:recover",{message:"Proxy is idle"}),R=!1):void 0},b=function(e){return S<p.maxRequests?g(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},g=function(e){var n;return up.emit("up:proxy:load",L.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=L.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,L.contains(p.wrapMethods,e.method)&&(e.data=L.appendRequestData(e.data,p.wrapMethodParam,e.method),e.method="POST"),L.isFormData(e.data)&&(e.contentType=!1,e.processData=!1),n=t.ajax(e),n.done(function(t,n,r){return P(e,r)}),n.fail(function(t,n,r){return P(e,t)}),n},P=function(e,t){var n;return up.emit("up:proxy:received",L.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),A()},A=function(){var t,n;(t=D.shift())&&(n=g(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)}))},o=i.alias,O=i.set,T=i.remove,c=i.clear,h=function(e){return k(e),L.contains(p.safeMethods,e.method)},l=function(e){var t,r;return r=parseInt(L.presentAttr(e,"up-delay"))||p.preloadDelay,e.is(n)?void 0:(n=e,a(),t=function(){return $(e),n=null},U(t,r))},U=function(e,t){return x=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=L.options(n),o=up.link.followMethod(r,n),h({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),L.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:l(t)}),up.on("up:framework:reset",C),{preload:$,ajax:r,get:f,alias:o,clear:c,remove:T,isIdle:v,isBusy:d,isCachable:m,config:p,defaults:function(){return up.fail("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.whenConfirmed(t).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(e){},onAction=function(e,t){var n;return followVariantSelectors.push(e),n=function(e){return up.navigation.start(e,function(){return t(e)})},up.on("click","a"+e+", [up-href]"+e,function(e,t){return shouldProcessLinkEvent(e,t)?t.is("[up-instant]")?up.bus.haltEvent(e):(up.bus.consumeAction(e),n(t)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,t){return shouldProcessLinkEvent(e,t)?(up.bus.consumeAction(e),n(t)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-dash]",{priority:"last"},function(e){var t,n;return n=u.castedAttr(e,"up-dash"),e.removeAttr("up-dash"),t={"up-preload":"","up-instant":""},n===!0?makeFollowable(e):t["up-target"]=n,u.setMissingAttrs(e,t)}),up.macro("[up-expand]",{priority:"last"},function(e){var t,n,r,o,i,a,s,l,c,p;if(t=e.find("a, [up-href]"),(c=e.attr("up-expand"))&&(t=t.filter(c)),i=t.get(0)){for(p=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(p)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeField,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a,s,l;return n=$(e).closest("form"),t=u.options(t),s=u.option(t.target,n.attr("up-target"),"body"),l=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.layer=u.option(t.layer,n.attr("up-layer"),"auto"),t.data=up.util.requestDataFromForm(n),t=u.merge(t,up.motion.animateOptions(t,n)),i=n.find("input[type=file]").length,r=!i||u.isFormData(t.data),o=up.browser.canPushState()||t.history===!1,t.validate&&(t.headers||(t.headers={}),t.transition=!1,t.failTransition=!1,t.headers["X-Up-Validate"]=t.validate,!r)?u.unresolvablePromise():(up.navigation.start(n),r&&o?(a=up.replace(s,l,t),a.always(function(){return up.navigation.stop(n)}),a):(n.get(0).submit(),u.unresolvablePromise()))},observe=function(){var $element,$fields,callback,callbackArg,delay,destructors,extraArgs,options,rawCallback,selectorOrElement;return selectorOrElement=arguments[0],extraArgs=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===extraArgs.length?callbackArg=extraArgs[0]:extraArgs.length>1&&(options=u.options(extraArgs[0]),callbackArg=extraArgs[1]),$element=$(selectorOrElement),$fields=u.multiSelector(config.fields).findWithSelf($element),callback=null,rawCallback=u.option(callbackArg,u.presentAttr($fields,"up-observe")),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||up.fail("up.observe: No change callback given"),delay=u.option($fields.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),destructors=u.map($fields,function(e){return observeField($(e),options,callback)}),u.sequence.apply(u,destructors)},observeField=function(e,t,n){var r,o,i,a,s,l,c,p;return l=null,o=null,r=u.resolvedPromise(),c=null,p=function(){var e;return c?(e=c(),c=null,e):void 0},a=function(){var o,i,a;return a=u.submittedValue(e),i=u.isNull(l),l===a||(l=a,i)?void 0:(s(),c=function(){return n.apply(e.get(0),[a,e])},o=function(){return r.then(function(){var e;return e=p(),r=u.isPromise(e)?e:u.resolvedPromise()})},u.setTimer(t,o))},s=function(){return clearTimeout(o)},i="input change",up.browser.canInputEvent()||(i+=" keypress paste cut click propertychange"),e.on(i,a),a(),function(){return e.off(i,a),s()}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),up.navigation.start(t,function(){return submit(n)})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&up.fail("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||up.fail("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return up.bus.consumeAction(e),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets,autosubmit:autosubmit}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),function(){up.popup=function($){var align,attachAsap,attachNow,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,isOpen,reset,state,u;return u=up.util,config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:150,closeDuration:100,openEasing:null,closeEasing:null,position:"bottom-right",history:!1}),state=u.config({phase:"closed",$anchor:null,$popup:null,position:null,sticky:null,url:null,
|
3
3
|
coveredUrl:null,coveredTitle:null}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$popup)&&e.remove(),state.reset(),chain.reset(),config.reset()},align=function(){var e,t,n;switch(e={},n=u.measure(state.$popup),u.isFixed(state.$anchor)?(t=state.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=u.measure(state.$anchor),state.position){case"bottom-right":e.top=t.top+t.height,e.left=t.left+t.width-n.width;break;case"bottom-left":e.top=t.top+t.height,e.left=t.left;break;case"top-right":e.top=t.top-n.height,e.left=t.left+t.width-n.width;break;case"top-left":e.top=t.top-n.height,e.left=t.left;break;default:up.fail("Unknown position option '%s'",state.position)}return state.$popup.attr("up-position",state.position),state.$popup.css(e)},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e){var t;return t=u.$createElementFromSelector(".up-popup"),u.$createPlaceholder(e,t),t.appendTo(document.body),state.$popup=t},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},attachAsap=function(e,t){var n;return n=function(){return attachNow(e,t)},isOpen()?chain.asap(closeNow,n):chain.asap(n),chain.promise()},attachNow=function(e,t){var n,r,o,i,a,s;return n=$(e),n.length||up.fail("Cannot attach popup to non-existing element %o",e),t=u.options(t),s=u.option(u.pluckKey(t,"url"),n.attr("up-href"),n.attr("href")),o=u.option(u.pluckKey(t,"html")),a=u.option(u.pluckKey(t,"target"),n.attr("up-popup"),"body"),i=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky"),config.sticky),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),t.method=up.link.followMethod(n,t),t.layer="popup",r=up.motion.animateOptions(t,n,{duration:config.openDuration,easing:config.openEasing}),up.browser.whenConfirmed(t).then(function(){return up.bus.whenEmitted("up:popup:open",{url:s,message:"Opening popup"}).then(function(){var e,l;return state.phase="opening",state.$anchor=n,state.position=i,t.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),state.sticky=t.sticky,t.beforeSwap=function(){return createFrame(a)},e=u.merge(t,{animation:!1}),l=o?up.extract(a,o,e):up.replace(a,s,e),l=l.then(function(){return align(),up.animate(state.$popup,t.animation,r)}),l=l.then(function(){return state.phase="opened",up.emit("up:popup:opened",{message:"Popup opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t;return isOpen()?(e=u.options(e,{animation:config.closeAnimation,history:state.coveredUrl,title:state.coveredTitle}),t=up.motion.animateOptions(e,{duration:config.closeDuration,easing:config.closeEasing}),u.extend(e,t),up.bus.whenEmitted("up:popup:close",{message:"Closing popup",$element:state.$popup}).then(function(){return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,up.destroy(state.$popup,e).then(function(){return state.phase="closed",state.$popup=null,state.$anchor=null,state.sticky=null,up.emit("up:popup:closed",{message:"Popup closed"})})})):u.resolvedPromise()},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?closeAsap():attachAsap(e)}),up.on("click up:action:consumed",function(e){var t;return t=$(e.target),t.closest(".up-popup, [up-popup]").length?void 0:closeAsap()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(closeAsap),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attachAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var animate,autoclose,chain,closeAsap,closeNow,config,contains,createFrame,discardHistory,extractAsap,flavor,flavorDefault,flavorOverrides,followAsap,isOpen,markAsAnimating,openAsap,openNow,reset,shiftElements,state,templateHtml,u,unshiftElements,visitAsap;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:null,closeDuration:null,openEasing:null,closeEasing:null,backdropOpenAnimation:"fade-in",backdropCloseAnimation:"fade-out",closeLabel:"\xd7",closable:!0,sticky:!1,flavors:{"default":{}},template:function(e){return'<div class="up-modal">\n <div class="up-modal-backdrop"></div>\n <div class="up-modal-viewport">\n <div class="up-modal-dialog">\n <div class="up-modal-content"></div>\n <div class="up-modal-close" up-close>'+flavorDefault("closeLabel")+"</div>\n </div>\n </div>\n</div>"}}),state=u.config(function(){return{phase:"closed",$anchor:null,$modal:null,sticky:null,closable:null,flavor:null,url:null,coveredUrl:null,coveredTitle:null,unshifters:[]}}),chain=new u.DivertibleChain,reset=function(){var e;return null!=(e=state.$modal)&&e.remove(),unshiftElements(),state.reset(),chain.reset(),config.reset()},templateHtml=function(){var e;return e=flavorDefault("template"),u.isFunction(e)?e(config):e},discardHistory=function(){return state.coveredTitle=null,state.coveredUrl=null},createFrame=function(e,t){var n,r,o;return o=$(templateHtml()),o.attr("up-flavor",state.flavor),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),state.closable||o.find(".up-modal-close").remove(),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),state.$modal=o},shiftElements=function(){var e,t,n,r,o;return u.documentHasVerticalScrollbar()?(e=$("body"),r=u.scrollbarWidth(),t=parseInt(e.css("padding-right")),n=r+t,o=u.temporaryCss(e,{"padding-right":n+"px","overflow-y":"hidden"}),state.unshifters.push(o),up.layout.anchoredRight().each(function(){var e,t,n,o;return e=$(this),t=parseInt(e.css("right")),n=r+t,o=u.temporaryCss(e,{right:n}),state.unshifters.push(o)})):void 0},unshiftElements=function(){var e,t;for(e=[];t=state.unshifters.pop();)e.push(t());return e},isOpen=function(){return"opened"===state.phase||"opening"===state.phase},followAsap=function(e,t){return t=u.options(t),t.$link=$(e),openAsap(t)},visitAsap=function(e,t){return t=u.options(t),t.url=e,openAsap(t)},extractAsap=function(e,t,n){return n=u.options(n),n.html=t,n.history=u.option(n.history,!1),n.target=e,openAsap(n)},openAsap=function(e){var t;return t=function(){return openNow(e)},isOpen()?chain.asap(closeNow,t):chain.asap(t),chain.promise()},openNow=function(e){var t,n,r,o,i;return e=u.options(e),t=u.option(u.pluckKey(e,"$link"),u.nullJQuery()),i=u.option(u.pluckKey(e,"url"),t.attr("up-href"),t.attr("href")),r=u.option(u.pluckKey(e,"html")),o=u.option(u.pluckKey(e,"target"),t.attr("up-modal"),"body"),e.flavor=u.option(e.flavor,t.attr("up-flavor")),e.width=u.option(e.width,t.attr("up-width"),flavorDefault("width",e.flavor)),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),flavorDefault("maxWidth",e.flavor)),e.height=u.option(e.height,t.attr("up-height"),flavorDefault("height")),e.animation=u.option(e.animation,t.attr("up-animation"),flavorDefault("openAnimation",e.flavor)),e.backdropAnimation=u.option(e.backdropAnimation,t.attr("up-backdrop-animation"),flavorDefault("backdropOpenAnimation",e.flavor)),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky"),flavorDefault("sticky",e.flavor)),e.closable=u.option(e.closable,u.castedAttr(t,"up-closable"),flavorDefault("closable",e.flavor)),e.confirm=u.option(e.confirm,t.attr("up-confirm")),e.method=up.link.followMethod(t,e),e.layer="modal",n=up.motion.animateOptions(e,t,{duration:flavorDefault("openDuration",e.flavor),easing:flavorDefault("openEasing",e.flavor)}),e.history=u.option(e.history,u.castedAttr(t,"up-history"),flavorDefault("history",e.flavor)),up.browser.canPushState()||(e.history=!1),up.browser.whenConfirmed(e).then(function(){return up.bus.whenEmitted("up:modal:open",{url:i,message:"Opening modal"}).then(function(){var t,a;return state.phase="opening",state.flavor=e.flavor,state.sticky=e.sticky,state.closable=e.closable,e.history&&(state.coveredUrl=up.browser.url(),state.coveredTitle=document.title),e.beforeSwap=function(){return createFrame(o,e)},t=u.merge(e,{animation:!1}),a=r?up.extract(o,r,t):up.replace(o,i,t),a=a.then(function(){return shiftElements(),animate(e.animation,e.backdropAnimation,n)}),a=a.then(function(){return state.phase="opened",up.emit("up:modal:opened",{message:"Modal opened"})})})})},closeAsap=function(e){return isOpen()&&chain.asap(function(){return closeNow(e)}),chain.promise()},closeNow=function(e){var t,n,r,o;return isOpen()?(e=u.options(e),o=u.option(e.animation,flavorDefault("closeAnimation")),n=u.option(e.backdropAnimation,flavorDefault("backdropCloseAnimation")),t=up.motion.animateOptions(e,{duration:flavorDefault("closeDuration"),easing:flavorDefault("closeEasing")}),r=u.options(u.except(e,"animation","duration","easing","delay"),{history:state.coveredUrl,title:state.coveredTitle}),up.bus.whenEmitted("up:modal:close",{$element:state.$modal,message:"Closing modal"}).then(function(){var e;return state.phase="closing",state.url=null,state.coveredUrl=null,state.coveredTitle=null,e=animate(o,n,t),e=e.then(function(){return up.destroy(state.$modal,r)}),e=e.then(function(){return unshiftElements(),state.phase="closed",state.$modal=null,state.flavor=null,state.sticky=null,state.closable=null,up.emit("up:modal:closed",{message:"Modal closed"})})})):u.resolvedPromise()},markAsAnimating=function(e){return null==e&&(e=!0),state.$modal.toggleClass("up-modal-animating",e)},animate=function(e,t,n){var r;return up.motion.isNone(e)?u.resolvedPromise():(markAsAnimating(),r=$.when(up.animate(state.$modal.find(".up-modal-viewport"),e,n),up.animate(state.$modal.find(".up-modal-backdrop"),t,n)),r=r.then(function(){return markAsAnimating(!1)}))},autoclose=function(){return state.sticky?void 0:(discardHistory(),closeAsap())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},flavor=function(e,t){return null==t&&(t={}),u.extend(flavorOverrides(e),t)},flavorOverrides=function(e){var t;return(t=config.flavors)[e]||(t[e]={})},flavorDefault=function(e,t){var n;return null==t&&(t=state.flavor),t&&(n=flavorOverrides(t)[e]),u.isMissing(n)&&(n=config[e]),n},up.link.onAction("[up-modal]",function(e){return followAsap(e)}),up.on("click",function(e){var t;if(state.closable)return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:(up.bus.consumeAction(e),closeAsap())}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return state.url=n}else if(contains(e.origin)&&!up.popup.contains(t))return autoclose()}),up.bus.onEscape(function(){return state.closable?closeAsap():void 0}),up.on("click","[up-close]",function(e,t){return contains(t)?(closeAsap(),up.bus.consumeAction(e)):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visitAsap,follow:followAsap,extract:extractAsap,close:closeAsap,url:function(){return state.url},coveredUrl:function(){return state.coveredUrl},config:config,contains:contains,isOpen:isOpen,flavor:flavor}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,i,u,a,s,l,c,p,f;return f=up.util,a=f.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out",openDuration:100,closeDuration:50,openEasing:null,closeEasing:null}),p=f.config({phase:"closed",$anchor:null,$tooltip:null,position:null}),o=new f.DivertibleChain,c=function(){var e;return null!=(e=p.$tooltip)&&e.remove(),p.reset(),o.reset(),a.reset()},t=function(){var e,t,n;switch(e={},n=f.measure(p.$tooltip),f.isFixed(p.$anchor)?(t=p.$anchor.get(0).getBoundingClientRect(),e.position="fixed"):t=f.measure(p.$anchor),p.position){case"top":e.top=t.top-n.height,e.left=t.left+.5*(t.width-n.width);break;case"left":e.top=t.top+.5*(t.height-n.height),e.left=t.left-n.width;break;case"right":e.top=t.top+.5*(t.height-n.height),e.left=t.left+t.width;break;case"bottom":e.top=t.top+t.height,e.left=t.left+.5*(t.width-n.width);break;default:up.fail("Unknown position option '%s'",p.position)}return p.$tooltip.attr("up-position",p.position),p.$tooltip.css(e)},s=function(e){var t;return t=f.$createElementFromSelector(".up-tooltip"),f.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),p.$tooltip=t},n=function(e,t){var n;return null==t&&(t={}),n=function(){return r(e,t)},l()?o.asap(u,n):o.asap(n),o.promise()},r=function(n,r){var o,i,u,l,c,d;return o=e(n),r=f.options(r),l=f.option(r.html,o.attr("up-tooltip-html")),d=f.option(r.text,o.attr("up-tooltip")),c=f.option(r.position,o.attr("up-position"),a.position),u=f.option(r.animation,f.castedAttr(o,"up-animation"),a.openAnimation),i=up.motion.animateOptions(r,o,{duration:a.openDuration,easing:a.openEasing}),p.phase="opening",p.$anchor=o,s({text:d,html:l}),p.position=c,t(),up.animate(p.$tooltip,u,i).then(function(){return p.phase="opened"})},i=function(e){return l()&&o.asap(function(){return u(e)}),o.promise()},u=function(e){var t;return l()?(e=f.options(e,{animation:a.closeAnimation}),t=up.motion.animateOptions(e,{duration:a.closeDuration,easing:a.closeEasing}),f.extend(e,t),p.phase="closing",up.destroy(p.$tooltip,e).then(function(){return p.phase="closed",p.$tooltip=null,p.$anchor=null})):f.resolvedPromise()},l=function(){return"opening"===p.phase||"opened"===p.phase},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseenter",function(){return n(e)}),e.on("mouseleave",function(){return i()})}),up.on("click up:action:consumed",function(e){return i()}),up.on("up:framework:reset",c),up.bus.onEscape(function(){return i()}),{config:a,attach:n,isOpen:l,close:i}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,i,u,a,s,l,c,p,f,d;return f=up.util,r=f.config({currentClasses:["up-current"]}),s=function(){return r.reset()},o=function(){var e;return e=r.currentClasses,e=e.concat(["up-current"]),e=f.uniq(e),e.join(" ")},t="up-active",n="a, [up-href]",a=function(e){return f.isPresent(e)?f.normalizeUrl(e):void 0},l=function(e){var t,n,r,o,i,u,s,l,c,p;for(l=[],u=["href","up-href","up-alias"],n=0,o=u.length;o>n;n++)if(t=u[n],c=f.presentAttr(e,t))for(p="up-alias"===t?c.split(" "):[c],r=0,i=p.length;i>r;r++)s=p[r],"#"!==s&&(s=a(s),l.push(s));return l},d=function(e){var t,n,r,o;return e=f.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return f.contains(e,t)},n=function(t){return f.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return f.detect(e,r)},{matchesAny:o}},u=function(){var t,r;return t=d([a(up.browser.url()),a(up.modal.url()),a(up.modal.coveredUrl()),a(up.popup.url()),a(up.popup.coveredUrl())]),r=o(),f.each(e(n),function(n){var o,i;return o=e(n),i=l(o),t.matchesAny(i)?o.addClass(r):o.hasClass(r)&&0===o.closest(".up-destroying").length?o.removeClass(r):void 0})},i=function(t){var r;return r=e(t),r.is(n)&&(r=f.presence(r.parent(n))||r),r},c=function(e,n){var r,o;return r=i(e),r.addClass(t),n?(o=n(),f.isPromise(o)?o.always(function(){return p(r)}):up.warn("Expected block to return a promise, but got %o",o),o):void 0},p=function(e){var n;return n=i(e),up.emit("up:navigated",{$element:n,message:!1}),n.removeClass(t)},up.on("up:fragment:inserted",function(){return u()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?u():void 0}),up.on("up:framework:reset",s),{config:r,defaults:function(){return up.fail("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")},start:c,stop:p}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,i;return t="data-"+e,i="up-"+e,up.compiler("["+t+"]",function(e){var u;return n()&&o(e)?(u={},u[i]=e.attr(t),r.setMissingAttrs(e,u),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
|
@@ -165,28 +165,40 @@ up.form = (($) ->
|
|
165
165
|
|
166
166
|
\#\#\# Example
|
167
167
|
|
168
|
-
The following would
|
169
|
-
text field value changes:
|
168
|
+
The following would print to the console whenever an input field changes:
|
170
169
|
|
171
|
-
up.observe('input
|
170
|
+
up.observe('input.query', function(value, $input) {
|
172
171
|
console.log('Query is now ' + value);
|
173
172
|
});
|
174
173
|
|
175
|
-
Instead of a single form field, you can also
|
176
|
-
|
174
|
+
Instead of a single form field, you can also pass multiple fields,
|
175
|
+
a `<form>` or any container that contains form fields.
|
177
176
|
The callback will be run if any of the given fields change.
|
178
177
|
|
179
178
|
\#\#\# Preventing concurrency
|
180
179
|
|
181
|
-
|
180
|
+
Making network requests whenever a form field changes can cause
|
182
181
|
[concurrency issues](https://makandracards.com/makandra/961-concurrency-issues-with-find-as-you-type-boxes).
|
182
|
+
Since `up.observe` can trigger many requests in a short period of time,
|
183
|
+
the responses might not arrive in the same order.
|
183
184
|
|
184
185
|
To mitigate this, `up.observe` will try to never run a callback
|
185
186
|
before the previous callback has completed.
|
186
|
-
|
187
|
-
|
187
|
+
For this your callback code must return a promise that resolves
|
188
|
+
when your request completes.
|
189
|
+
|
190
|
+
The following would submit a form whenever an input field changes,
|
191
|
+
but never make more than one request at a time:
|
192
|
+
|
193
|
+
up.observe('input.query', function(value, $input) {
|
194
|
+
var submitDone = up.submit($input);
|
195
|
+
return submitDone;
|
196
|
+
});
|
197
|
+
|
198
|
+
Note that many Unpoly functions like [`up.submit`](/up.submit) or
|
199
|
+
[`up.replace`](/up.replace) return promises.
|
188
200
|
|
189
|
-
\#\#\#
|
201
|
+
\#\#\# Debouncing
|
190
202
|
|
191
203
|
If you are concerned about fast typists causing too much
|
192
204
|
load on your server, you can use a `delay` option to wait
|
@@ -19,8 +19,7 @@ will then be placed in a modal dialog.
|
|
19
19
|
By default the dialog automatically closes
|
20
20
|
*when a link inside a modal changes a fragment behind the modal*.
|
21
21
|
This is useful to have the dialog interact with the page that
|
22
|
-
opened it, e.g. by updating parts of a larger form
|
23
|
-
and revealing additional information.
|
22
|
+
opened it, e.g. by updating parts of a larger form.
|
24
23
|
|
25
24
|
To disable this behavior, give the opening link an [`up-sticky`](/up-modal#up-sticky) attribute:
|
26
25
|
|
@@ -34,7 +33,7 @@ Dialogs have a minimal default design:
|
|
34
33
|
- The box is placed over a semi-transparent backdrop to dim the rest of the page
|
35
34
|
- There is a button to close the dialog in the top-right corner
|
36
35
|
|
37
|
-
The easiest way to change how the dialog looks is
|
36
|
+
The easiest way to change how the dialog looks is to override the
|
38
37
|
[default CSS styles](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/modal.css.sass).
|
39
38
|
|
40
39
|
By default the dialog uses the following DOM structure:
|
@@ -5,40 +5,43 @@ Pop-up overlays
|
|
5
5
|
Instead of [linking to a page fragment](/up.link), you can choose
|
6
6
|
to show a fragment in a popup overlay that rolls down from an anchoring element.
|
7
7
|
|
8
|
-
To open a popup, add an [`up-popup` attribute](/up-popup) to a link
|
9
|
-
|
8
|
+
To open a popup, add an [`up-popup` attribute](/up-popup) to a link:
|
9
|
+
|
10
|
+
<a href="/options" up-modal=".menu">Show options</a>
|
11
|
+
|
12
|
+
When this link is clicked, Unpoly will request the path `/options` and extract
|
13
|
+
an element matching the selector `.menu` from the response. The matching element
|
14
|
+
will then be placed in the popup overlay.
|
15
|
+
|
16
|
+
|
17
|
+
\#\#\# Closing behavior
|
18
|
+
|
19
|
+
The popup closes when the user clicks anywhere outside the popup area.
|
20
|
+
|
21
|
+
The popup also closes *when a link within the popup changes a fragment behind the popup*.
|
22
|
+
This is useful to have the popup interact with the page that
|
23
|
+
opened it, e.g. by updating parts of a larger form.
|
24
|
+
|
25
|
+
To disable this behavior, give the opening link an [`up-sticky`](/up-popup#up-sticky) attribute.
|
10
26
|
|
11
|
-
For modal dialogs see [up.modal](/up.modal) instead.
|
12
27
|
|
13
28
|
\#\#\# Customizing the popup design
|
14
29
|
|
15
|
-
|
30
|
+
Popups have a minimal default design:
|
16
31
|
|
17
32
|
- Popup contents are displayed in a white box
|
18
33
|
- There is a a subtle box shadow around the popup
|
19
34
|
- The box will grow to fit the popup contents
|
20
35
|
|
21
|
-
The easiest way to change how the popup looks is
|
36
|
+
The easiest way to change how the popup looks is to override the
|
37
|
+
[default CSS styles](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/popup.css.sass).
|
22
38
|
|
23
|
-
|
39
|
+
The HTML of a popup element is simply this:
|
24
40
|
|
25
41
|
<div class="up-popup">
|
26
42
|
...
|
27
43
|
</div>
|
28
44
|
|
29
|
-
\#\#\# Closing behavior
|
30
|
-
|
31
|
-
The popup closes when the user clicks anywhere outside the popup area.
|
32
|
-
|
33
|
-
By default the popup also closes
|
34
|
-
*when a link within the popup changes a fragment behind the popup*.
|
35
|
-
This is useful to have the popup interact with the page that
|
36
|
-
opened it, e.g. by updating parts of a larger form or by signing in a user
|
37
|
-
and revealing additional information.
|
38
|
-
|
39
|
-
To disable this behavior, give the opening link an `up-sticky` attribute:
|
40
|
-
|
41
|
-
<a href="/settings" up-popup=".options" up-sticky>Settings</a>
|
42
45
|
|
43
46
|
@class up.popup
|
44
47
|
###
|
@@ -2,18 +2,31 @@
|
|
2
2
|
Caching and preloading
|
3
3
|
======================
|
4
4
|
|
5
|
-
|
6
|
-
It caches a [limited](/up.proxy.config) number of server responses
|
7
|
-
for a [limited](/up.proxy.config) amount of time,
|
5
|
+
Unpoly caches server responses for a few minutes,
|
8
6
|
making requests to these URLs return instantly.
|
9
|
-
|
10
|
-
The cache is cleared whenever the user makes a non-`GET` request
|
11
|
-
(like `POST`, `PUT` or `DELETE`).
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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),
|
10
|
+
use [`up.ajax`](/up.ajax).
|
11
|
+
|
12
|
+
\#\#\# How the cache is cleared
|
13
|
+
|
14
|
+
The cache holds up to 70 responses for 5 minutes. You can configure the cache size and expiry using
|
15
|
+
[`up.proxy.config`](/up.proxy.config), or clear the cache manually using [`up.proxy.clear`](/up.proxy.clear).
|
16
|
+
|
17
|
+
Also the entire cache is cleared with every non-`GET` request (like `POST` or `PUT`).
|
18
|
+
|
19
|
+
\#\#\# Preloading
|
20
|
+
|
21
|
+
Unpoly also lets you speed up reaction times by [preloading
|
22
|
+
links](/up-preload) when the user hovers over the click area (or puts the mouse/finger
|
23
|
+
down). This way the response will already be cached when
|
24
|
+
the user releases the mouse/finger.
|
25
|
+
|
26
|
+
\#\#\# Spinners
|
27
|
+
|
28
|
+
You can listen to the [`up:proxy:slow`](/up:proxy:slow) event to implement a spinner
|
29
|
+
that appears during a long-running request.
|
17
30
|
|
18
31
|
@class up.proxy
|
19
32
|
###
|
@@ -339,7 +352,7 @@ up.proxy = (($) ->
|
|
339
352
|
slowEventEmitted = false
|
340
353
|
|
341
354
|
###*
|
342
|
-
This event is [emitted]/
|
355
|
+
This event is [emitted](/up.emit) when [AJAX requests](/up.ajax)
|
343
356
|
have [taken long to finish](/up:proxy:slow), but have finished now.
|
344
357
|
|
345
358
|
See [`up:proxy:slow`](/up:proxy:slow) for more documentation on
|
@@ -456,7 +469,7 @@ up.proxy = (($) ->
|
|
456
469
|
clear = cache.clear
|
457
470
|
|
458
471
|
###*
|
459
|
-
This event is [emitted]/
|
472
|
+
This event is [emitted](/up.emit) before an [AJAX request](/up.ajax)
|
460
473
|
is starting to load.
|
461
474
|
|
462
475
|
@event up:proxy:load
|
@@ -467,7 +480,7 @@ up.proxy = (($) ->
|
|
467
480
|
###
|
468
481
|
|
469
482
|
###*
|
470
|
-
This event is [emitted]/
|
483
|
+
This event is [emitted](/up.emit) when the response to an [AJAX request](/up.ajax)
|
471
484
|
has been received.
|
472
485
|
|
473
486
|
@event up:proxy:received
|
@@ -4,20 +4,20 @@ Tooltips
|
|
4
4
|
|
5
5
|
Unpoly comes with a basic tooltip implementation.
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
Add an [`up-tooltip`](/up-tooltip) attribute to any HTML tag to show a tooltip whenever
|
8
|
+
the user hovers over the element:
|
9
9
|
|
10
10
|
<a href="/decks" up-tooltip="Show all decks">Decks</a>
|
11
11
|
|
12
12
|
|
13
13
|
\#\#\# Styling
|
14
14
|
|
15
|
-
The
|
16
|
-
|
15
|
+
The default styles
|
16
|
+
render a tooltip with white text on a gray background.
|
17
17
|
A gray triangle points to the element.
|
18
18
|
|
19
|
-
To change the styling, simply override CSS rules for the `.up-tooltip` selector and its `:after`
|
20
|
-
selector that is used the triangle.
|
19
|
+
To change the styling, simply override the [CSS rules](https://github.com/unpoly/unpoly/blob/master/lib/assets/stylesheets/up/tooltip.css.sass) for the `.up-tooltip` selector and its `:after`
|
20
|
+
selector that is used for the triangle.
|
21
21
|
|
22
22
|
The HTML of a tooltip element is simply this:
|
23
23
|
|
data/lib/unpoly/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unpoly-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|