ソースを参照

remove some legacy

Robin Herbots 11 年 前
コミット
3c6945f472

+ 25 - 41
dist/inputmask/jquery.inputmask.js

@@ -26,7 +26,7 @@
         return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), 
         $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : !1;
     }
-    function generateMaskSet(opts, multi) {
+    function generateMaskSet(opts) {
         function analyseMask(mask) {
             function maskToken(isGroup, isOptional, isQuantifier, isAlternator) {
                 this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, 
@@ -182,9 +182,6 @@
         }
         var ms = void 0;
         if ($.isFunction(opts.mask) && (opts.mask = opts.mask.call(this, opts)), $.isArray(opts.mask)) {
-            if (multi) return ms = [], $.each(opts.mask, function(ndx, msk) {
-                ms.push(void 0 == msk.mask || $.isFunction(msk.mask) ? generateMask(preProcessMask(msk), msk) : generateMask(preProcessMask(msk.mask), msk));
-            }), ms;
             if (opts.mask.length > 1) {
                 opts.keepStatic = void 0 == opts.keepStatic ? !0 : opts.keepStatic;
                 var altMask = "(";
@@ -601,22 +598,15 @@
         }
         function caret(input, begin, end) {
             var range, npt = input.jquery && input.length > 0 ? input[0] : input;
-            if ("number" != typeof begin) {
-                var data = $(npt).data("_inputmask");
-                return !$(npt).is(":visible") && data && void 0 != data.caret ? (begin = data.caret.begin, 
-                end = data.caret.end) : npt.setSelectionRange ? (begin = npt.selectionStart, end = npt.selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), 
-                begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), 
-                begin = TranslatePosition(begin), end = TranslatePosition(end), {
-                    begin: begin,
-                    end: end
-                };
-            }
-            begin = TranslatePosition(begin), end = TranslatePosition(end), end = "number" == typeof end ? end : begin;
-            var data = $(npt).data("_inputmask") || {};
-            if (data.caret = {
-                begin: begin,
-                end: end
-            }, $(npt).data("_inputmask", data), $(npt).is(":visible")) {
+            if ("number" != typeof begin) return npt.setSelectionRange ? (begin = npt.selectionStart, 
+            end = npt.selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), 
+            begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), 
+            {
+                begin: TranslatePosition(begin),
+                end: TranslatePosition(end)
+            };
+            if (begin = TranslatePosition(begin), end = TranslatePosition(end), end = "number" == typeof end ? end : begin, 
+            $(npt).is(":visible")) {
                 var scrollCalc = $(npt).css("font-size").replace("px", "") * end;
                 npt.scrollLeft = scrollCalc > npt.scrollWidth ? scrollCalc : 0, 0 == opts.insertMode && begin == end && end++, 
                 npt.setSelectionRange ? (npt.selectionStart = begin, npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
@@ -1179,7 +1169,7 @@
                     value: value
                 }, generateMaskSet(opts), opts);
             }
-        }, $.fn.inputmask = function(fn, options, targetScope, targetData, msk) {
+        }, $.fn.inputmask = function(fn, options) {
             function importAttributeOptions(npt, opts, importedOptionsContainer) {
                 var $npt = $(npt);
                 $npt.data("inputmask-alias") && resolveAlias($npt.data("inputmask-alias"), {}, opts);
@@ -1191,13 +1181,12 @@
                 }
                 return opts;
             }
-            targetScope = targetScope || maskScope, targetData = targetData || "_inputmask";
             var maskset, opts = $.extend(!0, {}, $.inputmask.defaults, options);
             if ("string" == typeof fn) switch (fn) {
               case "mask":
-                return resolveAlias(opts.alias, options, opts), maskset = generateMaskSet(opts, targetScope !== maskScope), 
+                return resolveAlias(opts.alias, options, opts), maskset = generateMaskSet(opts), 
                 void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
@@ -1205,7 +1194,7 @@
 
               case "unmaskedvalue":
                 var $input = $(this);
-                return $input.data(targetData) ? targetScope({
+                return $input.data("_inputmask") ? maskScope({
                     action: "unmaskedvalue",
                     $input: $input
                 }) : $input.val();
@@ -1213,51 +1202,46 @@
               case "remove":
                 return this.each(function() {
                     var $input = $(this);
-                    $input.data(targetData) && targetScope({
+                    $input.data("_inputmask") && maskScope({
                         action: "remove",
                         el: this
                     });
                 });
 
               case "getemptymask":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "getemptymask",
                     el: this
                 }) : "";
 
               case "hasMaskedValue":
-                return this.data(targetData) ? !this.data(targetData).opts.autoUnmask : !1;
+                return this.data("_inputmask") ? !this.data("_inputmask").opts.autoUnmask : !1;
 
               case "isComplete":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "isComplete",
                     buffer: this[0]._valueGet().split(""),
                     el: this
                 }) : !0;
 
               case "getmetadata":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "getmetadata",
                     el: this
                 }) : void 0;
 
-              case "_detectScope":
-                return resolveAlias(opts.alias, options, opts), void 0 == msk || resolveAlias(msk, options, opts) || -1 != $.inArray(msk, [ "mask", "unmaskedvalue", "remove", "getemptymask", "hasMaskedValue", "isComplete", "getmetadata", "_detectScope" ]) || (opts.mask = msk), 
-                $.isFunction(opts.mask) && (opts.mask = opts.mask.call(this, opts)), $.isArray(opts.mask);
-
               default:
                 return resolveAlias(opts.alias, options, opts), resolveAlias(fn, options, opts) || (opts.mask = fn), 
-                maskset = generateMaskSet(opts, targetScope !== maskScope), void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                maskset = generateMaskSet(opts), void 0 == maskset ? this : this.each(function() {
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
                 });
             } else {
                 if ("object" == typeof fn) return opts = $.extend(!0, {}, $.inputmask.defaults, fn), 
-                resolveAlias(opts.alias, fn, opts), maskset = generateMaskSet(opts, targetScope !== maskScope), 
-                void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                resolveAlias(opts.alias, fn, opts), maskset = generateMaskSet(opts), void 0 == maskset ? this : this.each(function() {
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
@@ -1269,13 +1253,13 @@
                         var dataoptions = $.parseJSON("{" + attrOptions + "}");
                         $.extend(!0, dataoptions, options), opts = $.extend(!0, {}, $.inputmask.defaults, dataoptions), 
                         opts = importAttributeOptions(this, opts), resolveAlias(opts.alias, dataoptions, opts), 
-                        opts.alias = void 0, $(this).inputmask("mask", opts, targetScope);
+                        opts.alias = void 0, $(this).inputmask("mask", opts);
                     } catch (ex) {}
                     if ($(this).attr("data-inputmask-mask") || $(this).attr("data-inputmask-alias")) {
                         opts = $.extend(!0, {}, $.inputmask.defaults, {});
                         var dataOptions = {};
                         opts = importAttributeOptions(this, opts, dataOptions), resolveAlias(opts.alias, dataOptions, opts), 
-                        opts.alias = void 0, $(this).inputmask("mask", opts, targetScope);
+                        opts.alias = void 0, $(this).inputmask("mask", opts);
                     }
                 });
             }

