/*!

*/

!function(factory) {

"function" == typeof define && define.amd ? define([ "jquery", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);

}(function($, Inputmask) {

return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
    var nptmask, input = this[0];
    if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) {
      case "unmaskedvalue":
        return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();

      case "remove":
        return this.each(function() {
            this.inputmask && this.inputmask.remove();
        });

      case "getemptymask":
        return input && input.inputmask ? input.inputmask.getemptymask() : "";

      case "hasMaskedValue":
        return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();

      case "isComplete":
        return !input || !input.inputmask || input.inputmask.isComplete();

      case "getmetadata":
        return input && input.inputmask ? input.inputmask.getmetadata() : void 0;

      case "setvalue":
        $(input).val(options), input && void 0 === input.inputmask && $(input).triggerHandler("setvalue");
        break;

      case "option":
        if ("string" != typeof options) return this.each(function() {
            if (void 0 !== this.inputmask) return this.inputmask.option(options);
        });
        if (input && void 0 !== input.inputmask) return input.inputmask.option(options);
        break;

      default:
        return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {
            nptmask.mask(this);
        });
    } else {
        if ("object" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {
            if (void 0 !== this.inputmask) return this.inputmask.option(fn);
            nptmask.mask(this);
        }) : this.each(function() {
            nptmask.mask(this);
        });
        if (void 0 === fn) return this.each(function() {
            nptmask = new Inputmask(options), nptmask.mask(this);
        });
    }
}), $.fn.inputmask;

});