inputmask.date.extensions.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. /*!
  2. * inputmask.date.extensions.js
  3. * https://github.com/RobinHerbots/Inputmask
  4. * Copyright (c) 2010 - 2017 Robin Herbots
  5. * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. * Version: 4.0.1-37
  7. */
  8. !function(factory) {
  9. "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
  10. }(function($, Inputmask) {
  11. function isLeapYear(year) {
  12. return isNaN(year) || 29 === new Date(year, 2, 0).getDate();
  13. }
  14. return Inputmask.extendAliases({
  15. "dd/mm/yyyy": {
  16. mask: "1/2/y",
  17. placeholder: "dd/mm/yyyy",
  18. regex: {
  19. val1pre: new RegExp("[0-3]"),
  20. val1: new RegExp("0[1-9]|[12][0-9]|3[01]"),
  21. val2pre: function(separator) {
  22. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  23. return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])");
  24. },
  25. val2: function(separator) {
  26. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  27. return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))");
  28. }
  29. },
  30. leapday: "29/02/",
  31. separator: "/",
  32. yearrange: {
  33. minyear: 1900,
  34. maxyear: 2099
  35. },
  36. isInYearRange: function(chrs, minyear, maxyear) {
  37. if (isNaN(chrs)) return !1;
  38. var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));
  39. return !isNaN(enteredyear) && (minyear <= enteredyear && enteredyear <= maxyear) || !isNaN(enteredyear2) && (minyear <= enteredyear2 && enteredyear2 <= maxyear);
  40. },
  41. determinebaseyear: function(minyear, maxyear, hint) {
  42. var currentyear = new Date().getFullYear();
  43. if (minyear > currentyear) return minyear;
  44. if (maxyear < currentyear) {
  45. for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxyear < maxYearPrefix + hint; ) maxYearPrefix--;
  46. var maxxYear = maxYearPrefix + maxYearPostfix;
  47. return minyear > maxxYear ? minyear : maxxYear;
  48. }
  49. if (minyear <= currentyear && currentyear <= maxyear) {
  50. for (var currentYearPrefix = currentyear.toString().slice(0, 2); maxyear < currentYearPrefix + hint; ) currentYearPrefix--;
  51. var currentYearAndHint = currentYearPrefix + hint;
  52. return currentYearAndHint < minyear ? minyear : currentYearAndHint;
  53. }
  54. return currentyear;
  55. },
  56. onKeyDown: function(e, buffer, caretPos, opts) {
  57. var $input = $(this);
  58. if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
  59. var today = new Date();
  60. $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()),
  61. $input.trigger("setvalue");
  62. }
  63. },
  64. getFrontValue: function(mask, buffer, opts) {
  65. for (var start = 0, length = 0, i = 0; i < mask.length && "2" !== mask.charAt(i); i++) {
  66. var definition = opts.definitions[mask.charAt(i)];
  67. definition ? (start += length, length = definition.cardinality) : length++;
  68. }
  69. return buffer.join("").substr(start, length);
  70. },
  71. postValidation: function(buffer, currentResult, opts) {
  72. var dayMonthValue, year, bufferStr = buffer.join("");
  73. return 0 === opts.mask.indexOf("y") ? (year = bufferStr.substr(0, 4), dayMonthValue = bufferStr.substring(4, 10)) : (year = bufferStr.substring(6, 10),
  74. dayMonthValue = bufferStr.substr(0, 6)), currentResult && (dayMonthValue !== opts.leapday || isLeapYear(year));
  75. },
  76. definitions: {
  77. "1": {
  78. validator: function(chrs, maskset, pos, strict, opts) {
  79. if ("3" == chrs.charAt(0)) {
  80. if (new RegExp("[2-9]").test(chrs.charAt(1))) return chrs = "30", maskset.buffer[pos] = "0",
  81. pos++, {
  82. pos: pos
  83. };
  84. }
  85. var isValid = opts.regex.val1.test(chrs);
  86. return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
  87. {
  88. refreshFromBuffer: {
  89. start: pos - 1,
  90. end: pos
  91. },
  92. pos: pos,
  93. c: chrs.charAt(0)
  94. });
  95. },
  96. cardinality: 2,
  97. prevalidator: [ {
  98. validator: function(chrs, maskset, pos, strict, opts) {
  99. var pchrs = chrs;
  100. isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);
  101. var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);
  102. if (!strict && !isValid) {
  103. if (isValid = opts.regex.val1.test(chrs + "0")) return maskset.buffer[pos] = chrs,
  104. maskset.buffer[++pos] = "0", {
  105. pos: pos,
  106. c: "0"
  107. };
  108. if (isValid = opts.regex.val1.test("0" + chrs)) return maskset.buffer[pos] = "0",
  109. pos++, {
  110. pos: pos
  111. };
  112. }
  113. return isValid;
  114. },
  115. cardinality: 1
  116. } ]
  117. },
  118. "2": {
  119. validator: function(chrs, maskset, pos, strict, opts) {
  120. var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
  121. if (-1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator),
  122. "1" == chrs.charAt(0)) {
  123. if (new RegExp("[3-9]").test(chrs.charAt(1))) return chrs = "10", maskset.buffer[pos] = "0",
  124. pos++, {
  125. pos: pos
  126. };
  127. }
  128. var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);
  129. return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
  130. {
  131. refreshFromBuffer: {
  132. start: pos - 1,
  133. end: pos
  134. },
  135. pos: pos,
  136. c: chrs.charAt(0)
  137. });
  138. },
  139. cardinality: 2,
  140. prevalidator: [ {
  141. validator: function(chrs, maskset, pos, strict, opts) {
  142. isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);
  143. var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
  144. -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator);
  145. var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);
  146. return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
  147. pos++, {
  148. pos: pos
  149. });
  150. },
  151. cardinality: 1
  152. } ]
  153. },
  154. y: {
  155. validator: function(chrs, maskset, pos, strict, opts) {
  156. return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
  157. },
  158. cardinality: 4,
  159. prevalidator: [ {
  160. validator: function(chrs, maskset, pos, strict, opts) {
  161. var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
  162. if (!strict && !isValid) {
  163. var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1);
  164. if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
  165. {
  166. pos: pos
  167. };
  168. if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2),
  169. isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
  170. maskset.buffer[pos++] = yearPrefix.charAt(1), {
  171. pos: pos
  172. };
  173. }
  174. return isValid;
  175. },
  176. cardinality: 1
  177. }, {
  178. validator: function(chrs, maskset, pos, strict, opts) {
  179. var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
  180. if (!strict && !isValid) {
  181. var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);
  182. if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1),
  183. {
  184. pos: pos
  185. };
  186. if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2),
  187. isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos - 1] = yearPrefix.charAt(0),
  188. maskset.buffer[pos++] = yearPrefix.charAt(1), maskset.buffer[pos++] = chrs.charAt(0),
  189. {
  190. refreshFromBuffer: {
  191. start: pos - 3,
  192. end: pos
  193. },
  194. pos: pos
  195. };
  196. }
  197. return isValid;
  198. },
  199. cardinality: 2
  200. }, {
  201. validator: function(chrs, maskset, pos, strict, opts) {
  202. return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
  203. },
  204. cardinality: 3
  205. } ]
  206. }
  207. },
  208. insertMode: !1,
  209. autoUnmask: !1
  210. },
  211. "mm/dd/yyyy": {
  212. placeholder: "mm/dd/yyyy",
  213. alias: "dd/mm/yyyy",
  214. regex: {
  215. val2pre: function(separator) {
  216. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  217. return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
  218. },
  219. val2: function(separator) {
  220. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  221. return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
  222. },
  223. val1pre: new RegExp("[01]"),
  224. val1: new RegExp("0[1-9]|1[012]")
  225. },
  226. leapday: "02/29/",
  227. onKeyDown: function(e, buffer, caretPos, opts) {
  228. var $input = $(this);
  229. if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
  230. var today = new Date();
  231. $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
  232. $input.trigger("setvalue");
  233. }
  234. }
  235. },
  236. "yyyy/mm/dd": {
  237. mask: "y/1/2",
  238. placeholder: "yyyy/mm/dd",
  239. alias: "mm/dd/yyyy",
  240. leapday: "/02/29",
  241. onKeyDown: function(e, buffer, caretPos, opts) {
  242. var $input = $(this);
  243. if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
  244. var today = new Date();
  245. $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()),
  246. $input.trigger("setvalue");
  247. }
  248. }
  249. },
  250. "dd.mm.yyyy": {
  251. mask: "1.2.y",
  252. placeholder: "dd.mm.yyyy",
  253. leapday: "29.02.",
  254. separator: ".",
  255. alias: "dd/mm/yyyy"
  256. },
  257. "dd-mm-yyyy": {
  258. mask: "1-2-y",
  259. placeholder: "dd-mm-yyyy",
  260. leapday: "29-02-",
  261. separator: "-",
  262. alias: "dd/mm/yyyy"
  263. },
  264. "mm.dd.yyyy": {
  265. mask: "1.2.y",
  266. placeholder: "mm.dd.yyyy",
  267. leapday: "02.29.",
  268. separator: ".",
  269. alias: "mm/dd/yyyy"
  270. },
  271. "mm-dd-yyyy": {
  272. mask: "1-2-y",
  273. placeholder: "mm-dd-yyyy",
  274. leapday: "02-29-",
  275. separator: "-",
  276. alias: "mm/dd/yyyy"
  277. },
  278. "yyyy.mm.dd": {
  279. mask: "y.1.2",
  280. placeholder: "yyyy.mm.dd",
  281. leapday: ".02.29",
  282. separator: ".",
  283. alias: "yyyy/mm/dd"
  284. },
  285. "yyyy-mm-dd": {
  286. mask: "y-1-2",
  287. placeholder: "yyyy-mm-dd",
  288. leapday: "-02-29",
  289. separator: "-",
  290. alias: "yyyy/mm/dd"
  291. },
  292. datetime: {
  293. mask: "1/2/y h:s",
  294. placeholder: "dd/mm/yyyy hh:mm",
  295. alias: "dd/mm/yyyy",
  296. regex: {
  297. hrspre: new RegExp("[012]"),
  298. hrs24: new RegExp("2[0-4]|1[3-9]"),
  299. hrs: new RegExp("[01][0-9]|2[0-4]"),
  300. ampm: new RegExp("^[a|p|A|P][m|M]"),
  301. mspre: new RegExp("[0-5]"),
  302. ms: new RegExp("[0-5][0-9]")
  303. },
  304. timeseparator: ":",
  305. hourFormat: "24",
  306. definitions: {
  307. h: {
  308. validator: function(chrs, maskset, pos, strict, opts) {
  309. if ("24" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = "0",
  310. maskset.buffer[pos] = "0", {
  311. refreshFromBuffer: {
  312. start: pos - 1,
  313. end: pos
  314. },
  315. c: "0"
  316. };
  317. var isValid = opts.regex.hrs.test(chrs);
  318. if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== "-.:".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0",
  319. maskset.buffer[pos] = chrs.charAt(0), pos++, {
  320. refreshFromBuffer: {
  321. start: pos - 2,
  322. end: pos
  323. },
  324. pos: pos,
  325. c: opts.timeseparator
  326. };
  327. if (isValid && "24" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {
  328. var tmp = parseInt(chrs, 10);
  329. return 24 === tmp ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p",
  330. maskset.buffer[pos + 6] = "m"), tmp -= 12, tmp < 10 ? (maskset.buffer[pos] = tmp.toString(),
  331. maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1),
  332. maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {
  333. refreshFromBuffer: {
  334. start: pos - 1,
  335. end: pos + 6
  336. },
  337. c: maskset.buffer[pos]
  338. };
  339. }
  340. return isValid;
  341. },
  342. cardinality: 2,
  343. prevalidator: [ {
  344. validator: function(chrs, maskset, pos, strict, opts) {
  345. var isValid = opts.regex.hrspre.test(chrs);
  346. return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
  347. pos++, {
  348. pos: pos
  349. });
  350. },
  351. cardinality: 1
  352. } ]
  353. },
  354. s: {
  355. validator: "[0-5][0-9]",
  356. cardinality: 2,
  357. prevalidator: [ {
  358. validator: function(chrs, maskset, pos, strict, opts) {
  359. var isValid = opts.regex.mspre.test(chrs);
  360. return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
  361. pos++, {
  362. pos: pos
  363. });
  364. },
  365. cardinality: 1
  366. } ]
  367. },
  368. t: {
  369. validator: function(chrs, maskset, pos, strict, opts) {
  370. return opts.regex.ampm.test(chrs + "m");
  371. },
  372. casing: "lower",
  373. cardinality: 1
  374. }
  375. },
  376. insertMode: !1,
  377. autoUnmask: !1
  378. },
  379. datetime12: {
  380. mask: "1/2/y h:s t\\m",
  381. placeholder: "dd/mm/yyyy hh:mm xm",
  382. alias: "datetime",
  383. hourFormat: "12"
  384. },
  385. "mm/dd/yyyy hh:mm xm": {
  386. mask: "1/2/y h:s t\\m",
  387. placeholder: "mm/dd/yyyy hh:mm xm",
  388. alias: "datetime12",
  389. regex: {
  390. val2pre: function(separator) {
  391. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  392. return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
  393. },
  394. val2: function(separator) {
  395. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  396. return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
  397. },
  398. val1pre: new RegExp("[01]"),
  399. val1: new RegExp("0[1-9]|1[012]")
  400. },
  401. leapday: "02/29/",
  402. onKeyDown: function(e, buffer, caretPos, opts) {
  403. var $input = $(this);
  404. if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
  405. var today = new Date();
  406. $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
  407. $input.trigger("setvalue");
  408. }
  409. }
  410. },
  411. "hh:mm t": {
  412. mask: "h:s t\\m",
  413. placeholder: "hh:mm xm",
  414. alias: "datetime",
  415. hourFormat: "12"
  416. },
  417. "h:s t": {
  418. mask: "h:s t\\m",
  419. placeholder: "hh:mm xm",
  420. alias: "datetime",
  421. hourFormat: "12"
  422. },
  423. "hh:mm:ss": {
  424. mask: "h:s:s",
  425. placeholder: "hh:mm:ss",
  426. alias: "datetime",
  427. autoUnmask: !1
  428. },
  429. "hh:mm": {
  430. mask: "h:s",
  431. placeholder: "hh:mm",
  432. alias: "datetime",
  433. autoUnmask: !1
  434. },
  435. date: {
  436. alias: "dd/mm/yyyy"
  437. },
  438. "mm/yyyy": {
  439. mask: "1/y",
  440. placeholder: "mm/yyyy",
  441. leapday: "donotuse",
  442. separator: "/",
  443. alias: "mm/dd/yyyy"
  444. },
  445. shamsi: {
  446. regex: {
  447. val2pre: function(separator) {
  448. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  449. return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "[0-3])");
  450. },
  451. val2: function(separator) {
  452. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  453. return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[1-9]|1[012])" + escapedSeparator + "30)|((0[1-6])" + escapedSeparator + "31)");
  454. },
  455. val1pre: new RegExp("[01]"),
  456. val1: new RegExp("0[1-9]|1[012]")
  457. },
  458. yearrange: {
  459. minyear: 1300,
  460. maxyear: 1499
  461. },
  462. mask: "y/1/2",
  463. leapday: "/12/30",
  464. placeholder: "yyyy/mm/dd",
  465. alias: "mm/dd/yyyy",
  466. clearIncomplete: !0
  467. },
  468. "yyyy-mm-dd hh:mm:ss": {
  469. mask: "y-1-2 h:s:s",
  470. placeholder: "yyyy-mm-dd hh:mm:ss",
  471. alias: "datetime",
  472. separator: "-",
  473. leapday: "-02-29",
  474. regex: {
  475. val2pre: function(separator) {
  476. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  477. return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
  478. },
  479. val2: function(separator) {
  480. var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
  481. return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
  482. },
  483. val1pre: new RegExp("[01]"),
  484. val1: new RegExp("0[1-9]|1[012]")
  485. },
  486. onKeyDown: function(e, buffer, caretPos, opts) {}
  487. }
  488. }), Inputmask;
  489. });