mirror of https://github.com/twbs/ratchet.git
Build mobile apps with simple HTML, CSS, and JS components.
http://goratchet.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10 lines
12 KiB
10 lines
12 KiB
/*! |
|
* ===================================================== |
|
* Ratchet v2.0.2 (http://goratchet.com) |
|
* Copyright 2015 Connor Sears |
|
* Licensed under MIT (https://github.com/twbs/ratchet/blob/master/LICENSE) |
|
* |
|
* v2.0.2 designed by @connors. |
|
* ===================================================== |
|
*/ |
|
!function(){"use strict";window.CustomEvent||(window.CustomEvent=function(a,b){var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail),c}),"undefined"==typeof window.RATCHET&&(window.RATCHET={}),window.RATCHET.getBrowserCapabilities=function(){var a=window.getComputedStyle(document.documentElement,""),b=(Array.prototype.slice.call(a).join("").match(/-(moz|webkit|ms)-/)||""===a.OLink&&["","o"])[1];return{prefix:"-"+b+"-",transform:b[0].toUpperCase()+b.substr(1)+"Transform"}}(),window.RATCHET.getTransitionEnd=function(){var a=document.createElement("ratchet"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return b[c];return b.transition}()}(),!function(){"use strict";var a=new CustomEvent("modalOpen",{bubbles:!0,cancelable:!0}),b=new CustomEvent("modalClose",{bubbles:!0,cancelable:!0}),c=function(a){for(var b,c=document.querySelectorAll("a");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a},d=function(a){var b=c(a.target);return b&&b.hash?document.querySelector(b.hash):void 0};window.addEventListener("touchend",function(c){var e=d(c);if(e&&e.classList.contains("modal")){var f=a;e.classList.contains("active")&&(f=b),e.dispatchEvent(f),e.classList.toggle("active"),c.preventDefault()}})}(),!function(){"use strict";var a,b=function(a){for(var b,c=document.querySelectorAll("a");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a},c=function(){a.style.display="none",a.removeEventListener(window.RATCHET.getTransitionEnd,c)},d=function(){var b=document.createElement("div");return b.classList.add("backdrop"),b.addEventListener("touchend",function(){a.addEventListener(window.RATCHET.getTransitionEnd,c),a.classList.remove("visible"),a.parentNode.removeChild(d)}),b}(),e=function(c){var d=b(c.target);if(d&&d.hash&&!(d.hash.indexOf("/")>0)){try{a=document.querySelector(d.hash)}catch(e){a=null}if(null!==a&&a&&a.classList.contains("popover"))return a}},f=function(a){var b=e(a);b&&(b.style.display="block",b.offsetHeight,b.classList.add("visible"),b.parentNode.appendChild(d))};window.addEventListener("touchend",f)}(),!function(){"use strict";function a(){f[p.id]=document.body.cloneNode(!0)}var b,c=function(){},d=20,e=sessionStorage,f={},g={"slide-in":"slide-out","slide-out":"slide-in",fade:"fade"},h={bartab:".bar-tab",barnav:".bar-nav",barfooter:".bar-footer",barheadersecondary:".bar-header-secondary"},i=function(a,b){p.id=a.id,b&&(a=l(a.id)),e[a.id]=JSON.stringify(a),window.history.replaceState(a.id,a.title,a.url)},j=function(){var a=p.id,b=JSON.parse(e.cacheForwardStack||"[]"),c=JSON.parse(e.cacheBackStack||"[]");for(c.push(a);b.length;)delete e[b.shift()];for(;c.length>d;)delete e[c.shift()];l(p.id).url&&window.history.pushState(null,"",l(p.id).url),e.cacheForwardStack=JSON.stringify(b),e.cacheBackStack=JSON.stringify(c)},k=function(a,b){var c="forward"===b,d=JSON.parse(e.cacheForwardStack||"[]"),f=JSON.parse(e.cacheBackStack||"[]"),g=c?f:d,h=c?d:f;p.id&&g.push(p.id),h.pop(),e.cacheForwardStack=JSON.stringify(d),e.cacheBackStack=JSON.stringify(f)},l=function(a){return JSON.parse(e[a]||null)||{}},m=function(a){var c=u(a.target);if(!(!c||a.which>1||a.metaKey||a.ctrlKey||b||location.protocol!==c.protocol||location.host!==c.host||!c.hash&&/#/.test(c.href)||c.hash&&c.href.replace(c.hash,"")===location.href.replace(location.hash,"")||"push"===c.getAttribute("data-ignore")))return c},n=function(a){var b=m(a);b&&(a.preventDefault(),p({url:b.href,hash:b.hash,timeout:b.getAttribute("data-timeout"),transition:b.getAttribute("data-transition")}))},o=function(a){var b,c,d,i,j,m,n,o,q=a.state;if(q&&e[q]){if(j=p.id<q?"forward":"back",k(q,j),d=l(q),i=f[q],d.title&&(document.title=d.title),"back"===j?(n=JSON.parse("back"===j?e.cacheForwardStack:e.cacheBackStack),o=l(n[n.length-1])):o=d,"back"===j&&!o.id)return p.id=q;if(m="back"===j?g[o.transition]:o.transition,!i)return p({id:d.id,url:d.url,title:d.title,timeout:d.timeout,transition:m,ignorePush:!0});if(o.transition){d=w(d,".content",i.cloneNode(!0));for(b in h)h.hasOwnProperty(b)&&(c=document.querySelector(h[b]),d[b]?s(d[b],c):c&&c.parentNode.removeChild(c))}s((d.contents||i).cloneNode(!0),document.querySelector(".content"),m,function(){t()}),p.id=q,document.body.offsetHeight}},p=function(b){var d,e=p.xhr;b.container=b.container||b.transition?document.querySelector(".content"):document.body;var f=/^file:/.test(window.location.protocol);for(d in h)h.hasOwnProperty(d)&&(b[d]=b[d]||document.querySelector(h[d]));e&&e.readyState<4&&(e.onreadystatechange=c,e.abort()),e=new XMLHttpRequest,f?e.open("GET",b.url,!1):(e.open("GET",b.url,!0),e.setRequestHeader("X-PUSH","true"),e.onreadystatechange=function(){b._timeout&&clearTimeout(b._timeout),4===e.readyState&&(200===e.status?q(e,b):r(b.url))}),p.id||i({id:+new Date,url:window.location.href,title:document.title,timeout:b.timeout,transition:b.transition}),a(),b.timeout&&(b._timeout=setTimeout(function(){e.abort("timeout")},b.timeout)),e.send(),f&&(0===e.status||200===e.status?q(e,b):r(b.url)),e.readyState&&!b.ignorePush&&j()},q=function(a,b){var c,d,e=x(a,b);if(!e.contents)return v(b.url);if(e.title&&(document.title=e.title),b.transition)for(c in h)h.hasOwnProperty(c)&&(d=document.querySelector(h[c]),e[c]?s(e[c],d):d&&d.parentNode.removeChild(d));s(e.contents,b.container,b.transition,function(){i({id:b.id||+new Date,url:e.url,title:e.title,timeout:b.timeout,transition:b.transition},b.id),t()}),!b.ignorePush&&window._gaq&&_gaq.push(["_trackPageview"]),!b.hash},r=function(a){throw new Error("Could not get: "+a)},s=function(a,b,c,d){var e,f,g;if(c?(e=/in$/.test(c),"fade"===c&&(b.classList.add("in"),b.classList.add("fade"),a.classList.add("fade")),/slide/.test(c)&&(a.classList.add("sliding-in",e?"right":"left"),a.classList.add("sliding"),b.classList.add("sliding")),b.parentNode.insertBefore(a,b)):b?b.innerHTML=a.innerHTML:a.classList.contains("content")?document.body.appendChild(a):document.body.insertBefore(a,document.querySelector(".content")),c||d&&d(),"fade"===c){b.offsetWidth,b.classList.remove("in");var h=function(){b.removeEventListener(window.RATCHET.getTransitionEnd,h),a.classList.add("in"),a.addEventListener(window.RATCHET.getTransitionEnd,i)},i=function(){a.removeEventListener(window.RATCHET.getTransitionEnd,i),b.parentNode.removeChild(b),a.classList.remove("fade"),a.classList.remove("in"),d&&d()};b.addEventListener(window.RATCHET.getTransitionEnd,h)}if(/slide/.test(c)){var j=function(){a.removeEventListener(window.RATCHET.getTransitionEnd,j),a.classList.remove("sliding","sliding-in"),a.classList.remove(g),b.parentNode.removeChild(b),d&&d()};b.offsetWidth,g=e?"right":"left",f=e?"left":"right",b.classList.add(f),a.classList.remove(g),a.addEventListener(window.RATCHET.getTransitionEnd,j)}},t=function(){var a=new CustomEvent("push",{detail:{state:l(p.id)},bubbles:!0,cancelable:!0});window.dispatchEvent(a)},u=function(a){for(var b,c=document.querySelectorAll("a");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a},v=function(a){window.history.replaceState(null,"","#"),window.location.replace(a)},w=function(a,b,c){var d,e={};for(d in a)a.hasOwnProperty(d)&&(e[d]=a[d]);return Object.keys(h).forEach(function(a){var b=c.querySelector(h[a]);b&&b.parentNode.removeChild(b),e[a]=b}),e.contents=c.querySelector(b),e},x=function(a,b){var c,d,e={},f=a.responseText;if(e.url=b.url,!f)return e;/<html/i.test(f)?(c=document.createElement("div"),d=document.createElement("div"),c.innerHTML=f.match(/<head[^>]*>([\s\S.]*)<\/head>/i)[0],d.innerHTML=f.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0]):(c=d=document.createElement("div"),c.innerHTML=f),e.title=c.querySelector("title")||document.querySelector("title");var g="innerText"in e.title?"innerText":"textContent";return e.title=e.title&&e.title[g].trim(),b.transition?e=w(e,".content",d):e.contents=d,e};window.addEventListener("touchstart",function(){b=!1}),window.addEventListener("touchmove",function(){b=!0}),window.addEventListener("touchend",n),window.addEventListener("click",function(a){m(a)&&a.preventDefault()}),window.addEventListener("popstate",o),window.PUSH=p,window.RATCHET.push=p}(),!function(){"use strict";var a=function(a){for(var b,c=document.querySelectorAll(".segmented-control .control-item");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a};window.addEventListener("touchend",function(b){var c,d,e,f=a(b.target),g="active",h="."+g;if(f&&(c=f.parentNode.querySelector(h),c&&c.classList.remove(g),f.classList.add(g),f.hash&&(e=document.querySelector(f.hash)))){d=e.parentNode.querySelectorAll(h);for(var i=0;i<d.length;i++)d[i].classList.remove(g);e.classList.add(g)}}),window.addEventListener("click",function(b){a(b.target)&&b.preventDefault()})}(),!function(){"use strict";var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o=window.RATCHET.getBrowserCapabilities.prefix,p=window.RATCHET.getBrowserCapabilities.transform,q=function(a){for(var b,c=document.querySelectorAll(".slider > .slide-group");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a},r=function(){var a=c.style[p].match(/translate3d\(([^,]*)/),b=a?a[1]:0;return parseInt(b,10)},s=function(a){var b=a?0>d?"ceil":"floor":"round";k=Math[b](r()/(m/c.children.length)),k+=a,k=Math.min(k,0),k=Math.max(-(c.children.length-1),k)},t=function(f){if(c=q(f.target)){var k=c.querySelector(".slide");m=k.offsetWidth*c.children.length,l=void 0,j=c.offsetWidth,i=1,g=-(c.children.length-1),h=+new Date,a=f.touches[0].pageX,b=f.touches[0].pageY,d=0,e=0,s(0),c.style[o+"transition-duration"]=0}},u=function(h){h.touches.length>1||!c||(n||(a+=h.touches[0].pageX-a-1),d=h.touches[0].pageX-a,e=h.touches[0].pageY-b,a=h.touches[0].pageX,b=h.touches[0].pageY,"undefined"==typeof l&&n&&(l=Math.abs(e)>Math.abs(d)),l||(f=d/i+r(),h.preventDefault(),i=0===k&&d>0?a/j+1.25:k===g&&0>d?Math.abs(a)/j+1.25:1,c.style[p]="translate3d("+f+"px,0,0)",n=!0))},v=function(a){c&&!l&&(n=!1,s(+new Date-h<1e3&&Math.abs(d)>15?0>d?-1:1:0),f=k*j,c.style[o+"transition-duration"]=".2s",c.style[p]="translate3d("+f+"px,0,0)",a=new CustomEvent("slide",{detail:{slideNumber:Math.abs(k)},bubbles:!0,cancelable:!0}),c.parentNode.dispatchEvent(a))};window.addEventListener("touchstart",t),window.addEventListener("touchmove",u),window.addEventListener("touchend",v)}(),!function(){"use strict";var a={},b=!1,c=!1,d=!1,e=window.RATCHET.getBrowserCapabilities.transform,f=function(a){for(var b,c=document.querySelectorAll(".toggle");a&&a!==document;a=a.parentNode)for(b=c.length;b--;)if(c[b]===a)return a};window.addEventListener("touchstart",function(c){if(c=c.originalEvent||c,d=f(c.target)){var e=d.querySelector(".toggle-handle"),g=d.clientWidth,h=e.clientWidth,i=d.classList.contains("active")?g-h:0;a={pageX:c.touches[0].pageX-i,pageY:c.touches[0].pageY},b=!1}}),window.addEventListener("touchmove",function(f){if(f=f.originalEvent||f,!(f.touches.length>1)&&d){var g=d.querySelector(".toggle-handle"),h=f.touches[0],i=d.clientWidth,j=g.clientWidth,k=i-j;if(b=!0,c=h.pageX-a.pageX,!(Math.abs(c)<Math.abs(h.pageY-a.pageY))){if(f.preventDefault(),0>c)return g.style[e]="translate3d(0,0,0)";if(c>k)return g.style[e]="translate3d("+k+"px,0,0)";g.style[e]="translate3d("+c+"px,0,0)",d.classList[c>i/2-j/2?"add":"remove"]("active")}}}),window.addEventListener("touchend",function(a){if(d){var f=d.querySelector(".toggle-handle"),g=d.clientWidth,h=f.clientWidth,i=g-h,j=!b&&!d.classList.contains("active")||b&&c>g/2-h/2;j?f.style[e]="translate3d("+i+"px,0,0)":f.style[e]="translate3d(0,0,0)",d.classList[j?"add":"remove"]("active"),a=new CustomEvent("toggle",{detail:{isActive:j},bubbles:!0,cancelable:!0}),d.dispatchEvent(a),b=!1,d=!1}})}(); |