webshims-rails 1.11.3.1 → 1.11.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
  6. data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
  9. data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
  11. data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
  12. data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
  13. data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
  14. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
  15. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
  16. data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
  17. data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
  18. data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
  19. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
  20. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
  21. data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
  22. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
  23. data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
  24. data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
  25. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
  26. data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
  27. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
  28. data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
  29. data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
  30. data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
  31. data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
  32. data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
  33. data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
  34. data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
  35. data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
  36. data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
  37. data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
  38. data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
  40. data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
  41. data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
  42. data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
  43. data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
  44. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
  45. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
  46. data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
  47. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
  49. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
  50. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
  51. data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
  52. data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
  53. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
  54. data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
  58. data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
  61. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
  62. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
  63. data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
  64. data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
  65. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
  72. metadata +7 -3
@@ -55,8 +55,11 @@
55
55
 
56
56
  if(this._init && val == o.value && oVal == val){return;}
57
57
  this.options.value = val;
58
- this.thumb.stop();
59
- this.range.stop();
58
+
59
+ if($.fn.stop){
60
+ this.thumb.stop();
61
+ this.range.stop();
62
+ }
60
63
 
61
64
  rangeStyle[this.dirs.width] = left+'%';
62
65
  if(this.vertical){
@@ -65,7 +68,7 @@
65
68
  thumbStyle[this.dirs.left] = left+'%';
66
69
 
67
70
 
68
- if(!animate){
71
+ if(!animate || !$.fn.animate){
69
72
  this.thumb.css(thumbStyle);
70
73
  this.range.css(rangeStyle);
71
74
  } else {
@@ -354,9 +357,9 @@
354
357
  $(window).off('blur', removeWin);
355
358
  if(!o.readonly && !o.disabled){
356
359
  normalizeTouch(e);
357
- that.element.focus();
360
+ that.element.trigger('focus');
358
361
  that.addRemoveClass('ws-active', true);
359
- leftOffset = that.element.focus().offset();
362
+ leftOffset = that.element.offset();
360
363
  widgetUnits = that.element[that.dirs.innerWidth]();
361
364
  if(!widgetUnits || !leftOffset){return;}
362
365
  outerWidth = that.thumb[that.dirs.outerWidth]();
@@ -697,6 +700,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
697
700
  return val.length == 1 ? '0'+val : val;
698
701
  };
699
702
 
703
+ var loadPicker = function(type, name){
704
+ type = (type == 'color' ? 'color' : 'forms')+'-picker';
705
+ if(!loadPicker[name+'Loaded'+type]){
706
+ loadPicker[name+'Loaded'+type] = true;
707
+ webshims.ready(name, function(){
708
+ webshims.loader.loadList([type]);
709
+
710
+ });
711
+ }
712
+ return type;
713
+ };
714
+
715
+
716
+ options.addZero = addZero;
717
+ webshims.loader.addModule('forms-picker', {
718
+ noAutoCallback: true,
719
+ options: options
720
+ });
721
+ webshims.loader.addModule('color-picker', {
722
+ noAutoCallback: true,
723
+ css: 'jpicker/jpicker.css',
724
+ options: options,
725
+ d: ['forms-picker']
726
+ });
727
+
728
+ options.steps = steps;
700
729
 
701
730
  (function(){
702
731
 
@@ -809,7 +838,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
809
838
  langCfg.date.monthDigits = monthDigits;
810
839
  langCfg.numberSigns += '-';
811
840
  if(langCfg.meridian){
812
- langCfg.timeSigns += langCfg.meridian[0] + langCfg.meridian[1];
841
+ langCfg.timeSigns += langCfg.meridian[0] + langCfg.meridian[1] + langCfg.meridian[0].toLowerCase() + langCfg.meridian[1].toLowerCase();
813
842
  }
814
843
  $.each(langCfg.date.monthNames, create);
815
844
  $.each(langCfg.date.monthNamesShort, create);
@@ -835,43 +864,24 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
835
864
  $(document).triggerHandler('wslocalechange');
836
865
  };
837
866
 
838
- triggerLocaleChange();
839
867
 
840
- webshims.activeLang({
841
- register: 'form-core',
842
- callback: function(){
843
- $.each(arguments, function(i, val){
844
- if(formcfg[val]){
845
- if(formcfg[val] != curCfg){
846
- curCfg = formcfg[val];
847
- triggerLocaleChange();
848
- }
849
- return false;
850
- }
851
- });
852
- }
853
- });
854
- webshims.activeLang({
855
- langObj: formcfg,
856
- module: 'form-core',
857
- callback: function(val){
858
- if(curCfg != val){
859
- curCfg = val;
860
- triggerLocaleChange();
861
- }
862
- }
868
+
869
+
870
+ curCfg = webshims.activeLang(formcfg);
871
+
872
+ triggerLocaleChange();
873
+
874
+ $(formcfg).on('change', function(){
875
+ curCfg = formcfg.__active;
876
+ triggerLocaleChange();
863
877
  });
878
+
864
879
  })();
865
880
 
866
881
 
867
882
 
868
883
  (function(){
869
884
 
870
-
871
- var mousePress = function(e){
872
- $(this)[e.type == 'mousepressstart' ? 'addClass' : 'removeClass']('mousepress-ui');
873
- };
874
-
875
885
  var retDefault = function(val, def){
876
886
  if(!(typeof val == 'number' || (val && val == val * 1))){
877
887
  return def;
@@ -983,6 +993,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
983
993
  time: function(val){
984
994
  var fVal;
985
995
  if(val && curCfg.meridian){
996
+ val = val.toUpperCase();
986
997
  if(val.substr(0,2) === "12"){
987
998
  val = "00" + val.substr(2);
988
999
  }
@@ -1206,300 +1217,32 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1206
1217
  }
1207
1218
  },
1208
1219
  addBindings: function(){
1209
- var isFocused;
1210
-
1211
1220
  var that = this;
1212
1221
  var o = this.options;
1213
-
1214
- var eventTimer = (function(){
1215
- var events = {};
1216
- return {
1217
- init: function(name, curVal, fn){
1218
- if(!events[name]){
1219
- events[name] = {fn: fn};
1220
- $(that.orig).on(name, function(){
1221
- events[name].val = $.prop(that.orig, 'value');
1222
- });
1223
- }
1224
- events[name].val = curVal;
1225
- },
1226
- call: function(name, val){
1227
- if(events[name] && events[name].val != val){
1228
- clearTimeout(events[name].timer);
1229
- events[name].val = val;
1230
- events[name].timer = setTimeout(function(){
1231
- events[name].fn(val, that);
1232
- }, 9);
1233
- }
1234
- }
1235
- };
1236
- })();
1237
- var initChangeEvents = function(){
1238
- eventTimer.init('input', $.prop(that.orig, 'value'), that.options.input);
1239
- eventTimer.init('change', $.prop(that.orig, 'value'), that.options.change);
1240
- };
1241
-
1242
- var step = {};
1243
-
1244
- var preventBlur = function(e){
1245
- if(preventBlur.prevent){
1246
- e.preventDefault();
1247
- (isFocused || that.element.getShadowFocusElement()).focus();
1248
- stopPropagation(e);
1249
- return true;
1250
- }
1222
+ var run = function(){
1223
+ that._addBindings();
1251
1224
  };
1252
- var callSplitChange = (function(){
1253
- var timer;
1254
-
1255
- var call = function(e){
1256
- var val;
1257
- clearTimeout(timer);
1258
- val = that.parseValue();
1259
- if(that.type == 'color'){
1260
- that.inputElements.val(val);
1261
- }
1262
- $.prop(that.orig, 'value', val);
1263
- eventTimer.call('input', val);
1264
- if(!e || e.type != 'wsupdatevalue'){
1265
- eventTimer.call('change', val);
1266
- }
1267
- };
1268
-
1269
- var onFocus = function(){
1270
- clearTimeout(timer);
1271
- };
1272
- var onBlur = function(e){
1273
- clearTimeout(timer);
1274
- timer = setTimeout(call, 0);
1275
-
1276
- if(e.type == 'change'){
1277
- stopPropagation(e);
1278
- if(!o.splitInput){
1279
- call();
1280
- }
1281
- }
1282
- };
1283
-
1284
- that.element.on('wsupdatevalue', call);
1285
-
1286
- that.inputElements
1287
- .add(that.buttonWrapper)
1288
- .add(that.element)
1289
- .on(
1290
- {
1291
- 'focus focusin': onFocus,
1292
- 'blur focusout change': onBlur
1293
- }
1294
- )
1295
- ;
1296
- setTimeout(function(){
1297
- if(that.popover){
1298
- that.popover.element.on('wspopoverhide', onBlur);
1299
- $('> *', that.popover.element)
1300
- .on({
1301
- 'focusin': onFocus,
1302
- 'focusout': onBlur
1303
- })
1304
- ;
1305
- }
1306
- }, 0);
1307
- })();
1225
+ if(this._addBindings){
1226
+ run();
1227
+ } else {
1228
+ webshims.ready('forms-picker', run);
1229
+ loadPicker(this.type, 'WINDOWLOAD');
1230
+ }
1308
1231
 
1309
- var spinEvents = {};
1310
- var spinElement = o.splitInput ? this.inputElements.filter('.ws-spin') : this.inputElements.eq(0);
1311
- var elementEvts = {
1312
- blur: function(e){
1313
- if(!preventBlur(e) && !o.disabled && !o.readonly){
1314
- if(!preventBlur.prevent){
1315
- isFocused = false;
1316
- }
1317
- }
1318
- stopPropagation(e);
1319
- },
1320
- focus: function(e){
1321
- if(!isFocused){
1322
- initChangeEvents();
1323
- isFocused = this;
1324
- }
1325
- },
1326
- keypress: function(e){
1327
- if(e.isDefaultPrevented()){return;}
1328
- var chr;
1329
- var stepped = true;
1330
- var code = e.keyCode;
1331
- if(!e.ctrlKey && !e.metaKey && curCfg[that.type+'Signs']){
1332
- chr = String.fromCharCode(e.charCode == null ? code : e.charCode);
1333
- stepped = !(chr < " " || (curCfg[that.type+'Signs']+'0123456789').indexOf(chr) > -1);
1334
- } else {
1335
- stepped = false;
1336
- }
1337
- if(stepped){
1338
- e.preventDefault();
1232
+ this.inputElements
1233
+ .add(this.buttonWrapper)
1234
+ .add(this.element)
1235
+ .one('mousedown focusin', function(e){
1236
+ loadPicker(that.type, 'DOM');
1237
+ })
1238
+ .on({
1239
+ 'change input focus focusin blur focusout': function(e){
1240
+ $(e.target).trigger('ws__'+e.type);
1339
1241
  }
1340
- },
1341
- input: (this.type == 'color' && this.isValid) ?
1342
- $.noop :
1343
- (function(){
1344
- var timer;
1345
- var check = function(){
1346
- var val = that.parseValue(true);
1347
- if(val && that.isValid(val)){
1348
- that.setInput(val);
1349
- }
1350
-
1351
- };
1352
- return function(){
1353
- clearTimeout(timer);
1354
- timer = setTimeout(check, 200);
1355
- };
1356
- })(),
1357
- 'input keydown keypress': (function(){
1358
- var timer;
1359
- var isStopped = false;
1360
- var releaseTab = function(){
1361
- if(isStopped === true){
1362
- isStopped = 'semi';
1363
- timer = setTimeout(releaseTab, 250);
1364
- } else {
1365
- isStopped = false;
1366
- }
1367
- };
1368
- var stopTab = function(){
1369
- isStopped = true;
1370
- clearTimeout(timer);
1371
- timer = setTimeout(releaseTab, 300);
1372
- };
1373
- var select = function(){
1374
- var elem = this;
1375
- setTimeout(function(){
1376
- elem.focus();
1377
- elem.select();
1378
- }, 4);
1379
-
1380
- stopTab();
1381
- };
1382
-
1383
- return function(e){
1384
- if(o.splitInput && o.jumpInputs){
1385
- if(e.type == 'input'){
1386
- if($.prop(this, 'value').length === $.prop(this, 'maxLength')){
1387
- try {
1388
- $(this)
1389
- .next()
1390
- .next('input, select')
1391
- .each(select)
1392
- ;
1393
- } catch(er){}
1394
- }
1395
- } else if(!e.shiftKey && !e.crtlKey && e.keyCode == 9 && (isStopped === true || (isStopped && !$.prop(this, 'value')))){
1396
- e.preventDefault();
1397
- }
1398
- }
1399
- };
1400
- })()
1401
- };
1402
- var mouseDownInit = function(){
1403
- if(!o.disabled && !isFocused){
1404
- that.element.getShadowFocusElement().focus();
1405
- }
1406
- preventBlur.set();
1242
+ })
1407
1243
 
1408
- return false;
1409
- };
1410
-
1411
- preventBlur.set = (function(){
1412
- var timer;
1413
- var reset = function(){
1414
- preventBlur.prevent = false;
1415
- };
1416
- return function(){
1417
- clearTimeout(timer);
1418
- preventBlur.prevent = true;
1419
- setTimeout(reset, 9);
1420
- };
1421
- })();
1422
-
1423
-
1424
- this.buttonWrapper.on('mousedown', mouseDownInit);
1425
-
1426
- this.setInput = function(value){
1427
- that.value(value);
1428
- eventTimer.call('input', value);
1429
- };
1430
- this.setChange = function(value){
1431
- that.setInput(value);
1432
- eventTimer.call('change', value);
1433
- };
1434
-
1435
-
1436
-
1437
- this.inputElements.on(elementEvts);
1244
+ ;
1438
1245
 
1439
- if(steps[this.type]){
1440
- ['stepUp', 'stepDown'].forEach(function(name){
1441
- step[name] = function(factor){
1442
- if(!o.disabled && !o.readonly){
1443
- if(!isFocused){
1444
- mouseDownInit();
1445
- }
1446
- var ret = false;
1447
- if (!factor) {
1448
- factor = 1;
1449
- }
1450
- try {
1451
- that.elemHelper[name](factor);
1452
-
1453
- ret = that.elemHelper.prop('value');
1454
-
1455
- } catch (er) {
1456
- if(!o.value && that.maxAsNumber >= that.minAsNumber){
1457
- ret = o.defValue;
1458
- }
1459
- }
1460
- if(ret !== false && o.value != ret){
1461
- that.value(ret);
1462
- eventTimer.call('input', ret);
1463
- }
1464
- return ret;
1465
- }
1466
- };
1467
- });
1468
- if(!o.noSpinbtn){
1469
- spinEvents[$.fn.mwheelIntent ? 'mwheelIntent' : 'mousewheel'] = function(e, delta){
1470
- if(delta && isFocused && !o.disabled){
1471
- step[delta > 0 ? 'stepUp' : 'stepDown']();
1472
- e.preventDefault();
1473
- }
1474
- };
1475
- spinEvents.keydown = function(e){
1476
- if(o.list || e.isDefaultPrevented() || (e.altKey && e.keyCode == 40) || $.attr(this, 'list')){return;}
1477
- var stepped = true;
1478
- var code = e.keyCode;
1479
- if (code == 38) {
1480
- step.stepUp();
1481
- } else if (code == 40) {
1482
- step.stepDown();
1483
- } else {
1484
- stepped = false;
1485
- }
1486
- if(stepped){
1487
- e.preventDefault();
1488
- }
1489
- };
1490
-
1491
- spinElement.attr({'autocomplete': 'off', role: 'spinbutton'}).on(spinEvents);
1492
- }
1493
- $(this.buttonWrapper)
1494
- .on('mousepressstart mousepressend', '.step-up, .step-down', mousePress)
1495
- .on('mousedown mousepress', '.step-up', function(e){
1496
- step.stepUp();
1497
- })
1498
- .on('mousedown mousepress', '.step-down', function(e){
1499
- step.stepDown();
1500
- })
1501
- ;
1502
- }
1503
1246
  if(this.type != 'color'){
1504
1247
  (function(){
1505
1248
  var localeChange ;
@@ -1523,8 +1266,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1523
1266
  $(that.orig).onWSOff('wslocalechange', localeChange);
1524
1267
  })();
1525
1268
  }
1526
-
1527
- initChangeEvents();
1528
1269
  },
1529
1270
  required: function(val, boolVal){
1530
1271
  this.inputElements.attr({'aria-required': ''+boolVal});
@@ -1558,34 +1299,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1558
1299
  this.element.prop('placeholder', placeholder);
1559
1300
  }
1560
1301
  },
1561
- initDataList: function(){
1562
- var listTimer;
1563
- var that = this;
1564
- var updateList = function(){
1565
- $(that.orig)
1566
- .jProp('list')
1567
- .off('updateDatalist', updateList)
1568
- .on('updateDatalist', updateList)
1569
- ;
1570
- clearTimeout(listTimer);
1571
- listTimer = setTimeout(function(){
1572
- if(that.list){
1573
- that.list();
1574
- }
1575
- }, 9);
1576
-
1577
- };
1578
-
1579
- $(this.orig).onTrigger('listdatalistchange', updateList);
1580
- },
1581
- getOptions: function(){
1582
- var options = {};
1583
- var datalist = $(this.orig).jProp('list');
1584
- datalist.find('option').each(function(){
1585
- options[$.prop(this, 'value')] = $.prop(this, 'label');
1586
- });
1587
- return [options, datalist.data('label')];
1588
- },
1589
1302
  list: function(val){
1590
1303
  if(this.type == 'number'){
1591
1304
  this.element.attr('list', $.attr(this.orig, 'list'));
@@ -1715,31 +1428,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1715
1428
  }, 9);
1716
1429
  }
1717
1430
  },
1718
- value: function(val, force){
1719
-
1720
- if(!this._init || force || this.options.value !== val){
1721
- this.valueAsNumber = this.asNumber(val);
1722
- this.options.value = val;
1723
-
1724
- if(isNaN(this.valueAsNumber) || (!isNaN(this.minAsNumber) && this.valueAsNumber < this.minAsNumber) || (!isNaN(this.maxAsNumber) && this.valueAsNumber > this.maxAsNumber)){
1725
- this._setStartInRange();
1726
- } else {
1727
- this.elemHelper.prop('value', val);
1728
- this.options.defValue = "";
1729
- }
1730
-
1731
- val = formatVal[this.type](val, this.options);
1732
- if(this.options.splitInput){
1733
- $.each(this.splits, function(i, elem){
1734
- $.prop(elem, 'value', val[i]);
1735
- });
1736
- } else {
1737
- this.element.prop('value', val);
1738
- }
1739
- this._propertyChange('value');
1740
- this.mirrorValidity();
1741
- }
1742
- },
1743
1431
  step: function(val){
1744
1432
  var defStep = steps[this.type];
1745
1433
  this.options.step = val;
@@ -1811,6 +1499,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1811
1499
  });
1812
1500
  };
1813
1501
 
1502
+ $.fn.wsBaseWidget.wsProto = wsWidgetProto;
1503
+
1814
1504
  $.fn.spinbtnUI = function(opts){
1815
1505
  opts = $.extend({
1816
1506
  monthNames: 'monthNames',
@@ -1825,32 +1515,14 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1825
1515
  }, opts);
1826
1516
  });
1827
1517
  };
1518
+
1519
+ $.fn.spinbtnUI.wsProto = spinBtnProto;
1520
+
1828
1521
  })();
1829
1522
 
1830
1523
  (function(){
1831
1524
  var picker = {};
1832
1525
 
1833
- var loadPicker = function(type, name){
1834
- type = (type == 'color' ? 'color' : 'forms')+'-picker';
1835
- if(!loadPicker[name+'Loaded'+type]){
1836
- loadPicker[name+'Loaded'+type] = true;
1837
- webshims.ready(name, function(){
1838
- webshims.loader.loadList([type]);
1839
- });
1840
- }
1841
- return type;
1842
- };
1843
- options.addZero = addZero;
1844
- webshims.loader.addModule('forms-picker', {
1845
- noAutoCallback: true,
1846
- options: options
1847
- });
1848
- webshims.loader.addModule('color-picker', {
1849
- noAutoCallback: true,
1850
- css: 'jpicker/jpicker.css',
1851
- options: options
1852
- });
1853
-
1854
1526
  webshims.inlinePopover = {
1855
1527
  _create: function(){
1856
1528
  this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
@@ -1894,7 +1566,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1894
1566
  cancel: function(val, popover, data){
1895
1567
  if(!data.options.inlinePicker){
1896
1568
  popover.stopOpen = true;
1897
- data.element.getShadowFocusElement().focus();
1569
+ data.element.getShadowFocusElement().trigger('focus');
1898
1570
  setTimeout(function(){
1899
1571
  popover.stopOpen = false;
1900
1572
  }, 9);
@@ -1983,9 +1655,16 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
1983
1655
 
1984
1656
  picker._common = function(data){
1985
1657
  var options = data.options;
1986
- var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element, position: options.widgetPosition});
1658
+ var popover = webshims.objectCreate(options.inlinePicker ? webshims.inlinePopover : webshims.wsPopover, {}, $.extend(options.popover || {}, {prepareFor: options.inlinePicker ? data.buttonWrapper : data.element}));
1987
1659
  var opener = $('<button type="button" class="ws-popover-opener"><span /></button>').appendTo(data.buttonWrapper);
1988
1660
 
1661
+ if(options.widgetPosition){
1662
+ webshims.error('options.widgetPosition was removed use options.popover.position instead');
1663
+ }
1664
+
1665
+ if(options.openOnFocus && popover.options && (popover.options.appendTo == 'auto' || popover.options.appendTo == 'element')){
1666
+ webshims.error('openOnFocus and popover.appendTo "auto/element" can prduce a11y problems try to change appendTo to body or similiar or use openOnMouseFocus instead');
1667
+ }
1989
1668
 
1990
1669
  var showPickerContent = function(){
1991
1670
  (picker[data.type].showPickerContent || picker.showPickerContent)(data, popover);
@@ -2137,7 +1816,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2137
1816
  if(options.inlinePicker){
2138
1817
  show();
2139
1818
  }
2140
- loadPicker(data.type, 'WINDOWLOAD');
2141
1819
  };
2142
1820
 
2143
1821
  picker.month = picker._common;
@@ -2153,7 +1831,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2153
1831
  .find('.ws-color-indicator')
2154
1832
  ;
2155
1833
  var showColor = function(){
2156
- colorIndicator.css({backgroundColor: $.prop(this, 'value') || '#000'})
1834
+ colorIndicator.css({backgroundColor: $.prop(this, 'value') || '#000000'});
2157
1835
  };
2158
1836
  var showOpacity = (function(){
2159
1837
  var timer;
@@ -2310,11 +1988,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2310
1988
  data = {};
2311
1989
  optsName = type;
2312
1990
 
2313
- //todo: do we need deep extend?
2314
-
2315
1991
  labels = $(this).jProp('labels');
2316
-
2317
- opts = $.extend({}, options.widgets, options[type], $($.prop(this, 'form')).data(type) || {}, $(this).data(type) || {}, {
1992
+ opts = $.extend(webshims.getOptions(this, type, [options.widgets, options[type], $($.prop(this, 'form')).data(type)]), {
2318
1993
  orig: this,
2319
1994
  type: type,
2320
1995
  labels: labels,
@@ -2336,7 +2011,6 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2336
2011
  containerElements: []
2337
2012
  });
2338
2013
 
2339
-
2340
2014
  for(i = 0; i < copyProps.length; i++){
2341
2015
  opts[copyProps[i]] = $.prop(this, copyProps[i]);
2342
2016
  }
@@ -2490,8 +2164,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2490
2164
  opts.splitInput = false;
2491
2165
  }
2492
2166
  var markup = opts.splitInput ?
2493
- '<span class="ws-'+name+' ws-input" role="group"></span>' :
2494
- '<input class="ws-'+name+'" type="text" />';
2167
+ '<span class="ws-'+name+' ws-input ws-inputreplace" role="group"></span>' :
2168
+ '<input class="ws-'+name+' ws-inputreplace" type="text" />';
2495
2169
  var data = $(markup).insertAfter(opts.orig);
2496
2170
  if(steps[name]){
2497
2171
  data = data.spinbtnUI(opts).data('wsWidget'+name);
@@ -2508,13 +2182,20 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
2508
2182
  }
2509
2183
  });
2510
2184
 
2185
+ var init = function(){
2186
+ webshims.addReady(function(context, contextElem){
2187
+ $('input', context)
2188
+ .add(contextElem.filter('input'))
2189
+ .each(implementType)
2190
+ ;
2191
+ });
2192
+ };
2193
+ if(formcfg._isLoading){
2194
+ $(formcfg).one('change', init);
2195
+ } else {
2196
+ init();
2197
+ }
2511
2198
 
2512
- webshims.addReady(function(context, contextElem){
2513
- $('input', context)
2514
- .add(contextElem.filter('input'))
2515
- .each(implementType)
2516
- ;
2517
- });
2518
2199
  })();
2519
2200
  });
2520
2201