webshims-rails 1.11.1 → 1.11.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +8 -8
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +41 -20
  4. data/vendor/assets/javascripts/webshims/shims/combos/10.js +212 -42
  5. data/vendor/assets/javascripts/webshims/shims/combos/11.js +196 -37
  6. data/vendor/assets/javascripts/webshims/shims/combos/12.js +82 -36
  7. data/vendor/assets/javascripts/webshims/shims/combos/13.js +82 -36
  8. data/vendor/assets/javascripts/webshims/shims/combos/14.js +17 -6
  9. data/vendor/assets/javascripts/webshims/shims/combos/15.js +234 -1247
  10. data/vendor/assets/javascripts/webshims/shims/combos/16.js +234 -1247
  11. data/vendor/assets/javascripts/webshims/shims/combos/17.js +202 -45
  12. data/vendor/assets/javascripts/webshims/shims/combos/18.js +202 -45
  13. data/vendor/assets/javascripts/webshims/shims/combos/19.js +16 -5
  14. data/vendor/assets/javascripts/webshims/shims/combos/2.js +51 -11
  15. data/vendor/assets/javascripts/webshims/shims/combos/20.js +16 -5
  16. data/vendor/assets/javascripts/webshims/shims/combos/21.js +82 -36
  17. data/vendor/assets/javascripts/webshims/shims/combos/22.js +82 -36
  18. data/vendor/assets/javascripts/webshims/shims/combos/24.js +1689 -997
  19. data/vendor/assets/javascripts/webshims/shims/combos/25.js +16 -5
  20. data/vendor/assets/javascripts/webshims/shims/combos/26.js +16 -5
  21. data/vendor/assets/javascripts/webshims/shims/combos/3.js +16 -5
  22. data/vendor/assets/javascripts/webshims/shims/combos/30.js +51 -11
  23. data/vendor/assets/javascripts/webshims/shims/combos/31.js +51 -11
  24. data/vendor/assets/javascripts/webshims/shims/combos/4.js +16 -5
  25. data/vendor/assets/javascripts/webshims/shims/combos/5.js +202 -45
  26. data/vendor/assets/javascripts/webshims/shims/combos/6.js +237 -51
  27. data/vendor/assets/javascripts/webshims/shims/combos/7.js +51 -11
  28. data/vendor/assets/javascripts/webshims/shims/combos/8.js +16 -5
  29. data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -48
  30. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +17 -5
  31. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +21 -3
  32. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +35 -6
  33. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +6 -8
  34. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +134 -24
  35. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +152 -1205
  36. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1076 -0
  37. data/vendor/assets/javascripts/webshims/shims/form-validation.js +47 -20
  38. data/vendor/assets/javascripts/webshims/shims/form-validators.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
  40. data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-de.txt → formcfg-de.js} +3 -0
  41. data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-en.txt → formcfg-en.js} +5 -1
  42. data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
  43. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
  44. data/vendor/assets/javascripts/webshims/shims/range-ui.js +62 -13
  45. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +610 -0
  46. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +10 -0
  47. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +743 -0
  48. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1 -755
  49. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +0 -606
  50. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  51. data/vendor/assets/javascripts/webshims/shims/track-ui.js +36 -23
  52. data/vendor/assets/javascripts/webshims/shims/track.js +82 -36
  53. metadata +8 -6
  54. data/vendor/assets/javascripts/webshims/shims/combos/28.js +0 -2196
  55. data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -1167
@@ -169,8 +169,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
169
169
  .on(options.validityUIEvents || 'focusout change refreshvalidityui invalid', switchValidityClass)
