Blame view

vendor/bower-asset/jquery.inputmask/qunit/simulator.js 3.53 KB
b2a15e0c   Dmitryi   роли и права поль...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
  (function ($) {
      $.caret = function (input, begin, end) {
          var npt = input.jquery && input.length > 0 ? input[0] : input, range;
          if (typeof begin == 'number') {
              if (!$(input).is(':visible')) {
                  return;
              }
              end = (typeof end == 'number') ? end : begin;
              if (npt.setSelectionRange) {
                  npt.selectionStart = begin;
                  npt.selectionEnd = end;
  
              } else if (npt.createTextRange) {
                  range = npt.createTextRange();
                  range.collapse(true);
                  range.moveEnd('character', end);
                  range.moveStart('character', begin);
                  range.select();
              }
          } else {
              if (!$(input).is(':visible')) {
                  return { "begin": 0, "end": 0 };
              }
              if (npt.setSelectionRange) {
                  begin = npt.selectionStart;
                  end = npt.selectionEnd;
              } else if (document.selection && document.selection.createRange) {
                  range = document.selection.createRange();
                  begin = 0 - range.duplicate().moveStart('character', -100000);
                  end = begin + range.text.length;
              }
              return { "begin": begin, "end": end };
          }
      };
      $.fn.SendKey = function (keyCode, modifier) {
          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: {
                  var keydown = $.Event("keydown"),
                      keypress = $.Event("keypress"),
                      keyup = $.Event("keyup");
  
                  if (!sendDummyKeydown) {
                      keydown.keyCode = keyCode;
                      if (modifier == $.inputmask.keyCode.CONTROL)
                          keydown.ctrlKey = true;
                  }
                  $(this).trigger(keydown);
                  if (!keydown.isDefaultPrevented()) {
                      keypress.keyCode = keyCode;
                      if (modifier == $.inputmask.keyCode.CONTROL)
                          keypress.ctrlKey = true;
                      $(this).trigger(keypress);
                      //if (!keypress.isDefaultPrevented()) {
                      keyup.keyCode = keyCode;
                      if (modifier == $.inputmask.keyCode.CONTROL)
                          keyup.ctrlKey = true;
                      $(this).trigger(keyup);
                      //}
                  }
              }
          }
      }
      $.fn.Type = function (inputStr) {
          var $input = $(this);
          $.each(inputStr.split(''), function (ndx, lmnt) {
              $input.SendKey(lmnt);
          });
      }
      $.fn.paste = function (inputStr) {
          var $input = $(this), isRTL = $input.data("_inputmask").isRTL;
          window.clipboardData ? window.clipboardData.setData("Text", inputStr) : $input[0]._valueSet(isRTL ? inputStr.split('').reverse().join('') : inputStr);
          $input.trigger('paste');
      }
  })(jQuery);