+ 25 - 41
dist/jquery.inputmask.bundle.js

@@ -24,7 +24,7 @@
         return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), 
         $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : !1;
     }
-    function generateMaskSet(opts, multi) {
+    function generateMaskSet(opts) {
         function analyseMask(mask) {
             function maskToken(isGroup, isOptional, isQuantifier, isAlternator) {
                 this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, 
@@ -180,9 +180,6 @@
         }
         var ms = void 0;
         if ($.isFunction(opts.mask) && (opts.mask = opts.mask.call(this, opts)), $.isArray(opts.mask)) {
-            if (multi) return ms = [], $.each(opts.mask, function(ndx, msk) {
-                ms.push(void 0 == msk.mask || $.isFunction(msk.mask) ? generateMask(preProcessMask(msk), msk) : generateMask(preProcessMask(msk.mask), msk));
-            }), ms;
             if (opts.mask.length > 1) {
                 opts.keepStatic = void 0 == opts.keepStatic ? !0 : opts.keepStatic;
                 var altMask = "(";
@@ -599,22 +596,15 @@
         }
         function caret(input, begin, end) {
             var range, npt = input.jquery && input.length > 0 ? input[0] : input;
-            if ("number" != typeof begin) {
-                var data = $(npt).data("_inputmask");
-                return !$(npt).is(":visible") && data && void 0 != data.caret ? (begin = data.caret.begin, 
-                end = data.caret.end) : npt.setSelectionRange ? (begin = npt.selectionStart, end = npt.selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), 
-                begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), 
-                begin = TranslatePosition(begin), end = TranslatePosition(end), {
-                    begin: begin,
-                    end: end
-                };
-            }
-            begin = TranslatePosition(begin), end = TranslatePosition(end), end = "number" == typeof end ? end : begin;
-            var data = $(npt).data("_inputmask") || {};
-            if (data.caret = {
-                begin: begin,
-                end: end
-            }, $(npt).data("_inputmask", data), $(npt).is(":visible")) {
+            if ("number" != typeof begin) return npt.setSelectionRange ? (begin = npt.selectionStart, 
+            end = npt.selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), 
+            begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), 
+            {
+                begin: TranslatePosition(begin),
+                end: TranslatePosition(end)
+            };
+            if (begin = TranslatePosition(begin), end = TranslatePosition(end), end = "number" == typeof end ? end : begin, 
+            $(npt).is(":visible")) {
                 var scrollCalc = $(npt).css("font-size").replace("px", "") * end;
                 npt.scrollLeft = scrollCalc > npt.scrollWidth ? scrollCalc : 0, 0 == opts.insertMode && begin == end && end++, 
                 npt.setSelectionRange ? (npt.selectionStart = begin, npt.selectionEnd = end) : npt.createTextRange && (range = npt.createTextRange(), 
@@ -1177,7 +1167,7 @@
                     value: value
                 }, generateMaskSet(opts), opts);
             }
-        }, $.fn.inputmask = function(fn, options, targetScope, targetData, msk) {
+        }, $.fn.inputmask = function(fn, options) {
             function importAttributeOptions(npt, opts, importedOptionsContainer) {
                 var $npt = $(npt);
                 $npt.data("inputmask-alias") && resolveAlias($npt.data("inputmask-alias"), {}, opts);
@@ -1189,13 +1179,12 @@
                 }
                 return opts;
             }
-            targetScope = targetScope || maskScope, targetData = targetData || "_inputmask";
             var maskset, opts = $.extend(!0, {}, $.inputmask.defaults, options);
             if ("string" == typeof fn) switch (fn) {
               case "mask":
-                return resolveAlias(opts.alias, options, opts), maskset = generateMaskSet(opts, targetScope !== maskScope), 
+                return resolveAlias(opts.alias, options, opts), maskset = generateMaskSet(opts), 
                 void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
@@ -1203,7 +1192,7 @@
 
               case "unmaskedvalue":
                 var $input = $(this);
-                return $input.data(targetData) ? targetScope({
+                return $input.data("_inputmask") ? maskScope({
                     action: "unmaskedvalue",
                     $input: $input
                 }) : $input.val();
@@ -1211,51 +1200,46 @@
               case "remove":
                 return this.each(function() {
                     var $input = $(this);
-                    $input.data(targetData) && targetScope({
+                    $input.data("_inputmask") && maskScope({
                         action: "remove",
                         el: this
                     });
                 });
 
               case "getemptymask":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "getemptymask",
                     el: this
                 }) : "";
 
               case "hasMaskedValue":
-                return this.data(targetData) ? !this.data(targetData).opts.autoUnmask : !1;
+                return this.data("_inputmask") ? !this.data("_inputmask").opts.autoUnmask : !1;
 
               case "isComplete":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "isComplete",
                     buffer: this[0]._valueGet().split(""),
                     el: this
                 }) : !0;
 
               case "getmetadata":
-                return this.data(targetData) ? targetScope({
+                return this.data("_inputmask") ? maskScope({
                     action: "getmetadata",
                     el: this
                 }) : void 0;
 
-              case "_detectScope":
-                return resolveAlias(opts.alias, options, opts), void 0 == msk || resolveAlias(msk, options, opts) || -1 != $.inArray(msk, [ "mask", "unmaskedvalue", "remove", "getemptymask", "hasMaskedValue", "isComplete", "getmetadata", "_detectScope" ]) || (opts.mask = msk), 
-                $.isFunction(opts.mask) && (opts.mask = opts.mask.call(this, opts)), $.isArray(opts.mask);
-
               default:
                 return resolveAlias(opts.alias, options, opts), resolveAlias(fn, options, opts) || (opts.mask = fn), 
-                maskset = generateMaskSet(opts, targetScope !== maskScope), void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                maskset = generateMaskSet(opts), void 0 == maskset ? this : this.each(function() {
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
                 });
             } else {
                 if ("object" == typeof fn) return opts = $.extend(!0, {}, $.inputmask.defaults, fn), 
-                resolveAlias(opts.alias, fn, opts), maskset = generateMaskSet(opts, targetScope !== maskScope), 
-                void 0 == maskset ? this : this.each(function() {
-                    targetScope({
+                resolveAlias(opts.alias, fn, opts), maskset = generateMaskSet(opts), void 0 == maskset ? this : this.each(function() {
+                    maskScope({
                         action: "mask",
                         el: this
                     }, $.extend(!0, {}, maskset), importAttributeOptions(this, opts));
@@ -1267,13 +1251,13 @@
                         var dataoptions = $.parseJSON("{" + attrOptions + "}");
                         $.extend(!0, dataoptions, options), opts = $.extend(!0, {}, $.inputmask.defaults, dataoptions), 
                         opts = importAttributeOptions(this, opts), resolveAlias(opts.alias, dataoptions, opts), 
-                        opts.alias = void 0, $(this).inputmask("mask", opts, targetScope);
+                        opts.alias = void 0, $(this).inputmask("mask", opts);
                     } catch (ex) {}
                     if ($(this).attr("data-inputmask-mask") || $(this).attr("data-inputmask-alias")) {
                         opts = $.extend(!0, {}, $.inputmask.defaults, {});
                         var dataOptions = {};
                         opts = importAttributeOptions(this, opts, dataOptions), resolveAlias(opts.alias, dataOptions, opts), 
-                        opts.alias = void 0, $(this).inputmask("mask", opts, targetScope);
+                        opts.alias = void 0, $(this).inputmask("mask", opts);
                     }
                 });
             }

ファイルの差分が大きいため隠しています
+ 3 - 3
dist/jquery.inputmask.bundle.min.js


+ 34 - 71
js/jquery.inputmask.js

@@ -44,7 +44,7 @@
             return false;
         }
 
-        function generateMaskSet(opts, multi) {
+        function generateMaskSet(opts) {
             var ms = undefined;
 
             function analyseMask(mask) {
@@ -276,33 +276,21 @@
                 opts.mask = opts.mask.call(this, opts);
             }
             if ($.isArray(opts.mask)) {
-                if (multi) {  //remove me legacy
-                    ms = [];
+                if (opts.mask.length > 1) {
+                    opts.keepStatic = opts.keepStatic == undefined ? true : opts.keepStatic; //enable by default when passing multiple masks when the option is not explicitly specified
+                    var altMask = "(";
                     $.each(opts.mask, function (ndx, msk) {
+                        if (altMask.length > 1)
+                            altMask += ")|(";
                         if (msk["mask"] != undefined && !$.isFunction(msk["mask"])) {
-                            ms.push(generateMask(preProcessMask(msk["mask"]), msk));
+                            altMask += preProcessMask(msk["mask"]);
                         } else {
-                            ms.push(generateMask(preProcessMask(msk), msk));
+                            altMask += preProcessMask(msk);
                         }
                     });
-                    return ms;
-                } else {
-                    if (opts.mask.length > 1) {
-                        opts.keepStatic = opts.keepStatic == undefined ? true : opts.keepStatic; //enable by default when passing multiple masks when the option is not explicitly specified
-                        var altMask = "(";
-                        $.each(opts.mask, function (ndx, msk) {
-                            if (altMask.length > 1)
-                                altMask += ")|(";
-                            if (msk["mask"] != undefined && !$.isFunction(msk["mask"])) {
-                                altMask += preProcessMask(msk["mask"]);
-                            } else {
-                                altMask += preProcessMask(msk);
-                            }
-                        });
-                        altMask += ")";
-                        return generateMask(altMask, opts.mask);
-                    } else opts.mask = opts.mask.pop();
-                }
+                    altMask += ")";
+                    return generateMask(altMask, opts.mask);
+                } else opts.mask = opts.mask.pop();
             }
 
             if (opts.mask) {
@@ -1070,14 +1058,7 @@
                     end = TranslatePosition(end);
                     end = (typeof end == 'number') ? end : begin;
 
-                    //store caret for multi scope
-                    var data = $(npt).data('_inputmask') || {};
-                    data["caret"] = { "begin": begin, "end": end };
-                    $(npt).data('_inputmask', data);
-
-                    if (!$(npt).is(":visible")) {
-                        return;
-                    }
+                    if (!$(npt).is(":visible")) { return; }
 
                     var scrollCalc = $(npt).css("font-size").replace("px", "") * end;
                     npt.scrollLeft = scrollCalc > npt.scrollWidth ? scrollCalc : 0;
@@ -1085,7 +1066,6 @@
                     if (npt.setSelectionRange) {
                         npt.selectionStart = begin;
                         npt.selectionEnd = end;
-
                     } else if (npt.createTextRange) {
                         range = npt.createTextRange();
                         range.collapse(true);
@@ -1094,11 +1074,7 @@
                         range.select();
                     }
                 } else {
-                    var data = $(npt).data('_inputmask');
-                    if (!$(npt).is(":visible") && data && data["caret"] != undefined) {
-                        begin = data["caret"]["begin"];
-                        end = data["caret"]["end"];
-                    } else if (npt.setSelectionRange) {
+                    if (npt.setSelectionRange) {
                         begin = npt.selectionStart;
                         end = npt.selectionEnd;
                     } else if (document.selection && document.selection.createRange) {
@@ -1106,9 +1082,7 @@
                         begin = 0 - range.duplicate().moveStart('character', -100000);
                         end = begin + range.text.length;
                     }
-                    begin = TranslatePosition(begin);
-                    end = TranslatePosition(end);
-                    return { "begin": begin, "end": end };
+                    return { "begin": TranslatePosition(begin), "end": TranslatePosition(end) };
                 }
             }
             function determineLastRequiredPosition(returnDefinition) {
@@ -2035,9 +2009,7 @@
             }
         };
 
-        $.fn.inputmask = function (fn, options, targetScope, targetData, msk) {
-            targetScope = targetScope || maskScope;
-            targetData = targetData || "_inputmask";
+        $.fn.inputmask = function (fn, options) {
             function importAttributeOptions(npt, opts, importedOptionsContainer) {
                 var $npt = $(npt);
                 if ($npt.data("inputmask-alias")) {
@@ -2066,49 +2038,40 @@
                     case "mask":
                         //resolve possible aliases given by options
                         resolveAlias(opts.alias, options, opts);
-                        maskset = generateMaskSet(opts, targetScope !== maskScope);
+                        maskset = generateMaskSet(opts);
                         if (maskset == undefined) { return this; }
 
                         return this.each(function () {
-                            targetScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
+                            maskScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
                         });
                     case "unmaskedvalue":
                         var $input = $(this);
-                        if ($input.data(targetData)) {
-                            return targetScope({ "action": "unmaskedvalue", "$input": $input });
+                        if ($input.data("_inputmask")) {
+                            return maskScope({ "action": "unmaskedvalue", "$input": $input });
                         } else return $input.val();
                     case "remove":
                         return this.each(function () {
                             var $input = $(this);
-                            if ($input.data(targetData)) {
-                                targetScope({ "action": "remove", "el": this });
+                            if ($input.data("_inputmask")) {
+                                maskScope({ "action": "remove", "el": this });
                             }
                         });
                     case "getemptymask": //return the default (empty) mask value, usefull for setting the default value in validation
-                        if (this.data(targetData)) {
-                            return targetScope({ "action": "getemptymask", "el": this });
+                        if (this.data("_inputmask")) {
+                            return maskScope({ "action": "getemptymask", "el": this });
                         }
                         else return "";
                     case "hasMaskedValue": //check wheter the returned value is masked or not; currently only works reliable when using jquery.val fn to retrieve the value 
-                        return this.data(targetData) ? !this.data(targetData)['opts'].autoUnmask : false;
+                        return this.data("_inputmask") ? !this.data("_inputmask")['opts'].autoUnmask : false;
                     case "isComplete":
-                        if (this.data(targetData)) {
-                            return targetScope({ "action": "isComplete", "buffer": this[0]._valueGet().split(''), "el": this });
+                        if (this.data("_inputmask")) {
+                            return maskScope({ "action": "isComplete", "buffer": this[0]._valueGet().split(''), "el": this });
                         } else return true;
                     case "getmetadata": //return mask metadata if exists
-                        if (this.data(targetData)) {
-                            return targetScope({ "action": "getmetadata", "el": this });
+                        if (this.data("_inputmask")) {
+                            return maskScope({ "action": "getmetadata", "el": this });
                         }
                         else return undefined;
-                    case "_detectScope":
-                        resolveAlias(opts.alias, options, opts);
-                        if (msk != undefined && !resolveAlias(msk, options, opts) && $.inArray(msk, ["mask", "unmaskedvalue", "remove", "getemptymask", "hasMaskedValue", "isComplete", "getmetadata", "_detectScope"]) == -1) {
-                            opts.mask = msk;
-                        }
-                        if ($.isFunction(opts.mask)) {
-                            opts.mask = opts.mask.call(this, opts);
-                        }
-                        return $.isArray(opts.mask);
                     default:
                         resolveAlias(opts.alias, options, opts);
                         //check if the fn is an alias
@@ -2117,19 +2080,19 @@
                             //set mask
                             opts.mask = fn;
                         }
-                        maskset = generateMaskSet(opts, targetScope !== maskScope);
+                        maskset = generateMaskSet(opts);
                         if (maskset == undefined) { return this; }
                         return this.each(function () {
-                            targetScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
+                            maskScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
                         });
                 }
             } else if (typeof fn == "object") {
                 opts = $.extend(true, {}, $.inputmask.defaults, fn);
                 resolveAlias(opts.alias, fn, opts); //resolve aliases
-                maskset = generateMaskSet(opts, targetScope !== maskScope);
+                maskset = generateMaskSet(opts);
                 if (maskset == undefined) { return this; }
                 return this.each(function () {
-                    targetScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
+                    maskScope({ "action": "mask", "el": this }, $.extend(true, {}, maskset), importAttributeOptions(this, opts));
                 });
             } else if (fn == undefined) {
                 //look for data-inputmask atribute - the attribute should only contain optipns
@@ -2144,7 +2107,7 @@
                             opts = importAttributeOptions(this, opts);
                             resolveAlias(opts.alias, dataoptions, opts);
                             opts.alias = undefined;
-                            $(this).inputmask("mask", opts, targetScope);
+                            $(this).inputmask("mask", opts);
                         } catch (ex) { } //need a more relax parseJSON
                     }
                     if ($(this).attr("data-inputmask-mask") || $(this).attr("data-inputmask-alias")) {
@@ -2153,7 +2116,7 @@
                         opts = importAttributeOptions(this, opts, dataOptions);
                         resolveAlias(opts.alias, dataOptions, opts);
                         opts.alias = undefined;
-                        $(this).inputmask("mask", opts, targetScope);
+                        $(this).inputmask("mask", opts);
                     }
                 });
             }

+ 0 - 305
legacy/jquery.inputmask-multi.js

@@ -1,305 +0,0 @@
-/**
-* @license Input Mask plugin for jquery
-* http://github.com/RobinHerbots/jquery.inputmask
-* Copyright (c) 2010 - 2014 Robin Herbots
-* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 0.0.0
-*
-*  THIS IS A TEMPORARY HACK TO BE COMPATIBLE WITH MULTIPLE MASKS LIKE IN VERSION 2.X - WHEN THE ALTERNATOR SYNTAX IS IMPLEMENTED inputmask-multi WILL BE DELETED!!
-*
-*
-*/
-(function (factory) {
-    if (typeof define === 'function' && define.amd) {
-        define(['jquery', './jquery.inputmask'], factory);
-    } else {
-        factory(jQuery);
-    }
-}(function ($) {
-    if ($.fn.inputmask != undefined) {
-        function multiMaskScope(actionObj, masksets, opts) {
-            function isInputEventSupported(eventName) {
-                var el = document.createElement('input'),
-                    eventName = 'on' + eventName,
-                    isSupported = (eventName in el);
-                if (!isSupported) {
-                    el.setAttribute(eventName, 'return;');
-                    isSupported = typeof el[eventName] == 'function';
-                }
-                el = null;
-                return isSupported;
-            }
-            var PasteEventType = isInputEventSupported('paste') ? 'paste' : isInputEventSupported('input') ? 'input' : "propertychange",
-                isRTL, el, $el, elmasks, activeMasksetIndex;
-
-            function PatchValhookMulti(type) {
-                if ($.valHooks[type] == undefined || $.valHooks[type].inputmaskmultipatch != true) {
-                    var valueGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) { return elem.value; };
-                    var valueSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) {
-                        elem.value = value;
-                        return elem;
-                    };
-
-                    $.valHooks[type] = {
-                        get: function (elem) {
-                            var $elem = $(elem);
-                            if ($elem.data('_inputmask-multi')) {
-                                var data = $elem.data('_inputmask-multi');
-                                return valueGet(data["elmasks"][data["activeMasksetIndex"]]);
-                            } else return valueGet(elem);
-                        },
-                        set: function (elem, value) {
-                            var $elem = $(elem);
-                            var result = valueSet(elem, value);
-                            if ($elem.data('_inputmask-multi')) $elem.triggerHandler('setvalue');
-                            return result;
-                        },
-                        inputmaskmultipatch: true
-                    };
-                }
-            }
-
-            function mcaret(input, begin, end) {
-                var npt = input.jquery && input.length > 0 ? input[0] : input, range;
-                if (typeof begin == 'number') {
-                    begin = TranslatePosition(begin);
-                    end = TranslatePosition(end);
-                    end = (typeof end == 'number') ? end : begin;
-
-                    //store caret for multi scope
-                    if (npt != el) {
-                        var data = $(npt).data('_inputmask') || {};
-                        data["caret"] = { "begin": begin, "end": end };
-                        $(npt).data('_inputmask', data);
-                    }
-                    if (!$(npt).is(":visible")) {
-                        return;
-                    }
-
-                    npt.scrollLeft = npt.scrollWidth;
-                    if (opts.insertMode == false && begin == end) end++; //set visualization for insert/overwrite mode
-                    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 {
-                    var data = $(npt).data('_inputmask');
-                    if (!$(npt).is(":visible") && data && data["caret"] != undefined) {
-                        begin = data["caret"]["begin"];
-                        end = data["caret"]["end"];
-                    } else 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;
-                    }
-                    begin = TranslatePosition(begin);
-                    end = TranslatePosition(end);
-                    return { "begin": begin, "end": end };
-                }
-            }
-
-            function TranslatePosition(pos) {
-                if (isRTL && typeof pos == 'number' && (!opts.greedy || opts.placeholder != "")) {
-                    var bffrLght = el.value.length;
-                    pos = bffrLght - pos;
-                }
-                return pos;
-            }
-
-            function determineActiveMask(eventType, elmasks) {
-
-                if (eventType != "multiMaskScope") {
-                    if ($.isFunction(opts.determineActiveMasksetIndex))
-                        activeMasksetIndex = opts.determineActiveMasksetIndex.call($el, eventType, elmasks);
-                    else {
-                        var lpc = -1, cp = -1, lvp = -1;;
-                        $.each(elmasks, function (ndx, lmsk) {
-                            var data = $(lmsk).data('_inputmask');
-                            var maskset = data["maskset"];
-                            var lastValidPosition = -1, validPositionCount = 0, caretPos = mcaret(lmsk).begin;
-                            for (var posNdx in maskset["validPositions"]) {
-                                var psNdx = parseInt(posNdx);
-                                if (psNdx > lastValidPosition) lastValidPosition = psNdx;
-                                validPositionCount++;
-                            }
-                            if (validPositionCount > lpc
-                                    || (validPositionCount == lpc && cp > caretPos && lvp > lastValidPosition)
-                                    || (validPositionCount == lpc && cp == caretPos && lvp < lastValidPosition)
-                            ) {
-                                //console.log("lvp " + lastValidPosition + " vpc " + validPositionCount + " caret " + caretPos + " ams " + ndx);
-                                lpc = validPositionCount;
-                                cp = caretPos;
-                                activeMasksetIndex = ndx;
-                                lvp = lastValidPosition;
-                            }
-                        });
-                    }
-
-                    var data = $el.data('_inputmask-multi') || { "activeMasksetIndex": 0, "elmasks": elmasks };
-                    data["activeMasksetIndex"] = activeMasksetIndex;
-                    $el.data('_inputmask-multi', data);
-                }
-
-                if ($.inArray(eventType, ["focus"]) == -1 && el.value != elmasks[activeMasksetIndex]._valueGet()) {
-                    var value = $(elmasks[activeMasksetIndex]).val() == "" ? elmasks[activeMasksetIndex]._valueGet() : $(elmasks[activeMasksetIndex]).val();
-                    el.value = value;
-                }
-                if ($.inArray(eventType, ["blur", "focus"]) == -1) {
-                    if ($(elmasks[activeMasksetIndex]).hasClass("focus-inputmask")) {
-                        var activeCaret = mcaret(elmasks[activeMasksetIndex]);
-                        mcaret(el, activeCaret.begin, activeCaret.end);
-                    }
-                }
-            }
-
-            opts.multi = true;
-
-            function mask(npt) {
-                el = npt;
-                $el = $(el);
-                isRTL = el.dir == "rtl" || opts.numericInput;
-                activeMasksetIndex = 0;
-                elmasks = $.map(masksets, function (msk, ndx) {
-                    if (isFinite(ndx)) { //handle extension in the prototype of array for ie8
-                        var elMaskStr = '<input type="text" ';
-                        if ($el.attr("value")) elMaskStr += 'value="' + $el.attr("value") + '" ';
-                        if ($el.attr("dir")) elMaskStr += 'dir="' + $el.attr("dir") + '" ';
-                        elMaskStr += '/>';
-                        var elmask = $(elMaskStr)[0];
-                        $(elmask).inputmask($.extend({}, opts, { mask: msk.mask }));
-                        return elmask;
-                    }
-                });
-
-                $el.data('_inputmask-multi', { "activeMasksetIndex": 0, "elmasks": elmasks });
-                if (el.dir == "rtl" || opts.rightAlign)
-                    $el.css("text-align", "right");
-                el.dir = "ltr";
-                $el.removeAttr("dir");
-                if ($el.attr("value") != "") {
-                    determineActiveMask("init", elmasks);
-                }
-
-                $el.bind("mouseenter blur focus mouseleave click dblclick keydown keypress keypress", function (e) {
-                    var caretPos = mcaret(el), k, goDetermine = true;
-                    if (e.type == "keydown") {
-                        k = e.keyCode;
-                        if (k == opts.keyCode.DOWN && activeMasksetIndex < elmasks.length - 1) {
-                            activeMasksetIndex++;
-                            determineActiveMask("multiMaskScope", elmasks);
-                            return false;
-                        } else if (k == opts.keyCode.UP && activeMasksetIndex > 0) {
-                            activeMasksetIndex--;
-                            determineActiveMask("multiMaskScope", elmasks);
-                            return false;
-                        }
-                        if (e.ctrlKey || k == opts.keyCode.SHIFT || e.altKey) {
-                            return true;
-                        }
-                    } else if (e.type == "keypress" && (e.ctrlKey || k == opts.keyCode.SHIFT || e.altKey)) {
-                        return true;
-                    }
-                    $.each(elmasks, function (ndx, lmnt) {
-                        if (e.type == "keydown") {
-                            k = e.keyCode;
-
-                            if (k == opts.keyCode.BACKSPACE && lmnt._valueGet().length < caretPos.begin) {
-                                return;
-                            } else if (k == opts.keyCode.TAB) {
-                                goDetermine = false;
-                            } else if (k == opts.keyCode.RIGHT) {
-                                mcaret(lmnt, caretPos.begin + 1, caretPos.end + 1);
-                                goDetermine = false;
-                                return;
-                            } else if (k == opts.keyCode.LEFT) {
-                                mcaret(lmnt, caretPos.begin - 1, caretPos.end - 1);
-                                goDetermine = false;
-                                return;
-                            }
-                        }
-                        if ($.inArray(e.type, ["click"]) != -1) {
-                            mcaret(lmnt, TranslatePosition(caretPos.begin), TranslatePosition(caretPos.end));
-                            if (caretPos.begin != caretPos.end) {
-                                goDetermine = false;
-                                return;
-                            }
-                        }
-
-                        if ($.inArray(e.type, ["keydown"]) != -1 && caretPos.begin != caretPos.end) {
-                            mcaret(lmnt, caretPos.begin, caretPos.end);
-                        }
-
-                        $(lmnt).triggerHandler(e);
-                    });
-                    if (goDetermine) {
-                        setTimeout(function () {
-                            determineActiveMask(e.type, elmasks);
-                        }, 0);
-                    }
-                });
-                $el.bind(PasteEventType + " dragdrop drop setvalue", function (e) {
-                    var caretPos = mcaret(el);
-                    setTimeout(function () {
-                        $.each(elmasks, function (ndx, lmnt) {
-                            lmnt._valueSet(el.value);
-                            $(lmnt).triggerHandler(e);
-                        });
-                        setTimeout(function () {
-                            determineActiveMask(e.type, elmasks);
-                        }, 0);
-                    }, 0);
-                });
-                PatchValhookMulti(el.type);
-            }
-
-            //action object
-            if (actionObj != undefined) {
-                switch (actionObj["action"]) {
-                    case "isComplete":
-                        $el = $(actionObj["el"]);
-                        var imdata = $el.data('_inputmask-multi'),
-                            activeMask = imdata["elmasks"][imdata["activeMasksetIndex"]];
-                        return $(activeMask).inputmask("isComplete");
-                    case "unmaskedvalue":
-                        $el = actionObj["$input"];
-                        var imdata = $el.data('_inputmask-multi'),
-                            activeMask = imdata["elmasks"][imdata["activeMasksetIndex"]];
-                        return $(activeMask).inputmask("unmaskedvalue");
-                    case "mask":
-                        mask(actionObj["el"]);
-                        break;
-                }
-            }
-        };
-
-        $.extend($.inputmask.defaults, {
-            //multi-masks
-            multi: false, //do not alter - internal use
-            determineActiveMasksetIndex: undefined //override determineActiveMasksetIndex - args => eventType, elmasks - return int
-        });
-
-        $.inputmask._fn = $.fn.inputmask;
-        $.fn.inputmask = function (fn, options) {
-            if (typeof fn === "string") {
-                if ($.inputmask._fn("_detectScope", options, undefined, undefined, fn))
-                    return $.inputmask._fn.call(this, fn, options, multiMaskScope, "_inputmask-multi");
-                else return $.inputmask._fn.call(this, fn, options);
-            } else if (typeof fn == "object") {
-                if ($.inputmask._fn("_detectScope", fn))
-                    return $.inputmask._fn.call(this, fn, options, multiMaskScope, "_inputmask-multi");
-                else return $.inputmask._fn.call(this, fn, options);
-            } else if (fn == undefined)
-                return $.inputmask._fn.call(this, fn, options);
-        };
-    }
-}));