/* * Input Mask plugin for jquery * http://github.com/RobinHerbots/jquery.inputmask * Copyright (c) Robin Herbots * Licensed under the MIT license */ import $ from "jquery"; import Inputmask from "./inputmask"; if ($.fn.inputmask === undefined) { // jquery plugin $.fn.inputmask = function (fn, options) { let nptmask, input = this[0]; if (options === undefined) options = {}; if (typeof fn === "string") { switch (fn) { case "unmaskedvalue": return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val(); case "remove": return this.each(function () { if (this.inputmask) this.inputmask.remove(); }); case "getemptymask": return input && input.inputmask ? input.inputmask.getemptymask() : ""; case "hasMaskedValue": // check whether the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value return input && input.inputmask ? input.inputmask.hasMaskedValue() : false; case "isComplete": return input && input.inputmask ? input.inputmask.isComplete() : true; case "getmetadata": // return mask metadata if exists return input && input.inputmask ? input.inputmask.getmetadata() : undefined; case "setvalue": Inputmask.setValue(input, options); break; case "option": if (typeof options === "string") { if (input && input.inputmask !== undefined) { return input.inputmask.option(options); } } else { return this.each(function () { if (this.inputmask !== undefined) { return this.inputmask.option(options); } }); } break; default: options.alias = fn; nptmask = new Inputmask(options); return this.each(function () { nptmask.mask(this); }); } } else if (Array.isArray(fn)) { options.alias = fn; nptmask = new Inputmask(options); return this.each(function () { nptmask.mask(this); }); } else if (typeof fn === "object") { nptmask = new Inputmask(fn); if (fn.mask === undefined && fn.alias === undefined) { return this.each(function () { if (this.inputmask !== undefined) { return this.inputmask.option(fn); } else nptmask.mask(this); }); } else { return this.each(function () { nptmask.mask(this); }); } } else if (fn === undefined) { // look for data-inputmask atributes return this.each(function () { nptmask = new Inputmask(options); nptmask.mask(this); }); } }; }