the build runs!

This commit is contained in:
Manuel Friedli 2016-06-27 20:26:20 +02:00
parent c5bc72c0ad
commit bb0dab5434
18 changed files with 242 additions and 183 deletions

View file

@ -26,8 +26,8 @@ module.exports = function (grunt) {
libs: { libs: {
src: [ src: [
'node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.js',
'node_modules/jqueryui-browser/ui/jquery.ui.core.js', 'node_modules/jquery-ui/ui/core.js',
'node_modules/jqueryui-browser/ui/jquery.ui.widget.js', 'node_modules/jquery-ui/ui/widget.js',
'node_modules/jquery.cookie/jquery.cookie.js' 'node_modules/jquery.cookie/jquery.cookie.js'
], ],
dest: 'dist/libs.js' dest: 'dist/libs.js'

4
dist/jquery.uhr.base.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
dist/jquery.uhr.baselangs.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
dist/jquery.uhr.complete.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
dist/jquery.uhr.langs.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
dist/jquery.uhr.main.min.js vendored Normal file

File diff suppressed because one or more lines are too long

373
dist/libs.js vendored
View file

@ -9213,25 +9213,32 @@ return jQuery;
})); }));
/*! /*!
* jQuery UI Core 1.10.2 * jQuery UI Core 1.11.4
* http://jqueryui.com * http://jqueryui.com
* *
* Copyright 2013 jQuery Foundation and other contributors * Copyright jQuery Foundation and other contributors
* Released under the MIT license. * Released under the MIT license.
* http://jquery.org/license * http://jquery.org/license
* *
* http://api.jqueryui.com/category/ui-core/ * http://api.jqueryui.com/category/ui-core/
*/ */
(function( $, undefined ) { (function( factory ) {
if ( typeof define === "function" && define.amd ) {
var uuid = 0, // AMD. Register as an anonymous module.
runiqueId = /^ui-id-\d+$/; define( [ "jquery" ], factory );
} else {
// Browser globals
factory( jQuery );
}
}(function( $ ) {
// $.ui might exist from components with no dependencies, e.g., $.ui.position // $.ui might exist from components with no dependencies, e.g., $.ui.position
$.ui = $.ui || {}; $.ui = $.ui || {};
$.extend( $.ui, { $.extend( $.ui, {
version: "1.10.2", version: "1.11.4",
keyCode: { keyCode: {
BACKSPACE: 8, BACKSPACE: 8,
@ -9243,12 +9250,6 @@ $.extend( $.ui, {
ESCAPE: 27, ESCAPE: 27,
HOME: 36, HOME: 36,
LEFT: 37, LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34, PAGE_DOWN: 34,
PAGE_UP: 33, PAGE_UP: 33,
PERIOD: 190, PERIOD: 190,
@ -9261,77 +9262,36 @@ $.extend( $.ui, {
// plugins // plugins
$.fn.extend({ $.fn.extend({
focus: (function( orig ) { scrollParent: function( includeHidden ) {
return function( delay, fn ) { var position = this.css( "position" ),
return typeof delay === "number" ? excludeStaticParent = position === "absolute",
this.each(function() { overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
var elem = this; scrollParent = this.parents().filter( function() {
setTimeout(function() { var parent = $( this );
$( elem ).focus(); if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
if ( fn ) { return false;
fn.call( elem );
}
}, delay );
}) :
orig.apply( this, arguments );
};
})( $.fn.focus ),
scrollParent: function() {
var scrollParent;
if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
scrollParent = this.parents().filter(function() {
return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
} else {
scrollParent = this.parents().filter(function() {
return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
}
return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;
},
zIndex: function( zIndex ) {
if ( zIndex !== undefined ) {
return this.css( "zIndex", zIndex );
}
if ( this.length ) {
var elem = $( this[ 0 ] ), position, value;
while ( elem.length && elem[ 0 ] !== document ) {
// Ignore z-index if position is set to a value where z-index is ignored by the browser
// This makes behavior of this function consistent across browsers
// WebKit always returns auto if the element is positioned
position = elem.css( "position" );
if ( position === "absolute" || position === "relative" || position === "fixed" ) {
// IE returns 0 when zIndex is not specified
// other browsers return a string
// we ignore the case of nested elements with an explicit value of 0
// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
value = parseInt( elem.css( "zIndex" ), 10 );
if ( !isNaN( value ) && value !== 0 ) {
return value;
}
} }
elem = elem.parent(); return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
} }).eq( 0 );
}
return 0; return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
}, },
uniqueId: function() { uniqueId: (function() {
return this.each(function() { var uuid = 0;
if ( !this.id ) {
this.id = "ui-id-" + (++uuid); return function() {
} return this.each(function() {
}); if ( !this.id ) {
}, this.id = "ui-id-" + ( ++uuid );
}
});
};
})(),
removeUniqueId: function() { removeUniqueId: function() {
return this.each(function() { return this.each(function() {
if ( runiqueId.test( this.id ) ) { if ( /^ui-id-\d+$/.test( this.id ) ) {
$( this ).removeAttr( "id" ); $( this ).removeAttr( "id" );
} }
}); });
@ -9348,10 +9308,10 @@ function focusable( element, isTabIndexNotNaN ) {
if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
return false; return false;
} }
img = $( "img[usemap=#" + mapName + "]" )[0]; img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
return !!img && visible( img ); return !!img && visible( img );
} }
return ( /input|select|textarea|button|object/.test( nodeName ) ? return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
!element.disabled : !element.disabled :
"a" === nodeName ? "a" === nodeName ?
element.href || isTabIndexNotNaN : element.href || isTabIndexNotNaN :
@ -9459,104 +9419,147 @@ if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
})( $.fn.removeData ); })( $.fn.removeData );
} }
// deprecated // deprecated
$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
$.support.selectstart = "onselectstart" in document.createElement( "div" );
$.fn.extend({ $.fn.extend({
disableSelection: function() { focus: (function( orig ) {
return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + return function( delay, fn ) {
".ui-disableSelection", function( event ) { return typeof delay === "number" ?
this.each(function() {
var elem = this;
setTimeout(function() {
$( elem ).focus();
if ( fn ) {
fn.call( elem );
}
}, delay );
}) :
orig.apply( this, arguments );
};
})( $.fn.focus ),
disableSelection: (function() {
var eventType = "onselectstart" in document.createElement( "div" ) ?
"selectstart" :
"mousedown";
return function() {
return this.bind( eventType + ".ui-disableSelection", function( event ) {
event.preventDefault(); event.preventDefault();
}); });
}, };
})(),
enableSelection: function() { enableSelection: function() {
return this.unbind( ".ui-disableSelection" ); return this.unbind( ".ui-disableSelection" );
}
});
$.extend( $.ui, {
// $.ui.plugin is deprecated. Use the proxy pattern instead.
plugin: {
add: function( module, option, set ) {
var i,
proto = $.ui[ module ].prototype;
for ( i in set ) {
proto.plugins[ i ] = proto.plugins[ i ] || [];
proto.plugins[ i ].push( [ option, set[ i ] ] );
}
},
call: function( instance, name, args ) {
var i,
set = instance.plugins[ name ];
if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
return;
}
for ( i = 0; i < set.length; i++ ) {
if ( instance.options[ set[ i ][ 0 ] ] ) {
set[ i ][ 1 ].apply( instance.element, args );
}
}
}
}, },
// only used by resizable zIndex: function( zIndex ) {
hasScroll: function( el, a ) { if ( zIndex !== undefined ) {
return this.css( "zIndex", zIndex );
//If overflow is hidden, the element might have extra content, but the user wants to hide it
if ( $( el ).css( "overflow" ) === "hidden") {
return false;
} }
var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", if ( this.length ) {
has = false; var elem = $( this[ 0 ] ), position, value;
while ( elem.length && elem[ 0 ] !== document ) {
if ( el[ scroll ] > 0 ) { // Ignore z-index if position is set to a value where z-index is ignored by the browser
return true; // This makes behavior of this function consistent across browsers
// WebKit always returns auto if the element is positioned
position = elem.css( "position" );
if ( position === "absolute" || position === "relative" || position === "fixed" ) {
// IE returns 0 when zIndex is not specified
// other browsers return a string
// we ignore the case of nested elements with an explicit value of 0
// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
value = parseInt( elem.css( "zIndex" ), 10 );
if ( !isNaN( value ) && value !== 0 ) {
return value;
}
}
elem = elem.parent();
}
} }
// TODO: determine which cases actually cause this to happen return 0;
// if the element doesn't have the scroll set, see if it's possible to
// set the scroll
el[ scroll ] = 1;
has = ( el[ scroll ] > 0 );
el[ scroll ] = 0;
return has;
} }
}); });
})( jQuery ); // $.ui.plugin is deprecated. Use $.widget() extensions instead.
$.ui.plugin = {
add: function( module, option, set ) {
var i,
proto = $.ui[ module ].prototype;
for ( i in set ) {
proto.plugins[ i ] = proto.plugins[ i ] || [];
proto.plugins[ i ].push( [ option, set[ i ] ] );
}
},
call: function( instance, name, args, allowDisconnected ) {
var i,
set = instance.plugins[ name ];
if ( !set ) {
return;
}
if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
return;
}
for ( i = 0; i < set.length; i++ ) {
if ( instance.options[ set[ i ][ 0 ] ] ) {
set[ i ][ 1 ].apply( instance.element, args );
}
}
}
};
}));
/*! /*!
* jQuery UI Widget 1.10.2 * jQuery UI Widget 1.11.4
* http://jqueryui.com * http://jqueryui.com
* *
* Copyright 2013 jQuery Foundation and other contributors * Copyright jQuery Foundation and other contributors
* Released under the MIT license. * Released under the MIT license.
* http://jquery.org/license * http://jquery.org/license
* *
* http://api.jqueryui.com/jQuery.widget/ * http://api.jqueryui.com/jQuery.widget/
*/ */
(function( $, undefined ) { (function( factory ) {
if ( typeof define === "function" && define.amd ) {
var uuid = 0, // AMD. Register as an anonymous module.
slice = Array.prototype.slice, define( [ "jquery" ], factory );
_cleanData = $.cleanData; } else {
$.cleanData = function( elems ) {
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { // Browser globals
try { factory( jQuery );
$( elem ).triggerHandler( "remove" );
// http://bugs.jquery.com/ticket/8235
} catch( e ) {}
} }
_cleanData( elems ); }(function( $ ) {
};
var widget_uuid = 0,
widget_slice = Array.prototype.slice;
$.cleanData = (function( orig ) {
return function( elems ) {
var events, elem, i;
for ( i = 0; (elem = elems[i]) != null; i++ ) {
try {
// Only trigger remove when necessary to save time
events = $._data( elem, "events" );
if ( events && events.remove ) {
$( elem ).triggerHandler( "remove" );
}
// http://bugs.jquery.com/ticket/8235
} catch ( e ) {}
}
orig( elems );
};
})( $.cleanData );
$.widget = function( name, base, prototype ) { $.widget = function( name, base, prototype ) {
var fullName, existingConstructor, constructor, basePrototype, var fullName, existingConstructor, constructor, basePrototype,
@ -9641,7 +9644,7 @@ $.widget = function( name, base, prototype ) {
// TODO: remove support for widgetEventPrefix // TODO: remove support for widgetEventPrefix
// always use the name + a colon as the prefix, e.g., draggable:start // always use the name + a colon as the prefix, e.g., draggable:start
// don't prefix for widgets that aren't DOM-based // don't prefix for widgets that aren't DOM-based
widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
}, proxiedPrototype, { }, proxiedPrototype, {
constructor: constructor, constructor: constructor,
namespace: namespace, namespace: namespace,
@ -9669,10 +9672,12 @@ $.widget = function( name, base, prototype ) {
} }
$.widget.bridge( name, constructor ); $.widget.bridge( name, constructor );
return constructor;
}; };
$.widget.extend = function( target ) { $.widget.extend = function( target ) {
var input = slice.call( arguments, 1 ), var input = widget_slice.call( arguments, 1 ),
inputIndex = 0, inputIndex = 0,
inputLength = input.length, inputLength = input.length,
key, key,
@ -9701,18 +9706,17 @@ $.widget.bridge = function( name, object ) {
var fullName = object.prototype.widgetFullName || name; var fullName = object.prototype.widgetFullName || name;
$.fn[ name ] = function( options ) { $.fn[ name ] = function( options ) {
var isMethodCall = typeof options === "string", var isMethodCall = typeof options === "string",
args = slice.call( arguments, 1 ), args = widget_slice.call( arguments, 1 ),
returnValue = this; returnValue = this;
// allow multiple hashes to be passed on init
options = !isMethodCall && args.length ?
$.widget.extend.apply( null, [ options ].concat(args) ) :
options;
if ( isMethodCall ) { if ( isMethodCall ) {
this.each(function() { this.each(function() {
var methodValue, var methodValue,
instance = $.data( this, fullName ); instance = $.data( this, fullName );
if ( options === "instance" ) {
returnValue = instance;
return false;
}
if ( !instance ) { if ( !instance ) {
return $.error( "cannot call methods on " + name + " prior to initialization; " + return $.error( "cannot call methods on " + name + " prior to initialization; " +
"attempted to call method '" + options + "'" ); "attempted to call method '" + options + "'" );
@ -9729,10 +9733,19 @@ $.widget.bridge = function( name, object ) {
} }
}); });
} else { } else {
// Allow multiple hashes to be passed on init
if ( args.length ) {
options = $.widget.extend.apply( null, [ options ].concat(args) );
}
this.each(function() { this.each(function() {
var instance = $.data( this, fullName ); var instance = $.data( this, fullName );
if ( instance ) { if ( instance ) {
instance.option( options || {} )._init(); instance.option( options || {} );
if ( instance._init ) {
instance._init();
}
} else { } else {
$.data( this, fullName, new object( options, this ) ); $.data( this, fullName, new object( options, this ) );
} }
@ -9759,12 +9772,8 @@ $.Widget.prototype = {
_createWidget: function( options, element ) { _createWidget: function( options, element ) {
element = $( element || this.defaultElement || this )[ 0 ]; element = $( element || this.defaultElement || this )[ 0 ];
this.element = $( element ); this.element = $( element );
this.uuid = uuid++; this.uuid = widget_uuid++;
this.eventNamespace = "." + this.widgetName + this.uuid; this.eventNamespace = "." + this.widgetName + this.uuid;
this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
this.bindings = $(); this.bindings = $();
this.hoverable = $(); this.hoverable = $();
@ -9787,6 +9796,11 @@ $.Widget.prototype = {
this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
} }
this.options = $.widget.extend( {},
this.options,
this._getCreateOptions(),
options );
this._create(); this._create();
this._trigger( "create", null, this._getCreateEventData() ); this._trigger( "create", null, this._getCreateEventData() );
this._init(); this._init();
@ -9802,9 +9816,6 @@ $.Widget.prototype = {
// all event bindings should go through this._on() // all event bindings should go through this._on()
this.element this.element
.unbind( this.eventNamespace ) .unbind( this.eventNamespace )
// 1.9 BC for #7810
// TODO remove dual storage
.removeData( this.widgetName )
.removeData( this.widgetFullName ) .removeData( this.widgetFullName )
// support: jquery <1.6.3 // support: jquery <1.6.3
// http://bugs.jquery.com/ticket/9413 // http://bugs.jquery.com/ticket/9413
@ -9850,12 +9861,12 @@ $.Widget.prototype = {
curOption = curOption[ parts[ i ] ]; curOption = curOption[ parts[ i ] ];
} }
key = parts.pop(); key = parts.pop();
if ( value === undefined ) { if ( arguments.length === 1 ) {
return curOption[ key ] === undefined ? null : curOption[ key ]; return curOption[ key ] === undefined ? null : curOption[ key ];
} }
curOption[ key ] = value; curOption[ key ] = value;
} else { } else {
if ( value === undefined ) { if ( arguments.length === 1 ) {
return this.options[ key ] === undefined ? null : this.options[ key ]; return this.options[ key ] === undefined ? null : this.options[ key ];
} }
options[ key ] = value; options[ key ] = value;
@ -9880,20 +9891,23 @@ $.Widget.prototype = {
if ( key === "disabled" ) { if ( key === "disabled" ) {
this.widget() this.widget()
.toggleClass( this.widgetFullName + "-disabled ui-state-disabled", !!value ) .toggleClass( this.widgetFullName + "-disabled", !!value );
.attr( "aria-disabled", value );
this.hoverable.removeClass( "ui-state-hover" ); // If the widget is becoming disabled, then nothing is interactive
this.focusable.removeClass( "ui-state-focus" ); if ( value ) {
this.hoverable.removeClass( "ui-state-hover" );
this.focusable.removeClass( "ui-state-focus" );
}
} }
return this; return this;
}, },
enable: function() { enable: function() {
return this._setOption( "disabled", false ); return this._setOptions({ disabled: false });
}, },
disable: function() { disable: function() {
return this._setOption( "disabled", true ); return this._setOptions({ disabled: true });
}, },
_on: function( suppressDisabledCheck, element, handlers ) { _on: function( suppressDisabledCheck, element, handlers ) {
@ -9913,7 +9927,6 @@ $.Widget.prototype = {
element = this.element; element = this.element;
delegateElement = this.widget(); delegateElement = this.widget();
} else { } else {
// accept selectors, DOM elements
element = delegateElement = $( element ); element = delegateElement = $( element );
this.bindings = this.bindings.add( element ); this.bindings = this.bindings.add( element );
} }
@ -9938,7 +9951,7 @@ $.Widget.prototype = {
handler.guid || handlerProxy.guid || $.guid++; handler.guid || handlerProxy.guid || $.guid++;
} }
var match = event.match( /^(\w+)\s*(.*)$/ ), var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
eventName = match[1] + instance.eventNamespace, eventName = match[1] + instance.eventNamespace,
selector = match[2]; selector = match[2];
if ( selector ) { if ( selector ) {
@ -9950,8 +9963,14 @@ $.Widget.prototype = {
}, },
_off: function( element, eventName ) { _off: function( element, eventName ) {
eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + this.eventNamespace; eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
this.eventNamespace;
element.unbind( eventName ).undelegate( eventName ); element.unbind( eventName ).undelegate( eventName );
// Clear the stack to avoid memory leaks (#10056)
this.bindings = $( this.bindings.not( element ).get() );
this.focusable = $( this.focusable.not( element ).get() );
this.hoverable = $( this.hoverable.not( element ).get() );
}, },
_delay: function( handler, delay ) { _delay: function( handler, delay ) {
@ -10053,7 +10072,9 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
}; };
}); });
})( jQuery ); return $.widget;
}));
/*! /*!
* jQuery Cookie Plugin v1.4.1 * jQuery Cookie Plugin v1.4.1

6
dist/libs.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/uhr-black.min.css vendored Normal file
View file

@ -0,0 +1 @@
.black .onoffswitch-inner:before,.uhr.black{background-color:#111}.uhr.black .dot:not(.active){border-color:rgba(255,255,255,.1);box-shadow:0 0 .1em rgba(255,255,255,.1)}.uhr.black .letter:not(.active){color:rgba(255,255,255,.1);text-shadow:0 0 .1em rgba(255,255,255,.1)}

1
dist/uhr-blue.min.css vendored Normal file
View file

@ -0,0 +1 @@
.blue .onoffswitch-inner:before,.uhr.blue{background-color:#00a}.uhr.blue .dot:not(.active){border-color:rgba(255,255,255,.1);box-shadow:0 0 .1em rgba(255,255,255,.1)}.uhr.blue .letter:not(.active){color:rgba(255,255,255,.1);text-shadow:0 0 .1em rgba(255,255,255,.1)}

1
dist/uhr-green.min.css vendored Normal file
View file

@ -0,0 +1 @@
.green .onoffswitch-inner:before,.uhr.green{background-color:#0c0}.uhr.green .dot:not(.active){border-color:rgba(0,0,0,.1);box-shadow:0 0 .1em rgba(0,0,0,.1)}.uhr.green .letter:not(.active){color:rgba(0,0,0,.1);text-shadow:0 0 .1em rgba(0,0,0,.1)}

1
dist/uhr-pink.min.css vendored Normal file
View file

@ -0,0 +1 @@
.pink .onoffswitch-inner:before,.uhr.pink{background-color:#f0a}.uhr.pink .dot.active{border-color:#fff;box-shadow:0 0 .1em #fff}.uhr.pink .letter.active{color:#fff;text-shadow:0 0 .1em #fff}.uhr.pink .dot:not(.active){border-color:rgba(255,255,255,.1);box-shadow:0 0 .1em rgba(255,255,255,.1)}.uhr.pink .letter:not(.active){color:rgba(255,255,255,.1);text-shadow:0 0 .1em rgba(255,255,255,.1)}

1
dist/uhr-red.min.css vendored Normal file
View file

@ -0,0 +1 @@
.red .onoffswitch-inner:before,.uhr.red{background-color:#700}.uhr.red .dot:not(.active){border-color:rgba(255,255,255,.1);box-shadow:0 0 .1em rgba(255,255,255,.1)}.uhr.red .letter:not(.active){color:rgba(255,255,255,.1);text-shadow:0 0 .1em rgba(255,255,255,.1)}

1
dist/uhr-white.min.css vendored Normal file
View file

@ -0,0 +1 @@
.uhr.white,.white .onoffswitch-inner:before{background-color:#ccc}.uhr.white .dot.active{border-color:#fff;box-shadow:0 0 .1em #fff}.uhr.white .letter.active{color:#fff;text-shadow:0 0 .1em #fff}.uhr.white .dot:not(.active){border-color:rgba(0,0,0,.1);box-shadow:0 0 .1em rgba(0,0,0,.1)}.uhr.white .letter:not(.active){color:rgba(0,0,0,.1);text-shadow:0 0 .1em rgba(0,0,0,.1)}

1
dist/uhr-yellow.min.css vendored Normal file
View file

@ -0,0 +1 @@
.uhr.yellow,.yellow .onoffswitch-inner:before{background-color:#fd0}.uhr.yellow .dot.active{border-color:#fff;box-shadow:0 0 .1em #fff}.uhr.yellow .letter.active{color:#fff;text-shadow:0 0 .1em #fff}.uhr.yellow .dot:not(.active){border-color:rgba(0,0,0,.05);box-shadow:0 0 .1em rgba(0,0,0,.05)}.uhr.yellow .letter:not(.active){color:rgba(0,0,0,.05);text-shadow:0 0 .1em rgba(0,0,0,.05)}

1
dist/uhr.min.css vendored Normal file
View file

@ -0,0 +1 @@
@font-face{font-family:Uhrenfont;src:url(../resources/uhr.woff) format('woff')}body{font-family:Uhrenfont,sans-serif}.uhr{position:relative;margin:0;transition:background-color .5s}.dot,.uhr .letterarea,.uhr .reflection{position:absolute;display:block}.uhr .reflection{top:0;bottom:0;left:0;right:0;background:radial-gradient(225em 45em at 160% 0,rgba(255,255,255,.4) 0,rgba(255,255,255,.05) 40%,rgba(255,255,255,0) 40%) no-repeat;margin:.15em}.uhr .letterarea{top:12%;bottom:12%;left:12%;right:12%;overflow:hidden;font-size:200%}.dot1,.dot2{top:3.75%}.dot3,.dot4{bottom:3.75%}.dot2,.dot3{right:3.75%}.item{transition:box-shadow .5s,text-shadow .5s,border-color .5s,color .5s}.dot{height:0;width:0;border:.2em solid;border-radius:1em}.dot.active{border-color:#eee;box-shadow:0 0 .2em #eee}.dot1{left:3.75%}.dot4{left:3.75%}.letter{height:10%;width:9.0909%;padding:0;margin:0;display:inline-block;text-align:center;line-height:160%}.letter.active{color:#eee;text-shadow:0 0 .2em #eee}.onoffswitch{position:relative;width:86px;margin:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #999;border-radius:50px}.modeswitch-inner,.onoffswitch-inner{width:200%;margin-left:-100%;-moz-transition:margin .3s ease-in 0s;-webkit-transition:margin .3s ease-in 0s;-o-transition:margin .3s ease-in 0s;transition:margin .3s ease-in 0s}.modeswitch-inner:after,.modeswitch-inner:before,.onoffswitch-inner:after,.onoffswitch-inner:before{float:left;width:50%;height:24px;padding:0;line-height:24px;font-size:18px;font-weight:700;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.onoffswitch-inner:before{content:"EIN";padding-left:12px;color:#eee;transition:background-color .5s}.onoffswitch-inner:after{content:"AUS";padding-right:12px;background-color:#eee;color:#999;text-align:right}.onoffswitch-switch{width:30px;margin:-3px;background:#fff;border:2px solid #999;border-radius:50px;position:absolute;top:0;bottom:0;right:58px;-moz-transition:all .3s ease-in 0s;-webkit-transition:all .3s ease-in 0s;-o-transition:all .3s ease-in 0s;transition:all .3s ease-in 0s}a.uhr-closecontrolpanel,a.uhr-configlink{cursor:pointer;display:inline-block;width:24px;height:24px}.onoffswitch-checkbox:checked+.onoffswitch-label .modeswitch-inner,.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-left:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:0}.modeswitch-inner:before{content:"MIN";padding-left:12px;background-color:#fff;color:#000}.modeswitch-inner:after{content:"SEC";padding-right:12px;background-color:#fff;color:#000;text-align:right}a.uhr-configlink{background:url(../resources/settings.png) no-repeat;margin:2px;vertical-align:top}.uhr-controlpanel{border-radius:.5em;box-shadow:0 0 1em #000;background-color:#fff;display:inline-block;padding:.5em;position:sticky;bottom:0;margin-left:1em}.uhr-controlpanel .content{position:relative}a.uhr-closecontrolpanel{position:absolute;right:0;top:-1em;background:url(../resources/close.png) no-repeat}#disclaimer{font-size:.5em}#disclaimer a{color:#444;text-decoration:underline}

View file

@ -24,7 +24,7 @@
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"jquery": "~2.1.3", "jquery": "~2.1.3",
"jqueryui-browser": "~1.10.2-1", "jquery-ui": "github:jquery/jquery-ui#1.11.4",
"jquery.cookie": "~1.4.1" "jquery.cookie": "~1.4.1"
}, },
"devDependencies": { "devDependencies": {

View file

@ -9,7 +9,13 @@ suite('Bärneruhr', function () {
}); });
teardown(function () { teardown(function () {
var uhr = elem.uhr('instance'); var uhr;
try {
uhr = elem.uhr('instance');
} catch (e) {
// no work? goodbye!
return;
}
if (uhr !== undefined) { if (uhr !== undefined) {
cleanupCookies(uhr.id); cleanupCookies(uhr.id);
} }
@ -29,9 +35,7 @@ suite('Bärneruhr', function () {
} }
test('create and destroy widget', function () { test('create and destroy widget', function () {
var uhr = elem.uhr('instance'); var id, uhr;
var id;
assert.isUndefined(uhr);
elem.uhr(); elem.uhr();
uhr = elem.uhr('instance'); uhr = elem.uhr('instance');
assert.isNotNull(uhr); assert.isNotNull(uhr);