fd-slider-rails 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module FdSliderRails
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -0,0 +1,26 @@
1
+ /*! Unobtrusive Slider Control / HTML5 Input Range polyfill - MIT/GPL2 @freqdec */
2
+ var fdSlider=(function(){var sliders={},uniqueid=0,mouseWheelEnabled=true,fullARIA=true,describedBy="fd-slider-describedby",varSetRules={onfocus:true,onvalue:true},noRangeBar=false,html5Animation="jump",isOpera=Object.prototype.toString.call(window.opera)==="[object Opera]",fpRegExp=/^([-]{0,1}[0-9]+(\.[0-9]+){0,1})$/,stepRegExp=/^([0-9]+(\.[0-9]+){0,1})$/;var parseJSON=function(str){if(typeof str!=="string"||str==""){return{}}try{if(typeof JSON==="object"&&typeof(JSON.parse)==="function"){return JSON.parse(str)}else{if(/mousewheelenabled|fullaria|describedby|norangebar|html5animation|varsetrules/.test(str.toLowerCase())){var f=Function(["var document,top,self,window,parent,Number,Date,Object,Function,","Array,String,Math,RegExp,Image,ActiveXObject;","return (",str.replace(/<\!--.+-->/gim,"").replace(/\bfunction\b/g,"function-"),");"].join(""));return f()}}}catch(e){}return{err:"Could not parse the JSON object"}};var affectJSON=function(json){if(typeof json!=="object"){return}for(key in json){value=json[key];switch(key.toLowerCase()){case"mousewheelenabled":mouseWheelEnabled=!!value;break;case"fullaria":fullARIA=!!value;break;case"describedby":describedBy=String(value);break;case"norangebar":noRangeBar=!!value;break;case"html5animation":html5Animation=String(value).search(/^(jump|tween|timed)$/i)!=-1?String(value).toLowerCase():"jump";break;case"varsetrules":if("onfocus" in value){varSetRules.onfocus=!!value.onfocus}if("onvalue" in value){varSetRules.onvalue=!!value.onvalue}break}}};var addEvent=function(obj,type,fn){if(obj.attachEvent){obj.attachEvent("on"+type,fn)}else{obj.addEventListener(type,fn,true)}};var removeEvent=function(obj,type,fn){try{if(obj.detachEvent){obj.detachEvent("on"+type,fn)}else{obj.removeEventListener(type,fn,true)}}catch(err){}};var stopEvent=function(e){e=e||window.event;if(e.stopPropagation){e.stopPropagation();e.preventDefault()}
3
+ /*@cc_on@*/
4
+ /*@if(@_win32)
5
+ e.cancelBubble = true;
6
+ e.returnValue = false;
7
+ /*@end@*/
8
+ return false};var preventDefault=function(e){e=e||window.event;if(e.preventDefault){e.preventDefault();return}e.returnValue=false};var addClass=function(e,c){if(new RegExp("(^|\\s)"+c+"(\\s|$)").test(e.className)){return}e.className+=(e.className?" ":"")+c};var removeClass=function(e,c){e.className=!c?"":e.className.replace(new RegExp("(^|\\s)"+c+"(\\s|$)")," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")};var getValueSet=function(){var obj={};for(id in sliders){obj[id]=sliders[id].getValueSet()}return obj};var setValueSet=function(sliderId,tf){sliders[sliderId].setValueSet(!!tf)};var sliderExists=function(slider){return !!(slider in sliders&&sliders.hasOwnProperty(slider))};var createSlider=function(options){if(!options||!options.inp||!options.inp.tagName||options.inp.tagName.search(/^input|select/i)==-1){return false}options.html5Shim=false;if(options.inp.tagName.toLowerCase()=="select"){if(options.inp.options.length<2){return false}options.min=0;options.max=options.inp.options.length-1;options.step=1;options.precision=0;options.scale=false;options.forceValue=true}else{if(String(options.inp.type).search(/^(text|range)$/i)==-1){return false}options.min=options.min&&String(options.min).search(fpRegExp)!=-1?+options.min:0;options.max=options.max&&String(options.max).search(fpRegExp)!=-1?+options.max:100;options.step=options.step&&String(options.step).search(stepRegExp)!=-1?options.step:1;options.precision=options.precision&&String(options.precision).search(/^[0-9]+$/)!=-1?options.precision:(String(options.step).search(/\.([0-9]+)$/)!=-1?String(options.step).match(/\.([0-9]+)$/)[1].length:0);options.scale=options.scale||false;options.forceValue=("forceValue" in options)?!!options.forceValue:false}options.ariaFormat=("ariaFormat" in options)&&typeof options.ariaFormat=="function"?options.ariaFormat:false;options.maxStep=options.maxStep&&String(options.maxStep).search(stepRegExp)!=-1?+options.maxStep:+options.step*2;options.classNames=options.classNames||"";options.callbacks=options.callbacks||false;destroySingleSlider(options.inp.id);sliders[options.inp.id]=new fdRange(options);return true};var getAttribute=function(elem,att){return elem.getAttribute(att)||""};var init=function(){var inputs=document.getElementsByTagName("input"),options;for(var i=0,inp;inp=inputs[i];i++){if(inp.tagName.toLowerCase()=="input"&&inp.type.toLowerCase()=="text"&&(getAttribute(inp,"min")&&getAttribute(inp,"min").search(fpRegExp)!=-1||getAttribute(inp,"max")&&getAttribute(inp,"max").search(fpRegExp)!=-1||getAttribute(inp,"step")&&getAttribute(inp,"step").search(/^(any|([0-9]+(\.[0-9]+){0,1}))$/i)!=-1)){if(inp.id&&document.getElementById("fd-slider-"+inp.id)){continue}else{if(inp.id&&!document.getElementById("fd-slider-"+inp.id)){destroySingleSlider(inp.id)}}if(!inp.id){inp.id="fd-slider-form-elem-"+uniqueid++}options={inp:inp,callbacks:[],animation:html5Animation,vertical:getAttribute(inp,"data-fd-slider-vertical")?true:!!(inp.offsetHeight>inp.offsetWidth),classNames:getAttribute(inp,"data-fd-slider-vertical"),html5Shim:true};if(options.vertical&&!getAttribute(inp,"data-fd-slider-vertical")){options.inpHeight=inp.offsetHeight}options.min=getAttribute(inp,"min")||0;options.max=getAttribute(inp,"max")||100;options.step=getAttribute(inp,"step").search(/^any$/i)!=-1?options.max-options.min:getAttribute(inp,"step").search(stepRegExp)!=-1?inp.getAttribute("step"):1;options.precision=String(options.step).search(/\.([0-9]+)$/)!=-1?String(options.step).match(/\.([0-9]+)$/)[1].length:0;options.maxStep=options.step*2;destroySingleSlider(options.inp.id);sliders[options.inp.id]=new fdRange(options)}}return true};var destroySingleSlider=function(id){if(id in sliders&&sliders.hasOwnProperty(id)){sliders[id].destroy();delete sliders[id];return true}return false};var destroyAllsliders=function(e){for(slider in sliders){if(sliders.hasOwnProperty(slider)){sliders[slider].destroy()}}sliders=[]};var unload=function(e){destroyAllsliders();sliders=null};var resize=function(e){for(slider in sliders){if(sliders.hasOwnProperty(slider)){sliders[slider].onResize()}}};var onDomReady=function(){removeEvent(window,"load",init);init()};var removeOnLoadEvent=function(){removeEvent(window,"load",init)};function fdRange(options){var inp=options.inp,disabled=false,tagName=inp.tagName.toLowerCase(),min=+options.min,max=+options.max,rMin=+options.min,rMax=+options.max,range=Math.abs(max-min),step=tagName=="select"?1:+options.step,maxStep=options.maxStep?+options.maxStep:step*2,precision=options.precision||0,steps=Math.ceil(range/step),scale=options.scale||false,hideInput=!!options.hideInput,animation=options.animation||"",vertical=!!options.vertical,callbacks=options.callbacks||{},classNames=options.classNames||"",html5Shim=!!options.html5Shim,defaultVal=max<min?min:min+((max-min)/2),resetDef=tagName=="select"?inp.selectedIndex:inp.defaultValue||defaultVal,forceValue=html5Shim||!!options.forceValue,inpHeight=html5Shim&&vertical&&("inpHeight" in options)?options.inpHeight:false,ariaFormat=!html5Shim&&options.ariaFormat?options.ariaFormat:false,timer=null,kbEnabled=true,initialVal=tagName=="select"?inp.selectedIndex:inp.value,sliderH=0,sliderW=0,tweenX=0,tweenB=0,tweenC=0,tweenD=0,frame=0,x=0,y=0,rMaxPx=0,rMinPx=0,handlePos=0,destPos=0,mousePos=0,stepPx=0,userSet=false,touchEvents=false,outerWrapper,innerWrapper,ieBlur,handle,rangeBar,bar;if(tagName=="input"&&forceValue&&!inp.defaultValue){inp.defaultValue=getWorkingValueFromInput()}if(max<min){step=-Math.abs(step);maxStep=-Math.abs(maxStep)}if(scale){scale[100]=max}function valueSet(tf){tf=!!tf;if(tf!=userSet){userSet=tf;valueToPixels(getWorkingValueFromInput())}}function disableSlider(noCallback){if(disabled&&!noCallback){return}try{setTabIndex(handle,-1);removeEvent(handle,"focus",onFocus);removeEvent(handle,"blur",onBlur);if(!isOpera){removeEvent(handle,"keydown",onKeyDown);removeEvent(handle,"keypress",onKeyPress)}else{removeEvent(handle,"keypress",onKeyDown)}removeEvent(outerWrapper,"mouseover",onMouseOver);removeEvent(outerWrapper,"mouseout",onMouseOut);removeEvent(outerWrapper,"mousedown",onMouseDown);removeEvent(outerWrapper,"touchstart",onMouseDown);if(mouseWheelEnabled){if(window.addEventListener&&!window.devicePixelRatio){window.removeEventListener("DOMMouseScroll",trackMouseWheel,false)}else{removeEvent(document,"mousewheel",trackMouseWheel);removeEvent(window,"mousewheel",trackMouseWheel)}}}catch(err){}removeClass(innerWrapper,"fd-slider-focused");removeClass(innerWrapper,"fd-slider-active");addClass(innerWrapper,"fd-slider-disabled");outerWrapper.setAttribute("aria-disabled",true);inp.disabled=disabled=true;clearTimeout(timer);if(!noCallback){callback("disable")}}function enableSlider(noCallback){if(!disabled&&!noCallback){return}setTabIndex(handle,0);addEvent(handle,"focus",onFocus);addEvent(handle,"blur",onBlur);if(!isOpera){addEvent(handle,"keydown",onKeyDown);addEvent(handle,"keypress",onKeyPress)}else{addEvent(handle,"keypress",onKeyDown)}addEvent(outerWrapper,"touchstart",onMouseDown);addEvent(outerWrapper,"mousedown",onMouseDown);addEvent(outerWrapper,"mouseover",onMouseOver);addEvent(outerWrapper,"mouseout",onMouseOut);removeClass(innerWrapper,"fd-slider-disabled");outerWrapper.setAttribute("aria-disabled",false);inp.disabled=disabled=touchEvents=false;if(!noCallback){callback("enable")}}function destroySlider(){clearTimeout(timer);ieBlur=bar=handle=outerWrapper=innerWrapper=timer=null;callback("destroy");callbacks=null}function redraw(){locate();try{var sW=outerWrapper.offsetWidth,sH=outerWrapper.offsetHeight,hW=handle.offsetWidth,hH=handle.offsetHeight,bH=bar.offsetHeight,bW=bar.offsetWidth,mPx=vertical?sH-hH:sW-hW;stepPx=mPx/steps;rMinPx=Math.max(scale?percentToPixels(valueToPercent(rMin)):Math.abs((rMin-min)/step)*stepPx,0);rMaxPx=Math.min(scale?percentToPixels(valueToPercent(rMax)):Math.abs((rMax-min)/step)*stepPx,Math.floor(vertical?sH-hH:sW-hW));sliderW=sW;sliderH=sH;valueToPixels(forceValue?getWorkingValueFromInput():(tagName=="select"?inp.selectedIndex:parseFloat(inp.value)))}catch(err){}callback("redraw")}function callback(type){if(!html5Shim){if(callbacks.hasOwnProperty(type)){var cbObj={userSet:userSet,disabled:disabled,elem:inp,value:tagName=="select"?inp.options[inp.selectedIndex].value:inp.value};for(var i=0,func;func=callbacks[type][i];i++){func.call(inp,cbObj)}}}else{if(type.match(/^(blur|focus|change)$/i)){if(typeof(document.createEventObject)!="undefined"){try{var e=document.createEventObject();inp.fireEvent("on"+type.toLowerCase(),e)}catch(err){}}else{if(typeof(document.createEvent)!="undefined"){var e=document.createEvent("HTMLEvents");e.initEvent(type,true,true);inp.dispatchEvent(e)}}}}}function onFocus(e){addClass(innerWrapper,"fd-slider-focused");if(varSetRules.onfocus){userSet=true;valueToPixels(getWorkingValueFromInput())}if(mouseWheelEnabled){addEvent(window,"DOMMouseScroll",trackMouseWheel);addEvent(document,"mousewheel",trackMouseWheel);if(!isOpera){addEvent(window,"mousewheel",trackMouseWheel)}}callback("focus");return true}function onBlur(e){removeClass(innerWrapper,"fd-slider-focused");if(mouseWheelEnabled){removeEvent(document,"mousewheel",trackMouseWheel);removeEvent(window,"DOMMouseScroll",trackMouseWheel);if(!isOpera){removeEvent(window,"mousewheel",trackMouseWheel)}}kbEnabled=true;callback("blur")}function trackMouseWheel(e){if(!kbEnabled){return}e=e||window.event;var delta=0,value;if(e.wheelDelta){delta=e.wheelDelta/120;if(isOpera&&window.opera.version()<9.2){delta=-delta}}else{if(e.detail){delta=-e.detail/3}}if(vertical){delta=-delta}if(delta){value=getWorkingValueFromInput();value+=(delta<0)?-step:step;userSet=true;valueToPixels(getValidValue(value))}return stopEvent(e)}function onKeyPress(e){e=e||window.event;if((e.keyCode>=33&&e.keyCode<=40)||!kbEnabled||e.keyCode==45||e.keyCode==46){return stopEvent(e)}return true}function onKeyDown(e){if(!kbEnabled){return true}e=e||window.event;var kc=e.keyCode!=null?e.keyCode:e.charCode,value;if(kc<33||(kc>40&&(kc!=45&&kc!=46))){return true}value=getWorkingValueFromInput();if(kc==37||kc==40||kc==46||kc==34){value-=(e.ctrlKey||kc==34?+maxStep:+step)}else{if(kc==39||kc==38||kc==45||kc==33){value+=(e.ctrlKey||kc==33?+maxStep:+step)}else{if(kc==35){value=rMax}else{if(kc==36){value=rMin}}}}userSet=true;valueToPixels(getValidValue(value));callback("update");preventDefault(e)}function onMouseOver(e){addClass(innerWrapper,"fd-slider-hover")}function onMouseOut(e){removeClass(innerWrapper,"fd-slider-hover")}function onMouseDown(e){e=e||window.event;preventDefault(e);var targ;if(e.target){targ=e.target}else{if(e.srcElement){targ=e.srcElement}}if(targ&&targ.nodeType==3){targ=targ.parentNode}if(e.touches){if(e.targetTouches&&e.targetTouches.length!=1){return false}e=e.touches[0];touchEvents=true}clearTimeout(timer);timer=null;kbEnabled=false;userSet=true;if(targ.className.search("fd-slider-handle")!=-1){mousePos=vertical?e.clientY:e.clientX;handlePos=parseInt(vertical?handle.offsetTop:handle.offsetLeft)||0;trackMouse(e);if(!touchEvents){addEvent(document,"mousemove",trackMouse);addEvent(document,"mouseup",stopDrag)}else{addEvent(document,"touchmove",trackMouse);addEvent(document,"touchend",stopDrag);removeEvent(outerWrapper,"mousedown",onMouseDown)}addClass(innerWrapper,"fd-slider-active");addClass(document.body,"fd-slider-drag-"+(vertical?"vertical":"horizontal"));callback("dragstart")}else{locate();var posx=0;if(e.pageX||e.pageY){posx=vertical?e.pageY:e.pageX}else{if(e.clientX||e.clientY){posx=vertical?e.clientY+document.body.scrollTop+document.documentElement.scrollTop:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft}}posx-=vertical?y+Math.round(handle.offsetHeight/2):x+Math.round(handle.offsetWidth/2);posx=snapToPxValue(posx);if(animation=="tween"){addClass(innerWrapper,"fd-slider-active");tweenTo(posx)}else{if(animation=="timed"){addClass(innerWrapper,"fd-slider-active");addEvent(document,touchEvents?"touchend":"mouseup",onDocMouseUp);destPos=posx;onTimer()}else{pixelsToValue(posx)}}}return stopEvent(e)}function onDocMouseUp(e){e=e||window.event;preventDefault(e);removeEvent(document,touchEvents?"touchend":"mouseup",onDocMouseUp);removeClass(innerWrapper,"fd-slider-active");clearTimeout(timer);timer=null;kbEnabled=true;return stopEvent(e)}function stopDrag(e){e=e||window.event;preventDefault(e);if(touchEvents){removeEvent(document,"touchmove",trackMouse);removeEvent(document,"touchend",stopDrag)}else{removeEvent(document,"mousemove",trackMouse);removeEvent(document,"mouseup",stopDrag)}kbEnabled=true;removeClass(document.body,"fd-slider-drag-"+(vertical?"vertical":"horizontal"));removeClass(innerWrapper,"fd-slider-active");callback("dragend");return stopEvent(e)}function trackMouse(e){e=e||window.event;preventDefault(e);if(e.touches){if(e.targetTouches&&e.targetTouches.length!=1){return false}e=e.touches[0]}pixelsToValue(snapToPxValue(handlePos+(vertical?e.clientY-mousePos:e.clientX-mousePos)));return false}function increment(inc){var value=getWorkingValueFromInput();userSet=true;value+=inc*step;valueToPixels(getValidValue(value))}function locate(){var curleft=0,curtop=0,obj=outerWrapper;try{while(obj.offsetParent){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent}}catch(err){}x=curleft;y=curtop}function onTimer(){var xtmp=parseInt(vertical?handle.offsetTop:handle.offsetLeft,10);xtmp=Math.round((destPos<xtmp)?Math.max(destPos,Math.floor(xtmp-stepPx)):Math.min(destPos,Math.ceil(xtmp+stepPx)));pixelsToValue(snapToPxValue(xtmp));if(xtmp!=destPos){timer=setTimeout(onTimer,steps>20?50:100)}else{kbEnabled=true;removeClass(innerWrapper,"fd-slider-active");callback("finalise")}}var tween=function(){frame++;var c=tweenC,d=20,t=frame,b=tweenB,x=Math.ceil((t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b);pixelsToValue(t==d?tweenX:x);if(t!=d){callback("move");timer=setTimeout(tween,20)}else{clearTimeout(timer);timer=null;kbEnabled=true;removeClass(innerWrapper,"fd-slider-focused");removeClass(innerWrapper,"fd-slider-active");callback("finalise")}};function tweenTo(tx){kbEnabled=false;tweenX=parseInt(tx,10);tweenB=parseInt(vertical?handle.offsetTop:handle.offsetLeft,10);tweenC=tweenX-tweenB;tweenD=20;frame=0;if(!timer){timer=setTimeout(tween,20)}}function checkValue(value){if(isNaN(value)||value===""||typeof value=="undefined"){userSet=false;return defaultVal}else{if(value<Math.min(rMin,rMax)){userSet=false;return Math.min(rMin,rMax)}else{if(value>Math.max(rMin,rMax)){userSet=false;return Math.max(rMin,rMax)}}}userSet=true;return value}function getWorkingValueFromInput(){return getValidValue(tagName=="input"?parseFloat(inp.value):inp.selectedIndex)}function getValidValue(value){return(isNaN(value)||value===""||typeof value=="undefined")?defaultVal:Math.min(Math.max(value,Math.min(rMin,rMax)),Math.max(rMin,rMax))}function pixelsToValue(px){var val=getValidValue(scale?percentToValue(pixelsToPercent(px)):vertical?max-(Math.round(px/stepPx)*step):min+(Math.round(px/stepPx)*step));handle.style[vertical?"top":"left"]=(px||0)+"px";redrawRange();setInputValue((tagName=="select"||step==1)?Math.round(val):val)}function valueToPixels(val){var clearVal=false,value;if((typeof val=="undefined"||isNaN(val)||val==="")&&tagName=="input"&&!forceValue){value=defaultVal;clearVal=true;userSet=false}else{value=checkValue(val)}handle.style[vertical?"top":"left"]=(scale?percentToPixels(valueToPercent(value)):vertical?Math.round(((max-value)/step)*stepPx):Math.round(((value-min)/step)*stepPx))+"px";redrawRange();setInputValue(clearVal?"":value)}function snapToPxValue(px){if(scale){return Math.max(Math.min(rMaxPx,px),rMinPx)}else{var rem=px%stepPx;if(rem&&rem>=(stepPx/2)){px+=(stepPx-rem)}else{px-=rem}if(px<Math.min(Math.abs(rMinPx),Math.abs(rMaxPx))){px=Math.min(Math.abs(rMinPx),Math.abs(rMaxPx))}else{if(px>Math.max(Math.abs(rMinPx),Math.abs(rMaxPx))){px=Math.max(Math.abs(rMinPx),Math.abs(rMaxPx))}}return Math.min(Math.max(px,0),rMaxPx)}}function percentToValue(pct){var st=0,fr=min,value;for(var s in scale){if(!scale.hasOwnProperty(s)){continue}if(pct>=st&&pct<=+s){value=fr+((pct-st)*(+scale[s]-fr))/(+s-st)}st=+s;fr=+scale[s]}return value}function valueToPercent(value){var st=0,fr=min,pct=0;for(var s in scale){if(!scale.hasOwnProperty(s)){continue}if(value>=fr&&value<=+scale[s]){pct=st+(value-fr)*(+s-st)/(+scale[s]-fr)}st=+s;fr=+scale[s]}return pct}function percentToPixels(percent){return((outerWrapper[vertical?"offsetHeight":"offsetWidth"]-handle[vertical?"offsetHeight":"offsetWidth"])/100)*percent}function pixelsToPercent(pixels){return pixels/((outerWrapper[vertical?"offsetHeight":"offsetWidth"]-outerWrapper[handle?"offsetHeight":"offsetWidth"])/100)}function setInputValue(val){callback("update");if(!userSet){addClass(innerWrapper,"fd-slider-no-value")}else{removeClass(innerWrapper,"fd-slider-no-value")}if(tagName=="select"){try{val=parseInt(val,10);if(inp.selectedIndex===val){updateAriaValues();return}inp.options[val].selected=true}catch(err){}}else{if(val!=""){val=(min+(Math.round((val-min)/step)*step)).toFixed(precision)}if(inp.value===val){updateAriaValues();return}inp.value=val}updateAriaValues();callback("change")}function checkInputValue(value){return !(isNaN(value)||value===""||value<Math.min(rMin,rMax)||value>Math.max(rMin,rMax))}function setSliderRange(newMin,newMax){if(rMin>rMax){newMin=Math.min(min,Math.max(newMin,newMax));newMax=Math.max(max,Math.min(newMin,newMax));rMin=Math.max(newMin,newMax);rMax=Math.min(newMin,newMax)}else{newMin=Math.max(min,Math.min(newMin,newMax));newMax=Math.min(max,Math.max(newMin,newMax));rMin=Math.min(newMin,newMax);rMax=Math.max(newMin,newMax)}if(defaultVal<Math.min(rMin,rMax)){defaultVal=Math.min(rMin,rMax)}else{if(defaultVal>Math.max(rMin,rMax)){defaultVal=Math.max(rMin,rMax)}}handle.setAttribute("aria-valuemin",rMin);handle.setAttribute("aria-valuemax",rMax);checkValue(tagName=="input"?parseFloat(inp.value):inp.selectedIndex);redraw()}function redrawRange(){if(noRangeBar){return}if(vertical){rangeBar.style.height=Math.max(1,(bar.offsetHeight-handle.offsetTop))+"px"}else{rangeBar.style.width=Math.max(1,handle.offsetLeft)+"px"}}function findLabel(){var label=false,labelList=document.getElementsByTagName("label");for(var i=0,lbl;lbl=labelList[i];i++){if((lbl.htmlFor&&lbl.htmlFor==inp.id)||(lbl.getAttribute("for")==inp.id)){label=lbl;break}}if(label&&!label.id){label.id=inp.id+"_label"}return label}function updateAriaValues(){var val=tagName=="select"?inp.options[inp.selectedIndex].value:inp.value,valTxt=ariaFormat?ariaFormat(val):tagName=="select"?(inp.options[inp.selectedIndex].text?inp.options[inp.selectedIndex].text:val):val;handle.setAttribute("aria-valuenow",val);handle.setAttribute("aria-valuetext",valTxt)}function onInputChange(e){userSet=true;valueToPixels(tagName=="input"?parseFloat(inp.value):inp.selectedIndex);updateAriaValues()}function onReset(e){if(tagName=="input"){inp.value=inp.defaultValue}else{inp.selectedIndex=resetDef}checkValue(tagName=="select"?inp.options[inp.selectedIndex].value:inp.value);redraw();updateAriaValues()}function valueSet(tf){userSet=!!tf}function setTabIndex(e,i){e.setAttribute(!
9
+ /*@cc_on!@*/
10
+ false?"tabIndex":"tabindex",i);e.tabIndex=i}(function(){if(html5Shim||hideInput){addClass(inp,"fd-form-element-hidden")}else{addEvent(inp,"change",onInputChange)}if(html5Shim){inp.stepUp=function(n){increment(n||1)};inp.stepDown=function(n){increment(n||-1)}}outerWrapper=document.createElement("span");outerWrapper.className="fd-slider"+(vertical?"-vertical ":" ")+classNames;outerWrapper.id="fd-slider-"+inp.id;if(vertical&&inpHeight){outerWrapper.style.height=inpHeight+"px"}innerWrapper=document.createElement("span");innerWrapper.className="fd-slider-wrapper"+(!html5Shim?" fd-slider-no-value":"");ieBlur=document.createElement("span");ieBlur.className="fd-slider-inner";bar=document.createElement("span");bar.className="fd-slider-bar";if(fullARIA){handle=document.createElement("span")}else{handle=document.createElement("a");handle.setAttribute("href","#");addEvent(handle,"click",stopEvent)}setTabIndex(handle,0);handle.className="fd-slider-handle";handle.appendChild(document.createTextNode(String.fromCharCode(160)));innerWrapper.appendChild(ieBlur);if(!noRangeBar){rangeBar=document.createElement("span");rangeBar.className="fd-slider-range";innerWrapper.appendChild(rangeBar)}innerWrapper.appendChild(bar);innerWrapper.appendChild(handle);outerWrapper.appendChild(innerWrapper);inp.parentNode.insertBefore(outerWrapper,inp);if(isOpera||
11
+ /*@cc_on!@*/
12
+ !true){handle.unselectable="on";bar.unselectable="on";ieBlur.unselectable="on";outerWrapper.unselectable="on";innerWrapper.unselectable="on";if(!noRangeBar){rangeBar.unselectable="on"}}outerWrapper.setAttribute("role","application");handle.setAttribute("role","slider");handle.setAttribute("aria-valuemin",tagName=="select"?inp.options[0].value:min);handle.setAttribute("aria-valuemax",tagName=="select"?inp.options[inp.options.length-1].value:max);var lbl=findLabel();if(lbl){handle.setAttribute("aria-labelledby",lbl.id);handle.id="fd-slider-handle-"+inp.id;
13
+ /*@cc_on
14
+ /*@if(@_win32)
15
+ lbl.setAttribute("htmlFor", handle.id);
16
+ @else @*/
17
+ lbl.setAttribute("for",handle.id);
18
+ /*@end
19
+ @*/
20
+ }if(document.getElementById(describedBy)){handle.setAttribute("aria-describedby",describedBy)}if(inp.getAttribute("disabled")==true){disableSlider(true)}else{enableSlider(true)}if(varSetRules.onvalue){userSet=true;checkValue(tagName=="input"?parseFloat(inp.value):inp.selectedIndex)}if(inp.form){addEvent(inp.form,"reset",onReset)}updateAriaValues();callback("create");redraw()})();return{onResize:function(e){if(outerWrapper.offsetHeight!=sliderH||outerWrapper.offsetWidth!=sliderW){redraw()}},destroy:function(){destroySlider()},reset:function(){valueToPixels(tagName=="input"?parseFloat(inp.value):inp.selectedIndex)},stepUp:function(n){increment(Math.abs(n)||1)},stepDown:function(n){increment(-Math.abs(n)||-1)},increment:function(n){increment(n)},disable:function(){disableSlider()},enable:function(){enableSlider()},setRange:function(mi,mx){setSliderRange(mi,mx)},getValueSet:function(){return !!userSet},setValueSet:function(tf){valueSet(tf)},checkValue:function(){if(varSetRules.onvalue){userSet=true;checkValue(tagName=="input"?parseFloat(inp.value):inp.selectedIndex)}updateAriaValues();redraw()}}}addEvent(window,"load",init);addEvent(window,"load",function(){setTimeout(function(){var slider;for(slider in sliders){sliders[slider].checkValue()}},0)});addEvent(window,"resize",resize);addEvent(window,"unload",unload);(function(){var scriptFiles=document.getElementsByTagName("script"),scriptInner=String(scriptFiles[scriptFiles.length-1].innerHTML).replace(/[\n\r\s\t]+/g," ").replace(/^\s+/,"").replace(/\s+$/,""),json=parseJSON(scriptInner);if(typeof json==="object"&&!("err" in json)){affectJSON(json)}})();
21
+ /*@cc_on
22
+ @if (@_jscript_version < 9)
23
+ addClass(document.documentElement, "oldie");
24
+ @end
25
+ @*/
26
+ return{createSlider:function(opts){return createSlider(opts)},onDomReady:function(){onDomReady()},destroyAll:function(){destroyAllsliders()},destroySlider:function(id){return destroySingleSlider(id)},redrawAll:function(){resize()},addEvent:addEvent,removeEvent:removeEvent,stopEvent:stopEvent,increment:function(id,numSteps){if(!sliderExists(id)){return false}sliders[id].increment(numSteps)},stepUp:function(id,n){if(!sliderExists(id)){return false}sliders[id].stepUp(Math.abs(n)||1)},stepDown:function(id,n){if(!sliderExists(id)){return false}sliders[id].stepDown(-Math.abs(n)||-1)},setRange:function(id,newMin,newMax){if(!sliderExists(id)){return false}sliders[id].setRange(newMin,newMax)},updateSlider:function(id){if(!sliderExists(id)){return false}sliders[id].reset()},disable:function(id){if(!sliderExists(id)){return false}sliders[id].disable()},enable:function(id){if(!sliderExists(id)){return false}sliders[id].enable()},getValueSet:function(){return getValueSet()},setValueSet:function(a,tf){if(!sliderExists(id)){return false}setValueSet(a,tf)},setGlobalVariables:function(json){affectJSON(json)},removeOnload:function(){removeOnLoadEvent()}}})();
@@ -0,0 +1,988 @@
1
+ /*
2
+
3
+ Don't use this version of the file in a production environment. A minified
4
+ version tailored specifically to your needs can be generated in-browser by
5
+ using the /css-generator/index.html file.
6
+
7
+ Notes for the adventurous:
8
+
9
+ 1. The script automagically adds the classname "oldie" to IE6, 7 & 8.
10
+
11
+ 2. A combination of the .oldie class and "safe css hacks" are used to target
12
+ specific IE versions. See: http://mathiasbynens.be/notes/safe-css-hacks
13
+
14
+ 3. MSHTML has been used to base64 encode the various png images used for the
15
+ drag handle in IE6 and 7. IE7 gets served one base64 encoded image sprite
16
+ whereas IE6 gets served individual base64 encoded images.
17
+
18
+ See: http://www.phpied.com/the-proper-mhtml-syntax/ for more info on MHTML
19
+
20
+ The base64 encoded images have been placed into their own .mht file. This
21
+ means only IE6 and 7 will ever be burdened with downloading the file.
22
+
23
+ A Microsoft security update in July 2011 means that .mht files now have to
24
+ be delivered with the mimetype "message/rfc822". If using IIS, there is
25
+ nothing to do as IIS appears to default to using the required
26
+ "message/rfc822" mimetype, if using Apache, there are two ways in which to
27
+ configure this behaviour:
28
+
29
+ A. You have Admin rights and can restart the Apache server
30
+
31
+ Update the apache_root/httpd/conf/Srm.conf file and add the following
32
+ line:
33
+
34
+ AddType message/rfc822 mht
35
+
36
+ This method requires that you restart Apache.
37
+
38
+ B. You can simply use an htaccess directive
39
+
40
+ You can add the following to an .htaccess file that sits in the same
41
+ directory as the .mht file (or to an htaccess file at the root of your
42
+ website if one exists already):
43
+
44
+ AddType message/rfc822 mht
45
+
46
+ You do not need to restart Apache for the change to take effect.
47
+
48
+ Yikes - I cant do either of the above!
49
+
50
+ Don't worry, using the .mht file isn't compulsory - just replace the
51
+ various mhtml: references (found within the .oldie classes) to point to
52
+ the correct image file on your server (not forgetting to actually upload
53
+ the image files to your server of course).
54
+
55
+ All of the relevant rules have further instructions embedded within them.
56
+
57
+ 4. All browsers but IE6 get one "normal" base64 encoded image sprite. IE6 has
58
+ to use separate images for each animation state.
59
+
60
+ 5. The drag handle is only 20px in width & height, most probably not suitable
61
+ for touch screen devices.
62
+
63
+ 6. It's painless to base64 encode your own images, use an online encoder.
64
+ See: http://www.google.com/search?q=base+64+encoder - the only problem is
65
+ that IE6 needs each frame of the handle sprite to be encoded individually.
66
+
67
+ 7. If you want to use a different image for vertical slider drag handles,
68
+ uncomment the relevant classes below (easy to spot as they all have the
69
+ classname ".fd-slider-vertical" somewhere within the declaration).
70
+
71
+ 8. As a reminder, the following HTML is being targetted by the CSS:
72
+
73
+ <span class="fd-slider[-vertical]"
74
+ id="fd-slider-[the associated form element id]"
75
+ role="application"
76
+ aria-disabled="false">
77
+ <span class="fd-slider-wrapper (fd-slider-[focus|hover|no-value|disabled|active])">
78
+ <span class="fd-slider-inner"></span>
79
+ <span class="fd-slider-range"></span>
80
+ <span class="fd-slider-bar"></span>
81
+ <span class="fd-slider-handle"
82
+ tabindex="0"
83
+ role="slider"
84
+ aria-valuemin="-10"
85
+ aria-valuemax="10"
86
+ aria-labelledby="[the associated form element label id]"
87
+ id="fd-slider-handle-[the associated form element id]"
88
+ aria-describedby="fd-slider-describedby"
89
+ aria-valuenow="-3.50"
90
+ aria-valuetext="-3.50">&nbsp;</span>
91
+ </span>
92
+ </span>
93
+
94
+ */
95
+
96
+ /*
97
+ Element: Form element associated with the slider
98
+ Notes: The styles given to the associated form element in order to hide
99
+ it within the display
100
+ */
101
+ .fd-form-element-hidden
102
+ {
103
+ display:none;
104
+ }
105
+ /*
106
+ Element: Outer wrapper
107
+ Orientation: Horizontal
108
+ */
109
+ .fd-slider
110
+ {
111
+ width:100%;
112
+ height:20px;
113
+ margin:0 0 10px 0;
114
+ }
115
+ /*
116
+ Element: Outer wrapper
117
+ Orientation: Vertical
118
+ Notes: You may wish to float the vertical sliders left or use
119
+ display:inline-block (inline-block should work even in IE6 as the slider
120
+ is constructed from span elements but don't quote me on that)
121
+ */
122
+ .fd-slider-vertical
123
+ {
124
+ width:20px;
125
+ height:100%;
126
+ margin:0 10px 10px 0;
127
+ }
128
+ /*
129
+ Element: Outer wrapper
130
+ Orientation: Both horizontal & vertical
131
+ */
132
+ .fd-slider,
133
+ .fd-slider-vertical
134
+ {
135
+ text-align:center;
136
+ display:block;
137
+ position:relative;
138
+ cursor:pointer;
139
+ text-decoration:none;
140
+ border:0 none;
141
+ -webkit-user-select: none;
142
+ -khtml-user-select: none;
143
+ -moz-user-select: none;
144
+ -ms-user-select: none;
145
+ -o-user-select: none;
146
+ user-select: none;
147
+ }
148
+ /*
149
+ Element: Outer Wrapper
150
+ Orientation: Both horizontal & vertical
151
+ Notes: IE6 & 7 need a transparent gif as a background in order for
152
+ hover events to work. This has been base64 encoded within the .mht file.
153
+ As it's not a png, no AlphaImageLoader filter is required for IE6.
154
+ */
155
+ .oldie .fd-slider,
156
+ .oldie .fd-slider-vertical
157
+ {
158
+ /*
159
+ If using the .mht file then uncomment the following rule and edit the
160
+ filepath to match the absolute path to the fd-slider.mht file on your
161
+ server (replace "www.your-domain.com/the/path/to/")
162
+ */
163
+
164
+ /*
165
+
166
+ *background:transparent url(mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!blank) repeat;
167
+
168
+ */
169
+
170
+ /*
171
+ If not using the .mht file then uncomment the following rule and edit
172
+ the filepath to match the absolute path to the blank.gif file on your
173
+ server (replace "www.your-domain.com/the/path/to/")
174
+ */
175
+
176
+ *background:transparent url(<%= asset_path 'fd-slider/blank.gif' %>) repeat;
177
+
178
+ }
179
+ /*
180
+ Element: Inner wrapper
181
+ Notes: All other DOM elements added as children to this element.
182
+ */
183
+ .fd-slider-wrapper
184
+ {
185
+ position:absolute;
186
+ top:0;
187
+ left:0;
188
+ width:100%;
189
+ height:100%;
190
+ }
191
+ /*
192
+ Element: Inner wrapper
193
+ Notes: IE6 needs an expression as it cannot do a height:100% on
194
+ absolutely positioned elements and it also can't position on four
195
+ corners - so we are left with a "one time evaluated" self-deleting
196
+ expression to do the dirty work.
197
+ */
198
+
199
+ .oldie .fd-slider-vertical .fd-slider-wrapper
200
+ {
201
+ *clear:expression(style.height=parentNode.offsetHeight+'px',style.clear='none', 0);
202
+ }
203
+ /*
204
+ Element: ieBlur shiv
205
+ Notes: Used only by IE for the onfocus "Blur" effect
206
+ */
207
+ .fd-slider-inner
208
+ {
209
+ display:none;
210
+ }
211
+ /*
212
+ Element: ieBlur shiv
213
+ Orientation: Horizontal
214
+ Notes: IE6, 7 & 8 only.
215
+ Use the "Blur" filter to simulate the box-shadow - not brilliant but the
216
+ best we can do for IE. IE6 can't absolutely position on 4 sides so we
217
+ reset the right to "auto" and use a nasty expression to calculate the
218
+ width dynamically.
219
+ */
220
+ .oldie .fd-slider-inner
221
+ {
222
+ position:absolute;
223
+ height:2px;
224
+ border:1px solid #bbf;
225
+ background:#bbf;
226
+ top:4px;
227
+ bottom:none;
228
+ left:4px;
229
+ right:12px;
230
+ z-index:2;
231
+ margin:0;
232
+ padding:0;
233
+ overflow:hidden;
234
+ line-height:4px;
235
+ _right:auto;
236
+ _width:expression((this.parentNode.offsetWidth - 12) + "px");
237
+ filter:progid:DXImageTransform.Microsoft.Blur(pixelradius=3.5);
238
+ }
239
+ /*
240
+ Element: ieBlur shiv
241
+ Orientation: Vertical
242
+ Notes: Reposition the "Blur" filter for the vertical slider for IE6,
243
+ 7 & 8. The "Blur" filter rule cascades from the rule above so no need to
244
+ redeclare here, we just reposition.
245
+ */
246
+ .oldie .fd-slider-vertical .fd-slider-inner
247
+ {
248
+ width:2px;
249
+ height:auto;
250
+ bottom:12px;
251
+ right:auto;
252
+ _bottom:auto;
253
+ *clear:expression(style.height=(parentNode.offsetHeight - 8)+'px',style.clear='none', 0);
254
+ }
255
+ /*
256
+ Element: ieBlur shiv
257
+ Orientation: Horizontal & Vertical
258
+ Notes: Display the "Blurred" inner div for IE6, 7 & 8 when the slider
259
+ gains focus
260
+ */
261
+ .oldie .fd-slider-focused .fd-slider-inner
262
+ {
263
+ display:block;
264
+ }
265
+ /*
266
+ Element: Inner track bar
267
+ Orientation: Horizontal
268
+ */
269
+ .fd-slider-bar
270
+ {
271
+ display:block;
272
+ position:absolute;
273
+ top:8px;
274
+ right:10px;
275
+ left:10px;
276
+ z-index:2;
277
+ height:2px;
278
+ margin:0;
279
+ padding:0;
280
+ overflow:hidden;
281
+ border:1px solid #bbb;
282
+ border-bottom:1px solid #aaa;
283
+ border-right:1px solid #aaa;
284
+ border:1px solid rgba(187, 187, 187, .8);
285
+ border-bottom:1px solid rgba(170, 170, 170, .8);
286
+ border-right:1px solid rgba(170, 170, 170, .8);
287
+ line-height:4px;
288
+ background-color:#ddd;
289
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ececec), to(#ccc));
290
+ background-image: -webkit-linear-gradient(top, #ececec, #ccc);
291
+ background-image: -moz-linear-gradient(top, #ececec, #ccc);
292
+ background-image: -ms-linear-gradient(top, #ececec, #ccc);
293
+ background-image: -o-linear-gradient(top, #ececec, #ccc);
294
+ background-image: linear-gradient(to bottom, #ececec, #ccc);
295
+ -webkit-border-radius:2px;
296
+ -moz-border-radius:2px;
297
+ border-radius:2px;
298
+ -webkit-background-clip: padding-box;
299
+ -moz-background-clip: padding;
300
+ background-clip: padding-box;
301
+ }
302
+ /*
303
+ Element: Inner track bar
304
+ Orientation: Horizontal
305
+ Notes: For IE6 & 7 & 8. IE6 does not recognise absolute positioning on
306
+ four sides (top, right, bottom & left) so we use an expression to
307
+ dynamically calculate the track bar size. Yes, it is horrible - you
308
+ don't need to remind me.
309
+ */
310
+ .oldie .fd-slider-bar
311
+ {
312
+ _right:auto;
313
+ _width:expression((this.parentNode.offsetWidth - 20) + "px");
314
+ filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffececec',endColorstr='#ffcccccc');
315
+ }
316
+ /*
317
+ Element: Inner track bar
318
+ Orientation: Vertical
319
+ */
320
+ .fd-slider-vertical .fd-slider-bar
321
+ {
322
+ width:2px;
323
+ top:10px;
324
+ right:auto;
325
+ bottom:10px;
326
+ left:8px;
327
+ height:auto;
328
+ background-color:#ddd;
329
+ background-image: -webkit-gradient(linear, left top, right top, from(#ececec), to(#ccc));
330
+ background-image: -webkit-linear-gradient(left, #ececec, #ccc);
331
+ background-image: -moz-linear-gradient(left, #ececec, #ccc);
332
+ background-image: -ms-linear-gradient(left, #ececec, #ccc);
333
+ background-image: -o-linear-gradient(left, #ececec, #ccc);
334
+ background-image: linear-gradient(to right, #ececec, #ccc);
335
+ }
336
+ /*
337
+ Element: Inner track bar
338
+ Orientation: Vertical
339
+ Notes: For IE6 & 7 & 8. The gradient filter colour strings in AARRGGBB
340
+ format (to save you one less google). IE6 gets repositioned and alas,
341
+ an expression to calculate the height.
342
+ */
343
+ .oldie .fd-slider-vertical .fd-slider-bar
344
+ {
345
+ _bottom:auto;
346
+ *clear:expression(style.height=(parentNode.offsetHeight - 20)+'px',style.clear='none', 0);
347
+ filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffececec',endColorstr='#ffcccccc');
348
+ }
349
+ /*
350
+ Element: Inner track bar
351
+ Orientation: Horizontal & Vertical
352
+ State: Focused
353
+ Notes: Drop shadow on the inner bar when focused - newer browsers get
354
+ an animation. IE6, 7 & 8 get a "Blur" filter on an inner SPAN
355
+ .fd-slider-inner instead
356
+ */
357
+ .fd-slider-focused .fd-slider-bar
358
+ {
359
+ -webkit-box-shadow: 0 0 6px rgba(10, 130, 170, 0.7);
360
+ -moz-box-shadow: 0 0 6px rgba(10, 130, 170, 0.7);
361
+ box-shadow: 0 0 6px rgba(10, 130, 170, 0.7);
362
+ -webkit-animation:fd-pulse 2s infinite;
363
+ -moz-animation:fd-pulse 2s infinite;
364
+ -ms-animation:fd-pulse 2s infinite;
365
+ -o-animation:fd-pulse 2s infinite;
366
+ }
367
+ /*
368
+ Element: Inner animated range bar
369
+ Orientation: Horizontal
370
+ */
371
+ .fd-slider-range
372
+ {
373
+ display:block;
374
+ position:absolute;
375
+ top:9px;
376
+ left:11px;
377
+ z-index:3;
378
+ height:2px;
379
+ margin:0;
380
+ padding:0;
381
+ overflow:hidden;
382
+ line-height:2px;
383
+ background-color:#4cc;
384
+ background-image: -webkit-gradient(linear, left top, right top, from(#6cc), to(#3cf));
385
+ background-image: -webkit-linear-gradient(left, #6cc, #3cf);
386
+ background-image: -moz-linear-gradient(left, #6cc, #3cf);
387
+ background-image: -ms-linear-gradient(left, #6cc, #3cf);
388
+ background-image: -o-linear-gradient(left, #6cc, #3cf);
389
+ background-image: linear-gradient(to right, #6cc, #3cf);
390
+ -webkit-border-radius:2px;
391
+ -moz-border-radius:2px;
392
+ border-radius:2px;
393
+ -webkit-background-clip: padding-box;
394
+ -moz-background-clip: padding;
395
+ background-clip: padding-box;
396
+ }
397
+ /*
398
+ Element: Inner range bar
399
+ Orientation: Horizontal
400
+ Notes: IE6, 7 & 8
401
+ */
402
+ .oldie .fd-slider-range
403
+ {
404
+ /* IE6 - is this needed? To test. */
405
+ _left:10px;
406
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ff66cccc',endColorstr='#ff33ccff');
407
+ }
408
+ /*
409
+ Element: Inner range bar
410
+ Orientation: Vertical
411
+ */
412
+ .fd-slider-vertical .fd-slider-range
413
+ {
414
+ height:auto;
415
+ width:2px;
416
+ top:auto;
417
+ right:auto;
418
+ bottom:11px;
419
+ left:9px;
420
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3cf), to(#6cc));
421
+ background-image: -webkit-linear-gradient(top, #3cf, #6cc);
422
+ background-image: -moz-linear-gradient(top, #3cf, #6cc);
423
+ background-image: -ms-linear-gradient(top, #3cf, #6cc);
424
+ background-image: -o-linear-gradient(top, #3cf, #6cc);
425
+ background-image: linear-gradient(to bottom, #3cf, #6cc);
426
+ }
427
+ /*
428
+ Element: Inner range bar
429
+ Orientation: Vertical
430
+ Notes: IE6, 7 & 8
431
+ */
432
+ .oldie .fd-slider-vertical .fd-slider-range
433
+ {
434
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ff66cccc',endColorstr='#ff33ccff');
435
+ }
436
+ /*
437
+ Element: Drag handle
438
+ Orientation: Horizontal
439
+ State: Default.
440
+ Notes: The image sprite used for the handle is base64 encoded below. IE7
441
+ gets its own version within the .mht file, IE6 does not use an image
442
+ sprite and it is necessary to base64 encode individual animation frames
443
+ within the .mht file.
444
+ */
445
+ .fd-slider-handle
446
+ {
447
+ position:absolute;
448
+ display:block;
449
+ padding:0;
450
+ border:0 none;
451
+ margin:0;
452
+ z-index:3;
453
+ top:0;
454
+ left:0;
455
+ width:20px;
456
+ height:20px;
457
+ outline:0 none;
458
+ background-color:transparent;
459
+ background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABQCAYAAAAZQFV3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjFFRDg4NEVDNENDODExRTFCMTZDREIyQTZDMjlDNTQ2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjFFRDg4NEVENENDODExRTFCMTZDREIyQTZDMjlDNTQ2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MUVEODg0RUE0Q0M4MTFFMUIxNkNEQjJBNkMyOUM1NDYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MUVEODg0RUI0Q0M4MTFFMUIxNkNEQjJBNkMyOUM1NDYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz68iMNZAAAIQElEQVR42uxYW28b1xGe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);
460
+ background-position:0 0;
461
+ cursor:W-resize;
462
+ line-height:20px;
463
+ font-size:10px;
464
+ -moz-outline:0 none;
465
+ -webkit-touch-callout: none;
466
+ -webkit-user-select: none;
467
+ -khtml-user-select: none;
468
+ -moz-user-select: none;
469
+ -ms-user-select: none;
470
+ -o-user-select: none;
471
+ user-select: none;
472
+ }
473
+ /*
474
+ Element: Drag handle
475
+ Orientation: Horizontal
476
+ State: Default
477
+ Notes: IE6, 7 & 8 use a nasty expression in order to not draw focus
478
+ outline on drag handle.
479
+ */
480
+ .oldie .fd-slider-handle
481
+ {
482
+ /* IE6 & 7 - set the handle sprite as the background image */
483
+
484
+ /*
485
+ If using the .mht file then uncomment the following rule and edit the
486
+ filepath to match the absolute path to the fd-slider.mht file on your
487
+ server (replace "www.your-domain.com/the/path/to/")
488
+ */
489
+
490
+ /*
491
+
492
+ *background-image:url(mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!fullsprite);
493
+
494
+ */
495
+
496
+ /*
497
+ If not using the .mht file then uncomment the following rule and edit
498
+ the filepath to match the absolute path to the fd-slider-sprite.png
499
+ file on your server (replace "www.your-domain.com/the/path/to/")
500
+ */
501
+
502
+ *background-image:url(<%= asset_path 'fd-slider/fd-slider-sprite.png' %>);
503
+
504
+ /**********************************************************************/
505
+
506
+ /* IE6 - reset the background image sprite stipulated above. */
507
+ _background-image:none;
508
+
509
+ /*
510
+ IE6 - use the AlphaImageLoader to either load a base64 encoded image
511
+ from the .mht file or a normal png image from the server
512
+ */
513
+
514
+ /*
515
+ If using the .mht file then uncomment the following rule and edit the
516
+ filepath to match the absolute path to the fd-slider.mht file on your
517
+ server (replace "www.your-domain.com/the/path/to/")
518
+ */
519
+
520
+ /*
521
+
522
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!handlenormal');
523
+
524
+ */
525
+
526
+ /*
527
+ If not using the .mht file then uncomment the following rule and edit
528
+ the filepath to match the absolute path to the fd-handle-normal.png
529
+ file on your server (replace "www.your-domain.com/the/path/to/")
530
+ */
531
+
532
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='<%= asset_path 'fd-slider/fd-handle-normal.png' %>');
533
+
534
+ /* IE6, 7 & 8 */
535
+ outline:expression(hideFocus='true');
536
+ }
537
+ /*
538
+ Element: Drag handle
539
+ Orientation: Horizontal & Vertical
540
+ State: Focused
541
+ Notes: Attempts to remove the focus outline, remove the rule if it
542
+ offends your sensibilities.
543
+ */
544
+ .fd-slider-handle:focus
545
+ {
546
+ outline:0 none;
547
+ border:0 none;
548
+ -moz-user-focus:normal;
549
+ }
550
+ .fd-slider-handle:focus::-moz-focus-inner
551
+ {
552
+ border-color: transparent;
553
+ }
554
+ /*
555
+ Element: Drag handle
556
+ Orientation: Horizontal
557
+ State: Focused and Hovered and also while handle is animating into
558
+ position or being dragged.
559
+ Notes: I'm using the same image for focused, hover and active states
560
+ but you can, of course, go wild.
561
+ */
562
+ .fd-slider-focused .fd-slider-handle,
563
+ .fd-slider-hover .fd-slider-handle,
564
+ .fd-slider-active .fd-slider-handle
565
+ {
566
+ background-position:0 -20px;
567
+ }
568
+ /*
569
+ Element: Drag handle
570
+ Orientation: Horizontal
571
+ State: Focused and Hovered and also while handle is animating into
572
+ position or being dragged.
573
+ Notes: IE6 only.
574
+ */
575
+ .oldie .fd-slider-focused .fd-slider-handle,
576
+ .oldie .fd-slider-hover .fd-slider-handle,
577
+ .oldie .fd-slider-active .fd-slider-handle
578
+ {
579
+ /*
580
+ IE6 - use the AlphaImageLoader to either load a base64 encoded image
581
+ from the .mht file or a normal png image from the server
582
+ */
583
+
584
+ /*
585
+ If using the .mht file then uncomment the following rule and edit the
586
+ filepath to match the absolute path to the fd-slider.mht file on your
587
+ server (replace "www.your-domain.com/the/path/to/")
588
+ */
589
+
590
+ /*
591
+
592
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!handleglow');
593
+
594
+ */
595
+
596
+ /*
597
+ If not using the .mht file then uncomment the following rule and edit
598
+ the filepath to match the absolute path to the fd-handle-glow.png
599
+ file on your server (replace "www.your-domain.com/the/path/to/")
600
+ */
601
+
602
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='<%= asset_path 'fd-slider/fd-handle-glow.png' %>');
603
+ }
604
+ /*
605
+ Element: Drag handle
606
+ Orientation: Vertical
607
+ Notes: Change the cursor to the correct icon.
608
+ */
609
+ .fd-slider-vertical .fd-slider-handle
610
+ {
611
+ cursor:N-resize;
612
+ }
613
+ /*
614
+ Element: Drag handle
615
+ Orientation: Vertical
616
+ Notes: IE6, 7 & 8
617
+
618
+ .oldie .fd-slider-vertical .fd-slider-handle
619
+ {
620
+ }
621
+ */
622
+ /*
623
+ Element: Drag handle
624
+ Orientation: Vertical
625
+ State: Focused and Hovered and also while handle is animating into
626
+ position or being dragged.
627
+
628
+ .fd-slider-vertical .fd-slider-focused .fd-slider-handle,
629
+ .fd-slider-vertical .fd-slider-hover .fd-slider-handle,
630
+ .fd-slider-vertical .fd-slider-active .fd-slider-handle
631
+ {
632
+ }
633
+ */
634
+ /*
635
+ Element: Drag handle
636
+ Orientation: Vertical
637
+ State: Focused and Hovered and also while handle is animating into
638
+ position or being dragged.
639
+ Notes: IE6, 7 & 8
640
+
641
+ .oldie .fd-slider-vertical .fd-slider-focused .fd-slider-handle,
642
+ .oldie .fd-slider-vertical .fd-slider-hover .fd-slider-handle,
643
+ .oldie .fd-slider-vertical .fd-slider-active .fd-slider-handle
644
+ {
645
+ }
646
+ */
647
+ /*
648
+ Element: Drag handle
649
+ Orientation: Horizontal & Vertical
650
+ State: User has not yet used the slider to set a value
651
+ Notes: I screwed the positioning of the image sprite by 1px which is why
652
+ it's -59px and not -60px. Yeah - I suck at Photoshop.
653
+ */
654
+ .fd-slider-no-value .fd-slider-handle
655
+ {
656
+ background-position:0 -59px;
657
+ }
658
+ /*
659
+ Element: Drag handle
660
+ Orientation: Horizontal
661
+ State: User has not yet used the slider to set a value
662
+ Notes: IE6 only
663
+ */
664
+ .oldie .fd-slider-no-value .fd-slider-handle
665
+ {
666
+ /*
667
+ IE6 - use the AlphaImageLoader to either load a base64 encoded image
668
+ from the .mht file or a normal png image from the server
669
+ */
670
+
671
+ /*
672
+ If using the .mht file then uncomment the following rule and edit the
673
+ filepath to match the absolute path to the fd-slider.mht file on your
674
+ server (replace "www.your-domain.com/the/path/to/")
675
+ */
676
+
677
+ /*
678
+
679
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!handlenovalue');
680
+
681
+ */
682
+
683
+ /*
684
+ If not using the .mht file then uncomment the following rule and edit
685
+ the filepath to match the absolute path to the fd-handle-no-value.png
686
+ file on your server (replace "www.your-domain.com/the/path/to/")
687
+ */
688
+
689
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='<%= asset_path 'fd-slider/fd-handle-no-value.png' %>');
690
+ }
691
+ /*
692
+ Element: Drag handle
693
+ Orientation: Vertical
694
+ State: User has not yet used the slider to set a value
695
+ Notes: IE6, 7 & 8. Only required should you use a different image for
696
+ vertical sliders.
697
+
698
+ .oldie .fd-slider-vertical .fd-slider-no-value .fd-slider-handle
699
+ {
700
+ }
701
+ */
702
+ /*
703
+ Element: document.body
704
+ Orientation: Horizontal and Vertical
705
+ Notes: Class given to body to change cursor style when dragging. It also
706
+ attempts to stop text selection while dragging.
707
+ */
708
+ body.fd-slider-drag-horizontal,
709
+ body.fd-slider-drag-horizontal *,
710
+ body.fd-slider-drag-vertical,
711
+ body.fd-slider-drag-vertical *
712
+ {
713
+ cursor:N-resize !important;
714
+ -webkit-user-select: none;
715
+ -khtml-user-select: none;
716
+ -moz-user-select: none;
717
+ -ms-user-select: none;
718
+ -o-user-select: none;
719
+ user-select: none;
720
+ }
721
+ /*
722
+ Element: document.body
723
+ Orientation: Horizontal
724
+ Notes: Class given to body to change cursor style when dragging
725
+ */
726
+ body.fd-slider-drag-horizontal,
727
+ body.fd-slider-drag-horizontal *
728
+ {
729
+ cursor:W-resize !important;
730
+ }
731
+ /*
732
+ Element: Inner wrapper
733
+ Orientation: Horizontal & Vertical
734
+ State: disabled
735
+ Notes: Class given to slider when disabled
736
+ */
737
+ .fd-slider-disabled
738
+ {
739
+ opacity:.8;
740
+ cursor:default;
741
+ }
742
+ /*
743
+ Element: Drag handle
744
+ Orientation: Horizontal
745
+ State: disabled
746
+ Notes: Class given to slider when disabled
747
+ */
748
+ .fd-slider-disabled .fd-slider-handle
749
+ {
750
+ cursor:default !important;
751
+ background-position:0 -40px;
752
+ opacity:1;
753
+ }
754
+ /*
755
+ Element: Drag handle
756
+ Orientation: Horizontal
757
+ State: disabled
758
+ Notes: IE6 only
759
+ */
760
+ .oldie .fd-slider-disabled .fd-slider-handle
761
+ {
762
+ /*
763
+ IE6 - use the AlphaImageLoader to either load a base64 encoded image
764
+ from the .mht file or a normal png image from the server
765
+ */
766
+
767
+ /*
768
+ If using the .mht file then uncomment the following rule and edit the
769
+ filepath to match the absolute path to the fd-slider.mht file on your
770
+ server (replace "www.your-domain.com/the/path/to/")
771
+ */
772
+
773
+ /*
774
+
775
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='mhtml:http://www.your-domain.com/the/path/to/fd-slider.mht!handledisabled');
776
+
777
+ */
778
+
779
+ /*
780
+ If not using the .mht file then uncomment the following rule and edit
781
+ the filepath to match the absolute path to the fd-handle-disabled.png
782
+ file on your server (replace "www.your-domain.com/the/path/to/")
783
+ */
784
+
785
+ _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='<%= asset_path 'fd-slider/fd-handle-disabled.png' %>');
786
+ }
787
+ /*
788
+ Element: Drag handle
789
+ Orientation: Vertical
790
+ State: disabled
791
+
792
+ .fd-slider-vertical .fd-slider-disabled .fd-slider-handle
793
+ {
794
+ }
795
+ .oldie .fd-slider-vertical .fd-slider-disabled .fd-slider-handle
796
+ {
797
+ }
798
+ */
799
+ /*
800
+ Element: Inner track bar
801
+ Orientation: Horizontal
802
+ State: disabled
803
+ */
804
+ .fd-slider-disabled .fd-slider-bar
805
+ {
806
+ cursor:auto !important;
807
+ border:1px solid #888;
808
+ border-bottom:1px solid #999;
809
+ border-right:1px solid #999;
810
+ border:1px solid rgba(136,136,136,.8);
811
+ border-bottom:1px solid rgba(153,153,153,.8);
812
+ border-right:1px solid rgba(153,153,153,.8);
813
+ background-color:#555;
814
+ background-image: -webkit-gradient(linear, left top, right top, from(#666), to(#333));
815
+ background-image: -webkit-linear-gradient(left, #666, #333);
816
+ background-image: -moz-linear-gradient(left, #666, #333);
817
+ background-image: -ms-linear-gradient(left, #666, #333);
818
+ background-image: -o-linear-gradient(left, #666, #333);
819
+ background-image: linear-gradient(to right, #666, #333);
820
+ }
821
+ /*
822
+ Element: Inner track bar
823
+ Orientation: Vertical
824
+ State: disabled
825
+ */
826
+ .fd-slider-vertical .fd-slider-disabled .fd-slider-bar
827
+ {
828
+ background-image: -webkit-gradient(linear, left top, right bottom, from(#333), to(#666));
829
+ background-image: -webkit-linear-gradient(top, #333, #666);
830
+ background-image: -moz-linear-gradient(top, #333, #666);
831
+ background-image: -ms-linear-gradient(top, #333, #666);
832
+ background-image: -o-linear-gradient(top, #333, #666);
833
+ background-image: linear-gradient(to bottom, #333, #666);
834
+ }
835
+ /*
836
+ Element: Inner track bar
837
+ Orientation: Horizontal
838
+ State: disabled
839
+ Notes: IE6, 7 & 8
840
+ */
841
+ .oldie .fd-slider-disabled .fd-slider-bar
842
+ {
843
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ff666666',endColorstr='#ff333333');
844
+ }
845
+ /*
846
+ Element: Inner track bar
847
+ Orientation: Vertical
848
+ State: disabled
849
+ Notes: IE6, 7 & 8
850
+ */
851
+ .oldie .fd-slider-vertical .fd-slider-disabled .fd-slider-bar
852
+ {
853
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ff666666',endColorstr='#ff333333');
854
+ }
855
+ /*
856
+ Element: Range bar
857
+ Orientation: Horizontal
858
+ State: disabled
859
+ */
860
+ .fd-slider-disabled .fd-slider-range
861
+ {
862
+ cursor:auto !important;
863
+ background-color:#222;
864
+ background-image: -webkit-gradient(linear, left top, right top, from(#222), to(#000));
865
+ background-image: -webkit-linear-gradient(left, #222, #000);
866
+ background-image: -moz-linear-gradient(left, #222, #000);
867
+ background-image: -ms-linear-gradient(left, #222, #000);
868
+ background-image: -o-linear-gradient(left, #222, #000);
869
+ background-image: linear-gradient(to right, #222, #000);
870
+ }
871
+ /*
872
+ Element: Range bar
873
+ Orientation: Horizontal
874
+ State: disabled
875
+ Notes: IE6, 7 & 8
876
+ */
877
+ .oldie .fd-slider-disabled .fd-slider-range
878
+ {
879
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ff222222',endColorstr='#ff000000');
880
+ }
881
+ /*
882
+ Element: Range bar
883
+ Orientation: Vertical
884
+ State: disabled
885
+ */
886
+ .fd-slider-vertical .fd-slider-disabled .fd-slider-range
887
+ {
888
+ background-image: -webkit-gradient(linear, left top, right bottom, from(#000), to(#222));
889
+ background-image: -webkit-linear-gradient(top, #000, #222);
890
+ background-image: -moz-linear-gradient(top, #000, #222);
891
+ background-image: -ms-linear-gradient(top, #000, #222);
892
+ background-image: -o-linear-gradient(top, #000, #222);
893
+ background-image: linear-gradient(to bottom, #000, #222);
894
+ }
895
+ /*
896
+ Element: Range bar
897
+ Orientation: Vertical
898
+ State: disabled
899
+ Notes: IE6, 7 & 8
900
+ */
901
+ .oldie .fd-slider-vertical .fd-slider-disabled .fd-slider-range
902
+ {
903
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ff222222',endColorstr='#ff000000');
904
+ }
905
+ /*
906
+ The various prefixed keyframe rules for the glow effect used whenever
907
+ the slider gains keyboard focus
908
+ */
909
+ @-webkit-keyframes fd-pulse {
910
+ 0% {
911
+ box-shadow:0 0 3px rgba(100, 130, 170, 0.55);
912
+ }
913
+ 20% {
914
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
915
+ }
916
+ 40% {
917
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
918
+ }
919
+ 60% {
920
+ box-shadow:0 0 6px rgba(10, 130, 170, 0.7);
921
+ }
922
+ 80% {
923
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
924
+ }
925
+ 100% {
926
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
927
+ }
928
+ }
929
+ @-moz-keyframes fd-pulse {
930
+ 0% {
931
+ box-shadow:0 0 3px rgba(100, 130, 170, 0.55);
932
+ }
933
+ 20% {
934
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
935
+ }
936
+ 40% {
937
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
938
+ }
939
+ 60% {
940
+ box-shadow:0 0 6px rgba(10, 130, 170, 0.7);
941
+ }
942
+ 80% {
943
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
944
+ }
945
+ 100% {
946
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
947
+ }
948
+ }
949
+ @-ms-keyframes fd-pulse {
950
+ 0% {
951
+ box-shadow:0 0 3px rgba(100, 130, 170, 0.55);
952
+ }
953
+ 20% {
954
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
955
+ }
956
+ 40% {
957
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
958
+ }
959
+ 60% {
960
+ box-shadow:0 0 6px rgba(10, 130, 170, 0.7);
961
+ }
962
+ 80% {
963
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
964
+ }
965
+ 100% {
966
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
967
+ }
968
+ }
969
+ @-o-keyframes fd-pulse {
970
+ 0% {
971
+ box-shadow:0 0 3px rgba(100, 130, 170, 0.55);
972
+ }
973
+ 20% {
974
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
975
+ }
976
+ 40% {
977
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
978
+ }
979
+ 60% {
980
+ box-shadow:0 0 6px rgba(10, 130, 170, 0.7);
981
+ }
982
+ 80% {
983
+ box-shadow:0 0 5px rgba(40, 130, 170, 0.65);
984
+ }
985
+ 100% {
986
+ box-shadow:0 0 4px rgba(70, 130, 170, 0.6);
987
+ }
988
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fd-slider-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -40,6 +40,14 @@ files:
40
40
  - lib/fd-slider-rails/version.rb
41
41
  - lib/fd-slider-rails.rb
42
42
  - lib/tasks/fd-slider-rails_tasks.rake
43
+ - vendor/assets/images/blank.gif
44
+ - vendor/assets/images/fd-slider/fd-handle-disabled.png
45
+ - vendor/assets/images/fd-slider/fd-handle-glow.png
46
+ - vendor/assets/images/fd-slider/fd-handle-no-value.png
47
+ - vendor/assets/images/fd-slider/fd-handle-normal.png
48
+ - vendor/assets/images/fd-slider/fd-slider-sprite.png
49
+ - vendor/assets/javascripts/fd-slider.min.js
50
+ - vendor/assets/stylesheets/fd-slider.css.erb
43
51
  - MIT-LICENSE
44
52
  - Rakefile
45
53
  - README.rdoc
@@ -57,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
65
  version: '0'
58
66
  segments:
59
67
  - 0
60
- hash: -143615384079406308
68
+ hash: -2490917986567447189
61
69
  required_rubygems_version: !ruby/object:Gem::Requirement
62
70
  none: false
63
71
  requirements:
@@ -66,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
74
  version: '0'
67
75
  segments:
68
76
  - 0
69
- hash: -143615384079406308
77
+ hash: -2490917986567447189
70
78
  requirements: []
71
79
  rubyforge_project:
72
80
  rubygems_version: 1.8.21