芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/airport-back/vendor/bower-asset/inputmask/qunit/simulator.js
export default function ($, Inputmask) { $.caret = function (input, begin, end) { input = input.nodeName ? input : input[0]; var inputType = input.type; input.type = "text"; input.focus(); var range; if (typeof begin === "number") { end = (typeof end == "number") ? end : begin; // if (!$(input).is(":visible")) { // return; // } if (input.setSelectionRange) { input.selectionStart = begin; input.selectionEnd = end; } else if (window.getSelection) { range = document.createRange(); if (input.firstChild === undefined) { var textNode = document.createTextNode(""); input.appendChild(textNode); } range.setStart(input.firstChild, begin < input.value.length ? begin : input.value.length); range.setEnd(input.firstChild, end < input.value.length ? end : input.value.length); range.collapse(true); var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); //input.focus(); } else if (input.createTextRange) { range = input.createTextRange(); range.collapse(true); range.moveEnd("character", end); range.moveStart("character", begin); range.select(); } input.type = inputType; } else { if (input.setSelectionRange) { begin = input.selectionStart; end = input.selectionEnd; } else if (window.getSelection) { range = window.getSelection().getRangeAt(0); if (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) { begin = range.startOffset; end = range.endOffset; } } else if (document.selection && document.selection.createRange) { range = document.selection.createRange(); begin = 0 - range.duplicate().moveStart("character", -100000); end = begin + range.text.length; } /*eslint-disable consistent-return */ input.type = inputType; return { "begin": begin, "end": end }; /*eslint-enable consistent-return */ } }; $.fn = $.fn || $.prototype; $.fn.SendKey = function (keyCode, modifier) { function trigger(elem, evnt) { elem.focus(); if ($ === window.jQuery) { $(elem).trigger(evnt); } else { if (document.createEvent) { elem.dispatchEvent(evnt); } else { elem.fireEvent("on" + evnt.eventType, evnt); } } } var sendDummyKeydown = false; if (Object.prototype.toString.call(keyCode) == '[object String]') { keyCode = keyCode.charCodeAt(0); sendDummyKeydown = true; } switch (keyCode) { case Inputmask.keyCode.LEFT: if (modifier == undefined) { var pos = $.caret(this); $.caret(this, pos.begin - 1); break; } case Inputmask.keyCode.RIGHT: if (modifier == undefined) { var pos = $.caret(this); $.caret(this, pos.begin + 1); break; } default: if (window.Inputmask && window.Inputmask.prototype.defaults.inputEventOnly === true) { var input = new $.Event("input"), elem = this.nodeName ? this : this[0], currentValue = elem.inputmask.__valueGet ? elem.inputmask.__valueGet.call(elem) : elem.value, caretPos = $.caret(elem); console.log("initial " + currentValue); console.log(caretPos); var front = currentValue.substring(0, caretPos.begin), back = currentValue.substring(caretPos.end), newValue = currentValue; switch (keyCode) { case Inputmask.keyCode.BACKSPACE: newValue = front.substr(0, front.length - (caretPos.end - caretPos.begin ) - 1) + back; break; case Inputmask.keyCode.DELETE : back = back.substr(1); newValue = front + back; break; default: newValue = front + String.fromCharCode(keyCode) + back; } if (elem.inputmask.__valueSet) elem.inputmask.__valueSet.call(elem, newValue); else elem.value = newValue; $.caret(elem, newValue.length - back.length); console.log("new " + newValue); trigger(this.nodeName ? this : this[0], input); } else { var keydown = new $.Event("keydown"), keypress = new $.Event("keypress"), keyup = new $.Event("keyup"); if (!sendDummyKeydown) { keydown.keyCode = keyCode; if (modifier == Inputmask.keyCode.CONTROL) keydown.ctrlKey = true; } trigger(this.nodeName ? this : this[0], keydown); if (!keydown.defaultPrevented) { keypress.keyCode = keyCode; if (modifier == Inputmask.keyCode.CONTROL) keypress.ctrlKey = true; trigger(this.nodeName ? this : this[0], keypress); //if (!keypress.isDefaultPrevented()) { keyup.keyCode = keyCode; if (modifier == Inputmask.keyCode.CONTROL) keyup.ctrlKey = true; trigger(this.nodeName ? this : this[0], keyup); //} } } } } if (!('append' in $.fn)) { $.fn.append = function (child) { var input = this.nodeName ? this : this[0]; input.insertAdjacentHTML('beforeend', child); }; } if (!('remove' in $.fn)) { $.fn.remove = function () { var input = this.nodeName ? this : this[0]; if (input !== undefined && input !== null) { input.parentElement.removeChild(input); input = undefined; } }; } if (!('val' in $.fn)) { $.fn.val = function (value) { var input = this.nodeName ? this : this[0]; if (value !== undefined) { if (input.inputmask) { input.inputmask._valueSet(value, true); $(input).trigger("setvalue"); } else input.value = value; } return input.value; }; } $.fn.Type = function (inputStr) { var input = this.nodeName ? this : this[0], $input = $(input); $.each(inputStr.split(''), function (ndx, lmnt) { $input.SendKey(lmnt); }); } $.fn.paste = function (inputStr) { var input = this.nodeName ? this : this[0], $input = $(input); if (window.clipboardData) { window.clipboardData.setData('Text', inputStr); } else { $.data($input, "clipboard", inputStr); window.clipboardData = { getData: function () { window.clipboardData = undefined; return $.data($input, "clipboard"); } } } $input.trigger('paste'); } $.fn.input = function (inputStr, caretBegin, caretEnd) { var input = this.nodeName ? this : this[0]; input.inputmask.__valueSet.call(input, inputStr); if (caretBegin !== undefined) $.caret(input, caretBegin, caretEnd); $(input).trigger("input"); } };