FINAL suepr merge step : added all modules to this super repos
This commit is contained in:
368
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.js
Normal file
368
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.js
Normal file
File diff suppressed because one or more lines are too long
592
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.less
Normal file
592
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.less
Normal file
@@ -0,0 +1,592 @@
|
||||
/*
|
||||
* www.g-u-i.net
|
||||
*/
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== TYPOGRAHIE ======================================================================================================
|
||||
|
||||
.8(){font-size:8px;}
|
||||
.9(){font-size:9px;}
|
||||
.10(){font-size:10px;}
|
||||
.11(){font-size:10px;}
|
||||
.12(){font-size:12px;}
|
||||
.14(){font-size:14px;}
|
||||
.16(){font-size:16px;}
|
||||
.18(){font-size:18px;}
|
||||
.20(){font-size:20px;}
|
||||
.24(){font-size:24px;}
|
||||
.28(){font-size:24px;}
|
||||
.30(){font-size:30px;}
|
||||
.36(){font-size:36px;}
|
||||
.48(){font-size:48px;}
|
||||
.60(){font-size:60px;}
|
||||
.72(){font-size:72px;}
|
||||
|
||||
.regular(){font-weight:normal;}
|
||||
.bold(){font-weight:bold;}
|
||||
.100(){font-weight:100;}
|
||||
.200(){font-weight:200;}
|
||||
.300(){font-weight:300;}
|
||||
.400(){font-weight:400;}
|
||||
.500(){font-weight:500;}
|
||||
.600(){font-weight:600;}
|
||||
.700(){font-weight:700;}
|
||||
.800(){font-weight:800;}
|
||||
.900(){font-weight:900;}
|
||||
|
||||
.upper(){text-transform: uppercase;}
|
||||
.italic(){font-style:italic;}
|
||||
.normal(){font-style: normal;}
|
||||
|
||||
.hyphens(@value: auto)
|
||||
{
|
||||
-webkit-hyphens:@value;
|
||||
-moz-hyphens:@value;
|
||||
-ms-hyphens:@value;
|
||||
-o-hyphens:@value;
|
||||
hyphens:@value;
|
||||
}
|
||||
.font-size(@value: 1em,@lineheight:1.3em)
|
||||
{
|
||||
font-size:@value;
|
||||
line-height:@lineheight;
|
||||
}
|
||||
|
||||
@green:#17942A;
|
||||
@red:#E60000;
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== SHORTCUTS =======================================================================================================
|
||||
|
||||
// padding
|
||||
.p(@p){ padding:@arguments; }
|
||||
.p(@v, @h){ padding:@arguments; }
|
||||
.p(@t, @l, @b, @l){ padding:@arguments; }
|
||||
|
||||
.pt(@p){ padding-top:@p; }
|
||||
.pr(@p){ padding-right:@p; }
|
||||
.pb(@p){ padding-bottom:@p; }
|
||||
.pl(@p){ padding-left:@p; }
|
||||
|
||||
// margin
|
||||
.m(@p){ margin:@arguments; }
|
||||
.m(@v, @h){ margin:@arguments; }
|
||||
.m(@t, @l, @b, @l){ margin:@arguments; }
|
||||
|
||||
.mt(@m){ margin-top:@m; }
|
||||
.mr(@m){ margin-right:@m; }
|
||||
.mb(@m){ margin-bottom:@m; }
|
||||
.ml(@m){ margin-left:@m; }
|
||||
|
||||
.0(){ margin:0; padding:0; }
|
||||
|
||||
// border
|
||||
.b(@b){ border: @b; }
|
||||
.b(@size, @color){ border: @size solid @color; }
|
||||
|
||||
.bt(@b){ border-top: @b;}
|
||||
.bt(@size, @color){border-top: @size solid @color;}
|
||||
|
||||
.br(@b){ border-right: @b;}
|
||||
.br(@size, @color){border-right: @size solid @color;}
|
||||
|
||||
.bb(@b){ border-bottom: @b;}
|
||||
.bb(@size, @color){border-bottom: @size solid @color;}
|
||||
|
||||
.bl(@b){ border-left: @b;}
|
||||
.bl(@size, @color){border-left: @size solid @color;}
|
||||
|
||||
.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE)
|
||||
{
|
||||
border-top : solid 1px @top-color;
|
||||
border-right : solid 1px @right-color;
|
||||
border-bottom: solid 1px @bottom-color;
|
||||
border-left : solid 1px @left-color;
|
||||
}
|
||||
|
||||
// Background
|
||||
.bg(@color, @url, @repeat, @scrollfixed, @pos){background: @arguments;}
|
||||
.bgc(@color){background-color: @arguments;}
|
||||
.bkgd(@params){background: @arguments;}
|
||||
.bkgdc(@color){.bgc(@arguments);}
|
||||
|
||||
.bgca(@r, @g, @b, @a){
|
||||
background-color: rgb(@r, @g, @b); // ie8
|
||||
background-color: rgba(@r, @g, @b, @a);
|
||||
*background-color: rgb(@r, @g, @b); // ie7
|
||||
};
|
||||
|
||||
// Selection
|
||||
.selection(@bgcolor,@color)
|
||||
{
|
||||
&::selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
&::-moz-selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
&::-webkit-selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
}
|
||||
|
||||
// Colors
|
||||
.color(@value)
|
||||
{
|
||||
&,
|
||||
& *{color:@value;}
|
||||
}
|
||||
|
||||
// Opacity
|
||||
.opacity(@opacity: 0.5)
|
||||
{
|
||||
-webkit-opacity: @opacity;
|
||||
-khtml-opacity: @opacity;
|
||||
-moz-opacity: @opacity;
|
||||
opacity: @opacity;
|
||||
}
|
||||
|
||||
// size
|
||||
.size(@height, @width) {
|
||||
width: @width;
|
||||
height: @height;
|
||||
}
|
||||
.square(@size) {
|
||||
.size(@size, @size);
|
||||
}
|
||||
|
||||
// center
|
||||
.center-block() {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== DISPLAY UTILS ===================================================================================================
|
||||
|
||||
// Inline blocks
|
||||
.inlineblock(@align:top)
|
||||
{
|
||||
display:moz-inline-stack;
|
||||
display:inline-block;
|
||||
vertical-align:@align;
|
||||
zoom:1;
|
||||
*display:inline;
|
||||
.ie7 &, .ie8 &{display:block;float:left;}
|
||||
}
|
||||
|
||||
.db(){display:block;}
|
||||
.dbn(){display:none;}
|
||||
.dib(){.inlineblock;}
|
||||
.dib(@align){.inlineblock(@align);}
|
||||
|
||||
.float(@align:left){
|
||||
.db; float:@align;
|
||||
}
|
||||
|
||||
.abs(@value) { position:absolute; top:@value; left:@value; bottom:@value; right:@value; }
|
||||
.abs(@top, @left) { position:absolute; top:@top; left:@left; }
|
||||
.abs(@top, @right, @bottom, @left) { position:absolute; top:@top; left:@left; bottom:@bottom; right:@right; };
|
||||
|
||||
.fix(@value) { position:fixed; top:@value; left:@value; bottom:@value; right:@value; }
|
||||
.fix(@top, @left) { position:fixed; top:@top; left:@left; }
|
||||
.fix(@top, @right, @bottom, @left) { position:fixed; top:@top; left:@left; bottom:@bottom; right:@right; };
|
||||
|
||||
// Columns system
|
||||
@g:0;
|
||||
.g() { width:@g; }
|
||||
.col(@col,@coltotal:@n,@gutter:@g) {
|
||||
width: @col * ( 100% - ((@coltotal - 1) * @gutter) ) / @coltotal + ((@col - 1) * @gutter);
|
||||
}
|
||||
.inside-left(@col,@coltotal:@n,@gutter:@g) {
|
||||
padding-left: @col * ( 100% - ((@coltotal - 1) * @gutter) ) / @coltotal + (@col * @gutter);
|
||||
}
|
||||
.inside-right(@col,@coltotal:@n,@gutter:@g) {
|
||||
padding-right: @col * ( 100% - ((@coltotal - 1) * @gutter) ) / @coltotal + (@col * @gutter);
|
||||
}
|
||||
|
||||
|
||||
// Vertical alignement
|
||||
//
|
||||
// ___ .align-child()
|
||||
// |
|
||||
// | Permet l’alignement vertical d’un objet par rapport à son premier parent (dans son conteneur direct).
|
||||
// |
|
||||
// | 1 param : @vertical-align
|
||||
//
|
||||
.align-child(@align:middle){
|
||||
&:before { content: ""; .dib(middle); overflow: hidden; visibility: hidden; width: 0; height: 100%; }
|
||||
& > * { .dib(@align); }
|
||||
}
|
||||
|
||||
.clear-after(){
|
||||
&:after{clear:both;content:'';display:block;height:0px;overflow:hidden;visibility:hidden;width:0px;}
|
||||
}
|
||||
|
||||
// For clearing floats like a boss h5bp.com/q
|
||||
.clearix() {
|
||||
*zoom: 1;
|
||||
&:before,
|
||||
&:after {
|
||||
display: table;
|
||||
content: "";
|
||||
// Fixes Opera/contenteditable bug:
|
||||
// http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
|
||||
line-height: 0;
|
||||
}
|
||||
&:after {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== CSS3 ============================================================================================================
|
||||
|
||||
// Gradients
|
||||
.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF)
|
||||
{
|
||||
background: @color;
|
||||
background: -webkit-gradient(linear,
|
||||
left bottom,
|
||||
left top,
|
||||
color-stop(0, @start),
|
||||
color-stop(1, @stop));
|
||||
background: -ms-linear-gradient(bottom,
|
||||
@start,
|
||||
@stop);
|
||||
background: -moz-linear-gradient(center bottom,
|
||||
@start 0%,
|
||||
@stop 100%);
|
||||
}
|
||||
.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255)
|
||||
{
|
||||
background: @color;
|
||||
background: -webkit-gradient(linear,
|
||||
left bottom,
|
||||
left top,
|
||||
color-stop(0, rgb(@start,@start,@start)),
|
||||
color-stop(1, rgb(@stop,@stop,@stop)));
|
||||
background: -ms-linear-gradient(bottom,
|
||||
rgb(@start,@start,@start) 0%,
|
||||
rgb(@start,@start,@start) 100%);
|
||||
background: -moz-linear-gradient(center bottom,
|
||||
rgb(@start,@start,@start) 0%,
|
||||
rgb(@stop,@stop,@stop) 100%);
|
||||
}
|
||||
|
||||
// Shadows
|
||||
//
|
||||
// ___ .box-shadow()
|
||||
// |
|
||||
// | Ombré extérieur.
|
||||
// |
|
||||
// | 1 param : @blur
|
||||
// | 2+ params : @horizontal / @vertical / @blur / @color: #000 / @spread: 0px
|
||||
//
|
||||
// ___ .inset-shadow()
|
||||
// |
|
||||
// | Ombré intérieur.
|
||||
// |
|
||||
// | 1 param : @blur
|
||||
// | 2+ params : @horizontal / @vertical / @blur / @color: #000 / @spread: 0px
|
||||
//
|
||||
.box-shadow(@blur: 9px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000')";
|
||||
-webkit-box-shadow: 0 0 @blur #000;
|
||||
-moz-box-shadow: 0 0 @blur #000;
|
||||
-ms-box-shadow: 0 0 @blur #000;
|
||||
box-shadow: 0 0 @blur #000;
|
||||
}
|
||||
.box-shadow(@x, @y, @blur: 9px, @color: #000, @spread: 0px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=@x, OffY=@y, Color=~'@{color}');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=@{x}, OffY=@{y}, Color='@{color}')";
|
||||
-webkit-box-shadow: @x @y @blur @spread @color;
|
||||
-moz-box-shadow: @x @y @blur @spread @color;
|
||||
-ms-box-shadow: @x @y @blur @spread @color;
|
||||
box-shadow: @x @y @blur @spread @color;
|
||||
}
|
||||
.inset-shadow(@blur: 9px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000')";
|
||||
-webkit-box-shadow: 0 0 @blur #000 inset;
|
||||
-moz-box-shadow: 0 0 @blur #000 inset;
|
||||
-ms-box-shadow: 0 0 @blur #000 inset;
|
||||
box-shadow: 0 0 @blur #000 inset;
|
||||
}
|
||||
.inset-shadow(@x, @y, @blur: 9px, @color: #000, @spread: 0px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=@x, OffY=@y, Color=~'@{color}');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='@{color}')";
|
||||
-webkit-box-shadow: @x @y @blur @spread @color inset;
|
||||
-moz-box-shadow: @x @y @blur @spread @color inset;
|
||||
-ms-box-shadow: @x @y @blur @spread @color inset;
|
||||
box-shadow: @x @y @blur @spread @color inset;
|
||||
}
|
||||
|
||||
.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1)
|
||||
{
|
||||
-webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
|
||||
-moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
|
||||
box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
|
||||
}
|
||||
|
||||
// Border radius
|
||||
.rounded(@radius: 2px)
|
||||
{
|
||||
-webkit-border-radius: @radius;
|
||||
-moz-border-radius: @radius;
|
||||
border-radius: @radius;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
.border-radius(@topleft: 0, @topright: 0, @bottomright: 0, @bottomleft: 0)
|
||||
{
|
||||
-webkit-border-radius:@arguments;
|
||||
-moz-border-radius:@arguments;
|
||||
border-radius:@arguments;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
// transitions
|
||||
.transition-simply-prefix(@string) {
|
||||
-webkit-transition: @string;
|
||||
-moz-transition: @string;
|
||||
-o-transition: @string;
|
||||
transition: @string;
|
||||
}
|
||||
|
||||
//
|
||||
// ___ .transition()
|
||||
// |
|
||||
// | 1 param : @property
|
||||
// | 2 params : @property / @duration
|
||||
// | 3+ params : @property / @duration / @transitiondelay:0s , @timingfunction:ease-out
|
||||
//
|
||||
// ___ .transitions()
|
||||
// |
|
||||
// | Permet de fixer des paramètres spécifique par propriétés, exemple:
|
||||
// |
|
||||
// | .transitions(
|
||||
// | 'height , padding , margin , box-shadow',
|
||||
// | '.5s , .2s , .2s , .2s',
|
||||
// | '0s , 0s , 0s , .3s',
|
||||
// | 'linear , ease-out , linear , ease-out'
|
||||
// | );
|
||||
//
|
||||
.transition(@property: all)
|
||||
{
|
||||
-webkit-transition: @property;
|
||||
-moz-transition: @property;
|
||||
-o-transition: @property;
|
||||
transition: @property;
|
||||
}
|
||||
.transition(@property, @duration)
|
||||
{
|
||||
-webkit-transition: @arguments;
|
||||
-moz-transition: @arguments;
|
||||
-o-transition: @arguments;
|
||||
transition: @arguments;
|
||||
}
|
||||
.transition(@property, @duration, @transitiondelay, @timingfunction:ease-out)
|
||||
{
|
||||
-webkit-transition: @arguments;
|
||||
-moz-transition: @arguments;
|
||||
-o-transition: @arguments;
|
||||
transition: @arguments;
|
||||
}
|
||||
.transitions(@property: all, @duration:0s, @transitiondelay:0s, @timingfunction:ease-out)
|
||||
{
|
||||
-webkit-transition-property :~'@{property}';
|
||||
-webkit-transition-duration :~'@{duration}';
|
||||
-webkit-transition-delay :~'@{transitiondelay}';
|
||||
-webkit-transition-timing-function:~'@{timingfunction}';
|
||||
-moz-transition-property :~'@{property}';
|
||||
-moz-transition-duration :~'@{duration}';
|
||||
-moz-transition-delay :~'@{transitiondelay}';
|
||||
-moz-transition-timing-function:~'@{timingfunction}';
|
||||
-o-transition-property :~'@{property}';
|
||||
-o-transition-duration :~'@{duration}';
|
||||
-o-transition-delay :~'@{transitiondelay}';
|
||||
-o-transition-timing-function:~'@{timingfunction}';
|
||||
transition-property :~'@{property}';
|
||||
transition-duration :~'@{duration}';
|
||||
transition-delay :~'@{transitiondelay}';
|
||||
transition-timing-function:~'@{timingfunction}';
|
||||
}
|
||||
|
||||
.transitions-duration(@duration: 0s)
|
||||
{
|
||||
-webkit-transition-duration: ~'@{duration}';
|
||||
-moz-transition-duration: ~'@{duration}';
|
||||
-o-transition-duration: ~'@{duration}';
|
||||
transition-duration: ~'@{duration}';
|
||||
}
|
||||
|
||||
.transition-duration(@duration: 0.2s)
|
||||
{
|
||||
-webkit-transition-duration: @duration;
|
||||
-moz-transition-duration: @duration;
|
||||
-o-transition-duration: @duration;
|
||||
transition-duration: @duration;
|
||||
}
|
||||
|
||||
.transitions-delay(@delay: 0s)
|
||||
{
|
||||
-webkit-transition-delay: ~'@{delay}';
|
||||
-moz-transition-delay: ~'@{delay}';
|
||||
-o-transition-delay: ~'@{delay}';
|
||||
transition-delay: ~'@{delay}';
|
||||
}
|
||||
|
||||
// Rotate
|
||||
//
|
||||
// ___ .rotation()
|
||||
// |
|
||||
// | 1 param : @degree
|
||||
//
|
||||
// ___ .rotate()
|
||||
// |
|
||||
// | Tentative de compatibilté étendue (fonctionne uniquement pour 0, 90, 180 ou 270 degrés).
|
||||
// |
|
||||
// | 1 param : @degree
|
||||
// | 3 params : @degree / @originX / @originY
|
||||
//
|
||||
.rotation(@deg:5deg)
|
||||
{
|
||||
-webkit-transform: rotate(@deg);
|
||||
-moz-transform: rotate(@deg);
|
||||
transform: rotate(@deg);
|
||||
}
|
||||
.rotate(@value, @originX:0%, @originY:0%, @unit:'deg')
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation = (360 / @value) + 1); //0, 1, 2, or 3 rotate 0, 90, 180 or 270
|
||||
-webkit-transform: rotate(~"@{value}@{unit}"); // ~"@{value}@{unit}" rather than @value@unit remove the spaces between value and unit.
|
||||
-moz-transform: rotate(~"@{value}@{unit}");
|
||||
-ms-transform: rotate(~"@{value}@{unit}");
|
||||
-o-transform: rotate(~"@{value}@{unit}");
|
||||
transform: rotate(~"@{value}@{unit}");
|
||||
-webkit-transform-origin:@originX @originY;
|
||||
-moz-transform-origin:@originX @originY;
|
||||
-ms-transform-origin:@originX @originY;
|
||||
-o-transform-origin:@originX @originY;
|
||||
transform-origin:@originX @originY;
|
||||
}
|
||||
|
||||
// Scale
|
||||
.scale(@ratio:1.5)
|
||||
{
|
||||
-webkit-transform:scale(@ratio);
|
||||
-moz-transform:scale(@ratio);
|
||||
transform:scale(@ratio);
|
||||
}
|
||||
|
||||
// Translate
|
||||
.translate(@x:0, @y:0)
|
||||
{
|
||||
-webkit-transform: translate(@x, @y);
|
||||
-moz-transform: translate(@x, @y);
|
||||
-ms-transform: translate(@x, @y);
|
||||
-o-transform: translate(@x, @y);
|
||||
transform: translate(@x, @y);
|
||||
}
|
||||
|
||||
// Columns
|
||||
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px)
|
||||
{
|
||||
-webkit-column-width : @colwidth;
|
||||
-webkit-column-count : @colcount;
|
||||
-webkit-column-gap : @colgap;
|
||||
-webkit-column-rule-color: @columnRuleColor;
|
||||
-webkit-column-rule-style: @columnRuleStyle;
|
||||
-webkit-column-rule-width: @columnRuleWidth;
|
||||
-moz-column-width : @colwidth;
|
||||
-moz-column-count : @colcount;
|
||||
-moz-column-gap : @colgap;
|
||||
-moz-column-rule-color: @columnRuleColor;
|
||||
-moz-column-rule-style: @columnRuleStyle;
|
||||
-moz-column-rule-width: @columnRuleWidth;
|
||||
column-width : @colwidth;
|
||||
column-count : @colcount;
|
||||
column-gap : @colgap;
|
||||
column-rule-color: @columnRuleColor;
|
||||
column-rule-style: @columnRuleStyle;
|
||||
column-rule-width: @columnRuleWidth;
|
||||
}
|
||||
|
||||
.edit-link(@bc:#CCFF2F,@c:#333)
|
||||
{
|
||||
.dib;
|
||||
background-color:@bc;
|
||||
border:1px solid;
|
||||
border-color:darken(desaturate(@bc, 35%),15%) darken(desaturate(@bc, 35%),15%) darken(desaturate(@bc, 35%),20%);
|
||||
.rounded;
|
||||
color: @c;
|
||||
cursor: pointer;
|
||||
.font-size(.8em,1em);
|
||||
font-weight: normal;
|
||||
padding: 0.25em 0.75em;
|
||||
margin-top:.5em;
|
||||
|
||||
&:hover{background-color:darken(@bc, 20%);}
|
||||
&:active{
|
||||
text-shadow: 0 1px 0 lighten(@bc,5%);
|
||||
background-color:darken(@bc, 20%);
|
||||
//.inset-shadow(0,0,2px,darken(@bc,60));
|
||||
}
|
||||
}
|
||||
|
||||
.loader(@fc:#000,@bc:#ccc,@h:8px,@radius:0px)
|
||||
{
|
||||
// Safari/chrome
|
||||
&::-webkit-progress-bar{background-color:@bc;.rounded(@radius);}
|
||||
&::-webkit-progress-value{background-color:@fc;.rounded(@radius);}
|
||||
// Firefox
|
||||
&{background-color:@bc;.rounded(@radius);height:@h;}
|
||||
&::-moz-progress-bar{background-color:@fc;.rounded(@radius);}
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== RETINA ==========================================================================================================
|
||||
|
||||
// retina.less
|
||||
// A helper mixin for applying high-resolution background images (http://www.retinajs.com)
|
||||
.at2x(@path, @w: auto, @h: auto) {
|
||||
background-image: url(@path);
|
||||
@at2x_path: ~`"@{path}".split('.').slice(0, "@{path}".split('.').length - 1).join(".") + "@2x" + "." + "@{path}".split('.')["@{path}".split('.').length - 1]`;
|
||||
|
||||
@media all and (-webkit-min-device-pixel-ratio : 1.5) {
|
||||
background-image: url(@at2x_path);
|
||||
background-size: @w @h;
|
||||
}
|
||||
}
|
636
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.less.orig
Normal file
636
sites/all/themes/gui/materiobasetheme/js/gui_ck_fw/gui.less.orig
Normal file
@@ -0,0 +1,636 @@
|
||||
<<<<<<< HEAD
|
||||
/**
|
||||
* www.g-u-i.net
|
||||
*/
|
||||
|
||||
/** font */
|
||||
|
||||
.8{font-size:8px;}
|
||||
.9{font-size:9px;}
|
||||
.10{font-size:10px;}
|
||||
.11{font-size:10px;}
|
||||
.12{font-size:12px;}
|
||||
.14{font-size:14px;}
|
||||
.16{font-size:16px;}
|
||||
.18{font-size:18px;}
|
||||
.20{font-size:18px;}
|
||||
.24{font-size:24px;}
|
||||
.28{font-size:28px;}
|
||||
.30{font-size:30px;}
|
||||
.36{font-size:36px;}
|
||||
.48{font-size:48px;}
|
||||
.60{font-size:60px;}
|
||||
.72{font-size:72px;}
|
||||
|
||||
.regular{font-weight:normal;}
|
||||
.bold{font-weight:bold;}
|
||||
.100{font-weight:100;}
|
||||
.300{font-weight:300;}
|
||||
.500{font-weight:500;}
|
||||
.700{font-weight:700;}
|
||||
.900{font-weight:900;}
|
||||
|
||||
.upper{text-transform: uppercase;}
|
||||
.italic{font-style:italic;}
|
||||
.normal{font-style: normal;}
|
||||
|
||||
|
||||
/** shortcuts */
|
||||
=======
|
||||
/*
|
||||
* www.g-u-i.net
|
||||
*/
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== TYPOGRAHIE ======================================================================================================
|
||||
|
||||
.8(){font-size:8px;}
|
||||
.9(){font-size:9px;}
|
||||
.10(){font-size:10px;}
|
||||
.11(){font-size:10px;}
|
||||
.12(){font-size:12px;}
|
||||
.14(){font-size:14px;}
|
||||
.16(){font-size:16px;}
|
||||
.18(){font-size:18px;}
|
||||
.24(){font-size:24px;}
|
||||
.30(){font-size:30px;}
|
||||
.36(){font-size:36px;}
|
||||
.48(){font-size:48px;}
|
||||
.60(){font-size:60px;}
|
||||
.72(){font-size:72px;}
|
||||
|
||||
.regular(){font-weight:normal;}
|
||||
.bold(){font-weight:bold;}
|
||||
.100(){font-weight:100;}
|
||||
.300(){font-weight:300;}
|
||||
.500(){font-weight:500;}
|
||||
.700(){font-weight:700;}
|
||||
.900(){font-weight:900;}
|
||||
|
||||
.upper(){text-transform: uppercase;}
|
||||
.italic(){font-style:italic;}
|
||||
.normal(){font-style: normal;}
|
||||
|
||||
.hyphens(@value: auto)
|
||||
{
|
||||
-webkit-hyphens:@value;
|
||||
-moz-hyphens:@value;
|
||||
-ms-hyphens:@value;
|
||||
-o-hyphens:@value;
|
||||
hyphens:@value;
|
||||
}
|
||||
.font-size(@value: 1em,@lineheight:1.3em)
|
||||
{
|
||||
font-size:@value;
|
||||
line-height:@lineheight;
|
||||
}
|
||||
|
||||
@green:#17942A;
|
||||
@red:#E60000;
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== SHORTCUTS =======================================================================================================
|
||||
>>>>>>> bitbucket/master
|
||||
|
||||
// padding
|
||||
.p(@p){ padding:@arguments; }
|
||||
.p(@v, @h){ padding:@arguments; }
|
||||
.p(@t, @l, @b, @l){ padding:@arguments; }
|
||||
|
||||
.pt(@p){ padding-top:@p; }
|
||||
.pr(@p){ padding-right:@p; }
|
||||
.pb(@p){ padding-bottom:@p; }
|
||||
.pl(@p){ padding-left:@p; }
|
||||
|
||||
// margin
|
||||
.m(@p){ margin:@arguments; }
|
||||
.m(@v, @h){ margin:@arguments; }
|
||||
.m(@t, @l, @b, @l){ margin:@arguments; }
|
||||
|
||||
.mt(@m){ margin-top:@m; }
|
||||
.mr(@m){ margin-right:@m; }
|
||||
.mb(@m){ margin-bottom:@m; }
|
||||
.ml(@m){ margin-left:@m; }
|
||||
|
||||
.0(){ margin:0; padding:0; }
|
||||
|
||||
// border
|
||||
.b(@b){ border: @b; }
|
||||
.b(@size, @color){ border: @size solid @color; }
|
||||
|
||||
.bt(@b){ border-top: @b;}
|
||||
.bt(@size, @color){border-top: @size solid @color;}
|
||||
|
||||
.br(@b){ border-right: @b;}
|
||||
.br(@size, @color){border-right: @size solid @color;}
|
||||
|
||||
.bb(@b){ border-bottom: @b;}
|
||||
.bb(@size, @color){border-bottom: @size solid @color;}
|
||||
|
||||
.bl(@b){ border-left: @b;}
|
||||
.bl(@size, @color){border-left: @size solid @color;}
|
||||
|
||||
.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE)
|
||||
{
|
||||
border-top : solid 1px @top-color;
|
||||
border-right : solid 1px @right-color;
|
||||
border-bottom: solid 1px @bottom-color;
|
||||
border-left : solid 1px @left-color;
|
||||
}
|
||||
|
||||
// Background
|
||||
.bg(@color, @url, @repeat, @scrollfixed, @pos){background: @arguments;}
|
||||
.bgc(@color){background-color: @arguments;}
|
||||
.bkgd(@params){background: @arguments;}
|
||||
.bkgdc(@color){.bgc(@arguments);}
|
||||
|
||||
<<<<<<< HEAD
|
||||
// opacity
|
||||
.opacity(@opacity: 0.5) {
|
||||
-moz-opacity: @opacity;
|
||||
-khtml-opacity: @opacity;
|
||||
-webkit-opacity: @opacity;
|
||||
opacity: @opacity;
|
||||
}
|
||||
|
||||
/** Inline blocks */
|
||||
.inlineblock(){
|
||||
display:moz-inline-stack;
|
||||
display:inline-block;
|
||||
vertical-align:top;
|
||||
zoom:1;
|
||||
*display:inline;
|
||||
/* margin-right:-.25em;*/
|
||||
.ie7 &{display:inline;}
|
||||
}
|
||||
|
||||
|
||||
// selection style
|
||||
.selection(@bgcolor,@color){
|
||||
=======
|
||||
// Selection
|
||||
.selection(@bgcolor,@color)
|
||||
{
|
||||
>>>>>>> bitbucket/master
|
||||
&::selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
&::-moz-selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
&::-webkit-selection {
|
||||
background:@bgcolor;
|
||||
color:@color;
|
||||
}
|
||||
}
|
||||
|
||||
// Colors
|
||||
.color(@value)
|
||||
{
|
||||
&,
|
||||
& *{color:@value;}
|
||||
}
|
||||
|
||||
// Opacity
|
||||
.opacity(@opacity: 0.5)
|
||||
{
|
||||
-webkit-opacity: @opacity;
|
||||
-khtml-opacity: @opacity;
|
||||
-moz-opacity: @opacity;
|
||||
opacity: @opacity;
|
||||
}
|
||||
|
||||
// size
|
||||
.size(@height, @width) {
|
||||
width: @width;
|
||||
height: @height;
|
||||
}
|
||||
.square(@size) {
|
||||
.size(@size, @size);
|
||||
}
|
||||
|
||||
// center
|
||||
.center-block() {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== DISPLAY UTILS ===================================================================================================
|
||||
|
||||
// Inline blocks
|
||||
.inlineblock(@align:top)
|
||||
{
|
||||
display:moz-inline-stack;
|
||||
display:inline-block;
|
||||
vertical-align:@align;
|
||||
zoom:1;
|
||||
*display:inline;
|
||||
.ie7 &, .ie8 &{display:block;float:left;}
|
||||
}
|
||||
|
||||
.db(){display:block;}
|
||||
.dib(){.inlineblock;}
|
||||
.dib(@align){.inlineblock(@align);}
|
||||
|
||||
// Vertical alignement
|
||||
//
|
||||
// ___ .align-child()
|
||||
// |
|
||||
// | Permet l’alignement vertical d’un objet par rapport à son premier parent (dans son conteneur direct).
|
||||
// |
|
||||
// | 1 param : @vertical-align
|
||||
//
|
||||
.align-child(@align:middle){
|
||||
&:before { content: ""; .dib(middle); overflow: hidden; visibility: hidden; width: 0; height: 100%; }
|
||||
& > * { .dib(@align); }
|
||||
}
|
||||
|
||||
.clear-after(){
|
||||
&:after{clear:both;content:'';display:block;height:0px;overflow:hidden;visibility:hidden;width:0px;}
|
||||
}
|
||||
|
||||
// For clearing floats like a boss h5bp.com/q
|
||||
.clearix() {
|
||||
*zoom: 1;
|
||||
&:before,
|
||||
&:after {
|
||||
display: table;
|
||||
content: "";
|
||||
// Fixes Opera/contenteditable bug:
|
||||
// http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
|
||||
line-height: 0;
|
||||
}
|
||||
&:after {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== CSS3 ============================================================================================================
|
||||
|
||||
// Gradients
|
||||
.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF)
|
||||
{
|
||||
background: @color;
|
||||
background: -webkit-gradient(linear,
|
||||
left bottom,
|
||||
left top,
|
||||
color-stop(0, @start),
|
||||
color-stop(1, @stop));
|
||||
background: -ms-linear-gradient(bottom,
|
||||
@start,
|
||||
@stop);
|
||||
background: -moz-linear-gradient(center bottom,
|
||||
@start 0%,
|
||||
@stop 100%);
|
||||
}
|
||||
.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255)
|
||||
{
|
||||
background: @color;
|
||||
background: -webkit-gradient(linear,
|
||||
left bottom,
|
||||
left top,
|
||||
color-stop(0, rgb(@start,@start,@start)),
|
||||
color-stop(1, rgb(@stop,@stop,@stop)));
|
||||
background: -ms-linear-gradient(bottom,
|
||||
rgb(@start,@start,@start) 0%,
|
||||
rgb(@start,@start,@start) 100%);
|
||||
background: -moz-linear-gradient(center bottom,
|
||||
rgb(@start,@start,@start) 0%,
|
||||
rgb(@stop,@stop,@stop) 100%);
|
||||
}
|
||||
|
||||
// Shadows
|
||||
//
|
||||
// ___ .box-shadow()
|
||||
// |
|
||||
// | Ombré extérieur.
|
||||
// |
|
||||
// | 1 param : @blur
|
||||
// | 2+ params : @horizontal / @vertical / @blur / @color: #000 / @spread: 0px
|
||||
//
|
||||
// ___ .inset-shadow()
|
||||
// |
|
||||
// | Ombré intérieur.
|
||||
// |
|
||||
// | 1 param : @blur
|
||||
// | 2+ params : @horizontal / @vertical / @blur / @color: #000 / @spread: 0px
|
||||
//
|
||||
.box-shadow(@blur: 9px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000')";
|
||||
-webkit-box-shadow: 0 0 @blur #000;
|
||||
-moz-box-shadow: 0 0 @blur #000;
|
||||
-ms-box-shadow: 0 0 @blur #000;
|
||||
box-shadow: 0 0 @blur #000;
|
||||
}
|
||||
.box-shadow(@x, @y, @blur: 9px, @color: #000, @spread: 0px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=@x, OffY=@y, Color=~'@{color}');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=@{x}, OffY=@{y}, Color='@{color}')";
|
||||
-webkit-box-shadow: @x @y @blur @spread @color;
|
||||
-moz-box-shadow: @x @y @blur @spread @color;
|
||||
-ms-box-shadow: @x @y @blur @spread @color;
|
||||
box-shadow: @x @y @blur @spread @color;
|
||||
}
|
||||
.inset-shadow(@blur: 9px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='#000')";
|
||||
-webkit-box-shadow: 0 0 @blur #000 inset;
|
||||
-moz-box-shadow: 0 0 @blur #000 inset;
|
||||
-ms-box-shadow: 0 0 @blur #000 inset;
|
||||
box-shadow: 0 0 @blur #000 inset;
|
||||
}
|
||||
.inset-shadow(@x, @y, @blur: 9px, @color: #000, @spread: 0px)
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=@x, OffY=@y, Color=~'@{color}');
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=0, Color='@{color}')";
|
||||
-webkit-box-shadow: @x @y @blur @spread @color inset;
|
||||
-moz-box-shadow: @x @y @blur @spread @color inset;
|
||||
-ms-box-shadow: @x @y @blur @spread @color inset;
|
||||
box-shadow: @x @y @blur @spread @color inset;
|
||||
}
|
||||
|
||||
// Border radius
|
||||
.rounded(@radius: 2px)
|
||||
{
|
||||
-webkit-border-radius: @radius;
|
||||
-moz-border-radius: @radius;
|
||||
border-radius: @radius;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
.border-radius(@topleft: 0, @topright: 0, @bottomright: 0, @bottomleft: 0)
|
||||
{
|
||||
-webkit-border-radius:@arguments;
|
||||
-moz-border-radius:@arguments;
|
||||
border-radius:@arguments;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
// transitions
|
||||
.transition-simply-prefix(@string) {
|
||||
-webkit-transition: @string;
|
||||
-moz-transition: @string;
|
||||
-o-transition: @string;
|
||||
transition: @string;
|
||||
=======
|
||||
// Transition
|
||||
//
|
||||
// ___ .transition()
|
||||
// |
|
||||
// | 1 param : @property
|
||||
// | 2 params : @property / @duration
|
||||
// | 3+ params : @property / @duration / @transitiondelay:0s , @timingfunction:ease-out
|
||||
//
|
||||
// ___ .transitions()
|
||||
// |
|
||||
// | Permet de fixer des paramètres spécifique par propriétés, exemple:
|
||||
// |
|
||||
// | .transitions(
|
||||
// | 'height , padding , margin , box-shadow',
|
||||
// | '.5s , .2s , .2s , .2s',
|
||||
// | '0s , 0s , 0s , .3s',
|
||||
// | 'linear , ease-out , linear , ease-out'
|
||||
// | );
|
||||
//
|
||||
.transition(@property: all)
|
||||
{
|
||||
-webkit-transition: @property;
|
||||
-moz-transition: @property;
|
||||
-o-transition: @property;
|
||||
transition: @property;
|
||||
>>>>>>> bitbucket/master
|
||||
}
|
||||
.transition(@property, @duration)
|
||||
{
|
||||
-webkit-transition: @arguments;
|
||||
-moz-transition: @arguments;
|
||||
-o-transition: @arguments;
|
||||
transition: @arguments;
|
||||
}
|
||||
.transition(@property, @duration, @transitiondelay, @timingfunction:ease-out)
|
||||
{
|
||||
-webkit-transition: @arguments;
|
||||
-moz-transition: @arguments;
|
||||
-o-transition: @arguments;
|
||||
transition: @arguments;
|
||||
}
|
||||
.transitions(@property: all, @duration:0s, @transitiondelay:0s, @timingfunction:ease-out)
|
||||
{
|
||||
-webkit-transition-property :~'@{property}';
|
||||
-webkit-transition-duration :~'@{duration}';
|
||||
-webkit-transition-delay :~'@{transitiondelay}';
|
||||
-webkit-transition-timing-function:~'@{timingfunction}';
|
||||
-moz-transition-property :~'@{property}';
|
||||
-moz-transition-duration :~'@{duration}';
|
||||
-moz-transition-delay :~'@{transitiondelay}';
|
||||
-moz-transition-timing-function:~'@{timingfunction}';
|
||||
-o-transition-property :~'@{property}';
|
||||
-o-transition-duration :~'@{duration}';
|
||||
-o-transition-delay :~'@{transitiondelay}';
|
||||
-o-transition-timing-function:~'@{timingfunction}';
|
||||
transition-property :~'@{property}';
|
||||
transition-duration :~'@{duration}';
|
||||
transition-delay :~'@{transitiondelay}';
|
||||
transition-timing-function:~'@{timingfunction}';
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
.transition(@p, @d, @e, @de) {
|
||||
-webkit-transition: @arguments;
|
||||
-moz-transition: @arguments;
|
||||
-o-transition: @arguments;
|
||||
transition: @arguments;
|
||||
}
|
||||
.transition-delay(@delay: 0s) {
|
||||
-webkit-transition-delay: @delay;
|
||||
-moz-transition-delay: @delay;
|
||||
-o-transition-delay: @delay;
|
||||
transition-delay: @delay;
|
||||
}
|
||||
// rotation
|
||||
.rotation(@deg:5deg){
|
||||
=======
|
||||
|
||||
.transitions-duration(@duration: 0s)
|
||||
{
|
||||
-webkit-transition-duration: ~'@{duration}';
|
||||
-moz-transition-duration: ~'@{duration}';
|
||||
-o-transition-duration: ~'@{duration}';
|
||||
transition-duration: ~'@{duration}';
|
||||
}
|
||||
|
||||
.transition-duration(@duration: 0.2s)
|
||||
{
|
||||
-webkit-transition-duration: @duration;
|
||||
-moz-transition-duration: @duration;
|
||||
-o-transition-duration: @duration;
|
||||
transition-duration: @duration;
|
||||
}
|
||||
|
||||
// Rotate
|
||||
//
|
||||
// ___ .rotation()
|
||||
// |
|
||||
// | 1 param : @degree
|
||||
//
|
||||
// ___ .rotate()
|
||||
// |
|
||||
// | Tentative de compatibilté étendue (fonctionne uniquement pour 0, 90, 180 ou 270 degrés).
|
||||
// |
|
||||
// | 1 param : @degree
|
||||
// | 3 params : @degree / @originX / @originY
|
||||
//
|
||||
.rotation(@deg:5deg)
|
||||
{
|
||||
>>>>>>> bitbucket/master
|
||||
-webkit-transform: rotate(@deg);
|
||||
-moz-transform: rotate(@deg);
|
||||
transform: rotate(@deg);
|
||||
}
|
||||
.rotate(@value, @originX:0%, @originY:0%, @unit:'deg')
|
||||
{
|
||||
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation = (360 / @value) + 1); //0, 1, 2, or 3 rotate 0, 90, 180 or 270
|
||||
-webkit-transform: rotate(~"@{value}@{unit}"); // ~"@{value}@{unit}" rather than @value@unit remove the spaces between value and unit.
|
||||
-moz-transform: rotate(~"@{value}@{unit}");
|
||||
-ms-transform: rotate(~"@{value}@{unit}");
|
||||
-o-transform: rotate(~"@{value}@{unit}");
|
||||
transform: rotate(~"@{value}@{unit}");
|
||||
-webkit-transform-origin:@originX @originY;
|
||||
-moz-transform-origin:@originX @originY;
|
||||
-ms-transform-origin:@originX @originY;
|
||||
-o-transform-origin:@originX @originY;
|
||||
transform-origin:@originX @originY;
|
||||
}
|
||||
|
||||
// Scale
|
||||
.scale(@ratio:1.5)
|
||||
{
|
||||
-webkit-transform:scale(@ratio);
|
||||
<<<<<<< HEAD
|
||||
-moz-transform:scale(@ratio);
|
||||
transform:scale(@ratio);
|
||||
}
|
||||
|
||||
// columns
|
||||
.columns(@colwidth: 250px) {
|
||||
-moz-column-width: @colwidth;
|
||||
-webkit-column-width: @colwidth;
|
||||
column-width: @colwidth;
|
||||
}
|
||||
|
||||
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {
|
||||
-moz-column-width: @colwidth;
|
||||
-moz-column-count: @colcount;
|
||||
-moz-column-gap: @colgap;
|
||||
-moz-column-rule-color: @columnRuleColor;
|
||||
-moz-column-rule-style: @columnRuleStyle;
|
||||
-moz-column-rule-width: @columnRuleWidth;
|
||||
-webkit-column-width: @colwidth;
|
||||
-webkit-column-count: @colcount;
|
||||
-webkit-column-gap: @colgap;
|
||||
=======
|
||||
-moz-transform:scale(@ratio);
|
||||
transform:scale(@ratio);
|
||||
}
|
||||
|
||||
// Translate
|
||||
.translate(@x:0, @y:0)
|
||||
{
|
||||
-webkit-transform: translate(@x, @y);
|
||||
-moz-transform: translate(@x, @y);
|
||||
-ms-transform: translate(@x, @y);
|
||||
-o-transform: translate(@x, @y);
|
||||
transform: translate(@x, @y);
|
||||
}
|
||||
|
||||
// Columns
|
||||
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px)
|
||||
{
|
||||
-webkit-column-width : @colwidth;
|
||||
-webkit-column-count : @colcount;
|
||||
-webkit-column-gap : @colgap;
|
||||
>>>>>>> bitbucket/master
|
||||
-webkit-column-rule-color: @columnRuleColor;
|
||||
-webkit-column-rule-style: @columnRuleStyle;
|
||||
-webkit-column-rule-width: @columnRuleWidth;
|
||||
-moz-column-width : @colwidth;
|
||||
-moz-column-count : @colcount;
|
||||
-moz-column-gap : @colgap;
|
||||
-moz-column-rule-color: @columnRuleColor;
|
||||
-moz-column-rule-style: @columnRuleStyle;
|
||||
-moz-column-rule-width: @columnRuleWidth;
|
||||
column-width : @colwidth;
|
||||
column-count : @colcount;
|
||||
column-gap : @colgap;
|
||||
column-rule-color: @columnRuleColor;
|
||||
column-rule-style: @columnRuleStyle;
|
||||
column-rule-width: @columnRuleWidth;
|
||||
}
|
||||
|
||||
.edit-link(@bc:#CCFF2F,@c:#333)
|
||||
{
|
||||
.dib;
|
||||
background-color:@bc;
|
||||
border:1px solid;
|
||||
border-color:darken(desaturate(@bc, 35%),15%) darken(desaturate(@bc, 35%),15%) darken(desaturate(@bc, 35%),20%);
|
||||
.rounded;
|
||||
color: @c;
|
||||
cursor: pointer;
|
||||
.font-size(.8em,1em);
|
||||
font-weight: normal;
|
||||
padding: 0.25em 0.75em;
|
||||
margin-top:.5em;
|
||||
|
||||
&:hover{background-color:darken(@bc, 20%);}
|
||||
&:active{
|
||||
text-shadow: 0 1px 0 lighten(@bc,5%);
|
||||
background-color:darken(@bc, 20%);
|
||||
//.inset-shadow(0,0,2px,darken(@bc,60));
|
||||
}
|
||||
}
|
||||
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// =
|
||||
// ===== RETINA ==========================================================================================================
|
||||
|
||||
// retina.less
|
||||
// A helper mixin for applying high-resolution background images (http://www.retinajs.com)
|
||||
.at2x(@path, @w: auto, @h: auto) {
|
||||
background-image: url(@path);
|
||||
@at2x_path: ~`"@{path}".split('.').slice(0, "@{path}".split('.').length - 1).join(".") + "@2x" + "." + "@{path}".split('.')["@{path}".split('.').length - 1]`;
|
||||
|
||||
@media all and (-webkit-min-device-pixel-ratio : 1.5) {
|
||||
background-image: url(@at2x_path);
|
||||
background-size: @w @h;
|
||||
}
|
||||
}
|
13
sites/all/themes/gui/materiobasetheme/js/libs/idangerous.swiper-1.9.1.min.js
vendored
Normal file
13
sites/all/themes/gui/materiobasetheme/js/libs/idangerous.swiper-1.9.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Swiper - Mobile Touch Slider CSS
|
||||
* http://www.idangero.us/sliders/swiper
|
||||
*
|
||||
* Vladimir Kharlampidi, The iDangero.us
|
||||
* http://www.idangero.us/
|
||||
*
|
||||
* Copyright 2012, Vladimir Kharlampidi
|
||||
* The iDangero.us
|
||||
* http://www.idangero.us
|
||||
*
|
||||
* Licensed under GPL & MIT
|
||||
*
|
||||
*/
|
||||
|
||||
/* Swiper Styles */
|
||||
.swiper-container {
|
||||
margin:0 auto;
|
||||
position:relative;
|
||||
overflow:hidden;
|
||||
-webkit-backface-visibility:hidden;
|
||||
-moz-backface-visibility:hidden;
|
||||
-ms-backface-visibility:hidden;
|
||||
-o-backface-visibility:hidden;
|
||||
backface-visibility:hidden;
|
||||
/* Fix of Webkit flickering */
|
||||
z-index:1;
|
||||
}
|
||||
.swiper-wrapper {
|
||||
position:relative;
|
||||
width:100%;
|
||||
-webkit-transition-property:-webkit-transform, left, top;
|
||||
-webkit-transition-duration:0s;
|
||||
-webkit-transform:translate3d(0px,0,0);
|
||||
-webkit-transition-timing-function:ease;
|
||||
|
||||
-moz-transition-property:-moz-transform, left, top;
|
||||
-moz-transition-duration:0s;
|
||||
-moz-transform:translate3d(0px,0,0);
|
||||
-moz-transition-timing-function:ease;
|
||||
|
||||
-o-transition-property:-o-transform, left, top;
|
||||
-o-transition-duration:0s;
|
||||
-o-transform:translate3d(0px,0,0);
|
||||
-o-transition-timing-function:ease;
|
||||
-o-transform:translate(0px,0px);
|
||||
|
||||
-ms-transition-property:-ms-transform, left, top;
|
||||
-ms-transition-duration:0s;
|
||||
-ms-transform:translate3d(0px,0,0);
|
||||
-ms-transition-timing-function:ease;
|
||||
|
||||
transition-property:transform, left, top;
|
||||
transition-duration:0s;
|
||||
transform:translate3d(0px,0,0);
|
||||
transition-timing-function:ease;
|
||||
|
||||
}
|
||||
.swiper-slide {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* IE10 Windows Phone 8 Fixes */
|
||||
.swiper-wp8-horizontal {
|
||||
-ms-touch-action: pan-y;
|
||||
}
|
||||
.swiper-wp8-vertical {
|
||||
-ms-touch-action: pan-x;
|
||||
}
|
||||
|
||||
/* Specify Swiper's Size: */
|
||||
.swiper-container, .swiper-slide {
|
||||
width: 500px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,610 @@
|
||||
// version 1.6.0
|
||||
// http://welcome.totheinter.net/columnizer-jquery-plugin/
|
||||
// created by: Adam Wulf @adamwulf, adam.wulf@gmail.com
|
||||
|
||||
(function($){
|
||||
|
||||
$.fn.columnize = function(options) {
|
||||
|
||||
|
||||
var defaults = {
|
||||
// default width of columns
|
||||
width: 400,
|
||||
// optional # of columns instead of width
|
||||
columns : false,
|
||||
// true to build columns once regardless of window resize
|
||||
// false to rebuild when content box changes bounds
|
||||
buildOnce : false,
|
||||
// an object with options if the text should overflow
|
||||
// it's container if it can't fit within a specified height
|
||||
overflow : false,
|
||||
// this function is called after content is columnized
|
||||
doneFunc : function(){},
|
||||
// if the content should be columnized into a
|
||||
// container node other than it's own node
|
||||
target : false,
|
||||
// re-columnizing when images reload might make things
|
||||
// run slow. so flip this to true if it's causing delays
|
||||
ignoreImageLoading : true,
|
||||
// should columns float left or right
|
||||
columnFloat : "left",
|
||||
// ensure the last column is never the tallest column
|
||||
lastNeverTallest : false,
|
||||
// (int) the minimum number of characters to jump when splitting
|
||||
// text nodes. smaller numbers will result in higher accuracy
|
||||
// column widths, but will take slightly longer
|
||||
accuracy : false,
|
||||
// don't automatically layout columns, only use manual columnbreak
|
||||
manualBreaks : false,
|
||||
// previx for all the CSS classes used by this plugin
|
||||
// default to empty string for backwards compatibility
|
||||
cssClassPrefix : ""
|
||||
};
|
||||
var options = $.extend(defaults, options);
|
||||
|
||||
if(typeof(options.width) == "string"){
|
||||
options.width = parseInt(options.width);
|
||||
if(isNaN(options.width)){
|
||||
options.width = defaults.width;
|
||||
}
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
var $inBox = options.target ? $(options.target) : $(this);
|
||||
var maxHeight = $(this).height();
|
||||
var $cache = $('<div></div>'); // this is where we'll put the real content
|
||||
var lastWidth = 0;
|
||||
var columnizing = false;
|
||||
var manualBreaks = options.manualBreaks;
|
||||
var cssClassPrefix = defaults.cssClassPrefix;
|
||||
if(typeof(options.cssClassPrefix) == "string"){
|
||||
cssClassPrefix = options.cssClassPrefix;
|
||||
}
|
||||
|
||||
|
||||
var adjustment = 0;
|
||||
|
||||
$cache.append($(this).contents().clone(true));
|
||||
|
||||
// images loading after dom load
|
||||
// can screw up the column heights,
|
||||
// so recolumnize after images load
|
||||
if(!options.ignoreImageLoading && !options.target){
|
||||
if(!$inBox.data("imageLoaded")){
|
||||
$inBox.data("imageLoaded", true);
|
||||
if($(this).find("img").length > 0){
|
||||
// only bother if there are
|
||||
// actually images...
|
||||
var func = function($inBox,$cache){ return function(){
|
||||
if(!$inBox.data("firstImageLoaded")){
|
||||
$inBox.data("firstImageLoaded", "true");
|
||||
$inBox.empty().append($cache.children().clone(true));
|
||||
$inBox.columnize(options);
|
||||
}
|
||||
}}($(this), $cache);
|
||||
$(this).find("img").one("load", func);
|
||||
$(this).find("img").one("abort", func);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$inBox.empty();
|
||||
|
||||
columnizeIt();
|
||||
|
||||
if(!options.buildOnce){
|
||||
$(window).resize(function() {
|
||||
if(!options.buildOnce && $.browser.msie){
|
||||
if($inBox.data("timeout")){
|
||||
clearTimeout($inBox.data("timeout"));
|
||||
}
|
||||
$inBox.data("timeout", setTimeout(columnizeIt, 200));
|
||||
}else if(!options.buildOnce){
|
||||
columnizeIt();
|
||||
}else{
|
||||
// don't rebuild
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function prefixTheClassName(className, withDot){
|
||||
var dot = withDot ? "." : "";
|
||||
if(cssClassPrefix.length){
|
||||
return dot + cssClassPrefix + "-" + className;
|
||||
}
|
||||
return dot + className;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* this fuction builds as much of a column as it can without
|
||||
* splitting nodes in half. If the last node in the new column
|
||||
* is a text node, then it will try to split that text node. otherwise
|
||||
* it will leave the node in $pullOutHere and return with a height
|
||||
* smaller than targetHeight.
|
||||
*
|
||||
* Returns a boolean on whether we did some splitting successfully at a text point
|
||||
* (so we know we don't need to split a real element). return false if the caller should
|
||||
* split a node if possible to end this column.
|
||||
*
|
||||
* @param putInHere, the jquery node to put elements into for the current column
|
||||
* @param $pullOutHere, the jquery node to pull elements out of (uncolumnized html)
|
||||
* @param $parentColumn, the jquery node for the currently column that's being added to
|
||||
* @param targetHeight, the ideal height for the column, get as close as we can to this height
|
||||
*/
|
||||
function columnize($putInHere, $pullOutHere, $parentColumn, targetHeight){
|
||||
//
|
||||
// add as many nodes to the column as we can,
|
||||
// but stop once our height is too tall
|
||||
while((manualBreaks || $parentColumn.height() < targetHeight) &&
|
||||
$pullOutHere[0].childNodes.length){
|
||||
var node = $pullOutHere[0].childNodes[0]
|
||||
//
|
||||
// Because we're not cloning, jquery will actually move the element"
|
||||
// http://welcome.totheinter.net/2009/03/19/the-undocumented-life-of-jquerys-append/
|
||||
if($(node).find(prefixTheClassName("columnbreak", true)).length){
|
||||
//
|
||||
// our column is on a column break, so just end here
|
||||
return;
|
||||
}
|
||||
if($(node).hasClass(prefixTheClassName("columnbreak"))){
|
||||
//
|
||||
// our column is on a column break, so just end here
|
||||
return;
|
||||
}
|
||||
$putInHere.append(node);
|
||||
}
|
||||
if($putInHere[0].childNodes.length == 0) return;
|
||||
|
||||
// now we're too tall, so undo the last one
|
||||
var kids = $putInHere[0].childNodes;
|
||||
var lastKid = kids[kids.length-1];
|
||||
$putInHere[0].removeChild(lastKid);
|
||||
var $item = $(lastKid);
|
||||
|
||||
//
|
||||
// now lets try to split that last node
|
||||
// to fit as much of it as we can into this column
|
||||
if($item[0].nodeType == 3){
|
||||
// it's a text node, split it up
|
||||
var oText = $item[0].nodeValue;
|
||||
var counter2 = options.width / 18;
|
||||
if(options.accuracy)
|
||||
counter2 = options.accuracy;
|
||||
var columnText;
|
||||
var latestTextNode = null;
|
||||
while($parentColumn.height() < targetHeight && oText.length){
|
||||
var indexOfSpace = oText.indexOf(' ', counter2);
|
||||
if (indexOfSpace != -1) {
|
||||
columnText = oText.substring(0, oText.indexOf(' ', counter2));
|
||||
} else {
|
||||
columnText = oText;
|
||||
}
|
||||
latestTextNode = document.createTextNode(columnText);
|
||||
$putInHere.append(latestTextNode);
|
||||
|
||||
if(oText.length > counter2 && indexOfSpace != -1){
|
||||
oText = oText.substring(indexOfSpace);
|
||||
}else{
|
||||
oText = "";
|
||||
}
|
||||
}
|
||||
if($parentColumn.height() >= targetHeight && latestTextNode != null){
|
||||
// too tall :(
|
||||
$putInHere[0].removeChild(latestTextNode);
|
||||
oText = latestTextNode.nodeValue + oText;
|
||||
}
|
||||
if(oText.length){
|
||||
$item[0].nodeValue = oText;
|
||||
}else{
|
||||
return false; // we ate the whole text node, move on to the next node
|
||||
}
|
||||
}
|
||||
|
||||
if($pullOutHere.contents().length){
|
||||
$pullOutHere.prepend($item);
|
||||
}else{
|
||||
$pullOutHere.append($item);
|
||||
}
|
||||
|
||||
return $item[0].nodeType == 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Split up an element, which is more complex than splitting text. We need to create
|
||||
* two copies of the element with it's contents divided between each
|
||||
*/
|
||||
function split($putInHere, $pullOutHere, $parentColumn, targetHeight){
|
||||
if($putInHere.contents(":last").find(prefixTheClassName("columnbreak", true)).length){
|
||||
//
|
||||
// our column is on a column break, so just end here
|
||||
return;
|
||||
}
|
||||
if($putInHere.contents(":last").hasClass(prefixTheClassName("columnbreak"))){
|
||||
//
|
||||
// our column is on a column break, so just end here
|
||||
return;
|
||||
}
|
||||
if($pullOutHere.contents().length){
|
||||
var $cloneMe = $pullOutHere.contents(":first");
|
||||
//
|
||||
// make sure we're splitting an element
|
||||
if($cloneMe.get(0).nodeType != 1) return;
|
||||
|
||||
//
|
||||
// clone the node with all data and events
|
||||
var $clone = $cloneMe.clone(true);
|
||||
//
|
||||
// need to support both .prop and .attr if .prop doesn't exist.
|
||||
// this is for backwards compatibility with older versions of jquery.
|
||||
if($cloneMe.hasClass(prefixTheClassName("columnbreak"))){
|
||||
//
|
||||
// ok, we have a columnbreak, so add it into
|
||||
// the column and exit
|
||||
$putInHere.append($clone);
|
||||
$cloneMe.remove();
|
||||
}else if (manualBreaks){
|
||||
// keep adding until we hit a manual break
|
||||
$putInHere.append($clone);
|
||||
$cloneMe.remove();
|
||||
}else if($clone.get(0).nodeType == 1 && !$clone.hasClass(prefixTheClassName("dontend"))){
|
||||
$putInHere.append($clone);
|
||||
if($clone.is("img") && $parentColumn.height() < targetHeight + 20){
|
||||
//
|
||||
// we can't split an img in half, so just add it
|
||||
// to the column and remove it from the pullOutHere section
|
||||
$cloneMe.remove();
|
||||
}else if(!$cloneMe.hasClass(prefixTheClassName("dontsplit")) && $parentColumn.height() < targetHeight + 20){
|
||||
//
|
||||
// pretty close fit, and we're not allowed to split it, so just
|
||||
// add it to the column, remove from pullOutHere, and be done
|
||||
$cloneMe.remove();
|
||||
}else if($clone.is("img") || $cloneMe.hasClass(prefixTheClassName("dontsplit"))){
|
||||
//
|
||||
// it's either an image that's too tall, or an unsplittable node
|
||||
// that's too tall. leave it in the pullOutHere and we'll add it to the
|
||||
// next column
|
||||
$clone.remove();
|
||||
}else{
|
||||
//
|
||||
// ok, we're allowed to split the node in half, so empty out
|
||||
// the node in the column we're building, and start splitting
|
||||
// it in half, leaving some of it in pullOutHere
|
||||
$clone.empty();
|
||||
if(!columnize($clone, $cloneMe, $parentColumn, targetHeight)){
|
||||
// this node still has non-text nodes to split
|
||||
// add the split class and then recur
|
||||
$cloneMe.addClass(prefixTheClassName("split"));
|
||||
if($cloneMe.children().length){
|
||||
split($clone, $cloneMe, $parentColumn, targetHeight);
|
||||
}
|
||||
}else{
|
||||
// this node only has text node children left, add the
|
||||
// split class and move on.
|
||||
$cloneMe.addClass(prefixTheClassName("split"));
|
||||
}
|
||||
if($clone.get(0).childNodes.length == 0){
|
||||
// it was split, but nothing is in it :(
|
||||
$clone.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function singleColumnizeIt() {
|
||||
if ($inBox.data("columnized") && $inBox.children().length == 1) {
|
||||
return;
|
||||
}
|
||||
$inBox.data("columnized", true);
|
||||
$inBox.data("columnizing", true);
|
||||
|
||||
$inBox.empty();
|
||||
$inBox.append($("<div class='"
|
||||
+ prefixTheClassName("first") + " "
|
||||
+ prefixTheClassName("last") + " "
|
||||
+ prefixTheClassName("column") + " "
|
||||
+ "' style='width:100%; float: " + options.columnFloat + ";'></div>")); //"
|
||||
$col = $inBox.children().eq($inBox.children().length-1);
|
||||
$destroyable = $cache.clone(true);
|
||||
if(options.overflow){
|
||||
targetHeight = options.overflow.height;
|
||||
columnize($col, $destroyable, $col, targetHeight);
|
||||
// make sure that the last item in the column isn't a "dontend"
|
||||
if(!$destroyable.contents().find(":first-child").hasClass(prefixTheClassName("dontend"))){
|
||||
split($col, $destroyable, $col, targetHeight);
|
||||
}
|
||||
|
||||
while($col.contents(":last").length && checkDontEndColumn($col.contents(":last").get(0))){
|
||||
var $lastKid = $col.contents(":last");
|
||||
$lastKid.remove();
|
||||
$destroyable.prepend($lastKid);
|
||||
}
|
||||
|
||||
var html = "";
|
||||
var div = document.createElement('DIV');
|
||||
while($destroyable[0].childNodes.length > 0){
|
||||
var kid = $destroyable[0].childNodes[0];
|
||||
if(kid.attributes){
|
||||
for(var i=0;i<kid.attributes.length;i++){
|
||||
if(kid.attributes[i].nodeName.indexOf("jQuery") == 0){
|
||||
kid.removeAttribute(kid.attributes[i].nodeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
div.innerHTML = "";
|
||||
div.appendChild($destroyable[0].childNodes[0]);
|
||||
html += div.innerHTML;
|
||||
}
|
||||
var overflow = $(options.overflow.id)[0];
|
||||
overflow.innerHTML = html;
|
||||
|
||||
}else{
|
||||
$col.append($destroyable);
|
||||
}
|
||||
$inBox.data("columnizing", false);
|
||||
|
||||
if(options.overflow && options.overflow.doneFunc){
|
||||
options.overflow.doneFunc();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* returns true if the input dom node
|
||||
* should not end a column.
|
||||
* returns false otherwise
|
||||
*/
|
||||
function checkDontEndColumn(dom){
|
||||
if(dom.nodeType == 3){
|
||||
// text node. ensure that the text
|
||||
// is not 100% whitespace
|
||||
if(/^\s+$/.test(dom.nodeValue)){
|
||||
//
|
||||
// ok, it's 100% whitespace,
|
||||
// so we should return checkDontEndColumn
|
||||
// of the inputs previousSibling
|
||||
if(!dom.previousSibling) return false;
|
||||
return checkDontEndColumn(dom.previousSibling);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if(dom.nodeType != 1) return false;
|
||||
if($(dom).hasClass(prefixTheClassName("dontend"))) return true;
|
||||
if(dom.childNodes.length == 0) return false;
|
||||
return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function columnizeIt() {
|
||||
//reset adjustment var
|
||||
adjustment = 0;
|
||||
if(lastWidth == $inBox.width()) return;
|
||||
lastWidth = $inBox.width();
|
||||
|
||||
var numCols = Math.round($inBox.width() / options.width);
|
||||
var optionWidth = options.width;
|
||||
var optionHeight = options.height;
|
||||
if(options.columns) numCols = options.columns;
|
||||
if(manualBreaks){
|
||||
numCols = $cache.find(prefixTheClassName("columnbreak", true)).length + 1;
|
||||
optionWidth = false;
|
||||
}
|
||||
|
||||
// if ($inBox.data("columnized") && numCols == $inBox.children().length) {
|
||||
// return;
|
||||
// }
|
||||
if(numCols <= 1){
|
||||
return singleColumnizeIt();
|
||||
}
|
||||
if($inBox.data("columnizing")) return;
|
||||
$inBox.data("columnized", true);
|
||||
$inBox.data("columnizing", true);
|
||||
|
||||
$inBox.empty();
|
||||
$inBox.append($("<div style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
|
||||
$col = $inBox.children(":last");
|
||||
$col.append($cache.clone());
|
||||
maxHeight = $col.height();
|
||||
$inBox.empty();
|
||||
|
||||
var targetHeight = maxHeight / numCols;
|
||||
var firstTime = true;
|
||||
var maxLoops = 3;
|
||||
var scrollHorizontally = false;
|
||||
if(options.overflow){
|
||||
maxLoops = 1;
|
||||
targetHeight = options.overflow.height;
|
||||
}else if(optionHeight && optionWidth){
|
||||
maxLoops = 1;
|
||||
targetHeight = optionHeight;
|
||||
scrollHorizontally = true;
|
||||
}
|
||||
|
||||
//
|
||||
// We loop as we try and workout a good height to use. We know it initially as an average
|
||||
// but if the last column is higher than the first ones (which can happen, depending on split
|
||||
// points) we need to raise 'adjustment'. We try this over a few iterations until we're 'solid'.
|
||||
//
|
||||
// also, lets hard code the max loops to 20. that's /a lot/ of loops for columnizer,
|
||||
// and should keep run aways in check. if somehow someone has content combined with
|
||||
// options that would cause an infinite loop, then this'll definitely stop it.
|
||||
for(var loopCount=0;loopCount<maxLoops && maxLoops < 20;loopCount++){
|
||||
$inBox.empty();
|
||||
var $destroyable;
|
||||
try{
|
||||
$destroyable = $cache.clone(true);
|
||||
}catch(e){
|
||||
// jquery in ie6 can't clone with true
|
||||
$destroyable = $cache.clone();
|
||||
}
|
||||
$destroyable.css("visibility", "hidden");
|
||||
// create the columns
|
||||
for (var i = 0; i < numCols; i++) {
|
||||
/* create column */
|
||||
var className = (i == 0) ? prefixTheClassName("first") : "";
|
||||
className += " " + prefixTheClassName("column");
|
||||
var className = (i == numCols - 1) ? (prefixTheClassName("last") + " " + className) : className;
|
||||
$inBox.append($("<div class='" + className + "' style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
|
||||
}
|
||||
|
||||
// fill all but the last column (unless overflowing)
|
||||
var i = 0;
|
||||
while(i < numCols - (options.overflow ? 0 : 1) || scrollHorizontally && $destroyable.contents().length){
|
||||
if($inBox.children().length <= i){
|
||||
// we ran out of columns, make another
|
||||
$inBox.append($("<div class='" + className + "' style='width:" + (Math.floor(100 / numCols))+ "%; float: " + options.columnFloat + ";'></div>")); //"
|
||||
}
|
||||
var $col = $inBox.children().eq(i);
|
||||
columnize($col, $destroyable, $col, targetHeight);
|
||||
// make sure that the last item in the column isn't a "dontend"
|
||||
split($col, $destroyable, $col, targetHeight);
|
||||
|
||||
while($col.contents(":last").length && checkDontEndColumn($col.contents(":last").get(0))){
|
||||
var $lastKid = $col.contents(":last");
|
||||
$lastKid.remove();
|
||||
$destroyable.prepend($lastKid);
|
||||
}
|
||||
i++;
|
||||
|
||||
//
|
||||
// https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues/47
|
||||
//
|
||||
// check for infinite loop.
|
||||
//
|
||||
// this could happen when a dontsplit or dontend item is taller than the column
|
||||
// we're trying to build, and its never actually added to a column.
|
||||
//
|
||||
// this results in empty columns being added with the dontsplit item
|
||||
// perpetually waiting to get put into a column. lets force the issue here
|
||||
if($col.contents().length == 0 && $destroyable.contents().length){
|
||||
//
|
||||
// ok, we're building zero content columns. this'll happen forever
|
||||
// since nothing can ever get taken out of destroyable.
|
||||
//
|
||||
// to fix, lets put 1 item from destroyable into the empty column
|
||||
// before we iterate
|
||||
$col.append($destroyable.contents(":first"));
|
||||
}else if(i == numCols - (options.overflow ? 0 : 1) && !options.overflow){
|
||||
//
|
||||
// ok, we're about to exit the while loop because we're done with all
|
||||
// columns except the last column.
|
||||
//
|
||||
// if $destroyable still has columnbreak nodes in it, then we need to keep
|
||||
// looping and creating more columns.
|
||||
if($destroyable.find(prefixTheClassName("columnbreak", true)).length){
|
||||
numCols ++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if(options.overflow && !scrollHorizontally){
|
||||
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
|
||||
var IE7 = (document.all) && (navigator.appVersion.indexOf("MSIE 7.") != -1);
|
||||
if(IE6 || IE7){
|
||||
var html = "";
|
||||
var div = document.createElement('DIV');
|
||||
while($destroyable[0].childNodes.length > 0){
|
||||
var kid = $destroyable[0].childNodes[0];
|
||||
for(var i=0;i<kid.attributes.length;i++){
|
||||
if(kid.attributes[i].nodeName.indexOf("jQuery") == 0){
|
||||
kid.removeAttribute(kid.attributes[i].nodeName);
|
||||
}
|
||||
}
|
||||
div.innerHTML = "";
|
||||
div.appendChild($destroyable[0].childNodes[0]);
|
||||
html += div.innerHTML;
|
||||
}
|
||||
var overflow = $(options.overflow.id)[0];
|
||||
overflow.innerHTML = html;
|
||||
}else{
|
||||
$(options.overflow.id).empty().append($destroyable.contents().clone(true));
|
||||
}
|
||||
}else if(!scrollHorizontally){
|
||||
// the last column in the series
|
||||
$col = $inBox.children().eq($inBox.children().length-1);
|
||||
while($destroyable.contents().length) $col.append($destroyable.contents(":first"));
|
||||
var afterH = $col.height();
|
||||
var diff = afterH - targetHeight;
|
||||
var totalH = 0;
|
||||
var min = 10000000;
|
||||
var max = 0;
|
||||
var lastIsMax = false;
|
||||
var numberOfColumnsThatDontEndInAColumnBreak = 0;
|
||||
$inBox.children().each(function($inBox){ return function($item){
|
||||
var $col = $inBox.children().eq($item);
|
||||
var endsInBreak = $col.children(":last").find(prefixTheClassName("columnbreak", true)).length;
|
||||
if(!endsInBreak){
|
||||
var h = $col.height();
|
||||
lastIsMax = false;
|
||||
totalH += h;
|
||||
if(h > max) {
|
||||
max = h;
|
||||
lastIsMax = true;
|
||||
}
|
||||
if(h < min) min = h;
|
||||
numberOfColumnsThatDontEndInAColumnBreak++;
|
||||
}
|
||||
}}($inBox));
|
||||
|
||||
var avgH = totalH / numberOfColumnsThatDontEndInAColumnBreak;
|
||||
if(totalH == 0){
|
||||
//
|
||||
// all columns end in a column break,
|
||||
// so we're done here
|
||||
loopCount = maxLoops;
|
||||
}else if(options.lastNeverTallest && lastIsMax){
|
||||
// the last column is the tallest
|
||||
// so allow columns to be taller
|
||||
// and retry
|
||||
//
|
||||
// hopefully this'll mean more content fits into
|
||||
// earlier columns, so that the last column
|
||||
// can be shorter than the rest
|
||||
adjustment += 30;
|
||||
|
||||
targetHeight = targetHeight + 30;
|
||||
if(loopCount == maxLoops-1) maxLoops++;
|
||||
}else if(max - min > 30){
|
||||
// too much variation, try again
|
||||
targetHeight = avgH + 30;
|
||||
}else if(Math.abs(avgH-targetHeight) > 20){
|
||||
// too much variation, try again
|
||||
targetHeight = avgH;
|
||||
}else {
|
||||
// solid, we're done
|
||||
loopCount = maxLoops;
|
||||
}
|
||||
}else{
|
||||
// it's scrolling horizontally, fix the width/classes of the columns
|
||||
$inBox.children().each(function(i){
|
||||
$col = $inBox.children().eq(i);
|
||||
$col.width(optionWidth + "px");
|
||||
if(i==0){
|
||||
$col.addClass(prefixTheClassName("first"));
|
||||
}else if(i==$inBox.children().length-1){
|
||||
$col.addClass(prefixTheClassName("last"));
|
||||
}else{
|
||||
$col.removeClass(prefixTheClassName("first"));
|
||||
$col.removeClass(prefixTheClassName("last"));
|
||||
}
|
||||
});
|
||||
$inBox.width($inBox.children().length * optionWidth + "px");
|
||||
}
|
||||
$inBox.append($("<br style='clear:both;'>"));
|
||||
}
|
||||
$inBox.find(prefixTheClassName("column", true)).find(":first" + prefixTheClassName("removeiffirst", true)).remove();
|
||||
$inBox.find(prefixTheClassName("column", true)).find(':last' + prefixTheClassName("removeiflast", true)).remove();
|
||||
$inBox.data("columnizing", false);
|
||||
|
||||
if(options.overflow){
|
||||
options.overflow.doneFunc();
|
||||
}
|
||||
options.doneFunc();
|
||||
}
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
File diff suppressed because one or more lines are too long
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* jQuery Hotkeys Plugin
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
*
|
||||
* Based upon the plugin by Tzury Bar Yochay:
|
||||
* http://github.com/tzuryby/hotkeys
|
||||
*
|
||||
* Original idea by:
|
||||
* Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
|
||||
*/
|
||||
|
||||
(function(jQuery){
|
||||
|
||||
jQuery.hotkeys = {
|
||||
version: "0.8",
|
||||
|
||||
specialKeys: {
|
||||
8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
|
||||
20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
|
||||
37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
|
||||
96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
|
||||
104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
|
||||
112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
|
||||
120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 191: "/", 224: "meta"
|
||||
},
|
||||
|
||||
shiftNums: {
|
||||
"`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
|
||||
"8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
|
||||
".": ">", "/": "?", "\\": "|"
|
||||
}
|
||||
};
|
||||
|
||||
function keyHandler( handleObj ) {
|
||||
// Only care when a possible input has been specified
|
||||
if ( typeof handleObj.data !== "string" ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var origHandler = handleObj.handler,
|
||||
keys = handleObj.data.toLowerCase().split(" ");
|
||||
|
||||
handleObj.handler = function( event ) {
|
||||
// Don't fire in text-accepting inputs that we didn't directly bind to
|
||||
if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
|
||||
event.target.type === "text") ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Keypress represents characters, not special keys
|
||||
var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ],
|
||||
character = String.fromCharCode( event.which ).toLowerCase(),
|
||||
key, modif = "", possible = {};
|
||||
|
||||
// check combinations (alt|ctrl|shift+anything)
|
||||
if ( event.altKey && special !== "alt" ) {
|
||||
modif += "alt+";
|
||||
}
|
||||
|
||||
if ( event.ctrlKey && special !== "ctrl" ) {
|
||||
modif += "ctrl+";
|
||||
}
|
||||
|
||||
// TODO: Need to make sure this works consistently across platforms
|
||||
if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
|
||||
modif += "meta+";
|
||||
}
|
||||
|
||||
if ( event.shiftKey && special !== "shift" ) {
|
||||
modif += "shift+";
|
||||
}
|
||||
|
||||
if ( special ) {
|
||||
possible[ modif + special ] = true;
|
||||
|
||||
} else {
|
||||
possible[ modif + character ] = true;
|
||||
possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
|
||||
|
||||
// "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
|
||||
if ( modif === "shift+" ) {
|
||||
possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
|
||||
}
|
||||
}
|
||||
|
||||
for ( var i = 0, l = keys.length; i < l; i++ ) {
|
||||
if ( possible[ keys[i] ] ) {
|
||||
return origHandler.apply( this, arguments );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
jQuery.each([ "keydown", "keyup", "keypress" ], function() {
|
||||
jQuery.event.special[ this ] = { add: keyHandler };
|
||||
});
|
||||
|
||||
})( jQuery );
|
15
sites/all/themes/gui/materiobasetheme/js/libs/jquery.lazyload.min.js
vendored
Normal file
15
sites/all/themes/gui/materiobasetheme/js/libs/jquery.lazyload.min.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Lazy Load - jQuery plugin for lazy loading images
|
||||
*
|
||||
* Copyright (c) 2007-2012 Mika Tuupola
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Project home:
|
||||
* http://www.appelsiini.net/projects/lazyload
|
||||
*
|
||||
* Version: 1.8.2
|
||||
*
|
||||
*/
|
||||
(function(a,b,c,d){var e=a(b);a.fn.lazyload=function(f){function j(){var b=0;g.each(function(){var c=a(this);if(i.skip_invisible&&!c.is(":visible"))return;if(!a.abovethetop(this,i)&&!a.leftofbegin(this,i))if(!a.belowthefold(this,i)&&!a.rightoffold(this,i))c.trigger("appear"),b=0;else if(++b>i.failure_limit)return!1})}var g=this,h,i={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!0,appear:null,load:null};return f&&(d!==f.failurelimit&&(f.failure_limit=f.failurelimit,delete f.failurelimit),d!==f.effectspeed&&(f.effect_speed=f.effectspeed,delete f.effectspeed),a.extend(i,f)),h=i.container===d||i.container===b?e:a(i.container),0===i.event.indexOf("scroll")&&h.bind(i.event,function(a){return j()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,c.one("appear",function(){if(!this.loaded){if(i.appear){var d=g.length;i.appear.call(b,d,i)}a("<img />").bind("load",function(){c.hide().attr("src",c.data(i.data_attribute))[i.effect](i.effect_speed),b.loaded=!0;var d=a.grep(g,function(a){return!a.loaded});g=a(d);if(i.load){var e=g.length;i.load.call(b,e,i)}}).attr("src",c.data(i.data_attribute))}}),0!==i.event.indexOf("scroll")&&c.bind(i.event,function(a){b.loaded||c.trigger("appear")})}),e.bind("resize",function(a){j()}),/iphone|ipod|ipad.*os 5/gi.test(navigator.appVersion)&&e.bind("pageshow",function(b){b.originalEvent.persisted&&g.each(function(){a(this).trigger("appear")})}),a(c).ready(function(){j()}),this},a.belowthefold=function(c,f){var g;return f.container===d||f.container===b?g=e.height()+e.scrollTop():g=a(f.container).offset().top+a(f.container).height(),g<=a(c).offset().top-f.threshold},a.rightoffold=function(c,f){var g;return f.container===d||f.container===b?g=e.width()+e.scrollLeft():g=a(f.container).offset().left+a(f.container).width(),g<=a(c).offset().left-f.threshold},a.abovethetop=function(c,f){var g;return f.container===d||f.container===b?g=e.scrollTop():g=a(f.container).offset().top,g>=a(c).offset().top+f.threshold+a(c).height()},a.leftofbegin=function(c,f){var g;return f.container===d||f.container===b?g=e.scrollLeft():g=a(f.container).offset().left,g>=a(c).offset().left+f.threshold+a(c).width()},a.inviewport=function(b,c){return!a.rightoffold(b,c)&&!a.leftofbegin(b,c)&&!a.belowthefold(b,c)&&!a.abovethetop(b,c)},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0})},"above-the-top":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-screen":function(b){return a.rightoffold(b,{threshold:0})},"left-of-screen":function(b){return!a.rightoffold(b,{threshold:0})},"in-viewport":function(b){return a.inviewport(b,{threshold:0})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0})}})})(jQuery,window,document)
|
658
sites/all/themes/gui/materiobasetheme/js/libs/jquery.transit.js
Normal file
658
sites/all/themes/gui/materiobasetheme/js/libs/jquery.transit.js
Normal file
@@ -0,0 +1,658 @@
|
||||
/*!
|
||||
* jQuery Transit - CSS3 transitions and transformations
|
||||
* Copyright(c) 2011 Rico Sta. Cruz <rico@ricostacruz.com>
|
||||
* MIT Licensed.
|
||||
*
|
||||
* http://ricostacruz.com/jquery.transit
|
||||
* http://github.com/rstacruz/jquery.transit
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
"use strict";
|
||||
|
||||
$.transit = {
|
||||
version: "0.1.3",
|
||||
|
||||
// Map of $.css() keys to values for 'transitionProperty'.
|
||||
// See https://developer.mozilla.org/en/CSS/CSS_transitions#Properties_that_can_be_animated
|
||||
propertyMap: {
|
||||
marginLeft : 'margin',
|
||||
marginRight : 'margin',
|
||||
marginBottom : 'margin',
|
||||
marginTop : 'margin',
|
||||
paddingLeft : 'padding',
|
||||
paddingRight : 'padding',
|
||||
paddingBottom : 'padding',
|
||||
paddingTop : 'padding'
|
||||
},
|
||||
|
||||
// Will simply transition "instantly" if false
|
||||
enabled: true,
|
||||
|
||||
// Set this to false if you don't want to use the transition end property.
|
||||
useTransitionEnd: false
|
||||
};
|
||||
|
||||
var div = document.createElement('div');
|
||||
var support = {};
|
||||
|
||||
// Helper function to get the proper vendor property name.
|
||||
// (`transition` => `WebkitTransition`)
|
||||
function getVendorPropertyName(prop) {
|
||||
var prefixes = ['Moz', 'Webkit', 'O', 'ms'];
|
||||
var prop_ = prop.charAt(0).toUpperCase() + prop.substr(1);
|
||||
|
||||
if (prop in div.style) { return prop; }
|
||||
|
||||
for (var i=0; i<prefixes.length; ++i) {
|
||||
var vendorProp = prefixes[i] + prop_;
|
||||
if (vendorProp in div.style) { return vendorProp; }
|
||||
}
|
||||
}
|
||||
|
||||
// Helper function to check if transform3D is supported.
|
||||
// Should return true for Webkits and Firefox 10+.
|
||||
function checkTransform3dSupport() {
|
||||
div.style[support.transform] = '';
|
||||
div.style[support.transform] = 'rotateY(90deg)';
|
||||
return div.style[support.transform] !== '';
|
||||
}
|
||||
|
||||
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
|
||||
|
||||
// Check for the browser's transitions support.
|
||||
// You can access this in jQuery's `$.support.transition`.
|
||||
// As per [jQuery's cssHooks documentation](http://api.jquery.com/jQuery.cssHooks/),
|
||||
// we set $.support.transition to a string of the actual property name used.
|
||||
support.transition = getVendorPropertyName('transition');
|
||||
support.transitionDelay = getVendorPropertyName('transitionDelay');
|
||||
support.transform = getVendorPropertyName('transform');
|
||||
support.transformOrigin = getVendorPropertyName('transformOrigin');
|
||||
support.transform3d = checkTransform3dSupport();
|
||||
|
||||
$.extend($.support, support);
|
||||
|
||||
var eventNames = {
|
||||
'MozTransition': 'transitionend',
|
||||
'OTransition': 'oTransitionEnd',
|
||||
'WebkitTransition': 'webkitTransitionEnd',
|
||||
'msTransition': 'MSTransitionEnd'
|
||||
};
|
||||
|
||||
// Detect the 'transitionend' event needed.
|
||||
var transitionEnd = support.transitionEnd = eventNames[support.transition] || null;
|
||||
|
||||
// Avoid memory leak in IE.
|
||||
div = null;
|
||||
|
||||
// ## $.cssEase
|
||||
// List of easing aliases that you can use with `$.fn.transition`.
|
||||
$.cssEase = {
|
||||
'_default': 'ease',
|
||||
'in': 'ease-in',
|
||||
'out': 'ease-out',
|
||||
'in-out': 'ease-in-out',
|
||||
'snap': 'cubic-bezier(0,1,.5,1)'
|
||||
};
|
||||
|
||||
// ## 'transform' CSS hook
|
||||
// Allows you to use the `transform` property in CSS.
|
||||
//
|
||||
// $("#hello").css({ transform: "rotate(90deg)" });
|
||||
//
|
||||
// $("#hello").css('transform');
|
||||
// //=> { rotate: '90deg' }
|
||||
//
|
||||
$.cssHooks.transform = {
|
||||
// The getter returns a `Transform` object.
|
||||
get: function(elem) {
|
||||
return $(elem).data('transform');
|
||||
},
|
||||
|
||||
// The setter accepts a `Transform` object or a string.
|
||||
set: function(elem, v) {
|
||||
var value = v;
|
||||
|
||||
if (!(value instanceof Transform)) {
|
||||
value = new Transform(value);
|
||||
}
|
||||
|
||||
// We've seen the 3D version of Scale() not work in Chrome when the
|
||||
// element being scaled extends outside of the viewport. Thus, we're
|
||||
// forcing Chrome to not use the 3d transforms as well. Not sure if
|
||||
// translate is affectede, but not risking it. Detection code from
|
||||
// http://davidwalsh.name/detecting-google-chrome-javascript
|
||||
if (support.transform === 'WebkitTransform' && !isChrome) {
|
||||
elem.style[support.transform] = value.toString(true);
|
||||
} else {
|
||||
elem.style[support.transform] = value.toString();
|
||||
}
|
||||
|
||||
$(elem).data('transform', value);
|
||||
}
|
||||
};
|
||||
|
||||
// ## 'transformOrigin' CSS hook
|
||||
// Allows the use for `transformOrigin` to define where scaling and rotation
|
||||
// is pivoted.
|
||||
//
|
||||
// $("#hello").css({ transformOrigin: '0 0' });
|
||||
//
|
||||
$.cssHooks.transformOrigin = {
|
||||
get: function(elem) {
|
||||
return elem.style[support.transformOrigin];
|
||||
},
|
||||
set: function(elem, value) {
|
||||
elem.style[support.transformOrigin] = value;
|
||||
}
|
||||
};
|
||||
|
||||
// ## 'transition' CSS hook
|
||||
// Allows you to use the `transition` property in CSS.
|
||||
//
|
||||
// $("#hello").css({ transition: 'all 0 ease 0' });
|
||||
//
|
||||
$.cssHooks.transition = {
|
||||
get: function(elem) {
|
||||
return elem.style[support.transition];
|
||||
},
|
||||
set: function(elem, value) {
|
||||
elem.style[support.transition] = value;
|
||||
}
|
||||
};
|
||||
|
||||
// ## Other CSS hooks
|
||||
// Allows you to rotate, scale and translate.
|
||||
registerCssHook('scale');
|
||||
registerCssHook('translate');
|
||||
registerCssHook('rotate');
|
||||
registerCssHook('rotateX');
|
||||
registerCssHook('rotateY');
|
||||
registerCssHook('rotate3d');
|
||||
registerCssHook('perspective');
|
||||
registerCssHook('skewX');
|
||||
registerCssHook('skewY');
|
||||
registerCssHook('x', true);
|
||||
registerCssHook('y', true);
|
||||
|
||||
// ## Transform class
|
||||
// This is the main class of a transformation property that powers
|
||||
// `$.fn.css({ transform: '...' })`.
|
||||
//
|
||||
// This is, in essence, a dictionary object with key/values as `-transform`
|
||||
// properties.
|
||||
//
|
||||
// var t = new Transform("rotate(90) scale(4)");
|
||||
//
|
||||
// t.rotate //=> "90deg"
|
||||
// t.scale //=> "4,4"
|
||||
//
|
||||
// Setters are accounted for.
|
||||
//
|
||||
// t.set('rotate', 4)
|
||||
// t.rotate //=> "4deg"
|
||||
//
|
||||
// Convert it to a CSS string using the `toString()` and `toString(true)` (for WebKit)
|
||||
// functions.
|
||||
//
|
||||
// t.toString() //=> "rotate(90deg) scale(4,4)"
|
||||
// t.toString(true) //=> "rotate(90deg) scale3d(4,4,0)" (WebKit version)
|
||||
//
|
||||
function Transform(str) {
|
||||
if (typeof str === 'string') { this.parse(str); }
|
||||
return this;
|
||||
}
|
||||
|
||||
Transform.prototype = {
|
||||
// ### setFromString()
|
||||
// Sets a property from a string.
|
||||
//
|
||||
// t.setFromString('scale', '2,4');
|
||||
// // Same as set('scale', '2', '4');
|
||||
//
|
||||
setFromString: function(prop, val) {
|
||||
var args =
|
||||
(typeof val === 'string') ? val.split(',') :
|
||||
(val.constructor === Array) ? val :
|
||||
[ val ];
|
||||
|
||||
args.unshift(prop);
|
||||
|
||||
Transform.prototype.set.apply(this, args);
|
||||
},
|
||||
|
||||
// ### set()
|
||||
// Sets a property.
|
||||
//
|
||||
// t.set('scale', 2, 4);
|
||||
//
|
||||
set: function(prop) {
|
||||
var args = Array.prototype.slice.apply(arguments, [1]);
|
||||
if (this.setter[prop]) {
|
||||
this.setter[prop].apply(this, args);
|
||||
} else {
|
||||
this[prop] = args.join(',');
|
||||
}
|
||||
},
|
||||
|
||||
get: function(prop) {
|
||||
if (this.getter[prop]) {
|
||||
return this.getter[prop].apply(this);
|
||||
} else {
|
||||
return this[prop] || 0;
|
||||
}
|
||||
},
|
||||
|
||||
setter: {
|
||||
// ### rotate
|
||||
//
|
||||
// .css({ rotate: 30 })
|
||||
// .css({ rotate: "30" })
|
||||
// .css({ rotate: "30deg" })
|
||||
// .css({ rotate: "30deg" })
|
||||
//
|
||||
rotate: function(theta) {
|
||||
this.rotate = unit(theta, 'deg');
|
||||
},
|
||||
|
||||
rotateX: function(theta) {
|
||||
this.rotateX = unit(theta, 'deg');
|
||||
},
|
||||
|
||||
rotateY: function(theta) {
|
||||
this.rotateY = unit(theta, 'deg');
|
||||
},
|
||||
|
||||
// ### scale
|
||||
//
|
||||
// .css({ scale: 9 }) //=> "scale(9,9)"
|
||||
// .css({ scale: '3,2' }) //=> "scale(3,2)"
|
||||
//
|
||||
scale: function(x, y) {
|
||||
if (y === undefined) { y = x; }
|
||||
this.scale = x + "," + y;
|
||||
},
|
||||
|
||||
// ### skewX + skewY
|
||||
skewX: function(x) {
|
||||
this.skewX = unit(x, 'deg');
|
||||
},
|
||||
|
||||
skewY: function(y) {
|
||||
this.skewY = unit(y, 'deg');
|
||||
},
|
||||
|
||||
// ### perspectvie
|
||||
perspective: function(dist) {
|
||||
this.perspective = unit(dist, 'px');
|
||||
},
|
||||
|
||||
// ### x / y
|
||||
// Translations. Notice how this keeps the other value.
|
||||
//
|
||||
// .css({ x: 4 }) //=> "translate(4px, 0)"
|
||||
// .css({ y: 10 }) //=> "translate(4px, 10px)"
|
||||
//
|
||||
x: function(x) {
|
||||
this.set('translate', x, null);
|
||||
},
|
||||
|
||||
y: function(y) {
|
||||
this.set('translate', null, y);
|
||||
},
|
||||
|
||||
// ### translate
|
||||
// Notice how this keeps the other value.
|
||||
//
|
||||
// .css({ translate: '2, 5' }) //=> "translate(2px, 5px)"
|
||||
//
|
||||
translate: function(x, y) {
|
||||
if (this._translateX === undefined) { this._translateX = 0; }
|
||||
if (this._translateY === undefined) { this._translateY = 0; }
|
||||
|
||||
if (x !== null) { this._translateX = unit(x, 'px'); }
|
||||
if (y !== null) { this._translateY = unit(y, 'px'); }
|
||||
|
||||
this.translate = this._translateX + "," + this._translateY;
|
||||
}
|
||||
},
|
||||
|
||||
getter: {
|
||||
x: function() {
|
||||
return this._translateX || 0;
|
||||
},
|
||||
|
||||
y: function() {
|
||||
return this._translateY || 0;
|
||||
},
|
||||
|
||||
scale: function() {
|
||||
var s = (this.scale || "1,1").split(',');
|
||||
if (s[0]) { s[0] = parseFloat(s[0]); }
|
||||
if (s[1]) { s[1] = parseFloat(s[1]); }
|
||||
|
||||
// "2.5,2.5" => 2.5
|
||||
// "2.5,1" => [2.5,1]
|
||||
return (s[0] === s[1]) ? s[0] : s;
|
||||
},
|
||||
|
||||
rotate3d: function() {
|
||||
var s = (this.rotate3d || "0,0,0,0deg").split(',');
|
||||
for (var i=0; i<=3; ++i) {
|
||||
if (s[i]) { s[i] = parseFloat(s[i]); }
|
||||
}
|
||||
if (s[3]) { s[3] = unit(s[3], 'deg'); }
|
||||
|
||||
return s;
|
||||
}
|
||||
},
|
||||
|
||||
// ### parse()
|
||||
// Parses from a string. Called on constructor.
|
||||
parse: function(str) {
|
||||
var self = this;
|
||||
str.replace(/([a-zA-Z0-9]+)\((.*?)\)/g, function(x, prop, val) {
|
||||
self.setFromString(prop, val);
|
||||
});
|
||||
},
|
||||
|
||||
// ### toString()
|
||||
// Converts to a `transition` CSS property string. If `use3d` is given,
|
||||
// it converts to a `-webkit-transition` CSS property string instead.
|
||||
toString: function(use3d) {
|
||||
var re = [];
|
||||
|
||||
for (var i in this) {
|
||||
if (this.hasOwnProperty(i)) {
|
||||
// Don't use 3D transformations if the browser can't support it.
|
||||
if ((!support.transform3d) && (
|
||||
(i === 'rotateX') ||
|
||||
(i === 'rotateY') ||
|
||||
(i === 'perspective') ||
|
||||
(i === 'transformOrigin'))) { continue; }
|
||||
|
||||
if (i[0] !== '_') {
|
||||
if (use3d && (i === 'scale')) {
|
||||
re.push(i + "3d(" + this[i] + ",1)");
|
||||
} else if (use3d && (i === 'translate')) {
|
||||
re.push(i + "3d(" + this[i] + ",0)");
|
||||
} else {
|
||||
re.push(i + "(" + this[i] + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return re.join(" ");
|
||||
}
|
||||
};
|
||||
|
||||
function callOrQueue(self, queue, fn) {
|
||||
if (queue === true) {
|
||||
self.queue(fn);
|
||||
} else if (queue) {
|
||||
self.queue(queue, fn);
|
||||
} else {
|
||||
fn();
|
||||
}
|
||||
}
|
||||
|
||||
// ### getProperties(dict)
|
||||
// Returns properties (for `transition-property`) for dictionary `props`. The
|
||||
// value of `props` is what you would expect in `$.css(...)`.
|
||||
function getProperties(props) {
|
||||
var re = [];
|
||||
|
||||
$.each(props, function(key) {
|
||||
key = $.camelCase(key); // Convert "text-align" => "textAlign"
|
||||
key = $.transit.propertyMap[key] || key;
|
||||
key = uncamel(key); // Convert back to dasherized
|
||||
|
||||
if ($.inArray(key, re) === -1) { re.push(key); }
|
||||
});
|
||||
|
||||
return re;
|
||||
}
|
||||
|
||||
// ### getTransition()
|
||||
// Returns the transition string to be used for the `transition` CSS property.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// getTransition({ opacity: 1, rotate: 30 }, 500, 'ease');
|
||||
// //=> 'opacity 500ms ease, -webkit-transform 500ms ease'
|
||||
//
|
||||
function getTransition(properties, duration, easing, delay) {
|
||||
// Get the CSS properties needed.
|
||||
var props = getProperties(properties);
|
||||
|
||||
// Account for aliases (`in` => `ease-in`).
|
||||
if ($.cssEase[easing]) { easing = $.cssEase[easing]; }
|
||||
|
||||
// Build the duration/easing/delay attributes for it.
|
||||
var attribs = '' + toMS(duration) + ' ' + easing;
|
||||
if (parseInt(delay, 10) > 0) { attribs += ' ' + toMS(delay); }
|
||||
|
||||
// For more properties, add them this way:
|
||||
// "margin 200ms ease, padding 200ms ease, ..."
|
||||
var transitions = [];
|
||||
$.each(props, function(i, name) {
|
||||
transitions.push(name + ' ' + attribs);
|
||||
});
|
||||
|
||||
return transitions.join(', ');
|
||||
}
|
||||
|
||||
// ## $.fn.transition
|
||||
// Works like $.fn.animate(), but uses CSS transitions.
|
||||
//
|
||||
// $("...").transition({ opacity: 0.1, scale: 0.3 });
|
||||
//
|
||||
// // Specific duration
|
||||
// $("...").transition({ opacity: 0.1, scale: 0.3 }, 500);
|
||||
//
|
||||
// // With duration and easing
|
||||
// $("...").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in');
|
||||
//
|
||||
// // With callback
|
||||
// $("...").transition({ opacity: 0.1, scale: 0.3 }, function() { ... });
|
||||
//
|
||||
// // With everything
|
||||
// $("...").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() { ... });
|
||||
//
|
||||
// // Alternate syntax
|
||||
// $("...").transition({
|
||||
// opacity: 0.1,
|
||||
// duration: 200,
|
||||
// delay: 40,
|
||||
// easing: 'in',
|
||||
// complete: function() { /* ... */ }
|
||||
// });
|
||||
//
|
||||
$.fn.transition = $.fn.transit = function(properties, duration, easing, callback) {
|
||||
var self = this;
|
||||
var delay = 0;
|
||||
var queue = true;
|
||||
|
||||
// Account for `.transition(properties, callback)`.
|
||||
if (typeof duration === 'function') {
|
||||
callback = duration;
|
||||
duration = undefined;
|
||||
}
|
||||
|
||||
// Account for `.transition(properties, duration, callback)`.
|
||||
if (typeof easing === 'function') {
|
||||
callback = easing;
|
||||
easing = undefined;
|
||||
}
|
||||
|
||||
// Alternate syntax.
|
||||
if (typeof properties.easing !== 'undefined') {
|
||||
easing = properties.easing;
|
||||
delete properties.easing;
|
||||
}
|
||||
|
||||
if (typeof properties.duration !== 'undefined') {
|
||||
duration = properties.duration;
|
||||
delete properties.duration;
|
||||
}
|
||||
|
||||
if (typeof properties.complete !== 'undefined') {
|
||||
callback = properties.complete;
|
||||
delete properties.complete;
|
||||
}
|
||||
|
||||
if (typeof properties.queue !== 'undefined') {
|
||||
queue = properties.queue;
|
||||
delete properties.queue;
|
||||
}
|
||||
|
||||
if (typeof properties.delay !== 'undefined') {
|
||||
delay = properties.delay;
|
||||
delete properties.delay;
|
||||
}
|
||||
|
||||
// Set defaults. (`400` duration, `ease` easing)
|
||||
if (typeof duration === 'undefined') { duration = $.fx.speeds._default; }
|
||||
if (typeof easing === 'undefined') { easing = $.cssEase._default; }
|
||||
|
||||
duration = toMS(duration);
|
||||
|
||||
// Build the `transition` property.
|
||||
var transitionValue = getTransition(properties, duration, easing, delay);
|
||||
|
||||
// Compute delay until callback.
|
||||
// If this becomes 0, don't bother setting the transition property.
|
||||
var work = $.transit.enabled && support.transition;
|
||||
var i = work ? (parseInt(duration, 10) + parseInt(delay, 10)) : 0;
|
||||
|
||||
// If there's nothing to do...
|
||||
if (i === 0) {
|
||||
var fn = function(next) {
|
||||
self.css(properties);
|
||||
if (callback) { callback.apply(self); }
|
||||
if (next) { next(); }
|
||||
};
|
||||
|
||||
callOrQueue(self, queue, fn);
|
||||
return self;
|
||||
}
|
||||
|
||||
// Save the old transitions of each element so we can restore it later.
|
||||
var oldTransitions = {};
|
||||
|
||||
var run = function(nextCall) {
|
||||
var bound = false;
|
||||
|
||||
// Prepare the callback.
|
||||
var cb = function() {
|
||||
if (bound) { self.unbind(transitionEnd, cb); }
|
||||
|
||||
if (i > 0) {
|
||||
self.each(function() {
|
||||
this.style[support.transition] = (oldTransitions[this] || null);
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof callback === 'function') { callback.apply(self); }
|
||||
if (typeof nextCall === 'function') { nextCall(); }
|
||||
};
|
||||
|
||||
if ((i > 0) && (transitionEnd) && ($.transit.useTransitionEnd)) {
|
||||
// Use the 'transitionend' event if it's available.
|
||||
bound = true;
|
||||
self.bind(transitionEnd, cb);
|
||||
} else {
|
||||
// Fallback to timers if the 'transitionend' event isn't supported.
|
||||
window.setTimeout(cb, i);
|
||||
}
|
||||
|
||||
// Apply transitions.
|
||||
self.each(function() {
|
||||
if (i > 0) {
|
||||
this.style[support.transition] = transitionValue;
|
||||
}
|
||||
$(this).css(properties);
|
||||
});
|
||||
};
|
||||
|
||||
// Defer running. This allows the browser to paint any pending CSS it hasn't
|
||||
// painted yet before doing the transitions.
|
||||
var deferredRun = function(next) {
|
||||
var i = 0;
|
||||
|
||||
// Durations that are too slow will get transitions mixed up.
|
||||
// (Tested on Mac/FF 7.0.1)
|
||||
if ((support.transition === 'MozTransition') && (i < 25)) { i = 25; }
|
||||
|
||||
window.setTimeout(function() { run(next); }, i);
|
||||
};
|
||||
|
||||
// Use jQuery's fx queue.
|
||||
callOrQueue(self, queue, deferredRun);
|
||||
|
||||
// Chainability.
|
||||
return this;
|
||||
};
|
||||
|
||||
function registerCssHook(prop, isPixels) {
|
||||
// For certain properties, the 'px' should not be implied.
|
||||
if (!isPixels) { $.cssNumber[prop] = true; }
|
||||
|
||||
$.transit.propertyMap[prop] = support.transform;
|
||||
|
||||
$.cssHooks[prop] = {
|
||||
get: function(elem) {
|
||||
var t = $(elem).css('transform') || new Transform();
|
||||
return t.get(prop);
|
||||
},
|
||||
|
||||
set: function(elem, value) {
|
||||
var t = $(elem).css('transform') || new Transform();
|
||||
t.setFromString(prop, value);
|
||||
|
||||
$(elem).css({ transform: t });
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// ### uncamel(str)
|
||||
// Converts a camelcase string to a dasherized string.
|
||||
// (`marginLeft` => `margin-left`)
|
||||
function uncamel(str) {
|
||||
return str.replace(/([A-Z])/g, function(letter) { return '-' + letter.toLowerCase(); });
|
||||
}
|
||||
|
||||
// ### unit(number, unit)
|
||||
// Ensures that number `number` has a unit. If no unit is found, assume the
|
||||
// default is `unit`.
|
||||
//
|
||||
// unit(2, 'px') //=> "2px"
|
||||
// unit("30deg", 'rad') //=> "30deg"
|
||||
//
|
||||
function unit(i, units) {
|
||||
if ((typeof i === "string") && (!i.match(/^[\-0-9\.]+$/))) {
|
||||
return i;
|
||||
} else {
|
||||
return "" + i + units;
|
||||
}
|
||||
}
|
||||
|
||||
// ### toMS(duration)
|
||||
// Converts given `duration` to a millisecond string.
|
||||
//
|
||||
// toMS('fast') //=> '400ms'
|
||||
// toMS(10) //=> '10ms'
|
||||
//
|
||||
function toMS(duration) {
|
||||
var i = duration;
|
||||
|
||||
// Allow for string durations like 'fast'.
|
||||
if ($.fx.speeds[i]) { i = $.fx.speeds[i]; }
|
||||
|
||||
return unit(i, 'ms');
|
||||
}
|
||||
|
||||
// Export some functions for testable-ness.
|
||||
$.transit.getTransitionValue = getTransition;
|
||||
})(jQuery);
|
20
sites/all/themes/gui/materiobasetheme/js/libs/jquery.transit.min.js
vendored
Normal file
20
sites/all/themes/gui/materiobasetheme/js/libs/jquery.transit.min.js
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
/*!
|
||||
* jQuery Transit - CSS3 transitions and transformations
|
||||
* Copyright(c) 2011 Rico Sta. Cruz <rico@ricostacruz.com>
|
||||
* MIT Licensed.
|
||||
*
|
||||
* http://ricostacruz.com/jquery.transit
|
||||
* http://github.com/rstacruz/jquery.transit
|
||||
*/
|
||||
(function(d){function k(a){var b=["Moz","Webkit","O","ms"],c=a.charAt(0).toUpperCase()+a.substr(1);if(a in i.style)return a;for(a=0;a<b.length;++a){var d=b[a]+c;if(d in i.style)return d}}function j(a){"string"===typeof a&&this.parse(a);return this}function p(a,b,c){!0===b?a.queue(c):b?a.queue(b,c):c()}function m(a){var b=[];d.each(a,function(a){a=d.camelCase(a);a=d.transit.propertyMap[a]||a;a=r(a);-1===d.inArray(a,b)&&b.push(a)});return b}function q(a,b,c,e){a=m(a);d.cssEase[c]&&(c=d.cssEase[c]);
|
||||
var h=""+n(b)+" "+c;0<parseInt(e,10)&&(h+=" "+n(e));var f=[];d.each(a,function(a,b){f.push(b+" "+h)});return f.join(", ")}function f(a,b){b||(d.cssNumber[a]=!0);d.transit.propertyMap[a]=e.transform;d.cssHooks[a]={get:function(b){return(d(b).css("transform")||new j).get(a)},set:function(b,e){var h=d(b).css("transform")||new j;h.setFromString(a,e);d(b).css({transform:h})}}}function r(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function g(a,b){return"string"===typeof a&&!a.match(/^[\-0-9\.]+$/)?
|
||||
a:""+a+b}function n(a){d.fx.speeds[a]&&(a=d.fx.speeds[a]);return g(a,"ms")}d.transit={version:"0.1.3",propertyMap:{marginLeft:"margin",marginRight:"margin",marginBottom:"margin",marginTop:"margin",paddingLeft:"padding",paddingRight:"padding",paddingBottom:"padding",paddingTop:"padding"},enabled:!0,useTransitionEnd:!1};var i=document.createElement("div"),e={},s=-1<navigator.userAgent.toLowerCase().indexOf("chrome");e.transition=k("transition");e.transitionDelay=k("transitionDelay");e.transform=k("transform");
|
||||
e.transformOrigin=k("transformOrigin");i.style[e.transform]="";i.style[e.transform]="rotateY(90deg)";e.transform3d=""!==i.style[e.transform];d.extend(d.support,e);var o=e.transitionEnd={MozTransition:"transitionend",OTransition:"oTransitionEnd",WebkitTransition:"webkitTransitionEnd",msTransition:"MSTransitionEnd"}[e.transition]||null,i=null;d.cssEase={_default:"ease","in":"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)"};d.cssHooks.transform={get:function(a){return d(a).data("transform")},
|
||||
set:function(a,b){var c=b;c instanceof j||(c=new j(c));a.style[e.transform]="WebkitTransform"===e.transform&&!s?c.toString(!0):c.toString();d(a).data("transform",c)}};d.cssHooks.transformOrigin={get:function(a){return a.style[e.transformOrigin]},set:function(a,b){a.style[e.transformOrigin]=b}};d.cssHooks.transition={get:function(a){return a.style[e.transition]},set:function(a,b){a.style[e.transition]=b}};f("scale");f("translate");f("rotate");f("rotateX");f("rotateY");f("rotate3d");f("perspective");
|
||||
f("skewX");f("skewY");f("x",!0);f("y",!0);j.prototype={setFromString:function(a,b){var c="string"===typeof b?b.split(","):b.constructor===Array?b:[b];c.unshift(a);j.prototype.set.apply(this,c)},set:function(a){var b=Array.prototype.slice.apply(arguments,[1]);this.setter[a]?this.setter[a].apply(this,b):this[a]=b.join(",")},get:function(a){return this.getter[a]?this.getter[a].apply(this):this[a]||0},setter:{rotate:function(a){this.rotate=g(a,"deg")},rotateX:function(a){this.rotateX=g(a,"deg")},rotateY:function(a){this.rotateY=
|
||||
g(a,"deg")},scale:function(a,b){void 0===b&&(b=a);this.scale=a+","+b},skewX:function(a){this.skewX=g(a,"deg")},skewY:function(a){this.skewY=g(a,"deg")},perspective:function(a){this.perspective=g(a,"px")},x:function(a){this.set("translate",a,null)},y:function(a){this.set("translate",null,a)},translate:function(a,b){void 0===this._translateX&&(this._translateX=0);void 0===this._translateY&&(this._translateY=0);null!==a&&(this._translateX=g(a,"px"));null!==b&&(this._translateY=g(b,"px"));this.translate=
|
||||
this._translateX+","+this._translateY}},getter:{x:function(){return this._translateX||0},y:function(){return this._translateY||0},scale:function(){var a=(this.scale||"1,1").split(",");a[0]&&(a[0]=parseFloat(a[0]));a[1]&&(a[1]=parseFloat(a[1]));return a[0]===a[1]?a[0]:a},rotate3d:function(){for(var a=(this.rotate3d||"0,0,0,0deg").split(","),b=0;3>=b;++b)a[b]&&(a[b]=parseFloat(a[b]));a[3]&&(a[3]=g(a[3],"deg"));return a}},parse:function(a){var b=this;a.replace(/([a-zA-Z0-9]+)\((.*?)\)/g,function(a,d,
|
||||
e){b.setFromString(d,e)})},toString:function(a){var b=[],c;for(c in this)if(this.hasOwnProperty(c)&&(e.transform3d||!("rotateX"===c||"rotateY"===c||"perspective"===c||"transformOrigin"===c)))"_"!==c[0]&&(a&&"scale"===c?b.push(c+"3d("+this[c]+",1)"):a&&"translate"===c?b.push(c+"3d("+this[c]+",0)"):b.push(c+"("+this[c]+")"));return b.join(" ")}};d.fn.transition=d.fn.transit=function(a,b,c,f){var h=this,g=0,i=!0;"function"===typeof b&&(f=b,b=void 0);"function"===typeof c&&(f=c,c=void 0);"undefined"!==
|
||||
typeof a.easing&&(c=a.easing,delete a.easing);"undefined"!==typeof a.duration&&(b=a.duration,delete a.duration);"undefined"!==typeof a.complete&&(f=a.complete,delete a.complete);"undefined"!==typeof a.queue&&(i=a.queue,delete a.queue);"undefined"!==typeof a.delay&&(g=a.delay,delete a.delay);"undefined"===typeof b&&(b=d.fx.speeds._default);"undefined"===typeof c&&(c=d.cssEase._default);var b=n(b),j=q(a,b,c,g),l=d.transit.enabled&&e.transition?parseInt(b,10)+parseInt(g,10):0;if(0===l)return p(h,i,function(b){h.css(a);
|
||||
f&&f.apply(h);b&&b()}),h;var k={},m=function(b){var c=false,g=function(){c&&h.unbind(o,g);l>0&&h.each(function(){this.style[e.transition]=k[this]||null});typeof f==="function"&&f.apply(h);typeof b==="function"&&b()};if(l>0&&o&&d.transit.useTransitionEnd){c=true;h.bind(o,g)}else window.setTimeout(g,l);h.each(function(){l>0&&(this.style[e.transition]=j);d(this).css(a)})};p(h,i,function(a){var b=0;e.transition==="MozTransition"&&b<25&&(b=25);window.setTimeout(function(){m(a)},b)});return this};d.transit.getTransitionValue=
|
||||
q})(jQuery);
|
4
sites/all/themes/gui/materiobasetheme/js/libs/modernizr-2.6.1.min.js
vendored
Normal file
4
sites/all/themes/gui/materiobasetheme/js/libs/modernizr-2.6.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 646 B |
Binary file not shown.
After Width: | Height: | Size: 872 B |
@@ -0,0 +1,435 @@
|
||||
/*!
|
||||
Chosen, a Select Box Enhancer for jQuery and Prototype
|
||||
by Patrick Filler for Harvest, http://getharvest.com
|
||||
|
||||
Version 1.1.0
|
||||
Full source at https://github.com/harvesthq/chosen
|
||||
Copyright (c) 2011 Harvest http://getharvest.com
|
||||
|
||||
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
|
||||
This file is generated by `grunt build`, do not edit it by hand.
|
||||
*/
|
||||
|
||||
/* @group Base */
|
||||
.chosen-container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
font-size: 13px;
|
||||
zoom: 1;
|
||||
*display: inline;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
.chosen-container .chosen-drop {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: -9999px;
|
||||
z-index: 1010;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
border: 1px solid #aaa;
|
||||
border-top: 0;
|
||||
background: #fff;
|
||||
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.chosen-container.chosen-with-drop .chosen-drop {
|
||||
left: 0;
|
||||
}
|
||||
.chosen-container a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Single Chosen */
|
||||
.chosen-container-single .chosen-single {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
padding: 0 0 0 8px;
|
||||
height: 23px;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 5px;
|
||||
background-color: #fff;
|
||||
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
|
||||
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
|
||||
background-clip: padding-box;
|
||||
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||
color: #444;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
line-height: 24px;
|
||||
}
|
||||
.chosen-container-single .chosen-default {
|
||||
color: #999;
|
||||
}
|
||||
.chosen-container-single .chosen-single span {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin-right: 26px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-single .chosen-single-with-deselect span {
|
||||
margin-right: 38px;
|
||||
}
|
||||
.chosen-container-single .chosen-single abbr {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 26px;
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||
font-size: 1px;
|
||||
}
|
||||
.chosen-container-single .chosen-single abbr:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-single .chosen-single div {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
display: block;
|
||||
width: 18px;
|
||||
height: 100%;
|
||||
}
|
||||
.chosen-container-single .chosen-single div b {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('chosen-sprite.png') no-repeat 0px 2px;
|
||||
}
|
||||
.chosen-container-single .chosen-search {
|
||||
position: relative;
|
||||
z-index: 1010;
|
||||
margin: 0;
|
||||
padding: 3px 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-single .chosen-search input[type="text"] {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin: 1px 0;
|
||||
padding: 4px 20px 4px 5px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
outline: 0;
|
||||
border: 1px solid #aaa;
|
||||
background: white url('chosen-sprite.png') no-repeat 100% -20px;
|
||||
background: url('chosen-sprite.png') no-repeat 100% -20px;
|
||||
font-size: 1em;
|
||||
font-family: sans-serif;
|
||||
line-height: normal;
|
||||
border-radius: 0;
|
||||
}
|
||||
.chosen-container-single .chosen-drop {
|
||||
margin-top: -1px;
|
||||
border-radius: 0 0 4px 4px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
|
||||
position: absolute;
|
||||
left: -9999px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Results */
|
||||
.chosen-container .chosen-results {
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
margin: 0 4px 4px 0;
|
||||
padding: 0 0 0 4px;
|
||||
max-height: 240px;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.chosen-container .chosen-results li {
|
||||
display: none;
|
||||
margin: 0;
|
||||
padding: 5px 6px;
|
||||
list-style: none;
|
||||
line-height: 15px;
|
||||
-webkit-touch-callout: none;
|
||||
}
|
||||
.chosen-container .chosen-results li.active-result {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
.chosen-container .chosen-results li.disabled-result {
|
||||
display: list-item;
|
||||
color: #ccc;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container .chosen-results li.highlighted {
|
||||
background-color: #3875d7;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
|
||||
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
|
||||
color: #fff;
|
||||
}
|
||||
.chosen-container .chosen-results li.no-results {
|
||||
display: list-item;
|
||||
background: #f4f4f4;
|
||||
}
|
||||
.chosen-container .chosen-results li.group-result {
|
||||
display: list-item;
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container .chosen-results li.group-option {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.chosen-container .chosen-results li em {
|
||||
font-style: normal;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Multi Chosen */
|
||||
.chosen-container-multi .chosen-choices {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
border: 1px solid #aaa;
|
||||
background-color: #fff;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
|
||||
cursor: text;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li {
|
||||
float: left;
|
||||
list-style: none;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-field {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
|
||||
margin: 1px 0;
|
||||
padding: 5px;
|
||||
height: 15px;
|
||||
outline: 0;
|
||||
border: 0 !important;
|
||||
background: transparent !important;
|
||||
box-shadow: none;
|
||||
color: #666;
|
||||
font-size: 100%;
|
||||
font-family: sans-serif;
|
||||
line-height: normal;
|
||||
border-radius: 0;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-field .default {
|
||||
color: #999;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice {
|
||||
position: relative;
|
||||
margin: 3px 0 3px 5px;
|
||||
padding: 3px 20px 3px 5px;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 3px;
|
||||
background-color: #e4e4e4;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-clip: padding-box;
|
||||
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
|
||||
color: #333;
|
||||
line-height: 13px;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
right: 3px;
|
||||
display: block;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
background: url('chosen-sprite.png') -42px 1px no-repeat;
|
||||
font-size: 1px;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-disabled {
|
||||
padding-right: 5px;
|
||||
border: 1px solid #ccc;
|
||||
background-color: #e4e4e4;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
|
||||
color: #666;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-focus {
|
||||
background: #d4d4d4;
|
||||
}
|
||||
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
|
||||
background-position: -42px -10px;
|
||||
}
|
||||
.chosen-container-multi .chosen-results {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.chosen-container-multi .chosen-drop .result-selected {
|
||||
display: list-item;
|
||||
color: #ccc;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Active */
|
||||
.chosen-container-active .chosen-single {
|
||||
border: 1px solid #5897fb;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single {
|
||||
border: 1px solid #aaa;
|
||||
-moz-border-radius-bottomright: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
-moz-border-radius-bottomleft: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
|
||||
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
|
||||
box-shadow: 0 1px 0 #fff inset;
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||
border-left: none;
|
||||
background: transparent;
|
||||
}
|
||||
.chosen-container-active.chosen-with-drop .chosen-single div b {
|
||||
background-position: -18px 2px;
|
||||
}
|
||||
.chosen-container-active .chosen-choices {
|
||||
border: 1px solid #5897fb;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
|
||||
color: #111 !important;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Disabled Support */
|
||||
.chosen-disabled {
|
||||
opacity: 0.5 !important;
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-disabled .chosen-single {
|
||||
cursor: default;
|
||||
}
|
||||
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Right to Left */
|
||||
.chosen-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
.chosen-rtl .chosen-single {
|
||||
overflow: visible;
|
||||
padding: 0 8px 0 0;
|
||||
}
|
||||
.chosen-rtl .chosen-single span {
|
||||
margin-right: 0;
|
||||
margin-left: 26px;
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl .chosen-single-with-deselect span {
|
||||
margin-left: 38px;
|
||||
}
|
||||
.chosen-rtl .chosen-single div {
|
||||
right: auto;
|
||||
left: 3px;
|
||||
}
|
||||
.chosen-rtl .chosen-single abbr {
|
||||
right: auto;
|
||||
left: 26px;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li {
|
||||
float: right;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-choice {
|
||||
margin: 3px 5px 3px 0;
|
||||
padding: 3px 5px 3px 19px;
|
||||
}
|
||||
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
|
||||
right: auto;
|
||||
left: 4px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
|
||||
.chosen-rtl .chosen-drop {
|
||||
left: 9999px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single .chosen-results {
|
||||
margin: 0 0 4px 4px;
|
||||
padding: 0 4px 0 0;
|
||||
}
|
||||
.chosen-rtl .chosen-results li.group-option {
|
||||
padding-right: 15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
|
||||
border-right: none;
|
||||
}
|
||||
.chosen-rtl .chosen-search input[type="text"] {
|
||||
padding: 4px 5px 4px 20px;
|
||||
background: white url('chosen-sprite.png') no-repeat -30px -20px;
|
||||
background: url('chosen-sprite.png') no-repeat -30px -20px;
|
||||
direction: rtl;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single .chosen-single div b {
|
||||
background-position: 6px 2px;
|
||||
}
|
||||
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
|
||||
background-position: -12px 2px;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
/* @group Retina compatibility */
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
|
||||
.chosen-rtl .chosen-search input[type="text"],
|
||||
.chosen-container-single .chosen-single abbr,
|
||||
.chosen-container-single .chosen-single div b,
|
||||
.chosen-container-single .chosen-search input[type="text"],
|
||||
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
|
||||
.chosen-container .chosen-results-scroll-down span,
|
||||
.chosen-container .chosen-results-scroll-up span {
|
||||
background-image: url('chosen-sprite@2x.png') !important;
|
||||
background-size: 52px 37px !important;
|
||||
background-repeat: no-repeat !important;
|
||||
}
|
||||
}
|
||||
/* @end */
|
File diff suppressed because it is too large
Load Diff
2
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.jquery.min.js
vendored
Normal file
2
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.min.css
vendored
Normal file
3
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
2
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.proto.min.js
vendored
Normal file
2
sites/all/themes/gui/materiobasetheme/js/libs/src/chosen_v1.1.0/chosen.proto.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,108 @@
|
||||
/**
|
||||
* okaidia theme for JavaScript, CSS and HTML
|
||||
* Loosely based on Monokai textmate theme by http://www.monokai.nl/
|
||||
* @author ocodia
|
||||
*/
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #f8f8f2;
|
||||
text-shadow: 0 1px rgba(0,0,0,0.3);
|
||||
font-family: Consolas, Monaco, 'Andale Mono', monospace;
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #272822;
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.tag {
|
||||
color: #f92672;
|
||||
}
|
||||
|
||||
.token.boolean,
|
||||
.token.number{
|
||||
color: #ae81ff;
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string {
|
||||
color: #a6e22e;
|
||||
}
|
||||
|
||||
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.attr-value
|
||||
{
|
||||
color: #e6db74;
|
||||
}
|
||||
|
||||
|
||||
.token.keyword{
|
||||
color: #66d9ef;
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important {
|
||||
color: #fd971f;
|
||||
}
|
||||
|
||||
.token.important {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Prism: Lightweight, robust, elegant syntax highlighting
|
||||
* MIT license http://www.opensource.org/licenses/mit-license.php/
|
||||
* @author Lea Verou http://lea.verou.me
|
||||
*/(function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.util.clone(e[i]));return r;case"Array":return e.slice()}return e}},languages:{extend:function(e,n){var r=t.util.clone(t.languages[e]);for(var i in n)r[i]=n[i];return r},insertBefore:function(e,n,r,i){i=i||t.languages;var s=i[e],o={};for(var u in s)if(s.hasOwnProperty(u)){if(u==n)for(var a in r)r.hasOwnProperty(a)&&(o[a]=r[a]);o[u]=s[u]}return i[e]=o},DFS:function(e,n){for(var r in e){n.call(e,r,e[r]);t.util.type(e)==="Object"&&t.languages.DFS(e[r],n)}}},highlightAll:function(e,n){var r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code');for(var i=0,s;s=r[i++];)t.highlightElement(s,e===!0,n)},highlightElement:function(r,i,s){var o,u,a=r;while(a&&!e.test(a.className))a=a.parentNode;if(a){o=(a.className.match(e)||[,""])[1];u=t.languages[o]}if(!u)return;r.className=r.className.replace(e,"").replace(/\s+/g," ")+" language-"+o;a=r.parentNode;/pre/i.test(a.nodeName)&&(a.className=a.className.replace(e,"").replace(/\s+/g," ")+" language-"+o);var f=r.textContent;if(!f)return;f=f.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ");var l={element:r,language:o,grammar:u,code:f};t.hooks.run("before-highlight",l);if(i&&self.Worker){var c=new Worker(t.filename);c.onmessage=function(e){l.highlightedCode=n.stringify(JSON.parse(e.data),o);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(l.element);t.hooks.run("after-highlight",l)};c.postMessage(JSON.stringify({language:l.language,code:l.code}))}else{l.highlightedCode=t.highlight(l.code,l.grammar,l.language);t.hooks.run("before-insert",l);l.element.innerHTML=l.highlightedCode;s&&s.call(r);t.hooks.run("after-highlight",l)}},highlight:function(e,r,i){return n.stringify(t.tokenize(e,r),i)},tokenize:function(e,n,r){var i=t.Token,s=[e],o=n.rest;if(o){for(var u in o)n[u]=o[u];delete n.rest}e:for(var u in n){if(!n.hasOwnProperty(u)||!n[u])continue;var a=n[u],f=a.inside,l=!!a.lookbehind,c=0;a=a.pattern||a;for(var h=0;h<s.length;h++){var p=s[h];if(s.length>e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+"</"+s.tag+">"};if(!self.document){self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}})();;
|
||||
Prism.languages.markup={comment:/<!--[\w\W]*?-->/g,prolog:/<\?.+?\?>/,doctype:/<!DOCTYPE.+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/&#?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});;
|
||||
Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/ig,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,ignore:/&(lt|gt|amp);/gi,punctuation:/[\{\};:]/g};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<|<)style[\w\W]*?(>|>)[\w\W]*?(<|<)\/style(>|>)/ig,inside:{tag:{pattern:/(<|<)style[\w\W]*?(>|>)|(<|<)\/style(>|>)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css}}});;
|
||||
Prism.languages.clike={comment:{pattern:/(^|[^\\])(\/\*[\w\W]*?\*\/|(^|[^:])\/\/.*?(\r?\n|$))/g,lookbehind:!0},string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/ig,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/ig,inside:{punctuation:/\(/}}, number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|(&){1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};;
|
||||
Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(var|let|if|else|while|do|for|return|in|instanceof|function|new|with|typeof|try|catch|finally|null|break|continue)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g});Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}});Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<|<)script[\w\W]*?(>|>)[\w\W]*?(<|<)\/script(>|>)/ig,inside:{tag:{pattern:/(<|<)script[\w\W]*?(>|>)|(<|<)\/script(>|>)/ig,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});;
|
@@ -0,0 +1,203 @@
|
||||
/* Reset */
|
||||
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
|
||||
|
||||
blockquote, q { quotes: none; }
|
||||
blockquote:before, blockquote:after, q:before, q:after { content: ""; content: none; }
|
||||
ins { background-color: #ff9; color: #000; text-decoration: none; }
|
||||
mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
|
||||
del { text-decoration: line-through; }
|
||||
abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
|
||||
table { border-collapse: collapse; border-spacing: 0; }
|
||||
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
|
||||
input, select { vertical-align: middle; }
|
||||
|
||||
body { font:13px/1.231 sans-serif; *font-size:small; } /* Hack retained to preserve specificity */
|
||||
select, input, textarea, button { font:99% sans-serif; }
|
||||
pre, code, kbd, samp { font-family: monospace, sans-serif; }
|
||||
|
||||
|
||||
body { background: #EEE; color: #444; line-height: 1.4em; }
|
||||
|
||||
header h1 { color: black; font-size: 2em; line-height: 1.1em; display: inline-block; height: 27px; margin: 20px 0 25px; }
|
||||
header h1 small { font-size: 0.6em; }
|
||||
|
||||
div#content { background: white; border: 1px solid #ccc; border-width: 0 1px 1px; margin: 0 auto; padding: 40px 50px 40px; width: 738px; }
|
||||
|
||||
footer { color: #999; padding-top: 40px; font-size: 0.8em; text-align: center; }
|
||||
|
||||
body { font-family: sans-serif; font-size: 1em; }
|
||||
|
||||
p { margin: 0 0 .7em; max-width: 700px; }
|
||||
|
||||
h2 { border-bottom: 1px solid #ccc; font-size: 1.2em; margin: 3em 0 1em 0; font-weight: bold;}
|
||||
h3 { font-weight: bold; }
|
||||
|
||||
h2.intro { border-bottom: none; font-size: 1em; font-weight: normal; margin-top:0; }
|
||||
|
||||
ul li { list-style: disc; margin-left: 1em; margin-bottom: 1.25em; }
|
||||
ol li { margin-left: 1.25em; }
|
||||
ol ul, ul ul { margin: .25em 0 0; }
|
||||
ol ul li, ul ul li { list-style-type: circle; margin: 0 0 .25em 1em; }
|
||||
|
||||
li > p { margin-top: .25em; }
|
||||
|
||||
div.side-by-side { width: 100%; margin-bottom: 1em; }
|
||||
div.side-by-side > div { float: left; width: 49%; }
|
||||
div.side-by-side > div > em { margin-bottom: 10px; display: block; }
|
||||
|
||||
.faqs em { display: block; }
|
||||
|
||||
.clearfix:after {
|
||||
content: "\0020";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
a { color: #F36C00; outline: none; text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
|
||||
ul.credits li { margin-bottom: .25em; }
|
||||
|
||||
strong { font-weight: bold; }
|
||||
i { font-style: italic; }
|
||||
|
||||
.button {
|
||||
background: #fafafa;
|
||||
background: -webkit-linear-gradient(top, #ffffff, #eeeeee);
|
||||
background: -moz-linear-gradient(top, #ffffff, #eeeeee);
|
||||
background: -o-linear-gradient(top, #ffffff, #eeeeee);
|
||||
background: linear-gradient(to bottom, #ffffff, #eeeeee);
|
||||
border: 1px solid #bbbbbb;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.2);
|
||||
color: #555555;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
height: 31px;
|
||||
line-height: 28px;
|
||||
outline: none;
|
||||
padding: 0 13px;
|
||||
text-shadow: 0 1px 0 white;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.button-blue {
|
||||
background: #1385e5;
|
||||
background: -webkit-linear-gradient(top, #53b2fc, #1385e5);
|
||||
background: -moz-linear-gradient(top, #53b2fc, #1385e5);
|
||||
background: -o-linear-gradient(top, #53b2fc, #1385e5);
|
||||
background: linear-gradient(to bottom, #53b2fc, #1385e5);
|
||||
border-color: #075fa9;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
|
||||
/* Tweak navbar brand link to be super sleek
|
||||
-------------------------------------------------- */
|
||||
.oss-bar {
|
||||
top: 0;
|
||||
right: 20px;
|
||||
position: fixed;
|
||||
z-index: 1030;
|
||||
}
|
||||
.oss-bar ul {
|
||||
float: right;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.oss-bar ul li {
|
||||
list-style: none;
|
||||
float: left;
|
||||
line-height: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.oss-bar ul li a {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
border: 0;
|
||||
margin-top: -10px;
|
||||
display: block;
|
||||
height: 58px;
|
||||
background: #F36C00 url(oss-credit.png) no-repeat 20px 22px;
|
||||
padding: 22px 20px 12px 20px;
|
||||
text-indent: 120%; /* stupid padding */
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
-webkit-transition: all 0.10s ease-in-out;
|
||||
-moz-transition: all 0.10s ease-in-out;
|
||||
transition: all 0.15s ease-in-out;
|
||||
}
|
||||
.oss-bar ul li a:hover {
|
||||
margin-top: 0px;
|
||||
}
|
||||
.oss-bar a.harvest {
|
||||
width: 196px;
|
||||
background-color: #F36C00;
|
||||
background-position: -142px 22px;
|
||||
padding-right: 22px; /* optical illusion */
|
||||
}
|
||||
.oss-bar a.fork {
|
||||
width: 162px;
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.docs-table th, .docs-table td {
|
||||
border: 1px solid #000;
|
||||
padding: 4px 6px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.docs-table td:last-child {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.docs-table th {
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#content pre[class*=language-] {
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#content pre[class*=language-] code {
|
||||
font-size: 14px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#content code[class*=language-] {
|
||||
font-size: 12px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.anchor {
|
||||
color: inherit;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.anchor:hover {
|
||||
background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSI3Ij48ZyBmaWxsPSIjNDE0MDQyIj48cGF0aCBkPSJNOS44IDdoLS45bC0uOS0uMWMtLjctLjMtMS40LS43LTEuOC0xLjMtLjItLjEtLjMtLjMtLjMtLjVsLS4zLS40Yy0uMS0uNC0uMi0uOC0uMi0xLjIgMC0uNC4xLS44LjItMS4yaDEuN2MtLjMuNC0uNC44LS40IDEuMiAwIC40LjEuOC4zIDEuMS4xLjIuMi4zLjQuNC4xLjEuMi4yLjQuMy4zLjIuNy4zIDEgLjNoMy40YzEuMiAwIDIuMi0uOSAyLjItMi4xcy0xLTIuMS0yLjItMi4xaC0xLjRjLS4zLS42LS43LTEtMS4yLTEuNGgyLjZjMiAwIDMuNiAxLjYgMy42IDMuNXMtMS42IDMuNS0zLjYgMy41aC0yLjZ6TTguNCAyYy0uMS0uMS0uMi0uMy0uNC0uMy0uMy0uMi0uNy0uMy0xLS4zaC0zLjRjLTEuMiAwLTIuMi45LTIuMiAyLjEgMCAxLjIgMSAyLjEgMi4yIDIuMWgxLjRjLjMuNS43IDEgMS4yIDEuNGgtMi42Yy0yIDAtMy42LTEuNi0zLjYtMy41czEuNi0zLjUgMy42LTMuNWgzLjUwMDAwMDAwMDAwMDAwMDRsLjkuMWMuNy4yIDEuNC43IDEuOCAxLjMuMS4xLjIuMy4zLjUuMS4xLjIuMy4yLjUuMS40LjIuOC4yIDEuMiAwIC40LS4xLjgtLjIgMS4yaC0xLjZjLjMtLjUuNC0uOS40LTEuM3MtLjEtLjgtLjMtMS4xYy0uMS0uMi0uMi0uMy0uNC0uNHoiLz48L2c+PC9zdmc+) 0 50% no-repeat;
|
||||
background-size: 21px 9px;
|
||||
margin-left: -27px;
|
||||
padding-left: 27px;
|
||||
text-decoration: none;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,269 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Chosen: A jQuery Plugin by Harvest to Tame Unwieldy Select Boxes</title>
|
||||
<link rel="stylesheet" href="docsupport/style.css">
|
||||
<link rel="stylesheet" href="docsupport/prism.css">
|
||||
<link rel="stylesheet" href="chosen.css">
|
||||
<style type="text/css" media="all">
|
||||
/* fix rtl for demo */
|
||||
.chosen-rtl .chosen-drop { left: -9000px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="content">
|
||||
<header>
|
||||
<h1>Chosen <small>(<span id="latest-version">v1.1.0</span>)</small></h1>
|
||||
</header>
|
||||
<p>Chosen has a number of options and attributes that allow you to have full control of your select boxes.</p>
|
||||
|
||||
<h2><a name="options" class="anchor" href="#options">Options</a></h2>
|
||||
<p>The following options are available to pass into Chosen on instantiation.</p>
|
||||
|
||||
<h3>Example:</h3>
|
||||
<pre>
|
||||
<code class="language-javascript">$(".my_select_box").chosen({
|
||||
disable_search_threshold: 10,
|
||||
no_results_text: "Oops, nothing found!",
|
||||
width: "95%"
|
||||
});</code>
|
||||
</pre>
|
||||
|
||||
<table class="docs-table">
|
||||
<tr>
|
||||
<th>Option</th><th>Default</th><th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>allow_single_deselect</td>
|
||||
<td>false</td>
|
||||
<td>When set to <code class="language-javascript">true</code> on a single select, Chosen adds a UI element which selects the first elment (if it is blank).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disable_search</td>
|
||||
<td>false</td>
|
||||
<td>When set to <code class="language-javascript">true</code>, Chosen will not display the search field (single selects only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disable_search_threshold</td>
|
||||
<td>0</td>
|
||||
<td>Hide the search input on single selects if there are fewer than (n) options.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>enable_split_word_search</td>
|
||||
<td>true</td>
|
||||
<td>By default, searching will match on any word within an option tag. Set this option to <code class="language-javascript">false</code> if you want to only match on the entire text of an option tag.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>inherit_select_classes</td>
|
||||
<td>false</td>
|
||||
<td>When set to <code class="language-javascript">true</code>, Chosen will grab any classes on the original select field and add them to Chosen’s container div.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>max_selected_options</td>
|
||||
<td>Infinity</td>
|
||||
<td>Limits how many options the user can select. When the limit is reached, the <code class="language-javascript">chosen:maxselected</code> event is triggered.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>no_results_text</td>
|
||||
<td>"No results match"</td>
|
||||
<td>The text to be displayed when no matching results are found. The current search is shown at the end of the text (<i>e.g.</i>,
|
||||
No results match "Bad Search").</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>placeholder_text_multiple</td>
|
||||
<td>"Select Some Options"</td>
|
||||
<td>The text to be displayed as a placeholder when no options are selected for a multiple select.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>placeholder_text_single</td>
|
||||
<td>"Select an Option"</td>
|
||||
<td>The text to be displayed as a placeholder when no options are selected for a single select.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>search_contains</td>
|
||||
<td>false</td>
|
||||
<td>By default, Chosen’s search matches starting at the beginning of a word. Setting this option to <code class="language-javascript">true</code> allows matches starting from anywhere within a word. This is especially useful for options that include a lot of special characters or phrases in ()s and []s.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>single_backstroke_delete</td>
|
||||
<td>true</td>
|
||||
<td>By default, pressing delete/backspace on multiple selects will remove a selected choice. When <code class="language-javascript">false</code>, pressing delete/backspace will highlight the last choice, and a second press deselects it.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>width</td>
|
||||
<td>Original select width.</td>
|
||||
<td>The width of the Chosen select box. By default, Chosen attempts to match the width of the select box you are replacing. If your select is hidden when Chosen is instantiated, you must specify a width or the select will show up with a width of 0.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>display_disabled_options</td>
|
||||
<td>true</td>
|
||||
<td>By default, Chosen includes disabled options in search results with a special styling. Setting this option to false will hide disabled results and exclude them from searches.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>display_selected_options</td>
|
||||
<td>true</td>
|
||||
<td>
|
||||
<p>By default, Chosen includes selected options in search results with a special styling. Setting this option to false will hide selected results and exclude them from searches.</p>
|
||||
<p><strong>Note:</strong> this is for multiple selects only. In single selects, the selected result will always be displayed.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><a name="attributes" class="anchor" href="#attributes">Attributes</a></h2>
|
||||
<p>Certain attributes placed on the select tag or its options can be used to configure Chosen.</p>
|
||||
|
||||
<h3>Example:</h3>
|
||||
|
||||
<pre>
|
||||
<code class="language-markup"><select class="my_select_box" data-placeholder="Select Your Options">
|
||||
<option value="1">Option 1</option>
|
||||
<option value="2" selected>Option 2</option>
|
||||
<option value="3" disabled>Option 3</option>
|
||||
</select></code>
|
||||
</pre>
|
||||
|
||||
<table class="docs-table">
|
||||
<tr>
|
||||
<th>Attribute</th><th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>data-placeholder</td>
|
||||
<td>
|
||||
<p>The text to be displayed as a placeholder when no options are selected for a select. Defaults to "Select an Option" for single selects or "Select Some Options" for multiple selects.</p>
|
||||
<p><strong>Note:</strong>This attribute overrides anything set in the <code class="language-javascript">placeholder_text_multiple</code> or <code class="language-javascript">placeholder_text_single</code> options.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>multiple</td>
|
||||
<td>The attribute <code class="language-html">multiple</code> on your select box dictates whether Chosen will render a multiple or single select.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>selected, disabled</td>
|
||||
<td>Chosen automatically highlights selected options and disables disabled options.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><a name="classes" class="anchor" href="#classes">Classes</a></h2>
|
||||
<p>Classes placed on the select tag can be used to configure Chosen.</p>
|
||||
|
||||
<h3>Example:</h3>
|
||||
|
||||
<pre>
|
||||
<code class="language-markup"><select class="my_select_box chosen-rtl">
|
||||
<option value="1">Option 1</option>
|
||||
<option value="2">Option 2</option>
|
||||
<option value="3">Option 3</option>
|
||||
</select></code>
|
||||
</pre>
|
||||
|
||||
<table class="docs-table">
|
||||
<tr>
|
||||
<th>Classname</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen-rtl</td>
|
||||
<td>
|
||||
<p>Chosen supports right-to-left text in select boxes. Add the class <code class="language-html">chosen-rtl</code> to your select tag to support right-to-left text options.</p>
|
||||
<p><strong>Note:</strong> The <code class="language-html">chosen-rtl</code> class will pass through to the Chosen select even when the <code class="language-javascript">inherit_select_classes</code> option is set to <code class="language-javascript">false</code>.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><a name="triggered-events" class="anchor" href="#triggered-events">Triggered Events</a></h2>
|
||||
<p>Chosen triggers a number of standard and custom events on the original select field.</p>
|
||||
|
||||
<h3>Example:</h3>
|
||||
|
||||
<pre>
|
||||
<code class="language-javascript">$('.my_select_box').on('change', function(evt, params) {
|
||||
do_something(evt, params);
|
||||
});</code>
|
||||
</pre>
|
||||
|
||||
<table class="docs-table">
|
||||
<tr>
|
||||
<th>Event</th><th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>change</td>
|
||||
<td>
|
||||
<p>Chosen triggers the standard DOM event whenever a selection is made (it also sends a <code class="language-javascript">selected</code> or <code class="language-javascript">deselected</code> parameter that tells you which option was changed).</p>
|
||||
<p><strong>Note:</strong> in order to use change in the Prototype version, you have to include the <a href="https://github.com/kangax/protolicious/blob/5b56fdafcd7d7662c9d648534225039b2e78e371/event.simulate.js">Event.simulate</a> class. The selected and deselected parameters are not available for Prototype.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:ready</td>
|
||||
<td>Triggered after Chosen has been fully instantiated.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:maxselected</td>
|
||||
<td>Triggered if <code class="language-javascript">max_selected_options</code> is set and that total is broken.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:showing_dropdown</td>
|
||||
<td>Triggered when Chosen’s dropdown is opened.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:hiding_dropdown</td>
|
||||
<td>Triggered when Chosen’s dropdown is closed.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:no_results</td>
|
||||
<td>Triggered when a search returns no matching results.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-top: 1em;">
|
||||
<strong>Note:</strong> all custom Chosen events (those that being with <code class="language-javascript">chosen:</code>) also include the <code class="language-javascript">chosen</code> object as a parameter.
|
||||
</p>
|
||||
|
||||
<h2><a name="triggerable-events" class="anchor" href="#triggerable-events">Triggerable Events</a></h2>
|
||||
<p>You can trigger several events on the original select field to invoke a behavior in Chosen.</p>
|
||||
|
||||
<h3>Example:</h3>
|
||||
|
||||
<pre>
|
||||
<code class="language-javascript">// tell Chosen that a select has changed
|
||||
$('.my_select_box').trigger('chosen:updated');</code>
|
||||
</pre>
|
||||
|
||||
<table class="docs-table">
|
||||
<tr>
|
||||
<th>Event</th><th>Description</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:updated</td>
|
||||
<td>This event should be triggered whenever Chosen’s underlying select element changes (such as a change in selected options).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:activate</td>
|
||||
<td>This is the equivalant of focusing a standard HTML select field. When activated, Chosen will capure keypress events as if you had clicked the field directly.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:open</td>
|
||||
<td>This event activates Chosen and also displays the search results.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>chosen:close</td>
|
||||
<td>This event deactivates Chosen and hides the search results.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<footer>
|
||||
© 2011–2013 <a href="http://www.getharvest.com/">Harvest</a>. Chosen is licensed under the <a href="https://github.com/harvesthq/chosen/blob/master/LICENSE.md">MIT license</a>.
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="oss-bar">
|
||||
<ul>
|
||||
<li><a class="fork" href="https://github.com/harvesthq/chosen">Fork on Github</a></li>
|
||||
<li><a class="harvest" href="http://www.getharvest.com/">Built by Harvest</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<script src="docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
|
||||
</body>
|
||||
</html>
|
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
minimalect
|
||||
http://github.com/groenroos/minimalect
|
||||
|
||||
Copyright (c) 2013-2014 Oskari Groenroos and contributors
|
||||
Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
// jshint globalstrict:true, node:true
|
||||
|
||||
"use strict";
|
||||
|
||||
module.exports = function (grunt) {
|
||||
|
||||
grunt.initConfig({
|
||||
|
||||
pkg: grunt.file.readJSON("package.json"),
|
||||
|
||||
banner:'/*********************************** \n'+
|
||||
'<%= pkg.name %> \n'+
|
||||
'<%= pkg.description %> \n\n' +
|
||||
'jQuery 1.7+ required. \n' +
|
||||
'Developed by @groenroos \n' +
|
||||
'http://www.groenroos.fi \n\n' +
|
||||
'Github: <%= pkg.repository.url %> w \n\n' +
|
||||
'Licensed under the <%= pkg.license %> license.\n\n' +
|
||||
'************************************/\n',
|
||||
|
||||
clean: {
|
||||
options: {
|
||||
force: true
|
||||
},
|
||||
"default": [
|
||||
"*.min.*",
|
||||
'*.css'
|
||||
]
|
||||
},
|
||||
uglify: {
|
||||
options: {
|
||||
banner:'<%= banner %>',
|
||||
mangle: true,
|
||||
compress: true,
|
||||
preserveComments: "some"
|
||||
},
|
||||
"default": {
|
||||
files: {
|
||||
"jquery.minimalect.min.js": ["jquery.minimalect.js"]
|
||||
}
|
||||
}
|
||||
},
|
||||
sass: { // Task
|
||||
dist: {
|
||||
options:{
|
||||
style:"compressed"
|
||||
},
|
||||
files: { // Dictionary of files
|
||||
'jquery.minimalect.min.css': 'jquery.minimalect.scss' // 'destination': 'source'
|
||||
}
|
||||
},
|
||||
dev:{
|
||||
files: { // Dictionary of files
|
||||
'jquery.minimalect.css': 'jquery.minimalect.scss' // 'destination': 'source'
|
||||
}
|
||||
}
|
||||
},
|
||||
usebanner: {
|
||||
taskName: {
|
||||
options: {
|
||||
position: 'top',
|
||||
banner:'<%= banner %>'
|
||||
},
|
||||
files: {
|
||||
src: [ '*.css' ]
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks("grunt-contrib-clean");
|
||||
grunt.loadNpmTasks("grunt-contrib-uglify");
|
||||
grunt.loadNpmTasks("grunt-contrib-jasmine");
|
||||
grunt.loadNpmTasks('grunt-contrib-sass');
|
||||
grunt.loadNpmTasks('grunt-banner');
|
||||
|
||||
grunt.registerTask("default", ["clean", "uglify", "sass", 'usebanner' ]);
|
||||
};
|
@@ -0,0 +1,117 @@
|
||||
minimalect
|
||||
----------
|
||||
|
||||
Minimal select replacement for jQuery by [@groenroos](http://twitter.com/groenroos). For usage examples, visit [groenroos.github.io/minimalect](http://groenroos.github.io/minimalect/)
|
||||
|
||||
* Replace select elements with a nicer styled control
|
||||
* Support for optgroups
|
||||
* Filtering choices by typing
|
||||
* Keyboard navigation
|
||||
* Support for themes
|
||||
|
||||
**New in 0.9.0 (28th May 2014)**
|
||||
|
||||
* AJAX search support
|
||||
* Multiselect support
|
||||
* Detects dynamic changes to original element automatically
|
||||
* Disabled element support
|
||||
* Public methods
|
||||
* Optional reset functionality
|
||||
* Combobox functionality now optional
|
||||
* Less conflict with existing form styles
|
||||
* Various bugfixes
|
||||
|
||||
### Usage
|
||||
|
||||
Include `jquery.minimalect.min.js` after you load jQuery (1.7 or newer). Then simply do;
|
||||
|
||||
$("select").minimalect();
|
||||
|
||||
Remember to also include the stylesheet (SCSS and minified CSS available);
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="minimalect.min.css" media="screen" />
|
||||
|
||||
The default style is very understated, so it's easy to modify to better suit your needs. By default, no graphics are used; the arrow symbols are Unicode characters. Please be advised that not all typefaces on all devices support this, and depending on your target device, you may want to replace it with pre-rendered graphics.
|
||||
|
||||
|
||||
#### AJAX functionality
|
||||
|
||||
You can also use Minimalect as a way to display search results from an AJAX call. For this, pass the `ajax` setting with the URL to the backend. Minimalect will send a POST request with the key `q` containing the value of the user's search. Minimalect will expect a JSON response with an array of objects, each having two keys: `name` and `value`.
|
||||
|
||||
Note, that the response received from the AJAX service will also modify choices available in the original `select` element, so that the selected choice may be appropriately sent with the rest of the form. The original contents of the `select` element are not restored if the user doesn't pick anything.
|
||||
|
||||
|
||||
#### Programmatically changing the selected choice
|
||||
|
||||
If you wish to change the current value of the select, you can simply make your changes to the original element like you would normally with `.val()`. Minimalect will take it from there, providing that the `live` setting is set to `true`, like it is by default.
|
||||
|
||||
|
||||
#### Programmatically changing the available choices
|
||||
|
||||
Since version 0.9.0, Minimalect will automatically recognize if the original options are changed dynamically, and the changes are reflected in the user-facing element. For this, Minimalect uses the MutationObserver, which has [spotty cross-browser support](http://caniuse.com/#feat=mutationobserver). For support in IE10 and earlier, Firefox 13 and earlier, Chrome 26 and earlier and Safari 5.1 and earlier, either use a [polyfill](https://github.com/Polymer/MutationObservers), or call the `update` method manually.
|
||||
|
||||
|
||||
#### Available methods
|
||||
|
||||
You can call various Minimalect methods to control it programmatically. You can call methods by passing the method name as a string in a second call, e.g. `.minimalect("method")`
|
||||
|
||||
* `destroy` — remove all the features of Minimalect and restore the original select. *Warning:* this will unhook any `change`, `focus` or `blur` events you may have connected to the `select` via `.on()`
|
||||
* `update` — refresh Minimalect's displayed choices from the original `select`. Minimalect will do this automatically in modern browsers. See above for details.
|
||||
|
||||
|
||||
#### Available options
|
||||
|
||||
You can pass an object as a parameter for the `.minimalect()` call, to override the default settings.
|
||||
|
||||
You may edit all the CSS classnames that Minimalect uses so that they don't collide with ones you already use, as well as the user-facing messages for customization or internationalization.
|
||||
|
||||
##### Settings
|
||||
|
||||
* `theme` — the currently used theme. Applied as a class to the main div element. Default: *(empty)*
|
||||
* `transition` — which effect should be used for showing and hiding the dropdown. Default: *fade*
|
||||
* `transition_time` — how long the effect for showing and hiding the dropdown should take, in milliseconds. Default: *150*
|
||||
* `remove_empty_option` — whether options with empty values should be removed. Default: `true`
|
||||
* `show_reset` — whether to show a reset button to deselect a selected choice. Default: `false`
|
||||
* `searchable` — whether the combobox functionality is enabled or not. Default: `true`
|
||||
* `ajax` — URL of an AJAX resource for external search results. See above for details. Will not have an effect if `searchable` is `false`. Default: `null`
|
||||
* `live` — whether Minimalect should automatically detect value changes to the original `select`. Creates an interval that runs indefinitely every 100 ms; may interfere with the DOM inspector. Default: `true`
|
||||
* `debug` — whether Minimalect should explain in the console what it's doing. Useful for debugging. Default: `false`
|
||||
|
||||
##### Messages
|
||||
|
||||
* `placeholder` — the default text displayed whenever no choice has been selected. Set to `null` to inherit the placeholder from the value of the first option. Default: *Select a choice*
|
||||
* `empty` — message displayed to the user when no choice matched his filter search term. Default: *No results matched your keyword.*
|
||||
* `error` — message displayed to the user when an AJAX request fails for any reason. Default: *There was a problem with the request.*
|
||||
|
||||
##### Classes
|
||||
|
||||
* `class_container` — classname for the main div element. Default: *minict_wrapper*
|
||||
* `class_group` — classname for a list item that represents an optgroup label. Default: *minict_group*
|
||||
* `class_empty` — classname for the "No results" message when filtering produces no results. Default: *minict_empty*
|
||||
* `class_active` — classname that is applied to the main div element whenever the dropdown is visible. Default: *active*
|
||||
* `class_disabled` — classname that is applied to list items or the whole select, if they are disabled. Default: *disabled*
|
||||
* `class_selected` — classname applied to the list item in the dropdown that is currently selected. Default: *selected*
|
||||
* `class_hidden` — classname applied to list items in the dropdown that do not match the filter. Default: *hidden*
|
||||
* `class_highlighted` — classname applied to the list item that is currently highlighted when the user uses keyboard navigation. Default: *highlighted*
|
||||
* `class_first` — classname that corresponds to the first visible list item in the dropdown, including optgroup labels and the "No results" message. Helpful when rounding corners in CSS. Default: *minict_first*
|
||||
* `class_last` — classname that corresponds to the last visible list item in the dropdown, including optgroup labels and the "No results" message. Helpful when rounding corners in CSS. Default: *minict_last*
|
||||
* `class_reset` — classname applied to the optional reset element. Default: *minict_reset*
|
||||
|
||||
##### Callbacks
|
||||
|
||||
* `beforeinit` — Called immediately when the plugin is called, before any initialization work begins.
|
||||
* `afterinit` — Called after Minimalect has been fully initialized.
|
||||
* `onchange` — Called whenever the user selects an option in the list.
|
||||
* `value`; the value of the choice selected.
|
||||
* `text`; the user-facing text of the choice selected.
|
||||
* `onopen` — Called when the dropdown list is displayed.
|
||||
* `onclose` — Called when the dropdown list is closed (either by clicking away, or by selecting an option).
|
||||
* `onfilter` — Called every time the list is filtered (basically every time the user types a letter into the filter box).
|
||||
* `match`; a boolean parameter, `true` if there was matches, `false` if no matches are found.
|
||||
|
||||
|
||||
### Bugs & Support
|
||||
|
||||
Developed by [@groenroos](http://twitter.com/groenroos). Please list all bugs and feature requests in the [Github issue tracker](https://github.com/groenroos/minimalect/issues).
|
||||
|
||||
Licensed under the MIT license.
|
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "minimalect",
|
||||
"version": "0.9.0",
|
||||
"main": "jquery.minimalect.js",
|
||||
"ignore": [
|
||||
"Gruntfile.js",
|
||||
"*.md"
|
||||
]
|
||||
}
|
@@ -0,0 +1,222 @@
|
||||
/************************************
|
||||
MINIMALECT 0.9
|
||||
A minimalistic select replacement
|
||||
|
||||
jQuery 1.7+ required.
|
||||
Developed by @groenroos
|
||||
http://www.groenroos.fi
|
||||
|
||||
Github: http://git.io/Xedg9w
|
||||
|
||||
Licensed under the MIT license.
|
||||
|
||||
************************************/
|
||||
.minict_wrapper {
|
||||
font-family: "Segoe UI", Segoe, "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
width: 300px;
|
||||
height: 35px;
|
||||
height: 2.2rem;
|
||||
border: 1px solid #e5e5e5;
|
||||
border-radius: 3px;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
.minict_wrapper * {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
.minict_wrapper.disabled {
|
||||
background: #f5f5f5;
|
||||
text-shadow: 0 1px 0 #fff; }
|
||||
.minict_wrapper.disabled span {
|
||||
color: #bbb !important; }
|
||||
.minict_wrapper:after {
|
||||
content: "\25BC";
|
||||
display: block;
|
||||
position: absolute;
|
||||
height: 33px;
|
||||
width: 33px;
|
||||
height: 2.1rem;
|
||||
width: 2.1rem;
|
||||
top: 0;
|
||||
right: 0;
|
||||
font-size: 10px;
|
||||
font-size: 0.6rem;
|
||||
line-height: 32px;
|
||||
line-height: 1.9rem;
|
||||
text-align: center;
|
||||
color: #555; }
|
||||
.minict_wrapper.active:after {
|
||||
content: "\25B2"; }
|
||||
.minict_wrapper.disabled:after {
|
||||
color: #bbb; }
|
||||
.minict_wrapper span {
|
||||
display: block;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background: none;
|
||||
font-family: "Segoe UI", Segoe, "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
height: 32px;
|
||||
height: 2.0rem;
|
||||
line-height: 23px;
|
||||
line-height: 1.5rem;
|
||||
padding: 4px 53px 0 6px;
|
||||
padding: 4px 3.4rem 0 0.4rem;
|
||||
cursor: default;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; }
|
||||
.minict_wrapper span:empty:before {
|
||||
content: attr(data-placeholder);
|
||||
color: #ccc;
|
||||
line-height: 23px;
|
||||
line-height: 1.5rem; }
|
||||
.minict_wrapper ul {
|
||||
display: none;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0 -1px;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
width: -webkit-calc(100% + 2px);
|
||||
width: -moz-calc(100% + 2px);
|
||||
width: calc(100% + 2px);
|
||||
border: 1px solid #e5e5e5;
|
||||
border-top: 1px solid #f9f9f9;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
top: 33px;
|
||||
top: 2.0rem;
|
||||
left: 0;
|
||||
max-height: 350px;
|
||||
max-height: 22rem;
|
||||
overflow-y: auto;
|
||||
z-index: 999999; }
|
||||
.minict_wrapper ul li {
|
||||
list-style: none;
|
||||
font-size: 1rem;
|
||||
padding: 0 10px;
|
||||
padding: 0 0.7rem;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
height: 35px;
|
||||
height: 2.2rem;
|
||||
line-height: 32px;
|
||||
line-height: 2rem; }
|
||||
.minict_wrapper ul li:hover {
|
||||
background: #fcfcfc;
|
||||
color: #111; }
|
||||
.minict_wrapper ul li.minict_group {
|
||||
color: #444;
|
||||
background: #f6f6f6;
|
||||
font-weight: bold;
|
||||
cursor: default; }
|
||||
.minict_wrapper ul li.minict_empty {
|
||||
display: none;
|
||||
background: #fff !important;
|
||||
color: #bbb;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-size: 0.9rem;
|
||||
height: 55px;
|
||||
height: 3.5rem;
|
||||
line-height: 50px;
|
||||
line-height: 3.3rem; }
|
||||
.minict_wrapper ul li.disabled {
|
||||
cursor: default;
|
||||
background: #fff !important;
|
||||
color: #bbb; }
|
||||
.minict_wrapper ul li.selected {
|
||||
color: #819a9a;
|
||||
background: #f8f9f9; }
|
||||
.minict_wrapper ul li.highlighted {
|
||||
color: #fff;
|
||||
background: #819a9a; }
|
||||
.minict_wrapper ul li.hidden {
|
||||
display: none; }
|
||||
.minict_wrapper .minict_reset {
|
||||
color: #A9A9A9;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
font-size: 18px;
|
||||
font-size: 1.1rem;
|
||||
line-height: 30px;
|
||||
line-height: 1.9rem;
|
||||
position: absolute;
|
||||
right: 35px;
|
||||
right: 2.2rem;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
width: 20px;
|
||||
width: 1.2rem;
|
||||
-webkit-transition: all 0.35s ease-in-out;
|
||||
transition: all 0.35s ease-in-out; }
|
||||
.minict_wrapper .minict_reset:hover {
|
||||
color: #e0e0e0;
|
||||
-webkit-transition: all 0.15s ease-in-out;
|
||||
transition: all 0.15s ease-in-out; }
|
||||
.minict_wrapper .minict_reset:active {
|
||||
color: #636363; }
|
||||
.minict_wrapper.disabled .minict_reset {
|
||||
display: none; }
|
||||
|
||||
.minict_wrapper.bubble {
|
||||
-webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.05);
|
||||
background: -moz-linear-gradient(top, white 0%, #f9f9f9 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #f9f9f9));
|
||||
background: -webkit-linear-gradient(top, white 0%, #f9f9f9 100%);
|
||||
background: -o-linear-gradient(top, white 0%, #f9f9f9 100%);
|
||||
background: -ms-linear-gradient(top, white 0%, #f9f9f9 100%);
|
||||
background: linear-gradient(to bottom, white 0%, #f9f9f9 100%); }
|
||||
.minict_wrapper.bubble:hover {
|
||||
border-color: #dcdcdc; }
|
||||
.minict_wrapper.bubble:after {
|
||||
border-left: 1px solid #e5e5e5;
|
||||
-webkit-box-shadow: inset 1px 0px 0px 0px #fff;
|
||||
box-shadow: inset 1px 0px 0px 0px #fff;
|
||||
height: 2.05rem; }
|
||||
.minict_wrapper.bubble ul {
|
||||
top: 2.7rem;
|
||||
-webkit-box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, 0.25);
|
||||
border-radius: 6px;
|
||||
overflow: visible; }
|
||||
.minict_wrapper.bubble ul:before {
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
left: 19px;
|
||||
content: ".";
|
||||
color: transparent;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-style: solid;
|
||||
border-width: 0 11px 11px 11px;
|
||||
border-color: transparent transparent #e5e5e5 transparent; }
|
||||
.minict_wrapper.bubble ul:after {
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 20px;
|
||||
content: ".";
|
||||
color: transparent;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px 10px;
|
||||
border-color: transparent transparent #ffffff transparent; }
|
||||
.minict_wrapper.bubble ul li.minict_first {
|
||||
border-top-left-radius: 6px;
|
||||
border-top-right-radius: 6px; }
|
||||
.minict_wrapper.bubble ul li.minict_last {
|
||||
border-bottom-left-radius: 6px;
|
||||
border-bottom-right-radius: 6px; }
|
||||
.minict_wrapper.bubble .minict_reset {
|
||||
width: 30px; }
|
@@ -0,0 +1,647 @@
|
||||
/************************************
|
||||
MINIMALECT 0.9
|
||||
A minimalistic select replacement
|
||||
|
||||
jQuery 1.7+ required.
|
||||
Developed by @groenroos
|
||||
http://www.groenroos.fi
|
||||
|
||||
Github: http://git.io/Xedg9w
|
||||
|
||||
Licensed under the MIT license.
|
||||
|
||||
************************************/
|
||||
|
||||
;(function ( $, window, document, undefined ) {
|
||||
|
||||
var pluginName = "minimalect",
|
||||
defaults = {
|
||||
// settings
|
||||
theme: "", // name of the theme used
|
||||
reset: false,
|
||||
transition: "fade",
|
||||
transition_time: 150,
|
||||
remove_empty_option: true,
|
||||
searchable: true, // whether or not the combobox functionality is enabled
|
||||
ajax: null, // URL to an external resource
|
||||
debug: false, // whether to be verbose in the console
|
||||
live: true, // whether to automatically detect changes
|
||||
|
||||
// messages
|
||||
placeholder: "Select a choice", // default placeholder when nothing is selected
|
||||
empty: "No results match your keyword.", // error message when nothing matches the filter search term
|
||||
error_message: "There was a problem with the request.", // error message when the AJAX call fails
|
||||
|
||||
// classes
|
||||
class_container: "minict_wrapper", // wrapper div for the element
|
||||
class_group: "minict_group", // list item for an optgroup
|
||||
class_empty: "minict_empty", // "No results" message
|
||||
class_active: "active", // applied to wrapper when the dropdown is displayed
|
||||
class_disabled: "disabled", // applied to list elements that are disabled
|
||||
class_selected: "selected", // the currently selected item in the dropdown
|
||||
class_hidden: "hidden", // an item that doesn't match the filter search term
|
||||
class_highlighted: "highlighted", // item highlighted by keyboard navigation
|
||||
class_first: "minict_first", // first visible element
|
||||
class_last: "minict_last", // last visible element
|
||||
class_reset: "minict_reset", // reset link
|
||||
|
||||
// callbacks
|
||||
beforeinit: function(){}, // called before Minimalect is initialized
|
||||
afterinit: function(){}, // called right after Minimalect is initialized
|
||||
onchange: function(){}, // called whenever the user changes the selected value
|
||||
onopen: function(){}, // called when the dropdown is displayed
|
||||
onclose: function(){}, // called when the dropdown is hidden
|
||||
onfilter: function(){} // called every time the filter has been activated
|
||||
};
|
||||
|
||||
// The actual plugin constructor
|
||||
function Plugin( element, options ) {
|
||||
this.element = $(element);
|
||||
this.options = $.extend( {}, defaults, options );
|
||||
this._defaults = defaults;
|
||||
this._name = pluginName;
|
||||
this.label = $('[for="'+this.element.attr('id')+'"]').attr('for', 'minict_'+this.element.attr('id'));
|
||||
|
||||
this._init();
|
||||
}
|
||||
|
||||
Plugin.prototype = {
|
||||
|
||||
// INITIALIZATION
|
||||
|
||||
_init: function() {
|
||||
|
||||
// before init callback
|
||||
this.options.beforeinit();
|
||||
|
||||
// PREPWORK
|
||||
|
||||
var op = this.options,
|
||||
m = this;
|
||||
|
||||
// create the wrapper
|
||||
this.wrapper = $('<div class="'+op.class_container+'"></div>');
|
||||
// hide the original select and add the wrapper
|
||||
this.element.hide().after(this.wrapper);
|
||||
// apply the current theme to the wrapper
|
||||
if(op.theme) this.wrapper.addClass(op.theme);
|
||||
// reflect disabled status
|
||||
if(this.element.prop("disabled"))
|
||||
this.wrapper.addClass(op.class_disabled);
|
||||
|
||||
// create and add the input
|
||||
this.input = $(
|
||||
'<span '+
|
||||
(op.searchable ? 'contenteditable="true"' : '') +
|
||||
' data-placeholder="'+(this.element.find("option[selected]").text() || this.element.attr("placeholder") || (op.placeholder != null) ? op.placeholder : this.element.find("option:first").text())+
|
||||
'" '+ (this.element.is('[tabindex]') ? ('tabindex='+this.element.attr('tabindex')) : '') +'>'+
|
||||
(this.element.find("option[selected]").html() || "")+
|
||||
'</span>'
|
||||
).appendTo(this.wrapper);
|
||||
|
||||
// add the reset link, if it's wanted
|
||||
if(op.reset)
|
||||
this.reset = $('<a href="#" class="'+op.class_reset+'">×</a>').appendTo(this.wrapper);
|
||||
|
||||
// parse the select itself, and create the dropdown markup
|
||||
this.ul = $('<ul>'+this._parseSelect()+'<li class="'+op.class_empty+'">'+op.empty+'</li></ul>').appendTo(this.wrapper);
|
||||
this.items = this.wrapper.find('li');
|
||||
// if it's preselected, select the option itself as well
|
||||
if(this.element.find("option[selected]").length) {
|
||||
this._showResetLink();
|
||||
this.items.filter('[data-value="'+this.element.find("option[selected]").val()+'"]').addClass(op.class_selected);
|
||||
}
|
||||
|
||||
// BIND EVENTS
|
||||
// hide dropdown when you click elsewhere
|
||||
$(document).on("click", function(){ m._hideChoices(m.wrapper) });
|
||||
// hide dropdown when moving focus outside it
|
||||
$("*").not(this.wrapper).not(this.wrapper.find('*')).on("focus", function(){ m._hideChoices(m.wrapper) });
|
||||
// toggle dropdown when you click on the dropdown itself
|
||||
this.wrapper.on("click", function(e){
|
||||
e.stopPropagation();
|
||||
// only close the dropdown when it's not disabled and not multiselect
|
||||
if(!m.element.prop("multiple") && !m.element.prop("disabled"))
|
||||
m._toggleChoices()
|
||||
});
|
||||
// toggle dropdown when you click on the associated label, if present
|
||||
this.label.on("click", function(e){ e.stopPropagation(); m.input.trigger('focus') });
|
||||
// select choice when you click on it
|
||||
this.wrapper.on("click", "li:not(."+op.class_group+", ."+op.class_empty+", ."+op.class_disabled+")", function(){ m._selectChoice($(this)) });
|
||||
// stop the dropdown from closing when you click on a group or empty placeholder
|
||||
this.wrapper.on("click", "li."+op.class_group+", li."+op.class_empty+", li."+op.class_disabled, function(e){
|
||||
e.stopPropagation();
|
||||
m.input.focus();
|
||||
});
|
||||
// if the original is focused or blurred manually, mimic it
|
||||
// also handle the custom update event
|
||||
this.element.on("focus", function(){
|
||||
m.element.blur();
|
||||
m._showChoices();
|
||||
})
|
||||
.on("blur", m._hideChoices)
|
||||
.on("update", m.update);
|
||||
|
||||
// bind reset only if it's there
|
||||
if(op.reset){
|
||||
this.wrapper.on("click", "a."+op.class_reset, function(e){
|
||||
e.stopPropagation();
|
||||
m._resetChoice();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
// key bindings for the input element
|
||||
this.input.on("focus click", function(e){
|
||||
e.stopPropagation();
|
||||
if(!m.element.prop("disabled")) m._showChoices(); else m.input.blur();
|
||||
}).on("keydown", function(e){
|
||||
// keyboard navigation
|
||||
switch(e.keyCode) {
|
||||
// up
|
||||
case 38:
|
||||
e.preventDefault();
|
||||
m._navigateChoices('up');
|
||||
break;
|
||||
// down
|
||||
case 40:
|
||||
e.preventDefault();
|
||||
m._navigateChoices('down');
|
||||
break;
|
||||
// enter
|
||||
case 13:
|
||||
// tab
|
||||
case 9:
|
||||
// select the highlighted choice
|
||||
if(m.items.filter("."+op.class_highlighted).length)
|
||||
m._selectChoice(m.items.filter("."+op.class_highlighted));
|
||||
// or if there is none, select the first choice after filtering
|
||||
else if(m.input.text())
|
||||
m._selectChoice(m.items.not("."+op.class_group+", ."+op.class_empty).filter(':visible').first());
|
||||
if(e.keyCode===13){
|
||||
e.preventDefault();
|
||||
m._hideChoices(m.wrapper);
|
||||
}
|
||||
break;
|
||||
// escape
|
||||
case 27:
|
||||
e.preventDefault();
|
||||
// close the select and don't change the value
|
||||
m._hideChoices(m.wrapper);
|
||||
break;
|
||||
}
|
||||
}).on("keyup", function(e){
|
||||
// if we're not navigating, filter
|
||||
if($.inArray(e.keyCode, [38, 40, 13, 9, 27]) === -1){
|
||||
m._filterChoices();
|
||||
}
|
||||
});
|
||||
|
||||
// if mutation observing is supported
|
||||
if(window.MutationObserver){
|
||||
// observe the original for DOM changes so they can be reflected
|
||||
this.observer = new MutationObserver(function( mutations ) {
|
||||
// if there were changes...
|
||||
if(mutations.length > 0){
|
||||
// ...reparse the select
|
||||
m.ul.html(m._parseSelect()+'<li class="'+op.class_empty+'">'+op.empty+'</li>');
|
||||
if(m.options.debug) console.log("Minimalect detected a DOM change for ", m.element);
|
||||
}
|
||||
});
|
||||
this.observer.observe(m.element[0], {childList: true});
|
||||
}
|
||||
|
||||
// poll the original for changes
|
||||
if(op.live){
|
||||
// set cache to the original value
|
||||
var prevval = this.element.val();
|
||||
// set a tight interval to check for the original
|
||||
setInterval(function(){
|
||||
// if we're out of date
|
||||
if(prevval != m.element.val() && m.element.val() != null && m.element.val() != "") {
|
||||
// update cache
|
||||
prevval = m.element.val();
|
||||
// update selection
|
||||
if(typeof prevval == "array") {
|
||||
prevval.each(function(k,v){
|
||||
m._selectChoice(m.wrapper.find("li[data-value='"+v+"']"));
|
||||
});
|
||||
} else {
|
||||
m._selectChoice(m.wrapper.find("li[data-value='"+prevval+"']"));
|
||||
}
|
||||
} else if (m.element.val() == null || m.element.val() == "") {
|
||||
// update cache
|
||||
prevval = m.element.val();
|
||||
// if it was empty, let's clear it
|
||||
m.items.removeClass(m.options.class_selected);
|
||||
m.input.text('').attr('data-placeholder', m.options.placeholder);
|
||||
}
|
||||
|
||||
// let's also check for disabled
|
||||
if(m.element.prop("disabled"))
|
||||
m.wrapper.addClass(op.class_disabled);
|
||||
else
|
||||
m.wrapper.removeClass(op.class_disabled);
|
||||
}, 100);
|
||||
}
|
||||
|
||||
|
||||
// after init callback
|
||||
op.afterinit();
|
||||
},
|
||||
|
||||
|
||||
// PRIVATE METHODS
|
||||
|
||||
// navigate with a keyboard
|
||||
// dr - direction we're going, either "up" or "down"
|
||||
_navigateChoices: function(dr) {
|
||||
var m = this,
|
||||
wr = this.wrapper, // jQuery reference for the wrapper
|
||||
op = this.options, // options object
|
||||
items = this.items;
|
||||
// list all the elements that aren't navigatable
|
||||
var ignored = "."+op.class_hidden+", ."+op.class_empty+", ."+op.class_group;
|
||||
|
||||
if(!items.filter("."+op.class_highlighted).length) { // if nothing is selected, select the first or last
|
||||
if(dr === 'up') {
|
||||
items.not(ignored).last().addClass(op.class_highlighted);
|
||||
} else if (dr === 'down') {
|
||||
items.not(ignored).first().addClass(op.class_highlighted);
|
||||
}
|
||||
return false;
|
||||
} else { // if something is selected...
|
||||
// ...remove current selection...
|
||||
cur = items.filter("."+op.class_highlighted);
|
||||
cur.removeClass(op.class_highlighted);
|
||||
// ...and figure out the next one
|
||||
if(dr === 'up') {
|
||||
if(items.not(ignored).first()[0] != cur[0]) { // if we're not at the first
|
||||
cur.prevAll("li").not(ignored).first().addClass(op.class_highlighted); // highlight the prev
|
||||
// make sure it's visible in a scrollable list
|
||||
var offset = items.filter("."+op.class_highlighted).offset().top - this.ul.offset().top + this.ul.scrollTop();
|
||||
if (this.ul.scrollTop() > offset)
|
||||
this.ul.scrollTop(offset);
|
||||
} else { // if we are at the first
|
||||
items.not(ignored).last().addClass(op.class_highlighted); // highlight the last
|
||||
// make sure it's visible in a scrollable list
|
||||
this.ul.scrollTop(this.ul.height());
|
||||
}
|
||||
} else if (dr === 'down') {
|
||||
if(items.not(ignored).last()[0] != cur[0]) { // if we're not at the last
|
||||
cur.nextAll("li").not(ignored).first().addClass(op.class_highlighted); // highlight the next
|
||||
// make sure it's visible in a scrollable list
|
||||
var ddbottom = this.ul.height(),
|
||||
libottom = items.filter("."+op.class_highlighted).offset().top - this.ul.offset().top + items.filter("."+op.class_highlighted).outerHeight();
|
||||
if (ddbottom < libottom)
|
||||
this.ul.scrollTop(this.ul.scrollTop() + libottom - ddbottom);
|
||||
} else { // if we are at the last
|
||||
items.not(ignored).first().addClass(op.class_highlighted); // highlight the first
|
||||
// make sure it's visible in a scrollable list
|
||||
this.ul.scrollTop(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// parse the entire select based on whether it has optgroups or not, and return the new markup
|
||||
_parseSelect: function() {
|
||||
var m = this, ulcontent = "";
|
||||
if( !this.element.find("optgroup").length ) { // if we don't have groups
|
||||
// just parse the elements regularly
|
||||
ulcontent = this._parseElements( this.element.html() );
|
||||
} else { // if we have groups
|
||||
// parse each group separately
|
||||
this.element.find("optgroup").each(function(){
|
||||
// create a group element
|
||||
ulcontent += '<li class="'+this.options.class_group+'">'+$(this).attr("label")+'</li>';
|
||||
// and add its children
|
||||
ulcontent += this._parseElements( $(this).html() );
|
||||
});
|
||||
}
|
||||
return ulcontent;
|
||||
},
|
||||
|
||||
// turn option elements into li elements
|
||||
// elhtml - HTML containing the options
|
||||
_parseElements: function(elhtml) {
|
||||
var m = this, readyhtml = "";
|
||||
// go through each option
|
||||
$( $.trim(elhtml) ).filter("option").each(function(){
|
||||
var $el = $(this);
|
||||
if ($el.attr('value') === '' && m.options.remove_empty_option) return;
|
||||
// create an li with a data attribute containing its value
|
||||
readyhtml += '<li data-value="'+$el.val().replace(/"/g, """)+'" class="'+($el.attr("class") || "")+($el.prop("disabled") ? " "+m.options.class_disabled : "")+'">'+$el.text()+'</li>';
|
||||
});
|
||||
// spit it out
|
||||
return readyhtml;
|
||||
},
|
||||
|
||||
// toggle the visibility of the dropdown
|
||||
_toggleChoices: function(){
|
||||
(!this.wrapper.hasClass(this.options.class_active)) ? this._showChoices() : this._hideChoices(this.wrapper);
|
||||
},
|
||||
|
||||
// show the dropdown
|
||||
// cb - callback before the animation plays
|
||||
_showChoices: function(cb){
|
||||
var m = this,
|
||||
wr = this.wrapper, // jQuery reference for the wrapper
|
||||
op = this.options; // options object
|
||||
if (!wr.hasClass(op.class_active)){
|
||||
// keep the first and last classes up to date
|
||||
this._updateFirstLast(false);
|
||||
// close all other open minimalects
|
||||
$("."+op.class_container).each(function(){ //todo this doesn't work if the container classes are different
|
||||
if($(this)[0] !== wr[0])
|
||||
m._hideChoices($(this));
|
||||
});
|
||||
// internal callback
|
||||
if(typeof cb === 'function') cb.call();
|
||||
// add the active class
|
||||
wr.addClass(op.class_active);
|
||||
switch(op.transition) {
|
||||
case "fade":
|
||||
this.ul.fadeIn(op.transition_time);
|
||||
break;
|
||||
default:
|
||||
this.ul.show();
|
||||
break;
|
||||
}
|
||||
// make the input editable
|
||||
this.input.text("").focus();
|
||||
// hide the reset link
|
||||
this._hideResetLink();
|
||||
// callback
|
||||
this.options.onopen();
|
||||
} else {
|
||||
// internal callback
|
||||
if(typeof cb === 'function') cb.call();
|
||||
}
|
||||
},
|
||||
|
||||
_resetDropdown: function(cb){
|
||||
var op = this.options; // options object
|
||||
// reset the filtered elements
|
||||
this.items.removeClass(op.class_hidden);
|
||||
// hide the empty error message
|
||||
this.wrapper.find("."+op.class_empty).hide();
|
||||
// reset keyboard navigation
|
||||
this.items.filter("."+op.class_highlighted).removeClass(op.class_highlighted);
|
||||
// internal callback
|
||||
if(typeof cb === 'function') cb.call();
|
||||
},
|
||||
|
||||
// hide the dropdown
|
||||
// wr - jQuery reference for the wrapper
|
||||
// cb - callback for after the animation has played
|
||||
_hideChoices: function(wr, cb){
|
||||
var op = this.options, // options object
|
||||
to = op.transition_time, // timeout for the transition to finish
|
||||
m = this;
|
||||
|
||||
if (wr.hasClass(op.class_active)){
|
||||
// remove the active class and fade out
|
||||
wr.removeClass(op.class_active);
|
||||
|
||||
switch(op.transition) {
|
||||
case "fade":
|
||||
wr.children("ul").fadeOut(op.transition_time);
|
||||
break;
|
||||
default:
|
||||
wr.children("ul").hide();
|
||||
to = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
// set a timeout for clearing the field, so there's no flickering
|
||||
setTimeout(function(){
|
||||
// reset filters
|
||||
m._resetDropdown(cb);
|
||||
|
||||
// blur the input
|
||||
m.input.blur();
|
||||
|
||||
// reset it
|
||||
if(m.input.attr("data-placeholder") != op.placeholder) {
|
||||
// if we have a previously selected value, restore that
|
||||
m.input.text(m.input.attr("data-placeholder"));
|
||||
} else if(!m.items.filter("."+op.class_selected).length) {
|
||||
// if we have no selection, empty it to show placeholder
|
||||
m.input.text("");
|
||||
}
|
||||
}, to);
|
||||
|
||||
// show the reset link
|
||||
m._showResetLink();
|
||||
|
||||
// callback
|
||||
op.onclose();
|
||||
} else {
|
||||
// internal callback
|
||||
if(typeof cb === 'function') cb.call();
|
||||
}
|
||||
},
|
||||
|
||||
// filter choices based on user input
|
||||
_filterChoices: function(){
|
||||
var wr = this.wrapper, // jQuery reference for the wrapper
|
||||
op = this.options, // options object
|
||||
m = this;
|
||||
|
||||
if(op.ajax) {
|
||||
// if we're searching from ajax
|
||||
|
||||
$.post(op.ajax, {"q": this.input.text()})
|
||||
.success(function(data){
|
||||
// we got a response
|
||||
|
||||
if(op.debug) console.log("Minimalect received ", data, " for query '"+m.input.text()+"' in ", m.element);
|
||||
|
||||
if(data.length) {
|
||||
// if we have results
|
||||
var new_html = "";
|
||||
$.each(data, function(k, choice){
|
||||
// parse each data point to an option in the original
|
||||
new_html += '<option value="'+choice.value+'">'+choice.name+'</option>';
|
||||
});
|
||||
// populate original element
|
||||
m.element.html(new_html);
|
||||
// parse and display it
|
||||
m.ul.html(m._parseSelect()+'<li class="'+op.class_empty+'">'+op.empty+'</li>');
|
||||
wr.find("."+op.class_empty).hide();
|
||||
|
||||
// refresh internal cache
|
||||
m.items = wr.find('li');
|
||||
|
||||
// callback, results found
|
||||
m.options.onfilter(true);
|
||||
} else {
|
||||
// show a "no results" placeholder if there's nothing to show
|
||||
m.ul.html('<li class="'+op.class_empty+'">'+op.empty+'</li>');
|
||||
wr.find("."+op.class_empty).show();
|
||||
// tell the console if debug mode is on
|
||||
if(op.debug) console.log("Minimalect didn't find any results for '"+m.input.text()+"' from ", m.element);
|
||||
// callback, no results found
|
||||
m.options.onfilter(false);
|
||||
}
|
||||
})
|
||||
.error(function(data){
|
||||
// show feedback for the user
|
||||
wr.find("."+op.class_empty).text(op.error_message);
|
||||
wr.find("li").not("."+op.class_empty).addClass(op.class_hidden);
|
||||
wr.find("."+op.class_empty).show();
|
||||
// tell the console if debug mode is on
|
||||
if(op.debug) console.error("Minimalect's AJAX query failed for ", m.element, " - came back with ", data);
|
||||
});
|
||||
} else {
|
||||
// traditional filtering
|
||||
|
||||
// get the filter value, escape regex chars (thanks Andrew Clover!)
|
||||
var filter = this.input.text().replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||
// reset keyboard navigation
|
||||
this.items.filter("."+op.class_highlighted).removeClass(op.class_highlighted);
|
||||
|
||||
// filter through each option
|
||||
this.items.not(op.class_group).each(function(){
|
||||
// if there's no match (or if it's disabled), hide it. otherwise, unhide it
|
||||
if ($(this).text().search(new RegExp(filter, "i")) < 0 || $(this).hasClass(op.class_disabled))
|
||||
$(this).addClass(op.class_hidden);
|
||||
else
|
||||
$(this).removeClass(op.class_hidden);
|
||||
});
|
||||
|
||||
// make sure optgroups with no choices are hidden
|
||||
// sort of a kludge since we have no hierarchy
|
||||
this.items.filter("."+op.class_group).removeClass(op.class_hidden).each(function(){
|
||||
nextlis = $(this).nextAll("li").not("."+op.class_hidden+", ."+op.class_empty);
|
||||
if(nextlis.first().hasClass(op.class_group) || !nextlis.length) $(this).addClass(op.class_hidden);
|
||||
});
|
||||
|
||||
// show a "no results" placeholder if there's nothing to show
|
||||
wr.find("."+op.class_empty).hide();
|
||||
if(!this.items.not("."+op.class_hidden+", ."+op.class_empty).length) {
|
||||
wr.find("."+op.class_empty).show();
|
||||
// tell the console if debug mode is on
|
||||
if(op.debug) console.log("Minimalect didn't find any results for '"+this.input.text()+"' from ", this.element);
|
||||
// callback, no results found
|
||||
this.options.onfilter(false);
|
||||
} else {
|
||||
// callback, results found
|
||||
this.options.onfilter(true);
|
||||
}
|
||||
|
||||
// keep the first and last classes up to date
|
||||
this._updateFirstLast(true);
|
||||
}
|
||||
},
|
||||
|
||||
// select the choice defined
|
||||
// ch - jQuery reference for the li element the user has chosen
|
||||
_selectChoice: function(ch){
|
||||
var el = this.element, // jQuery reference for the original select element
|
||||
op = this.options, // options object
|
||||
vals = [],
|
||||
names = [];
|
||||
|
||||
// if it's disabled, au revoir
|
||||
if(ch.hasClass(this.options.class_disabled)) return false;
|
||||
|
||||
// apply the selected class
|
||||
if(!this.element.prop("multiple"))
|
||||
this.items.removeClass(op.class_selected);
|
||||
ch.addClass(op.class_selected);
|
||||
|
||||
this.items.filter("."+op.class_selected).each(function(){
|
||||
vals.push($(this).data("value"));
|
||||
names.push($(this).text());
|
||||
});
|
||||
|
||||
// show it up in the input
|
||||
this.input.text(names.join(", ")).attr("data-placeholder", names.join(", "));
|
||||
|
||||
// if the selected choice is different
|
||||
if(el.val() != ch.data("value") || el.val() != vals){
|
||||
// update the original select element
|
||||
el.val(vals);
|
||||
// call original select change event
|
||||
el.trigger("change");
|
||||
}
|
||||
|
||||
this._showResetLink();
|
||||
|
||||
// callback
|
||||
this.options.onchange(ch.data("value"), ch.text());
|
||||
},
|
||||
|
||||
// clear the select
|
||||
_resetChoice: function() {
|
||||
this.element.val('').trigger("change");
|
||||
this._hideResetLink();
|
||||
},
|
||||
|
||||
// show the reset link if options.reset is true
|
||||
_showResetLink: function() {
|
||||
if(this.input.text().length > 0 || this.ul.find("li."+this.options.class_selected).length > 0)
|
||||
this.options.reset && this.reset.show();
|
||||
},
|
||||
|
||||
// hide the reset link if options.reset is true
|
||||
_hideResetLink: function() {
|
||||
this.options.reset && this.reset.hide();
|
||||
},
|
||||
|
||||
// keep the first and last classes up-to-date
|
||||
// vi - whether we want to count visibility or not
|
||||
_updateFirstLast: function(vi){
|
||||
var wr = this.wrapper, // jQuery reference for the wrapper
|
||||
op = this.options; // options object
|
||||
wr.find("."+op.class_first+", ."+op.class_last).removeClass(op.class_first+" "+op.class_last);
|
||||
if(vi) {
|
||||
this.items.filter(":visible").first().addClass(op.class_first);
|
||||
this.items.filter(":visible").last().addClass(op.class_last);
|
||||
} else {
|
||||
this.items.first().addClass(op.class_first);
|
||||
this.items.not("."+op.class_empty).last().addClass(op.class_last);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// PUBLIC METHODS
|
||||
|
||||
// uninit Minimalect
|
||||
destroy: function(){
|
||||
// remove (and automatically unbind) all Minimalect stuff
|
||||
this.wrapper.remove();
|
||||
// display and unhook the original
|
||||
this.element.off("change focus blur").show();
|
||||
// stop listening for changes
|
||||
if (window.MutationObserver)
|
||||
this.observer.disconnect();
|
||||
|
||||
// if debug mode is on, let them know upstairs
|
||||
if(this.options.debug) console.log("Minimalect destroyed for ", this.element);
|
||||
},
|
||||
|
||||
// update Minimalect's choice from the original select
|
||||
update: function(){
|
||||
// reparse the select
|
||||
this.ul.html(this._parseSelect()+'<li class="'+this.options.class_empty+'">'+this.options.empty+'</li>');
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.fn[pluginName] = function ( options, argument ) {
|
||||
return this.each(function () {
|
||||
if ($.isFunction(Plugin.prototype[options]) && options.charAt(0) != "_") {
|
||||
if(arguments.length == 1)
|
||||
$.data(this, 'plugin_' + pluginName)[options]();
|
||||
else
|
||||
$.data(this, 'plugin_' + pluginName)[options](argument);
|
||||
} else if (!$.data(this, "plugin_" + pluginName)) {
|
||||
$.data(this, "plugin_" + pluginName, new Plugin( this, options ));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
})( jQuery, window, document );
|
@@ -0,0 +1 @@
|
||||
.minict_wrapper{font-family:"Segoe UI",Segoe,"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,sans-serif;color:#333;background:#fff;position:relative;width:300px;height:35px;height:2.2rem;border:1px solid #e5e5e5;border-radius:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.minict_wrapper *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.minict_wrapper.disabled{background:#f5f5f5;text-shadow:0 1px 0 #fff}.minict_wrapper.disabled span{color:#bbb !important}.minict_wrapper:after{content:"\25BC";display:block;position:absolute;height:33px;width:33px;height:2.1rem;width:2.1rem;top:0;right:0;font-size:10px;font-size:0.6rem;line-height:32px;line-height:1.9rem;text-align:center;color:#555}.minict_wrapper.active:after{content:"\25B2"}.minict_wrapper.disabled:after{color:#bbb}.minict_wrapper span{display:block;border:0;outline:none;background:none;font-family:"Segoe UI",Segoe,"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,sans-serif;color:#333;font-size:16px;font-size:1rem;height:32px;height:2.0rem;line-height:23px;line-height:1.5rem;padding:4px 53px 0 6px;padding:4px 3.4rem 0 0.4rem;cursor:default;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.minict_wrapper span:empty:before{content:attr(data-placeholder);color:#ccc;line-height:23px;line-height:1.5rem}.minict_wrapper ul{display:none;list-style:none;padding:0;margin:0 -1px;position:absolute;width:100%;width:-webkit-calc(100% + 2px);width:-moz-calc(100% + 2px);width:calc(100% + 2px);border:1px solid #e5e5e5;border-top:1px solid #f9f9f9;border-bottom-left-radius:3px;border-bottom-right-radius:3px;top:33px;top:2.0rem;left:0;max-height:350px;max-height:22rem;overflow-y:auto;z-index:999999}.minict_wrapper ul li{list-style:none;font-size:1rem;padding:0 10px;padding:0 0.7rem;cursor:pointer;background:#fff;height:35px;height:2.2rem;line-height:32px;line-height:2rem}.minict_wrapper ul li:hover{background:#fcfcfc;color:#111}.minict_wrapper ul li.minict_group{color:#444;background:#f6f6f6;font-weight:bold;cursor:default}.minict_wrapper ul li.minict_empty{display:none;background:#fff !important;color:#bbb;text-align:center;font-size:14px;font-size:0.9rem;height:55px;height:3.5rem;line-height:50px;line-height:3.3rem}.minict_wrapper ul li.disabled{cursor:default;background:#fff !important;color:#bbb}.minict_wrapper ul li.selected{color:#819a9a;background:#f8f9f9}.minict_wrapper ul li.highlighted{color:#fff;background:#819a9a}.minict_wrapper ul li.hidden{display:none}.minict_wrapper .minict_reset{color:#A9A9A9;bottom:0;display:none;font-size:18px;font-size:1.1rem;line-height:30px;line-height:1.9rem;position:absolute;right:35px;right:2.2rem;text-align:center;top:0;text-decoration:none;width:20px;width:1.2rem;-webkit-transition:all 0.35s ease-in-out;transition:all 0.35s ease-in-out}.minict_wrapper .minict_reset:hover{color:#e0e0e0;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.minict_wrapper .minict_reset:active{color:#636363}.minict_wrapper.disabled .minict_reset{display:none}.minict_wrapper.bubble{-webkit-box-shadow:0px 1px 3px 0px rgba(0,0,0,0.05);box-shadow:0px 1px 3px 0px rgba(0,0,0,0.05);background:-moz-linear-gradient(top, #fff 0%, #f9f9f9 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #f9f9f9));background:-webkit-linear-gradient(top, #fff 0%, #f9f9f9 100%);background:-o-linear-gradient(top, #fff 0%, #f9f9f9 100%);background:-ms-linear-gradient(top, #fff 0%, #f9f9f9 100%);background:linear-gradient(to bottom, #fff 0%, #f9f9f9 100%)}.minict_wrapper.bubble:hover{border-color:#dcdcdc}.minict_wrapper.bubble:after{border-left:1px solid #e5e5e5;-webkit-box-shadow:inset 1px 0px 0px 0px #fff;box-shadow:inset 1px 0px 0px 0px #fff;height:2.05rem}.minict_wrapper.bubble ul{top:2.7rem;-webkit-box-shadow:0px 5px 25px 0px rgba(0,0,0,0.25);box-shadow:0px 5px 25px 0px rgba(0,0,0,0.25);border-radius:6px;overflow:visible}.minict_wrapper.bubble ul:before{position:absolute;top:-11px;left:19px;content:".";color:transparent;width:0px;height:0px;border-style:solid;border-width:0 11px 11px 11px;border-color:transparent transparent #e5e5e5 transparent}.minict_wrapper.bubble ul:after{position:absolute;top:-10px;left:20px;content:".";color:transparent;width:0px;height:0px;border-style:solid;border-width:0 10px 10px 10px;border-color:transparent transparent #ffffff transparent}.minict_wrapper.bubble ul li.minict_first{border-top-left-radius:6px;border-top-right-radius:6px}.minict_wrapper.bubble ul li.minict_last{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.minict_wrapper.bubble .minict_reset{width:30px}
|
6
sites/all/themes/gui/materiobasetheme/js/libs/src/minimalect-master/jquery.minimalect.min.js
vendored
Normal file
6
sites/all/themes/gui/materiobasetheme/js/libs/src/minimalect-master/jquery.minimalect.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,292 @@
|
||||
/************************************
|
||||
MINIMALECT 0.9
|
||||
A minimalistic select replacement
|
||||
|
||||
jQuery 1.7+ required.
|
||||
Developed by @groenroos
|
||||
http://www.groenroos.fi
|
||||
|
||||
Github: http://git.io/Xedg9w
|
||||
|
||||
Licensed under the MIT license.
|
||||
|
||||
************************************/
|
||||
|
||||
$font: "Segoe UI", Segoe, "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
|
||||
$color: #819a9a;
|
||||
|
||||
|
||||
|
||||
.minict_wrapper {
|
||||
font-family: $font;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
|
||||
position: relative;
|
||||
width: 300px;
|
||||
height: 35px;
|
||||
height: 2.2rem;
|
||||
|
||||
border: 1px solid #e5e5e5;
|
||||
border-radius: 3px;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
* {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
background: #f5f5f5;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
|
||||
span {
|
||||
color: #bbb !important;
|
||||
}
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: "\25BC";
|
||||
display: block;
|
||||
position: absolute;
|
||||
height: 33px;
|
||||
width: 33px;
|
||||
height: 2.1rem;
|
||||
width: 2.1rem;
|
||||
top: 0;
|
||||
right: 0;
|
||||
font-size: 10px;
|
||||
font-size: 0.6rem;
|
||||
line-height: 32px;
|
||||
line-height: 1.9rem;
|
||||
text-align: center;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
&.active:after {
|
||||
content: "\25B2";
|
||||
}
|
||||
|
||||
&.disabled:after {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
span {
|
||||
display: block;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background: none;
|
||||
font-family: $font;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
font-size: 1rem;
|
||||
height: 32px;
|
||||
height: 2.0rem;
|
||||
line-height: 23px;
|
||||
line-height: 1.5rem;
|
||||
padding: 4px 53px 0 6px;
|
||||
padding: 4px 3.4rem 0 0.4rem;
|
||||
cursor: default;
|
||||
width: 100%;
|
||||
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:empty:before {
|
||||
content: attr(data-placeholder);
|
||||
color: #ccc;
|
||||
line-height: 23px;
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
display: none;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0 -1px;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
width: -webkit-calc(100% + 2px);
|
||||
width: -moz-calc(100% + 2px);
|
||||
width: calc(100% + 2px);
|
||||
border: 1px solid #e5e5e5;
|
||||
border-top: 1px solid #f9f9f9;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
top: 33px;
|
||||
top: 2.0rem;
|
||||
left: 0;
|
||||
max-height: 350px;
|
||||
max-height: 22rem;
|
||||
overflow-y: auto;
|
||||
z-index: 999999;
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
font-size: 1rem;
|
||||
padding: 0 10px;
|
||||
padding: 0 0.7rem;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
height: 35px;
|
||||
height: 2.2rem;
|
||||
line-height: 32px;
|
||||
line-height: 2rem;
|
||||
|
||||
&:hover {
|
||||
background: #fcfcfc;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
&.minict_group {
|
||||
color: #444;
|
||||
background: #f6f6f6;
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
&.minict_empty {
|
||||
display: none;
|
||||
background: #fff !important;
|
||||
color: #bbb;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
font-size: 0.9rem;
|
||||
height: 55px;
|
||||
height: 3.5rem;
|
||||
line-height: 50px;
|
||||
line-height: 3.3rem;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
cursor: default;
|
||||
background: #fff !important;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
color: $color;
|
||||
background: lighten($color, 42%);
|
||||
}
|
||||
|
||||
&.highlighted {
|
||||
color: #fff;
|
||||
background: $color;
|
||||
}
|
||||
|
||||
&.hidden {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.minict_reset {
|
||||
color: #A9A9A9;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
font-size: 18px;
|
||||
font-size: 1.1rem;
|
||||
line-height: 30px;
|
||||
line-height: 1.9rem;
|
||||
position: absolute;
|
||||
right: 35px;
|
||||
right: 2.2rem;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
width: 20px;
|
||||
width: 1.2rem;
|
||||
-webkit-transition: all 0.35s ease-in-out;
|
||||
transition: all 0.35s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
color: #A9A9A9 + 55;
|
||||
-webkit-transition: all 0.15s ease-in-out;
|
||||
transition: all 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: #A9A9A9 - 70;
|
||||
}
|
||||
}
|
||||
|
||||
&.disabled .minict_reset {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.minict_wrapper.bubble {
|
||||
-webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .05);
|
||||
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, .05);
|
||||
background: -moz-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f9f9f9));
|
||||
background: -webkit-linear-gradient(top, #ffffff 0%,#f9f9f9 100%);
|
||||
background: -o-linear-gradient(top, #ffffff 0%,#f9f9f9 100%);
|
||||
background: -ms-linear-gradient(top, #ffffff 0%,#f9f9f9 100%);
|
||||
background: linear-gradient(to bottom, #ffffff 0%,#f9f9f9 100%);
|
||||
|
||||
&:hover {
|
||||
border-color: #dcdcdc;
|
||||
}
|
||||
|
||||
&:after {
|
||||
border-left: 1px solid #e5e5e5;
|
||||
-webkit-box-shadow: inset 1px 0px 0px 0px #fff;
|
||||
box-shadow: inset 1px 0px 0px 0px #fff;
|
||||
height: 2.05rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
top: 2.7rem;
|
||||
-webkit-box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, .25);
|
||||
box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, .25);
|
||||
border-radius: 6px;
|
||||
overflow: visible;
|
||||
|
||||
&:before {
|
||||
position: absolute;
|
||||
top: -11px;
|
||||
left: 19px;
|
||||
content: ".";
|
||||
color: transparent;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-style: solid;
|
||||
border-width: 0 11px 11px 11px;
|
||||
border-color: transparent transparent #e5e5e5 transparent;
|
||||
}
|
||||
|
||||
&:after {
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 20px;
|
||||
content: ".";
|
||||
color: transparent;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-style: solid;
|
||||
border-width: 0 10px 10px 10px;
|
||||
border-color: transparent transparent #ffffff transparent;
|
||||
}
|
||||
|
||||
li.minict_first {
|
||||
border-top-left-radius: 6px;
|
||||
border-top-right-radius: 6px;
|
||||
}
|
||||
li.minict_last {
|
||||
border-bottom-left-radius: 6px;
|
||||
border-bottom-right-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.minict_reset {
|
||||
width: 30px;
|
||||
}
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "minimalect",
|
||||
"version": "0.8.0",
|
||||
"description": "Minimal select replacement for jQuery",
|
||||
"main": "jquery.minimalect.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/groenroos/minimalect.git"
|
||||
},
|
||||
"keywords": [
|
||||
"jquery",
|
||||
"minimalect"
|
||||
],
|
||||
"author": "Oskari Groenroos",
|
||||
"license": "MIT",
|
||||
"readmeFilename": "README.md",
|
||||
"bugs": {
|
||||
"url": "https://github.com/groenroos/minimalect/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt-contrib-clean": "~0.4.1",
|
||||
"grunt-contrib-concat": "~0.3.0",
|
||||
"grunt-contrib-uglify": "~0.2.2",
|
||||
"grunt-cli": "~0.1.9",
|
||||
"grunt": "~0.4.1",
|
||||
"grunt-contrib-jasmine": "~0.5.1",
|
||||
"grunt-contrib-sass": "~0.3.0",
|
||||
"grunt-banner": "~0.1.4"
|
||||
}
|
||||
}
|
1569
sites/all/themes/gui/materiobasetheme/js/script.js
Normal file
1569
sites/all/themes/gui/materiobasetheme/js/script.js
Normal file
File diff suppressed because it is too large
Load Diff
1615
sites/all/themes/gui/materiobasetheme/js/script.js.orig
Normal file
1615
sites/all/themes/gui/materiobasetheme/js/script.js.orig
Normal file
File diff suppressed because it is too large
Load Diff
2309
sites/all/themes/gui/materiobasetheme/js/script.min.js
vendored
Normal file
2309
sites/all/themes/gui/materiobasetheme/js/script.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user