170
170
  .on('reset resetvalui', function(e){
171
171
  var elems = $(e.target);
172
- if(e.type == 'reset'){
173
- elems = elems.filter('form').jProp('elements');
172
+ if(elems.is('form, fieldset')){
173
+ elems = elems.jProp('elements');
174
174
  }
175
175
  elems
176
176
  .filter('.user-error, .user-success')
@@ -283,18 +283,41 @@ webshims.register('form-validation', function($, webshims, window, document, und
283
283
  this.element.off('pospopover').on('pospopover', delayedRepos);
284
284
  $(window).on('resize'+this.eventns + ' pospopover'+this.eventns, delayedRepos);
285
285
  },
286
+ _getAutoAppendElement: (function(){
287
+ var invalidParent = /^(?:span|i|label|b|p|tr|thead|tbody|table|strong|em|ul|ol|dl|html)$/i;
288
+ return function(element){
289
+
290
+ var appendElement;
291
+ var parent = element[0];
292
+ var body = document.body;
293
+ while((parent = parent[appendElement ? 'offsetParent' : 'parentNode']) && parent.nodeType == 1 && parent != body){
294
+ if(!appendElement && !invalidParent.test(parent.nodeName)){
295
+ appendElement = parent;
296
+ }
297
+ if(appendElement && $.style(parent, 'overflow') == 'hidden' && $.style(parent, 'position') != 'static'){
298
+ appendElement = false;
299
+ }
300
+ }
301
+ return $(appendElement || body);
302
+ };
303
+ })(),
286
304
  prepareFor: function(element, visual){
287
- var onBlur;
305
+ var onBlur, parentElem;
288
306
  var that = this;
289
307
  var css = {};
290
- var opts = $.extend(true, {}, this.options, $(element.prop('form') || []).data('wspopover') || {}, element.data('wspopover'));
308
+ var opts = $.extend(true, {}, this.options, element.jProp('form').data('wspopover') || {}, element.data('wspopover'));
291
309
  this.lastOpts = opts;
292
310
  this.lastElement = $(element).getShadowFocusElement();
293
311
  if(!this.prepared || !this.options.prepareFor){
294
312
  if(opts.appendTo == 'element'){
295
- this.element.insertAfter(element);
313
+ parentElem = element.parent();
314
+ } else if(opts.appendTo == 'auto'){
315
+ parentElem = this._getAutoAppendElement(element);
296
316
  } else {
297
- this.element.appendTo(opts.appendTo);
317
+ parentElem = $(opts.appendTo);
318
+ }
319
+ if(!this.prepared || parentElem[0] != this.element[0].parentNode){
320
+ this.element.appendTo(parentElem);
298
321
  }
299
322
  }
300
323
 
@@ -324,9 +347,6 @@ webshims.register('form-validation', function($, webshims, window, document, und
324
347
 
325
348
  }
326
349
 
327
- if(!this.prepared && $.fn.bgIframe){
328
- this.element.bgIframe();
329
- }
330
350
  this.prepared = true;
331
351
  },
332
352
  clear: function(){
@@ -408,8 +428,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
408
428
  },
409
429
  setFocus: function(element){
410
430
  var focusElem = $(element).getShadowFocusElement();
411
- var scrollTop = webshims.scrollRoot.scrollTop();
412
- var elemTop = focusElem.offset().top - 30;
431
+ var scrollTop = webshims.scrollRoot.scrollTop() + (options.viewportOffset || 0);
432
+ var elemTop = focusElem.offset().top - (options.scrollOffset || 30);
413
433
  var focus = function(){
414
434
  try {
415
435
  focusElem[0].focus();
@@ -419,7 +439,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
419
439
 
420
440
  if(scrollTop > elemTop){
421
441
  webshims.scrollRoot.animate(
422
- {scrollTop: elemTop - 5},
442
+ {scrollTop: elemTop - 5 - (options.viewportOffset || 0)},
423
443
  {
424
444
  queue: false,
425
445
  duration: Math.max( Math.min( 600, (scrollTop - elemTop) * 1.5 ), 80 ),
@@ -559,18 +579,24 @@ webshims.register('form-validation', function($, webshims, window, document, und
559
579
  check();
560
580
  },
561
581
  hideError: function(elem, reset){
582
+ var invalid;
562
583
  var fieldWrapper = this.getFieldWrapper(elem);
563
- var errorBox = fieldWrapper.hasClass(invalidWrapperClass) ? this.get(elem, fieldWrapper) : fieldWrapper.data('errorbox');
584
+ var errorBox = this.get(elem, fieldWrapper);
564
585
 
565
586
  if(errorBox && errorBox.jquery){
566
- fieldWrapper.removeClass(invalidWrapperClass);
567
- errorBox.message = '';
568
587
  $(elem).filter('input').off('.recheckinvalid');
569
- errorBox[fx[options.iVal.fx].hide](function(){
570
- $(this).attr({hidden: 'hidden'});
571
- });
588
+ if(!reset && (invalid = $('input:invalid, select:invalid, textarea:invalid', fieldWrapper)[0])){
589
+ $(invalid).trigger('refreshvalidityui');
590
+ } else {
591
+ fieldWrapper.removeClass(invalidWrapperClass);
592
+ errorBox.message = '';
593
+ errorBox[fx[options.iVal.fx].hide](function(){
594
+ $(this).attr({hidden: 'hidden'});
595
+ });
596
+ }
597
+
572
598
  }
573
- if(!reset){
599
+ if(!reset && !invalid){
574
600
  this.addSuccess(elem, fieldWrapper);
575
601
  }
576
602
  return fieldWrapper;
@@ -598,12 +624,13 @@ webshims.register('form-validation', function($, webshims, window, document, und
598
624
  var fieldWrapper = this.getFieldWrapper(elem);
599
625
  var box = this.get(elem, fieldWrapper);
600
626
  var message = $(elem).getErrorMessage();
627
+
601
628
  if(box.message != message){
602
629
  box.stop(true, true).html('<p>'+ message +'</p>');
603
630
  box.message = message;
604
631
  fieldWrapper.addClass(invalidWrapperClass).removeClass(successWrapperClass);
632
+ this.recheckInvalidInput(elem);
605
633
  if(box.is('[hidden]') || box.css('display') == 'none'){
606
- this.recheckInvalidInput(elem);
607
634
  box
608
635
  .css({display: 'none'})
609
636
  .removeAttr('hidden')
@@ -119,7 +119,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
119
119
  * - <input type="checkbox" id="check" /> <input data-dependent-validation='checkbox' />
120
120
  */
121
121
  (function(){
122
-
122
+ var formCFG = webshims.cfg.forms;
123
123
  var addCustomValidityRule = webshims.addCustomValidityRule;
124
124
  var getId = function(name){
125
125
  return document.getElementById(name);
@@ -297,7 +297,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
297
297
  url: opts.url,
298
298
  dataType: 'json',
299
299
  depData: remoteData,
300
- data: opts.fullForm ?
300
+ data: formCFG.fullRemoteForm || opts.fullForm ?
301
301
  $(elem).jProp('form').serializeArray() :
302
302
  remoteData,
303
303
  success: this.getResponse,
@@ -8,7 +8,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
8
8
  var ret = [date.getFullYear(), moduleOpts.addZero(date.getMonth() + 1), moduleOpts.addZero(date.getDate())];
9
9
  ret.month = ret[0]+'-'+ret[1];
10
10
  ret.date = ret[0]+'-'+ret[1]+'-'+ret[2];
11
- ret.time = date.getHours() +':'+ date.getMinutes();
11
+ ret.time = moduleOpts.addZero(date.getHours()) +':'+ moduleOpts.addZero(date.getMinutes());
12
12
 
13
13
  ret['datetime-local'] = ret.date +'T'+ ret.time;
14
14
  return ret;
@@ -54,6 +54,9 @@ webshims.formcfg.de = {
54
54
  month: {
55
55
  currentText: 'Aktueller Monat'
56
56
  },
57
+ time: {
58
+ currentText: 'Jetzt'
59
+ },
57
60
  "week": {
58
61
  "currentText": "Aktuelle Woche"
59
62
  },
@@ -57,6 +57,9 @@ webshims.formcfg.en = {
57
57
  "week": {
58
58
  "currentText": "This week"
59
59
  },
60
+ "time": {
61
+ "currentText": "Now"
62
+ },
60
63
  "date": {
61
64
  "closeText": "Done",
62
65
  "clear": "Clear",
@@ -107,4 +110,5 @@ webshims.formcfg.en = {
107
110
  "isRTL": false,
108
111
  "showMonthAfterYear": false,
109
112
  "yearSuffix": ""
110
- };
113
+ }
114
+ };
@@ -11,7 +11,7 @@ if(!this.JSON){this.JSON={};}(function(){function f(n){return n<10?'0'+n:n;}if(t
11
11
  //using window.name for sessionStorage and cookies for localStorage
12
12
 
13
13
  (function () {
14
- var $ = jQuery;
14
+ var $ = webshims.$ || jQuery;
15
15
  if ('localStorage' in window && 'sessionStorage' in window) {
16
16
  $.webshims.isReady('json-storage', true);
17
17
  return;
@@ -1,7 +1,7 @@
1
1
  webshims.register('mediaelement-yt', function($, webshims, window, document, undefined, options){
2
2
  "use strict";
3
3
  var mediaelement = webshims.mediaelement;
4
- var ytAPI = jQuery.Deferred();
4
+ var ytAPI = $.Deferred();
5
5
  window.onYouTubePlayerAPIReady = function() {
6
6
  ytAPI.resolve();
7
7
  };
@@ -16,9 +16,9 @@
16
16
  var i;
17
17
 
18
18
 
19
- this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min" /><span class="ws-range-rail"><span class="ws-range-thumb" /></span>');
20
- this.trail = $('.ws-range-rail', this.element);
21
- this.range = $('.ws-range-min', this.element);
19
+ this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb" /></span>');
20
+ this.trail = $('.ws-range-track', this.element);
21
+ this.range = $('.ws-range-progress ', this.element);
22
22
  this.thumb = $('.ws-range-thumb', this.trail);
23
23
 
24
24
  this.updateMetrics();
@@ -28,6 +28,7 @@
28
28
  for(i = 0; i < createOpts.length; i++){
29
29
  this[createOpts[i]](this.options[createOpts[i]]);
30
30
  }
31
+
31
32
  this.value = this._value;
32
33
  this.value(this.options.value);
33
34
  this.initDataList();
@@ -266,7 +267,7 @@
266
267
  }
267
268
  },
268
269
  addBindings: function(){
269
- var leftOffset, widgetUnits, hasFocus;
270
+ var leftOffset, widgetUnits, hasFocus, isActive;
270
271
  var that = this;
271
272
  var o = this.options;
272
273
 
@@ -296,8 +297,28 @@
296
297
  }
297
298
  };
298
299
  })();
299
-
300
+ var normalizeTouch = (function(){
301
+ var types = {
302
+ touchstart: 1,
303
+ touchend: 1,
304
+ touchmove: 1
305
+ };
306
+ var normalize = ['pageX', 'pageY'];
307
+ return function(e){
308
+ if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
309
+ for(var i = 0; i < normalize.length; i++){
310
+ e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
311
+ }
312
+
313
+ }
314
+ return e;
315
+ };
316
+ })();
300
317
  var setValueFromPos = function(e, animate){
318
+ if(e.type == 'touchmove'){
319
+ e.preventDefault();
320
+ normalizeTouch(e);
321
+ }
301
322
 
302
323
  var val = that.getStepedValueFromPos((e[that.dirs.mouse] - leftOffset) * widgetUnits);
303
324
  if(val != o.value){
@@ -314,18 +335,25 @@
314
335
  eventTimer.call('change', o.value);
315
336
  }
316
337
  that.addRemoveClass('ws-active');
317
- $(document).off('mousemove', setValueFromPos).off('mouseup', remove);
338
+ $(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
318
339
  $(window).off('blur', removeWin);
340
+ isActive = false;
319
341
  };
320
342
  var removeWin = function(e){
321
343
  if(e.target == window){remove();}
322
344
  };
323
345
  var add = function(e){
324
346
  var outerWidth;
347
+
348
+ if(isActive || (e.type == 'touchstart' && (!e.originalEvent || !e.originalEvent.touches || e.originalEvent.touches.length != 1))){
349
+ return;
350
+ }
325
351
  e.preventDefault();
326
- $(document).off('mousemove', setValueFromPos).off('mouseup', remove);
352
+
353
+ $(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
327
354
  $(window).off('blur', removeWin);
328
355
  if(!o.readonly && !o.disabled){
356
+ normalizeTouch(e);
329
357
  that.element.focus();
330
358
  that.addRemoveClass('ws-active', true);
331
359
  leftOffset = that.element.focus().offset();
@@ -335,20 +363,27 @@
335
363
  leftOffset = leftOffset[that.dirs.pos];
336
364
  widgetUnits = 100 / widgetUnits;
337
365
  setValueFromPos(e, o.animate);
366
+ isActive = true;
338
367
  $(document)
339
- .on({
340
- mouseup: remove,
341
- mousemove: setValueFromPos
342
- })
368
+ .on(e.type == 'touchstart' ?
369
+ {
370
+ touchend: remove,
371
+ touchmove: setValueFromPos
372
+ } :
373
+ {
374
+ mouseup: remove,
375
+ mousemove: setValueFromPos
376
+ }
377
+ )
343
378
  ;
344
379
  $(window).on('blur', removeWin);
345
380
  e.stopPropagation();
346
381
  }
347
382
  };
348
383
  var elementEvts = {
349
- mousedown: add,
384
+ 'touchstart mousedown': add,
350
385
  focus: function(e){
351
- if(!o.disabled){
386
+ if(!o.disabled && !hasFocus){
352
387
  eventTimer.init('input', o.value);
353
388
  eventTimer.init('change', o.value);
354
389
  that.addRemoveClass('ws-focus', true);
@@ -411,6 +446,20 @@
411
446
  this.thumb.on({
412
447
  mousedown: add
413
448
  });
449
+
450
+ if(this.orig){
451
+ $(this.orig).jProp('form').on('reset', function(){
452
+ var val = $.prop(that.orig, 'value');
453
+ that.value(val);
454
+ setTimeout(function(){
455
+ var val2 = $.prop(that.orig, 'value');
456
+ if(val != val2){
457
+ that.value(val2);
458
+ }
459
+ }, 4);
460
+ });
461
+ }
462
+
414
463
  if (window.webshims) {
415
464
  webshims.ready('WINDOWLOAD', function(){
416
465
  webshims.ready('dom-support', function(){
@@ -0,0 +1,610 @@
1
+ .input-picker .ws-picker-body, .input-picker .ws-button-row, .input-picker .picker-grid, .input-picker .picker-list, .input-picker .ws-options button {
2
+ zoom: 1;
3
+ }
4
+ .input-picker .ws-picker-body:before, .input-picker .ws-button-row:before, .input-picker .picker-grid:before, .input-picker .picker-list:before, .input-picker .ws-options button:before, .input-picker .ws-picker-body:after, .input-picker .ws-button-row:after, .input-picker .picker-grid:after, .input-picker .picker-list:after, .input-picker .ws-options button:after {
5
+ display: table;
6
+ clear: both;
7
+ content: ' ';
8
+ }
9
+
10
+ /* spinner control for time, number (usable for date, datetime-local) */
11
+ .has-input-buttons,
12
+ input.has-input-buttons,
13
+ span.has-input-buttons {
14
+ display: inline-block;
15
+ }
16
+
17
+ .input-buttons,
18
+ .step-controls,
19
+ .ws-popover-opener {
20
+ zoom: 1;
21
+ overflow: hidden;
22
+ display: inline-block;
23
+ font-size: 0;
24
+ vertical-align: middle;
25
+ margin-top: -3px;
26
+ margin-left: -20px;
27
+ }
28
+
29
+ .step-controls,
30
+ .ws-popover-opener {
31
+ position: relative;
32
+ float: left;
33
+ margin: 0;
34
+ height: 19px;
35
+ width: 15px;
36
+ }
37
+
38
+ .ws-popover-opener {
39
+ position: relative;
40
+ zoom: 1;
41
+ overflow: visible;
42
+ margin: 0 0 0 2px;
43
+ width: 19px;
44
+ border-radius: 3px;
45
+ cursor: pointer;
46
+ background: #ccc;
47
+ }
48
+ .ws-popover-opener span {
49
+ display: block;
50
+ position: absolute;
51
+ top: 50%;
52
+ left: 50%;
53
+ width: 16px;
54
+ height: 16px;
55
+ margin: -8px 0 0 -8px;
56
+ background: url(forms.png) no-repeat -321px -1px;
57
+ }
58
+ .color-input-buttons .ws-popover-opener span {
59
+ background-position: -348px 0;
60
+ }
61
+ .time-input-buttons .ws-popover-opener span {
62
+ background-position: -377px 1px;
63
+ }
64
+ .ws-popover-opener span.ws-color-indicator-bg {
65
+ background: url(../jpicker/images/preview-opacity.png) no-repeat 0;
66
+ }
67
+ .ws-popover-opener span.ws-color-indicator {
68
+ background: none;
69
+ }
70
+
71
+ input[type="color"] {
72
+ width: 6.5em;
73
+ }
74
+
75
+ .input-buttons {
76
+ text-align: left;
77
+ }
78
+ .input-buttons.color-input-buttons {
79
+ margin-left: 2px;
80
+ }
81
+ .input-buttons.input-button-size-1.month-input-buttons, .input-buttons.input-button-size-1.date-input-buttons {
82
+ margin-left: -24px;
83
+ }
84
+ .input-buttons.input-button-size-2 {
85
+ margin-left: -39px;
86
+ }
87
+ .input-buttons.ws-disabled {
88
+ opacity: 0.95;
89
+ }
90
+ .input-buttons.ws-disabled *, .input-buttons.ws-readonly * {
91
+ cursor: default;
92
+ }
93
+
94
+ .step-controls span {
95
+ position: absolute;
96
+ display: inline-block;
97
+ overflow: hidden;
98
+ margin: 0 !important;
99
+ padding: 0 !important;
100
+ width: 15px;
101
+ height: 9px;
102
+ cursor: pointer;
103
+ font-size: 0;
104
+ line-height: 0;
105
+ background: url(forms.png) no-repeat 0 0;
106
+ }
107
+ .step-controls span.step-up {
108
+ top: 0;
109
+ background-position: -80px 0;
110
+ }
111
+ .step-controls span.step-up:hover {
112
+ background-position: -105px 0;
113
+ }
114
+ .step-controls span.step-up.mousepress-ui {
115
+ background-position: -105px -20px;
116
+ }
117
+ .ws-disabled .step-controls span.step-up {
118
+ background-position: -130px 0;
119
+ }
120
+ .step-controls span.step-down {
121
+ bottom: 0;
122
+ background-position: -155px 0;
123
+ }
124
+ .step-controls span.step-down:hover {
125
+ background-position: -180px 0;
126
+ }
127
+ .step-controls span.step-down.mousepress-ui {
128
+ background-position: -180px -20px;
129
+ }
130
+ .ws-disabled .step-controls span.step-down {
131
+ background-position: -205px 0;
132
+ }
133
+
134
+ .ws-input {
135
+ letter-spacing: -0.31em;
136
+ word-spacing: -0.43em;
137
+ }
138
+ .ws-input > * {
139
+ text-align: center;
140
+ letter-spacing: normal;
141
+ word-spacing: normal;
142
+ }
143
+ .ws-input .ws-input-seperator {
144
+ vertical-align: middle;
145
+ width: 2%;
146
+ overflow: hidden;
147
+ }
148
+ .ws-input + .input-buttons {
149
+ margin-left: 2px;
150
+ }
151
+ .ws-input input,
152
+ .ws-input .ws-input-seperator {
153
+ -moz-box-sizing: border-box;
154
+ box-sizing: border-box;
155
+ text-align: center;
156
+ display: inline-block;
157
+ }
158
+
159
+ .ws-date .mm,
160
+ .ws-date .dd {
161
+ width: 23.5%;
162
+ }
163
+ .no-boxsizing .ws-date .mm, .no-boxsizing
164
+ .ws-date .dd {
165
+ width: 16%;
166
+ }
167
+ .ws-date .yy {
168
+ width: 48%;
169
+ }
170
+ .no-boxsizing .ws-date .yy {
171
+ width: 40%;
172
+ }
173
+ .ws-date.ws-month-select .dd {
174
+ width: 22%;
175
+ }
176
+ .no-boxsizing .ws-date.ws-month-select .dd {
177
+ width: 13%;
178
+ }
179
+ .ws-date.ws-month-select .mm {
180
+ width: 38%;
181
+ }
182
+ .ws-date.ws-month-select .yy {
183
+ width: 36%;
184
+ }
185
+ .no-boxsizing .ws-date.ws-month-select .yy {
186
+ width: 30%;
187
+ }
188
+
189
+ .ws-month .mm,
190
+ .ws-month .yy {
191
+ width: 47.9%;
192
+ }
193
+ .no-boxsizing .ws-month .mm, .no-boxsizing
194
+ .ws-month .yy {
195
+ width: 41%;
196
+ }
197
+
198
+ /* range */
199
+ .ws-range {
200
+ position: relative;
201
+ display: inline-block;
202
+ vertical-align: middle;
203
+ margin: 0;
204
+ zoom: 1;
205
+ border: none;
206
+ height: 19px;
207
+ width: 155px;
208
+ border-radius: 1px;
209
+ background: url(range-track.png) 0 center no-repeat;
210
+ cursor: pointer;
211
+ font-size: 0;
212
+ line-height: 0;
213
+ }
214
+ .ws-range .ws-range-thumb {
215
+ top: 0;
216
+ position: absolute;
217
+ display: block;
218
+ z-index: 4;
219
+ overflow: hidden;
220
+ margin: -2px 0 0 -6px;
221
+ height: 22px;
222
+ width: 11px;
223
+ background: url(forms.png) -3px 1px no-repeat;
224
+ cursor: pointer;
225
+ outline: none;
226
+ font-size: 0;
227
+ line-height: 0;
228
+ }
229
+ .ws-range .ws-range-thumb:hover {
230
+ background-position: -20px 1px;
231
+ }
232
+ .ws-range.ws-focus .ws-range-thumb {
233
+ background-position: -20px 1px;
234
+ }
235
+ .ws-range.ws-active .ws-range-thumb {
236
+ background-position: -37px 1px;
237
+ }
238
+ .ws-range[aria-disabled="true"], .ws-range[aria-readonly="true"] {
239
+ cursor: default;
240
+ opacity: 0.95;
241
+ }
242
+ .ws-range[aria-disabled="true"] .ws-range-thumb, .ws-range[aria-readonly="true"] .ws-range-thumb {
243
+ cursor: default;
244
+ }
245
+ .ws-range[aria-disabled="true"] .ws-range-thumb {
246
+ background-position: -54px 1px;
247
+ }
248
+ .ws-range .ws-range-rail {
249
+ position: absolute;
250
+ display: block;
251
+ top: 0;
252
+ left: 0;
253
+ right: 0;
254
+ bottom: 0;
255
+ margin: 0;
256
+ zoom: 1;
257
+ }
258
+ .ws-range .ws-range-min {
259
+ position: absolute !important;
260
+ display: block;
261
+ margin: 9px 0 0;
262
+ padding: 0 !important;
263
+ top: 0;
264
+ height: 1px;
265
+ left: 0;
266
+ z-index: 1;
267
+ overflow: hidden;
268
+ background: #b6e2fb;
269
+ }
270
+ .ws-range .ws-range-ticks {
271
+ overflow: hidden;
272
+ position: absolute;
273
+ bottom: 0px;
274
+ left: 0;
275
+ height: 4px;
276
+ width: 1px;
277
+ margin: 0 0 0 -1.5px;
278
+ font-size: 0;
279
+ line-height: 0;
280
+ text-indent: -999px;
281
+ background: #ccc;
282
+ }
283
+ .ws-range.vertical-range {
284
+ background: url(vertical-range.png) center bottom no-repeat;
285
+ width: 20px;
286
+ }
287
+ .ws-range.vertical-range .ws-range-thumb {
288
+ top: 0;
289
+ left: 3px;
290
+ bottom: auto;
291
+ background: url(vertical-range.png) 0 -51px no-repeat;
292
+ margin: -6px 0 0 0;
293
+ height: 11px;
294
+ width: 22px;
295
+ }
296
+ .ws-range.vertical-range .ws-range-thumb:hover, .ws-range.vertical-range.ws-focus .ws-range-thumb {
297
+ background-position: 0 -34px;
298
+ }
299
+ .ws-range.vertical-range.ws-active .ws-range-thumb {
300
+ background-position: 0 -17px;
301
+ }
302
+ .ws-range.vertical-range[aria-disabled="true"] .ws-range-thumb {
303
+ background-position: 0 0;
304
+ }
305
+ .ws-range.vertical-range .ws-range-min {
306
+ top: auto;
307
+ bottom: 1px;
308
+ left: 0;
309
+ width: 1px;
310
+ height: 0;
311
+ }
312
+ .ws-range.vertical-range .ws-range-rail {
313
+ top: 5px;
314
+ left: 0;
315
+ right: 0;
316
+ bottom: 5px;
317
+ }
318
+ .ws-range.vertical-range .ws-range-ticks {
319
+ bottom: auto;
320
+ left: auto;
321
+ right: 0;
322
+ height: 1px;
323
+ width: 4px;
324
+ }
325
+
326
+ .input-picker .ws-prev,
327
+ .input-picker .ws-next,
328
+ .input-picker .ws-super-prev,
329
+ .input-picker .ws-super-next, .input-picker .ws-button-row button {
330
+ border-radius: 4px;
331
+ background: #ccc;
332
+ padding: 5px 8px;
333
+ display: inline-block;
334
+ border: 1px solid transparent;
335
+ }
336
+
337
+ .input-picker {
338
+ outline: none;
339
+ text-align: center;
340
+ font-family: sans-serif;
341
+ width: 330px;
342
+ }
343
+ .input-picker.time-popover, .input-picker.datetime-local-popover {
344
+ width: 415px;
345
+ }
346
+ .input-picker.time-popover .ws-prev,
347
+ .input-picker.time-popover .ws-next,
348
+ .input-picker.time-popover .ws-super-prev,
349
+ .input-picker.time-popover .ws-super-next {
350
+ display: none;
351
+ }
352
+ .input-picker.ws-size-2 {
353
+ width: 645px;
354
+ }
355
+ .input-picker.ws-size-3 {
356
+ width: 960px;
357
+ }
358
+ .input-picker.color-popover {
359
+ width: 590px;
360
+ }
361
+ .input-picker abbr[title] {
362
+ cursor: help;
363
+ }
364
+ .input-picker li,
365
+ .input-picker button {
366
+ font-size: 13px;
367
+ line-height: 16px;
368
+ color: #000;
369
+ transition: all 400ms;
370
+ }
371
+ .input-picker .ws-focus,
372
+ .input-picker :focus {
373
+ outline: 1px dotted black;
374
+ }
375
+ .input-picker .ws-po-box {
376
+ position: relative;
377
+ padding: 10px 20px 15px;
378
+ border-radius: 5px;
379
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
380
+ }
381
+ .input-picker .ws-prev,
382
+ .input-picker .ws-next,
383
+ .input-picker .ws-super-prev,
384
+ .input-picker .ws-super-next {
385
+ position: absolute;
386
+ top: 10px;
387
+ border: 1px solid #cccccc;
388
+ border-radius: 5px;
389
+ padding: 0;
390
+ width: 24px;
391
+ height: 24px;
392
+ background: #eeeeee url(forms.png) no-repeat 0 0;
393
+ z-index: 1;
394
+ }
395
+ .input-picker .ws-prev span,
396
+ .input-picker .ws-next span,
397
+ .input-picker .ws-super-prev span,
398
+ .input-picker .ws-super-next span {
399
+ display: none;
400
+ }
401
+ .input-picker.time-popover .ws-picker-body {
402
+ padding-top: 36px;
403
+ }
404
+ .input-picker .ws-picker-body {
405
+ position: relative;
406
+ padding: 46px 0 0;
407
+ zoom: 1;
408
+ margin: 0 -10px;
409
+ }
410
+ .input-picker .ws-prev,
411
+ .input-picker .ws-super-prev {
412
+ left: 20px;
413
+ background-position: -243px 5px;
414
+ }
415
+ .input-picker .ws-super-prev {
416
+ background-position: -243px -12px;
417
+ }
418
+ .input-picker.ws-year-buttons .ws-prev {
419
+ left: 50px;
420
+ }
421
+ .input-picker .ws-next,
422
+ .input-picker .ws-super-next {
423
+ right: 20px;
424
+ background-position: -275px 5px;
425
+ }
426
+ .input-picker .ws-super-next {
427
+ background-position: -275px -12px;
428
+ }
429
+ .input-picker.ws-year-buttons .ws-next {
430
+ right: 50px;
431
+ }
432
+ .input-picker .ws-prev:hover,
433
+ .input-picker .ws-next:hover,
434
+ .input-picker .ws-super-prev:hover,
435
+ .input-picker .ws-super-next:hover {
436
+ border-color: #666;
437
+ }
438
+ .input-picker .ws-prev[disabled],
439
+ .input-picker .ws-next[disabled],
440
+ .input-picker .ws-super-prev[disabled],
441
+ .input-picker .ws-super-next[disabled] {
442
+ opacity: 0.4;
443
+ border-color: #eee;
444
+ }
445
+ .input-picker .ws-button-row {
446
+ position: relative;
447
+ margin: 10px 0 0;
448
+ border-top: 1px solid #eeeeee;
449
+ padding: 10px 0 0;
450
+ text-align: left;
451
+ z-index: 2;
452
+ }
453
+ .input-picker .ws-button-row button {
454
+ border: 1px solid #cccccc;
455
+ border-radius: 5px;
456
+ box-shadow: 1px 1px 0 white;
457
+ background-color: #ddd;
458
+ background-image: -webkit-linear-gradient(top, #ececec 0%, #dddddd 100%);
459
+ background-image: linear-gradient(to bottom, #ececec 0%, #dddddd 100%);
460
+ transition: border-color 200ms linear;
461
+ float: left;
462
+ }
463
+ .input-picker .ws-button-row button.ws-empty {
464
+ float: right;
465
+ }
466
+ .input-picker[data-currentview="setMonthList"] .ws-picker-header select {
467
+ max-width: 95%;
468
+ }
469
+ .input-picker[data-currentview="setDayList"] .ws-picker-header select {
470
+ max-width: 40%;
471
+ }
472
+ .input-picker[data-currentview="setDayList"] .ws-picker-header select.month-select {
473
+ max-width: 55%;
474
+ }
475
+ .input-picker.time-popover .ws-picker-header {
476
+ top: -30px;
477
+ }
478
+ .input-picker.time-popover .ws-picker-header button {
479
+ font-size: 15px;
480
+ }
481
+ .input-picker.ws-year-buttons .ws-picker-header {
482
+ margin: 0 65px;
483
+ }
484
+ .input-picker .ws-picker-header {
485
+ position: absolute;
486
+ top: -44px;
487
+ right: 0;
488
+ left: 0;
489
+ margin: 0 40px;
490
+ }
491
+ .input-picker .ws-picker-header button {
492
+ display: inline-block;
493
+ width: 100%;
494
+ margin: 0;
495
+ padding: 4px 0;
496
+ font-weight: 700;
497
+ color: #000;
498
+ }
499
+ .input-picker .ws-picker-header button:hover {
500
+ text-decoration: underline;
501
+ }
502
+ .input-picker .ws-picker-header button[disabled]:hover {
503
+ text-decoration: none;
504
+ }
505
+ .input-picker .picker-grid {
506
+ position: relative;
507
+ zoom: 1;
508
+ overflow: hidden;
509
+ }
510
+ .input-picker.ws-size-1 .picker-list {
511
+ float: none;
512
+ width: auto;
513
+ }
514
+ .input-picker .picker-list {
515
+ position: relative;
516
+ zoom: 1;
517
+ width: 290px;
518
+ float: left;
519
+ margin: 0 10px;
520
+ background: #fff;
521
+ }
522
+ .input-picker .picker-list tr {
523
+ border: 0;
524
+ }
525
+ .input-picker .picker-list th,
526
+ .input-picker .picker-list td {
527
+ padding: 3px 5px;
528
+ }
529
+ .input-picker .picker-list.day-list td {
530
+ padding: 2px 1px;
531
+ }
532
+ .input-picker .picker-list.day-list td button {
533
+ padding: 4px 0;
534
+ }
535
+ .input-picker .picker-list td button {
536
+ display: block;
537
+ padding: 9px 0;
538
+ width: 100%;
539
+ border-radius: 5px;
540
+ color: #000;
541
+ background-color: #fff;
542
+ }
543
+ .input-picker .picker-list td button.othermonth {
544
+ color: #888;
545
+ }
546
+ .input-picker .picker-list td button:hover, .input-picker .picker-list td button.checked-value {
547
+ color: #fff;
548
+ background: #000;
549
+ }
550
+ .input-picker .picker-list td button[disabled], .input-picker .picker-list td button[disabled]:hover {
551
+ color: #888;
552
+ background-color: #fff;
553
+ }
554
+ .input-picker .picker-list table {
555
+ width: 100%;
556
+ border: 0 none;
557
+ border-collapse: collapse;
558
+ }
559
+ .input-picker .picker-list th,
560
+ .input-picker .picker-list td.week-cell {
561
+ font-size: 13px;
562
+ line-height: 1.1em;
563
+ padding-bottom: 3px;
564
+ text-transform: uppercase;
565
+ font-weight: 700;
566
+ }
567
+ .input-picker .picker-list th, .input-picker .picker-list td {
568
+ width: 14.2856%;
569
+ }
570
+ .input-picker .ws-options {
571
+ margin: 10px 0 0;
572
+ border-top: 1px solid #eeeeee;
573
+ padding: 10px 0 0;
574
+ text-align: left;
575
+ }
576
+ .input-picker .ws-options h5 {
577
+ margin: 0 0 5px;
578
+ padding: 0;
579
+ font-size: 14px;
580
+ font-weight: bold;
581
+ }
582
+ .input-picker .ws-options ul,
583
+ .input-picker .ws-options li {
584
+ padding: 0;
585
+ margin: 0;
586
+ list-style: none;
587
+ }
588
+ .input-picker .ws-options button {
589
+ display: block;
590
+ padding: 4px;
591
+ width: 100%;
592
+ text-align: left;
593
+ border-radius: 4px;
594
+ }
595
+ .input-picker .ws-options button.ws-focus, .input-picker .ws-options button:focus, .input-picker .ws-options button:hover {
596
+ color: #fff;
597
+ background: #000;
598
+ }
599
+ .input-picker .ws-options button[disabled], .input-picker .ws-options button[disabled].ws-focus, .input-picker .ws-options button[disabled]:focus, .input-picker .ws-options button[disabled]:hover {
600
+ color: #888;
601
+ background: #fff;
602
+ text-decoration: none;
603
+ }
604
+ .input-picker .ws-options button .ws-value {
605
+ float: left;
606
+ }
607
+ .input-picker .ws-options button .ws-label {
608
+ float: right;
609
+ font-size: 96%;
610
+ }