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.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
- data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
- data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
- data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
- metadata +7 -3
@@ -1,3 +1,264 @@
|
|
1
|
+
(function($){
|
2
|
+
|
3
|
+
(function () {
|
4
|
+
if($.event.special.mousewheel){return;}
|
5
|
+
var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
|
6
|
+
toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
|
7
|
+
['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
|
8
|
+
slice = Array.prototype.slice,
|
9
|
+
nullLowestDeltaTimeout, lowestDelta;
|
10
|
+
|
11
|
+
if ( $.event.fixHooks ) {
|
12
|
+
for ( var i = toFix.length; i; ) {
|
13
|
+
$.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
$.event.special.mousewheel = {
|
18
|
+
version: '3.1.6',
|
19
|
+
|
20
|
+
setup: function() {
|
21
|
+
if ( this.addEventListener ) {
|
22
|
+
for ( var i = toBind.length; i; ) {
|
23
|
+
this.addEventListener( toBind[--i], handler, false );
|
24
|
+
}
|
25
|
+
} else {
|
26
|
+
this.onmousewheel = handler;
|
27
|
+
}
|
28
|
+
},
|
29
|
+
|
30
|
+
teardown: function() {
|
31
|
+
if ( this.removeEventListener ) {
|
32
|
+
for ( var i = toBind.length; i; ) {
|
33
|
+
this.removeEventListener( toBind[--i], handler, false );
|
34
|
+
}
|
35
|
+
} else {
|
36
|
+
this.onmousewheel = null;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
};
|
40
|
+
|
41
|
+
$.fn.extend({
|
42
|
+
mousewheel: function(fn) {
|
43
|
+
return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
|
44
|
+
},
|
45
|
+
|
46
|
+
unmousewheel: function(fn) {
|
47
|
+
return this.unbind('mousewheel', fn);
|
48
|
+
}
|
49
|
+
});
|
50
|
+
|
51
|
+
|
52
|
+
function handler(event) {
|
53
|
+
var orgEvent = event || window.event,
|
54
|
+
args = slice.call(arguments, 1),
|
55
|
+
delta = 0,
|
56
|
+
deltaX = 0,
|
57
|
+
deltaY = 0,
|
58
|
+
absDelta = 0;
|
59
|
+
event = $.event.fix(orgEvent);
|
60
|
+
event.type = 'mousewheel';
|
61
|
+
|
62
|
+
// Old school scrollwheel delta
|
63
|
+
if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }
|
64
|
+
if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }
|
65
|
+
if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }
|
66
|
+
if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
|
67
|
+
|
68
|
+
// Firefox < 17 horizontal scrolling related to DOMMouseScroll event
|
69
|
+
if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
|
70
|
+
deltaX = deltaY * -1;
|
71
|
+
deltaY = 0;
|
72
|
+
}
|
73
|
+
|
74
|
+
// Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
|
75
|
+
delta = deltaY === 0 ? deltaX : deltaY;
|
76
|
+
|
77
|
+
// New school wheel delta (wheel event)
|
78
|
+
if ( 'deltaY' in orgEvent ) {
|
79
|
+
deltaY = orgEvent.deltaY * -1;
|
80
|
+
delta = deltaY;
|
81
|
+
}
|
82
|
+
if ( 'deltaX' in orgEvent ) {
|
83
|
+
deltaX = orgEvent.deltaX;
|
84
|
+
if ( deltaY === 0 ) { delta = deltaX * -1; }
|
85
|
+
}
|
86
|
+
|
87
|
+
// No change actually happened, no reason to go any further
|
88
|
+
if ( deltaY === 0 && deltaX === 0 ) { return; }
|
89
|
+
|
90
|
+
// Store lowest absolute delta to normalize the delta values
|
91
|
+
absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
|
92
|
+
if ( !lowestDelta || absDelta < lowestDelta ) {
|
93
|
+
lowestDelta = absDelta;
|
94
|
+
}
|
95
|
+
|
96
|
+
// Get a whole, normalized value for the deltas
|
97
|
+
delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
|
98
|
+
deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
|
99
|
+
deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
|
100
|
+
|
101
|
+
// Add information to the event object
|
102
|
+
event.deltaX = deltaX;
|
103
|
+
event.deltaY = deltaY;
|
104
|
+
event.deltaFactor = lowestDelta;
|
105
|
+
|
106
|
+
// Add event and delta to the front of the arguments
|
107
|
+
args.unshift(event, delta, deltaX, deltaY);
|
108
|
+
|
109
|
+
// Clearout lowestDelta after sometime to better
|
110
|
+
// handle multiple device types that give different
|
111
|
+
// a different lowestDelta
|
112
|
+
// Ex: trackpad = 3 and mouse wheel = 120
|
113
|
+
if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
|
114
|
+
nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
|
115
|
+
|
116
|
+
return ($.event.dispatch || $.event.handle).apply(this, args);
|
117
|
+
}
|
118
|
+
|
119
|
+
function nullLowestDelta() {
|
120
|
+
lowestDelta = null;
|
121
|
+
}
|
122
|
+
|
123
|
+
})();
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
(function(){
|
128
|
+
if($.event.special.mwheelIntent){return;}
|
129
|
+
var mwheelI = {
|
130
|
+
pos: [-260, -260]
|
131
|
+
},
|
132
|
+
minDif = 3,
|
133
|
+
doc = document,
|
134
|
+
root = doc.documentElement,
|
135
|
+
body = doc.body,
|
136
|
+
longDelay, shortDelay
|
137
|
+
;
|
138
|
+
if(!body){
|
139
|
+
$(function(){
|
140
|
+
body = doc.body;
|
141
|
+
});
|
142
|
+
}
|
143
|
+
function unsetPos(){
|
144
|
+
if(this === mwheelI.elem){
|
145
|
+
mwheelI.pos = [-260, -260];
|
146
|
+
mwheelI.elem = false;
|
147
|
+
minDif = 3;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
$.event.special.mwheelIntent = {
|
152
|
+
setup: function(){
|
153
|
+
var jElm = $(this).bind('mousewheel', $.event.special.mwheelIntent.handler);
|
154
|
+
if( this !== doc && this !== root && this !== body ){
|
155
|
+
jElm.bind('mouseleave', unsetPos);
|
156
|
+
}
|
157
|
+
jElm = null;
|
158
|
+
return true;
|
159
|
+
},
|
160
|
+
teardown: function(){
|
161
|
+
$(this)
|
162
|
+
.unbind('mousewheel', $.event.special.mwheelIntent.handler)
|
163
|
+
.unbind('mouseleave', unsetPos)
|
164
|
+
;
|
165
|
+
return true;
|
166
|
+
},
|
167
|
+
handler: function(e, d){
|
168
|
+
var pos = [e.clientX, e.clientY];
|
169
|
+
if( this === mwheelI.elem || Math.abs(mwheelI.pos[0] - pos[0]) > minDif || Math.abs(mwheelI.pos[1] - pos[1]) > minDif ){
|
170
|
+
mwheelI.elem = this;
|
171
|
+
mwheelI.pos = pos;
|
172
|
+
minDif = 250;
|
173
|
+
|
174
|
+
clearTimeout(shortDelay);
|
175
|
+
shortDelay = setTimeout(function(){
|
176
|
+
minDif = 10;
|
177
|
+
}, 200);
|
178
|
+
clearTimeout(longDelay);
|
179
|
+
longDelay = setTimeout(function(){
|
180
|
+
minDif = 3;
|
181
|
+
}, 1500);
|
182
|
+
e = $.extend({}, e, {type: 'mwheelIntent'});
|
183
|
+
return ($.event.dispatch || $.event.handle).apply(this, arguments);
|
184
|
+
}
|
185
|
+
}
|
186
|
+
};
|
187
|
+
$.fn.extend({
|
188
|
+
mwheelIntent: function(fn) {
|
189
|
+
return fn ? this.bind("mwheelIntent", fn) : this.trigger("mwheelIntent");
|
190
|
+
},
|
191
|
+
|
192
|
+
unmwheelIntent: function(fn) {
|
193
|
+
return this.unbind("mwheelIntent", fn);
|
194
|
+
}
|
195
|
+
});
|
196
|
+
|
197
|
+
$(function(){
|
198
|
+
body = doc.body;
|
199
|
+
//assume that document is always scrollable, doesn't hurt if not
|
200
|
+
$(doc).bind('mwheelIntent.mwheelIntentDefault', $.noop);
|
201
|
+
});
|
202
|
+
})();
|
203
|
+
|
204
|
+
|
205
|
+
(function(){
|
206
|
+
if($.event.special.mousepress){return;}
|
207
|
+
var removeTimer = function(elem, full){
|
208
|
+
var timer = elem.data('mousepresstimer');
|
209
|
+
if(timer){
|
210
|
+
clearTimeout(timer);
|
211
|
+
}
|
212
|
+
if(full){
|
213
|
+
elem.off('mouseup.mousepressext mouseleave.mousepressext');
|
214
|
+
}
|
215
|
+
elem = null;
|
216
|
+
};
|
217
|
+
$.event.special.mousepress = {
|
218
|
+
setup: function(){
|
219
|
+
var timer;
|
220
|
+
$(this).on('mousedown.mousepressext', function(e){
|
221
|
+
var elem = $(this);
|
222
|
+
|
223
|
+
var startIntervall = function(delay){
|
224
|
+
var steps = 0;
|
225
|
+
removeTimer(elem);
|
226
|
+
elem.data('mousepresstimer', setInterval(function(){
|
227
|
+
$.event.special.mousepress.handler(elem[0], e);
|
228
|
+
steps++;
|
229
|
+
if(steps > 3 && delay > 45){
|
230
|
+
startIntervall(delay - 40);
|
231
|
+
}
|
232
|
+
}, delay));
|
233
|
+
};
|
234
|
+
var target = $(e.target).trigger('mousepressstart', [e]);
|
235
|
+
|
236
|
+
removeTimer(elem);
|
237
|
+
elem.data('mousepresstimer', setTimeout(function(){
|
238
|
+
startIntervall(180);
|
239
|
+
}, 200));
|
240
|
+
|
241
|
+
elem.on('mouseup.mousepressext mouseleave.mousepressext', function(e){
|
242
|
+
removeTimer(elem, true);
|
243
|
+
target.trigger('mousepressend', [e]);
|
244
|
+
elem = null;
|
245
|
+
target = null;
|
246
|
+
});
|
247
|
+
});
|
248
|
+
},
|
249
|
+
teardown: function(){
|
250
|
+
removeTimer($(this).off('.mousepressext'), true);
|
251
|
+
},
|
252
|
+
handler: function(elem, e){
|
253
|
+
return $.event.dispatch.call(elem, {type: 'mousepress', target: e.target, pageX: e.pageX, pageY: e.pageY});
|
254
|
+
}
|
255
|
+
};
|
256
|
+
|
257
|
+
})();
|
258
|
+
|
259
|
+
})(webshims.$);
|
260
|
+
|
261
|
+
|
1
262
|
webshims.register('forms-picker', function($, webshims, window, document, undefined, options){
|
2
263
|
"use strict";
|
3
264
|
var picker = webshims.picker;
|
@@ -58,17 +319,352 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
58
319
|
this.setFocus(this.activeButton, this.opts.noFocus);
|
59
320
|
};
|
60
321
|
var formcfg = webshims.formcfg;
|
61
|
-
var curCfg = formcfg
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
322
|
+
var curCfg = formcfg.__active || formcfg[''];
|
323
|
+
var stopPropagation = function(e){
|
324
|
+
e.stopImmediatePropagation();
|
325
|
+
};
|
326
|
+
var steps = options.steps;
|
327
|
+
|
328
|
+
var mousePress = function(e){
|
329
|
+
$(this)[e.type == 'mousepressstart' ? 'addClass' : 'removeClass']('mousepress-ui');
|
330
|
+
};
|
331
|
+
|
332
|
+
|
333
|
+
var widgetProtos = {
|
334
|
+
_addBindings: function(){
|
335
|
+
var isFocused;
|
336
|
+
|
337
|
+
var that = this;
|
338
|
+
var o = this.options;
|
339
|
+
|
340
|
+
var eventTimer = (function(){
|
341
|
+
var events = {};
|
342
|
+
return {
|
343
|
+
init: function(name, curVal, fn){
|
344
|
+
if (!events[name]) {
|
345
|
+
events[name] = {
|
346
|
+
fn: fn
|
347
|
+
};
|
348
|
+
$(that.orig).on(name, function(){
|
349
|
+
events[name].val = $.prop(that.orig, 'value');
|
350
|
+
});
|
351
|
+
}
|
352
|
+
events[name].val = curVal;
|
353
|
+
},
|
354
|
+
call: function(name, val){
|
355
|
+
if (events[name] && events[name].val != val) {
|
356
|
+
clearTimeout(events[name].timer);
|
357
|
+
events[name].val = val;
|
358
|
+
events[name].timer = setTimeout(function(){
|
359
|
+
events[name].fn(val, that);
|
360
|
+
}, 9);
|
361
|
+
}
|
362
|
+
}
|
363
|
+
};
|
364
|
+
})();
|
365
|
+
var initChangeEvents = function(){
|
366
|
+
eventTimer.init('input', $.prop(that.orig, 'value'), that.options.input);
|
367
|
+
eventTimer.init('change', $.prop(that.orig, 'value'), that.options.change);
|
368
|
+
};
|
369
|
+
|
370
|
+
var step = {};
|
371
|
+
|
372
|
+
var preventBlur = function(e){
|
373
|
+
if (preventBlur.prevent) {
|
374
|
+
e.preventDefault();
|
375
|
+
$(isFocused || that.element.getShadowFocusElement()).trigger('focus');
|
376
|
+
stopPropagation(e);
|
377
|
+
return true;
|
378
|
+
}
|
379
|
+
};
|
380
|
+
var callSplitChange = (function(){
|
381
|
+
var timer;
|
382
|
+
|
383
|
+
var call = function(e){
|
384
|
+
var val;
|
385
|
+
clearTimeout(timer);
|
386
|
+
val = that.parseValue();
|
387
|
+
if (that.type == 'color') {
|
388
|
+
that.inputElements.val(val);
|
389
|
+
}
|
390
|
+
$.prop(that.orig, 'value', val);
|
391
|
+
eventTimer.call('input', val);
|
392
|
+
if (!e || e.type != 'wsupdatevalue') {
|
393
|
+
eventTimer.call('change', val);
|
394
|
+
}
|
395
|
+
};
|
396
|
+
|
397
|
+
var onFocus = function(){
|
398
|
+
clearTimeout(timer);
|
399
|
+
};
|
400
|
+
var onBlur = function(e){
|
401
|
+
clearTimeout(timer);
|
402
|
+
timer = setTimeout(call, 0);
|
403
|
+
|
404
|
+
if (e.type == 'ws__change') {
|
405
|
+
stopPropagation(e);
|
406
|
+
if (!o.splitInput) {
|
407
|
+
call();
|
408
|
+
}
|
409
|
+
}
|
410
|
+
};
|
411
|
+
|
412
|
+
that.element.on('wsupdatevalue', call);
|
413
|
+
|
414
|
+
that.inputElements.add(that.buttonWrapper).add(that.element).on({
|
415
|
+
'ws__focusin': onFocus,
|
416
|
+
'ws__blur ws__focusout ws__change': onBlur
|
417
|
+
});
|
418
|
+
setTimeout(function(){
|
419
|
+
if (that.popover) {
|
420
|
+
that.popover.element.on('wspopoverhide', onBlur);
|
421
|
+
that.popover.element.children().on({
|
422
|
+
'focusin': onFocus,
|
423
|
+
'focusout': onBlur
|
424
|
+
});
|
425
|
+
}
|
426
|
+
}, 0);
|
427
|
+
})();
|
428
|
+
|
429
|
+
var spinEvents = {};
|
430
|
+
var spinElement = o.splitInput ? this.inputElements.filter('.ws-spin') : this.inputElements.eq(0);
|
431
|
+
var elementEvts = {
|
432
|
+
ws__blur: function(e){
|
433
|
+
if (!preventBlur(e) && !o.disabled && !o.readonly) {
|
434
|
+
if (!preventBlur.prevent) {
|
435
|
+
isFocused = false;
|
436
|
+
}
|
437
|
+
}
|
438
|
+
stopPropagation(e);
|
439
|
+
},
|
440
|
+
ws__focus: function(e){
|
441
|
+
if (!isFocused) {
|
442
|
+
initChangeEvents();
|
443
|
+
isFocused = this;
|
444
|
+
}
|
445
|
+
},
|
446
|
+
keypress: function(e){
|
447
|
+
if (e.isDefaultPrevented()) {
|
448
|
+
return;
|
449
|
+
}
|
450
|
+
var chr;
|
451
|
+
var stepped = true;
|
452
|
+
var code = e.keyCode;
|
453
|
+
if (!e.ctrlKey && !e.metaKey && curCfg[that.type + 'Signs']) {
|
454
|
+
chr = String.fromCharCode(e.charCode == null ? code : e.charCode);
|
455
|
+
stepped = !(chr < " " || (curCfg[that.type + 'Signs'] + '0123456789').indexOf(chr) > -1);
|
456
|
+
}
|
457
|
+
else {
|
458
|
+
stepped = false;
|
459
|
+
}
|
460
|
+
if (stepped) {
|
461
|
+
e.preventDefault();
|
462
|
+
}
|
463
|
+
},
|
464
|
+
ws__input: (this.type == 'color' && this.isValid) ? $.noop : (function(){
|
465
|
+
var timer;
|
466
|
+
var check = function(){
|
467
|
+
var val = that.parseValue(true);
|
468
|
+
if (val && that.isValid(val)) {
|
469
|
+
that.setInput(val);
|
470
|
+
}
|
471
|
+
|
472
|
+
};
|
473
|
+
return function(){
|
474
|
+
clearTimeout(timer);
|
475
|
+
timer = setTimeout(check, 200);
|
476
|
+
};
|
477
|
+
})(),
|
478
|
+
'ws__input keydown keypress': (function(){
|
479
|
+
var timer;
|
480
|
+
var isStopped = false;
|
481
|
+
var releaseTab = function(){
|
482
|
+
if (isStopped === true) {
|
483
|
+
isStopped = 'semi';
|
484
|
+
timer = setTimeout(releaseTab, 250);
|
485
|
+
}
|
486
|
+
else {
|
487
|
+
isStopped = false;
|
488
|
+
}
|
489
|
+
};
|
490
|
+
var stopTab = function(){
|
491
|
+
isStopped = true;
|
492
|
+
clearTimeout(timer);
|
493
|
+
timer = setTimeout(releaseTab, 300);
|
494
|
+
};
|
495
|
+
var select = function(){
|
496
|
+
var elem = this;
|
497
|
+
setTimeout(function(){
|
498
|
+
elem.focus();
|
499
|
+
elem.select();
|
500
|
+
}, 4);
|
501
|
+
|
502
|
+
stopTab();
|
503
|
+
};
|
504
|
+
|
505
|
+
return function(e){
|
506
|
+
if (o.splitInput && o.jumpInputs) {
|
507
|
+
if (e.type == 'ws__input') {
|
508
|
+
if ($.prop(this, 'value').length === $.prop(this, 'maxLength')) {
|
509
|
+
try {
|
510
|
+
$(this).next().next('input, select').each(select);
|
511
|
+
}
|
512
|
+
catch (er) {
|
513
|
+
}
|
514
|
+
}
|
515
|
+
}
|
516
|
+
else
|
517
|
+
if (!e.shiftKey && !e.crtlKey && e.keyCode == 9 && (isStopped === true || (isStopped && !$.prop(this, 'value')))) {
|
518
|
+
e.preventDefault();
|
519
|
+
}
|
520
|
+
}
|
521
|
+
};
|
522
|
+
})()
|
523
|
+
};
|
524
|
+
var mouseDownInit = function(){
|
525
|
+
if (!o.disabled && !isFocused) {
|
526
|
+
that.element.getShadowFocusElement().trigger('focus');
|
527
|
+
}
|
528
|
+
preventBlur.set();
|
529
|
+
|
530
|
+
return false;
|
531
|
+
};
|
532
|
+
|
533
|
+
preventBlur.set = (function(){
|
534
|
+
var timer;
|
535
|
+
var reset = function(){
|
536
|
+
preventBlur.prevent = false;
|
537
|
+
};
|
538
|
+
return function(){
|
539
|
+
clearTimeout(timer);
|
540
|
+
preventBlur.prevent = true;
|
541
|
+
setTimeout(reset, 9);
|
542
|
+
};
|
543
|
+
})();
|
544
|
+
|
545
|
+
|
546
|
+
this.buttonWrapper.on('mousedown', mouseDownInit);
|
547
|
+
|
548
|
+
this.setInput = function(value){
|
549
|
+
that.value(value);
|
550
|
+
eventTimer.call('input', value);
|
551
|
+
};
|
552
|
+
this.setChange = function(value){
|
553
|
+
that.setInput(value);
|
554
|
+
eventTimer.call('change', value);
|
555
|
+
};
|
556
|
+
|
557
|
+
|
558
|
+
|
559
|
+
this.inputElements.on(elementEvts);
|
560
|
+
|
561
|
+
if (steps[this.type]) {
|
562
|
+
['stepUp', 'stepDown'].forEach(function(name){
|
563
|
+
step[name] = function(factor){
|
564
|
+
if (!o.disabled && !o.readonly) {
|
565
|
+
if (!isFocused) {
|
566
|
+
mouseDownInit();
|
567
|
+
}
|
568
|
+
var ret = false;
|
569
|
+
if (!factor) {
|
570
|
+
factor = 1;
|
571
|
+
}
|
572
|
+
try {
|
573
|
+
that.elemHelper[name](factor);
|
574
|
+
|
575
|
+
ret = that.elemHelper.prop('value');
|
576
|
+
|
577
|
+
}
|
578
|
+
catch (er) {
|
579
|
+
if (!o.value && that.maxAsNumber >= that.minAsNumber) {
|
580
|
+
ret = o.defValue;
|
581
|
+
}
|
582
|
+
}
|
583
|
+
if (ret !== false && o.value != ret) {
|
584
|
+
that.value(ret);
|
585
|
+
eventTimer.call('input', ret);
|
586
|
+
}
|
587
|
+
return ret;
|
588
|
+
}
|
589
|
+
};
|
590
|
+
});
|
591
|
+
if (!o.noSpinbtn) {
|
592
|
+
spinEvents.mwheelIntent = function(e, delta){
|
593
|
+
if (delta && isFocused && !o.disabled) {
|
594
|
+
step[delta > 0 ? 'stepUp' : 'stepDown']();
|
595
|
+
e.preventDefault();
|
596
|
+
}
|
597
|
+
};
|
598
|
+
spinEvents.keydown = function(e){
|
599
|
+
if (o.list || e.isDefaultPrevented() || (e.altKey && e.keyCode == 40) || $.attr(this, 'list')) {
|
600
|
+
return;
|
601
|
+
}
|
602
|
+
var stepped = true;
|
603
|
+
var code = e.keyCode;
|
604
|
+
if (code == 38) {
|
605
|
+
step.stepUp();
|
606
|
+
}
|
607
|
+
else
|
608
|
+
if (code == 40) {
|
609
|
+
step.stepDown();
|
610
|
+
}
|
611
|
+
else {
|
612
|
+
stepped = false;
|
613
|
+
}
|
614
|
+
if (stepped) {
|
615
|
+
e.preventDefault();
|
616
|
+
}
|
617
|
+
};
|
618
|
+
|
619
|
+
spinElement.attr({
|
620
|
+
'autocomplete': 'off',
|
621
|
+
role: 'spinbutton'
|
622
|
+
}).on(spinEvents);
|
69
623
|
}
|
624
|
+
$(this.buttonWrapper).on('mousepressstart mousepressend', '.step-up, .step-down', mousePress).on('mousedown mousepress', '.step-up', function(e){
|
625
|
+
step.stepUp();
|
626
|
+
}).on('mousedown mousepress', '.step-down', function(e){
|
627
|
+
step.stepDown();
|
628
|
+
});
|
629
|
+
initChangeEvents();
|
630
|
+
}
|
631
|
+
},
|
632
|
+
initDataList: function(){
|
633
|
+
var listTimer;
|
634
|
+
var that = this;
|
635
|
+
var updateList = function(){
|
636
|
+
$(that.orig)
|
637
|
+
.jProp('list')
|
638
|
+
.off('updateDatalist', updateList)
|
639
|
+
.on('updateDatalist', updateList)
|
640
|
+
;
|
641
|
+
clearTimeout(listTimer);
|
642
|
+
listTimer = setTimeout(function(){
|
643
|
+
if(that.list){
|
644
|
+
that.list();
|
645
|
+
}
|
646
|
+
}, 9);
|
647
|
+
|
648
|
+
};
|
649
|
+
|
650
|
+
$(this.orig).onTrigger('listdatalistchange', updateList);
|
651
|
+
},
|
652
|
+
getOptions: function(){
|
653
|
+
var options = {};
|
654
|
+
var datalist = $(this.orig).jProp('list');
|
655
|
+
datalist.find('option').each(function(){
|
656
|
+
options[$.prop(this, 'value')] = $.prop(this, 'label');
|
70
657
|
});
|
658
|
+
return [options, datalist.data('label')];
|
71
659
|
}
|
660
|
+
};
|
661
|
+
|
662
|
+
$.extend($.fn.wsBaseWidget.wsProto, widgetProtos);
|
663
|
+
$.extend($.fn.spinbtnUI.wsProto, widgetProtos);
|
664
|
+
|
665
|
+
|
666
|
+
$(formcfg).on('change', function(e, data){
|
667
|
+
curCfg = formcfg.__active;
|
72
668
|
});
|
73
669
|
|
74
670
|
|
@@ -143,7 +739,7 @@ webshims.register('forms-picker', function($, webshims, window, document, undefi
|
|
143
739
|
this.element = $('tbody', element);
|
144
740
|
this.popover = popover;
|
145
741
|
this.opts = opts || {};
|
146
|
-
this.buttons = $('button:not(:disabled
|
742
|
+
this.buttons = $('button:not(:disabled):not(.othermonth)', this.element);
|
147
743
|
|
148
744
|
this.ons(this);
|
149
745
|
|