mirror of
https://gitlab.com/JKANetwork/CheckServer.git
synced 2026-04-02 08:42:02 +02:00
Start again
This commit is contained in:
67
vendors/parsleyjs/src/vendor/inputevent.js
vendored
Normal file
67
vendors/parsleyjs/src/vendor/inputevent.js
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* inputevent - Alleviate browser bugs for input events
|
||||
* https://github.com/marcandre/inputevent
|
||||
* @version v0.0.3 - (built Thu, Apr 14th 2016, 5:58 pm)
|
||||
* @author Marc-Andre Lafortune <github@marc-andre.ca>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
import $ from 'jquery';
|
||||
|
||||
function InputEvent() {
|
||||
let globals = window || global;
|
||||
|
||||
// Slightly odd way construct our object. This way methods are force bound.
|
||||
// Used to test for duplicate library.
|
||||
$.extend(this, {
|
||||
|
||||
// For browsers that do not support isTrusted, assumes event is native.
|
||||
isNativeEvent: evt => {
|
||||
return evt.originalEvent && evt.originalEvent.isTrusted !== false;
|
||||
},
|
||||
|
||||
fakeInputEvent: evt => {
|
||||
if (this.isNativeEvent(evt)) {
|
||||
$(evt.target).trigger('input');
|
||||
}
|
||||
},
|
||||
|
||||
misbehaves: evt => {
|
||||
if (this.isNativeEvent(evt)) {
|
||||
this.behavesOk(evt);
|
||||
$(document)
|
||||
.on('change.inputevent', evt.data.selector, this.fakeInputEvent);
|
||||
this.fakeInputEvent(evt);
|
||||
}
|
||||
},
|
||||
|
||||
behavesOk: evt => {
|
||||
if (this.isNativeEvent(evt)) {
|
||||
$(document) // Simply unbinds the testing handler
|
||||
.off('input.inputevent', evt.data.selector, this.behavesOk)
|
||||
.off('change.inputevent', evt.data.selector, this.misbehaves);
|
||||
}
|
||||
},
|
||||
|
||||
// Bind the testing handlers
|
||||
install: () => {
|
||||
if (globals.inputEventPatched) {
|
||||
return;
|
||||
}
|
||||
globals.inputEventPatched = '0.0.3';
|
||||
for (let selector of ['select', 'input[type="checkbox"]', 'input[type="radio"]', 'input[type="file"]']) {
|
||||
$(document)
|
||||
.on('input.inputevent', selector, {selector}, this.behavesOk)
|
||||
.on('change.inputevent', selector, {selector}, this.misbehaves);
|
||||
}
|
||||
},
|
||||
|
||||
uninstall: () => {
|
||||
delete globals.inputEventPatched;
|
||||
$(document).off('.inputevent');
|
||||
}
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
export default new InputEvent();
|
||||
Reference in New Issue
Block a user